Lars Wirzenius: October, 2004


Friday, October 29, 2004

Random hacks: Sound converter application, version 0.1

Hacked a bit on my sound converter application again and made version 0.1. This release includes a Makefile (for installation), and a preferences dialog that lets you set the quality level of the Ogg Vorbis output. It also won't blindly overwrite files that already exist.

I think this version should be good enough to use (I've installed in my /usr/local/bin) if what you need is to convert FLAC to Ogg Vorbis. I'll have to figure out reasonable ways to support more input file formats. Preferably I would like to support everything that the GStreamer installation on the machine supports.

Wednesday, October 27, 2004

Debian: No more sex for Debian

The ftp administrators have removed, on my request, the package "sex" from Debian. Hopefully this does not make Debian less fun for people.

The "sex" package was for my editor, "Simple editor for X", which I wrote almost a decade ago. I had grown tired of using text-mode editors such as Emacs and vi, and wanted something simple and fast to use in a graphical environment. At that time the two major widget toolkits were Motif and Athena. Motif was non-free, though the lesstif project was trying to clone it in a free manner, so I chose Athena for my editor. Athena is what, for example, xterm uses, but it has otherwise mostly faded away and is rarely seen on a modern X desktop. On the other hand, when it is seen, it tends to be immediately recognizable, as it is visually different from pretty much everything else.

Programming with Athena widgets was somewhat tedious and about a light-year behind using GTK+ with Python and libglade. Since SeX was tied to using 8-bit characters, and I wanted to move to using UTF-8, earlier this year I abandonded it for something else (a quick hack written with GTK+, Python, and libglade). I have been reluctant to touch SeX for quite a while, so when a "fails to build from source" bug was created when a library it uses changed, I decided it was time to stop having SeX in Debian.

As far as I know, SeX has never had more than a few users and I suspect most of those had abandonded it before I did. Certainly, when I checked the Debian popularity contest pages, no-one reported using it.

Oliotalo: Leaving Oliotalo

Next week, I will be working for Nokia instead of Oliotalo. In June, I decided to find a new job and Nokia is the one that I chose.

I had several reasons for wanting to leave Oliotalo, and several reasons for wanting to stay. Reasons for staying: Oliotalo is a nice company, and its start-up difficulties would seem to be over for now; the future is bright. The people are wonderful: likeable, smart and know what they do, and Kaius is a kind of dream boss in that he is at the same time a competent programmer, manager, and salesman. He also has courage and vision: few managers would not only allow an employee to design and implement a programming language but who think it is a great idea and who can sell it to customers as a good thing.

On the other hand, Oliotalo is still a small company, meaning that everyone needs to stretch in several directions at once, which is quite stressful to me. The embedded platform we mostly use has severe problems and dealing with a crappy platform instead of actual program development is extremely stressful. Development of my programming language had been mostly reduced to fixing bugs in the bindings specific to the embedded platform, which is pretty boring and also stressful, as the bugs always happen in when there is a hurry. What actual development of the language or the libraries there was need for, I did not actually have time for, since I had to deal with the platform specific bugs, so we used a sub-contractor to do the interesting parts.

In short, too much stress and too little fun.

Saturday, October 23, 2004

Random hacks: Sound converter application

My little sound converter application has progressed a bit today. I got unofficial Debian packages of the GStreamer Python bindings from Joe Wreschnig and read about using GStreamer for a couple of hours. After that, both reading tags from FLAC files and converting FLAC to Ogg Vorbis was easy. GStreamer rocks.

It now actually does something useful. Now that I know how to do all the technically difficult stuff (the actual conversion), I should probably start thinking about usability. The code is only 430 lines of code, so rewriting everything from scratch to improve usability won't be much of a problem.

In case anyone is curious, I put up a tarball. Note that this is dangerous software, it may well remove all your files.

Friday, October 22, 2004

System administration: Image linking, again

After thinking about what Erich Schubert and Joey Hess had to say about preventing image linking, I decided to turn off my Referer prevention. It's too much work for me to get it right in all situations.

Wednesday, October 20, 2004

Random hacks: Sound converter doodling

Sound converter doodle screenshot

I spent much of today re-learning GTK+ stuff and wrote the beginning of a small application for converting sound files to other formats.

The application doesn't do much yet, it merely lets you add and remove files to the list. I'm under the impression that GStreamer is the current best choice for reading meta data from the files and for doing the actual conversion, but the Python bindings for it haven't been made part of Debian yet. I hope that the preliminary packages I've been told about will work well enough that I can finish off this little application. It would be nicer to have a nifty GUI tool than doing things on the command line every time I rip a new CD. (I rip to FLAC and the convert to Ogg Vorbis.)

System administration: Zero gigabyte USB hard disk

I bought a Transcend StoreJet zero gigabyte USB 2.0 hard disk today. Actually, it is just at wrapper for 2.5 inch laptop hard disks that talks USB to the host computer. I put in the hard disk of my old, broken laptop (Igor) and now I have a 20 gigabyte portable hard disk, which I named "Luggage". Not bad, for 31 euros.

Installing the thing went very well, I only had a minor problem: the hard disk had an adapter for its IDE connector that made it incompatible with the StoreJet's connector. Removing the adaptor made the two compatible and after that, it was all plug and play.

I have my laptop configured so that udev creates /dev/luggage and the disk is user-mountable as /media/luggage (using vfat, since I expect to exchange files with Windows using friends). I find udev so much fun I suspect I'm silly.

Sunday, October 17, 2004

Random thought: Audiences are fun

I've given two talks this autumn, and found that I still like to speak in front of an audience. I haven't done much of that since I stopped being a TA at the university, eight years ago. My first presentation was on Real programming and the second one on The Joy of Human Interaction Over the Internet (or: Developing and integrating free software in a large project for fun and profit). I have put the slides on the web just in case anyone finds them interesting, but beware they do not contain most of my presentation. My presentations tend to contain many words that I don't put on the slides; the slides are meant to support my speaking, not function separately.

Random thought: Job titles

Benjamin Mako Hill and Scott James Remnant want fancy job titles. I want either something as simple as possible ("programmer") or much fancier than what those two want. I want something that makes the official title of Nicholas II to shame with simplicity and brevity. In case you hadn't heard, his title was

Nicholas II, by the grace of God, Emperor and Autocrat of all the Russias, of Moscow, Kiev, Vladimir, Novgorod, Tsar of Kazan, Tsar of Astrakhan, Tsar of Poland, Tsar of Siberia, Tsar of Tauric Khersones, Tsar of Grusia, Lord of Pskov, and Grand Duke of Smolensk, Lithuania, Volhynia, Podolia, and Finland, Prince of Estonia, Livonia, Courland and Semigalia, Samogitia, Bielostok, Korelia, Tver, Jugra, Perm, Vyatka, Bulgaria, and other territories; Lord and Grand Duke of Novgorod, Chernigov; Ruler of Ryazan, Polotsk, Rostov, Jaroslavl, Bielozero, Udoria, Obdoria, Kondia, Vitebsk, Mstislav, and all northern territories ; Ruler of Iveria, Kartalinia, and the Kabardinian lands and Armenian territories - hereditary Ruler and Lord of the Cherkess and Mountain Princes and others; Lord of Turkestan, Heir of Norway, Duke of Schleswig-Holstein, Stormarn, Ditmarsch, Oldenburg, and so forth, and so forth, and so forth.

Haven't quite yet formulated something to trump that, however.

Luckily, I don't often need business cards.

Friday, October 08, 2004

System administration: Preventing img linking, part 2

Erich Schubert gives some further advice on img linking. I hadn't thought of the img links I put into my RSS feed. Will have to think about that; this would be easier to solve if I knew all the places where my log is aggregated. Can't say I much care about "privacy proxies" that break Referers, however.

Joey Hess also comments and doesn't think it reasonable practise. I understand his point, and I don't disagree much. The reason I decided to block img linking, if I can, is that via my Referer log I found people using portraits I've taken of friends and others on various web sites. I don't really care about the copyright issue here, but some of those uses were potentially offensive to me or the people in the portraits. That is, the photos were being shown with img on web pages where the surrounding context was not-nice. With an a link, the context would not have been there.

I'd rather prevent my photos from being used on other sites than stop putting up photos at all. I might find a better way to do this than mucking about with Referers, however, since it is not really a very effective method.

Thursday, October 07, 2004

System administration: Preventing img linking

I got tired of people linking to my photos with the img element, so I configured Apache for, my personal domain, to not allow viewing of images if there is a Referer header that is not from my pages. Instructions from

SetEnvIfNoCase Referer "^http://liw\.iki\.fi/" local_ref=1
SetEnvIfNoCase Referer "^$" local_ref=1
<FilesMatch "\.(gif|jpg|png)">
Order Allow,Deny
Allow from env=local_ref

Tuesday, October 05, 2004

Quote: Mudgeeraba Creek Emu Racing and Boomerang Throwing Association

The Mudgeeraba Creek Emu Racing and Boomerang Throwing Association. One of its rules read: "The decisions of the judges are final unless shouted down by a really overwhelming majority of the crowd present. Abusive and obscene language may not be used by contestants when addressing memebers of the judging panel or, conversely, by members of the judging panel when addressing contestants (unless struck by a boomerang)."

— Len Fisher, How to dunk a doughnut, page 206

Monday, October 04, 2004

Debian: DebConf5 IRC meeting

We had an IRC meeting about DebConf5 last night (Finnish time). I acted as secretary and have now put the minutes in the wiki. The entire IRC log is also on the web. Please see for instructions on joining the DebConf5 mailing lists, and links to the archives.