Archive for the 'atom' Category

The REST Registry

Paul Fremantle’s Blog: A new kind of (SOA) Registry: “So fundamentally the approach we have taken is to build a registry/repository based on REST concepts. And as we looked at the REST space, we kept noticing how close the Atom Publishing Protocol (APP) is to our needs, so we’ve made that the public remote API to access the repository. Of course, if you are just browsing the registry, you only need a browser - APP is mainly there to support updating resources.”

And of course it uses Apache Abdera :).

5023

AtomPub is now officially RFC5023:

The Atom Publishing Protocol (AtomPub) is an application-level protocol for publishing and editing Web resources. The protocol is based on HTTP transfer of Atom-formatted representations. The Atom format is documented in the Atom Syndication Format.

Lucene GdataServer

GdataServer - Lucene-java Wiki: “GData-Server is a lucene sandbox project started in June 2006. The first 2 1/2 month of the project this has been a one man show due to Google’s SummerOfCode. In fact of that the server is still in high development status but offers all features described in the GData protocol. Generally speaking, the Lucene GData Server is an extensible syndication format server providing CRUD actions to alter feed content, authenticaton, optimistic concurrency and full text search based on Apache Lucene.”

Nice!

Atom Publishing Protocol Plugin for Confluence

Joe Gregorio: “Zohar Melamed just pointed me to his APP Plugin for Confluence. Check out the screen shot of it working with the APP Test Client.”

More adoption of APP is good!

Google + Atom

atom-logo75px.gifGoogle Data APIs (Beta) Developer’s Guide: “The Google data APIs (’GData’ for short) provide a simple standard protocol for reading and writing data on the web.

GData uses either of two standard XML-based syndication formats: Atom or RSS. It also has a feed-publishing system that consists of the Atom publishing protocol plus some extensions (using Atom’s standard extension model) for handling queries.

Each of the following Google services provides a Google data API:

  • Google Apps Provisioning
  • Google Base
  • Blogger
  • Google Calendar
  • Google Code Search
  • Google Notebook
  • Google Spreadsheets
  • Picasa Web Albums”

As DeWitt Clinton wrote on the atom-protocol mailing list:

What never ceases to amaze me is that APP was applicable in so many cases. A true testament to the power of the protocol.

It’s indeed noteworthy the amount of buy-in and mindshare the Atom Publishing Protocol has gained in such a short time. And it hasn’t even reached RFC status yet.

Misunderstanding REST

Dave Winer discusses Yahoo! Pipes and in the process says something so wrong that I don’t even know where to start picking it apart.

In this case, the target is the huge, rich base of RSS feeds, which is designed to work with one kind of aggregator, a River of News, and if you structured Pipes around that — a filtration process for a river, it might bear some immediate fruit, but its built on a different model.

This might be true if you limit yourself to RSS, which is not very useful beyond aggregators. Maybe if you started using Atom instead, you might discover it is suited to a much larger category of applications.

It assumes that each feed can be dealt with as a procedure call, which according to the REST philosophers, it can, but in practice, feeds don’t take parameters, so they’re the least interesting kinds of procedures, like clock.now in UserTalk. Sure there are some verbs that build on that verb, date.month, date.year and date.dayOfWeek, but nowhere near as much as verbs that have rich parameter lists, which are like the gateways that Tim O’Reilly and Jon Udell are so excited about.

Equating feeds to procedures? Is this supposed to be consistent with REST, in Dave’s mind? Reality check: There are only four verbs in REST: GET, POST, PUT and DELETE.

See XML-RPC for Newbies for background; a Pipes that could do XML-RPC could be interesting, esp because the Metaweblog API is an XML-RPC application, and is widely supported by blogging tools and CMSes.

XML-RPC? Talk about flogging a dead horse.

In the RSS world, and therefore in Pipes, there’s no way to tell if items in two feeds are talking about the same thing. The best you can hope for is keyword serendipity, which all the demos so far do, and those make for unsatisfying demos, because you know you couldn’t deploy a useful app out of the concepts they illustrate. Very much like the early demos for HyperCard, Marimba, and my own Frontier.

Now it’s possible that a company like Yahoo, with its diverse flows of information, and nearly universal support of RSS, could add enough metadata to their feeds to be sure two items in different feeds were talking about the same thing, and then we’d be somewhere interesting.

Once again, if you used Atom, you could rely on every item having a unique identifier, and a universally unique one, being a URI. You could also reasonably expect that two copies of the same item, no matter which feed they were found in, had the same id. Unfortunately, RSS offers no such guarantees.

Looks like Dave is just whining here because Yahoo! Pipes is not like XML-RPC and RSS is too weak for doing anything besides aggregating news. If he had the courage to look beyond what he invented many years ago, he might find something actually useful was invented in the meantime.

Technorati Tags: , , , , , .

Releases!

Old news, I know, but I just want to underline how some of these releases tie together, possibly to indicate an important trend.

First of all, we have Java SE 6, with Javascript built-in, thanks to Mozilla Rhino.

Then we have JRuby 0.9.2, with a slew of enhancements, bug fixes and performance tweaks.

Finally, after a long wait, Groovy RC-1.

All signs pointing to 2007 as the year of dynamic languages on the Java platform? It really seems likely.

On an unrelated note, I am also pleased to announce the relase of Apache Abdera 0.2.0 (incubating). Nothing revolutionary here, but an impressive number of features already for a 0.2 version. Very stable and surprisingly bug-free also.

So long, RSS

I was pretty sure I had modified the Atom feed for this blog to output Atom 1.0, using James Snell’s templates for Wordpress. I was certainly serving Atom 1.0, because I remember I validated it and even proudly displayed the badge.

Then my certainties were shattered when I tried running some tests with Abdera on my feed and, to my surpirse, discovered I was still producing Atom 0.3. *Blush*. Something must have happened in the meantime and the Atom 1.0 template has apparently been replaced by the original one. Maybe it was the system crash the other day, I really don’t know.

Wanting to fix the issue once and forever and with the minimum amount of manual intervention, I remembered reading on Sam Ruby’s blog about a Wordpress plugin. In a couple of minutes I downloaded, installed and activated it and now I’m proudly serving Atom 1.0 again.

As a side effect, all RSS feeds are gone (OK, if you really want an RSS 2.0 feed, look here). I can’t say that I’m sad to see them go: Atom is so much better.

Enabling Atom 1.0 on Wordpress

James Snell: “Ok, so it’s about time I got around to offering some more helpful advice on how to enable Wordpress to use Atom 1.0. First off, there are the templates. Download the tar, pull out the wp-atom.php and wp-commentsatom.php and drop them into your wordpress folder (overwriting the Atom 0.3 template). You’ll likely want to make a few customizations of the templates if you want to associate feed icons and licenses with the feeds and entries.”

Done! If you are currently fetching my RSS feed, I suggest switching to the Atom 1.0 one.

[Valid Atom 1.0]

Speaking at ApacheCon about Atom

After going to Portland next week to speak at OSCON, it looks like I’ll be crossing the ocean once more in October to speak at ApacheCon US 2006, where my proposals for two talks titled:

  • Ruby for Java Programmers, and
  • Atomized: How to consume and publish Atom using Open-Source Java tools

were accepted. Many thanks to the ApacheCon organizers for giving me this wonderful opportunity!

I’m curious to know who else will be speaking. The only other one I know of at this time is Andrew.

The talk about Atom reflects my recent interest in the format, the publishing protocol and its applications. I can’t say much about that since most of what I’ve been doing around it is covered by NDA, but Atom rocks. Looks like Tim Bray shares the same feeling, to the point of being horrified to see nothing about the Atom Publishing Protocol on the OSCON schedule. Luckily he has enough clout to convince Nat to include him in the program. That’s one talk I’m not going to miss!

Apache Abdera and ROME: alea jacta est!

Great news on the Atom front! The ARI project I mentioned a few days ago has changed its name to Abdera. This gives it a new fancy name while at the same time removing any ambiguity around its “reference” character. I’m really looking forward for it to come out of incubation.

As I had anticipated, I changed my code to use Abdera instead of ROME and it was a relatively quick and painless process. Just changing all Java package names and keeping references to “Entry” and “Feed” classes was enough to get most of the code to compile cleanly.

Last but not the least: James Snell suggested on the ROME developers’ list that Rome could use Abdera instead of its own Atom implementation, and he was met with loud cheers, as Pat reports. Personally, I’m all for dropping ROME’s feed model and replacing it with one based on Atom, as Atom can do everything that RSS does, and much better.

There’s also been talk of moving ROME to Apache, a move which I would personally applaud.

Technorati Tags: , , , , , , .

Atom Reference Implementation

atom-logo75px.gifJames Snell: “Just a couple of minutes ago I sent off a new proposal to the Apache Incubator PMC to consider incubation of ‘ARI’, a reference implementation of the Atom Syndication Format and Atom Publishing Protocol specifications.”

I’ve been working with Atom lately, specifically with the Publishing Protocol side of things, and have been using Rome, supplemented by some of Dave Johnson’s code. While Rome is a fine toolkit for all kinds of syndication needs, its support for the many variations of RSS tends to get in the way when all you need is Atom, and Dave’s code is too blog-centric for my needs, which have nothing to do with blogging.

So I welcome ARI and will have a look at the code ASAP but, judging from the latest spat of articles on James’ blog, it looks like it already provides a good set of features on the syndication front and some support on the publishing one. I’ll try to swap it in in place of my homegrown, Rome-based code and see if it works out.

Technorati Tags: , , , , , .