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)