As both a nerd and a professional nerd I write a lot of software. Philosophically I like the idea of open-sourcing the lot, but that’s not really practical. Firstly, a lot of the code I write is with my work hat on, and a lot of that has to remain confidential. Secondly, a lot of the code I write would be of no use to anyone else, so it’s not worth the effort needed to open source it. Regardless, some of the code I write for work has been released to the community, and I’ve also released some of my own personal code to the world as well.

With my Personal Hat On …

Note: I’m in the process of migrating my open source software to my GitHub profile.

  • – a Perl Module for Generating Secure Memorable Passwords

    Note - updated to version 0.2.1 on 7 August 2012. (Release notes)

    Note - updated to version 0.2 on 29 July 2012. (Release notes) is the library behind the online password generator That site will give you a good understanding of the libraries capabilities.

    The module was inspired by Steve Gibson’s Password Haystacks Project, and this XKCD Web Comic. The module uses dictionary words as the starting point for generating a password, but then allows them to be manipulated in a number of ways to add more or less complexity as desired. A separator can be chosen to connect the words, an arbitrary number of random digits can be added before and after the words, and an arbitrary amount of padding can be added before and after the words and numbers using any character. As well as this the library allows some transformations to the words, including capitalisation changes, and 133+ substitutions.

    The module does not import any other Perl modules, and can work with any dictionary file formatted to have one word per line (lines starting with # will be ignored). The Module is released under the FreeBSD License, so it is entirely free to use, for both commercial and non-commercial uses, as long as my copyright notices are left in place. I would ask for a credit and a link back to though.

    The download package below contains the module (, as well as a sample dictionary file (sample-dict.txt), and a Perl script with an example of how the module should be used (


With my Work Hat on …

Some, but not all, of the open source code I release for work can be found on my work GITHub profile.


One of my responsibilities in work is to manage our monitoring system, and as part of that I write a lot of custom Nagios plugins. The majority are not suitable for release, but two have been open sourced:

  • Check Rsyslog DB – a plugin to check that rsyslog is successfully logging to a Database. The plugin sends a log message via syslog, waits a few seconds, then attempts to retrieve the entry from the DB.
  • Check Apache Server Status – a plugin to monitor an Apache web server using mod_status. Quite a few other similar plugins exist, but my plugin is a little different in that it uses percentages rather than numbers of slots to set thresholds, and it also monitors for slowloris-style (D)DOS attacks.


Moodle is an open source CMS/LMS/VLE (depending on your persuasion and/or configuration). I spend a lot of time working with Moodle, and have been able to contribute some code back to the community:

  • I wrote the local_syslog Moodle 2.x plugin, which duplicates Moodle logs to syslog.
  • I’ve contributed code to Moosh (the Moodle Shell), a fantastically useful piece of software by Tomasz Muras.