Present Perfect


Picture Gallery
Present Perfect


Filed under: Fluendo,GStreamer,Hacking,Life,Music,Python,Spain — Thomas @ 19:10


Hard to believe that next week it will be Five Full Years I live and work in Barcelona.

It seems like only yesterday that I closed the door on the empty house I then shared with three good friends, and drove our truck through the icy mist on to a new life. That night where we had no place to live I passed by my grandmother's house for dinner, a few hours late. My grandmother's not here anymore. Neither is her house. At least part of her floor is now the floor of my apartment.

Originally we planned to give it a try and see after a year. And then one turned into two, then two-and-a-half, and now five.

When I left there wasn't even a company yet to give me a contract. Now we're three companies, and our fifth move has taken us to an office of around 50 people now, and already people are complaining again about space. Par for the course.

I also guess I never actually publically informed about my move from Fluendo to Flumotion - it was just a logistical confirmation of a practical situation. Today Julien is managing Fluendo (the GStreamer/codecs/DVD company), and Elisa was always managed by Lionel anyway. And Flumotion is a full-blown commercial company.

Meanwhile, after a bit of a hiatus on my GStreamer involvement, I am slowly coming back to my plans of using GStreamer - the plans I had originally when I discovered GStreamer more than 7 years ago. I just reread my first post the mailing list, from April 10th 2001 - at least it wasn't a completely stupid question.

My original plan was to write some code that would play your music just like a radio would. Nicely mixed, correctly levelled, a good flow between songs, and playing what you like to hear. An extension of the thesis project I did a long time ago which I used in our student radio at the time.

But GStreamer being what it was at the time, I got sucked into the vortex and didn't really work on these ideas for a long time. I took a quick stab at it during 0.8 in the form of gst-python's gst.extend.jukebox which worked quite well already on the mixing front, but when it got ported to 0.10 using gnonlin it just never worked for me and was left abandoned.

So third time's a charm. After close to 10 years of random hacking, it's about time to decide on one good personal project to invest my time in before life takes over. And this time I think I want to write something that not only Linux people can use. I want to write something that my friends can use too, and that means it has to work on Windows.

My motivation comes from being annoyed at not being able to listen to my music the way I should want to. I've been lax at ripping my new CD's over the last 5 years, and a 300 CD backlog to show for it. My automatic playlists reflect my tastes of five years ago, and only once in a while do I bother to get some new tracks on one of my three computers or my Nokia, to which I then listen only in certain conditions. And every player I deal with annoys me to some extent. And none of them do any kind of decent crossfading, if at all.

I'm not promising anything yet, and I'm only at the beginning, but my experience makes me a happier hacker, advancing quicker from the idea to the code stage than way back when. That's a nice feeling. Over a few two hour nightly sessions, I've put together some code that analyzes tracks, calculates RMS and attack/decay envelopes, and puts together a half decent mix. I've written a simple example using gnonlin which allows me to pre-listen these mixes, playing 5 seconds of the first track alone, then the mix, then 5 seconds of the second track alone.

This makes it a lot easier to evaluate different mixing strategies, making them easier to tune later on. I'll have a fun plane trip with my laptop, earphones, and three batteries.

If you happen to be adventurous and interested, you can always check out the repository and play around a bit and see if it can mix your tracks at all.

So, I'm celebrating my Lustrum of Fluendo and Barcelona with a bit of code for a new project!

Sadly, the names I was considering a few years ago were already taken - pyjama is now a jamendo python application (mine would have been Just Another Music Application - in Python), and Orpheus, which also exists. So for now I recycled a name of a previous project that handled another aspect of the problem.

8 hours of plane hacking baby! Here I go.

half week

Filed under: Belgium,Life,Music,Spain — Thomas @ 00:13


I don't often have the opportunity anymore to spend part of the weekend in Barcelona, which I miss, so when Kristien told me she was going to be busy receiving a really old Spanish guy and his boat in Antwerp on TV this Saturday, I decided I was going to spend my Friday night and Saturday in Barcelona.

A good decision! Thursday I went with Mariette and Sofie to go see Vicky Cristina Barcelona. Contrary to what I've been led to believe, the film is excellent and tells a wonderful story about love by putting caricatures of people into a situational movie. It's clear the story worked very well as a lesson in love because I got drawn to a different message that was in the movie than some of my friends were, just going to show that a good story is multifaceted and resonates with a different one for different people. I also ran into Carl at the theatre who had gone to see Bye Bye Belgium - apparently they show the mockumentary here in Spain!

Friday night was spent hanging out in one of the Usual Suspect bars after work, then going out with Carl to one of his friend's birthday drinks. Didn't go to bed before 4:30, which is how a Friday night in Barcelona should be spent.

Saturday was a lovely day, 18 degrees C and sunny all day long. I spent it walking through the city, going to La Botifarreria to get some excellent sausages for a Sunday lunch in Belgium, seeing all the apartments for sale (surely this is a sign the prices are going to go down), and strolling through Parc de la Ciutadella. On the plane in the evening, to arrive home at midnight and crash into bed, exhausted.

Sunday lunch was spent with An, Mike, and my god son Arthur. I made home-made fries and mayonaise to go with the sausages. Sausages were a mix of apple/curry, spinach/pine nuts, foie gras, fig/mushroom, roquefort, sweet, and chocolate. It took Arthur a while to warm up to the idea of 'sausages with specks', as he calls it, but the fries definitely helped.

He kept making me build Lego houses so he could knock them down. I confused his young mind by saying that from now on, he was only allowed to knock over and break apart each house only once. Not realizing that there was no difference, he got angry and proclaimed that I was the worst person to play with. He quickly got over it though after we jointly invented the shove hug (push and hug until the other falls over)

We ended the evening by going to see Sigur Ros at Vorst Nationaal. We arrived as they closed off the main floor and instructed us to go to the highest seats, which sucks. But I managed to sneak us past the barriers and onto an only half filled floor anyway. We had a great view a good 15 rows from the front.

The opening band was called 'For a minor Reflection', also from Iceland, and though the name sounds off, they were really good. I ended up getting their album and listening to it all the way back to Spain - although you'd be hard-pressed to hear the difference between this and an Explosions In The Sky album. I guess that's a downside of having no singing in your music - while I scoff at people who can't hear the difference between Interpol and Editors, or Radiohead and Coldplay based on the voice alone, I would definitely have mistaken these guys for 'is there a new EITS album ?'

Sigur Ros was good, picking from their darker works compared to the festival sets. For whatever reason I didn't enjoy it as much as the two summer gigs - the sound's never very good at Vorst Nationaal, and I was probably too tired. But the closer, song 8 off of (), was perfect.

All in all, a damn fine couple of days. I should plan to stay in Barcelona for the weekend more often.


Filed under: Spain — Thomas @ 22:18


There's a guy in Barcelona who runs an antique store. Well, maybe it's not an antique store, because it doesn't like like stuff my mom would actually buy. And I'm not even sure if he's selling.

But he cooks for anyone who comes in, whatever is available, and turns it into honest and magical meals. He's probably Barcelona's best kept secret - he's not in any guide (which is a good thing), and I doubt he even has a license to do what he does.

He gives you whatever he has, and what he has is always excellent quality. He probably goes by the farmers and vineyards himself to select his products. No is not a word he accepts, and there's no way you can eat everything he gives you.

I'm always a bit worried when I bring people there because it takes some time to get there, it's always difficult to organize it, and you just never know how people will react, or how Angel will react if he happens to be in a less sociable mood and gets asked to cook something non-meaty for example. But I've just never been disappointed, so I don't know why I worry.

Today we went there to kick off our developer meeting now that everyone's back from holidays and Julien, a new guy, just started. We got chorizo, manchego cheese, beans, a huge tortilla, a special Cabrales cheese which was very strong but good, bread, and duck pate. And those were just the starters, I had to explain to my surprised collagues. After that, we got blood sausage, cutlets, and hake. All of this with some wine, and desert and coffee at the end.

And when you get up and leave, you ask him for the price, and he makes one up on the spot for the whole group. Rumour has it it's cheaper if you're a girl and can part with some pecks on the cheek.

If you ever get to Barcelona, drop me a line for the address. And let me know if you write for a tour guide or travel magazine, so I can give you the wrong information. I don't ever want to see it get ruined.

giving thanks

Filed under: Fluendo,Hacking,Spain — Thomas @ 00:28


Good accidents hide in small corners. A while ago I did something I never did before - I asked a guy on the subway whether he was interested in a job at Fluendo. I know, it sounds weird.

But the guy in question was actually reading a paper on pipeline-based multimedia processing, IIRC. I was dead tired as I had just flown in, and it was late at night. But I was thinking to myself, what kind of a manager am I if I can't even recognize a good candidate sitting in front of me ?

Needless to say, the offer was awkward, the handshake on language took a few tries, and I ended up taking out a business card but I don't even remember if he took it or not. I remember I had to break up the conversation quickly because I was at my stop.

I saw him again on the subway a few days later, and we noticed each other at the same time. I explained I felt silly the day before, and it turned out we had Andy in common. We both said we should get out for some food sometime, but we never got to it. That guy was Pau Arumi.

Last week I was thinking, we really should get together. So I mailed Andy to ask for an address, but the same day Pau mailed Andy and me to remind us of the Jornades de Programari Lliure, which it turns out he helps organize. I knew about it because Jordi told me about it, and Arek, Florian and Aitor are doing a talk.

Pau also invited me to dinner with Paul Davis of Ardour and JACK fame. Of course I couldn't refuse - I'm sure Paul didn't remember, but he was kind enough to help me figure out the kernel modules for the Hammerfall soundcard (which he wrote) when I was setting up Kristien's home recording studio, and I promised him a beverage of choice in return.

This is actually one of my favourite moments in free software - times when I meet people in real life that have helped me in some way or whose software I've used, and being able to invite them to eat or drink. So their bottle of wine in that excellent restaurant Pau selected was on me, and I was happy for it.

It was also a good opportunity to ask his opinion on the future of JACK and PulseAudio. It seems Paul sees the two as complementary, where people that care about the things that JACK cares about would be able to run PulseAudio on top of JACK - with a certain patch, PulseAudio can even run the JACK server in-process so that the PulseAudio and JACK servers become one. People that don't care can just run PulseAudio as usual. If that happens, that means we would have the same Pro Audio capabilities that Mac OSX has out of the box if a distro sets it up.

Talking about it with Paul reminded me about the things I admired in PulseAudio and Lennart's approach to the whole sound server problem. It's amazing to see how Lennart really aimed at solving all the problems. There have been many sound servers or sound solutions in the past, and all of them managed to miss at least one of the important reasons for which various people want a sound server - roughly categorizing into sound events, network transparency, hotpluggable devices, mixing, and a unified API for sound playback.

As an example, IIRC Lennart even implemented a PulseAudio fake OSS driver that implements one specific system call that only Quake III uses - but Lennart (correctly) reasoned that people would complain about PulseAudio if they wouldn't be able to play Quake III and other sounds at the same time.

So, in contrast with Jeffrey Stedfast's opinion (though I respect Jeffrey a lot for his Evolution work), I am very happy that a young and motivated guy like Lennart took the time and did the hard work, and got the details right, and apart from a few bugs that I'm sure will get worked out in the end PulseAudio is rocking my Fedora 9-based world. So I must make sure to thank him in beverages next time around. (And to think, this is a guy with not just one successful project to his name - see Avahi as well).

By coincidence, Christian just thanked me for my work on mach. While mach was probably one of my earliest useful/successful solo projects, in some ways it's also a bitter failure on a social level. mach started out with code using apt-get (before yum existed). As time moved on and yum became more used, I wanted to have mach be able to use both. At some point someone gave me a patch to use yum, but it ripped out the mach bits, which I didn't like - I wanted to be able to use both.

IIRC, I ended up handing that patch to Seth, yum's author telling him that I couldn't figure out how to integrate the patch so that it would work both with apt-get and yum. He ended up using the patch, forked mach, and mock was born. After that some features were stripped, and moch started evolving, and attracted a wider developer base than mach ever did. There's nothing wrong with what Seth did - this is after all what Free Software licenses explicitly allow - but obviously that's not how I think things ought to be done. I don't think I ever really voiced my opinion on this because I don't really know how to word it without admitting some kind of failure about it, but I realized today after Christian's post that a social failure says nothing about the technical merits of mach.

And while I'd never state so in public, and definitely do not want to take much credit for this, part of me is happy to have created something that ended up being a small seed for the technical solution that revolutionized Red Hat's build system and caused the massive social sea change that Fedora ended up being.

But I digress. Thanks, Christian, for saying thanks. Though, nothing says thanks like a trip to my wish lists :)

(Wow, this was an awful lot of people-linking for one post)


Filed under: Spain,Travel — Thomas @ 22:51


I'm glad the Eurocup is over. Our pilot informed us twice about the game, and the Aerobus stopped a few blocks before Placa Espanya. The place was packed to the gills, people climbing the monuments, and everyone shooting fireworks.

I had managed to avoid San Joan this year only to come home to this new warzone :)

I was hoping to go to bed early and get a good night's rest. Doesn't sound like that's in the cards.

Congrats to Spain, and now I'm going to enjoy my next two years of no-soccer-craziness. As if.

« Previous PageNext Page »