Source Code
DFA Builder
This provides three classes that can be used as a framework for
building Finite State Machines (otherwise known as Deterministic
Finite Automata) of an arbitrary size. Also included is an example
of how the framework classes can be extended to construct DFA's.
Please see "Finite State Machines - Part I" for an introduction to
FSMs and Part II for an overview of this package.
NetStumbler File Parser
This pair of classes came about after a late night conversation with a friend of mine. He was having some problems using Java's own file reading classes to parse a NetStumbler ASCII dump file and since I'd not really had the oppurtunity to use my "programming brain" for a while this seemed like a good exercise to start coding in Java again.
Tag Swarm Graph Class
This PHP class can be used (with some additional work) to generate
'tag swarms' (see an example).
Its essentially a modified 'spring graph' layout algorithm that I
transcribed from Java into PHP (see the original applet)
- with some alterations specific to the 'tag swarm' concept.
TSP Algorithm Optimisation
This ZIP file contain 6 Java classes - each of which implements an algorithm that solves the Travelling Salesman Problem (note: They do not necessarily provide optimal solutions).
The classes demonstrate the effect that successive 'code design level'
optimisations (i.e alterations to code structure rather than
language or platform specific optimisations) can have on the
performance of an algorithm.
This work was based on chapters in the book
"Writing Efficient Programs" by Jon Louis Bentley that I discovered
while completing my degree. The original code was written in Pascal
so this is (as much as possible) a faithful reproduction of the
code in Java.
I'd advise finding a copy of the book since, despite being 20ish years old, its still very relevant to coding practices today.
Genetic Algorithm Based Colour Scheme Chooser
This PHP source code was produced to accompany a small introduction to the field of Genetic Algorithms. It allows the user to interactively design a colour scheme for a website (or any other purpose) using the principles of Genetic Algorithms. A working example of the source code is also available.