Male engineer/programmer. Passionate about God, then science, and programming. Always learning and teaching. Hates Marxism, atheism, and degenerative behaviors.
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.
A history of AI firms:
• Demis Hassabis convinces Peter Thiel to invest in DeepMind by talking chess
• Thiel shows the company to Elon Musk, who shows their AI solving Pong to Larry Page on a private jet
• Larry Page buys DeepMind; Hassabis takes them over Zuck's higher bid (and despite Elon's last minute effort) because Zuck was equally excited about 3D printing as AI at dinner
• Larry Page and Elon Musk fight over AGI; Page calls Musk a "speciesist" for favoring humans > machines
• Sam Altman convinces Elon to start a new AI firm to get back at Google; they have dinner with top people at Google and recruit Ilya Sutskever; Dario Amodei joins later
• Musk gives Altman an ultimatum: I take full control or you lose my funding
• Reid Hoffman (introduced to AI by Thiel; served as backstop for DeepMind seeking governance guarantees) convinces Satya to backstop OpenAI
• OpenAI goes its own way, Dario leaves over safety concerns, and Elon starts over with xAI/Grok
Bjarne Stroustrup (creator of C++) recently gave an interview to the StackOverflow blog...
He answers a few interesting questions... I share me thoughts after each Stroustrup's quote.
1. What is the best way to handle errors in software ? It depends...
« You could terminate the program. Now you don't have the security problem and wrong results. And if you are in a server farm with 40,000 processes, that's probably the right thing to do. Then you could give some kind of error message somewhere. That's a little bit hard to do for a vector access, but in many, many cases, giving an error code will be a reasonable thing, and then you hope people test the error code. And my favorite is to throw an exception.
That is, somewhere in your program, you have something that catches all exceptions, and you terminate if that's what you want to do, preferably after giving dump of the information of what caused it, so that you can fix it and you don't get it again next time. Or you have a more specific recovery mechanism, which is needed in some cases. Say if you run out of memory on a small computer that has separate memory banks, things like that. So what is the right answer to that kind of problem? The memory exhaustion, out of range access? It depends on what you're doing. »
Things go wrong. What do you do when things go wrong? There is no one strategy that always work. It depends on your specific application. A reasonable option is to just stop, halt. But that's not always what is best!
2. On code guidelines...
« I'm working on something called profiles. Note the plural because my experience is that different organizations, different environment, different applications have different criteria. I actually think that people who talk about memory safety and only memory safety are not very realistic. That's more propaganda than it is good engineering. »
People often seek some universal coding guidelines, but that's not possible. What is unacceptable in code base A could be desirable in code base B.
3. On safety...
« People do what I consider unfair attacks on C++ by using examples from badly written C. And you don't have to have badly written C, and you don't have to have badly written C++.
Of course, you can find examples that crash, but you can do that in any language and you do. »
I have worked, and I still work, on very large code bases that are mission critical. If you are a competent C++ programmer, you are just not going to see null pointer accesses or memory corruption. I see with students who just started to learn system programming a month or a year ago.
Source:
https://t.co/uUzc9qLgw1
This is Algebrica. A mathematical knowledge base I’ve been building for 2.5 years.
215+ entries, carefully written and structured.
400k+ views over this time. Not much in absolute terms, but meaningful to me.
No ads.
No courses to sell.
No gamification.
No distractions.
Just essential pages, aiming to explain mathematics as clearly as possible, for a university-level audience.
Built simply for the pleasure of sharing knowledge.
Content licensed under Creative Commons (BY-NC).
Best experienced on desktop.
If it helps even a few people understand something better, it’s worth it.
This is Algebrica. A mathematical knowledge base I’ve been building for 2.5 years.
215+ entries, carefully written and structured.
400k+ views over this time. Not much in absolute terms, but meaningful to me.
No ads.
No courses to sell.
No gamification.
No distractions.
Just essential pages, aiming to explain mathematics as clearly as possible, for a university-level audience.
Built simply for the pleasure of sharing knowledge.
Content licensed under Creative Commons (BY-NC).
Best experienced on desktop.
If it helps even a few people understand something better, it’s worth it.
This! I know that the current AI is useful... extremely... in ways we'll appreciate in the long run. But I still need to come up with a big idea, something like this below.
Great, Eric! This is how one finds out if he is spent, or if he is still able to come up with great ideas.
Fast, cheap AI-assisted decompilation of binary code is here. Which means code secrecy is dead.
Decompilers in themselves are not a new technology. Security researchers have employed them for years to analyze compiled malware. There's been some limited use by others, notably by hobbyists decompiling abandonware games. But there were a couple of issues that prevented this from becoming common practice.
One is simply that running decompilers was difficult. It wasn't as simple as feed in binary, get out source; it needed a person with specialist skills prepared to do spelunking through wildernesses of machine code and object formats. The other problem was that decompilation didn't give you anything like the explanatory comments that had been in the original code, so you could easily wind up with code that you could read without being able to understand or modify it.
Now large language models are busily smashing both of those barriers flat. They're better at the kind of detail analysis required to run the human side of a decompilation than humans are. More importantly, in the process of decompiling code, they rather automatically build a global model of how it works that can easily be expressed by high quality comments in the extracted code. All you have to do, basically, is ask for the comments.
I'm going to reinforce that latter point because it may not be obvious how good LLMs are at this, and how much better they're going to get. When they decompile code and comment it for you, they're not just working from that one piece of code you have put in front of them - they'll have in their training set hundreds, possibly thousands of pieces of code similar to it and with comments. This will give them superhuman levels of insight not just into what it does at the microlevel, but what it means to the humans who wrote it, and what technical assumptions it's embodying.
Compilation no longer guards your secrets. Or, to put it more precisely the expected time span in which you can still count on it to obscure them is measured in months. Possibly weeks.
What does this mean?
It means you're in an open-source world now. All it's going to take for anybody to bust your proprietary IP open is care enough to spend tokens on the analysis.
You will maximize your chances of survival as a software business if you get out ahead of this rather than trying to fight it.
This isn't exactly the way I expected open source to win. But, you know, I'll take it. Good enough.
Thank God you exist to handle the boring stuff, but please don’t come into our territory and lecture us on how we should code, what we should change, or which tools we should use.
After all, If being a programmer was easy, there wouldn’t be 6-figure salaries.
(4/4)
If anything, LLMs and their coding abilities have given confidence to a community of tech enthusiasts who like to call themselves programmers. They know a lot of tech terms and jargon, but almost nothing about designing systems or writing working code.
(1/4)
Their language is still almost exclusively TypeScript/JavaScript, and that gives them away. No matter how many AI tools they use or how many lines of code they generate, they still only really know JS/TS (or even a little python).
(3/4)
@nicdunz As for other services... after trying Gemini and Grok, I can't bring myself to go back to ChatGPT. IDK, the others, especially Gemini Pro, feel surreal.
@nicdunz Don't give a damn! Continue using it; you're not a paid marketer for OpenAI... And as a tech, even if it was like they say, it would still be alien tech. So, consider yourself lucky for knowing how to use it, and expand to other services as well... This is free advice from me :)
@nicdunz You could say to these people something along the lines of: "If it were as you say, it wouldn't be used by US forces in their operations against Iran. Who knows more, you or them?"
@BenjaminDEKR Wow! Just wow!
If it were me, I would never have them deleted, ever. If nothing, I would use them later for my own product.
And ... unrelated ... but is it me, or is Grok degrading lately? I see it's missing features that I've used just months ago.