A few weeks ago, Scott Hanselman gave a spec for his idea of what the "ultimate" developer workstation, bringing the grand total to $1900, without monitors. While I think Scott actually is buying that machine, most of the time, such lists are more along the lines of "what kind of house would I buy if I won the lottery" than practical planning. It's a fun thing to do and consider how you'd configure a machine if money wasn't an object.
Beyond that, I'm pretty weary of the whole idea of constantly seeking out the "best" or the "ultimate", which is usually not even reasonably defined. His "ultimate" box, for instance, has a 2.4Ghz quad core processor ($531), but only 2GB of RAM ($216). My version of an ultimate box would swap those 2 priorities. I'd rather have 16GB of RAM than an ultra-fast processor.
That's what makes the whole "building your own" approach to computers interesting. Each and every component choice reflects your own priorities. And, today, when Coding Horror extended the aforementioned "ultimate" by also including a basic and "premium" in addition to "deluxe" it came at an interesting coincidental time.
See, just yesterday, I ordered all of the bits for a new desktop. With the laptop fiasco of the laptop I want not being available until nearly September, I stepped back and re-thought my technology plan for the next year. Most of my gear needs an update. So, I decided to start with a new desktop, then monitors, then the laptop and settle in for 2-3 years after that.
Looking at their "basic", it falls right in the price range for what I bought. My total with shipping was just over $800 and included everything except the power supply (because I have one laying here), but did include a copy of Vista Business as this will be a multi-boot system that I'm building.
If everything goes according to plan, the pieces will be here for me to assemble between the end of my current contract (Thursday) and the beginning of the new one (next Wednesday), giving me time to put it together and get it up and running.
Here's how I approached this and what my driving factors were. I rely on these things rather than benchmarks because these are the things that are actually important to me, not whether a given set of tools runs faster.
First is that I want a solid 3 year duty cycle out of this machine. The ability to build it as a decent machine this month, but make it progressively better over the coming months was important.
Second, more than anything else, my ability to juggle all of the things I'm working on at a given time is always my biggest bottleneck. After working with dual monitor setups, it's clear that I haven't been even close to the actual desktop resolution/size that I really need to get work done.
To that end, I want a setup with at least 2, but preferably 4 big monitors. One 30" monitor has less space than 2 x 22" monitors do and 2 22" monitors can go for $440 these days.
Third was to rationally measure what is to blame for slowdowns. On Linux, I really don't run into performance problems even with what I have. However, on Windows, it is universally not enough RAM. CPU is secondary.
Incidentally, that list is *why* I didn't just buy one from Dell or somewhere else. See, the ability to run 4 monitors or 16GB of RAM is just not in the mainstream usage and mainstream is what Dell and company are after.
At any rate, I started out with video cards, looking for those that handled the highest maximum resolution for the money. I settled on this 256MB card with dual DVI that handles 3840 x 2400 resolution for about $130. The Coding Horror "basic" machine uses a dual DVI video card with only 2560 x 1600. This selection ensures that whatever monitors I end up buying will be handled. And, should I choose to add another of these cards, all 4 monitors can be as big as I can afford and things will work out great.
That potential future upgrade (a second video card) prompted part of the motherboard selection. I wanted at least 16GB of maximum RAM and multiple PCI-x slots. There were a few out there that handled 32GB of RAM, but not a lot of choice on other stuff, so I fell back to the 16GB motherboards and ended up with this open box motherboard for about $50.
As I'm constantly frustrated by a lack of room in the case of desktops, I opted for a full tower case for about $70. However, I'm still intrigued by the IKEA solution to the computer case problem, so I have a Plan B.
Since the selected motherboard used the LGA 775 slot, I used my "bang for the buck" approach on the Duo Core processors and ended up with this Intel Core 2 Duo E4400 Allendale 2.0GHz CPU for about $125. Given that I never max out the single core 1.6Ghz on my laptop, I'm not too worried that there's a "better" CPU out there.
Much of the rest was pretty straightforward. A $100 500GB hard drive to handle the 3+ OS setups I intend to include, 2GB of cheap starter RAM for $80, CPU cooler and DVD burner and the basic setup is complete.
Since the first 2 OS's on the machine will be Ubuntu and Vista, I grabbed Vista at the same time.
All of that lays a foundation that can easily be expanded.
- The case is huge, so I can add lots of hard drive space.
- There's room for lots more RAM to be added over the coming months.
- I can shop around for 2 matching monitors and buy them in the fall. That will replace the monitors I'm using now (which actually replaced those in the picture of my office about 8 months ago).
- I can add more operating systems to the setup.
- Next year, I can add a second video card and another pair of monitors. Who knows, 24" or 30" monitors may have sunk into the "cheap" range by that time. However, the chosen video card will handle them fine.
- If, by some miracle, I start maxing out the CPU, I can swap it out, because I didn't pay much for it in the first place.
In short, by the time this thing is actually at the end of its life, it will actually be really powerful, meaning that the 3 year life might actually be low. And, by spending the money on things like the monitors, when it DOES reach the end of its life, I can start the cycle all over again for cheap.