While I may rant on occasions about various desktop environments, I’m pretty neutral about them provided they are vaguely suited to use. Now, I’m doing a whole bunch of stuff in Unix-land, and frankly either MacOS or Win7 it complete shit at dealing with this. So, I’ve been looking at how I can do this without hurting my head too much.
My answer is “to the cloud”. Actually no, that’s what everybody else is doing. My real answer is “virtual machines”. Modern desktop systems are for the most part powerful enough to run a VM with a minimum of effort, and you can create/clone/destroy them as often as you want. This is the real joy of dealing with a VM. Right now I want to spin up a dev environment that mirrors our CI view of the world. So, I create a VM, I install stuff. I *clone* the VM and start using the cloned VM. I can completely screw around with it – and if I fuck it up (or when I’m finished with it) I just discard it – and I can grab the template VM and start again.
The other benefit is that I don’t have to worry about installing any form of UI on those VMs – because I can just create an SSH server, and ssh my way into the virtual machine and go to town. I can use the “power” of the graphical display of my native desktop platform (with all the ability to cut and paste things into an email / a log / a whatever) while having a *real* Unix environment to work with.
Now, while the *real* Unix is compelling – the single biggest feature that makes it so desirable to use a VM is the create and destroy model. I can even create a base template with all the packages installed, then use that to clone a couple of nodes and fire them up.
I’ve been using VirtualBox on Windows and VMWare Fusion on MacOS. Some of the reasons for these choices have been the ability to install some of the native tools, which make it easier to do cut and paste – and to share directories between the native and slave environments. Some of this has been due to UI convenience (VBox on Windows I can run a fullscreen Ubuntu for example, but VBox doesn’t let me do that on MacOS – no support)
I think I’m going to standardise on using VirtualBox if I can work out the native directory sharing between the MacOS and Unix environment – but at this stage I may be using 2 different systems.