Do you know that feeling: Although you didn't change much in terms of software, all of a sudden your box just feels tooooo slow. I mean, not in terms of Quake (I was never into gaming), but for your everyday tasks. This unpleasant feeling struck me eventually, and I had to decide: upgrade again, or buy new. A quick market research convinced me that I wouldn't save much by buying components, as I would have to replace almost everything. So I went ahead and bought a new and shiny tower.
This one already had a PentiumII 266MHz, 64MB memory, a 4.5GB drive, and a quite usable ATI Rage Pro card with 4MB. I also got myself an affordable 19in monitor which was good enough for my office/programming use. The first thing was to erase Windows95 and install NT4 instead. All was bigger, faster, better.
At about this time I had gotten into contact with open-source software for the first time. While managing a multicenter cooperation for a grant application I had to deal with Unix-minded people who used strange operating systems and software. Emacs? TeX? SGML? While I wasn't ready to leave Windows, the stuff they were telling me about seemed to have advantages, so I went the somewhat cowardly way to try and install that stuff on Windows. Fortunately most of the stuff was already ported, so I could try Emacs, bash as a real shell (as part of the Cygwin tools, then at version B19), TeX, and a few other goodies. All very different, but very interesting.
Playing sysadmin with Linux
I still had my old tower sitting right next to the new and shiny one, and I wasn't sure what to do with it. At first I thought about running a small NT network just for the heck of it. But then, as one of these unsolicited hints of your fate, a computer magazine (a quite lousy one that I never read, BTW) published a special issue about Linux and shipped it with a one-disk Debian 1.3 release. A quick search in the web told me that this was a geek distro that any Linux newbie should stay away from. So I had to buy that issue anyway and popped in the CD into my old tower. I had partitioned the 2GB drive with the NT installer so I had an unused 1GB partition left for Linux, and I went ahead, trying to answer the strange questions of the installer to the best of my knowledge. I wouldn't call it a smooth experience, but in a matter of two or three days I had a running installation including X. This was an entirely different world.
SGML for dummies
My experience with crashing Word documents made me look for alternatives. While LaTeX, that I had already been introduced to, looked quite good, I read an article about SGML and got hooked immediately. It looked so logical to me that I was surprised that no one was using it. I soon found out that you either had to be rich (commercial tools started at about $1000), or use Unix. There was no such thing as a free SGML environment for Windows (which I was still using at work). I went ahead and cobbled together a SGML editing system, mainly using software ported from Unix to Windows. It took me about three months of fiddling until the stuff was complete and working, and I had the desire to share this experience. Therefore I started my first website, called SGML for Windows NT. A short tutorial, consisting of about a dozen hand-coded HTML pages, explained the installation of all the components. Given the small number of people using SGML on Windows, the tutorial turned out to be a success.
Of course I tried to set up something similar on the Linux box and was surprised how easy that was. A few Debian packages, and off I went. This made me think.
Having two towers right next to each other and using floppies to transfer data was not a good thing. A friend got me two NE2000 PCI card clones, along with a coax cable. I installed Samba on the Linux box and was able to share data with no hassle. A little more tweaking was required to share the printer. Just for the heck of it I also installed Apache so I could read manuals and other local HTML stuff either locally on the Linux box or via TCP/IP on the NT box. I soon realized that nothing beats having two monitors, one for reading the manual, the other for doing whatever the manual said.
It was inevitable on the long run that I'd run out of disk space on my NT box, so in went another 9GB drive. I saved one partition for use with Linux and set up a dual-boot system. This way I could run a Linux-only network as well.
Managing references the Unix way
After moving to another new position I faced the old problem: How could I access my existing reference database without violating copyright laws? The "normal" way would have been to beg for a $500 copy of Reference Manager (I had used a workgroup license in my previous position, not a personal license), but I felt this is not a good way in the long run. I figured that a small C program using a free SQL database server to store the references should do the trick. I made sure it would run both on Linux and on Windows NT, in the latter case assisted by the Cygwin library. MySQL had just been released under the GPL so this was the obvious first choice as a database server. I also disliked the concept of the commercial implementations that everyone runs his own database server, making it hard to consolidate offprints in a workgroup or a department. This was asking for a client/server architecture. Some good books about C programming, SQL, and networking stuff got me started. After a few months of nighly development I could read in my existing Reference Manager database and started to use my own creation productively.
I figured there was one problem with my little program: Writing a scientific paper would require to create citations and the bibliography manually in spite of having all the data in a database. Therefore I continued programming, trying to figure out a way to automatically create bibliographies for DocBook SGML documents. As soon as this kinda worked, I released RefDB under the GPL and made it available to the public.
Daemons coming over me
Given its limited usability for the average Word user, RefDB had some success, and I soon faced the problem of portability. While my approach to make it run on Linux and Windows/Cygwin avoided most of the portability problems, some problems still showed up on other platforms, like PPC-Linux or Solaris. To give me another testbed I decided to install FreeBSD on my newer tower. I had read a few articles about this more mature but less flashy "competitor" of Linux and wanted to compare myself. Conveniently the 4.5GB drive died around this time (it actually didn't die completely, but it showed random failures that would lock the SCSI bus for extended periods), so I got myself a bargain 18GB SCSI drive with sufficient space for alternative operating systems. Unfortunately the 4.5GB drive was the boot drive, so I had to shuffle all OSes off this drive and still keep them bootable. It was a breeze with Linux (just copy all files over to the new partition, edit the new /etc/fstab, and re-run lilo, that's about it), and a PITA with Windows, as I had to reinstall everything. In the end I had a triple-boot box, using GRUB as the boot manager, for Linux, FreeBSD, and Windows NT. For some reason, FreeBSD appeared to run about 30% faster (measuring the KDE startup time and the compile time of RefDB as examples), so I started to like it a lot.
Going mobile again
I was about to move back across the pond, and I figured that this time my 486SX laptop would not be up to it anymore. I found an affordable IBM Thinkpad 600E at ebay, with a 10GB hard drive, a PentiumII 366MHz CPU, an excellent 1024x768 color display, a DVD drive, and one of these ingenious Xircom Ethernet/Modem cards. I had done some research before deciding for a 600E, so I was sure that it would run both Linux and FreeBSD withbout major obstacles. I opted for FreeBSD, and the only thing that still doesn't work reliably is the modem part of the Xircom card. Otherwise I am still very happy with the OS choice.
Installing FreeBSD on a laptop is always more of a challenge than installing it on a desktop. Feel free to view the configuration files that I currently use:
Setting up a multi-boot tower
Sometimes, when you least expect it, you'll find yourself on the bright side of life. A friend's father upgraded to a real shiny laptop and wanted to get rid of his midi tower. The price he was asking was more than fair, so I had another box to play with. The box was crammed full with nice add-ons, like a CD burner, a Zip drive, a SCSI scanner with a 4x5in transparency unit (a perfect match for my large format ambitions), and loads of memory.
I wanted to use this box as a testbed for my programming efforts. I wanted to have as many operating systems available as possible, keeping the installations as simple as possible in case I'd have to reinstall everything. Installing Windows NT4 turned out to be a nightmare, as it wouldn't recognize the 40GB IDE drive and at the same time refused to boot from the 2GB SCSI drive. This looked like a catch 22 until I decided to pull a stone age 170MB drive from one of the other boxes and use that as the boot drive. I managed to install NT on the 2GB drive, but after a few days one of the files was corrupted and NT refused to start. Needless to say that reinstalling or repairing didn't work, and I couldn't manually replace the file as it was on a NTFS drive. I had to wipe everything and reinstall it using FAT as the file system. After installing the Cygwin tools the drive is almost full (FAT wastes a lot of space), but I didn't want to do anything else with NT anyway. The driver for the graphics card is broke as well, but it's good enough to run my regression tests. Due to various reasons I later removed the drive containing NT.
Installing FreeBSD was a breeze. The default kernel deals just fine with the hardware. The box is actually the first one that feels fast enough to run KDE as the default desktop.
Debian 3.0 was next. It basically went fine, except that I somehow screwed the debconf-based X configuration so I had to configure X manually at a later time. I still can't make ppp connections through the modem though, but I don't have enough pressure to fix this as it works fine with FreeBSD.
Finally I did a basic installation of NetBSD 1.6.1. I didn't get around to install any packages yet, but the basics were very smooth.
With that many operating systems on a box, GRUB is simply a must. It currently runs from a floppy but allows to boot all systems from a nice start menu. The box is connected to the 'net through a 56k modem and is set up as a gateway for the other boxes.
Buy new and Recycle (revisited)
Time turned the once shiny and new PII tower into a more and more instable piece of junk. First the Zip drive died, then the CD-ROM gave up, finally the integrated SCSI interface worked erroneously. The CPU fan was a blast, and the whole box was too slow anyway. Time to move on. As the box was supposed to be the workhorse of my wife's startup business, I thought I'd buy a solid Athlon XP box with a service contract and all. It just so happened that a friend of a friend was selling hardware and services, and he came up with what seemed to be a good deal. A Tulip box with an Athlon XP 2800+, 1 GB of memory, a 40GB IDE drive, a CD/DVD player and CD burner. The integrated graphics and sound of the VIA Unichrome-based bord turned out to be useless for Linux, but I was prepared for that. My dealer had a spare Matrox Millenium G400 card for free, and I bought a bargain ESS Solo PCI soundcard on ebay. However, the box ran unstable like hell, so I had to turn it in twice for repair before even finishing an OS installation. First the CPU was replaced, and then my dealer had to remount the replacement CPU as the manufacturer had mounted the cooler incorrectly. Finally the box ran stable, and it was (and still is) amazingly silent.
As a business box should rather work than support cutting-edge features, I decided to install Debian 3.0 (testing). I added the usual suspects like KDE, Firefox, OpenOffice, and Xine. As a few pieces of software (like the tax software or software related to a sewing machine) would require Windows, I set it up as a dual-boot box, running Windows 2000 as an alternative OS.
The old box still had to be dealt with. I decided to dump just about everything except the case and the SCSI drives. While it certainly was not the cheapest way to arrive at a running box, I wanted to build a new computer from scratch. I bought a board/CPU bundle consisting of a MSI KT-400a based mainboard, an Athlon XP 2800+ with an original AMD cooler, and 512MB of memory. I added an Adaptec 2940UW SCSI adapter, a Radeon 7500 graphics card, and two additional IBM 18GB SCSI disks (all of this were preowned bargains). I also needed a new power supply to cope with the increased demand of the board and of the additional drives. I moved over the CD burner from my multi-boot box (it still has a CD-ROM drive), and added leftover floppy and SCSI zip drives. The new box runs fast and reliable, though not very silent due to three server hard drives.
I could not imagine to install anything but FreeBSD on this new box. There was a brand-new release (5.3) available which installed without a hitch. I only had to give up the idea to run the three 18GB drives as a RAID-5 array, as I did not quite like the volume manager shipped with FreeBSD. Now I use one drive as the
/home drive and mirror the whole drive to a second drive using
unison. The third drive is currently unused. I first installed KDE, and while it ran smooth and fast, it soon became apparent that it was simply too fat for my purposes. The main applications that I use (Emacs, Emacs, Emacs :->, Firefox, OpenOffice) are not integrated anyway, so I could make do without all the fluff that KDE offers. First I installed Afterstep, but I found the new version (2.0) outright ugly, sufficiently crash-prone to be useless, and impossible to customize to a degree that gave acceptable results. Next I gave XFCE a try. It is pleasantly lightweight, unobtrusive, and sufficiently customizable (although I miss individual backgrounds on each virtual desktop as a visual clue where I am). I found XFCE's file manager difficult to navigate and buggy, so I decided to replace it with rox-filer. Instead of desktop icons (XFCE4.0 does not have them, and the rox pinboard interferes with the XFCE main menu) I added links to the most visited directories to the main menu (which is an easy-to-maintain XML file). Drag and drop works between rox-filer and XFCE, so the environment appears completely homogenous. My only complaint is that the printer drop target doesn't work, but this may be fixed in the upcoming 4.2 release.
Due to space constraints I finally decided to move the P100 box into storage, although it still works perfectly. The new Athlon XP tower now acts as the gateway and printer server, whereas I use the older Athlon box for software testing purposes only.
Going mobile again version 2.0
My Thinkpad eventually developed the nasty habit of moving the mouse cursor off the screen without any user interaction. The trackpoint apparently broke. I could still work using an external mouse, but once in a while the box no longer recognized its hard drive, making several reboots necessary to actually start the box. That finally convinced me to go shopping again. I set out to purchase one of these nice MSI 260 laptops. The case and the keyboard are white, without looking like a MacBook ripoff. The screen is a 1280x800 glare-type TFT. Inside there is a Pentium M running at 1,7GHz, 1GB of memory, a 60GB hard drive spinning at 7200rpm, as well as a CD/DVD burner.
Installing FreeBSD wasn't much of a hassle. Originally I installed 5.4, but meanwhile I've upgraded to 6.1. See my configuration files here:
I use XFCE 4.2 as a desktop environment. CUPS is set up to automatically detect the available printers in all networks that I plug this box into.
Just for the heck of it, this is a list of the computers which are more or less functional today. The 486SX laptop mentioned above still kinda works, but the internal battery went bad so you have to set the hard drive parameters manually whenever you boot, i.e. this laptop is mainly lying around collecting dust.
||Athlon XP 2800+
||Athlon XP 2800+
||Pentium M 1,7 GHz
||340MB (IDE) + 2GB (SCSI)
||9GB + 3x18GB (SCSI)
||170MB + 40GB (IDE)
||Elsa Winner 1MB
||Elsa Radeon 7500 64MB
||Matrox Millenium G400
||Debian GNU/Linux 2.2
||FreeBSD 4.7, Debian GNU/Linux 3.0, NetBSD 1.6.1
||Debian GNU/Linux 3.0 (testing), Windows 2000
||XFCE 4.2 + rox-filer
||AfterStep 1.8 + rox-filer
||XFCE 4.2 + rox-filer