• Some Maze Generation & Search Algorithms

    Experimenting with some maze generation and search algorithms. The small implementation is written in the browser in Javascript with visualisation on an HTML5 canvas.

  • A Simple Flappybird Clone

    A barebones flappybird clone with JS/HTML5 canvas.

  • Gamifying Train Commutes

    Last year, I began logging train trips as a means of gamifying and collecting data on trains encountered on journeys in order to make commuting a bit more interesting. This post explores some data insights from a year of travelling by train, and the implementation & architecture of the logging and analytics system.

  • Countdown Numbers Puzzle

    Looking at an algorithm to explore properties of the number puzzle from the TV gameshow “Countdown”. In designing an algorithm we look at various algorithmic and implementation optimisations that reduce the runtime from a minute to just a couple of seconds when searching the problem space.

  • A Simple HTTP Proxy

    A very simple proof-of-concept local HTTP proxy using Python’s builtin http.server module, and external requests library.

  • 🇨🇭 Weekend in Zürich

    Some photos of a weekend trip to Zürich (10/2/2023 - 12/2/2023).

  • 🇩🇰 Weekend in Copenhagen

    Some photos of a weekend trip to Copenhagen (27/1/2023 - 29/1/2023).

  • Predicting KFC Menu Prices

    A small data exploration on #spreadsheetsaturday: looking at a model for predicting a KFC menu price given a group of different menu items.

  • 🏴󠁧󠁢󠁷󠁬󠁳󠁿 North Wales 2022

    Some photos of a short trip to North Wales (26/7/2022 - 29/7/2022).

  • Puzzle: Troll Passage

    Exploring and generalising an optimisation puzzle using calculus.

  • Puzzle: The Wedding Ring

    Looking at solving a combinatorics problem by enumerating all possibilities and analysing to make a generalised solution.

  • Computing π By Hand with a 1700 Year Old Algorithm

    This post looks at computing by hand a result for pi using a process first described in the 3rd century. This same algorithm yielded the world’s most accurate valuation for the ratio of circle circumference to diameter until the 16th century.

  • The Maths of Liu Hui's Pi Algorithm

    Liu Hui’s algorithm for approximating pi from 3rd century China is significant as it gave the most accurate valuation for pi in the world for over 1200 years. This looks in more detail at how the result is obtained geometrically and algebraically from first principles. It is an elaboration of the mathematical aspects of the procedure as described in the Wikipedia article.

  • Visiting The Manchester Baby

    Some photos of the Manchester Baby replica maintained by volunteers at the Science and Industry Museum and the area around it’s original home at University of Manchester Coupland Building 1.

  • Z180 Retrocomputer: Booting

    Time to boot it up! A continuation of the Z180 Retrocomputer project. Here, we look at the Z180 MMU behaviour, initialising the system and writing a small bootloader. See also Z180 Retrocomputer: Design for more about the design and construction of the system.

  • Calculating Square Roots by Hand

    For a recent project I needed to be able to compute square roots by hand, without the aid of a calculator. This was something I had never attempted before (at school or otherwise), so went about learning the process for doing it.

  • Reverse Engineering The First Stored Program

    On 21st June 1948, the Manchester Baby, or Small-Scale Experimental Machine (SSEM) ran the world’s first electronic stored program. While primarily an experimental testbed for testing the feasability of a new type of memory, it was working proof and validation of a computing principle that underpins all devices today.

  • Shortwave Radio in 2022

    Shortwave radio broadcasting has a long history dating back almost a hundred years. In many parts of the world, shortwave radio is still an important means of receiving information. Only the other week, the BBC announced they would resume shortwave broadcasts in Europe to provide news and information in Russian & Ukrainian where infrastructure has been damaged, or information is otherwise censored.

  • Z180 Retrocomputer: Design

    Some design aspects of a small computer system I made in 2020. It’s built around the 8-bit Z180 CPU, with 512kB RAM, 32kB ROM and a USB-serial interface.

  • Solving Tantrix Puzzles: Part 1

    Doing some digging around a while ago I discovered an old puzzle I had as a kid. Tantrix is a set of 56 hexagonal tiles, each with three coloured lines connecting pairs of edges. With these tiles you can solve single-player puzzles, and play games with two or more players.

  • Flag Emojis in Unicode

    The way country flag emojis are encoded in Unicode make it quite easy to convert a country’s ISO 3166-1 2 letter country code to the correct country flag on many systems.

  • 🇹🇼 Taiwan 2019

    Some photos from a trip to Taiwan in Summer 2019.

  • 🇬🇧 Cornwall 2018

    A few photos from a trip to Cornwall in Summer 2018.

  • 🇳🇱 Cycling Hoek van Holland to Den Helder

    My first long-distance cycling trip. Over three days, I cycled the LF1 cycle route (now LF Kustroute) from Hoek van Holland to Den Helder. It’s really nice scenery to cycle through. There’s a good mix of coastal routes, dunes, and forest. Particularly nice to explore further the Amsterdamse Waterleidingduinen, and further north, the Schoorlse Duinen.

  • Sorting Algorithms in 'Human Resource Manager'

    Implementing bubble sort and selection sort in the game ‘Human Resource Manager’. Still not managing to pass both the speed and code size challenges though :(

  • Apple 1-like 6502 Computer on a Breadboard

    Using the Apple 1 as inspiration for a DIY 6502-based computer. It runs Steve Wozniak’s original ‘Woz monitor’ and BASIC written for the Apple 1 in 1976 (41 years ago!) with a few modifications to allow for communications through a serial port (enabled with use of a HD6350 ACIA IC) instead of a TV and ASCII keyboard.

  • Hacking x86 Architecture to Transmit RF

    A small hack using the maximum frequency of an x86 hardware timer in order to generate a 597kHz carrier signal which can be modulated in software. The resulting interference can be picked up on an MW radio.

  • Minimal Code to Blink LEDs on ATtiny Microcontrollers

    Going back to basics: blinking an LED is the “Hello World” of the microcontroller world. Experimenting here with different methods of programming to accomplish the same result: using Arduino, ‘bare’ C, and Assembly.

  • One Line for Solo Piano

    A Philip Glass inspired piece for solo piano. The pedal is held down throughout the piece, creating a large wash of sound. The themes undergo rhythmic metamorphosis as the piece progresses. The performer is free to repeat each bar and progress the transformation at their own pace.

  • Lament for the Mortal for Synth/Strings

    A modern lament, playing with a ground bass and part writing with some interesting harmonies.

  • Some Uni Compositions

    A few pieces for some composition courses at university.

  • Old Garageband Stuff

    I used to play around with Garageband a bit as a teen. The results usually weren’t so great, but did produce a few tracks for a friend’s podcast.