• e0qdk
    link
    fedilink
    1139 months ago

    Rule 9 from Agans’s Debugging: If you didn’t fix it, it ain’t fixed

    Intermittent problems are the worst…

    • @[email protected]
      link
      fedilink
      349 months ago

      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”.

      • Neshura
        link
        fedilink
        English
        229 months ago

        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

        • @[email protected]
          link
          fedilink
          8
          edit-2
          9 months ago

          and gives you some headroom in improving performance since it’s being choked by the excessive logging

        • @[email protected]
          link
          fedilink
          69 months ago

          Fully agree, but they’re usually kind of annoying to track regardless. On the opposite side, sometimes even getting it to trigger on purpose to be able to add a regression test can be pretty tricky, depending on the cause. Timing or time/date based stuff is a common culprit…

          • @[email protected]
            link
            fedilink
            5
            edit-2
            9 months ago

            Don’t tell me about time and date, I am still recovering from some moron that used datetime.now() for some unit test data setup and sometimes two records (which needed to have the same time) had very slightly varying time which caused all sorts of intermittent test failures that were very tricky to nail down. Database triggers were failing causing failures in all sorts of tests in a random fashion

  • @[email protected]
    link
    fedilink
    719 months ago

    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.

      • Rob
        link
        fedilink
        English
        09 months ago

        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!

    • DreamButt
      link
      fedilink
      English
      189 months ago

      Given how software is a giant Jenga tower made of smaller Jenga towers it’s amazing any of it works at all

    • @[email protected]
      link
      fedilink
      49 months ago

      Yeah. First instinct in this case makes me think somebody that owns a product upstream saw a failure log and fixed the issue (I’d still want to confirm that, though)

  • @[email protected]
    link
    fedilink
    English
    369 months ago

    The longer I’m in IT, the more I realize that the adeptus mechanicus might be on to something with beseeching the machine spirit.

    • peopleproblems
      link
      fedilink
      299 months ago

      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.

      • @[email protected]
        link
        fedilink
        English
        279 months ago

        “In my professional opinion, this network is haunted.”
        …haunted?
        (Points to various certifications) “HAUNTED.”

          • The Gay Tramp
            link
            fedilink
            English
            59 months ago

            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

        • The Gay Tramp
          link
          fedilink
          English
          39 months ago

          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

          • @[email protected]
            link
            fedilink
            19 months ago

            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

  • @[email protected]
    link
    fedilink
    329 months ago

    The other day I launched an old game and got met with an error, something about directX9 and missing a redistributable file or something. Decided not to fuck with it.

    Yesterday I launched it again to take a closer look at the error message to see if I could fix it. No error message, game booted without issues.

    My confusion.

    • ActuallyRuben
      link
      fedilink
      169 months ago

      Did you reboot your PC after installing? Games often included DirectX redistributables which required a reboot to fully install.

  • darcy
    cake
    link
    fedilink
    29
    edit-2
    9 months ago
    if (new Date().getDay() % 2) {
        runCode();
    }
    
  • @[email protected]
    link
    fedilink
    249 months ago

    I have this issue once in a while with PowerShell.

    The environment gets f’up as you develop. You get strange shit happening or it blows up.

    Restart PowerShell or reboot and it’s all good

  • @[email protected]
    link
    fedilink
    219 months ago

    lucky, you have code gnomes. leave out an offering of mountain dew and pizza rolls to appease the spirits.

  • @[email protected]
    link
    fedilink
    209 months ago

    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.
  • LazaroFilm
    link
    fedilink
    English
    179 months ago

    I had that happen with embedded programming when you forget to flush the eeprom after changing your saved values.

    • Neshura
      link
      fedilink
      English
      99 months ago

      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.

      • LazaroFilm
        link
        fedilink
        English
        109 months ago

        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.

        • @[email protected]
          link
          fedilink
          79 months ago

          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)

          • LazaroFilm
            link
            fedilink
            English
            59 months ago

            I’m dealing with this right now. Making the largest embedded project for me (self taught) RP2040 in Cpp with a TFT touch screen, an IMU with fusion, a strip of “neopixels”, a 12v battery voltage reader, some Lemo connectors and custom cables, all in a 3D printed case in 3 parts. I’m so close to the end but still facing some code issues.

            • LazaroFilm
              link
              fedilink
              English
              3
              edit-2
              9 months ago

              This is the project I’m working on: CyberLevel. A gyro digital level for Steadicam. video

            • @[email protected]
              link
              fedilink
              39 months ago

              Pixels are wonderful, but such a perilous path…

              Start playing with a pixel, then get a board with WLED set up, then start running xlights on a beaglebone to synchronize several instances, for holiday lighting. Suddenly there’s several hundred leds in the front yard

              • LazaroFilm
                link
                fedilink
                English
                39 months ago

                Haha! I feel you. Luckily my project only involves about 20 pixels on a high density strip (332pixels/m) to be used as a small 1D display.

      • LazaroFilm
        link
        fedilink
        English
        49 months ago

        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.

  • kamen
    link
    fedilink
    139 months ago

    Maybe it only works on even dates, which is, you know, perfectly normal.

  • @[email protected]
    cake
    link
    fedilink
    129 months ago

    I’ve recently had the opposite: code worked then the next day without anything changing it didn’t.

    Turned out the J-Link programmer always needs the license check to work, but that expires every day at midnight. It only prompts again if you choose the app and restart it. So I couldn’t get my debugger to work and spent hours trying to figure it out until I did the best thing. I turned it off and on again.