Releasing old software
After a long, long time, I decided to release a new version of psiconv. That is tooling I wrote between ten and fifteen year ago. In those days I owned a Psion 5 (and later the upgraded model, the Psion 5MX), a small PDA with keyboard running EPOC (also known as EPOC32, a precursor of Symbian).
EPOC used its own file formats. There was a tool for Windows to convert files, but nothing for other operating systems. So I set out to fill that gap and psiconv was born. The hard thing was to reverse engineer the used file formats, as they were completely undocumented. On some forums, people even insisted that there was nothing like a file format, due to the way the documents were streamed to disk. Of course, that made it only a better challenge.
So, why release a new version now? I no longer own a Psion. But I want at least the file format documentation to remain available. So I wrote a script to import them into this site. But the documentation was originally written on my Psions, so I needed psiconv to translate that. And of course, doing so I encountered a bug in one of the output formats which really needed fixing: the last line of documents was replaced by a blank line.
While at it I wanted to support newer releases of ImageMagick and its fork, GraphicsMagick. Those libraries are used to convert the image formats of the Psion to more common formats. But that, in turn, meant I had to revamp the version-dependent code which detects what image formats are supported. Version-dependent as in: the code is slightly different depending on the ImageMagick or GraphicsMagick version.
Of course, I could just have removed support for the now ten year old versions of ImageMagick, but I did not want that. Instead, I opted for testing that code. Installing those versions on a modern system would have been a lot of work, if at all possible.
Virtualization to the rescue! Older Debian releases should work without too much trouble on a virtual machine. My current workstation is powerful enough to host several virtual machines at the same time. So I installed several old Debian versions and tested psiconv on it.
The funny thing is that the code I changed worked the first time around with all relevant versions of ImageMagick and GraphicsMagick. I could have released it blindly. There is a first time for everything, I guess!