> Meanwhile a javascript app of mine from 2022 does not build now because I can’t get it to install the dependencies for some reason.
Tired take... I promise that if your JS app ran in 2022 and you completely isolated the computer from the internet, your JS app would still run in 2067. This is completely unrelated. Also JS is probably one of the easiest language to repro, if you have a lockfile you're good to go.
The transmitter software built back then was so close to bare metal that it practically could be called hardware.
Stuff today has been so hilariously abstracted on such thick layers of complexity pressed into neat "simple" blocks that it's almost miraculous anything works day-to-day.
Once you fully internalize that your buggy program is running on a buggy framework, in a buggy language, in a buggy sandbox, on a buggy virtualization, on a buggy file system, scraping along on buggy silicon running buggy microcode, managed by other buggy silicon running buggy firmware, using peripherals with their own buggy silicon and firmwares, with everything happening billions of times per second (a car engine typically doesn’t reach a billion cycles over a 20 year lifespan ), it seems mind bogglingly improbable that anything works at all lol.
The fact that it does work, and can even routinely reach 5 nines, is a testament to the generosity of the universe… and a good argument for making sure that to whatever extent possible, you should write your software to be resistant to random events and erroneous operations. Fail safe/ fail soft, fail and retry, fail and restart. The more resilience we build into our work, the less angst we create in the world.
Yeah, but if it wasn’t there wouldn’t be enough days in a human life to learn to use it.
Everything we create is to save on our most precious resource: human effort and time.
AI is so ridiculously wasteful if you think about it, from a computing point of view. But, it doesn’t require us to write a dedicated piece of code for each new problem, thus it’s saving humans effort and time.
Of course, the question remains, what does come out of all this productivity?
Actually, the amazing thing is the Voyager team has documentation to know how all that stuff built in 1977 works, so they can still maintain it.
So much software nowadays is written like it's a disposable item (and then the company decides to keep using what amounts to a 2006-era paper cup from McDonalds every day in a business-critical process for the next 20 years).
Actually.... most likely no, unless you fudge the system clock. Root CAs will expire, chains of trust will break and your app most likely won't run unless you very carefully design it to not have any such dependency, not even indirectly through any of the imported libraries you use. Or your browser will throw an error and refuse to start for the same reason.
But hey, maybe you won't even be able to login if you do so through a Google/Microsoft/Apple ID.
...and you use an SSD? Be amazed at how fragile they are. Chances it will be running 45 years are... not good.
This suggests a question: how does the Voyager handle authenticating commands? Whatever crypto they had in 1977 is surely completely broken now. Security by obscurity? Or can anyone with a large enough antenna send commands to it?
The Voyagers’ protocol use no encryption and the specification appears to be public. I’ve linked a PDF of what appears to contain the protocol description below. So anyone with a *large enough* antenna can talk to it. It just happens to be that the “anyone” on earth really is just NASA and its Deep Space Network.
Meh. I tried to npm install and run it. Npm failed with a cryptic error message. I have a built docker image of this so in any case, I can eventually fix it. Was not that important though.
But then again, why the fuck does that fail now?
I had a friend who was convinced that JPEGs would slowly degrade sitting on a disk. This was around 1990s so he would store important things in BMP so they would not degrade.
Your friend was sort of not entirely wrong. A JPEG decoder can do many decisions on how to decode, while a BMP is just pixels. (So then it's "only" a matter of color spaces.)
I haven't experienced this with JPEGs but wouldn't be surprised, as I have experienced it with MP3s. Newer decoders can't play some of my MP3s made with older encoders.
Well, a compliant JPEGs will still open in any reader, but can look slightly different. In a low-resolution image, it could change some fine detail you really cared about.
Ages ago I did some bit flip tests on different image encodings for a school project. It was interesting to see how a single flipped bit would propagate across the image in encodings that relied on similarity to nearby pixels for compression. Really the effect was limited to the frame, but the effects could be striking.
I'm not even sure how to categorize such an amazing known but widely crudded upon truth. It's incredible but this tower of protocols has been quite enduring and allows many many epochs of js to come and go, as time marches on. And it will keep being here.
There's so much scaredness, anger, and mistrust of js. But this tired take was with us, and still is with us, and will keep being with us for a long long long time. Nothing else comes as close to being a media form as HTML+js+css.
Tired take... I promise that if your JS app ran in 2022 and you completely isolated the computer from the internet, your JS app would still run in 2067. This is completely unrelated. Also JS is probably one of the easiest language to repro, if you have a lockfile you're good to go.