Mike Holman

contact | twitter | rss

Adventures in Ruby

21st January, 2012

Several months ago I wrote a prototype backend for a software-as-a-service product in a fairly unusual manner. The languages and frameworks I know best are C and Objective-C/Cocoa and so this is where I am most productive. The prototype was up and running in a very short space of time and fulfilled its primary goals which I list below.

Continue reading…

How Did I Ever Graduate?

14th December, 2011

While considering upgrading from the excellent MAMP to the new kid on the block, MNPP I stumbled across a selection of side projects which I embarked on during my final year at university when I should have been working towards my finals. I was surprised (and delighted) to find that many of them are still in a runnable state (2 laptops later). This post is a little trip down memory lane, thumbnails are clickable!

Continue reading…

Search, Optimisation & Genetics (Part 1)

24th October, 2011

Introduction
This article is intended to be a simple introduction to search and optimisation using genetic algorithms. Hopefully someone will find it useful. This is part one in a series of posts.

Genetic algorithms are algorithms which mimic concepts from evolutionary biology in order to perform some search or optimisation function. First of all, let’s look at what is meant by search and optimisation by way of an example.

Imagine that you are the pilot of an airliner. The efficiency of your aircraft is related to the altitude at which you cruise. If you fly too low, the air is dense and the resulting increase in drag will cause you to use more fuel to maintain your crusing speed. Conversely if you fly too high where the air is much thinner, the engines will not have enough air to operate effectively and you will also use more fuel than is necessary to get to your destination. Somewhere between these two extremes lies an optimal altitude at which flying any higher or lower would result in more fuel being used.

Knowing this altitude is advantageous as it gives the airline an economic advantage compared to less well informed competitors. If it is using less fuel, its operating costs are lower making the business more competitive. In fact many airlines monitor the flight paths of all their airliners, and will reprimand pilots who deviate from a fuel efficient route without good reason.

Now we know why we are trying to find this altitude, we need a method to go about it. If you were to draw this relationship between efficiency (on the vertical axis) and cruising altitude (on the horizontal axis) you would end up with a graph that resembled the following:

Continue reading…