Hearts for GNOME

This is Hearts, the classic card game for your GNOME desktop. Visit our gnome-hearts project page where you can find all the end-user and developer documentation, screenshots, downloads and other resources. The latest Subversion tarball is hearts.snapshot.tar.gz. The latest releases are available from the download page.

Officeshots is a free, open source webservice where you can upload your ODF documents so you can see how they render in the multitude of ODF supporting office applications. You can use it for free at It is a distributed web application and both the central server (written in CakePHP) and the client (written in Python) are freely available. For more information about the software, guides on how to run your own client or server and for reporting bugs, please visit the Officeshots Trac.

ODF-XSLT Document Generator

The ODF-XSLT Document Generator is a library written in PHP 5 that brings the full power of XSLT to your OpenDocument files. It enables you to use ODF files as if they were plain XSLT templates. It also includes a few extra parsing options that allow you to edit the XSLT parts of these ODF from within your favourite office suite. Grab the latest release from the download page, read the manual to learn how to use it and read the API documentation if you want to embed or extend the ODF-XSLT Processor.

Python Jukebox

This is a jukebox daemon similar to Music Player Daemon. I started developing my jukebox daemon after mpd stopped working on my server. It is written in Python and uses GStreamer for playback. It can handle any format that GStreamer will play. It can output to the local audio card or stream it to an IceCast server for broadcasting over the internet. Both at the same time even. Communication between the Jukebox daemon and various clients is done over the XMPP protocol (implemented using Python Twisted). There is also a GTK client called jukebox-gtk which mimics the old gmpc client for mpd.

There is no project page for the jukebox yet. You can check out the code from the jukebox subversion repository. You can also browse the source online. Keep in mind that this is only alpha quality software at the moment. Use it at your own risk. That said, I have been using this jukebox 24 hours a day, every day, on a large song collection since January 2008 with very few issues. About once a month playback stops due to a race condition I still haven't found. It also leaks a tiny little bit of memory somewhere deep in the bowels of GStreamer, but this is so little that you can use the jukebox for months before memory usage becomes a problem.

PHP comment spamfilter

This is a simple baysian comment spam filter based on bogofilter with one unique feature: It is compatible with the filter rulesets written for SpamAssassin. I developed this spam filter out of frustration with external scan services like Akismet. My frustration is two-fold. First, these services are too slow and too limited unless you take a paid account. Second, the quality is too low. Because many different blogs use these services they need to cater to the lowest common denominator to prevent too many false positives. A stand-alone spamfilter with rules and a baysian database optimised for a specific blog will yield much better results.

There is no project page for the spamfilter yet. You can check out the code from the spamfilter subversion repository. You can also browse the source online. Keep in mind that this is only alpha quality software at the moment. It requires knowledge of PHP to integrate it with your blog.