Wait, What?

November 28, 2025

Finding Flowers In Chaos

Strange attractors, produce some incredible shapes from a very simple process. A mathematical transformation is iteratively applied to a point. For some transformations, the value/location of the point will be constant, or move between a small number of fixed values. These are attractors. For a rarer set of transformations the point will move between a fractal set of values, these are strange attractors. They can be beautiful in very surprising ways.

November 25, 2025

Moving to Eleventy

When I started this version of this blog, I did so using Jekyll. I was impressed with the ease of setting everything up, and when I wanted to write a plugin to allow writing articles in a literate style, that was straightforward too. Unfortunately bit-rot got to me.

June 11, 2024

Voxel Ray Casting in Zig

Ray casting refers to tracing rays from a point to find the closest object that the ray will intersect.

November 11, 2023

Generating a Star Sphere using Zig

For reasons, I wanted a sky texture that had approximately correct stars — it's not uncommon for people to use random textures for stars.

November 11, 2023

Star Sphere Demo

November 3, 2023

Writing A Jekyll Converter for Literate Programming

An important caveat here is that I am not a ruby developer. But I wanted to use Jekyll to generate this blog and I want to blog about code, which for me means literate programming. As I couldn't find an existing Jekyll converter that did all the things that I wanted, I figured "How hard can it be" and wrote my own…

October 30, 2013

Of the Just Shaping of Letters

I stumbled across a print copy of Dürer's Of the Just Shaping of Letters in a second-hand bookshop years ago. This slim book — an English translation of part of book three of Dürer's Applied Geometry from 1535 — contains descriptions of how to draw uppercase Latin letters. Each letter is described as a series of geometric instructions and relationships within the containing square.

February 23, 2013

Joined-up Engineering

There are many well known differences between American and British English, but it can be the less well known that make me stop and think.

February 2, 2013

Tiny Basic using PEG and F#

Prompted by Mike Begley I just used the peg parser I showed in previous blog posts 1, 2, and 3, to make a simple implementation of Tiny Basic

February 1, 2013

Parsing Expression Grammar - part 3

The PEG parser at the end of part 2 will parse, and call out to code when a rule is parsed, but isn't particularly easy to use, most particularly because the grammar has to be expressed as F# objects. In this post I'll extend the parser to be able to parse PEG from a text file, and to generate F# code for a parser described by that PEG.

January 20, 2013

Parsing Expression Grammar - part 2

At the end of part 1 I had a parser that will parse a PEG, but isn't that useful because its output is simply a recursive data structure of the matched elements.

January 17, 2013

Parsing Expression Grammar - part 1

There are a lot of different ways to parse a regular grammar, but my favorite is to use a Parsing Expression Grammar. This is a technology that I've used in a lot of different projects, and as this and the next couple of articles will show, they are remarkably easy to create from scratch.