Mounting your SkyDrive in Windows Explorer

In this post, I will go over how to set up your Microsoft Live SkyDrive as a mount in Windows, so that you can use it normally as you would use any networked drive.

The first step is to associate your LiveID with your user account.

  1. Launch the User Accounts control panel
  2. In the sidebar, select Link online IDs
  3. If there is an Online ID Provider of type WindowsLiveID, skip to step 7
  4. Select Add an online ID provider
  5. In the webpage that loads, select download, and then install the downloaded provider.
  6. Close and re-open the user accounts control panel
  7. Next to WindowsLiveID, select update credential… and enter your live id
  8. Launch Microsoft Word 2010, or any office 2010 application
  9. Select File > Save & Send > Save to Web > Sign In
  10. Once connected, select Save As
  11. In the save dialog that pops up… copy the address https://qwrapq….
  12. Cancel and open Windows Explorer
  13. Select Map network drive
  14. Give your drive a letter,. and paste the address that you copied earlier
And that’s all there is to it :) Now your SkyDrive is accessible from any program on your machine as easily as you would use a USB drive.
Has this helped you in any way? Let me know in the comments below :)

Using the original Remote Desktop Client (mstsc) in Windows 8 Developer Preview

If you’re using Windows 8 Developer Preview, you will have noticed that the bundled Remote Desktop Client does not play so well with older machines (Windows 7 and below).

If, like me, you are a constant user of the Remote Desktop Client (a.k.a mstsc, and.a.k.a. Microsoft Terminal Services Client), this can be quite a problem.

Luckily the older remote desktop client is still very alive and kicking in Windows 8 Developer Preview.

  • You can either navigate to C:\Windows\system32 and locate mstsc… and of course just fire it away
  • Or you can run it from your run dialog (WIN+R) as C:\Windows\system32\mstsc.exe
  • Or, you can call up your new fancy Metro-Style start menu (or legacy one if you’ve disabled metro), type mstsc, and voilà, it just pops up
And there you have it… from here on, you can launch it any way you want… create a tile, a short-cut, pin it… the choice is yours :)
That’s what I love most about Windows vs Mac… so many choices :)

Update help content in Visual Studio 11 Dev Preview to point to proper MSDN queries

When Microsoft released Visual Studio 11 Developer Previews (express or ultimate), the REST help query service for VS 11 was not yet deployed, therefore when you hit F1, you are sent to the dev10 (VS 2010) help service, rather than the correct VS 2011 service.

In the meantime Microsoft have now deployed the proper Visual Studio 11 help service on MSDN.

Thankfully, we can update our Visual Studio installation to use this new help service via a simple registry tweak :)

NOTE: If any of the keys are not available in your registry hive, feel free to create them.

For Visual Studio 2011 Express Developer Preview

For 32-Bit:

  1. Launch your registry editor (hit WIN+R, type regedit, hit enter)
  2. Navigate to [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VSWinExpress\11.0\Help]
  3. Add a string value called OnlineBaseURL
  4. Set it’s value to

For 64-Bit:

  1. Launch your registry editor (hit WIN+R, type regedit, hit enter)
  2. Navigate to [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VSWinExpress\11.0\Help]
  3. Add a string value called OnlineBaseURL
  4. Set it’s value to

For Visual Studio 2011 Ultimate Developer Preview

For 32-Bit:

  1. Launch your registry editor (hit WIN+R, type regedit, hit enter)
  2. Navigate to [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\11.0\Help]
  3. Add a string value called OnlineBaseURL
  4. Set it’s value to

For 64-Bit:

  1. Launch your registry editor (hit WIN+R, type regedit, hit enter)
  2. Navigate to [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\11.0\Help]
  3. Add a string value called OnlineBaseURL
  4. Set it’s value to
Since Visual Studio caches this key upon launch, you will need to close visual studio and re-open it for the change to take effect.

Reactive Extensions (Rx) – Do something after all data has been received

As an Rx user, there are scenarios where you have subscribed to multiple observables, and you want to be notified when all the observables have completed.

A common approach to this problem (albeit a messy one), that I have seen used on my current project far too many times, is to set a boolean flag and to have your ‘final’ method invoked by the OnCompleted of every Observable, which in turn would check this boolean flag.

I consider this very messy, especially since Rx can actually tell you when all the observables have completed.

This can be done as follows:

var observablesObserver = new Subject();
observablesObserver = Observable.Merge( new [] { ObservableMethodA(), ObservableMethodB(), ObservableMethodC() } );

    unit => _log.Info("One of the observables returned data"),
    ex => _log.Error("Oops, we blew up",ex),
    () => _log.Info("All observables have now completed")

The implementation of ObservableMethodX() is essentially a simple wrapper, that returns a Unit (which is Rx lingo for void).

private IObservable ObservableMethodA(){
    var observable = new Subject();

        result => {
            SomePropertyA = result;
            observable.OnNext(new Unit());
        ex => {
            _log.Error("Oops... I blew up!",ex);
        () => observable.OnCompleted();

    return observable;

Now, when using Observable.Merge, all subscriptions happen at the same time, and there is no guaranteed order of how they return their results… all we know is that OnCompletedis only called when the merge is completed (in this case we are ‘merging’ void, so not much really).

So, what if you have a scenario where ObservableMethodC() depends on data from ObservableMethodB()?

One way of doing this is to actually invoke ObservableMethodC() in the OnCompleted phase of ObservableMethodB()‘s subscription, yet this gets messy since we would need to also pass in our subject so that we can inform when we have gotten ‘all’ the data.

A neater way of doing this is to use Observable.Concat() instead, which is exactly like Observable.Merge(), except for one main difference: Subscription to C will only happen once B has completed.So we can mix and match according to need, ex:

observablesObserver = Observable.Merge(
    new [] { ObservableMethodA(), Observable.Concat(
        new [] { ObservableMethodB(), ObservableMethodC() } ) } );

You could of course Concat ALL the observables, but I wouldn’t suggest this since Merge is more performant than Concat, simply because it invokes all calls simultaneously.

Disabling USB ports on a Windows machine

If for some reason you want to disable your USB ports, maybe for security reasons, you can do this with a simple registry hack.

  1. Launch your registry editor, by pressing WIN+R and typing regedit.
  2. Navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsbStor
  3. Change the value of the start key to 4
  4. Reboot your machine
Your USB ports will now be disabled completely.

Where to find lots of Windows 7 and 8 themes

If you are looking for some good Windows 7 and 8 themes, my favourite place to go is the MicrosoftFeed website.  These themes come complete with sound effects, backgrounds, icons, etc….

Go get them here ->

How to use the Windows Snipping Tool to capture menus and stuff you need to click on

The Windows Snipping Tool is a great little utility… almost as good as the screen capture features found in Mac OS X (I still prefer apple’s implementation of this feature).

Yet it might seem a bit hard to actually ‘snip’ certain items that we need to active either by hovering over them or clicking on them.  Ex. Menus, combo boxes, hover effects, etc…

It turns out that it is actually quite simple, just do the following:

  • Launch the Snipping Tool
  • Hit Esc, or click cancel – basically get out of ‘snipping’ mode
  • Active the menu, combo box, or whatever it is that you want to take a snapshot of
  • Hit the PrtSc (Print Screen) keyboard button…
…and voila… your screen is frozen as it is, and you are free to snip away any section that you want :)