Desktop / Server Projects

Software I have written, that you might find useful. All of it is licensed under the GNU General Public License. Follow the links for more details, to download, or to get the source code. See also my Web Projects


Automatically runs pylint, pep8, jslint or closure linter on your code, and notifies you of the results. Simple Bash script using inotify. Bash script, Unix Philosophy

lintswitch on github


Python job manager for Gearman. A simpler version of Celery, for Gearman. Python, Upstart script

oilcan on github


A Firefox extension to tile several web applications on one page. Easy to setup, allows you to see your webmail, calendar, feed reader, whatever else you use, all on one page. Javascript, XUL

Get Foxden from


A Firefox extension to manage your Amazon S3 account. Very fast (even on buckets with 12,000+ items), drag and drop upload, all sorts of lovely stuff. Javascript, XUL and RDF

Since Amazon launched their S3 Console, there is no longer a need for FireBucket.

Get FireBucket from

Math Dodger

A Flash game, where you dodge the objects that follow sine, cosine and tangent, function curves. ActionScript 3

Play Math Dodger


A reddit bookmarklet hack, to reduce the noise and up the signal. Javascript using jQuery

All about Eddit


A presentation generator, and an Improv game. Python, wxPython, Flickr API.

All about Keithnote


A bot to monitor your server. Python with XMPP

All about JIMBo


A Python script to analyse a Java project and show the dependencies of a particular package. <br/> Python poking Java

All about jUse

Older / unmaintained projects

Sage – the graham patch

A comprehensive patch for the Sage feed reader Firefox extension. Javascript, XUL. Nowadays I use Google Reader.

All about the Sage patch


rcslib is a library for Python to access the rcs version control system. It used to be part of the source distribution but has been declared obsolete. This version should run on Python 2.2+. It has a ‘diff’ command which I added. This is used by Scribble in RCS mode.

This is a wrapper for the rcs utilities (ci, co, rlog, rcsdiff, etc) so the machine you run this script on will need those files to be available. Most Linux distributions should come with these pre-installed.



Scribble is a simple WikiWiki clone. That means an editable website. Includes decent set of formatting commands, RCS version control, Image upload / linking, E-mail updates, name highlighting, Search and What’s new / What’s changed.

Scribble is one Python file. You change three values at the top of it and ftp it up to your webspace and hey presto instant Wiki. Hope you like it.

If you need a more serious Wiki try TWiki, or the One Wiki To Rule Them All, aka MediaWiki.

If you are going to use the RCS mode of Scribble (which I recommend) you will need to put into the same directory as You can get rcslib on this page, above.

Currently only tested on Linux but should work everywhere.



Very simple templating and include system in Python. Use this to produce your website to keep your layout flexible. You put some tags in your html, you write a little configuration script, and templatelib produces your flat pages. Run through the README for a clearer view.

Up until October 2005 (when it moved to WordPress), the whole of darkcoding was generated with templatelib, for which it was written. templatelib allows you to mix static and dynamic files in a single page, and treat the dynamic as a separate Python program, and the static as an HTML file. At deploy time they will be safely merged.

Features include:

Currently only tested on Linux, but should be portable



NOTE: This webmail client has not been maintained or worked on since early 2004. I’m leaving this up in case this is helpful to someone as an example of mail protocols in Python.

A web-based POP3/SMTP client written in Python. If your ISP provides you e-mail but doesn’t have a web interface to it, this is what you need. Set some simple configuration settings, drop it into your web space, and off you go.

Features include:

Linux only


1 Comment »

  1. Imrani said,

    February 7, 2006 at 10:40

    hej kuj e bre a je mire qka je ka bon a po kan naj sen me qi aj o ok tung kalo mire se ika ok ciao te fala krejtve edhe kallxom per qat tel . ok edhe sa pare kushton ok tung kalo mire te fala

Leave a Comment

Note: Your comment will only appear on the site once I approve it manually. This can take a day or two. Thanks for taking the time to comment.