GPL 3.0

June 30th, 2007

highvoltage has already blogged about it, but I just wanted to remark upon the launch of the GNU GPL version 3.0. Reading those words

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

was quite disturbing. Not in a bad way; it just felt really weird to see the number 3 there. Ever since I’ve been involved with free software, the GPL has been at version 2. I can’t count the number of times I’ve copied those familiar paragraphs into the beginning of a source file, or that familiar COPYING file into a new project.

Other than that, I’m quite happy with the new license. Despite the FUD that has been spread about it, it actually seems perfectly reasonable. The new anti-”tivoisation” and patent licensing clauses are appropriate to the aims of the FSF. True, they inconvenience the “corporate open source” world, which sometimes seems to want to use free software for the convenience while actually avoiding granting users the freedoms we expect. I don’t see this as a problem.

The biggest problem I do see is that GPLv2 and GPLv3 are mutually incompatible. We already have so much trouble with incompatible licenses between different bits of free software with essentially similar licensing goals and it’s irritating that we now have another incompatibility to deal with. (On the other hand, GPLv3 is now compatible with the Apache License, which is an improvement.)

Nexenta does like my laptop

May 31st, 2007

In my previous post I complained about Nexenta not working on my ThinkPad. For the sake of fairness, I should say that that was Alpha 6, and the Alpha 7 which has now been released does in fact install successfully. Having installed it, however, I have removed it again to make space to try out Arch Linux.

Nexenta doesn’t like my laptop

May 7th, 2007

I wanted to try out NexentaOS (aka GNU/Solaris) on my laptop (a Thinkpad T43). But when I tried to install it, it got stuck at the “Detecting available partitions” stage – OK, not stuck, actually, it just seemed to be going round and round in some kind of infinite loop. Anyway, Googling brings me nothing, except for vague hints that it may have something to do with the fact that my hard drive is on a SATA bus. Someone else got OpenSolaris to work on a T43, so I guess I’ll try that out, just as soon as I can download all the CDs.

How to make ThinkPad volume keys work properly in Kubuntu

April 2nd, 2007

I really like Ubuntu. I mean, I really, really like it. But it exhibits one really irritating behaviour on most IBM/Lenovo ThinkPads. You see, ThinkPads (except for some in the R series) have a hardware sound mixer, and the volume control buttons operate the mixer directly in hardware, without any interaction from the operating system. This is unusual; most other laptops have software buttons which the OS must interpret and use to control the software mixer.

Now, on most distributions, I would just run tpb, and it gives a little on-screen display when I press one of the buttons. Ubuntu, however, is different. It has a special hotkeys subsystem which interprets the button presses on all sorts of laptops and passes them to a generic control program. Unfortunately, this system doesn’t know that the ThinkPad interprets the keys on its own; so every time you press a volume key, it gets interpreted in hardware and in software. This is really irritating, because the volume jumps in huge steps every time you press the button. And if you change the volume in software, they get out of sync and it all gets really complicated.

The appropriate behaviour, of course, would be to just display a notification without changing the software mixer’s volume; and I hope the Ubuntu folks will eventually implement this. For the meanwhile, anyway, there is a fix at least for Kubuntu. (Sorry, GNOME users, I don’t know what the equivalent solution is for you).

  1. Install the package kmilo-legacy.
  2. Arrange to have read access to the device /dev/nvram. On Feisty, at least, this required setting up a custom udev rule by creating a file /etc/udev/rules.d/50-user-custom.rules with contents KERNEL=="nvram", MODE="0664" and running chmod 0664 /dev/nvram to fix the permissions without rebooting.
  3. Run kcmshell thinkpad, and then tick the “Run Thinkpad Buttons KMilo Plugin” option and untick the “Change volume in software” option.
  4. Remove the file /usr/share/services/kmilo/kmilo_generic.desktop. (Or move it somewhere else, or rename it to something that doesn’t end in .desktop, or whatever else will stop KDE from seeing it.)
  5. Log out and log in again.
  6. Voila!

One useful side effect is that you will now get on-screen notifications when the other ThinkPad special buttons – like the brightness controls, the ThinkLight button, and so on – are pressed.

Another reason I can’t use Windows

April 2nd, 2007

This is a rant. It’s, hopefully, not a biased Linux fanboy rant; rather, it is a reasonable description of yet another problem with Microsoft Windows. The problem is CPU scheduling. Windows’ CPU scheduler simply can’t cope properly with running CPU-intensive processes concurrently with interactive processes. A few days ago, I was in Windows with iTunes ripping a CD and encoding to AAC, and I was trying to surf the web simultaneously. It was impossible; Internet Explorer was completely unresponsive – it would take several minutes from clicking on the “new tab” button to seeing a new tab appear.

Later that day I was doing the same thing, but in Linux – using Banshee to rip and encode the same CD to AAC (I would use OGG if I didn’t have an iPod). I was also surfing the web with Epiphany, and there was no noticeable slowdown in the web browser. No doubt the ripping/encoding process took a little longer because of the CPU time provided to other processes; but I imagine that most users would rather have their backround tasks take a little longer in return for being able to carry on using the computer while they run.

This is something where Linux really excels: the scheduler is really very good. Windows’ is simply pathetic, and completely unsuited for an interactive system (which doesn’t really make sense, since Windows has never been used as a batch system, as far as I know!).

Ubuntu + widescreen monitor + radeon + AIGLX + beryl

December 17th, 2006

Wohoot! I’ve finally managed to get my 1440×900 widescreen monitor working with the open-source radeon (r300) driver instead of ATi’s proprietary fglrx driver. Turns out I just needed the right “Device” section:

Section "Device"
Identifier "ATI Technologies, Inc. M22 [Radeon Mobility M300]"
Driver "ati"
BusID "PCI:1:0:0"
Option "DDCMode" "true"
Option "MonitorLayout" "LVDS, TMDS"
Option "MergedFB" "true"
Option "MetaModes" "1024x768+1440x900"
EndSection

and, especially, a special modeline for the 1440×900 mode:

Section "Modes"
Identifier "Modes"
Modeline "1024x768" 76.16 1024 1080 1192 1360 768 769 772 800
Modeline "1024x768" 64.11 1024 1080 1184 1344 768 769 772 795
Modeline "1440x900" 100.000 1440 1456 1464 1480 900 916 924 940 -hsync -v
sync
EndSection

and then the right display settings:

Section "Screen"
Identifier "Default Screen"
Device "ATI Technologies, Inc. M22 [Radeon Mobility M300]"
Monitor "Generic Monitor"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1440x900" "1024x768"
Virtual 1440 900
EndSubSection
EndSection

Even better, AIGLX compositing just works with the open-source drivers; so after installing Beryl I have all the fancy window effects without the hassle and complication of running the Xgl server that you have to use with the fglrx drivers. Admittedly, 3D is somewhat slower with the open-source drivers than it was with the ATi drivers, but it’s not as if I use 3D stuff a lot.

Results

December 2nd, 2006

So, I’m going to start this blog with a rather pleasant post: I’ve finally got my results for this year, and they are (if I say so myself) rather good.

These are they:

Course Code Description Mark
CSC2001F Computer Science 2A 88%
CSC2002S Computer Science 2B 89%
CSC2003S Computer Games & Simulation 75%
MAM2000W Mathematics 2 87%
MAM2047H Applied Mathematics 2047 86%
Weighted Average 85.3%

Furthermore, I got on the Dean’s Merit List (which means, essentially, that I have the normal number of course credits, passed all my courses this year, am repeating nothing, and got over 70% average). And I got an FSA (don’t know what it stands for), the largest possible academic merit scholarship, for next year.