media, windows comments edit

UPDATE 11/4/2009: I got some feedback on this process from Raxco (PerfectDisk) Support. They say:

The update process is as follows:

  • While connected to your WHS and notified than an update to PD is available, choose Install
  • When notified that the Console is open and prompted to Retry, Ignore or Cancel, choose Ignore
  • When update has finished and prompted to reboot your WHS, reboot
  • Upon reboot of your WHS, PD should be updated.

Note that if you run PD and click on Product Resources, PD shows that it has been updated to new build. If you look in the add-ins, it still says that old PD build is installed. This is due to the way that the add-in manager is looking to see what is installed/available - it is not looking in the “normal” locations to determine what is actually installed - it is using a different set of registry keys. Also note that if you have HP WHS, after updating to a new build of PD, the Network Critical tab displaying PD update as available even though it is already installed. This is something specific to HP WHS and we are currently waiting to hear from HP on what exactly they are checking/doing.

I’m not so sure I like that there are “expected problems” remaining after this upgrade process. Doing it my way, you get the upgrade, the version reads correctly, and there’s no remaining WHS “Network Critical” warning. For reference, the original entry I wrote and the process I followed for upgrade is here…

I’ve got PerfectDisk for Windows Home Server installed and I generally like it but the installation procedure is a little weird.

A fresh install goes like this:

  1. Download the full installation package for PerfectDisk to your client computer.
  2. Install PerfectDisk on your client computer.
  3. As part of the installation, a folder will be created where the PerfectDisk add-in for Windows Home Server will be placed. The location is typically something like: C:\Program Files\Raxco\PerfectDisk10Install\PerfectDisk10_Home_Server\PerfectDisk_x86.msi
  4. Drop the PerfectDisk_x86.msi file into the \\server\software\add-ins folder on your Windows Home Server.
  5. Open the Windows Home Server console, go to the “Settings” tab, and under “Add-Ins” select to install the PerfectDisk add-in.

The last few steps - dropping the installer in the “add-ins” folder, opening the WHS console, and installing add-in - is pretty standard WHS stuff. The weird bit is that you can’t just get the WHS add-in as a direct download - you have to install on a client computer.

Recently I found there was an upgrade to PerfectDisk and the upgrade process isn’t documented. This is what the process is from what I can tell, after some panicking and manually uninstalling things.

PerfectDisk has a feature to “check for updates” from within the Windows Home Server console. It’s OK to use the “check for updates” feature to see if there’s an update, but do not install the update from there.

First, trying that will fail because the Windows Home Server console is open (Catch-22, eh?). Second, if you try to do the update from Windows Home Server via Terminal Services, it doesn’t quite do what you expect. I think the engine gets updated, but the console add-in doesn’t or something. Stuff gets messed up. Just don’t do it.

Instead, it appears that this is the proper sequence of events for an upgrade:

  1. Go to the PerfectDisk site and re-download the full [updated] installer for the client computer.
  2. Install the new version on your client computer. This will update the installer files in the C:\Program Files\Raxco\PerfectDisk10Install\PerfectDisk10_Home_Server folder as well.
  3. Log into the WHS console and uninstall the PerfectDisk add-in. You’ll need to restart the WHS console and possibly reboot the WHS after this.
  4. Copy the new add-in from the C:\Program Files\Raxco\PerfectDisk10Install\PerfectDisk10_Home_Server folder into the \\server\software\add-ins folder on your server. You may want to keep a backup copy of the old version of the add-in somewhere before you overwrite it with the new version. Don’t put two copies of the add-in in the server’s “add-ins” folder, though.
  5. Log into the WHS console and install the new version of the PerfectDisk add-in. It will tell you to restart the WHS console. Do that.
  6. On restarting the WHS console, go to the PerfectDisk add-in and re-enter your product key.

You’ll notice that this is pretty close to what a fresh install looks like. You’d be correct. The in-place upgrade for PerfectDisk doesn’t work for WHS.

This is all, unfortunately, documented nowhere on the PerfectDisk site. I have submitted a ticket to their support people about this. In the meantime, I figured out a bunch of things you shouldn’t do to upgrade the add-in.

Things you should NOT do:

  • Do not try to install the PerfectDisk update on your WHS through the “Check for Updates” feature. This ends you up with a mismatched add-in version and engine version and somehow corrupts the way the add-in is registered with the WHS console.
    • Don’t do it from the WHS console.
    • Don’t do it from a Terminal Service session to the WHS.
  • Do not update your client computer’s PerfectDisk install through the “Check for Updates” feature. That will update your client computer just fine, but it won’t update the installers so you won’t get the updated WHS add-in.
  • Do not uninstall PerfectDisk on your WHS through Add/Remove Programs. I didn’t do this, but it will end up corrupting the way the add-in is registered with the WHS console. Use the WHS console to remove PerfectDisk.

net comments edit

The quick version:

If you’re writing a Visual Studio add-in, a DXCore add-in, or anything else where the debug environment is Visual Studio itself, be careful not to load the add-in project in the Visual Studio instance you’re debugging. You’ll get some weird errors.

This is a total edge case but it had me baffled for a while.

I’m working on a DXCore plugin that talks to a web service. It takes some selected code and sends it to a web service to do something with. Since you need code to work with, the easiest way to debug it was to:

  1. Hit F5 to start another Visual Studio environment with the add-in installed.
  2. Go to File -> Recent Projects and grab the first one in the list - the add-in project.
  3. Test out the plugin.

At one point I made a call to the web service using a complex type (not a string or integer, but a data transfer object) like this:

ComplexObject response = serviceProxy.DoAnOperation(param1, param2);

…where param1 is an input object of type ComplexObject. Doing that I got a weird XmlSerializationException:

[A]CR_PluginName.WebServiceNamespace.ComplexObject cannot be cast to [B]CR_PluginName.WebServiceNamespace.ComplexObject. Type A originates from 'CR_PluginName, Version=, Culture=neutral, PublicKeyToken=null' in the context 'LoadFrom' at location 'C:\Documents and Settings\tillig\My Documents\DevExpress\IDE Tools\Community\PlugIns\CR_PluginName.dll'. Type B originates from 'CR_PluginName, Version=, Culture=neutral, PublicKeyToken=null' in the context 'LoadNeither' at location 'C:\Documents and Settings\tillig\Local Settings\Application Data\Microsoft\VisualStudio\9.0\ProjectAssemblies\wi3h64z601\CR_PluginName.dll'.


The key was in the second location: “…\ProjectAssemblies\…” The object I was sending to the web service was defined in the plugin assembly… but it was trying to deserialize the response using the temporary assembly that the debug instance of Visual Studio had compiled in the background.

The solution ends up being “don’t do that.” Opening up a different solution, I no longer had issues debugging my web service calls and the plugin worked fine.

  1. Hit F5 to start another Visual Studio environment with the add-in installed.
  2. Go to File -> Open Project… and find some other project that is not the add-in project.
  3. Test out the plugin.

halloween, costumes comments edit

We had five more trick-or-treaters this year than we had last year and the most popular time to visit was between 7:30p and 8:00p, which is a half hour after last year. From the graph, it appears that kids are coming out later and later - back in 2006 and 2007, 6:30p to 7:00p was the most popular time to visit.

Here’s the graph:

2009: 243

And the cumulative data from this year and the other years we’ve tracked:

</tr> </thead> </table> Halloween was on a Saturday this year so we prepared for this number of kids by getting two giant bags of candy at Costco. We did think there'd be more, so we have about half a bag of candy left, but at least we didn't run out like we did last year. We put the Halloween projector out again this year and that was nice but I think I want to do more decorating for next year. I think Halloween's on Sunday next year, so I'm not sure if we'll have quite as big of a turnout, but it's fun to decorate and such. Around the 6:30p time we had a couple of larger trick-or-treaters show up in something similar to [Death Eater masks]( They were also wearing some pretty heavy long black coats. They didn't say anything (which isn't out of the ordinary) and just held their bags out. Fine, some high school kids doing their last hurrah. When the next group of kids showed up, though, these larger ones were still there. OK, fine, we'll give you a second piece of candy and send you on your way. But they were there for a third time when kids showed up so I told them, no, they'd already been here twice and it was time for them to move on. As I shut the door, one of them stuck a foot in and got up in my face so I started getting ready to get nasty. "You'll be moving that foot now." Then the doorbell rang and they were there again. I'd had it... and then they said "Trick or Treat!" out loud. It was my ***freaking parents***. Man, they got us so good. We had no idea. It was my mom who'd got up in my face because she thought we could see her eyes through the mask. You couldn't - it was total blackout from outside the mask. Wow, did they get us. Not sure we'll be able to get 'em back for that, but we owe them a big one now.
2006 2007</th> 2008</th> 2009
Time Block 6:00p - 6:30p 52 5 14 17
6:30p - 7:00p 59 45 71 51
7:00p - 7:30p 35 39 82 72
7:30p - 8:00p 16 25 45 82
8:00p - 8:30p 0 21 25 21
  Total 162 139 237 243

media, windows comments edit

I just had a bit of a scare with a misbehaving Windows Home Server add-in where the upgrade process went frightfully wrong. As such, I ended up with:

  • The .msi for the add-in in the \\server\Software\Add-Ins folder.
  • The list of add-ins saying the add-in was installed.
  • No add-in actually installed.

Thank goodness there’s a great article over on HomeServerLand that tells you how to manually uninstall an add-in. I followed that process and the crisis was averted.

process comments edit

A few blogs I read have started experimenting with video blogging and it’s made me realize that I’m not a video blog… watcher(?).

If content is written, I can read it at my leisure. I can search through it, I can get it on my Blackberry during a boring meeting, I can do pretty much whatever. I can read a few paragraphs, switch to something else, and come back. Worst case scenario, I forget where I was and I can very quickly skim the article again to jog my memory.

Audio content is OK, but not great. It demands a bit more attention.

I’m not one of those folks who can write a term paper and watch a movie and talk to someone all at the same time. The result of me trying to multitask my I/O like that is nothing gets my full attention. I won’t know what’s going on in the movie, my paper will end up taking a long time to write and won’t make sense, and the conversation will dwindle.

I bring that up because with audio content, I can’t listen while I’m working. I’ll lose my train of thought. (I can listen to music, but generally stick to stuff that doesn’t have words or stuff I’ve heard so many times I don’t focus on it.) I can’t listen while I’m home, either, because generally the audio blogs/podcasts I’m into aren’t things my wife’s into.

That leaves my 15-minute-each-way daily commute. Given that, it takes me two or three days to get through an hour-long show like This American Life. Five days per week means I get about one-and-a-half podcasts in. I have to really pick and choose. In many cases, I end up doing a lot of deleting without listening because I can never catch up. (I’m looking at you, 30-minutes-three-times-a-week-Planet-Money. And has Hanselminutes been getting longer or is it just me?)

Which brings me to video blogs/podcasts/whatever. This is the worst of all worlds.

  • I can’t do anything with them while I’m working because it’s not even just audio content, it’s video, too.
  • I can’t do anything with them on my commute because it’s video. Plus, most times the video is on a site like YouTube where you can’t even download it and listen to the audio.
  • I can’t do anything with them at home because, frankly, if I’m going to sit down and watch something, there are plenty of more entertaining things I can watch to help me unwind than technical videos.

It’s the same problem I have with the phone. Instantly single-threaded. I might be able to do something that doesn’t require much brainpower at all, but basically, phone + me = useless.