Open Source Software

These are some of the more interesting/useful Open Source projects I've developed. You can find others at GitHub.

Watchmaker Framework

A Java framework for implementing evolutionary/genetic algorithms.

Uncommons Maths

Java random number generators, probability distributions, combinatorics and statistics.


Intelligent RSS news aggregator that groups articles from multiple sources.


A Haskell application for generating HTML football league tables and statistics.

Software Development Articles

Here is some of the more worthwhile content salvaged from my long dormant and mostly out-dated software development blog.

Practical Evolutionary Computation

Introduction to Evolutionary Computation
An introduction to the basic idea of evolutionary algorithms.
Implementing Evolution in Java
How to implement evolutionary algorithms in Java using the Watchmaker Framework.
How to improve the efficiency of your evolutionary algorithms by using elitism.
Island Models
Advanced evolutionary algorithms using island models to partition the search space.

Random Numbers in Java

Beyond java.util.Random
Better, faster, more secure random number generators.
Probability Distributions
Uniform, normal, binomial, Poisson and exponential distributions and when to use them.
RNG seeding considerations.
RNGs: There should be only one
The pitfalls of using multiple random number generators.

Miscellaneous Rants

Understanding PHP
Some people can write effective software in PHP. Still doesn't make it a good idea.
Your code is not so great that it doesn't need comments
Timeless advice.
Eat, Sleep and Drink Software Development
Sleep deprivation and caffeine vs. productivity.
Optimising Computer Programs for Performance
Universal principles of optimisation.
Visual SourceSafe: A Public Service Announcement
Surely nobody still uses SourceSafe?

Genealogy England flag Ireland flag

Ancestry map

Several years ago I started researching my family tree — an ongoing and never-ending project. This list of relevant surnames and associated places — almost entirely in England and Ireland — may be of interest to others investigating the same families (contact me via the email link at the top of that page if you'd like to access the information I have or if you have further information to share).


International Dan.

Outdoors I play and referee the sport of Touch — a fast-paced, minimal-contact version of rugby — I play at Invicta Touch and have represented the South East region and the England men's 40s national team.