In what might be the biggest release of this week (so far), I am proud to announce an updated piece of software on which I have been working for a long time. Freech (which was formerly known as Tefinch, and Ammerum before that) is a threaded discussion forum for PHP5/MySQL5.

This new release comes with a shitload of new features:

Freech supports user accounts and groups. It currently provides a fixed number of four groups: Administrators, Moderators, normal users and anonymous users).

The user registration is fully automated, and users need to confirm their email address before activating an account.

A powerful new search feature was added:

There is a completely new administration interface: Administrators may edit users and manage groups, and moderators may lock messages in the forum.
Users may now also create polls:

Several “special pages” were added, such as a list showing the number of postings per user, and a statistics feature.

Freech also has a “sticky” feature, allowing moderators to pin a message to the top of the forum. There are many more features, and generally, Freech is a lot more polished than it used to be. Most of the features are plugins, so all most features can be easily disabled. On top of it all, the performance was also drastically improved, even when all new plugins are enabled.

pywsgi is a brand new and very simple Python module for web applications. Applications using pywsgi will work with WSGI, CGI, and mod_python; the differences between these environments are abstracted. It also handles sessions, cookies, and GET/POST data. It also comes with some useful tools for URL handling.

The above code will work with both, mod_wsgi and mod_cgi. Note that accessing GET, POST, COOKIE, and SESSION data is completely uniform via a dictionary-like Table object.
This initial release also comes with complete API documentation.

SpiffWorkFlow is a powerful workflow engine based on WorkflowPatterns. This is the first release that is pretty much feature complete and is clearly moving towards a stable API, though some changes may still be made.
New features in this release:

The second package for today is yet another initial release: termconnect is a Python module for accessing terminal based protocols such as Telnet and SSH.
Because the telnet module that is shipped with Python is incomplete, poorly implemented, and does not have a generic API, termconnect was written to provide a clean and simple replacement.

The API for SSH is absolutely identical, so changing the protocol in your code is a matter of changing the import statement - that is the way it ought to be. In addition, there is a Dummy protocol adapter that may be used for testing your code - it is a fake protocol that emulates a device.

The code is already pretty well tested, so I am confident that this initial release is mature enough for production environments.

Here is another initial release: SpiffWorkQueue is an asynchronous, multi-threaded queue. The following example shows how to execute two tasks in parallel. In the example, each task consists of a sequence of two actions:

Release 1.7.0 adds several new translations, fixes some potential build problems and also adds a better desktop file. Thanks to Henry-Nicolas Tourneur for improving the build infrastructure to make it easier to use for packagers. Also thanks to all translators, including:

After almost half a year of silence, I am pleased to make an announce:

Starting on Monday, I will dump large amounts of fresh free software on the public.

This had a long time coming; for about a year now I spent most of my programming time cleaning up, redesigning, and improving my projects, shaping them into higher quality software packages and simplifying everything from user interfaces to APIs to the build procedures. To me this is also an exercise in simplifying the release process. As a first step, I removed all of the project pages from my homepage, instead integrating the content on the project pages on code.google.com. I am hoping that this will save me from some maintenance work in the future.

So what is the plan? I will release at least two software packages every single day, for a week. That means all kinds of software: Some for end users, some for the web, some for Python developers; some are major updates or new releases, some bring higher quality and additional polish.