geteilt von: https://sopuli.xyz/post/26841469
Meme transcription:
An obviously exhausted Spongebob is raising his arms in a rejoicing gesture. His face shows great tiredness, but also happiness.
Title: Finally finding your stupidity after hours of debugging.
…and it’s almost always something entirely simple.
In FreeCAD, spent 5m trying everything to figure out why a part wouldn’t adjust. Had transform dialog open. Still let’s you click everything, items just don’t work.
Right after that, went to work on the new NAS. Kept rebooting during install. PSU is a nice 850w, can’t be that. Swapped out for proven RAM, no luck. Can’t be the PSU. Swapped out the… Everything. No luck. Can’t be the PSU. Sigh…
I was once about to file a bug report for the library, when I found out my stupidity.
Light debugging I actually use an LLM for. Yes, I know, I know. But when you know it’s a syntax issue or something simple, but a quick skim through produces no results; AI be like, “Used a single quote instead of double quote on line 154, so it’s indirectly using a string instead of calling a value. Also, there’s a typo in the source name on line 93 because you spelled it like this everywhere else.”
By design, LLMs do be good for syntax, whether a natural language or a digital one.
Nothing worse than going through line by line, only to catch the obvious mistake on the third “Am I losing my sanity?!” run through.
Fine, but I hope you’re taking a few seconds to understand why the error message you received came from the the syntactic mistake you fixed.
A single Vs double quote mistake should be 5 seconds from error message to fix, with a thought process like:
- “Unable” is illegal key-word on line 163
- Go to line 163 - “Unable” is the first word of a string…oh the previous string must not be closed correctly.
- Find previous string on line 154. There it is - the wrong quote mark.
If you don’t learn what the error message is telling you, you will be forever doomed take time to cut’n’paste code into an LLM. It might save you time today because that thought process takes you 2 mins not 5 seconds, but that’s not the level you want to stay at.
For that purpose, I use a language with a decent compiler, but I know not everyone is as lucky…
On Friday I spent over an hour trying to fix my Firefox tabs - I could no longer drag them to reorder or to a new window, and ctrl-shift-T didn’t restore tabs, but I could still do it via menus. I thought it might be something to do with the new tab-island stuff and tried FF safe mode, restarting computer, confirming about:config options, etc.
Turns out my headphones were resting on my Esc key.
Had this happen too in other tasks/apps, a plate resting on ctrl key
I feel always 80% more stupid when i find my mistake. Shouldn’t it be different?
I was trying to get dual 3090 passthrough working in a VM on my Proxmox server for like a week. The VM would not detect both GPUs, just the first and everything the forums and Reddit threads on this issue checked out. As far as I could tell, it was happy with everything, nothing was amiss. And yet the VM would only ever detect 1 GPU and 1 GPU audio controller.
I spent a week on it before realizing I had put a .1 in the PCIe ID field in the VM hardware settings instead of .0. .1 references the audio controller of the second GPU and not the GPU itself lolol
I am days into trying to figure out how why systemd just won’t start services after another service has successfully been run. I want service A to run, finish successfully and then service B to start. I’ve tries requires, wants, after and their reverse. I’ve tries paths with PathChanged and other things I’ve forgotten now. Either service B won’t start because it’s not WantedBy some target, but if I add that then it simply ignores the After, Requires, and Wants, and PathChanged to start anyway when the target has started.
It’s maddening. Why are there so many conditions that express nearly the same thing but do so in such subtle ways that only testing will expose what it truly is, and sometimes not even that helps because obviously something else is missing but it won’t say what. And AI of course has no fucking clue how to help.
Aaaaaaaaaaaaaaaaaah!
You’ve probably already found this answer on the Unix stack exchange, right? https://unix.stackexchange.com/questions/761630/how-can-i-make-a-systemd-service-start-after-the-completion-of-another-service
Yep! I’ve tried and it doest work. Either it’s because I have mixed unit types (service mount service service and another case is service path service serviceX2), or I really just forgot something.
At this point I have to build a simplified version of my services with echo’s and shit to be able to debug, because otherwise I’ll just drop it and return whenever I find the motivation again.