April 2008

Created 30th April, 2008 05:48 (UTC), last edited 30th April, 2008 11:18 (UTC)

This month we made the biggest change to our internal systems that I've ever done. We finally switched from being primarily Windows based to being Linux based. That doesn't mean that we've switched from doing Windows development work to Linux work — what it means is that we've done most of the transition from running Windows with some Linux virtual machines to running Linux with some Windows virtual machines.

Part of the motivation is of course wanting to work on a Linux port of FOST.3™, an effort that will now get a bit more impetus behind it. It does however mean some massive changes to how we work and therein lies the good and bad.

We ended up choosing Ubuntu as our distribution and we're now using Hardy Heron (which came out last week) on everything but our main server (which will get it when we do a re-install to clean up from the experimental build it's currently running).

The things I really like about it are:

  1. The font rendering — text looks much better and seems easier to read than on Windows. This is a huge win. When my wife saw the rendering of Thai text she immediately wanted to switch her computer.
  2. The apt-get installation — this really makes getting the machine up, running and useful very simple. We'd build our own repository of installers that we use to build Windows machines, but this is much easier.
  3. Compiz-fusion — ok, it's a gimick, but who cares when it looks that cool?

The things I hate:

  1. Constantly typing passwords — I don't see that the practice of running a non-root user account on Linux is actually much different than running a non-administrator user account on Windows and the constant re-typing of passwords mean that I'm much more inclined to use a weaker password that's easy to type.
  2. Having to use so many user accounts — Windows just seems so much easier to set up with single log in across the network and there aren't problems with laptops, uids and gids and any number of other complications.

The experimental server installation we started with has certainly taught us a few things. I guess I've been doing all sorts of things wrong, but neither Samba nor NFS seem especially reliable or useful for networking. I find this pretty surprising, but I guess it explains why everybody uses rsync instead.

Clearly some of these are problems of expectation and lack of knowledge of Linux compared to Windows, but there are some clear philosophical differences. Windows computers seem to come pre-packaged to work as a team player (I'm thinking especially of domain networking here), whereas on Linux each machine prefers to be its own master. Windows also provides a consistent if unexciting desktop experience. Linux provides a much more exciting desktop which is much better when it's better, but is unfortunately much more frustrating and difficult when it's bad.

As for us, we can live with things as they are for now. The new network configuration isn't ideal and many things work much worse than they did under Windows, but I expect that will improve over time as we learn more about the platform which in any case is a pre-requisite for building reliable software on it.