Present Perfect


Picture Gallery
Present Perfect

Boston Baby

Filed under: Life — Thomas @ 12:53



The past few days in a nutshell. Left home at four in the morning. Was off to a bad start as there was a song on the radio that was beyond crap. The chorus went "Eso sera mi casa cuando me dice adios" or something to that effect, but sung in a wailing voice, pulling out all the stops, and using every trick in the book, including the "half-note-up" trick. To my horror I realized when the next song started that it was a complete CD of this crap. "Has creido en mis mentiras"

My plan for fighting jetlag this time was pretty simple - I'd start sleeping as soon as I was on the second leg of the trip between Milan and Boston. Sadly my plan was thwarted by some strike, causing a 4 hour delay in Milan. Not much point in trying to sleep there. Hacked a little. Got on the plane. Re-read through Code Complete again, but this time in one go, highly recommended. Proofread the GStreamer manual, making notes for later changes. Arrived after eight hours (including the just bearable Starsky and Hutch) Waited around for Ward (Logan airport had working free wireless, yippee), took a shower, stayed up too late hanging around waiting for dinner to get ready. Drive to Meg's place where we were dropped off to stay for the next few days. Sleep.


Ward and April had planned a Freedom Trail walk at 9 AM. It took us past John Kerry's house. Since we were in the neighbourhood I dropped by the FSF. Their work place looks like a warehouse storage room. I bought some T-shirts and some books. We went to have lunch in one of the greatest inventions ever: a Food Court. After discussing for fifteen minutes before finding it where to go eat, we found this place that allowed each of us to pick whatever the hell we wanted. I started off with sushi, then got myself another helping of honey-roasted chicken, yummy.

I love all the signs in Boston. I don't know if it's typical of Boston or the whole of the US. This is my favourite. You can just see the library council get together and say, "We need a time limit for people sitting on our steps. John is in favour of an hour. Rita says 30 minutes should be enough. What say we split the difference and limit to 45 minutes."

We took one of the tour buses because we talked the driver into letting us on at half the rate. Bostonian transportation officers seem to like ticket cutter machines. In the evening I dropped by Novell, and I realized they shared a building with Akamai. Fons, this shot is for you. I know you'll love it...

Said hi to the hackers still around, including Cave Dave. Got some sneak peeks at NLD and listened to the story of another one of Nat's beautiful pranks. That guy is totally nuts, in the best possible way. Went out for dinner where we got a mountain of pumpkin beer. Interesting.

After that, went to Flat Top Johnny's because that was where the GNOME 2.8 release party was, which after all was my entire reason for being in Boston in the first place. Good to see some of the hackers back. Especially nice to see Colin and John again too, they're interesting to discuss stuff with.

The party was really just shooting pool, drinking and hanging around. So after a few hours, time to go to the pre-wedding party at the house of three friends of April. As I entered some girl said "Oh my god, you really DO look like John Cusack. You are my new boyfriend !" And then she introduced me to her current boyfriend, explaining to him that he just doesn't have the look. OK ...

At 1, time to go back home with Meg - seven of us in a car that barely fits five. And that, as they say, was Friday...

gooey stuff

Filed under: Fluendo,Hacking — Thomas @ 21:00


Finally managed to transfer UI components on the fly containing more than one file (in our case, a file of code and a glade file). The component on some other machine sends its UI files as a bundle and that bundle gets cached locally based on the md5sum. So I change something in the UI code on machine A, reload the view in the admin client on machine B, and machine B asks for the bundle, realises it has changed, asks for the new files, and caches them locally. Then it executes it.

Net result is that as soon as I click save in the editor, and click in the admin client, I'm running new UI code. Pretty sweet. I'd hate to have to think this up in C.

I finished this piece based on Johan's first draft yesterday during the Mono talk, because I was juggling lots of objects in my head and wanted to flush before I forgot.

Here's the UI for the statistics of the HTTP streamer. I'm happy that I have the HIG to give me direction - I may not agree everywhere, but it sure beats the crap out of having to figure this out all by myself. HIG police, please tell me if I missed a rule or did something wrong in this shot.

Now I need to clean up the code, objectify correctly, and then move on to the next component to add a UI for. And as proof of concept I should test our objectifying by writing an HTTP admin interface as well. Should be easy.

Now I'm off to Boston, so I'll try not to work on the server for a few days. But it'll be hard because it's so much fun...

Dry your eyes mate

Filed under: Life — Thomas @ 20:53


I can't even remember the last time I cried before today. I can make a guess when it was but I can't be sure.
Crying is fine when it's liberating and you can just get it out. It sucks big time when you're forcing yourself to hold it in, and you realize it's caused by something that you have no control over. Sometimes things just happen, and the only thing you can do is find a way to accept it. Wish I wasn't stubborn on the verge of stupid though.


Filed under: General — Thomas @ 15:20


So the crew invited themselves to a barbeque at my place. They sure know the way to my yes is through the stomach. Since by that time we had made a certain news site with our applet, it turned into a celebration dinner. We managed to get Wim to go through some of his design ideas for GStreamer, and it looked like Ronald seemed to like them.

Each time I read or hear about them I understand more and more of it. It also makes me realize that a good design for anything doesn't have to be hard. In fact, it's the opposite - as long as the design is still hard, convoluted, fuzzy and difficult to understand, it's probably the design's fault, and not mine. Seeing how we manage to simplify and crystallize the design of our server, for example, makes me even more sure of that.

Hope we can do something about that. Basically, if we can't answer basic questions to newcomers that try to program with GStreamer, it means we don't have decent design yet.

All of us had managed to forget that it was Catalunya's "national" holiday. I had asked Christian to find the best possible meat at the Boqueria, and he called me to say that it was completely closed. Which, you know, would normally be impossible. Luckily, Johan managed to find one store that had some meat. Though I still have suspicions that part of the meat was meant for soup.

We sent Miguel a mail to invite him, and he came over, calling Duncan in the US to tell us he was there on IRC. Modern communication just gets better and better.

It started to rain about the time we wanted to go to eat, so we were forced inside. The plus side was that Kristien called to say that she was coming home early because the tent had been flooded.

Interesting discussions on various subjects. I seized the moment to ask Miguel about some comment he made some time ago about GStreamer's "bloat", because I was seriously interested in his opinion on it. He made some good points, and some comparisons to bonobo. But as always, the hard part on any project is convincing the people that are completely on the inside that people on the outside have a different opinion and also might be right. In other words, it's not automatically OK to pretend that they're wrong just because they don't know the subject well enough. The "I know more" defense is always a bad one, basically.

After the topic switched to relationships (but my collague forbids me to talk about the subject in public), Miguel promised his servitude to one of ours under a certain nigh impossible condition. We wish the possible new master good luck with fulfilling it. Then it was time for Kristien to make her much awaited re-appearance. Our night got cruelly ended by the neighbourly woman who wanted to sleep for some reason.

So my plan for getting to bed early today was yet again foiled. Drats ! And sunday, which had been reserved for hacking on some bugs, was also torpedoed by Kristien, but I didn't mind. Welcome back my dearest...

today is a good day

Filed under: Fluendo — Thomas @ 05:19


Exhausted from lack of sleep all week long. For some reason I wake up at 9 every day.
Today we discussed a lot about the user interface of the server we want to use. I think we ended up agreeing on a nice technical approach that will be very good from a UI point of view. It'll be so much fun to implement a technically very complex system of combining UI from all sorts of places into a nice consistent interface. And all code will be sent on the fly over the wire, and cached. Stuff like that is just so easy to do in Python.

Afterwards, Ronald arrived. He seems happy to be working on GStreamer for us, which is great ! I hope we can still get Totem in FC3.

Then, office party. We were still checking Christian's SlashDot submission about our article and applet. It had been pending for over a day. Still no dice.

After that, out for a very nice dinner at the Bestial with the team. I wanted to go home quick to finally get a nice early night to go to bed.

So I browse some stuff, check if the stream is still running, do some more things, and do one final check to see if the firewire is not complaining. Network down. Damn crap router acting up again. Still, decide to wait, because I'm anal-retentive and I really always think that "you might never now if it hit some site and we have traffic". Reload admin page. 200 people. Blink. Check Slashdot. OMG. It's on. Click reload on admin page. 400 people.

Start calling collagues. Do a short dance. 600 people. Server hanging in nicely. Unplug machine from home network that resets the router every 20 minutes so I have good connection for the rest of the night while I do stuff.

Read someone saying on Slashdot that "there is no sound". Damn, remember that I had turned off the sound for the discussions this afternoon. Fire up the user interface for the administration, go to the producing component, and set the volume level to 50%. Sound is fine now.

Call friend in Belgium. "Can I have your bandwidth, some access, and transfer our shiny new server so I can relay ?". Lots of fiddling to try and set up in FC1 ( we need python 2.3). Install mach, set up an FC2 root. Install stuff. Test server. Start server with relay config. New streamer pops up in my UI immediately on my local machine, and I can see how many people are connected. Awesome.

Here's a screenshot I took from the UI I'm using to control the server (Don't worry, just a quick prototype hack, as I said we're still designing the UI ...) You can see that it's handling over 2000 clients, CPU usage on the 800 MHz streaming server is fine, and another relayer (which has a red cross, which is some bug I need to fix) is also streaming to a whole bunch of clients. The main server is maxed out on bandwidth at about 55 Mbit/sec. The second server is getting up to about 700 clients as we speak. I forgot to increase the file descriptor limit on that box, so it wouldn't accept more than 1000, so I had to restart it after tweaking the config.

But, surprisingly (even though I should not say so), the server is holding up great against a Slashdotting.
Wim sums it up nicely:

<wtay> so, the slashdot effects is about 2400 clients.. how lame..

Of course, it's Friday late night, people have gone home, so I expect a steady stream of interest over the weekend. Let's hope the firewire bus doesn't stop working randomly like it sometimes tends to do.

And people seem to like the barebones Java applet a lot as well.

Anyway, four hours later, server still running, I am still desperately lacking sleep, and it's 5 AM. I know I'll regret this tomorrow, but it's been fun. Enough tooting my own horn, back to the weekend.

Next Page »