3 ms·
I am continually amazed that computers manage to work at all.
by lanius 9y ago
I am continually amazed that computers manage to work at all.
- kbenson 9y agoEvery time I've had to deal with troubleshooting weird firmware or hardware (and good luck sometimes knowing which it is), I've been continually amazed at the giant mess that's being pushed as commercial or "enterprise" equipment. It appears every product enters a special phase of a few weeks to a few months right before shipping where time constraints force whoever is responsible for the code to wildly shovel crap fixes into place until the hardware "works". An alternate explanation is that most this code is written by electrical engineers that while smart, don't quite have enough experience managing larger code projects yet and are still prone to some of the newbie software developer mistakes, and probably without good mentoring on that front because those that have already weathered this storm and learned enough to sail through smoothly have either jumped ship for greener pastures or been promoted enough to be out of the trenches but not enough to have sway to fix the problem.
- bravo22 9y agoIt is definitely not lack of experience. Some of the best coders I've known have been hardcore low level EE guys. The issue is organizational priorities and available bandwidth. As soon as the product ships the core people are moved to the next project. Maintenance is done by a few guys whose job it is not to break anything. If there is something they can't fix, it goes back to the core guys who are already busy working on the new project and can only dedicate so much time to addressing this issue.
- userbinator 9y agoModern computers operate so close to the margins that analog effects are very much visible. As Andrew "bunnie" Huang once said, "You are not storing data, you are storing probabilistic approximation of your data."[1] That being said, analog effects have been noticeable at the software level for a while; here's another example: https://www.linusakesson.net/scene/safevsp/ https://www.linusakesson.net/scene/safevsp/ [1] http://bunniefoo.com/bunnie/sdcard-30c3-pub.pdf http://bunniefoo.com/bunnie/sdcard-30c3-pub.pdf
- _pmf_ 9y agoOne one of our boards, we had intermittent USB failures (sometimes after 5 minutes, sometimes after 13 days of continuous operation) that were ultimately caused by slightly misaligned/misspaced USB D+/D- traces. We ended up having to force usage of USB full speed mode for USB high speed devices via a debug register (not unlike the article's case). Makes me feel slightly better that even people much more competent than I end up having to use such workarounds.
- exikyut 9y agoCould you describe the misalignment? That's interesting - Arduinos etc have made USB 2 pretty ubiquitous, so this could be useful knowledge. (I'm tired and needed to re-google it, so for anyone else: Full = 1.1/12Mbps, High = 2.0/480Mbps.)
- simcop2387 9y agoIf I were to guess, given the tolerances in timing for USB 2.0, one line was slightly longer than the other on the board. That'd mean that the transition on D- would happen at a different time than the one on D+ causing corrupted data.
- exikyut 9y agoAh, yikes. Duly noted.
- exikyut 9y agoI just finished reading through the VSP saga. That was very interesting.