Like I mentioned in my last post, I’ve been experimenting with Linux. Somehow I broke my development environment at work and stopped being able to run our whole unit test suite. Well, technically I could run it, but it took a minimum of 40 minutes and a good quarter of the tests failed, so effectively I couldn’t run the test suite at work. Even at home, where I hadn’t broken my environment, it took a good 18-20 minutes to run the whole thing. The other upside of running it at home was that I could tell the tests were finished running when my laptop stopped running its fans like it was trying to lift off. As an aside, if any of my readers just happen to be experts in running the Play Framework on Windows, particularly the test server used for unit tests, I would really love to hear from you. The test suite runs great on Linux, but it really bothers me not to understand why I couldn’t fix it on Windows.
So far, the switch to Linux has been eerily easy. Because I haven’t done much of anything with Linux since I graduated from Camosun in 2006, I was really worried that getting all three of my monitors at work to actually work would be a terrible experience. What actually happened was that my boss offered to give me the script he uses to get all three of his monitors configured, but by the time he got a cup of coffee and came back I had installed the proprietary drivers for my video card and restarted my window manager and everything just worked.
If you normally run Linux that proprietary drivers bit probably gave you pause. I’m running Linux Mint, which I’m told is a good distro for beginners, particularly if you’re used to Windows. It’s also convenient (as are a number of other low-maintenance distros) if you’ve been running Linux for years but you’re just not interested in screwing around getting things working again every time there’s an update.
The thing that makes Linux Mint so convenient for Windows users is the same thing that makes GNU so unhappy with them. To quote GNU’s explanation of why they don’t endorse other common distros:
Mint does not have a policy against including nonfree software, it includes nonfree binary blobs in drivers packaged with the kernel, and it includes nonfree programs in its repositories. It even includes proprietary codecs.
Totally open source and free software is a nice ideal, but I need my shit to work. My job is to build features, not to screw around trying to get stuff working. As much as Mint may offend free as in freedom software purists, it gives me the “one-click and it works” functionality I’m used to. Think of it as a gateway drug if you need to :)
Once I got all of my monitors working, Mint has been extremely easy to work with. My development environment includes java, eclipse, mongo, redis, and the play framework, all of which were incredibly easy to install and get running. Even as a newbie to Linux, I found mongo’s instructions for installing old versions easy to follow. I did hit a little bit of a snag when I discovered that the environment variables in my .profile need to be exported, but that wasn’t difficult to figure out and it was still less of a hassle than setting up environment variables on Windows.
With everything set up, our entire unit test suite runs in in less than half the time it takes on Windows and Eclipse starts much faster too. So far the minor inconvenience of installing Linux has been far outweighed by being able to run the stuff I need to.
And the inconveniences have been incredibly minor. I needed to install a driver to get all of my monitors working, and I found and installed Gnome Do because I can’t deal without a SlickRun alternative, and I’m still looking for an email/calendar client I really like (right now I’m trying Geary, which is okay but I’m not in love with it), but overall switching to Linux from Windows has largely been a non-issue.
Installing Mint on my laptop (an Alienware 17″ with a GeForce GTX 860M that came with Win 8.1) did kinda suck, to be fair. I had to mess around with my harddrive partitions a bit and it didn’t want to install from the USB drive I set up with UNetbootin so I had to resort to burning a Linux Mint iso on a dvd and using that, but at work I was able to install from the USB key to my desktop no problem. I had my environment mostly set up before our morning meeting, although it did take until after lunch to get all the fiddly little details sorted out. Things are still a little bit weird on my laptop – sometimes my window manager freaks out when I open the lid but it’s Linux on an SSD so it’s not as if a restart takes long.
All in all, I thought switching to Linux was going to be a lot harder and I’m still kind of waiting for the other shoe to drop. Isn’t this supposed to be more of a pain in the ass? But seriously, if you’re running Windows I really do recommend trying Linux.