Media Center Disappoints Again

My wife and I like to watch old movies, murder mysteries, and reruns of 80’s sitcoms. Our content of choice pretty much mandates that we watch streaming video; NetFlix is our provider of choice today. We watch on a regular basis between 9 and 10 at night because our kids won’t let us near the TV at any other time. And that’s okay. The point is, by the time we get around to settling down to a good movie, the kids are in bed and we can’t really use the home theater. We have to watch in our bedroom to keep the noise level down.

To facilitate this habit, I’ve strung a VGA cable and a ministereo-to-RCA cable from the back of the flat panel TV in our bedroom to a shelf a few feet away where I set the laptop when streaming NetFlix content. This works well, but short of paying for various accessories like an air mouse, I’ve had to jump up and hit the pause button occasionally, whenever we’ve wanted to discuss a point in the movie – usually a mystery.

Yesterday I upgraded my HTPC (64-bit 2.84 GHz quad processor AMD) from Vista Ultimate to Windows 7 and found the new features of 7MC to be nothing less than wonderful. The user interface enhancments are exactly what you’d expect, given the UI enhancments between Vista and Windows 7. The new TV card management software in 7MC is much better than the Vista version. The new Guide actually represents all of the available channels now (plus a few I didn’t even know about!), as opposed to the previous 30 percent coverage provided by the Vista MC Guide. The Internet TV feature is now out of beta, and seems pretty nice. And lastly, and most importantly, the integrated NetFlix interface is just nothing short of cool.

Or so I thought. But Microsoft seems to think that I’ll only ever want to watch streaming content on my PC. I just don’t get that mindset. Who do you know that sits at their desk and watches TV?! I’ll answer for you: no one. Neither NetFlix nor the new Internet TV features are supported on the extender interface. Thus, my only options for watching NetFlix on my TV remain as follows:

  • Connect my HTPC directly to my TV.
  • Continue to use my laptop as above.

As far as connecting my HTPC to my home theatre system, well, that was always the ultimate goal, but I’ve grown accustom to having the unit in the play room, where I could mess with new features in comfort with convenient access to its insides if necessary. I’ve sort of allowed myself to dream of the possibility that the XBox extender would just become better through the years until it finally did everything I wanted it to.

Recently, I read a comment on a blog somewhere that indicated that Microsoft was motivated (monitarily, of course) to NOT allow streaming content on the XBox extender. The rationale was that the XBox console was using NetFlix streaming content as a hook to get people to buy XBox Live Gold memberships. Well, I’ll be hanged if I’ll pay a subscription fee just to get extender support for a service I already pay NetFlix for.

Wake up Microsoft! These are two different market segments. Will gamers mind paying for an XBox Live Gold subscription? No, they’re already paying for a subscription anyway. Will they go out and buy an HTPC so they don’t have to have that subscription to stream NetFlix? No, they bought that subscription for other reasons (games).

On the other hand, will home theatre enthusiasts pay for XBox Live just so they can stream NetFlix content to their big screen or bedroom? Possibly a few, but most (like myself) will be too angry with the marketing tactics to play along. Will they buy a Gold subscription because they might want to play games too? Possibly a few will, but mostly, gamers are gamers, and home theatre enthusiasts are into movies.

So why emmasculate Media Center and alienate your hardware partners by disallowing some of the most enticing reasons to get an extender? Again I say, wake up…please. I might buy an XBox for my bed room just to use as an extender – if I had a good enough reason.

Advertisements

Getting the Most Out of Your HTPC

Well, now that you have this wonderful Home Theater PC (HTPC), what do you do with it? In this article, I’ll provide some insight on how to configure your HTPC for maximum enjoyment. You paid a lot for this fancy piece of hardware. In fact, I paid as much for my HTPC as I did for my Denon 7.1 channel digital decoder and amplifier, and about half as much as I paid for my 720p projector. There’d better be a good reason for spending that much. Let’s explore…

Watching on the Big Screen

The first thing to consider is how you’ve connected your HTPC. Mine is not connected physically to my video system. That is, I have my HTPC sitting in another room of my home that I currently use as a den or study. It allows me the peace and quiet that I need to continue the on-going process of converting my movie collection into streamable media that I can serve from my HTPC.

I recognize that some people may want to connect their HTPC directly into their home theater system. Eventually, I’ll do this myself. But I have a problem, and you may also. Unless you have the latest video and audio equipment in your home theatre, you’re probably facing a physical connection issue that can’t simply be ignored. By this I mean that your slightly older video display (projector or TV) probably accepts, at most, analog component video (YPbPr) inputs. But the connection on the back of your HTPC (if you purchased the Gigabyte motherboard I mentioned in that first HTPC article) has only VGA, DVI-D and HDMI outputs.

Direct Digital Connection

If you’re lucky enough to have newer home theater equipment–a 1080p projector with HDMI inputs, and a newer 5.1 channel digital decoder/amp with HDMI video switching capability, then you’re really set. Just plug the HDMI output from the onboard ATI video circuitry into one of the free HDMI inputs on your amplifier, and start watching!

The nice thing about an end-to-end digital connection is that you’ll be able to watch your Blu-ray content in the highest resolution available to your display device. Such a connection between your HTPC and your TV will provide exactly the same home theater experience you’d get from your 350 dollar Blu-ray player.

Direct Analog Connection

As mentioned, to get the most out of a direct connection, I really need to use the digital (either DVD-D or HDMI) outputs. But, short of upgrading my amp and projector, I have little recourse here. My somewhat older Denon amplifier has component video switching capability for up to three inputs switched to one output, which is really nice for older devices and monitors. But unfortunately, none of this is compatible with modern digital signals. Until I come into some spare cash, I’m going to have to settle for an end-to-end analog signal between my HTPC and my projector.

To make matters worse, VGA has nothing whatsoever to do with component video, except that they’re both analog signals. Unfortunately these two analog signals operate in different color spaces, so there’s no ad-hoc wiring harness that you can solder together that will allow you to generate component video from the VGA signal at the back of your HTPC.

The solution to this problem is an inexpensive video transcoder. There are various devices available for reasonable prices that will actively convert from one color space to the other. Some of them have more capabilities–and are thus more expensive–than others. I’ve mentioned these devices briefly in my first HTPC article, but I’ll cover them in more detail here.

The device I’ve found that seems to be the best compromise between price and performance is one manufactured by Audio Authority called the 9A60 VGA to Component Video Transcoder. This is a sweet little device–the sweetest aspect of which is the price. In the first place, it does exactly what you want it to do, no more and no less. It converts an RGB signal from a VGA connector to YPbPr Component Video via the standard 3 RCA jacks, with no video scaling or dimensional transformations.

Incidentally, the best price I’ve found on the 9A60 is at mythic.tv for 105 dollars.

Setting Video Card Resolution

Regardless of the type of connection you establish, you’ll have to configure your HTPC’s video card to provide the exact resolution and format expected by your projector or television. An HDMI connection will make setting the computer’s resolution a bit easier, but it has to be done nonetheless.

The resolution expected by your viewing device of choice often depends on how you’ve configured it. For televisions, the resolution is somewhat hard-coded into the device, but projectors can usually be configured to display in different resolutions. Both types of devices can automatically handle a slightly varying range of resolution, regardless of configuration, the rendering quality of which depends on the quality of the display circuitry in the device.

You also need to understand the correlation between TV industry display resolutions and computer display resolutions. In the television industry, resolutions are defined in terms of number of scan lines and whether the signal is progressive or interlaced. Thus, you’ll often hear of TV’s that can display 480p, 720p, 1080i, or 1080p. The numeric values indicate the number of horizontal scan lines displayed, and the letter is either “i” for interlaced, or “p” for progressive (non-interlaced).

The number of scan lines directly corresponds to the vertical resolution on your HTPC. Thus, to generate a 1080p signal to your HD television, you’re going to have to configure your HTPC’s video card to display a resolution of (‘something’ x 1080). The ‘something’ is determined by back-calculating the horizontal resolution from the aspect ratio of your television.

The aspect ratio of US televisions (I mean NTSC/ATSC, rather than the European PAL standard) is either 4:3 or 16:9. So, on a wide-screen (16:9) US television, you would use the following formula to determine the horizontal resolution of your video card:

   Hr = Vr * 16 / 9

where ‘Hr’ stands for Horizontal resolution, and ‘Vr’ stands for Vertical resolution. Thus, the proper horizontal resolution for a 1080p display is 1080 * 16 / 9, or 1920.

The biggest problem you’re likely to run into in this process is actually finding a conforming resolution in the list handed to you by the Microsoft Windows video card configuration dialogs. Windows wants to query the monitor to find out what it can handle, and then transform this information into a set of resolutions compatible with your monitor, but when your monitor is effectively the Audio Authority 9A60, you’ll find it to be quite uninformative regarding what it can handle. Windows responds by giving you a minimal set of choices.

Fortunately, there is free software available in the form of an application called PowerStrip by a Taiwanese company called Entech, which allows you to manually choose your horizontal and vertical resolution, as well as color depth, and horizontal and vertical sync rates. These values must be chosen carefully, or you can damage your display device, but most TV’s and projectors are much more resilient than computer monitors. PowerStrip is pretty self-explanatory, and there are guides abounding on the Internet, so I’ll forego the details here.

Extender Technology

Before I’m ready to connect my HTPC directly to my home theater system, I’m going to use it for several months to convert my video collection, so I’ll want to use “Windows Media Center Extender Technology” and my home network to display my Media Center console on my home theater projector remotely.

Microsoft sells an extender device designed explicitly for this purpose, however, I already have an XBox 360 that I got for my family for Christmas last year, and the 360 has built-in WMC extender functionality. You activate it through the 360 console’s Media page. Look for the option to connect to a Windows Media Center PC.

When you select this “connect” option, the 360 displays an 8 digit random number on the screen, and tells you to use this number at the appropriate location when setting up the extender on your HTPC. In the Media Center setup menu of your HTPC, you’ll find an option for setting up an extender. During this setup wizard, an entry dialog will be displayed, where you’ll be asked to enter this 2-part, 8-digit value. Once you’ve entered this value, the rest is trivial, and your 360 will display your Windows Media Center console.

You can use your game controller to move about the WMC menus and select various options. There’s a cheat-sheet provided by Microsoft that will help you understand how the controller buttons map to Media Center functionality.

Watching Digital Television

TV cards–even digital TV cards–are so inexpensive these days, it would be a shame if you chose to forego that expense. I dare say a TV card costs less than the memory in your HTPC. With that TV card, you get the ability to watch digital TV in full definition.

Of course, if you’d rather spend 400 dollars on a stand-alone digital broadcast tuner, feel free. I much prefer the 80 dollar Hauppaugh WinTV solution. In fact, it’s so cheap, It’s worth considering purchasing two such tuners. Windows Media Center will recognize and consume both units. You can then use one of them to record from one channel, while you’re watching another channel on the other. You can even enjoy picture-in-picture features using both tuners–want to watch a movie while not missing the big game (or vice-versa)? Hmmmm. 400 dollars for a single stand-alone tuner, or 160 dollars for a couple of tuner cards? Not a tough choice.

In fact, the Hauppaugh WinTV 1800 card is actually two tuners in one; an analog tuner and a digital tuner. So even one card will let you do some of the fancy stuff–like recording a digital program while watching an analog program, each on different channels. But if you’re hooked on the realistic quality of digital TV, then you’ll probably almost forget that you have an analog tuner in your TV card. I didn’t even bother connecting the analog tuner to the antenna wire.

This does bring up an interesting side issue for me. The TV card has four antenna inputs on the back: TV, DTV, FM, and QUAM. Okay, I can understanding separate inputs for FM radio and Satellite or Cable input, but was it really necessary to separate the inputs for Analog and Digital TV? I can get a really nice analog picture by connecting my digital antenna to my Analog antenna input. I suppose it’s conceivable that your area has digital and analog broadcast towers set up in different locations, which would preclude aiming TV and DTV antennas in different directions… What I’d really like to see is some sort of software switch or hardware jumper that bridges the DTV input to the TV input, so I don’t have to use an input cable splitter to connect my DTV antenna wire to both inputs.

Time-Shifting and the Media Center Programming Guide

One of the nicest features of Windows Media center is the ability to easily record a program for later viewing. I can sit down on Saturday afternoon, and check out the schedule for the coming week. In a few minutes, and with just a few clicks, I can schedule the recording of broadcast movies or shows I want to watch. If you always schedule tuner B to record, then you know you can always watch tuner A without worrying about bumping in to a recording session.

Remember when you had to get out the manual for your VCR whenever you wanted to record a program on TV. It was a fairly complex and time-consuming process to configure your VCR to record a program at a later time. If you just wanted to record something now, it wasn’t too bad. You could almost figure it out without the manual (just press the red record button and the play button at the same time–often this combination was highlighted on the remote for this purpose). But if you wanted to record a program that was scheduled to start when you were not home, now that was a different matter. How’d I do that last time? Dang! Where’s that VCR manual?!

Windows Media Center comes with an online programming guide for the United States. If you live in the US, you simply supply your zip code when you configure your tuner card (and, of course, agree to the online content use license), and Media Center will configure your TV viewing experience with an online programming guide. Recording any program is as simple as finding the upcoming program in the guide, and pressing the record button at the bottom of the screen. This isn’t perfect–it never has been. Last minute programming changes will always be sources of heartburn, but the media providers understand this, and try more then ever to ensure that the content is accurate.

You even have the option of recording an entire season of a program with one button. Do you like a particular television program, but you forget to record it half the time, so there are gaps in your understanding of the program plot? No problem. Let Media Center do the remembering for you. Just tell it to record the entire season, and then forget it. If you become busy with life and stuff (who doesn’t?), and are unable to watch your program for a few weeks, don’t worry–when the load lightens up again, the missed episodes will be there for you to watch.

You can also watch a program while it’s being recorded. Now, why would you want to do that?! Okay, you can perhaps understand that you might wish to save this program and watch it again later. But most people who record while watching do so for one reason: They want to skip commercials on the fly. Just start recording a program you want to watch, then go away for 15 minutes or so. When you come back, you’ll have enough recorded material so that when a commercial starts, you can fast forward over it to the show again. By the time you get to the next commercial, enough material has been recorded to allow you to skip this one as well. This is a common feature on 200 dollar Personal Video Recorder (PVR) devices. PVR functionality comes built-in to a Media Center PC with a tuner card.

DVD and Blu-ray Movies

My system includes a Blu-ray disc player, so I can watch my Blu-ray discs on my HTPC. At the time of this writing, Blu-ray players (not recorders) can be had for between 100 and 150 dollars, and they’re coming down in price fast. It won’t be long before, like internal DVD players, you can pick one up for about 20 bucks.

But Blu-ray players can also play DVD’s and CD’s, as well. This shouldn’t be too surprising, as DVD players can also play CD’s. Thus, for about 100 bucks, I have an HTPC-based replacement for my stand-alone Blu-ray/DVD player. Such a device would normally cost 350 dollars or more in today’s market. (It’s becoming easier and easier to justify the 1000 dollar cost of my HTPC!)

For complete instructions on how to create a playable archive of your purchased movie content, see my previous article, entitled, “Creating a Disk-Based Movie Archive”.

NetFlix Streaming Media

One of my favorite services (and a primary motivation for me to build an HTPC in the first place) is NetFlix streaming video. I’ve had a NetFlix subscription for a couple of years now. Last year when NetFlix came out with free streaming video for current subscribers, I thought Christmas had come early for me.

If you’ve got your Media Center PC connected directly to your television, then you have a several options. The most obvious option is to open a browser window from your HTPC desktop, and navigate to netflix.com. In this case, you’re accessing NetFlix streaming video just as you always have (if, that is, you’ve used NetFlix streaming video in the past), except that now you’re watching it on your television, instead of your computer monitor.

If you’re using an WMC extender, or if you simply want to configure WMC as your only desktop (by making it non-minimizable), then you have fewer options. Since you can’t access your browser application from the extender console, you’ll have to find a way to access NetFlix streaming video through WMC itself. There are two approaches you can take.

One of these is a free software project hosted by Google code, called VMCNetFlix. VMCNetFlix is basically a Windows Media Center application that makes the NetFlix Web API available through the Windows Media Center interface. To use VMCNetFlix, you must be using Windows Vista Media Center (thus, the ‘VMC’ portion of the name), which comes packaged with Windows Vista Home Premium, Business or Ultimate editions. Assuming you are, simply go to the VMCNetFlix project download page, and download the package appropriate for your hardware architecture (32- or 64-bit).

Install the package by double-clicking on it, and then bring up Windows Media Center. Navigate up or down to the “Online Media” menu, and select the “Program Library” option. If you’ve seen this screen before, then you should see a new item in the list with the familiar NetFlix motif. Select the NetFlix program, and the VMCNetFlix application will help you configure your Media Center to access your NetFlix account.

I like this option because it’s easy to use, fully functional, and best of all–free. In sharp contrast, the other option for accessing NetFlix streaming content through WMC is just plain stupid. I’m sorry, but I just don’t understand how normally intelligent people can conceive of what they deem to be viable business models that fly in the face of reality. If you’re using an XBox 360 as a Media Center extender, then you can also access NetFlix streaming content through your XBox Live! account, if you have one. This would be fine, except that you have to have a Gold account, which means you’ll be charged a monthly fee to use a service that you already pay a monthly fee to use. Now, of course, if you’re an avid gamer, and you already pay for an XBox Live! Gold account, then this requirement probably won’t bother you (much).

The sad part about the XBox Live! method is that it’s the only officially sanctioned way of accessing NetFlix streaming content from the Media Center console. To be sure, there’s nothing illegal about using VMCNetFlix. It’s just that it’s a bit of a hack, which means that anytime NetFlix decides to change their web API, VMCNetFlix will have to be updated to accommodate the modifications.

Additional Features

You can also play games and execute other pc-based software. You’re not limited to using your HTPC as a media center. Unless you’ve configured WMC to be non-minimizable, you can simply click the usually minimize button in the upper-left corner and you’re looking at the Windows Vista PC screen on your TV. This means that any software you have installed is available from your TV. There are a few Windows games that can be played through the “Online Media/Program Files” menu.

There is on-line content available through Windows Media Center. Most of this is subscription based, but you’ll have to decide whether it’s worth the price. And finally, you can do most of the usually things with Media Center that you can do with media on your PC, including playing music. If you have a really nice stereo, this could be a great way to use your PC-based music collection.

Since PC’s are naturally extensible, having a PC as a component in your home theater makes your home theater extensible. Whenever a new PC-based media experience becomes available, you’ll be ready to take full advantage of it.

More Fun With PC Hardware

In my last entry, I wrote about how I’d built a new Home Theater PC (HTPC). Well, it’s been about a month since that event, and much has happened to me with respect to this project that you may find interesting–or at the very least informational.

I was trying to encode the high-definition video and audio content streams from National Treasure 2 into a WMV/WMA stream file. My next article will contain details on this process, but I will warn you in advance–encoding Blu-ray content to high-definition streams takes a while. It’s taken me an average of about 26 hours per title, so far. I’ve only got a few, so I haven’t been too worried about it. But it does bother me when something terminates the process after it’s 89 percent completed–several times in a row!

First we had a power outage. Okay. Restart and go away for another day. Then (again at 89 percent), Windows blue-screened and rebooted. Vista reported it as a USB problem. Hmmm… Okay, start it up again. Another blue-screen. This time it was a memory problem. Okay, now this was starting to get on my nerves. I was beginning to believe that Disney had managed some how to add code to their content streams that would crash my machine at 89 percent! Okay, not really, but if I were the superstitious type…

But this time the system wouldn’t even boot. Thirty-one days after the invoice date on my new HTPC, the Gigabyte motherboard went kaput. Guess how many days from the invoice date until NewEgg won’t provide a Return Merchandise Authorization (RMA) number for a defective motherboard? You got it–thirty days. NewEgg’s RMA service is completely automated, so if you need an RMA number, you simply go online, select the past invoice in your account with the defective hardware, and click on it for more instructions. But after thirty days, the line item on the invoice for a motherboard becomes grey’ed out, so you can’t select it.

Luckily, Gigabyte is a reputable company, and was more than willing to talk to me about my options. They really wanted to walk me through some diagnostics before shipping motherboards back and forth. This is a good thing for both the company and the customer. Often, what appears to be a defective motherboard is really a bad processor, or a defective memory stick.

Not in this case, however. I had already performed all of the diagnostics requested by the technician by the time I spoke with him on the phone. Mostly, this involved disconnecting all of the devices from the motherboard, except the CPU, which is required in this case, and of course, the power supply connections, and then hooking up a speaker and listening for diagnostic tones when you power up the system. In my case, there were no diagnostic tones under any circumstances–a bad sign all around.

As a side note here, most motherboard manufacturers that sell directly to the end-user have already “wised up” about diagnostics. Most of them have added circuitry to their systems that will run diagnostics without requiring the CPU to be installed. This really cuts down on “No Trouble Found” (NTF) returns. I suggested through email that Gigabyte do the same with their hardware, and was informed that my suggestion would be passed on to the appropriate product groups. Frankly, I’m pretty sure they’ve already considered the idea, and are even possibly incorporating it into their newer designs.

The last thing the technician wanted me to try was swapping out the CPU. I told him I wasn’t a professional system builder. That was all I needed to say. He understood and said, “Okay then, we’ll play the board swap game.” (Basically, I’m not in the habit of keeping spare $80 CPU’s laying around, just in case I need to test a motherboard.)

Making Lemonade

After the call ended I had a thought: I’ve already wished more than once that I had originally purchased a quad processor CPU and more RAM–4GB instead of the 2GB that I started with. Each core in the CPU can be used by the TMPGEnc 4.0 Xpress batch encoder to independently transcode a video stream. With 4 CPU’s instead of 2, I can transcode 4 movies at a time. And this was the perfect opportunity to get an upgrade. So back I went to my browser, and ordered an AMD Phenom X4 9750 processor–the most advanced low-wattage processor this motherboard would handle–and a 2 x 2GB memory kit.

I couldn’t get Crucial memory from the company I used (Directron–NewEgg didn’t carry that particular CPU), but this turned out to be a good thing anyway. (This will make more sense in a few paragraphs.) By the way, I’m almost as impressed with my Directron shopping experience as I have been with my NewEgg experience.

It’s a minimum 3 week turn-around on an RMA with Gigabyte, and I didn’t want to wait that long. So I also went back to NewEgg and bought a duplicate Gigabyte motherboard. Why? Well, I like this board–I just had back luck with one of them. Stuff like this happens with computer hardware, so you have to be ready for it. This doesn’t mean you have to pay for it. You just have to be prepared to use the RMA process as part of a do-it-yourself computer project.

Another reason I bought another motherboard is to maximize the value of the loss I’d already sustained upgrading to a better CPU. I’d just use the replacement motherboard, and the original dual core CPU to upgrade the family computer. After installing the new board, I could see that the original board was indeed defective, so I felt good about having sent the old one in for replacement.

My new CPU and memory sticks hadn’t arrived yet, but that didn’t mean I couldn’t get on with the task at hand–converting my DVD’s and Blu-ray discs to stream files that I could watch on my XBox!

When It Rains…

Okay, so now I’m back in business. I restarted the encoding process for National Treasure 2, and came back the next morning to find…would you believe it!? Windows had rebooted after about 89 percent! Honestly! What is going on here?!

Rather than go through this 24 hour process yet again with my fingers crossed, I decided to become a bit more proactive about my troubleshooting techniques. I booted up the Vista installation CD and selected the “Repair” option, which brought up a menu containing several diagnostic and repair options. One of them was a memory checker. I ran it and Vista immediately found problems with my Crucial 1GB memory sticks. Certain values, when written to certain locations in memory, were different when read back again. This is never a good sign for memory sticks. They only have one job–to remember perfectly every value written to them.

But, to be sure, I downloaded the ISO image for MemTest86+, a freeware memory testing program, and burned a bootable CD. I then booted up the MemTest86+ CD and ran the program over night. In the morning, it had found over 230 errors in my RAM. Okay, I have bad memory also. Weird, but not unheard of. So I headed back to my browser and went to NewEgg again, taking some comfort in the fact that their memory return policy was much better than their CPU or motherboard policies.

While it’s true that NewEgg will RMA defective memory sticks for up to one year, in my case, the product had been discontinued, so the memory kit line item was also grey’ed out on my invoice. So I went to Crucial’s web site. Ah, no wonder NewEgg didn’t sell the product anymore. Crucial had discontinued it. Am I jinxed, or what!? So I called NewEgg, and they said they would gladly take the memory back and replace it with a similar product. This is why I like doing business with this company. They appear to be truly interested in retaining their customers.

But I thought I’d do some research on these memory sticks, while I was at it. After a few Google searches, I found myself staring at the customer review page for the product on (none other than) NewEgg’s website! If I had read the reviews for this memory kit, I probably would have gone with a different brand in the first place.

The trouble is, according to previous customers, Crucial and a few other companies rate their memory products based on over-clocking practices, rather than on standard motherboard settings. 240-pin DDR2 memory sticks are supposed to operate correctly on 1.8 volts, but sometimes manufacturers test their products at 1.9, 2.0 and 2.1 volts, so they can increase the apparent marketing value of their products. But what about the poor sap that doesn’t know anything about over-clocking, or worse yet–doesn’t own a motherboard designed to configure these parameters?

Gigabyte is what you might call a “progressive” motherboard company. Their motherboards are designed with over-clockers in mind. That is, the BIOS can be configured to manage all sorts of low-level voltage and clock settings. And the manual goes into great detail on how and why you might wish to use these settings–all underwritten with a major disclaimer about damage due to “improperly” using them.

I bumped the memory voltage from 1.8 to 1.9 and reloaded the memory tests. After an hour, I began to get errors again. So I went back into the BIOS and bumped the memory voltage up to 2.1 volts–the highest setting allowed by the software. Another hour of testing showed that I was still getting errors. At this point, I had to assume that the memory was just plain defective.

Upon further thought, it occured to me that these bad memory sticks may very well have been responsible for damaging the original motherboard. So I reset the BIOS settings to normal, shut down the system and waited for my new CPU and memory to arrive. While I waited, I popped out the old memory sticks and sent them back to NewEgg under RMA.

During this whole process, I’ve learned a few lessons about building PC’s. For one thing, I’ve learned about the value of burn-in tests for new systems. Had I spent a couple of days up front running memory diagnostics like MemTest86+, I’d have found out about the memory problems early–perhaps in time to have saved the original motherboard (if the Crucial memory problems did in fact destroy the motherboard, as I suspect).

Really Back in Business!

The next day, my new parts arrived in the mail. I popped in the new 9750 CPU and 2 x 2GB memory sticks, booted up the MemTest86+ CD (I have learned my lesson), and tested the memory for several hours. No defects. Incidentally, this reminded me of the days when you had to do this with new hard drives. The difference with hard drives was that you could mark the bad sectors as “bad”, and end up with just a little less space on your new hard drive. (We’ve somehow gotten past this these days with IDE and SATA drives. I believe I read somewhere that they come pre-tested with all the potentially bad sectors already marked for you!)

Next I completely reinstalled Windows Vista, which wasn’t too hard since I’d stored all my previously encoded content on a secondary 1TB hard drive. The OS drive was only 250 GB, and contained only a few programs that I’d installed for the purpose of encoding my content. After reinstalling these programs, I fired up TMPGEnc 4.0 Xpress and began the long arduous process of encoding National Treasure 2 again. I started this last night, so it’s not yet finished. Nevertheless, I have every confidence that it will complete this time (but I’m still going to cross my fingers when it gets close to 89 percent…)

As soon as the replacement motherboard arrives from Gigabyte, and the replacement memory sticks come back from NewEgg, then I’ll get to work on the family computer. The kids won’t know what happened when they boot up Windows XP home and find themselves on the login screen before they have time to run to the kitchen for a snack!

Confessions of a Video Addict

I’ve long been interested in home theater as a hobby. My family doesn’t watch much TV. This is mainly because a few years back, through an almost comical set of circumstances, I ended up cancelling my DishNetwork subscription. Since then, everyone’s been so busy with life and stuff, that we’ve never really missed “America’s Top 150”. It’s always been a bit of a joke around our house anyway that “AT/150” really should have been named “AT/15” – I just could never find enough really interesting, family-friendly content on the other 135 channels. It reminds me of that episode of the Simpsons where the pious next-door neighbor, Flanders buys a new satellite receiver. When Homer comes over to try it out, he finds all 250 channels “locked out”! “Doh!”

Regardless of my family’s attitude toward broadcast content, we do like to watch movies. I’ve had a Sanyo PLV-Z2 home theater projector for several years now. Given how much we’ve used it, the bulb should have been gone long ago, but it’s still putting out the lumens like it was new. If you like home theater and you’re considering buying a projector, then I have a tip for you: Don’t buy a spare projector bulb when you buy your projector. That way, when the bulb goes, you have a great excuse to upgrade your projector. Bulbs cost between 3 and 5 hundred dollars. With current projectors (such as the much newer PLV-Z700 [EDIT: The PLV-Z2000 has recently been discontinued in favor of the coming release of the PLV-Z700 in mid October ’08 — the specs are almost identical on these two units, and the PLV-Z700 is a couple of hundred dollars less.]) costing around $1800 dollars, it’s not a tough choice. It’s not quite as bad as the laser-printer-to-cartridge cost ratio, but it’s close enough.

Recently I read a great article on Ars Technica about building a Home Theater PC (HTPC). I’ve been aware of the concept of HTPC’s for some time now, but they’ve always been just outside my price range. This article got me all excited again about the possibility of building one for my home theater. The commercial hardware and software to make one feasible has recently become both widely available and reasonably cost-effective.

The System

What I like about Ars Technica’s HTPC system design is that it’s broad enough to be easily tailored to individual budgets, needs and tastes, and yet down to earth enough to be implemented by the average tinkerer. I enjoy building systems, and what makes this one interesting to me is that it’s not something that can be purchased outright. Very few of the mainstream system builders (Dell and Gateway, for instance) are selling PC’s today that are actually designed to be used as components in home theater systems. And yet motherboard and case manufacturers are already providing great inexpensive tools toward this very goal. When things like this begin to happen, you know it won’t be long before you’ll be able to buy components from Crutchfield that look like stereo equipment, but act like computers.

I had two goals in building my version of the one advertised in the article. First, I wanted to stay under 800 dollars. That was the limit imposed by my wife – and I agreed with her. (We actually get along pretty well when it comes to spending money on toys – we tend to stay pretty even with each other.) My system consists of the following components:

  • 1 – Antec Veris Fusion v2 Black 430 Micro ATX Media Center case.
  • 1 – Gigabyte GA-MA78GM-S2H motherboard.
  • 1 – AMD Athlon 64 X2 5200+ 2.7 Ghz 65W dual-core processor.
  • 1 – Scythe Ninja Mini CPU cooler.
  • 1 – 2 GB (2 x 1Gb) Crucial Ballistix DDR2 800 SDRAM.
  • 1 – Western Digital 250 Gb (Blue) SATA 3 Hard Drive.
  • 1 – Western Digital 1 Tb (Green) SATA 3 Hard Drive.
  • 1 – Hauppauge WinTV-HVR-1800 MCE PCI Express interface card.

Total price: 762 USD, plus 15 dollars shipping and handling. Here’s my NewEgg HTPC wishlist. (EDIT: I’ve had trouble with my NewEgg public wish lists remaining stable, as it were–they tend to modify themselves without any human intervention, so please take this NewEgg list with a grain of salt.) I added a keyboard, mouse and an old 1280 x 1024 capable monitor I had laying around the house.

I’ve never had an AMD-based system before – I’ve always just assumed that Intel had the upper hand on quality and compatibility. But I’m so impressed with its price/performance ratio that I’m seriously considering making AMD my processor of choice from now on.

Configuration Issues

The only problem I had assembling and configuring this system was that I couldn’t initially get the Vacuum Fluorescent Display (VFD) that came integrated with the Antec case to display any data. I checked and double-checked the wiring, even reversing polarity on connections that might possibly have been polarized.

When I called Antec about the problem, the technician I spoke with suggested that I ensure that the drivers were installed properly, and that the USB cable was plugged into the internal USB header correctly. I was surprised they didn’t have any other suggestions, because a quick Google search pointed me to several conversation threads in various Audio/Visual forums where other people had similar problems. I never saw a good solution, however.

Here’s what I did to get mine working – and I consider this solution to be a work-around to a bug in the Antec VFD USB circuitry: First, I had to uninstall all VFD related software. One of the problems appears to be that the driver disc that comes with the Antec case has drivers for Windows XP Media Center, not Windows Vista Media Center. The XP drivers simply won’t work under Vista, but there’s no documentation indicating this issue.

Instead, you need to go to the the SoundGraph support site and download the latest Vista VFD drivers – I installed the latest beta drivers. SoundGraph wrote the drivers for the Antec VFD, and has integrated them into a configuration package that provides a front-panel configuration utility. Using this utility, you can configure the VFD to display just about anything you might want to. It’s really pretty cool stuff.

Next, you have to do something really weird. After you’ve properly installed the new drivers, reboot your machine, remove the cover while it’s still running, and disconnect the three-wire VFD power connector (purple, red and black). Wait a couple of seconds and then reconnect it. The iMon software driver installer will appear on your desktop, and within seconds your VFD will begin to display information properly. The USB standard indicates that it’s supposed to do this for you, but with the Antec USB interface, you actually have to power down the VFD while the USB cable is plugged in to get it to install the proper driver.

The Operating System

My software of choice? Windows Vista Media Center Edition. Now before you get into a big huff about my chosing commercial software over freeware, let me just say that I’ve been working on this stuff for a long time now, and I really do understand the pros and the cons of using both. If you’ve got the hundred bucks for Vista WMC, the difference in user experience is well worth the money.

One thing I’ll say for the folks in Redmond – when they put their minds to something, nothing is left to chance, and this sentiment applies well to the Microsoft eHome group. They’re working frantically to beat the competition to market in this area. Features are added faster than I can keep up. And, with Windows online update service, new features are available in this version, not just the next time you upgrade.

Case in point: The XBox 360 picked up streaming DivX support just last December (07). That’s after I bought my 360 in November. Yet I have DivX support today – all it took was a 5 minute download on the 360 console, which happened automatically when I tried to play my first DivX movie, streamed from Windows Media Player.

Connecting an HTPC to a TV (or Projector)

I have a slightly older projector. The Sanyo PLV-Z2 can only accept analog input via standard component video RCA jacks, and it only displays 1080i video. I also have a somewhat dated Denon 7.1 channel Dolby Digital/DTS decoder. This amplifier is also a video switcher, but will only switch composite, s-video and component video sources, and doesn’t do any up-conversion between these formats. It’s been good for me for several years, so I’m not complaining (much). The newer systems all do HDMI video switching and will do up-conversion – all for a lesser price tag. Oh well, that’s technology for you.

The point, however, is that the Gigabyte motherboard has that sweet AMD (ATI) 780G on-board video processor (which is why I didn’t have to buy a video card). This chipset provides both analog and digital video via VGA, DVI-I and HDMI ports, available through the I/O panel. But no component video. Don’t even bother considering a video converter. They exist alright, and you can pick one up for about 130 dollars from Audio Authority, but due to the Digital Millenium Copyright Act (DMCA), it’s literally illegal (at least in the United States) for these devices to convert any video that’s HDCP-encoded, which includes most Blu-ray content. Blu-ray content is only displayed on digital outputs, and encrypted with HD Content Protection (HDCP). Thus, as the man at the gas station says, “Ya can’t get there from here.”

This means that even if I did plug my new HTPC into my existing home theater system, I literally couldn’t play any of my Blu-ray discs in the BD-ROM drive. Since I can’t play anything from disc, that only leaves the option of ripping content and playing unencrypted streams from the hard drive (not counting the far less viable option of spending another 3 grand updating my amp and projector).

(EDIT: I’ve since discovered that you can, in fact, play Blu-ray disks, and have the content displayed just fine on any analog display device. Apparently the MPAA doesn’t consider analog 1080i picture quality a threat to their income.)

This isn’t as bad as you might think. Dozens of my DVDs have seen better days just because my kids don’t spend their hard-earned cash buying them. But that’s the way kids are. I try to teach them to be careful, but they really won’t become careful until they do spend their own money.

My solution is to rip everything, convert to DivX and put my discs in a closet for safe-keeping. DMCA or not, there’s nothing immoral about what I’m doing. While it may be technically illegal, the only thing I’m withholding from the Motion Picture Association of America (MPAA) is any additional cash I might spend on a new copy of a disc I’ve already purchased, but which is now too scratched up to use.

(EDIT: I’ve since discovered, through a closer examination of the DMCA wording, that it’s not actually illegal to make copies of your purchased media. What’s illegal is either selling them or giving them away, or creating and distributing tools that help other people make such copies. It’s a strange world we live in!)

I’ve contacted media sources for this very reason in the past, and I could almost hear the glee in their voices when they told me that there’s simply no recourse for a scratched disc. I have to purchase a new one. It makes me angry just thinking about it.

Since I’m going to rip and convert all my content anyway, there’s really no point in connecting the HTPC directly to the projector. Not when an XBox 360 is a perfectly good WMC extender. And the ability to use a 360 as a WMC extender is about the coolest thing I’ve ever seen Microsoft provide. It works like Windows remote desktop. It’s just as if you’re sitting at your PC screen with Windows Media Center in full-screen mode. And the PC doesn’t even have to be running WMC! There’s a media center agent that runs WMC in the background for remote extenders.

Since the 360 will drive my projector at 1080i over component video, I can leave my noisy PC in my work room. (In point of fact, with two 120 mm fans running at low speed, the system is really very quiet – almost silent.) I can then simply stream HD video and live or recorded TV right to my 360 in high definition, letting the XBox drive the projector at 1080i. Since it’s more comfortable to sit at my desk while I’m ripping and converting, this setup works quite well for me.

The Software

While HTPC hardware is coming down in price and going up in features – literally on a daily basis – the software is still a bit rough around the edges, which is another reason I recommend using Windows Media Center. You’ll have a difficult enough time getting your media configured to play the way you want, without worrying about getting the right mix of hardware and open source or free software to work correctly on your HTPC. After much experimentation, I settled on two commercial packages – both providing at least two-week free trial periods:

AnyDVDHD will rip literally anything from DVD, HD-DVD or Blu-ray discs – encoded, encrypted, encased in kryptonite – it doesn’t really matter. And it removes all the various rediculous copy protection schemes, in the process. You’ll then have DVD or HD content from your media in a format with which you can do something useful. The cost: 100 bucks. Sorry, but you get what you pay for in this area. The free stuff is available, but it usually breaks down on the disc you want most to rip.

(EDIT: AnyDVDHD is copy protection circumvention software and as such, according to the Digital Millenium Copyright Act of 1998, is illegal contraband material. To avoid prosecution or shutdown of this blog, I’m not linking to the site directly. You’ll have to use Google or your favorite search engine to find references to AnyDVDHD or SlySoft on your own. I’m sorry, but this is what our society has come to.)

How do they get away with providing a product like this? After all, it is illegal under the DMCA. They can do it because the software is completely developed and marketed on the Internet outside the United States. (I have a similar tool, called TuneBite for decrypting music files so I can put them on my daughter’s Rio. Tunebite is developed in Romania.)

TMPGEnc 4.0 XPress is an audio/video format converter that does just as well on format conversion as AnyDVDHD does on ripping content. Pegasys advertises that it converts virtually any format to any format, and they aren’t lying. It comes with native support for DivX, but if you want to get down and dirty with your special HD camera codecs, it will allow you direct access to any installed Video for Windows codec. This includes external Xvid or DivX pro codecs. The cost: another 100 bucks…and worth every penny for the simplicity and power that it grants you to do what you want without hassle.

The trial versions of these packages are a bit crippled in various ways, but they were functional enough to tell me that the hundred-dollar costs of each weren’t going to be wasted.

Ripping and converting is a dark art. There are a lot of “tutorials” but very few instruction manuals. The only reason I can think of for this is that, as I mentioned above, it’s basically illegal to do it. Regardless of your intentions or motivations, the law is the law, and no commercial enterprise wants to get their hand slapped for providing instructions for doing something illegal.

Given the lobbying power behind the DMCA, doing so is about equivalent to providing on-line detailed instructions for creating a homemade nuclear device. Most of the information you’ll find that’s very useful will be from sources outside the US. A really good source of fairly up-to-date information is the Doom9 web site. Click on the “Guides” link sometime when you have a few hours of reading time in front of you.

The Work Flow

To get you on the fast path, I’ll explain my work flow and the options I use to get the most out of streaming video. First, here are a few links to important facts about streaming video to the XBox 360:

The XBox support site also has detailed instructions on how to connect your 360 to your WMC PC, but it’s trivial enough to do that I didn’t even need these instructions.

There are a few facts about digital media formats that you should know before you start. These are hard to find – especially if you’re not looking for them to begin with. In the first place, while you can now stream DivX and Xvid to the 360, the only format that will stream 5.1 channel audio is WMV. With all the press coverage that the December ’07 360 console update received regarding the new DivX support feature, you’d have thought it was the next best thing to sliced bread.

For my purposes, DivX video without 5.1 channel audio is useless. At least half of the home theater experience is related to audio. I find it difficult to believe that people are willing to settle for simple 2 channel stereo in a home theater system these days. Here’s the configuration that worked for me:

Blu-Ray Video Specifications

  • Windows Media Video (WMV) 9 Advanced Profile
  • 1920 x 1080, 30 frames per second, progressive
  • 2 Pass Variable Bit Rate (VBR), 10,000 kb/s (avg)

Blu-Ray Audio Specifications

  • Windows Media Audio (WMA) 10 Professional
  • 48 Hz, 5.1 Channel Audio, 24 bits
  • 2 Pass, Variable Bit Rate (VBR), 256 kb/s (avg)

DVD Video Specifications

  • Windows Media Video (WMV) 9 Advanced Profile
  • 720 x 480, 30 frames per second, progressive
  • 2 Pass Variable Bit Rate (VBR), 1500 kb/s (avg)

DVD Audio Specifications

  • Windows Media Audio (WMA) 10 Professional
  • 44 Hz, 5.1 Channel Audio, 16 bits
  • 2 Pass, Variable Bit Rate (VBR), 128 kb/s (avg)

These are the only streamable audio/video configurations I could find that would stream HD video and 5.1 channel audio while using the 360 as a WMC extender. If you don’t mind popping out of extender mode into the 360 dashboard to watch Divx movies, then you can also stream similiar video and audio using Divx/avi files. On this issue, I have to agree with many a forum participant (read, “complainer”) regarding Microsoft’s decision not to support 5.1 channel audio in Divx streams through the extender interface. They hate it, and so do I. It’s just plain lame that the 360 can handle divx with 5.1 channel audio, but not through the WMC extender interface. Oh, well. When that functionality is finally added, I’ll just re-encode to Divx.

Now, you may have a few questions about this configuration. For instance, why did I go to all the trouble of encoding 5.1 channel, 16 bit audio, only to limit my bit rate to 128 kb/s? Well, frankly I defy anyone to tell the difference between 128 kb/s and 256 kb/s. Most of the mp3 audio files we download from iTunes or Amazon these days are 160 kb/s data files. iTunes recently came out with their iTunes Plus program, which makes some music available unencrypted, and at a higher, 256 kb/s bit rate. I’ve upgraded some of the music in my library to iTunes Plus – mainly so I could get it in an unencrypted format, but I can’t tell the difference between 168 kb/s and 256 kb/s. I simply can’t. Some may be able to, but the difference is nearly indistinguishable to the human ear. If you’re worried about it, use 256 kb/s instead of 128. The audio stream size difference is negligible compared to the video stream in the data file anyway.

Another question you might ask me is why I’m using 1920 x 1080 in my blu-ray video streams, when the native size of my projector is 1280 x 720. The reason is that the projector has some very sophisticated video scaling circuitry that can easily convert a 1080 line picture to 720 lines of native resolution. At some point, I’ll upgrade my PLV-Z2 projector to a PLV-Z700, which has a native 1080 scan lines of resolution. When I do that, I’ll see a noticable improvement in video quality from my HD video files.

The same question could be asked in reverse of the DVD-quality video streams. I’m encoding 720 x 480 video streams, so my projector has to upscale the picture to 1280 x 720. In this case, 720 x 480 is the best I can get from DVD video. The projector will do a better job of scaling than will my software encoder, so I see no reason to make my video files larger than I have to.

Unanswered Questions…

Could someone please tell me how to discern the difference between 1000 kb/s video and 10,000 kb/s video? I encoded The Waterhorse at 10,000 kb/s, but I encoded a 50 second sample from the beginning at 1000 kb/s, and I simply can’t see any discernible difference. The difference in file size is enormous. The entire movie, encoded at 10,000 kb/s is about 8.5 Gb, which isn’t bad, given that the original mpeg-2 Blu-ray encoding was 29 Gb. If I encode the entire film at 1000 kb/s, however, it drops to an amazing 1 Gb – I can fit that onto a normal DVD, along with 4 other movies!

Despite my apparent enthusiasm at these compression ratios, I’m still a purist at heart. I’d like to say I’m watching better quality video. Perhaps it’s just the fact that I’m watching on a 1080i projector that down-converts to a native resolution equivalent to 720p. Perhaps a native 1080p projector or a native 1080p LCD or plasma display would make all the difference. Oh well. I’ll have to find out later, when I can afford the upgrade.

Incidentally, I also compared these samples on a regular monitor. I still can’t see a difference. Both pictures look sharp and clear. Neither one looks quite as good as watching the movie right from the Blu-ray disc using PowerDVD-HD. I attribute that mostly to the fact that I encoded the samples at a lower resolution, not a lower bit-rate.

Stay tuned, because I’m sure I’ll have more to say on this topic later.

On Personal Internet Security…

I have over a hundred accounts on the Internet. I do a lot of online shopping for everything from books to computer hardware to toys for my kids. I also have accounts on various social networking sites like linked-in, facebook, myspace, plaxo, pulse and naymes. I use online authoring sites like wordpress, freesoftwaremagazine, digg, technorati and others. I like to personalize google news and various product support sites to my own tastes. I like it when sites like this allow me to create a profile – essentially a login account.

I also work in the software industry and write a fair amount of open source code, so I have accounts at locations like sourceforge.net, which manages separate authentication materials for mailing list accounts, primary site access, shell access, etc – and often for each project they support. This means literally dozens of passwords for a single site.

These places are all pretty benign as far as security issues are concerned. Frankly, I don’t really care if someone knows my middle name, or my phone number for that matter. But I do most of my banking online , and some web-based store fronts keep track of my credit card information these days. I have the option of not giving it to them, but if I trust them, I like to use this feature, and that presents a real security problem for me. Some of these sites have fairly good identity security–others do not. I don’t know which ones do and which ones don’t.

I used to use the same password everywhere – so I wouldn’t forget it. When I started doing online banking and storing credit card information at various store fronts, I used one password for these places, and another one for everywhere else. But lately the number of security classifications I use has increased significantly, making it difficult to remember all of the passwords I use.

If a hacker can break into one of these weaker sites, and capture account information and passwords, they can then access more sensitive personal information at many other sites where I have accounts. Now, I’m not a conspiracy theorist. I don’t believe there are groups of people out to get me personally. But I do believe in bad guys. And I know for a fact that there are bad guys out there “phishing” for random authentication materials. If they find a way to access one (like mine) and if they then find that I use the same password at my bank, I really do believe they’ll go after my cash. After all, they don’t really care whose money they take.

KeePass

Recently, I was introduced to the KeePass project on SourceForge.net. What a gem of a little project! KeePass allows you to store passwords and other account information in an easily accessible hierarchical format within an encrypted database on your hard drive. You only need to remember a single master password to get into the database.

Some people might balk at the idea of another layer of indirection between themselves and their online banking web site. I’d agree myself, if it weren’t for some of the really cool usability features in KeePass. For instance, KeePass can copy a password to the clipboard from an entry in its database, which means you need only click on the password entry field and press Ctrl-V to paste it in. If you care to take this to the next level, KeePass will also fill in login forms automatically with a configurable hot-key press on the login page of your sites.

KeePass also contains a small area in each password entry for notes and such. I have an AT&T cell phone account which allows me to connect to the Internet on my laptop through my phone over a high-speed connection. But configuring this connection initially was a real pain in the neck! Once I got it figured out, I wrote down the steps for configuration so I wouldn’t forget them. The next time I needed to reconfigure my laptop, I forgot where I’d written down these instructions. Now, I have them in the notes section for my AT&T wireless account in KeePass.

Another nice feature is that KeePass will automatically generate a high-security password for you, with a single click. When I create a new account on a web-site these days, I just pull up KeePass and create the account and the KeePass entry at the same time. When the site asks me for a password, I don’t waste time thinking about what I should use–I just tell KeePass to give me a good one, then cut and paste it in.

Finally, KeePass will stay resident on your Windows machine, adding a little icon to the system tray while it’s running. Click the icon and you have instant access to your password database. With highly configurable security policy tailored to your personal tastes, you can decide how often you want to type in your master password: Once at login, each time you click the system tray icon, only when you lock it, when you lock your computer screen, etc. You can also configure it to minimize to the tray, or to close to the tray.

Taking It With You

This is all well and good if you only work on one machine. I work on multiple machines. I have one at home where I spend time shopping, and I have one at work where I access my sourceforge.net accounts. I have a laptop that I take with me to sneak in some work or play while I’m waiting at the repair shop for my car to be fixed. Sometimes I use my wife’s laptop–just because it’s handy. Sometimes I use a kiosk computer at the airport or at the library. Sometimes I use a colleague’s computer in another office at work.

KeePass has a solution for this problem as well. If you wish, you can store the database on a removable media device, like a USB drive. You can pick up a 1G USB drive these days for 10 to 20 bucks. And this is 100 times as much memory as you need for a password store.

But the database does you little good if you can’t access it with the KeePass program when you need a password. The designers of KeePass understood this. You can store a portable version of the program itself on the USB drive. Portable, in this context, means programming in such a way that the software requires no explicit installation. It creates no registry entries, or special file system objects. This means you can access your password database from any Windows machine with a USB port. Just plug it in and run the program right from the USB drive.

What, Now Linux Too?!

What more could I ask for? Well…recently, I installed Linux on my desktop machine at work. Since moving to OpenSUSE 10.3, I’ve been very satisfied with what I’ve been able to accomplish using only free software. It’s been a whirlwind romance, and I’ve loved every minute of it, but it’s the first time I’ve been without a Windows machine handy to…you know, do the stuff I can only do on Windows. Sad to consider it that way, but it’s been true for me, so I’m guessing it’s true for most everyone else, as well.

Unfortunately, KeePass is a Windows program. “Well, I’m in love with the concept, not the program”, I told myself. So I went looking for a more portable alternative. One that was perhaps not as functional as KeePass, but at least ran on Windows and Linux. And I found it–KeePassX. This is a spin off of the original Windows open source program found on SourceForge.net.

KeePassX is written using QT and compiled under mingw on Windows, so its interfaces on both platforms are nearly identical. The people who did the port stayed true to the original KeePass look and feel as much as they could in this portable version. I’m very pleased, because now I can carry copies of KeePassX for Windows and Linux, as well as the database which, of course, both versions will open and process.

The only glitch I ran into with KeePassX was that it requires the mingwm10.dll, which fact is not advertised anywhere on the KeePassX web site that I could find, and the win32 package didn’t ship with this library. In fact, the only reference to it that I could find was an entry by a user in their forums indicating that they should probably mention the requirement somewhere. Personally, I think it’s an oversight, and that the Windows bundle should just install it.

To get the library, I just did a Google search for mingwm10 and found a myriad of places from which I could download it. I did that, placed the library in the same directory as the executable and all was well again.

Setting It All Up

To set all this up, I first formatted the USB key under Windows (because Linux has no problem reading FAT-formatted drives, and typically Windows only does Windows). Then I created a directory structure like this on the USB key:

Win32\
   ...unpacked files from KeePassX Win32 bundle
Linux\
   ...unpacked files from KeePassX Linux bundle
Install\
   ...bundles for both platforms, plus mingwm10 bundle, still packed
Passwords.kdb
Autorun.inf

Now, I like to do things up right. On Windows XP, when you insert a USB key, it acts like a removable drive–a CDROM or a USB hard drive. On these types of media, you can place a file at the root of the volume called Autorun.inf, which describes for Windows some things you’d like to have happen when the volume is mounted. I added the following text to an Autorun.inf file on the root of my USB key:

[autorun]
action="Run KeePassX"
open=Win32\KeePassX.exe
icon=Win32\KeePassX.exe
shell\keepassx=&KeePassX
shell\keepassx\command=Win32\KeePassX.exe

The “action” keyword allows Windows to display an option called “Run KeePassX” in the list of stuff to do when a drive is mounted that contains mixed media. Unfortunately, the graphic files (icons, bitmaps, etc) on a QT application are stored separately from the binary, so Windows interprets them as picture files. Since there are both pictures AND executables on the USB key, Windows doesn’t know what you really want to do, so it asks you every time you insert the USB key.

On Vista, you have a few more options. You can add more entries under a “[Contents]” section that tells Vista exactly what to do in the case of a conflict. To me, it’s a no-brainer to have done this in XP, but that’s not the way things came out, so we have to put up with the confusion. Most often, CDROM’s that contain executables designed to be run when the disk is inserted are installation CD’s for software you purchase. These have all sorts of media, but they often come packaged up in CAB or ZIP files, so Windows is not confused. There are only executables, so there’s no ambiguity. Windows just runs the setup.exe or install.exe program, as specified in the “open” tag.

When specifying an “action”, the “open” option tells Windows what to do if you select the “Run KeePassX” option in the pop up menu when the key is inserted. The “icon” option is really neat because it not only tells Windows what icon to display next to the action in the pop up, but also what icon to display in file explorer when the drive is mounted. The “shell” option is used to add a context menu option to the menu that comes up when you right-click on the drive in file explorer.

Look here at msdn.microsoft.com to learn more about Autoplay on Windows platforms.

Now, I’ve got the best of both worlds, and access to my password database from either place. Could I be any happier about the state of my personal Internet security? I don’t think so.

[Edit: I lost my password database the other day – it was corrupted when I pulled the USB key out of my Linux machine while the program was open. I think the corruption occurred because I popped it into a Windows machine, opened the database, and then put the key BACK into the Linux USB socket, and saved the database. In any case, I HIGHLY recommend you backup your password database once in a while. Luckily, I had a recent copy saved off somewhere, and I was able to get back about 95 percent of my data. Now, I keep a backup of the database on the same USB key in a “Backup” directory, which I overwrite quite often. I also keep a backup on another disk that I backup once a week or so, if I’ve made changes during the interim.

One person I know stores his database in a subversion repository, and updates it on any of his machines. That’s nice to get the latest version on any of your own machines, but it doesn’t help you when you want to access your store on a machine that’s not yours. Still, it’s a good idea to keep it in a repository like this.]

Installing Windows XP on a SATA Drive

This is probably the 1000th article on the Internet about how to install Windows XP on a SATA drive; believe me, I’ve read most of them. The trouble is that most of them tell you about 80 percent of what you need to know, and leave the rest for you to figure out on your own. I hope this one is different – better, that is.

I have several computers in my home. One of them is a family computer that the kids use to play games and write school papers. It’s in the library, which is basically an unused room in the center of our house that is open enough to be watched by my wife and me when the kids are on the Internet, and yet private enough to give them the peace they need when doing an undesirable homework assignment (of which they indicate they have too many).

A few months ago, my son complained to me that he couldn’t install a game because the computer was “out of space”. I checked it out, thinking that I could just delete some other unwanted things. As I went through the “Add/Remove Programs” menu with him, it quickly became apparent that everything there was “too important to delete”. You see, I’d already used this trick several months earlier for the same reason, and apparently the hard drive really was full this time – not surprising since it was a only 16 GB hard drive. This always amazes me, since my first computer had a whopping 40 MB hard drive – I thought I’d died and gone to computer heaven at the time. However, I really do know better. While some complain that software has simply gotten out of control these days, the real problem is the content; multimedia-rich data files take up most of our hard drive space. On top of that, my daughter stores her iTunes music files on that drive: Need I elaborate?

A New Hard Drive

So I moved over to my laptop at the desk in the same room, opened a browser and logged into one of my favorite hardware sites: ZipZoomFly. Picking up a new hard drive was child’s play, and choosing a fast SATA drive to replace the old slow IDE drive was a no-brainer. I haven’t done this in a while, and so I was surprised that I could pick up a Western Digital 250 GB SATA II drive for only 69 bucks – with free shipping, no less!

The first thing I did was was to ensure that my library computer’s motherboard had a SATA connector; it did, but only SATA I connector. SATA I has a 1.5 Gb/s transfer rate, as opposed to the 3 Gb/s transfer rate of the SATA II interface. So I did a little more research to see if the drive could be configured for the lower transfer rate. Western Digital indicates that the drive is “self-regulating”, which means it’s supposed to be backward compatible – automatically. I’ve heard statements like this before, so I didn’t trust this one any farther than I could toss it. However, a little more research showed that WD drives also have a jumper setting to force it to 1.5 Gb/s transfer rate – that’s better.

I could have just spent a little less money and bought a SATA I drive, but hey, I figure the kids are going to want a motherboard upgrade pretty soon anyway, at which point I can just remove the jumper, and upgrade my hard drive at the same time for free.

Installing Windows – Almost

The drive came in the mail yesterday, and I happened to be working at home. So I thought I’d just allow the Windows XP install to run while I worked on my laptop. I popped the new drive into a spare bay, plugged in the SATA cable and the power connector, and booted up the Windows XP installation CD. I left the old hard drive in place so I could copy my kids’ data files after the installation, but I disabled the primary IDE channel in the BIOS so it wouldn’t get in the way during Windows setup. I’ve been burned by this scenario before. Windows will assign drive letters (on a rather permanent basis) to devices based on the order in which they are found during a hardware probe.

When I built my main home computer, I inadvertently had my Zip drive plugged into to a USB port during the installation, and Windows configured it as drive C, of all things! After a little research on Microsoft’s support site, I found I had to reinstall from scratch just to get C: reassigned to the hard drive. Now, you might think I was a little “Type-A” here in “needing” the hard drive to be C: rather the F: it was actually assigned. Well, I’ll tell you, I’m leaving out some details in this story. You see, I actually left it the way it was for about 4 months before reinstalling, and I ran into several software packages during that period that had trouble with the concept of F: being the primary hard drive. Dumb programs (read “programmers”), I know, but it was my pain in the neck, not theirs.

Back to my story: The installation CD whirred and hummed for a minute loading various device drivers in preparation for installing Windows. While this was happening, I sat thinking to myself that it’s always been amazing to me that Microsoft could find just the right set of drivers for the installer to be able to interact with all the hardware in the world… When it finally finished, it popped up a message indicating that no hard drives were found. Hmmm, I guess I thought too soon; SATA drives are apparently not supported by the Windows XP installer.

Oh well. I already knew about the “Press F6 to load additional drivers…” trick. This message is displayed near the beginning of the installation process – just before the installer loads all of the pre-configured drivers on the CD. My family computer’s motherboard is made by MSI, so I went to MSI’s tech-support web site and found that they have a really nifty web-based hardware probe utility (beware: Explorer 5+ and ActiveX are required) that will tell you exactly what driver upgrades are available for your hardware. There are only two problems with this approach. First, you need to access the site from the machine you want to probe – this is understandable. But the second problem is that Windows XP installation drivers are not provided in this service, and quite frankly, the rest of MSI’s support site is a bit of a nightmare.

I booted up Windows from the old IDE hard drive, downloaded a probe utility from MSI and found the manufacturer and model number of the on-board SATA interface. Turns out it’s a VIA VT8237 SATA RAID controller – a fairly popular on-board device in today’s motherboards, although this one is probably a little out of date, as it’s only a SATA I device. But VIA Technologies has a web site dedicated to VIA hardware support. The latest Windows XP SATA RAID drivers for my VT8237 were easily located on this site. In addition, it has some really interesting articles on cutting-edge hardware on the front page.

Floppy Troubles

I opened the zip file and found a utility that creates an XP installation driver floppy image. I popped a blank floppy into drive A and pressed the go button. And nothing happened. After a bit of debugging, I found that the floppy drive in the machine was defective. In fact, I have several computers in my home, but there’s not a working floppy drive in the entire house. Back to the Internet. This time, I downloaded a freeware utility (open source, in fact) that installs a device driver on XP that emulates a floppy drive in either RAM or a disk file. Cool. I’m back in business – at least until I needed to “Press F6 to load additional drivers…” from my non-existent floppy drive. But I’m getting ahead of myself.

Setting up this floppy emulator is a bit tricky, as there are several steps involved in getting it to finally show up in your system as drive A:.

  1. Run the vfdwin.exe program. Click on “Install”. You’ll see a message in the output status box at the bottom of the dialog, “The VFD driver is installed.”
  2. Click “Start”. You’ll see another message added to the output box, “The VFD driver is started.”
  3. Click on the “Drive0” tab at the top and press the “Change…” button in the upper right corner to change the drive letter assigned to your virtual floppy drive. By default, no drive letter is assigned, so while you have properly installed the driver and started it, you won’t be able to access the virtual floppy drive until you’ve assigned it a drive letter. Select A:, and another message will be added to the list at the bottom of the dialog, “Drive 0: A drive letter is assigned.”
  4. Now you have to back up your RAM disk with a file. Select the “Open…” button (also found on the “Drive 0” tab). Browse to a location on your hard drive, and enter the file name, “drive_a.bin” (or whatever you want). One more message will be added to the list at the bottom, “Drive 0: A virtual floppy image is opened.”
  5. Click the “Format” button to format the image. You’ll get the usual “Warning…” dialog that you always get when you attempt to format a disk of any kind. Click “OK”, and you’ll get another dialog almost immediately that says formatting is complete. A final message is added to the list, “Formatted the current image.”

This is all a bit pedantic, I know, but it gives you the most flexibility at the expense of a degree or two of simplicity. You can check your final results by opening a command window and typing, “A:<enter>”, or open an explorer window and choose the “3-1/2 Floppy (A:)” entry under “My Computer”. If everything worked properly, you should be looking into your virtual floppy drive. What’s more, no program that’s written properly should be able to tell the difference between your virtual floppy and a real floppy drive.

I went back to my VIA utility to create a floppy image of my installation drivers and sure enough, it wrote a bunch of files to my virtual A drive, which I then copied off into a folder on my desktop – after all, I only needed the files, not the floppy disk!

Installing XP Without a Floppy Drive

Remember that this all started because I needed a way of installing Windows XP onto a SATA drive. And now I had the added problem of not having a working floppy drive in which to add the drivers during the installation process. My virtual floppy driver won’t work – it requires Windows! But there is a way. I downloaded another freeware utility called nLite, which allows you to configure a Windows XP installation image with whatever drivers you want, as well as provides some other really cool features.

You’ll need to ensure that the machine you’re using has .NET framework 1.1 installed. But the nLite installer will tell you if you need it, and even ask if you want to get it and install it before it continues. Just select “Yes” if you need to, but you’ll have to restart the nLite installation after installing .NET. Since I keep my Windows machines pretty much up to date using Windows Update, I didn’t have to worry about this part – I already had it.

nLite comes up as a dialog which allows you to select a Windows XP installation image source. Select “Browse” and navigate to the root of your Win XP install CD. Then – slightly confusingly – another file selection dialog immediately opens asking for the location in which to WRITE the image. Select a location on your hard drive. You ought to have at least 1 GB free to do this because it’s going to copy the entire Windows XP CD image to your hard drive.

Once it completes the copy process, press the “Next >>” button and then skip the pre-install options screen by pressing it again. Now you can select which portions of the installation image you wish to modify. For my purposes, I selected “Bootable Image” and “Add Drivers”, then pressed “Next >>” again. With these options selected, the first screen is the “Add drivers” screen. I pressed the “Insert” button at the bottom, and browsed to the folder on my Desktop containing the VIA SATA drivers that I copied from the virtual floppy image.

Now, the most important thing to realize here is that there’s a difference between regular Windows XP drivers and the “text mode” drivers used by the Windows installation program. Make sure you select the text mode drivers, or you will generate an image that does exactly the same thing as your original XP installation CD – nothing. If you properly select text mode drivers, nLite will open a second dialog window that asks you whether you want text mode or regular drivers. Again, select the text mode drivers, and press “OK” to continue. If you don’t get this additional dialog, then you’ve selected the wrong type of drivers. Select the “Next >>” button again, and you’ll be prompted to choose how you want your image generated. nLite is so cool it will even burn a CD for you. I just popped a blank CD into my CD burner and selected “Burn CD” from the drop-down menu in the upper left. Then pressed the “Burn” button.

Really Installing Windows

When the burn finished, I just rebooted, disabled the primary IDE controller again in the BIOS setup, and then rebooted to the new CD I’d just created. This time I was able to install Windows XP on my new SATA drive – without a floppy drive.

Other cool things you can do with nLite include preconfiguring administrator password and additional user accounts and passwords, pre-configuring the timezone you’ll need, and answering other questions that the XP installation process normally asks you during a typical installation. If you choose carefully, you can create an installation image that will run by itself with no prompting. I can’t even conceive of the amount of information you would need to know about the Windows installation process in order to write such a utility, but I’m sure glad someone else cared enough about it to learn it and write nLite.

Nagios and XP Printing Troubles

Well, since I posted my troubles with Linux installation last month, a lot has happened in my life. I’ve accepted a position with the LDS church to work on open source software projects. Seemed to be a nice fit and, while I loved working at Novell for 16 years, it was time for a change.

The project I’m currently working on is called DNX, which is an acronym for Distributed Nagios eXecutor. DNX is a Nagios plugin that evenly distributes the network checks traditionally done by a single Nagios monitoring system among a group of worker nodes. DNX has the potential to add incredible scalabilty to Nagios.

In the process of moving, I’m now back on a Windows machine – the Church ICS department standard is Windows XP Pro. It’s a sad, but true fact that if your company has a number of OTS software products that are used in its daily processes, then you will have trouble running Linux. I love Linux, and we code to it, and use it on our servers at work – Nagios itself is a Linux/Unix network monitoring tool – as far as I know, it’s never even been ported to Windows (although that would be an interesting project, but I digress… I’ll have more to say about Nagios later, I’m sure).

The short story is that I now have to run Windows on my laptop. With the setup they gave me, I can do most of my work from home. Using the Cisco VPN, I’m able to access all of the resources I need behind the firewall at work. I’ve used VPN’s before, but frankly, I never really needed it like I do now. Most of the services I needed at Novell were actually outside the firewall anyway. I mostly used it to access my linux box on my desk at work from home.

The only real problem I’ve had so far is printing from my new laptop to my home machine’s networked printer. It’s an HP Laserjet 1200 which is shared by my home XP Pro machine. I’ve never had trouble getting to it from any of my other home machines, nor from my wife’s Dell Inspiron laptop. But I just could not connect to the printer from my Dell D830 from work.

One significant difference between the two laptops is that my work machine (not a little ironically) is running the Novell client – something I hadn’t done at Novell for over 7 years!

I spent a couple of hours this morning googling for the error message that Windows was giving me when I attempted to add the printer:

“Operation could not be completed. Either the printer name was typed incorrectly, or the specified printer has lost its connection to the server. For more information, click Help.”

I finally found a single entry on one of the Microsoft tech forums where someone was having a similar problem, and he was persistent enough to figure out a work-around for this issue. Interestingly, the issue is not in Microsoft’s own knowledge base.

The work-around was to treat the printer as a local device, but specify its port as a UNC path. It appears that the Windows network printing subsystem has problems with networked printers that that the local printer subsystem does not have. Here’s what you do:

  1. click the Add Printer wizard icon in the Printers and Faxes pane of explorer.
  2. add a *local* printer (even if it’s not on the local machine)
  3. on the next screen choose “Create a new port” and leave the default “Local Port” in the drop down list.
  4. when you click Next, you’ll get a dialog asking for a port name – type in the UNC path for the printer (eg., \\home-machine\hplj1200)

This actually works. Apparently one valid type of port in the local printing subsystem is a UNC path to a remote printer! You gotta love those Microsoft engineers – they thought of everything when it comes to integration. Too bad they didn’t work together a bit more on the actual implementation of their versions of these subsystems.

To be clear, I can print to my home printer now from my laptop when I’m working at home. It’s amazing how you miss something that you take for granted when it works.