Sunday, December 12, 2010

Fool me once: Nintendo's policy on tranferring content purchased from Wii Shop

I purchased a Wii back in early 2007. Since then, over time, I had purchased a few things from the Wii Shop channel -- mostly old NES titles like the original The Legend of Zelda, to show my kids and nephews what Dad / Uncle Jon played while he was growing up.

When making those purchases, I didn't give much thought to Nintendo's policy regarding purchased downloadable content. I purchased the games, they downloaded, they were playable on my Wii, no problem.

Fast-forward to November 2010: This Wii purchased in 2007 had a few hardware problems over the years.

  • First, a series of problems with the Wii overheating which cased the Wii to power off in the middle of gameplay. I eventually diagnosed this was due to the Wii's rear fan being stuck, and repaired myself.
  • Second, throughout 2009 the Wii had gone from being near-silent while powered on to making an increasingly loud buzzing/grinding noise while spinning discs in the drive (i.e. at all times during gameplay of most games); I once again disassembled my Wii but was unable to resolve this issue.
  • Finally, and most most seriously, the Wii had started occasionally giving a disc read error when trying to read various game discs inserted into the drive.

Even at the time of the initial overheating issues, the Wii was out of warranty, so getting a warranty repair was not an option. So, being unable to repair the disc read issue myself, the options for getting a household Wii up and running again essentially boiled down to either purchasing a repair from Nintendo, or purchasing a new Wii.

On Black Friday weekend, the latter option seemed pretty attractive: Rather than pay around US $80-100 to send my old white Wii to Nintendo for a repair, Amazon.com was running a deal for a new Black Wii, including the game Wii Sports Resort and a "Wii Remote Plus" controller, for $170. With the Wii Sports Resort game alone going for almost $50, and not including an entire additional Wii Remote controller, springing for the new Black Wii seemed like a pretty good deal -- so I went ahead and jumped on it.

It did occur to me that I would need to transfer the content from my old Wii -- save game files, created Mii avatars, and purchased Wii Shop content -- from the old Wii to the new one. I was also aware of the purchased Wii Shop content being associated with a specific Wii console, i.e. a purchased game can't be copied onto an SD card, copied onto another Wii, and played on that second Wii, for obvious anti-piracy reasons. However, I figured that my situation must be pretty common -- a person replacing an old, broken Wii and/or upgrading to the new Black or Red Wii from the old white one -- and so I'd just need to call Nintendo, provide the serial numbers of the old Wii and the new one, and have them transfer my content over.

Before first calling, I did check the Nintendo support website; however, despite the design and comprehensiveness of the site seeming pretty good, there was no information to be found about transferring purchased downloaded Wii Shop content from one Wii console to another.

So, I called the Nintendo support line, and explained my situation. The representative I talked to was very friendly. Given the serial number of my old (white) Wii, she was able to look up my account and see all of the Wii Shop content that I had purchased. Unfortunately, even after talking to a supervisor, she explained that Nintendo has a policy of never transferring purchased Wii Shop content from one Wii to another, and that they were unwilling to make an exception in my situation. (The one permitted exception to the policy that the rep mentioned was that in the event that a Wii was sent in to Nintendo for a purchased repair or warranty repair, and the Wii was found to be completely unrepairable, Nintendo would transfer the Wii Shop account to a different Wii console, and return that second console to the customer.)

Even though I didn't have a great deal of money invested in Wii Shop content, I was pretty upset by this. Other major DRM systems for games, such as Steam on the PC, or (as far as I understand them) the systems employed on the XBox 360 and Playstation 3, do allow purchased content to be transferred to, and played on, hardware other that on which the content was originally purchased. When consumers increasingly become aware that, contrary to expectations that have been established by other vendors, Wii Shop purchased content cannot be moved to other hardware, I can't help but wonder whether Nintendo will revise their existing policy and come up with a way that consumers can transfer their purchased content onto another Wii console -- or to the next-generation Nintendo console when that inevitably is announced and released at some point in the future.

In the meantime, though, I would advise all current Wii owners to consider carefully before purchasing any content from the Wii Shop channel. Certainly, in my case, having been "fooled once" -- and now not having access to any of the Wii Shop content I've previously purchased from Nintendo on my new Wii console, also purchased from Nintendo -- I will not be "fooled again" into purchasing any more content from the Wii Shop, until such time that Nintendo revises their DRM policy.

Wednesday, December 08, 2010

Middle-click taskbar button to close application – Windows 7 edition

As I’ve previously posted for Windows XP, a user interface convention that I really wish would become a universal standard for applications that support multiple tabs (such as modern web browsers) is upon middle mouse button click on a tab, the application would close that tab.  This is the standard behavior in Firefox, Internet Explorer 8, and Chrome (and probably other browsers, too).

I also wish Microsoft would match the IE8 behavior and make “close application” the default behavior for a middle-click on an application taskbar button in Windows, since the Windows taskbar is essentially just a tab bar for open applications.  Unfortunately, in Windows 7, middle-click on an application’s taskbar button is mapped to “launch new instance of application,” not to “close application.”  Furthermore, there seems to be no out-of-the-box way to change this behavior.

To the rescue: 7 Taskbar Tweaker by “RaMMicHaeL.”  Among a few other available features, this utility does exactly what I’m looking for: On a PC running Windows 7, it remaps a middle-click on a taskbar application button to close that application.  I’ve been using version 1.1 of the utility on my primary home PC running Windows 7 for months now, with no problems at all.  Highly recommended if you’re a fan of the middle-click-to-close UI convention!

Monday, November 29, 2010

Workaround: Blank screen upon lid open (Lenovo ThinkPad laptop)

Occasionally when I open the lid of my Lenovo ThinkPad T500 laptop, I get a blank screen – nothing at all is visible on the laptop’s display, even though the machine is powered on.  In particular, this tends to happen after I undock the computer from the docking station, close the lid, wait a short time (i.e. carry the laptop with the lid closed into another room), and then open the lid again.

I’m not sure what the root cause of this issue is.  However, I’ve found a workaround to get the display to come back on after I’ve opened the lid and the display is blank: Press Fn+F7.  (This is the same keystroke that switches display modes when multiple monitors, or a projector, are connected to the PC.)

(Note: I don’t have the Lenovo Presentation Director application installed on my machine, because it doesn’t seem to work very well with the 3-monitor configuration I have at my desk.  Presentation Director overrides the Fn+F7 keystroke; thus, I’m not sure whether this workaround would work on machines with Presentation Director installed.)

Tuesday, July 13, 2010

HTPC remote control review: Lenovo N5901 multimedia remote with keyboard

n5901

A couple of months ago, to use as a remote control for my Windows 7 HTPC, I purchased a Lenovo N5901 multimedia remote with keyboard (part no. 57Y6336).  The remote control easily fits in one hand, yet it combines a QWERTY keyboard, a trackball and two mouse buttons, and volume / playback buttons.  Following are my comments on the different aspects of the device, based on my experience with it so far.

Setup: The trackball and keyboard both worked fine “out of the box” for me with Windows 7 upon plugging in the (tiny!) USB wireless receiver to the PC, both in Windows Media Center and on the normal Windows 7 desktop – no software install was needed.

Keyboard: The keyboard is a “mostly-full” keyboard.  It isn’t suitable for touch-typing; I’m a pretty good typist on a standard QWERTY keyboard, but I can’t use the keyboard on the N5901 without looking down at it as I type.  The keyboard also has no function keys (F1, F2, … F12). 

The N5901 keyboard isn’t really suitable for use for any heavy-duty typing (e.g. composing emails) but it works well enough for keying in a Windows password at boot time, or for entering a few characters of the name of a show to search for in Windows Media Center.

Trackball: The included trackball and two mouse buttons work just fine.  One-handed use is possible, but I’ve found that it works best to use it with two hands; using the controller with only my left hand, I occasionally accidentally nudge the trackball with my thumb as I reach around the trackball to left-click.  It works better for me to hold the remote with both hands and use right thumb for the trackball, and left thumb to left-click.

Battery Life: The battery life is at the very least “okay,” as I’m on my 3rd month of using the remote, and it’s still on its original set of two AAA batteries.

Wireless Connectivity: The wireless connectivity for me was slightly suspect – when I first used the remote, it would usually work fine, but it would occasionally “drop” a split second of my trackball use, or a single key press using the keyboard.  (The latter was particularly frustrating when entering my password logging in to Windows following a reboot.)  My couch where I would typically sit and use the remote is located around 15 feet from the HTPC – well within the device’s specified operational range of 10 meters.

In my living room configuration, the couch is “L” shaped, with one side of the “L” extending along a wall toward the TV and the HTPC.  I was therefore able to work around the occasional wireless connectivity issues by purchasing a 10-foot USB extension cable (for less than $5 shipped off eBay), running that cable from the PC under my couch to underneath the place I usually sit in the middle of the couch, and plugging the N5901’s USB wireless receiver into the extension cable under the couch.  Having done this, the wireless connectivity now works with no problems.

Playback Controls: The N5901 features “play”, “stop”, “fast forward”, “rewind”, “previous”, and “next” multimedia playback control buttons.  All work just fine and as expected out of the box with Windows Media Center on Windows 7.

Volume Controls: The N5901 also features “volume up” and “volume down” buttons.  For some reason, at least for TV playback, although when I press these buttons Windows Media Center reports the volume level going up and down (minimum 0, maximum 50), the actual sound output level from my TV speakers doesn’t change, unless I turn the volume all the way down to 0, at which point the sound does cut out entirely (mute). 

Since the volume button presses on the remote are being received successfully by Windows Media Center, the problem apparently is with some other aspect of my hardware configuration, not the N5901 itself.  I’ve just been using the TV’s own remote instead to control the volume, which works fine.

Orange Button: The N5901 features a prominent, but unlabeled “orange button” in the top-left corner of the control (visible in the above image).  On my Windows 7 machine, pressing this button results in the somewhat odd behavior of bringing up a Windows Explorer window with the location set to “My Computer.”  Neither Windows 7 nor the N5901 itself provides any way (that I could figure out) to change this behavior.

What I really wanted this button to do was to act similarly to the “TiVo” button on a TiVo remote – that is, in the case of my setup, as a “Go to Windows Media Center Home screen” button.  Specifically, I wanted this behavior:

    1. If Windows Media Center (WMC) is not currently running, run it.
    2. If WMC is already running, but is not the active window, make it the active window.
    3. If WMC is the active window, navigate to the WMC front page / main menu.
    4. Suppress the default behavior of bringing up "My Computer."

The “green button” on “designed for Windows Media Center” remote controls might have this behavior as well; however, I’m not sure, never having had the chance to use one.

After some research, I was able to come up with a script for the free AutoHotKey utility to accomplish this behavior.  This is the script:

VKB6::  ;On a press of the Lenovo N5901 orange button:
  if WinActive("Windows Media Center")  ;Is WMC the current active window? 
    Send #!{Enter}  ;Act like a "green button" press (go to WMC main menu) 
  else 
    run c:\windows\ehome\ehshell.exe  ;Run/activate WMC 
  return

The complete details of how I created this script are available in a superuser.com post.

Backlight: Probably the biggest drawback of the N5901 is that the buttons are not backlit.  In a completely dark room, the QWERTY keyboard is pretty much unusable, and the playback control buttons are pretty difficult to use.  The trackball and mouse buttons are no problem to use in the dark, though.

Conclusion

Based on my positive experience with the device over the past couple of months, I would recommend the N5901 as a reasonably inexpensive “all-in-one” (mouse + keyboard + playback buttons) HTPC remote control.

Monday, June 14, 2010

Bad eBay experience – Inadvertently buying a bootleg DS game

A couple of weeks ago, I had a hankering to play a classic RPG game.  After looking around at the available options for systems that I own, I decided to pick up a copy of Dragon Quest V for the Nintendo DS.

Unfortunately, even though the game was released in the U.S. just last year (2009), it’s already out of print, so I went to eBay.  There were just a few copies of the game for sale; most were going for around $30, but one “cartridge only” auction was going for a “buy it now” price of $17.  The auction was from a seller in New York and nothing about the auction at the time made me suspicious (though perhaps it should have – keep reading), so I went ahead and bought the auction.

I got the game in the mail a few days later, and played it.  The game didn’t slide particularly smoothly into my DS Lite – it was a slight “pressure fit” – but I didn’t really think anything of it at the time.  The game started up with no problems.

After viewing the introductory sequence (showing the main character’s birth) and proceeding to the first playable portion of the game (where the main character, now a child, is travelling on a small ship), I ran into a problem: I couldn’t figure out how to get off the boat or otherwise advance the plot.  I’d talked to all of the NPCs on the ship several times each, and explored everywhere that I could; after doing that, there just seemed to be nothing else to do, and no enemies at all to fight.

Eventually I consulted gamefaqs, but none of the FAQs gave any special attention to the boat scene – they all just seemed to assume that advancing past the scene would present no problem at all. 

I searched Google for terms like “dragon quest v boat stuck,” and got my first obvious clue that something was not right.  Apparently the programmers at Square Enix, the game’s developer/publisher, included code in the game that when playing a counterfeit copy of the game, the player would experience game behavior exactly matching the problem I was having – the game would just never advance past the boat scene, and the player would basically be stuck. 

However, all of the references to this behavior that I found were in reference to players playing an unauthorized copy of the game via an emulator.  I, on the other hand, was playing what I had thought to be a legitimately-purchased copy of the game, on actual physical Nintendo DS Lite hardware.  Still, the behavior I was seeing made me strongly suspect that I’d been sold an unauthorized, or “bootleg,” copy of the game.

Senator Vreenak says: "It's a FAAAKE!"Researching further, the copy of the game that I’d been sent had a serial number on the front of the cartridge of “NTR-CDXP-EUR.”  Googling on that, I found two things:

  1. That serial number actually apparently was assigned to some game called “Driving Theory Training” (and not to Dragon Quest V);
  2. A few forum posts from other people saying that they had a DS cartridge with that serial number (of various other games, neither Dragon Quest V nor “Driving Theory Training”) and they were suspicious that the cartridge was a bootleg. 

This convinced me that I did have a bootleg cartridge on my hands.  This made me pretty unhappy – I purchase all of my games legitimately, and don’t “pirate” games.  If a particular game costs more than I’m willing to pay to play it, then I simply don’t play it.

I contacted the seller, and he agreed to refund my money upon my shipping the cartridge back to him.  He claimed to be unaware that he was selling bootleg copies of games, and said that he would take the issue up with his supplier.  Ultimately I’m not sure exactly how honest he was being, but he did end up refunding my money (less the the $3 and change that I paid to ship the game back to him).

So: What should I have done to avoid buying this game to begin with, and what should I do to avoid buying counterfeit game cartridges in the future?  None of the following points taken on its own is a certain indication of a bootleg game; however, all together, they may be adequate cause for being suspicious of a particular auction:

  • Price: The low sell price of this game relative to other auctions for the same (somewhat rare) game should perhaps have been cause for suspicion.
  • Contents: The fact that the game was “cartridge only,” rather than including case and manual, should perhaps have been cause for concern.  (Again, certainly there are many legitimate “cartridge only” auctions, but this taken in combination with other factors should have raised a red flag.)
  • Origin: This particular auction was shipping from New York rather than from China; I have seen, though, some other sales of unusually low-priced games originating in China that are pretty obviously for counterfeit copies.
  • Image: The auction listing included an image of the cartridge, but it was blurry, and the serial number on the front of the cartridge was unreadable.

I couldn’t have determined this from looking at the auction online, but when I tried physically lining up the counterfeit game next to a few of my legitimate DS games, the difference was fairly obvious.  Although the counterfeit cartridge on its own was pretty legitimate-looking upon a casual inspection, the size and shape of the cartridge were just barely “off” compared to the other legitimate cartridges, which were all identical to one another.  (This was the cause of the issue I mentioned of the bootleg cartridge not quite being an easy fit into my DS Lite, like legitimate games all are.)

At least this incident was a learning experience -- that bootleg console game software is out there and is being sold.  In the future I will likely take one or both of the following steps before bidding on an auction that seems like it might be suspect:

  • Just ask the seller if the game is a genuine copy.  If the answer is anything other than an honest-seeming answer along the lines of “yes, absolutely,” then don’t bid.
  • Ask the seller what the serial number on the front of the cartridge is (if it isn’t visible in a photo on the auction).  If it isn’t what it should be, then certainly do not bid.

I might never have realized that I was playing a counterfeit copy if there hadn’t been this particular variety of DRM built into the game.  I’m not normally a big fan of DRM (who is?), but I understand the necessity of it; still, I wish this DRM had been of a “fail fast” nature (i.e. have the game refuse to run at all if it identified itself as being counterfeit) – then I wouldn’t have lost a couple of hours of my evening to playing a broken game and researching the problem.  I’d much rather have just had the opportunity to honestly purchase a legitimate copy of the game (and avoid supporting whatever pirate created this unauthorized copy) the first time.

Sunday, May 23, 2010

HTPC Build part 5 – Parts List! My $500 Windows 7 2010 HTPC

This is the fifth in a series of posts I’m writing about an HTPC (Home Theatre PC) build that I recently completed.  To see a list of all posts in this series, click here.

Having gotten over-the-air HDTV set up, successfully tested a PC TV tuner and Windows Media Center, made an attempt to recycle an old PC into an HTPC, and done some testing with a loaner HTPC, I was finally ready to finalize a list of parts, place the order, and build my own HTPC!

Here is the final parts list for my HTPC:

    Cost
(USD; shipped;
including tax)
Purchased From Purchase Date
Motherboard Gigabyte AMD GA-MA785GM-US2H $58 newegg.com May 2010
CPU AMD Phenom II X2 550 Callisto 3.1GHz $77 newegg.com May 2010
RAM Corsair 4 GB (2x 2GB) DDR2-800 (PC2 6400) TWIN2X4096-6400C5DHX $26 frys.com November 2008
Hard disk Western Digital 640 GB internal SATA $70 newegg.com February 2010
Onboard video ATI Radeon HD 4200 $0
(on motherboard)
-- --
Add-on video card (None -- yet) $0 -- --
TV tuner Hauppauge USB HVR-850 $50 amazon.com January 2010
Optical drive ASUS 24X DVD RW DRW-24B1ST SATA $27 newegg.com May 2010
Wireless LAN Monoprice USB Wireless Lan 802.11G $11 monoprice.com January 2010
PC case (Recycled 2004 desktop PC case) $0 -- 2004
Power supply unit CORSAIR CMPSU-400CX 400W $30 (after rebate) newegg.com May 2010
Operating system Windows 7 Home Premium 64-bit (OEM) $100 newegg.com May 2010
Remote control Lenovo Multimedia Remote with Keyboard 57Y6336 / N5901 $38 lenovo.com April 2010
HDMI cable HDMI cable, 6’, male-to-male $1 meritline.com November 2009

Total Cost: $488 (Not including a PC case)

To cut to the chase: This HTPC works great!  The hardware worked fine immediately upon being assembled; the machine works great as a DVR and meets all of my other goals as well (with the exception of being able to act as a high-end gaming PC -- more on that below); and the machine has none of the video/overscan issues with my Philips 3000-series HDTV that I had encountered with the Intel-based loaner HTPC I tested.

Read on for more detailed commentary on the specific parts that I decided on ordering, followed by my thoughts on the performance of the new HTPC over the several few weeks that I’ve had it up and running so far.

Parts

Motherboard / CPU / Onboard Video

As I mentioned in the previous post in this series, I had encountered some fairly significant video issues with overscan and flickering of thin black lines when testing with an Intel-based HTPC and its Intel GMA X4500 onboard video, which my friend Dave had been kind enough to let me borrow and test with my TV for several days.

My consequent decision to opt for an AMD/ATI-based build for this HTPC, including Radeon HD 4200 onboard video, turned out to be a good one!  Hooking the PC up to my Philips 32PFL5332D/37 HDTV via HDMI, everything just worked great “out of the box.”  There were no issues with overscan; the PC video output running at 1920x1080 was automatically sized correctly to fit the viewable area of the TV display, without me having to do anything.

Further, the overall quality of the display was much better as compared to the Intel GMA X4500 test machine.  There were none of the issues with thin black lines appearing to “flicker” that I had noticed with the Intel onboard video.  Text on the TV display is quite readable, particularly once I increased the default text size in Windows 7 to 150% (via Control Panel | Appearance and Personalization | Display).

Regarding the specific motherboard and CPU I purchased, the purchase criteria for these parts were, in roughly descending order of importance (most important criteria first):

  • Decent quality onboard video capable of HD video playback
  • Native onboard HDMI-out
  • Very positive reviews (Parts that would be likely to “just work”)
  • Reasonable price
  • Compatible with the 4 GB of DDR2-800 RAM I already owned (more on this below)

The Gigabyte AMD GA-MA785GM-US2H and AMD Phenom II X2 that I ended up deciding on fit all of these criteria nicely.  At a combined cost of $135 shipped (including a $22 “combo” promotion that newegg.com was running at the time of my purchase), I got performance that was adequate for the demands that would be placed on the HTPC at a pretty good price.

RAM

Although I included the cost of the RAM in my calculated “Total Cost” above (the $488 figure), I actually ended recycling 4 GB of Corsair-brand RAM that I had purchased for the desktop PC that I built in 2008, which is still my primary home PC.  Running the 2008 desktop PC with the 4 GB of Corsair RAM and 4 GB of Crucial-brand RAM (8 GB total), the machine would be mostly stable (and pass Windows 7’s suite of memory tests), but would bluescreen once every month or two.  I pulled the 4 GB of Crucial RAM out of the machine, but the problems continued; I replaced the Crucial RAM and pulled out the Corsair RAM, and the problems stopped.  (Note: I do realize that I shouldn’t have been running two different brands of RAM in the same PC in any event.) 

To save some money, and on the theory that there was just some kind of incompatibility between my 2008 PC’s motherboard and the Corsair RAM, I tried installing the 4 GB of Corsair RAM in the HTPC.  So far, this experiment has been a success; I’ve had no bluescreen/crashing troubles at all with the HTPC in the several weeks that it’s been running at this point.

Hard Disk

I bought the hard drive for the HTPC, a 640 GB Western Digital internal SATA drive, a couple of months earlier than most of the rest of the parts, as part of my attempt to turn my old 2004 desktop PC into an HTPC.  When that didn’t pan out, I was able to just use that same drive in the final HTPC build, as I had planned. 

The only downside to this approach turned out to be that over the last month or so, there have been a lot of good sales on hard drives; had I waited, I could probably have picked up a 1 TB drive for not much more than the $70 that I paid for the 640 GB drive back in February, which would allow me to record a lot more HD video on the HTPC.  I’m not too concerned about this, though.  640 GB still allows for a good amount of HD video recording, and in a year or two when hard drive prices have dropped even further, I can always easily add another (larger) SATA internal hard drive to the machine if I find that I want more recording capacity.

Add-on video card

As noted in the table above, I opted not to buy an add-on video card for the HTPC as part of the initial build.  Aside from not being able to act as a high-end gaming machine, the HTPC functions fine with just the onboard video.  By waiting, I’ll be able to buy a more powerful video card for my dollar later on.

PC Case

As with the RAM, I decided to save money by re-using an old part.  Using the 2004 motherboard, CPU, and RAM for the HTPC didn’t work out, but the 2004 case was still perfectly good; I took out the old motherboard, and installed the new parts in that case.  It’s a full-size desktop PC case rather than an HTPC form factor case that would fit in the entertainment center cabinet and look nice sitting next to my other devices such as the Wii; a “real” HTPC case is always something that I can “upgrade” to later.  

Remote Control

n5901The remote control I purchased, a Lenovo Multimedia Remote with Keyboard 57Y6336 (N5901), is something that I wasn’t originally planning on getting.  I had originally envisioned using a more traditional TV-like remote to control the HTPC from the couch.  However, when the N5901 went on sale on the Lenovo site for 50% off, I decided to take a chance on it – a handheld remote that could also function as a mouse and as a QWERTY keyboard seemed pretty cool. 

My experience with the N5901 has been mostly good, with a few caveats.  I’ll share my full thoughts on the device in a subsequent post in this series.

The Build

Putting together the new PC was smooth and easy – just the way I like these things to work!  All of the parts went together with no problems, and the completed PC booted up successfully the first time that I powered it on.

My new OEM copy of Windows 7 64-bit also installed smoothly and with no problems.  Windows 7 recognized all of my devices, including the HVR-850 TV tuner, the Monoprice Wireless Lan adapter, and the Lenovo Multimedia Remote with no problems, and without me having to manually install any drivers. 

Performance

I’ll go through and discuss my goals for this HTPC system one at a time, and how the system measures up against each goal.

Primary goal: Act as a DVR (record HD TV broadcasts, and playback HD video)

The primary goal for the this HTPC was to serve as my household’s primary (and only) DVR – to automatically “tape” (record) TV shows, and to play them back later on demand.

The HTPC works great in this capacity.  The Windows Media Center software works very well.  I like it even better than the Tivo that I used for a while previously, due to being able to use the mouse in the Windows Media Center interface to quickly skip directly to a particular location in a show.

The HTPC has no problem recording one show while playing back another.  In theory, I could in the future add a second TV tuner to the machine (another HVR-850 or a similar device), and be able to record two different shows simultaneously.

It’s also worth mentioning that when Windows Media Center is recording a TV show, the impact on the HTPC’s resources (processor and memory) is negligible – the machine can be recording a show while at the same time running a game or other Windows applications, with no noticeable performance impact.

Secondary goal: Act as a secondary home PC

The goal here was to be able to close or minimize Window Media Center and drop back to the Windows desktop and use the HTPC like a regular PC – to browse the web, check email, and so forth. 

The HTPC works great in this respect as well.  As mentioned above, the Radeon HD 4200 onboard video produces a great-looking signal on my Philips HDTV, with no overscan and very readable text.  Just last weekend, I used the HTPC in this capacity: I sat on the couch with my family, and used the HTPC to show on the TV screen a bunch of digital photos that my Dad had taken of the house he’s building in Florida.

Secondary goal: Play DVD movies

Since my old DVD player died, I had been keeping my Playstation 2 hooked up to the TV mostly to act as a DVD player and play the occasional movie. 

The HTPC works just fine for playing DVDs, so now I can replace the PS2 with some other device if the need arises.

Secondary goal: Play old NES / SNES / Nintendo 64 games

On occasion, I use my desktop PC to play via an emulator an old NES (Nintendo), SNES (Super Nintendeo), or Nintendo 64 cartridge that I own (and is stored away in my basement).  Playing these old games on a PC monitor while sitting in an office chair just isn’t quite the same as playing them on the TV while sitting back on the couch, though. 

I haven’t spent a lot of time using the HTPC for retro console gaming aside from the initial round of testing yet, but the HTPC does work great for this.  Even the old NES and SNES games look really nice on the HDTV.  The image is really sharp, and there’s no blurring or aliasing. 

The responsiveness of emulated games on the HTPC is also very snappy.  I was a bit concerned that there would be some small delay between doing an input on the controller and seeing the corresponding action happen in the game on the TV screen, but there has been no such delay; the games I’ve tried have responded instantly to controller input.

I’m using an XBox 360 controller (which is compatible with Windows PCs via USB) as my controller, and it works pretty well for controlling old NES games.  At some point I’m planning to pick up an SNES controller USB PC adapter and get my old SNES controllers out of storage to complete the retro gaming experience.

Secondary goal: Play new PC games / “Poor man’s XBox 360”

As with the Intel PC I tested with, I’ve tried two more “serious” modern games on the HTPC: World of Warcraft, and Batman Arkham Asylum.

As with the Intel PC, World of Warcraft runs just fine on the HTPC in full 1920x1080 resolution, although not at the maximum graphics settings.  I’m not really planning on playing much Warcraft on this HTPC, but it’s nice to know that the game runs on the machine just fine, and I now have another PC that will run WoW in a pinch.

Also as with the Intel PC, and also as expected, Batman Arkham Asylum runs, but so slowly that it isn’t really playable.  The Radeon HD 4200 onboard video isn’t up to the challenge of running a modern graphics-intensive game, even on the minimum settings.  An add-on video card will be an easy addition to the HTPC at some point in the future; I’m saving a full play-through of Batman for the time when I’ll finally be able to sit back on the couch and play through the game on the HDTV.

Secondary goal: Stream video between PCs

One thing that occurred to me that it would be nice to be able to do is to stream recorded video (TV shows) from the HTPC over to my desktop PC, for those (very unusual) occasions where Melissa and I both want to watch TV at the same time, and we don’t want to watch the same show.

The software (Windows 7 and Windows Media Center) does support this functionality – I can fire up Windows Media Center on my desktop PC and see the shows that have been recorded on the HTPC.  Unfortunately – and this is the only “unexpected” issue that I have with my setup at the moment – when I try to playback a video over the network (even a standard-def video), the playback is extremely choppy, to the point of being unwatchable.  I did run this test over both of my other test machines (the converted 2004 machine, and the Intel test machine) so the problem is apparently my network setup, not the HTPC itself. 

Both of my PCs are running USB 802.11g wireless adapters, and my router is a Belkin F5D8233-4 802.11n.  Unfortunately, my home is situated such that running a wired network isn’t really possible, so all of my machines are connected via wireless.  I suspect that streaming video (even full HD video) over a home wireless LAN should be possible, and that it’s some kind of problem with my network that’s preventing this from working for me, but I haven’t gotten this tracked down yet.  When I have an opportunity to do so, I’m going to try a different router and see if that does anything to improve the situation.

Tertiary goal: Run quietly

One final goal that I had for this HTPC is that it run quietly – I didn’t want to have to increase the volume of the TV at all just for the sake of having to compensate for a loud PC (particularly given that Melissa and I typically only ever sit down to watch TV when the kids are sleeping upstairs). 

Fortunately, this HTPC build is indeed silent when it runs.  Even with the PC on and TV turned off, when sitting back on the couch, the PC fans are not audible whatsoever.

Conclusion

This HTPC build turned out to be a lengthy project, due to the methodical approach that I took to testing purchasing and testing components prior to doing the final parts purchase and build.  It was a lot of fun to work through the process, though, and it was a very good learning experience.  Best of all, I have an end result that I’m really happy with!  My family is very happy with our new HTPC/DVR as well.  (I can hear Melissa in the other room as I write this using the HTPC to watch the recording of the finale of “Lost” that started airing earlier tonight while we were still getting the kids to bed.)

As a bonus, I didn’t spend too much money to achieve the desired result!  Although the total cost of almost $500 up front was by no means trivial, it’s nice that, going forward, I will have a $0 “DVR fee” alongside my monthly $0 TV and $0 phone expenditures.

This is the last of the primary posts in this series.  I will be writing at least one more follow-up post, though, covering my thoughts on the Lenovo Multimedia Remote with integrated trackball and keyboard that we’re using to control the HTPC from the couch.

Wednesday, May 19, 2010

HTPC Build Part 4 - Testing an Intel-based HTPC

This is the forth in a series of posts I’m writing about an HTPC (Home Theatre PC) build that I recently completed.  To see a list of all posts in this series, click here.

Before finalizing a parts list and placing an order for the parts for my new HTPC build, I was fortunate to be able to gain access to a "test machine": A newly-built, working HTPC that my friend Dave was kind enough to let me borrow for a few days.  Specs on this machine:

CPU Intel Core 2 Quad
Motherboard Intel BOXDG43GT LGA 775
Memory 2 GB Kingston DDR2-800
Onboard Video Intel GMA X4500 with HDMI
Add-on Video Card (None)
Operating System Windows 7 Home Premium 64-bit

I brought the Intel HTPC home and hooked it up to my TV, a Philips 3000 series LCD HDTV.  As with the old 2004 PC that I tested using as an HTPC, the Intel test PC had some pros and cons.  Pros first:

  • The PC ran very silently -- there was no noticeable fan noise at all while the machine was on.
  • It was easy to connect the PC to the TV via the built-in HDMI port, and both video and sound output were transmitted from the PC to the TV via a single HDMI cable.
  • No problems at all with HD video playback.

I ran into a significant problem, though: When rendering video output at the TV's native resolution (1920x1080), the rendered screen image was "too big" for the TV.  The edges of the Windows desktop, including the taskbar and Start button, were off the screen.  Those elements were still present -- I could move the mouse off the screen to where the Start button should be located, click, and (partially) see the Start menu appear -- I just couldn't see them.

After spending a while trying to research this problem online but running into problems getting quality Google search results when trying to search using terms like "htpc tv image too large" or "tv display edges not visible" (and multiple other variants), I finally came across an article where I learned that there is a specific word for this phenomenon: Overscan

Now, searching with search terms including the word "overscan," the quality of search results I was able to find markedly improved.  However, I was still unable to solve the problem; in several hours of trying, I was unable to correct for the overscan either from the PC side, or from the TV side.

Most PC monitors include geometry controls that allow the screen image size, but there were no such controls available in the my TV's built in software menu.  In further poking around online, I found an avsforum.com thread that described how to access a "secret" admin/service menu where additional TV controls could be accessed; I actually got this to work on my TV and accessed the TV menu (after bypassing a warning about possibly voiding my warranty -- the TV is out of warranty anyway), but on my TV, there were no geometry controls in the admin menu, either.  Finally, I tried to do a firmware update for the TV's software to see if a later version would have the geometry controls I was looking for, but the TV reported that it was already running the latest version of the software when I tried to apply the update via the TV's built-in USB port.

I also investigated correcting the overscan on the PC end of things.  The Intel video card comes with software that allows a lower screen resolution to be sent to the monitor/TV to correct for overscan; however, whenever I tried to apply a "non-standard" lower resolution, the Intel software itself complained that the target resolution was not supported by my display.  Setting the screen to the next-lowest standard widescreen resolution (1680x1050) resulted in wide areas of black around all four edges of the display, so that wasn't a good solution either.  I tried updating to the latest version of the Intel video driver and video software utility package, but that didn't help either.

So, I was left with the question of whether the overscan problem would be a deal-breaker for my intended uses of the HTPC.  My goals for the HTPC were as follows:

Primary goal:

  • Be able to automatically record and playback HDTV program broadcasts.  (Tivo-like DVR functionality)

Secondary goals:

  • Be able to use the HTPC as a secondary home PC, i.e. to do things like browse the Web, check email, and view photos and videos.
  • Be able to play DVD movies (and later, Blu-Ray movies, once the price of Blu-Ray optical drives drops).
  • Be able to play old NES, SNES, and N64 games that I own the cartridges for (via emulation).
  • Be able to play newer games while sitting on the couch and using my XBox 360 controller for PC -- have the HTPC act as a "poor man's XBox 360." (Ironically, though, an actual XBox 360 now retails for significantly less than my overall budget for the HTPC!)

With respect to the primary goal of playing back HDTV content, I needed to be able to use the Windows Media Center (WMC) interface in order to accomplish this.  With the overscan problem, several of the key UI elements of Windows Media Center appeared off the screen.  However, I found a post on Aaron Stebner's WebLog detailing a series of registry keys that can control advanced options in Windows Media Center.  Using these registry tweaks, I was able to get WMC to "pull in" from the screen edges its various UI elements, such that everything was visible on my screen, even with the overscan.  Pretty cool.

However, I had no such luck with applications outside of Windows Media Center.  With the Windows taskbar, the Start button, and the edges of the Windows desktop being out of view, using the HTPC as a regular Windows PC wasn't a very nice experience. 

I also encountered one other problem: On the Windows desktop, thin black lines (such as "divider lines" in various applications) sometimes rendered on screen with quite a bit of "flicker".  This didn't make the display unusable, but it was pretty annoying to look at.

Between the overscan problem and the "flicker" problem, I made a decision not to go with an onboard Intel video card for my final HTPC build.  Having had good experiences with ATI video cards in the past, I decided I would instead go with an AMD-based build including an onboard ATI video card. (The processor company AMD acquired the video card company ATI back in 2006, so now AMD is presumably using the solid ATI technology in its onboard video cards.)

I did also do some testing with the Intel machine with my secondary goals in mind.  Old NES and SNES games ran just fine on the PC via emulation; I was worried there might be some lag time between controller button presses and the responsiveness of the games, but there was no noticeable lag at all, and the games I tested were very playable. 

WoW_OverscanCrop2 I also tested a couple of newer games: World of Warcraft, and Batman Arkham Asylum.  Warcraft (being a 5-year-old game at this point) ran quite acceptably when configured to use lower-end video settings.  However, the game was affected by the overscan issue, making the action button bar at the bottom of the game window partially invisible, resulting in the game being not very playable, at least in full-screen mode.  (The screen capture at right approximates what I was seeing on my HDTV in terms of the game image being clipped.)

Batman Arkham Asylum, a newer game, ran on the PC, but the game ran very slowly, even on minimum video settings.  Although the game ran, it wasn't really playable.  Somewhat interestingly, rather than drop frames and run at normal speed but with a poor framerate, the game just slowed down the overall gameplay to match the throughput that the video card was able to produce -- the end result was although the display was smooth, the game just ran at about 50% of normal speed (so it took Batman an unusually long time to walk from place to place, etc.). 

The poor performance of the Batman game was actually in line with my expectations: I didn't expect the onboard video card to be performant for high-end gaming.  My plan at this point is to run with only onboard video for the time being (sacrificing the goal of being able to use the HTPC as a "poor man's XBox 360"); at some point in the future, I'll purchase an add-on video card for the machine (or maybe, I'll purchase a new video card for my primary desktop PC, and do a hand-me-down of that PC's old video card to the HTPC).

The next post in this series will (finally!) cover my final HTPC parts list, and my experiences with the completed build.

Tuesday, May 18, 2010

HTPC Build part 3 – My attempt to turn a 2004 PC into an HTPC

This is the third in a series of posts I’m writing about an HTPC (Home Theatre PC) build that I recently completed.  To see a list of all posts in this series, click here.

Rather than ordering all of the parts to build a new HTPC at once, I decided to try turning my old (built in 2004) desktop PC into an HTPC.  The hard drive on that PC had died, but the remaining parts were still in good working order.  The pertinent specs on the machine were:

CPU AMD Athlon XP 2800+
Memory 1 GB DDR SDRAM
Video Radeon 9800 AGP 128 MB

Since the old hard drive on the machine had died, and I wanted a large enough disk to have sufficient room to record a good quantity of hours of HD video, I went ahead and ordered a new 640 GB SATA hard drive ($70 shipped from newegg.com).

One problem with this was that the old PC motherboard supported only IDE drives, not SATA.  (SATA is the current standard for desktop PC drives; IDE is an older standard that was still in wide use back in 2004.)   I did want a SATA hard drive, though, just in case the “refurbish the old PC” plan didn’t work out, and I ended up building a whole new PC.  I solved this problem by picking up a SATA-IDE converter for less than $3 shipped off eBay.

I also knew that I would need a method to get video and sound from the old PC to my HDTV.  The Radeon 9800 video card in the machine supported DVI video out, so I purchased a DVI-HDMI adapter for $2 shipped (on sale) from meritline.com.  For the sound, I bought a 3.5mm to RCA Y audio adapter cable off eBay for $1.28 shipped.  (I continue to be pleasantly surprised how inexpensively it’s possible to purchase and have shipped simple parts like cables and adapters via online merchants!)

In addition to holding off for the time being on further significant hardware purchases, I did not buy an additional copy of Windows 7 at this point.  Instead, the plan was to install Windows 7 without entering a license key; Windows will run on a time-limited basis with no key, so I planned to test my hardware configuration first, and then purchase the additional Windows 7 license once I had proved that everything worked.

I went ahead and put the new SATA hard drive into the old PC; the SATA-IDE adapter ended up working just fine.  I fired up the PC and installed Windows 7.  Windows 7 installed with no problems, even on the older hardware.  (I did have to install 32-bit Windows 7, since the older hardware didn’t support 64-bit.)

At this point, I disconnected the spare VGA monitor that I had been using for the Windows 7 install, and hooked up the PC to my HDTV via the adapter cables I had purchased.  I then spent a few hours testing the system – with decidedly mixed results. 

First, the positives:

  • Even on the old hardware, Windows 7 actually ran reasonably well. 
  • Audio and video output from the PC worked on the TV, and I was able to run the TV at its native video resolution of 1920x1080.
  • Playback of the short sample HD video clip that comes with Windows Media Center worked okay (although playback was a bit choppy for the first 2 or 3 seconds each time the clip started).

I ran into some significant problems, though:

  • Video playback: Occasionally the video output from the PC displayed on the TV screen would either “freeze” (stop updating), or simply go black.  Unplugging and re-plugging the HDMI cable would fix this, but the problem occurred fairly frequently – every 20-30 minutes or so – and I wasn’t about to settle for a solution where I’d need to be replugging the cable all the time.  Changing channels on the TV (away from the “HDMI 1” input and then back again), or turning the TV off and then back on, would not fix this problem.  (I didn’t make a clear determination whether it was the old video card, or the DVI-HDMI adapter, that was to blame for the issue.)
  • Video display: Text rendered by Windows applications running on the TV display was very “clipped” and difficult to read.  Increasing the system-wide font size to 150% and playing with the ClearType Tuner helped with this somewhat, but text shown on the display still wasn’t very nice-looking.
  • Sound input: The PC did not output sound over the DVI/HDMI cable; it was necessary to use the RCA audio cable that I had purchased to get sound to output via the TV.  Further, my TV doesn’t have dedicated RCA audio inputs that go with the HDMI input; I was able via the TV’s own menu software to “remap” the “AV 1” (component video) audio inputs to the “HDMI 1” channel, but this meant that I needed to disconnect the audio cables for the device that I had connected to the “AV 1” input (my Wii) – not a situation I was pleased with.
  • PC speed: Although HD video playback was possible, using the PC generally felt sluggish.  This was somewhat to be expected given the old hardware, but using Windows 7 on the old hardware wasn’t really a great experience.  One example is that it took several seconds to Alt+Tab (switch programs) between Windows Media Center and the Windows desktop.

After several hours of playing with the machine, based on the multiple problems I encountered, I made the call to abort the idea of using the old hardware for my HTPC.  Even though the idea of refurbishing my old PC didn’t work out, it had still been an interesting experiment; I had proven that I could get a Windows desktop to display on my TV, and gained an idea of what I could expect as a minimum baseline for an HTPC’s performance. 

The next step would be to go ahead and invest in a set of new parts, and build a new machine.  The new HTPC would be built with the new SATA hard drive I had already bought, and a new motherboard and processor that I would purchase.

The next post in this series will cover the results some testing I did with a loaner Intel-based HTPC that I borrowed from a friend of mine, as a last step towards a final determination on the parts list for my new HTPC build.

Monday, May 17, 2010

HTPC Build Part 2 – Testing a PC TV Tuner and Windows Media Center

This is the second in a series of posts I’m writing about an HTPC (Home Theatre PC) build that I recently completed.  To see a list of all posts in this series, click here.

Having gotten free HDTV via my DIY antenna working nicely, I decided to purchase a TV tuner and try it out with my existing PC running Windows 7 (and therefore also Windows Media Center), before making the full investment in a complete set of parts for a new HTPC.

I found a a pretty good overview video from Microsoft describing what it takes to hook a TV tuner card up to a PC.  Doing this on a PC running Windows 7 enables the ability to be able to watch live broadcast TV on the PC monitor.  It also enables Windows to record broadcast TV like a TiVo or similar DVR device – with no monthly fee!  (There are some free software packages for Linux that have similar functionality, but Windows is my preferred OS, so I decided to go with Microsoft’s software solution.)

HVR-850 After doing some research, I decided to purchase an HVR-850 USB-connection PC TV tuner by Hauppauge.  This tuner is compatible with over-the-air HDTV (ATSC) signals, and is certified to work with Windows 7.  I paid about US $55 for mine (and as of the time of this writing, it’s going for $55 shipped on Amazon).  (Note: This model isn’t compatible with some other types of TV signals such as “Clear QAM” from a set-top cable box; for that, you’d need a higher-end tuner part like the HVR-950.)

Unfortunately, the HVR-850 unit that I received was DOA. I plugged it in to my PC, and Windows 7 recognized the device right away, no driver install needed.  However, upon connecting the HVR-850 via the standard coax cable connection to my antenna and then scanning for over-the-air channels in Windows Media Center, the device wouldn’t find any channels.  I fiddled with the HVR-850 for quite a while, but just couldn’t get it to work.  Finally I had the idea to hook my old NES up to the HVR-850.  The output from the NES was just barely visible on the computer screen through heavy static/snow, and the music from the game was also just barely audible through heavy static/snow as well.  Therefore I concluded that the HVR-850 was “working” in that it was in fact sending some TV signal to the PC; it was just working very poorly!  Apparently I just had gotten a bad HVR-850 unit.

I contacted Hauppauge tech support, and they agreed based on my reported observed behavior that my HVR-850 was probably bad, and to RMA the unit under the warranty.  I got my replacement HVR-850 several days later, and this time, it worked like a charm!  Windows 7 once again recognized the part right away, and I was able to successfully watch live TV on my PC of the same TV channels that I could get on my regular TV.

I tested the DVR functionality of Windows Media Center (WMC) for a couple of weeks, and that worked great as well.  As with the TiVo I’d used previously, it was easy to select a set of shows to record, and have them record automatically.

A cool feature of Windows Media Center is that while watching a program, you can easily drag the current time index of the show back and forth using the mouse, and while doing so, WMC gives you a picture-in-picture indication of what is at the target location.  This makes it really easy to jump to a particular point of a show, and to quickly skip commercials.  It’s nice that Windows Media Center supports control of the software via either a mouse, or via a TV remote control.

At this point, I had effectively turned my primary PC into a fully-functional DVR, for just the $55 incremental purchase of the PC TV tuner above and beyond the cost of the PC hardware and software that I already owned.  Not bad!  However, while watching TV sitting in my office chair at my desk is okay, watching TV on my actual television while sitting on my couch in my living room would be much better!  So, having proven that the Windows 7 DVR software in Windows Media Center and the HVR-850 TV Tuner worked well, I decided to proceed with the next step of going ahead and actually assembling an HTPC for my living room.

Part 3 in this series will cover my attempt to save some money on parts by trying to turn my old 2004 desktop PC into an HTPC.

Sunday, May 16, 2010

HTPC Build Part 1 – Constructing and Installing a DIY Antenna

This is the first in a series of posts I’m writing about an HTPC (Home Theatre PC) build that I recently completed.  To see all posts in the series, click here.

As I’ve mentioned in a previous post on inexpensive home services, I’ve been getting High Definition (HD) TV at home for free via an over-the-air antenna for several months now.  (In most markets in the U.S., since the 2009 digital transition, the major network channels, and often several others, are available 100% legally for free, in HD, via over-the-air broadcast.)  This has been worked great for me, particularly for the price tag ($0/month!), but not perfectly: With my cheap $20 small store-bought antenna positioned next to my TV on the lower level of my home, I could not get the local PBS station, and I had to position the antenna just right to get several other stations (and reposition it whenever anything bumped the antenna).

I set for myself a goal of getting high-quality (strong signal / reliable), hi-def TV into my home, and recording that TV via a DVR (digital video recorder) of some kind, while still maintaining a monthly TV/DVR payment $0.  (If this turned out to be unachievable, I set a fallback plan of getting TV service through one of the satellite TV companies; but even a “cheap” price tag of $25/month ($300/year) was somewhat unpalatable to me compared to a potential payment of $0/year!)

My first step towards this goal was to fix the situation with the reception.  According to the Digital TV reception map at ftc.gov, I should be able to get a strong PBS signal at my location.  My wife and I were very interested in getting PBS due to the good amount of high-quality kids’ programming on that station.

I got several quotes from area companies to install a roof-mounted or in-attic antenna.  All of the quotes came back for north of $500, which was more than I was willing to pay, so I started looking into other antenna solutions.

Poking around online, I came across some interesting plans for a Do-It-Yourself (DIY) antenna on makezine.com.  The plans involved basically assembling a small vertical frame out of wood and a metal pipe, then using pieces from some old wire hangers that are already around the house to form the actual antenna.  When it comes to things other than computers, I’m not exactly a big do-it-yourself guy.  However, these plans seemed simple to do and inexpensive in terms of parts, and there were quite a few very positive comments/reviews on the makezine.com article on the design, so I decided to give it a shot.

Including a trip to the hardware store, the DIY antenna took about $30 in parts and about 4-5 hours of my time to construct.  (I suspect someone used to building this type of thing could have completed the project a lot faster.)  I set the antenna next to my TV and hooked it up, and it worked very nicely!  All of the stations that I already got (including HD signals from the major networks ABC, NBC, CBS, and FOX, as well as many other high-def and standard-def channels) came in better than before. 

However, at this point, I didn’t get PBS.  The next step was to try hooking the antenna up on the second floor of my two-story house, since antennas are supposed to work better when they are positioned higher up relative to ground level. 

Most of the rooms in my house are wired for cable; however, all of the cables in the basement were unlabeled.  Going around my house to one cable jack at a time, I used a little ball of aluminum foil to “short out” the end of a short piece of coax cable connected to the jack, and then I was able to use an ohmmeter to identify the corresponding end of the same cable in the basement utility room. 

Having identified and labeled all of the cables in the basement, I used a connector to directly connect my TV-room cable to my master bedroom cable down in the utility room in the basement.  Then I carried the DIY antenna up to the master bedroom, and tried the TV channels again.  Success – I was now able to get PBS, in great-looking HD!

The final step for the antenna was to install it up in the attic.  I extended the coax cable from my master bedroom (since I intentionally do not, and will not, have a TV in there) up into the attic.  Then I carried the antenna up into the attic, and hooked it up.  I positioned the antenna in the attic by having my wife watch TV and report on how the signal was doing, while I talked to her via our home wireless phones, and made adjustments according to her feedback.  Having found a position where all stations came in great, I left the antenna up in the attic, and closed the attic up again. 

End result: Great-looking and reliable high-definition TV, with my TV simply connected to the wall cable jack.  If you’re looking for a fun DIY project with the end result of getting free, totally legal HD network TV plus more stations, I can recommend giving the makezine.com DIY antenna plans a shot!

The next post in this series will cover my purchase of a PC TV tuner, and trying it out with the DVR software included out-of-the-box with Windows 7, called Windows Media Center.

Tuesday, April 13, 2010

Use your mp3 player to listen to podcasts instead of talk radio on your commute

I have a 15-minute commute by car to work – so that’s about 2.5 hours I spend in the car going to and from work on a typical week.  Occasionally I listen to music in the car, but most often I prefer listening to talk.  Historically, I would typically listen to AM radio on the commute: sports, news, or just whatever was on any station I could find that wasn’t on commercial.

For the past couple of years, though, I’ve listened to podcasts on the commute instead.  For anyone unfamiliar with the term, a typical podcast is essentially a talk radio show that you can download online for free, and listen to on an mp3 player.

Listening to podcasts have several significant advantages over AM radio:

  • Choice of Topic.  At any given time, there are only a few topics available to listen to on talk radio shows.  By contrast, there are a podcasts on a multitude of topics available for free download online.  I’ve replaced listening to general news and sports talk on my commute with topics that are specifically of interest to me, like software engineering, Christian apologetics, and video games. 
  • On-Demand / Pauseable.  With a podcast, the show starts exactly when I sit down in my car in the morning.  And when there’s something interesting being discussed as I arrive at work, instead of missing the end of the discussion, I can just pause my mp3 player, and pick up the show right where I left off when I begin my commute home in the afternoon.
  • Limited or No Commercials.  Whereas a typical radio station plays commercials as much as 15% of the time or more, many podcasts are produced on a volunteer basis and are totally commercial-free.  In my experience, in those podcasts that do run ads, the ads are fairly limited.  And as a last resort, you can always skip past any particularly intrusive commercials that do happen to be present using the fast-forward function on your mp3 player!

My current mp3 player is an Apple iPod, so I use Apple’s iTunes software to subscribe to podcasts, and have the latest episodes automatically download to my PC.  Then, when I sync my iPod with my PC (which I typically do once a week or so), I get several new episodes of my favorite podcasts to listen to on my commute over the next several days.  Easy!  (If you don’t have an iPod, there are several free RSS software packages out there that support audio files that you can use to subscribe to podcasts, and have the .mp3 files automatically download for you.)

The only remaining challenge, then, is how to get the mp3 player output to play through the car speakers (since it’s for obvious reasons dangerous, and apparently in many places illegal, to drive while wearing headphones).  With an older car, you can get an inexpensive device that converts an audio cassette player into a line-in jack for an mp3 player.  Many newer cars these days come with a line-in jack built directly into the stereo system.

However, I drive a model year 2005 car that has neither a line-in jack nor a cassette player.  The solution I landed on for listening to my iPod in my car was a Griffin iTrip FM Transmitter / Charger.  The device is essentially a short-range FM transmitter does a a short-range FM radio broadcast of whatever is playing on your iPod, using an FM frequency that is unused in your area (a frequency that you specify).  Then, you just tune your car radio to that same FM frequency, and you can hear your iPod podcast (or music) over your car’s stereo system! 

I’ve actually bought two copies of the iTrip device – one back in late 2007 for myself, and a second one a year ago for my wife.  Both devices are still in great working condition.  Although the iTrip has an MSRP of US $70, it’s currently going for about $34 shipped on Amazon.com as I write this.  Highly recommended, particularly at that reasonable price.

Finally, a brief plug for a specific podcast: If you’re into video games, check out the Gamers With Jobs podcast.  It’s a group of a few adult gamers that talk weekly about current games (across all of the major console platforms and the PC), and interesting gaming-related topics.  The group has great chemistry and the show is often pretty funny.  And it’s commercial-free!  It’s my favorite podcast.

So – try making your daily commute time more interesting and/or productive by listening to a podcast on a topic of interest to you while you’re driving back and forth to work, instead of just defaulting to whatever happens to be on the radio!

Thursday, March 11, 2010

Issue: Non-ASCII characters change to inverted question mark (“¿”) after save

I was recently entering some content into a Confluence wiki page that included some non-ASCII characters, such as “→” (U+2192, "RIGHTWARDS ARROW") and “←” (U+2190, LEFTWARDS ARROW).  (I can easily type those characters using Alt+Numpad 26 and Alt+Numpad 27 respectively, since my Windows XP machine is set to Code page 437.) However, after saving the document and coming back and looking at it later, all such characters had been changed to inverted (upside down) question mark characters, “¿”.

Investigation revealed that the problem was that the underlying Oracle database to which the content was being saved was set to use the Western European character set ISO-8859-1, as opposed to a more comprehensive character encoding such as UTF-8.  Since ISO-8859-1 doesn’t include the “leftwards arrow” or “rightwards arrow” characters, Oracle converted those characters to the inverted question mark instead.

I wanted to share this here since this information might be helpful to anyone encountering a similar issue in a variety of different possible applications, not necessarily just Confluence.

Wednesday, March 03, 2010

Fix: Error starting JBoss: “Please check that you are in the bin directory when running this script.”

I’m currently attending a developer training class on a Java application that runs on the JBoss application server.  When running a .bat script provided by the trainer on my Windows XP machine that is supposed to start JBoss (among other things), I and several others in the class were having the script fail with this error:

Could not locate C:\path\bin\run.jar. Please check that you are in the bin directory when running this script.

The path from the error message was not the correct JBoss directory containing run.jar, jboss-4.2.0.GA\bin, but a different directory. Searching through the files on my local machine revealed that this error message was coming out of the run.bat file in that same jboss-4.2.0.GA\bin folder.

Looking at the source of run.bat, the script attempts to create and set a Windows environment variable named JBOSS_HOME. I noticed two lines in particular near the beginning of the file:

if "%OS%" == "Windows_NT" set DIRNAME=%~dp0%
...
if "%OS%" == "Windows_NT" set PROGNAME=%~nx0%

From other parts of run.bat, I suspected that the root cause of the problem was that DIRNAME was not being set correctly.

From a command prompt, I ran "echo %OS%" (no quotes) -- this returned a value of WINNT -- not a value of Windows_NT as expected by the script.

Oddly enough, in the Environment Variables dialog in the Control Panel, the OS variable is set to Windows_NT -- the value is apparently being overridden by something else running on my machine. From talking to others in the training class, who had the script work from home but not while at the office, the override is apparently being done by one of the login scripts that automatically runs at when we log in to the corporate network.

In any event, the solution/workaround that we came up with was simply to edit run.bat and remove the OS check in the two above-mentioned lines, resulting in the following:

set DIRNAME=%~dp0%
...
set PROGNAME=%~nx0%

This got JBoss up and running successfully, despite the "incorrect" OS environment variable value on our Windows workstations.

Monday, February 08, 2010

Confluence wiki: Linking to a diff against a specific old page version

At my office, we use the Confluence wiki for knowledge management.  We recently had some design specifications for a project delivered to us by a 3rd-party consultant; we imported this documentation into Confluence to allow easy tracking of future changes made to the content.

I wanted to be able to add a link to each page along the lines of “click here to see the Confluence diff between the current version of this page, and the 2009 version,” where the aforementioned “2009 version” would be a specific old page version of the page that I would specify when I set up the link on each page.

Unfortunately, Confluence doesn’t provide an “out-of-the-box” way to provide "one click" access such a diff of a specific old page version against the latest version of the page.  You can create a link to a Confluence diff between two specific versions by using the diffpages.action or diffpagesbyversion.action pages that come with Confluence, but both of those take two hard-coded version IDs or page IDs as parameters; they don’t take a parameter or otherwise allow you to specify “latest” as one of the versions to compare.  So you could create a link to a diff between (say) version 1 and version 5 of a page, but that link would become obsolete as new versions beyond 5 were created.

I asked for advice on how to do this (in this thread) on the Atlassian Confluence forum, and got a helpful suggestion from “Rob L.” involving setting up a Confluence user macro to emit the current version of a page, which could then be embedded in a link to a diff page; however, in my Confluence instance at work, I am unable to get a new user macro set up, so while a good solution, it didn’t solve the problem for me.

I then tinkered a bit more on my own, and came up with a way to do this without the need for a user macro. The approach involves using raw HTML (via the Confluence {html} macro) to create a hyperlink with a dummy target (“href”), and then using Javascript (again using the {html} macro) to edit the link target to include the pageId of the Confluence page, which is accessible via the Javascript DOM.

Here's the Confluence markup:

{html}
  <a id="mydiffLink" href="#">Click here to view the diff.</a> 
  <script> 
    document.getElementById('mydiffLink').href=
      "http://myConfluenceHost/confluence/pages/diffpages.action 
      ?originalId=12345678&pageId=" + document.getElementById('pageId').value; 
  </script> 
{html} 

This solution uses diffpages.action rather than diffpagesbyversion.action since the code uses the Confluence page ID, not version ID.

When using this solution, the hard-coded "12345678" in the above example should be replaced with the actual page ID of the old page to compare against.

"http://myConfluenceHost" in the above example should also be replaced with the actual hostname of your Confluence server, of course.

Caveats: This approach relies on (1) the Confluence {html} macro being enabled, and (2) on the user viewing the page having Javascript enabled.

Monday, January 25, 2010

Fix: Thinkpad using Wireless LAN even when connected via wire

This morning, I noticed that my work laptop, a Thinkpad T60 running Windows XP, was using its wireless network connection, even though the machine was docked and plugged in to the wired LAN.  In Control Panel | Network Connections, the “Wireless Network Connection” showed “Connected,” but the “Primary Network Connection” showed “Disabled.”

Right-clicking the “Primary Network Connection” and selecting “Enable” from the context menu resulted in a “Connection Failed!” message in a popup window, with no further details on the problem.

I’m not sure how my “Primary Network Connection” became disabled in the first place, but I was able to re-enable it as follows:

  • In Control Panel |  Network Connections, right-click on “Primary Network Connection” and choose “Properties”
  • In the “Primary Network Connection Properties” dialog that appears, click the Configure button (near the top of the dialog).
  • In the dialog that appears, if a message appears stating that the device is currently disabled, click the “Enable Device” button.

That fixed the problem for me.  The wired connection started successfully, and the wireless connection disconnected automatically (as it normally does when the wired connection is active).

Thursday, January 14, 2010

Microsoft Office 2003: Ctrl+F1 closes the task pane

Just because I couldn’t find this information when I was searching for it now: In Microsoft Office 2003, the keyboard shortcut to close (hide) the task pane is Ctrl+F1.  (The task pane in Office 2003 is the panel on the right side of the window that is usually hidden, but opens to show certain information such as Help (upon a press of F1), “Getting Started”, the Office clipboard ring, and other items.) 

This shortcut applies to Word 2003, Excel 2003, and PowerPoint 2003 (possibly among others).