Present Perfect


Picture Gallery
Present Perfect


Filed under: Hacking — Thomas @ 20:54


Lots of fun hacks all through the weekend.

On Friday I hadn't finished debugging some annoying bugs in our bundling code, and I really wanted it cleaned up. So I kept working on it at home and at some point I got into "the zone" and just went straight through and fixed it all. It was about five in the morning when I stopped. But now stuff Just Works, which is nice. After that I integrated both of Zaheer's patches. It's nice to have a contributor.

Andy's here today for some hacking. We're working on different things but it's still nice to discuss ideas on our own projects. I don't know exactly what he's doing, but he cooked up a nice hack that uses generators to turn Twisted's deferred model (where you have various callbacks that you chain) into a bloc k of code in a generator that *looks* linear, and where try/except can be used to handle failures instead of errbacks.

He had fun doing it, even though something like this already is in Twisted 2.0, which is very similar to what he did.

Zaheer wrote a tray icon for flumotion-admin indicating the mood of the planet. Awesome. I'm sure Matthias will like having this around.

I tried out Togra today because it can also use GStreamer. This cube is spinning and showing any of four GStreamer video streams being played. The one on the right is a stream generated using Flumotion on my laptop. The idea is to use this at a conference in a central location to show what's happening in any of the rooms. Oh, and of course these cube faces are actually live video at the full framerate.

I worked on mach3 today, writing out some more of the intended design. I finally got over my hangup on proper configuration of "distributions" and "collections". The idea was that I wanted to make it easy for people who mirror parts of vendor's distributions locally to override the base URL for a vendor.

Initially I cooked up some object that you can .inherit() from and then any config variable not specified specifically on that object would look it up up the tree recursively. Now that works fine, but I can only use this if there's only one axis people decide to mirror on. Like, I could make all Fedora Core 3 collections inherit from a generic FC3 object, and then changing the base URL on the generic one would change it for all inheritors.

But what If someone mirrors FC 1-3, but only i386 ? If you have more than one axis people can mirror on, this doesn't work.

So I decided to just create a global object containing all collections, and you programatically set the new base url on all
of the ones you have mirrored. Since the base URL is normally the same for all of them, it means you still only have to specify this url once, and then loop along your chosen axes. So, a good middle-ground.

So I proceeded to implement this, and now I can ask any Distribution object to give me a chunk of configuration file data for an installer type. And I added some tests for that.

Back to work tomorrow, but that's just fine.
It also means I will keep python for configuration files. It's just not a TP if people complain.

We’re getting a cat

Filed under: Life — Thomas @ 22:01


Kristien found a nice old lady that has three litters and they will all die if they don't find a home. So we're getting at least one cat. After much bickering we decided we will name her Alunya.


Filed under: General,Life — Thomas @ 22:00


In unrelated news, we finally found the right Quake map to play against Wim. In the last round of today's Quaking, he finished fourth and last.

Flumotion hacking

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


Progressing at a steady pace. At PyCon I fixed all problems between our Flumotion tree and the newly released Twisted 2.0 (yay guys !). Not too much work actually.

A customer ran into some issues with a bouncer not expiring connections properly. Since we don't actually have a bouncer that expires clients in the basic version, I proceeded to write a simple component view for bouncers allowing me to expire any keycard issued. That uncovered some subtle bugs in various places, which allowed me to increase the code coverage a little (It now reports 68% covered, but it's not entirely fair - we're currently not regression-testing actual components because we haven't figured out a nice way yet to test them separately from the whole process architecture).

So it's 68% against about 6000 lines of code, and the whole tree is now at 16.000 lines according to sloccount. So it seems to be worth about $500.000. Check please.

Today I was trying to figure out some nasty reload() bug with our nasty bundling code we have while integrating a patch from Zaheer. Sometimes hacking Python can still be pretty frustrating. Anyway, deferred until Monday.

I have switched to using KDE so you will see my blog on Planet KDE from now on. Really, having your desktop in C and not in C++ and thus being faster to compile really doesn't matter one iota when you're using packages anyway.


Filed under: General — Thomas @ 21:01


So, after PyCon, I went to town. I had gotten a Washington guide and found some places that might interest me. Saturday I wanted to shop for music, books and comics. I went to Big Planet comics in Georgetown, which from the sound of it you'd expect it to be a huge comic book store. In reality it was really small, and for every comic it only had about six back issues. A missed opportunity.

As for music, same thing - something called CDepot seemed to promise lots of choice, but it was as small as your average Barcelona indie record store.

Books was better. After visits to Borders, Barnes and Noble, and some scientific book store I can't remember the name of I ended up with over 20 books. Ouch. But the $ is soooooo low, and the numbers are lower too than when ordering, so I thought it'd make sense to stock up. I bought a bunch of fiction, some programming-related books (Joel on Software, for example), and some work-related books. I think all of them together weigh in at over 10 kg.

I also went to BestBuy. How any Americans can live close to one without buying up half the stuff is beyond me. Sadly, I couldn't find any of the Ogg Vorbis players I was planning on buying. They had 10 types of I-pods, and none of the good stuff. Apparently all of the good stuff is available through mail-order only. Next time I'll order before I come.
Oh, and apparently, Napster still lives. Who'dathunk ?

Washington is not as big on silly signs as Boston was, sadly. I only got about five or so. Mainly most of the signs are duplicates.

Saturday night I was going to see Interpol play at the 9:30 club. The only problem was I couldn't reach Donald (and I had his ticket), and I had to miss the opener, Blonde Redhead. I went in at 9, and came back out twice to check if he was there. Apparently he was there at 9:10, they didn't let him in to come look for me, and he went away.

The concert was excellent - the sound was great, they played my faves, ... He still has problems keeping tune when singing though, and the guitarist was terrible at it. But their keyboard player did great backups, and at least the guitarist is damn good at doing what he's supposed to do.

On Sunday I went to the Smithsonian (the Flight and Space museum, to be precise) and the Mall, and walked around downtown. Washington is pretty boring actually during the day. I don't know what I expected, but there just was not that much going on. I did catch a family unit on
Segways ! I wish I had time to try it.

I also tried to find grits for Andy, which he blackmailed me into. It took seven stores to find them, and everyone seemed to find it very funny that a European was looking for grits. Got a real American burger (or so I think) at Fuddruckers - they don't even have quarterpounders, they start at 1/3. So I got a halfpounder.

By Monday I was getting pretty bored of being in Washington - there really is not that much to see if you don't feel very American. I was glad to get on the plane and go back home. No business class this time, couldn't get any sleep at all, arrived around 12.30 in the afternoon and went home for a joyous reunion with my lovely girl. Then hit the sack for six hours, woke up for an hour, then back to sleep for eight more. Time to get back to hacking !

« Previous Page