dcsimg

A Virtual Solution for Mobile Development

Who needs a Dell when you can have a VirtualBox?

How long to get a new Dell?!

In my last column, I shared the news that my Dell Latitude simply gave up on me.

Thank you to the one reader who suggested that I could recover things by booting Linux from CD — I would have gladly tried that if the machine would have even POST-ed. She was just dead.

No problem, my company is a Dell reseller — we’ll just get another one here pronto and I can move my data over, re-install my compilers and get back to work, right?

Wrong. Delivery date was weeks out and I had work to do. Being tied to a desktop computer just didn’t feel right. I looked at some of the “retail” laptops at Staples but couldn’t bring myself to purchase 1/2 a laptop at 2/3 the price of a “real” machine — like the one I already had on order from Dell. And, besides, I had a somewhat seldom-used MacBook on my desk, it wasn’t as if I were entirely without a laptop.

Now, if I were to go out of the house with a MacBook, my first preference would be one of those cool, aluminum uni-body types — not the girlie-looking white plastic version sitting on my desk. I purchased it so I could do some iPhone development over a year ago. It’s just a color, I know, but thinking back, I could have purchased basically the same device in black with a little more video ram. Hindsight is 20/20 they say. But, the thing has a 2.4 GHz Intel Dual Core — not too bad, particularly considering the fact that the new (and expensive) varieties are not all that much faster — and certainly not worth the additional investment considering what I was about to try next.

VirtualBox

Using the MacBook itself isn’t really all that bad — I have been looking for an excuse to use MacOSX a little bit more anyway. It is a pretty intuitive platform and increasingly, software development environments support OSX right out of the gate. If you doubt it, just go to a mobile software conference and everyone it seems is using a Mac.

The trouble was that I had a handful of applications for which I just had to use Windows. Yes, I know I should be using Linux — you can make the comments if you like. And yes, I could use the Mac VPN client and the RDP client to connect to servers and run a couple of administrative applications at my consulting firm — software applications that only run on Windows. However, the idea of running Windows 7 “inside” my Mac was too enticing. So, I took the virtual plunge.

Armed with my MacBoox, a respectable 160GB, 5400 RPM hard drive and a meager 2GB of RAM, I ventured into the land of VirtualBox from Sun Oracle.

If you are not familiar with VirtualBox, you can learn more in this linuxdlsazine article written by Ken Hess. My previous experience with VirtualBox was limited to using it for the Palm WebOS emulator environment. Using the same platform for running a full desktop OS intrigued me. And the price (free) is hard to beat.

After a couple of VirtualBox upgrades, most recently to version 3.1.2, I had a reasonably stable Windows 7 installation. However, it was awfully slow — yes, slower than one would expect, despite the virtual configuration.

After a Christmas Eve visit to the Genius Bar and a $200 donation to Mr. Jobs and his elves, I upgraded my MacBook to 4GB of RAM. Throw in a 500GB, 7200 RPM Hitachi hard drive and my MacBook was starting to show some brawn. Even if it is still the white plastic variety.

Even more cool is the nice wide-screen monitor on my desk which houses my “Windows 7″ environment in beautiful full-screen while I have the MacBook’s built-in display for running Firefox, Finder, iTunes, etc. Add to the mix the “Spaces” feature and I’ve now got four desktops x 2 monitors. Too bad I cannot get 8 GB of RAM into this thing!

OK, but can I get any work done you ask?

What about my files?

At this point my development files, and everything else I seemed to have accumulated over the past 37 months on my Dell, were still sitting on the orphaned hard drive. Borrowing a SATA/USB drive caddy from my network support friends, I copied the files over to a directory sitting in my home directory on the MacOSX side of things.

I was able to “share” the files via VirtualBox’s built-in \\vboxsvr sharing mechanism. However, the file access was pitifully slow. Unbearably slow. A number of Internet searches turned up some problems with NetBios over TCP, name resolution timeouts for every packet and other low-level networking stuff that just tested my patience. The guy who was responsible to procure for me a new Dell was getting quite weary of my constant inquiries regarding “shipping status”. After repeated “no update yet from Dell” remarks and other lame innuendo about Christmas season backlog and shipping delays, I decided I couldn’t turn back now and walked back to my office.

I was able to improve the speed a bit with some host file hacks. I even tried messing with different networking configurations — switching between NAT, Bridged and even “Host-Only” networking. The Host-Only option with a “virtual” NIC seemed to have decent performance for the file sharing between the Windows 7 partition and the MacOS environment, but I couldn’t hit any network resources, let alone the Internet. That was a non-starter.

I then switched on SMB sharing, killed the firewall on the Mac and was able to do a traditional “net use” file share from between the Mac and the Windows 7 environment. Ahh, now that’s more like it!

I now have my laptop running in a reasonable fashion. Programs are installed in the Windows virtual environment and all of my “data” is stored on the hard drive of the Mac. Data is backed up via Carbon Copy Cleaner and Time Machine and if I want to move my development environment to another machine, I can simply move my virtual Windows 7 image to another Virtual Box environment. Now, that is mobile computing! Well, at least for a programmer anyway.

The real motivation

For a long time I have wanted to have my development done in a more portable fashion. I have not enjoyed being tied to a particular install of Windows for so long — and this motherboard failure finally forced my hand to get to the configuration I wanted.

The setup is not perfect — I had one problem with a device driver from Microchip which blue-screened my VirtualBox. Yes, you can see the BSOD even on a virtual Windows machine — it was actually kind of funny — the first couple times. Then it became annoying. I wound up ordering a new microcontroller programmer (The PicKit2 in case you’re curious). It just arrived today, so I am off to see how it works. Me, and my white plastic MacBook. Who knew?

Comments on "A Virtual Solution for Mobile Development"

dragonwisard

A long anecdote (with requisite Mac and Windows bashing) where someone discovers that Windows 7 needs more than 1GB of RAM to run smoothly (how shocking!) and files can be recovered from a dead laptop using a $15 USB-IDE adapter.

ajaimes

Have you tried vmware? For me, it has a better performance than VirtualBox… but it is not free…

fableson

@ajaimes – I have tried vmware — in fact I have used it for windows servers in the past to get some more use out of existing h/w investments.

This is the first time I have made significant use of virtual tech on a day to day machine. I have held vmware as the safety net choice — if VirtualBox works that would be my preference based on price and supporting Open Source efforts.

ferdnyc

…Why is this article in \”linuxdlsazine\”? I have no feelings about what OS the author (or anyone else) runs, it\’s just that I don\’t see how this article has anything to do with linux.

fableson

@ferdnyc

Thanks for your comment. I write about mobile development — often it is on Linux-based Android topics, but certainly not exclusively as there are multiple mobile operating systems that impact Android\’s market-share, competitive feature sets, etc. I\’ve also tackled Palm\’s WebOS, BlackBerry, multi-platform tools like Titanium and phonegap.

When wrestling with mobile development, the development platform must be taken into consideration. For example, the love-it-or-hate-it iphone platform requires you to conduct development on an Intel-based Mac. The idea of using virtual machines as part of the solution has long been of interest to me, so I thought it would be relevant to others also. Then my primary development machine died so my hand was forced. Hence this article on windows, mac, virtualbox, etc.

Perhaps of interest to some, I recently switched from VirtualBox to VMWare Fusion. While I was impressed with what VBox could do, I just couldn\’t handle the performance issues, spotty USB coverage and lack of an input microphone. I use Camtasia often to do short, informal demos for others. Without a mic, I was unable to use my primary machine for this purpose.

So, I tried VMWare — it handled my mic just fine, handled the development board I was playing with (USB based Microchip picKit1) — and just for fun… it\’s a lot faster than my VBox setup.

While I would have preferred to stay with VirtualBox, my time was worth more than the 80 or 100 fee for vmware fusion.

Frank

I value the article.Really looking forward to read more. Really Cool.

Hey there would you mind sharing which blog platform you’re working with? I’m going to start my own blog soon but I’m having a tough time deciding between BlogEngine/Wordpress/B2evolution and Drupal. The reason I ask is because your layout seems different then most blogs and I’m looking for something completely unique. P.S Apologies for getting off-topic but I had to ask!

yceUAd pzdnrcrkdeug, [url=http://uojodptxlxoj.com/]uojodptxlxoj[/url], [link=http://uhaimtskfumh.com/]uhaimtskfumh[/link], http://xwjhkkmkbvgc.com/

Leave a Reply