There's been a lot of talk about how virtualisation and portable apps are going to change the way that the world works recently. Everywhere I look there are new initiatives and technologies that are going to bring about a revolution in ease of use, safety and stability.
I agree that the wave is coming, but I'm not sure it's here just yet.
I set myself a little challenge. To build a totally portable environment that could live on my iPod and plug into a friends computer, a spare machine at home or an internet cafe and allow me to work as though I was at my desk.
That meant I needed:
- IIS: or similar webserver, capable of delivering ASP.NET 2.0 - so needed all the relevant frameworks etc
- SQL Server 2005: Pretty much any of the editions, as long as it had the management console and was 100% compatible with the features we're using in our live environment
- Development IDE: Visual Studio would be a major bonus, but EditPlus would have cut it.
- Browsers: IE (6 or preferably 7) and Firefox are a must for testing. ideally independent from the host OS so I know what plug-ins and add-ons are in place
- Drawing tool: Designers insist of making me look at graphics. Apparently the world looks prettier in technicolor and with curves. Don't they realise how much overhead that puts on the text! Luckily for y'all I'm in the minority and I bow to Cats wisdom when she tells me that a picture is worth a thousand words (and if I build websites that don't have pictures I won't get paid for those words either!). Luckily for me Paint.Net is simple enough for me to use and good enough to do what needs to be done
- MS Office: Or something 100% equivalent. OpenOffice and Evolution come close but I did say 100% didn't I! Specifically the 2007 B2TR version because I just don't want to go back to its predecessor
- Music player: Because I can't work in silence. Ideally able to access the music stored on the iPod without needing duplication. SongBird, iTunes or WMP are all acceptable for this
- Utilities: Windows Live Writer, Messenger, Skype, Anti virus/spyware to keep the device safe and the ability to connect to the office VPN are all a must for the environment to receive the final tick.
So... how did they do?
The first things to spring to mind where VirtualPC and Parallels. I've used VirtualPC on the Mac before to set up a Windows environment and it was okay. I've also used it for testing on the PC. But VirtualPC and Parallels don't give me a portable environment... I still need to lug the laptop around so they're not contenders for this little challenge. I would have included VMware in the write-off but for the Moka5 tool. But more of that in a moment.
So next I had a look a the mindset leader - U3. And wrote it off (along with PowerToGo and Ceedo) very quickly. Not because it was bad but because most of what I wanted to run wouldn't in that environment (though if you can use the portable versions of OpenOffice, Firefox, Evolution etc they are a perfect answer)
The Linux LiveCDs (and also the BartPE WinXP LiveCD) also didn't make it because the former is Linux and the latter requires a reboot of the host (and being CD based limits me in what I can do/run)
That left me with two contenders. MojoPac and Moka5.
MojoPac has a lot of promise. Works with any USB 2.0 device. Supports most Windows applications. MojoPac works as a new virtual user on the host PC so you use a lot of the underlying PCs functionality (browser, operating system, shared apps etc) but keep your settings and data totally separate. You can also install applications on the MojoPac so they are always available. While it did work fine on my iPod it was very limited. It doesn't support Vista (I know it wasn't a requirement but it's a worry nevertheless), IE7 on the host machine (in fact ever IE6 seemed temperamental) and anything that messes with the OS - including things that need specific services to be running, or to install new services (IIS and SQL have problems there), or that check to see if your copy of windows is valid - WGA won't run (in fact, the entire Windows Update function is unavailable).
After a lot of wasted time I got the .Net 2.0 frameworks, Paint.Net and Office installed. But I was still without a database or a webserver and I was bored of being right on the bleeding edge. Given their claims I thing for a US$30 product (and no early-adopter discounts, life-time licence's etc) it's rather limited. You don't need to buy a Windows licence to use it, but it doesn't offer much over the U3 / Portable Apps type setup for it's price. Maybe by release 2.0 it'll be what I need.
That left me with Moka5. A very interesting idea, and potentially pretty limitless. Moka5 is an extension on the VMware virtualisation player. They allow you to use shared streamed (pre-tested and configured) environments on your local device, storing updates/personal data locally but always having access (assuming you're online) to the latest build of the environment itself. If you're offline a lot you have the ability to cache the environment. You can also build and manage your own environments.
I set up a WinXP Pro environment within the player and fairly quickly was able to install pretty much everything from the list above (I stopped when I'd proved that the hard things worked!) Because it's a virtualisation engine it creates and manages a dedicated stand-alone environment. Just for fun I also created a Ubuntu 6.06 environment on the same iPod so that I could toggle between them. At the moment it still needs a Windows host machine, but as VMware player is cross platform it will be interesting to see if that evolves over time...
The downsides of Moka5 are cost - because it's a full WinXP environment you're into the world of licensing fees which may preclude this option for some. I also found the Windows environment to be very slow (part of the reason for the Ubuntu install was to compare the two) - In Ubuntu the mouse moved fairly smoothly and menus were responsive. With the WinXP virtual machine I often found myself ducking back to the host to check my email while I waited for something to happen.
So sadly for the moment at least I'm still lugging my laptop. Both Moka5 and MojoPac show great promise for portable developer/testing environments.
MojoPac would also be great for students of people who are able to use Open Source portable apps (but then again they may be better off with a standard USB key and a free portable versions of those Open Source apps).
Moka5 is an awesomely flexible platform. I'll probably keep working on trying to get acceptable performance out of the WinXP install, and I'll certainly keep the Ubuntu installation there for testing.
Both Moka5 and MojoPac are early iterations of this technology and both show great promise. I'll be watching with a keen eye.
What I'd love to see however is something that lets me carry an ultra portable device (either one of the new UMPCs, or a more contemporary replacement for my Vaio C1MT Picturebook, or something the size of my K-Jam that can run WinXP Tablet Edition!) but plug into a network/USB connector/Docking Cradle at home/the office/client site/internet cafe and have the data immediately available on the more powerful machine and carry on working with the resources of both machines at my disposal...
The final irony. The Internet Cafe were I normally testing things like this for real portability have just 'upgraded' their kiosks... they no longer have customer accessible USB ports! Now that's a major crimp in my plans for world domination!