2022

Reverse engineering an old Windows game for fun and compatibility

Reverse engineering an old Windows game to understand why it didn't work with the Wayland driver for Wine

unweave: Unweave interleaved streams of text lines

Introducing a command-line tool to separate interleaved streams of text lines into per-stream columns

GitLab merge diffs for branches that rewrite commit history

Coaxing GitLab into providing sensible merge diffs for branches that rewrite commit history

2020

Interactive time series graph of confirmed COVID-19 cases per country

Plotting an interactive time series graph of confirmed COVID-19 cases per country using the JHU data

2019

Efficient saving of multi-source buffers

Exploring the intricacies of saving buffers holding data from multiple sources

mda-rs: Custom Mail Delivery Agents in Rust

A Rust library for creating custom Mail Delivery Agents

Dynamic programming for fun and profit

Using dynamic programming to solve an investment problem more efficiently

2018

Metrics for test suite comprehensiveness

Introducing some metrics for test suite comprehensiveness and using them on Free and Open Source (FOSS) codebases

On the low adoption of automated testing in FOSS

Thoughts about the reasons that keep Free and Open Source Software (FOSS) projects from adopting comprehensive automated testing

Bless Hex Editor 0.6.1

A much delayed update to the Bless Hex Editor

git-c2b: An alternative workflow for Chromium's Gerrit

A tool to create dependent git branches from commits

2017

Running Chromium with Ozone-GBM on a GNU/Linux desktop system

A guide describing how to run Chromium on DRM/KMS on a normal GNU/Linux desktop

Converting emails from top-posted to bottom-posted

A description of the algorithm used by the top2bottom tool to convert top-posted emails to bottom-posted.

A Pixel Format Guide (to the galaxy) – Update

A look at the new features of the Pixel Format Guide documents and accompanying tool

A Pixel Format Guide (to the galaxy)

An introduction to the Pixel Format Guide — a collection of documents and an accompanying tool which aim to help people navigate the wilderness of pixel format definitions

vkmark: More than a Vulkan benchmark

Announcing the vkmark Vulkan benchmark

2012

C vs C++11: C++ goes to eleven!

A look at C++11's out-of-the-box performance using a simple word counting program as an example.

Changing gdm/lightdm user login settings programatically

How to change the user X session and other login settings from the command-line

2011

glmark2: more than a benchmark

Introducing the glmark2 OpenGL (ES) 2.0 benchmark

2010

The NP-Completeness of tax solidarity

Solving the partition problem to fairly distribute shared receipts among friends