by MichaelF on September 25, 2006 06:56pm


I collect old computers.  I always have, not sure why exactly but it does often help me remember where we have been and to contrast it to today and where we are going.  In my office I have the following machines: 

(on the desk)

·         HP AMD64 desktop with dual monitors (primary workstation) running Windows Vista and Office 2007
·         Mac Intel running OSX but often running Ubuntu or Red Hat Linux in Parallels virtualization software

(on the shelf)

·         Commodore PET
·         Sinclair ZX81
·         Radio Shack TRS-80
·         TI 99/41
·         Atari 400
·         Osborne I
·         Commodore 64

It’s the same at my home, where there is a mix of Microsoft Windows, various Linux, Unix and BSDs, and Apple operating systems running about.  At one point, I had some Irix and NeXTSTEP systems in the middle of this bedlam, but the electricity bill was getting a little silly at that point.  This is both intentional (at a minimum) and part of a grand master plan (at the maximum).   As much as possible, I try to force my computing experiences to include a broad range of technologies.  The incongruities that exist when bringing various technologies together are, in my mind, where we learn a tremendous amount.  We take a similar approach here in our lab.

There is another, more subtle, benefit of having all these different technologies together.  There really is no better way to see the differences, advantages/disadvantages, and the level of progress between technologies than using them side by side.  This goes for desktops, servers, and embedded devices.

When I first programmed, I was writing code that quickly consumed memory (what little of it there was) so I had to be very cognizant of memory allocation and deallocation, and practice judicious control of memory consumption and data manipulation.  Good practice, in general, but it was fun this last weekend to run that same old code on a modern machine that has 1GB of memory.  If this was the type of system available to me back then, I doubt I would have learned as much about efficient sorting algorithms as I did.  The tools available today would have made this easier as well.

As an industry, we strive to build innovations that capitalize on hardware advancements.  We are in the era of big network pipes, large and shared memory architectures, multi core chips.  How we ‘light up’ those hardware and infrastructure advancements is the magic of software, which is why I think work such as Software Transactional Memory and LINQ are fascinating – making complicated technologies easier for developers, essentially democratizing programming.

As a counterpoint, think about one of the key features of the Sinclair ZX81 (released in 1981): The ZX81 could be operated in two modes, SLOW and FAST. The FAST mode only refreshed the display when the system had finished computing, causing a severe screen flicker (think frozen screen).   It was a useful mode when you had to do a lot of calculation without the need to see what's going on all the time on the screen.  The SLOW mode (which computed at just that speed) behaved like all other computers did, refreshing the screen all the time.  Imagine that concept today – if you need to run that Excel calculation or load a complicated Web site, you could go FAST but not use the display.  At the time, this was innovation – get work done faster, but at a price.

This is why I keep these old boxes and machines around – to keep perspective on where we have been and where we might be able to go.   Create an incongruous environment and see what you can see.

-Bill

P.S. - I am still looking for an Altair 8800 to complete the collection, so if you know of a good deal, send me mail.

P.S.S. – another benefit of having old computer stuff lying around, is you can modify your home furniture.  Here’s a picture of a media cabinet in my home where I cut holes into the back panel and attached two cpu fans to a six volt battery, connected through a car light switch (where the red/black wires drop down from at the top).  This is so I can switch on fan power to the cabinet to cool down my Xbox 360 system behind this panel – which is necessary after long hours in Ghost Recon or Call of Duty2 play.  And yes, I opted for cpu fans with flashing blue leds, it is a game cabinet after all.