Installing Docker 1.12 in Debian 9 (stretch)

Debian ships with an old version of Docker, and the official installation instructions for Docker on Debian are a bit dubious (run an entirely untrusted shell script as root! yay!), not to mention error-prone, and result in a completely non-functional Docker installation on Debian, thanks to aufs being deprecated. So these instructions should make it …

Continue reading ‘Installing Docker 1.12 in Debian 9 (stretch)’ »


Praise for Let’s Encrypt — Free, automated SSL certificates

After a few weeks of not hacking one of my hobby projects, I decided to get back to it today, only to discover that the SSL certificate guarding it had expired. Being just a hobby project, it wasn’t important, but it was annoying. But before I went to buy another $9.99 SSL certificate for the …

Continue reading ‘Praise for Let’s Encrypt — Free, automated SSL certificates’ »


warn “Use of Perl has been deprecated.\n”;

It’s been just over a month now, since my last day as an employee of Which means it’s been just over a month now since I wrote my last line of professional Perl. This is worth celebrating! Now don’t get me wrong. It’s not that I hate Perl. In fact, I’ve really enjoyed using …

Continue reading ‘warn “Use of Perl has been deprecated.\n”;’ »


Question to fellow programmers: Do you like auto-complete?

I’ve always found auto-complete to be an insanity-inducing feature in my programming text editor. Inevitably, it causes me to type the wrong thing, or hit TAB too many times. Enter-complete I find to be even more infuriating. But auto-complete, especially in text editors designed for programmers, is often very a elaborate feature. It’s often context-sensitive, …

Continue reading ‘Question to fellow programmers: Do you like auto-complete?’ »


How I got go-spew to work with GopherJS

go-spew is a very handy library used for dumping arbitrarily complex data structures in a (roughly) human-readable format. This is immensely helpful when debugging or writing automated tests in programs. Coupled with a package like go-difflib, it can make comparing the expected and actual results of a test not only easy, but into something approaching …

Continue reading ‘How I got go-spew to work with GopherJS’ »

My new project:

I’m working on a new mini-project. It’s in large part inspired by… well, many things. Motivation The most immediate inspiration comes from Patrick McKenzie’s blog, which I just finished reading in its entirety earlier this week while I was in Paris (well, I skipped a few posts that didn’t matter to me). His blog basically …

Continue reading ‘My new project:’ »

One thing I miss about unit tests: Unit tests as Documentation

I wrote this post in October of 2015 as I was adjusting to life without unit tests at a new job. I recently stumbled upon it in my Drafts, and edited it down to a single point for publication. In October of last year I took a new job at a company with a large …

Continue reading ‘One thing I miss about unit tests: Unit tests as Documentation’ »

Getting Anki 2.0 to work with Debian stretch

Recent updates to Debian testing (aka stretch) have rendered Anki broken, with the following error message at startup: $ anki Traceback (most recent call last): File “/usr/bin/anki”, line 7, in import aqt File “/usr/share/anki/aqt/”, line 12, in from aqt.qt import * File “/usr/share/anki/aqt/”, line 22, in from PyQt4.QtWebKit import QWebPage, QWebView, QWebSettings ImportError: No module …

Continue reading ‘Getting Anki 2.0 to work with Debian stretch’ »