Present Perfect


Picture Gallery
Present Perfect

Party Poop

Filed under: General — Thomas @ 13:39


After a nice bbq close to the lighthouse we went onwards to the Fluendo beach party and enjoyed the nice weather, music and drinks. I hope people enjoyed the party, because I have to work about six minutes for each pint consumed ! Thanks a lot to our bosses, Julien and Pascal, for throwing it.

The party was gatecrashed by a professional vagabond however, who in his drunken stupor decided to swap people's badges. In my case, he outright robbed it, leaving me with no other recourse to trade my way back up the ladder than to ambush him and take back my badge by force. I ended up throwing him through the Fluendo logo and into the sand. After a brief fight - where I was also pounced by Jordi - my victory was snatched away from me by the overzealous barman planting his knee in my chest. It still hurts when I breathe.

In any case, I ended up snatching away 37 reales, have already returned reclaimed badges to Michael Smith, Fernando Herrera and others, and I still have badges for Alvaro Del Castillo, Andreas Nilsson, Lennart Poetering and Guillaume Desmottes. Come see me around the Fluendo booth to reclaim them !

FISL wrapup redux

Filed under: General — Thomas @ 10:41


(to counter the flood of GUADEC posts, I'm finishing off my FISL wrapup from two months ago...)

img_0049.jpg Brazilians find guns as yummy as Americans (3c)

It's hard to try and describe everything that happened at FISL, so I'll just go through some of the things I remember quickly before it's too late.

The streaming went south on the first day. Obviously the network people kept blaming the software, Flumotion. When someone dragged me in to take a look at it, I noticed that the first machine outside of the building on the route to the online server had 30% packet loss. I was completely puzzled at how network people can even claim it's not their problem when the first test one does catches them with their pants down.

The next morning, packet loss to that server was up to 90% ! I don't know what most people expect from software to do live streaming, but I definitely don't expect it to overcome 90% packet loss. So we moved the server to http://stream.fluendo.com and that fixed the packet loss.

At least all the archives turned out fine, and now they're being edited and downsampled.

My room mate was Han-Wen Nienhuys, the author of LilyPond, music notation for everyone. While my preference would have gone to someone who only speaks Spanish, just for practice value, beside that I couldn't have done better than Han-Wen. It's nice to just speak in your mother tongue (well - close - I did the typical clean-up of my language as usual when around actual Dutch people), and we got along well.

Han-Wen, meet caipirinha img_0193.jpg

My second talk, about Flumotion, went very well too. In both my talks I ended up putting too much stuff in, as usual. I really should learn to remove slides after writing a presentation. But all the demos worked and seemed to convince people, and I even made the correct demo segfault precisely at the point I said it should segfault.For my Flumotion talk, I had shown off a basic picture-in-picture component that Pablo asked me to do the day before, and I did it in about half an hour. He said it was enlightening to have me code it up while explaining every step to him. Really, the only problems I had with my Flumotion talk preparation where the damn kernel drivers for webcams not working again as they should. The pwc ones were giving me "Protocol Error" and "Invalid multibyte character" (wtf ? It's a webcam !), and the qc-usb drivers didn't even compile anymore, in either the latest release or CVS version (which I fixed after figuring out what old macros they were using)

For both of my talks, I got a bunch of people outside asking questions about things they'd seen. Most questions were about Cortado (a lot of people are setting up some video sharing service, most notably the Estudio Livre people), Elisa (the demo seemed to have impressed quite a few people), and about some of the Python stuff we've done in Flumotion.
Since Richard Stallman was there, I wanted to see if I could figure out if our free mp3 plug-in is Free Software. The plug-in is MIT-licensed, which is considered to be a Free Software license. However, it comes with the additional feature of allowing both us, and our partners (which is really anyone that signs a simple contract with us), to build "the product", which is the binary version, and have the patent license Fluendo negotiated apply to it. It is definitely not easy to talk about these things with Stallman - you're at a very obvious and strong disadvantage given how he eats and breathes these things all day, while I have to make do with the very little time I ever get to spend to think on Free Software and licensing.
Sadly in the course of our discussion I ended up getting him very angry at first, which was not the goal at all. I was trying to understand how he would feel about this simple MIT-with-a-twist, so I could form my opinion. I was so exasperated that I was about to walk away on the spot, but I managed to go on, apologize for upsetting him, and he apologized for getting upset. It ended up being an enlightening talk about some of the finer points and some ethical questions related to Free Software. I may not agree with everything though.

In particular, he made the point that a license alone does not decide whether something is Free Software - what others do with that software also affects its Free Software status. He made the example of someone taking BSD-like code and distributing it without source - effectively that binary version of the code is not free software. So, in our case, distributing the binary makes it be non-free. He compared to splay, a program shipped with debian, that he uses to play mp3's, and licensed under the GPL. I don't agree with his assessment - to me a piece of software is Free Software on its own, without regard of what other people do with it (though the GPL allows for terminating the GPL license for a piece of software as soon as you're not allowed to distribute it anymore with all the freedoms as before).
We also discussed whether it is the right thing to do at all to even support playback of mp3. How can a Debian user know, when given the choice to install both an Ogg/Vorbis and an mp3 player, that the Ogg/Vorbis format is the more ethical to pick ?

RMS to me is like the North Star - it may not be where I want to end up in the end, but he's sure pointing the right way.

img_0098.jpg Richard Stallman, on being presented with Ubuntu install CD's, loaded them up in a computer, found the binary-only NVIDIA drivers on there, and put his opinion about Ubuntu's freeness on display at the FSF booth. (To be honest, I have to agree with his position here - I would never have expected Fedora Core to end up being more free than Ubuntu, but there it is)

FISL was excellent for a number of reasons. Meeting up with old friends, like Johan (Second Fluendo Employee), Kiko, Miguel, and meeting new people, like Lucas Rocha, Han-Wen, Harald Welte, Pablo Lorenzzoni (who organized the stremaing), and a whole bunch of the FISL/ASL crew, too numerous to mention by name.

Harald seems to be one of the original hackers - he bought and hacked a Motorola phone that runs Linux, analyzing the whole thing, and started replacing the included 2.4 MontaVista Kernel with the latest kernel, replacing every proprietary module with a GPL one. He's not done yet, but he seems dedicated to finishing it. I may actually have to buy such a phone. It is probably worth having just for the /dev/vibrator entry alone - which alledgedly you can ioctl() to make it do its thing. Besides that, he does a lot of GPL enforcement and training work. On the last day he was telling some stories about the CCC, very interesting to hear how their real-world hacks are done carefully enough to not cross over legal boundaries too far, held close by their sense of ethics.

One of the nicest things about conferences is how you get to talk to a whole number of hackers with different interests and areas of work, finding out things and being able to ask about stuff you would otherwise never get to ask because the internet is so big. You can ask silly questions about OpenGL and driver support to Keith Packard, or ask Greg Stein questions on how to implement a certain program I've written (more later) that uses Subversion, or have Miguel try and convince you to switch languages to Mono.

At the last day of the conference I still had only eaten either bad meat or only a little bit of good meat (though for a good price). So that night I really really wanted to go to a good churrascerio. Keith had been riding me all day about me being cursed and that teaming up would just lead to none of us having decent meat. The closing ceremony dragged on, and then the Cab Ride From Hell took forever, but somewhere after 10 we finally arrived at a place called Heaven.

And more caipiroska !

The day after the conference we got invited to a breakfast barbecue. It started at 10 in the morning and lasted until 9 in the evening, and again there was an unlimited supply of caipirinha and caipiroska. I don't know how these people keep up, but they do. Next day, a short walk around Porto Alegre to at least have seen *something*, and then back on the plane, with Han-Wen. Save for missing our Lisbon connection, everything went well and I was happy to arrive back home in the arms of my dearest.

FISL was great - hope to see you again next year.


Filed under: General — Thomas @ 22:18


Happy Birthday to Jeremy back in Belgium who's finally left behind the boring third decade of his life ! Too bad I couldn't make it to the party, or Willeke's party, but Kristien is here for a week so I'm not complaining.

things to have done in life before you're 30

Some things you can't leave undone until you get too old. So right before turning too old, you've got to hurry getting them done.

  • buying beer from the supermarket for your own consumption: check
    I've bought a few Coronita's (which are the Mexican Corona's, but for some reason they get renamed) and once in a while end up drinking one with a slice of lemon. (I can hear dozens of friends in Belgium now go "What the hell ?")
  • getting angry - successfully - in a language other than your mother tongue: check. Last week I was riding my bike through the city as usual, and in a narrow street this car was indicating that it was going to turn left, and suddenly while I was about to pass it by, it first jerked to the right, forcing me to break hard. So I tapped his rear window with the flat of my hand, which caused him to chase me instead of turning, and then a discussion ensued that included the word imbécil on his part, and a failed attempt at civil education on mine. But - it was in Spanish.
  • finding a cocktail that you actually like - check. The last few years in Barcelona have brought me the caipiroska, and now when Mateo comes over with his cocktail making box and makes fresh strawberry daiquiris, I'm sold
  • Going to bed on two daiquiris and a caiporoska, and waking up and having breakfast on nachos and guacamole: check
  • Things I haven't done and everyone else around me is doing: buying houses, getting married, having kids.

    Ok, my list is wearing thin ... any other suggestions before it's too late ?


Filed under: General — Thomas @ 08:50


When Andy was gone to the US of A, my emulation obsession was reaching frightening levels. First I was compelled to write an ethereal/wireshark packet dissector for the GStreamer Data Protocol. In all fairness, I actually needed it for work, because I was stuck on a few bugs in my extraction of the GDP code into separate elements, but still. Here's the new module, in which I also folded Andy's nettime dissector.

Ethereal was actually quite nice to program for - it has a large progamming manual. Too bad it got very confusing in two spots, causing me to lose a good six hours combined. One was related to the fact that they have some new functions to do things differently, but the manual just tells you to "call the new-style function that returns an int", instead of telling you that the new-style function is actually a different function. The other problem was related to trying to figure out how you break up a TCP stream into actual packets according to your protocol. I had started writing a dissector that just simply alternated between the two states, header and payload. That worked fine in 99% of the cases, since as if by magic packets actually arrived in the same chunks as they were written to the socket. But once in a while I got more data in a TCP packet, and thus things went haywire. The different ways of reconstructing your data stream are explained in a confusing way in the manual.

After getting this to run and analyzing my packet stream, the problem was dead simple to spot and easy to find in the code.

My second step on the emulation ladder was related to the pretty graph Andy had made with Inkscape to explain how the streaming platform works. The graph was so pretty that it gave our boss the last convincing he needed to buy us 7 Dell PowerEdge 1850 machines to use as a test platform in the office. Once he saw all the pretty and different colors in the graph, and all the boxes, 7 seemed like a good number. (I can't show you Andy's work because I'd be giving away Valuable Company Secrets)

Re-realizing the power of the graphic, but also realizing that any techie could suddenly produce decent diagrams with inkscape, I gave it a shot last weekend as well. I went through the excellent Inkscape tutorials, available from within the program (really, give it a try !) and then proceeded to make my first diagram. After two hours, I had something decent, but hadn't saved at all yet. I clicked Save As and the program crashed. It told me it had saved some rescue data somewhere, I couldn't find it, asked in #inkscape, and there was no saved data where they said it would be. On the one hand, big bummer. On the other hand, this made me redo it from scratch with the knowledge I just gotten from trying things out, and making the graph the second time around turned out a lot better.

So here's my first Inkscape diagram, and last night I made the second (scroll down a little) in less than an hour.

The third was learning that Andy is giving up on the arch family. This time, I pre-emptively emulated him the past weekend - I wanted to hack on buildbot some more, and I had had to learn arch/bzr/... because buildbot was being maintained in arch, and it seemed like a good way to have different branches per feature I wanted to hack in, and pull together a "production" branch for internal use from that, while still being able to send stuff upstream.

I had a complicated README that detailed my strategy, how the different branches were to be created, how to pull, and so on. Only problem is, I had to actually read the damn thing to be able to do any work on my branches, then pull changes through three branches to finally use it in my production branch (pretty annoying when you need a quick fix), then deploy.

Also, in those two years I could never figure out how to generate a diff that showed me only the things I had changed on a branch. I assume there is some command that can let you know the set of patches that were not pulled from some other branch, but I could never figure it out. And for the record, baz changeset is very unintuitive - to this day I still don't know exactly what it is that it's showing me, other than that it is a lot bigger than I would have expected it to be from knowing what the branches are.

Anyway, buildbot is the project of one-new-revision-control-system-per-year, and Brian had switched over the last year from arch to darcs. Now the main tree is in darcs; the CVS tree is continuously updated from that; and he manually syncs his arch tree once in a while. So one of the two people that taught me how to use arch has moved on to something else. And now the second one - Andy - has, too. What am I to do but follow ?

My psychiatrist says this constant need to emulate someone around me is due to my fear of commital - in this case, fear of committing to being myself. I was doing better for a while, but with Andy's trip it turned worse. I realized I needed to stop this when I was shouting "Foolio" at my cat for rolling over and exposing her belly. I'd really like to talk to my psychiatrist about this some more but she's off on a business trip emulating Freud, so I'm stuck.

What is up …

Filed under: General — Thomas @ 11:09


... with the New Wave of Peer-to-Peer download applications ? Do their developers have 15 GB of RAM on their development machines ?

Bittorrent - trying to download 4 GB of data over the weekend - hasn't downloaded *a single byte yet* - consuming 500 MB !

amule - consistently using over 100 MB when not downloading anything at all.

It takes some balls to be taking even more memory than the always-insisting-on-caching-every-single-page-you've-seen-even-though-you've-closed-the-tab-and-aren't-likely-to-ever-want-to-see-the-page-again Firefox/Mozilla for just *sitting in the background*.


While browsing the Dell website for stuff to spend money on for our platform, we noticed that you can get a specific server with 16 GB of RAM for a 4000 euro markup, and 32 GB of RAM for a 40000 euro markup to the base configuration. No, I did not mistype an additional 0. No, really, I didn't.

Surely 640K must be enough for everyone ?

Next Page »