Writing
Recent posts
With Canon, you can't. A story of horrible customer support
I present to you a tragedy in 11 parts, about me trying to report a bug against the software of a large hardware company. Unsurprisingly, to these people, software doesn’t... (read)
Model Checking for the Working Man (m/f)
Correctly designing a concurrent system is hard. Formal methods make it easier, and they're really not so intimidating as you think. (read)
The Ultimate Guide to Modern CMake
CMake is a great tool for managing a C++ system’s build. It builds quickly, supports the major use cases, and is quite flexible. The problem is, it’s too flexible, and... (read)
Model-View-Whatever
There always seems to be a lot of confusion about Model-View-… umm… and-then-something-more architectures. Everybody seems to get the Model and the View parts. The Model is where your data... (read)
Code
Most interesting projects

Windows Path Editor
The non-frustrating way to editor your PATH if you use a lot of command-line tools on Windows.
(GitHub page)
PowerSearch
The address bar is the new command line! Search any website directly from your address bar, with a simple configuration tweak to your browser.
(online)
readTHERE
A bookmarklet to quickly copy/paste hyperlinks between different devices you own.
(online)Social
Here's how to get in touch.