1 May 2000 prevostjm   » (Apprentice)

Hrum. I've been using Zope a bit lately for class, and ACS a bit lately to work on getting hired. I'm not really satisfied with either, though.

What a Good Web System Needs

The way I see it, Zope and ACS are coming at the web publishing problem from two different places--and you need parts of both of them to have things work nicely. (And, perhaps, a third thing.) What Zope has that 's pretty fucking awesome is the drop-in products. These are slick. Being able to turn a web application into a simple plugin that somebody can "mount" (or the like) on a URL space is very very very desirable.

On the other side, though, relational database backing is a really really good thing. ACS has done this very nicely, but Zope products tend to use the ZODB for this sort of thing, and I'm not convinced this is sufficient. Zope has RDBMS support, but no consistent data model, and as I said, the products don't tend to use the SQL stuff. ACS is really really lacking in the ability to do work without having to write lots of grungy code, though.

On yet a third side, we have the problem of writing interesting content. This gets into template systems and things like DTML. I've written several such systems for work--and frankly, no matter what I've tried, they all end up sucking in the end. The only solution I see is dividing the building of pages from the formatting of pages. Fortunately, XSL processing should be usable for this.

How use XSL here? The database accessing stuff generates simple XML. (Good! No formatting tags getting in the way, you can tell what the fuck is going on.) Then, this XML is spun through an XSL stylesheet to introduce formatting (this is where things like "color every other line of the table" come into the picture), and then the result is spat out as HTML.

Cocoon is doing some of this stuff--and Cocoon 2 has some especially nice ideas going into it. Guess I'll see what happens there. I'm doing some experiments myself on the theme of "what's the right way to define pipelines on various URL spaces that still allows drop-in modules". We'll see what happens.

Latest blog entries     Older blog 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!