Mike's Hardware

There are some people who don't know much about computers, yet seem to write about them incessantly. Guys like Jerry Pournelle have made plenty of money writing about computers, and describing his experience with all sorts of hardware. This guy has (or at least, had, until Byte magazine nearly folded, then went to an online-only model) influence over a sizable audience. A desire to control that influence made hardware vendors bend over backwards to try and get his attention.

But his articles are confusing to the novice reader, and smack of a knowledge level gained by someone who only uses computers in passing. His complaints are neve rexplained or justified, and his suggestions then seem without justification. Plus, he charges a buck a month for access to his website.

Well, then, why don't I give it a whack? This page describes the hardware I'm using and gives my opinion of it. Maybe you'll have better (or worse!) luck with the same products, maybe not. I don't romanticize the story because I use computers for work, almost exclusively. If, say, one hundred people started sending me a dollar per month, maybe I could find the time to frequently update the page and knit a story around these machines.

Rigs At Work

At work, Microsoft has supplied me with a wide range of Dell machines computers. Purchasing at Microsoft is driven by the cost of the machine, of course, but there's also work put into evaluating machines from different vendors to see which machines are the most maintainable and supportable for the dollar.

My primary workstation is a Dell Precision 530 workstation. It's got dual Xenon processors with Hyperthreading, one gig of memory, and two 36-gig Seagate SCSI drives. The machine runs at 2.4 gigahertz. I've installed a secondary display adapter--an old Matrox Millennium 2 card I had lying around, in fact. The card drives a 15-inch A-Open flat panel LCD monitor, which doesn't have excellent quality but was very inexpensive.

My secondary machine is also a Dell Precision 530 workstation. It doesn't have a second display card installed, runs at 2.0 gigahertz, and has two gigs of memory, but is otherwise the same as my primary machine. I use this machine for performance testing, running a profiler over my code, and so forth.

A third machine is used for testing. I install and uninstall it, and test, and maybe fix a few bugs. Since the machine isn't used for any serious work, reformatting the drive and wiping everything clean for different tests is pretty easy. It's a Dell Optiplex with a single 2.4 gigahertz processor and a 120 gig IDE drive. It has 512 megs of memory.

The fourth machine in my office is a beater: it's an old Asus P2B Slot 1-based board with a . I've got a direct "raw" Internet tap in my office that isn't on the highly-secure corporate network, and this machine is connected to that tap.

Finally, there's an ancient four-way machine in the room. It has four Pentium Xeon processors running at 550 MHz, and a giant floor-standing case with three low-profile 8 gigabyte Seagate SCSI drives in it. It holds 3.5 gigs of memory, and hosts a Promise Technologies SX-4000 IDE-based RAID array. The RAID array is pretty cool; since it's IDE-based, it's quite cheap, though slower than a similar SCSI array. That's absolutely fine for development and testing, if you ask me. Right now, there's two Western Digital "special edition" hard drives, each with eight megabytes of onboard cache, in a single RAID-0 stripe array. This machine is my test database server; it's packed with all kinds of different databases: lots of table with a little data, one table with huge data, interesting sample data for every data type, and so on. I always underestimated how much time and care setting up those databases would take.

I'm always impressed with the stability of the machines that are chosen by our purchasing folks. They always work great, though when they fail, the service we get from our contractors is very good. My primary machine was a bit fitful when I was using an old ATI Rage card for the secondary monitor. The drivers weren't too stable; they showed symptoms of a memory leak. I switched to the Matrox card and I've been completely stable. The Matox card, by the way, has 32 megs of memory—absolutely unheard of when the card was new. I spent more than $500 on it back in 1995, I think. Now, it's an absolute turd, completely overshadowed by even the cheapest nVidia card on the market.

Finally, I built myself a machine for using email and RAID. For people in product groups, Microsoft is built around these two important communication mechanisms. Email is obvious and ubiquitous at almost all corporations (and homes!) these days. RAID is our internal defect tracking software. If someone needs a problem to be fixed, they open a bug in a RAID database. It's tracked, assigned, and hopefully resolved. I use RAID all day, and having a machine dedicated to RAID and email is extremely convenient.

That machine, by the way, has a gig of memory and a snazzy ChainTech GeForce MX card with a DVI output. It drives an older IBM 18-inch flat panel LCD screen. (The four other machines are connected to a 20-inch NEC CRT display.) The machine is built around an Asus P4S533 motherboard, which is just a dream. It's running a Pentium IV 2.53 gigahertz part, over clocked to something like 2.85 gigahertz. It's rock solid, and runs very cool with only the OEM heat sink and fan.

For hardcopy, I bought myself a Hewlett Packard LaserJet 1100 printer for use within my office. This printer is nice and small: Hewlett Packard still doesn't make a smaller printer. I bought it for myself because I was printing lots of employee reviews and resumes, plus the occasional personal letter, and didn't want those sitting at the common printer waiting to be picked-up. We have pretty impressive printers in our copy rooms: big old 8000-series Hewlett Packards, and these cool Xerox color printers. Unfortunately, lots of people use the color printers as their default printer and that means they're getting high page counts. They're expensive to operate, so I wonder if they'll be disabled or protected sometime soon in order to save money.

All of these machines run Windows XP Professional, except for the four-way, which is running Windows 2000 Advanced Server. I'm getting too old, I fear, to use the internal pre-release versions of Microsoft's newest operating systems. I'm more interested in getting work done. As the operating systems enter release candidate mode, however, I might upgrade, starting with the four-way.

Why So Many Boxes?

Everyone who visits my office wants to know why I have so many rigs.

Software development is funny: there's a tremendous pressure to get things done quickly, but a subtler pressure to get things right. In my experience, it's more important to get things right. But I can get more things done right, and quicker, with more machines. On one machine, I can have my project completely torn asunder. Lots of new code, big changes. That work takes weeks, and isn't stable, and needs to be bench-tested aggressively before I check it in and share it with the rest of the people on my team--and with the other machines in my office.

Those other machines have pristine copies of the project, which I surgically alter for each bug I need to fix. Maybe that work gets aggressive, too. That third machine is very clean. I rarely, if ever, actually write code on it, unless I know the change is quite trivial. I'll also make changes locally on that machine if the changes must happen in situ with a stable installation of the product. Before we ship the product, the setup program is not done—so getting a clean installation is harder than it is for our customers and might involve manually removing code or running special batch files to clean up the registry or the GAC.

The four-way database server is a bit of overkill. The box was sitting idle, and I took it. It had only two processors, so I shopped around on eBay for a while to buy additional processors. Using it to host my test databases got me familiar with four-way machines, and I'll eventually use it to do some testing and profiling for scalability. Or, maybe not: I've been given exclusive access to an eight-way Dell PowerEdge machine in our lab.

Equipment at Home

At home, I have a spare bedroom dedicated to computer work. My DSL service is bridged to a home phone line networking system, which works great. It's plenty cheaper than wireless, though that's changing and I might soon upgrade to an 802.11b system. It'll be faster, too. All of the machines in the office room are connected to a 100-BaseT switch with Category 5 cable. My wife's machine, in her office, is linked over the HPNA subnet, as is a machine downstairs, connected to our entertainment center.

My office has two printers: an HP LaserJet 4050T and an HP Photosmart 7350 color printer. The 4050 is a beast, but I justified it to myself back when I was doing a lot more writing. It's a real workhorse; it's never jammed, and I really enjoy the duplex option. The 7350 is a great printer, too. It's a little bit slow, but the images it produces from my digital camera onto glossy paper are beautiful.

In the office, there's a machine running a 950 megahertz Pentium III processor with about 100 megs of storage. This machine has many of my favorite songs ripped from CD to MP3 format. Like most everyone else who writes software, I eventually intend to write a jukebox program so I can access these anywhere else in the house. I don't use the machine for anything else, aside from burning CDs. I use Roxio Easy CD Creator 5. Many of my friends insist that Roxio is terrible, but I find it much easier to use then Nero. Neither program has caused me to burn a useless CD, but the Nero user interface is more confusing than my tax forms.

I have a dual processor server built around a SuperMicro P6DGU dual-processor motherboard with a gig of memory and one gigahertz Pentium III processors. This machine has a DVD drive, a CD drive, and a Hewlett-Packard SureStore DAT24 backup drive. When writing, I use Visual SourceSafe hosted on this box to hold copies of my sample software and chapters. The machine also hosts the printers, and acts as the DHCP Server and domain controller for my home network. I could run everything as a workgroup and save myself some frustration, but I'd not learn as much about security and domain management. It runs Windows 2000 Server. Everything else in the house runs Windows XP Professional.

The dual-processor machine also hosts SQL Server, and has variety of databases--mostly crap, but there's also WebMoose.

My primary workstation at home is a dual-processor box built on a Tyan Tiger motherboard and running two AMD Athlon 1800+ processors. This machine has two gigs of memory and two IBM SCSI drives. It's quite fast. It's running an ATI Radeon card, which drives both a View Sonic PT810 21-inch monitor and a Dell flat-panel LCD. The Dell display is incredible; it's large, has a wide aspect ratio, and beautiful contrast. Driven from a DVI source, it's just unbeatable.

There's also a dedicated mail and RAID machine here at home. It's a Gateway running a 850 MHz processor with 512 megs of memory.

DSL is fast enough to let me work from home within reason, but I like to use local resources at home. That is, even when I'm logged-into the corporate network via VPN, I want to print to my local printers and hit my local database server. Trouble is, Microsoft has moved to SmartCards to authenticate RAS connections. It's a great idea, but it doesn't work well enough to be viable. Any machine I have at home which needs to access RAS must be joined to the domain structure on the corporate network. Otherwise, it just can't see resources on the corporate connections. The challenge of getting the machine to see resources on my home network when not logged-in is left to me, since our corporate security folks and helpdesk personnel don't support home networks.

My wife has a new machine I built for her around that same P4S533 motherboard I use at work. It's a wonderful platform.

Downstairs, our plasma screen has one of its inputs driven by another Pentium machine I built into a nifty CoolerMaster ATC-610 case. This is a really slick unit, though I like the styling of the newer ATC-630 just a little bit better. Then again, the 630 isn't available in black.