iPX Directory

Directory Technology

Evan Hahn (dot com)

1 person subscribes

Paste it into any podcast app or feed reader to subscribe.

I'm Evan Hahn, a programmer.

Latest posts

Notes from September 2026

If you follow my monthly roundups, (1) who are you?? please say hi (2) you’ll notice a smaller post this time. September was a busy month for me. Lots of feedback on a small post I published “Anecdotally, programmers dislike ‘reduce’” . I finally wrote up a phenomenon I’ve observed for years. It’s a short post that didn’t take long to write. I got a tremendous volume of feedback— more than anythin

30 Sep 2026
Anecdotally, programmers dislike "reduce"

In short: from my experience, people like map and filter , but not reduce . I use functions like map and filter all the time. When I put that code up for review, my peers rarely complain. I get plenty of feedback about other decisions, but not about my use of map and filter . I cannot say the same for reduce . Often, when I’ve submitted a patch with reduce inside, I get a comment like, “this part

13 Sep 2026
Notes from August 2026

Since last month , I released some new stuff at work, clicked a bunch of links, and wrote a little bit. Things I did this August At Ghost, we added analytics for automated email sequences . This helps publishers see how their sequences are doing. This simple feature turned out to be pretty tricky under the hood. Learned that Vim has a joke trigger called UserGettingBored . I continued to write for

31 Aug 2026
Vim's UserGettingBored autocmd

In short: Vim has a joke autocmd called UserGettingBored that doesn’t do anything. Vim’s automatic commands feature, usually shortened to “ autocmd ”, lets you run code when various events occur. For example, you could implement an auto-save feature by binding the TextChanged event to the :w command. Vim has over 100 events, from “buffer was created” to “file was saved”. But one of them sticks out

22 Aug 2026
Notes from July 2026

July! What a month! Things I did this July Gave a talk, for ClimateAction.tech’s “Responsible AI Series”, “What I know about local language models” . “Responsible AI” can feel like a bit of an oxymoron at times, but I hope I shared something useful. Participated in the Zelda Dungeon Marathon . My first time playing a video game ( The Legend of Zelda: Oracle of Seasons ) on stream ! Released a new

31 Jul 2026
Prefer STRICT tables in SQLite

In short: I prefer strict tables in SQLite because they avoid some datatype problems, such as putting text in number columns. SQLite has a feature that I think is underrated: strict tables . Strict tables help enforce rigid typing, preventing mistakes like putting text into integer columns. I like them, and wrote this post to promote their use! To make a strict table, add STRICT to the end of its

11 Jul 2026
Notes from June 2026

Chicago’s weather is pretty lousy most of the year, but when it’s nice, it’s very nice. June blessed the city with dozens of idyllic days. But don’t worry—I still spent most of the time inside on the computer. Things I did I launched my first big project at Ghost: automations ! It’s still in beta, but it’s one of the biggest projects I’ve led. If you happen to be a Ghost publisher, please try it o

30 Jun 2026
"Sixteenth of a year", a 1.8 KiB art piece

<p> <a href="https://taper.badquar.to/16/sixteenth_year.html"> <img src="./screenshot.webp" alt="Year, month, day, hour, minute, and second—all divided into sixteenths."> </a> </p> As I write this, we’re about 7 sixteenths through 2026, and it’s about 14 sixteenths through the day. For the sixteenth issue of the Taper online magazine, I split time into sixteenths to think about its passage in a di

3 Jun 2026
Notes from May 2026

My blog turned 16 this month! I did nothing to celebrate, but made some little tools and clicked some links about tech ethics. Things from me this month I published four little tools this month: ZIP Shrinker , a web app that shrinks ZIP files with higher compression ratios A command line tool to do (completely offline) translation Open Link in Unloaded Tab , a Firefox extension to open links witho

30 May 2026
Make ZIP files smaller with ZIP Shrinker

I built ZIP Shrinker, a little browser tool to shrink ZIP files. It also works with formats that are secretly ZIPs underneath, like EPUB, JAR, and many more. Try it out! How does it work? At a high level, this tool (1) re-compresses every file in the ZIP archive with higher compression (2) removes all metadata (3) removes entries for directories. Re-compressing ZIP files are typically compressed w

16 May 2026