It's been a while since the last entry in this diary. I've felt a bit low lately. I have great hope in my moving back to Annecy by the end on the month. I'm really fed up with Paris, and it's time I get back in the mountains.

I spent the week-end playing music with my brother. We found a rehearsal studio available with a old drumset, and he brought his double bass. That was real nice. It's been years since I could get my hands on a pair of sticks for more than half an hour due to neighbours complaining :o(

We worked on Lincoln Goines and Robby Ameen's Funkifying the Clave book. I had some hard time with hand-leg independence, but finally managed to get an OK groove on the first tune of the method, and this really felt good, playing again.

We also watched a video tape I had recorded of Michel Camilo live in Marciac this summer. The band featured Antony Jackson on bass, Cliff Almond on drums and Alex Acuña on percussion. They played stuff from the One more once album. Great concert. I'll try to go to Marciac next summer.

I finally managed to write the new chapter of the Python course. I used Yapps2 which generates very readable parsers, and is quite easy to use, and designed a very simple statemachine description language to use as an exerecise (from parsing to C code generation).

I've finally managed to setup a way of posting a daily snapshot of Narval's cvs on the ftp server. I had to use a ssh key with no passphrase to do this, but I don't think it iqs too bad, because this key is only authorised on the ftp server from machine inside the firewall. If anyone knows of a better way to do this, I'll be glad to hear of it.

When changes creep in that kill performance... We spent some time figuring out why xmldiff had slowed dow considerably. It turned out that a loop to find the index of a tuple in a list had been replaced by a call to the index() method of the list. This method uses == to compare elements whereas the original loop used is, which in our case is about 100 times faster.

Before I get to some more serious work, I'd like to post a small link to the page of womeone whose work I greatly appreciate, Christopher Baldwin. This guy is a great cartoonist, and I've been reading Bruno daily since 1998.

This is not a humor strip, though some drawings and characters are really funny. There is some very deep melancholy in there, not unlike the state of mind Beaudelaire called spleen. It's a story of daily struggle against a gloomy world, where the sun shines sometimes, where friends are important, and yet wher you can feel miserable. And there's a cat, too.

I'm starting with the diary feature of Advigato. I'll try to post interesting stuff here. English is a foreign language for me, so please be indulgent with my poor spelling and grammar.

Code generation in Python

I'm currently working for a new chapter in Logilab's Python course (link is in French), for a customer who wants to generate code using python. After talking with the person in charge, they want to generate some assembly code for some on-board equipment, but they cannot say a lot more, because there are some confidentiality issues. I'll probably end up generating C code. The problem is finding a good example for hands-on exercices. I haven't decided yet what it will be. Suggestions welcome ;o)

So I'm currently investigating parser generators in Python. The Python Parser-SIG has some interesting resources.

PyExpat and the Python profiler

At the same time, I've been hitting a problem when trying to profile some runs of xmldiff : the xmlparser pyexpat does some strange things with the Frames to call the python callbacks, and the profiler doesn't like it at all. See my post on the xml-sig mailing list on this.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser
code is live. It needs further work but already handles most
markup better than the original parser.