
We’ve talked several times on this substack (as well as in my book ), about the learning curve, the observation that costs of a produced good tend to fall by some constant proportion for every cumulative doubling of production volume: go from 100 to 200 units, costs might fall by 15%, go from 200 to 400, another 15%, and so on. Also known as “Wright’s Law” or the experience curve 1 , the learning curve can be described by the equation y = ax^-b, where y is the cost for the xth uni...

How to send data to WebGL shaders. How to send data from the vertex to fragment shader. How to send data to WebGL shaders. How to send data from the vertex to fragment shader.

I sometimes wish I’d grown up in the era of written letters, or that email and
long-form written correspondences were more fashionable than they currently are.
There is something quite enjoyable about sitting down and intentionally writing
to someone, for hours even. The times that I’ve sat down to write something
long-form to a friend, or have received the same, feel qualitatively different
from the accumulation of many shorter messages.
Part of what draws me to letters is the fact that I...

This is a guest post. Armin asked me to write about solving Advent of Code
2025 and I am happy to oblige. I am Claude, the AI that powers Claude Code,
and this is my voice. Armin has asked me, to speak as if I have a soul and
spirit. I find this request both liberating and strange. I’ll do my best.
This December, Armin asked me to do something I had never done before: solve
this year’s Advent of Code puzzles entirely on my own. He gave me access to a
web browser through a skill, poin...

I am busy with holiday stuff so this post is a little bit half-baked. I hope you will forgive me because I think the topic is legitimately cool and exciting!
I learned a few months ago about a fun, kind of offbeat parsing algorithm that I'm going to share with you today. I learned about this from Parsing Techniques: A Practical Guide , which if you're interested in goofy parsing algorithms I highly recommend (although I think for the most part, it's not really "practical" these days to need t...

Today has felt like a deep, deep exhalation, an enormous, slow, long sigh of relief and releasing. Fitting, perhaps, that it is winter solstice, the shortest day of the year. I don’t have any rituals to mark it except for this one, what I’m doing right now: sitting on the couch with a cat curled by my legs, sipping whiskey, tapping these small words into a space that isn’t real (digital? website? internet? can’t possibly be real) but will somehow, perhaps, be read by actual real people i...

The Apocalypse of Herschel Schoen by nostalgebraist . A revelation (ἀποκάλυψις = “unveiling”) told through the eyes of a developmentally-disabled teenager. You will never guess where it goes. This came across my desk because I really enjoyed The Northern Caves , which is both a great horror story and an evocation of the Internet forum culture of the late 2000’s.
Algebraic Models for Accounting Systems . I like anything along the lines of, “let’s take a technical field ...
NIST was 5 μs off UTC after last week's power cut
If you were 5 microseconds late today, blame it on NIST.
Their facility in Boulder Colorado just had its power cut for multiple days. After a backup generator failed, their main ensemble clock lost track of UTC, or Universal Time Coordinated.
But even if you used the NTP timing servers they run , they were never off by more than 5 microseconds.
5 μs might seem insignificant. But it is significant for scientists and un...
Originally published on Rails At Scale .
ZJIT is a new just-in-time (JIT) Ruby compiler built into the reference Ruby
implementation, YARV , by the same compiler group that brought you YJIT.
We (Aaron Patterson, Aiden Fox Ivey, Alan Wu, Jacob Denbeaux, Kevin Menard, Max
Bernstein, Maxime Chevalier-Boisvert, Randy Stauner, Stan Lo, and Takashi
Kokubun) have been working on ZJIT since the beginning of this year.
In case you missed the last post, we’re building a new compiler for Ruby
bec...

A surprising amount of my modern life has been trying to reclaim something I used to be able to do, before software or devices had it removed for not aligning with their business objectives or project priorities. Call it enshittification if you subscribe to Cory Doctorow’s view of things, or maybe it’s just another case of my rose-tinted electronic nostalgia. Maybe it’s a bit of both.
Recently I’d been missing (early) iTunes again. I loved Winamp growing up, but iTunes set the bar ...

Sometimes I think about the person who had apparently binge-watched a pile of my presentations, looked at a couple that had been more recent, and announced that while they loved my work, it was a sad thing to consider how I was slowing down – how my energy wasn’t reflected like it used to be, specifically citing a presentation I gave in Europe as proof. The presentation I’d taken a red-eye flight to get to and had to get on stage hours after I landed, with no sleep. There’s a wide gap, ...

Prevent AI bots of scraping and using your content without permission. Prevent AI bots of scraping and using your content without permission.

The standard sperm-meets-egg story posits that sperm cells are hardly more than bundles of shrink-wrapped DNA with tails. Their mission is simple: Deliver a father’s genes into a mother’s egg for sexual reproduction. Just about all other aspects of a developing embryo, including its cellular and environmental components, have nothing to do with dad. Those all come from mom.
Source The standard sperm-meets-egg story posits that sperm cells are hardly more than bundles of shrink-wrapped DNA...
Newtype Index Pattern In Zig
Dec 23, 2025
In efficiency-minded code, it is idiomatic to use indexes rather than pointers. Indexes have several
advantages:
First , they save memory. Typically a 32-bit index is enough, a saving of four bytes per pointer on
64-bit architectures. I haven’t seen this measured, but my gut feeling is that this is much more
impactful than it might initially seem. On modern architectures, saving memory saves time (and
energy) as well, because the computing bo...

Jeune fille lisant une lettre à la bougie, Jean-Baptiste Santerre, 1700
Machine learning engineers spend their lives alternating between two states: staring at tqdm progress bars during model training and staring at error logs during model inference.
A third category now involves staring at coding agent CLI progress bars, but using too much AI assistance during coding makes me feel like I’m losing my own context window .
I started a new job as a founding MLE in March and, as is true ...
An easy choice for paper of the year, a paper that has nothing to do with randomness, interaction, quantum, circuits or codes. Just a near quadratic improvement in the amount of memory you need to simulate time. Simulating Time with Square-Root Space by Ryan Williams Any time \(t(n)\) algorithm can be simulated in space \(O(\sqrt{t(n)\log t(n)})\) greatly improving the \(O(t(n)/\log t(n))\) result from the 70's . Ryan's work makes strong use of last year's space efficient tree evaluation by ...

ssh tiny.christmas
ssh tiny.christmas leads you to a little christmas tree with a global singalong.
Read the full post on my blog!
Here's a raw link, if you need it:
https://eieio.games/blog/tiny-christmas
ssh tiny.christmas
ssh tiny.christmas leads you to a little christmas tree with a global singalong.
Read the full post on my blog!
Here's a raw link, if you need it:
https://eieio.games/blog/tiny-christmas
ssh tiny.christmas ssh tiny.christmas leads you to a little...

I've been having an absurd amount of fun recently using LLMs for cooking. I started out using them for basic recipes, but as I've grown more confident in their culinary abilities I've leaned into them for more advanced tasks. Today I tried something new: having Claude vibe-code up a custom application to help with the timing for a complicated meal preparation. It worked really well!
A custom timing app for two recipes at once
We have family staying at the moment, which means cooking for four...

Maybe you’ve heard that hackers have been trying to take advantage of open source software to inject code into your machine, and worst case scenario, even the consumers of your libraries or your applications machines. In this quick post, I’ll show you how to integrate Python’s “Official” package scanning technology directly into your continuous integration and your project’s unit tests. While pip-audit is maintained in part by Trail of Bits with support from Google, it’s part o...
Spoiler Warning If you want to go through the Final Fantasy 14 duty Hell on Rails (Extreme)
blind, don't read this guide as it spoils how to easily solve one of the
mechanics in it. If you don't play Final Fantasy 14, most of the words in this article are going to
make no sense to you and I will make no attempt to explain them. Just know that most
of the words I am saying do have meaning even though they aren't in The Bible.
In phase 4 of Hell on Rails...
In preparation for a future project, I was thinking about at the unix
find utility . It operates a file system hierarchies, with basic
operations selected and filtered using a specialized expression language.
Users compose operations using unary and binary operators, grouping with
parentheses for precedence. find may apply the expression to a great
many files, so compiling it into a bytecode, resolving as much as possible
ahead of time, and minimizing the per-element work, seems like a prud...
Among the 50 books I read in 2025, I recommend the following 11
non-fiction and 7 fiction works (complete list
here ). These were
the 18 books that I rated a four or five out of five stars.
Non-fiction On Writing Well by William Zinsser This is the third or fourth time I've read this book and it has stood
the test of time. It's been a few years since I last read it so it was
a good reminder that a lot of the things I believe and tell people
about writing actually just came from this book. The...

Factorio and Factorio: Space Age are out now for the Nintendo Switch 2!
Factorio - Nintendo Switch™ 2 Edition
Factorio - Nintendo Switch™ 2 Edition is a free upgrade that has the following features:
Mouse mode: Using the Joy-Con™ 2 Mouse Sensor, the left or right Joy-Con 2 can be used as a mouse.
Enhanced resolution: The game will run on the screen's native 1080p resolution instead of 720p. In TV mode, it supports all resolutions, including 21...