Sign in

Evan Hahn

@evanhahn.com
86 followers 29 following 122 posts

evanhahn.com

PostsRepliesMedia
Evan Hahn @evanhahn.com · 28/08/2026
"Libertarian futurists weren't the only people proposing new rules for cyberspace; they just happened to be the people who ended up making the rules." www.theguardian.com/news/2026/au...
theguardian.com
Democracy v the machine: the birth of the digital age and the warnings that were ignored
The long read: Many hoped that the march of technology would usher in a utopia – but some foresaw the threat it would pose to liberal society. Why did nobody listen?
000
Evan Hahn @evanhahn.com · 26/08/2026
@crystal.undertow.cards (1) you once had a post that was something like, "when I read modern opinions I think they're stupid, when I read old opinions I think they were prescient". I think about this post a lot but cannot find it. Can you help (2) I love Book of Mudora. Thank you for producing gold
110
Evan Hahn @evanhahn.com · 23/08/2026
Learned that Vim has an event called UserGettingBored evanhahn.com/usergettingb...
evanhahn.com
Vim's UserGettingBored autocmd
Vim has a joke autocmd called UserGettingBored that doesn't do anything. I tried to learn everything about it.
011
Evan Hahn @evanhahn.com · 30/07/2026
In 12 hours, I start playing The Legend of Zelda: Oracle of Seasons for charity. Tune in, donate, and see me embarrass myself! www.twitch.tv/zeldadungeon
010
Evan Hahn @evanhahn.com · 11/07/2026
I've been wanting to write an article like this for awhile:
010
Evan Hahn @evanhahn.com · 30/06/2026
Notes from this month: I launched a big new feature at Ghost, made a two-kilobyte art project, clicked links about tech/AI ethics, and learned a weird fact about the Soviet Union. evanhahn.com/notes-from-j...
evanhahn.com
Notes from June 2026
Launched a big new feature at Ghost, made a two-kilobyte art project, clicked links about tech ethics, and learned a weird fact about the Soviet Union.
000
Evan Hahn @evanhahn.com · 27/06/2026
www.wired.com/story/why-do...
wired.com
Why Don’t We Just Ban Targeted Advertising?
From protecting privacy to saving the free press, it may be the single best way to fix the internet.
000
Evan Hahn @evanhahn.com · 24/06/2026
Been working hard on a big new feature for Ghost: automations! Publishers can send a sequence of emails when someone subscribes. More actions and triggers on the way. ghost.org/changelog/em...
ghost.org
Email sequences for new members
Welcome new free and paid members with a series of automated emails over time
010
Evan Hahn @evanhahn.com · 05/06/2026
"Wikipedia:Wiki Workers United solidarity" en.wikipedia.org/wiki/Wikiped...
en.wikipedia.org
Wikipedia:Wiki Workers United solidarity - Wikipedia
000
Evan Hahn @evanhahn.com · 30/05/2026
My blog turned 16 this month! I did nothing to celebrate, but made some little tools and clicked some links about tech ethics. evanhahn.com/notes-from-m...
evanhahn.com
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.
000
Evan Hahn @evanhahn.com · 16/05/2026
New tool: upload a ZIP file, get a smaller ZIP file back. Primarily relies on better Deflate compression, but also has a few small tricks to save bytes. evanhahn.com/uploads/2026... Read more here: evanhahn.com/make-zip-fil...
evanhahn.com
zip shrinker
000
Evan Hahn @evanhahn.com · 13/05/2026
Just published a Firefox extension to add a little feature I wanted: "Open Link in Unloaded Tab". addons.mozilla.org/en-US/firefo...
addons.mozilla.org
Open Link in Unloaded Tab – Get this Extension for 🦊 Firefox (en-US)
Download Open Link in Unloaded Tab for Firefox. Adds "Open Link in Unloaded Tab" to the context menu.
000
Evan Hahn @evanhahn.com · 01/05/2026
Wrote a little command line tool to do (completely offline) translation: evanhahn.com/offline-cli-...
evanhahn.com
Offline command line translation with TranslateGemma + Ollama
I wrote a simple script that translates text at the command line, completely offline.
000
Evan Hahn @evanhahn.com · 30/04/2026
My notes from April: feebly came to GitHub's defense (even though I don't like them), published a new version of a weirdo JavaScript package, and clicked a slew of links. evanhahn.com/notes-from-a...
evanhahn.com
Notes from April 2026
This April, I offer you a feeble defense of GitHub's poor uptime, a new release of a weirdo JavaScript library, and a flurry of links.
010
Evan Hahn @evanhahn.com · 24/04/2026
www.wired.com/story/palant...
wired.com
Palantir Employees Are Starting to Wonder if They're the Bad Guys
Interviews with current and former Palantir employees, along with internal Slack messages obtained by WIRED, suggest a workforce in turmoil.
000
Evan Hahn @evanhahn.com · 10/04/2026
GitHub’s downtime is bad, but uptime numbers can be misleading. It’s not as bad as it looks; more like a D than an F. evanhahn.com/in-defense-o...
evanhahn.com
In defense of GitHub's poor uptime
GitHub's downtime is bad, but uptime numbers can be misleading. It's not as bad as it looks; more like a D than an F.
100
Reposted by Evan Hahn
Zelda Wiki @zeldawiki.bsky.social · 31/03/2026
Today is Trans Day of Visibility! Nintendo's development team for The Legend of Zelda has an abysmal history with transgender representation, but trans people have always been at the heart of the Zelda community.
The transgender flag with Ricky the kangaroo from The Legend of Zelda: Oracle of Seasons/Ages above it.
03310
Evan Hahn @evanhahn.com · 31/03/2026
Notes from March 2026: I wrote a blog post about errors, celebrated one year at Zelda Dungeon, and clicked some bleak links about AI. evanhahn.com/notes-from-m...
evanhahn.com
Notes from March 2026
This month, I wrote a blog post about errors, celebrated one year at Zelda Dungeon, and clicked some bleak links about AI.
010
Reposted by Evan Hahn
Indivisible ❌👑 @indivisible.org · 27/03/2026
Are you ready for the biggest day of mass protest that America has ever seen? Across all 50 states and dozens of countries, millions of people will gather tomorrow to reject Trump’s brutality at home and abroad. Please join us for a historic No Kings Day: www.nokings.org?SQF_SOURCE=i... #NoKings
(between images of a map showing the over 3,200 No Kings Day events planned for Saturday) NO THRONES. NO CROWNS.
NO KINGS.
MARCH 28
NOKINGS.ORG
561107537
Evan Hahn @evanhahn.com · 22/03/2026
Just published a short nonfiction story called "All tests pass". evanhahn.com/all-tests-pa...
evanhahn.com
All tests pass: a short story
One night, I wrote a simple script to pick a random programming language. After shuffling a few times, I landed on a language called Arturo. I decided to try it for fun.
010
Evan Hahn @evanhahn.com · 14/03/2026
"human.json is a protocol for humans to assert authorship of their site content and vouch for the humanity of others. It uses URL ownership as identity, and trust propagates through a crawlable web of vouches between sites." I've added it to my website! codeberg.org/robida/human...
codeberg.org
030
Evan Hahn @evanhahn.com · 08/03/2026
ELIZA, released in 1966, is a state-of-the-art language model. It offers zero-GPU inference with sub-millisecond semantic throughput, and scores highly on EQ measurements (emotional intelligence). I built llm-eliza for using it at the command line. evanhahn.com/llm-eliza/
evanhahn.com
Introducing llm-eliza
LLM is a popular CLI tool for talking with language models. I built llm-eliza, a plugin to chat with the ELIZA language model.
010
Evan Hahn @evanhahn.com · 06/03/2026
I like that my employer writes a blog post every time I finish a project ghost.org/changelog/im...
ghost.org
Improved editor for welcome emails
Use the full power of the Ghost editor when welcoming your new members
000
Evan Hahn @evanhahn.com · 01/03/2026
In my mind, there are 2 kinds of software error: 1. Expected errors (think "user entered invalid data"). Part of normal operation, should be handled. 2. Unexpected errors (think "null pointer exception") are the developer's fault. Shouldn't be handled. More thoughts: evanhahn.com/the-two-kind...
evanhahn.com
The two kinds of error
In my mind, errors are divided into two categories. Expected errors, which are part of normal operation, aren't the developer's fault, and should be handled. Unexpected errors are the developer's faul...
000
Evan Hahn @evanhahn.com · 28/02/2026
Notes from February 2026: shipped my first feature at Ghost, learned about gzip, celebrated Zelda's 40th, and found a bunch of links. evanhahn.com/notes-from-f...
evanhahn.com
Notes from February 2026
Shipped my first feature at my new job, learned about gzip, celebrated Zelda's 40th, and found a bunch of links.
000
Evan Hahn @evanhahn.com · 26/02/2026
I was surprised to learn that gzip streams encode which operating system did the compression. I built a little tool, "gzpeek", to inspect this metadata (and more): evanhahn.com/introducing-...
evanhahn.com
Introducing gzpeek, a tool to parse gzip metadata
gzip streams contain hidden metadata, like the operating system that did the compression. I built gzpeek, a tool to read this metadata.
000
Evan Hahn @evanhahn.com · 26/02/2026
"US orders diplomats to fight data sovereignty initiatives" www.reuters.com/sustainabili...
reuters.com
Exclusive: US orders diplomats to fight data sovereignty initiatives
President Donald Trump's administration has ordered U.S. diplomats to lobby against attempts to regulate U.S. tech companies' handling of foreigners' data, saying in an internal diplomatic cable seen ...
020
Evan Hahn @evanhahn.com · 21/02/2026
The original Legend of Zelda just turned 40! With other birthdays on the horizon (Twilight Princess's 20th is soon), I wanted a calendar that showed the anniversary of every Zelda game. So I made one. Subscribe to this in your calendar app to see every Zelda-versary: evanhahn.com/tape/zelda_a...
evanhahn.com
060
Evan Hahn @evanhahn.com · 31/01/2026
My notes from January 2026: started a new job at @ghost.org, published a WebAssembly module, set every Vim configuration option, and applauded general strikes. evanhahn.com/notes-from-j...
evanhahn.com
Notes from January 2026
Started a new job, published a WebAssembly module, set every Vim configuration option, and applauded general strikes.
020
Evan Hahn @evanhahn.com · 25/01/2026
"The request [from ICE] underscores how tools originally developed for digital advertising and other commercial purposes are increasingly being considered for use by the government for law enforcement and surveillance." www.wired.com/story/ice-as...
wired.com
ICE Asks Companies About ‘Ad Tech and Big Data’ Tools It Could Use in Investigations
A new federal filing from ICE demonstrates how commercial tools are increasingly being considered by the government for law enforcement and surveillance.
000
Evan Hahn @evanhahn.com · 20/01/2026
"I predict that within 15 years Microsoft will discontinue Windows in favor of a Windows themed Linux distribution." gamesbymason.com/blog/2026/mi...
gamesbymason.com
🪟 Prediction: Microsoft Is Going To Do The Funniest Thing Imaginable
When you think Microsoft you probably don't think sense of humor. And yet, I'm convinced that Microsoft is going to do a very specific *very* funny thing within our lifetimes.
020
Evan Hahn @evanhahn.com · 18/01/2026
Congrats to the jQuery team for launching version 4.0! blog.jquery.com/2026/01/17/j...
blog.jquery.com
jQuery 4.0.0 | Official jQuery Blog
jQuery: The Write Less, Do More, JavaScript Library
000
Evan Hahn @evanhahn.com · 17/01/2026
Just learned about the JavaScript Mascot javascript-mascot.github.io
The "JavaScript Mascot"—a smiling, yellow, three-eyed alien cartoon character. It's holding a "JS" flag.
000
Evan Hahn @evanhahn.com · 17/01/2026
To approximate the conversion from Celsius to Fahrenheit, double it and add 30. For the reverse, subtract 30 and halve it. For example, if it’s 12ºC, this heuristic would return 54ºF. (12 × 2) + 30 = 54. The actual amount is not far off: 53.6ºF. More: evanhahn.com/fahrenheit-c...
evanhahn.com
A mental math heuristic to convert between Fahrenheit and Celsius
To convert from Celsius to Fahrenheit, double it and add 30. To do the reverse, subtract 30 and halve it. This is usually pretty close.
000
Evan Hahn @evanhahn.com · 16/01/2026
I set all of Vim's 376 configuration options, and I still feel far from mastery. But I did learn that it used to be called Vi IMitation... evanhahn.com/i-set-all-37...
evanhahn.com
I set all 376 Vim options and I'm still a fool
I set all of Vim's configuration options, and I still feel far from mastery. But I did learn that it used to be called Vi IMitation...
030
Evan Hahn @evanhahn.com · 10/01/2026
"Why Are Grok and X Still Available in App Stores?" www.wired.com/story/x-grok...
wired.com
Why Are Grok and X Still Available in App Stores?
Elon Musk’s chatbot has been used to generate thousands of sexualized images of adults and apparent minors. Apple and Google have removed other “nudify” apps—but continue to host X and Grok.
010
Evan Hahn @evanhahn.com · 07/01/2026
"Let's Fucking GOOOOOOOOOO! (by Lockheed Martin)" www.mcsweeneys.net/articles/let...
mcsweeneys.net
Let’s Fucking GOOOOOOOOOO! (by Lockheed Martin)
“Shares in the world’s leading defense contractor, Lockheed Martin, rose 3.5 percent on the opening of trading as the market rushed to buy into def...
000
Evan Hahn @evanhahn.com · 05/01/2026
"You have virtually no email privacy. They're like postcards, not envelopes." soatok.blog/2026/01/04/e...
soatok.blog
Everything You Need to Know About Email Encryption in 2026 - Dhole Moments
If you think about emails as if they’re anything but the digital equivalent of a postcard–that is to say, postcards provide zero confidentiality–then someone lied to you and I&#82…
010
Evan Hahn @evanhahn.com · 01/01/2026
"The calendar turns, and once again a lively procession of books, images, films, and music leaves copyright behind and steps into the ever-growing public domain!" publicdomainreview.org/blog/2026/01...
publicdomainreview.org
Happy Public Domain Day 2026!
Each January 1st is Public Domain Day, when a new crop of works have their copyrights expire and become free to share and reuse for any purpose. Here's our highlights for 2026.
010
Evan Hahn @evanhahn.com · 31/12/2025
My notes from the final month of 2025. Wrote a few posts, read a few good quotes, bookmarked a few good links. evanhahn.com/notes-from-d...
evanhahn.com
Notes from December 2025
My notes from the final month of 2025. Wrote a few posts, read a few good quotes, bookmarked a few good links.
010
Evan Hahn @evanhahn.com · 30/12/2025
Mastodon and Bluesky are better than the centralized status quo. But between the two, I predict that Mastodon's ActivityPub will outlast Bluesky's AT Proto. More thoughts here: evanhahn.com/prediction-m...
evanhahn.com
Prediction: Mastodon will outlive Bluesky
I don't think that a corporate-controlled social protocol will outlast a publicly-owned one, regardless of the underlying technology. But we'll see if my prediction is right in 25 years.
100
Evan Hahn @evanhahn.com · 27/12/2025
I contributed to @zeldadungeon.net's annual "Best Zelda Ever" ranking. This year featured a big upset... www.zeldadungeon.net/zelda-dungeo...
zeldadungeon.net
Zelda Dungeon’s Best Zelda Ever Ranking List – 2025 Edition! - Zelda Dungeon
It’s that time again! The annual tradition continues! Zelda Dungeon’s Best Zelda Ever ranking is back! Every year, the fantastic folks at ZD come together to rank every single Zelda title from worst to best. The task is arduous, and it isn’t always controversy-free, but the results are without exception something the team is truly proud of. This is the feature we look forward to all year long. The thing that makes Best Zelda Ever so special is how many different factors are at...
000
Evan Hahn @evanhahn.com · 20/12/2025
I trust a Web 1.0, 1990s-style website more than any other source
010
Evan Hahn @evanhahn.com · 18/12/2025
"...the moment a post that's critical or even just slightly negative towards projects or companies affiliated with Y Combinator (either directly or indirectly) gains traction, the platform's moderation team will seemingly step in to significantly limit its reach." xn--gckvb8fzb.com/the-mysterio...
xn--gckvb8fzb.com
010
Evan Hahn @evanhahn.com · 30/11/2025
I think November 2025 was the month I realized I'm a freak for tech ethics discussions. I also published a few posts and clicked a lot of links. My notes from November 2025: evanhahn.com/notes-from-n...
evanhahn.com
Notes from November 2025
I think November 2025 was the month I realized I'm a freak for tech ethics discussions. I also published a few posts and clicked a lot of links!
010
Evan Hahn @evanhahn.com · 30/11/2025
@emschwartz.me You submitted my blog post about open source licenses to Hacker News. Did you know it was an unfinished draft? Unfortunate because I wanted to make some big edits to it before people read it. Please try avoid doing that again. I'll also be more careful with my drafts in future!
100
Evan Hahn @evanhahn.com · 20/11/2025
"Are large language models worth it?" nicholas.carlini.com/writing/2025...
nicholas.carlini.com
Are large language models worth it?
Are the harms that LLMs have caused, and will soon cause, worth the benefits they may bring? This article (a written version of a keynote talk I gave at CoLM) tries to explore this question.
000
Evan Hahn @evanhahn.com · 18/11/2025
Any TypeScript experts know how to make the language immutable by default? I got it working for Array and Record, but not plain objects... evanhahn.com/typescript-i...
evanhahn.com
Experiment: making TypeScript immutable-by-default
I got it working with arrays and records, but couldn't make it work for regular objects.
500
Evan Hahn @evanhahn.com · 13/11/2025
"Google removed certain apps used to report sightings of ICE officials, and 'then they immediately turned around and approved an app that helps the government unconstitutionally target an actual vulnerable group.'" www.404media.co/google-has-c...
404media.co
Google Has Chosen a Side in Trump's Mass Deportation Effort
Google is hosting a CBP app that uses facial recognition to identify immigrants, while simultaneously removing apps that report the location of ICE officials because Google sees ICE as a vulnerable gr...
000
Evan Hahn @evanhahn.com · 10/11/2025
"I'm literally calling on Rails committers to be brave, to talk to their like-minded friends, and to make a plan to fork the thing, and take their labour to a namespace DHH doesn't control." okayfail.com/2025/in-prai...
okayfail.com
In Praise of dhh
A reflection on Ruby's past, present, and future.
000