But actually in the years since this was written I do think the world has shifted. Doing things on a computer used to be really hard. Even just installing a framework or getting >python to call the right python on windows. Then install Django and get Django to work with nginx etc. It was just a lot of thankless, frustrating work to get from zero to 1%.
Aside from AI, the tools and packages and culture of computing has gotten better (I believe that despite the problems). But AI means you just get all the trivial but difficult stuff for free. And I think a lot of people who would have given up now make it through to see something work and they’ll feel the thrill of building something. It’s just better and easier now.
In the end I screwed some wall shelves in and called it good enough.
Momentarily baffled, I realized that, despite appearances, the old frame was actually not square, in fact it was a parallelogram. I'd measured the height and width and assumed it was square. The previous (experienced) carpenter who'd built the doors I was replacing had clearly noticed this, and simply allowed for the misalignment in his design. He built perfectly square-appearing doors that mounted to the not-square frame. I had to go back and rework mine considerably for them to fit without looking ridiculous. They're still there and holding up well, but I also still think of this lesson on a regular basis in my day to day life now.
If you built the bookshelf in wood, it will be expanding, contracting and shifting over time with temperature and humidity variation throughout the day and season. And asymmetrically depending on the grain.
The straight right angles won't stay that way, and it's better to design such that they change in complementary ways, rather than remain perfect.
I can never look at staircases the same.
I think I'm drawn to programming because the fiddliness is tractable, and fixable.
In which other domain can I:
* introspect the relevant processes/state, step by step
* snapshot/undo
* fix niggles, once and for all, and for everyone; and get their fixes too
* probe and test my inputs and outputs, checking for quality. Get notified if a part changes in a way that breaks me.
And the only tool I need is a commodity general purpose PC.
When I try woodwork, or even electronics, I'm struck by much friction is in even simple tasks: tools, parts, lead time, safety, space, physical effort, cost, ...
The best I could do with woodworking in the end to approximate programming was live with wasting some timber, leave a lot of margin on the main cuts and size all the pieces as a whole.
And also that’s why AI tools create mix reactions. A couple of months ago a post went viral which was really insightful on what I was originally drawn to cs.
With wood you are up against nature. With software you are up against corporations and comities.
https://news.ycombinator.com/item?id=16184255 - Jan 19, 2018
https://news.ycombinator.com/item?id=22020495 - Jan 11, 2020
https://news.ycombinator.com/item?id=29429385 - Dec 3, 2021
https://news.ycombinator.com/item?id=38407851 - Nov 24, 2023
https://news.ycombinator.com/item?id=43087779 - Feb 21, 2025
Then we give it to someone else and it fails on their first or second attempt. They simply tried to use it in a way that we did not anticipate. It doesn't mean that we are dumb for not thinking of those possibilities; it just means that we did not think of every one of them.
AI doesn't deal with reality, it deals with tokens. This is why all those vibe-coded harnesses, little more than glue between various text IO interfaces, are several hundreds of thousands of source lines of code.
It's why a SOTA model took 100kSLoK to write a C compiler to compile one specific project.
It's why, when I asked for a simple markdown -> ansi escape codes converter (for terminal output) in Python, SOTA Claude and SOTA ChatGPT both give me +- 150 SLoC when my own LUT-based version came to under 10 lines of code + a LUT.
Reality has a surprising amount of detail, but LLMs don't exist in reality, they exist in a virtual world made up off tokens.
Reality is by definition our physical reality, which is about an infinite number of levels more detailed than the, you know, _virtual_ digital world computers exist in.
Whatever world we construct for LLMs, no matter how detailed we make it, will always be a blocky projection of the real domain onto a virtual one.
It follows then that any insight gained in the virtual world is at best a rough approximation which can be quite useful at times but also utterly faulty on occasion.
How often it is useful vs. wrong is (partially) a function of how complete the real-to-virtual approximation for a given domain.
Certain domains, given their limited degrees of freedom, can be quite accurately modeled, such as a subway map.
But many domains cannot, and it's important to be aware of that inherent limitation in digital models including but not limited to LLM """reasoning"""
Yes.
> Or just in a virtual world made up of sensory signals?
No, definitely reality. Things affect my thought whether I sense them or not.
I think the more interesting corollary of this article is that if we're living in a simulation, it's an impossibly, improbably detailed one. I really want some compute time on the HPC that's running it.
I expect there's a lot of detail that I'm unaware of relating to running a company (planning; risk; legal; ...) that might make a decision foolish to me, but make sense if given more context.
https://contraptions.venkateshrao.com/p/truth-in-inconvenien...
Infinite is a very big claim.
Contemplating the details of a thing is really satisfying. At times I find myself sitting there and trying to decompose the astonishing amount of work, research, both evolutionary and revolutionary progress that has gone into reaching the current level of something. Buying myself a coffee and stare at the local ferry and acknowledge that someones life's work went into figuring out how to make the paint stick to metal.
Naturally the other point also sticks.. I too often get stuck on the details. :P
I visit every couple of days. It's REMARKABLE how fast things get done. One day, there were no walls. The next day, almost all of the walls were in place!
... and yet, at the same time, things take a long amount of time because reality has a surprising amount of detail. I haven't taken into account how much you have to do to frame a house. So incredible amounts of work get done, day after day, but 3/4 of them are things I had no idea needed to get done! Gazing up into the roof, the detail is incredible. The PSL beams, the brackets, the joists, the trusses, just.. EVERYTHING!
I thought the structural engineer's plans had an incredible amount of detail on them, and they do, but they also don't really say anything about _how_ to build the thing. How to put up the walls, how to hold them together temporarily, how to lift beams into place. In what order things can and should be done. That all just takes experience.
> you could be intellectually stuck right at this very moment, with the evidence right in front of your face and you just can’t see it.
It’s always a little disappointing to me when I think I’ve run into something unique but it ends up being user error or something.
Being a founder has a lot of SRE like activities. Fortunately I used to actually like troubleshooting and hence love being a founder but I know a lot of people quit this path because of the "suprising amount of details" in reality!
When you hire someone to work on the stairs for you, you /hope/ they know what they're doing, especially if you don't have the skills yourself to judge their work. Same for an agent.