[personal profile] flexibeast
Over the last few days, i've been busily coding a content generation system for the Pleasure Activism Australia Web site.

Until now, events listed in the 'Events' section of the Web site had to be added or removed by directly editing the relevant M4 source file, and then running a shell script to turn that source file into an HTML document, to be uploaded to the Web site. The WAP version of the 'Events' section - which hasn't been updated in months :-( - required manual editing also.

Now, however, events are stored in a single XML file, using the xCal format, an implementation of the iCalendar standard in XML format. The system i've coded removes past events from the file, gathers together events on a per-state (i.e. New South Wales, Victoria etc.) basis, sorts them into date order (soonest first), inserts these events into the relevant M4 source files, runs the convert-to-HTML script, and finally uploads the HTML docs to the Web site. It doesn't yet output WML docs for the WAP version, but that facility will be added shortly.

The end result will be a system where one can simply modify a single XML file and then run a program to ensure that the 'Events' section is up-to-date. And apart from the convert-to-HTML shell script, the system is written in Perl.

i actually wanted to do the project in Common Lisp, as a way of teaching myself CL through the development of a production system. Sadly, however, i didn't even make it to the stage of writing any CL code, because of difficulties with one particular library needed for the project: an interface to the GNU Readline facility.

The implementation of CL that i've chosen to play around with is CLisp. (i tried SBCL, but found its interactive shell to be much more awkward to use than the CLisp interactive shell.) Upon visiting the ASDF-install page to look for a CL interface to Readline, i found the CL-Readline libary - which requires the UFFI library to be installed, which works with all the major CL implementations apart from CLisp. :-/ Then i found the successor to the CL-Readline library, Linedit. which requires the Osicat library - which requires the UFFI library. Ack! Then i read about CFFI, a substitute for UFFI, which seemed promising, since it's apparently implemented purely in ANSI CL and should therefore be CLisp-compatible - except it turned out that the UFFI-compatibility layer was still under development. Argh!

Maybe there are other CL interfaces to Readline apart from CL-Readline and Linedit; but they weren't immediately apparent on the ASDF-Install page, on which libraries are listed higgeldy-piggeldy, rather than thematically, as is the case with the Comprehensive Perl Archive Network (CPAN).

So after all the above, and despite having found at least some of the other CL libraries i needed - CL-PPCRE and XMLS, but not an FTP or date-manipulation interface, do such interfaces exist? - i basically went "Stuff it, i'll learn CL through another project, and just do this one in Perl, where i know everything i need is available."

And so Yet Another Perl Application was born.
 

Date: 2006-05-25 22:08 (UTC)
From: [identity profile] naked-wrat.livejournal.com
I know I don't understand most of this stuff but I know I was feeling pretty frustrated myself watching you have troubles with all that UFFI library stuff! *huggles* Love you!!!

Profile

flexibeast: Baphomet (Default)
flexibeast

Journal Tags

Style Credit

Powered by Dreamwidth Studios