# Fortunes Algorithm: An intuitive explanation

29 Mar 2018A 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.

# Sounding smooth with jitter buffers

15 Jan 2018When 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 2017Building 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 2017Hash 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 2017Around 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.