Since getting my new laptop I’ve been doing most of my development on it, particularly outside of my room. My desktop has become associated with gaming too much for me to be productive while using it, at least on a regular basis. In fact it’s been booted into Windows for a few weeks now, except for the few times I need to reboot to pull off a file or two.
But when I am at my desktop, hankering to code with a “real” keyboard and mouse, I have to either use a remote desktop viewer to my laptop or reboot. Neither are a particularly good choice. Compound that with the fact that maintaining a development environment means bleeding-edge (read: broken) stuff and you start to see the picture. I want to be able to run stuff with a certain degree of stability on my laptop, and also be able to develop stuff on my desktop when I feel like it.
Virtual machines to the rescue again. With a basic Debian install, I’m off with experimental Mono 2.0 Debian packages and trunk MonoDevelop. (Then again, I’ve always used trunk MonoDevelop…)
Here are my summarized reasons for using a VM for development:
- Keep everyday-use environment stable and clean while using newer, unstable software for development.
- Snapshotting the VM means I can try something potentially dangerous to the system without fear of lost data or lost time spent reconstructing the environment.
- Portability to different OSes means I can pound out some quick code that’s on my brain no matter which OS I’m using. Currently I run the VM on my desktop using the hard disk image on my laptop over a Samba share. This performs much better than I expected, and in fact there is no noticeable difference. (For those about to point out the remote desktop solution, this is less than ideal since the resolution can’t be adjusted. With VirtualBox and other similar VM systems I can enter full-screen mode if I want and the VM will adapt. Further, my desktop has a faster CPU and more RAM.)
And there you have it. On another note, I’ve been using this VM to hack at OpenVP some more. I haven’t touched Banshee for a while (should probably fix that patch…) but hopefully I’ll be getting back into that stuff soon.
(Ouch, I don’t think the VM will work for OpenGL stuff though…)