A productive first day of my holiday

Today was a day for doing computer-related things. I’ve had a brief play with Gnome 3 and Unity (again), and still found both of them getting in my way a lot more than I’m used to. I will persevere though, because I figure that eventually I’ll end up using one or the other, and could actually do with knowing about both.

I also took advantage of having my very fast work laptop with me and built a few virtual machines as part of a personal project that I’ll write about in more detail at some point soon. Suffice to say, using the Macbook Pro was remarkably painless, and it really does offer a viable Unix development environment, especially when working with Virtualbox (which I work with a lot). I’m also 75% towards getting Unity and Gnome 3 running virtually (both have fairly steep graphics requirements), and I’m hopeful I’ll be able to build something that other people could use before the end of my Easter break.

Apart from that I’ve done very little, but have plans for the next two days so should be out and about a bit more.

Life on the bleeding edge

I love new things.

I still get that thrill when I buy a new piece of hardware or download a new piece of software.

I still run the latest version of Ubuntu on my laptop and my netbook, and generally upgrade to the next release whilst it is still in beta.

The only drawback with this is that I occasionally run into the sort of bugs that new software is well known for. It’s been a while since I’ve come across a show-stopper, but there have been occasions where running bleeding edge software has hampered my productivity somewhat.

I’ve also recently come to the revelation that whilst I love new software, I’m also very keen on making my desktop look and feel the same no matter what operating system I’m using. Which is why it’s often very difficult to tell what version of Linux I’m running, as I tend to have a very minimalistic looking desktop that is probably quite close to how it looked in 2005 (and also quite close to how Debian 6 looks today). I also tend to use the same wallpaper on all my computers (regardless of OS) which can also muddy the water a bit.

What I seem to be moving towards now is running the latest released software at home, and dual booting between something stable and something experimental at work (where I do need to keep up with the bleeding edge of whatever I’m working on, which at time of writing is Mac OS X and Ubuntu). This ensures that I have a stable platform to use for email, writing documents etc, but that I also have the latest builds of Ubuntu and Mac OS X running on real hardware so I can iron out any potential support issues early on. I also have at least 10 virtual machines that I use regularly, and I wonder how I ever got by without Virtualbox (actually the computer graveyard in our spare room offers some clues).

What kicked of this train of thought was Ubuntu 11.04, which ships with a new default desktop called Unity. I’ve had a play with it, and don’t hate it as much as I thought I would, although I’m glad I can still make a fresh install look exactly like my existing desktop in under 5 minutes. It does seem like a further step towards the UI of Mac OS X, but as someone who has always preferred that to Windows then I don’t mind that at all. I’m still not sold on dark themes, but as I’ve said many times, these things can be changed easily.

So yes, another version of Ubuntu that I can work with and will upgrade to on my home machine. I might also spend some more time with Unity to see if it’s something that I can one day grow to love. Of course, I also wouldn’t say no to a new Mac once Lion is out, but I do get to use quite powerful Macs at work at present, which does scratch the OS X itch for now.

Setting up a quick and easy virtual web server

I did a fair bit of work on this about a year ago, and then never got round to writing it up. What I was trying to achieve was to have a minimal virtual server running in VirtualBox, which could been seen from the outside world and would appear to all extent and purposes to be a real physical machine.

Start off by creating a new VM. I went with a totally stripped down installation of Ubuntu (from the alternative CD), adding just openssh-server and apache2 to the default install. I called it Ubuntu Minimal (the name will become important later).

Boot up the new VM, and then on the host machine enter the following commands (replacing the name of the VM with what you decided to call yours):

VBoxManage setextradata "Ubuntu Minimal" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 2222
VBoxManage setextradata "Ubuntu Minimal" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22
VBoxManage setextradata "Ubuntu Minimal" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP
VBoxManage setextradata "Ubuntu Minimal" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/apache2/HostPort" 8008
VBoxManage setextradata "Ubuntu Minimal" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/apache2/GuestPort" 80
VBoxManage setextradata "Ubuntu Minimal" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/apache2/Protocol" TCP

Power down the VM, start it up again, and then you should be able to ssh into it on port 2222 and pull up apache’s “it works!” page by browsing to http://localhost:8008. At that point you can install web apps and do whatever else you want with the server.

It doesn’t take up a great deal of memory, so you could probably have a couple of these running on most computers without any obvious performance degradation.

Sensible window sizes on Dell’s version of Ubuntu

I love my Dell Mini, but there are a couple of “features” added by Dell that drive me mad. One of these is called Maximus. It’s an application that tells any window that opens on the desktop to open full-screen. It’s particularly annoying with applications I’ve added myself (like Empathy), as the default applications seem preconfigured to ignore it. I’ve had a poke around in gconf-editor (install it with sudo apt-get install gconf-editor if it doesn’t exist already), and the key that needs editing is called /apps/maximus/exclude_class (see below for details):

Screenshot

It’s basically a list of applications that open with the same window size they closed with rather than open in full-screen.

Double click on the key, and you should get the following dialogue:

Screenshot-Edit Key

Click on the plus button, and add whatever applications you need as shown below:

Screenshot-Add New List Entry

Then click on OK. Next time you open the applications in question they should honour your desired window size.

Upgrading Ubuntu 8.04 to OpenOffice.org 3.1

This guide has all the required info, and worked like a charm on my netbook running 8.04 and my laptop running 9.04 (although it was simpler than the guide suggests in both cases). I’ll hopefully write a more comprehensive guide at some point soon, because I think 3.1 is something that people should consider upgrading to.

I’m really not noticing the fact that I’m running 8.04 on my Dell Mini, largely because I’ve upgraded most of what I use regularly to later versions.

Rules and reward in voluntary communities

I’ve been involved with various voluntary communities and societies over the years, and have always been interested in how they regulate and reward their members without there being any sort of financial reward mechanism.

I’m quite lucky to move in circles where financial reward is not the only motivating factor. Everyone needs to eat, but there is also a strong need to create, to help people, to be seen as being useful and to participate in something greater than one person could create on their own. These things motivate me quite a lot, and actually contribute towards why I like my day job so much. But the problem with everything I’ve mentioned is that is doesn’t work for everyone. Just like in the world of work, people need a number to associate with the contribution they make. This is usually represented by pay, but in the voluntary sector there has to be something else, which is why a lot of organisations develop a system to reward members with “points” that represent their standing in the society, and may also allow them access to other benefits.

I’m currently involved with both the Ubuntu community (in particular the Launchpad bug reporting and support software) and Camarilla UK (a live role-playing society), both of whom use some sort of non-financial reward mechanism. Launchpad has a karma system, where each time you deal with a bug or answer a question you get points (and more points if the end user agrees that you have indeed sorted their problem). Karma is listed on the profile of each member, so you can get a vague idea of how much each person has contributed. People who do a lot get thanked, talked about, and generally revered, which makes people feel like their contribution means something. Camarilla UK has a similar mechanism called Membership Class (MC) where people get points for everything above and beyond just turning up and playing games. MC can be used to have a more powerful starting character on the understanding that if you abuse it then you will lose both the character and some MC. In both systems it is assumed that members with a higher “score” will mentor newer members, and should act in a way befitting of a senior member of a community.

And that is where rules come in.

In the working world it is fairly straightforward. We have job descriptions and codes of conduct, and if we don’t adhere to them then we lose our jobs. In the voluntary sector there is no financial reward, but there still needs to be an expected standard of conduct and behaviour. Both societies I work with have a code of conduct, and both have roles and positions to which people can be appointed or elected to. So in some ways it works exactly like a job; just without the money. The one big difference is that Ubuntu doesn’t force people to sign the Code of Conduct (although there are certain things you can’t do until you’ve signed), whereas you can’t be a member of Camarilla UK without agreeing to abide by a (fairly common sense) set of rules. Both Codes of Conduct are very similar (Be excellent to everyone and don’t cause problems being the main themes), and they act more as a set of guidelines than a set of rules.

It could be said that we don’t need these things, but if you look at the number of societies that have folded due to internal squabbling or people not knowing where they stand then it is quite easy to see that we need rules and we need a way of saying “thank you” to people who give their time and their effort for free. I’ve certainly felt more involved in societies that have these things, but there is one more thing that is needed; great people who instill a sense of community and belonging with everything they contribute. Because let’s face it, one of the reasons we do these things is to meet other like minded people who understand that it is possible to thrive in a society that is not motivated by money.

Using wcid instead of NetworkManager on Ubuntu 8.10

This post came about due to an issue with NetworkManager connecting to our wpa-enterprise authenticated network at work, but demonstrates that there is more than one choice when it comes to almost everything on Linux. It’s not too fiddly, and I’ll hopefully have a rebuild of Ubuntu incorporating these changes within 24 hours.

First off, you need to add a line to your sources list, by issuing the following command:

sudo nano /etc/apt/sources.list

Add the following line at the bottom of the file:

deb http://apt.wicd.net intrepid extras

Then press ctrl+o to save and then ctrl+x to quit and then issue the following command:

sudo apt-get update && sudo apt-get install wcid

This will download wcid (a network management tool that doesn’t suffer issues connecting to enterprise level networks), uninstall NetworkManager and then install wcid. At some point in this process you will lose network connectivity, but this is fine.

To make wcid start at boot, go to System > Preferences > Sessions and add a new item to startup. The path for the application is:

/opt/wicd/tray.py

Reboot, and you should find that wcid adds an applet similar to nm-applet which will allow you to view available networks, and connect and configure them. I’ve tested this with my EeePC 701 and an Acer Aspire One (both running Ubuntu 8.10), and it is known to work (with a bit of tweaking) on Fedora 10 as well.

How to make a totally up to date bootable USB version of Ubuntu

I’ve written these instructions (371.6 KB PDF) for work, but think they might be useful in all sorts of other situations.

Basically it boils down to:

  1. Use Ubuntu Customization Kit to update all the packages in Ubuntu and add/remove packages as required.
  2. Use the USB creating tool in Ubuntu 8.10 to transfer your newly created iso to USB.

On my USB I’ve also added several portable apps, so as to ensure I’ve got everything I need for remote support of misbehaving Windows PCs.

Of course, you could just make the USB version first and then customise it using the free space on the USB, but this method allows you to remove software before transfering it to USB, which makes it useful for smaller devices (and for the sort of customised image you might want to install to a netbook).

Thoughts on KDE4

I’ve made an effort over the Christmas break to try as many new (or long-unused) software packages. This is party to ensure that I stay up to date (I can just about justify not knowing the inner workings of Vista, but not being able to configure Kmail is just embarrassing), but also because I will soon be buying a new main computer, and am still undecided as to what OS to run on it.

My usual working environment revolves around the Gnome Desktop Environment, running on either Ubuntu or Mandriva. I’m also a regular user of Mac OS X (both Tiger and Leopard), as well as Windows XP which I have to use for a couple of tasks at work. I’ve not used KDE regularly for over 4 years, and have not used it for more than 5 minutes since KDE4 came out. To rectify this shortcoming, I’ve now set up two test environments:

  1. A fresh install of Mandriva One 2009 (KDE version) on a 6 year old HP laptop which has a flaky wireless card and a broken trackpad (but which is surprisingly fast otherwise).
  2. My usual Ubuntu laptop with the kubuntu-desktop metapackage installed on top of what is already there.

The way KDE4 is set up varies a lot between the two distros, so some of my observations apply to one or the other:

I like the overall sense of minimalism. Previously KDE seemed cluttered, and both distros have done away with the clutter to a greater or lesser degree. Kubuntu have made no preconceptions about what users might want on the taskbar, choosing instead to just have a menu icon and a very useful file management widgit. Mandriva have put shortcuts to configuring desktop and computer (both very useful), as well as a “show desktop” icon and a shortcut to Firefox. All of these work, but as with Gnome I find myself wanting to add my own frequently used applications (in Gnome I always add Firefox, Thunderbird and Gnome Terminal to the top taskbar as soon as I do a fresh install).

Mandriva have chosen to go with a KDE3 style menu, while Kubuntu go with the KDE4 default. Both are fairly instinctive, but I had a little trouble finding Dolphin on Mandriva, and was a little baffled that Kubuntu doesn’t seem to have decided whether Dolphin or Konqueror should be used as a file manager (which is a shame because I’m really taken with Dolphin).

Configuring Kmail was very different in each distro, which confused me, but both were at least as simple as Evolution, and I had no problem setting up my email, and performing a few basic tasks.

The look and feel of both distros is excellent, and they certainly look prettier than anything I’m running at present. I can certainly make Gnome look this good, but out-of-the box KDE is more aesthetically appealing.

My only real gripe is with Plasma; both the annoying Folder View that comes as default, and also the fact that adding or removing widgits can cause random crashes. It’s useful, but just doesn’t seem finished to me.

I think KDE4 has the potential to be really good in about 6 months time, and I’d certainly recommend it to anyone coming to Linux from Windows. I also think both Mandriva and Kubuntu have taken KDE in interesting (but very different) directions, and I find myself wanting to see how other distros have implemented it now.