Monday, January 08, 2007

100% Mac

On the eve of the MacWorld keynote, I thought it would be appropriate to highlight the single application which enabled me to complete my "switch" from a PC to a Mac: Parallels.

For those who may not know, Parallels is a virtualization environment for the Intel Macs. It enables you to run an operating system - from Windows to Linux to DOS - within Mac OS X. The entire guest operating system is stored in a single file, which can easily be backed up and/or moved around easily.

I first saw Parallels at a client, where Ben Rudolph from the Parallels team was getting ready to demo it. He turned on his MacBook Pro, fired up Parallels, and then stared up a pre-release version of Vista. He looked at me and said, "Pretty cool, eh?" My only reply was "Why?"

He chuckled, but went on to claim that even a pre-release version of Vista worked with their software. From a tecnical point of view, it was quite impressive, as having Vista gives you access to all of its new innovations, such as the new search, gadgets, and the 3-d Chess game.

So it was not a surprise to me that Parallels was one of the 1st applications I bought for my new MacBook. It has paid for itself many times over already. First of all, it just works. Installing it is a breeze, but what's more impressive is installing a guest OS is even simpler. In fact, its easier to install Windows XP in Parallels than it is to install it on an Intel machine. Seriously. Have a look at the one screen which you'll need to fill out:

The next screen simply asks for a name for the VM you are about to create. That's it. Sit back and enjoy your install!

Once I installed my copy of XP in Parallels, I was quick to download Oracle 10gR2, Oracle HTTP Server & Oracle Application Express. All three of these products installed flawlessly in Parallels. And with bridged networking, I can use my Mac browsers and OS X version of SQL Developer & SQL*Plus to access the Oracle instance in Windows XP.

As soon as I verified that my configuration was working, I immediately backed it up. Why? If I ever need to start with a clean install of Oracle 10gR2 & Apex, I could restore this clean configuration and be up in running in minutes with nothing to re-install. Anyone who has worked with Oracle more than a few days knows how valuable being able to revert to a clean install can be.

And that's exactly what one of the first true tests of Parallels was. We hit an obscure error with an Apex application that I was building for a client. Initially, signs led to something with the character set of the database. The size of the HTTP packets we were getting were inconsistent with what we expected. We didn't have the resources to create a new database from scratch in a different character set in order to further troubleshoot the issue. Or did we.

Enter Parallels. I simply made a copy of my "clean" configuration, fired up the DBCA, created a new database with a different character set, changed the DAD configuration, and we were able to rule out the character set in about an hour. No additional hardware was required, save for a few GB of disk space, which was quickly reclaimed once we knew the character set was not the issue.

Parallels has also proved itself a demonstration environment. A couple of months later, I was teaching an Apex class just outside of Providence, RI. Someone asked me if Apex & Oracle XML Publisher could be integrated. I've always thought so, and have even been told so by some who claim to have done it. But I've never done it myself, which tends to make me a bit skeptical.

So after dinner, I copied my clean configuration once more, found a nice install guide for XML Publisher on OTN, and started installing. After downloading & configuring Tomcat, installing XML Publisher Workstation & Server, and about 2 hours later, I had it up and running on my Mac. Since Apex was already installed in my configuration, the next task was to figure out how to get the two to work together. (more details on this in an upcoming paper which I am putting the finishing touches on)

The next day, I started the class with a demo of Oracle XML Publisher integrated with Oracle Apex. It was hard to tell what was more amazing to the students - that I was able to get these two products working together, or that I had a Start button on a laptop with a big Apple logo on the back. The demo somehow concluded with a quick tour of iLife. I may have actually sold a couple of Macs that day.

In addition to using Parallels for server based applications, it has proven extremely valuable for client applications as well. Most people hesitate to switch to a Mac because there are always "a couple" of Windows applications which they cannot live without. They don't necessarily use these applications every day, but when they do need them, they cannot be with out them.

Two of those must-have applications for me are MS Access & GotoMeeting.

As much as I hate Access, I need to have it, as I get quite a few Access databases that people want to convert to Oracle Apex. Without the ability to read those databases, I was dead in the water. With Parallels, its a breeze to open MS Access databases. In fact, I have all of MS Office installed, just in case I need it.

Since most of my clients are not local, I need to share screens with them for demos, prototypes, etc. From what I could tell, there just isn't any way to do this on a Mac. Running GotoMeeting on Parallels was a breeze. I don't notice any performance issues at all, and have hosted meetings for multiple clients, all of them blissfully unaware that I am running Mac OS X.

What's really impressive is that the Parallels team is not resting on their laurels. They have churned out 3 betas in about as many months. Perhaps the coolest of the new features is something called Coherence.

Coherence lets you run a single Windows window as if it were a Mac window. Sure, it still looks and feels like a Windows window, but it is free of the bounds of the Mac window which typically confines all things Windows. Below, you can see Apple's home page displayed in both MSIE 6.0 and Firefox for OS X.

Parallels was and is the missing link for me and many IT professionals who were wanting to make the switch to Apple, but just couldn't do it. It finally gives us the ability to run a platform on a platform - be it for server or client applications, Linux or Windows. And most of all, in true Mac fashion, it just works.