… and we’re back! Back from a week of vacation — tanned, refreshed, involuntarily without a wedding ring — and back from two weeks without writing here.
I finished reading The Power Broker. Yes, it took me more than six months, six months in which I usually would’ve read ten other books, but it was completely worth it. It’s a masterpiece. The chapters on Jones Beach, that chapter on Battery Park, the “RM” chapter, the “One Mile” chapter — it’s some of the best writing I’ve ever read. Here’s how Caro introduces a, well, side-character:
Consider his relationship with Tom Shanahan.
Shanahan's nostrils twitched to a single aroma: the smell of money. Even as a boy at the turn of the century, one of seven children of a poor Irish boilermaker, he had followed that scent to its source: the noses of his Waterbury, Connecticut, playmates may have been flattened against candy-store windows; Tom Shanahan's nose was pressed against the glass front door of Waterbury's Colonial Trust Company; reminiscing forty years later, he would recall vividly passing that building almost every day of his youth and staring inside almost every time he passed; it had been, he would say, a place of "august halls"; from as far back as he could remember, he would say, he had wanted to be a banker.
He followed the scent down to the great city after high school, but for long years he seemed to have followed it into a trap: the tall, strong young man spent seven years behind the barred windows of tellers' cages. He went to NYU at night, in 1926 earned a degree, but five years later still had a job only slightly better—assistant cashier—at one of the smallest and shakiest banks in the city, the eight- year-old Federation Bank and Trust Company. But when, in 1931, the Depression forced the infant institution to shut its doors, it was the assistant cashier who, with Federation's despairing officers ready to liquidate, thought up a complex refinancing plan that reduced the bank's obligations, personally talked a financier into loaning it the money to pay them off, and saved the bank. When it reopened, Shanahan, at twenty-nine, was its vice president and treasurer.
What writing. What research! The amount of work that went into this book is something you wonder about with every chapter.
Anyway: I’d really love to visit New York now, I’ve never been.
Fantastic post: It’s a torturous chaos until it isn’t. If you only read one thing off this list this week: make it this one. It’s the only thing I’ve read on the topic that lands in that middle ground between “you just have to push through” and “well, except when even that won’t help.”
David Crawshaw wrote about Programming With Agents. If you aren’t burning through tokens every day with agents, it’s a good idea to read this. I’m not convinced about the need for safeguards (I don’t have any safeguards for my agents and nothing bad has happened in the last few millions of tokens, not even close), but I’m very much convinced by this closing thought: “LLMs, and more specifically Agents, affect the process of writing programs in a new and confusing way. Absolutely every fundamental assumption about how I work has to be questioned, and it ripples through all the experience I have accumulated. There are days when it feels like I would be better off if I did not know anything about programming and started from scratch. And it is still changing.”
Writing Toy Software Is A Joy. “Some will tell you to avoid reinventing the wheel, but they’re wrong: you should build your own wheel, because it’ll teach you more about how they work than reading a thousand books on them ever will.” (I agree.) All of the projects on the list make me want to take a vacation to just program.
The Unreasonable Effectiveness of Fuzzing for Porting Programs. “You're putting the agent between a rock and a hard place, as it were, and this reduces the easy solutions it could use, and thus it works harder to find a real solution.”
Justin Searls with a bucket full of cold water explaining “why agents are bad pair programmers.” I don’t agree with him, but I’m still thankful for that perspective. It’s a weird way to program and I’m still getting used to it and I don’t think it’s in its final form — far from it.
“Disney had only one rule. Whatever we did had to be better than anybody else could do it” and “You could work all day, the whole eight hours, and at the end of the day look at what you did and put it in the wastepaper basket with no compunction. Nobody would ask you why you did it; they would ask if you didn't"
Filip Jerzy Pizło, a compiler hero of mine, has been working on Fil-C, a “fanatically compatible memory-safe implementation of C and C++”, for a while now and continuously posted about his progress. He’s now reached the point where he can use Fil-C to compile a text editor, which he then uses to write a C program, which he then compiles with Fil-C again. They say (they don’t, really) that some bootstraps are better than others and this, I think, a very neat one. (Filip then also posted somewhat of a review of the last 1.5 years of Fil-C and, well, I have to admit I don’t understand all of it, but that doesn’t stop the admiration, does it?)
Shortly before going on vacation I wrote about subagents in Amp. Then, two days later, Cognition, creators of Devin, said: Don’t Build Multi-Agents. Then, a day after that, Anthropic explained “How we built our multi-agent research system“. Fun times in Agentic Country. My reading is that our goal in Amp isn’t necessarily to build an agent that can run as long as possible and finish tasks as big as possible — it’s to build a power-tool for power-users, to give them eight mechanical arms, to help them finish their work faster. For us, subagents are another tool in the toolbox of the agent. And, as I wrote in my post there, how to best use this tool still needs to be explored — “It’s time to explore and find out”, I wrote. But if you’re building Devin and your goal is to build an agent that goes off on its own and builds features from top to bottom and can — I think that’s the goal? — replace engineers, then, well, adding subagents means putting your main agent on stilts, wobbly stilts, and when it has to run for a long time, it’s entirely possible that wobbly stilts aren’t the way to go.
Still don’t know what I think about this Andrej Karpathy talk that everyone seems to love. But what stuck with me was this: “code was the easiest part”
Sign of the times: “Workspace Manager simplifies coordinated development across multiple related git repositories by automating workspace setup, git operations, and status tracking.” It’s, of course, meant for agents. And if I’m not mistaken, I think Manuel has said somewhere that it was 100% written by agents.
Last Sunday I fell into a Wikipedia hole after reading about the “30,000-pound (14,000 kg) class, 20.5-foot-long (6.2 m) precision-guided munition ‘bunker buster’ bomb” GBU-57 (look at the names of these “specific large bombs”!) and ended up reading a lot about termites. That’s right. I don’t know either. But, anyway, did you know that the “caatinga ecoregion in northeast Brazil has about 200 million termite mounds spread over an area the size of Great Britain” and — yes, yes, it gets better — that “scientists performed radioactive dating on 11 of these mounds. The youngest mound was 690 years old, while the oldest was at least 3,820 years and possibly more than twice that.” Termites, dude.
Morgan Housel — man am I a sucker for his writing — wrote about Very Bad Advice. Some of my favorites: “Mimic the strategy of people who want something different than you do”, “Assume that what people can communicate is 100% of what they know or believe”, “Prioritize defending what you already believe over learning something new.”
Pair Morgan’s piece with Claire Vo’s post here: “The best advice I can give after doing this startup thing for 20 years is to watch & learn: who is making money, why, what are their incentives, who is happy and healthy and married, who spends time with their kids, who is always on a plane, who looks tired, who gets booted, who gets bored, what funding buys you, what it doesn’t, watch your own motivations, your impulses, where you’re broken, and don’t use the wrong tool to fix the wrong thing.”
"In grad school I worked with lots of undergrads who thought they wanted to be professors. Then I'd send 'em to my advisor Dan, and he would unpack them in 10 seconds flat. 'I do this,' he would say, miming typing on a keyboard, 'And I do this,' he would add, gesturing to the student and himself. 'I write research papers and I talk to students. Would you like to do those things?' Most of those students would go, 'Oh, no I would not like to do those things.' The actual content of a professor's life had never occurred to them. If you could pop the tops of their skulls and see what they thought being a professor was like, you'd probably find some low-res cartoon version of themselves walking around campus in a tweed jacket going, 'I'm a professor, that's me! Professor here!' and everyone waving back to them going, 'Hi professor!'" — from: “Face it: you're a crazy person”
There is absolutely nothing, nothing, not to love on this page that greets you with: Welcome to Theodore's Thick Coins. Scroll through, smile, then right-click and View Source, please. Then go stand in front of a mirror and tell yourself, with conviction in your heart and pride in your eyes: I shall do the same.
The ever-wonderful Geoffrey Litt on “better diff views for AI agents” with Geoffrey-Litt-like thought-provoking ideas and ending with: “Historically most creative professionals haven't had very good version control tools -- but now with AI in the mix, the motivation to build them has dramatically increased. A side effect I'm optimistic for is that this will also yield better tools for collaborating among humans. Excited to see what diff views people start cooking up as we enter the era of agents...”
This post by Steven Sinfosky made me sit up straight and go: that’s right, that’s it, that’s the problem — don’t anthropomorphize them! Since reading the post a few weeks back, I’ve come to think that it’s one of the big hurdles we as programmers have to overcome: we have to see them as tools, not as — I don’t know, beings? Don’t get me wrong, I love thinking about them as giant orbs from outer space, but when you think about them as human-like, near-AGI things you end up with the wrong expectations. It’s better to think of them as pipes than oracles.
VibeTunnel is slick and cool and has an amazing landingpage and I love following the authors on Twitter and see what they come up with. Fun times in Agentic Country. Peter Steinberger wrote up how it came into existence.
Such a lovely little page: Atkinson Dithering. Let’s build millions of pages like this, let’s cultivate millions of minds like this.
“The less I understand about my own inner machinations, the better because, number one, I’m going to get it wrong. You see this all the time with artists who learn what their thing is, and they just fly off a cliff.”
“The antidote is simple but demanding: deeply intentional work, sincere relationship‑building, and the conviction that nothing about the future is inevitable. Attention is a tool, not the goal. Care is the prerequisite. Speak to rally like‑minded people and give them something solid to build on.”
Pretty sure I’ve shared links to a DOOM fire implementation before (here’s one in Zig) — it’s a great benchmark for terminal emulators — but I’ve only recently discovered that there’s a whole playground full of them: implementations in Bash, in Go, in C++, in an HTML with a canvas, with GPU acceleration. Very neat.
Somehow ended up discovering this collection of Internet Artifacts — a great horizontal scroll. I had completely forgotten about the coffee webcam.
Interview with Jon Gjengset on “Defending Democracies With Rust”: “The goal for me with spreading Rust was never spreading Rust. That's not the goal in and of itself. The goal for me is to have people use the language that is best fit for the purpose. For building systems that go onto a Eurofighter or building stuff that runs in a quadcopter or building stuff that goes into these underwater subs that have to run for months on end without service or interruption—you're not running Python there.” Sign of the times, eh?
A very charming video: How 1999 Quake 3 Teaches Elite Software Engineering.
This article about The Simpsons’ writers room made the the rounds in the Amp team and earned a lot of yes, yes, exactly, yes, exactly like this: "'The more people put their fingers in it, there's less of a chance you come up with something that's very interesting and unique,' writer Jay Kogen says. 'The more homogenized things become, the less interesting they become.'"
> Justin Searls with a bucket full of cold water explaining “why agents are bad pair programmers.” I don’t agree with him, but I’m
I think you left the end of that sentence at your vacation spot.... Curious how that sentence would have ended ;)