Now blogging at diego's weblog. See you over there!

blogging APIs - part 2

Or is this part 3, or four, or five?

Anyway, over the past few days there have been some more comments and discussion on the state of weblog software APIs on my earlier review (comments/discussion at the bottom). The most significant comment outside of the post was a recent post by Evan on which he clarifies Blogger's side, explains why the differences between APIs, and explains his personal position on the issue. Evan's post is excellent, and a must-read.

And here go my comments...

Before commenting about the actual issue there's one thing I'd like to clarify: Evan said:

Mr. Doval's research was also poor regarding Blogger API 2.0. His assessment of it seemed to be based entirely on Ben Trott's original analysis and suggestions, and he ignored Ben's update, where he acknowledge that most of his concerns were addessed. Diego's main gripe about 2.0—"In particular, the new Blogger API, while being incompatible with 1.0, retains the method call names..."—is not true as of about five months ago.
Two things regarding this: first, I did look for the API but couldn't even find it. The link I could find in the blogger discussion group was broken (this was confirmed by Martin in one of the first comments), and I noted this in the post, but I did read more comments on it, but found Ben's the most complete (most of the comments were of the type "blogger released a new API" and little else). Second, however, and more important, is the following comment I made in the review:
The Blogger 2.0 API is also out of the race for the simple reason that access to it is for developers only; it's still in flux, not deployed, and not widely supported.
I think this is important; regardless of how good something is, if it's not available then it's not fair to compare it with things that are available, and this was also a reason why I wasn't more worried about finding out in a lot more detail about the 2.0 API. After something is released, however, it's another matter entirely.

But the flip side is that if something is not yet available, then it's a good time to comment on. While that probably doesn't have a place in a review of "available APIs" aside from the comments I made, it's probably more important to consider because Blogger is still looking for input on it. So not digging deeper for Blogger 2.0 info was a mistake in that sense, and I want to clarify my opinion comparing Blogger 2.0 with MetaWeblog, with the important caveat that Blogger 2.0 is not yet available but obviously it will soon be.


Okay, back for the specifics of Evan's post.

First point. Evan said:

Because MetaWeblog treats a post as a struct instead of a string, Diego's opinion was, "The Blogger API has an incredibly simple-minded view of what a weblog post is, and it is completely, and I mean completely innapropriate for what people do with weblogs today, from posting images to using audio and so on."

This assessment is interesting, given that, when it comes to posting, you can do everything through the Blogger API that you can do with the free version of Blogger, which is what a heck of a lot of people use to blog every day. Also, it is unclear to me what in MetaWeblog makes it superior for posting images and audio. (In fact, the Blogger API is what AudBlog uses to post audio to blogs.)

Evan, I can only comment on what I see in the spec and what I can test against. If there's an application out there that supports audio posting (i.e., a "media object") through the API, I was clearly flat-out wrong. But (there's always a but) there's nothing in the spec to indicate how to do this. In this sense, the MetaWeblog spec talks about the struct (although I must say the specifics of how to use it are not well exposed) and about the metaweblog.newMediaObject call (also supported by MovableType). This makes the syntax/semantics of the call clear and avoids confusion. If I want to post a picture, and blogger allows me to do it in some way, I'd certainly like to know about it, but the spec doesn't mention it.

Evan also said:

[...] it's ridiculous to say there's nothing in Blogger API 2.0 that MetaWeblog can't do. What Diego actually said, by the way, was: "To me, it looks as if Metaweblog and Blogger 2.0 are almost the same, except for naming conventions, which essentially prevents interoperability (of course, I might be missing something here)."

A closer look would make it clear that there are many more differences in the API than naming conventions. Just looking at the three methods MWAPI has, there are significant differences.

For one thing, putting the login in a struct allows for more flexible authentication mechanisms and potentially better security. It also gives a place to put the appKey, which, as I've said, is important for us (and probably any other hosted service).

The actions struct allows for more flexibility in what the blogging system does with a post, beyond publishing it or not—for example, sending an email or pinging another server. (These aren't all reflected in the current documentation. It's still in the works. But the struct provides the framework for it.)

I agree with this. Regarding the first point, I mentioned the example of the login struct in my earlier update as being clearly a good thing. Structs are good, they make the API forward extensible without affecting the main syntax. Then about Evan's second comment on "actions": It sounds really interesting, but again, if I look at the documentation that's available today regarding the actions it says:
doPublish -> Boolean
makeDraft -> Boolean
syndicate -> Boolean
allowComments -> Boolean (not implemented yet)
I don't get a sense that the actions struct is intended to be used for a lot more. A good clarification of how it is intended to be used would help enormously there; just getting the idea of what 'actions' are would be enough to get people to understand that the possibilities are many more than it seems (and I mean a comment beyond what it says in "future of the API", where it states: "New filters and actions for more powerful interactions between external clients and Blogger." and nothing more).

So, how to MetaWeblog and Blogger 2.0 compare? They are very, very similar. Blogger 2.0 is better in several senses: more extensible (because it uses structs for everything), with more options (filtering--which is by the way really cool--, and actions). Regarding the posting of media objects, Evan's comment on AudBlog implies that there is indeed a way of posting media (maybe setting it as the body?) if that's the case then both APIs support the same functionality. I would argue however that MetaWeblog's newMediaObject call is more clear and it allows a tool to post media and then include references to that media URL within the text, something I think is really important.

So if the names of the calls were the same, Blogger supported newMediaObject calls and metaweblog supported structs for parameters, I'd be happy. :-)

Finally: Evan's post makes it clear (if there were any doubts) that they do want to create a standard if possible while moving forward. He mentions standards bodies (much as I was doing a couple of days ago), which makes me hopeful. His discussion of the history of how the APIs evolved is also really interesting and further clarifies how things ended up were they are today.

What gives me even more hope that a solution could be found is the latest comment by Dave on the review: Dave said:

My wish -- a meeting with Evan, the Trotts and myself, keep it simple. We're not really that far apart. We could get unified, I think. I have keynotes at OSCOM and the Jupiter weblogs conferences coming up in the next three weeks, perfect times to make announcements. I know I must be dreaming.
That would be great. They could make it happen!

This would be good for the weblog-tool makers, not just for us developers that use the APIs. Sure, I want to use these APIs to make life easier for users and to explore the full potential of weblogs; but I will support any number of APIs I have to--within my ability to do it (as clevercactus does today, supporting Blogger, Radio and MovableType). If they are compatible, all the better for me. But a more important point, as I've said earlier is that standarization also forces new entrants (such as Microsoft or AOL) into the field, and reduces the likelyhood that they will get away with the usual "embrace, extend and extinguish" routine, which in the end creates problems for all of us.

Categories: technology
Posted by diego on May 17, 2003 at 11:43 PM

a day of rest

Slowing down a bit from the rush of the cactus release--not easy. Caught up with some news, and read emails (read, not replied--that's for tomorrow morning), but not much else. Thought I'd go watch a movie, but nothing much on theaters to go see, I snuck in two hours last Saturday in the middle of work to watch X-2, which was good, very much like the first movie (looking forward to the third). And Matrix Reloaded is coming up this week--but I'm not sure if I'll see it right away, probably too many people will go in the first few days, and it will be difficult to get a good seat.

In the meantime, I'm reading Stalingrad by Anthony Beevor, which is excellent, and lined up after that I've got Bruce Sterling's Schismatrix which comes highly recommended. I really liked Sterling's Holy Fire but not so much other stuff he's written. We'll see.

Categories: personal
Posted by diego on May 17, 2003 at 8:34 PM

Copyright © Diego Doval 2002-2011.