My New Development Environment (Posted on April 27th, 2013)
Recently my laptop hard drive became corrupted on the Windows partition and I was stuck using only my Ubuntu partition. Luckily it was partitioned so I was still able to use my computer with finals week coming up. Eventually though I was going to need to replace the hard drive as it was only a matter of time before the Ubuntu partition became unreadable as well.
Luckily a friend of mine had an extra hard drive that I was able to drop in. So now I had a few decisions to make. Do I want stick with the same setup I had previously (dual boot Windows 7 and Ubuntu) or switch to something else?
I guess to keep a long story short I ended up switching to Windows 8 with an Ubuntu Virtualbox. What I wanted to share today is some of the decisions I made with my development environment and how they are working out for me so far.
One of my biggest annoyances with the dual boot setup was having to reboot every time I wanted to use the other OS. Windows offers great things like DirectX and Silverlight which a lot of movies and games are built on. Having Windows installed was a no brainer as games just aren't going to run in a VM. Having an Ubuntu VM allows me to get the best of both worlds.
Virtualbox has a cool feature that allows for sharing of folders between the host (Windows) and the guest (Ubuntu) OS. This is great because it means I can store all my files in one place and share them with multiple VMs with ease. So if I decide I want to switch over to Cent OS for a day I can do that and keep all my code.
I was also able to add an additional host-only network adapter to my VM which gave it a static IP. Now I can also boot up the VM and SSH into it. This is great for practicing new deploys as remote servers don't have the prettiest of GUIs.
There are two downsides to running in a VM. I suppose part of it will depend on your hardware as well. For starters 3D graphics don't work so well in VMs. I found this great tutorial to get 3D mostly up to speed with Ubuntu. You really don't realize how draining Unity 3D is until you actually try running it in a VM.
The second issue is only a minor issue. If you plan to do work with your VM off you'll likely want to have your IDE setup on Windows. This means you'll need to install all your languages and libraries on Windows as well if you want to take advantage of code completion and other features. So if you're like me and like to get some code in between games of DotA or Counter Strike be sure to keep this mind.
Other than that though I've had no problems and enjoy having the the ability to spin up multiple VMs if I so desire. If you're looking for a great code editor I highly recommend Komodo Edit. The free version is actually really well done and feature rich. No annoying popups asking you to buy the full version either :)
What's your development environment like?