• 0 Posts
  • 11 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.




  • 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!”).