eTech05: Building Contentcentric Apps

My next etech tutorial finds Ben Hammersley giving an overview of building contentcentric (his term) apps using RSS and Atom. Ben’s as enjoyable to listen to in person as he is to read online (better in some ways, given that whole real-life full fidelity thing).

He begins with a brief history of the development of RSS, including a nice comparison of RSS 1.0, RSS 2.0 and Atom. Of course, Atom is deemed technically superiour compared to the older RSS specs; correctly so in my opinion. I know that some claim that RSS 2.0 is good enough because it works today. RSS 2.0 is good enough for now, (and I do provide an RSS 2.0 feed for this site), but it is without question so under-spec’d that it hinders the deployment of reliable RSS-based applications.

Ben next attempts to motivate the need for a tightly defined specificaion such as Atom. The minimum information we can know about a resource, and no less, is required for a legal Atom document. He calls this the principle of the conservation of metadata. This really rings true to me, having used various image manipulation programs that were cavalier, to put it politely, about preserving the image metadata.

Interesting point: it’s ok to have a lossy representation, but the resource itself must conserve the (meta)data. Very true. The images I publish on this blog don’t have full metadata(exif) stored within the image, due to space considerations, but for sure I strive to preserve the EXIF info in the original photos.

More about Atom: there is both an Atom entry document and an Atom feed document.

Atom constructs are used to modify key elements such as person, category or date.

Audience questions about handling various elements; all answered without hesitation.

Binary payloads are handled using a variety of techniques, including “link rels”, “content payloads”, and “content pointers”. As this isn’t an Atom tutorial, I won’t go any deeper on this topic.

Interesting question about multiple sources of metadata; for some types of apps, RSS 1.0, due to its RDF-like nature, might be a better choice than Atom. This set of questions also leads to an elaboration of the atomic like nature of atom elements.

An Atom feed is a collection of documents along with its own metadata. A feed is the representation of a query over resources. Recursively, one could have a feed of feeds, for example.

Next, we turn to the Atom API. Prior, related APIs include the BloggerAPI, MetaweblogAPI and so on. An Atom API call is an Atom entry document over an HTTP verb. Details were discussed but not noted here.

The rest of the talk got more and more technically detailed oriented, quite useful for developers, but not really suited for blogging, at least not by this non-Atom programmer.

Oh, one final note, where possible, as in the case of managing security, Atom defers to the capabilities provided by the system. So, Atom has no built-in security model, but instead relies on .htaccess or similar system capabilities.

Building Contentcentric Apps

Ben has put the contentcentric apps slides online.