Thursday, March 10, 2011

Switching from Windows to Linux at work

I've never really found anything useful to post here since I started working for a huge Swiss company, mainly because I've been forced to use Windows XP 32bit which is as boring as it sounds. Disgusted by the productivity penalty which that operating system's default configuration offered, I've since been on a quest to improve the Windows experience to something remotely bearable.

The journey started with complete desktop shells such as LDE(X), LiteStep and GeoShell which at least looked and behaved nicely. Somehow, I couldn't get used to them, either because they crashed too often or because they didn't integrate too well into the rest of the OS. Later on I stumbled upon a tool from Microsoft PowerToys called "Virtual Desktop Manager", a sledgehammer approach at handling multiple desktops, which is - wait for it - spawning a complete desktop shell for each virtual desktop. This, of course, resulted in running out of memory very soon, not to mention that windows couldn't be moved from one desktop to another or any other sophisticated window management a Linux user would expect.
In the end, I've settled with VirtuaWin, which provided basic window management capabilities without relying on too much fundamental customization of the original desktop shell.
Paired with cygwin, putty, puttycyg, zsh, gvim and grepwin I found myself capable of mastering day to day work in an almost acceptable manner, but not before more than a year of testing and trying passed.

When I then changed the project team and didn't have to use Visual Studio regularly anymore, I noticed that I was using tools that were either available in Linux (like NetBeans) or were in fact imitations or ports of UNIX tools. So, what to do? I wanted a Linux desktop, so why not run it in a virtual machine, full screen it and happily start coding and administrating as I used to originally? Then again, why not just install Linux on the workstation and banish Windows into the virtual machine it belongs? I decided for the latter and went off to bootstrap Gentoo onto a physical partition from Windows by using VMware; this way I could still code and fulfill my job requirement while portage compiled my future operating system from scratch. After two weeks I had enough packages installed and configured in order to make the switch and resume work seamlessly.

In order to avoid messing around with the Windows installation, I decided to install grub on a USB stick and boot the new Gentoo partition from there. If corporate rules will one day forbid the use of Linux on a desktop in our company, getting back to the old system is as easy as removing said USB stick and everything will be back to the way it used to be. Windows won't recognize the Linux partition anyway.

VirtualBox does a great job running Visual Studio in seamless mode, that means I'll just have to see the window itself and not the desktop and can handle it almost like a native application. All it takes to suspend and resume the virtual machine is around 20 seconds. Although there are a couple of tutorials out there which cover the steps to move an existing Windows installation into a virtual machine or even boot a physical installation directly from a virtual machine, I decided I'd start over with a minimal installation. After all, I'd need it only for Visual Studio.



Even though I used to be an Enlightenment evangelist, I decided to stick to KDE 4.6 for now, mainly because I had a lot of catching up to do just to see all the new features and bug fixes since 4.0 was released. Accessing Windows shares via samba is as easy as browsing through them with the KDE file manager or mounting them with CIFS.

This turned out to be a stable solution which provides me with an environment I'm comfortable working in while still fitting into the business landscape of our company. Running a 64bit operating system on a machine equipped with 4Gb of RAM is something I won't wanna miss ever again. Work just got a lot more productive and fun.

0 comments: