The World of Jay Little
Archaeology and Computing
2/4/2014 3:02 PM
Those of you who know me reasonably well, know that I enjoy tinkering with old software. As a developer I've always been fascinated with the evolution of software throughout the years. As a result I tend to collect old pieces of software. However 95% of this collection is electronic as I have tended to shy away from physical media. However not even this strong preference has been able to keep me wondering throughout the years, "What is happening to all of that old media?"

First off, let's define what constitutes "old" as that is a relative term which encompasses different time periods for different people. For the purposes of this discussion the term "old" primarily refers to 5.25 inch floppy disks as that is really the first form of media that I became accustomed to while growing up. For others it might refer to the old 8 inch floppy disks. And for others it might refer to 3.5 inch floppy disks and if it does, chances are you aren't going to appreciate any of what follows ;) In any event to narrow down the context of this discussion further, I'm primarily interested in 5.25 inch floppy disks that contain data and/or programs for IBM DOS compatible hardware as that was my preferred platform of the era in question.

Needless to say if you do the research you will quickly realize that extracting the data off a 5.25 inch floppy disk is nearly impossible with modern day hardware. Modern PCs no longer contain the legacy ports and/or controllers required to connect traditional floppy disks. In addition modern operating systems do not tend to include any support for such antiquated devices. 3.5 inch disks are a different story as one can readily purchase cheap USB 3.5 inch drives and modern day operating systems still at least include partial support for this form of media. 5.25 inch floppy drives never had any USB compatible variants created for them however which poses the question that has rattled around in my mind for years: How does a modern computer user with modern equipment go about extracting data off of these 5.25 inch disks?

Well today I'm going to answer that question for you. I recently purchased a Kryoflux interface board from it's manufacturer which is located in the United Kingdom. This is a device that has been created to solve the very problem that I wanted to solve. The only downside is that device requires that you supply a compatible drive for the media in question and the device will provide a USB compatible interface and the appropriate software to access the data from that drive on any modern PC running either Windows, Linux or Mac OS X. Keeping that in mind, I headed on over to Recycled Goods and tried to pick a relatively decent looking IBM PC compatible 1.2 megabyte 5.25 inch drive out. Though let's be honest - you are kind of shooting blind here no matter what you do. The newest 5.25 inch drives are going to be at least 20 years old. So getting a working one on the first try would constitute something of a small miracle.

Never fear though I'll spare you the nonsensical build up and reveal the outcome immediately: The drive worked perfectly. It was well worth the $30 that I spent. In addition the Kryflux unit and it's associated software worked exceptionally well, though to be honest the GUI front end for the software is next to useless which necessitated direct use of the command line utility. Though to be fair that utility is still fairly simple to use, even within Linux. For the curious here is a picture I took of the setup that I now have:

article image

Above you can see the setup of the Kryoflux hardware. In the middle we have our 5.25 inch 1.2 megabyte floppy drive. That drive is then connected to an AC Adapter (provided with the Kryoflux) that is then connected to a wall outlet. In addition the drive is also connected to a traditional floppy cable which then plugs in the Kryoflux board located behind the drive. That Kryoflux board then connects via a USB cable to my laptop with Arch Linux on the right. The floppy disk hanging out of the drive is the first of two 1.2 megabyte disks that I received when I ordered a used copy of wonderful SSI Gold Box era RPG, "Pools of Darkness" from a private merchant on Amazon. This game dates back to 1991 and was probably one of the last few games to be released on 5.25 inch diskettes.

Yes I have begun to acquire software on 5.25 inch floppy disks in an effort to be able to actually use this setup. Believe it or not I acquired all of this hardware before I had a single piece of compatible media in my possession. I'll spare you the cliche statement about a chicken and an egg. In any event I have successfully tested this hardware with multiple pieces of DOS era software, stored on both 1.2 megabyte 5.25 inch disks and 360 kilobyte 5.25 inch disks. Both forays proved to be immensely successful as I was able to successfully create error free disk images from all of the disks I now have in my possession. Though in the case of the specific game that is pictured the disks have obviously begun to degrade and I had tweak the number of retries allowed to read each track in order to create error free images.

article image

Keep in mind that when I say the process was successful, I mean it. I've gone so far as to install these games and actually play them using the premiere DOS emulator, DOSBox. What you see above is a screenshot of the copy of "Pools of Darkness" that installed from the two ripped disk images actually running.

At the end of the day one must ask, "How useful is all of this?" The honest answer of course is, "Not very." Still I can't help but to be reassured that should the true need to read a 5.25 inch disk ever arise, that I now have the experience and the tools at my disposal to accomplish the task in relative short order. In addition since the Kryoflux interface board is compatible with a wide range of floppy drives from various systems, the possibility of acquiring drives for other systems such as Apple IIs, Atari STs, Amigas and Commodore 64s so that I can attempt to preserve data on those diskettes is a very real one.
JPL Coding, Independence and Ethics
12/13/2013 12:50 PM
So as some of you undoubtedly know, last January I decided to start working for myself. Fast forward to today and I am closing in on the end of my first year as an independent software developer. It has been quite a ride. This past year has been most educational and interesting. I hear you asking, "In what way?" Well for starters I got to take my "ivory tower" ethics through a trial by fire of sorts this year. Anybody who has worked with me in the past knows that I have a system of ethics that I judge actions taken in a professional context against. If you want to better understand this system, start here with my "Code Monkey Manifesto".

Of course most of my past employers have failed to live up to these standards. Most were more than willing to cut corners, misrepresent themselves, misrepresent their product and ignore the needs of their customers in pursuit of the almighty dollar. In addition most were not capable of processing constructive criticism. This of course is a cardinal sin as software developers who lack the ability to handle constructive criticism, much less produce it, are incapable of evolving to meet future challenges. In any event, at some point over the last few years it became clear that it was time for me to start working for myself. Depending upon anybody else to fill the role of avatar for my ethics was nothing more than a fool's errand. Even having realized that, I didn't make the move because I was afraid of not having the safety net provided by an employer and their system of benefits.

But I eventually did it. Not by design mind you, as I kind of dumb assed my way into this to be frank. I took a job with an unnamed client out of Columbia that required me to start off as an independent developer until I proved myself. This position only lasted two weeks, largely because there was a disconnect between us in terms of what the technology platform was up front. Once I discovered that this was not a web development position, I immediately moved on. I had already positioned myself to accept a full time position with a local printing company. This fell through when I received the job offer because [1] the employer revealed some very disturbing factoids about the work experience there in our final meeting and [2] some old contacts of mine called me in with an offer that would allow me to independently work on a project that I've worked on for nearly a decade on and off. At that point it was clear that this was my shot and I wasn't going to piss it away. Opportunity was not only knocking but it was handing me itself on a silver platter. So I wised up and got with the program.

I still work with that particular client and they still provide the bulk of my work. It has been a fruitful relationship thus far. Within a few weeks I began to branch out and start working with other clients and that is really where the story gets interesting. Through another contact of mine I became involved with an international company whose headquarters happen to be 15 minutes from my house. They needed some modifications made on an existing piece of software. However at some point it became clear that what they needed was something that I could not provide. Custom Development wasn't going to solve any of their problems. I bent over backwards trying to relay my observations to them (effectively working to put myself out of a job for their sake) only to be spurned time and time again.

So what did I do? I walked away. In a decision that will likely be more ridiculed by my readers than revered, I decided that working with this client was no longer in the best interests of either party and began a three month long process of transitioning away. Working with them was profitable and the loss has been felt financially but I simply couldn't stomach the thought of becoming a leech who subsists on the existence of problems rather than the development of solutions. That is not why I do what I do. When I first started learning to code as a child at the age of six (thanks Dad!), I loved being able to control the behavior of the computer in front of me. Writing code was a fascinating exercise for me, even before I really understood what each line of code was actually doing. After 14 years of writing code professionally, I thought I had lost the ability to feel amazed at what I am able to do. But I rediscovered that earlier this year when I realized that if I picked the right clients and the right projects, I could see the fruits of my labors and that is where I derive my amazement from now.

Needless to say the client in question didn't take my departure well. I sincerely regret that aspect of the situation, but making them "happy" required me to compromise values that I hold dear. The truth of course is that continuing to work with me would never have made them happy as we were destined to never make any real progress. The battle we were fighting was pointless. I have no doubts that one day they will wander over to this website and read this particular piece. When that day comes, I hope they at least come away understanding this: No matter how many mods one writes for a terrible piece of software, it doesn't change the fact that the core software is terrible. Band-aiding a gushing neck wound is not an acceptable response, no matter the situation.

In any event it was difficult but my ethics survived the situation relatively unscathed. It was the first time in my career that I experienced the joy of watching some ethical dilemma involving a client produce a conclusion that did not violate any of my standards. If there is one thing I have learned over the last year it is this: You can only be as honest with your clients as you are with yourself. Honesty is almost certainly the best policy despite the fact that it will rarely be the most profitable one. My clients aren't just my clients, they are my partners. For without them there would be no JPL Coding and without JPL Coding, my future in this profession would be quite uncertain I think. For the time being, I'm in it for the long haul and I'm looking forward to what the future has to offer.
Search:   [Rss]   [Email]