Tapestry Training -- From The Source

Let me help you get your team up to speed in Tapestry ... fast. Visit howardlewisship.com for details on training, mentoring and support!

Monday, January 16, 2006

Getting started with VMWare

I got a great suggestion from one of the developers at shopping.com: Make use of the recent VMWare free player to setup the Tapestry Workshop environment. I had been aware of VMWare in the past (when smart people like Craig Dodson or Greg Burd swear by a product, you should take notice).

So what's VMWare? It's a virtual computer within your computer. It allows one physical workstation to act as if it were several different computers. This is incredibly useful in a large number of scenarios; my friend Scott was using it when developing Windows device drivers ... he could install the drivers into a virtual machine and when it blew chunks, instantly reset its state back to before the driver wreaked havok. People have used it to run multiple versions of Windows, just so they can run multiple versions of Internet Explorer for cross-release browser compatibility. You can also use it to run alternate operating systems ... run a Linux environment from inside windows, for example.

In fact, at this very moment, I'm installing Windows XP to a VM inside my new desktop ... even while iTunes is running on my non-virtual OS. It's even properly mixing the music with sound effects from the Windows XP installer.

My goal is to create a VMWare image containing my Tapestry Workshop environment. Using the free VMWare player, and a copy of my image, people will have the entire stack .. from the JDK, to Eclipse, to the plugins and projects, to Jetty and FireFox all pre-configured and installed and ready to start with the first lab. This has been taking as much as half a day to accomplish at most clients ... valuable time, and a distraction from people's excitement about learning Tapestry.


Todd Huss said...

I use VMWare semi-regularly for testing as well and really like the rollback feature. I wasn't aware of the player though so I'm glad to know about that. Your use case is a great one for the player app! This is more theoretical but I wonder if a shop wanted to do this 100% by the book licensing wise, if they would technically have to license each copy of XP running inside the player?

Todd Huss said...

One other thing I forgot to mention... I used to use VMWare for testing with multiple versions of IE but I've since discovered standalone IE which allows me to run mutliple IE versions on my laptop for testing: http://downloads.skyzyx.com/index.php?fpp=20&did=8

Anonymous said...

Do the 'images' not require to be run on the same computer they were made on?

Only reason I think that is because of the drivers different computers need from each other, etc.

Howard said...

I believe VMWare virtualizes the environment, so (for example) there's a CD-Rom drive but its fairly generic; it's driver within the VM somehow connects with the real operating system (outside the VM). So there might be issues if you try to use the virtual CD-Rom drive on an device that doesn't have a CD-Rom ... I'm about to start testing on my laptop to see how well it all works in practice!

John Troyer said...

If the Tapestry virtual machine will be freely distributable (including OS) let us know and we can link to it from the
VMTN Virtual Machine Center

In any case, we're glad you're finding our software useful. Check out the
VMTN Forums if you have any issues creating your virtual machines.

jesse said...

Heh..I use it for developing .net gui applications and device drivers...Unfortunately the linux usb subsystem doesn't interact very well with the layer provided via vmware and blows up horribly when doing any actual physical device connections, but I've got a laptop for that :)

Anonymous said...

I used VMWare since version 1 and it's pretty good and stable (I always used the Linux version with Windows in the VM).

The only issue I see with your idea is that of Licensing (of WinXP in your case). But ff you do it with a Free OS, you are done.

If you go with Linux, you might want to play with Xen, which is supposedly a lot faster (I never tried it yet).

Peter said...


You could also use VMWare for creating multiple virtual machines and dedicate each of them to a set of tols. For example, you could have a VM that contains all you music composing software.
That way, if you need to reinstall your windows machine, you only need to reinstall vmware and your off. No more x hours of reinstating your machine...

andré said...

Hey Howard, distributing the image will make MS very angry. In my opinion (I'm a happy VMWare user for ages) you have got two options:

- Provide a ready to run linux image
- Create a virtual drive and distribute that

The first option ofc is not well suited to Windows users ;-) the second option would need a script that creates all the environmental variables and whatever is needed to run the stuff, it should even create some shortcuts on the virtual desktop.

You can mount virtual drives without VMWare with ease using VDK (http://chitchat.at.infoseek.co.jp/vmware/vdk.html) but you have to use VMWare to create them.