
Thank you all for your ongoing support that gives you access to my 3D parts and designs. I'm excited to share than starting now, I have a collaborator support tier. The existing tier still will have access to all the same design files, comments on posts, and of course the newsletter. The new tier offers a true collaboration space for those who are looking customized my builds or just need help building them out. The new tier provides:
Same access as the supporter tier to get 3D files, desig...
The Second Great Error Model Convergence
Dec 29, 2025
I feel like this has been said before, more than once, but I want to take a moment to note that
most modern languages converged to the error management approach described in Joe Duffy’s
The Error Model ,
which is a generational shift from the previous consensus on exception handling.
C++, JavaScript, Python, Java, C# all have roughly equivalent throw , catch , finally
constructs with roughly similar runtime semantics and typi...
I manage my legally obtained content using a media server. Over the years, both hardware and software on the server went through a bunch of transformations which I find interesting.
In order to not look at ads on my Samsung TV, I view all of my content through NVIDIA Shield. It is connected to the TV through HDMI and has a working implementation of HDMI eARC that my TV responds to. Because of that, whether NVIDIA Shield turns on or turns off, TV follows suit, which is very convenient. I manag...

Rob Pike ( that Rob Pike ) is furious . Here's a Bluesky link for if you have an account there and a link to it in my thread viewer if you don't.
Fuck you people. Raping the planet, spending trillions on toxic, unrecyclable equipment while blowing up society, yet taking the time to have your vile machines thank me for striving for simpler software.
Just fuck you. Fuck you all.
I can't remember the last time I was this angry.
Rob got a 100% AI-generated email credited to "Claud...
Favorite books of 2025
Another year where my technical content consumption outpaced the non-technical, and as a result, as usually happens, I’ve been feeling a lack of inspiration in my technical work. I strongly believe that if you do anything with code, you should be reading more fiction than non-fiction. Hoping to break that chain next year!
In writing these up, Ialso realized that most of these books are also not happy or easy books to read. I generally struggle through serious books, ...

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...
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...

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

I’m about half a dozen flights into training for a Private Pilot’s License and
wanted to write some notes while I’m still firmly in the “beginner mindset”.
Flight training has tons and tons of mnemonics . Wikipedia has 2 separate
articles for these
( 1 ,
2 ), and this is
nothing near an exhaustive list. Many of these mnemonics are either heavily
forced acronyms (e.g. for landing go arounds: CCCC = “cram it, clean it, cool
it, and call it”) or somewhat opaque phrase (e.g. for tak...
No matter how busy life is, there's always time to admire a beautiful sunset.
Thank you for keeping RSS alive. You're awesome.
Email me ::
Sign my guestbook ::
Support for 1$/month ::
See my generous supporters ::
Subscribe to People and Blogs No matter how busy life is, there's always time to admire a beautiful sunset.
Thank you for keeping RSS alive. You're awesome.
Email me ::
S...

In my last article, “ Python Supply Chain Security Made Easy ” I talked about how to automate pip-audit so you don’t accidentally ship malicious Python packages to production. While there was defense in depth with uv’s delayed installs, there wasn’t much safety beyond that for developers themselves on their machines.
This follow up fixes that so even dev machines stay safe.
Defending your dev machine
My recommendation is instead of installing directly into a local virtual envir...
1Password Dependency Breaks Syntax Highlighting
borretti.meEarlier today I noticed the syntax highlighting on this website was broken. But
not fully: on reload I’d see a flash of highlighted text, that then turned
monochrome. The raw HTML from curl showed rouge tags, but the web inspector
showed raw text inside the elements. This didn’t happen in Chromium.
My first thought was: there’s malformed HTML, and Firefox is recovering in a way
that loses the DOM inside tags. Then I noticed it doesn’t happen in
incognito. Turning my extensio...

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 a WebGL shader and between the vertex and fragment shader. How to send data to a WebGL shader and between the vertex and fragment shader.

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, ...

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...

Get it while it’s hot!
The pkgsrc developers are proud to announce pkgsrc-2025Q4, the 89th
quarterly release of pkgsrc, the cross-platform packaging system.
pkgsrc contains over 29,000 packages. More information on pkgsrc
is available at https://www.pkgsrc.org/ .
Since the last release (2025Q3), 112 packages were added, 2326 packages
were updated (1472 distinct ones), 2 packages were downgraded, and 20
packages were removed.
The release announcement includes more detail, including upd...
Some activities have smooth progress bars: rowing, knitting, cycling, climbing,
bodybuilding, etc.
For such pastimes, investing a unit of effort reaps a proportional unit of
progress. Linear incrementalism is a sound strategy when success is linear. To
win at rowing, row harder/better/faster/stronger than your competition.
Golf is not so smooth. Yes, each round is a state-dependent game of
error-correction (i.e. Zeno's Paradox). But golf swings are coarse actions --
few swings per game, with...
Since the web server uses gzip content encoding , does it really matter if I minify? Yes, it does, and the help from minify seems to be independent of the help from gzip:
Size reduction file when using gzip or minify
The main goal of this change was to reduce dependencies. But it looks like I still have a dependency on esbuild instead of on sassc . How is that better?
I have been maintaining my site for over 30 years. It’s older than Wikipedia or Google. Most softw...
Dell's version of the DGX Spark fixes pain points
Dell sent me two of their GB10 mini workstations to test:
In this blog post, I'll cover the base system, just one of the two nodes. Cluster testing is ongoing, and I'll cover things like AI model training and networking more in depth next year, likely with comparisons to the Framework Desktop cluster and Mac Studio cluster I've also been testing.
But many of the same caveats of the DGX Spark (namely, price to performan...
Another entry in the Toy Optimizer series .
A long, long time ago (two years!) CF Bolz-Tereick and I made a video
about load/store forwarding and an accompanying GitHub Gist
about load/store forwarding (also called load elimination) in the Toy Optimizer. I
said I would write a blog post about it, but never found the time—it got lost
amid a sea of large life changes.
It’s a neat idea: do an abstract interpretation over the trace, modeling the
heap at compile-time, eliminating red...

Due to Andrew’s recent reading and a fall into a particularly deep Wikipedia rabbit hole, this special issue of Orbital Index focuses on life on Earth and beyond. No issue next week. Happy New Year!
...

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...