Sources

I was reading this posting All these sourcesat Slashdot (“OSS Music composer gaining attention”), which is about a developer who has started a Buzz-like music ‘tracker’ in C#. The part that caught my eye at the linked article was the following paragraph (Italics mine):

The day the source code to Buzz got lost was a very sad day and there was absolutely nothing anyone could do. We’d just had an updated version of Buzz released and suddenly everyone realised there would *never* be another one.

Then I went back to the development log of Rosegarden (that outstanding MIDI composer for KDE/Linux, website), which reminds us that there was indeed a Windows branch:

1995-1996: Andy makes a sibling version of Rosegarden for Microsoft Windows, adding a significant amount of extra sequencer functionality. Then he loses the only copy of the source code in a hard disc crash. You can still have the 32-bit binaries if you like, but they might not work. Don’t come crying to us if you blow up your computer.

I think I have exactly one backup of my oldest sources, (covering 1995 to 2002) which have been put on (exactly) one 700 MB CD ROM. Compressed. Then, when working on my first Toshiba (2004?), all of my sources from then on where stored in a personal folder called ‘Sources’ (how original) with many (many) subfolders, all of them containing some sort of project, library or explanation. This folder has moved with me since then and currently covers 3.5 gig of space. Naturally, I always include the executables too (that is in case I ever lose my sources1). And what not.

If you just started programming and you think you’re a hotshot: Think about the Megabytes of code you can write in the next 10 years. Oh: and don’t forget to make backups too.

1 I did lose code over the years: Missing in action are the original WordPlay/Scrabble server (PHP, this is the one I once demoed to explain separation of UI, Code and data), a NNTP statistics collector (Python, this one actually worked too and I have no idea why I wrote it) and a directory synchronizer (Python too). I recently recovered that last one though (sheer luck) when cleaning up a directory on a ‘free hosting’ server (that was the same day I wrote code to extract passwords from a popular FTP program): The code actually still works, but I have no idea how or why I actually wrote it. I don’t understand the code either, anymore, which is worst than actually losing code).