Fortunes Algorithm (Part 2): Some implementation details

31 Mar 2018
In my previous post, I gave an overview of how Fortune’s algorithm works. For simplicity’s sake I specifically left out details about implementation and so we’ll cover some of that in this post instead. I spent far longer than I originally intended trying to write my own implementation. The main reason for this is that I was repeatedly delayed by the discovery of yet another edge-case which caused my implementation to fail.

Fortunes Algorithm: An intuitive explanation

29 Mar 2018
A voronoi diagram is a way of dividing up a space into a set of regions (which we call cells) given a set of input points (which we call sites), such that each cell contains exactly 1 site, and the points inside the cell are exactly those whose nearest site is the one inside that cell. A voronoi diagram with a site and its corresponding cell highlighted. Voronoi diagrams have an extraordinarily wide range of applications.

Sounding smooth with jitter buffers

15 Jan 2018

When discussing network connection quality, terms such as latency (or ping) and bandwidth are thrown around like its nobody’s business. They do not tell the whole story however (as I discovered while working on my experimental video-conferencing program, Veek), and miss out on one property that is crucial for real-time data transmission: Jitter.

Intro to CMake

5 Sep 2017

Building C/C++ projects is clearly a non-trivial problem given the many, many, different options available for helping you do that. CMake is one of the more popular systems, and one that I’ve been meaning to look at for a while so if you’re wondering what a CMakeList is and want a basic introduction, then read on!

Data structure internals: Hash Tables

22 Aug 2017

Hash tables: everybody’s favourite way of avoiding the need to search through a list of items. But what goes on inside one? How do we achieve amortized constant time access and insertion and deletion? Well I’m so glad you asked…

JAIR Post-mortem

26 Mar 2017

Around 3 months ago I started a project to build an infinite runner in my spare time, which I titled “JAIR” (or “Just Another Infinite Runner”), purely for lack of a better idea. Yesterday I finished working on it and so I’ve put up a project page for it here and I thought I’d just write up some notes about how those 3 months went.


18 Jul 2016
I see you’ve reached my personal site/blog. Great! I hope you enjoy your stay and that you find something of interest to you here. You can find a list of my personal projects here, and hopefully in the near future you’ll be able to find some posts about things that interest me. The site isn’t particularly pretty/interesting at the moment, but I’m working to change that so I hope to see you back here again sometime!