I’m going tell you the perfect developer laptop environment setup. Does not matter if you are a Linux or Windows developer. Maybe Mac user can also find this interesting.
I’m mainly a .Net developer. Sometimes I dabble in Node.js (So Cool!) on Ubuntu. I also use Ubuntu for using Git. My main technology focus for this year is ASP.Net MVC, SharePoint 2010 and Node.js. I sometimes use BizTalk as well.
Firstly let’s discuss my hardware requirements. I need the following laptop spec:
- Intel Core i7 CPU
- 12 GB Ram (minimum)
- 32GB SSD Drive
- 17” Screen Resolution
- Nvidia Geforce 500M GPU
- LaCie Rugged SuperSpeed 500GB USB 3.0 External Hard Drive
I’m going to use this laptop to setup the minimum Ubuntu OS with VMWare or Virtualbox on top. I’m going to create development VM images on the external hard-drive that will use that nice USB 3.0 performance.
Hardware in Detail
The Intel Core i7 CPU has great benefits such as 4 Cores with Hyper Threading. Including Intel Turbo Boost Technology and Intel HD Graphics. This CPU will provide enough horsepower to run multiple VMs.
The 12GB Ram is necessary for being able to run multiple VMs. As an example, SharePoint 2010 requires 8GB Ram to run and running Visual Studio for development can easily consume 4GB Ram.
The 32GB SSD Drive is the main hard drive on which Ubuntu and the virtual applications are running. SSD gives you very high IOPS. You don’t need allot of capacity to run the minimum installation of Ubuntu.
The 17” Screen resolution is just a personal choice that give you enough screen real estate for development.
The Nvidia Geforce 500M GPU provide some nice features where certain graphic intense application will benefit from. The virtual applications started to support 3D acceleration inside the VMs. A side interest for me is also the ability to develop with Nvidia Cuda and OpenCL. Nvidia also provide the Optimus technology that intelligently optimize the GPU for better battery life.
The Lacie 500GB USB 3.0 drive is where all my VMs will be saved. The drive run at 7200 rpm and can deliver a transfer rate of up to 110MB/s via the USB 3.0 interface. The 500GB size is more than enough. You can get an additional external 2TB drive to backup the VMs.
Minimum Ubuntu Installation
Firstly go and download the minimum Ubuntu installation CD ISO. You can install it via cd-rom or USB device. Install Ubuntu as required by following the installation guide. At the end of the installation you be given the command prompt inside Ubuntu. Make sure you are connected to the internet via a network cable. This is required to download the additional packages.
Now we want to enable some of the fancy Ubuntu features, because we don’t want to be in the command prompt for ever. So here is what we are going to install.
- Minimal Gnome
- Wireless Networking
- Chrome Browser
- Ubuntu Theme
- VMware Player
Type the following to install the minimal gnome. This will install a graphical environment.
sudo apt-get install gnome-panel gdm gnome-terminal
Type the following to install Wireless Networking. This will give you a battery monitor and a icon to configure wireless networking. Additionally you get the hibernate button on the shutdown menu.
sudo apt-get install network-manager network-manager-gnome gnome-power-manager hibernate
Let’s install the Chrome browser. Type the following.
sudo apt-get install chromium-browser flashplugin-installer
The default gnome theme looks ugly. Type the following to enable the Ubuntu theme.
sudo apt-get install ubuntu-artwork
After that I would recommend you run the following commands.
sudo apt-get update
The laptop will firstly make sure it has all the updates and after that we reboot the laptop. After the reboot you will get the login dialog that you use to login to the desktop. Once you on the desktop open a terminal so that we can install Virtualbox or VMWare player. The virtualization technology that you choose is up to you. I will show both.
Firstly I will recommend that you install the Build Essentials on Ubuntu. Some packages require that the build essentials are install before the packages can install.
sudo apt-get install gcc build-essentials
Lets Virtualize – VirtualBox
Type the following to install VirtualBox. In the terminal type:
sudo gedit /etc/apt/source.list
Add the following VirtualBox repository
deb http://download.virtualbox.org/virtualbox/debian maverick contrib
Now let’s add the public key of VirtualBox to the system.
wget –q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc –O- | sudo apt-key add -
Update the package database.
sudo aptitude update
Now to install VirtualBox type the following magic command.
sudo apt-get install virtualbox-4.0
After VirtualBox has installed you might want to install the dkms package.
sudo apt-get install dkms
Lets Virtualize – VMware Player
Lets start installing VMWare Player. Go to the VMware player download page and download the binaries. Now we need to give the VMWare bundle executable privileges. Type the following in terminal where the VMware bundle exist.
chmod +x VMware-Player*.bundle
gksudo bash ./VMware-Player*.bundle
After these commands a installer window will pop up. Just follow the wizard guide. This was now quick and easy.
At this stage all the required software is installed for you to get started with creating VMs. Here is a list of some additional software you might want to install on Ubuntu.
Just remember that you want to keep your Host OS as small as possible and to use as little possible memory. I would recommend that you format the external drive to ext 4 file system. It provides very nice performance for the VMs.
I hope you see the benefits of using VMs for your development environments. With this setup you can go crazy with creating VMs and you can easily backup your VMs en data. If you have any suggestions to improve this setup, please let me know.