• 0 Posts
  • 501 Comments
Joined 2 years ago
cake
Cake day: June 30th, 2023

help-circle
  • That’s the worst when your cycle time is very long. You fix a bug in the code, start your test running again and come back to check the next day only to see the exact same bug again and might think that your fix didn’t work and something more esoteric is going on (“maybe it’s a compiler or hardware bug!” (It almost never is)).

    Then you add a bunch of debug prints to really get a good idea of what’s going on and rerun the test. Either you remembered to save and suddenly the mystery bug is gone because the fix is still in the code. Or maybe you forgot to save again and now it looks like it’s not even reaching any of the code you added the prints to.


  • Thing is, if it just guesses what you meant instead of sticking to the standard, you can end up with ambiguous meanings. Like what if you forgot a character that wasn’t a semicolon but inserting a semicolon would turn it into valid code?

    Like:

    x = y z++;

    Inserting a semicolon would turn that into set x to the value of y and then increment z. But maybe the line is missing a plus instead of a semicolon and the intent was to set x to y plus z and then increment z.

    It’s a pain but strict syntax helps avoid frustrating to debug bugs.

    Taking it a step even further, you can make your code more robust by treating warnings similarly to errors. Even though the general cases usually still work despite warnings, they are great for avoiding edge cases that can also be difficult to debug. At least if you take the time to understand what the warning is really about and don’t just google “how to get rid of warning x” and add some casts or something you don’t understand to make the message go away.



  • Passive cooling could be enough. Even a bunch of ssd chips wouldn’t take up all of the vertical space, so top of the case could just be a heat sink. Though it might need instructions to only install it in an enclosure that has a fan blowing air past it (and not use the spots behind the mobo that don’t get much airflow).

    A lot of motherboards come with metal styling that acts as a heat sink for nvme drives without even using fins, though they still have more surface area than a 3.5" drive and only have to deal with the heat from one or two chips.

    But maybe it isn’t realistic and that’s why we don’t see SSDs like that on the market (in addition to price).


  • Yeah, nvme drives show how little space the storage takes up. Just stick a bunch of them inside the 3.5" format, along with a controller and cooling, and that would be great for a large/slow (relative to NVME) drive capped by SATA speeds.

    I don’t miss the noise hard drives make, plus it’s nice to not really worry as much about what kind of magnetic activity might be going on around it, like is my subwoofer too close or what if my kid somehow gets her hands on a powerful magnet and wants to see if it will stick to my PC case.



  • Oh yeah, 90s and 00s Blizzard was great. I had fallen in love with RTS after playing a demo for Dune 2000 (I think it was) and after mentioning it to a friend, he loaned me his copy of Warcraft II. From there, my top games were Blizzard games for over a decade. WC2, SC, found out that cool Diablo game another friend had shown me was also Blizzard as they were marketing D2, then WC3, then WoW was my peak Blizzard obsession. But they still had some more good ones: SC2, Hearthstone, HotS, then the first Overwatch.

    I think all that WoW money ruined them. Line must go up, even if they were on a massive mountain that would naturally eventually wane as people grew bored of the game and the niche it fit in grew more crowded. They started chasing dollars instead of chasing great games and making dollars in the process.

    That Diablo phone app game being announced as if their audience gave a fuck about mobile games showed how out of touch they were with what used to make them great. And the follow up “don’t you all have phones?” just cemented how blind they were, not even considering that the people making mobile games so much money didn’t have much overlap with their current fan base, most of whom built a relatively expensive gaming PC to game on despite how much cheaper phones already were.

    And there were other questionable things, like that WC3 remaster that no one asked for replacing the more capable original.

    The D3 auction house, though to be fair to that one, I liked the idea going in and it was only after experiencing it that I understood it was a bad idea that would make most runs boring because most drops couldn’t compare to items I could get cheap on the AH.

    Then the China thing and trying to defraud a tournament winner out of their prize because he said something in support of Hong Kong. Then finding out that it was a workplace dripping with toxic masculinity (which was the case even when they were doing great).

    And then they did a WC3 remaster on Overwatch, replacing the game that was originally purchased at AAA price with a free to play one that also wasn’t finished, with features promised to make the replacement easier to swallow just dropped.

    By the time Microsoft came to buy them, I didn’t care what happened to them anymore. Activision had already been business major enough, with their only credit being that they didn’t immediately enshitify Blizzard when they acquired them.





  • Ah that’s interesting. If you can swap the devices from one pi to another, try powering it all up on machine A, then swap the devices to machine B and power that on. Might tell you if the issue is with on the pi side or with the devices.

    Is latency higher on the first boot than on subsequent ones? I’d be looking into race conditions if you’re seeing a bit of lag cascade out into bigger problems. Race conditions are the worst, especially when the race most often goes the right way and just occasionally goes the wrong way. Though you can force the wrong way by adding delays in your code, if you have an idea of where the race is happening.


  • Or, after weeks of debugging an issue the user has logs proving they are having weird performance issues despite having a strong GPU, it turns out their parents wouldn’t let them take that GPU out of the family PC so they rigged up a PCIe to USB to wireless transmitter that hooks up to a wireless to USB to serial port that exploits a signal leaking from serial port to PCIe bus bug on the family PC motherboard to act as if the GPU is on their own machine, which both impresses and horrifies you.

    And when you try to get approval to drop the issue as unsupported, your manager gives you shit and it takes another week to convince him that it isn’t a use case that you should support. And they only agreed in the end because a more senior technical person happened to overhear you pleading with your manager one day and only had to say, “that’s crazy!” for your manager to 180 immediately on the issue. But it’s still cited as a negative on your next performance review (“you spent weeks working on something we don’t even support!”).


  • Another angle to try is to set the date one day ahead and see if the bug shows up then. Might need to disconnect from network and set it in the BIOS for the test to work properly.

    I could be wrong, but I figure after being off for an hour, all capacitors should have discharged by then, so it’s probably not based on how long the hardware has been unpowered.

    Though one other angle I just thought of, if you have something that runs periodically, maybe the bug is related to that period being missed once or n times. Or it could be related to something that is meant to wake the computer to run some job and then go back to sleep but instead just sets it in a bad state.



  • Buddahriffic@lemmy.worldtoProgrammer Humor@lemmy.mlLearn to code
    link
    fedilink
    arrow-up
    27
    arrow-down
    2
    ·
    13 days ago

    Yeah, that’s something a shitty developer who is bad at debug would say.

    Bugs frustrate me more because I can often guess at why they are happening and how to fix them but can’t just apply the fix myself. Even more frustrating when there’s an update and I’ll think, “oooh maybe they finally fixed that annoying bug!” and then see it again shortly after installing the update.



  • For game streaming itself, there’s always going to be the latency issue that will keep a bunch of gamers away from ever using it. I never bothered even looking at the streaming options when I had game pass because of that.

    GPU drivers have low latency modes for when the timing of a frame update means your current input will come a frame or two later, and a difference of 10ms in frame delivery time can be enough to call something a stuttery mess.

    Now add network latency that is an order of magnitude higher. Streaming video and/or audio is fine because it can buffer enough to absorb typical latency jumps, but games can’t buffer more than the upper bound of input latency, so that brief 1 second network hiccup is a horrible stutter where you can’t even move.

    Though at least game pass works more like Netflix in that you can just pick a game available and try it out if you have a sub. I don’t get the appeal of the ones where you not only subscribe to the service but also need to buy the games you play at full price.




  • I was one of the “got game pass, usually forget to use it” subscribers. I ended up canceling when games I was playing were no longer available when I did remember about it so I couldn’t finish them anyways, plus the price went up.

    Last thing I did was go through their games and add ones that looked interesting to my steam wishlist. And after I cancelled, when one of the games I had been playing went on sale, I realized another thing that I didn’t like about it that I hadn’t even known: they don’t advertise what games use invasive drm or anti-cheat software like steam does.

    Though the main driving factor was wanting to divorce myself from as much reliance on MS/Windows as possible.