Category Archives: tips&tricks

My Media Center Ordeal (part 1)

I’ve been running a home-built DVR next to my TV for quite a few years.  It ran Windows XP with GBPVR and custom XMLTV scripts to get guide information.  It was just what we needed when we had a BUD (Big Ugly Dish), since we could customize the guide for all of the crazy c-band and 4dtv listings.

That machine was too slow to deal with HDTV, so we just bought a Dell Outlet XPS desktop with more/faster/better everything (if you haven’t checked out the Dell Outlet, I recommend it).

So, it should have been as easy as this:

  1. Install the WinTV-HVR-1600 card (analog and digital tuners) and load the drivers
  2. Plug the Comcast cable box into the analog tuner and the antenna into the digital tuner
  3. Plug in the Streamzap remote receiver and load the drivers
  4. Power it all up, configure the guide in Media Center, and record some TV!

Hah!

The first “gotcha” was the capacitors on the motherboard between the PCI slot and the side of the case.  There is so much squeezed onto the WinTV-HVR-1600 card that the caps kept the card from being able to seat in the PCI slot.  Hopefully I won’t need the RCA audio in, since I pulled out my soldering iron and removed an audio in jack from the WinTV-HVR-1600.  It fit!

The second “gotcha” was the apparent lack of 64-bit drivers for the Streamzap remote that I love (I actually just use the receiver with a Logitech Harmony remote).  I emailed Streamzap and started Googling.  I was impressed by how quickly they got back to me with these instructions, which I had just found with Google.  I knew that 64-bit Windows would be an issue, but so far so good.

The biggest (and not completely solved) frustrations came with the configuration of Windows 7 Media Center.  When I told Media Center (MC) that I had an external cable box, it said “I don’t see an IR blaster” and didn’t let me proceed.  I don’t care if I have to tune the cable box manually — I just want to record from it once in a while.  Why can’t I just tell MC what listings to pull it, and tell it that they’re all on channel 3 on the analog tuner?  So I’ve ordered an IR blaster.  There is a virtual IR blaster driver out there, but not apparently for 64-bit.

I was able to tell MC that I want to configure the tuners manually and just set up the antenna, but that wasn’t the end of my frustration.  Apparently, the “digital terrestrial” lineup just contains one of the channels in the Indianapolis area.  How is this possible?  To get anything in the guide besides that one channel (which I don’t watch), I had to use the wonderful Guide Tool application from 1geek1tool.  This tool let me load the local cable lineup and match the stations to my antenna channels to get at least some listings.  Unfortunately, there are quite a few antenna stations available here that the local cable company doesn’t rebroadcast, so I’m still missing a lot of listings.  What gives with the lame terrestrial listings in Media Center?

I love the look of Windows 7 Media Center.  I love the Internet TV plugin.  I love that I can now record and play back HDTV (on the channels that I have listings for).  Now I need to wait for the IR blaster to show up, and see if I can find a solution for the over-the-air listing problem.

Many thanks to the people who run Hacking Windows 7 Media Center for all the great tips and utilities, especially the info on Media Center Studio, which lets us tweak the default menus.

Other great resources and answers can be found at The Green Button.

Stay tuned for part 2…

Posting multiple lines to a Google Docs Spreadsheet via the API

I’ve been writing a perl cgi script to populate a Google spreadsheet, using LWP, the spreadsheet list-based feeds, and the model outlined in the Google article “Using cURL to interact with Google Data Services“.

Everything was working fine until I had an html form with some multiline textarea input fields.  I wanted multiple lines of user input to go into a single cell in the Google spreadsheet.  When you’re manually entering data into a Google spreadsheet, you just use ctrl-enter to move to the next line inside a cell.

Some documentation said to put a linefeed (ascii 10, or “\n” in perl) between the lines, and it really is that simple.  Where I got hung up was in thinking that I already had a linefeed in the form field.  It turns out that I had carriage return + linefeed, which the Google spreadsheet API doesn’t like.  All you have to do is strip out the carriage return (“\r” in perl) and it will work fine.

I might not have had this problem with browsers running on Mac or linux, but I’m primarily dealing with browsers on Windows.

WordPress Permalinks issue with Bluehost

403 errorIf you’ve tried running WordPress on Bluehost, you may have run into this:  you change your Permalink Settings, and the site no longer works.  You get “403 Permission Denied”.

The fix is pretty simple.  Just edit the .htaccess file in the blog’s root directory and add the line Options +FollowSymlinks. I put it after <IfModule mod_rewrite.c> because that was suggested by the article that I found on the interwebs.

I don’t know why I’ve only had to do this with Bluehost, but their tech support told me that they don’t have any plans to fix whatever the underlying issue is.

Moving a Joomla site with Akeeba Backup (JoomlaPack)

I was trying to use Akeeba Backup (formerly “JoomlaPack”) to move a Joomla site from a temporary location under my personal site to its own hosting account.  The site packed up fine, but I got the error “Could not open logs/index.html for writing” when unpacking with kickstart.php.

A little research revealed that you sometimes get this error when unpacking to a hosting account’s root folder.  You can get past this by unpacking to a subdirectory and then moving the files to the root.  It looks to me like my host, 1and1, wasn’t allowing the kickstart scripts to write to the logs folder.  I couldn’t figure out how to fix the permissions, so I used the subdirectory workaround.  After unpacking everything to a subfolder and then moving it to the root, I just needed to change two paths in configuration.php and the site was working.  I never was able to move logs/index.html to the main logs folder, but the site is working fine without it.

I did need to follow one important tip in the Akeeba Backup manual and force “binary mode” when transferring the site’s .jpa archive file down from the original host and up to the new site.

Comodo Antivirus Updater Fix

We are using the free Comodo antivirus product in our not-for-profit office.? It seems to work pretty well, but the updater is failing on many of our machines.

I think I’ve narrowed the issue down to the fact that we used to have a proxy server.? Even though I removed the group policy that configured Internet settings to look for the proxy, and IE and Firefox can reach the Internet just fine, the “.DEFAULT” user section of the registry is still pointing to the proxy server, and Comodo won’t update.? Nothing that I’ve found will change the .DEFAULT user Internet settings — I edit the registry, and then it reverts back.

I found a registry hack to turn on per-machine proxy settings for XP.? That did the trick!? Here’s what goes in a .reg file that you can double-click to import:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings]
"ProxySettingsPerUser"=dword:00000000

Now I just need to see if a similar fix is available for Vista…

It seems to work for Vista, too!

Mod_Auth_Cas fix allows DotNetNuke to work

We’re using mod_auth_cas on a linux reverse proxy to authenticate users to our DotNetNuke (DNN) intranet site.? After dealing with the entropy problem that was really slowing down access, we had just one problem remaining:? files that were attached to DNN pages with the built-in editor were not accessible through the reverse proxy.

It turns out that DNN uses a “fileticket” parameter in the file link URLs, and mod_auth_cas uses a “ticket” parameter.? But mod_auth_cas was mistakenly stripping out DNN’s fileticket parameters.? A DNN URL would look like this: “/LinkClick.aspx?fileticket=DBDQlsksjlefwgb&tabid=70”.? After going through the reverse proxy, mod_auth_cas had mangled it to “/LinkClick.aspx?filetabid=70”.

Someone involved with mod_auth_cas pointed me to the bug tracker, and there was a fix for the URL mangling.? You need to get the latest source files, compile them, and the issue is gone!

Windows Media Server doesn’t like NAT

WindowsMediaPlayerError
We set up a Windows Media Server just like we’ve done many times before, but this time we were not able to connect to the streams from outside the local network.? After spending a lot of time verifying that it wasn’t a firewall problem, I found this article that gave an answer: the media server rejected the requests because it didn’t like the dns name in the URL.? Adding the public dns name to the localhost like of the media server’s hosts file fixed it.

Thanks, David!

Acronis True Image won’t write to Server 2008 shares

We were trying to write some machine images to a Server 2008 share with Acronis True Image.? True Image would see the shares, but would fail with a strange “bad file name” error.

It turned out to be the same issue that stopped Mac OS 10.4 from talking to my Server 2008 shares at a different location:? the security policies on Server 2008 require SMB message signing.? Both Mac OS 10.4 and the version of True Image that we’re running don’t support SMB message signing.

Here’s how we disabled the message signing requirement (SMB messages will still be signed when a client supports it):

  1. Open Group Policy Management and edit the Default Domain Controller Policy
  2. Go To Computer Configuration, Policies, Windows Settings, Security Settings, Local Policies, Security Options
  3. Scroll down and find the entry Microsoft network server: Digitally sign communications (always)
  4. Set this option to Disabled
  5. Execute gpupdate on the DC and the file server to apply the new GPO ruleset.

Dotnetnuke Menu Bar Broken in Firefox

menubarWhen our users started upgrading to Firefox 3.0.10, they began noticing that our Dotnetnuke intranet’s menu bar was broken — only “Home” showed up, not the rest of the page titles.

It turns out that DNN uses a config file to tell it what capabilities the various browser versions support. For some reason, the user agent string from Firefox 3.0.10 isn’t recognized.

I empathize with the arguments on the DNN forums that it’s not a good practice to maintain a table like this, but I’m not going to try to rewrite DNN. Since I’m not worried about really old versions of Firefox accessing our Intranet site, my fix was to edit the file \js\ClientAPICaps.config and add this to the first section:

browser contains="Firefox"