Just had a super frustrating back and forth with ChatGPT on an OpenSCAD model. This was the first time I've seen it produce code with actual syntax errors and use the wrong names for arguments.
Posts by Alex Nichol
"Have your cake and eat it too" is a dumb expression. Nobody wants to "have" cake; the only reason to have it is if you plan to eat it. So really the expression should be "eat your cake twice" or "have two cakes for the price of one".
Spotted at Home Goods: an AI-generated image for sale to hang on your wall.
Just saved so much time by pasting a bunch of code into ChatGPT Pro, asking it to find any potential bugs, and letting it run during my meeting. I came out of the meeting and learned about two subtle shape errors that would have made results silently broken.
First draft of an interpreter (partly vibe coded): github.com/unixpickle/r...
If there's some function you want to use, but it doesn't do _quite_ what you want, you can patch its behavior by simply overriding some intermediate variable that it uses in its computation.
For example, to add two numbers, you override the argument field 'y' of the 'add' object and get its 'result' field:
3.add[y=4].result
You can access a parent scope using ^, so to add 'a' and 'b' (both in the current scope) you can do
a.add[y=^.b].result
Today I've been trying out a new concept for a programming language. Everything is an object; there's no separate notion of "functions". All fields of an object are lazy, and you can patch fields arbitrarily. A "function call" is just overriding "argument" fields.
I recently claimed in a conversation that Apple doesn't have a leg up in the AI race because no consumer cares about running models locally.
Maybe what I said will turn out to be as wrong as the 1970s sentiment that no normal person would want their own computer.
I asked ChatGPT who the most famous person in the world is. It guessed Cristiano Ronaldo. Never heard of him. I feel very American right now.
Alexa+ is nice, but it did hallucinate almost immediately.
Evil, evil ad.
Did I beat the game? I got it to admit it was wrong.
Made an agent that generates 3D models by writing Go code (which uses my model3d package as a foundation).
Before hiring a contractor, ask them how they keep track of how much you owe them and how much you've paid so far. The answer should be clear and simple (e.g. "I use a spreadsheet"). It should NOT be "I have a bunch of different versions of a doc in iCloud".
If the whole "put a fake bug in the urinal" thing works, why aren't there fake bugs in every urinal now that it's years later? Seems to me like nudge theory is either BS or impractical for various reasons?
I'm starting to believe that ExitStack() is a code smell.
To benchmark the agent, I made a few "simulations" of unsubscribe websites. The results are far from perfect! There's still a lot of room for improvement here.
Apps like Gmail try to give you automated "unsubscribe" buttons, but companies have clever ways of making this not actually do what you want. The most common trick is having many "mailing lists". By default you are removed from only one. This is also a trick on unsubscribe pages.
I made an agent that unsubscribes you from spam. It controls a web browser to navigate an unsubscribe page. The agent runs JavaScript to perform actions on the page, and gets to see a screenshot after each action it takes.
Blog post: blog.aqnichol.com/2025/09/20/u...
Don't use floats for money.
Damn birds are striking again?
There was a ~month where, instead of opening this app, I was learning graph theory. My mind felt so much more at peace. What should I learn next?
I don't understand laws around music.
๐ copy a few words from someone else's song.
๐ re-record your entire album word-for-word so the old version that you sold to a company for millions of dollars becomes worthless to them.
Why don't we have a programming language for deep learning where dtypes and shapes are part of the type system?
The "baseball Karen" has a narrow opportunity to start a podcast and scam millions of people with a memecoin.
completely messed up that I can try to type `10.9.0.4` and instead type `10.9.04` and it still works.