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.