[ANN] Pyjamas-Gitweb 0.1 released

2012-04-18 Thread Luke Kenneth Casson Leighton
http://pypi.python.org/pypi/Pyjamas-GitWeb/0.1

Pyjamas-Gitweb is a pure python git repository browser, comprising an
independent JSONRPC back-end service written in 130 lines that can be
used by any JSONRPC client (a python command-line example is
included), and a front-end python (pyjamas) written in 350 lines.  In
combination with the back-end service, the front-end may either be
compiled to javascript and used on the web or it may be run directly
in python for use as a desktop git repository browser.

in other words, it's not much to look at, but it's kinda cool and it
does the job.  here's a working demo where you can browse the source
code with itself:
http://pyjs.org/pygit/pygit.html?repo=pyjamasgitweb.git

l.
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


Pyjamas 0.8.1~+alpha1 released

2012-04-16 Thread Luke Kenneth Casson Leighton
This is the 0.8.1~+alpha1 release of Pyjamas.  Pyjamas comprises several
projects, one of which is a stand-alone python-to-javascript compiler; other
projects include a Graphical Widget Toolkit, such that pyjamas applications
can run either in web browsers as pure javascript (with no plugins required)
or stand-alone on the desktop (as a competitor to PyGTK2 and PyQT4).

This announcement marks the beginning of the pyjamas 0.8.1 release
candidates.  Operating Systems, Browsers and Desktop Engines tested so
far are listed here:
http://code.google.com/p/pyjamas/issues/list

Downloads are available from the usual places:
http://pypi.python.org/pypi/Pyjamas
https://sourceforge.net/projects/pyjamas/files/pyjamas/0.8.1/

Pyjamas is slowly converting to running its own infrastructure using pyjamas
applications (which also operate as Desktop applications).  This includes:

* http://pyjs.org/pygit/ - a git repository viewer using python-git
* http://lists.pyjs.org/mail/ - a list viewer using lamson's json archive
* http://pyjs.org - a simple web engine using AJAX to get HTML pages
* the wiki http://pyjs.org/wiki is next (using python-dulwich)

The full source code of each of these applications is available and can be
used for projects and purposes other than for pyjamas itself.

The README is available here:
http://pyjs.org/pygit/#file=README&id=0d4b6787d01c3d90f2c8801c5c4c45e34145bbdd&mimetype=text/plain
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


[ann] pyjamas 0.8alpha1 release

2011-05-04 Thread Luke Kenneth Casson Leighton
after a long delay the pyjamas project - http://pyjs.org - has begun the
0.8 series of releases, beginning with alpha1:

https://sourceforge.net/projects/pyjamas/files/pyjamas/0.8/

pyjamas is a suite of projects, including a python-to-javascript
compiler with two modes of operation (roughly classified as "python
strict" and "Optimised"); a GUI Framework almost identical to that of
the GWT Project (1.5 to 1.7); and a "Desktop" version which is similar
in concept to Adobe Air, allowing python applications to be run -
unmodified - as stand-alone Desktop Applications.  pyjamas can
therefore be considered to be a Desktop GUI framework - a peer of GTK2
and QT4 - with the startling capability that applications can also be
compiled to javascript and run in any modern web browser with
absolutely no special plugins required, or it can be considered to be
an AJAX Web Framework with the massive advantage that applications are
written in python (not javascript) with a "Desktop" mode as well.
both descriptions are accurate, making pyjamas the world's only free
software python-based platform-independent, browser-independent,
GUI-toolkit-independent and OS-independent "Holy Grail" GUI
development environment [so there.  nyer, nyer to the corporate big
boys with access to $m who *still* haven't managed that one]

also included are ports of GChart and GWTCanvas, each of which run
under all web browsers and all desktop engines (with the exception at
present of the python-webkit desktop engines, which presently do not
support SVG Canvas).  all pyjamas UI libraries are designed to be
browser-independent as well as platform independent.  the usual
"browser foibles", tricks and gotchas are catered for with a
transparent "Platform Override" mechanism which ensures that the
published API of each UI Library is identical across all platforms
(including the Desktop Engines).  [no more "If Platform == IE or
Platform == Opera"]

due to the sheer number of modern browsers as well as the number of
pyjamas-desktop engines required to be supported, the 0.8 series will
be ready declared "stable" when sufficient community-led testing has
been done.  bugreports are in for Opera 11, IE8 and Google Chrome:
http://code.google.com/p/pyjamas/issues/detail?id=600
http://code.google.com/p/pyjamas/issues/detail?id=601
http://code.google.com/p/pyjamas/issues/detail?id=597

still requiring testing and confirmation is Opera 9 and 10; Firefox 2,
3, 3.1, 3.5, 3.6 and 4.0; IE6, 7 and 9; Safari 3 and 4, as well as
mobile phone browsers Android, Symbian Series 60, iphone, ipad and
blackberry OS 4.  also requiring testing and confirmation is the
Desktop Engines, of which there are now four variants: XulRunner
(Firefox Engine), pywebkitgtk, MSHTML and the new addition pywebkitdfb
(DirectFB).  each browser and each engine requires each of the 70
examples to be run, and in the case of the pyjamas compiler (pyjs),
compilation is required with both -O and --strict (with the exception
of the LibTest example).

the pywebkitdfb engine is a new addition, and merits a particular
mention.  some time last year, both GTK2 and QT4 independently
announced that they were dropping support for DirectFB from future
versions, and Enlightenment had not tested the DirectFB port for some
considerable time.  Webkit-GTK with the older GTK-DirectFB libraries
simply would not compile.  in the embedded space, where it can take 30
seconds to fire up Webkit-GTK on a 400mhz ARM9 and even longer to
start up WebkitQT4, this was something of a disaster.  To fix this, a
new port of Webkit was created which uses DirectFB directly, using a
tiny 50k Widget Toolkit called "Lite".  This development coincided
with the re-engineering of pywebkitgtk and the creation of the
pythonwebkit project, http://www.gnu.org/software/pythonwebkit:
pywebkitdfb was therefore also created at the same time.

Cutting a long story short, pywebkitdfb now exists and has a startup
time on 400mhz ARM9 processors of under 1.5 seconds.  The startup time
of both WebkitDFB and pywebkitdfb on Dual-Core 2ghz Intel systems is
so quick that it's difficult to determine: an estimate is under 0.1
seconds (100ms).  WebkitGTK. WebkitEFL and WebkitQT4 have
approximately 20 times or longer startup times.  So although WebkitDFB
is still significantly experimental, it is definitely worthwhile
considering, especially for Embedded Systems, but even for use on
X-Windows, and even just as a plain (but modern) web browser for those
people sick to the back teeth of long startup times on their web
browser [and it has python bindings, too.  yaay!]

summary: developing applications in pyjamas means the application can
be made to run just about anywhere, and it's an entirely python-based
and a free software framework.  it's a community-driven project, so
requires *your* input to get it to a proven stable state.

http://pyjs.org
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:

[ANN] PythonWebkit bindings for WebkitDFB

2010-11-25 Thread Luke Kenneth Casson Leighton
WebkitDFB is an experimental port to allow the webkit web browser
engine to use DirectFB (http://directfb.org).  It is lightning-quick
to start up (no large widget set to load), yet has the potential to
provide full HTML5 functionality.  The PythonWebkit project,
http://www.gnu.org/software/pythonwebkit brings 300+ DOM objects and
2,000+ fully W3C-compliant python-based DOM functions to webkit,
making python effectively a peer of javascript (doc.body.style,
getElementsByTagName, appendChild, setTimeout, XMLHttpRequest, onclick
etc.)

These two projects have been brought together in the same source
repository.  If startup time and CPU usage is important (as it is on
embedded systems) then please do consider helping with WebkitDFB by
funding its ongoing development and/or helping Denis out.  If startup
time and CPU usage and _python_ are important... :)

in this rather short announcement, it's easy to miss the significance:
yes, webkit the web browser engine, directfb the direct framebuffer
engine, and python the utterly cool and beautiful programming language
have been combined into the same package and sentence.  more
information at http://www.gnu.org/software/pythonwebkit.

l.
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


[ANN] git peer-to-peer bittorrent experiment: first milestone reached

2010-09-02 Thread Luke Kenneth Casson Leighton
http://gitorious.org/python-libbittorrent/pybtlib

this is to let people know that a first milestone has been reached in
an experiment to combine git with a file-sharing protocol, thus making
it possible to use git for truly distributed software development and
other file-revision-management operations (such as transparently
turning git-configured ikiwiki and moinmoin wikis into peer-to-peer
ones).

the milestone reached is to transfer git commit "pack objects", as if
they were ordinary files, over a bittorrent network, and have them
"unpacked" at the far end.  the significance of being able to transfer
git commit pack objects is that this is the core of the "git fetch"
command.

the core of this experiment comprises a python-based VFS layer,
providing alternatives to os.listdir, os.path.exists, open and so on -
sufficient to make an interesting experiment itself by combining that
VFS layer with e.g. python-fuse.

the bittornado library, also available at the above URL, has been
modified to take a VFS module as an argument to all operations, such
that it would be conceivable to share maildir mailboxes, mailing list
archives, .tar.gz archives, .deb and .rpm archives and so on, as if
they were files and directories within a file-sharing network.

as the core code has only existed for under three days, and is only
400 lines long, there are rough edges:

* all existing commit objects are unpacked at startup time and are
stored in-memory (!).  this is done so as to avoid significant
modification of the bittorrent library, which will be required.
* all transferred commit objects are again stored in-memory before
being unpacked.  so, killing the client will lose all transfers
received up to that point.

on the roadmap:

* make things efficient!  requires modification of the bittornado library.
* create some documentation!
* explore how to make git use this code as a new URI type so that it
will be possible to just do "git pull"
* explore how to use PGP/GPG to sign commits(?) or perhaps just
tags(?) in order to allow commits to be pulled only from trusted
parties.
* share all branches and tags as well as just refs/heads/*
* make "git push" re-create the .torrent (make_torrent.py) and work out
  how to notify seeders of a new HEAD (name the torrent after the HEAD ref,
  and just create a new one rather than delete the old?)

so there is quite a bit to do, with the priority being on making a new
URI type and a new "git-remote-{URI}" command, so that this becomes
actually useable rather than just an experiment, and the project can
be self-hosting as a truly distributed peer-to-peer development
effort.

if anyone would like to assist, you only have to ask and (ironically)
i will happily grant access to the gitorious-hosted repository.

if anyone would like to sponsor this project, that would be very
timely, as if i don't get some money soon i will be unable to pay for
food and rent.

l.
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


HL7 v3 (XML) importer

2010-08-07 Thread Luke Kenneth Casson Leighton
an HL7 v2 importer was written by john paulett, and it has been
enhanced to support some of the HL7 v3 standard, which is XML-based.
no dependencies are required: xml.sax is used so as to reduce the
dependencies to purely python.

additionally, as HL7 has versions/revisions, published data
specifications were pulled from mirthcorp.com and transformed into
python, automatically. HL7v3 revisions 2.1, 2.2, 2.3, 2.31, 2.4 and
2.5 are supported.

there is still work to be carried out: MSH, PID, NTE, ORC, ORB and OBX
are the presently supported segmentss, with a hard-coded assumption
about the data hierarchy instead of using the same MessageFormat
specifications that mirthcorp.com have written.  this is likely to be
corrected soon, but the project for which the code is being updated
only requires "lab data imports", so support for other MessageFormats
is not a high priority.

in case anyone is interested, this hl7 library is to be used in
gnumed, to be able to import laboratory data reports into the gnumed
database.

code is at: http://github.com/lkcl/hl7

i realise that this code is pretty specialist, but if you're looking
around for free software libraries or applications that support HL7,
http://mirthcorp.com is pretty much it, and mirth is pretty heavy-duty
and forces a dependency of java and javascript for scripting, which
may be of concern to some.  hence, this smaller library is being
created, in python.

l.
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


grailbrowser now running under python 2.5 (probably above too)

2010-07-11 Thread Luke Kenneth Casson Leighton
source at:
http://github.com/lkcl/grailbrowser

$ python grail.py (note the lack of "python1.5" or "python2.4")

conversion of the 80 or so regex's to re has been carried out.
entirely successfully or not is a matter yet to be determined.  always
a hoot to try browsing http://www.bbc.co.uk or http://www.youtube.com
with a browser from 11+ years ago, it still cannot be resisted as
grail is the only working graphical web browser in the world written
in pure python [pybrowser is still in development, stalled].

l.
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


[ANN] git JSONRPC web service and matching pyjamas front-end

2010-06-30 Thread Luke Kenneth Casson Leighton
as more than just a proof-of-concept but to get pyjamas out of looking
like "a nice toy, doesn't do much, great demos, shame about real
life", i've created yet another git repository browser.  this one,
thanks to pyjamas, obviously runs as both a desktop application and
also as a web application - same source code.

pyjamasgitweb is actually two independent happily small projects.  the
first is simply a JSONRPC-based git web server (in python, using
python-git) and the second is a matching front-end.

the front-end is happily bare but functional.  a demo is here (please
be nice to it) where you will see immediately a total lack of colour
or even borders:
http://pyjs.org/pygit

if anyone wants the source code, or to help contribute, it's at:
   git clone gitol...@pyjs.org:pyjamasgitweb

to start the server, read the README, install the dependencies, then do:

$ cd jsonservice
$ python srv.py {path to top level of repository} &
$ cd ../pyjamas
$ ./build.sh # requires symlink ~/bin/pyjsbuild to sandbox
$ firefox http://127.0.0.1:8000/outputJSONRPCService.html &
$ python JSONRPCService.py # for the desktop version

l.
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


[ANN] pyjamas 0.7 released

2010-04-25 Thread Luke Kenneth Casson Leighton
pyjamas - the stand-alone python-to-javascript compiler, and separate
GUI Widget Toolkit, has its 0.7 release, today.  this has been much
delayed, in order to allow the community plenty of time between the
0.7pre2 release and the final release, to review and test all the
examples.

pyjamas allows developers to create applications that will run either
in any modern web browser (with no plugins required) or as a
stand-alone cross-platform desktop application (like PyQT4 or PyGTK2),
WITHOUT requiring modifications to the original python source.  this
concept is singularly unique in the free software python world, but is
conceptually similar to Adobe AIR and Silverlight - without the
massive plugins required.

there has been significant improvements, features and libraries added
in between 0.6 and 0.7: please see the README in the distribution for
details.  for fits and giggles, to show what's possible in only 400
lines of python, here is a game of asteroids, written by joe rumsey.
yes, it runs under pyjamas-desktop too.

http://pyjs.org/examples/asteroids/public/Space.html

For more information, see:

http://pyjs.org
http://pyjs.org/FAQ.html
http://pyjs.org/features.html

http://groups.google.com/group/pyjamas-dev

downloads:

http://pypi.python.org/pypi/Pyjamas
http://code.google.com/p/pyjamas
http://sf.net/projects/pyjamas

known major bugs:  http://code.google.com/p/pyjamas/issues
#391 (google chrome beta)
#384 (text selection on opera 10.51)

contributions and investigations by community members to fix these and
other issues welcomed and encouraged.
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


[ANN] Pyjamas 0.7pre1 Web Widget Set and python-to-javascript Compiler released

2009-11-04 Thread Luke Kenneth Casson Leighton
Current Release: 0.7~pre1
---

This is a 0.7 prerelease of Pyjamas, to invite users to help test the
latest version.  The latest svn is regularly but informally tested
against the regression tests and the examples, and used in production,
but not extensively tested against all known browsers on each commit.
Community assistance by running against a wider range of browsers ensures
that *you* get a stable release.

Pyjamas
---

Pyjamas is a port of Google Web Toolkit to Python, and thus enables
the development of Rich Media AJAX applications in Python, with no
need for special browser plugins.  Pyjamas contains a stand-alone
python-to-javascript compiler, and also a Widget Set API that looks
very similar to Desktop Widget Set APIs (such as PyQT4 or PyGTK2).

Pyjamas also contains a Desktop Widget Set version, running as
pure python.  Using web browser technology provides an
alternative to PyQT4 and PyGTK2 that has the advantage of having
full support for HTML, CSS, Plugin and other web-related features
already built-in.  For the windows port, this can save users around
30mb of downloads, as MSHTML is preinstalled as part of IE.

For more information, see:

http://pyjs.org
http://pyjs.org/FAQ.html
http://pyjs.org/features.html

Known bugs: http://code.google.com/p/pyjamas/issues
#290, #227, #228, #230, #304

Changelog Summary
-

Features and enhancements of the stand-alone 0.7 series javascript
compiler include:

* the addition of generators (support for yield, by rewriting the function
  so that it can be re-called and continue from the previous state);

* the beginnings of decorators support, and support for properties;

* some dramatic performance improvements due to a rewrite of for-loops;

* improved support for import syntax (from . import module);

* the addition of a built-in AST parser, use of which allows python 2.4
  to compile programs with python 2.5 / 2.6 syntax into javascript;

* addition of int and long types, and support for operator functions,
  so that e.g list multiplication by numbers and list addition now work,
  along with coercion between int, float and long types, and support
  for floating point exceptions.

Overall, this release is a significant "pythonic" upgrade: for full
details, see the CHANGELOG.

In the User-Interface suite, which is separate from the Pyjamas
stand-alone python-to-javascript compiler, the features and
enhancements include:

* An SVG / VML Canvas Library (a port of GWTCanvas).  This has been ported
  to pure python, and consequently work under Pyjamas-Desktop as well.

* A Graphical Chart Library (a port of GChart). This has been ported
  to pure python, and consequently work under Pyjamas-Desktop as well.
  For the same speed optimisations present in GChart, GChart for Pyjamas
  can also use the python port of GWTCanvas.

* An internal restructure of Event handling, similar to GWT 1.7,
  providing Focus, Mouse and Click "Mixin" modules so that developers
  creating their own widgets have a minimal amount of work to do.
  This redesign could only take place once Pyjamas supported multiple
  inheritance (added in 0.6).

Pyjamas-Desktop
---

Pyjamas runs your application in a Web Browser (as javascript);
Pyjamas-Desktop runs exactly the same python application on the
Desktop (as python)

http://pyjd.org

Release 0.6 of Pyjamas incorporated Pyjamas-Desktop directly into
the Pyjamas Distribution.  To use Pyjamas-Desktop there are three choices,
with more planned [MacOSX PyObjC; KDE's PyKHTML].

All ports of Pyjamas-Desktop will require a JSON library to be
installed: as there are plenty already, it is counter-productive
to write yet another one.  Simplejson is recommended.

1) - XULRunner

install hulahop and python-xpcom.  hulahop is distributed with
both Debian and Ubuntu; python-xpcom is part of XULRunner and is
also distributed with both Debian and Ubuntu.  Other users should
investigate the installation instructions for python-xpcom and
hulahop for the operating system of their choice on the appropriate
web sites.

GNU/Linux, FreeBSD and other POSIX systems are strongly advised
to use XULRunner for Pyjamas-Desktop: it is the most stable of the
PyJD ports.

2) - PyWebKitGtk

you will need a patched version of pywebkitgtk:
http://code.google.com/p/pywebkitgtk/issues/detail?id=13

you will need a patched version of webkit:
http://github.com/lkcl/webkit/16401.master

Detailed build instructions are available here:
http://wiki.github.com/lkcl/webkit/helping-with-16401master

3) - MSHTML

For Windows users, all that's required, other than installing python
and Internet Explorer, is one further package: Win32 "comtypes".

Win32 "comtypes" can be downloaded here:
* http://sourceforge.net/projects/comtypes/
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


[ANN] Pyjamas 0.6 Web Widget Set and python-to-javascript Compiler released

2009-08-19 Thread Luke Kenneth Casson Leighton
Pyjamas 0.6 is finally out: many thanks to everyone who has
contributed.  Special thanks to Kees Bos; Bernd, Bernd and Jurgen from
LovelySystems.com; the people who showed an interest in Pyjamas at
EuroPython 2009; and especially to everyone who has helped during the
pre-releases, with testing and bugreports over the past few weeks.
For a full list of contributors, see CREDITS.

Downloads:
-

http://code.google.com/p/pyjamas/downloads
http://pypi.python.org/pypi/Pyjamas
http://sf.net/projects/pyjamas

Pyjamas
---

Pyjamas is a port of Google Web Toolkit to Python, and thus enables
the development of Rich Media AJAX applications in Python, with no
need for special browser plugins.  Pyjamas contains a stand-alone
python-to-javascript compiler, and also a Widget Set API that looks
very similar to Desktop Widget Set APIs (such as PyQT4 or PyGTK2).

For more information, see:

http://pyjs.org
http://pyjs.org/FAQ.html
http://pyjs.org/features.html

Known bugs: http://code.google.com/p/pyjamas/issues
#227, #228, #229, #230 and #232

Pyjamas-Desktop
---

Pyjamas runs your application in a Web Browser (as javascript); Pyjamas-Desktop
runs exactly the same python application on the Desktop (as python)

http://pyjd.org

Release 0.6 of Pyjamas also incorporates Pyjamas-Desktop directly into
the Pyjamas Distribution.  To use Pyjamas-Desktop there are three choices,
with more planned [MacOSX PyObjC; KDE's PyKHTML].

1) - XULRunner

install hulahop and python-xpcom.  hulahop is distributed with
both Debian and Ubuntu; python-xpcom is part of XULRunner and is
also distributed with both Debian and Ubuntu.  Other users should
investigate the installation instructions for python-xpcom and
hulahop for the operating system of their choice on the appropriate
web sites.

GNU/Linux, FreeBSD and other POSIX systems are strongly advised
to use XULRunner for Pyjamas-Desktop: it is the most stable of the
PyJD ports.

2) - PyWebKitGtk

you will need a patched version of pywebkitgtk:
http://code.google.com/p/pywebkitgtk/issues/detail?id=13

you will need a patched version of webkit:
http://github.com/lkcl/webkit/16401.master

Detailed build instructions are available here:
http://wiki.github.com/lkcl/webkit/helping-with-16401master

3) - MSHTML (experimental!)

For Windows users, all that's required, other than installing python
and Internet Explorer, is one further package: Win32 "comtypes".

Win32 "comtypes" can be downloaded here:
* http://sourceforge.net/projects/comtypes/

The MSHTML version primarily works.  Reports using IE8's MSHTML
engine would be appreciated.

Known bugs: the use of Tab to cycle through Keyboard Focus elements
is ineffective; onkeyup and onkeydown events are unresponsive,
but oddly onkeypress event handling works.
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


[ANN] pyjamas 0.6pre3 released

2009-08-14 Thread Luke Kenneth Casson Leighton
much as we'd very much like to declare a 0.6 stable release, really
really soon and move forward, the ChangeLog just keeps growing (133
and counting) with the bugfixes, testing and contributions since
0.5p1.

pyjamas is a port of GWT to python, and includes a
python-to-javascript compiler and a widget UI toolkit that is similar
to pyqt4, pygtk2 etc.  applications can either be run as javascript
(in a web browser) or on the desktop (using pyjamas-desktop) as
python.  conceptually therefore, pyjamas is similar to adobe AIR -
except that it's python, not ActionScript, and it's entirely free
software.  hurrah!

key changes:

* the python-to-javascript has been significantly reworked, and now
includes a --strict option which adds "python strict" features at the
expense of speed.  to disable these, and obtain speed instead, use
"-O"

* pyjamas-desktop has been merged into the pyjamas distribution, which
includes support for one stable browser engine (XULrunner, the same
engine behind firefox); pywebkitgtk (the engine behind safari and the
iphone) and MSHTML (IE's engine).  pywebkitgtk is useable (but
unfriendly - no DOM exception handling); MSHTML is even less friendly
- COM gets in the way at present, and eats even python exceptions).

there's a lot more that could be said, but you've probably noticed all
the other prerelease notices so 'nuff said, other than: thank you to
the people who've been helping and contributing with testing, patches
and more.

downloads and more information:

http://pypi.python.org/pypi/Pyjamas
http://sf.net/projects/pyjamas
http://code.google.com/p/pyjamas
http://pyjs.org
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


[ANN] Pyjamas 0.6pre2 Python Web Widget Set and Javascript Compiler

2009-07-28 Thread Luke Kenneth Casson Leighton
http://pyjs.org

this is a pre-release announcement, 0.6pre2, of the pyjamas widget set
and python-to-javascript compiler.  there are over 110 entries in the
CHANGELOG since the last stable release, 0.5p1, and so it was deemed
sensible to invite people to test this version before its next stable
release, 0.6.

pyjamas, being a port of GWT to python, comprises four main components:
* a stand-alone python-to-javascript compiler
* a desktop-based wrapper around python-xpcom or pywebkitgtk
* a browser "DOM" model wrapper interface
* a widget set similar to pygtk2 / pyqt4, based on DOM manipulation

significantly in the 0.6 series, pyjamas-desktop has been incorporated
into the build: "python Hello.py" will start a stand-alone app (just
as you would with pygtk2 or pyqt4) and "pyjsbuild Hello" will compile
the javascript version(s).

the combination means that pyjamas can run python applications -
unmodified - in all major web browsers, or on the desktop (using gecko
or webkit) in a similar fashion to adobe AIR.

in the javascript version: somewhere along the line, a massive
performance hit was introduced by accident. this has now been fixed.
however, random desperate attempts to improve performance, before the
mistake was corrected, mean that the pyjamas 0.6pre2
python-to-javascript compiler produces code that is stunningly quick.

also in the 0.6pre2 release, "strict" python options have now been
introduced, so that developers can expect much more support for the
standard python 2.5 / 2.6 language semantics.  the "-O" option
disables many of these features, bringing a quite significant speed
increase, by sacrificing python compatibility.  that's just the way it
has to be.

downloads can be found by following the links from http://pyjs.org -
sourceforge, code.google.com, pypi, all the usual places.

lastly - thank you to everyone who's helped with pyjamas: bernd,
bernd, jurgen, christian, kees, ondrej and many more, and especially
thank you to the people who helped out by pointing out bugs in the
0.6pre1 release, please keep it up!

l.
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


[ANN] Pyjamas 0.6pre1 ALPHA release of Pyjamas Widget Set

2009-07-11 Thread Luke Kenneth Casson Leighton
http://pyjs.org - Pyjamas is a port of GWT to Python that can run
applications both on the Desktop (like python-gtk2) and in all
major Web Browsers (as javascript).

This is an alpha release - 0.6pre1 - of the Pyjamas Web Widget Set.

It is a significant upgrade, incorporating Pyjamas Desktop which
can now use Mozilla XULRunner as well as PyWebKitGtk as the
browser engine.
Significant enhancements have been made to the javascript
compiler, which bring python strict features as well as a
relaxed (and faster) compile-time option.

The reason for the 0.6 pre-release is due to the number of
features and improvements added.

Many thanks to Kees, Lovely Systems, and all the people from
EuroPython 2009 who have helped contribute and generally make
Pyjamas fun to work with.

Downloads are available from:
http://code.google.com/p/pyjamas
http://sourceforge.net/projects/pyjamas
http://pypi.python.org/pypi/Pyjamas
-- 
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations/


[ANN] Pyjamas 0.5p1 Web Widget Set and python-to-javascript Compiler released

2009-04-12 Thread Luke Kenneth Casson Leighton
Pyjamas 0.5p1 - http://pyjs.org - is a bug-fix release.

Pyjamas is a Web Widget Framework, written in python, that is compiled
to javascript using its stand-alone python-to-javascript compiler.  It
began as a port of GWT, to python.

Many of the issues faced by web developers - javascript and CSS
incompatibilities and difficulties - simply go away, with Pyjamas,
thanks to the declarative style used for Pyjamas application
development, that's near-identical to that of python-qt4, python-gtk2
and python-wxWidgets.

The use of Pyjamas for application development turns web browsers into
a desktop widget application development platform, with the added
advantage over traditional desktop widget sets of having full access
to the complete set of HTML features of web browsers.

The stand-alone python-to-javascript compiler is also beginning to
develop into a python accelerator.  The combination of pyjs and pyv8,
or pyjs and python-spidermonkey, offers some interesting possibilities
for JIT compilation of python applications into x86 or ARM assembler
(using pyv8), by way of intermediate compilation to javascript.
Anyone who is interested in the possibilities should contact the
pyjamas developers at http://groups.google.com/group/pyjamas-dev

Downloads:
http://code.google.com/p/pyjamas
http://sf.net/projects/pyjamas
http://pypi.python.org/pypi/Pyjamas/0.5p1

Web Site:
http://pyjs,org
--
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations.html


[ANN] Pyjamas 0.5 Web Widget Set and python-to-javascript Compiler released

2009-03-12 Thread Luke Kenneth Casson Leighton
This is the release of Pyjamas 0.5, a python-to-javascript
compiler with an AJAX Web Widget set, for creating python
desktop-like applications that run in all major web browsers.

http://pyjs.org

Pyjamas is NOT "another AJAX framework" where the
widgets are predefined, fixed and inflexible.  Thanks to
the compiler, Pyjamas is a dynamic "framework's framework"
where developers can define their own web framework, in
Python classes and modules instead of being forced to
write code in pure Javascript.

The Pyjamas Web Widget set makes it possible for users
to develop Rich Media Applications as if they were writing
desktop applications, without having to know any Javascript,
or even very much HTML.  Developing applications using
Pyjamas is much more similar to and has far more in
common with developing PyQT4 or PyGtk2 applications than
it has with "traditional" AJAX web development.  Yet,
thanks to the applications actually running in a Web
Browser, developers get the best of both worlds.

For those people who prefer to stick to "true" Desktop
development, or who prefer to debug applications in
Python rather than rely on the debugging features of
Web Browser engines, there is the sister project,
Pyjamas-Desktop - http://pyjd.org

Pyjamas-Desktop allows the same application source code
to be run, unmodified, in both the web browser and as
a desktop application.

The 0.5 release is a significant functionality update.

Additions have been made to the core python-to-javascript
compiler such as support for exceptions (try / except), lambda,
and a debug option to track and print run-time stack traces,
in cases where the deployment of a javascript script debugger
is difficult or impossible (IE6 running under Wine).

Also, the code-generator has undergone a reorganisation,
and now has much better support for local and global
variable, function, class and module scopes.

Support for Dynamic loading of modules has been added,
where each python module now has its own javascript
(compiled) "cache" file.  This makes it possible to
share the modules across the 5 supported platforms,
bringing a dramatic reduction in the amount of compiled
javascript that is deployed.  Also, support for dynamic
module loading makes it much clearer how developers may
interact with pyjamas-compiled modules from existing
applications which already have an AJAX framework in place.

Users of previous versions of Pyjamas should note that the
UI widget classes have undergone a restructuring, reducing
the 4,000 line ui.py into 70 separate small modules.  The
reorganisation allows applications to undergo a significant
reduction in the amount of compiled javascript, by only
importing UI Modules that are needed.  Reorganisation
scripts can be found in contrib/pyjamas_0.4_0.5_upgrade/
that will help in the conversion of existing applications.

Also, to make developers' lives easier in both the testing
and deployment of pyjamas applications, buildout has been
added, along with a standard setup.py.

Finally, an experiment is included, which is the beginnings
of a way to speed up the execution of standard python,
in a similar way to Python-Psyco.

The combination of the pyjs python-to-javascript compiler
and PyV8 - http://code.google.com/p/pyv8 - becomes a JIT
compiler that supports both ARM and i386 assembler.

The use of the Google V8 JIT compiler provides a means
to dynamically load standard c-based python modules,
and the use of pyjs means that the intermediate javascript
is actually still human-readable.  These are two distinct
advantage over pypy, and the third advantage is that the
direct translation, instead of going through an intermediary
(RPython) means that the full dynamic semantics of the
python language are reflected into javascript, and still available.

Downloads are available at:
   http://code.google.com/p/pyjamas/downloads/list
   https://sourceforge.net/project/platformdownload.php?group_id=239074
   http://pypi.python.org/pypi/Pyjamas/0.5

Pyjamas Book is at:
   http://pyjs.org/book/output/Bookreader.html#Getting%20Started

Links to other documentation is on the main site:
   http://pyjs.org

Development and discussion is at:
   http://groups.google.com/group/pyjamas-dev

Subversion Source repository is at:
   https://sourceforge.net/scm/?type=svn&group_id=239074

IRC Channel is:
   #pyjamas at irc.freenode.net
IRC Logs (thanks to Tim Riker) at:
   http://ibot.rikers.org/%23pyjamas
--
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations.html


pyjamas 0.4p1 release

2009-01-15 Thread Luke Kenneth Casson Leighton
This is a minor patch release of pyjamas 0.4p1, the
Python-to-Javascript compiler and Python Web UI Widgets
Toolkit.

What is Pyjamas for?  Pyjamas allows a developer to create
U.I applications in python as if the Web Browser was a Desktop
Widget Set toolkit platform (like pygtk2, pywxWidgets and pyqt4,
only much simpler, and more powerful). No knowledge of javascript
programming is required: the python-to-javascript compiler
takes care of the conversion between python and javascript,
and the U.I widget set takes care of all the browser and AJAX
incompatibilities.

Why don't I find that exciting?  The significance of pyjamas
takes a while to sink in.  Or you're not a UI developer.
Or you've never been asked to write an identical app that
works on both the desktop and all major web browsers.
If you're a python developer who has followed the history
of web application development of the past decade, with
much frustration and disappointment, is overwhelmed
by Javascript, AJAX and the demands of the
"Web 2.00o0ooo0 Revverlushun", then Pyjamas is
something that you should consider investigating.

Pyjamas 0.4p1 Bug-fixes (and accidental Features)

Significant bugs fixed include HorizontalPanel's remove()
function, SimplePanel's clear() function, and sprintf
with multiple arguments ("%s %d" % ("hello", 2) will now
work)

Dialog Box now has modal functionality (thanks to jurgen
kartnaller).

HorizontalSplitPanel has been added, although both the
horizontal and vertical panels operate correctly on
Mozilla-based browsers, but Safari and IE need volunteers
to work on them.

Several more examples have also been added, including
a spreadsheet-like GridEdit example; a Transparent SVG
canvas clock widget (that actually tells the time); an
"Information Hierarchy" example that could be used as
the basis for an online cooperative spreadsheet editor;
Erik Westra's "Showcase" source code which provides
and shows the source of the 30 widgets being demo'd;
and a few other minor examples.

Discussion:
  http://groups.google.com/group/pyjamas-dev/

Bugs:
  http://code.google.com/p/pyjamas/issues/list

Downloads:
  https://sourceforge.net/project/showfiles.php?group_id=239074
  http://code.google.com/p/pyjamas/downloads/list

Web site:
  http://pyjs.org (pyjamas javascript compiler and UI widget set)
  http://pyjd.org (sister project, pyjamas-desktop)
--
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations.html


[ANN] Builds of PyWebkitGtk and Webkit-Glib-Gtk (r39359+#16401.master) for Debian i386, Debian AMD64 and Macports MacOSX 10.4

2009-01-01 Thread Luke Kenneth Casson Leighton
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=290457&release_id=650548

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.
whatev :).

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

[ANN] Pyjamas 0.4: Python Web Toolkit Release

2008-12-02 Thread Luke Kenneth Casson Leighton
This is the 0.4 Release of Pyjamas, the python-to-javascript
compiler and Web Widget set and framework.

Download Pyjamas 0.4 here:
https://sourceforge.net/project/showfiles.php?group_id=239074
http://code.google.com/p/pyjamas/downloads/list

Pyjamas started as a port of Google's Web Toolkit, to python.
Explaining why Pyjamas (and GWT) is so significant takes
some doing: the summary is that comprehensive desktop-like
user interfaces can be developed very simply, to run in
any modern web browser, without having to write a single
line of JavaScript. Further recommended reading is here:
http://advogato.org/article/993.html
http://advogato.org/article/981.html

The homepage is http://pyjs.org
The sister project, Pyjamas-Desktop, is at http://pyjd.org

Documentation on Pyjamas is considerable, and includes:
  http://pyjs.org/book/output/Bookreader.html
  http://pyjs.org/showcase/Showcase.html
  http://pyjd.sf.net/api
  http://pyjd.sf.net/controls_tutorial.html
  http://lkcl.net/pyjamas-desktop/docs/output/docui.html
Also, as the Pyjamas UI API is near-identical to that of
GWT 1.5, the GWT JavaDoc reference guide is still relevant:
  http://google-web-toolkit.googlecode.com/svn/javadoc/1.5/index.html
--
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations.html


Pyjamas 0.3 Release: python-to-javascript compiler and AJAX library

2008-10-02 Thread Luke Kenneth Casson Leighton
Pyjamas 0.3
---

Pyjamas is a python-to-javascript compiler and an AJAX-based
Widget toolkit for Web Development (for the sister project,
running pyjamas-based apps on the desktop, see
http://pyjd.sf.net which is based on http://webkit.org).

Pyjamas Applications are written in python, yet run in all
major web browsers - as javascript.  Specifically, the 0.3
release adds support for IE7.

Pyjamas is a port of Google Web Toolkit to python.  So,
where GWT is a Java-to-Javscript compiler plus widget set,
Pyjamas is a python-to-javascript compiler plus widget set.

Documentation and details are available at the web site,
http://pyjamas.sf.net

Download available at:
https://sourceforge.net/project/showfiles.php?group_id=239074
--
http://mail.python.org/mailman/listinfo/python-announce-list

Support the Python Software Foundation:
http://www.python.org/psf/donations.html