Old software by Rob Hague


Bookaroo is a booking system I wrote to keep track of supervisions whilst I was doing my PhD at the Computer Lab. It's based around CGI scripts written in Python. The data is stored in a human readable (though not pretty) XML file. An auxillary script generates reports from the data.


UnityWiki is a small, relatively simple Wiki written in Python, and based on PikiPiki. It's largely been superseded by more modern Wiki engines, but may serve as a basis if you want to write something yourself. (It also has a comment syntax that I've not seen elsewhere, aside from the MoinMoin installation we ported the content to.)


Newfile was my first substantial Perl script. It's job is fairly trivial, but incredibly handy; it creates files based on templates. It looks for a file called .template.XXX (where .XXX is the extension of the file you're trying to create), and then uses this as the basis of the new file. The .template files can contain arbitrary Perl code to execute, variables are expanded, and you can specify a template explicitly if the correct one can't be determined from the extension. For more details, see the comment at the start of the script.

The following archive contains the script, plus several example templates. There are a couple of minor bugs, but nothing show-stopping; I've been using the script basically as is for four years now, and it's proved more useful than annoying.

Blosxom Plugins

I've written a few plugins for Blosxom, the software I used to use to generate this site:


CLOTH: The Command Line Option Templates Header, a C++ library (provided in the form of a single header file) for parsing command line arguments. The nice thing about this is that you simply declare the options your program takes as variables, call the parser to fill them in, and then use them as if they were constants.