I'm not sure how to phrase this question. I've bee...
# thinking-together
a
I'm not sure how to phrase this question. I've been thinking a lot about "bit rot" recently. For example, will we reach a point where there are no DVD players that can decode the disks? Or where there is no existing program to read PowerPoint presentations? Is this a likely eventuality for systems? Should everything be txt files to avoid this? Are we going to have our period of history with large gaps from this bit rot problem? Can we as programmers do anything to avoid this?
d
check the Internet Archive about this, the Long Now Foundation, and the thoughts that Project Gutenberg put into this. GLAMs (Galleries, Libraries, Archives and Museums) have thought about this a lot - you should be able to find papers and work on that topic.
just one example, the work by Katherine Thornton at Yale
1
c
Not to go too far down the rabbit hole, but yes, this is a very real issue! In fact, something to consider is the point at which the languages we use in this day and age are no longer understood. This is a particular challenge for anyone wishing to convey a message to folks thousands of years in the future: a use case for this might be to warn future generations about the dangers of buried nuclear waste, for instance: https://www.currentaffairs.org/2019/07/what-nuclear-semiotics-are
🤔 1
The passage that struck me the most in that article (and the reason I included it in my response), grapples with the question “can we as programmers/technologists do anything to avoid this?“:
Copy code
...from the perspective of our era—when the humanities and social sciences are frequently defunded, dismissed, and derided—it's surprising to see an unquestioned faith in the essential relationship between "hard" science and social science. The U.S. Department of Energy understood that the nuclear waste disposal problem could not be solved by technological innovation alone; no alloy or neat little locking mechanism would save us from our future selves. Only by examining human nature, and allowing ourselves to conceive of a world beyond all contemporary understanding, could we attempt to protect the planet from the magnitude of what we'd done to it.
e
And of course there is an Alan Kay paper about that: http://www.vpri.org/pdf/tr2015004_cuneiform.pdf
k
This is a very real issue already right now. I have tapes with scientific data written on a Cray X/MP in the 1990s. There are no tape readers for that format any more. For my DDS backup tapes, readers probably still exist somewhere, but I don”t have access to them. And my Apple Keynote files from 2006 are unreadable with today’s Keynote. It tells me to convert them using Keynote ‘09 - which is no longer available. I have moved all my important data to non-proprietary formats over the last years. That’s no guarantee for preservation, but chances are much better.
😞 1
l
Disregarding mass destruction events, it's a question of preservation through data portability + software portability. Docker is pretty cool in that regard that as long as docker itself is maintained, all images will work for long. If not, just put the old docker in a medium old os in the next docker, and the gap is bridged. Seen windows95 in the browser? https://copy.sh/v86/?profile=windows95 As long as we get a steady stream of bridges, and keep the data store fresh, we should be good. (though possibly a big ask for orgs like the internet archive). It's tricky to enforce when the access-interval is longer than the rot-interval, but otherwise, the increasing decoupling of data from storage medium + logic from computational substrate is a good sign. Cloud platforms that die, and take both data and logic to the grave, is a less good trend. Don't do that. Observablehq is a little nice by including an open runtime with the source when you download your projects. In my language, I strive for more high-level, separating logic from computational substrate, allowing re-export to multiple different mediums. By keeping it append-only, with unique refs to versioned logic, and including them in any potential exported data, in addition to somewhat automatic migration transformations between logic versions, I hope that a piece of data/logic should both be runnable as is + "migratable" to a far future version, seamlessly.
🙂 1
s
Makes me wonder: are there programs that today can only be run with 2nd-order emulation, so you need an emulator for the emulator to run the program?
k
Define emulator! Is a JVM implementation an emulator? Or a JavaScript engine? There are emulators written in Java and JavaScript.