Saturday, July 12, 2008

What to do when a computer arrives.

This post is also known as "Your computer could be a chemistry experiment waiting to happen".

In my previous post on how to buy a computer, I briefly covered what to do when you receive a new computer but focused much more heavily on the topic of how to actually go about buying a computer. In this post, I will cover what to do before you use the computer for the first time to make sure what was built and sent to you is actually a quality product. You spent good money, let's make sure that no one cut corners where they shouldn't have and that all the parts are indeed correct.

This first part requires you to be static free. First, pull the computer out of the box. Now go touch a doorknob while grounded. Now, read the computer manual for opening up the box and follow the directions. Usually thumbscrews or screwless entry is used these days making it easy to open it up. Yes, it is scary, but opening the box won't void the warranty or service contract. The computer won't bite. Promise. Besides, in many areas of the world, the computer will likely have been sitting in an extreme temperature. Opening the box up will allow it to reach room temperature much more quickly.

Once the box is opened, check for condensation. If you see condensation, don't plug the computer into the wall for several days. Water and electronics don't mix.

The first thing to do is to take out one of the sticks of RAM and look at the pins. Gold should only touch gold connectors. Tin should only touch tin connectors. If the manufacturer mixed the two metals, you will get very slow corrosion that eventually introduces data errors, application crashes, and eventually blue screens. Like metals should only touch like metals. I picked this odd tidbit of information many years ago when I was building a system and the motherboard specifications said "gold pins" for the RAM. I did some Google searching and apparently manufacturers don't pay attention to this. If your manufacturer mixed metals, they are obligated to provide replacement RAM. Return the RAM to its cradle.

Next, go over and make sure all connectors are firmly in place. This includes all expansion cards.

Look at the direction of the CPU fan and where the graphics card is (if any). If the CPU fan is going to be blowing air onto the graphics card, then the computer is poorly built and will likely cause the video card to lock up. Send the computer back to the manufacturer or look for an alternate way to keep the system cool (e.g. liquid CPU cooler).

Check to make sure all hard drives are well-ventilated. Hard drives that get too hot have a reduced lifespan.

Make sure cables are out of the way of the main cooling system.

Check the CPU for anything suspicious. By this, I mean a loose heatsink, nearby wires that could melt, etc. CPUs and GPUs run hot. Most are in factory-sealed containers, but if they are open, it should be easy enough to tell. Most major manufacturers are usually pretty good about case design.

Make sure the motherboard is properly seated. This is harder to tell, but it should be firmly in place. If not, and you feel brave enough, take a screwdriver and tighten down the screws.

Search the Internet for each card and component on a separate computer. Make sure they are without fault. Be sure to check forums to see what people are saying about each item. Most items are OEM instead of retail. Cheaper, but sometimes lower quality with a higher fault rate. If possible, also try to determine the brand and model of the motherboard. Download the motherboard specifications from the manufacturer's website and make sure images match up. Figure out who exactly manufactured your video card (remember the GPU and the card itself are manufactured separately) so you can head off any trouble in advance.

Also, keep in mind that there is such a thing as "pirated hardware". Only a trained eye can spot the difference but if you experience problems with a particular component and replace it and the official component works as expected, perhaps you were using pirated hardware (even lower quality and very hard to detect).

Close up the box. Follow the directions to set up the computer.

Now reinstall the OS. If the manufacturer did not send you an OS reinstall disk, call them up and tell them to send one. Manufacturers are obligated to provide you one backup disk if you ask for it. If you have never installed an OS before, it is somewhat scary. Microsoft Windows is actually wizard/GUI-based and fairly automated once you get past the scary text-based interface. Reinstalling the OS removes all the junk the manufacturer installed that would significantly slow down a perfectly fine PC. Reinstalling the OS is usually fairly simple - turn on the computer, put the CD/DVD in the DVD drive, turn off the computer (hold the button for 5 seconds - don't worry, this won't hurt anything since you're going to wipe the drive anyway - it just forcefully turns off the computer), and then turn on the computer again. You may need to reboot again and press F2 or F12 or something similar to enter the system BIOS to change the boot order so that the CD/DVD drive is looked at first in the boot process instead of the hard drive.

After reinstalling the OS, you will note that it likely looks "ugly". Now you need to reinstall missing drivers. Typical drivers include audio, video, and display drivers and any drivers for third-party components (e.g. a digital camera, printer). I recommend installing the video driver first, the display driver if the monitor(s) is not recognized, and then the audio driver. If you have dedicated video and audio cards, go the respective manufacturer websites and download just the drivers for those devices (e.g. ATI has a big ol' GUI interface download and a drivers-only download - you really only need the drivers). I've found that after installing updated video drivers, it takes a couple reboots to "fix". Repeat the procedure for any third-party components you wish to use.

Depending on the OS and patches installed (e.g. Service Packs), you may need to install the latest updates for the OS before you install a specific driver. Pay close attention to what is the minimal needed.

Once you are done installing drivers, go to the OS update site and install all updates for the OS. This may require repeating several times and several reboots until all updates are installed. You should be connected through a router to the Internet. A Windows-based computer (especially an unpatched computer) not behind a hardware firewall will be compromised in under a minute on the big-bad Internet. The only way to clean a compromised system is to reinstall the OS. You have been warned! Get a good consumer router and put it between your computer and your cable/DSL line.

Once you have reinstalled the OS, the drivers, and it has been fully patched, reboot one last time. Now, install all the applications you want to use.

Once all the applications have been installed, check for updates to the OS and then each application. Repeat until the entire system is fully updated and set up.

Reboot one last time. Now you are ready to use the computer.

That is a painful process, but one you won't need to repeat for many years to come. This should produce a quality experience even for the cheapest of computer systems.

Every once in a while (once a year), you should open up your computer and take some compressed air for computers and, with the computer turned off, blow out most of the dust buildup. Also, look for the button battery on the motherboard and make sure it isn't corroding (don't remove it to check! It keeps the system time alive!). Remove a RAM chip to make sure the pins aren't corroding and then put it back into the slot. Make sure nothing looks "burnt". Close the box. You should backup the data on your hard drive (burn it to DVD or copy it to an external USB hard drive or use a secure online storage service or...LOTS of options). After backing up your data, do a defrag.

How to buy a computer

This blog entry isn't technically about software development, but every once in a while, we all need a shiny new computer. With all the latest overhyped buzz about the economy and gas prices (I've heard predictions that gas could easily be $10/gallon next summer - there is no "ceiling", but I've never deluded myself into thinking there was), if you are thinking about getting a new computer, it might be time to take that thought a tad more seriously. If gas prices skyrocket, then today's $3,000 PC could be $10,000 tomorrow. Maybe. Maybe not. Just a thought.

At any rate, I'm not wanting to talk about the economy. What I want to talk about is the infamous question, "What computer do I need to buy?" I get asked this question frequently. There are a LOT of choices, so it is no wonder that people get confused and just want some guidance without being made to feel "dumb". Most people buy without thinking and then later regret the purchase.

The first step is to determine your needs. If you develop software, then you need a machine that can crunch through compilations fast (nothing is worse than waiting for a compiler to do its thing). If you play games, then you need a "gaming rig". If you just surf the Internet and word process, then almost any computer will be fine. If you plan on doing multimedia, then you need to look at hardware that will support that...and possibly not even a PC.

The next step is to determine "build vs. buy". That is, do you want to build it yourself or let a company like Dell or HP do it for you? There are some advantages to building it yourself, but, from personal experience, it tends to be cheaper to buy from a major manufacturer and takes a lot less time too. The hardest part with building is getting the base box built properly - the case, power supply, and motherboard don't always work nicely in terms of layout. And then you have to be willing to sit down and sift through the motherboard manual and know what "jumpers" are, know how to seat a CPU, etc. Basically, one big pain (an even bigger pain if the wrong motherboard gets shipped to you). But you do learn how to build out a computer. I highly recommend having a good "geek" friend to help you out when you get stuck if you decide to build instead of buy. If you decide to buy, be sure that the first thing you do is reinstall the OS. Make sure the computer manufacturer sends you a CD/DVD with the OS on it - even if you decide to not reinstall the OS, some geek in your not too distant future will likely recommend an OS reinstall and will ask for said disk. Reinstalling the OS removes all the junk the manufacturer put on the computer, which, BTW, will drastically improve system performance out-of-the-box. The downside is reinstalling the drivers for the hardware can be complicated.

The next thing to do is to determine your budget for the computer. A lot of companies (e.g. Dell) have payment plans. I personally prefer to pay for things up front, all at once - otherwise, you end up paying a lot more for a lot longer. $400 will get you something you can surf the Internet, check e-mail and Word process with. You can do multimedia, programming, or anything else too, but either performance or quality will likely suffer. A $400 computer might not be very specatular, but it'll work just fine for almost any task. $3,000 is about where you start getting into high-end hardware (e.g. gaming systems). $5,000 is going to get you bleeding-edge hardware/software designed for Enterprise-level applications (e.g. servers). You want to buy something that will last about 5 to 10 years and yet meet (perhaps exceed) your needs. So plan your budget for the computer such that you will have paid off the computer long before 5 years is up. Keep in mind that this industry moves so fast that a mere 6 months from now, any computer bought today will likely be considered "outdated". But as long as it continues to meet your needs, then it isn't "outdated" for you.

The next thing to do is determine what OS and software you want to run on the hardware. Microsoft Windows isn't always the answer. And neither are PCs. Apple has iLife. There is no equivalent of iLife for PCs, and even if there were, I wouldn't touch it. The hardware (drivers) and software (DirectShow) interfaces for Windows are too..."flaky"...for lack of a better word to do any serious multimedia work. By multimedia, I mean audio recording, editing, and mixing, video transfers, editing, and publishing, creating video DVDs, transfering/uploading to iPods, YouTube, etc. Still images from digital cameras work just fine under PCs, but when you start fiddling with real multimedia, you need to have system stability and performance. Application crashes (even OS crashes) and lousy performance runs rampant in the multimedia department thanks to the lousy nature of DirectShow - one of the most horribly written pieces of software ever. I'm a big Windows fan, but even I know its limitations. Windows is great on the business application and gaming frontlines. Mac OSX is great on the multimedia front. Linux is great on the server front. Oh sure they can each do some of it all, but those are the areas in which each specific brand is strongest.

Now that you've got the basic idea of what you are looking for, it is time to get to specifics.

If you just need to surf the web, check e-mail, and word process, then any PC (or Mac) will work fine. You can save a lot of money by NOT purchasing Microsoft Office. Open Office is generally "good enough" and is free. Thunderbird is a free e-mail client. And Firefox is a free web browser that tends to be more secure than Internet Explorer (but I personally like IE for surfing, FF for web development, and both are free under Windows).

If you need to interact with various devices such as a digital camera, then you might want a teensy bit more power behind the computer and a card reader. Not really required. A $400 PC will do photos just fine - although, you will probably eventually want to invest in an external USB hard drive if you take a LOT of photos.

If you need to do multimedia, take a serious look at a getting a Mac instead of a PC. If you are familiar with Windows and PCs, Macs are somewhat foreign and do have their own sets of issues but, by far, have a superior multimedia suite (iLife) when compared to the out-of-the-box Windows multimedia support (basically none, Movie Maker is about the limit and even that is lousy).

If you are a student in high school or college and are thinking about a laptop, you might want to take a look at what is called a Tablet PC. A lot of tablets now are "hybrid" laptops with a regular keyboard that can be swiveled out and used. Combining a Tablet PC with Microsoft OneNote creates what I'd consider to be as close to "digital paper" as is possible. Most tablets have built-in microphones that can record the classroom while you take notes. You can then play back (within OneNote) the notes and audio later and they are synchronized. If you hook up a webcam, you can also record a synchronized video of the session. This is a huge plus over a laptop since you draw on the screen, (IIRC) it OCRs the handwriting to make the notes searchable, and you can quickly play back audio at a specific point in the notes to determine why you wrote down something (or, if you have terrible handwriting like me, make out what it is you wrote). Laptops don't cut it in a classroom setting - there are all sorts of charts and graphs to copy off the board, which can only be drawn by hand. The only downsides to a tablet are that they have the tendency to have lower lifespans than regular laptops (typically from dropping them) and they tend to be slightly more expensive.

If you need performance (gaming, writing software, serious data crunching), then you need to start looking at customizations and more expensive gear. This is where this blog entry starts getting interesting.

The major bottlenecks in any computer that determine overall and perceived performance are between the three most critical resources in the computer: CPU, RAM, and hard drive. If you are a gamer or want to buy your first real gaming rig, then you have two more critical resources to consider: GPU and APU.

Let me start with the CPU (Central Processing Unit). Most people think the speed of the CPU defines the speed of the computer. In the past, that used to be true. But today's CPUs tend to sit around idly doing a whole lot of nothing. Not entirely true, but the CPU is almost always the fastest component in the computer, typically waiting on other components to finish doing stuff. When selecting a CPU, you may want to rely on CPU benchmarks to help you decide. tracks CPUs in use and how they stack up against each other. The battle is usually between AMD and Intel - one or the other has the lead. Now we probably all want the latest and greatest, but keep in mind that the high-end CPUs at the top of the high-end chart on are typically multiprocessor (i.e. more than one CPU) and are fairly costly systems as a result (expect to pay around $1,200 per CPU in the #1 position). While a good CPU does have advantages where heavy number crunching is involved, the CPU isn't typically where bottlenecks reside. Additionally, most applications don't take advantage of multiprocessor systems (including video games).

The major performance bottleneck is actually RAM (or, perhaps more accurately, motherboard bus speed). It isn't how much RAM you have (well, anything under 2GB is likely to take a performance hit), it is about how fast the RAM is. CPUs have onboard memory caches that are incredibly fast because requesting data from RAM is many times slower. When selecting RAM, watch for the speed of the RAM. The faster the RAM, the better performance you'll likely see when moving large chunks of data around. Of course, the RAM has to match the motherboard or the motherboard won't recognize the chip and/or do weird things. Also, you need to decide how important ECC RAM is. ECC RAM is self-error correcting RAM. It costs more, is typically slower than non-ECC RAM, but if you need reliability and stability above performance, ECC RAM is the only way to go.

The last major performance bottleneck is the hard drive. The hard drive is actually the slowest component in any computer. The faster that data can be read into RAM off the hard drive, the faster a program will load. Unfortunately, hard drive speeds are relatively the same. However, keep hoping that 64-bit OSes finally take off. Major computer manufacturers are shipping computers that are 64-bit capable and can handle more than 4GB RAM but they install a 32-bit OS and that, in turn, restricts the limit to 4GB RAM. Back in the DOS days, we had a RAM drive device driver that turned a section of RAM into a drive letter. It wasn't widely used for various reasons (mostly because RAM was very limited) but was very fast. It disappeared with the advent of Windows 95. With 64-bit OSes on 64-bit hardware with 64GB+ RAM, it is conceivable that the RAM drive could make a comeback. It wouldn't solve the hard drive bottleneck, but could alleviate it.

Now that I've covered the basic performance bottlenecks, onto the gaming system-specific ones. I love a good video game, but figuring out which video card to buy is complicated. I don't really track the industry too closely and generally have to re-learn it when I go to buy a new video card. The 3-D graphics card industry is littered with confusing acronyms and letters and manufacturers. For this reason, I typically look around for a good comparison chart and hope that someone has one with my current video card and the absolute latest, bleeding-edge video card (used to be a problem - seems someone has stepped up to the plate...more on this in a bit). Another problem with video cards is that you have to match specifications exactly. The standards for video ports are constantly changing and making new acronyms (PCI, AGP ...x, PCI-E ..., etc.). Of course, this usually means that the latest and greatest cards won't work on existing hardware - requiring a whole new PC to play games. Very annoying. And expensive. Anyway, I digress.

Thankfully, there are only two real players in the GPU (Graphics Processing Unit) market: ATI (merged with AMD) and nVidia. I used to be a nVidia fan, but, for the same amount of money, ATI seems to have higher-end hardware that also seems to perform better. That can always change through competition, but I got fed up with nVidia cards giving me consistently lousy results on 3D benchmarks and performing poorly in games despite supposedly being more capable than ATI. I plopped in an ATI card once just to see if it would be different and it performed way better. I don't like ATI's control panel though - too invasive. This is my personal opinion - many people like nVidia.

There are two types of GPUs: Gaming and CAD. Gaming GPUs are the most common and are for cards that will be used in gaming computers. CAD GPUs are geared for specialized CAD applications and tend to be more expensive due to their relative rarity. A gaming GPU can be used for CAD but might not render some things "properly". A CAD GPU can be used for gaming but will have reduced framerates and possibly introduce odd artifacts.

One more thing: You have to be aware that GPU manufacturers don't actually make the video cards themselves. They merely make the GPU. It is up to other manufacturers to make the boards the GPUs go on and then sell them (what card you buy doesn't actually come directly from ATI/nVidia). Some manufacturers are better than others. Some manufacturers overclock. Others don't. Some even underclock. Some cards are better built. Some cards have poor cooling.

Picking a GPU is hard enough. Finding a reliable graphics board manufacturer is harder. You also need to decide how many monitors/displays you will be using. One? Two? Four? That will also affect your decision on which manufacturer to buy from.

Do lots of research before picking a card. It used to be pretty cut-and-dry...whoever could crank out the most texels won. Now there are a zillion factors to consider.

ATI comparison chart
nVidia comparison chart
Compare two cards side-by-side

The first two links allow you to figure out what is the "right" GPU, which, as always, is as clear as mud. As far as I can tell, they (Hardware Secrets) have kept up with every change over many years. I used to have to hunt forever to find a good website to figure out what the latest video cards are. The last link allows you to compare two cards side-by-side and then see prices for the card and whether the manufacturer overclocked/underclocked the card. My personal recommendation is to find cards with comparable prices and see how the GPUs stack up against each other. Expect to spend about $400 for a bleeding-edge card and $250-$300 for a good card that will likely last a few years. Keep in mind though, you can have an awesome video card, but if the CPU or RAM are performing poorly, so will the video card. Also keep in mind that the graphics card market moves faster than anything else in this industry. A new card comes out every couple months. Although, that breakneck pace will hopefully change as the manufacturing die for the GPU gets smaller and heat-dissipation issues increase.

Finally, we reach the APU (Audio Processing Unit). Or lack thereof, as is in many cases. This enters into the obscure world of dedicated CPU vs. letting the main CPU process data. Audio processing is CPU intensive. If you are playing video games, you will want a dedicated audio CPU (APU, or DSP, depending on who you ask) to be sitting on a dedicated audio card. A lot of motherboard manufacturers include what is known as "onboard audio". Anything "onboard" means that the main CPU has to process the data. A dedicated APU is more costly but frees up the main CPU for other tasks. Soundblaster/Creative Labs/whatever-they-are-named-this-week is currently the leader in putting together decent audio cards, but they are getting lazy and complacent and that behavior shows through their lack of concern for their bloated audio drivers and problems people encounter with their cards (lower manufacturing quality). The only reason they are still in business is because of the Soundblaster 16. Basically, the same reason why Borland/Inprise/whatever-their-name-is-this-week is still in business (Turbo C)...customer loyalty.

A word on overclocking. Overclocking is a strange word until you explore its meaning. Every computer has an internal clock. Basically, a timepiece like a watch but much more precise. Overclocking goes over the recommended clock speed. Overclocking is, IMO, a very dangerous practice. Computer systems run hot as they are now, but overclocking pushes the thermal limits of the hardware, introducing failures at higher rates for only slightly modest gains in performance and typically burns out components sooner than their life expectancy. Many companies that overclock include a "liquid cooler" system to counter the overclocking. Liquid cooling may become defacto standard eventually, but for now it typically indicates that the system is overclocked. Play it safe and don't buy an overclocked system.

Most people buy a computer and a monitor at the same time. I've discovered that sometimes that works out, but most of the time, the monitor isn't very good or could have been gotten more cheaply elsewhere. Or, in the case of multiple monitors, it is ideal to buy all monitors at the same time. The reason to do this is so that you have identical colors and brightnesses on all the monitors. Even if you buy the same monitor several months apart, the manufacturer could change the way they make that model that noticeably alters the quality and/or color accuracy. Additionally, as a monitor ages, the backlight/tube fades/dims.

Finally, don't buy accessories from the major computer manufacturers. Or, if you do, make sure you are getting a good deal by shopping around first. Oh they will highlight various items and tell you how great a deal they have on those items, but more than likely you can get them much cheaper elsewhere on the Internet. Both hardware and software accessories. Don't get sucked into thinking they are the only place to buy the item. You can easily save $20 to $250 on most items by looking elsewhere.

Whew! That is a rough overview of how to buy a computer. If you made it this far without your head spinning, then you should be more capable in making a confident purchase. Buying a computer is an expensive endeavor. Treat it like any major purchase - with carefully thought out actions (or inactions - perhaps you'll decide you can't spend money), not being upsold/marketed to. If emotions come into play or you feel pressured, back off from the sale until you've had some time to ponder it. Upsells will easily go way beyond your budget. Be very careful and watch the pricetag closely.