dasBlog upgrade

dasBlogIt has been a bit quite on this site for the last time. However, aheil.de is not sharing the half life of many other web sites. aheil.de is now running a weblog for more than 4 years. So it was time to upgrade the dasBlog engine to a recent daily build. Just a few minutes ago aheil.de was upgraded to the dasBlog 1.9.7174.0 build. A complete backup of all previous posts was necessary in order to get the new build correctly running. Former posts will be uploaded step-by-step in the next future.

Bluetooth Hotchpotch

I literally fought an epic battle with my Toshiba m400 since the first day I got it. For that reason I was not surprised when my colleague Frank Prengel from Microsoft Germany had some trouble with his m400 while preparing a demo with the Microsoft Robotics Studio (MSRS).

His first idea was about some issues with the April CTP 1.5 of the MSRS. Indeed, he got some errors like

<?xml version="1.0" encoding="utf-8" ?>
 <s:Fault xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:d=http://schemas.microsoft.com/xw/2004/10/dssp.html xmlns:s="http://www.w3.org/2003/05/soap-envelope">
 <s:Code> 
 <s:Value>s:Receiver</s:Value> 
 <s:Subcode>
  <s:Value>d:OperationFailed</s:Value>
  </s:Subcode> 
 </s:Code> 
 <s:Reason>
 <s:Text>Unabled to configure Lego NXT</s:Text>
 </s:Reason>
</s:Fault>

Indeed, the error is a unfortunate result of a unhappy soft- and hardware combination. So, let’s see what we already have

  • A Toshiba m400
  • Windows Vista
  • Microsoft Robotics Studio 1.5 April CTP installed
  • A Lego NXT

Actually, the NXT documentation tells the NXT requires the Bluetooth stack from Widcomm or XP SP2. However, I know my m400 much much better than the people from Lego. Maybe you will realise that after installing the Lego software (either for RCX or NXT) you’ll get a message that the Lego software does not work with the Toshiba BT stack!? I.e. there is something special about the Toshiba BT stack… Fortunately, using the MSRS you don’t need any drivers or software to run the NXT. The build-in services provided by the MSRS are the one and only bits to run the NXT.

  1. Un-install the Microsoft Bluetooth Stack
  2. Install the latest Toshiba m400 BIOS
  3. Install the Toshiba BT Stack for Windows Vista
  4. Install the Toshiba BT Monitor.

Now you can easily pair your BT capable devices with your m400. In the following you can see a iRobot Create and a Lego NXT paired with my m400.

Toshiba Blootooth Settings

Frank confirmed that after following the steps above his demo now “works as a charm”.

Disabled MenuItems in WPF

Maybe this is a bug: Creating a ContextMenu as child of a Canvas, the event handlers CanExecute and Execute have never been executed? This took me almost two hours to figure out why. Basically, I do my command binding like

CommandBinding exitCmd = new CommandBinding(DesignerCommands.Exit);
exitCmd.CanExecute += new CanExecuteRoutedEventHandler(exitCmd_CanExecute);
exitCmd.Executed += new ExecutedRoutedEventHandler(exitCmd_Executed);
CommandBindings.Add(exitCmd);

To me, it looks like there is a minor problem in command binding whilst using command binding this manner in controls which never get the focus (such as a Canvas). Since the handlers are never fired. An easy workaround is to add additional command binding within your XAML code.

<ContextMenu.CommandBindings>
 <CommandBindingCommand="e:MyCommands.Exit" CanExecute="exitCmd_CanExecute" Executed="exitCmd_Executed"/>
</ContextMenu.CommandBindings>

I checked a couple of web sites and found one site, where the problem is described a bit more in detail. Also Aaron describes a second work around that requires some lines of code.

WPF and the Vista User Experience

I am working on a user interface (UI) for a client tool of our current project. Though, the last two have been a epic battle fighting with a various of minor things. However, each and every of these things does cost a remarkable amount of time.

Starting with WPF many developers will spend mcuh time with skinning in WPF. It’s a cool thing, but you should leave these things to designers. It is a enormous time sink. You make huge progress in the beginning but end up with endless fine-tuning in the end. The first have a look at the Windows Vista User Experience Guidelines. The really thing: you don’t have to read everything online, just download the 630 pages as PDF document. You will see that skinning should be used carefully. Much more important are some new guidelines to keep in sync with the Vista UI. BTW: if you are looking for the Vista icons you should have a look here (but I haven’t told you that and so use them only to inspire you by creating own icons).

Well, what’s about the cool stuff such as the new Command Link in Vista? Should be a new control? Well, not that easy. Daniel Moth found out to check the Vista Bridge Samples coming with the Windows SDK. you should go definitely for the Windows SDK Update for Vista. Daniel also gives a first impression how to use the TaskDialogs provided by the VistaBridgeLibrary.

Now you will definitely run into trouble if you don’t create a manifest file for you application using the following dependency:

<dependency> 
 <dependentAssembly> 
 <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="x86" publicKeyToken="6595b64144ccf1df" language="*" /> 
 </dependentAssembly> 
</dependency>

In my case, I also had to use strong-named assemblies since they are used within VSIP packages. You will realize that the VistaBridgeLibrary uses friendly assemblies, Junfeng gives a short introduction into friendly assemblies. You’ll discover that is not as easy since there have been some changes in Visual Studio 2005. Adrian figured out how it works. David cover’s the further steps and also provides a small tool to obtain the public key token of a signed assembly ready to be copy ‘n’ pasted into your Assembly.cs file.

Federated Services

Clemens Vasters just wrote about federated services in his blog. Sounds familiar? Of course. I spend a lot of time two years ago in investigating in Web Service Federations including soft- and hardware in my research at the IT-Management and Web Engineering Research Group (MWRG). At this time it was quite hard to explain to people what a Web Service federation actually is supposed to mean. We had a look deep into a couple of technologies. E.g., we allowed to connect uPnP devices with non-uPnP services across organizational boundaries, we used off-the-shelf Phidgets devices to control simulated Intel uPnP services. Unfortunately, WCF was not that stable at this time to use it as infrastructure for our approach even if we started to build upon it in the beginning.

UK DPE WPF WMF

Beyond this truly epic acronym is a video done by the Microsoft UK DPE team about WPF and corporation between designers and developers in practice. Since I am dealing with WPF for a while I also looked at Microsoft Expression Blend which is coming soon.

“The UK MCS User Experience team and a number of UK partners have been working on WPF for over 12 months and this Real World WPF series is intended to show some of their work and capture/share some of their learnings. Nick Page talks to Martin Grayson and Paul Tallett from the UK MCS User Experience team about their experiences working on real world WPF applications and specifically how Designers and Developers have worked together on these projects.”

SearchIndexer.exe makes my laptop being a Hairdryer

SearchIndexer.exe does all the indexing stuff on your Vista machine. Not bad at all it is not possible to schedule when the indexer is running as it was able using MSN Desktop Search. E.g., there you have been able to send the indexer to sleep for a 10, 20 or 60 minutes or to avoid running the indexer whilst working on the machine. it looks like the only way to calm the machine down is by switching of the service at all. Another work around I am trying right now is to got to Control Panel / Power Options and choosing the High Performance Change power plan settings. There chose Change advanced power settings Search and Indexing values to Power Saver or Balanced. This should lower the indexing effort of the Vista Search significantly.

Search and indexing Power Options