Projects

Small tools I maintain for myself and anyone with the same problems. All of them are deliberately unfinished in the sense that they do one thing and I have no roadmap for making them do eleven things.

logtidy

Rust · ~2.3k lines · MIT · 2021–

Compresses and rotates logs on long-lived servers without a daemon or config file. It grew out of a shared irritation with logrotate configs that only half-work, and now runs on every machine I administer, which is either an endorsement or a hostage situation. Most requested feature remains “support Solaris”, which tells you something about the user base.

crontab-doctor

Go · ~900 lines · BSD-2-Clause · 2023–

Lints crontabs for the classic traps: jobs that collide on the DST skip, MAILTO pointing at a departed colleague, % signs that will be eaten by the shell. Born from the research for Cron Scheduling Gotchas. It has found real problems on every server it has been pointed at, including mine.

pocket-archive

Python · ~600 lines · MIT · 2020–

One-shot archiver for my own reading list: pulls bookmarks, saves single-file HTML snapshots, writes a searchable index. I have no plans to make it a service. There are enough services.

dotfiles

Shell · small · public domain · 2014–

The usual, kept boring on purpose: zsh, tmux, git, a dozen small scripts. The interesting part is what I keep deleting: every alias that automates something I did not understand yet.

Retired

Colophon of this site

Hand-written HTML, one stylesheet, zero build steps. The source lives in a git repository on the same mini-PC that serves it, and the deploy process is rsync plus a full backup taken first. See about for the philosophy, or the five-years post for why the deploy process is so conservative.