Perl, PVR and SAX

johanvdb on 2002-10-31T09:16:34

Recently I read an article on perl.com that really showed the strength of using SAX and family.

This got me going and experimenting with custom SAX event handlers and generators.

Now, the place I work is full of übergeeks - in the positive sense of the word - a few of them are building there own Personal Video Recorder and introduced me into a special XML format, called XmlTV. This format is used to describe TV program listings, like channel, hour and show that is on the telly.

Their favourite system, freevo, seems to be build with Python - and that is a pity off course. It should have been build in Perl. Looking at CPAN, we find a lot of modules that would aide in the development of such a thingy ... SDL for the graphics (no no, no browser here please ), handling of XMMS and MP3 files and off course LWP HTML::TreeBuilder and the XML modules for scraping usefull information for TV addicts from the web.

Well, all this led to me developing a thingy that can generate this XMLTV format - theoretically from any source - in Perl (*** note: I put it offline, sometimes it is too dangerous to write perl modules ***). And I've build it as a SAX event generator, so you can plug it in into any application you want (?) if you prefer to work with XML stuff, that is.

I'm also toying around with Perl 5.8.0 recently and especially with the threading capabilities of Perl 5.8.0. I've written the classic Producer/Consumer application. And that got me wondering about the differences between the threading model in Perl and Java. I don't now how, but the low level threading support in Perl seems a bit too low-level for some stuff. having read a book on Java threading (shame on me), I really would like the following constructs in Perl:

sub do_stuff : Synchronized { Wait; $do_stuff_var++; NotifyAll; }

and

... # critical code section synchronized { do_critical_stuff; more_critical_stuff; } ...

Let's see what we can do in this area ... more soon.