Lars Wirzenius: January, 2005


Sunday, January 30, 2005

Random thought: Coding music

I notice that I listen to music in three different modes: as generic background music; as coding music; and as brooding music. These different modes are quite distinct.

Most of the time, when I have music playing, it is as background music. I like background music. It drowns out environmental noise (traffic, neighbors, etc), and also keeps my subconscious from distracting me when I'm doing work. Sometimes when I'm, say, waiting for a compile to happen, I start thinking about completely different things. This can be really bothersome, when it prevents me from going back to work on the program that just finished compiling. With background music playing on, this rarely happens.

When I want to really concentrate on cranking out code as fast as possible, I listen certain kinds of music that helps me do this. Background music can be pretty much anything, but coding music needs to make my adrenaline flow faster. This usually correlates well with heavy music. Tracks such as Manowar's Number 1, Alice Cooper's House of Fire, and Rammstein's Du Hast are pretty much perfect for me. On the other hand, it doesn't have to be heavy music. Britney Spears's Baby One More Time (that track, not the rest of the album) also works for me. The best single coding music track I have is March of Cambreadth by Heather Alexander, classified as "celtic music", I believe, but pretty far from Clannad.

Note that coding music is for coding only: for writing out code that implements a design that is ready, or that is simple enough that it doesn't need a separate design phase. When I need to think deep thoughts, I remove my earphones, get up from my chair, and walk around or wash dishes by hand.

A few times a year I want to enjoy music in a way similar to reading a book: by engrossing myself completely in it, so that for a little while the world consists only of the music and my thoughts. When this happens, I am in a very brooding mood, and I have about a dozen tracks that correspond exactly to this mood: beautiful, emotional, associated with certain important memories, and neither depressive nor uplifting. I can listen to them for an hour or for six hours, and emerge a better person. For some reason, I never want to do this without brooding.

Friday, January 28, 2005

Debian: Debconf5 talk wishlist

Debconf5 registration is open. This reminds me that there are some topics I would like to see there, or somewhere.

I'm not going to offer to give talks on these, except perhaps the first one. The rest, I'm not qualified to. Would be nice to hear them from others who are qualifed, however.

Debian: Project Leader elections are coming up soon

I happened to read the Wikipedia page on Vlad Tepes, a figure in 15th century Romania, a part of Romania next to Transylvania.

A very rough summary: Vlad's father the Wallachian king makes peace with Turkey, sends Vlad and other son as hostages. Hungary attacks Turkey, forces Wallachia to join, Wallachian king sends a third son. Attack fails. Hungary vindictive, murders Wallachian king and third son. Turkey annoyed, releases Vlad, gives him an army. Vlad conquers Wallachia, becomes king, kills lots of people brutally. Hungary annoyed, attacks, throws Vlad out, puts in puppet king. Puppet king switches sides, likes Turks. Vlad gets friendly with Hungary, gets army, attacks puppet king, becomes king, kills lots of people brutally. Later, Hungary attacks Wallachia, captures Vlad, keeps Vlad prisoner. Later, Hungary lets Vlad become king again. Vlad kills lots of people brutally. Eventually Turkey annoyed again, kills Vlad.

Keeping this in mind, it is about time to start the Debian Project Leader campaigns again.

Friday, January 21, 2005

Random hacks: Mail processing

I've now been using crm114 instead of bogofilter for a few weeks. On the whole, it seems to me that crm114 filters about as well as bogofilter, possibly a bit better, except that it has not yet learned that certain kinds of mails are not spam. Specifically, Debian bug reports and mails about DebConf5 are often classified as spam, though not always.

On the whole, then, I'm happy with crm114. It promises to not break frequently due to database on-disk format changes, the way bogofilter does. This was my main reason for switching.

While on the subject of mail processing, I thought I'd describe what I do. All my private (non-work) mail to various addresses is redirected to one place, since it is easier for me to deal with just one inbox rather than several. At this one place, my mail server, I run procmail. Over the years, my .procmailrc has variously been really complicated and really simple. I prefer simple, since things break less that way. The first procmail rule I have is one that makes a copy of all incoming mails in an archive folder. This is important: as long as this rule works, all incoming mail can be retrieved from the archive folder even if later processing breaks.

backups/mail/backup-`date +%Y-%m-%d`.maildir/

The way the rule is written, the archive folder is per-day. The next rule filters the mail through crm114:

:0fw: .msgid.lock
| /usr/share/crm114/mailfilter.crm -u $HOME/.crm114/

This rule makes procmail use the output of crm114 for the remaining rules. Spam is then put in a separate folder, which I occasionally check to correct any mistakes crm114 makes.

* ^X-CRM114-Status: SPAM.*

crm114, as packaged for Debian, was not quite as nicely to set up for use as bogofilter is. I ended up creating a directory ~/.crm114 and making symlinks there to /usr/share/doc/crm114/examples/crmfilter. needed to be copied so I could change it, of course.

Sometimes crm114 makes mistakes. When it thinks a valid mail is spam, the mail is put into spam.maildir, which I read with mutt. To teach crm114 I move the mail to not-spam.maildir and run a script that does the teaching. I have a macro in mutt to do the moving easily:

macro index S "<save-message>~/not-spam.maildir/\ny"

The crm114 re-education script:

find $HOME/not-spam.maildir/{cur,new} -type f |
while read mail
  /usr/share/crm114/mailfilter.crm -u $HOME/.crm114 --learnnonspam \
    < "$mail" > /dev/null
  mv "$mail" $HOME/Maildir/new

When crm114 misclassifies a spam as valid mail, it gets downloaded to my laptop by Evolution. In Evolution, I move the spam to a folder (called "is too spam" in Finnish), which a script then copies to the server and runs through crm114. Similarly for

#!/bin/sh -e


doit() {
    if [ -s "$base/$1" ]
        echo "$1..."
        formail < "$base/$1" \
                -I X-CRM114-Status -I X-CRM114-Action -I X-CRM114-Version \
                -s ssh /usr/share/crm114/mailfilter.crm \
                -u /home/liw/.crm114/ "$2" < /dev/null

doit "Onpas roskaa" --learnspam

On the whole, this setup works pretty well. It is not quite as smooth as using a filter well integrated to Evolution would be (and there is one), but I need the filtering done on my mail server, since the filter also protects the mailing lists I run.

Wednesday, January 19, 2005

Random thought: TV show batch processing

Joey Hess has also realized that TV series are best watched in batches. I first realized this a couple of years ago with Buffy the Vampire Slayer. I also don't have a television, and watch things on my computer, and watching an entire season or series makes things rather more enjoyable.

Lately, I've been trying to educate myself about some classics, namely Star Trek and Monthy Python's Flying Circus. I've watched about twenty episodes of the former, and it is getting rather difficult to continue. The plots are really simplistic and something about them irks me greatly, though I haven't yet figured out what. I'm also getting tired of watching female characters dressed only in mini-skirts. While I have nothing against mini-skirts as such, the monotony is boring. If you're going to be sexist and demeaning to women, at least do it with style, please.

Monty Python is much better, and I quite enjoyed about the first dozen episodes. While they aren't quite repetetive, it feels, though, that they aren't bringing much new to the series after the first season. On the other hand, they haven't become actually boring.

Tuesday, January 18, 2005

Random thought: I am the greatest loser of all

Note to self: I get really bored by games where you compete with others.

I played tetrinet for the second time in my life today. It only lasted about six minutes, for two or three games, half of which was spent installing the client and reading the manual page. I quit in the middle of the last game, since it was not fun. This makes me a bigger loser than any of the people on Planet Debian who have been perpetrating the "online loser quiz" meme lately.

On the other hand, I can understand why it is such an addictive game for many. If I could stomach the competition, I might like it myself. As it is, I'll stick to single player games. I don't even like the high score lists in, say, the GNOME Mine sweeper game.

Photography: Edelfelt taught me portraits are dull

I went to see the Albert Edelfelt exhibition at Ateneum, the national Finnish art museum. It has been an unprecedented success: over 200,000 visitors already, more than any previous exhibition. The reason is pretty clear: Edelfelt is probably the most well known of the Finnish painters, and his adulthood coincides pretty much with what is known as the golden era of Finnish art, the late 19th century. Many of his paintings are have an iconic status in Finnish culture.

It was quite nice to see the paintings in real life. What struck me most was two conclusions that I made that directly affect my photography, which is why this entry is in the photography category.

First, dozens of portraits, even brilliant ones, gets quite boring. If I want to continue portrait photography, I should restrict the number of photographs I show at a time to less than a dozen and even then they should be significantly different from each other.

Second, bigger pictures are better pictures. I need to start thinking about ways to make bigger prints.

That second conclusion is facetious, of course. It is, however, clear that some of the large paintings were really impressive and the small sketches next to them were not at all impressive. The difference wasn't just that the sketches were less well made, or had somewhat different compositions, the size also was a clear factor.

Wednesday, January 12, 2005

Rant: The media industry is disgusting

A museum guard tells a little girl that learning to draw by making sketches based on paintings in a museum is a copyright violation: story at (via Joi Ito, who got it from others). Obviously, the guard was wrong, and the museum has said as much.

I think this is the result of the media industry making too strong claims about what copyright means, and what the law says. For example, pretty much all DVDs sold in Finland say that any copying at all is illegal, when it is explicitly not. The copyright law here allows copying for personal use and we pay for it in the form of a "cassette tax" levied on empty casettes, CDs and DVDs. The movie industry even tried to have a campaign here implying that bringing a camera into a movie theater is illegal. They wanted us to watch each other in case we do anything suspicious. Quite disgusting.

This insistence on making stronger claims than the law is probably part of the campaign to strengthen the powers of copyright owners. It is beginning to worry me (rather than just annoy me).

Tuesday, January 11, 2005

Random thought: Military strength brownies

I have a book by John J. Kohut, called Stupid Government Tricks, which mentions Pentagon document MIL-C-44072C, MILITARY SPECIFICATION: COOKIES, OATMEAL; AND BROWNIES, COCOLATE COVERED (H missing in the original). In other words, a recipe for oatmeal cookies and brownies. Today, Scott James Remnant found a copy on the net (I have a local copy). It is 26 pages long, contains tolerance limits on the sizes of nuts, various other ingredients, the resulting cookies (and especially the chocolate coating), and the packaging. They also have error codes for various things that can go wrong and be found during quality assurance inspections. Let us also not forget that "[i]f necessary, each ingredient shall be examined organoleptically" (, that is, by tasting.

The things big organizations have to do to get good brownies. I am assuming US military gets good brownies. After 26 pages of instructions and quality assurance methods, they had better be.

Friday, January 07, 2005

Quote: Foot, meet shot

If you want to keep shooting self in foot please do so quietly. — Greg Folkert

Thursday, January 06, 2005

Random thought: Mr. Ludd is my hero

I am a Luddite. I have just prepared the second snail mail letter to be sent this year. That's as many as I sent in all of last year. At this rate, my stack of empty envelopes will only last me a decade.

Saturday, January 01, 2005

Random thought: New year's resolutions

My new year's resolution is 116*115 pixels per inch.

Last year, I resolved to do the following:

The first and last one I managed, I think. I only re-read one book, and that was an accident: I didn't realize I had read it before until a third way through the book. I also started going to the gym, although not very regularly. I completely failed to do much photography at all and I continued as an hermit.

A 50% success rate is not very impressive. Despite of this, I'll declare the following resolutions for 2005:

Once again, it is good for me to write these in public so that the embarrassment acts as a motivator.