Lars Wirzenius: December, 2004
Contents
- December 31: Sound Converter 0.5
- December 28: On burning up money uselessly
- December 27: Release management, Sound Converter 0.4
- December 18: "Vanha Koira" (Old Dog) by Ville Vuorela, with illustrations by Petri Hiltunen
- December 15: Sound converter dilemma
- December 10: Embarrassment is good for the soul
- December 09: Wishful thinking
- December 08: No Nokia
- December 06: Some progress, Sound Converter 0.3
- December 05: No Sound Converter version 0.3
- December 02: Death is depressing, part 2
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
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:
- Enemies of Carlotta, my mailing list manager. It is already nice and works pretty well, but it could certainly be more flexible, faster, it could have a web based user interface for doing some stuff, and so on. The flexibility could come in handy if a site such as lists.debian.org would be converted to use EoC: they have lots of unique needs that it would be nice to be able to implement as plugins, for example. Integration with some of the web archive creaters for mailing lists would be nice. Documentation needs to be written and that will require some research into different MTAs. There's endless hours of fun to be had here.
- Duplicity seems like the beginnings of a nice tool for doing secure remote backups. That is, backups of files to a remote file server (over ssh or ftp or some other suitable protocol) done so that they are encrypted at the local end but the rsync algorithm is still used to avoid using excessive amounts of bandwidth. It seems to me that this would be a cool program to have, but that the current implementation needs some work still.
- General Debian development, helping where I can, instead of maintaining particular packages. Doing code reviews, writing manual pages, fixing bugs, writing tools to help others. This used to be a hobby for me, but I have not been able to much of it in my free time for some years now, and I would love to be able to go back to it.
- Writing a high quality typesetting engine back end that could be used from any number of applications. Something in spirit like "TeX as a library". Fop probably does most of this, but it might be too heavyweight for many applications, and also it is in Java, which makes it difficult to use from most other languages.
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.