This week I've been "rejuvenating" my 11 year old i7 2600k desktop. I built a zen 3 based computer a couple years ago, purely as a luxury, after spending 5 days in the hospital ICU. The i7 was chugging along just fine doing whatever I needed it to do, and it seemed a waste to just forget about it.
I fully disassembled it and cleaned out the dust. I spent an evening lapping the CPU and heat sink down to 2000 grit. I put it in a new case, as the old one's front panel fell off. I installed my old GTX 970 GPU, which seems like a perfect pairing.
Maybe I'll gift it to a young nephew, or maybe I'll set it to easily boot up into a mentally stimulating game for my 4 year old daughter. Her knowledge of computer games right now is beamng.drive and tux racer!
Yeah, I was "flight software" on a control shift for a Dragon space capsule when I was 26, and the "mission director" was probably a year or two younger than me. Other shifts had older directors though.
Flight software is a fun role because they're the first person anyone asks when something goes wrong. "What's causing that sensor to glitch out, is it a bug?" "Uh no, probably not. Hey I'm just a software engineer, but is it possible the pyrowhatzit is actually melting right now?" "Oh crap"
"Forward error correction" is really just the application of ECC while transmitting data over a lossy link in order to tolerate errors without two-way communication.
The ECC used in memory is likely relatively space inefficient at the benefit of being computationally simple so it can be done quickly in hardware. More redundancy could be added to tolerate more bit flips, but it would either add a lot of memory overhead, or a lot of computational complexity. In particular, something really good like reed solomon would likely be very difficult to encode on every single memory write, at least not without taking a several order of magnitude performance hit. It would likely be easier just to have 2x ECC memory, or 3x non-ECC memory and do majority voting.
A single particle strike would only affect a single transistor. If that transistor controls a whole column of memory, then sure it could corrupt lots of bits. With ECC, though, it would probably result in a bunch of ECC blocks with a single bit flip, rather than a single ECC block with several bit flips.
The robotics prototyping internship roles require solving our Zip Sim coding challenge. I designed it with the intention above all of being fun, so check it out even if you're not seriously looking for a job.
If there isn't a posting that fits what you're looking for, just apply for the internship and abuse the Zip Sim text entry field to describe exactly what you're looking for, and we'll go from there.
I've had good success with shebangs combined with zip archives containing python code. Zip files use a footer rather than a header, and python natively supports executing scripts out of them. The beginning of the file can have a shebang, allowing it to specify the interpreter to use. The only trick is that windows doesn't support shebangs, and so you need to associate your chosen file extension with python on every system. Also, you need python installed obviously.
What that gives you is a stable entry point into python code. From there, you can run whatever platform specific code you want.
I fully disassembled it and cleaned out the dust. I spent an evening lapping the CPU and heat sink down to 2000 grit. I put it in a new case, as the old one's front panel fell off. I installed my old GTX 970 GPU, which seems like a perfect pairing.
Maybe I'll gift it to a young nephew, or maybe I'll set it to easily boot up into a mentally stimulating game for my 4 year old daughter. Her knowledge of computer games right now is beamng.drive and tux racer!