Skip to main content

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.


Pierre M. said…
Yes, you're right. Parallels is extraordinary. Like you said, it just works. I haven't experienced any problem in weeks. A friend of mine is using a single mini mac (2GB RAM) for a "linux setup and installation" class. He installs 4 instances of Linux and a very local network, fully functionnal, with NFS between the VMs. On a single $1000 device thanks to Parallels.
I think all this existed before, it was called VMWare. Parallels just brought the Mac's ease of use.
Macbook are just so pretty compare to other laptops!
Hi Scott,
I'm an Oracle Developer and have just bought a Mac.
Trying to determine the right software/versions of software that I should be running and wanted to ask your advice.
I'm an apps tech developer so use everything from Oracle Developer 6, Workflow, Disco, Designer and JDeveloper. I know JDev and SQLDeveloper run on Mac to they're fine, however can you suggest the right config to run the rest.
Would running Windows 7 Professional in Parallels be best (so can emulate Windows XP for the likes of Workflow)? Any thoughts on Parallels vs VMWare Fusion for Oracle software?
What other recommendations do you have?
Your advice is very much appreciated!
Karen (Australia)
Anonymous said…
Hi Scott,
Further to my recent post, if you are able to email me on with some advice, that would be hugely appreciated!!!
Karen (Australia)
Scott said…

I'd recommend the VMware/Parallels route, as there's just too much Oracle-specific stuff in your list.

I use VMware now, but have heard good things about both Parallels & VirtualBox as well.


- Scott -

Popular posts from this blog

Logging APEX Report Downloads

A customer recently asked how APEX could track who clicked “download” from an Interactive Grid.  After some quick searching of the logs, I realized that APEX simply does not record this type of activity, aside from a simple page view type of “AJAX” entry.  This was not specific enough, and of course, led to the next question - can we prevent users from downloading data from a grid entirely?

I knew that any Javascript-based solution would fall short of their security requirements, since it is trivial to reconstruct the URL pattern required to initiate a download, even if the Javascript had removed the option from the menu.  Thus, I had to consider a PL/SQL-based approach - one that could not be bypassed by a malicious end user.

To solve this problem, I turned to APEX’s Initialization PL/SQL Code parameter.  Any PL/SQL code entered in this region will be executed before any other APEX-related process.  Thus, it is literally the first place that a developer can interact with an APEX page…

Custom Export to CSV

It's been a while since I've updated my blog. I've been quite busy lately, and just have not had the time that I used to. We're expecting our 1st child in just a few short weeks now, so most of my free time has been spent learning Lamaze breathing, making the weekly run to Babies R Us, and relocating my office from the larger room upstairs to the smaller one downstairs - which I do happen to like MUCH more than I had anticipated. I have everything I need within a short walk - a bathroom, beer fridge, and 52" HD TV. I only need to go upstairs to eat and sleep now, but alas, this will all change soon...

Recently, I was asked if you could change the way Export to CSV in ApEx works. The short answer is, of course, no. But it's not too difficult to "roll your own" CSV export procedure.

Why would you want to do this? Well, the customer's requirement was to manipulate some data when the Export link was clicked, and then export it to CSV in a format…

Refreshing PL/SQL Regions in APEX

If you've been using APEX long enough, you've probably used a PL/SQL Region to render some sort of HTML that the APEX built-in components simply can't handle. Perhaps a complex chart or region that has a lot of custom content and/or layout. While best practices may be to use an APEX component, or if not, build a plugin, we all know that sometimes reality doesn't give us that kind of time or flexibility.While the PL/SQL Region is quite powerful, it still lacks a key feature: the ability to be refreshed by a Dynamic Action. This is true even in APEX 5. Fortunately, there's a simple workaround that only requires a small change to your code: change your procedure to a function and call it from a Classic Report region.In changing your procedure to a function, you'll likely only need to make one type of change: converting and htp.prn calls to instead populate and return a variable at the end of the function. Most, if not all of the rest of the code can remain un…