gcoakes
Joined 3 years ago
Joined 3 years ago
Simple and elegant generally doesn't come from the LLM. It comes from me saying no to the LLM. I've discarded many branches that didn't feel like they were going the right way. Hell, I aggressively do that with my own code also. I rarely commit the first thing that works.
> where are the open source examples?
My general impression of open source is that it is, in part, a market driven by good software engineering. There's certainly below average code, but that tends to get mocked out of existence before it grows too much. Proprietary code that doesn't have a strong forcing function used to be able to hide poor engineering principles.
I think AI generated code is a regression to the mean, and the mean can be an improvement sometimes. I inherited this project. It was not originally written with AI. A lot of hard work and good engineering went into the hardware/firmware. The IoT software connecting it to our intranet, less so. Some examples that I'm fixing/fixed: ignoring HTTPS certificates, RCE by design, in-place file updating JSON files, a hand-rolled (but ineffective) fair mutex, busy waiting for a device to appear, and worst of all, no tests. None of these are hard to avoid, and even the small AI models would have come up with a better implementation.
This doesn't seem unique to my project either. I think a lot of software is just silently getting closer to the average of all open source code upon which the models were trained. I don't think I want things like SQLite to get closer to the average.
> Fully leaning into LLM doing as much of the coding and understanding as can be handed off to them seems insane to me, I don't mean this to offend though.
I think you might be reading too much into what I said. When I say "fully lean into", it's probably less than you're thinking of. I still feel that I understand what was written and can stake my reputation/career on it.
I think AI has been a net positive and has been used responsibly at my work. It can be used to make existing products better and more secure. You just won't naturally hear about that. There's some challenges like emerging social mores but overall good.
I would love to give it unattended "hands". I just thought it was more time efficient to do it manually rather than spend days trying to figure out how to automate SD card pull/plug. X and Y are relatively small, and I expect this validation to be too costly to do at a regular cadence in CI. I can trivially use a MCCI USB-C switch for the power though.
Tips would be appreciated if anyone here has thoughts.
I joined this team not long ago, and I was trying to add a new feature to an API server. I saw a pretty obvious UnboundaLocalError that would occur given the right parameters. I hovered over the line and saw, "fix login". I then looked at the git log for that file and found three commits with the same text. No explanation of how login was broken, how it was fixed, and it introduced a bug. Some people care less and have less diligence than the AI agents.
I have a standard that I hold myself to which falls somewhere in the middle w.r.t. AI usage, but for the other people I work with, I want them to maximize their AI usage.
The same goes for AI generated code. I've seen some code that I'm pretty sure would have been better quality if my 90 year old grandma was steering Claude. The standard that I want to hold myself is derived from the open source world like SQLite. Sadly, some people just want to take the minimal path to ticket completion without regard for future maintenance or pride in their work. At least AI is token predicting off the code bases that I admire.
I've spent $2 in the last 2 weeks on OpenRouter. I've been trying to only use the medium sized models that I would otherwise be able to run on a nice local setup. That nice local setup would cost ~$4k. I don't know what the operating cost would be, but I would be concerned that my home electricity would cost more than at a datacenter. It just doesn't make sense right now except for privacy reasons.
I'm probably going to hoarde open weights models in the ~31B range until memory costs fall in a few years. Then, I'll buy some hardware to run at home just so I feel more sovereign over my stack regardless the cost/token speed.
sudo systemctl reboot --firmware
shutdown /r /t 0 /fw
These reboot directly into BIOS.
For Windows CMD+R menu, run it by pressing CTRL+SHIFT+Enter (elevates to admin). You may have to do it twice for some unknown reasons after reinstalling the OS.
Another option is to ignore all files and selectively allow the ones you want to track. That's what I'm doing now.
> Files describing how to do IPC with current processes. They belong to ~/.local/state not .config.
XDG_RUNTIME_DIR (i.e.: /run/user/1000)
It doesn't have it as a language feature, but it does have VTables just like C would. The `std.mem.Allocator` is an example of this.
Hell, if the Dunning–Kruger effect is to be believed, it would be bold me to assume I am capable of good human code. Maybe the average is the best I'll ever get.