Good Morning Vietnam

Mar 2024

Kuala Lumpur Getaway

May 2023

Iberian Nights

The Sun Also Rises Feb 2023

Chevrolet C3 Corvette Initial Restoration

Little Green Corvette Aug 2022

Infinite Jest, Lockdown, and the Baader–Meinhof Phenomenon

They can kill you, but the legalities of eating you are quite a bit dicier Aug 2021

Honda CBR250RR MC22 Light Restoration

Power of Dreams Aug 2021

Using libpst to convert PST to MBOX, and understanding Thunderbird's folder structure

Using open source tools to import mail from Outlook to Thunderbird Apr 2020

Melbourne's Air Quality Index

The city of four seasons in a day is smothered by our bushfires, but how does it compare to the rest of the world? Jan 2020

London Calling

Over land and Sea. Nov 2019

Running Docker on Windows Without Hyper-V

VirtualBox and other Virtualisers can live in harmony with Docker on Windows Sep 2019

Musings on Chelsea's Current Season

Chelsea are in an interesting point in their history as our identity changes Feb 2019

Fifty Books in Slightly Under 365 Days

Post Mortem of the 50 Book Reading Challenge Nov 2018

X-Axis Tick Manipulation

Playing with labels in GGPlot2 and R Oct 2018

Operation Lemur

Just smile and wave, boys. Smile and wave. Oct 2018

Dining Philosophers

Two forks are better than one Sep 2018

Away Goal Analysis

An in depth look at the recent history of away goals in the UCL Sep 2018

Planes, Trains, and Automobiles

Two and a half weeks in Taiwan Mar 2018

From Russia with Love

An adventure along the Trans-Siberian Express Dec 2017


Because eight is better than four Nov 2017

Dynamic Programming: First Principles

Many problems of todays world require multiple decisions made throughout the lifetime of the problem. Choices are made based upon information, including previous decisions made in the problem. This article looks at how Dynamic Programming can be applied to help solve these problems in an efficient manner. Oct 2017