4 Mar 2004 habes   » (Journeyer)


I was really happy with our Audacity talk at CodeCon 2004. We had the last slot because I had to fly in that morning, and I feel like we ended the conference with a bang. Dominic's demo went over well; his final gesture was to record a voiceover on top of the introduction to a "demo" jazz track, adjusting the volume envelope so that he could be heard over the music. He played it all back, and I saw looks of satisfaction and amusement in the audience while they applauded. It wasn't anything revolutionary, the point was that he did something cool and effective with a minimum of effort. Audacity is genuinely useful to people.

I was really disappointed that I had to miss the first two days. I heard there were some really great presentations. I would have especially liked to see the version control software demos.

It was good to see Dominic and mbrubeck again. I also got to meet another Audacity developer, Vaughan Johnson.


It seems to me that a major reason that people are still using table-based layouts is that tables are such a natural way of arranging things. Look at any web site and you'll see how it can be naturally broken down into tables.

So why on earth does CSS ditch this model and instead work with boxes that are logically unconnected? It is absolutely ludicrous to me that a simple three-column layout, with two of the columns static and one dynamic, is considered a holy grail with CSS. The code is complex and counterintuitive (hence a holy grail to find). Two of the columns have to be absolutely placed and sized, and the middle column has to have margins big enough to not overlap the other columns (of course the three boxes don't interact at all, nor are they aware of the other's existence). With a table-based layout it is dirt simple: one row, three columns. Of course the resizing will work correctly. Of course you'll never have two boxes inadvertently overlap. That's just the way tables work, and it maps pretty well onto the way design really works.

I believe that CSS got its positioning model fundamentally wrong. What stylesheets should provide is a way to assemble block elements like <div> into tables (grids) in a flexible way. The three-column layout should be as simple as saying:

make a row consisting of (left-to right) div "leftcolumn" with absolute width 200px, div "centercolumn" variable width, and div "rightcolumn" with absolute width 200px. Done.

There's no reason browsers can't do this; this expressive power is already available with tables. It's just not possible to separate this kind of layout from the HTML as CSS is designed to do.

Certification weirdness

What happened to my certification? I used to be Journeyer, I am certified "Journeyer" by two other Journeyers and one Master, so why am I not certified at all any more?

I intend to post an article soon. If you could take a few minutes and decide whether you think I am a Journeyer based on my work on Audacity and PortAudio, I would appreciate it. I also wrote FLAC tagging support for Rhythmbox. Thanks.

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!