36 comments

[ 2748 ms ] story [ 3203 ms ] thread
Reproducibility is a huge issue in academia and in the software engineering world.

As an anecdote, we were trying to reproduce results for a c++ algorithm for which we had the source code, on the same machine, same compiler, only 2 years after its original creation. Impossible. Our best guess is that some os/hw patch / firmware update had an impact on the random number generation, but we never managed to figure out what exactly caused the discrepancies that we were observing.

Did you look at your version of libc? What version the original linked to?
It's been some time, but I am 99% sure that we were linking with the correct version of libc, because we never used the system GCC (in CentOS they provide the very old 4.8 version), so we explicitly specified the compiler and the libc that we wanted to use.
That might not even matter, because if you think you're using one version of gcc, but you're using another. I experienced this multiple times over the summer with scl and gcc.
The way some video game studios do this is simply put a whole computer into the archive with all the software on it, so all the hardware and software are captured in time.
Shouldn't containers or VMs solve these problems?
No since the hardware changes over time, such as the video and audio hardware, and VMs don't prioritize emulating those anyway.
wouldn't that depend on which VM you are using?
I agree. They used to say there would never be an Amiga emulator because of all the custom chips it had.

But there are quite a few Amiga emulators now.

Video games built on consoles have this benefit in that they are locked to a hardware iteration, granted there may be some server communication now but historically arcades and consoles capture the hardware snapshot as well.

I prefer PC gaming as consoles are essentially locked in time in hardware but that does lend better to archival purposes.

What's the expected lifetime of a computer in storage? I'd think that bitrot sets in fairly quickly on storage medium.
That's data rot or disc rot. Bit rot is also known as software rot.
My professor requires the software, data and makefiles to reproduce any figure in a published paper. Then the figure would be erased with software reproducing it.

The motivation was kind of selfish. The professor would update his textbooks every 5 or 10 years and noted how hard it was to recover old figures.

> For now, though, Olive is available only to a limited group of users. Because of software-licensing restrictions, Olive’s collection of vintage software is currently accessible only to people who have been collaborating on the project. The relevant companies will need to give permissions to present Olive’s re-creations to broader audiences.

What do you do when the original company no longer exists?

Depends on what the EULA for the product said and what happened to the company.

Companies of any value tend not to just disappear; they get bought by other companies who thus inherit their IP rights.

Sometimes after a while it can be hard to determine who owns a piece of IP. This can happen with old video games, for example, since the studios and publishers have split and merged so much over the years. At times it's a matter of interpretation who owns a property, and it can end up in court.

TLDR there's almost always someone ready to take your money; not always easy determining who it should be.

> Depends on what the EULA for the product said and what happened to the company.

The EULA to dBASE III stated that the grant of license lasted for fifty years. If, after fifty years, you were still using dBASE III, you would no longer be using it legally and had to return your copy to Ashton-Tate.

All you dBASE III users out there -- you've got maybe 15-20 years left!

I find this especially relevant. Recently I found an old textbook that was amazing. Lots of great detail on nearly impossible to find subjects.

I emailed the professor (now near retirement) for the answers to the solutions as I'm no longer a student and the book has been out of print since before I was born. He told me he didn't have it anymore as it was on an old computer on an operating system that doesn't exist anymore.

All the code, example answers lost to time.

It made me wonder just how common this phenomena is.

Compare https://news.ycombinator.com/item?id=18036255, where right now people are slamming the OP for posting solutions to Coursera exercises.

If the goal is education, the solutions should be published too.

Agreed. If there are 100 problems in a book and I work all 100, how am I to know if I did it right? If I get one wrong (which I assuredly will), how am I to see what I did wrong?

Some teachers are awful too and the only way to learn is to get your hands on a solutions manual and reverse engineer your understanding. It can be a very frustrating experience.

Which textbook?
It was an electrical engineering text on power systems.
Reminds me, if you haven't been to Paul Alan's Living Computer museum I'd highly recommend it. You can play chess against a real working PDP-8 which is pretty impressive.

https://www.youtube.com/watch?v=ZHU4nzIsaIM&t=5m38s

I was wondering how they get the funds for such an expensive operation and I realised you mean Paul Allen

The Paul Allen who is the co-found of Microsoft and one of the richest people in the world.

"Think of it as a Wayback Machine for executable content." Internet Archive already doing some of this. https://archive.org/details/softwarelibrary Jason Scott pushed hard for JSMESS, the in-browser emulator that brings the archived software to life. https://www.archiveteam.org/index.php/Javascript_Mess

This is one of a few similar projects. The government Archives offices of most countries have to not just preserve digital records but also the software necessary to read them. Mick Crouch is the legend in New Zealand who does a pile of this work: https://www.radionz.co.nz/news/national/346630/outdated-tech...

I find it it pretty ignorant for a publication as venerable as IEEE to miss the fact that archive.org already has this.
Near the end of the article it does say:

We are not alone in our quest to keep old software alive. For example, the Internet Archive is preserving thousands of old programs using an emulation of MS-DOS that runs in the user’s browser...

And also then goes on to refer to other Living Software Preservation initiatives.

(comment deleted)
I need to pay a visit to the CMU campus to see if I can see their work.
I want to know how that will be done with cloud applications when the companies never have published their cloud/online software.
I thought the federal government did that via 20th century COBOL software few understand.