I was an “Open Source” guy at Microsoft so it only made sense that I did some of my development on Linux.

Many folks have emailed me since leaving Microsoft and joining Mozilla with questions about my decision. While I do intend to blog about my “logic” sometime in the weeks to come, I wanted to invite my readers to join me in zooming up my Open Source skills.

Mozilla provided me with a Mac Book Air and a Samsung Android Tablet, both of which I love, but for web development, I’m going with Linux.

Why ?

Contrary to some popular belief, OS/X is not Linux under the covers. People also say it’s FreeBSD under the covers but I don’t think that is accurate either.

OS/X is based on the Mach Kernel which grew out of NeXTSTEP from which it inherited UNIX-ish bits from FreeBSD and OpenBSD. [ read more ]

The significant majority of apps on the web run on Linux. I’ve hosed sites on Centos for many years and found it to be fast, stable, and very cost effective.

It make’s sense to do your development on the technology that is as close as possible to your deployment stack.

I don’t like the “boxed” web stacks like WAMP or MAMP and I don’t like the way OX/S obscures the OS (again, just for web development purposes.)

Of course there are MANY Linux distros (distributions) to choose from. For production servers my choices are :

  • Red Hat REL when the solution domain required an on-demand support option.
  • CentOS what it does not.

But, for my development desktop I like a little more feature “wiz”. My hard core Open Source buddies will all remind me that “real men use Debian”, but, I’m a pragmatist. What’s more, two of my “other” favorite distros are built on top of Debian.

If you’re new to Linux you may wonder why such a thing matters to you. Well, there are two very popular “packaging strategies” for Linux applications.

  • Red Hat .rpm files
  • Debian .deb files

Both are popular but it seems to me that the .deb format is more current, probably due to the popularity of Ubuntu.

DistroWatch.com   is a great site where you can track the relative popularity of the various Linux distributions. Note that the two most popular (right now ) are Ubuntu (which is built on Debian) and Mint (which is in turn built om Ubuntu). The latest version of Ubuntu came out with a new desktop style called Unity which had been received with mixed reviews and that seems to have resulted in a surge in the popularity pf Mint. It’s really a matter of preference and it’s easy to run Ubuntu without running the new Unity style desktop.

For Windows users moving to Linux, one thing that is a bit of a convenience on Mint is that Mint Linux pre-configures “Wine” and an application installer for Wine. Wine makes it possible to run many (but not all) Windows application on Linux.

Of course, you can also run Wine (and therefore many Windows applications) run on Ubuntu, but for getting started Mint makes it just a little bit more straight forward.

I run both Ubuntu and Mint. In fact I never sell old PCs so I have almost every popular distro running somewhere in my office.

If you’re a developer using Windows (or any Windows user) you probably don’t want to just wipe out your Windows box and re-pave it with Linux, so I thought I’d help folks get started in a way that doesn’t require you to give anything up or take any risks. (Or pay any money.)

In the tutorial below I’ll walk you through setting up Ubuntu on Windows inside a virtual machine.

This will not cost you a penny. Just a few gigabytes of disk space.

NOTE : I do NOT suggest you try this with Microsoft’s free  VirtualPC. Recent versions of the Linux Kernel have problems in MS-VPC. This has been true for years and is a known issue that Microsoft has not fixed. (Which sort of makes sense as their Virtualization products are intended to virtualize their operating systems, though Microsoft’s server virtualization options do provide some level of Linux support.)

The good news is that VMware now offers a free desktop option for personal use. (There are Free Open Source options as well.)

Click on the link below to view the rest of this post and read the tutorial that will walk you though setting up an Ubuntu Linux Virtual PC…..

First we need to download the free VMware player [ HERE ]

Before you start installing the VMWare player you probably want to start the Linus ISO download.

If you already have an Ubuntu CD, you can use that, but the VMWare Player let’s us create a VM instance from an .iso file on disk which is much faster than reading from a CD / DVD drive. So we can just download an .iso file and not bother burning the image to a physical disk.

Go to Ubuntu on line and download the .iso that yo want (I’ll grab the 32 bit version) [ Get it HERE ]

While that is downloading, go ahead and run the VMWare installer that you downloaded. Accept the default install options and, if you are prompted for permissions, say yes. When you’re done, double click on the VMWare Player icon .

When the VMWare player starts, select “Create a New Virtual Machine”.

When the “New Virtual Machine Wizard” starts, switch the “install from” option from “Installer disk” to “Installer disk image file”.

Once your Ubuntu download has completed you can click on the browse button and select the Ubuntu .iso file that you just downloaded.

After you select your Ubuntu .iso something cool happens. Note the line pointed out by the red arrow. The VMWare player is “Ubuntu  aware” and has some built in smarts for installing Ubuntu (other Linux distros are supported by “Easy Install” too.)

Stop and read / look closely before you fill out the next screen.

The settings that you enter in this dialog will become your log-in credentials for this Linux installation.

  • Your “Full name” can pretty much be anything using the accepted character set.
  • Your “USER name” must be lower case.
  • a password is required, but the rules are slack

When you fill out these fields and click next you will have a chance to name the virtual machine and select where the VM file will be located.

Next, I suggest you just take the defaults.

If you are going to build a VM that you will use seriously, you may want to increase the disk space allocation and the memory, but for our purposes the defaults will work just fine.

Also, if you’re using NTFS on your Windows install (which is the default on modern versions) you shouldn’t have problems moving the large single VM files around.

Click next and we will have the chance to revew our selections.

The “Customize Hardware” button will expose the options to increase the VM’s memory allocation, etc.

After you click finish, you will get a hint as to the devices that you can choose to attach to your Linux VM instance. We’re not going to connect any, but it’s a nice as to how easily you can integrate the devices that Windows is configured to use.

You’ll also get a dialog that asks you if you want to download and install the latest version of the VMWare tools for Linux. These tools help your Windows “host” and your Linux “client” to work together so i suggest you agree and click the “Download and Install” button.

You’ll see this dialog :

Just move the dialog out of the way and let it do its thing. We can move on with our configuration.

While the VMWare tools for Linux are downloading you will see that the VMWare player is installing Ubuntu Linux.

When it’s done, you will see this :

Ignore this prompt and in a few seconds you will see this screen:

Click on your user name :

Note this error / warning message !

Don’t worry, this is normal. Becuase we are installing Ubuntu Linux in a virtual machine, the VM presents a virtualized set of generic hardware. Ubuntu only wants to try to run Unity if it is sure your environment can support it. When you install on native hardware you may want to use Unity, however I prefer the classic Ubuntu interface.

Ubuntu will log you in and start the “Classic” desktop.

When you log out and than log back in you will see an option atthe bottom of the screen that will allow you to specify the Classic desktop.

Poof  Ubuntu Linux is YOURS.

You will note that Mozilla Firefox is installed by default.


Since FireFox is the best browser on the web – it is all you will ever need but, should you want a different choice, for testing perhaps, you can install Chrome, Opera or one of the other browsers that support Linux.

Also, Ubuntu will automatically check to see if there are any updates available.

Since you are a Windows user, you should already be used to this model.


Click on the Update Manager Link

You can review and choose which updates you want to install. I update everythign that is available.

The first update will take a few minutes.

You may also want to do a separate “proprietary” driver install.

In the case of our Virtual Machine we will use this to install the VMWare Client tools for Linnux.

BUT, if you are installing directly to your machine and your machine’s manufacturer supplies Linux drivers, you may find these proprietary drivers available for install here as well.

In a follow up post I’ll focus on the developer tools that I’ll be using to do demos but I want to show you how easy it is to install software applications using Ubuntu’s Software Center.

For email, Ubuntu includes Evolution Mail by default, but I much prefer Mozilla Thunderbird so lets use the Ubuntu Software Center to install Thunderbird.

At the top left corner of the desktop you will see the Applications menu, pull it down and select the bottom option”Ubuntu Software Center”

When the Software Center starts you can either browse categories or search by name.

This is party central for free software – so you’ll find dozens of applications you will want to try.

Type “thunder’ in the search box ….

Thunderbird Mail / News will appear in the hits list, click on the Thunderbird install button.

You will see “Installing” and “In progress” indicators that show that the application is installing.

When the app is fully installed you will see the progress bar turns in to a “Remove” button.

Viola !  You’re up and running and ready to explore Linux – and all it cost you was a little disk space.

Next, I’ll start spinning up a developer tools stack and we’ll get to writing some code.

have fun, email me with problems or questions !