Software projects

A word on patents

Everything on this page would be made difficult or impossible by software patents being legalised in Europe. To learn more, and to find out how you can help stop the madness, please visit nosoftwarepatents.com.

Current projects

Palm applications

I own a Treo 680 and have started writing code for it. Here's my list of ideas.

Anti-spam address scheme enforcement

I intend to write whatever code is necessary around postfix to allow me to make up distinct email addresses to give to different organisations (itweek847@my.domain.example), and still bounce mail to randomly-generated or guessed addresses (e.g. somebody-elses-username@my.domain.example), without the use of a whitelist. I'll do this using a scheme that maps e.g. itweek to a few allowed numbers, simple enough to calculate in my head. The ideal is to be able to easily specify some perl that valid addresses must satisfy, and a blacklist of compromised addresses, and have mail to unwanted addresses bounced at the SMTP level, thus solving the problem of randomly-generated/composited addresses.

Packages for Debian GNU/Linux

I am the current maintainer of the packages listed below. As well as writing bash scripts, this involves working with code from upstream authors to ensure it installs and runs smoothly on Debian systems and is sufficiently well documented. It also involves passing on bug reports from Debian users and helping with the fixes where possible.

aewm++ and aewm++-goodies
A minimalist window manager written in C++ and some companion utilities.
crack-attack
A multiplayer OpenGL puzzle game.
klogic
A KDE digital logic simulator.
sapphire
Another minimalist window manager, from the same author as aewm++.

Future projects and ideas

Past projects

My fourth-year project — BtCafe

My group worked on a food ordering system using Java Micro Edition and Bluetooth. This allows customers at pubs and restaurants to order using their mobile phones or touchscreens at the tables, thus avoiding the need to reprint menus for changes and clearing space at the bar since placing a food order becomes completely automated.

My third-year project — c4

In brief, c4 is a command-line/CGI calendar for relatively experienced users, in C++, using MySQL for storage and the iCal standard field set. Its goals are flexibility, power and interoperability. It is a calendar for people like myself; an antidote to Outlook. This project achieved its stated goals (basic calendar functionality) within the available time, but has not been worked on since then.

EbQt, a user-interface in C++ with Qt

I have spent some time working on parts of EveryBuddy. My main contribution was the first working user interface, EbQt. Unfortunately, the EveryBuddy project as a whole stalled before making a stable release, but it is quite usable. You can download an SVN checkout. EbQt requires Qt; if you want MSN Messenger support, you will need Gnu TLS when compiling the core. There is also an EbQt manual.

An unnamed photo index script

This is how I display my photo collection. Its eventual aim is to clone bins as a PHP DirectoryIndex, generating thumbnails on first use and generally not requiring more than just placing the photos in a directory. It uses the same XML description files as bins and includes support for a latitude/longitude field on photos and albums.

JavaScript page-modification using Greasemonkey

Some scripts for Greasemonkey, which is a Firefox extension to make arbitrary client-side modifications to pages.

Computing Society website events system (in Python)

During the most recent attempt at a rewrite of the Computing Society website, I worked on the signup system. The project was postponed because those responsible for checking performance and compatibility with other systems made mistakes, but the experience was useful to me. As well as the usual web development skills, this improved my knowledge of Python and the XML-based markup systems of Zope.

Fetchmail patch (in C)

A while ago I wrote a patch to improve IMAP idling for fetchmail. Eric S Raymond accepted it into 6.2.4.

Tutorial for UWLUG: The Command-Line for the Terminally Challenged

This is a tutorial mainly for people who have had hardly any experience with Unix-like environments so far. The Department of Computer Science has a first-year course which gives an introduction to this (mostly in the first lecture) and then proceeds with its main subject: writing scripts in bash. The aim of this tutorial was to offer a slightly more in-depth guide to using the Linux command line for day-to-day operations.

There are two downloads available:

cmdline.tar.gz (352K)
The MagicPoint file and accompanying images, for viewing as a presentation.
cmdline-paged.ps.gz (356K)
Compressed postscript of a 6-up paged version that was printed and distributed to the audience for future reference.

Unfortunately, while wiki security issues are being addressed, the detailed page for the command-line tutorial is not available. I have also written a how-to on alternative desktop environments, which is also currently unavailable.


Valid XHTML 1.1 | Valid CSS 2.1 | Conforms to WCAG level AA | XFN Friendly | GeoURL| Use Any Browser | No Software Patents!