Present Perfect


Picture Gallery
Present Perfect

Moules Frites

Filed under: Conference,Fluendo,Flumotion,Python,Twisted,Work — Thomas @ 17:49


It went a little something like this.

I wrote a mail to our internal mailing list saying 'if anyone's coming to FOSDEM, I invite you to my place and I'll make moules frites for you.'

I was expecting, oh, I don't know, maybe four or five people.

After that, Pierre, our development manager started negotiating with our CEO to invite all the developers to FOSDEM. And he succeeded. And then the support team wanted to come too.

The result is now there are 14 people coming over for mussels and fries tonight.

This is what 14 kilos of mussels and 7.5 kilos of potatoes look like before preparing.

By the way, if you like mussels, you like programming (especially Python), and you like Barcelona, we are hiring again. (Actually, we also hire people that don't like mussels). You can also come talk to anyone on our team if you happen to be at FOSDEM so you don't have to take my word for how awesome working at Flumotion is. You should be able to recognize them by their shirts.

It is a strange day

Filed under: Fluendo,Work — Thomas @ 01:32


when a meeting with our commercial people energizes me more than a meeting with our development people.

Good to swing to the other side - now to find the balance...


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.


Filed under: Fluendo — Thomas @ 00:20


How times are changing. Used to be I had to wake up at 3 AM myself to perform some kind of maintenance task after having planned it myself for a week.

Now, I am going to go to bed happily, safe in the knowledge that I have our DBA and at least one of our sysadmins taking care of an important database change during the night, after having discussed it at length amongst themselves and having come up with a 25 step plan. All I had to do is to decide the color of the bike shed and basically approve their plan.

As the great philosopher, Kool, and the gang, once said: 'Delegate. Good times ! Come on.'

people behave

Filed under: Fluendo,friction,Life — Thomas @ 00:18


Some principles and observations come back in many aspects of life.

One drive I have in everything I do, whether professional or personal, is to remove friction. Removing friction helps to stay in a flow and focus on the important things. (One of the bad sides is that I'm prone to yak shaving because of this, although I think it pays off). I like removing friction today for my flow of tomorrow.

A recurring observation I have is how, in any company of a reasonable size, certain small things just don't happen automatically anymore, because a sense of shared ownership gets diluted when there are more people involved. Typical example is 'the shared fridge tends no lose the entropy battle'.

And another observation is how, in many cases, an overengineered system ends up being extremely unusable.

Today, those three met when I was in a meeting and I wanted to put on the lights, but I turned on the way-too-loud AC instead.

What was the problem ? Pretty simple. The remotes for lights and AC all have 6 buttons. Left ones are On, right ones are Off. But there are no labels. So these programmable remotes can control whatever you want. It's just that usually all you want is to control lights and control AC.

So, someone had labeled the remote using a Dymo (I love Dymos), but apparently got them switched around. Then someone else put scotch tape on the labels, and put a very small almost invisible double arrow on there to indicate 'hey, the labels are the other way around'.

But no one takes the time to just put the labels on correctly. No one feels annoyed enough to fix it for the next person. Amazing how people leave this easily fixed piece of friction around. (Guess what I did during that meeting)

The story of our AC and lighting is another one entirely, but it's overengineered to the max. Here are the things that suck:

  • like I said, remotes are programmable. Sounds like a great idea, but sucks in practice if you really always only control lights and AC. The third row of buttons is never used. I'm sure the engineers went 'Hey, wouldn't it be cool if we made it programmable so that if we ever think of something else than lights or AC, we can just reuse the same remotes ?' I can hear them discussing it right now!
  • hence, the remotes are unlabeled. Nuff said.
  • the remotes have no light that indicate whether they work at all. Batteries go flat - the bare minimum is a light that flickers when you push a button.
  • You need to sort of aim the remote at a receiver in the ceiling. But they're pretty hard to spot, and the range is not very big.
  • Hence, wouldn't it be nice if you actually got a feedback light on your remote that indicates 'the receiver noticed the command ?'
  • If the receiver manages to receive the button press, apparently the signal goes to some central location where the whole machinery is housed. I imagine an ENIAC computer filling the whole basement somehow. It takes ages to get from 'pressed a button' to 'lights go on' or 'AC goes on'. I mean, easily, 10 seconds.
  • All of these huge usability mistakes combine to make turning on or off lights or AC into a giant button mashfest not seen since the days of playing Summer Olympics joystick waggling and button twiddling at the arcade was in fashion.

All of this, of course, is in addition to all of the usual problems with AC - the controls for temperature are also unlabeled (and in a company with new people arriving constantly, there will be at least one person thinking that left is complete minimum and another person thinking that right is, and they will fight over this passive-agressively), it never provides the amount of cold people want, some people smoke in the building anyway so it gets shared for all of us, and filters never get changed as often as promised. Oh, and a few times a year, water drips from the ceilling (and it's not that much fun to find your laptop turned on and wet in the morning).

And the kicker is, the whole system can be programmed on a time basis to get turned off at certain intervals. I still don't know if it's a good thing or a bad thing that, around 22:00, the lights turn off, and that tells you to either go find the remote or to go home because it's long past time to do so.

« Previous PageNext Page »