Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 4,109 posts.
Parser Combinators Beat Regexes
Someone online was solving Advent of Code problems, and had a question about last years’ day 3 . They had a working solution using regular expressions (regexes) on String values, but they wanted to use ByteString values instead for performance reasons. They were surprised, however, that there seems to be a lack of…
AI coding and the peanut butter and jelly problem
Why clear communication—not clever prompts—is your real AI superpower
Take Two: Eshell
This is a contribution to the Emacs Carnival 2025-06: Take Two collection of posts on Christian Tietze’s blog. My first take with Eshell many years back did not leave a good impression. My...
Anti-Personnel Computing (2023)
Neologisms for the current computing era.
Baby Steps into Genetic Programming
While my final ranking in the Google AI Contest was disappointing ( 280th ), it was a very educational experience and was totally offset by Gábor Melis' dominating win using Common Lisp as well.
Lynx Browser: The Land That Time Revived (2022)
"If you don't perceive using the Internet in the 2020s to be a constant fight, you have absolutely no online privacy whatsoever." Lynx br...
Gumroad’s license wouldn’t meet the widely regarded definition of open source
Advisory: I am not a legal expert and there could likely be inaccuracies in this post. Today Gumroad announced that they’ve become open source, with this being echoed by the founder and on social sites like Hacker News:
A Reverse Engineer's Anatomy of the macOS Boot Chain and Security Architecture
1.0 The Silicon Root of Trust: Pre-Boot & Hardware Primitives The security of the macOS platform on Apple Silicon is not defined by the kernel; it is d...
Python's splitlines does more than just newlines
I always assumed that Python's str.splitlines() split strings by " universal newlines ", i.e., \n , \r , and \r\n .
Optimizing Tool Selection for LLM Workflows with Differentiable Programming
How local, learnable routers can reduce token overhead, lower costs, and bring structure back to agentic workflows.
Enhancing your MIDI devices with Perl
This post also appeared on perl.com.
Hiding messages in a deck playing cards
I was recently thinking about the huge number of ways you can shuffle a deck of 52 cards and wondered if it would be possible to store arbitrary data.
Don't pick weird subnets for embedded networks, use VRFs
Don't pick random subnets to avoid IP address conflicts on foreign networks, use VRFs!
My app just won best iOS Japanese learning tool of 2025 award (blog)
Welcome to the award show everyone! Hosted by your favourite bee... Bee! 🥳 I wanted to summarise the best tools etc out there in 2025, and what better way then to put on a fake award show! And like all true award shows and Christmas themed events, let's get into
Leeks and Leaks
On the completely impossible situation of blocking the Tor .onion TLD to avoid leaks, but at the same time not block it to make users able to do what they want. dot-onion leaks The onion TLD is a Tor specific domain that does not mean much to the world outside of Tor. If you try … Continue reading Leeks and leaks →
Dissecting "Tiny Clouds" shadertoy (2017)
There is an amazing shadertoy called “Tiny Clouds” by stubbe (twitter: @Stubbesaurus) which flies you through nearly photorealistic clouds in only 10 lines of code / 280 characters (2 o…
How Georgists Valued land in the 1900's
The lost art of the "Somers System" of land valuation
Cottagecore Programmers
Every programmer I know has at some point longingly expressed how “[they] want to work with [their] hands”. Some say they wish they were a carpenter, some want to be in the fields on a farm, some want to raise chickens, or milk cows. It is however inevitable that I either hear someone say it or agree with it at some…
Let's get real about the one-person billion dollar company
The biggest hurdle is not AI capability, but founder pain tolerance.
The principles of database design, or, the Truth is out there
Every software project needs to represent the reality of the business he is embedded in. The way we can represent reality as limited rational beings is through propositions, i.e, declarative statements that affirm or deny something about reality. When a collection of such propositions is stored in a computer system…
Asyncio: A library with too many sharp corners
An explanation of some major issues with asyncio.
You should write "without bugs"
Why and how you should write "without bugs"
OSMAnd vs. Organic Maps
There's a new offline mapping program for smartphones, so I thought I'd see how it stacks up against the one I'm already using.
IP over Lasers
Mike Kohn's music, software, and electronics projects.
Inside OS/2 (1987)
A 1987 technical introduction to OS/2, covering its architecture, multitasking capabilities, API, and kernel system services.
Jingle Bells (Batman Smells): An incomplete festive folk-rhyme taxonomy
Gather round the fire, everyone, and let me tell you a story. It has everything you could want in a Christmas blockbuster: superheroes and villains, a car crash, children singing, a mystery to solv…
One Logo, Three Companies
Fountain pens in Japan.
MySQL transactions per second vs. fsyncs per second (2020)
Just wondering how many transactions or writes per second MySQL can handle? While it depends on many factors, fundamentally, about as many transactions as MySQL can commit to disk per second. A modern disk can do ~1000 fsyncs per second , but MySQL will group multiple writes with each fsync. An okay rule-of-thumb…