I <3 Steve McConnell*
Coding Horror
programming and human factors
by Jeff Atwood

March 12, 2007

Building a Computer the Google Way

If you're ever in Silicon Valley, I highly recommend checking out the Computer History Museum. Where else can you see a live demonstration of the only known working PDP-1 in existence, and actually get to play the original Spacewar on it? I did. It was incredible. I got chills. And my wife was bored beyond belief, but I love her all the more for soldiering through.

Beyond the special exhibits, the Visible Storage area is where the real action is at in the museum. It takes up the majority of the floor space, and it contains every computer I've ever heard of. Among the artifacts in visible storage is one of Google's original servers from 1999:

Google Server at the Computer History Museum, rack from afar   Google Server at the Computer History Museum, closeup of rack

Google Server at the Computer History Museum, placard: With limited funds, Google founders Larry Page and Sergey Brin initially deployed this system of inexpensive, interconnected PCs to process many thousands of search requests per second from Google users. This hardware system reflected the Google search algorithm itself, which is based on tolerating multiple computer failures and optimizing around them. This production server was one of about thirty such racks in the first Google data center. Even though many of the installed PCs never worked and were difficult to repair, these racks provided Google with its first large-scale computing system and allowed the company to grow quickly and at minimal cost.

If Google's first production server resembles a hastily cobbled together amalgam of off-the-shelf computer parts circa 1999, well, that's because it is. Just like Google's original servers at Stanford. If you think this rack is scary, you should see what it replaced.

Instead of buying whatever pre-built rack-mount servers Dell, Compaq, and IBM were selling at the time, Google opted to hand-build their server infrastructure themselves. The sagging motherboards and hard drives are literally propped in place on handmade plywood platforms. The power switches are crudely mounted in front, the network cables draped along each side. The poorly routed power connectors snake their way back to generic PC power supplies in the rear.

Some people might look at these early Google servers and see an amateurish fire hazard. Not me. I see a prescient understanding of how inexpensive commodity hardware would shape today's internet. I felt right at home when I saw this server; it's exactly what I would have done in the same circumstances. This rack is a perfect example of the commodity x86 market D.I.Y. ethic at work: if you want it done right, and done inexpensively, you build it yourself.

Even today, Google is serious about exerting total control over the servers in their now-massive server farms. They build their own high-efficiency power supplies, and conduct fascinating, public research on disk failure (pdf). Current estimates put Google's server farm at around 450,000 machines-- and they're still custom built, commodity-class x86 PCs, just like they were in 1999.

Like Google, I demand total control over every part of my PC. I've always built my own. Building your own PC isn't for everyone, but if you're willing to add a little elbow grease, the D.I.Y. approach can result in a higher quality, better performing PC-- often at a substantial cost savings.

Here's a chart I put together based on my research for the Scott Hanselman Ultimate Developer Rig Throwdown:

D.I.Y.
"Big Bang" 
D.I.Y.
"Little Bang"
Mac  Pro Dell XPS 710 Dell Dimension 410
CPU Intel Core 2 Quad
2.4 GHz 
Intel Core 2 Duo
2.4 GHz
2 x Intel Core 2 Duo
2.66 GHz
Intel Core 2 Duo
2.4 GHz
Intel Core 2 Duo
2.4 GHz
Memory 4 GB, DDR 800 2 GB, DDR 800 1 GB, DDR ECC 667 2 GB, DDR 667 2 GB, DDR 667
Mobo P965 premium P965 budget Intel 5000x unknown unknown
Drives 2 x 150 GB 10k RPM (RAID 0)
2 x 750 GB (RAID 1)
500 GB 250 GB 500 GB 500 GB
Video 2 x 512 MB X1950 Pro 256 MB X1950 Pro 256 MB 7300 GT 256 MB 7900 GS 256 MB 7900 GS
Case Antec P180
case-antec-p180b-small.jpg
Antec P180 Apple
case-mac-pro-small.jpg
XPS
case-xps-700-small.jpg
Dimension
case-dell-dimension-410-small.jpg
Other Premium PSU
Premium heatsink
Premium PSU
Premium heatsink
OS X
Bundled software
Windows Vista Windows Vista
Price $3,500 $1,400 $2,499 $2,039 $1,400

If you're willing to factor out the cost of the operating system, the D.I.Y. "Little Bang" system offers more bang for the buck than any of its peers. And the "Big Bang" is off the charts, if you have the budget.

The lower-end Dell system looks quite similar, but closer inspection reveals otherwise:

  • Dell's use of non-standard case connectors and power supply connectors prevents future upgrades using standard commodity parts.
  • The OEM parts used in Dell machines are generally of inferior quality to their retail equivalents. OEM parts are impressive on the surface, but cut corners to lower costs. For example, the use of slower DDR 667 memory; cut-down, featureless OEM motherboards; video cards with lower clocks and slower memory.
  • Absolutely no overclocking potential.
  • Limited internal case expansion for additional hard drives and video cards.

The Mac Pro is a beautifully designed machine, but it has some quirks, too:

  • Quad-core in a single socket, ala the "Big Bang" system, makes more sense than this Dual-Dual arrangement. Obviously Apple will produce a Dual-Quad for a total of 8 CPUs any day now. But there is a serious point of diminishing returns with additional CPUs unless you're doing something highly specific and highly parallelizable like raytracing or rendering.
  • Requires expensive DDR2 buffered ECC RAM, because it's a server motherboard.
  • Zero overclocking options.
  • 667 MHz memory? Not that it matters very much to bottom-line performance, but support for different FSB speeds would be nice.
  • The default video card and hard drive are totally pedestrian, and will limit overall performance unless replaced.

If you don't have the time or inclination to build your own desktop PC, the Dells and the Mac Pro are perfectly valid choices. The prices are reasonable; the configurations flexible. There's absolutely nothing wrong with buying pre-built, as long as you spec carefully. But by the time I'm done setting up my D.I.Y. "Little Bang" system, it'll be faster, quieter, and more power efficient than any of the pre-built systems-- for the same money, or less. This is possible because the D.I.Y. system is uniquely mine; I choose exactly what goes in it, and exactly how it's configured.

Pre-built might work for typical users. But pre-built didn't work for Google. And pre-built doesn't work for me.

We aren't typical users. We're programmers. The x86 commodity PC is the essential, ultimate tool of our craft. It's the end product of 30 years of computer evolution. And it's still evolving today, with profound impact on the way we code. If you treat your PC like an appliance you plug into a wall, you've robbed yourself of a crucial lesson on the symbiotic relationship between software and hardware. The best way to truly understand the commodity PC is to gleefully dig in and build one yourself. Get your hands dirty and experience the economics of computer hardware first hand-- the same economics that have shaped the software industry since the very first line of code was stored in memory.

Who knows, you might even enjoy it.

Posted by Jeff Atwood    View blog reactions

 

« Software Internationalization, SIMS Style My Work PC, or, Taking Your Own Advice »

 

Comments

Preach on.

Scott Hanselman on March 13, 2007 03:24 AM

I see your point and would agree completely, were i not completely in love with the Mac Pro ;-)

kris on March 13, 2007 04:01 AM

I've built all my past machines and built many for friends and ran a small business on the side to build machines for small businesses in my area.

I was always very thorough with researching each part for best features and a good value-for-money point. Unfortunately I was always disappointed when otherwise perfect individual parts wouldn't operate together. Could be plain low-level hardware conflicts or just dodgy drivers. It didn't happen too often but when it did it was really painful, especially when you built the machine for someone else.

This week I will be buying a HP Business Desktop. The Business range are always a little behind because (apparently) they use hardware combinations that have been proven by the Home range first.

Fingers crossed.

Jason on March 13, 2007 04:03 AM

I used to be a believer in off-the-shelf machines. I thought the large Hardware producers would know best how to combine the right components. Apparently this is not so. So how do you know how the custom components you use are going to work together optimally? You would need a test-review of a system which consists of all (or most) of these parts. Or is it really enough to just buy each component on its own w/o having proof of how the overall system performance is going to be?

Manu on March 13, 2007 04:07 AM

You know well what programmers like to read.

Saurabh on March 13, 2007 04:11 AM

Couldn't agree more. I've bought one pre-built PC 12 years ago and went with DIY machines since then.

I appreciate your recent hardware-related posts as I'm currently in the planning stages for a new Vista machine. Based on your research, what do you think about the spacious Lian Li PC V2100A Plus II case, disregarding its price?

Alexander Groß on March 13, 2007 04:12 AM

I have to say that there is one particular advantage with a company like Dell (and presumably others) - they can fabricate stuff that you are unlikely to be able to make yourself. For example, I have a very nice Precision 650; Dual 3GHz Xeon processor, 4GB memory, 15k SCSI RAID.

Two of the really cool things inside the box that make it stand out are a processor shroud that means the case fans pull air past the CPUs - and these fans appear to be temperature controlled because they do not run all the time...

Secondly, the case is a dream in some senses. The power connectors are all clipped in place, and there is a molex connector for every bay... and not only that, each connector is stamped with it's position 'HDD 1' 'BAY 3' etc.

Plus, I got an amazing deal on it at the time (Dell Outlet).

But all your points about knowing your hardware are really valid, and Dell is certainly not forward about what specification (if any) it's mobo's / psu etc follow.

Nij on March 13, 2007 04:26 AM

This works great for big, kitchen sink dev PCs, but no so well for other situations.

I still think the mac mini is the best option for a small form factor PC that you want to mount / place somewhere. Even shuttle cases are just too big.

It's also hard to really have control over everything in a laptop. Best you can do is really research well and try to buy a quality machine that will give you a good amount of memory and reasonably fast disk drive.

But for desktops, yeah, even with my perchant for Macs I'd still build a linux box over a Mac Pro (which I find overpriced).

Larry on March 13, 2007 04:36 AM

That museum is now on my "see before you die" list. There's something wired into us to love this stuff. And something wired into wives to just not get it at all....

I built my first PC in 1987, complete with 8086 processor, 10MB hard drive and 32K RAM. It was a monster. Played Empire on it til all hours.

These days, I'd rather build code than machines. So I have that Dell XPS, with dual nVidia and 3 20" monitors, and do my construction in cyberspace. I know it's just a Mercedes, not an AMG; but I can live with it.

John Pirie on March 13, 2007 05:06 AM

Hope this doesn't sound to frivolous, but I really liked the look of the Antec P180 case and was sorely tempted to buy one until I saw someone else's. The beautiful looking brushed metal seemed to me to be made from aluminium as thick as a milk bottle top and plastic on the front cover wasn't in the slightest bit rigid, so the damn thing didn't even shut properly! While the structure inside seemed fine, the outside made it seem really cheap.

Have you already got the case Jeff? If so I'm curious as to what your opinion is, if not then I'm inclined to say "avoid".

Mike on March 13, 2007 05:22 AM

Why the love for the Antec P180? All the reviews I've seen for that case say that it's got some nice touches, but it's a PITA to work with due to weird PSU placement and cable channeling...

Jason Lefkowitz on March 13, 2007 05:28 AM

I learn more every time I read your blog... XD

Sosuke on March 13, 2007 05:35 AM

That would be a $15,000 Mac on eBay, since you'd have built a one of a kind.

Yeah, the Mac in that lineup is using 2 x Dual Core XEON PROCESSORS. You can't buy a Mac Pro with a Core 2 Duo. It does support SLI and is Vista certified--but it's got a lot (LOT) more CPU power than any of the others listed.

Build a DYI 2 x Xeon machine with 8 available DDR ECC 667 memory slots and a liquid cooling system (very quiet).

Paul Thompson on March 13, 2007 06:08 AM

I once saw racks and racks of box-less servers in a large facility on the east coast about 2 years ago. At-a-glance it was obvious it was google, but no one would say. But they were commenting on how hard facilities was always trying to keep the heat down on that side of the building. With densities that high, no wonder.

Eric on March 13, 2007 06:08 AM

I own a P180 or two, and I love it. Yes, the wierd cable channeling is a pain, but only for about 5 minutes until you get the PSU and HDD cables ran. And yes, the door is pretty worthless. But I love everything else about the case. Especially the six plus internal bays, and the most rational drive mounting setup I have ever seen.

Wyatt Barnett on March 13, 2007 06:27 AM

It's the whole Jedi build their own light saber bit. Still sometimes buying a custom built system from HP or Dell can be the best, I tend to have less hardware conflicts with those boxes as opposed to the ones I built. And there is no choice to build your own laptop :(

Aaron on March 13, 2007 06:34 AM

Just some clarifications:
As noted before in the comments, the Mac Pro uses Xeon processors, not Core 2 Duos.
"Quad-core in a single socket" - the Mac Pro has 2 dual-core cpus, not 1 quad-core cpu

and an opinion: "there is a serious point of diminishing returns with additional CPUs unless you're doing something highly specific and highly parallelizable " - The Mac Pros are targeted towards the (who'da thunk it?) Pro users, i.e. people who are willing to plunk down $2.5k for a computer to specifically do things like compiling code, using photoshop, shake, final cut, the sciences, and other highly parallelizable tasks.

John D on March 13, 2007 06:38 AM

"If you're willing to factor out the cost of the operating system"

That's the killer for me. I built all my machines from 286 to Pentium 3, because I could get more bang for the buck. But now it's hard to justify spending about the same for a PC without Windows and Office.

Daniel on March 13, 2007 06:39 AM

Not sure how you got to $2039 on the XPS 710. I spec'd the same hardware and was at $2,479. The $500 GB HD puts it over the top. Starting with a 160 GB 10K drive puts it at $2179. I suspect you could buy an after market 500 GB drive cheaper than Dell is selling it.

Coleman on March 13, 2007 06:43 AM

Is that comparison at the end for a normal home workstation (or game station, as the case may be)? Because I feel the necessity to point out that unless they're being run as servers, those RAID configurations on the "big bang" are a total waste, as you yourself pointed out quite recently. True, you could just use both 750 GB drives for 1.5 TB of space, but then there's no point in having the second 150 GB drive in the RAID 0 config.

I'm rather skeptical of SLI/Crossfire as well, the chart doesn't specify what a "premium" PSU is, and that Antec case looks way too much like they're trying to imitate Apple (poorly).

Not that I'm trying to poke holes in the idea of building one's own PC - I've done the same thing for years (and made a few silly decisions of my own) and would never, for a fraction of a second, consider doing anything else. I just think that the "Big Bang" is wasteful, that you could build a PC with 90% of the performance or more for at least $1000 less.

I also noticed that the Dell Dimension costs $600 less than the XPS 710 despite having identical specs. What gives?

Aaron G on March 13, 2007 06:43 AM

On the motherboard front, if you're looking to overclock (and with the Intel Core 2 chips, you're talking 15% more CPU cycles for free, even with stock cooling), might I recommend the Asus P5B Deluxe? I've got one in my rig and I'm happy with it - overclocking it is a matter of telling the motherboard that you want to overclock it and how fast you'd like it to go. You can get deeper than that, setting voltages and memory latencies and all that cruft, if you want but how long do you want to spend failing to boot past BIOS? Also nice is the fact that it will safely get you back into BIOS if you push it too far.
If you do go with one of those motherboards, then you'll have to invest in one more piece of esoterica - low-voltage memory sticks. Out on the Internets, there's been a lot of people failing to boot because the P5B ships with an old BIOS that doesn't like to support memory sticks that draw too much juice; I had no problems with the 1.8V sticks I got but I've seen people screaming about their 2.1V and 2.2V sticks, which were the source of the problem. This sort of voodoo goes part of the way to explaining why people don't build their own.
Another addition on the low-end DIY that you've got no reason to live without: a 150 GB Raptor drive for OS and applications. The 500 GB is great for media and documents, but it only makes sense to speed up the slowest piece of the puzzle.

dave solomon on March 13, 2007 06:44 AM

"Like Google, I demand total control over every part of my PC"

Clearly you aren't running Vista on it then ;)

Chris on March 13, 2007 07:03 AM

"As noted before in the comments, the Mac Pro uses Xeon processors, not Core 2 Duos." - They're _the same thing_. So they have a different pinout and a different memory controller, work better with multisocket, there's no difference in raw processing capability at the same speed.

""Quad-core in a single socket" - the Mac Pro has 2 dual-core cpus, not 1 quad-core cpu" - Yes, if you reread that was exactly the point Jeff was making, and that 1 socket makes more sense than 2.

Aaron, Antec has a whole line of cases, although that is their flagship. so you can get anything from vague apple resemblances to xXxtr3me g4M3r case, to something sedate and no-nonsense. They give you the most flexibility for efficient cable routing and noise-reduction of the major case brands, along with quiet, high-efficiency power supplies. What can I say, I like their stuff.

Foxyshadis on March 13, 2007 07:10 AM

I still wish I could DIY a laptop.

You know what's funny? I hear DIY in the music scene all the time. It's been a community that's been growing since the early days of the punk movement. I guess the Ramones never really realized just how far their DIY ethic was going to reach.

Jae on March 13, 2007 07:15 AM

I love this blog every day, for many many reasons.

1. It is nice to know we're not alone.
2. I learn something every day, and it's not always about new technology as much as combining experience, with common sense, to pass best practices.

I think Jeff you got something real special here.....

Until they bring back the AppleII+, make mine CodingHorror

:)

Craig M. Rosenblum on March 13, 2007 07:30 AM

No doubt you've coded your own compiler in machine language, and used a cross-assembler from an 8008 to build it, with your own linker? And you run on bare hardware, no commerical OS, right?

What's that? You build .NET applications, using Visual Studio, and run them on Vista? Wow. That's about as far from the hardware as you can get, your code doesn't even compile natively, it runs on a CLR which exposes a virtual machine.

There's a fundamental disconnect in there somewhere! Oh, the horror!

Ole Eichhorn on March 13, 2007 07:35 AM

I'm thinking of something orange.... something orange... give up? IT'S AN ORANGE!

Nice soapbox about building your own system, but a R33t'r person wouldn't be preaching about getting the latest and fastest hardware. Instead of 1 little bang, why not build 5 fun-snaps? Do you REALLY need a quadcore?

Jacat on March 13, 2007 08:03 AM

Can anyone school me here - Is it possible these days, theoretical or otherwise, to build your own mac?? I can't help thinking how one could cut down that $2400.

Will h on March 13, 2007 08:04 AM

The only problem with building your own development machine comes into play when you're developing for something other than just a computer. I write software to run large-scale printers, and the configuration of the machine makes a pretty significant difference in the performance of the final product.

As much as I wish I COULD build my own dev box, the differences in specs, which affect the print, are just too much of a pain to troubleshoot if something goes wrong. If something happens, is the problem because I coded something wrong, or because the box I built the software on uses a different chipset than the box running the software? Those problems can take ages to knuckle out, and that's time I could be using to better end.

The other thing that comes into play is reliability. Now, with one notable exception, every box I've ever built has been solid as a rock. Unfortunately, even in a company as small as the one I work for (11 people), being able to get parts and service is a big deal. Most companies just can't justify the potential cost of buying parts and spending time servicing computers when they could be doing something more profitable.

Bottom line, I agree that building your own machine is a great way to control performance, but I'm not so sure it's a good idea in a corporate environment.

Lee Crabtree on March 13, 2007 08:09 AM

Will h:There's a short answer and a long answer to your question. The short answer is "no". The long answer is "really, gosh, thinking hard, no."

Apple does their darndest to make sure you buy THEIR hardware. I've said it before, and I'll say it again... Apple is first and foremost a hardware manufacturer.

Jae on March 13, 2007 08:21 AM

Thanks Jeff!

Now I have to turn around and buy one more HD for my Big Bang machine, I just finished moving the RAID drives around to support the 10K HD boot disk.. please tell me this is your final configuration.

newegg loves me.


Stephen

Stephen Patten on March 13, 2007 08:25 AM

I see your point and would agree almost completely, were I not completely in love with OS X.

Still, I would also point out that today Ole has a good point - you say "We aren't typical users. We're programmers. The x86 commodity PC is the essential, ultimate tool of our craft." However, today there isn't just one kind of programmer - the kind who codes close to the hardware. Instead, there's a wide range of coders - from those who code way down low in C or C++, and those who code higher up in C#, Java, Python, Ruby, etc. And of course there are many languages and platforms at all different points in between. The higher you go, the more abstracted from the hardware - and the more you want to focus on just the software, and you want the hardware to "just work". I'm definitely in the "higher" half of that spectrum. That's why I prefer Macs and Mac OS X.

Avi Flax on March 13, 2007 08:27 AM

A bunch of other people have hit on this, but I'll say it too: for desktop use, I'm too married to portable computing these days, and that's just not a reasonable area to do it yourself. My servers, on the other hand, are hand-me-downs that I've squeezed more life out of that should have been possible. I haven't hand-built a new system in quite a while, and I've been all the happier for it.

Everyone should do the "roll your own" thing at least once, if this is a field you're interested in, but it's purely a learning experience. Pitching it as a cost saver misses the point a bit, and the time you'll burn sourcing parts and keeping yourself up-to-date on the latest micro-specifications on video cards, motherboards/buses, and similar issues during the build will more than outweigh the savings, and you'll be left with "spec envy" two months after you're done building it when the next "big bang" component comes out.

(Similarly, everyone should write a simple language interpreter or shell, develop a simple web server, write in assembly for an embedded platform, think through the corner cases of version control systems, and complete several other basic building-blocks projects as learning experiences. But then, for the love of ${DEITY}, please throw them away; the world doesn't need yet another web server. ;-)

Edward S. Marshall on March 13, 2007 08:28 AM

I agree that building a computer out of parts is something every "geek" should do at least once. It's valuable to put your hands in the box and put things exactly where you want.

But at a certain point, I just want to get stuff done and at that point buying off the shelf makes sense for me. This becomes even more pertinent here at work, where even though we all run Macs, I keep all the machines "standard." No one runs a funky config, except me, basically. :-]

jon deal on March 13, 2007 08:36 AM

I like the concept of building my own machines, and will continue to do it for my own personal needs. But I can't see how it's such a great idea if you're say, selling to businesses. I can't see it being very cost effective. If I take the time to factor in building 4 PCs, going through testing and deploying them, it's already cost me a ton more than if I had gone to a vendor. Not to mention if something fails, I'll have to replace it out of my pocket, and who knows if I'll be able to find the same part. So when I do replace a bad part with a different one, I've either spent more time researching a new part, or hastily put in one that "looks good" and may not last as long. Or, I can go to a vendor spec out the needed machine(s), and if something breaks then I have a warranty and the ability to provide the user with a machine the same or next day.

But, for my own personal, in house needs, I will always build my own machine. I would even stretch that to my servers, it's a hell of a lot easier to work on machines you see everyday, if the need should arise.

Luke on March 13, 2007 08:39 AM

The first x86 I owned (around 1999) was a self-built combination of new, leftover and salvaged components, all chosen to get the best bang for the buck from what I had available. It meant I could build a pretty competent system for short change, and knew exactly what was in it, what the weak points were, and hence what needed upgrading first when I could afford to.

That PC evolved over about 5 years, keeping up with the latest games and moving from Windows 98 to ME (ugh!), 2000 and finally Linux without *ever* having to buy a whole new system in one go. By the time I replaced that system with one of those "desktop replacement" laptops a couple of years ago, only the case, keyboard and floppy drive remained from the original build!

There *is* one potential problem with that approach now: I can only imagine the trouble XP or Vista product activation could have caused me with all those incremental upgrades to the hardware.

Paul Glover on March 13, 2007 09:15 AM

"unless you're doing something highly specific and highly parallelizable like raytracing or rendering."

Which most Mac Pro folks will be doing. Except for the people who bought it just because it was the biggest, bestest, fastest, expensivest Mac there.

I used to hand craft my computers out of fine Corinthian leather. But back in '99 I got tired of always hunting down drivers for every piece of hardware in my machine. I decided to go pre-built because I just wanted everything to work when I hit the power switch.

Now I'm looking at a pile of motherboards, video cards, RAM and wanting to get my hands "dirty" again. I've got an AMD K6-266 running Debian acting as a file/application server. But I want to run VMs on my server instead of a single OS. Gotta rebuild. I've got an old Toshiba laptop that needs it's RAM pin re-soldered too. Otherwise it's stuck at 64MB. Although it may be time to turn that one into a picture frame.

You're the VM king Jeff, which processor have you found to work best for virtualization scenarios?

Scott on March 13, 2007 09:19 AM

For you So. Cal (and nearby folks) I used to frequently build a system for less than $1000 using the Sunday Fry's Electronics ad. It wasn't earth shattering, but all of them made sure to put a bit more RAM and Video Card into what you could get from the major suppliers. I had a few friends take me up on the offer too to build one for them.

My last DIY was quite a while ago and unfortunately was so bleeding edge that it bit me in the butt. I had a dual core flip chip Pentium III 600 that required ECC RAM since it was a server grade motherboard. Windows 2000 had just come out, but they didn't have any drivers for the Creative DxR3 DVD decoder card, nor the Sound Blaster 5.1 Platinum drivers to really make things work. In the end I replaced the mobo during the build since it was faulty and ran into too many BSOD's that it never really flew.

Thanks for the nostalgia Jeff. 8^D One day I'll return to DIY, but its hard to do that with laptops, to which I've enjoyed immensely for a couple years now on my refurb Dell Inspiron 9200.

Say, care to do an article on DIY for laptops?

Sean Patterson on March 13, 2007 09:30 AM

I'm in the process of buying a PC at the moment. My problem with building my own is that there are so many variables I don't understand and don't have the time to research. My current plan is to buy a cheap PC and upgrade several componants I know I want.

[ICR] on March 13, 2007 09:32 AM

Or you could be like Scott and get the best of both worlds. Call up Jeff and have him build one for you. ;)

Haacked on March 13, 2007 10:16 AM

I don't know man. All this "we're programmers, we must build our own" sounds like the worst sort of geek masturbation ever (and heck, the term "geek masturbation" doesn't sound great in the first place). More power to you and your free time all the same...

Justice~! on March 13, 2007 10:55 AM

Nice but the romantic way that a group of guys can build a empire from scratch is not really possible and google is not the exception. Google started their business with Sequoia Capital.

Who's SC?.
A groups that have a lot of money, they own a lot of internet business, for example when Google buyed Youtube the facts in SC buy their own company (Youtube also started with SC's money) in a speculative movement to raise their shares.

Magallanes on March 13, 2007 11:21 AM

I tend to purchase a new machine every 12-18 months. It's for the very fact that PCs are a commodity that I rarely ever build one anymore. No matter how you spec out your machine it will be old news in a few months. It's much simpler to head to Best Buy and pick up an $800 mid-range box from the shelf, pay, and wheel it out to my car, head home, plug it in. Total time spent, two hours and I've roughly doubled the performance of what I brought home 18 months ago.

Kuerwen on March 13, 2007 11:31 AM

The P180 is a very nicely designed case, particularly for its unique low-noise design. Read a more detailed review of it here:

http://www.silentpcreview.com/article255-page1.html

Also, be sure to check out the revisions in the latest version

http://www.silentpcreview.com/article255-page13.html

There's a new case coming soon, the sequel to the P180, the P182. Minor updates, with fan speed controller built in and improved cable management. It may already be available; some people are reporting they get the P182 when they buy the existing P180B (black), even though the outside of the box is not updated.

http://www.silentpcreview.com/forums/viewtopic.php?t=37210

Jeff Atwood on March 13, 2007 12:00 PM

Man, I'd like to see what the google servers are like today.

Please tell me thats not a Pentium II I see on the rack...

Of course back then, google wasn't handling Video's, offering gadgets, personalized homepages, 3 gigs of E-Mail, etc.

Rob on March 13, 2007 12:13 PM

> the Mac in that lineup is using 2 x Dual Core XEON PROCESSORS. You can't buy a Mac Pro with a Core 2 Duo

There is no *functional* difference between a Xeon and a Core 2 Duo. It's a branding issue for Intel, so they can charge more and limit those CPUs to particular server-class motherboards.

> now it's hard to justify spending about the same for a PC without Windows and Office

We are rapidly approaching a world where the software costs more than the hardware. Well, minus open source. Or maybe open source is better suited to a world where hardware is cheap and getting cheaper every day.

> those RAID configurations on the "big bang" are a total waste

I agree completely (although RAID-1 is useful). I'll never use RAID-0 in any of my systems. But if you're going for overkill, I say go for the nuclear option. That's why it is "big bang". I would also argue that quad-core in general is utterly wasted on most people who buy the machines. But 4 > 1, just like 64 > 32, so it must be better.. right?

> That's about as far from the hardware as you can get, your code doesn't even compile natively, it runs on a CLR which exposes a virtual machine.

And yet the regular, inexorable advance in performance for cheap commodity hardware is *exactly* how we got where we are today. It's turtles all the way down!

> Is it possible these days, theoretical or otherwise, to build your own mac??

No, and it's funny, because OS X enthusiasts love to crow about how OS X lacks all of Vista's copy protection measures.. when in reality it has the ULTIMATE anti-piracy measure: it won't run on anything except for Apple-blessed machines. The damn thing is a giant hardware copy protection dongle!

> If something happens, is the problem because I coded something wrong, or because the box I built the software on uses a different chipset than the box running the software?

Yeah, but in the world of PCs, you will end up doing this troubleshooting anyway. Trust me. There's too much beige box crap out there, and too many parts to fit together and interoperate. Better to learn how rather than avoiding it.

> But at a certain point, I just want to get stuff done and at that point buying off the shelf makes sense for me.

Again, there is nothing wrong with buying pre-built. It's a lifestyle choice more than anything else. But I still say it's worthwhile if you have the time, on several different levels.

Jeff Atwood on March 13, 2007 12:16 PM

Maybe more processing cores don't help everyone, but as a developer, it's the best thing since sliced bread. For compiling code with gcc, our 1.83 GHz Core Duo (v1) iMac absolutely spanks the next fastest machine in our lab, a single-processor 3.06GHz Pentium 4.

This being a developer's blog, I say, bring on the cores baby!!! :)

Ethan on March 13, 2007 12:41 PM

Yeah, if only I could build my own Mac, that would be awesome day number 1.

Owen on March 13, 2007 12:50 PM

> Why the love for the Antec P180? All the reviews I've seen for that case say that it's got some nice touches, but it's a PITA to work with due to weird PSU placement and cable channeling...

As an owner of a P180 who built two P180-based computers (mine and another one), here's why I still recommend it although it's fairly difficult to work with intially due to bizarre cable routing (and you need long PSU cables too, most PSUs are fine, but some aren't, depends of your motherboard connectors position):

* It's beautiful. Not in the "Leds'n spoilers'n stuff" sense, but in the "this looks like a huge slab of black/grey metal [2001: A Space Odyssey style]" sense, it looks simple and smart. I really like that look.

* Litteraly reeks of quality and solidity. Antec had some false start issues (plastic front doors bending) but they've now resolved them all.

* Helps your computer be silent, the case was built for silence and it shows/feels, unless you're a silence expert you won't do much better. And its heavyness (the skeleton is solid iron) means that the vibrations are mostly stopped dead in their tracks.

* Helps your computer run cool, the bizarre PSU position also means that the PSU doesn't get warmed by the CPU and GPU, nor does it warm them, works really well

* Apart from the PSU issues, it's extremely well thought of and easy to work with (if you forget about the huge number of screws), and it "feels" solid and fine (not like some flimsy cases with flesh-cutting corners)

In fact, the only "issue" I (could) have with my '180 is the fact that its weight would make it impractical to transport.

Of course, since I hooked it to a Reserator 1 Plus (passive watercooler) and own a laptop this is an non-issue.

I frigging love my '180.

Masklinn on March 13, 2007 01:15 PM

>Yeah, but in the world of PCs, you will end up doing this troubleshooting anyway. Trust me. There's too much beige box crap out there, and too many parts to fit together and interoperate. Better to learn how rather than avoiding it.

That's true, unless you supply the PCs being used with the hardware for which you are developing.

Lee Crabtree on March 13, 2007 01:32 PM

Anyone else amused by Scott cheering Jeff on in this endeavor?

"If you treat your PC like an appliance you plug into a wall, you've robbed yourself of a crucial lesson on the symbiotic relationship between software and hardware. The best way to truly understand the commodity PC is to gleefully dig in and build one yourself."

Scott, stop robbing yourself!

Dave P. on March 13, 2007 02:22 PM

No doubt, the jump from 1 core to 2 cores is a big, and important one. But beyond that, the benefits become increasingly dubious unless you have an app that's highly parallelized.

Compilation is one of those things. Let's take a look..

http://www.phoronix.com/scan.php?page=article&item=585&num=6
Linux Kernel 2.6.18.2 compilation
time make -j<# of Cores + 1>

Xeon 5150 (Dual Core 2.66 GHz)
759.69

2x Xeon 5150
428.36

Xeon E5320 (Quad Core 1.86 GHz)
559.99

2x Xeon E5320
354.05

Going from 2-4 cores reduces compile time 44%. Going from 4-8 cores reduces compile time 37%. Notice anything wrong there?

Unfortunately, we can't directly compare the 2/4 and 4/8 results since the clock rates are so different.

Jeff Atwood on March 13, 2007 03:16 PM

I just don't find this to be cost effective. If you are in a big shop, the lack of uniformity makes IT go bonkers chasing drivers and incompatibilities and worst of all down time for developers for each one off box in the fleet.

if you small (like a consultancy) its even worse. 4-5 hrs to research the components - ati/nvidia - netgear/linksys, intel/amd, WD vs Seagate etc.., 2-3 hrs checking availbility/ordering & purchasing (fries, cdw, freds computer) , 5 hrs to assemble parts + install XP + install updates/drivers. thats 12 hrs burned. figure out what your charge rate is (my guess is at least $120/hr). that's $1400 in cost + the parts. that little DIY box is now $2800, the big bang box is now $4900. WOW! with a budget of nearly $5K I can have a mac pro that takes no prisoners.

please note the xp install etc is not accounting for installing dev tools, office etc since that would need to be done no matter what box you bring home to slap on your desk.


Mike Johnson on March 13, 2007 03:32 PM

The P180 in my opinion is an OK case but as most Antec cases go its very flimsy. They tend to cut corners and not give enough support to the skeleton of the cases. I have a P180 and bought it for the room thinking it might be a good case. The plastic front is cheap, the case sides do not line up well with the frame, and the plastic filter covers are nothing but flimsy. Cable management is a pure nightmare with 7 hard drives and 2 DVD drives. I use it for my personal machine/server and it includes 2 74gb Raptors in RAID0 using the motherboard controller and 5 300gb Sata drives in RAID 5 using a LSI Sata 150-6 raid card. I plan to move everything over to a Lian Li PC201B. From past experience the Lian Li cases are of much higher quality, you can just feel it as you work with the cases. Plus the placement of the 12 internal drive bays makes much more sense than that of the P180. I do like the PSU being located in the lower part of the case, that works rather well and is another reason I will be using the Lian Li case. Trust me when I say once you have your hands on a Lian Li case, you will see what I mean.

And to those that do not have the time to build your own, but dont want to settle for a Dell/HP etc, go see your local mom and pop computer store. They can do the research for you and sell you a nice well balanced machine with a local warranty.

Angry American

Angry American on March 13, 2007 03:52 PM

P180 is a nice case BUT have a look at the Coolermaster Stacker 830.

http://www.neoseeker.com/Articles/Hardware/Reviews/stacker830/


I have this case and let me tell you, its the palacial mansion of cases. Roomy like no other. I have 8*120mm fans in there all connected to 2 front panel fan speed moderators.

This case is big, has great airflow and was so easy to setup (the motherboard tray literally comes out so you can set it up nicely and then shove it back in). Not only that, this case supports ATX and BTX too if thats your game.

This is the kinda case that makes you WANT to be a modder :-)

Sushant Bhatia on March 13, 2007 05:00 PM

Using fast computers is a good and a bad thing for a developer.

Good thing:
- complex projects can buil faster
- you can quickly see the result of very complex algorithms (I work on a raytracer, you know what I mean)
- you save time on testing bug reports from users.

Bad things:
- your algorithm implementation looks fast when it's not.
- you don't care as much as you should about your code speed and how much resource it uses.
- probably you could use less meory than what you are and you don't even realize it.


Building in house computer is good for yourself (I always do) or very small office. But when the time of a computer failure costs more than the perfomance you could gain building your own... Systems vendors like Dell or HP are offiring very goog and cost effective support programs, with hardware replacement in 12 or even 6 hours. Something you absolutely can't have in your own.
The company I'm working on have thousands of computers with a very fast turn around. It would be simply too expensive to build in house solutions with standard hardware. So we leave the vendor (HP in our case) deals with components integration and hardware assistance, and our sys admins manage software and network solutions.

My work is worth for some hundred bucks a day. To stop to assemble a new computer is a cost. You have to consider also that when you create your in house solution.

What do you think?

Max

MaxL on March 13, 2007 06:01 PM

Sushant, you might as well go with the Antec Nine Hundred at that point:

http://www.extremetech.com/article2/0,1697,2036830,00.asp

But both the Antec 900 and the CoolerMaster Stacker are very different approaches compared to the P180. The P180 is designed to *block* direct sound paths from your ear to the fans, not expose them directly to your ear!

I'm sure it's possible to make these cases quiet, but it's difficult when there is nothing but wire mesh and a fan between you and the noise sources.

> thats 12 hrs burned

It's a question of persective. I can buy software, too, instead of writing it, so why do I bother doing that? Think this through.

Jeff Atwood on March 13, 2007 06:03 PM

Jeff,

Can you elaborate on the details for the XPS 710 configuration you came up with for that cost?

For the life of me, I can't get a configuration down to that amount...

Coleman

Coleman on March 13, 2007 06:06 PM

My 2 cents (or points)

1) There are more then a few shops out there that build machines to your specs. So, kind of "Dell"ish in that they do all the work. But you get to decide on everything that goes into your box. Saves you time and potential headaches but you pay a premium compared to building yourself.

2) I do a majority of my development in the database (gasp, Oracle PL/SQL). Just being able to the any of a number of DBs running on one core while I do my damage with the other is really key to productivity.

I han't built my own, but I keep pricing it out every couple weeks. I can't pull the trigger because everytime I look, the prices have fallen and the hardware faster. That and I didn't win the lottery, again!

Glenn on March 13, 2007 06:39 PM

Every time I've put together my own system it takes a couple of hours to get everything assembled. Then an hour or so to install the OS. Then there are operating system and driver issues. Once in a while, I get a motherboard where some built-in component (e.g., sound, ethernet, firewire, sata) doesn't work right. I figure on average I'll probably spend 6 hours putting together a system. Then, I'll run a memory test overnight to make sure the memory isn't bad. When the test fails, sometimes reseating the modules fixes it, but that requires running another test. Sometimes the memory is fine, but the motherboard is bad (poor tolerances on passive components on the memory bus). These kind of memory errors are the kind of thing that don't affect 99% of users because they don't run memory intensive processes like compilers.

The reason to build software is when nothing exists off the shelf that will do what you want it to do for a reasonable cost. I wouldn't recommend the consumer-class Dell Dimension series. However, there are lots of reasonably priced workstation class machines (such as the Dell Precision 690, or the high-end HP or IBM workstations) that will work adequately for pretty much any tasks that you will throw at them. The Mac Pro's are also workstation-class hardware (at least the CPU/Memory/Motherboard/Power Supply/Chassis). Workstation-class machines will also have things like extra CPU sockets, 8 or more memory slots, and 750 to 1000 watt power supplies.

This is very different from software, where you are almost always building something that either doesn't exist or is impossible or not cost-effective to buy. Next time I need a spreadsheet, I'll either buy Microsoft Excel, use Google Spreadsheets, or use some open source spreadsheet. But I definitely won't write my own. Similarly, when I need a new workstation, I'll buy either a Dell Precision 690 (or similar HP or IBM) or a Mac Pro. I'll look for the best deal on a high-end machine and maybe I'll upgrade it with a second hard drive or more memory, but I won't build my own.

Note: For gaming machines, it's a little different. High-end gaming machines from Dell, Alienware, VoodooPC, et cetera are very overpriced. It is quite easy to build a machine with a much better bang-to-buck ratio.

Brendan Dowling on March 13, 2007 06:47 PM

Frequetly for hard core gamers is more fun to build the PC and to tune it to achieve 5fps more than before, rather than actually play the game.

I think if you write software to live probably you don't care much where you computer comes from. The only important things are if it does the job and how much you spent for it.
But if you write software for passion, probably you are passioned also about what is under the hood, like motorbike lovers. They don't just ride the bike, they deal with it, repair it, change pieces, to make it feel part of them.

Max

MaxL on March 13, 2007 06:59 PM

I'm over building machines. I kind of enjoy watching my cow-orkers do their home machines the hard way, but after a while even that palls. It's so much cheaper to spec out what I want and pay a PC shop $50 to put it together, make it all go, burn it in and install software. Then warranty it for a year. You only have to go back once to the shop to swap something (or get one component wrong and have to buy a different one) and that $50 is a saving. My last machine took a whopping three days to deliver ... because they couldn't get the RAID card working properly with the first two motherboards they tried - WinXP wouldn't restart reliably. Go on, tell me you enjoy debugging that sort of nonsense.

Moz on March 13, 2007 08:49 PM

Actually, I'm rather enjoying the experience of building the compiler that I'll be using every day. Way more fun than just using a compiler :)

John Lam on March 13, 2007 08:51 PM

@Angry American: "I have a P180 and bought it for the room thinking it might be a good case. The plastic front is cheap, the case sides do not line up well with the frame, and the plastic filter covers are nothing but flimsy. Cable management is a pure nightmare with 7 hard drives and 2 DVD drives."

I have two P180 cases, one silver and one black, and I see none of what you describe. However, I would not call the P180 super-roomy, although with care you can route the majority of cables to be hidden or out of the way. If I had 7 hard drives I would probably consider something else.

I was attracted to the P180 series because of their simple, clean elegance of lines and the fact that they are quiet. Antec did have some quality issues and poor design issues with their initial version of the case. Either that seems to be resolved, or I have two quality examples of the breed, works for me!

Dan Fleet on March 13, 2007 09:03 PM

> thats 12 hrs burned

>>It's a question of persective. I can buy software, too, instead of >>writing it, so why do I bother doing that? Think this through.

I dont doubt the fun of building the machine for the pure joy of making something with your bare hands. I get that. but this isnt connected to getting more "bang" for the buck as you suggested. Its like this: My wife and I enjoy baking cookies together but we don't do this because we can save a couple of bucks vs buying a box of chocolate chip cookies. In the case of Bake Vs. Buy we are surely loosing money by doing it ourselves but we getting something intangible from the experience that the act of shopping doesnt provide and we dont care that we "lost" $200 in the hour baking cookies doing so...

But with your big visible chart and the statement:

>>If you're willing to factor out the cost of the operating system, >>the D.I.Y. "Little Bang" system offers more bang for the buck than >>any of its peers.

You are suggesting that assembliing your own box is more cost effective in Make Vs. Buy comparison. I am sorry, but this just isn't true financially.

Mike Johnson on March 13, 2007 10:03 PM

I actually just built a computer last week, and it was far less than $1,500, including a monitor. It was about $850. I'm completely satisfied, it has slightly lower specs than that one(lower grade core 2 and only a 7600GT("only")), but it does pretty much everything I ask it to.

Anyway, I'm just saying, building your own awesome computer is yet easier.

Dilpil on March 13, 2007 10:04 PM

Enjoyable post & feedback, as usual!

I have to disagree on the "bang for the buck" equation though. As a number of people have pointed out, don't forget to add labor in the "buck" part of the equation. Your DIY box won't look so competitive anymore. I suspect that, if you compare the true total cost, you can never beat any PC maker (unless you value your labor as zero dollar!). That's just how mass production works.

The biggest benefit of DIY is the maximum degree of fine tuning. You get a PC exactly the way you want it. Another benefit is intangible, but by no means small: you gain hands-on knowledge about hardware, plus personal satisfaction.

Google operates at the opposite extreme to individual DIY enthusiasts. Making their own boxes make perfect financial sense for them. But I don't think you can apply their reasoning to our end of the spectrum.

For non-DIY folks, I think it's much better to buy the best machine that you want, and put the expense in your client's bill! :-)
Your clients would want you to spend time on software development anyway, not hardware.

Cheers,

Lahur on March 14, 2007 12:08 AM

Instead of all RAID in the computer I have switched to an external RAID device.
I went with a synology 406 and it is nice, got 4 drives in it and now have around 1.25 Terrabyte at RAID 5.
It is hooked up to my router so my laptop and desktop have quick access, it is always on(it has a low power mode) and is quite enough that I have in the living room with no problems.
Configuration wise I have multiple shared drive, some that I backup to another partition. I also use it to store the backup of my computers.

You could go DIY but unless you already have the case and the RAID card it is not that much different. However the non-DYI has the benifit in that more limited so you don't have to worry about every security patch, it is smaller, and better yet it just works.

will dieterich on March 14, 2007 12:08 AM

I once saw racks and racks of box-less servers in a large facility on the east coast about 2 years ago. At-a-glance it was obvious it was google, but no one would say. But they were commenting on how hard facilities was always trying to keep the heat down on that side of the building. With densities that high, no wonder.

Anastasia on March 14, 2007 01:03 AM

Jeff,

Have a look at this link. Xenos used the P180 and the Stacker and he had this to say.

"The Antec P180 I replaced... now that was a dust magnet. The thing was deisgned around negative pressure, and every crevice had tons of dust build up very quickly despite my efforts to create positive pressure instead. The Stacker 830 seems to repel dust I am happy to report, and what dust that is attracted is being caught by the filters."

http://forum.ncix.com/forums/index.php?mode=showthread&msg_id=1031204&threadid=1031204&forum=100&product_id=17151&msgcount=3&overclockid=0


The P180 is a marvellous case and it definately is quiet. My boss at work has one and he too says the only problem he has with it is the amount of dust it collects.

I'd be curious to see your reviews of the case when you build it.

Sushant Bhatia on March 14, 2007 01:15 AM

Aw crap, I just bought an "off the shelf" after years of building my own :-( To be fair, it was a laptop and I have no experience of putting those together... One thing that's bitten me during my DIY time was new components coming out which mean a replacement of another part. For instance, I was interested in a beefier video card, but my board was only AGP 2x, and the card I was looking at was 8x. This would mean a new mobo, which meant new memory, which might mean a new HDD (lack of IDE channels forces SATA), etc.

I guess I shouldn't have waited so long to upgrade :-)

Mike Kingscott on March 14, 2007 01:43 AM

Building your own is the way to go!

Mike on March 14, 2007 05:54 AM

Jeff,

I'm totally with you on all your arguments, and the Antec P180 is awesome. I just got one last month, and my box is cool and silent.

++Alan

Alan Stevens on March 14, 2007 07:05 AM

I've been sorta half curious: since the industry has been trending towards less energy use as of late, I wonder how difficult it would be to take older form-factor boards and start dumping multi-core CPUs and solid state external memory into them to give them longer shelf-life... You know, maybe take an old Socket A mobo, dump in dual 1.8 Ghz processors and throw on a gig or two of Flash-based RAM. Sure, a bit of a performance hit, but for like $300 you could upgrade an old rig and keep it flying for another couple of years.

But that's probably crazy talk.

Jae on March 14, 2007 07:09 AM

Dell computers work real good, providing you use them for a paperweight. Expect non-standard software, nonstandard video cards, and worst of all, you have to find drivers for all that crap. Some people might install a new hard drive, or vista into a Dell, but I never would.

karl on March 14, 2007 08:40 AM

I built my current computer out of the cheapest stuff I could find on newegg.com (including going for a much slower processor than I could have got), and it's been great, cost about $600 before I replaced my old CRT with an LCD. The only thing I'll do differently next time is really go for the quietest machine I can (see http://www.silentpcreview.com for lots of info; Jeff's posted on quiet PCs before too).

Reed Hedges on March 14, 2007 08:47 AM

wow!!! too many wires though!:)

carl on March 14, 2007 09:16 AM

About 667Mhz memory -- Jeff i remember that you choosed that too, not so long time ago.
http://www.codinghorror.com/blog/archives/000697.html
Personaly i think that 667 CL1 or CL2 is better than 800Mhz CL5.

blagoev on March 14, 2007 09:38 AM

This is why programmers don't get it. Jeff says: "We aren't typical users. We're programmers. The x86 commodity PC is the essential, ultimate tool of our craft."
What you need is to do your coding on a Dell, or some other off-the-shelf computer. We can all make an application run on a "big bang" or a "little bang". That's easy.
We, and I'm speaking for the entire world now, we want an application to run on our off-the-shelf Dell with a slow processor, little memory, and teeny disk.
Put yourself on a machine like that and learn to program the way most of us compute. You'll be doing us all a favor and learn a little, too.

Tim B on March 14, 2007 11:49 AM

Isn't it odd to ding Dell for using 667 memory, and then say "Not that it matters very much to bottom-line performance" later?

Tim: Slight problem there; development environments can need more horsepower than the target product. For instance, I work for a company that makes a point-of-sale system that needs to run on <I>Astoundingly Crappy</i> hardware (by modern standards); 1ghz pentium-2 clone class CPUs, maybe 512M of ram. (It'll actually run on any plausible PC, but there are dedicated terminals with those specs we <I>must</i> support for business reasons.)

If I tried to run Visual Studio on that, I'd <I>never be able to get anything done</i>...

(Your overall point is an excellent one, however - it's just that while we should all <I>test</i> our software to see how it <I>handles</i>, on lower-end machines, it's not likely to be a good idea to use them as a development system.)

Sigivald on March 14, 2007 12:46 PM

I agree with Jeff. I've been building my own home dev boxes for years. Its the only way I can get decent hardware on a budget. I pass on the older boxes to my family as I build a new one.

willyh on March 14, 2007 12:51 PM

The major difference between the Core 2 Duo and the new Xeons in the Mac Pro is the memory and the memory controller.

The FB-DIMMs cost more because they are considerably faster, and are on each pair of sockets are on their own bus, so you get a large performance boost from using as many of the sockets as you can. Almost none of the Core 2 motherboards support an address space larger than 2^32, so you're limited to 3GB of RAM. The Mac Pro will support 32 GB of RAM if you go hog-wild with the $600 (for now) sticks of RAM.

And 10.5 transparently supports 4-architecture (ppc, ppc970, x86, amd64) binaries and gives them each all the address space and registers they can handle.

Fred Blasdel on March 14, 2007 08:03 PM

>> We, and I'm speaking for the entire world now, we want an application to run on our off-the-shelf Dell with a slow processor, little memory, and teeny disk. Put yourself on a machine like that and learn to program the way most of us compute. You'll be doing us all a favor and learn a little, too. <<

I've seen this argument from others as well, often from IT managers responsible for buying machines for an entire organization. As a developer, I have an obvious bias against this advice for a couple of reasons:

First, the typical user has to run our application alongside things like Outlook, Excel, a web browser, and so on. The developer, however, has to run the application alongside those same things... plus the development environment, debugging tools, a version control client, etc. It's not uncommon for a developer in the midst of a coding streak to have a dozen or more applications open.

Second, a good portion of our development time is spent compiling/building the software itself. A smaller machine with less power will be several times slower than a fast machine in doing that... convert that time spent waiting on a machine into salary dollars and most business managers will happily buy the beefy hardware.

So while it IS important that applications be tested on the types of hardware that they'll eventually run on (from the low-end on up), that's what testing environments and QA labs are for.

Just my $.02...

Jeff Donnici on March 14, 2007 08:04 PM

Every computer geek have a feminine lining:

"I see your point and would agree completely, were i not completely in love with the Mac Pro ;)"

Alexander Shirshov on March 15, 2007 06:39 AM

Love the Google approach - they're an inspiration to me - I do all the metal bashing too so I can optimally place the DIY components to minimize the heat load as well as temp gradients. I made the first about 12 months ago - I get major horsepower from a 1U form factor and just stack 'em up in my data centre. Yes I have my own data centre.
M

miro on March 15, 2007 07:27 AM

I was surprised as heck when I first found out that Google was one of the largest server providers in the world (3rd or 4th?) -- they just don't sell any of them externally.

Getting them to use one of your chips in their servers would be a huge market people don't think of.

engtech on March 15, 2007 06:31 PM


I went this route in the past, and I think you're expressing a false economy. There is a significant cost to buying and discarding garbage commodity parts in trying to build this optimal system. It makes sense if you're a business like google who is building a farm-- where you can spend that time and money wading thru the junk that doesn't work at all, or is poor quality-- and then replicate your final configuration many times over.

But if you're an engineer, you should build a computer for yourself *once*, or maybe one to be a mail server--- but your development machine needs to be a high quality, reliable box that you can count on. Not one that will send you to the fly-by-nite-pc-parts-place the night before you want to deliver your code because your increased compilation in recent days has pushed the mb over its thermal limite, or whatever.

this is why the Mac Pro is, by far, the least expensive and most reliable choice of the four you presented. You *may* be able to make your custom build machine as reliable-- but in my experience ,commodity hardware does not last-- and the people who build their own do not realize this because inside of 12 months they have replaced the part with something else.... Buying a machine that is cheaper to begin with and then using it twice or three times as long is the better deal.

I reached this conclusion in the 1990s, and once again I'm working for a startup with a guy who is the server builder... and watching him go thru DOA parts and hassles makes me convinced that while it may make sense for servers, it does not for engineers.


Better to spend the time you would be researching motherboards learning erlang or otherwise getting your code more concurrent.

Lysander on March 15, 2007 07:03 PM

Google plans to mass-produce and sell servers... Do you think those will be the same sort of "homemade" servers or the same sorta servers Dell would sell? Exactly, the second one...

Razi Shaban on March 16, 2007 03:19 PM

Who still codes on a desktop? I haven't seen a desktop coder in quite awhile... I code at work, home, coffee shops, airplanes, in the car. I've got my dell dual core d620 with 3 gigs of RAM and it's fine for running 2 Java IDEs simulaneously + SQL Server + MySql + our big fat portal server + our very distributed apps.

And more cores DO matter. THere is a hell of a lot more to consider than things like compilation time. Your database will use the extra cores. Each app you multitask with will take advantage of your cores and have less impact on the other apps running. Sounds like you simply work on simple desktop apps w/ no db or something?

joe schmoe on March 17, 2007 08:31 AM

I'm a (web) designer and love to build my own DIY systems, so this DIY stuff isn't just for the programmers and engineers. This is part of the reason why I've not switched to a Mac (which I have, naturally, been tempted by).

I would have to completely disagree with Lysander's comments. I've had far more things go wrong with pre-built machines (Dells, mainly, at my place of work) than with my DIY machines. My Mac using friends also have an increasingly high failure rate (but that's with the laptops; I've not heard of anything going wrong with their desktops). The key point with DIY builds is that you know what's going into it and can control it. That not only makes for a more reliable system, but there's definitely a more satisfying sense of ownership of the machine. The bottom line for me is that I enjoy computers, so naturally I enjoy building them too.

But I tell you what, this discussion Zen and the Art of Motorcycle Maintenance to mind (http://en.wikipedia.org/wiki/Zen_and_the_art_of_motorcycle_maintenance).

Charles Roper on March 27, 2007 09:47 AM

Some other philosophical links related to building your own computer:

Auto Mode vs. Shooting Manual
http://www.37signals.com/svn/posts/321-auto-mode-vs-shooting-manual

Jedi Build Their Own Lightsabers
http://radar.oreilly.com/archives/2007/03/jedi_build_thei.html

Jeff Atwood on March 27, 2007 12:01 PM

It is not about knowing how to programme, or having a good stylesheet. Normally when someone find a photo of a crazy server as the one you show us, he just post it and say something like "cool".
Instead of that you make a whole tale of something such a extrange as installing your own computer. And it's dammn interesting!

Congratulations, you could entertain us even speaking about knitting!

(Sorry for the bad English, it's not my language)

marmolillo on April 1, 2007 01:09 PM

I ordered the parts to build the Big Bang. Here is the config:
* ASUS P5B Premium Vista Edition LGA 775 Intel P965 Express ATX Intel Motherboard - Retail
* POWERCOLOR X1950PRO512 AGP GDDR3 HDCP Video Card - Retail
* Western Digital Raptor X WD1500AHFD 150GB 10,000 RPM Serial ATA150 Hard Drive - OEM ( 2 of these)
* Intel Core 2 Quad Q6600 Kentsfield 2.4GHz LGA 775 Processor Model BX80562Q6600 - Retail
* Antec Performance One P180 Silver cold rolled steel ATX Mid Tower Computer Case - Retail
* Antec Phantom 500 ATX12V 500W Power Supply - Retail
* Crucial Ballistix 2GB (2 x 1GB) 240-Pin DDR2 SDRAM DDR2 800 (PC2 6400) Dual Channel Kit Desktop Memory Model BL2KIT12864AA804 - Retail
* PLEXTOR 18X DVD±R DVD Burner included Replaceable beige front bezel Black E-IDE/ATAPI Model PX-760A/SW-BL - Retail
* Scythe SCINF-1000 120mm CPU Cooler - Retail
* APC BE750BB 750 VA 450 Watts UPS - Retail

Can't wait to fire it up! Thanks for your preachings Jeff.

Altug on April 18, 2007 07:17 AM

Altug, great news, but be careful-- you listed an AGP video card, and all modern systems are PCI express. I hope that's not a mistake in my newegg parts list, and I apologize if it is!

Jeff Atwood on April 18, 2007 09:22 AM

Ooops, you are right. I need to return that card (coming in today) and order the PCI Express version. Thanks for noticing this. Don't feel bad, you hadn't specified the card type.

Altug on April 20, 2007 08:03 AM

Build me 14 quad-core servers, dual 15k SCSI, 10GB fibre interconnects in a 7U form factor and no network cables. That's a little tougher to do. Sometimes in business, it's more convenient to buy

http://www-03.ibm.com/systems/bladecenter/

Aaron

Aaron on April 27, 2007 04:57 PM

Hey Jeff, quick update. The "Big Bang" is up and running with 5.9 user experience (Visa Ultimate). Thanks again....

Altug on April 30, 2007 10:36 AM

I agree it is better to build a computer yourself. It is cheaper and a lot more fun! I am building a server right now. It will run on Linux.

Kyle on September 2, 2007 09:44 AM

Hello folks,

I have been building my own PCs and servers for work for a really long time. I started when a 486/66 was top dog! I still remember seeing the first quad Xeon in Vegas at the show. It was a huge box with four motherboards in a star configuration.

I've come to believe in a small boot drive and a RAID data drive set. No RAID 0 by itself, that is just stupid. The small boot drive makes it easier to update or swap the OS and still have the data. I started using removable boot drives years ago too. Just slide in another drive for a different OS. OS multi-boot was usually too much of a pain. I do it on my laptops though.

I have been bored with building PCs now. Everything is on the motherboard. It is so easy that any High School kid can do it. It used to be that you had to set jumpers for all of the IRQs and IO Bases on each card that went in. If you wanted a parallel port, you needed a card. Want a serial port? Put in a card. There is no magic to it anymore. It is only in the tweaking and OCing that there is any edge to it.

Over the last couple of years I've moved on to the laptop world. I buy up old and broken laptops and see what kind of hot-rodding I can do with them. It has been fun again! I've learned a lot from them about how to make things more efficient and more compact.

I'm building up a LAN Party micro case this week. It will be full on rock n' roll. Quad core chip and all. It will, of course include a small boot drive and a RAID 1 data set. I prefer RAID 5, but there isn't going to be enough room. It will still have a removable boot drive though! I may even try OS X on it. CentOS is for sure though. It may include a pull out monitor, I haven't decided on that yet. There just isn't much room to add that to it.

As to the Google setup, I used to use a slab of plywood with motherboard mounts screwed in and a power supply mounted on the back to setup new boards. It made it easier to get all of the cards setup (jumpers and all) and then just move the proven good configuration to the case later. I never had to stack them up as a production rig like theirs though!

This is an interesting blog. I will have to check back on it from time to time.

Later!

Mad Professor on September 5, 2007 12:05 PM

The Google strategy in full effect at SmugMug:

--
We prefer to buy lots of cheap redundant hardware rather than small amounts of expensive hardware as a general rule. Our DB layer is no different.
--
http://blogs.smugmug.com/don/2007/10/01/dell-md3000-great-das-db-storage/

Jeff Atwood on October 3, 2007 01:26 PM

Well a few years ago i brought aold server which was bigger then my car well nearly. i set it up sorted out the old hard drives put some web sites up on it and all was great untill more then 10 people went on line as at that time i had very slow contection. it was hell i spent more and more time service the server bigger fans andding bits all over the place. I was happy untill i had a thunder storm and and then that was the end of my server it died that night and not to come back to live. So now i rent my servers from comanys to host my web sites and buy a pc to do my work from.

stephen on October 8, 2007 07:33 AM

motherfucker

lol on January 29, 2008 04:13 AM

ddd

ur,mums! on January 29, 2008 04:13 AM

hey there friends i have something to say to you but i cant say it

bob on April 28, 2008 02:34 AM

hey there friends i have something to say to you but i cant say it

bob on April 28, 2008 02:34 AM

Does Google publish what HW they are using now. It could help many websites do better in terms of performance vs power consumption.

Android on May 29, 2008 05:25 AM







(hear it spoken)


(no HTML)




Content (c) 2008 Jeff Atwood. Logo image used with permission of the author. (c) 1993 Steven C. McConnell. All Rights Reserved.