home blog portfolio Ian Fisher

Blog Subscribe

ai 1 backend 6 c 4 cli 2 geography 2 linguistics 6 productivity 4 programming-languages 4 python 5 real-world 1 systems 8 writing 1

2025 (10 posts)

Dec 17 My 67 bugs in 2025
Sep 21 Woes of writing your own jobserver
Sep 14 Notes on Wikipedia after 10,000 edits
Aug 24 Robustly parsing flags in Bash scripts
Aug 3 One month of LLMs
May 22 A Vale plugin for proofreading English prose
Apr 19 Fast concordances in Go
Mar 19 The textual history of the Christian Bible
Jan 26 Trial by jury
Jan 3 I'm teaching a systems programming class this spring

2024 (12 posts)

Dec 8 Why didn't the cron job succeed?
Nov 24 Unix file permissions cheatsheet
Nov 24 Whether you can access a path depends on how you name it
Nov 20 What file permissions does mv need?
Nov 4 Be careful exporting from Postgres to SQLite
Oct 28 Is C simple?
Oct 21 Notes on Prometheus
Aug 29 Append-only programming
Aug 13 Linux process tricks
Jun 27 Polygrammarous: exploring linguistic diversity
Jun 14 Automated grammar checking: existing tools
May 30 Proposal: A type-checker for English prose

2022 (2 posts)

Feb 22 Building Khaganate
Feb 15 Khaganate: a suite of personal productivity software

2021 (4 posts)

Oct 24 isqlite: An improved Python interface to SQLite
Oct 9 Using SQLite effectively in Python
Sep 2 Why I am writing a new programming language
Mar 9 London, Paris, and Naberezhnyye Chelny: Analyzing results from my European cities quiz

2020 (8 posts)

Nov 10 What's the best-known city in America? ...and other stats from my U.S. cities game
Oct 5 Personal go links
Sep 14 The technology behind a web app with 200,000 monthly visits
Jul 23 Testing command-line applications
Jul 7 A subtle garbage collector bug
Jun 21 A tool to manage git pre-commit hooks
Jun 7 Type-safe generic data structures in C
May 11 Writing an interpreter and debugger for an assembly language