I've got an agent in a loop optimizing a renderer with the goal to minimize frame times (and tests to measure). It got times down from 88ms to 2ms and allocations down from ~150K to 500. Sounds good, right? Wrong. This is exactly why agent psychosis is a big fucking problem.
As an experiment, I rewrote the Ghostty core render state in Go, with access to identically laid out data structures as Ghostty and the exact same validation tests. I made a purposely naive renderer (simple, correct, but slow). 88ms per frame with 150,000 allocations (horrendous, lol)!
I then kickstarted a Ralph loop to bring the frame times down. I told it it can't modify input data structures or the public API or tests (they're correct), but it can do anything else it wants. It got to work.
It has worked for about 4 hours. I've spent around $350 on this experiment so far. The results?
88ms => 1.5ms
150K allocs => ~500 allocs
Incredible right? Nope.
My hand-written renderer I ported has frame times (same benchmark) of ~20us (0.020ms) and 0 allocations in the update path.
This is the problem with psychosis and lacking systems understanding. If you don't understand the system, you're going to accept that this is an incredible result. If you understand the system, you'll see better solutions immediately and can do roughly 75x better on throughput.
The people who blindly trust agent output are in the former camp. They're sheeple, overdrinking from a fountain of mediocrity.
Standard disclaimer: I use AI all the time. I like AI. The point I'm making is to not blindly accept results. Think. Analyze. Learn.
speakers are up at https://t.co/Eri7HqKKdz
we are still looking for sponsors: we have multiple speakers coming from abroad this year and flying isn't cheap!
plz trick your boss into giving us money by saying our conference is very important 🥹
Why is the creator of OpenCode pretty skeptical about AI productivity gains, and the hype around AI? A very conversation @thdxr (and lots of truth bombs:)
Timestamps:
00:00 Intro
07:03 Dax’s path into tech
09:04 Early startup experience
13:16 Getting involved with open source
16:13 OpenCode
23:17 Anthropic banning OpenCode
30:34 From terminal to GUI
32:34 OpenCode’s business model
36:33 Why inference is profitable
39:11 GPU bottlenecks
40:54 AI hype
45:50 AI spending
48:47 Dax’s memo
55:41 Dax’s skepticism of predictions
58:58 Engineering culture at OpenCode
1:02:38 How building works at OpenCode
1:05:36 Taste and quality
1:11:32 Dax’s work setup
1:12:35 The role of engineers and EMs
1:15:50 Advice for engineers
1:18:12 Book recommendation
Brought to you by:
• @AntithesisHQ – verify your system’s correctness without human review or traditional integration tests – and avoid bugs or outages https://t.co/AKYm4cbVCU
• @WorkOS – everything you need to make your app enterprise ready https://t.co/aiAee0oF5h
• @turbopuffer – a vector and full-text search engine built on object storage. It’s fast, cheap, and extremely scalable https://t.co/w9y67Gs8ab
Three interesting thoughts from Dax:
1. No AI-native coding agent company is “winning” by being better with AI.
Dax says that none of OpenCode’s competitors are crushing them, and that nobody is using AI so well that others cannot compete.
2. Most software engineers profit from AI as time gained, not increased output — unless you change incentives!
Dax says the natural way for software engineers to “cash out” their AI tooling gains is with time savings, by doing the same work as before, but faster. Until compensation and motivation structures change, most teams should expect output to stay flat while engineers go home earlier. There’s nothing wrong with this, but AI vendors sell a different outcome to CFOs: increased output.
3. AI code generation mutes the “guilt” of doing the wrong thing, but this builds up tech debt.
Pre-AI, writing a hack felt bad, the second time it felt really bad, and by the third time you’d often just refactor in order to fix up the code. Now, the agent hides the hack, which skews devs’ judgment and results in less tech debt being cleaned up.
happy to announce that htmx 4 beta 4 has been released:
https://t.co/InHLC2jlkm
no major changes, small fixes and extension updates
this is release candidate 2
enjoy!
It isn't unexpected that the focus of the Bun Rust rewrite is on the anti-Zig side more than anything, since the internet loves to hate. What is unexpected and unfortunate is that leadership within Bun hasn't tried to steer the conversation away from that at all.
There are so many positive and interesting takeaways from this and I'm not really seeing any of them pushed as the primary message.
A positive thing that hasn't been talked about at all is how far Bun came thanks to Zig. And even if you dump it now, its meaningful for how good Zig was to even build a product to this point and impact by any metric. I would've loved to see anyone in leadership say this.
On the interesting side is how fungible programming languages are nowadays. Programming languages used to be LOCK IN, and they're increasingly not so. You think the Bun rewrite in Rust is good for Rust? Bun has shown they can be in probably any language they want in roughly a week or two. Rust is expendable. Its useful until its not then it can be thrown out. That's interesting!
There's been a lot of talk about memory safety and no doubt Rust provides more guarantees than Zig. But I'd love to see a better analysis of why Bun in particular suffered so much rather than take the language-blame path. How could engineering as a practice been more rigorous to prevent this? What were the largest sources of crashes other programs should watch out for? How does Rust prevent them? How could Zig theoretically prevent them? That's interesting.
I know the official blog post hasn't come out yet from Bun. But they're smart enough to know that that PR would stir up controversy the moment it opened, or they should've been. And plenty in the company have been tweeting and writing about it. Its somewhat telling to me in various dimensions what they chose to talk about first.
I tend to think I'm pretty good at corporate PR/comms (especially when it comes to developer audiences) and I think appealing to the negative is never the right long term strategy; it does work to get short term eyes though.
happy to announce htmx 4.0.0-beta3:
https://t.co/V17TR1utUD
ships with two new extensions: hx-live with coarse-grain DOM reactivity & hx-nonce for better inline-element security
enjoy!
Ghostty is leaving GitHub. I'm GitHub user 1299, joined Feb 2008. I've visited GitHub almost every single day for over 18 years. It's never been a question for me where I'd put my projects: always GitHub. I'm super sad to say this, but its time to go. https://t.co/DQDemHdytV
Nvim 0.13 gained vim.ui.img, a stdlib interface for displaying images.
- useful for markdown files, directory browse, picker preview, ...
- ~small interface + impl cost. mostly a protocol change.
- placement will be handled by extmarks or floating windows.
- no builtin codec, not going to vendor a jpeg library.