tools: atom and atompub

I just had a realization that I’ve been trying to invent ATOM and the Atom Publishing Protocol. I’ve been pining for web services, and a standardized way for representing resources and URI publishing patterns. I wanted it to work with storage engines of my choosing (eg, mercurial) so that I could use my favorite tools as alternative interfaces. I have been implementing these things myself, in ways that made sense to me. In the process of implementing them, I have constantly looked for the best possible tools.

I used amara to parse XML for me. This pretty much took care of all my message parsing concerns. I used sqlobject to provide me with an interface to databases. I created serializers and deserializers that could transform a sqlobject into or from XML, or a simple struct. This also provided a standardized way of describing the objects in my application. I was going to use XLINK within the xml in order to describe the location of joined or related objects. I used turbogears, and cherrypy to expose objects to the web (using fastcgi and lighttpd). I was also about to implement interfaces to hg, and then create a development environment utilising literate programming tools (either noweb or nuweb) to help me develop my applications and code. Part of the idea was to have self-documenting RESTful webservices. Visiting the root of the webservice would provide thorough documentation on how to use it. However, much of this may prove to be partially wasted effort, because ATOM and the Atom Publishing Protocol are capable of providing all of this. In addition, it’s designed and engineered much better than the solutions I were working on.

While I’m sad that I didn’t have a hand in developing what appears to be some really nice technology, I’m happy that I can work on bigger and better things now that the tools are already provided to me. Hopefully, I can add functionality to the provided implementations (amplee is the current favorite) with very little effort. I’d like to be able to add resources to the system using my favorite command line tools: mercurial and vim.

The next thing I suppose I believe is missing is a way to provide a nice presentation layer. I’ve grown fairly fond of XSLT as a templating language for transforming XML stored elsewhere. I like having a website rendered by an XSLT implementation of a webservice, and having the business and persistence logic elsewhere (in different webservices). However, I’m still quite noobish at XSLT, and haven’t been able to think through all the issues required to design a well-engineered web site employing this pattern. If anyone knows, please tell me.



  1. Posted February 11, 2007 at 6:36 am | Permalink

    bewest, I think you might be interested in the ongoing brightcontent development. See:

    brightcontent developers hang out in #brightcontent on We’d love an extra hand in helping fill this space =)

  2. Posted February 12, 2007 at 12:40 am | Permalink


    hmmmmmmmmm. Thanks for the pointer. I’ll be poking my head in.

Post a Comment

Required fields are marked *

%d bloggers like this: