Posts tagged linux

Linux in the workplace

At the start of September I left my customer services role and started a new position as a web developer. I won’t give the name of either my old or new employer, but I will say that the new role is with a much smaller company, and the part I work for now is an e-commerce store that enjoys a significant degree of independence from the parent company. There are only two developers including myself, and we are solely responsible for the company’s IT infrastructure, and we don’t have the hassle of dealing with legacy applications or infrastructure. We therefore have considerable freedom in terms of what we choose to use to get our work done.

When I first started, I used Windows XP Professional since that was what my work laptop came with, but it soon became obvious that there wasn’t actually anything I specifically needed to be using Windows for. I mostly work on the company’s intranet, which doesn’t really need to be tested in Internet Explorer as we use Firefox internally. For email and calendar, we use Google Apps, which works fine with virtually any email client that supports IMAP, so I was using Thunderbird with the Lightning plugin. When coding I used Netbeans with the jVi plugin for most of my work, with occasional usage of Vim for writing shorter scripts. I used AppServ to provide local versions of Apache, MySQL and PHP, and I used PHPMyAdmin to interact with the database. For version control, I used Subversion. From time to time I need to remote into another machine using VNC, SSH or RDP, for which I used mRemote, but I was confident I could find an equivalent application. Also, we use Ubuntu on most of our servers, so it made a lot of sense from a compatibility point of view to also use it on my own desktop. From time to time, I also found myself writing bash or Perl scripts for systems administration purposes, and since it wasn’t really very practical to do that in Windows when it was going to be running in Ubuntu, I’d used an Ubuntu Server install in Virtualbox to write it, but it was obvious that running Ubuntu as my desktop OS would make more sense.

As Ubuntu 11.10 was due a little over a month after I first started, I decided to hold off making the switch until then so I could start with the most recent version and not have the hassle of upgrading an existing install. I had already downloaded the 64-bit version of Ubuntu 11.10 for my home machines and burned them to a CD, so I brought the CD into work and set up a dual boot so I could revert back to XP if anything went wrong, and also so I could easily copy across any files I needed from the Windows partition.

It took a fair while to get everything I wanted installed, but a lot less time than it would have taken if I’d set up Windows XP from scratch. The hardware all worked fine out of the box, and most of the software I needed was in the repositories. The only thing that I really needed that wasn’t there was Netbeans (which has apparently now been removed from the repositories), but the version in the Ubuntu repositories has never been very up-to-date anyway. Instead I installed the version of Netbeans available on the website, and that has worked fine for me. While there wasn’t a version of mRemote available, I did discover Remmina, which has proven to be an excellent client for SSH, RDP and VNC, to the point that I’ve now stopped using the terminal to connect via SSH in favour of using Remmina instead. Thunderbird does just as good a job with my email and calendar as it does on Windows, and I also have Mutt available. Naturally, it couldn’t be simpler to install a full LAMP stack and PHPMyAdmin either. In fact, the only application that I use much that I couldn’t get a decent version of was MySQL Workbench, and that was only because Oracle haven’t yet released a version for Ubuntu 11.10 (tried the version for 11.04, but it doesn’t seem to work), but I can live without that.

What’s interesting is that despite all the scaremongering I’ve heard over the years about how Linux isn’t ready for the workplace, I’ve as yet had no problems whatsoever. For everything I used in Windows, it was either available on Ubuntu, or there was a viable equivalent, or I could get by fine without it. Granted, the nature of my work means I have little need for the small amount of functionality that Microsoft Office has and LibreOffice doesn’t, and I don’t need to use the kind of ghastly legacy apps written in Visual Basic that most large enterprises commonly use, but I haven’t noticed any significant barriers to my productivity.

In fact, if anything I’m considerably more productive. I know people like to rag on Unity, and I wasn’t happy with it in the netbook edition of Ubuntu 10.10 myself, but in 11.10 it’s really starting to show its promise, and I haven’t had any problems with it. The fact that I know Ubuntu a lot more thoroughly than I do Windows, purely from my own experience at home, means that I can get things done a lot quicker, but also the whole package management system means I’m largely free from the annoyances of opening an application in the morning to be confronted with an update dialogue, quite apart from the fact that very few updates require a restart. I’d go so far as to say that I’ve been more productive using Ubuntu at work than I would have been with either Windows 7 or OS X (and over the last few years I’ve used Windows Vista, Windows 7 and OS X fairly extensively).

I really don’t want this to turn into Yet Another Year of the Linux Desktop blog post, because that’s rather a tired old cliche, but I have absolutely no problems whatsoever getting my work done on Ubuntu. I’ll concede that as a developer I have significant freedom that isn’t often afforded to other people, and running some flavour of Unix makes a lot of sense if you’re a developer working with one of the open-source server-side languages such as PHP or Python (if I were a .NET developer, it would make rather less sense). I’m also lucky to be in a position where I don’t have to worry about legacy apps or IE compatibility too much. Nonetheless, it’s still remarkable how smoothly my migration across to Ubuntu on my work desktop has gone, and the extent to which I find it’s improved my workflow.

Moving away from OS X

I bought my MacBook two years ago, and at first I was cynical about how I would find it compared to Ubuntu, but over time I found myself using it more and more. While I have never considered myself a Mac user (I’ve always thought of myself as a Linux user who owns a Mac), I did grow to appreciate the combination of a solid Unix base with a well thought-out GUI, and it worked out well for me.

Yet now I’m finding myself slowly moving back to Linux. I’m running Slackware 13.1 on an old Inspiron I’ve had since 2004, and my recently purchased Dell Studio 15 dual-boots Windows 7 and Ubuntu. But the one I’m using by far the most is my Mini Inspiron, which dual-boots Windows XP and Ubuntu Netbook Edition, and XP almost never gets used.

Part of the reason is that the Mini itself is just such a handy machine to have around – it’s small enough to be portable, and it’s convenient to use it anywhere at home too, but at the same time it’s big enough to use without any issues (which is more than I can say about my old Eee PC, which has now been passed on to my sister). OK, not everyone likes Dell’s products, but I’ve always found them to be very good value basic computers, and they really have gotten the whole netbook idea and produced an excellent product.

Also, Ubuntu Netbook Edition is really great – the newly revamped user interface works really well on the netbook form factor, and it’s an excellent experience for the most part. Performance is more than acceptable, and most applications start very quickly (Chrome is noticeably faster than on OS X).

But the thing that I’m really starting to appreciate more than anything else is just how much more powerful and flexible it is under the bonnet than OS X. For starters, a package manager like apt-get makes it incredibly easy to install new software. In particular, this is useful for installing useful Python modules, as so far as I’m aware Python doesn’t have anything like Perl’s CPAN or Ruby’s rubygem system. Yes, I guess I could use MacPorts or something like that, but personally I’ve never liked the idea of installing a new package manager yourself rather than using one that’s a fundamental part of the OS.

This also means I have to compile many Python modules from source on OS X. This has taught me an interesting lesson about usability – namely that it’s not an absolute. For many tasks Ubuntu is actually considerably easier to use than OS X, since Synaptic offers users the opportunity to install a lot of software from a GUI that on OS X would need to be compiled from source, although for installation of desktop applications OS X is probably marginally easier.

Also, byobu is an excellent tool – it really helps to make GNU screen more useful and accessible. I have it set up to launch screen in any new terminal sessions and I’m beginning to wonder how I ever coped without it.

Finally, Snow Leopard seems to have broken a lot of things I liked in OS X. I used to use the Terminator terminal emulator in Leopard and it worked well, but in Snow Leopard, Spotlight can’t find it (I think it’s something to do with the Java bridge being deprecated, as Terminator is written in Java), so I had to change to iTerm instead, which I don’t like so much. Snow Leopard also seems to refuse to open browser bookmarks via Spotlight in anything but Safari, which really gets on my nerves as I hate Safari.

I’m not planning to get rid of my MacBook anytime soon, but I am increasingly finding it’s less appropriate to my needs, less productive, and less powerful compared to Ubuntu.

Go to Top