Inklings: a tumblelog

Wayback Machine APIs

Could be useful for dealing with 404s on

Loops and Tails

I’m currently working on improving my penmanship. This site has some pretty good worksheets for practicing, with some notes on some of the more awkward letters to connect together.


Task manager with CLI and web interfaces.


I wasn’t aware of Micropub before now (or maybe I’d forgotten?), but it actually looks OK! It’s a protocol, along the lines of MetaWeblog and AtomPub, for managing blogging software.


A cross-platform process supervisor. I’m looking at this as another alternative to Supervisor and Circus. The problem with the former is that the FreeBSD port is stuck exclusively on Python 2.7 (because of an old version of meld3 as a dependency), and the latter apparently has had some issues.

I'm now posting elsewhere

I’m in the process of replacing my current array of sites with something a bit more sustainable. A few years back, I started using Pelican to manage a blog called Can’t Hack, which I started mainly because the domain was a neat hack.

That’s becoming my primary place to post things, so I’m making an effort to shift content from here and my old sites over onto it. Some stuff will be moving back to to, such as the linklog content currently posted here. I’m currently working on some stuff to replace the codebase currently used here with something written in Python to that end.

You can subscribe to if you want the new feed. This one isn’t going away, though, and I’ll eventually put in a permanent redirect.

Algorithms by Jeff Erickson

This web page contains a free electronic version of my (soon to be) self-published textbook Algorithms, along with other lecture notes I have written for various theoretical computer science classes at the University of Illinois, Urbana-Champaign since 1998.


A self-hosted comment service, similar to Disqus. Part of my plan to reduce my Twitter usage a bit.

The Inter UI font family

Contaminate AWS instances on ssh login

tl;dr: if somebody logs into an instance, tag it as ‘contaminated’ so you can detect instances with possible configuration drift and kick off additional automation.

Principles of Algorithmic Problem Solving

Pattern-Oriented Software Architecture, vol. 1-5

I hope this is legit.

Introducing Thanos: Prometheus at Scale

Builds on Prometheus to avoid aggregating metrics into a central store.

The repo is here.

How to Fall Asleep in 120 Seconds

Worth a try, at least.

There’s RC2014 Life In The TMS9918A Display Chip Yet

The RC2014 is a nifty Z80-based modular homebrew machine. With a rc9918 card, it can run MSX and ColecoVision software.

How to Do 90% of What Plugins Do (With Just Vim)

Loom (or, how Brian Moriarty Proved That Less is Sometimes More)

Learning Rust With Entirely Too Many Linked Lists

Also, the accompanying git repo.

Type-Driven Development with Idris

For if I ever get a chance to learn Idris.

Kiwi - a 68k Homebrew Computer

PureScript by Example

If I ever do any client-side development again, PureScript looks interesting.

Linear types make performance more predictable


OBNC is a compiler for Niklaus Wirth’s programming language Oberon. It implements the latest version of the language from 2016. OBNC translates source code written in Oberon to the lower-level programming language C. The translated code is then compiled and linked with the C compiler and linker of the host operating system. The build command obnc performs all these tasks and keeps track of which files need to be compiled or recompiled.


A new replacement of the MOS6581 and MOS8580 used in the Commodore C64.


A tool for creating swatches.

Color Trends + Palettes :: COLOURlovers

STOMP Protocol Specification, Version 1.2

Let’s Encrypt wildcard certificates, and automated DNS verification

This is a good idea, and kind of obvious in retrospect. The same technique could be used for DANE TLSA records.


A C64 port of Luftrausers.

How to do an Nginx redirect

Has some cute hacks using the maps module.

Reference variables in Ansible YAML

I always forget that this is a thing in YAML.

C64 S-Video cable – the easy way, and with no SCART

For when I’ve time (and a soldering iron). This is basically the first step in making my C64 usable again, as I’ve no way currently to plug it into a more modern TV or monitor.

shoelace.css: a back to the basics CSS starter kit


Placebo allows you to mock boto3 calls that look just like normal calls but actually have no effect at all. It does this by allowing you to record a set of calls and save them to a data file and then replay those calls later (e.g. in a unit test) without ever hitting the AWS endpoints.

Jenkins: Making your own DSL with plugins, written in Pipeline script

Fundamentals of an Enterprise Role-Based Access Control (RBAC) System

Joe Armstrong interviews Alan Kay at Code Mesh 2016

Even if you’ve no interest in the computing part of this, this is very much worth watching.

Gorilla: A fast, scalable, in-memory time series database

Writing an SNMP agent with a custom MIB using pysnmp

HP Microserver Gen8 Drive Bracket and other mods

This would be nice as an alternative to running NAS4Free off of an SD card, and would make switching over to using ZFS on my Microserver a bit more realistic.