webkit-glib-gtk provides gobject bindings to webkit's DOM model.
pywebkitgtk provides python bindings to the gobject bindings of
webkit's DOM model.
files are available for download at:
https://sourceforge.net/project/showfiles.php?group_id=236659&package_id=29…
separate pre-built .debs for AMD64 and i386 Debian are included, for
pywebkitgtk and webkit-gtk with gobject bindings to the DOM model. if
you have seen OLPC/SUGAR's "hulahop", or if you have used Gecko / XUL
DOM bindings, or KDE's KHTMLPart DOM bindings, you will appreciate the
value of webkit-glib-gtk. pywebkitgtk with glib/gobject bindings
basically brings pywebkitgtk on a par with hulahop.
if you find the thought of pywebkitgtk with glib bindings, and/or
hulahop to be "all too much", then do consider looking at pyjd (the
other download from the same location, above). pyjd - aka
pyjamas-desktop - is a level "above" pywebkitgtk-glib, and is on a par
with pykde, pyqt4, pygtk2, python-wxWidgets and other desktop-based
widget sets. (side-note: the advantage of pyjd is that if you write
an app which conforms to the pyjamas UI widget set API, you can
compile the same python app source code to javascript and run it
directly in all major web browsers: see http://pyjs.org, which is a
python-to-javascript compiler).
code-stability-wise, pywebkitgtk and webkit-glib-gtk should be
considered "experimental" (not least because this is a release from a
svn build!). that having been said, pyjamas-desktop is declared
"production" because pywebkitgtk with DOM bindings, thanks to
webkit-glib-gtk, provides absolutely everything that pyjamas-desktop
needs (and if webkit-glib-gtk becomes a moving target, the DOM.py
abstraction layer in pyjamas-desktop will take care of it. if it
becomes a _severe_ moving target, pyjamas-desktop will drop webkit and
provide a python-hulahop / XUL-Geck port instead. or as well.
whatevrrrr :).
gobject-interface-wise, the webkit gobject DOM bindings that have been
added _can_ be considered to be "stable", as long as the underlying
webkit library IDL files are "stable" (additions to Console.idl were
made in the past couple of months, for example, and HTML5 is making
advances as well). that having been said, _some_ functionality proved
intransigent during the initial main development phase of the webkit
gobject DOM bindings, such as RGBColour conversion of CSS Style
Properties, and so were *temporarily* left out. given that
pyjamas-desktop is considered "production", that should give a pretty
clear indication of the importance of those rare bits of DOM model
bindings features that were left out. SVG Canvas bindings, however,
have NOT been included, as that would have added a further 120
gobjects to the list.
instructions for anyone brave enough to install webkit-glib-gtk from
source, themselves, on macosx:
http://github.com/lkcl/webkit/wikis/installing-webkit-glib-on-macosx
there is an (experimental) Portfile in the macosx 10.4 glib tarball, as well.
please note that the MacOSX build is NOT a "native" webkit build: it
is a GTK / X11 build (known as a "gtk port", in webkit developer
terminology). the reason for providing the MacOSX webkit-glib-gtk
build, along with a MacOSX port of pywebkitgtk is because the "native"
webkit build - which includes ObjectiveC bindings and thus can
automatically get python bindings - has very subtly different
functionality. whilst the native ObjectiveC bindings are more fully
compliant with the W3C standards, providing javascript-like
functionality where absolutely necessary, the webkit-glib-gtk build's
gobject bindings are going specifically for direct correspondance with
the functionality provided by the webkit javascript bindings, falling
back to alternatives where it is absolutely not possible to achieve
that goal.
the actual differences, however, are extremely small, percentage-wise.
out of around 300 objects, providing around 1,500 functions, and tens
of thousands of properties, there are approximately 20 functions that
are different, and only four properties that are different.
examples of the differences in the bindings APIs offered by ObjectiveC
and webkit-glib-gtk Gobject bindings include:
* the provision of the function "toString", which is known as a
javascriptism that is not in the W3C standard. _not_ providing this
function, which is a de-facto standard, is considered to be
inconvenient, especially as both Gecko's language bindings _and_
PyKDE's PyKHTMLPart bindings provide toString() functions. The
ObjectiveC bindings, in sticking to the W3C standard, religiously, do
not offer "toString". the reason for including toString in the
webkit-glib-gtk bindings should be fairly obvious: it is unreasonable
to expect developers who will be used to the de-facto existence of
toString in javascript to find that it's ... disappeared for no good
reason, thus forcing them to make unnecessary coding workarounds,
duplicating the exact same functionality that *already* exists in the
webkit library!
* hspace and vspace of HTMLAppletElement, and width and height of
HTMLEmbedElement, are often (mistakenly) set to "NNNpx", "100%" and
other values, in javascript, contrary to the W3C standards for
HTMLAppletElement and HTMLEmbedElement, respectively. to make life
easier for webkit applications (such as Safari, the iPhone browser and
other important webkit applications), an exception was made to allow -
and cater for or ignore, as appropriate, values in these non-standard
formats. Whilst the ObjectiveC bindings stick to the W3C standards,
and only allow hspace, vspace, width and height to be set to integer
values, the webkit-glib-gtk bindings take advantage of the underlying
webkit functions that perform the conversion, and are thus more
tolerant - with the proviso of course that it's perfectly possible for
users to shoot themselves in the foot by trying to set vspace="10em".
such foot-shooting will be silently ignored - just as it is if you
tried to do the same thing with javascript.
* XMLHTTPRequest.send accepts a DOMString on the webkit-glib-gtk
bindings, whereas what should actually be passed in is a Webkit
Document object. various attempts were made to create appropriate
TextDocument and XMLDocument objects: unfortunately they failed
miserably. fortunately, earlier versions of Webkit provided a version
of XMLHTTPRequest.send which accepts a DOMString argument, and this
version was reactivated for the webkit-glib-gtk bindings. the
ObjectiveC and all other bindings successfully pass in a Webkit
Document object. this issue will at some point need to be addressed,
however it's pretty low priority: using a DOMString works just as
well.
* Document.getSelection is considered to be a javascript-ism, and is
not made available to the ObjectiveC bindings. the function has been
added to the webkit-glib-gtk bindings just in case anyone feels like
using it.
anyone wishing to use the glib/gobject DOM model directly, in c, is
well advised to look at the example modified
WebKitTools/GtkLauncher/main.c which can be found here:
http://lkcl.net/pyjamas-desktop/main.c
this modified example is not "gobject-perfect" - there are a couple of
areas where an experienced gobject programmer will spot ref-count
losses that have yet to be addressed, however the code does some
really quite sophisticated messing-about of the DOM model, and
provides genuinely useful code snippets. developers may be intrigued
to know that some of the code-snippets, such as get_absolute_top(),
are direct ports from pyjamas-desktop of the DOM.py getAbsoluteTop()
function, which was in turn itself a direct port from the javascript
code inside pyjamas DOM.py of the same function name. the technique,
and the examples, will help other developers wishing to write
applications, by first writing or sourcing an example written in
javascript, and then following the same conversion techniques as can
be seen by comparing DOM.py getAbsoluteTop() with the example main.c
get_absolute_top().
anyone wishing to provide bindings to other languages, such as ruby,
perl or java: the pygtk-codegen-2.0 application pretty much made
mincemeat of webkit.defs (available on request, or look at
code.google.com/p/pywebkitgtk issue #13 - i may update the patch soon
enough) and absolutely _no_ funny business - overrides of _any_ kind -
were required! the only "funny business" that's in pywebkitgtk
overrides is to do with gtk, not the webkit gobject bindings. 300
objects, 1500 functions and tens of thousands of properties all get
added with a vanilla .defs file. unbelievable. so this spells "good
news" for the garbage-collecting languages (e.g. ruby, perl, possibly
java): if your language-of-choice's gobject-auto-generator is as good
as python-gobject's auto-generator, you should be up-and-running
within literally a couple of hours. oh - but first: i would advise
you to look at pywebkitgtk's "demobrowser.py" for guidance on how to
create a webkit gtk app (using your language of choice) first,
followed by looking at pyjamas-desktop's "pyjd.py" for further hints
on how to bind to the DOM model functions [pyjd.py is based on
demobrowser.py].
c++ is a different matter. webkitgtkmm will _not_ be gaining DOM
bindings based on webkit.defs. after discussions with jonathon
jongsma, we came to the conclusion that it would be far better to
write a _separate_ set of bindings (gobjectmm) actually in webkit, due
to subtle information being available that is lost by the time you get
to webkit-gobject c-bindings. anyone anticipating to write or have
webkitgtkmm "up-and-running", providing gtk / gobject bindings to
webkit's DOM model, should expect to take between three and four weeks
in writing a CodeGeneratorGobjectMM.pl, using the other WebKit
CodeGenerators as guides.
that's all, for now. bugs should be reported to the respective
bugtrackers of the appropriate projects -
http://code.google.com/p/pyjamas, http://code.google.com/p/pywebkitgtk
and http://bugs.webkit.org should do the trick.
l.
BleachBit is a registry, Internet history, privacy, and file cleaner
for Linux and Python v2.4 - v2.6.
Notable changes for 0.2.0
* Clean broken personal menu entries (.desktop files)
* Clean Firefox session restore (crashed sessions)
* Clean /var/tmp/ when cleaning /tmp/
* Clean VIM's .viminfo
* Introduce install packages for Mandriva and Ubuntu 8.10 (Intrepid Ibex)
Links
Announcement
http://bleachbit.blogspot.com/2008/12/bleachbit-020-released.html
Download
http://bleachbit.sourceforge.net/download.php
TakeNote is a simple cross-platform note taking program implemented
in Python. I have been using it for my research and class notes, but
it
should be applicable to many note taking situations.
TakeNote is ideal for storing your class notes, TODO lists, research
notes, journal entries, paper outlines, etc in a simple notebook
hierarchy with rich-text formatting, images, and more. Using full-text
search, you can retrieve any note for later reference.
TakeNote is designed to be cross-platform (runs on Windows, Linux, and
MacOS X, implemented in Python and PyGTK) and stores your notes in
simple and easy to manipulate file formats (HTML and XML). Archiving
and transferring your notes is as easy as zipping or copying a
folder. TakeNote is licensed under GPL.
TakeNote 0.4.5 has the following features:
* Rich-text formatting
* Bullet point lists
* Colored font
* Inline images
* Hierarchical organization for notes
* Full-text search
* Integrated screenshot
* Extension framework
* Spell checking (via gtkspell)
* Auto-saving
* Built-in backup and restore (archive to zip files)
* Cross-platform (Linux, Windows, MacOS X)
Web site and download:
http://rasm.ods.org/takenote
Documentation:
http://rasm.ods.org/takenote/manual.shtml
Matt Rasmussen
I'm pleased to announce the 0.7 alpha release of Lepton, a
high-performance, pluggable particle engine and API for Python. It is
designed for creating graphical special effects for games or other
visual applications. The engine is designed to be very flexible and
does not rely on any other libraries directly. You can use it either
with OpenGL (via pyglet, PyOpenGL, wxPython, etc), or with pygame by
selecting the appropriate renderer. Examples are provided using pyglet
and pygame. Although this is an alpha release, I think it is stable
enough to be useful, and I encourage you to give it a try.
The project page is here:
http://code.google.com/p/py-lepton/
You can also get it via pypi here:
http://pypi.python.org/pypi/lepton/
Changes in 0.7a include:
- Fader controller ported to C
- Added per-particle emitter and fireworks example
- Port Line and Plane domains to C
- Port Box domain to C, rename to AABox. deprecate domain.Box for reuse later
- Port Sphere domain to C, add support for inner and outer radius for
spherical shells
- Bounce controller gets separate bounce and friction parameters
- Improve lame pygame fill example to use new bounce features and be
less lame (2.5D, suhweet!)
- Implement particle proxy and vector object pools to reduce or
eliminate object allocation when iterating and traversing particles
from python
- Optimize particle group C typecheck function
If you have questions or comments or would like to contribute, you can
join the google group at:
http://groups.google.com/group/py-lepton-users
Enjoy.
-Casey
========================
Announcing PyYAML-3.07
========================
A new release of PyYAML is now available:
http://pyyaml.org/wiki/PyYAML
Changes
=======
* The emitter learned to use an optional indentation indicator
for block scalars; thus scalars with leading whitespaces
could now be represented in a literal or folded style.
* The test suite is now included in the source distribution.
To run the tests, type 'python setup.py test'.
* Refactored the test suite: dropped unittest in favor of
a custom test appliance.
* Fixed the path resolver in the LibYAML-based dumper.
* Forced an explicit document end indicator when there is
a possibility of parsing ambiguity.
* More setup.py improvements: the package should be usable
when any combination of setuptools, Pyrex and LibYAML
is installed.
* Windows binary packages are statically linked against
LibYAML-0.1.2.
* Other minor fixes and improvements (Thank to Ingy dot Net
and Andrey Somov).
Resources
=========
PyYAML homepage: http://pyyaml.org/wiki/PyYAML
PyYAML documentation: http://pyyaml.org/wiki/PyYAMLDocumentation
TAR.GZ package: http://pyyaml.org/download/pyyaml/PyYAML-3.07.tar.gz
ZIP package: http://pyyaml.org/download/pyyaml/PyYAML-3.07.zip
Windows installer:
http://pyyaml.org/download/pyyaml/PyYAML-3.07.win32-py2.3.exehttp://pyyaml.org/download/pyyaml/PyYAML-3.07.win32-py2.4.exehttp://pyyaml.org/download/pyyaml/PyYAML-3.07.win32-py2.5.exehttp://pyyaml.org/download/pyyaml/PyYAML-3.07.win32-py2.6.exe
PyYAML SVN repository: http://svn.pyyaml.org/pyyaml
Submit a bug report: http://pyyaml.org/newticket?component=pyyaml
YAML homepage: http://yaml.org/
YAML-core mailing list:
http://lists.sourceforge.net/lists/listinfo/yaml-core
About PyYAML
============
YAML is a data serialization format designed for human readability and
interaction with scripting languages. PyYAML is a YAML parser and
emitter for Python.
PyYAML features a complete YAML 1.1 parser, Unicode support, pickle
support, capable extension API, and sensible error messages. PyYAML
supports standard YAML tags and provides Python-specific tags that allow
to represent an arbitrary Python object.
PyYAML is applicable for a broad range of tasks from complex
configuration files to object serialization and persistance.
Example
=======
>>> import yaml
>>> yaml.load("""
... name: PyYAML
... description: YAML parser and emitter for Python
... homepage: http://pyyaml.org/wiki/PyYAML
... keywords: [YAML, serialization, configuration, persistance, pickle]
... """)
{'keywords': ['YAML', 'serialization', 'configuration', 'persistance',
'pickle'], 'homepage': 'http://pyyaml.org/wiki/PyYAML', 'description':
'YAML parser and emitter for Python', 'name': 'PyYAML'}
>>> print yaml.dump(_)
name: PyYAML
homepage: http://pyyaml.org/wiki/PyYAML
description: YAML parser and emitter for Python
keywords: [YAML, serialization, configuration, persistance, pickle]
Copyright
=========
The PyYAML module is written by Kirill Simonov <xi(a)resolvent.net>.
PyYAML is released under the MIT license.
Hi,
We're happy to announce release 0.71.5 of Task Coach. This release
adds one usability enhancement and a few bug fixes.
Bugs fixed:
* Don't wake up every second just to keep track of reminders and midnight.
* Hide main window after showing reminder dialog when it was hidden before.
* When marking a recurring task completed, recur its reminder too, if any.
* Refresh task status at midnight.
* Fix tab traversal in the effort editor on Linux.
Feature added:
* When double clicking an item in a viewer, open the editor on the
right page, depending on the column clicked. For example, when
clicking on the due date column in a task viewer, Task Coach will open
the task editor with the dates page raised. Patch provided by Carl
Zmola.
What is Task Coach?
Task Coach is a simple task manager that allows for hierarchical
tasks, i.e. tasks in tasks. Task Coach is open source (GPL) and is
developed using Python and wxPython. You can download Task Coach from:
http://www.taskcoach.org
In addition to the source distribution, packaged distributions are
available for Windows XP/Vista, Mac OS X, and Linux (Debian and RPM
format).
Note that Task Coach is alpha software, meaning that it is wise to
back up your task file regularly, and especially when upgrading to a
new release.
Cheers, Task Coach developers
This release is a bugfix release for the EMR plugin. Other additions and
changes are detailed in the changelog:
http://wiki.gnumed.de/bin/view/Gnumed/ToDo#AnchorDone03
What is it?
-----------
GNUmed is an open source Electronic Medical Record. It is developed by a
handful of medical doctors and programmers from all over the world. It can be
useful to anyone documenting the health of patients, including but not
limited to doctors, physical therapists, occupational therapists, ...
GNUmed is suited for Patient Handling, keeping a Medical Record including
measurements handling, Document Management, Forms and Letters. Other Client
Functionality includes various tools such as Snellen chart, statistics and
reporting as well as third party application connectivity
GNUmed supports multiple cross platform frontends and interfaces. Data is kept
in a PostgreSQL database. Features can be added through a plugin mechanism.
Requisites
----------
Python 2.4 or higher. WxPython, psycopg2, PostgreSQL 8.3
Obtaining GNUmed
------------------
The latest GNUmed version, examples and online
documentation can be downloaded from http://wiki.gnumed.de
The online CVS repository is at
http://savannah.gnu.org/cvs/?group=gnumed
--
Sebastian Hilbert
Leipzig / Germany
[www.gnumed.de] -> PGP welcome, HTML ->/dev/null