I have 2 laptops that Microsoft supplies me to do my job. I got one the day I started (which was absolutely wonderful that I did not have to sit around and wait for hardware) and then I got the second one a couple months later. The problem that I have had is that I have been using both machines pretty much interchangeably. I have a lot of the same stuff installed on both of the machines, the only key difference is that one of them is set up to use Visual Studio 2005 and the other with Visual Studio 2008. The problem that I have is that it seems like I always have the wrong machine with me.

Some Examples

I was at the SilverlightDevCamp last week and was going to show someone how easy it is to hook a JavaScript event in Silverlight 1.0 and I wanted to do that with Expression Web to show that you did not need to use any Visual Studio voodoo to make it work. One problem: Expression Web was on the OTHER machine.

I put critical files in a Groove Share so that they are available to me on either machine (Groove is very cool if you have never checked it out). But I don’t put all files on Groove and about once a week I go to look for a file that is on the other machine.

I take a lot of photos when I am at events and I like to upload them live in many cases. To do that I sync my camera to the laptop I have open and then use the Flickr uploader to send them to the cloud. I don’t send every photo to the cloud and as a result I have photos scattered across 3 machines (I also sync my wife’s camera on her laptop).

Potential Solutions

Carry both laptops everywhere I go. I have done this on many days and it is nice to be able to give any potential demo at any time. But my shoulder suffers greatly and I have developed a rip in my backpack.

Specialize the laptops into roles. Turn one of the laptops into my “productivity” machine where I have office, outlook, etc. Use the other machine as a dedicated demo laptop. Most of my co-workers do this, so the idea is not novel.

Turn one of the laptops into a media center / gaming PC and use it to record Nick at Night and play Halo 2 PC version. This idea appealed to me greatly, but I figured that my boss would be none to happy with me not putting the hardware to good use. 🙂

The rest of this blog post will describe how I am setting up the demo machine to drive everything off of Virtual Machines. I have a few presentations this week, so I will not yet convert the other laptop to the productivity machine yet. Expect anther boring blog post When I do that.

The Hardware

  • Dell Latitude D820
  • 4GB of RAM
  • 90 GB Primary Drive
  • 80 GB Drive in the Expansion Module

I picked my Dell laptop as the demo machine for several reasons: It has more RAM (and RAM is a big factor in performance for virtual machines), it has 2 hard drives that I can use at the same time without plugging in an external drive. Other than RAM, the best thing you can do is to put the virtual hard drives on a separate spindle.

Items installed in the base operating system

  • Windows Vista Ultimate x64 edition (with all of the latest patches installed via Automatic update)
  • Windows Bitlocker for full drive encryption
  • Corporate supplied anti-virus software (with all of the latest patches and virus definition files installed)
  • Virtual PC 2007
  • VPN Client for access to corporate network

That is all I am planning on putting on the host OS. I am being militant about not putting anything else on it. I want the host to be very easy to recreate and locked down very tightly. I will update this post if I go back and put anything else on the machine.

Virtual Machines I plan on creating (or adopting)

  • A VS 2008 / Silverlight Machine - Windows Vista, Expression Suite, Visual Studio 2008
  • A SharePoint Environment - Windows 2003 RS, WSS, MOSS 2007, Office 2007, Visual Studio 2005
  • A Linux Machine - I want a typical Linux Distro to test Moonlight on, suggestions are welcome.