Lars Wirzenius: January, 2005
Contents
- January 30: Coding music
- January 28: Debconf5 talk wishlist, Project Leader elections are coming up soon
- January 21: Mail processing
- January 19: TV show batch processing
- January 18: I am the greatest loser of all, Edelfelt taught me portraits are dull
- January 12: The media industry is disgusting
- January 11: Military strength brownies
- January 07: Foot, meet shot
- January 06: Mr. Ludd is my hero
- January 01: New year's resolutions
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.
- A tutorial or workshop for writing good manual pages. All commands in Debian are required to have manual pages and it would be nice if they were nicely written and properly formatted. Perhaps other formats might be good too, as separate talks.
- Possibly a more general technical writing tutorial or workshop, something to help make it easier to produce good quality writings for and about Debian. Could be as simple as a checklist of most typical errors, plus a coverage of tools to help with language, and a list of links to sites where you can easily find help for this stuff.
- A tutorial on using gettext as an application programmer or translator. Good practises for translating programs. Existing translation teams and good ways to work with them, as translator or Debian developer.
- A tutorial on writing or improving tests for lintian and linda, the package quality checking tools.
- A tutorial on Unicode. Unicode is a fairly complicated character set, very much unlike ASCII or Latin-1, and few people understand it well. Things like several ways to encode a sequence of Unicode character and several ways of representing a single code point (whatever that is) are mystical and confusing.
- Ways to improve package building and general compilation speeds, by using distcc and ccache and other methods.
- A tutorial or workshop on adding automatic tests to packages to be (perhaps optionally) run at build time, so as to catch build or configuration errors or such.
- Presentations from various important parts of Debian about what they actually do and how. For example, at Oslo there was a presentation by the ftp-admins. Something similar from the DPL, the release managers, debian-installer developers, toolchain maintainers, the security team, and GNOME and KDE teams would be nice. Others too, I have just listed here what I would be most interested in hearing myself.
- An overview of our track record for releasing fixes for security problems. Possibly combined with a talk about looking for common types of security problems in one's packages and the proper ways of releasing fixes by co-ordinating the release of the fix with other distros and the upstream developers.
- A talk on profiling memory usage correctly (including why it is difficult to do that via top and why the X server doesn't really use 128 megabytes of RAM) and what to do to avoid memory leaks, excessive memory usage, and in general how to avoid wasting memory needlessly.
- A presentation on copyrights, trademarks, and software patents, implied and explicit warranties, liabilities, what they actually are, how they affect free software, and how they work in various parts of the world, and what the status of various current changes to this are.
- A presentation of how easy it is to break into laptops at conferences or other large gatherings and what one can do about this. This could also cover other safety and security isues, such as doing backups when not at home, avoiding to have one's laptop stolen (and how useless Kensington locks are), and not having people sit on one's laptop.
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.
:0c 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.
:0 * ^X-CRM114-Status: SPAM.* spam.maildir/
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
.
mailfilter.cf
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:
#!/bin/bash find $HOME/not-spam.maildir/{cur,new} -type f | while read mail do /usr/share/crm114/mailfilter.crm -u $HOME/.crm114 --learnnonspam \ < "$mail" > /dev/null mv "$mail" $HOME/Maildir/new done
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 base=$HOME/.evolution/mail/local/Inbox.sbd doit() { if [ -s "$base/$1" ] then echo "$1..." formail < "$base/$1" \ -I X-CRM114-Status -I X-CRM114-Action -I X-CRM114-Version \ -s ssh pieni.net /usr/share/crm114/mailfilter.crm \ -u /home/liw/.crm114/ "$2" < /dev/null fi } 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 abclocal.go.com (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" (4.5.1.1), 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:
- avoid re-reading books, to get out of the habit of only reading books I've read before
- do at least one self-imposed photography assignment per month, to improve as a photographer
- spend more face-to-face time with my friends
- take better care of my health
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:
- I will take better care of my healt. This includes going to the gym regularly.
- I will learn enough French to read comic books in French (possibly with the help of a dictionary) by the end of the year. This has been a dream for at least two decades for me, it's about time I do something about it.
- In situations where it matters, I will favor quality over quantity.
Once again, it is good for me to write these in public so that the embarrassment acts as a motivator.