Understanding The Hardware

I got a call from Rob Conery today asking for advice on building his own computer. Rob works for Microsoft, but lives in Hawaii. I'm not sure how he managed that, but being so far from the mothership apparently means he has the flexibility to spec his own PC. Being stuck in Hawaii is, I'm sure, a total bummer, dude.


This is a companion discussion topic for the original blog entry at: http://www.codinghorror.com/blog/2008/07/understanding-the-hardware.html

I’m interested to see how Rob Conery would use all 8 GB of memory. It seems that to use all 8 GB, he’d have to deal with the hassle of using a 64-bit clean OS and all the driver complications that come with it. And, in my experience, all that work doesn’t really get repaid much, as I’ve never exceeded more than 3 GB of physical memory use.

Nice setup :). What about the case? I don’t see it in the parts list…

Also, I doesn’t matter for an average home user, but I would definitely buy a second hard drive and put them in RAID1. Few hours of lost programmer’s productivity (or may be even a day+ spent rebuilding the system) is definitely than $300.

Actually, your hardware posts are some of your best I think.

The best bang for the buck developer x86 box

Don’t you mean x64 box? You’ll definitely be going 64-bit on this bad-boy, won’t you?

I’m with Michael on this one. My first reaction was 8GB? You’re out of your damn mind. I assumed it was just me, since I run Gentoo and can’t stand Gnome or KDE because they’re so full of junk I don’t need. I’ve never had a computer with even 1GB, but 8GB really seems ridiculous. I’d like to see how you justify that.

Good call on the power supply. I had to learn that all the hard and expensive way.

I agree and disagree with you, Jeff. Getting your hands dirty and put one together doesn’t really teach you anything more than what you’d learn from assembling a drum set for Rockband or building any other structure where the instructions are as simple as insert rod a into slot b. I didn’t truly understand how exactly the videocard pipeline worked until I wrote one, nor did I truly understand how a CPU worked until I got my hands dirty and wrote parts of one either. To say that assembling something from parts helps you understand the underlying principles is equivalent to saying that buying a swing set kit from Lowes and building it taught you all about carpentry.

I have 4 GB. I must admit I’m a little surprised at the recommendation for 8 GB (but then, I’ve had 4 GB for 2 years now). Still, I know for certain that the only reason I’ve never used more than 4 GB physical is that I only HAVE 4 GB physical.

As for 64 bit drivers, it’s hit and miss, but it’s mostly hit (which really goes for 32 bit as well). 64-bit Vista has been fine for me and on a bunch of other machines I tried. It was not fine at RTM, mind you. But it’s fine now (without changing the hardware).

In my book, one of the best ways to understand the hardware is to get your hands dirty and put one together, including installing the OS, yourself.

Really? Putting PCs together taught me a lot about thermal paste, how to seat memory properly, and what your apartment smells like after you accidentally attach a jumper carrying DC power to the wrong bit of your motherboard, but it didn’t really teach me anything relevant to developing software.

a couple of things.

  1. you dont need two video cards for triple monitor support. you can use one dual monitor card + onboard video or one video card that supports 4 monitors.
  2. i dont see how building your own pc gets you a greater understanding from a programming perspective.
    i have built dozens of pcs, from way back in the days when we had to choose interrupts and memory addresses via dip switch i also happen to know some assembly and rarely do the two meet.

you dont need two video cards for triple monitor support. you can use one dual monitor card + onboard video or one video card that supports 4 monitors.

Really? I’ve never seen a video card that lets you use 4 monitors, nor have I seen a BIOS/motherboard that lets you use chipset video and a discrete video card at the same time.

I never really understood how there could be programmers who don’t know anything about hardware. I guess they’re Web Developers.

you dont need two video cards for triple monitor support. you can use one dual monitor card + onboard video or one video card that supports 4 monitors.

Really? I’ve never seen a video card that lets you use 4 monitors, nor have I seen a BIOS/motherboard that lets you use chipset video and a discrete video card at the same time.

http://www.newegg.com/Product/Product.aspx?Item=N82E16814121247
The 3870 X2 from ATI supports four monitors.

Also, Jeff, I’ll echo many of the people here and ask what specifically you’ve learned about programming from putting computers together, which as you said, is fairly simple and a matter of putting the right piece in the right slot.

what’s with an additional, relatively cheap solid state disk with about 16G for the operating system, programs, boot partition and eventually the common workspace? speaking of performance, i believe that disk is the worst bottleneck from all…

I don’t necessarily think Jeff meant that he learned more about programming by building a computer.
However I think that building a computer helps, you as a developer, understand your tools better. It may be just me but I’d think understanding that the big beige box under your desk is not magic, just might be a good thing. Then again I came to software development from a computer repair/build background.

actually, video encoding doesn’t scale well with the number of processors. It’s actually a reasonably difficult problem that wasn’t around until recently. I say this as an employee of a company that was one of the first to actually do the multicore thing right. We used to have marketing material with all 16 cores of machine running at 100%, because no one else was able to do that. search for live hd flash, and I am sure you will find them

never be ashamed of public hardware lovin’. never.

I love the hardware posts too. Putting a PC together is just fun.

I am thinking of building a Windows Home Server box.

Would you have time to post how you would build one of these?

Cheers

No love for AMD?