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.
Rob and I may disagree on pretty much everything from a coding perspective, but we can agree on one thing: we love computers. And what better way to celebrate that love by building your own? It's not hard. This industry was built on the commodification of hardware. If you can snap together a Lego kit, you can build a computer.
Maybe this is a minority opinion, but I find understanding the hardware to be instructive for programmers. Peter Norvig -- now director of research at Google -- appears to concur.
Understand how the hardware affects what you do. Know how long it takes your computer to execute an instruction, fetch a word from memory (with and without a cache miss), transfer data over ethernet (or the internet), read consecutive words from disk, and seek to a new location on disk.
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. It's a shame Apple programmers can't do this, as their hardware has to be blessed by the Cupertino DRM gods. Or, you could build a frankenmac, though you'll run the risk of running a "patched" OS X indefinitely.
As Rob and I were talking about the philosophy of building your own development PC -- something I also discussed on a Hanselminutes podcast -- he said you know, you should blog this. But Rob -- I already have, many times over! Let's walk down the core list of components I recommended for Rob, and I'll explain my choices with links to the relevant blog posts I've made on that particular topic.
ASUS P5E Intel X38 motherboard ($225)
I'm a big triple monitor guy, so I insist on motherboards that are capable of accepting two video cards -- in other words, they have two x8 or x16 PCI Express card slots suitable for video cards. I also demand quiet from my PC, which means a motherboard with all passive cooling. Beyond that, I don't like to pay a lot for a fancy motherboard. After spending the last five years with motherboards packing scads of features I never end up using (two ethernet ports, anyone?), I've realized there are better ways to invest your money. People tend to respect ASUS as one of the largest and most established Taiwanese OEMs, so it's usually a safe choice. I'd go as far down on price on the motherboard as you can without losing whatever essential features you truly need. Save that money for the other parts.
Intel Core 2 Duo E8500 3.16 GHz CPU ($190)
Intel Core 2 Quad Q9300 2.5 GHz CPU ($270)
Ah, the eternal debate: dual versus quad. Despite what Intel's marketing weasels might want you to believe, clock speed still matters very much. Here's an example: SQL Server 2005 queries on my local box, a 3.5 GHz dual core, execute more than twice as fast as on our server, a 1.8 GHz eight core machine. Sadly, very few development environments parallelize well, with the notable exception of C++ compilers. Outside of a few niche activities, such as video encoding and professional 3D rendering, most computing tasks don't scale worth a damn beyond two cores. Yes, it's exciting to see those four graphs in Task Manager (and even I get a little giddy when I see sixty-four of 'em), but take a look at the cold, hard benchmark data and the contents of your wallet before letting that seductive 4 > 2 math hijack the rational parts of your brain.
It's also smart to buy a little below the maximum, with the ultimate goal of upgrading to a whizzy-bang 4 GHz quad core CPU sometime in the future. One of the hidden value propositions in building your own PC is the ability to easily upgrade it later. CPU is one of the most obvious upgrade points where you want to intentionally underbuy a little. Give yourself some room for future upgrades. Until a quad costs the same as a dual at the same clock speed, my vote still goes to the fastest dual core you can afford.
Kingston 4GB (2 x 2GB) DDR2 800 x 2 ($156)
Memory is awesomely cheap. When it comes to memory, I like to buy a few notches above the cheapest stuff, and Kingston has been a consistently reliable brand for me at that pricing level. There's no reason to bother with anything under 8 GB these days. Don't get hung up on memory speed, though. Quantity is more important than a few extra ticks of speed. But don't take my word for it. As an experiment, Digit-Life cut the speed of memory in half, with a resulting overall average performance loss of merely three percent. By the time your system has to reach outside of the L1, L2, and possibly even L3 cache -- it's already so slow from the system's perspective as to be academic. Memory that is a few extra nanoseconds faster isn't going to make any difference. This is also why I specified the latest and greatest Intel CPUs with larger 6 MB L2 caches. Remember, kids, Caching Is Fundamental!
Western Digital VelociRaptor 300 GB 10,000 RPM Hard Drive ($290)
This is arguably the only indulgence on the list. The Velociraptor is an incredibly expensive drive, but it's also a rocket of a hard drive. I'm a big believer in the importance of disk speed to overall system performance, particularly for software developers. At least Scott Guthrie backs me up on this one. Trust me, you want a 10,000 RPM boot drive. Buy a slower large drive for your archiving needs. You want two drives, anyway; having two spindles will give you a lot of flexibility and also help your virtual machine performance immensely.
This new raptor model is the best of the series. It's much quieter, uses less power, generates less heat, and is by far the fastest -- embarrassingly fast. It's expensive, yes. I won't hold it against you if you decide to disregard this advice and go with a respectably fast, less expensive hard drive. But to me, it's all about putting the money where the most significant bottlenecks are, and considered in that light -- man, this thing is so worth it. As Storage Review said, "[its] single-user scores .. blow away those of every other [hdd]".
Radeon HD 4850 512MB video card ($155 after rebate)
Even if you're not a gamer, it's hard to ignore the charms of this amazing powerhouse of a video card. The brand new ATI 4850 delivers performance on par with the very fastest $500+ video card you can buy for a measly hundred and fifty bucks! Modern operating systems require video grunt, either for windowing effects or high-definition video playback. Beyond that, it's looking more and more like some highly parallizable tasks may move to the GPU. Have you ever read stuff like "even the slowest GPU implementation was nearly 6 times faster than the best-performing CPU version"? Get used to reading statements like that; I expect you'll be reading a lot more of them in the future as general purpose APIs for GPU programmability become mainstream. That's another reason, as a programmer and not necessarily a gamer, you still want a modern video card. For all this talk of coming 8 and 16 core CPUs, eventually the GPU could be the death of the general purpose CPU.
We also want our video card to be efficient. Many don't realize this, but your video card can consume as much power as your CPU. Sometimes even more! The 4850, for all its muscle, is remarkably efficient as well. According to a recent AnandTech roundup, it's on par with the most efficient cards of this generation. Pay attention to your idle power consumption, because power consumed means heat produced, which in turn means additional noise and possible instability.
Corsair 520HX 520W Power Supply ($100 after rebate)
The power supply is probably one of the most underrated and misunderstood components of a modern PC. First, because people tend to focus on the "watts" number when the really important number is actually efficiency -- a certain percentage of energy that goes into every power supply is turned into waste heat. An efficient power supply will run cooler and more reliably because it uses higher quality parts. People think you need 1.21 Jigawatts to run a powerful desktop system, but that's just not true. Unless you have a bleeding-edge CPU paired with two high-end top of the line gaming class video cards, trust me -- even 500 watts is overkill.
The Corsair model I recommend gets stellar reviews. It has modular cables and the 80 plus designation, so it's 80% efficient at all input voltages. Note that a quality power supply is not a substitute for a quality UPS or surge protector, but it helps.
Scythe "Ninja" SCNJ-2000 cooler ($50)
Scythe "Ninja Mini" SCMNJ-1000 cooler ($35)
I'll be honest with you. I have a giant heatsink fetish. These giant hunks of aluminum and copper, and the liquid-filled heatpipes that drive them, fascinate me. But there's a more practical reason, as well: if you want a quiet computer, you don't even bother with the stock coolers that are bundled with the CPU. Over the last few years, I keep coming back to Scythe's classic "Ninja" tower cooler, which is available in tall and short varieties. They're so astoundingly efficient that, with adequate case ventilation, they can be run fanless. I even (barely) managed to squeeze the Ninja Mini into my home theater PC build, and it's now mercifully fanless as well. There are plenty of other great tower/heatpipe coolers on the market, but the Ninja is still one of the best, a testament to its pioneering design. The CPU is (usually) the biggest consumer of power in your PC, so it's sensible to invest in a highly efficient aftermarket cooler to keep noise and heat at bay under load.
There you have it. More than you ever possibly wanted to know about how an obsessive geek builds a PC -- painstakingly analyzing every single part that goes into it. Now, like Rob, you're probably sorry you asked; who needs all the philosophical digressions, just give us the damn parts list! OK, here it is:
The best bang for the buck developer x86 box I can come up with, all for around $1100.
I try to avoid posting about hardware too much, but sometimes I can't help myself. I blame Rob. Enjoy your new system, Mr. Conery.
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.
Michael on July 27, 2008 8:06 AMNice 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.
Stas on July 27, 2008 8:07 AMActually, your hardware posts are some of your best I think.
Steve on July 27, 2008 8:12 AMThe 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?
PWills on July 27, 2008 8:22 AMI'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.
Mark Tiefenbruck on July 27, 2008 8:24 AMGood call on the power supply. I had to learn that all the hard and expensive way.
Chris Missal on July 27, 2008 8:24 AMGood call on the power supply. I had to learn that all the hard and expensive way.
Chris Missal on July 27, 2008 8:25 AMI 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.
Patrick on July 27, 2008 8:29 AMI 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).
Ens on July 27, 2008 8:30 AMIn 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.
Charles Miller on July 27, 2008 8:31 AMa 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.
Michael on July 27, 2008 8:40 AMI 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.
Hpsin on July 27, 2008 8:54 AMwhat'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...
karl on July 27, 2008 9:08 AMI 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
luke on July 27, 2008 9:12 AMnever be ashamed of public hardware lovin'. never.
Darren Kopp on July 27, 2008 9:20 AMI 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
Quarterback16 on July 27, 2008 9:37 AMNo love for AMD?
Scott on July 27, 2008 9:39 AMI used to build all my PCs, but these days I only use laptops. Bulding my own desktops was fun when I was a kid, but now I'm just too lazy to bother.
As for CPU speed I never notice much difference unless I play games (and then, bus speed and graphics card is just as important). I honestly can't say I have noticed any significant difference in compile times between my old Pentium 4 2.4GHz and either of the newer Core 2 Duo laptops I use now. My old system couldn't play HD-quality video very well though. In my experience, CPU power is less significant if you have plenty of RAM, a fast hard drive and a fast graphics card.
Personally I think CPU upgrading is much overrated. Of all the PCs I have buildt over the years, I only once upgraded the CPU (from a Pentium 2 350MHz to Pentium 3 600MHz, since I got the CPU for free from my brother). I also know very few other people who actually did upgrade their CPU, ever (they upgraded plenty of other stuff, just not the CPU). Nine out of ten times when upgrading a system I have to get a new motherboard (and RAM) as well, because the CPU socket has changed in the meantime, or the motherboard is not compatible with the current bus architecture.
When it comes to hard drives I always prefer to have two. One for the OS and one for my data. It can give a nice performance boost in addition to making life a lot easier when reinstalling your OS.
I guess all of this really depends on how often you upgrade or replace your PC. For me, every three years has proven to be an adequate rate.
That being said, your setup looks rather sweet :)
What about using ECC for a reliable memory system? 4 GB of DRAM stores your info on 32 billion minuscule capacitors (~5 femtoFarads each) all of which are refreshed (read then written) several times per second. It is a miracle of modern technology that over the course of a month only a few soft errors (randomly flipped bits) will occur in a properly functioning system.
Without Error Correction Coding, it is not clear how those soft errors will affect the software running on your computer. With ECC, those soft errors are usually corrected or at least detected. Servers overwhelmingly use ECC memory systems.
Now Intel's X38 and X48 chipsets support ECC when used with ECC DDR2 DRAM. You still need to make sure that your X38/X48 motherboard also supports ECC and the BIOS is set to enable it.
If you use your computer to make a living, it should support ECC.
Beth on July 27, 2008 10:01 AMThe 3870 X2 from ATI supports four monitors.
I'll be darned; you're right:
http://news.softpedia.com/newsImage/Asus-039-EAH3870-X2-1GB-TOP-Four-Monitor-Insanity-2.jpg
Usually these X2 two GPUs on one card devices tend to have the standard 2.5 outputs (DVI, DVI, s-video) so this is an interesting deviation. Still, the X2 is awfully inefficient -- as are most SLI rigs, to be fair.
If cool and quiet are your goals, the 3870 X2 is not a good answer.
http://www.anandtech.com/video/showdoc.aspx?i=3209p=12
Personally, I'd go with a powerful primary card and a fanless secondary card from the same family. Or even two 3850s!
http://www.legitreviews.com/article/591/13/
Jeff Atwood on July 27, 2008 10:04 AMI built a very similar pc a couple of weeks ago. I went with the quad core for the little bit of extra speed editting the family videos in HD.
I disagree with your graphics card selection - unless rob plans to be doing any gaming. I opted for two ATI HD3650's for $56 each. I also, opted for the slightly cheaper ASUS p5Q-e motherboard. It handles dual montors and is $85 less than the P5E.
As for the raptor... for my money there is better value in 4 x 300 GB barracuddas in raid 1, raid 5, or raid 10.
Your ultimate dev rig posts with ScottHa were a great starting point when I was researching for the new pc.
BrianE on July 27, 2008 10:07 AMWhen Jeff alluded to the importance of a thorough hardware comprehension, I think he was referring to the functionality of every fundamental aspect from an electronic/electric/mechanical standpoint (e.g. CPU instruction execution, memory allocation, finding a location on disc, et al) -- i.e. he was not just denoting the act of putting a computer together.
I agree with Anders on this one: this setup kicks ass! (I wish I had the money to piece it together). :-)
Elvis Montero on July 27, 2008 10:08 AMNow Intel's X38 and X48 chipsets support ECC when used with ECC DDR2 DRAM. You still need to make sure that your X38/X48 motherboard also supports ECC and the BIOS is set to enable it.
That's cool... I haven't seen a DESKTOP chipset or motherboard that supports parity^H^H^H^H^H^H ECC memory in about a decade. It's great that Intel is finally recognizing that some people value the parity advantage.
Michael on July 27, 2008 10:20 AM... And I'm so very excited about my purchase! I should point out that the machine I'm building is my own - Microsoft isn't paying for me to go off and build my own. The Boss I was referring to Jeff was my wife :). Just details but it may keep me out of trouble :).
Thanks again for your help!
Rob Conery on July 27, 2008 10:42 AMYeah, that Norvig quote seems really out of context - he's talking about a totally different context w/r/t understanding hardware. Physically putting together a box has very little to do with understanding the fundamental components of software execution.
James on July 27, 2008 10:46 AMMatrox makes some quad display video cards as well. They are quite expensive and will not run any modern video games, but they are low power and would be great for a development machine I would think.
Here is one that can do quad DVI-D:
http://www.matrox.com/graphics/en/products/graphics_cards/m_series/m9140lppciex16/
Make that DVI-I actually (analog or digital)
Tim B on July 27, 2008 11:22 AMoh, freedom zero.
Let me know when your first processor is finished.
http://i539.photobucket.com/albums/ff356/jellob2/mem.png
That is with only 1 of the 3 regular VM's open that I use. With VMs it is easy to chew through 8GB.
64bit OS shouldn't have any driver issues if you are building a new machine.
I like to have dual DVI cards (shame not to drive nice big panels in digital), unfortunately video card manufacturors tend not to put these in the low end cards.
Nic on July 27, 2008 12:03 PMnice article! But I wonder whether you could write a similar post about Laptops... Is it possible/feasible/reasonable to assemble your own power laptop (fast, quiet, energy efficient)?
Gabriel Schenker on July 27, 2008 12:08 PMAnd what about the case?
A good developer must have a flaming computer case
http://www.azairfx.com/images/computer1.jpg
(People will think your PC is faster) ;)
Yes, it's exciting to see those four graphs in Task Manager (and even
I get a little giddy when I see thirty-two of 'em)
In that task manager picture in the article you linked to, there are actually 64 graphs - 4x16.
Excellent article. I really enjoy your hardware posts.
Christian on July 27, 2008 12:39 PMAnd, 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.
Address-space limitations aside for a moment, the reason having gobs of RAM is important isn't that applications directly need it, but that your OS's virtual memory subsystem should be trying it's damnedest to use ALL of it, ALL the time, for *something*.
This is something I have to explain all the time to people when I see them using these memory freeing utilities that allege better performance by giving you more free RAM. If your VMM is doing it's job, then only the processes that are actively running or have recently run using should be resident (and then, only those pages that are being actively/recently used). The rest of RAM should be filled with writeback buffers and cached files from the disk.
Free physical memory is simply *wasted*, period. Memory-freeing utilities do nothing but head-fake the VM into freeing physical RAM, sabotaging performance.
This is important, I think, because a lot of desktopy applications such as most people tend to use are unscheduled for IO-waits (I'd guess mostly page faults, but sometimes explicit IO) more often than they are waiting to run/running on the CPU. Filling an IO request from RAM is orders of magnitude faster than hitting the disk, just as filling a memory read from L1/L2 is orders of magnitude faster than hitting RAM, and may mean the avoidance of getting unscheduled for IO-wait. What's more, these cached pages cost you nothing: if the system gets hard up for physical RAM, it can just delete them.
I think this is so important to system performance that on most of my Linux machines, I configure the VMM to actually swap out excessively-idle application pages to make room for caching disk contents that get used more often. All those tray applications and idle processes that seem to haunt Windows users, simply find themselves swapped to disk after while instead of loitering in RAM, and on the occasion they actually wake up: oh well, enduring that page fault probably saved me hundreds more page faults on some other app that I use more heavily.
(By the way, NT-based VMMs are by all accounts equally good at doing this dance, but I think your average Windows user is so deeply scarred from prior Windows' pathological VMM behavior that they will never be able to look at a lengthy process list without getting edgy and uncomfortable :)
I think it's this kind of thing that goes to the heart of Jeff's argument: what the VMM does and how it works deeply affects how things perform, yet it's mostly misunderstood and frequently sabotaged, even by programmers. And although the virtual memory subsystem of an OS is in fact software, it's inextricably entangled with, and indeed mostly responsible for mediating, the performance of the hardware.
Kyle S on July 27, 2008 12:42 PMFirst, I always like Jeff's hardware postings as they give me something to think about.
For those who keep pointing at 8GB, I have to say I see only 4GB of RAM (2x2GB) listed. Maybe someone would kindly point out the 8GB, please.
Jeff,
I am curious about the option of a Q9300 Quad when the Q9450 Quad appears to be a better choice.
I am also curious as to why the X38 board instead of a newer board?
Thank you.
hassle of using a 64-bit clean OS and all the driver complications
Vista 64 here, on more than 1 computer. There is no hassle, and no driver complication. Do pay attention to the hardware you purchase, but I haven't yet encountered new hardware without 64-bit drivers. And applications, they just work. In either 32 or 64-bit versions.
Why 8GB? Why not?! It costs as much as 2GB did a couple of years ago. If you can't use more memory, you lack imagination or are using an outdated OS (like XP):
- Vista can cache more files in memory resulting in more performance
- You can run multiple Virtual Machines with multiple OSs
- You can compile while transcoding video
- You can game while your bittorrent client is busy downloading the latest Fedora
- You can dedicate a core and a couple of gigs to soving hard computational problems
- You can run distributed client/server or p2p servers developing the future killer app...
That was a thrill to read. I need to work on my hardware chops, so sifting through your multitude of links was great exercise. Thanks for all the info!
Evan Meagher on July 28, 2008 2:06 AMI do disagree with the quad core selectin though. It's not the sweet spot. Going from $270 to $330 (another 60 bucks) for twice the cache (and and insignificant .16 GHz) is, IMO, worth it.
Furthermore, the Q9450 price is supposedly set to be cut by Intel in the near future.
Also, I would have gone with a P45 chipset for the MoBo. It's fabbed in a shrunk-down process, resulting in lower temps and power consumption.
Finally the missing case selection: Antec Solo or P182 (expensive). A GREAT value is the NSK 4480.
Keyboard: Logitech Wave. G15 for gamers
Mouse: Logitech MX/VX Revolution. G9 for gamers.
OS: Vista 64, of course :)
Display: avoid the TN crapola. Nothing less than Dell 2408WFP. Pick 2 if you want to stare at a black divider in the middle. Pick 3 if you want two of them falling off your desk. Or just move up to the 3008WFP as any sane person should do. As an added benefit, you'll have the option to game in 1280x800, with the the Dell doing the upscaling for you. That just until the lasted vid cards will make gaming at 2560x1600 with all the eye candy turned on a reality.
Nick++ on July 28, 2008 2:14 AMI'm not sure I agree with that. I could agree that weeks of drooling over specs before you decide on the final configuration helps you understand the specs. I could agree that it maybe helps you better associate/remember details needed to program it. But I dont think that building a system in its self it teaches you anything about how to program it.
Robin:
Striping seems like it more often talked about than it is used in actual practice in respect to home PCs. I don't know much about implementing striping or it's benefits, and would honestly like to know more. Obviously Gateway or Dell aren't advertising it as a viable option, so I'm a little curious about OS support and difficulty of setup.
Maybe it'll give Jeff another idea for a blog entry. :)
Hutch on July 28, 2008 2:24 AMIntel's X38 and X48 chipsets can support ECC when used with DDR2 but not DDR3. The X48 doesn't add much value over the X38. The 875P chipset also supports ECC.
Intel's P31, P35, P43, P45, G43, G45, G35, G33, G31 chipsets don't support ECC.
If you want an Intel processor with Error Detection/Correction on the FSB, you need buy a Xeon with a server chipset motherboard.
While AMD Athlon and Phenom processors support ECC most motherboards don't support ECC so you need to select with care.
You should assume that laptops don't support ECC because SODIMMs don't support it.
The only Apples that support ECC are Mac Pros.
Beth on July 28, 2008 2:30 AMFor what it's worth (and I have to declare self-interest here, as they're my employers), the DisplayLink video-over-USB technology works well as an easy way of adding multiple monitors if you lack a motherboard with multiple video slots or an esoteric 3-or-more output video card. Sure, you won't be playing games on it any time soon, but for general development and office work (and the odd spot of web browsing between compiles) it works really well.
Chris on July 28, 2008 2:38 AMCrap... your posts are good, you're probably getting more and more readers, but it is now a hell of a job to read soooo many comments!
Wouldn't it be nice to have a ranking system, so that interesting comments go up, and pointless ones go down the drain? A kind of Amazon-like nifty did you find this comment useful ajax-thingy...
Lapalisse on July 28, 2008 2:42 AM4 RAM stick are just devil baiting. Two are enough and diminish the failure chance rate by 50%.
Velociraptor WTF ? Just get a barracuda 7200.11 or a spinpoint and you get a little less speed but your comp won't be noisy.
For the motherboard, I'd advocate a P45 chipset which get less heat and overclock like beast while having 2 8X PCIe.
For the PSU : why not the 620, as it won't reach the point where the fan is used it'll be less noisy.
hardware is one of the things I'm the most clueless about, so any of your posts along these lines are comforting - my knowledge is mostly anecdotal, but I don't necessarily know all the measurements, where the plateau of cost-effectiveness levels off, and which 'features' are actually superflous. So don't come down too hard on yourself for the hardware blog entries..
matt on July 28, 2008 2:55 AMArkh:
HX520 and HX620 should sound the same with equal output.
http://www.silentpcreview.com/article692-page1.html Scroll down to Noise.
Jeff, I have to chime in with many comments above and ask what exactly kind of understanding of how long it takes your computer to execute an instruction, fetch a word from memory (with and without a cache miss), transfer data over ethernet (or the internet) you get by assembling off-the shelf components? It is paramount to claiming that you will understand the internal combustion engine by putting spoilers on your car...
I can see how you'd get a bit of insight into [how long it takes to] read consecutive words from disk, and seek to a new location on disk by examining HDD specs and deciding on the meanest one, though.
That said, I do enjoy your hardware posts!
dovetalk on July 28, 2008 3:09 AMA 4(-8-64) core CPU can deliver better throughput while executing highly parallelizable tasks like SQL queries.
Consider the scenario: you have 4 incoming requests, each one needs 1 second CPU time to execute and they arrive to the server at exactly the same time. The 2 core CPU server can finish executing the queries in 2 seconds, meaning it has a 2/second throughput. The 4 core CPU at the same clock speed can finish in 1 second, so it has 4/second throughput.
Now, in real life server applications where lots of clients use your server simultaneously there _is_ a performance gain in more CPU cores. However you are right, on a desktop, it doesn't really matter.
Zizi on July 28, 2008 3:14 AMi loled ~ upgradeable @ CPU .. LGA775 Socket is outdated soon. so have phun : D
mka on July 28, 2008 3:27 AMHi,
I have 8GB of RAM on a dual quad-core xeon (this is my personal computer).
Having 8GB of memory is not so stupid as people may think.
At work, I only have 4GB of memory and it's a pain in the ass to switch from one virtual machine to another.
At home, on my super personal computer, I don't have any problem. Having 2 ou 3 VMs running doesn't slow the computer and I can even play with modern games (aka Crysis) without having to shutdown or close my VMs.
Of course, you need to use a 64bits OS but even Windows 64bits systems are working great (especially Vista) and with modern hardware you don't have issues finding drivers.
I just like to add, that if a developper is using a lot of VMs, he should use a quad core (or more) CPU, that way he can assign 2 of more Virtual CPU without any software emulation of the many virtual CPU.
humble.jok on July 28, 2008 3:28 AMWhat, no keyboard or mouse? Getting new input devices is always a good idea when getting a new computer. I'm myself an input devices collector. I have about 10 mice, 3 trackballs, one touchpad and about 30+ keyboards :P
Regarding all the hardware stuff, sounds pretty nice, but as a Mac user, I'm pretty happy to buy ready to use out of the box systems where Apple already took the task to decide which components to combine. You may not always get the *perfect* deal for your bucks, but you get a decent system for an acceptable price.
Mecki on July 28, 2008 3:37 AMI see that the video card has a fan. Why haven't you used a fanless one, if you are so obsessed with silent computing? Both Asus and Gigabyte have some interesting cards with passive cooling:
http://www.newegg.com/Product/Product.aspx?Item=N82E16814121244
http://www.newegg.com/Product/Product.aspx?Item=N82E16814121243
Maybe their performance isn't very good, but when you want silence you have to pay a price.
Cristian on July 28, 2008 3:40 AMAcceptable price? maybe in the USA but in Europe, Apple prices aren't acceptable (except for the MacBooks).
My computer cost me 2000€ (3000$) and almost the same machine (Apple's one doesn't have a 8800 Ultra) in the french Apple store was priced 4000€ (6440$) without maintenance.
Don't help him.
This MS guy should not be using ultra fast computer - he should see how it is for normal people to use Windows xp or vista on normal computer.
Why dont you blog about the slowness of Windows.
This is year 2008 - it still takes 5 minutes for me to start my computer. It loads all the stupid processes before I can do anything. Sometimes I just need to open notepad or browse the net - why does I need to wait forever for that?
MS should focus on user experience - most important things needs to be fast and I shouldnt need to buy extra fast computer.
Quad-Core is good for virtual machines, since any reasonable VM software (Virtual Server 2005, Hyper-V, and presumably VMWare - not VirtualPC though!) would be able to use multiple cores for multiple machines.
... and then you hit the disk bottleneck. Having just done 4 concurrent installations, disk was definitely the limiting factor.
Jonathan on July 28, 2008 3:52 AMI've said it a few times, but I'll say it again: if you want an understanding of hardware and how your software runs on it, watch Herb Sutter's presentation to the Northwest (US) C++ User's Group.
The meeting page is at http://www.nwcpp.org/Meetings/2007/09.html, the video at http://video.google.com/videoplay?docid=-4714369049736584770, and the slides (which are illegible in the video) at http://www.nwcpp.org/Downloads/2007/Machine_Architecture_-_NWCPP.pdf.
Mike Dimmick on July 28, 2008 3:53 AMI think to buy a computer ready made is much quite better than building your own. Plus, you don't have warranties when you build it on your own.
Omar Abid on July 28, 2008 4:15 AMDon't ever build PCs from parts.
PCs built from parts don't have warranties. They don't have a single company you can call if anything goes wrong. They are a waste of time and money.
If you're building PCs from parts, you have to be prepared for the eventuality of one of your parts failing, or not working as desired. In that case you have to then buy two of everything.
I've been building PCs for 10 years and I've given up. It's impossible to make the process worthwhile in terms of time and cost. My opinion is that building your own PCs from parts is not only profoundly unwise, it is also fundamentally different from building something like, oh, say, a bicycle from parts, since the components of PCs go obsolete within 18 months, as vendors try to squeeze yet more dollars from the reluctant consumer.
Eric on July 28, 2008 4:19 AMscads of features I never end up using (two ethernet ports, anyone?)
I sometimes use 2 ethernet ports...living in a dorm I only had 1 ethernet connection for me to get on the network and didn't have a router, so I just plugged my ps3 into my extra port to get internet through there.
My only issue is now getting this same setup to work in ubuntu...I have yet to be successful so my online gaming has cut down to almost nothing since I have to boot into windows to play.
DanaL on July 28, 2008 4:23 AMGreat post Jeff. I built a similar configuration a few months back (uses older chipset and processor though). But based most of my needs on building a Macintosh equivalent. This was a great compromise because my wife likes the easyness of all things Apple, but I prefer not paying the Apple tax (especially here in France). And it was a great way to get her involved in building a computer.
I have given up the upgrade path because by the time you need it you end up having to upgrade more than you intended. When I'm ready to upgrade my Q6600 I'm sure I'll also need to switch out the motherboard, upgrade to DDR3, and change the video card. Leaving just the case, drives, KVM, and power supply. Now I just buy those core pieces based on the budget and wants.
Joe Chin on July 28, 2008 4:34 AMMy development box had an 867 MHz CPU and 768 MB of RAM, then my second computer for testing is a 333 MHz Bondi Blue iMac with 96 MB of RAM.
I'll never understand why so many developers feel like they need the rock star treatment to deliver the best products out there. I mean, can you honestly tell me why you want 8 GB if none of your customers are ever going to have that much and you'll never come close to needing that much? The only thing that's going to do is make sure your product only works well on your computer.
My advice: use the hardware that just *barely* allows you to code and compile at an efficient pace (as in, builds take less than 10 seconds to produce), then test on a much slower computer with very large data sets. By forcing yourself to use your product on underpowered hardware, you'll guarantee that your product will absolutely SCREAM on the computers your customers will use.
Mike on July 28, 2008 4:37 AMNobody seems to have commented on the fact that to utilise anything over 3G of memory, you're going to need a 64-bit OS, and even then, with most motherboards, you're likely to have a big unusable hole from 3G-4G.
To the uninitiated, Dan is the man when it comes to all things hardware.
http://www.dansdata.com/askdan00015.htm
It's a shame Apple programmers can't do this
Man, I'm getting a little sick of the little Apple digs Jeff. I've been a Mac user for a few years now, prior to that a long time windows user.
I use Macs because as a web developer it is unarguably the most productive environment for my work.
OS X isn't the best environment for everything; nor is windows.
I read blogs like this and a few other Windows dev blogs because I like knowing what's going on in all areas.
Religion; be it hardware or software; just bores me.
How about keeping the balance eh?
Indeed, there is a very big difference between two, four, eight or 64 cores for a server; and there is not so much of a difference between a one, two or three GHz core. This is one of the things that you will _not_ learn by building your own system (as others have said, putting LEGO bricks together will not teach you about plastic processing).
The comparison between SQL-queries on your own home computer and your webserver really don't mean anything because you're using different metrics and different benchmarks for the both of them.
If you really want to learn something about the internals of a computer system, please pick up a book on the matter and learn something about CPI, clock frequence, Amdahls Law, throughput and performance and all those other things that concern computer speed and their inner workings. I recommend Computer Architecture: A Quantitative Approach by Hennessy and Patterson. Even in chapter one you will learn more about the topics at hand than in a day of building your rig.
Finding out how to plug RAM-modules into their sockets or finding the best deal for a processor will not make you understand the parts better!
Shezi on July 28, 2008 4:59 AMJeff,
Your recent posts have been making me think. This post made me write a whole post on my blog. Please check and comment at your convenience:
http://srmrt.blogspot.com/2008/07/programmers-should-understand-hardware.html
Regards
Mahesh
http://srmrt.blogspot.com
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.
I saw at least two comments about insisting that developers should have normal machines, or a second slow machine for testing. The intent of these comments is spot-on, however the approach is old-fashioned. With a powerful enough computer, you can simulate any combination of environments using VMs. For example, you can throttle back the RAM to just 512MB and test the performance of your application to see how it behaves. This is the modern approach to solving the same class of problem they mention. Granted, if you're doing low-level benchmarking tests, then you will need the actual hardware.
Lee Grissom on July 28, 2008 5:19 AMProgrammers shouldn't have normal machines... testers should have normal machines. Programmers should have the most blinding fast PC's they can. My PC at work is quick, but I'd like it to be faster still... I spent too much time staring at a blank screen while my apps compile.
Kris on July 28, 2008 5:34 AMOf course building a PC from a list like this doesn't get you a better understanding of how your software runs, although it's fun and gets you a great PC.
But doing the research does! Making informed decisions about RAM size, #cores vs clock, 10k vs 7k2, make me a smarter programmer, I think.
Until a few months ago, I wouldn't have known what to do with 8GB, but since I've been using virtual pc's it's pretty clear...
Erik on July 28, 2008 5:41 AMBuilding your own PC teaches you as much about the underlying hardware as plugging in a set of headphones teaches you about acoustical engineering.
I built myself a half dozen PCs before I learned (from other sources) what the CPU was actually doing when executing code.
Writing assembly will teach you more about the hardware than snapping a few components onto a motherboard and stuffing the whole thing into a case will.
Maybe this is a minority opinion, but I find understanding the hardware to be instructive for programmers.
Says the guy who can't see the point of learning C! ;-)
I'm a bit burnt out on hardware these days!
I used to have a sideline writing about hardware for www.HardwareCentral.com and also for www.TheInquirer.net - my evenings were spent tweaking my computer and keeping on the cutting edge.
These days I've got a laptop at home, which is nice quiet and reliable :)
I still enjoyed hearing about the latest graphics card or processor developments, but I'm not the walking hardware wizard I used to be.
Perhaps I'm just getting too old, but the outside world looks more appealing than sitting in front of a computer a little more each day.
Peter Bridger on July 28, 2008 6:06 AMdude you must really understand hardware, especially pipelines
amused on July 28, 2008 6:07 AMI don't think Radeon HD 4850 can support CUDA Applications. IMO better to choose a nVidia 8 or 9 series GPU. nVidia is far ahead of ATI in GPGPU programming.
Sarath on July 28, 2008 6:12 AM@Nick++: Display: avoid the TN crapola. Nothing less than Dell 2408WFP.
Really? I agree TN displays are useless, and the 2408WFP does sound good on paper, but it is getting absolutely slated on the Dell forums.
Loads of complaints about input lag, sharpness halos, uneven backlighting, pink colours.
Read the problems described in this (extremely long) thread:
http://www.dellcommunity.com/supportforums/board/message?board.id=dim_monitorthread.id=90203view=by_date_ascendingpage=1
The Rev A01 of this monitor is going to hit the Dell stockroom soon.
I'm waiting to see if they have fixed any of the issues before I jump.
What about SSD for HD performance? What pains me about PC gaming is the absurd amount of load times. I remember the days when it took less than 30s to start playing a game. Now Mass Effect (PC version) takes about 3 to 5 minutes to load plus a bunch of in-game load. Would a fast hard drive (or a SSD) mitigate reasonably that time?
Hoffmann on July 28, 2008 6:18 AMI first used a video card that supported 4 monitors around 15 years ago in the early 90's. STB (Simply The Best) had one (it was physically enormous) and they supplied drivers for Windows 3.11. The thing that impressed me the most was this space game where you were flying through a tunnel and your craft was stationary on the right hand side of the right hand screen. Your attackers would enter from the left of the left screen and fire at you but with 4 monitors it would take forever for them and their missiles to reach you. I was unbeatable if I didn't let anybody else use the single STB card that the company had bought.
Guy Ellis on July 28, 2008 6:30 AMi would prefer a quad-core if you develop for the web or develop serversoftware or use databases intensively.
All these tasks are implicit made for parallel usage with many clients.
If you, for example, let xenu spider your website-project afer a refactoring, a quadcore machine is nearly twice as fast as a dualcore.
Same goes for databases or other client-server software with concurrent usage.
I think to buy a computer ready made is much quite better than building your own. Plus, you don't have warranties when you build it on your own.
Here are a few examples of parts warranties that apply to the parts I put in the computers I build every day at work (these are the ones I know off the top of my head):
Intel CPU: 3 years
Western Digital Hard Drive: 3 years
Kingston Memory: FOREVER
I think the MSI motherboards we use come with a 3 year warrantee as well, but I don't remember. Compare all this to the 1 year warranty you get at Best Buy.
Also, I love heatsinks, too Jeff! I just traded in a 39 lb box of retired aluminum heatsinks at the local scrap yard for $25.
@Mike: I mean, can you honestly tell me why you want 8 GB if none of your customers are ever going to have that much and you'll never come close to needing that much?
Of course: I'll have to work highly in parallel with many different programs in alteration:
-Visual Studio 2003, 2005, 2008
-Macromedia Flash
-Photoshop
-IE7, Safari, FF, Opera, every with dozens of tabs
-Virtual Machine with IE6
-Office (MS Word, Excel, Outlook and Openoffice + Thunderbird + some other mailclients for testing purposes)
-Adobe Reader
-SQL Managment Studios
-some Terminal-Service-Clients
-and many other special programs.
-some background-tasks such as SQL-Server, indexing, and other
Once started, they stay open to lower the program-change-duration-penalty.
You need a lot of CPU-horsepower, and:
Nothing beats much of RAM - only more RAM...
Well done for step 1 Jeff. Now, when can we expect to see posts about:
memory usage v caching (the reason people like to see free ram is that the cache is not shown on windows)
multi-core programming and how having multiple physical cores makes it harder and slower, along with discussion of context switching, heap-memory allocations and its impact on cache sloshing.
Hard drives and how slow they are in relation to the rest of the PC, along with discussion on how to speed them up and provide fault tolerance especially with regard to 'fakeraid' and full RAID systems and how some types of RAID are really not a good idea for some software tasks.
How branching statements can impact CPU performance, and how graphics card-based parallelism can work for your business-app software.
While you're working on those, keep postin 'cos we still like these hardware-porn posts :-)
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.
A Windows user I see. As Windows is the exception in this department rather than the rule. Because for just about every other OS I know of drivers that do not work in 64bit mode are rare, GNU/Linux, *BSD, Mac OSX, etc. All of these have plug-n-play 64bit drivers (and if they're not plug-n-play then they're not so in 32bit either).
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.
This, however, is quite true most systems don't really have much use for ~2GB of physical memory (per system, not just per process). There are plenty of exceptions though, 3D rendering, video encoding, etc. Just about anything that'll run faster with more cores can also take significant advantage from more memory.
@Nick Display: avoid the TN crapola. Nothing less than Dell 2408WFP. Pick 2 if you want to stare at a black divider in the middle. Pick 3 if you want two of them falling off your desk.
I have a 2407 at home, and I've been looking around for a second 4:3 monitor to side alongside. The hard part is getting something 1600x1200 with the correct height to match the 24 screen. No-one ever lists the dimensions of the actual panel, only the diagonal.
Also, regarding multiple video cards - there's also the option of a few (but only a few) different PCI-e 1x cards, and a cheaper mobo. If you don't mind that your auxilliary screens are less snazzy (like they would have been with AGP+PCI), it's potentially quite a saving.
Howie on July 28, 2008 6:56 AMPeople think you need 1.21 Jigawatts to run a powerful desktop system, but that's just not true.
Sorry to be picky, but its spelled Gigawatts...
Meis
What about the case?
+1 on that. I bought an Antec P180 sight unseen for my current system, partly due to your recommendation, and while I can't fault the quality, it is, basically, a boat anchor. 14Kg (31 lbs) without PSU, and ridiculously bulky. There's got to be a less obtrusive solution...
Roddy on July 28, 2008 7:04 AMReally? I agree TN displays are useless, and the 2408WFP does sound good on paper, but it is getting absolutely slated on the Dell forums.
Actually, I must admit that only own a 2407, which I am extremely happy with, and I just assumed that the 2408 is an incremental improvement. Mea culpa.
I do have a calibrator (the Spyder2express) which I deem essential in getting the most out of your display(s).
Nick++ on July 28, 2008 7:20 AMocz now makes some solid state drives that are certainly boot drive worthy, and are reasonably priced!
dnm on July 28, 2008 7:25 AM I'm a big triple monitor guy, so I insist on motherboards that are
capable of accepting two video cards -- in other words, they have
two x8 or x16 PCI Express card slots suitable for video cards.
If you're playing games and running Vista that doesn't do you a whole lot of good. Vista doesn't support monitor-spanning video resolutions.
I solved the problem by buying a TripleHead2Go ( http://www.matrox.com/graphics/en/products/gxm/th2go/ ). It makes all three of my monitors look like one big monitor to Vista. If you got one of those, perhaps you wouldn't have to sweat out which motherboard you get quite so much too.
T.E.D. on July 28, 2008 7:25 AMThe P180/P182 is heavy just like the Solo is heavy for one very good reason. It reduces transition of vibration from the moving parts in your case.
P180 31 lbs at 21.3 tall
P182 30.9 lbs at 21.3 tall
SX835II 25 lbs at 20.6 tall
Solo 25.3 lbs at 17.5 tall
Sonata III 500 20.2 lbs at 16.7 tall
Admittedly when we get rid of the last hard drive on the planet and stop using DVD burners (or similar rotating media) we won't need mass to absorb vibration.
Until then anyone that cares about a quiet PC will buy a case that is heavy for it's size class.
dhanson865 on July 28, 2008 7:35 AMuggh, transition should be transmission in that second sentence. I'm not a morning person.
dhanson865 on July 28, 2008 7:38 AM... Here's an example: SQL Server 2005 queries on my local box, a 3.5 GHz dual core, execute more than twice as fast as on our server, a 1.8 GHz eight core machine
the server outperforms, hmm... still in use?
Nikos on July 28, 2008 7:42 AM@Mike: My development box had an 867 MHz CPU and 768 MB of RAM.. use the hardware that just *barely* allows you to code and compile..
Hmmm.. an interesting point of view Mike, but time is money. If all the developers on a product spend an extra half hour a day waiting on the hourglass (for builds, or large documents opening, or unit tests completing) then that would push up the cost of the final product. I doubt many customers will thank you for that.
Also, as titrat points out, the demands on a developers machine are vastly different than those of a customer. I expect (or hope) that my customers won't running the the debug build of the product via an IDE with five other development tools open at the same time.
Graham Stewart on July 28, 2008 7:44 AMThis is the kind of post I love this blog for. Software developers are often truly systems engineers. And hardware is a critical base for all software systems. Even if I don't agree with your hardware decisions, I love the analysis involved. Thanks, Jeff!
Michael on July 28, 2008 7:44 AM@dhanson865: Thanks - I hadn't considered that factor. However I suspect the P180 mass is designed to cope with 'silencing' a fully loaded set of drive bays, whereas one or two HDDs is probably more typical.
My development box had an 867 MHz CPU and 768 MB of RAM.. use the hardware that just *barely* allows you to code and compile..
I'll have to chime in with the detractors here. The *real* lesson from your setup (and mine too. I have separate test and build machines as well) is that you should have one system specced out like a customer (or target) system, and another for development.
The customer system should *not* be hotter than your minimum spec. Ideally it should match it, but not all applications can do that.
The development system needs to be tuned for development. That means lots and lots of RAM, two monitors at least, and a good CPU, in roughly that order. If you have to make trade-offs, don't trade down the RAM. When your compiler runs out of RAM, it goes *way* slower.
T.E.D. on July 28, 2008 8:13 AMJeff,
I still can't thank you enough for helping me pick out the parts for my new computer (http://secure.newegg.com/WishList/PublicWishDetail.aspx?WishListNumber=4988809).
I've had absolutely no problem with Vista x64 drivers, but that's probably because I obsessed for over a year picking out parts. It's been a great investment, lowered my energy bill, and got me into TF2.
The single problem I've had, which seems to be a problem with Vista itself from what I've read, is coming back from Sleep mode. Clicking the mouse button brings it back to the desktop within a couple seconds, but a little more than half the time, the mouse is frozen unless I unplug it from the USB port and re-plug it. I've changed all the power settings for the USB Root Hub to keep it powered during sleep, but nothing seems to work. Small price to pay for a monster machine I can't hear from 3 feet away.
I don't think I'd have been nearly as happy if I hadn't gotten the VelociRaptor, also.
Chris Doggett on July 28, 2008 8:14 AMFor what it's worth, I'd like to defend the Apple alternative. I used to build my own machines (or at least modify them), and also used to run both Windows and Linux. But now I have a Mac (although I still use a Linux box as a compute server sometimes), and I'm a lot happier.
I agree that building machines and installing and maintaining an OS is a valuable educational experience. But I finally got to feel that it wasn't an educational experience that I needed to repeat.
As someone who almost exclusively uses Open Source software (to me the Mac is mostly just a very capable Un*x box), I am sorry to have to say this, but I actually APPRECIATE the closed hardware platform. I'm just tired of having to figure out whether I should use the Windows driver or the Intel driver for my wireless card, or which of the n+1 linux sound servers I should be using right now (and how it will or will not play with the other applications running at the same time). And I'd rather not install an Operating System ever again (although I'm sure I will).
Yes, all this was educational, but every day I spend doing this is one off the finite pool I have, and futzing with boxes is not what I get paid to do, nor is it fun enough (or different enough from my day job) to be a hobby.
So until something else comes along, pour me another glass of the Kool Aid, Mr. Jobs.
Robert on July 28, 2008 8:27 AMI also find your hardware post very interesting and insightful, probably because I am rather ignorant in this area. I just got done building my first PC, and I went all-out. I will blog about it soon. I also went with the 300GB VelociRaptor, and it is amazing. Speaking of enormous heat sinks, I went with the Zalman and it's mammoth. I was somewaht disappointed with its cooling power though, I was at about 64C on core #0 after 4 hours at 100% with Prime95 (based on CoreTemp, not sure how accurate it is). I was expecting to hardly break 50C. Any tips?
Josh Stodola on July 28, 2008 8:41 AMThe comments to this entry are closed.
| Content (c) 2012 Jeff Atwood. Logo image used with permission of the author. (c) 1993 Steven C. McConnell. All Rights Reserved. |