Before we begin today’s lesson, we’re going to do something fun and generate your Rock Star name. Your first name will be the name of your first pet and your last name will be the name of the street you live on. Mine’s “Ernie Gregg.” Write this down or just make note of it; you’ll need it later near the end of today’s program.
Security Through Obscurity (“STO”, for short) is the concept that things will be secure if you hide them. I’ve mentioned the concept before; I covered it in detail on Episode 104 of You Don’t Know Flack. The concept is simple: if you hide things well enough, people won’t be able to find them. People do this in the real world all the time. An example would be hiding your house key inside a fake rock. By doing this, you have obscured (or hidden) the security method to open the door (the key). STO also applies to computer systems as well. Hiding your password under your mouse pad would be a very basic example.
STO is most often used to hide what security guys like to call “low hanging fruit”. For example, let’s say everybody in your office writes their password down on a sticky note and sticks it to their monitor, but you stick yours under your mouse pad. When Joe the Hacker shows up looking for passwords, he is more likely to use a password that he sees out in the open than spend the time digging around your desk looking for yours. The same concept can be applied to network security. Breaking WEP passwords on wireless routers is trivial at this point, but if Joe the Hacker needs wireless access and he sees five routers and two of them have passwords, chances are he’s going to hop on one of the open ones over a password protected one because it’s less work.
Computer people have been using Security Through Obscurity for years and years now, and time and time again it’s failed. It rarely works. The biggest enemy of STO is “time”, and there are plenty of people out there with plenty of it. STO may help you by not being a “low hanging fruit”, but if someone has specifically targeted your basket of fruit … look out. Going back to our “key in a rock” example for a moment — if a burglar is looking for the easiest house to break in on a street, he might skip yours. BUT, if he has targeted YOUR home specifically, now you’re in trouble. Burglars know where to look; after searching on top of your door frame and under the welcome mat, he’ll start looking for other places people hide keys. People don’t hide their house keys in six-foot-deep holes where it would take them an hour to recover them. Time is his advantage here.
Take that same concept and apply it to computer security. FTP runs on port 21. When someone wants to know if your server is running FTP, they’ll touch that port and look for a response. If they get a response, they’ve found it. Direct security would mean using difficult passwords, but an example of security through obscurity would be moving FTP to a different port. When a hacker scans a range of IPs looking for FTP servers, yours might not show up, and in that example, you’ve helped yourself. In a direct attack against your server however, hackers will scan every port on your server. They’ll find the FTP service in no time and, if you haven’t added any additional security methods, your server may now be in trouble.
One of the main reasons STO fails is because the average person doesn’t think like a criminal. When you hide your password under your mouse pad or your house key in a fake rock, you think you’re being pretty sneaky. The problem is, criminals know these tricks too. Hackers know those same tricks. You may think you’re being sneaky by changing a port or renaming your machine or whatever it is you’ve come up with, but the truth of the matter is, security through obscurity FAILS CONSISTENTLY.
Hey look — it only took me five (six, counting this one) to get to today’s point. It’s a new record!
One of the most common examples of STO today is your “secret answers”. We’ve all had to give (and answer) these things before. “What’s your mother’s maiden name?” “What’s your favorite color?” “What was your first car?” That stuff might have been tough to find in a world before Facebook; today, you can glean most of that stuff from a person’s Facebook page. Did you know that by default Facebook lists every woman’s maiden name? There are a lot of teens on Facebook whose mommies are on Facebook too. This is a big problem for the average person. It’s a bigger problem for celebrities.
Last September, Sarah Palin’s Yahoo e-mail account was hacked. Here’s how it was done. The “hacker” logged into Yahoo, entered Palin’s e-mail address, and clicked “reset password.” Yahoo then asked the hacker three questions: Palin’s zip code, her birth date, and where she met her spouse. The “hacker” (I keep putting that in quotes because the guy doesn’t deserve the honor) found the answer to all three questions via Google. The zip code took two tries. Her birth date was listed on Wikipedia. Where she met her husband (Wasalla High) showed up in Google. Bingo.
Last night it was reported that Celebrity Accounts on Twitter had been hacked. Read through the details though and you’ll see a few similarities to the above story; Twitter itself wasn’t hacked, an admin account was. Here’s a quote from the story:
“Hacker Croll claimed to have used social engineering techniques to access Goldman’s account: “One of the admins has a Yahoo account, I’ve reset the password by answering the secret question. Then, in the mailbox, I have found her [sic] Twitter password.”
So, a recap; the hacker reset Jason Goldman’s (Twitter’s Director of Product Management) Yahoo mail account. After doing that he logged into the Yahoo mail account and found his Twitter password sitting in his mailbox. Using that password, Hacker Croll logged in to Twitter as Goldman and then began looking at celebrity’s accounts.
In a world where everybody apparently wants to put everything online for everybody to see, this type of security is not going to work. Shaq’s mother’s maiden name is actually O’Neal. Ashton Kutcher’s favorite color is red. Brittney Spears birthday is December 2nd, 1981. Her son Jayden was born on September 12, 2006. Here’s the birth certificate. This stuff is not hard to find, and even non-celebrities are not immune. The About Me/Us link on my own website lists my birth date, pet’s name, kids’ names, and lots of information that shows up regularly on those lists of security questions. First car? That’s embedded on my website somewhere. Susan’s maiden name is on there too.
To bring this full circle … let’s take a look at my Rock Star name again: “Ernie Gregg”. Let’s say I post that on my Facebook page. Now you’ve got my name, whatever information you can get from Facebook, PLUS the name of my first pet AND the name of the street I live on. I know for a FACT many sites use “What was the name of your first pet?” as a security response. The “Rock Star name” is just one of many variations on this game. Here’s a form I found posted on Facebook recently:
THE NAME GAME
1. YOUR ROCK STAR NAME: (first pet and current street)
2. YOUR MOVIE STAR NAME: (grandfather/grandmother on your mother’s side, your favorite candy)
3. YOUR “FLY GIRL/GUY” NAME: (first initial of first name, first two or three letters of your last name)
4. YOUR DETECTIVE NAME: (favorite animal, favorite color)
5. YOUR SOAP OPERA NAME: (middle name, city where you were born)
6. YOUR STAR WARS NAME: (first 3 letters of your last name- last 3 letters of mother’s maiden name, first 3 letters of your pet’s name)
7. JEDI NAME: (last name spelled backwards, your mom’s first name spelled backward)
8. PORN STAR NAME: (friend’s middle name, street you grew up on)
9. SUPERHERO NAME: (“The”, your favorite color, the automoblie you drive)
10. EMO BAND NAME: (first word in the top banner ad above, city of the away team of the last major sporting event you went to/remember)
Take a second to read over that list. First pet? Current street? Favorite animal? Favorite color? City where you were born? Street you grew up on? Are these things ringing any bells yet? Holy Christmas, it’s like a who’s who list of security information! And you just posted it! On the Internet! For everybody to read! MY HEAD JUST EXPLODED!!! Seriously, if I couldn’t reset your AOL password before I had all that information, I’m betting I can now!! The only one they forgot is DUMBASS NAME: (what time you leave for work, where you hide your porch key).
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!
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!@#!@#!@#!%#&!&!
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.
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.