Archive for the PC Category

Star Wars Chess
IBM PC (1993)

Choose either the Dark or the Light Side of the Force and battle enemy forces in this galactic version of chess that takes place a long time ago, in a galaxy far, far away.

In the late 80’s, Interplay’s Battle Chess reinvented the computer chess genre. In Battle Chess, each chess piece was portrayed by a character on a three dimensional chessboard. The game followed the same rules as the classic board game – the only difference being when one piece captured another, it was visually portrayed on screen through light-hearted animations. Characters clobbered one another in humorous ways throughout the game, and the game’s sense of humor along with its stunning graphics and animation launched an entire wave of similarly styled chess games.

One such game was Star Wars Chess, by Software Toolworks. Like all the other Battle Chess clones (Terminator 2 Chess, Cyber Chess, Chess Maniac Five Billion and One, etc), Star Wars Chess replaced standard issue chess pieces with recognizable characters, this time from Lucas’ franchise. Each side (light and dark) has unique characters: Luke and the Emperor serve as kings, Princess Leia and Darth Vader act as queens, an army of R2 units and stormtroopers represent pawns, and so on. Although the game’s graphical mode is quite dated, the characters themselves are quite detailed and gamers should have no problem recognizing their favorite trilogy characters.

Most graphical chess games suffered from a few common problems, and Star Wars Chess is no exception. The first problem is, while it is simple to tell what chess piece a character represents before the game starts, after pieces begin moving it becomes more difficult to remember. Is Chewbacca a rook or a knight? What about Boba Fett, or Tusken Raiders? Chess taxes your brain hard enough without having to constantly try and figure out which piece is what!

A second problem Star Wars Chess seems to have inherited from Battle Chess is painfully slow load times. When one piece takes another, first the animation of one piece walking is loaded and displayed, then the animated fight scene must be loaded and displayed, and finally the AI must make its next move. (Also worth noting is that each “capture” only has one animation, taking the cutesy animations from entertaining to boring in light speed.) Chess isn’t known for being a particularly fast-paced game, but Star Wars Chess moves like space- molasses, especially while waiting for the computer to move.

And speaking of the game’s AI, it’s not particularly good. Even moderately experienced players should have no problems making bantha poo-doo out of the computer’s defenses. Star Wars Chess does support two-player mode, but you’ll have to have to find another die-hard Star Wars fan with a LOT of free time on his or her hands to complete even one full game.

Star Wars Chess is only recommended for die-hard Star Wars fans who are also computer literate. It’ll take some work to get this game to run on modern computers. The game refused to launch under Windows XP, and I had to install DOSBox (a DOS emulator) and spend several minutes configuring it to get Star Wars Chess to work. The game ran so slowly that I often thought it had locked up, and the game’s interface is so sparse that I had trouble figuring out what piece I had selected, or occasionally which side of the board I was playing.

The Force is not strong with this one. Not even a little bit.

One of the greatest gaming series of all time was The Incredible Machine, which debuted for DOS in 1992 and was followed by several official sequels and the related “Toons” games. Each game consisted of dozens of levels, and each level has a specific goal that was achieved by creating a machine. Players, using a provided set of parts and tools, would create machines in order to complete a given task and move to the next level.

I really loved the Incredible Machines series. These games were less about speed and graphics and were more about thinking. Many of the levels had one obvious solution, but the game was so open-ended that you could literally solve each level a dozen (or more) different ways. It was what I had hoped the future of videogames would look like. Instead, ID Software released Doom, it caught on, and companies have been churning out Doom clones for fifteen years now.

Fast forward to last week; rumblings of a new game called Crayon Physics have been circulating for a while. Here is a demo of the game:

Obviously the game ia similar to The Incredible Machine, except players are no longer limited to a specific set of provided tools. Instead, players can create their own! As you can see in the video, any object you draw inherits the physics of that object. Wheels roll, ropes swing, axles pivot and so on. While the demo shows the game being played with a light pen, I can assure you that it is completely enjoyable and playable with an ordinary mouse. The video shows the creator erasing objects by “scribbling” on them. With a mouse, this is done with the right mouse button. Also in the video, the creator typically propels the red ball by dropping objects on it; by using a mouse, the left button pushes the ball to the right, and the right button pushes it back to the left.

The beauty of this game is that the only limits are your imagination. For example, some of those levels in the video I posted above look pretty simple to beat, right? Check out some of the creative solutions this guy came up with for those same levels!

Not only does Crayon Physics come with 80 levels, but it also comes with a very easy to use level editor. User created levels can be loaded, saved, and shared online. This game is begging to be ported to the Nintendo Wii or the Nintendo DS (there is a homebrew port for the DS called , but it’s not the real deal), but for now, I have no complaints with the PC version.

Mason played Crayon Physics for over two hours yesterday, working his way through the early levels and later creating his own levels for me to try and solve. After he went to bed, I got to play a little, too. Crayon Physics is the best game I’ve bought in a long, long time, and may be the best $20 game I’ve ever seen. If you wanted to try it out, the author is offering a free downloadable demo to give you a taste.

Last week a thread on Seagate’s public forum started getting some attention within tech circles. Apparently, a few customers began complaining that their Seagate 1tb (Terabyle) hard drives were dying. Like, a lot of drives. Like, people are estimating somewhere around 30%-40% of the drives are dying. Fortunately for me I don’t OH WAIT I BOUGHT FIVE OF THESE DRIVES LAST MONTH AAAAAAHHHHHHRRRRRRRRRRRRGHGHGHHGHGHGHHHH123!@#!@#!@#!%#&!&!

Ahem. Sorry.

Once Seagate realized there was a problem, they said, “Don’t worry! Your drive’s not really dead! It’s just that it has a bad firmware and your computer won’t see it!” This is akin to telling the owner of a new sports car (or five), “Don’t worry! Your car’s not really dead! It just doesn’t drive anymore!”

Seagate then told customers, “If you have a problem drive, ship it to us. We will fix it and send it back to you, free of charge.” That’s nice. Unfortunately, some people had already mailed their drives off to data recovery services, who charged them (on average) $1,700 to recover their data. Oops. (As of this blog post, Seagate is refusing to reimburse people for that expense.) When people balked about having to mail in their drives, Seagate said, “No problem. E-mail us or call us, give us your model number and serial number, and we will e-mail you back the fix.” This process was slow-going and people were still publicly rebelling, so then Seagate said, “You know what? Here is the fix! We have put the fix on our website! You can download it, run it, and fix your drives!” Hooray! Hooray! There was much rejoicing …

…until, the fix started “bricking” hard drives. (In computer-land, when you “brick” something you make it not work anymore. You now essentially own a “brick.”) Apparently different fixes were needed for different drives or different BIOS revisions or something like that. Things went horribly wrong and people who before had no problem suddenly had new problems (bricked hard drives). Awesome! Seagate pulled the patches back off the site and promised something within 24 hours.

The final fix came out yesterday in the form of bootable ISO images. (LINK) To fix your drive, you’ll need to download and burn the corresponding (read: correct) ISO image, and then boot your machine with it. The included readme.txt file states that you should only have one affected drive connected at a time, but I got all ballsy (plus it was 4am and I was still a bit groggy on Nyquil PM) and decided to try it on my server which has four 1tb drives configured as a RAID 5. The patch worked as advertised. The RAID was a little slow to come back after rebooting (it took Windows 2003 about three minutes to find it — three minutes without a heartbeat is enough to turn a guy’s lips blue), but once everything settled in, all’s well. And remember that USB terabyte drive I bought last fall that was giving me fits? I’ve since cracked that case open with a coconut, pulled the drive out and stuck it in Pivo. It was the same model of drive (but with a different firmware) as the others, so I upgraded it too. 5 for 5 … that’s pretty good for me while all loopy on the codine.

The second most important part of writing any computer program or script is planning out your program’s “path”. You can do this in a number of ways; flowcharting is one common method. A program’s flow can also be referred to as its “logic”.

(Incidently, and completely unrelated to this post, the single most important part of writing any computer program is coming up with a good name before you start. My old pal Leperkhan taught me that, and it’s true. Come up with a good name for your program and a good program is sure to follow.)

Back in my middle school speech class, one of the speeches we had to write and present to our classmates was a demonstrative speech. The point of a demonstrative speech is to demonstrate a process to an audience. “How to make a peanut butter and jelly sandwich” was a popular topic that I remember at least three kids doing. Nothing more exciting than listening to several seventh graders in a row describe in great detail the steps involved in making a sandwich. What a waste; I always saw assignments like that one as an opportunity to torture my fellow classmates. It’s not every day that you are presented with complete freedom of choice over a topic and a forcibly captive audience. Of course, I come by this trait honestly; back when Dad was a kid he gave a speech in school on how to rob a bank that unfortunately matched the m/o of a string of bank robberies a little too closely. That one got him a few house of police interrogation. Fortunately my speeches never got me into any legal trouble, but I do remember hearing a few exasperated sighs during my thirty-minute classic speech, “How to get the most for your money at Taco Bell.”

At the heart of these speeches was the ability to take a process (making sandwiches or robbing a bank) and break it down into small, manageable steps. This is, essentially, what programming is. Sometimes, especially with scripts, programs are very simple. “I need a program that tells me how much free drive space is available on a remote machine.” For that you’re going to need a machine name, a drive, and a command that determines the free space. Obviously this is a extremely simple example, as this program only performs one function. When you start programming in things like Visual Basic (or any graphical type of programming language), you end up with a bunch of related functions that all do different things. Back in the days of BASIC or even most scripts, things tend to follow a logical path from beginning to end. Obviously the program’s path can be varied, perhaps due to input from a user or based off of a pre-determined result, but everything that a program does must happen in order. Things are slightly more complicated in a visual type of program, as users can perform a number of tasks in any order they choose.

It is this logic, the ability to plan out a program’s path, that determines how well a program works. For example, a couple of years ago I wrote a program that would report the amount of drive space available on several servers. The program ran once a day, every morning. If the amount of available drive space was greater than 10%, the program did nothing. If the amount of free drive space was between 0% and 10%, the program would e-mail me a warning. Although I thought it was a great idea, the program didn’t work right. I had several servers end up with 0 space free, and I never received a warning. Did you spot the logic problem? In each instance, the servers had more than 10% free the morning before when my program ran (so I received no warning), and then during the day a user copied so many files to the server that the drive completely filled up and there was 0 space free. Unfortunately I only wrote my program to warn me if the amount of free drive space was BETWEEN 0% and 10%, but I forgot to take into account the possibility that the result might actually BE 0%. The servers were going from more than 10% free one day to 0% free the next, and my script never caught it.

That’s the problem with programming and logic; you have to take every possible scenario into consideration. And when you’re programming something that accepts input from people, look out — you have to take EVERYTHING into consideration. One time, while beta testing a program at work, I was able to crash it at the login prompt. When the programmer asked me what I entered for my name I told him I had held down F1 for about five minutes and then hit enter. By the look of exasperation on his face I suspect he did not anticipate such genius. Never underestimate or overestimate the power of an end user.

If you can begin to think like a program, or at least think using program-like logic, you’ll find writing programs much simpler. The problem is, at least for me, it’s a hard skill to turn off at the end of the day. I’ll give you an example. Every day at work that I write scripts or work on a program, I find myself wondering about the logic programming that runs my building’s elevators.

My building has four floors (three stories and a basement) and three elevators. When idle, the elevators sit on the first, second and third floors. Like most elevators, over each pair of doors on every floor is an LED sign that shows the floor the elevator is on and, if in motion, the direction the elevator is travelling. I work in the basement but visit the third floor often, so I spend a lot of time waiting on elevators. I suspect, if one spent enough time watching the elevators, that a set of logic rules could be surmised through observation. While waiting for an elevator to arrive I often think about the code involved to run such a system. Right now, one of our elevators is out of order and the system is suffering. Obviously, the programmers did not take that possibility into consideration.

Susan says I should take the stairs more often.

For as long as I can remember I have associated specific songs with specific memories, and for me, an arcade wouldn’t be an arcade without the music. All of my old arcade memories including a backing soundtrack of 80s music. Different arcades had different playlists: family friendly arcades like Le Mans and Tilt pumped in 80s pop music, while seedier arcades like Cactus Jack’s and the Bowling Alley delivered a constant stream of 70s arena rock and 80s hair metal.

When my backyard shed begin to make the transition from “collection of arcade machines in a shed” to “backyard arcade”, having music playing was one of my very first considerations. My first plan was to gut an old jukebox, stick a computer inside it, and set it up to play MP3s around the clock. I got as far as picking up the broken jukebox — turns out, shoehorning a PC inside an old jukebox takes a lot of work. Additionally, old jukeboxes are really big, taking up valuable real estate in an already crowded backyard shed. After giving up on that project, I went with the much simpler approach — sticking a PC out there, connecting some really big speakers, and having the thing play MP3s in random order.

In the early 90s, Le Mans Arcade added a music video jukebox to their arcade. The large screen was a panel of televisions, and the jukebox played music videos constantly. That wall of monitors made an impression on me, and as I started putting together a PC for playing music out in the arcade, I thought it would be a neat idea to get it to play videos as well. Through the newsgroups I found alt.binaries.videos.music and I downloaded away. One video turned into ten, one gig turned into ten, then twenty, and so on. By the time I was done I had amassed 20 DVDs full of music videos — approximately 80 gig. I should mention that the criteria for what I downloaded and what I didn’t is fairly specific; to make the collection, the videos had to be of songs I liked, and the videos/songs had to be family friendly. While “family friendly” is fairly subjective, the idea was that I wouldn’t include anything that might be offensive if kids (mine or someone else’s) were out in the arcade.

While not particularly important to the story (not that that would ever stop me), I should note that I wrote my own software to run out in the arcade. The software is called Jukebox Zero (a play on the song “Jukebox Hero), as is the machine it runs on. The program launches with Windows, scans a pre-determined directory (and sub-directories), and plays the contained MP3 and video files contained within. To be honest there are a zillion other PC-based jukebox programs out there, most of them better than mine, but none of them seemed to do exactly what I wanted. Sometimes, writing your own is simpler, so that’s what I did. I don’t think I ever publicly released Jukebox Zero because, frankly, it’s so specific that I can’t imagine anyone else ever wanting a copy.

Back to the problem at hand, which has been moving of the 80 gigs of videos from my house (where I downloaded them) to Jukebox Hero, which sits out in the arcade. Jukebox Zero (the PC) is old and crappy, a 600mhz machine with a CD-Rom drive and two (funky) USB ports that cancel each other out when they’re used at the same time. In the beginning, videos were transferred out to the machine a few at a time via USB memory sticks. As the video collection grew and was moved to DVD, I lost track of which videos had been moved to Jukebox Zero and which ones had not. I really wanted to have the machine filled with videos before all my friends came over to visit the weekend of OEGE, and so I did something foolish and deleted all the videos off of Jukebox Zero, with the intention of moving them back over … somehow.

With help from an external USB DVD drive, my first plan involved copying the DVDs one at a time to Jukebox Zero. This proved to be much more of a pain in the ass than it might sound. Each DVD was taking over an hour to copy over — too long to stand there and watch, but short enough that I didn’t feel like I had enough time to go do anything else. After one or two DVDs, I gave up on this plan. (I should mention that out in the arcade there is no comfortable place to sit. Standing and watching files copy makes one feel stupid(er).)

The next plan involved setting up a wireless network out in the arcade and copying the files wirelessly to Jukebox Zero. This turned out to be a monumental waste of time that took me at least a week to decide was pointless. Here are the highlights: I installed a wireless card into Jukebox Zero, but could not get a strong enough signal to connect to my home network — this is despite the fact that from the exact same location, I could connect to my home network using my laptop. This led me to believe that, for whatever reason, the wireless card in my laptop had more power than the wireless card I installed in Jukebox Zero. I still had my old wireless router lying around, so I then decided to install that out in the arcade, physically connect Jukebox Zero to it, and connect to that network wirelessly from the house. This created another huge network mess, since both routers are hard set to exist in the same IP space (192.168.1.x) so switching back and forth was screwing up my routing tables and causing me to continually reboot. When I DID finally get everything working, I found I could copy about three videos before the wireless signal would drop (which, oddly enough, is why I bought a new router in the first place …). The best part of this whole adventure was troubleshooting the wireless router out in the arcade, which cost me several dozen trips back and forth from the house in the middle of the night while testing. What a pain in the ass.

After giving up on the network I decided to copy all the music DVDs to an external USB hard drive, take the hard drive out to the arcade, connect it to Jukebox Zero and copy the files that way. This is friggin’ foolproof … or so I thought. I copied all the music DVDs to my 300 gig external hard drive, carried it out to the arcade, connected it and started the files copying. The next morning when I went out to check on the progress, I found that it again had copied less than a dozen files before dying. “I/O error” was all Windows offered. Since I/O means “input/output,” I found the error accurate although not particularly helpful. The problem turned out to be my external hard drive, which picked THAT MOMENT to die. Further inspection determined that it was actually the enclosures power supply and not the drive itself that died. The drive was transplanted into a new enclosure and the whole process was repeated. This time I got through almost 5 DVDs of videos before the machine locked up. THIS SHOULDN’T BE THIS HARD.

Since I can connect to the machine still via wireless, I’m going to connect to the machine today and attempt to copy the DVD directories one at a time — sneaking up on the project, so to speak. Should that fail I’m going to take an axe to the whole god damn pile of electronics and set up a VCR full of old music videos and call it good.

One feature of my new LCD television I hadn’t given much thought to was the VGA input. Downstairs I already run a PVR system, so when I saw the VGA port on my new television I decided I would build another computer and hook it up upstairs, so I could watch divx and other downloaded video files easily. But then it hit me — can’t new consoles such as the PS3 and Xbox 360 stream media? I’ve heard about people using the original Xbox for multimedia streaming, but had never personally tried it. This weekend I decided to give it a go.

Streaming media to the PS3 involves the installation of UPnP (Universal Plug-n-Play) software on your PC. This software acts as a server, to which your PS3 will connect. Your media (music, pictures and video) remain on your PC and are streamed over a network connection (wired or wireless) to your PS3, where they are displayed on your television. There are many uPNP programs to choose from, but the first four I found were Nero’s MediaHome, TwonkyVision’s TwonkyMedia, TVersity, and Free UPnP Entertainment Service. TVersity and Free UPnP Entertainment Service are free; Nero’s MediaHome is not, but I already own it (comes with Nero Ultra 7 and 8). TwonkyMedia is also not free, but a free trial is available.

First up — Nero’s MediaHome, a really slick product. Nero’s MediaHome was the easiest uPnP server I attemped to set up. The computer did everything. Unfortunately, it didn’t do anything quickly; Nero Ultra 8 took over 30 minutes to install on my 2ghz/1gig of RAM Windows 2003 Server. While I realize this machine is not the powerhouse it once was, the only installation I can remember taking longer than this one was Windows itself.

Behind the scenes is Nero Scout, a program that scans your hard drive for media files to include in its database. Actually, “scan” is probably an understatement; “seriously thrashes” is much more accurate. From the moment Nero Scout launched, my CPU maxed at 99% and stayed there until I stopped the service. A Google search of “Nero Scout” turned up complaints from multiple users. Unfortunately, MediaHome won’t run without Scout, and when Scout’s running, my computer is so maxed out that it can’t stream video. That makes it unusable to me. Nero certainly got the installation and configuration down smooth, but it must require a beefier box than I own.

Next up — TVersity. TVersity was almost as simple to set up as Nero’s MediaHome, which makes sense as its performance was almost the same as well. The PS3 found the TVersity service running on my server almost immediately, and while viewing photos and listening to MP3s worked well, videos were completely unwatchable. Even low quality videos would only play for a few seconds before they began to spit and sputter. Concerned that my wireless network was not fast enough, I directly connected my PS3 to my 100 megabit switch with no improvement in performance. I skimmed the TVersity forums for help, but instead found other PS3 users with similar complaints. Strike two.

The third uPnP server I tried was Free UPnP Entertainment Service, or FUPPES for short. FUPPES appears to have been written for Unix/Linux and ported to Windows, and it shows. Documentation was sparse and disjointed; I spent a lot of time on Google just to get the program up and running; more modifications were needed to make the streaming PS3-friendly. FUPPES’ configuration program allows you to change about four settings in the program’s cfg file — everything else must be done by hand. The PC interface is decidedly unpolished and requires technical knowledge (or patience and Google) to configure.

And you know what? FUPPES worked FLAWLESSLY. Videos began streaming perfectly from my PC through my PS3 to my HDTV. And not only did those videos stream flawlessly — I was able to stream videos from a machine connected via wireless to my server; I was streaming videos from PC (wireless) to my server, to my PS3 (wireless) to my TV with no stutter. A winner is you, FUPPES. The program was a bear to configure, but was definitely worth the effort in the end. My CPU hovers at around 15% while streaming DIVX movies, a completely acceptable overhead.

Just to get everybody up to speed — I have a PC-based PVR in my entertainment center. It runs GB-PVR for Windows. I call it Pivo (PC Tivo). And, currently, the hard drive is fragged to hell.

As everyone reading this blog already knows, fragmentation occurs when files on a computer are deleted, and overwritten by other files which don’t fit exactly in the space left by the first file. This causes files to become split up on your hard drive, which in turn can cause longer loading times and decreased performance. It’s pretty easy to see how this can happen on the Pivo, where I record a dozen television shows a day, deleting a dozen old ones to make room for them.

To be honest I rarely think or worry about fragmentation these days — however, recordings on the Pivo have started playing “jerky,” and defrag shows that the drive is 40% fragmented. Unfortunately, the video files on the drive are so large that defrag is taking forever. I decided on plan B — moving everything off the drive, formatting it, and moving it back.

And so, that project started yesterday morning. I hooked up a 300 gig USB drive to the machine and started moving everything off. I let the copy run 8 hours, and then did the math. It’ll be done sometime in April. The machine only has USB 1.1, which means a max transfer speed of 12.5 mbit. No good. I then experimented with moving the files wirelessly to the server upstairs. Even at 54 mbit, which is faster, it was still likely to take days. The third time’s a charm. I ran a long ass network cable across the upstairs room, down the stairs, behind the entertainment center and into Pivo. The 100 mbit link light lit up, and the files began moving much more quickly. For some reason the copy aborted in the middle of the night, so I restarted it this morning. Should be done by the time I get home.

Then all I’ll have to do is move everything back …

Although I knew there would come a day when Mason would want his own computer, I didn’t realize was that he would be six-years-old when that day came. This has been in the works for a while, but things really kicked into gear Christmas Morning. One of Mason’s more expensive presents this year was a Leap Frog brand (I think) learning laptop that plays cartridge-based educational games. It’s not *really* a laptop — it just looks like one. The screen is black and white and only about three inches in size. Mason took one look at it and cast it aside. Later, after the Christmas buzz had died down, Mason came to Susan and said, “you know how you told me to still like the person, even if they get you a bad gift? Well, I still like you even though you got me that laptop.” The disappointment spawned from the fact that, for a moment, the kid actually thought we had given him a real laptop. Keep dreaming, bucko!

Backtracking a bit … sometime last year, dad bought a new computer and said we could have his old one for Mason. The machine’s not that old — in fact, It’s a pretty nice computer, with more horsepower under the hood than my server. I set the machine aside but never got around to the reloading project. After Mason’s disappointment Christmas morning, I decided this might be a good time to go ahead and get Dad’s old computer up and running. Reloading computers always seems like a bigger deal in your head than it usually turns out to be. With the web these days, tracking down drivers even for machines a few years old is typically a non-issue. In less than an hour I had XP loaded and configured.

On the way home from work yesterday, Mason and I stopped by Staples and picked up a couple of wireless NICs. Have I ever mentioned how much I hate Staples? Unfortunately in Yukon, only two chains carry computer parts — Staples, who rarely has what I’m looking for in stock, and Wal-Mart, where I somehow manage to set off the security alarm every time I exit the building. Deciding between these two stores really is “the lesser of two evils.” I am at the point where I will start driving to Oklahoma City just to avoid these two particular stores. I should have done that yesterday, but I didn’t. I went to Staples, where they had two registers open and both were stopped in their tracks because of merchandise that didn’t have price tags on them. The two network cards I bought were marked $39.99, but rang up as $59.99 — that was another ordeal. ARGH. That’s a good pledge to make for 2008 — stop shopping at Staples!

Installing the USB network cards took less effort than buying them. I haven’t used a USB NIC before — I was afraid that the small form factor would mean bad reception, but so far they seem to work pretty well. It’s amazing how worthless a computer seems these days without the Internet. I couldn’t update Windows, couldn’t find drivers, couldn’t do anything before I got the machine online. And really, that’s all Mason wants to do. Nickelodeon and Disney have a few websites set up with games and cartoons, and that’s all Mason wants to do on the computer so far.

So anyway, things are up and running. Mason spent some time last night on iCarly.com (gag) watching videos, until Morgan clocked him in the head, commandeered the chair and headed off to Sesame Street’s website. How early they learn.

If you aren’t backing up your home computer on a regular basis, you are either insane, don’t care about your data, or have never lost a hard drive before. Did you know hard drives have a 100% failure rate — every hard drive will eventually die. It’s not a question of “if,” but “when.” To date, I’ve been lucky; I haven’t had any critical drives die on me yet, but I did something earlier today that sure made me glad I run nightly backups.

It all started this morning when I noticed my website was running slow. Like, really slow. When I checked TaskManager on my server I noticed that every time I (or anyone else) visited robohara.com, my server was crawling to a stop. A closer look at TaskManager showed each time someone visited robohara.com, PHP-CGI.EXE was launching over 100 times. I can’t tell you for sure when this started, but I just noticed it today. I’m sure it hasn’t been doing it for long.

I went and checked all my other websites, but none of them were experiencing the same problem. Thinking something had gone wrong with my theme, I switched themes. Some themes experienced the same problem; others didn’t. Rather than spend a week tracking down the problem, I decided the easiest and quickest solution would be to simply switch to another theme. But before trying that, I decided I would upgrade WordPress.

Upgrading WordPress is a super simple process. You copy files into your WordPress directory and run them — that’s it. I’ve upgraded WordPress dozens of times before, so imagine my surprise with this upgrade failed. My browser filled with database errors, and when I refreshed robohara.com, I got one, ominous error. No posts found.

Fearing I had just lost four years worth of posts, I panicked briefly before remembering — hey dummy, this is why you do nightly backups! The first thing I did was restore my WordPress directory from last night’s backup. That took less than a minute. I then restored my SQL database (where WordPress stores its posts), also from last night. Again, success. I restarted my website was back up and running. With a freshly restored copy of my website I was able to switch to a different theme, one that was not causing the problem, and call it a day.

Back when my computer was simply filled with games and all my important documents were stored on floppies (shudder), backups weren’t that critical. These days, my entire life is online. Every phone number, every important document, and practically every photograph I have of my family is stored on my computer. Hard drive failure at this point in time would be devastating. Depending on how much data you need to back up, DVDs may or may not be a viable solution for you; it’s not for me at this point — I’m backing up too many machines too often these days. Instead, I recommend picking up a USB hard drive and performing nightly backups to that. If you go on vacation, the drive can easily be taken with you or stored somewhere else where fire or thieves could not access it. Losing my WordPress blog would have severely sucked, but losing ten years worth of digital photos would suck infinitely worse.