Hello every one,
I am pleased to announce the release of Solipsis, licensed under the
GNU Lesser General Public License.
Solipsis is a peer-to-peer system for a massively
multi-participant virtual world. Like any real pear-to-pear system,
there is no server at all: it only relies on end-users' machines.
The shared virtual worlds of nowadays MMORPG strongly rely on
privately owned servers. These servers are an expensive bottleneck
that limits their scalability. In addition, these servers bound the
freedom of the virtual world inhabitants and the imagination of the
world-builders and developers. Solipsis solves these problems with a
free and open-source system.
Solipsis is a public virtual territory. The world is initially empty
and only users will fill it by creating and running entities. No
pre-existing cities, habitants nor scenario to respect...
Solipsis is open-source, so everybody can enhance the protocols and
the algorithms. Moreover, the system architecture clearly separates
the different tasks, so that peer-to-peer hackers as well as
multimedia geeks can find a good place to have fun here!
Getting the software
The current version is 0.8.1,
available as a tar.gz and as a windows installer
Official Web site
Current implementations of node and navigator require:
* pythonâ(at least 2.3)
* wx-pythonâ(at least 2.5)
* twistedâ (at least 1.3, 2.0 not tested yet)
* Python Imaging Library (PIL)â
Emmanuel Bréton LOGILAB, Paris (France)
Tel: 01 45 32 03 12 http://www.logilab.org
Topic - Tutorial: Web programming in Python with Paste
This month Ian Bicking will be presenting a tutorial Python web
programming, using several different systems: Python Paste,
Webware/WebKit, Zope Page Templates (not just for Zope!), and
SQLObject. The technology covered will be similar to those presented
in the To-Do tutorial. Except it will be live and in person.
I (Ian) plan to develop a small application from scratch in front of
everyone without preparation (or even forethought) -- you will get to
gasp in disappointment or awe as I no doubt both embarrass and redeam
myself. Hopefully this will present a realistic picture of what
development is like with the stack, mistakes included.
There will also be time to chat, and many opportunities to ask
questions. We encourage people at all levels to attend.
This month Dave Rock and Acxiom will be hosting ChiPy in Downer's
3333 Finley Road
Near the intersection of I-355 and Buttefield Road. Convenient to Fry's!
There's ample parking! Carpooling from the city? Check the mailing list.
Mailing List: http://lonelylion.com/mailman/listinfo/chipy
Python Paste: http://pythonpaste.org
Zope Page Templates: http://www.zope.org/Documentation/Articles/ZPT1
To-Do tutorial: http://pythonpaste.org/docs/TodoTutorial.html
ChiPy meets once a month on the second Thursday.
I am pleased to announce version 2.6.2 of the Python bindings for GTK.
The new release is available from ftp.gnome.org as and its mirrors
as soon as its synced correctly:
Changes since 2.6.1:
- Allow None to be sent in to set_group radio widgets
- guint/gsize as longs (Gustavo)
- Check for exceptions in child_watch (Mark McLoughlin)
- Bug fixes (Johan, Manish Singh, John Finaly, Ulrik Svensson)
GTK is a toolkit for developing graphical applications that run on POSIX
systems such as Linux, Windows and MacOS X (provided that the X server
for MacOS X has been installed). It provides a comprehensive set of GUI
widgets, can display Unicode bidi text. It links into the Gnome
Accessibility Framework through the ATK library.
PyGTK provides a convenient wrapper for the GTK+ library for use in
Python programs, and takes care of many of the boring details such as
managing memory and type casting. When combined with PyORBit and
gnome-python, it can be used to write full featured Gnome applications.
Like the GTK+ library itself PyGTK is licensed under the GNU LGPL, so is
suitable for use in both free software and proprietary applications. It
is already in use in many applications ranging from small single purpose
scripts up to large full features applications.
PyGTK requires GTK+ >= 2.6 and Python >= 2.3 to build.
Bug reports, as always, should go to Bugzilla; check out
http://pygtk.org/developer.html and http://pygtk.org/feedback.html for
to posting and querying bug reports for PyGTK.
I've released a new version of Frog, a web log server written in 100% python.
Get version 1.5 from http://snakelets.sourceforge.net/frog/index.html
Some of the features:
- multi user
- no database needed (uses files for storage)
- no web server needed (it runs in Snakelets, which has its own web server)
- splitted articles ("read more...")
- email notification when comment is added
- formatting similar to 'bbcode', supports images and other files
- anti-spam measures: puzzles, auto-updating blacklist,
anti-indexing hyperlinks in comments (rel="nofollow")
- outputs lean xhtml+css pages
- RSS feeds
- fully unicode compatible
- web-based file manager, available as separate module
Detailed info on the site mentioned above.
Have fun :)
PS You can see Frog in action here:
The Argentine Python User Group, PyAr, will have its nineth
meeting this Thursday, May 12nd at 7:00pm.
Despite our agenda tends to be rather open, this time we would
like to cover these topics:
- See what we'll do with the t-shirts, and other "merchandising".
- Analyze a future meeting point.
We're meeting at Hip Bar, Hipólito Yirigoyen 640, Ciudad de Buenos
Aires, starting at 19hs. We will be in the back room, so please ask
the barman for us.
For more information on PyAr see http://pyar.decode.com.ar (in Spanish),
or join our mailing list (Also in Spanish. For instructions see
We meet on the second Thursday of every month.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
La información contenida en este mensaje y cualquier archivo anexo al mismo,
son para uso exclusivo del destinatario y pueden contener información
confidencial o propietaria, cuya divulgación es sancionada por la ley.
Si Ud. No es uno de los destinatarios consignados o la persona responsable
de hacer llegar este mensaje a los destinatarios consignados, no está
autorizado a divulgar, copiar, distribuir o retener información (o parte de
ella) contenida en este mensaje. Por favor notifíquenos respondiendo al
remitente, borre el mensaje original y borre las copias (impresas o grabadas
en cualquier medio magnético) que pueda haber realizado del mismo.
Todas las opiniones contenidas en este mail son propias del autor del
mensaje y no necesariamente coinciden con las de Telefónica Comunicaciones
Personales S.A. o alguna empresa asociada.
Los mensajes electrónicos pueden ser alterados, motivo por el cual
Telefónica Comunicaciones Personales S.A. no aceptará ninguna obligación
cualquiera sea el resultante de este mensaje.
Finally, the long awaited (*ahem*) release of **rest2web**.
It's an early release - lot's more features still to be added - but it
all works. *Hurrah*
rest2web is a tool for autogenerating websites. It allows you to store
your contents in reST format, and generate pages and indexes from
templates. It uses a simple but flexible templating system and
generates index pages and navigation links.
This means that adding new pages is as easy as dropping a text file
into the right folder. rest2web will handle adding the link to the
index page and creating the new page from a template and the contents.
Removing a page is as easy as deleting a single file, and have rest2web
automatically rebuild the indexes.
The download includes the rest2web code, and docs, and a test site. The
test site serves as a simple illustration of how rest2web builds pages
For full details see any of the following pages :
* `rest2web Docs` - http://www.voidspace.org.uk/python/rest2web
* `Example Site` -
* `Quick Download (608k)` -
The next features to add will be auto sitemap generation and a bigger
change (under the hood) to make the index data available to every page
in a section. This will allow pages to have sidebars with links, rather
than just a single index page per section.
I'm already building part of the Voidspace website with rest2web, over
the next few months it will take over....
Lots of other features, tested on Linux and Windoze.
Hi all -
I'm happy to announce the release of Python for .NET 1.0 RC1.
You can download it from:
Highlights of this release:
- Implemented a workaround for the fact that exceptions cannot be
classes in the CPython interpreter. Managed exceptions can now be
and caught naturally from Python
- Implemented support for invoking methods with out and ref parameters.
Because there is no real equivalent to these in Python, methods that
have out or ref parameters will return a tuple. The tuple will contain
the result of the method as its first item, followed by out parameter
values in the order of their declaration in the method signature.
- Fixed a refcount problem that caused a crash when CLR was imported in
an existing installed Python interpreter.
- Added an automatic conversion from Python strings to byte. This
it easier to pass byte data to managed methods (or set properties,
etc.) as a Python string without having to write explicit conversion
code. Also works for sbyte arrays. Note that byte and sbyte arrays
returned from managed methods or obtained from properties or fields
do *not* get converted to Python strings - they remain instances of
Byte or SByte.
- Added conversion of generic Python sequences to object arrays when
appropriate (thanks to Mackenzie Straight for the patch).
- Added a bit of cautionary documentation for embedders, focused on
correct handling of the Python global interpreter lock from managed
code for code that calls into Python.
- PyObject.FromManagedObject now correctly returns the Python None
if the input is a null reference. Also added a new AsManagedObject
method to PyObject, making it easier to convert a Python-wrapped
object to the real managed object.
- Created a simple installer for windows platforms.
All known bugs have also been fixed - thanks to all who have sent in issue
reports and patches for past releases.
At this point, the only thing I plan to do before a 1.0 final is fix any
new issues and add to the documentation (probably including a few specific
examples of embedding Python for .NET in a .NET application).
Brian Lloyd brian(a)zope.com
V.P. Engineering 540.361.1716
Zope Corporation http://www.zope.com
imgSeek is a photo collection manager and viewer with content-based
search and many other features. The query is expressed either as a
rough sketch painted by the user or as another image you supply (or an
image in your collection).
You may also do slideshows, generate web photo albums, edit image
metadata including EXIF and IPTC data, organize images into a keyword
hierarchy, and more.
* fixes bug at startup on new versions of PyQT
* fixes bug at startup when detecting locale
* Applied patch by Daniel Fahlgren. Fixes bug which made
compared image (when loaded from an external file) to be loaded
* implemented a "low level" jpeg loader, which interacts
directly with libjpeg so now imgSeek doesn't have to read the whole
jpeg file in order to generate thumbnails and add an image to database.
That represents a reduction by 1/3 to the time needed to thumbnail and
add images to the database. On some benchmarks, adding 160 files
(1600x1200) would take an average of 1'10" and now it takes 32".
* fixed bug on Windows where dialogs wouldn't show up again
after being closed
* fixed some unicode bugs
* added "Rename image" menu option
* finished Portuguese (BR) translation
* added i18n support
- Python 2.2.x, QT 3.x and PyQT 3.5. (3.4 should work)
- ImageMagick development files or QT development files.
- Python Imaging Library.
Complete ChangeLog: http://imgseek.python-hosting.com/timeline
I'm glad to announce pysqlite 2.0.beta1. The API is 98 % stable now. And
pysqlite itself should be a lot more stable too, now.
The most notable changes are a lot of fixed refcount bugs, and the added
Download the release here:
win32 binaries for Python 2.3: http://initd.org/pub/software/pysqlite/releases/2.0/2.0.beta1/pysqlite-2.0.…
win32 binaries for Python 2.4: http://initd.org/pub/software/pysqlite/releases/2.0/2.0.beta1/pysqlite-2.0.…
pysqlite homepage, bug tracker, wiki: http://pysqlite.org/
Changes since 2.0.alpha4:
- Added pysqlite 2.0 documentation: usage guide and source installation guide.
Adapted from kinterbasdb documentation with the permission of David Rushby.
- Fixed several refcount problems. Per test suite run, lose 0 references
instead of 550 per test suite run like in alpha4.
- If a database file cannot be opened, raise an OperationalError specifically
instead of a DatabaseError.
- Call the row factory with (cursor, row_tuple) instead of (row_tuple).
- Fixed a crash in .connect() when you tried to set a keyword argument. It's
quite annoying that Python doesn't offer a method to extract a single keyword
argument at C-level easily. Argh! So I bit the bullet and duplicated the
parameter extraction code.
- The type name of PrepareProtocol was corrected. Only interesting for
- Added more tests to the test suite.
- Implemented cursor.arraysize.
- cursor.rowcount is now -1 instead of None in case of "not determined", like
the DB-API requires.
- Implemented autocommit mode which replaces the ''no_implicit_begin''
parameter to the module-level connect(). This way, we're more compatible with
other DB-API modules. autocommit parameter in module-level connect and also
an autocommit property of connections. -- The "begin" method of connections
- Completely reworked the advanced type detection:
o connection.register_converter is gone
o instead, the dictionary connection.converters is exposed directly.
o The parameter more_types to the module-level connect is gone.
o Instead, use any combination of PARSE_DECLTYPES and PARSE_COLNAMES for
the new paramter detect_types.
PARSE_DECLTYPES will parse out the first word of a declared type and look
up a converter in connection.converters:
create table foo(col mytype not null)
The decltype would be "mytype not null", but PARSE_DECLTYPES will cut
out "mytype" and look for a converter in converters["mytype"]. If it
finds any, it will use it to convert the value. Otherwise, the standard
SQLite manifest typing will be used.
PARSE_COLNAMES will parse out the column names and look up a converter in
cur.execute("select 1 as "colname [mytype]")
the column names will be parsed for [...], in this case mytype will be
found as the type for the colum, and the converters dictionary will be
consulted for an appropriate converter function. If none is found, the
standard SQLite manifest typing will be used.
Also, the column names in cursor.description will only consist of the first
word. So it would be "colname" in our example, not "colname [mytype]".
- cursor.coltypes is gone.
- The connection attribute of cursors is now made available at Python level.
That's an optional DB-API extension.
- The exception classes are now attributes of the connection objects. That's an
optional DB-API extension.
- Optimized the _sqlite_step_with_busyhandler() function by making time.time()
and time.sleep() available at module import instead of importing the "time"
module each time and getting out the "time" and "sleep" functions each time.
Big performance improvement.
- Some work on the benchmarks.
- Made the destructor of the Cursor class more stable. It used to crash when an
error occured in the Cursor *constructor*.
- Implemented a check that the parameter for Cursor() is actually an instance
of the Connection class (or a subclass thereof).
- Allow long integers as parameters. Re-enable test cases for this.
Gerhard Häring - gh(a)ghaering.de - Python, web & database development
pysqlite - Powerful and fast embedded database engine "SQLite" for Python.