(But so does PyBlosxom for using file timestamps.)
(But so does PyBlosxom for using file timestamps.)


No man is an island; objectives cannot be set in isolation from the reality of our situation. One standard technique for analysing where we are is the SWOT analysis: considering Strengths, Weaknesses, Opportunities and Threats. Strengths and Weaknesses deal with aspects internal to your organization; Opportunities and Threats are concerned with environmental factors over which you have no direct control. Once these are identified, you can act to mitigate the negative points.
One particular threat is that I'm visiting various people each weekend for the foreseeable future - tonight I'm with my brother at Badger Farm near Winchester, so the results of my SWOT analysis will wait until tomorrow. :)
So, I decided to start off gently. The advantage of this recipe is that... I already knew how to make it. Awesome.
Easy peasy. Heat some oil in a saucepan, add the onions and stir until they're more or less transparent (supposedly, although I'm sure I just make them turn brown). And add the garlic shortly afterwards.
When you get bored of watching onion cook, add the chopped tomatoes and herbs. Thus begins phase 2, involving bubbling rather than sizzling.
After about ten minutes of that, boil water in a second pan. Cook the pasta according to the instructions on the packet. Once it is al dente, the pasta sauce will be about ready as well. Drain the pasta and stir into the pasta sauce. Serve.
And lo, it was good. I think the browning of the onion was due to too high a heat in the initial stages; it's better taken slow.
The total cost of the sauce was somewhere less than £1; this compares favourably with ready-made sauce. In fact, this was a ridiculously economical meal.
At the same time as doing this, I set up a new housemate with wireless internet access, and got a beer and £5 in return. Bizarre, but he insisted. Then I had to fix his DNS settings, which someone at his previous accomodation at hardcoded to something weird... and wrong. This was the first time I'd ever had to tackle Windows XP's network settings in Hungarian.
Apparently today was Document Freedom Day. Next year we shall have to actually celebrate it.
At work, one of the company's key objectives is to promote open standards like ODF. We are lucky to have an OpenOffice.org developer in-house (a rare commodity, especially outside of Sun or Novell), and I've had the opportunity to work on supporting openoffice.org from time to time. The biggest difficulty is the sheer size - the built source tree needs 15GB, so it's pretty difficult to search through, for instance.
Then there's the long compile times; if you're writing a patch for OO.o, it is important to get your debug cycle as short as possible. If you can limit the patch to just one module, then that can be rebuilt individually... and then you can symlink the relevant libraries from your installed copy to point directly into your build tree. If it sounds ugly, that's because it is - but you can get the compile/testing phase down to a minute or so.
My most memorable encounter with OO.o so far has been tracking down an issue with hidden text - it turns out OO.o 2.x writes the opposite value to the ODF standard for the hidden text property. A conversion routine had been put into OO.o 3.0 to import documents written by 2.x correctly, but passing documents from 3.x (or AbiWord, or KOffice) users to OO.o 2.x users is prone to trouble. Last I checked, we were trying to persuade Sun that a 2.4.3 release would be a good idea.
My HP dx2250 desktop suddenly refused to turn on last Tuesday; it just beeped loudly at me when the power button was pressed. It took me until today to look at it; downloading the troubleshooting guide, I could translate the pattern of flashes of the LEDs as signalling faulty RAM. Phew.
I must say I was surprised - I have never had RAM die on me before. At least it wasn't a DIMM module I had bought myself... and it could be worse, I was almost considering replacing the machine. (I wonder how many people do.) For now, I'm down to 1GB RAM, unless I can find something stashed away somewhere.
Spurred on by the accusation that my expertise is limited to computer-related topics, I have resolved to learn to cook. This in fact will solve more than one problem: what to do with my copious free time given that I am organized, and give me more confidence that I am not wasting my money on ready meals each week.
Obviously I am looking to transfer skills from existing domains of knowledge to this endeavour. (From open source development to... open sauce development?) My first insight from my project management experience is that this project really needs some SMART goals to work towards. Hmm... okay, first objective:
By 30th April 2009, I want to have documented a repertoire of at least 10 simple main course recipes, where I have cooked each dish at least once.
Tomorrow: SWOT analysis.
I got distracted from cookery by a minor health issue in April, so didn't meet my original target. Still, I managed four recipes, which is better than none; and I've managed to improve my omelette technique to the point where it is actually semicircular rather than sausage-shaped when it rolls onto the plate. So let's reschedule for ten by the end of May.
It's odd, I don't feel too worried by this melanoma; for one thing, the chances of dying seem relatively small, now that it's been found. I have suffered from depression for one reason or another over the last ten years, and got over that; cancer just pales into insignificance. It's prompted some thinking about who I am, and where I'm going, but I was prone to that sort of thing already.
Meanwhile, I've joined the local gym. This seems to be a difficult process; you need to see a customer advisor, and they don't seem to work there in the evenings. When I left my name in the book, I didn't get a phone call. So several months later, I just went down there on a Saturday afternoon, which was much more productive. I haven't mentioned to them yet that I'm expecting a huge amount of tissue to be taken from my left arm in the next couple of weeks... we'll see how that affects my "fitness journey".
I think I need to eat less chocolate.
Anyway, having done my 30 minutes cardiovascular exercise this afternoon, I returned home for a meal. And so to the real point of this blog entry: microwaving baked potato makes it really underwhelming. I should have thrown it in the oven before I went out.
On the plus side, the total cooking/preparation time was 15 minutes; I served it with tuna and sweetcorn as filling, and a pile of lettuce, tomato, yellow pepper and olives on the side, with a vinaigrette. I think I met my five fruit and veg portions in one sitting.
I've been watching Professor Regan's... on BBC iPlayer, which is awesome; my favourite bit must have been the placebo "diet pill" in the first episode, which led to amazing weight loss when combined with a healthy diet and exercise! As I write this, there are 11 days left to watch the whole series. Interesting factlet this week: encouraging children to eat breakfast of any kind (even sugar-laden Frosties) is good for their long-term health. And there's apparently no proven link between sugar and obesity; I guess fat is the real problem. (So long as you avoid tooth decay.)
My brother visited last weekend, which was nice. For those who don't know Michael, he's like a younger, more stylish version of myself. He's started a blog, and it is instantly younger and more stylish than mine. It would be even better if he replaced the Wordpress example text. :)
On Sunday I cooked roast chicken, which was a first. Not just chicken though - M&S chicken, with M&S vegetables and M&S roast potatoes. Bought with an M&S staff discount.
I've been experimenting with the python bindings to libnotify - the interface to the cross-platform notification daemon. The API is quite simple (although there's more when you start adding buttons and things to the notifications):
import pynotify
import sys
if not pynotify.init("Test Notification"):
sys.exit(1)
n = pynotify.Notification("Test", "testing")
if not n.show():
print "Failed to send notification"
Then I put these notifications into a simple XMPP bot, so that I could send it Jabber messages and they would get displayed as a notice.
I'm not sure where I'm going with this. :)
One problem I have with e.g. Facebook is that it requires me to go to their website and check a page to see what's been happening to my friends. Similarly BBC News.
One traditional answer to the news problem is the use of RSS (and similar) feeds in a reader such as liferea. But for information that comes from the Facebook API, Twitter, XMPP or email, I'll have to use a different app. Why should the user interface depend on the underlying technology?
I found 'yarssr' while thinking about this - it's an RSS reader in the form of a notification area icon. I like the way it tries to integrate with the desktop more than, say, liferea does - but I would prefer a list of new entries when I click on the icon rather than a list of feeds to hunt through. I suppose I could change it, it's in Perl. :)
Something like a drop-down notification icon list of recent 'events', with pluggable sources of information and libnotify notifications, might make an interesting diversion.
Paul Battley discovered that the proceedings of the European Parliament are recorded in the speaker's original language. Awesome, I can get some language practice in.
To provide context for the following excerpt, Ashley Mote was formerly a UKIP MEP, but got kicked out of the party after a conviction for benefit fraud.
President Gorbachev was right: the EU is the old Soviet Union dressed in Western clothes. You will one day realise that you cannot be masters in someone else’s house.Ashley Mote (NI ). - Mr President, over the last five years I have watched in horror the EU's endless scandalous institutionalised looting of taxpayers' money. I watched in horror an already overcrowded UK deluged by hundreds and thousands of uninvited foreign workers who arrive for their benefit and claim our welfare. I watched in close-up a legislative system that permits anonymous bureaucrats to generate so-called law without any regard for the damage they do to the British economy and its businesses. I watched in close-up -
(Interjection from the floor: 'From Her Majesty's prison!')
- this expensive, ineffectual talking shop of a parliament, masquerading as an elaborate illusion of accountable democracy, a monstrous deceit on the electors who sent us here.
Der Präsident. - Sie reden in einem freien Parlament. In einem unfreien Parlament hätten Sie diese Rede gar nicht halten können!
(Beifall)
Or roughly: "You are speaking in a free parliament. In an unfree parliament you would not have been able to hold this speech!" Even the applause was German.
On Wednesday I was told that a mole that was removed from my left forearm about a month ago was in fact a melanoma. Melanoma is a form of skin cancer - a relatively uncommon and dangerous type, but fortunately curable if picked up sufficiently early.
I don't have all the details yet; but the impression I get is that my mole didn't look like the classic pictures on the internet - neither my GP nor the dermatologist instantly recognised it as malignant. I need to have a wider border of tissue removed from my arm, now that it has been diagnosed, which is mildly annoying after having spent a month healing slowly.
I'm not sure how this is going to affect me. Mostly I just don't have any information; I try not to spend too much time contemplating my own mortality.
No, this is not an exotic seafood/glass recipe.
Yesterday (well, Tuesday evening) I was sent down to Poole to set up a caching proxy server for a customer... on Windows. Working with a Microsoft operating system is a little bit unusual in my open source support job, but hey, it pays the bills.
It turned out to be surprisingly easy (or rather, my preparation had been sufficiently thorough). We'd budgeted the entire day to set things up - but I had Squid running by 9:20am, and was authenticating against Active Directory by 10am (with a choice of methods; single-sign on with NTLM or prompting the user for credentials). So we had coffee. By 11am there was log rotation and we had tweaked the config file, and by 12pm there were HTML reports of all the accesses (which was originally going to be the optional bonus if-we-had-time feature). So we had some more coffee, and I caught an early train home.
We should add Windows to our squid commercial support page. I wonder how many more potential enterprise business customers there are - Squid is of course an excellent replacement for Microsoft ISA Server.
I wanted to improve my night life, so I joined the Rugby & District Astronomical Society.
This evening there was a talk on Norman Lockyer by Mike Frost - a topic of particular interest to me, because our computer naming scheme at work involves famous historical figures from Rugby.
I was lazy with cooking over the weekend - on Friday I had leftover lasagne for lunch, so just cheese and crackers in the evening. On Saturday I was down in Hastings all day, so didn't cook. On Sunday evening I had frozen pizza (ew), but used the 18 minutes while it cooked to boil an egg, chop some lettuce, and prepare a basic vinaigrette. (1tsp Dijon mustard, 1tbsp white wine vinegar, 3tbsp olive oil, salt and pepper, mix.)
This evening - mushroom risotto.
After chopping up the onions, mushrooms and garlic, fry them in olive oil in a large enough pan. (The garlic can go in last for 30s because it's prone to burning and so on.) Add the white wine and the rice. Keep stirring.
Once all the liquid has been absorbed, add one ladleful of the hot vegetable stock. Repeat that last sentence for about 20-30 minutes, until the rice is cooked.
It worked! But there was too much for me to eat at one sitting, even though I was using minimum quantities of rice and stock. Could have been served with grated Parmesan cheese.
This evening I made lasagne, loosely following a recipe from Gordon Ramsay. I'm not going to type it out, partly because I didn't follow it to the letter; I still don't have fancy stuff like oregano or bay leaves.
My cheese sauce needs work, but the end result was edible, surprisingly. There's half of it left for lunch tomorrow. Some bits of the lasagne sheets seemed like they were still hard, which was probably the result of not quite being covered in sauce or something. I need to invest in a set of scales before I can work with actual quantities.
I had a minor disaster while washing up, involving broken glass and a medium-sized olive oil slick... which is actually the second time I've knocked a glass bottle off that shelf. I think a reorganization of my cupboards is in order.
The new kernel mode setting feature in Linux 2.6.29 is relatively easy to enable, although at this point there does not seem to be much in the way of documentation.
You will need:
First, install the new kernel and the experimental x.org packages. Add 'i915 modeset=1' to /etc/modules. Ignore instructions elsewhere on the web about adding stuff to kernel boot lines - I reckon these have no effect, unless they were/are necessary for Fedora. You can either reboot, or stop X and reload i915 with the right option.
Now enjoy the fast VT switching and nice framebuffer console for five minutes before you notice that the experimental X.org packages broke your keyboard layout!
I haven't taken much time on cooking for the past couple of nights. Last night I just used a sweet-and-sour sauce from a jar, and had chicken with quick-cook rice. I don't think that counts as cooking - more like a ready meal by stealth. As a concession, I bought whole chicken breast fillets and diced them myself. It seems to help if you use a sharp knife.
This evening I cooked an omelette (with three eggs - there's a standing joke in the family concerning my brother once having cooked a one-egg omelette) and frozen veg, so I must have been done in under five minutes. I'll write something if I find a variation that's more eggciting...
Also this evening, I looked at Debian's status in relation to the Linux Standard Base. No one seems to certify Debian stable releases, and no one is running nightly LSB tests on Debian. I wonder if I can get that changed.
I used to have a pile of paper, with notes/letters/junk going back several years. Piles like this have been sitting around in various corners of my room for as long as I remember.
Now it's filed away - all in square-cut beige folders with labels on, in alphabetical order in a metal box. (Most of it got recycled.)
I'm not sure what this means.
Is "organization" an end in itself, or a means to an end? And what end?
I spend (and have spent) a lot of time thinking. I also spent a lot of time reading. Every so often I reach conclusions... sometimes I remember them, sometimes not. A lot of them just got incorporated into my general world-view, I suppose. A long time ago it was thoughts about philosophy... these days I suppose it's mainly psychology.
I've been thinking a lot about cognitive dissonance - I think there have been differences between where I am and how I think of myself. People tend to act to reduce dissonance; it is a motivator, which I find very interesting - for a given task, it does not seem to fit neatly into either intrinsic or extrinsic motivation - it comes from how we feel about ourselves, not the task itself.
Is popularity the measure of success? Yes and no.
In a discussion this evening, an assertion was made that RHEL was more widely used than Debian. This may or may not be true. But let's make a loose comparison to the theory of evolution, in this Darwin anniversary year - compare programs to species perhaps, program versions to individuals, and lines of code to genes. A particular distribution version is equivalent to a kin group of individuals. This analogy is likely to work because free software development mirrors natural selection closely, albeit driven by developer interaction.
Selection occurs at many levels; developers choose one patch over another, distributors might choose one version of a program over another, and users might choose one distribution over another.
The patches which produce positive effects for their programs are more likely to get passed on to the next version of the program - fixing a bug is the obvious example of this. This bug fix will then slowly (or quickly) spread until all members of the species have this patch.
But the code does not necessarily have to benefit the species for which it was written. There is plenty of bad code that is successful at getting itself copied. Or consider shared libraries: the gecko rendering engine allowed major competitors to the original Mozilla Suite to be created, in the form of Firefox, SeaMonkey, Camino, Epiphany.
By the time we get up to the distribution level, popularity is irrelevant. Humans share around 96% of their DNA with chimpanzees; how much code do Debian and RHEL share? Are these distributions so separate? Of far more significance is the competition between free and non-free software.
Let us be careful to ensure free flow of genes between separate kin groups. I received a bug report this evening from a Fedora user whose problem was fixed a long time ago in Debian. By promoting cross-distro, er, intercourse, we can improve free software for everyone, and compete more effectively at the level of the operating system.
It's the end of FOSDEM - it's been great. More on that later.
Meanwhile, I'm sitting in the hotel lobby at 11:30pm, and some random businessman starts talking on the phone to a colleague about his problems opening a ".docx" file. Apparently the converter won't install on his Mac, so he might not be able to get this work done until Thursday.
I happen to be wearing a bright blue OO.o 3.0 T-shirt today. So... I walked over and suggested he try it. His colleague on the other end of the phone was a technical guy, and had heard of it.
It took a 20 minute download or so, but Microsoft OpenXML works out of the box with OpenOffice.org 3.x - and apparently looks nicer on Mac OS X than it used to. Another satisfied customer!
My mum uses a Dell laptop running Ubuntu. Each time I visit I get to fix any problems that have cropped up. To be fair, there weren't that many so far.
I have been taking a closer look at the various security patches Debian applies to GNU Enscript this morning - I believe there may be similar problems lurking in other parts of the codebase, so my plan is to fix these myself this week. This avoids various inconvenient questions about copyright assignment. For the shorter patches this isn't a problem, of course - and there's generally more than one way to fix buffer overflows anyway. There's one longer patch where shell escapes are prevented - that might need more study.
I'm thinking of framing this:
I am not having a good year.
Traditionally, when annoyed, I make extravagant purchases that I may or may not regret later. In this new economic climate, however, I have found a substitute outlet.
Arriving soon at a CPAN mirror near you: Net::NationalRail::LiveDepartureBoards 0.01 - an interface to a SOAP API from ATOC. Given a station code, you can obtain the next few arrivals/departures/both.
This is in hacky Perl, but the module should be easy to translate to other languages which have SOAP libraries.
It turns out to be possible to persuade emacs and epiphany to play nicely together.
Sometimes Emacs presents you with clickable hyperlinks (in info documentation, perhaps).
To customize the browser in which these are opened, I am using the following in .emacs:
(setq browse-url-browser-function 'browse-url-generic
browse-url-generic-program "gnome-open")
There are also specific epiphany-related functions, but I'm using the default gnome program for the moment. This can be configured via the default applications dialog.
When you download a text file, or use 'View > Page Source' in the menus, epiphany uses the gnome desktop's handler for the 'text/plain' mime type.
The simplest way of configuring this is to run nautilus, right-click on a text file and choose 'Properties'. Then the 'Open With' tab lets you select an application. Emacs should already be listed, or you can add it if not.
I have a week's break from work.
Following up on Saturday's post and various other blog entries about bash.
While arguing with Anton about bash being slow, I discovered that /etc/bash_completion was sourced twice when starting a shell on my laptop; once in /etc/bash.bashrc, and once in ~/.bashrc. This is Debian bug #430501 - the suggestion there is that /etc/skel/.bashrc should change to check whether /etc/bash_completion had already been included. So, that saves 0.27 seconds.
tim@regulus:~$ time bash -i -c exit exit real 0m0.270s user 0m0.240s sys 0m0.032s
This is still ages when compared to zsh. A solution is proposed in Debian bug #467231 - the functions could be loaded dynamically when they are first used, instead of all at once. I may try this next.
One sandwich and cup of tea later: it works, and bash now beats zsh's time.
tim@regulus:~$ time bash -i -c exit exit real 0m0.047s user 0m0.036s sys 0m0.004s
This weekend, I visited Derby, and updated the f-spot packaging in the Debian pkg-cli-apps repository. It's now at version 0.4.2, but this hasn't fixed the complicated extensions problems - they are Mono.Addins bugs, so we'll need to update libmono-addins0.2-cil to the version the f-spot devs claim fixes everything.
Apart from that, I've been looking at my list of potential pet projects, and thinking about which of them I want to prioritize over the next year or so. I reckon I can organize them around the forthcoming Debian release - aiming to fix as many bugs as possible in time for lenny helps with rating the relative priority of things. It's probably not a coincidence that the more important bits of development I want to get done happen to tie in to Debian release goals. So I suppose now is not the time to start too many new projects. :)
The lenny release will also be a good time to step back and work out where I want to take things next. I volunteered to help with f-spot packaging because it was languishing with an obsolete version in Debian, and a slew of open bugs. It still has too many open bugs, but hopefully many can be be fixed before lenny. Still, after that, I suspect life is too short to be worrying about bundled Mono libraries.
Yesterday evening, I finally found the patch for a bug in mono-addins that had been affecting f-spot extensions for a while - rebuilding the f-spot Debian package with no changes and reinstalling would cause the built-in extensions to disappear. In the end, the patch was just two lines long, and had been applied in mono-addins SVN (and in the copy of mono-addins that f-spot bundles). One less RC bug for lenny.
With this out of the way, we uploaded f-spot 0.4.2-1 to unstable. This fixed another RC bug (two merged ones) and a handful of other problems. It's taken a few weeks since the upstream 0.4.2 release to get this pushed out, mainly because I knew upstream were expecting all the extensions bugs to be fixed in this release. Still, we got there in the end; there are still far too many known bugs in f-spot, but I think we will get a fair chunk sorted out before the release. In a couple of weeks, f-spot 0.4.3 should be upon us, and we have to decide whether it's stable enough to be uploaded to unstable. I need to forward some bugs and patches upstream before then. There's a known crash to fix in the next upload (but not too serious, relatively speaking) - but I rather want to let 0.4.2-1 migrate to testing, so perhaps we shall leave f-spot alone for a while.
So, over Easter, I have some time for some other projects.
So, a benchmark.
tim@regulus:~$ time zsh -i -c exit real 0m0.064s user 0m0.048s sys 0m0.008s
tim@regulus:~$ time bash -i -c exit exit real 0m0.540s user 0m0.436s sys 0m0.100s
Both shells had their respective completion systems enabled. (Without them turned on, bash actually beats zsh... but the times are small enough that it doesn't matter.) These times are with a warm disk cache - the first time through both shells were slower. And the numbers stay roughly the same when repeating.
Beginning last night, I reinstalled my laptop. Normally, if it were just to clean up some packages, I wouldn't do this - the aim was more to try out removing the disk encryption that I was using, and the effect has been quite dramatic.
I worked out a while ago that the device-mapper encryption was slowing down disk access - with it gone, boot times are much shorter (and I don't have to type in a LUKS passphrase). GNOME loads a lot faster. Additionally, bash starts a lot quicker than it did. I suspect loading the bash completion routines takes quite a bit of disk access. Update: No, I just didn't have the bash-completion package installed. Bash is still slow. GNOME is still faster, though... for now.
So, I will probably keep my new install. I need to investigate encrypting a USB device and integrating that nicely with GNOME and gpg.
FOSDEM was interesting, this year - I knew a lot more people than last time. Going to talks was a pain, because everywhere was so crowded; but the best bits are outside the talks, anyway.
I eventually managed to sign my keys from the keysigning, and even caught up with some left over from last year. The next day I fell horribly ill - I was recovering for the whole of last weekend.
I thought about Mono a bit. Miguel wasn't there this year, because last year he gave a talk or two about proprietary software that wouldn't even run on GNU/Linux. During a conversation, someone pointed out that Mono is designed to be binary-compatible with .NET executables compiled for Windows, and so its main aim is simply to run non-free software. Now, of course, there are some reasonable free apps written in C#; and there is an argument that GNOME needs rapid-development tools like Mono. But with the fun I've been having lately with f-spot, I'm not so sure that their community has the right idea about reuse of code and so on - they just keep bundling (and sometimes modifying) the source to libraries in their tarballs. Only this evening, I've found that f-spot have modified their copy of the FlickrNet library - it's not even grabbing a more recent upstream version, it's just their own code. Sure, rapid development - but at what cost?
So I'm not feeling keen on Mono at the moment. The trouble is, I don't really want to be associated with the trolls at boycottnovell, etc. I don't buy the conspiracy theories about submarine patents and so on - if you use Gtk# rather than the Windows.Forms implementation then it should all be fairly safe. Perhaps people troll because it's easier than coding?
At the request of my brother, looked at Pidgin's mail notification dialog this evening. The Ubuntu package takes ages to build, unfortunately. The reported bug was that the 'Open Mail' button didn't work - looking at it, it's possible to select the mail you want to open on some services now, but by default nothing is selected. There's some code to desensitize the button in that case, but the initial state isn't set. My preferred patch would be to use GTK_SELECTION_BROWSE and some code to ensure that an email is always selected... I hacked together something that works for MSN, at least. It's short enough that it might not have too many serious bugs.
I'm still not a big fan of Pidgin's UI design choices, I suppose. Perhaps one day IM will be built into the desktop and I won't have to worry.
The bank holiday formed a welcome break after a hard week at work writing and fixing a Linux kernel module. On Friday afternoon version 0.4.3.1-1 of f-spot was uploaded to Debian, and then yesterday a new version of postgresql-autodoc. We've found a release-critical bug in f-spot already, of course.
Most of the rest of my time was spent hacking on Angel, a project which we haven't formally announced yet. :) It still needs some refactoring before a public release is possible - there are a few bugs left to fix. Still, I'm hoping that we'll get there fairly soon.
<rant>
The fire alarms have regularly been going off at 2am in this house - when I
came home today they had been disabled by the landlord. I've also had a sore
throat, and at work Chris and Gabi have had another child, so I'm on my own
for two weeks. I'm also forced to remember my German all day... and most of
the code I write is woefully inelegant. And it's too sunny. Why can't it rain
like last weekend?
</rant>
Still, apart from that, life's good.
Lamby reckoned I wouldn't be able to resist using the DebConf8 blog sticker thing. And he was right.
My horrendously expensive plane tickets arrived last week.
Yesterday, I was at the first ever PostgreSQL UK conference, in Birmingham. The venue was familiar from various events last year, such as GUADEC and PyCon UK - the Conservatoire is becoming quite established as a relatively cheap, central UK venue for technical events.
I gave a talk about monitoring PostgreSQL databases on behalf of credativ. (Slides for all the talks are available on the PostgreSQL wiki.) I got a reasonable level of comments and feedback afterwards, and perhaps those will help with the development of some better monitoring solutions. The act of preparing the talk also let me discover a few different monitoring tools that look useful - perhaps I'll get the chance to look at them at some point.
As for the conference itself, there were some interesting talks about PostGIS, full text searching, and analysis of EXPLAIN output. I think it was worth attending just for those; but we also got to meet a bit more of the PostgreSQL developer community in the UK. We also got in on the beginnings of the new UK user group - hopefully they will be organising more meetings over the coming months.
A while ago, I mused on how network latency affects my email usage - one other cause of slowness in my mail client has been GPG key verification. Occasionally, when Evolution wants to check a signature, gpg takes 30 seconds or more to run, and the text of the message is not displayed until the end.
The reason gpg runs so slowly is that it sometimes checks its trust database to make sure it's up to date. However, it does not make sense to run this at the time you are trying to verify an email - it will just slow you down. Fortunately, this is very easy to fix - add 'no-auto-check-trustdb' to gnupg.conf, and set up a nightly cronjob to run 'gpg --batch --check-trustdb'. Ensure that you have 'anacron' installed if your system is not always on.
I have been trying a few methods for solving the network lag problems with email, but haven't reached a conclusion just yet.
June 30 - "That's the last day when large computer makers — the Dells, HPs and Lenovos of the world — will be allowed to preinstall Windows XP on new PCs." -- Computerworld story
What caught my eye about this was the fact that OEM manufacturers actually won't be allowed to continue installing XP. This seems quite odd to someone used to distributions of GNU/Linux - sure, security support from the distribution might end, and you might well be hard-pushed to find someone to support your seven year-old software, but if your customers want the older, faster version of the operating system, you will always be allowed to sell it.
I spent my weekend in Cambridge at the Debian bug squashing party. It was good seeing people again. I even squashed a bug, but then spent Saturday forwarding non-RC bugs upstream, and kernel hacking today. :)
Walked back to Cambridge station - about 40 minutes, along the river for part of the way, and it was a nice evening. Living where I do, I don't walk as much as I used to... perhaps I should do more at weekends.
It didn't snow very much in Cambridge. Back in Rugby there was an inch or so on the cars, and it was threatening to start again as I walked home. Hopefully it will all have cleared by tomorrow.
Last night, I was granted permission to edit/close bugs on GNOME's bugzilla. Because of the logarithmic way in which the points system works, I now have three more bugzilla points than I did this morning. :)
Just over a year ago, Greg Kroah-Hartman announced the Linux Driver Project - companies could get Linux drivers written for their hardware free of charge, if they provided specifications (possibly under NDA). There is now an April 2008 Status Report for the project - they are short of companies and hardware to write drivers for. This is probably because Linux hardware support is excellent in all but a few specific areas - there is some interesting discussion of the efforts being made to support wireless devices and graphics cards later on in the thread. (If you're looking to get involved with Linux kernel development, cleaning up greg's LDP git tree would be a good place to start.)
Speaking of graphics drivers, VIA appears to be following Intel and ATI in releasing the necessary documentation to write good drivers for its chipsets. Suddenly the future is looking quite bright for Linux hardware support - almost all hardware will already work out of the box, and things are only improving over the next couple of years.
A day or two ago, I donated to the atheist bus campaign. They have now nearly raised £100k, which is quite impressive.
To follow up, I have joined the BHA. I have asked them about starting a Humanist group in Rugby - as if I have surplus free time. I realise religion (or a lack thereof) can be a controversial issue, but I have considered and respect the BHA's position on these matters.
I have recently been summoned for jury service. I was interested to learn that I can choose to "affirm" rather than swear an oath on a holy book of my choice. I think this will be much more meaningful for me.
I got a concerned phone call from my mother following my previous blog post, asking whether I owe Debian money. Fortunately, I believe I am fully paid up for all the T-shirts and BBQs that Steve McIntyre has given me.
I have decided that the interest payment on my outstanding debt to Debian must be made in the form of RC bug fixes. I suck at RC bug fixes. They are generally boring, but of great value to the community. It is because of all the lame people like me not fixing RC bugs that Debian doesn't release on time, ever. Mea culpa, mea culpa, mea maxima culpa.
Ironically, the number of blog posts I make tends to be inversely proportional to the number of interesting things going on in my life.
Credit cards can be very useful, provided you pay off your outstanding balance at the end of each month. If you do not, the debt can pile up, and will be sticking with you for a very long time. Credit is a tool - it lubricates the economy. Without it, production would grind to a halt. However, it is very important that creditors lend only as much as debtors can afford to repay.
If we think of Debian as a gift economy, it is the community doing the lending, and ITPs and ITAs are a temporary extension of kudos to the potential maintainer.
Anyway, the point of this analogy is to note that while my financial overdraft is currently nonexistent, my debt to Debian needs to be repaid with interest.
As a brief diversion from Debian, I spent the evening learning about small-scale hydro power. Remember, kids, the power available at your site is proportional to the product of the effective pressure head and the volume flow rate.
I think at some point I promised the Rugby Friends of the Earth group that I would link to them. My PageRank, let me show you it. They have a social meeting tomorrow at the Alexandra Arms. (Interestingly my PageRank does seem to be pwning that of WUGLUG's page at the moment. I still haven't matched that of the front page of Warwick Blogs.)
Also this week I found out about the courses at the Percival Guildhouse. This is a building next to the library in Rugby - I have walked past it for years, but never investigated what went on there until now. Turns out I might actually be able to practise speaking German with people.
I tried to look at an RC bug this evening: bug #502657 on netmaze. It looked so easy - a segmentation fault, a backtrace... no. The package doesn't even build on sid, doesn't support the 'nostrip' option, and hasn't had an upload for two years. When you get past those stumbling blocks, it's a 64-bit compatibility problem that would probably need quite a large patch.
So, in the end, I've increased the RC bug count by one this evening, in suggesting to the maintainer that netmaze should not be released with lenny.
I tried.
With the rise of the blogosphere, a greater number of people are now free to post their thoughts to the world - and because of the nature of the medium, there are a fair number of people writing about their experiences with computer software. Most software is not perfect, so some proportion of those experiences will be negative.
In the special case of free software, all end users have the freedom to study and modify the source code. (It is easy to forget, having used GNU/Linux for a few years, that the licences of most proprietary software do not even give you the right to run the software in a debugger.) This does not imply, however, that the end user is necessarily capable of debugging any problems they run into themselves (although they do have the freedom to pay someone else to do so). In general, users will rely on the original developers of the software to fix any problems - and a good way to get the developers' attention is to file a report in the project's bug tracking system when there is one. It is unlikely that the developers will learn about problems through any other means.
The constructiveness of complaints about free software can therefore be judged by whether the user has filed a helpful bug report. Doing so demonstrates a willingness to improve the software, which benefits everyone. It is the first step in moving from 'consumer' of the software to 'contributor', and potentially from there to 'creator'. But what if people aren't interested in making that journey?
A recent trend is to reply to rants with a comment to the effect of, "Could you please link to your bug report?" Writing is no less a creative act than software development - the question is asking the author to shift their creative energy away from their blog and towards the software. What should the response be if the author has no interest in helping to develop the software? It is often easier for the user simply to switch to a different program, or work around the bug. They might develop a competing program that is entirely superior to the original, or use their time some other way. Should we expect every user to give back?
If people have the freedom to help their neighbour, they must surely also have the freedom not to help. Comments like the above can certainly steer complaints into constructive feedback, or highlight trolling. I'm not sure, however, that we should expect them to build a community of unwilling participants.
It weighs 13kg, apparently, and my arms still ache. Thanks to Anton and Dan for letting me stay at their place on Saturday night, and use their fast net connection to download Debian packages.
Some small victories:
Another potential response to online complaints about free software is "FSFI", meaning "It's free software, fix it". This is the next level up from asking someone to link to their bug report - it places the sole responsibility for fixing the bug onto the shoulders of those who complain. Sometimes this can be reasonable - but expecting every user to be able to fix every problem themselves is not.
There was a link today on LWN to an article claiming that it is strictly the software which is free, not the users - the users must abide by the restrictions of the licence, so cannot distribute proprietary derivatives, for instance. I would have claimed exactly the opposite; software does not have a will that can be frustrated. It is the users of proprietary software who are not free to study, to improve, to share. The term "free software" misleads in this respect; the ethics are all about what the users can or cannot do. On the other hand, we might reasonably talk about a "free society", and would understand that its citizens were free as well.
The "copyleft" terms in some licences are therefore a matter of some debate - they limit what the user can legally do with the software. In this ethical framework, the right of one user to restrict the ability of other users to use, modify and share software is comparable to their right to shout "Fire!" in a crowded theatre. This philosophical question goes back to Mill's On Liberty and probably before - according to the "harm principle", the only justifiable use of the law is in preventing someone from causing harm to others. We do not generally think of societies which outlaw murder, say, to be less free.
Often people think of the LGPL as not being a "copyleft" licence, but this is not the case. In all cases the distributor has to provide the source to their modified or unmodified version of the software. There are in fact restrictions on the licences that you can link against - the end user must be free to make local modifications, and have the right to debug those modifications. It would be best described as a "weak copyleft" - a combined work can be distributed under different terms, but the rights of the user with respect to the LGPL-licensed work are protected.
With both societies and software, you are free to fix your own problems. Sometimes this is more of a burden than a blessing - but usually you do not have to do it alone.
This evening I visited Rugby Library. Apparently I had not used my Warwickshire library card for 991 days - that was from when I lived in Leamington Spa. It is probably quite a while longer since I last borrowed books from Rugby.
To be honest, I was quite fond of the old Victorian library building. Unfortunately, that one closed in 1997 and was demolished. And I suppose the £5.5m new one looks nicer.