Showing posts with label cyb. Show all posts
Showing posts with label cyb. Show all posts

2023-10-13

AI for Educators Blueprint by Noah Johnson Ed.D., Vivian Mitchell MPH 2023

2023.10.13: bk.cyb/ai/edu/
Noah Johnson Ed.D., Vivian Mitchell MPH 2023`Educators Blueprint:

. a brief review of the book:

Noah Johnson Ed.D., Vivian Mitchell MPH 2023`

The AI for Educators Blueprint: 

81 Ways to Skyrocket Student Success, Reclaim Hours in Your Day, 

& Revolutionize Your Classroom Safely and Equitably

(ChatGPT Prompt Guide + AI Integration Framework) 

2023-04-24

Timnit Gebru and Margaret Mitchell on AI Accountability

2023.4.24: news.cyb/ai/
Timnit Gebru and Margaret Mitchell on AI Accountability

. late 2020 and early 2021, two researchers 

— Timnit Gebru and Margaret Mitchell — 

were given special attention

after they authored a research paper

addressing flaws in today's AI systems.

[James Vincent Apr 19, 2023]

https://www.theverge.com/2023/4/19/23689554/google-ai-chatbot-bard-employees-criticism-pathological-liar

2023-04-20

WebGPU: a significant web technology

2023.4.20: news.cyb/dev.net/WebGPU/
introducing a significant web technology:

. this is a revision of WebGPU news from

François Beaufort, Corentin Wallez April 6, 2023

https://developer.chrome.com/blog/webgpu-release/

2020-11-03

total formal verification is not possible in 2020

'20.11.3: co.quora/adds/cyb/sec/total formal verification is not possible in 2020:

current efforts at formal verification

cannot yet find all unknown vulnerabilities in software:

. as pointed out by the SeL4 team, in

What is Proved and What is Assumed

who used formal verification to debug a microkernel,

they are still vulnerable to inaccuracies of the hardware model;

ie, assuming the hardware acts a particular way

when under special conditions it actually does something else.

. some CPU chip instructions are reprogrammable by the manufacturer

with on-chip microcode; eg Intel Microcode

 (https://en.wikipedia.org/wiki/Intel_Microcode);

this could either make the CPU more correct

or make it vulnerable to malicious modification?

. also, there was some of the SeL4 software

that was not practically verifiable yet:

"there may still be faults remaining in

specific low-level parts of the kernel

(TLB, cache handling, handwritten assembly, boot code)."


2019-12-07

chromebook accommodating visual impairments

19.12.4: cyb/chrome/accommodating visual impairments:
. here are chromebook features for
when the eyes have trouble reading.
. select-to-speak can say selected text,
at least in the browser.
. if you can see only large text,
the docked magnifier works well;
also handy is the (shift control +)
screen resolution
(system menu/setting/device/display/
internal display/display size).

2017-03-01

git uses SHA-1 deprecated by NIST in 2011

2.25: news.cyb/dev/sec/git uses SHA-1 deprecated by NIST in 2011:
3.1: summary:
. git allows teams to concurrently work on software;
it uses SHA-1 hashing of versions,
to tell when files of a version have been modified
to help it merge versions of the software.
. SHA-1 has been cracked so you can modify a file
and yet have it result in the same SHA-1 hash,
thereby hiding the fact that it has been modified.
. the leader of git would like to replace SHA-1
with a more secure hash using more bits,
but would like to use a truncated version of that hash
so that git would only have to store and compare
the same number of bits as SHA-1.
. git is assumed by the leader of git, Linus Torvalds,
to be less vulnerable to the SHA-1 attack
because it includes not just the hash of a file
but also its size;
he gives no proof other than appeal to intuition:
can you imagine a way to add working malware to a file
while also keeping both the hash and the size the same?

2014-12-28

robot-human interactions

12.28: summary:
. ideas about robot-human interactions
inspired by the movie Her,
about falling in love with AI .

2014-12-13

the good judgement project

4.2: web.adds/crowdsourcing/the good judgement project:
12.13: summary:
. an arm of the usa goverment is investing in
high-risk, high-payoff research programs;
one of which is the The Good Judgment Project
that harnesses crowd-sourced intelligence
to make predictions about global events.

2013-12-28

safer C coding

9: news.cyb/dev.c/avoiding remote code execution:
leafsr:
. some C library functions are often used incorrectly,
and that consequently result in
remote code execution vulnerabilities:
strcpy, sprintf, memcpy, CopyMemory,
RtlCopyMemory, strcat, alloca
and many more Win32 specific stuff.
. much of the legacy software that is
still critical to many enterprises
contains code that calls these vulnerable library functions.
Despite modern memory protections
like ASLR and DEP
the vulnerabilities these functions introduce
are still exploitable under the right conditions .
 . here's the safe C library
– that implements strcpy_s and friends
as an open source library (MIT license).

19: news.cyb/dev.c/SAFECode updates secure dev guide:
.  pubs from safecode.org .
scmagazine:
The Software Assurance Forum for
Excellence in Code (SAFECode),
a nonprofit seeking to advance software assurance,
released an updated guidance document .
The free report includes verification methods and tools
that can be used to confirm whether
development teams have followed prescribed practices.

2013-05-29

list of online directories

4.18: news.adds/lib/directories:
. web directories for subject-specific searches:
http://en.wikipedia.org/wiki/List_of_web_directories
classic dmoz (but no longer mozilla
http://www.dmoz.org/
-- owned by AOL Time Warner)
(become an editor)
http://www.dmoz.org/docs/en/help/become.html
classic yahoo
http://dir.yahoo.com/
joeant (subject then rank sorted)
http://www.joeant.com/
(apply to be accepted as an editor)
the best of blogs
http://blogs.botw.org/
the best of web (dinky)
http://botw.org/

versiwiki

4.12: adds/versiwiki:
. in wikipedia we often see "citation needed";
this reminded me of a need for versioning;
the default version is completely referenced:
it hides everything that needs a citation,
or that has a citation that doesn't apply .
. if you want to see flagged content
(original work, contested material)
then you click the view-all button .
. we can also extend that idea
to have buttons for many versions:
show original content, or show controversial .
. when the controversial view is shown
it also shows the tags people have added:
pornographic, hate speech, ethnocentric, etc .

free online books

4.20: adds/lib/free books list
5.29: summary:
. I found a list of free academic books online,
and this is my reading list todo . :)

2012-09-23

www.i-programmer.info

7.10: news.cyb/dev/I Programmer:
Programming news, projects,
articles and book reviews:
· www.i-programmer.info;
iProgrammer news is written
for programmers by same .
iProgrammer news also doesn't aim to be
the first or up-to-the-minute.
Our news does cover the latest releases,
intentions and developments
but in depth and with a
commentary that aims to explain
the significance of the event.
It also marks significant anniversaries
with links to relevant articles.
9.6: web:
. it has a table of subject-specific pages;
notable subject-specific lists of articles
include theory
(eg, a better way to program
-- see my article about this cp4e heroism .
and security
(eg, 2012.2 Google's $1 million for Chrome Hack
2012.3: Chrome Hacked Twice at CanSecWest)

2012-09-22

Pyglet for multi-media Python

7.16: news.cyb/dev.py/pyglet for cross-platform gui:
. during rapd's 2009 python promo,
pyglet was listed along with scipy
as some examples of how python leads ruby
in everything but web programming?
that makes pyglet interesting!
(a cross-platform, BSD-licensed
windowing and multimedia Python library ):
. provides an oop interface for developing
games and other visually-rich applications
for Windows, Mac OS X and Linux.
The major 1.2alpha1 release
brings pyglet to Python 3.
Pyglet now also runs on 64-bit
Linux, Windows and OS X.
The OS X layer switched to using Cocoa.
There's also a load of bug fixes,
updates to the OpenGL wrappers
and other minor new improvements.

Some of the features of pyglet are:
# No external dependencies
or installation requirements.
# For most application and game requirements,
# pyglet needs nothing else besides Python,
# simplifying distribution and installation.
# Takes advantage of multiple windows
and multi-monitor desktops.
# Load images, sound, music and video
# in almost any format:
# pyglet can optionally use AVbin to playback
audio formats such as MP3, OGG/Vorbis and WMA,
and video formats such as
DivX, MPEG-2, H.264, WMV and Xvid.
compared to pygame 2010:
. if you want it done quickly, use pygame.
but in a serious project, go for Pyglet,
which is nicely designed and implemented.
daniweb 2009:
Pyglet is not a full GUI toolkit,
[ it's a kit for making gui kits ]
but has its strength in audio and video presentations.
using GL and FFmpeg .
sparkyb 2008`not a traditional gui kit:
a graphics/game library like Pygame or Pyglet
is not the right kind of thing for a [ desktop app ].
You're better off with a GUI toolkit that already has
things like text fields, buttons, lists, task tray icons, etc
than trying to build your own with a graphics library.
(the question for a desktop app then
is pyqt vs wxPython).
wikibooks python gui kits 2011:
(no mention of pyglet)
7.17: ironically,
there's a book by "(wikibooks contributers)
that recognizes Pyglet on Page 144:
2D Game Programming
... Pyglet is avaible[sic] under a BSD-Style license ...
[ also listed under 2D Game are Pygame (wraps SDL)
and Rabbyt (a fast Sprite library) ]
. indeed, here it is at wikibooks.org,
under 2D Game Programming:
    # Pyglet is a cross-platform windowing and multimedia library for Python
    with no external dependencies or installation requirements.
    # Pyglet provides an object-oriented programming interface
    for developing games and other visually-rich
    applications for Windows, Mac OS X and Linux.
    # Pyglet allows programs to open multiple windows on multiple screens,
    draw in those windows with OpenGL,
    and play back audio and video in most formats.
    # Unlike similar libraries available,
    pyglet has no external dependencies (such as SDL)
    and is written entirely in Python.
    Pyglet is available under a BSD-Style license.
    also mentioned are Pygame, Phil's Pygame Utilities (PGU)
    Kivy, and Rabbyt .
--
. of these entries, only Pygame is
noteworthy enough for wikipedia;
other links go to their respective sites instead .

. even more weird is this:
Pyglet [Paperback] by Ronald Cohn Jesse Russell
Publisher: VSD (January 1, 2012)
-- described as
    "( High Quality Content by WIKIPEDIA articles!
    Pyglet is an OpenGL-based software library
    used in developing games
    and other visually rich applications
    using the object-oriented language Python.
    This book was created using
    print-on-demand technology.
) but at wikipedia,
it's been deleted as not noteworthy !
. and as you might expect, amazon says
"(Currently unavailable.
We don't know when or if this item will be back in stock.)
. the same author did a wikipedia reprint of
wiki's Crystal_Meth_Anonymous page;
and, that is also listed as unavailable,
but wiki still has that article (one very short page).

wikipedia (Pyglet deleted):
. non-notable, yet one very notable thing about it,
advocates were pointing out,
is that it's used as the base for Cocos2d:
a framework for building 2D games, demos,
and other graphical/interactive applications.
main features of cocos2d:
# Pyglet Based: No external dependencies
# OpenGL Based: Hardware Acceleration
. but wiki says Cocos2d is notable essentially
for being no longer dependent on Pyglet;
rather, they've been very busy with
porting to java, c++, and obj'c .
. and, as a result of such porting
it was featured in the book:
More IPhone Cool Projects
(see section "Cocos2D for iPhone and iPad;
                    It Is Easier Than You Think")

-- easy iOS programming is very noteworthy,
because, Python isn't even allowed on iOS!

9.6: web: Pyglet's newsgroup:
On Saturday, 28 July 2012 12:30:04 UTC+2, Scott Porter wrote:
> I've just upgraded to OSX 10.8
  and installed Pyglet 1.2alpha. 
> Pyglet is now unable to create any windows. 
Adam Griffiths Sep 5, 11:55 pm
I've been using Python 2.7 with PyObjc 2.2
with Pyglet from head (or 1.2 alpha).
It's the only combination that's ever worked for me.
I'm able to run Pyglet on 10.7 and 10.8 without any problems.
I wrote about this here:
I installed pythonbrew, virtualenv
into the system python.
Then install 2.7 with pythonbrew
and install Pyglet from the repository.
If I remember correctly,
the problem people are having with 10.8
is the system python uses certain libs.
Avoid using it and you shouldn't have any problems.
02/21 installing-pyglet-in-mac-os-x/
. Pyglet 1.1 uses the Carbon framework,
but this is not compatible with 64-bit Python installs.
The Pyglet 1.2 branch has been modified to use Quartz, ...
We must instead install Pyglet from the Mercurial repository.
The Quartz bindings require the use of PyObjc ...
Travis Griggs Aug 28, 4:23 pm:
1) Download mercurial and install it.
2) Clone the pyglet repository by opening up a terminal and running:
    hg clone https://pyglet.googlecode.com/hg/ pyglet
3) Go into the pyglet directory and install it
(type in your password when  prompted and press enter):
    cd pyglet && sudo python setup.py install   
Tristam MacDonald's pyglet blogging .
. he wrote this pyglet openware:
simplui -- Lightweight GUI toolkit for pyglet.
simplui provides a lightweight and flexible GUI toolkit
for Python/OpenGL applications using pyglet.
Primarily intended as an aid in debugging and development,
simplui is generally overkill for in-game GUIs.
other openwares by same author:
pyeuclid and cocoa-python .

=== other pyglet-related projects
on code.google.com ===

== pyglet shouldn't depend on PyObjC ==
cocoa-python -- Port of Objective-C runtime
to Python using ctypes
"( Port of the Objective-C runtime to Python using ctypes
with the goal of being able to
use the Cocoa API on Mac OS X without PyObjC.
... so that pyglet could run without depending on PyObjC.)
== pyglet should interface xcb not just xlib ==
samurai-x -- a pure python window manager for X
"( samurai-x is written entirely in python using ctypes.
The xlib module is from http://pyglet.org
but project was halted to write an
xcb-based window manager.
. XCB (X protocol C-language Binding)
is a C language binding for the X Window System.
It is implemented as free software
and aims to replace Xlib.
Xlib/XCB provides application binary interface
compatibility with both Xlib and XCB,
providing an incremental porting path.
Xlib/XCB uses the protocol layer of Xlib,
but replaces the Xlib transport layer with XCB,
and provides access to the underlying XCB connection
for direct use of XCB.)
== Pyglet wasn't flexible and pyopengl too slow ==
pocketwatch -- An opengl graphics library for python.
"( Pocket watch is an OpenGL graphics library for python,
write simple 3d programs.
why!? what about pyglet?
Pyglet is awesome, and pocketwatch uses pyglet
to do some specific things
like window management, rendering text,
and opening images.
Pyglet now supports some features that
may have been useful to solving the problems
I had when I started writing pocketwatch.
But even then,
said features didn't seem flexible enough
to do what I wanted.
Maybe this is different now, maybe not. )
py-open-gl ?
"( using ctypes to do lots of opengl calls
is actually very SLOW.
So instead, I took all of the code that I could,
and wrote a simple C++ library
to do all the nitty gritty stuff,
and wrote a python state-sorter which could
render all of the objects with a single ctypes call.
. uses Python Imaging Library (PIL)
. PIL adds image processing capabilities
to your Python interpreter.
This library supports many file formats,
and provides powerful image processing
and graphics capabilities.)
== libraries that help you use Pyglet ==
pyglons -- rapid application framework for pyglet
"( No more boilerplate coding!
pyglons takes the ideas from Pylons
( a lightweight web framework emphasizing
flexibility and rapid development )
and uses them to create a framework for Pyglet
( a cross-platform windowing and
multimedia library for Python) .... )
pyglons, the module:
"( a module containing an application base class,
a state class and some predefined states
that you may or may not require depending on your needs.)
pyglons, the templates:
"( templates for the paster command
that creates your application directory and initial layout.
The default templates create a small working application
with splash screen, menu, help and
very basic application state
ready for you to add your code.
The templates also create all the required files
to use your application with distutils/setuptools.
The default pyglons app depends on pyglet and pyglons.)
layer
"( Layer is a set of somewhat disjoint modules
on top of pyglet, YAML, and other Python libraries
designed to smooth over strangeness
and allow for rapid iteration in game design and development.)
pgedraw -- Simple library that
make[s] it easy to draw in 2d with pyglet
"( the goal of this very simple library
is to cover up the lack of a decent
drawing system in pyglet.
. pgedraw helps to draw 2d
geometrical shapes with pyglet.
A simple way to clear the screen
and to enable alpha channel is provided, too.
Drawing are made using pyglet's OpenGl api,
but knowledge of OpenGl is not required to use pgedraw.
Pgedraw offers also a collision detection system
that can be used to check if the user is
clicking inside a drawn shape.)
python-pyknic -- A boilerplate library for
the rapid creation of 2D games in Python.
pyglet-shaders
-- Feed GLSL shaders into OpenGL from Python
(uses pyglet bindings)
los-cocos -- cocos2d: A framework for building 2D games
"( cocos2d is a framework for building 2D games, demos,
and other graphical/interactive applications.
It is built over pyglet.
. helps you structure a "scene based application".
Cocos simplifies the game development in these areas:
Flow control: Manage the flow control
between different scenes in an easy way .
Sprites: Fast and easy sprites .
Actions: Just tell sprites what you want them to do.
Composable actions like move, rotate, scale, etc .
Effects: Effects like waves, twirl, lens and much more .
Tiled Maps:
Support for rectangular and hexagonal tiled maps .
Collision: Basic pure python support for collisions .
Transitions: Move from scene to scene with style .
Menus: Built in classes to create menus .
Text Rendering:
Label and HTMLLabel with action support .
Built-in Python Interpreter: For debugging purposes .
Access to OpenGL functionality .)
== libraries that use Pyglet ==
bruce-tpt -- Bruce, the Presentation Tool
"( It uses pyglet to display via OpenGL
and handle multi-head
(the most common presentation setup)
so you can have the presentation displayed on a projector
while your laptop displays the original presentation source .)
pyglet-twisted -- Twisted reactor for Pyglet
"( . develops a Twisted reactor for Pyglet.
The aim is to enable Twisted's networking capabilities
to be fully integrated within the Pyglet event loop,
introduced in version 1.1.)
skyseam -- Utilities for 2.5D graphics in python
"( . a utility to orient a spherical projection
to suit a list of camera views.
pyglet based ui for visualization and testing.)
pyevocomm -- a simple open Framework for Accesibility
"( Designed with the MVC pattern,
adds to the view beyond,
the voice properties suitable for
people with low vision .)
py-lepton -- High-performance, pluggable particle engine
and API for Python
"( make complex and beautiful particle effects;
Two pluggable OpenGL renderers,
and two pygame renderers
Modular architecture:
easily configure and customize the engine .)
roller-ball -- A Python/OpenGL Game
"( PyODE engine with OpenGL calls
using Pyglet framework .)
flashy-screen
"( Flashes / strobes your screen with random solid colors.
Intended to try and fix stuck pixels on LCD TVs and monitors.
All you need to run this is python and pyglet ).
pynewt -- Pure python rigid body dynamics library
"( Uses  pyglet for rendering,
needs pyeuclid for all vector/quaternion maths.)
news.cyb/dev.py/ui frameworks:
PyGame  -- graphics and sound by SDL
pyglet -- minimalistic;
tends to be basis of game engines .

Panda3D -- game engine
PyOpenGL -- graphics library
OGRE -- scene-oriented, flexible 3D
   rendering engine (as opposed to a game engine)
TurboGears, Django -- web apps
urwid -- console user interface library for Python.
PyQT -- cross-platform GUI toolkit
wxPython -- a widget toolkit and tools library for gui's;
. for more see list of game engines (python):
blender -- listed under ray tracers too .
cocos2d
Ignifuga Game Engine
Panda3D
-- for lesser game engines and media kits
see wikibooks .

wikipedia`game engine:
. a system designed for the creation and
development of video games.
The leading game engines provide a software framework
that developers use to create games for
video game consoles and personal computers.
The core functionality typically provided by a game engine
includes a rendering engine (“renderer”) for 2D or 3D graphics,
a physics engine or collision detection (and collision response),
sound, scripting, animation, artificial intelligence,
networking, streaming, memory management, threading,
localization support, and a scene graph.
The process of game development is often economized,
in large part, by reusing/adapting the same game engine
to create different games,
or to make it easier to "port" games to multiple platforms.
Recent Trends
. As game engine technology matures and becomes more user-friendly,
the application of game engines has broadened in scope.
They are now being used for serious games:
visualization, training, medical, and military simulation applications.
To facilitate this accessibility,
new hardware platforms are now being targeted,
including mobile phones (e.g. Android phones, iPhone)
and web browsers (e.g. WebGL, Shockwave, Flash, Trinigy's WebVision,
Silverlight, Unity Web Player, O3D and pure dhtml).
Additionally, more game engines are being built upon
higher level languages such as Python (Panda3D).
As most 3D rich games are now mostly GPU-limited
(i.e. limited by the power of the graphics card),
the language's impact on speed becomes negligible,
while the productivity gains offered by these languages
work to the game engine developers' benefit .
Game Middleware
. In the broader sense of the term,
game engines themselves can be described as middleware.
In the context of video games, however,
the term "middleware" is often used to refer to
subsystems of functionality within a game engine.
Some game middleware does only one thing
but does it more convincingly or more efficiently
than general purpose middleware.
For example, SpeedTree renders the realistic vegetation
and, Fork Particle simulate real time Particle Systems .

python faqts, "style" surprises, testing sw

7.15: news.cyb/dev.py/help at faqts.com:
Python Knowledge Base
[defunct]: www.faqts.com has a lot of
example code using dictionaries.
http://www.faqts.com/knowledge-base/index.phtml/fid/541
http://www.faqts.com/knowledge_base/index.phtml/fid/199
. here is the archive of the defunct site:
(FAQTS : Computers : Programming : Languages : Python)
and both of the defunct url's work appended to that archive url
(http://web.archive.org/web/20010616225136/)
also, the example code was part of
a snippets library:
here is the help on operating on files;
eg,
# the directory of the currently executing program:
import sys, os
if __name__ == '__main__':
    _thisDir = sys.argv[0]
else:
    _thisDir = sys.modules[__name__].__file__
_thisDir = os.path.split(_thisDir)[0]
print _thisDir
7.21: news.cyb/dev.py/style guide has some pragma too:

. the python style guide is more than just formatting;
it has some pragmas and gotcha warnings too;
eg,  Programming Recommendations:
Code should be written in a way that does not disadvantage
other implementations of Python
(PyPy, Jython, IronPython, Cython, Psyco, and such).
For example,
do not rely on CPython's efficient implementation of
in-place string concatenation for
statements in the form a += b or a = a + b.
Those statements run more slowly in Jython.
In performance sensitive parts of the library,
the ''.join() form should be used instead.
This will ensure that concatenation occurs in
linear time across various implementations.

Comparisons to singletons like None
should always be done with is or is not,
never the equality operators.
Also,
beware of writing if x
when you really mean if x is not None
-- e.g. when testing whether a variable or
argument that defaults to None
was set to some other value.
The other value might have a type (such as a container)
that could be false in a boolean context!
7.14: bk.cyb/dev.py/lists:
. index starting at 0(zero) means an insert(i, obj)
is the same as putting an obj after the ith item .
. list + list2
= list`extend(list2)
= list`append(list2[:])
= list`insert(-1, list2) .
7.14: 9.6:
. notice how stack is related to list:
pop = un(right-most element)
pop = un push;
push = append .
. which is the opposite of append:
is pop removing the right-most ?
9.6: yes, list.pop() is un-append;
pop() takes the right-most .
. list.remove(elem) finds an item equal to the given elem;
contrast that to L.pop(i), removes the ith element .
-- remove() searches for the first instance
(throws ValueError if not present).

7.24: web,news:
. see the usage of __all__ (a list)
in the __init__.py for packages .
If __all__ is defined in __init__.py,
and you use "from my_package import *"
then only the modules/variables defined in __all__
will be loaded.

>>> import os
>>> os.getcwd()
'/home/user'
>>> os.chdir("/tmp/")
>>> os.getcwd()
'/tmp'

# Linux:
export PYTHONPATH=/path/to/my/library:$PYTHONPATH
# Windows:
set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib
7.16: news.cyb/dev.py/testing/windmill:

mikeal 2009`intro to windmill:
. Windmill is a Selenium competitor
written entirely in Python & JavaScript
with test-writing support for both.
Windmill`intro:
. Windmill is a web testing tool
designed to let you painlessly automate
and debug your web application.
Originating at the Open Source Applications Foundation
Windmill was built to help QA
keep up with the rapid release cycles
of the Chandler Server Web UI (Cosmo) project.
As the Cosmo client is heavy in
JavaScript and AJAX functionality,
Windmill makes the communication
between the service and the client code
a priority.
Windmill Test Framework:
. Cross-browser test recorder
Record, edit, playback and interact with your tests
from one simple interface.
. Also check out the DOM Explorer, Assertion Explorer
and fully integrated Firebug-Lite.
Interact from a python shell with the
browser and the windmill service .
. install ipython and automatically get
an even more usable shell.
. more encouragement 2011:
"( Selenium 2 and Python
- ok so Windmill is my new favorite:
This looks interesting!:
http://readthedocs.org/docs/selenium-python/en/latest/
Update: Windmill is more fun now .)

exploring resources at diotavelli.net's PyQt Wiki

7.10: web.cyb/dev.pyqt/wiki:
. exploring the wiki at diotavelli.net.
news:
PyQt und PySide book has some example code:
-- the book is written in german:
PyQt und PySide: GUI- und Anwendungsentwicklung mit Python und Qt
Published: 2012 ISBN 978-3-941841-50-5
9.9:
. the .zip doesn't have a lot of example code,
but it's mostly English despite the text being German .
. the localization coverage looked interesting
but it used some strange resource files
that need explaining by the book .

great tutorials collection:

. tutorial for text editor (the code is here).

Test PyQt GUIs with QTest and unittest
by John McGehee on July 31, 2011
"( PyQt is the Python binding of the popular Qt
cross-platform UI and application framework.
For unit testing, PyQt clients are expected to use
the standard Python unittest module,
with just a little help from the PyQt QtTest module.
It is not immediately apparent how to blend these two frameworks
into a unified unit testing strategy.
In this article, I show you how to unit test a PyQt GUI dialog
using only modules included in PyQt and Python. )
Boudewijn Rempt & David Mertz @ ibm's comparison to tkinter.
. see his Charming Python series:
# dom (XML Python)
# concurrency
# Easy Web data collection with mechanize and Beautiful Soup
# ide's .

IPython has Powerful Python shells (terminal and Qt-based).
IPython 0.13: a major release (June 30, 2012)
"( This release, closed 1115 issues Github
and comes with major improvements to the
notebook and parallel computing APIs,
a new cell magic system,
unified interactive and parallel kernels ).
pyqt-based browser:
. installation instructions .
. code base at code.google.com .

other pyqt projects on g'code:
Lector
"( A graphical ocr solution for GNU/Linux
based on Python, Qt4 and tessaract OCR.
Lector can help you to scan your tons of paper
and create text document!
Lector lets you select areas on which you want to
do OCR (Optical Character Recognition).
Then you can run tesseract-ocr
simply clicking a button.
The resulting text can be proofread, formatted and edited
directly in Lector.
. see the OCRopus project,
for which Tesseract is one of the pluggable OCR engines;
OCRopus also provides layout analysis
and statistical language modeling.)
text editor:
"( Marave doesn't just have minimalism and simplicity,
it has that combined with beauty
and a palpable design ethic. Marave has soul.
Inspired by ommwriter and other similar projects,
aims to be a simple, clean text editor
that doesn't distract you from your writing.)
PyQt:creating GUIs with Python’s QT bindings

Boudewijn Rempt`GUI Programming
with Python: QT Edition
. this is a complete book online !
(somewhat obsolete though?).

7.16: news.cyb/dev.pyqt/zetcode book:
http://zetcode.com/tutorials/pyqt4/

7.17: news.cyb/dev.pyqt/wiki pages:
. Comparison_of_programming_languages;
python typing -- strong and safe but implicit
(by contrast Pascal -- explicit yet not completely safe)
. list of wiki's python books:
the people's pyqt book
-- they point to techbase.kde.org
"( to develop KDE applications using Python,
you need both PyQt and PyKDE.
. PyQt provides Python support for the Qt library
which KDE is built on.)
###
pyqt's relation to PyKDE:
"(. Riverbank Computing has a lot of good documentation
about how to use PyQt to create pure Qt applications.
If you are new to KDE / Python development,
then learning how to use PyQt is the best first step.
PyKDE builds on top of PyQt and adds
Python support for KDE's libraries and technologies.
PyKDE is distributed as part of the kdebindings module.
Stable releases can be downloaded from
the normal KDE download page,
although it is usually easier to
install pre-built packages from your
operating system distribution.
You can also obtain PyKDE from
KDE's subversion repository .
Or from KDE's git repository:
git clone git://anongit.kde.org/pykde4 ).

2012-07-25

Mac gets some optional Sandboxing

6.2: news.cyb/dev.mac/sandboxes
Apple brings sandboxing to the desktop:
. most PCs have not been into sandboxing
[because backward compatability was an issue;
smartphone platforms are more recent inventions,
so sandboxing is an obvious good .]
. to access resources within a sandbox,
apps must request “entitlements” [aka, capabilities.]
Android apps must ask the user for permissions
and then the OS constrains the app
to the allowed permissions .
[ but Android apps may be all-or-nothing:
either the user accepts all the requests,
or else the app fails to be usable at all .]
Apple’s iOS sandboxing doesn’t involve the user,
as all permissions are handled by
Apple's App Store evaluators .
[7.25:. in order to be accepted into the app store,
developers must divide their app into modules
so as to more easily explain why each part
needs a particular set of entitlements .][7.20:
Apple decides for the user,
what entitlements are appropriate,
not only for the whole app,
but more smartly, for each of its modules .]
. iOS users can still control certain entitlements:
(eg, opening a list of recent files
or saving documents elsewhere in the file system).

Concerns from Developers:

# no more AppleScript:
[7.20:
AppleScript is a programming language
meant to allow the user to reuse apps
by having scripts make calls to apps .
. if an app wants to reuse other apps,
then it too can use AppleScript
to make calls to other apps;
however, in sandboxing this can't be done,
because,
when an app is entitled to AppleScript
it's entitled to anything AppleScript can do
-- which is basically anything!
. if apps are instead designed to be
reused directly by other apps
then sandboxed apps can still be
entitled to use particular other apps
without having to give them access to
the wide world of AppleScript .]
# no more file system management: [7.20:
. Apple sandboxing asks the user
for each and every file access;
so, apps that need access to many files
or that need to work in the background
are not considered sandboxable;
nevertheless, sandboxing of the file system
could work like vmware's shared folders:
. vmware lets you run an OS in a sandbox
as a virtual machine (vm);
and then gives the vm {read, write} access
to just the folders the user requests
(Virtualbox has a similar feature).
. you can divide your file system by sensitivity levels;
eg, if the sandboxed app has access to the web,
then give it entitlements should be
read-only access to non-sensitives,
and write access to a downloads folder .
. letting sandboxes share folders
is important to generativity .]
. see Jonathan Zittrain's Chapter 7 of
The Future of the Internet and How to Stop It .

2012-07-19

Python with GUI on Mac

6.30: summary:
. after seeing David Mertz's
Text Processing in Python/SECTION 3
/Platform-Specific Operations,
I'm seeing Python has a Carbon API,
which you'll now see is deprecated,
so, I wondered if there's a Cocoa API now .

. other than extending and embedding C,
python is not really supporting cocoa:
. the latest python version does offer
platform-specific modules
but only for Windows and Unix
(unix does includes mac and any
Cocoa binaries that are runnable from the shell,
so our access core services
is by feeding text to a shell?! ).

. the best idea I found was ObjP:
-- much less complex than PyObjC --
it's a code generator that helps with both
embedding python into obj'c,
and extending python with C
from which you can use obj'c .
. if you'd still rather use PyObjC,
there is support for it in xcode 4 .
(see Xcode4CocoaPythonTemplates)

. a future idea I found from this search
was a python equivalent to Apple's MacRuby:
instead of being a bridge to cocoa,
it would have Python implemented in Cocoa
-- just like Jython is impl'd in Java . Mython ?

6.30: AppleScriptable or stay with Python?:
. mac's vision for scriptable app's
revolves around the use of AppleScriptObjC,
which expects you to write your tools in obj'c,
and then compose tools using AppleScript .
. obj'c can compile and run AppleScripts
by using NSAppleScript .
. Python can do the same with osascript
-- call AppleScripts from python --
or
NSAppleScript -- build & run it in Python .
. see Designing for Scriptability
about ensuring your interface language
fits in with AppleScript ...
and before you give up, consider this:
many of your users
might rather reuse your code with
Apple's Automater or Applescript Editor
than with python's tools .

2012-07-17

android vs iOS

6.13: news.cyb/dev.android/compared to iphone:
7.17: summary:
. suprised to learn that Android dev's
tend to rely on ad' trackers for revenue;
whereas, iphone dev's expect users to pay .
. both platforms have problems with
backward compatibility of apps,
but Android also has problems with
make- and model-specific apps .