A Dockerfile for Go programs
A clean, small pattern for a Docker image that wraps a fat Go binary.
Software patterns, tools, and experiments that support the rest of the site. Mostly Go, Python, Vim, and things that fit on a small server.
I have been tinkering with hardware and software for years. This notebook collects the patterns I keep reaching for: small Go programs, clean Docker images, Vim setup, and the occasional experiment that begins with a strange question.
A clean, small pattern for a Docker image that wraps a fat Go binary.
The story behind croc 6 and the problem of sending files across platforms.
A small tool for turning a Spotify playlist into local audio files.
croc is a tool I built to easily and securely transfer files from one computer to another.
A tour of the Go packages I maintain for file transfer, discovery, scraping, and more.
A small project that turns abandoned repositories into a graveyard you can wander through.
Fossil is a single binary that combines version control, a wiki, and a ticket tracker.
A way to make your own hosted internet archive using IPFS.
A short guide to publishing a static site to IPFS.
Notes from getting Keybase running on a Chromebook.
Combining many recipes for the same dish into one consensus recipe.
A framework for finding devices and people indoors using WiFi signals.
A survey of ways to send a file across the internet in 2017.
A small web scraper for pulling structured data out of pages.
Experimental image captioning that runs in the browser with JavaScript.
A compact Docker setup for running WordPress locally.
The simple Vim setup I use for writing, and the one function that turns it into a word processor.
A recipe made from the ingredients of a recipe, repeated until it reaches dirt, water, and sun.
A homegrown fuzzy string matching library, written because I kept needing to match user input to a messy list of names.
A simple attempt at a Beowulf computer, a distributed computer made from old computers that are gathering dust.
A list of music discovery tools, the clustering method each one uses, and the pros and cons of each website.
In most cases code is a tool. Sometimes code is a tool to help you code. In the best case, code bridges something in reality and enhances it.
A poetry generator good enough to be accepted by a literary journal.
A short set of calculations for cooling coffee with ice cubes.
Autological words, self describing sentences, and quines.
Ten commandments for a scientist, written in the style of the original.
What fifteen marathon results look like when you plot them over four thousand days.
A short shelf of sources and related reading. Opens in a new tab.