Skip to main content

In which I resurrect a 13 year old 3.5" floppy disk and reprint my doctoral thesis

This is a follow up to a post from the weekend about playing with my old Sharp MZ-80K. Someone commented that they'd be more impressed if I resurrected a 15 year old floppy disk than a 30 year cassette tape.

I don't have a 15 year old floppy disk to hand, but I do have this one that's 13 years old and according to the label contains a copy of my doctoral thesis. The disk was created in 1996 and the files on it date to 1994 for my doctoral thesis which I completed in 1992.



But would it still read?

The first step was finding a drive. I had an old-ish 3.5" USB disk drive kicking around, so I plugged it into my MacBook Air and fired up Windows XP under VMWare. It happily recognized the drive and the magically it loaded up the floppy disk:



The disk contains a single ZIP file called oxford.zip. Unzipping it and poking around in the directories reveals that it contains my thesis, all the papers I wrote as a doctoral student, my CV and helpful READ.ME files: a gift to my future self.



That's all well and good, but are any of these files usable? Can I take the LaTeX based source files and produce a copy of my thesis? Or can I take the DVI file that I had saved and make that into a PDF?

A quick copy over to the main Mac machine and a download of LaTeX later I had a working LaTeX system again and all the files.

So to get started I grabbed the DVI file of my thesis and ran it through dvipdf. Apart from complaining about various missing fonts it produced a totally readable PDF file and suddenly I was staring at my thesis. You can download the PDF by clicking on: The Formal Development of Secure Systems. Here's a sample page (the code at the bottom is written in Occam):



But it's not enough to stop at a DVI file, what I wanted was to compile from sources. My first test was to start with something small: my CV. Magically, that worked:



And so on to my thesis. I'm not going to show all that I went through, but it worked after I'd got things in the right directories and tracked down a couple of additional style files.


BTW Does anyone have a Research Machines 380Z with working 8" drives? I have a couple of my really old floppies that it would be fun to read.

Comments

sappho said…
PFFF. You call that THAT resurrection? You didn't even have to open it up and wash the disk... Just because the disk is old, it doesn't necessarily mean it'll be harder to read than a new disk. A badly stored disk can get impossible to read in a matter of weeks, due to dust and mold, for instance. A common mistake people make is to write with hard tipped pens on disk labels after they've put the label on. That can really damage the disk right away.
Unknown said…
Check with Chris Rusbridge at the Digital Curation Centre:
http://digitalcuration.blogspot.com/search/label/legacy%20formats
m.o.kane said…
Imagine if the files had been created with Xywrite, Palantir or some other long-gone word processing program. Because they were written using LaTex they were easily recoverable. That's much more interesting than recovering the files off a floppy.

Popular posts from this blog

Your last name contains invalid characters

My last name is "Graham-Cumming". But here's a typical form response when I enter it:


Does the web site have any idea how rude it is to claim that my last name contains invalid characters? Clearly not. What they actually meant is: our web site will not accept that hyphen in your last name. But do they say that? No, of course not. They decide to shove in my face the claim that there's something wrong with my name.

There's nothing wrong with my name, just as there's nothing wrong with someone whose first name is Jean-Marie, or someone whose last name is O'Reilly.

What is wrong is that way this is being handled. If the system can't cope with non-letters and spaces it needs to say that. How about the following error message:

Our system is unable to process last names that contain non-letters, please replace them with spaces.

Don't blame me for having a last name that your system doesn't like, whose fault is that? Saying "Your last name …

Importing an existing SSL key/certificate pair into a Java keystore

I'm writing this blog post in case anyone else has to Google that. In Java 6 keytool has been improved so that it now becomes possible to import an existing key and certificate (say one you generated outside of the Java world) into a keystore.

You need: Java 6 and openssl.

1. Suppose you have a certificate and key in PEM format. The key is named host.key and the certificate host.crt.

2. The first step is to convert them into a single PKCS12 file using the command: openssl pkcs12 -export -in host.crt -inkey host.key > host.p12. You will be asked for various passwords (the password to access the key (if set) and then the password for the PKCS12 file being created).

3. Then import the PKCS12 file into a keystore using the command: keytool -importkeystore -srckeystore host.p12 -destkeystore host.jks -srcstoretype pkcs12. You now have a keystore named host.jks containing the certificate/key you need.

For the sake of completeness here's the output of a full session I performe…

More fun with toys: the Ikea LILLABO Train Set

As further proof of my unsuitability to be a child minder (see previous post) I found myself playing with an Ikea LILLABO 20-piece basic set train.


The train set has 16 pieces of track (12 curves, two straight pieces and a two part bridge) and 4 pieces of train. What I wondered was... how many possible looping train tracks can be made using all 16 pieces?

The answer is... 9. Here's a picture of the 9 different layouts.


The picture was generated using a little program written in Processing. The bridge is red, the straight pieces are green and the curves are blue or magenta depending on whether they are oriented clockwise or anticlockwise. The curved pieces can be oriented in either way.

To generate those layouts I wrote a small program which runs through all the possible layouts and determines which form a loop. The program eliminates duplicate layouts (such as those that are mirror images of each other).

It outputs a list of instructions for building loops. These instructions con…