Tim Retout's www presence

Sun, 20 Sep 2009

Escape Velocity

I am no longer going to tag my blog posts with Planet {WUGLUG,UWCS}.

As I don't even lurk in the IRC channels any more (or read the mailing lists), and as of recently don't even live near enough to campus to visit, I think it's time to stop imposing my ramblings on the respective groups. :)

You can still read my blog directly, or on Facebook, if you are so inclined.

Posted: 20 Sep 2009 14:28 | Tags: ,

Wed, 09 Sep 2009

Unit testing

I spent the last day and a half writing a vaguely interesting Perl module for testing some code which gives a subtly different answer each time (i.e. incorporates data from time() and /dev/urandom) and has side effects (i.e. writes to the file system).

By overriding Perl's built-in 'open' function, it is possible to prefix each filename with the location of a temporary directory, effectively emulating chroot(). I also replaced Perl's time() with one that always returned the same answer. This meant that the login code I was testing would return a reliable result.

You have to be careful with prototypes. Spot the difference:

my $result = gmtime(time+$seconds);
my $result = gmtime(time()+$seconds);

Without adding a prototype to the new time() function, these will give different answers. I now have to go back to work tomorrow and close a bug I mistakenly filed. :)

I'm hoping to finish off my evil hacky overriding module and release it to CPAN. I want to add some routines to set up and tear down temporary chroot directories. Obviously there are some limitations to my approach; I'm not currently handling relative paths very well, and system() calls will not be "chrooted". But it should be quite handy and reusable in any case.

Posted: 09 Sep 2009 19:16 | Tags: , ,

Thu, 27 Aug 2009

Southampton

I have changed jobs, and now live in Southampton, working for SmoothWall.

This week I have got married on Facebook, and went out to an "alternative" club until 1am on a weeknight. (Normally it plays heavy metal, but Wednesday night is cheese night.)

Posted: 27 Aug 2009 18:58 | Tags: , ,

Wed, 29 Jul 2009

Conclusions

Well, I'm nearly at the end of DebConf - I'm missing the last day of talks, so travelling home tomorrow. It's been a really good experience - I mean, DebConf is always fun, but this time I feel like I'm getting more involved myself, and a bit closer to the heart of the community than I did before.

In practical terms, the two-week holiday has helped me feel more laid-back - I even got complimented on how I always look relaxed, which was amusing. I'm starting to get to know even more people, and that's helped me be more confident with contributing back. And it's given me some time to finish a few outstanding tasks, although my todo list remains perpetually long.

The time has also helped in less tangible ways - I've been able to brainstorm a few general ideas about what big problems I am trying to solve, and I've been able to look at my workflow and identify problem areas. I hope that I can take some solutions back to the rest of my life.

Posted: 29 Jul 2009 12:38 | Tags: , , , ,

Wed, 22 Jul 2009

DebCamp

This week, I've more or less finished my NM questions; I looked again at a problem in dak which turns out mainly to be caused by some edge cases in debconf (the package), so filed a bug there. Then looked at conglomerate, and came up with patches for a couple of bugs there as well. I'm quite looking forward to just being able to NMU these kind of things.

With all this hacking, I've stayed up until around 4:30 for the past few nights - I really didn't mean to, it just happened. I'm trying to fix that now (so that I can make it to breakfast).

Debian now has its own wine - there are 1800 bottles in total. Last night we tried some...

Also, there's a small cat here which seems quite friendly.

Posted: 22 Jul 2009 15:56 | Tags: , , , ,

Sun, 19 Jul 2009

DebConf9 continues

Yesterday I almost updated mdbtools. Then I went to a debian perl team meeting, and promptly spent 24 hours trying to improve the speed of working with 1300+ git repositories. It's a bit tricky.

This afternoon, I looked at some pkg-perl RC bugs... but they're tricky as well. I then updated the postgresql-autodoc man page, and sent it back upstream. Hopefully, next release the Debian package will not need any patches.

The vegetarians seem to have been having a rough time - apparently in Spanish-speaking countries, ham is not considered meat. Things picked up today for them, though, with some mushrooms at lunch and a nice-looking salad this evening.

Posted: 19 Jul 2009 21:40 | Tags: , , , ,

Sat, 18 Jul 2009

DebConf9

DebConf is in Spain this year, in Cáceres. Getting here involved a plane to Madrid, navigating the metro system, a 3.5 hour train journey and then a walk to the accommodation at 2am. This year I had actually looked at a map before arriving in the city, although hadn't bothered to bring one with me. Or note the exact address I was heading for...

At night, it is still pleasantly warm here. The streets were quiet except for the "pfft, pfft, pfft" of the sprinklers. Any directions I'd read which involved street names were useless - but I remembered enough of the map to get to where the buildings were, and then wandered around until I found the entrance.

I was greeted at the front desk by the security guard, who didn't speak much English... but I understood enough, and got shown where the room was. The student residences are not luxurious! It's quite a contrast to Mar del Plata (or even the hostels at Edinburgh), but not a lot of time is spent in the rooms anyway. The shower is worryingly powerful - think 'firehose'. Tomorrow I hope to find a way not to flood the whole room while using it.

The building seems designed to stay cool, fortunately. Meals are later in the day to avoid the worst of the heat, but I've still been feeling tired. People seem to buy large (1.5l) bottles of water. The weather's supposedly going to get even hotter - I did go out at 6pm to buy an ice cream, but I'm wondering whether my sunblock is going to last two weeks. I'm already in shorts and sandals - I might need to find more T-shirts.

Today has been fairly productive, actually - I updated postgresql-autodoc, fixed my blog, and updated my laptop. Since dinner I've been looking at the other packaging work I need to do; I'm hoping to get another few uploads out of the way first, and then work on NM questions and fixing bugs.

Posted: 18 Jul 2009 00:26 | Tags: , , , ,

Fri, 17 Jul 2009

Blog back

I have restored all my previous blog entries. I couldn't be bothered to think of a way to restore the post times, but I got the dates out of the path and used hardcodedates.py to overrride the timestamps. If this floods planets, I'm sorry.

Posted: 17 Jul 2009 14:36 | Tags: ,

Tue, 30 Jun 2009

The Techteam Suck

(But so does PyBlosxom for using file timestamps.)

Posted: 30 Jun 2009 09:17 | Tags: , ,

Tue, 23 Jun 2009

Thinking

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.

Posted: 23 Jun 2009 00:00 | Tags: ,

Mon, 22 Jun 2009

Paper

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?

Posted: 22 Jun 2009 00:00 | Tags: , ,

Tue, 26 May 2009

Einem Freien Parlament

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.

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.

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.

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.

Posted: 26 May 2009 00:00 | Tags: , , ,

Mon, 25 May 2009

Notifications

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.

Posted: 25 May 2009 00:00 | Tags: , , , , ,

Sat, 16 May 2009

Roast Chicken

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.

Posted: 16 May 2009 00:00 | Tags: , , ,

Sun, 03 May 2009

Baked Potato

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.)

Posted: 03 May 2009 00:00 | Tags: , , ,

Mon, 27 Apr 2009

Cancer

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.

Posted: 27 Apr 2009 00:00 | Tags: ,

Sun, 19 Apr 2009

RDAS

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.

Posted: 19 Apr 2009 00:00 | Tags: , , ,

Thu, 09 Apr 2009

Squid on Windows

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.

Posted: 09 Apr 2009 00:00 | Tags: , , , ,

Mon, 06 Apr 2009

Mushroom Risotto

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.

Ingredients

  • Mushrooms, 150g (yes, I bought some scales.)
  • 1 onion, chopped.
  • 2 cloves of garlic, finely chopped.
  • Olive oil.
  • Risotto rice, 200g per person, supposedly.
  • A glass of dry white wine
  • Vegetable stock (I only used ~500ml, but to serve 4 would need 1l or slightly more.

Method

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.

Evaluation

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.

Posted: 06 Apr 2009 00:00 | Tags: , , ,

Thu, 02 Apr 2009

Lasagne

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.

Posted: 02 Apr 2009 00:00 | Tags: , , , ,

Kernel Mode Setting on Debian

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.

Ingredients

You will need:

  • linux-image-2.6.29-1-686 or similar (or later)
  • The xserver-xorg and related packages from Debian experimental, unless you're reading this in the distant future, at which point X.org 7.4 will be in unstable.
  • An intel graphics card which uses the i915 driver. I used an Asus eeepc 1000.
  • A willingness to break your system in the name of seeing something cool.

Method

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!

Posted: 02 Apr 2009 00:00 | Tags: , , , ,

Wed, 01 Apr 2009

Three egg omelette

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.

Posted: 01 Apr 2009 00:00 | Tags: , , , , ,

Mon, 30 Mar 2009

Pasta with Tomato Sauce

So, I decided to start off gently. The advantage of this recipe is that... I already knew how to make it. Awesome.

Ingredients

  • Olive oil
  • Half an onion, chopped
  • One clove of garlic, chopped
  • One tin of chopped tomatoes
  • A small amount of dried thyme or whatever; basil seems more traditional, but does Sainsbury's Local have that? Buggered if I could find it.
  • Pasta

Method

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.

Evaluation

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.

Posted: 30 Mar 2009 00:00 | Tags: , , ,

Sun, 29 Mar 2009

1GB should be enough for anybody

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.

Posted: 29 Mar 2009 00:00 | Tags: ,

Fri, 27 Mar 2009

SWOTting up

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. :)

Posted: 27 Mar 2009 00:00 | Tags: , , ,

Thu, 26 Mar 2009

Cooking for Project Managers

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.

Posted: 26 Mar 2009 00:00 | Tags: , , ,

Wed, 25 Mar 2009

OpenOffice.org

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.

Posted: 25 Mar 2009 00:00 | Tags: , , , , ,

Sat, 14 Feb 2009

Popularity

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.

Posted: 14 Feb 2009 00:00 | Tags: ,

Sun, 08 Feb 2009

OpenOffice.org evangelization

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!

Posted: 08 Feb 2009 00:00 | Tags: , , ,

Mon, 26 Jan 2009

Telford Ted

I'm thinking of framing this:

Young Engineer - This is to certify that Timothy Retout visited the Department of Engineering at Warwick University - Telford Ted, 4th May 1991

Posted: 26 Jan 2009 00:00 | Tags: ,

Sun, 25 Jan 2009

Enscript security patches

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.

Posted: 25 Jan 2009 00:00 | Tags: , ,

Sat, 24 Jan 2009

Fixing Problems

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.

  • libdvdcss2 was not installed. I explained why, and fixed it.
  • DVD menus were not being played in totem-gstreamer - the DVD would autorun, but you could not change to other titles. If you restarted totem with a different menu option you could at least set up a playlist with all the titles. It's a shame, because I like gstreamer, but as a quick fix I installed totem-xine and set it to autorun for DVDs instead.
  • Upgraded to Intrepid. Fairly uneventful.
  • Installed wine so that horrible non-free heart rate monitor software might possibly run.
  • Introduced mum to pidgin.
  • There seem to be some problems with sound recording - I started setting up Ekiga, but this is a blocker. Might not have time to fix this.

Posted: 24 Jan 2009 00:00 | Tags: , ,

Fri, 23 Jan 2009

Emacs and Epiphany

It turns out to be possible to persuade emacs and epiphany to play nicely together.

Opening URLs in Epiphany from Emacs

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.

Opening text files in Emacs from Epiphany

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.

Further ideas

Posted: 23 Jan 2009 00:00 | Tags: , , , ,

Holiday

I have a week's break from work.

  • I'll be improving the OpenStreetMap coverage of Wooler, hopefully.
  • I need to check over some enscript patches, so that I can make a release.
  • At the same time, I want to practise using gnus for email more thoroughly.

Posted: 23 Jan 2009 00:00 | Tags: ,

Wed, 21 Jan 2009

Blind *and* stupid

  • Went to the optician's and asked about prescription swimming goggles today. Might have to get them made specially - buying cheaper ones with standard spherical lenses would not correct my astigmatism, and leave everything blurry. Still, it would be the difference between being able to read half the eye test chart and not being able to see where the chart is.
  • I have an HP dx2250 at both home and work, and HP's BIOS doesn't enable the SVM instructions on the CPU (which would let you do cool things with virtualization). So this could be my excuse to finally use/develop coreboot. Will make a shopping list of tools to flash my BIOS relatively safely.

Posted: 21 Jan 2009 00:00 | Tags: , ,

Mon, 19 Jan 2009

Random

  • On Saturday I went to Birmingham for the Friends of the Earth West Midlands regional meeting. We learnt about campaign planning, and got an overview of the main national campaigns for the next year. FoE Birmingham use Edubuntu.
  • On Sunday I went swimming again. Not so tiring - still need to get some prescription goggles.
  • Today at work we were delivering a PostgreSQL database training course for a company in Leicester. BigG happened to be one of the tutees.

Posted: 19 Jan 2009 00:00 | Tags: , , , , ,

Fri, 16 Jan 2009

Things I learnt today

  • gLabels is a nice and simple app, and works well for making CD labels.
  • Swimming appears to exercise completely different muscles to jogging, so is very tiring. I could really use some prescription goggles.
  • The usual plural of no is noes.

Posted: 16 Jan 2009 00:00 | Tags: ,

Thu, 08 Jan 2009

O RAILLY

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.

Posted: 08 Jan 2009 00:00 | Tags: , , ,

Mon, 17 Nov 2008

Campaigning

I had a reply from Jeremy Wright MP today regarding EDM 2141 - he's going to sign it.

I'm going to think a bit about how to follow up on this. My desk is looking far too cluttered with House of Commons stationery at the moment.

Posted: 17 Nov 2008 00:00 | Tags: ,

Sat, 15 Nov 2008

Change

Of course, http://www.change.gov/ uses XHTML 1.0 Transitional.

Posted: 15 Nov 2008 00:00 | Tags: ,

Sun, 09 Nov 2008

mod_macro

Interesting discovery of the evening: the third-party Apache module "mod_macro", packaged as libapache2-mod-macro for Debian. Awesome.

Posted: 09 Nov 2008 00:00 | Tags: , ,

EDM 2141

Following Dan's lead, I have emailed Jeremy Wright, MP for Rugby and Kenilworth, concerning EDM 2141. Watch this space.

Posted: 09 Nov 2008 00:00 | Tags: , , ,

Sat, 01 Nov 2008

That time of year again

I tend to update DateTime::Event::WarwickUniversity at around this time each year, according to the changelog. Version 0.05 will appear on CPAN with the next update. My testcases still pass, at least.

Posted: 01 Nov 2008 00:00 | Tags: , , ,

Interesting Times

I haven't written a blog entry for a week; obviously I have been busy with interesting things. Like xulrunner.

Procrastination may be a valid time management strategy. By prioritising tasks and doing the more important ones today, lesser tasks are pushed back. Occasionally these tasks then fall over a deadline, and disappear. Whether this is a good thing... I'm not sure, but this has happened to me with around three tasks this week. :)

Posted: 01 Nov 2008 00:00 | Tags: ,

Fri, 24 Oct 2008

Atheism

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.

Posted: 24 Oct 2008 00:00 | Tags: , ,

Wed, 22 Oct 2008

Hydro

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.

Posted: 22 Oct 2008 00:00 | Tags: , , , ,

Fail

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.

Posted: 22 Oct 2008 00:00 | Tags: , ,

Tue, 21 Oct 2008

RC != Roman Catholic

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.

Posted: 21 Oct 2008 00:00 | Tags: , ,

Mon, 20 Oct 2008

WNPP bugs are like debt

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.

Posted: 20 Oct 2008 00:00 | Tags: , ,

Sun, 19 Oct 2008

Meta

Ironically, the number of blog posts I make tends to be inversely proportional to the number of interesting things going on in my life.

Posted: 19 Oct 2008 00:00 | Tags: ,

Tue, 05 Aug 2008

Masochism

For my first trivial bit of coding while I'm here, I patched the debconf IRC bot to announce nicknames as well as the real name of new arrivals (a feature request from madduck). I'm hoping to resist wasting time adding lots of features to it - the code is awful.

This morning I went running at 8:30 - in theory there are going to be group runs in the morning and afternoon sometime, but for now I went on my own. It was quite nice with the ocean views... the local runners seem to wear tracksuit tops at this time of year, though.

Posted: 05 Aug 2008 00:00 | Tags: , , ,

Mon, 04 Aug 2008

Argentina

I arrived in Mar del Plata yesterday - DebConf this year is all in one hotel (with a nearby hotel for overflow accommodation next week), which makes everything very convenient. When they're not serving meals, they're usually serving coffee and cakes in the hacklab.

There were some teething troubles with the networking today, so I took a walk down the beach. Mar del Plata reminds me of Llandudno - it's a popular beach resort in the summer, but it's winter at the moment. Not that I've ever been to Llandudno in the winter, come to think of it... but imagine a cold summer day in North Wales. There's a run-down pier and everything. The big difference is that Mar del Plata is a huge city - I walked a couple of miles down the coast today, and the buildings were just stretching on. Oh, and everyone speaks Spanish.

When I got back, the network was fixed (yay), so I messed around getting SIP calls working. Outgoing works pretty well now, but I've yet to see whether my UK number is going to ring my mobile. I should have voicemail set up now, so people can leave a message instead of just not getting through to me.

At some point I'll stop settling in and do some packaging or something - but as a holiday, it's quite relaxing.

Posted: 04 Aug 2008 00:00 | Tags: , , ,

Fri, 01 Aug 2008

Vital Statistics

I finally registered with a GP's surgery in Rugby today (that is, Thursday). This went fairly smoothly once I managed to decipher the way to Waiting Room 2.

I am 180cm tall, and weigh 75kg. This gives me a BMI of 23.1, which is normal. I didn't get the numbers for my blood pressure, but apparently it's fine. :)

Posted: 01 Aug 2008 00:00 | Tags: ,

Sun, 13 Jul 2008

GNU Hackers' Meeting 2008

On Thursday and Friday, I took time off work to visit Bristol for the GNU Hackers' Meeting 2008. Around 20 people attended - obviously these were all people contributing to GNU, but (surprisingly) I didn't feel too much like I was surrounded by giants. Instead, it was all quite relaxed; most people there seemed rather like me - with a mild caffeine addiction, permanently short of spare time, and just trying to improve their small projects as best they could.

The impression I have of the GNU project after this meeting is one of a disparate organization with many small contributors; it is clear we have massive communication problems, both internally and externally. From the outside, I suppose GNU looks like a monolithic, perhaps US-centric project, with the strong leadership at the top controlling the direction of all these sub-projects. In reality, these sub-projects are more or less autonomous. There may be some checking at the centre that no two GNU programs are directly competing to solve the same problem, but the maintainers are largely on their own, struggling to build up whatever community of contributors they can. The feeling of isolation is much greater than in Debian, for instance - there, although package maintainers generally have some sort of authority over "their" packages, you will get bug reports filed if you are not following Debian policy, and you are expected to observe common freeze periods around releases. There are no real equivalents in GNU.

So naturally, considering the amount we had in common, this meeting was always going to be a success. It was very well run by Brian Gough, and there was just the right amount of structure versus "corridor time" (although everything took place in a single room, except for lunch/pub). There were a few talks from people about the projects they were working on - for instance, a nice game called GNU FreeDink, although I need to fix a segmentation fault to progress any further in level 2, and a very impressive sound generation program called Psycosynth.

It was suggested that a UK-only GNU hackers' meeting could be organised sometime, which I think would also work very well. Simply meeting up like this every once in a while was quite inspiring; I much prefer developer-oriented meetings over user-oriented meetings, and this was one of the best.

Posted: 13 Jul 2008 00:00 | Tags: , ,

OpenJDK in Debian main

After much anticipation, the free-as-in-freedom version of Sun's Java JDK has arrived in Debian's `main' section. There are still a few bugs in the packaging, but these will be ironed out before the lenny release. Various other useful packages still need to adapt to its presence, but many will be able to move from the `contrib' section into `main' as well.

Going forward, this makes Sun's Java platform quite attractive for developing future free software applications. There is a reasonably performant implementation now available in most distributions, that will receive security updates, has a good team of developers behind it, and already has a large community of people with skills in the language. If static versus dynamic typing becomes an issue, Jython might offer a nice competing implementation of Python. We might one day get to see what this `Groovy' thing is all about. In terms of GUI applications, Andrew Cowie's new java-gnome 4.x bindings will allow truly native integration with the rest of GNOME - or stick with plain Swing for cross-platform portability.

This also brings the Java/.NET competition to free software. Mono has been playing catch-up with both Microsoft's implementation of .NET and with Java - it has enjoyed some success with Gtk#, which has provided much more compelling rapid development than the old java-gnome bindings and gcj. MonoDevelop is trying to compete with Eclipse and NetBeans, and probably has a better-integrated GNOME UI editor. Still, if the potential for rapid application development is as great as is claimed, it can't be very long before the various successful Gtk# applications (banshee, f-spot, tomboy) have Java counterparts (unless people are happy with the C equivalents). The most difficult part of the process is finishing off any required library bindings (such as to gstreamer and libgphoto2).

It will be interesting to see whether Java free software developers bring with them the same bad habits that have been seen with many Windows-based C# free software developers. When you want to use a library, bundling a binary-only copy of an unstable version is not really the right thing to do. At least many Java .jar archives also contain source code, and there are quite a few home-grown Java hackers who might understand about how to play nicely with distributions using proper dependency-management systems.

One thing that strikes me is that, while Mono has been around for quite a few years now, I can't think of any big non-graphical applications that are built on it. (Beagle is perhaps the exception - it does make use of a Gtk# GUI, but the main program is the indexer.) Java might benefit from a network effect, as projects such as Apache Tomcat are also widely used. (Let's not mention Choob at this point.) There are a few non-GNOME graphical apps waiting in the wings (like freecol and robocode). The scaremongering over possible patent infringement in Mono (or the Windows.Forms libraries), while probably unfounded, cannot help its cause.

But of course, ruling out something catastrophic like a patent infringement suit, free software projects very rarely die - they just fade away into obscurity. Both platforms are likely to be around for some time yet.

Posted: 13 Jul 2008 00:00 | Tags: , , ,

Fri, 04 Jul 2008

gnu-standards in Debian

An update to Debian's gnu-standards package is now in incoming. This package contains the GNU Coding Standards and the Information for GNU Maintainers document. It is now in the `main' section rather than `non-free', so is officially part of the Debian system.

This has taken several months; at the end of December I asked whether the maintainers' document could be relicensed. RMS evidently approved, because the licence was changed in January.

Then there was the small matter of updating the Debian package; I prepared an update, but wasn't quite clear on whether I was preparing an NMU or a normal upload, so stalled for a while. Last month the package became orphaned, so I quickly grabbed an ITA, and started working again. KiBi was very helpful with pointing out all the remaining cruft in the package, and he generously sponsored the final result. Then we just had to wait for it to get through the NEW queue.

Hopefully it will migrate to testing before the freeze.

Posted: 04 Jul 2008 00:00 | Tags: , , ,

Mon, 30 Jun 2008

The things I do for Debian

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.

Posted: 30 Jun 2008 00:00 | Tags: , , , ,

Fri, 27 Jun 2008

Licence club

  1. The first rule of licence club is, you do not talk about licence club.
  2. The second rule of licence club is, you DO NOT talk about licence club.
  3. If a copyright holder says stop, gets confused, is bought out, the licence is over.
  4. Only two parties to a licence.
  5. One exclusive licence at a time.
  6. No CDDL, no Jörg Schilling.
  7. Licences will go on as long as the copyright is enforcable.
  8. If this is your first night at licence club, you have to hire a lawyer.

Posted: 27 Jun 2008 00:00 | Tags: , ,

Sat, 21 Jun 2008

Recent fixes

Some small victories:

  • You can now install devscripts-el without needing to install elserv, an http server written in emacs lisp and Ruby. (The devscripts-el package provides various useful emacs commands to help with Debian packaging.) This is good, because I don't need Ruby for anything else.
  • It is now possible to use irssi's default theme on terminals with a white background, at least in Debian. I found that in bright sunlight, black-on-white terminals were actually more visible on my laptop screen - but when using IRC, I couldn't see who was using /me any more. Apparently upstream are yet to be convinced of the wisdom of not hardcoding white into their themes.

Posted: 21 Jun 2008 00:00 | Tags: ,

Tue, 17 Jun 2008

Library

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.

Posted: 17 Jun 2008 00:00 | Tags: , ,

Tue, 10 Jun 2008

It's all very technical, you know...

Increasingly I am asked how things are going at work. Unfortunately, I struggle to give a meaningful answer in conversations with "normal" people - I don't know how to begin to explain that this afternoon I set up a pbuilder environment that lets me build Debian packages for our customised etch-with-backports i386 distribution using my amd64 machine running Debian sid. Or that this morning I ran into some interesting problems with dpkg-shlibdeps and symbol versioning in lenny when trying to downgrade some dependencies to 'Suggests'. "Er, yeah, it's going fine."

One recent big project has been a real bonus in this regard, because I can explain it even to the hairdresser - it's "like a mobile phone that you can put in your computer". Fantastic. "And we do the software that runs it." Everyone can understand that. "We make it talk to the internet." No way! You're so cool, Tim, tell me more.

What else do I do? "Well, sometimes I filter people's email and web traffic for spam and viruses. And sometimes I make databases run faster. And sometimes we set up systems that monitor other systems." But phone calls are the best.

Posted: 10 Jun 2008 00:00 | Tags: , ,

Wed, 04 Jun 2008

Free software, fix it

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.

Posted: 04 Jun 2008 00:00 | Tags: , , ,

Tue, 03 Jun 2008

Link to your bug report

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.

Posted: 03 Jun 2008 00:00 | Tags: , , ,

Sun, 01 Jun 2008

aMSN sound with PulseAudio

Following my awesome coding on Pidgin yesterday, my brother has switched to aMSN.

I had let slip at some point that his laptop's webcam would probably work with aMSN. The drivers themselves are included with the Ubuntu kernels, so that has never been a problem; however, because of some abstraction problems with Pidgin, there is still no webcam support with the MSN protocol. It almost worked with aMSN out of the box, but I had to open a port in the firewall to let people connect to him. (This is probably going to stop working when he's not in Derby, then.) Next, aMSN appears to only have OSS sound support, so I had to modify the Ubuntu menu entries to use the PulseAudio 'padsp' wrapper. This lets you record and play sounds, but the aMSN developers have not implemented continuous voice streaming yet, I think.

For the record, I don't like aMSN's UI either.

Posted: 01 Jun 2008 00:00 | Tags: , ,

Sat, 31 May 2008

Pidgin 'Open Mail' bug

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.

Posted: 31 May 2008 00:00 | Tags: , ,

Sat, 17 May 2008

IDE

Who needs eclipse?

Emacs

Posted: 17 May 2008 00:00 | Tags: , ,

Tue, 06 May 2008

Bank Holiday and stuff

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.

Posted: 06 May 2008 00:00 | Tags: , , , ,

Tue, 22 Apr 2008

GNOME Bugzilla edit rights

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. :)

Posted: 22 Apr 2008 00:00 | Tags: , ,

Wed, 09 Apr 2008

GPG trustdb batch updates

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.

Posted: 09 Apr 2008 00:00 | Tags: , , , ,

Tue, 08 Apr 2008

Linux Hardware Support

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.

Posted: 08 Apr 2008 00:00 | Tags: , , ,

Sun, 06 Apr 2008

Demise of Windows XP

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.

Posted: 06 Apr 2008 00:00 | Tags: , ,

Debian BSP

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.

Posted: 06 Apr 2008 00:00 | Tags: , , ,

Thu, 03 Apr 2008

I'll be at DebConf8

Lamby reckoned I wouldn't be able to resist using the DebConf8 blog sticker thing. And he was right.

I'm going to DebConf8, edition 2008 of the annual Debian 
     developers meeting

My horrendously expensive plane tickets arrived last week.

Posted: 03 Apr 2008 00:00 | Tags: , , , ,

PostgreSQL UK 2008

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.

Posted: 03 Apr 2008 00:00 | Tags: , , , ,

Mon, 24 Mar 2008

Shell startup times, part 2

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

Posted: 24 Mar 2008 00:00 | Tags: , , , ,

Sat, 22 Mar 2008

Shell startup times

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.

Posted: 22 Mar 2008 00:00 | Tags: , , , ,

Encryption and disk access

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.

Posted: 22 Mar 2008 00:00 | Tags: , , ,

Fri, 21 Mar 2008

F-Spot 0.4.2-1 done

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.

Posted: 21 Mar 2008 00:00 | Tags: , , ,

Sun, 09 Mar 2008

Looking towards lenny

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.

Posted: 09 Mar 2008 00:00 | Tags: ,

Sat, 08 Mar 2008

Post-FOSDEM thoughts

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?

Posted: 08 Mar 2008 00:00 | Tags: ,

Fri, 22 Feb 2008

Where did last year go?

Counting off years at an arbitrary date on a calendar seems a bit meaningless - to many people I suppose it makes sense, because everyone gets together at New Year's Eve, and there's a big party to remember things by. With me it's different; for the last few New Years, things have been quiet. The big events in my life are not the times when I take a few days to relax, as pleasant as they are. Thinking about it, the biggest social events these days are software conferences. Sad, but true. I find myself reflecting on the year just gone.

So much has changed since last February. Looking back at last year's FOSDEM, I spent most of it in the GNOME devroom, as I recall. I met lots of people - I failed to meet any of the Hurd people properly, but made some GNOME UK friends that showed up later in the year at GUADEC. I also met Alasdair Kergon again (whom we had bumped into at the LinuxWorld Expo a few months previously), which led eventually to my being able to attend the LinuxConf.eu conference last September.

Even on the Eurostar we made contacts - Josette Garcia from O'Reilly was someone I subsequently encountered at almost every conference, and now she sends us free books. :)

Notably, I failed to really speak to any of the Debian crowd last year in Brussels, but made up for it at the Etch release party in May, and at DebConf7 in June. Those contacts led inadvertently to my current job, and since then I have picked up maintenance of a few Debian packages. In turn, one of those led to upstream maintenance of a GNU package. I'm not sure I would have predicted that a year ago - I was hoping to break into GNOME, iirc.

With the time off that I have this weekend, I want to give some thought to the direction that I want to take this year. I suspect I want to put more effort into Debian. Looking forward, it appears I'm also spending more time with PostgreSQL. Ideally, I want to help some of the more interesting GNU packages as well - helping gnash would be great, but there are some more obscure tasks that I've been thinking about. (Some things don't change.)

Posted: 22 Feb 2008 00:00 | Tags: , ,

Sun, 10 Feb 2008

New Jabber Address

It has been quite a while since I switched to using only Jabber (a.k.a. XMPP) for all my instant messaging. We use Jabber a lot at work, as well, and there are plans to set up an internal Jabber server eventually. (At the moment, everyone uses their personal Jabber IDs, which isn't ideal.)

I've been having problems with jabber.org.uk lately - they seem unreliable at times, although they're going through a complicated migration to ejabberd which should eventually fix things. In the meantime, because I rely on it so heavily, I need it to work now.

Also, I wanted a cooler Jabber ID, so I set up my own server. Hopefully, using ejabberd and being on a server with just one user will make things more stable.

So, as of now, you can add [email protected] to your contacts, the same as my email address. The old accounts will be going offline as soon as I've migrated everyone away.

Posted: 10 Feb 2008 00:00 | Tags: , , ,

Thu, 07 Feb 2008

More Crazy Ideas

Lately I've been having crazy ideas. Even more than usual, perhaps. I think the trick is to try and break the wildly unrealistic goals down into bite-size chunks that could actually work. Like, for instance, getting the project you want to hack on mirrored into your favourite repository format.

In other news, I've finally got around to learning how to set up public git mirrors of cvs and svn repositories - there are plenty of tutorials about creating private repositories, but very few which deal with public ones in detail.

For instance, one nice trick is that once you have run git-svn to update the remote refs in your bare repository, you then want to turn these remote refs into local branches and tags. So, you can 'git fetch' from the same repository into itself, and at the same time convert svn branches into tags:

git config remote.origin.url .
git config remote.origin.fetch +refs/remotes/tags/*:refs/tags/*
git config --add remote.origin.fetch +refs/remotes/*:refs/heads/*
git fetch

(Stolen shamelessly from the blog post where I found it.) A similar method will work for the CVS tags that git-cvsimport produces - although I don't see an easy way to split tags out from branches, unless there are specific naming schemes previously in use.

Posted: 07 Feb 2008 00:00 | Tags: ,

Sat, 02 Feb 2008

I'm busy, honest.

I haven't been writing so much recently - only one blog post for January, and I didn't even find the time to finish all the things I did in December. This is because I'm busy. Honest. So, before it gets too far into February, I'd better summarize things a little.

Projects I worked on recently:

  • f-spot - Near the end of December, I joined the Debian Mono packaging team, and helped clear up a few bugs in the photo management application I use. However, it turns out that f-spot could really use more help upstream - the number of forwarded Debian bugs is quite high, and there are some pretty nasty bugs outstanding. In fact, the upload we made has been synced to Ubuntu Hardy, so a bunch of users are going to run into horrible problems unless we fix them before the release. Oh dear.
  • enscript - I finally started to write some code for GNU Enscript. Recently I fixed the build system so that it didn't fail `make distcheck', for the first time in over a decade. Win. I'm trying to work towards a maintenance release, rather like the new maintainer of a2ps has done.
  • gnu-standards - the GNU maintainers' information document was under a license that didn't allow modifications, so it had to be packaged in Debian's non-free section. I asked about it, and it got relicensed. So now I'm trying to get the Debian package updated and moved back into `main'.
  • postgresql-autodoc - this was a random package I picked up, adopted, and got uploaded sometime in December. I haven't heard any complaints yet, but then my fixes were mostly for typos.

Projects on whose sidelines I sat, while watching aspiringly:

  • gnash - I tried it. It more or less works for YouTube videos, and the next release (due in a few days) should be even better. I want to spend more time supporting gnash this year.
  • gnu pdf - a new high-priority project to produce a PDF library better than libpoppler. I joined the mailing list, and provided some input. Eventually I want to see PDF output support in Enscript or its successor.

Things that resemble a social life:

  • The Wise Guys had a concert in London in January. (They're a German a cappella group who are quite funny. It helps if you speak German.) So that was fun.
  • The Rugby LUG had its second meeting, with ten people attending. I asked O'Reilly for some books to review, and the LUG now has four... but I'm wondering whether Josette really meant to send us a second welcome pack. No matter, I'll deal with it next week.

Oh, and work is going well - credativ Ltd. now has a coffee machine. Oh, and a new office.

Posted: 02 Feb 2008 00:00 | Tags: ,

Wed, 02 Jan 2008

Stale config files and upgrades

I've had two cases recently where an old configuration file has been causing problems, and there's no clean upgrade strategy.

My wireless card was made by Broadcom, and I use the newer b43 driver in Linux. However, the new mac80211 drivers introduce a second network interface (used internally by mac80211) but with the same MAC address as the normal interface. And because it gets created first, udev puts this master interface into the place where the real interface is meant to be, and the real one gets called 'wlan0_rename'.

The fix was to look at /etc/udev/rules.d/z25_persistent-net.rules on Debian, and either add 'ATTRS{type}="1"' to the appropriate line, or delete the file, and let it get created on the next boot.

Another time this has happened was with X.org. Jonny Lamb pointed out that removing the 'VertSync' line from xorg.conf fixed (or at least hid) my recent ati driver troubles. On running dpkg-reconfigure xserver-xorg, the new XRandR support lets Debian create a much smaller config file than it used to, which is cool. However, people upgrading don't get to take advantage of it.

Posted: 02 Jan 2008 00:00 | Tags: , ,

Mon, 31 Dec 2007

Fitts' law bugs

Firstly, a rant: as of December 2007, a self-righteous idiot named Chris Cunningham thinks he can change the name of "Fitts' law" to "Fitts's law" on wikipedia, in the name of grammar. To boot, he claims to have changed every link to "GNU/Linux" to point to "Linux", probably without regard to the difference in meaning. I am not happy. Fortunately, a recent attempt to become an admin was unsuccessful.

Anyway.

I noticed recently in Epiphany that I couldn't hit the scrollbar by slamming the mouse to the right edge of the screen. It turns out there are two bugs stopping me doing this, one less subtle than the other.

The less subtle one is that a recent commit to the ati driver turns on VGA output in my graphics card (even if there's no external monitor attached), and for obscure reasons this results in the virtual screen size being a little bit wider than 1024px. Fixes include "xrandr --output VGA-0 --off", or editing xorg.conf to disable that output monitor.

The more subtle one is actually a bug in Epiphany (or at least in GtkNotebook). With just one page open, using the rightmost pixel works fine; but as soon as you need tabs at the top, there's a two-pixel border stopping you.

Just another niggling desktop annoyance.

Posted: 31 Dec 2007 00:00 | Tags: , ,

Sun, 23 Dec 2007

Hello from Morpeth

So I'm in Morpeth for Christmas, staying with my mum. Until today there was no internet access here - they had been paying for an ADSL connection since May, but hadn't managed to get the modem to work with the computer. After a trip to the shops for a nice ADSL wireless router, I can now type blog entries from bed.

There was an existing computer to get working with the router as well. It looked like it had an ethernet port on the back, so should have been easy. However, it was running Windows 98, and I couldn't see it in the hardware list - no drivers. After a bit of prodding around with a Debian live cd, I realised that the integrated network card was even turned off in the BIOS. After that, I had to fiddle around with downloading drivers on my laptop from 3com's website, transferring them via a USB keyring and the Debian live cd (no built-in USB mass storage support nine years ago) to the HDD, and then brave the install procedure.

The machine itself is a 200MHz Pentium MMX with 128MB RAM, so it wouldn't even be able to handle the modern Ubuntu installer. Not that I'd want to do that.

Welcome to Northumberland.

Posted: 23 Dec 2007 00:00 | Tags: ,

Wed, 19 Dec 2007

Desktop annoyances - getting a prompt

Continuing my search for the subtle things that have annoyed me for years about my desktop usage, I want to think about shell startup times.

Application startup times have been done to death, I'm sure - it is one of the more obvious areas to work on when improving a desktop application. Evolution's startup time is still appalling, for instance; I count five seconds before I get a GUI, and many more before I see any email. Still, in the case of my bloated email client, it doesn't matter that much - I generally start it once a day, at 9am, when I need coffee anyway. It then proceeds to hang around in the background. It would certainly be nice for applications in general to start more quickly, but it's not the cause of these subconscious feelings of annoyance that I want to pin down.

Far more important than my email client are my terminal windows. One of the attractions of evilwm was that starting a terminal window was the focus of the entire window manager - the design is entirely motivated towards getting that window up as fast as possible, rather than aesthetics like window borders. However, these days I'm typically waiting for over a second to get a shell prompt. This is critical - when starting a terminal window, I'm usually about to perform a series of commands, and will really be paying attention to that lag.

There are two areas to consider: the time to start the terminal itself, and the time to start the shell inside the terminal. The shell startup time has been causing the biggest wait - bash itself starts very quickly, but turning on bash completion routines adds almost a second to the delay. Trying zsh out with completion enabled, it seems slightly better - maybe one-third of a second on a warm start. (Idea: add

PROMPT='%n@%m:%~$ '
autoload -U compinit
compinit

to ~/.zshrc and chsh away from bash. It's pretty similar.) This is the best argument for switching that I have seen so far.

The GNOME Terminal is relatively nice, and recent versions seem fast enough to start that changing terminal isn't going to make a significant difference. (Prove me wrong.) Some things about my desktop habits could be improved, though: I have a tiny icon on the panel to launch a terminal, and must be spending ages in mouse movements to start each instance. This is just lag in a different form. So, I've now deleted the icon and set a keyboard shortcut - GNOME has the option to set one, but none by default. Second, perhaps sometimes I should be using terminal tabs instead of opening more terminals - it depends on the task. I haven't thought of a cunning way to force myself to do that yet.

I'm now down to around a second to get an open shell prompt in GNOME without moving my hands from the keyboard, which is a lot better. I can still manage to start typing in the window before the shell appears, though, so I suspect some further work is needed on this.

Posted: 19 Dec 2007 00:00 | Tags: , , , ,

Mon, 17 Dec 2007

Desktop annoyances - network lag

Some things always feel uncomfortable about my desktop usage, even when I change solutions - KDE, GNOME, XFCE, all the way down to evilwm and beyond, to the console. I want to pin these problems down, in order to address them. First I want to focus on network lag.

Take email as an example. One of the biggest changes I made to my use of email a few years ago was to store all my email on an IMAP server, so that I can access it from any computer I happen to be using. This has obvious advantages - I have an archive going back years, can do spam filtering and classification in one place, and so on. It does mean performance can suffer, and I'm dependent on a net connection to read my old email. Compare how git changes how you can work with source code, both through its speed and through being able to commit while offline.

Once upon a time, when bandwidth was more limited, every computer had its own mail server, and all mail applications would read a user's mbox mail spool. That was a much better idea, and probably still is - with the exception that I want to take a copy rather than transfer all my email. After all, networks are now fast, and disk space is cheap. Thinking aloud, perhaps I want to run a local mail server on all my machines (so that everything can use a sendmail interface to send email), and then have a standard mail store which will be kept in sync with remote sites. (Bi-directionally, perhaps, for sent mail.)

With a single local mail cache, multiple applications will be able to take advantage of the one store. Individual client applications will be freed from the chore of checking IMAP servers for updates, which can be run automatically in the background by a single process when online. Planning ahead for multiple clients allows views of the mail store to be integrated anywhere in the desktop without requiring more than one mail cache (or lots of IMAP traffic). A similar centralising of network resources can be seen in Telepathy, although I haven't seen a centralized conversation logger.

The 'Online Desktop' idea is bigger than just the web, and it would be sensible to plan more standardized (cross-desktop) centralization of network caches for similar applications. I want to be able still to use my desktop while offline, and avoid perceived network lag while online.

Posted: 17 Dec 2007 00:00 | Tags: , , , , ,

Fri, 07 Dec 2007

Emacs keybindings for GTK text fields

My attempt to learn to use emacs continues. Today's discovery: I can enable emacs-like keybindings in GTK text fields (well, Readline-like) - this includes form fields in Epiphany.

I have remapped C-w to backward-kill-word, to be more like Readline. I'm working up to writing some lisp to make common tasks easier... like writing blog entries, perhaps. I'll need to synchronize my .emacs files somehow... but I need to make more of an effort to use emacs over vim at work.

Posted: 07 Dec 2007 00:00 | Tags: , , , ,

TAOCP volumes I and II

This evening, my order from amazon.com arrived. It took a few weeks, but the savings with the USD exchange rate were huge. I'm now the proud owner of the first two volumes of The Art of Computer Programming (3rd ed.) by Donald Knuth.

First impressions of volume one are that it's quite heavy on the maths; I'm pretty sure the first chapter will go slightly beyond most undergraduate maths courses, mostly because it is focusing on a few key areas. Or perhaps I should have worked harder at university. But anyway, it will be interesting.

Also prominent is the 60s-style machine language for an imaginary architecture that has six-bit words... and needs self-modifying code to call subroutines. Great. It's slated to be replaced in the fourth edition, but that could be twenty years away. :)

Posted: 07 Dec 2007 00:00 | Tags: , ,

Ubuntu for relatives

My mum will shortly receive a laptop with Ubuntu installed (from Dell). She will be the second of my relatives to start using Ubuntu, after my brother - the advantages are the lower initial price, no recurring anti-virus software costs, better interoperability out of the box with cameras and printers, and photo management software for no charge (again, out of the box).

I'm really hoping Dell don't mess this up.

Posted: 07 Dec 2007 00:00 | Tags: , ,

Tue, 04 Dec 2007

Munin Apache uptime plugin

At work, we have a customer who are having problems with their web server. So many problems, in fact, that I felt the need to write a Munin plugin to graph the uptime of Apache, so that I could tell when it had been restarted.

The graphs are as boring as the code, which is entirely stolen from Munin's 'apache_volume' and 'uptime' plugins.

Posted: 04 Dec 2007 00:00 | Tags: , , ,

Mon, 03 Dec 2007

Rugby LUG inaugural meeting

I just got back from the inaugural Rugby LUG meeting which I helped arrange. It went better than I was expecting - in total we had eight people there, and some interesting conversation over three and a half hours. The next meeting will be in January, but after that I'm hoping we can do something more often than once a month.

Posted: 03 Dec 2007 00:00 | Tags: , ,

I want to learn Emacs

Three weeks ago I swapped capslock and Ctrl on all my usual systems, much to the chagrin of Daniel when he foolishly tried to use my keyboard. I'm now quite happy with the positioning of Ctrl - it was surprisingly easy to get used to.

It is not a coincidence that this is Tip #1 on various lists of ways to use emacs more effectively. I find myself wanting to ditch vim… perhaps this is just asking for a holy war.

My reasons are quite vague at the moment, but have something to do with wanting consistency of user interfaces across editor, shell and, er, IRC client. One other thing I've noticed is that very few people seem to write many vim macros - I suspect that having lisp to work with will actually make this easier. Also, of course, it's a GNU project! As part of that, the licensing is vastly more sensible than vim's.

So, seeing as forcing myself to use the capslock key as ctrl seemed to work, I suppose I'd better force myself to use emacs regularly instead of vim, and see how it goes. This involves purging vim from machines where I can, and aliasing 'vim' to 'emacs' in places I can't. Perhaps this will scare more people away from borrowing my keyboard.

Posted: 03 Dec 2007 00:00 | Tags: , , ,

Sun, 02 Dec 2007

Back to using Linux wireless tree

My laptop has a Broadcom 4311 rev 01 wireless chipset. The drivers from the latest Linux git releases are vastly superior to the old bcm43xx driver... so as of yesterday, I'm back to running the latest wireless-2.6 code. The former upstream maintainer claims that he gets better throughput with the reverse-engineered Linux driver than he does on Windows XP.

While I was at it, I compiled in dynamic tick (tickless) support. I then had some fun with powertop, and managed to bring CPU wakeups down to about 8 per second. It seemed that using the framebuffer console required 5 wakeups per second, but the non-framebuffer one needed around 250... this was dreadfully unscientific, though.

Posted: 02 Dec 2007 00:00 | Tags: , , , , , , ,

Enscript git repositories

Today I created a git repository for enscript's Debian packaging. The upstream repository is in git as well, of course.

Next I need to work on pulling any distro fixes I can find into upstream, and getting a new bugfix version released. This should hopefully obsolete most of the Debian patches.

Posted: 02 Dec 2007 00:00 | Tags: , , , , , ,

Thu, 22 Nov 2007

More CPAN uploads

Following my update on Monday, I've made changes to the build systems of both DateTime::Calendar::WarwickUniversity and DateTime::Event::WarwickUniversity, in my search for higher kwalitee. These are not important updates, they just add a few more tests, and so on.

Posted: 22 Nov 2007 00:00 | Tags: , , , , ,

Mon, 19 Nov 2007

DateTime::Event::WarwickUniversity version 0.02

Warwick University appear to have changed some of their future term dates, so I have released version 0.02 of DateTime::Event::WarwickUniversity to CPAN.

This release also fixes bugs which were happening when using DateTime objects with time zones, so everyone should probably upgrade.

Overall, I'm surprised that it took me a year before I had an excuse for a new release. It would be worth adding the ability to get a real date from a given term week, but I haven't quite needed it yet.

Posted: 19 Nov 2007 00:00 | Tags: , , , , ,

Sat, 17 Nov 2007

GNU Enscript Maintainership

Some news that's overdue to be blogged: a few weeks ago, I picked up the Debian package 'enscript', and fixed some of the easier bugs in it. This has been uploaded to unstable, thanks to Myon, who rocks.

Having looked at the package, I realised that further work on it was unfeasible without a new upstream release. GNU Enscript had been unmaintained for a while, so I wrote to the GNU project and asked whether I could set up a Savannah project for it. A few days later, rms dubbed me the official maintainer.

This week, I sent in my copyright assignment form. This is one of the things I wasn't expecting - from the copyright headers, it didn't look as if Enscript required copyright assignment to the FSF. Still, it makes sense in the long run. I have to examine the existing code, and work out whether there are any other contributors from whom to ask for assignments or disclaimers. One of these days I'll actually get around to writing some code for it, perhaps.

On the plus side, I now have an account on fencepost.gnu.org, which means I have a nice gnu.org email address to go with it. Also, the FSF sent some nice stickers for my laptop with the copyright form.

Posted: 17 Nov 2007 00:00 | Tags: , , , , ,

WUGLUG talks last Wednesday

Last Wednesday, I gave two talks to WUGLUG; one on ssh security, and one on some ideas for making the UWCS website development process a bit easier.

This evening, I've been following up on one of the ideas I presented. I want to get the website to run on SQLite (because sqlite3 is already installed in DCS). However, this is going to mean writing a date formatting module to match SQLite dates. Still, such a thing could be useful more widely than CompSoc, so hopefully I can get that on CPAN once it's written. It might also be a good excuse to join Debian's Perl packaging team.

Meanwhile, it might be worth tidying up some of these Debian packages I've made of various website dependencies, and create an apt repository with a uwcs-website metapackage.

Posted: 17 Nov 2007 00:00 | Tags: , , , ,

Sun, 11 Nov 2007

Swapping Caps Lock and Ctrl

I have a lot of blogging to catch up on. Meanwhile, here's something completely unrelated.

I keep having to use the 'Ctrl' key a lot, and it's getting a bit awkward having my little finger hover near the bottom left of the keyboard all the time. I also often have problems with hitting 'Caps Lock' when I don't mean to. (I mean, who uses it? Not me.) So, the obvious solution is to turn the Caps Lock into a second Ctrl key.

I've done this before, but never remember to use the new, easier Ctrl. So, for this week, I'm going to swap the Ctrl key and Caps Lock on both my work and home computers, and see whether I can retrain myself. Hmmmm. It's really easy to configure in GNOME - in the keyboard preferences, go to 'layout options', and 'Ctrl position'.

If I can make using Ctrl really comfortable, then it'll even be possible to try out emacs. One thing I've noticed already is that changing windows in GNU Screen is a lot less work.

Posted: 11 Nov 2007 00:00 | Tags: ,

Fri, 19 Oct 2007

Woo, internet

Having asked nicely for a WEP key from a housemate, I now have an internet connection in the evenings. I'm still not sure how much time I want to spend on a computer, but it might at least let me work on some free software outside of work.

I've borrowed a huge book on PostgreSQL, so now have to find time to read it.

Posted: 19 Oct 2007 00:00 | Tags: ,

Thu, 11 Oct 2007

Mönchengladbach

This week, I have mostly been in Mönchengladbach, at the German office of credativ GmbH. It's a completely different experience working here, compared to Rugby. For one, the building is a lot bigger - several stories, compared to the tiny room we have at the moment in England (soon to change, hopefully). I've been meeting a lot of people, and trying to remember their names.

It's been a while since I was last in Germany - exactly seven years, in fact. This time round, I get to visit German pubs, and try Kölsch and Pils. I discovered yesterday that I share a birthday with another credativ employee, Bernd.

I haven't had much to say, for a week or two - I've been busy with work, and don't yet have an internet connection at home. Also, I can see my evening computer usage starting to dwindle, what with spending eight hours in front of a monitor during the day.

Posted: 11 Oct 2007 00:00 | Tags: , , ,

Thu, 27 Sep 2007

Dragging

Oh Pete, I deliberately didn't use your name because I wasn't attacking you in particular; I was aiming at the completely misleading article whose pagerank you (and Digg) increased to the point where it achieves higher results in searches for "XDS drag and drop" than the XDS specification itself. Please don't take it personally.

Of course, you still fail utterly for not providing any explanation of why you were so pleased to have this feature in your original post, and for not linking to, say, the GNOME 2.20 release notes, the relevant bug, or just writing something that won't feed anti-GNOME trolls for the next five years. But I'm glad to see that I've at least provoked the former, even if you also called me an ass at the same time. :)

Also, note that the bug in Nautilus is still open - there are still patches for the list view to test/improve, and other opportunities to extend XDS support to the rest of GNOME.

Posted: 27 Sep 2007 00:00 | Tags: , , ,

Tue, 25 Sep 2007

GNOME and XDS

Recently, people linked to a random news site claiming GNOME has added "XDS support" in 2.20. XDS is an extension to the XDND drag-and-drop protocol.

This is very misleading. The headline reads as if GNOME has not had any drag-and-drop support until now, which is ridiculous. The Digg headline was even worse: "GNOME Gets Real Drag n' Drop Support with XDS". Bullshit.

What actually happened is that Nautilus (the GNOME file manager) has received a patch to support this extension in the main window bit. It will probably help File Roller act more intuitively with respect to dragging files to Nautilus windows, and it is a good thing. It won't work with Nautilus's list view, yet. It is also possibly the least interesting of the new features in GNOME 2.20. It deserved one sentence tagged on to the File Roller bit of the release notes. I am not going to "scream with joy".

Incidentally, GNOME 2.20 is a fantastic release, and has caught me by surprise. EOG (the image viewer) has been almost completely rewritten. Evolution now has several small new features that I've been wanting - new mail notifications, and warnings about missing attachments. There's some nice GNOME Keyring integration going on... even the default theme looks shinier. So, there are plenty of other, better features to say "finally" about.

Posted: 25 Sep 2007 00:00 | Tags: , ,

New domicile

Today, I finally found a place to live in Rugby. It turned out that a landlord friend of my boss had a room to let, in a very convenient location. I'm within ten minutes' walking distance of the station, the town centre, and the (hopefully soon to be) new office. It's also quite cheap (university accommodation prices), with all utilities and bills except internet access included in the rent. Yay.

I need to move my belongings from Coventry to Rugby; most of the stuff I have with me can probably be carried on the train in the morning. I might stay one more night here, so I can go to the techteam stuff in the evening tomorrow.

It's still pretty easy for me to visit Warwick, especially at weekends, especially if there's convenient crash space in Coventry. So, I can attend XINGs and pub socials, if CompSoc doesn't object too much. :)

Posted: 25 Sep 2007 00:00 | Tags: , ,

Mon, 17 Sep 2007

First day at credativ

My first day at credativ went well. In the morning I updated some RHEL packages on a couple of test servers. I suspect the live systems will be next.

In the afternoon I copied over some PostgreSQL configuration tuning for an upgrade from 7.x to 8.x. I'm getting up to speed with the various systems - there's even the threat of fixing bugs in Java code, in the future.

Posted: 17 Sep 2007 00:00 | Tags: , ,

Fri, 14 Sep 2007

Engineers

I just realised that my new job title is 'Technical Engineer', so will probably annoy Sadiq.

Posted: 14 Sep 2007 00:00 | Tags: ,

Killing ODB

Late on Tuesday evening, I successfully got a branch of Choob to run without its 'Object DB'. Presently, it runs only a few of the more simple plugins - for instance, the 'Alias' plugin is not supported, so I spent a couple of minutes trying to work out why it wasn't replying to commands.

With ODB gone, vast swathes of complicated parsing code can be removed from the bot's core. JJTree should no longer be needed to compile the bot. The next step is probably to consolidate the core database code using Hibernate, and then get the more complicated plugins to work again.

Orthogonally to this, I'd like to kill HorriblePerlScript.java, and perhaps also design a nicer plugin system that lets Eclipse work with plugins as (shock) actual Java files. I suspect I'd need some help with that, though.

Posted: 14 Sep 2007 00:00 | Tags: , , , ,

Mon, 10 Sep 2007

64-bit Semprons

So, during a conversation at PyCon UK, Keith White noticed that he owned the same model (HP nx6325) laptop as me. He also informed me that his processor was 64-bit, and asserted that mine probably was as well.

I was sceptical. It's a Mobile Sempron - last I checked, all Semprons were 32-bit. Of course, I don't keep up with hardware at all. Checking /proc/cpuinfo:

tim@regulus:~$ cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 15
model : 76
model name : Mobile AMD Sempron(tm) Processor 3500+
stepping : 2
cpu MHz : 800.000
cache size : 512 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow up pni cx16 lahf_lm extapic cr8_legacy ts fid vid ttp tm stc
bogomips : 1597.70
clflush size : 64

The 'lm' flag means 64-bit. So intuitive and obvious... so I guess that's one more thing to try when I get around to reinstalling my laptop.

Posted: 10 Sep 2007 00:00 | Tags: , ,

Sun, 09 Sep 2007

PyCon UK

My conference tradition is to occupy myself with activities completely unrelated to the main topic. For instance, at DebConf I hacked on GNOME stuff, at GUADEC I hacked on Debian stuff, and at LinuxConf.eu I did very little. At PyCon UK, I've built the wireless-dev tree of Linux, and got the new b43 driver to run.

So, it works. It appears to have increased the transmission power of the card, and limits the bit rate properly, so should work at longer ranges without fiddling about. Having said that, I've been using it all of five minutes, so all kinds of bugs could be lurking around the corner.

I think I'll now take a look at Jackfield.

Posted: 09 Sep 2007 00:00 | Tags: , , , , ,

Jackfield

Of course, there are no packages for Jackfield yet. Rather than mess about with installing Jackfield, I badgered Stuart Langridge to do it for me.

So, I now have a working shiny clock thing. Making packages for Jackfield requires solving a few problems, like gconf keys for showing Jackfield and multiple instance detection.

Posted: 09 Sep 2007 00:00 | Tags: , , ,

Fri, 07 Sep 2007

First post

I've accepted a job at credativ, in Rugby - I start on the 17th. This means I'm preparing to move back to the Coventry area. (I just can't get away.) It's very exciting, and all that. :)

I celebrated today by getting an overpriced lunch at Starbucks. The other thing I've splashed out on has been a bunch of German reference books - I want to brush up for communicating with the German branch. I believe I'm going to be sent to Germany for a few days to meet the rest of the company, soon.

I'm still planning to go to PyCon UK this weekend.

Posted: 07 Sep 2007 00:00 | Tags: , ,

Wed, 05 Sep 2007

LinuxConf.eu 2007

On Saturday, I travelled to Cambridge via Coventry, seeing lamby, benji and mulletron's new house en route.

LinuxConf.eu has been pretty good. It's a technical enough conference that 'Linux' actually refers to the kernel, for the most part. I've learnt a few things about Linux development, and I'm vaguely curious now about getting involved there. Also, I took lots of photos - yesterday we got to see Linus Torvalds, who was quite entertaining while leading the git BoF session. I'll put the photos online when I'm back at a connection with decent upload bandwidth.

Today is the last day, with only tutorials rather than talks. The rest of the week is quite busy for me, and I'm going to end up travelling all over the place. Tomorrow I'm off to Rugby for a job interview. This weekend is PyCon UK in Birmingham, and I've been persuaded to attend that as well.

Posted: 05 Sep 2007 00:00 | Tags: , ,

Sun, 26 Aug 2007

BCM43xx wireless range

This weekend, I'm at the annual Debian BBQ in Cambridge, and it's very nice weather. All the cool people are sitting outside with their laptops, a good 10-20 meters from the indoor wireless access point, happily using the internet. The problem is, by default, my wireless card just doesn't work at that range.

So, today I had a look at the Broadcom bcm43xx driver code, to see what was going on. After reading a thread on the LKML bcm43xx-dev, it turns out that the current versions of this driver do not automatically adjust the bitrate. Manually setting the bitrate to a low value has got me at least double the range:

sudo iwconfig eth1 rate 1M

Of course, this isn't ideal. The same thread mentions that automatic rate adjustment will be implemented in the driver some time soon - which will be really useful.

Posted: 26 Aug 2007 00:00 | Tags: , , , ,

Thu, 23 Aug 2007

Automagic screen window titles

Lurking in #screen on freenode is paying off. I found out today that you can set your GNU Screen window titles automatically - so, while you are running a command, the title changes to that command. This will help when changing windows (such as when using the window list bound to C-a " by default).

This requires two things: first, your shell has to send an escape code as part of the prompt. With bash, there's a convenient spot in the default Debian .bashrc where $PROMPT_COMMAND is set depending on $TERM. Add a new case for 'screen', with:

PROMPT_COMMAND='echo -ne "\033k\033\134"'

The second part is to add a line to .screenrc:

shelltitle "$ |bash"

Where 'bash' is the default window title. This assumes that your prompt ends in "$ ".

See the GNU Screen Users' Manual for all the details. This also works well with a hardstatus line.

Posted: 23 Aug 2007 00:00 | Tags: , ,

Wed, 22 Aug 2007

Bring on GVFS

This evening, I have been made acutely aware that the gnomevfs Python bindings lack up-to-date documentation. Gnome-VFS is a pain to use anyway, but not having a complete reference manual is a bit of a problem.

One of the projects with quite a bit of buzz at GUADEC this year was GVFS. It's going to fix all the bugs in Gnome-VFS, and make our lives much happier. It'll be based upon FUSE... so, a very Hurdish approach. In fact, it will probably get ported to Hurd translators, which will be quite fun.

Meanwhile, I'll struggle on with gnomevfs, using whatever example code I can find, by trial and error.

Posted: 22 Aug 2007 00:00 | Tags: , , , , ,

Tue, 21 Aug 2007

Yahoo! UI Libraries

As part of creating my new blog, I mentioned that I threw some CSS onto my website. I'd been a bit reluctant to do this before, because there's usually a lot of boilerplate CSS to write before you can do anything interesting.

Last February, Yahoo! released a set of web development libraries under a BSD licence; among these were some CSS components. They are relatively painless to drop in, and simplify making fonts consistent across browsers, for example. The 'Grids' component makes creating columnar layouts without tables fairly straightforward.

CSS frameworks are a great idea - I wonder whether there are superior implementations? While 'Grids' is nice, there seems to be certain limits on how complex a layout you can really create with it - although you can get a long way, and it's worth trying out. I've not looked at the rest of the YUI, but perhaps all those Javascript components are useful as well.

Posted: 21 Aug 2007 00:00 | Tags: , ,

GPLv3 in Debian

With this morning's update of the 'base-files' package, I now have a shiny new copy of GPLv3 in /usr/share/common-licenses/.

I'm slightly concerned that a lot of packages will still be pointing to the GPL symlink, when they are GPLv2 only, not v2 or later. Oh well.

Posted: 21 Aug 2007 00:00 | Tags: , ,

Mon, 20 Aug 2007

One step at a time

My new blog is set up, more or less. I'm vaguely happy with it.

This one is a self-hosted Pyblosxom install, with various plugins. I've added tags instead of the default categories system, and set up comments. I also got a MetaWeblog API plugin working, so I can post this entry with gnome-blog. (I patched the Pyblosxom plugin to support images, but one thing I can't do at the moment is tagging from gnome-blog - it would be nice to add the UI elements.)

I still have various things I want to add: OpenID support for comments, perhaps, as well as trackbacks for all those arguments on various planets. In the longer term, I might want to rewrite my website so that everything integrates nicely. I've stuck some CSS on it so that it doesn't look quite so plain.

Posted: 20 Aug 2007 00:00 | Tags: , ,

Copyright © 2007-2012 Tim Retout