Rule 9 from Agans’s Debugging: If you didn’t fix it, it ain’t fixed
Intermittent problems are the worst…
The problem is, how do you fix it if you can’t make it break?
The worst thing is when somebody comes to you saying “yeah, I had this problem yesterday, but it’s working now”.
this is a case for excessive logging man
likely won’t help you actually fix the issue because miraculously you didn’t log the three variables you actually need but it’ll make you feel better in the meantime
and gives you some headroom in improving performance since it’s being choked by the excessive logging
ngl my programming career helped me stay grounded in reality. Every impossible issue turned out to always have a cause, a reason to be there. Could have taken weeks to track down the issue, but there was always a cause.
But still… every 3 or so years… something actually impossible pops-up. Impossible to fix, impossible to reproduce, and suddenly gone from existence, as if it was never there.
Cosmic radiation! Bit flips! Quantum tunneling! Who TF knows…
If only consumer hardware had ECC memory
It ran outta gas. It had a flat tire. It didn’t have enough money for cab fare. Its tux didn’t come back from the cleaners. An old friend came in from outta town. Someone stole its car. There was an earthquake, a terrible flood, locusts!
deleted by creator
Given how software is a giant Jenga tower made of smaller Jenga towers it’s amazing any of it works at all
if (new Date().getDay() % 2) { runCode(); }
The longer I’m in IT, the more I realize that the adeptus mechanicus might be on to something with beseeching the machine spirit.
A lot of people think I’m joking when I say I’m a good at what I do because I’m a witch doctor with computers. Software Engineering requires experience with the occult, at a minimum.
“In my professional opinion, this network is haunted.”
…haunted?
(Points to various certifications) “HAUNTED.”And for some reason printers seem to be the place where the spirits are strongest
The demons are attracted to doorways, passages between spaces, worlds, and realms. And printers are the ultimate doorway: a portal through which ideas and concepts can leave the software realm and enter the physical
I think you mean demons
In effect, we conjure the spirits of the computer with our spells.
I actually had a concept for a fantasy world, where magicians craft spells much the same way software devs do. So you make your spell and publish it to the ether, and then anyone can invoke it using the magic word (package name), assuming the have the right dependencies available (eye of newt or whatever). But spells might have bugs. So if you used eye of red newt while the spell smith built it with the expectation you had eye of blue newt you might get unintended consequences
i mean it’s pretty common for runes to just be conceptual programming languages and if you do something wrong then instead of having a lighter you get a bomb
Still better than my Go experience 2 years ago.
- fails when deployed, after adding debug statements looks like in one structure there’s 2 instead of 1, and looking at the code that should be impossible. Issue happens every single time.
- the same exact unmodified container when downloaded and run locally works correctly every time.
race condition. You could have reset a
Why does everything have to be about race?!
Because you gotta go fast.
Wonderful comment, solid laugh out of me.
Build caches are a bitch.
In university, we had to complete weekly tasks. A few times, the validation script provided by my professor returned an error, meaning that my solution had a mistake. When I tried rerunning the script the following day, my answer was accepted. At the end of the last lecture, my professor came to me and told me that I was usually the first one to hand in a solution and that he sometimes used my answers to validate his results.
I had that happen with embedded programming when you forget to flush the eeprom after changing your saved values.
hmm embedded. Beautifuly memories from uni. One lab my team forgot to remove a register whose supposed purpose was only enabling a communications bus (documentation didn’t mention it doing anything else). Turns out that same register disables the dac which we needed for the new excersise. You learn to love the hardware datasheets real quick.
And when the data sheet is wrong that gets fun. You start parsing I2S for each bit and record the result until you see a pattern. Or when your program crashes the USB and you can’t reupload without hitting boot or reset but they are inside the box.
MY PEOPLE!!! My code recently decided to not erase the flash when writing new firmware, bricking the device. Good times. (Old code || new code does not make for a working system)
I know some of these words
On small computers like Arduino there is a very small memory called eeprom that stays when powered off. It saves ultra low level data (at the bit and byte level) if you don’t “format” after changing what is being saved where it then tries to read gibberish and things go bonk.
just make sure you absolutely don’t comment or document it then commit it to git with a cryptic commit message and even more cryptic author name and then hand it off to your coworkers
AAA why do people do that, like wtf you spent so much time fixing this, ATLEAST MAKE IT CLEAR WHAT YOU DID
searching google and finding a ten year old stackoverflow post with your exact problem but the answer is just “nevermind i figured it out”
I had a bug in unity once where my project just stopped working. I hadn’t changed anything, but I could no longer compile it or run the game in editor. I looked up the issue and apparently unity has/had a long-standing bug where the engine would rarely just quit being able to compile your scripts. The only solution was to make a new project and reimport all your assets, scripts, scenes, etc. Dunno if they ever figured out what was causing it or if it just kinda resolved itself and stopped showing up at some point. I don’t really use unity much anymore.
Code works
Ctrl+a, ctrl+x, ctrl+v
Code doest work
As a full stack cloud dev usually for me it ends up being some lag between when Azure claims a thing was updated and when it actually was.
(shout out to azure B2C custom policies for taking like 10 minutes to actually reflect changes despite giving me a lil green checkmark)
lucky, you have code gnomes. leave out an offering of mountain dew and pizza rolls to appease the spirits.
Reminds me of the time I couldn’t get my code to compile due to invisible unicode characters in the code I copy-pasted from the web.
Kinda related, I always copy paste into a “simple” text editor before I copy paste into something else. Slack is so bad about having hidden characters I don’t even want to think what other sites/programs do.
Do you know if Ctrl+shift+v is good enough? (Paste as plain text)
That’s a great question. I would assume so since the whole point would be to strip out odd encodings. I don’t have to do it often enough saved in going to assume that option will depend on the program/OS and if it supports it.