[lang]

Present Perfect

Personal
Projects
Packages
Patches
Presents
Linux

Picture Gallery
Present Perfect

Flumotion hacking spree

Filed under: Fluendo — Thomas @ 01:47

2004-11-10
01:47

So we had some silly bugs in our 0.1.2 release that should have been easy fixes. And to some extent they were. But fixing the easy bits revealed a whole slew of other things that left me unsatisfied. So I dug deeper and deeper, at each step in the way thinking "It's just five more minutes and then it will be perfect". I ended up staying at work until half past midnight. Luckily the big guy stayed with me all the time offering moral support, or I would have gone home earlier.

I added a ton of debugging and error handling, making sure we handle a whole bunch of potential problems correctly. Now you should get a dialog for pretty much everything that can go wrong.

I need to rethink how we test the server, because obviously just trying random things is not going to work. Especially if it's the developer doing the random testing, because everyone knows as a developer you only test the things you know will work.

Anyway, after five hours of spare time hacking I'm pretty happy with the result, so tomorrow we do a release after some extensive testing. And then I think long and hard on how to fix some of the process since that's what I'm supposed to be doing.

Server Hacking

Filed under: Fluendo — Thomas @ 02:10

2004-11-05
02:10

Today was weird bug day. I spent four hours trying to fix a bug that I could not understand at all. It seemed like python and twisted were somehow turning a string into a tuple at some point and I couldn't figure out where. Of course it was a silly bug in the code that went something like this:

keycard.requesterName = componentName,

Python programmers will see the trailing comma and realize that this makes the member a tuple, and not a string as I wanted.

I didn't find the bug easily because I debugged using something like

self.debug('keycard requested by %s' % keycard.requesterName)

which has the generally wanted side effect of just printing the only member in the tuple. So debugging like this makes it look like a string !
However, when you print with two variables:

self.debug('authenticating keycard with id %s for %s' % (keycard.id, keycard.requesterName))

it did show up as a tuple !

Maddening. One of those instances where you finally understand some little line of text in a python manual you read some day.

The second bug was more mystifying. I was debugging authentication using a special component, and when testing it out, all lengths of username/password worked in the HTTP request, except for the ones that had 3 characters for both username and password, which turned the username and password on the server side into empty strings. Totally incredible - dad/mom turned into empty strings, while dad/momm, dad/mo, dad/mommy, daddy/mom, da/mom, and all other combinations worked. I was so floored by this that I didn't even try to look into the bug, and just changed the password's length and get it over with.

Also, my very handy debug cycle of "change code-click reload-try new code" is completely trashed on three levels today. First of all, twisted's rebuild doesn't work as it did anymore, with python complaining about all sorts of issues when objects get rebuild. Second, pychecker doesn't work on dotted imports for some reason when used through the import mechanism. And we need to use the import way because we modify a module's __path__ to bring together different paths containing the same package layout. And third, when restarting a worker, something doesn't get cleaned up correctly, causing bind to return with an "Address already in use". So my debug cycle now consists of "change code - stop worker - restart - repeat five times until it doesn't show a bind error".

At that point you get into a lot of wasted time because you are really working on writing some new code, when you should just stop and fix either of these three issues allowing you to work faster on the actual code.

Anyway, the special authentication component is finished and works well. I created Python bindings for SQuaLe yesterday, then used them from the component. A query gets run every 30 seconds for each client, and when that query returns false the client gets expired. Neat stuff.

We're finally getting to the point where we can just write new components and use them pretty quickly. It's nice to see a good foundation pay off.

It’s out

Filed under: Fluendo,Releases — Thomas @ 22:11

2004-10-19
22:11

Finally. Our 0.1.0 release has arrived. There are bugs, but there are even more cool features. Today we used four machines to create a stream, everything from the GUI wizard. So after some French floating point fixing, we tagged the release and threw out packages.

Here's the tarball. Knock yourself out and start filing issues.

Now excuse me while I go home and have some quality time with my overly neglected girlfriend who I dearly miss.

Work

Filed under: Fluendo — Thomas @ 23:45

2004-10-18
23:45

Spent the last weekend hacking with the boys. We were incredibly productive. I rewrote the perspective broker client factory of Twisted using keycards after getting some very good ideas on the bike ride home on Friday. And after a long hacking session that again taught me the value of good regression tests, I'm happy to have finished my keycard-based system that handles challenge-response nicely to log in to the server. Then over the weekend we finished up a whole bunch of loose ends, and Johan made some nice changes to the wizard as well. Still needs some UI love, but it will always need more work.

Despair
is when you have decided to release your project to the public at large, and your final testing hinges on having shippable packages, and you get stuck packaging a bunch of dependencies, where some of them have a crappy build with hand-rolled python code sort-of-using distutils with nice little globals and wrongly indented code (Which I thought was not possible in Python, but what do I know ?), and you want to strangle the maintainer because really, all you want to do is package YOUR project.

Ecstasy
is when you take those packages when they are built, and install them on all the different machines in your support department, and you start a few commands, start the GUI wizard, click some buttons, and everything starts up nicely out of the box, and the media player you are also a part of somehow plays the stream nicely. On all the machines. Yes there will be bugs, but the foundations are laid down nicely and we're ready to go.

Music
My companion CD for the weekend was The Arcade Fire's debut album. Quixotic little record, highly recommended (that goes for you doubly Jeroen, it slightly tops out Bloc Party).

Roundups

Filed under: Fluendo,General,Life,Music — Thomas @ 14:57

2004-10-14
14:57

Disclaimer: this is a week-old entry blocked by my use of umlauts. Flushing it again...

Weekend

Had a great saturday with people from the other company. We went into the mountains, climbed a bunch of trees, jumped off some platforms, swung from cables, and did all sorts of safe adventury stuff. Lunch was in a typical Catalan restaurant, with wine being served from the special caraffs which have a second neck to drink from. You're supposed to tilt the bottle, getting a very fine flow of wine, and direct it in your mouth, then extend the arm as far as possible without spilling any wine. When you're done, you get the bottle back to your face then stop tilting.

Needless to say, lots of variations on the theme were tried, with the climax being a couple pouring for one another without spilling a drop.

We were happy to have chosen the quad riding for the afternoon. On a quad, no one can tell when you're drunk (Well, except for the poor woman who managed to land her quad off the road TWICE). The other half was not so lucky apparently - one guy managed to fall of a platform during the drunk tree climbing, straight into a bush. And some other guy managed to run fullspeed into a rope he managed to not see, and got catapulted back some ten meters.

Anyways, it was a good preparation for the very same activity at the same place for this weekend, which for obvious reasons (to the parties involved at least) I am not at liberty to discuss any further...

New employee

Fluendo wants to welcome their newest employee. Zoë weighs a good 3.2 kilos and is in perfect health. I'm sure she'll be an excellent asset to the team. Congratulations to the happy mom and dad !

Telefonica

As other inhabitants of Spain can attest, sometimes dealing with Telefonica can be really frustrating. Both phone and ADSL went dead last wednesday. Called on Thursday. They called me back on Friday, saying it was probably a problem in the central switching station. By Saturday, the telephone was fixed, but the ADSL wasn't. Tried to get into the help line for ADSL (since of course that's a different line), keyed in my number, got disconnected with the message that there was no one available to take my call. Called again, keyed in number, got some waiting music and a message saying that everyone was busy. After eight minutes another voice said no one could take my call, and I got disconnected. Sigh.

Apparently Kristien had called as well, since when I got in the lady told me that she called. I was going to get a call back in the next 48 hours from a technician. Tuesday morning, I get a call. What kind of router I use ? A Nokia one. Yes, I'm sure it works. No, it's not one of yours. No, it isn't the fault of the router - it's the third time this year you managed to turn off my phone and ADSL at the same time, so I'm pretty sure it's not our fault. Yes, the phone works again.

Then the guy tells me that the telephone guy turned off ADSL completely in the central station. Why on earth did he want to grill me on the router then ? Anyway, he would have it fixed. During the day Kristien lets me know that it works again. And when I check, I realize that I understand WHY they messed it up in the central station - I had double the download speed as before. So it was all part of Telefonica's cunning plan to give you double the speed in one week and no speed at all the next.

Anyway, I'm happy for this week.

Music

I had been impatiently pining for the new Interpol disc, "Antics". When I finally got it the day it was released, I had two quick cursory listenings to it and was hugely disappointed. Nothing seemed to grab me.

This weekend I gave it another go, and I haven't listened to anything else ever since. There is not a single bad song on this CD. And the emotion I thought lacking at first listen is all there under the surface. I love to be suckerpunched by music that way. Highly recommended.

Food

We finally managed to cook tartiflette, a typical Savoie dish which I love eating on skiing trips. It came out great, we were very impressed with ourselves. So were our guests, Jochen en Kristien. It was better than on ski holidays, though it made me long to have my feet stuck to a snowboard on a white mountain. Jochen made the dessert, impressing me with a stunning pineapple carpaccio with mint and sugar.

On days like this life just feels right.

« Previous PageNext Page »
picture