Lars Wirzenius: December, 2004


Friday, December 31, 2004

Random hacks: Sound Converter 0.5

Finland has started its traditional war on the new year. Teenagers and drunk men all over the country are playing with explosives in homes, backyards, on streets, in crowds, and anywhere else they fancy. It is therefore good to listen to some music to drown the explosions. But wait! All the music is in the wrong format. Darn.

Sound Converter to the rescue! With the help of decodebin, Sound Converter can now read any sound file formats that GStreamer supports. The new version 0.5 also touts a manual page. Read it before it becomes obsolete!

See my programs page for the download link. One of these days I should probably make a page for Sound Converter, with screenshots and stuff, but not yet. I also didn't have time to make a Debian package yet, but there is always next year.

Tuesday, December 28, 2004

Random thought: On burning up money uselessly

It is that time of year again when Finns buy fireworks for New Year's Eve. It strikes me that the world would be a better place if they'd give the money to, say, the Red Cross instead. They could use the money right now, after the Indonesian earth quakes and their after-effects.

Monday, December 27, 2004

Quote: Release management

Roland McGrath describes how he will do release management for the stable branch of the GNU C library:

The paramount rule of the stable branch is that everything that happens there must be specifically approved by the branch's release manager, who is me. I intend to be merciless about enforcing these rules I'm making up right now. (Of course, I will violate them myself for unspecified reasons at unspecified times, but that doesn't mean I will violate them for you when you ask.)

Random hacks: Sound Converter 0.4

Sound Converter preferences window

Sound Converter preferences window

I have just created version 0.4 of my sound converter application. I've fixed various bugs and made it possible to configure where output files are placed and how they are named. Also included is support for drag-and-drop: you can drag sound files from Nautilus to the list of input files. Also, three formats are now supported for input and output: WAV, FLAC, and Ogg Vorbis. I tried, but failed, to add support for MP3 as well. I'll look at that closer for the next release. I'll also make a Debian package for the next release, I think.

I hope that this version should now be generally useful, so I would appreciate any and all feedback. Thanks. The source code is available from my programs page.

Saturday, December 18, 2004

Review: "Vanha Koira" (Old Dog) by Ville Vuorela, with illustrations by Petri Hiltunen

This review may be biased. Ville is my friend. It may also contain spoilers.

Vanha Koira (Finnish for "Old Dog") is a sword and sorcery style fantasy novel of the "low fantasy" persuasion. Set in Jaconia, the world created by Petri Hiltunen, a Finnish comic book artist, the novel describes part of the story of an old praedor. In Jaconia, there are many areas of wilderness and ruins where sorcerers used to live. They are now quite dangerous, but some people do go there to find forgotten treasures. They are called praedors. Though Hiltunen created the world and has made several graphic novels set in it, and has also illustrated this book, the story is all by Ville. Ville has also written the role-playing game, Praedor.

If you have read any of the original Conan stories by Robert E. Howard, or some of the original Tarzan stories by Edgar Rice Burroughs, Ville's novel will have a familiar feeling. Plenty of action, plenty of gore, and a very vivid scenery.

Also common is a certain lack of depth in the characters. This is typical for the genre. The reader is left wondering what motivates even the main character, Old Dog, and why he goes on one sort of mission rather than another sort, or why he doesn't stay at a place of peace when he finds it. Some answers to such questions are given, but they feel attached to the characters rather than coming from their personalities. Or, to be precise, there is no conflict between act and personality, because the reader does not really get to know the characters.

Yet, this is not a problem. The characters feel live enough to be interesting and the point of this genre is not introspection and character development, it is action, violence, sex, and cheap thrills. As Ville himself says, Vanha Koira is written in the spirit of the pulp novels from the 1920s and 1930s. Mass entertainment, not exploration of the human condition. Die Hard, not Cat on hot tin roof.

The book certainly is entertaining. It is also well written entertainment: the text flows nicely, and the story is nicely paced, with neither long dull passages, nor mere descriptions of actions. It is a pleasure to read and easy to immerse in what happens, as opposed to how it is told. Oh, and did I mention the scenery? I like scenery, and I like it when I can visualize it myself from the author's descriptions. Ville is good at that, too.

Hiltunen's illustrations are true to his form. They are, however, merely illustrations. The book would work without them.

I do hope Ville will write more. Lots more.

One day, it might be fun to have all the Jaconia/Praedor related stuff translated to English. Right now, it is all in Finnish. I'm pretty sure there would be an international market as well.

Wednesday, December 15, 2004

Random hacks: Sound converter dilemma

I have dilemma with my sound converter application: where should output files be put and what should I do if they exist already? For extra kicks, what should I do if the output file is the same as the input file?

At the moment, I put the output file in the same directory as the input file, and change the suffix to create the output file. So, if the input file is /foo/bar/sound.flac the output file will be /foo/bar/sound.ogg (assuming conversion is to Ogg Vorbis). This is simple, but has some problems. For example, one use case scenario is when the input files are on a CD or DVD, and the output should go to the hard disk. So the user should be able to specify the output directory in some cases.

Another use case scenario is that the user wants to store the output files on the hard disk in a directory tree. Should I make my application be able to create subdirectories based on meta data tags (one directory for each artist, one below that for each record, for example)? Sound Juicer does this, so perhaps I could copy what it does.

Suppose the user wants the output files go to the same directories as the input files. If the input is a high quality Ogg Vorbis file and the output file should also be a low quality Ogg Vorbis file, what should I do? Abort with an error message? Add ".new" somewhere in the filename? Use a temporary filename and then replace the input file with that? Send the output to the user via e-mail?

Life is so much easier for command line programming, where aborting with an error message is always the right thing to do at the first sign of trouble.

Something good has happened, however. Chris Jones sent me a patch to make my application accept dropped files from Nautilus and Rhythmbox. I re-wrote the patch, but anyway, it seems to work. This is nice. I also note that the overhead of Python and GStreamer seems to be fairly small as compared to using oggenc from the command line.

Friday, December 10, 2004

Anecdotes: Embarrassment is good for the soul

It does good to the soul to share your embarrassing moments with others on occasion. So here's two embarrassingly stupid things I've done.

I was trying to fix a problem with the optical drive in my laptop. Specifically, I had trouble getting it to eject. Pressing the button on the drive didn't do anything and using Nautilus didn't work either. I went to the command line to try the command line eject tool and it too wouldn't do anything. I was getting really annoyed, and started trying different command line tools and options and reading kernel log messages and so on. At some point I noticed that the server in the other room had started making worrying noises, and this didn't improve my temper at all. Having one computer malfunction is bad enough, but having two do it at the same time is more than twice as bad.

Eventually, I did figure out that the laptop's drive wouldn't open because I had a movie player still running, and that I'd misinterpreted Nautilus's error messages. Also, the noises in the server were due to my using eject in the command line window where I had logged in to my server. The server's optical drive would open a bit, hit the front panel, then close again because it couldn't open fully. For fifteen minutes I tried opening my laptop's optical drive, instead opened the server's one, ka-klunk, ka-klunk, and didn't realize what I was doing.

Yesterday, I finally realized why my bogofilter setup didn't want to learn that a few automatic e-mails I get from my mailing list manager are not, in fact, spam. I'd gotten the "unlearn spam" and "learn non-spam" options the wrong way around.

Thursday, December 09, 2004

Random thought: Wishful thinking

I've been engaging in some wishful thinking today, as a way avoid being depressed or panicky. I've been wishing someone would mail me and say they would be happy to pay me to develop one of my pet projects full time. For example, one of the following:

I have more ideas (my tinfoil hat isn't keeping them out), especially for smaller projects, but since I don't know any really generous multi-millionaires, I won't bore you with the rest.

Wednesday, December 08, 2004

Personal life: No Nokia

I no longer work for Nokia.

Before I joined Nokia I had formed an understanding that Nokia was using and would be using its patent portfolio defensively. Part of the basis of this was based on a public presentation at an EFF Finland meeting by a senior Nokia manager on the Nokia software patent strategy. Yesterday at a Nokia internal patent workshop I came to the conclusion that my understanding was not only wrong, but that the reality was quite horrible. After thinking about this for an evening I came to the conclusion that my conscience would not allow me to work for Nokia anymore.

Now I'm unemployed and rather urgently looking for work. Any hints about nice jobs (open source development preferred, of course) would be welcome.

Update: Clarified that the public presentation was at EFF Finland (not internally).

Monday, December 06, 2004

Enemies of Carlotta: Some progress

I've been doing some work on Enemies of Carlotta again lately. Many changes in the past couple of weeks: fixes for mail header encodings, command line options for all settings and more, a plugin architecture, and a bug fix for a race condition when many moderators approve the same message at the same time. The current release is 1.1.4. It is a development release, not yet meant for production use.

Random hacks: Sound Converter 0.3

I decided to release version 0.3 of my sound converter after all. The 0.2 version seems to have same problem, so 0.3 is not a regression. So, Sound Converter 0.3 is released.

Sunday, December 05, 2004

Random hacks: No Sound Converter version 0.3

I meant to make a new release of my sound converter application, now that it uses GNOME-vfs for I/O and has a command line interface as well, but during pre-release testing, I found out that in GUI mode it tends to crash. It seems that my previous release also has started to crash. Both crash by segfaulting the Python interpreter, no less. Either I've found a bug that exists in both versions of my application, or the GStreamer stuff has some bug. Or something. So I won't be making a release tonight. I'll have to figure out what the problem is and I'm feeling like doing that tonight. This smells like a race condition, and I hate debugging those.

Thursday, December 02, 2004

Personal life: Death is depressing, part 2

Just when I'm getting over the death of my grandmother, the wife of a friend dies. 'Tis the season for sadness, or it seems that way.

I expect to either be quite inactive outside work for a while, or else unusually active, while I cope. We'll see.