Older blog entries for shapr (starting at number 17)

Found that I hadn't committed the 16 Jun 2000 genpy.py changes to CVS yet. wups. It's in there now. I also finished putting contributions from Moshe into CVS.

I think I now know enough to be able to get most of the tree transformer done. Wheee! Once the tree transformer is done, the hardest thing left will be run-time instrumentation to prove the IsExclusive() condition. The tree transformer is definitely the midpoint of this effort.

In other news, a few days ago I made a bunch of changes to a Python front end to mpg123. It's called Pimp3 and it's very hackable. It associates a rating with each mp3 you have. If you hit "next" during a song, its rating goes down one, if the song plays through, its rating goes up one. It's a spiffy idea. I've always wanted to play with a Python front end to mpg123.... Now if only I can figure out how to stick it into the gnome-panel......

I wonder if it's time for me to try out the window manager written in Python.... Hmmmmm.

Yay! Moshe Zadka is contributing to Bicycle Repair Man! Much cheerfulness!

He mentioned that tree transformation in BRM seems to him to be similar in spirit to the Python XML Validator written by Lars Marius Garshol. I've been perusing Lars' code for about an hour or so. It's definitely sparked some ideas.

At this point I'm considering subclassing the Node classes in Python2C's ast.py and adding getParent and getSiblings methods to them. I think I could write a fast tree search that just looked in a dictionary for nodes and then asked those node personal questions about their relatives. I'm not sure how difficult it would be to implement those methods though. I'll know soon enough.

I got a job writing Java for JDK 1.1.4 yay. I've been doing the self-employed thing for months. Means little money, but lots of time. Now I that I am soon to start a real job again, I'll be able to buy hardware, but probly won't have time to play with it. This seems to be the continual trade-off. Ah well, I hope my lack of time doesn't completely kill Bicycle Repair Man.

Minor progress has been made on the tree transformer.

Also, Bicycle Repair Man is soon to appear on the http://www.refactoring.com website. I hope that will increase developer interest in the project.

Nice to see that Moshe Zadka is on advogato now.

not much motivation lately to work on BRM :(

I wish I could collaborate with someone for awhile.

Went to sweden again for a couple of days, this time to Buden. This time I learned about Finite State Machines from Skip Montanaro's fsm.py. It's pretty nifty stuff. So far I've figured out I need to generate FSMs to match the tree. I keep wavering on whether I should go ahead and implement the tree matching language. Sometimes I think it's easier than it looks, sometimes harder. I'm not really sure.

I went to Sweden for three days with a laptop and no net access. Suddenly there's a webpage for Bicycle Repair Man. It's minimal, I'm thinking about an icon and more information. Doubt I'll get much done when Mr Wizard shows up.

Great News! Erno is moving to Oulo in six weeks! Oulo is 1.5 hours bus ride away from here, and boy is that closer than Helsinki. I'm hoping I'll be able to go hang out and code with Erno regularly. I'm very much looking forward to that.

Well, I've been lazing around and playing a new game I got for $2. I thought it was a nice price.. it also came with spiffy stuff like Autechre and Squarepusher for the sound track, so it can't be all bad. So... I think I'll be preparing for Mr Wizard's visit from Alabama for a few days, don't expect much for a week or so.

Ya know, Open Source seems to be more about kicking something out the door and letting people play with it. I think I'll just hand code each parse tree transformation and save the transformation language till the next version. It seems I don't really understand how to do something until I've already written it anyway. And then it needs doing again.

I think I'll refactor genpy into a subclass of the Python Compiler Visitor, and then hand-code up the tree transformations. I would really like to get a minimal prototype out the door SOON.

Aha, it's called tree pattern matching, and it seems to be a bit of deep algorithmic science. I am unsurprised that it involves algorithms similar to regular expressions. Now that someone told me what it is, and sent me a link to code he had written (Thanks much Thilo :), I can actually do it.

It looks like I'm going to use the AST Visitor that Jeremy Hylton wrote to zip across the tree and fill in a state machine. Should be entertaining.

Much frustration ensues. I'm currently floundering about trying to figure out exactly how to write a search and transform module for ASTs. Everything I've tried so far has turned out flaky. <sigh>

If you have advice, I'd love to hear it.

8 older entries...

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.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!