bLOGical
Carpe Diem "Weblog reporting on Advanced Technologies, Grid-Computing, XML WebServices, Semantic Web and Java / Python development"
 
                                                                                                         
   Updated: 10/28/2003; 8:04:45 AM.            

>

Saturday, July 05, 2003
> A review of blogging APIs

May 03, 2003

a review of blogging APIs

As I was looking again at the space of remote-access APIs for weblog software (working on the XML-RPC Weblog Sync feature of clevercactus), I found that there was no side-by-side comparison of the main available APIs, or list of links of material to read. So here goes, in the hope that it will save time for others in the future. :)
Update: May 6 -- here is an introductory mini-howto I posted tonight on blogging APIs.
Another update: May 17 -- a follow up with a reply to some of Evan's comments, and some more discussion of the Blogger API 2.0.

As always, comments & corrections are most welcome!

Why an API?

First of all, why is an API necessary? The answer to this question is useful to me in evaluating how the APIs stack up against each other. In my view, the API should ideally provide programmatic access to all the functionality in the product. Weblog software is typically server side (even Radio, which is client-side, is actually running a web server in the client), and so the APIs are crucial to provide client-side access when needed. We don't live in an ideal world however, so at a minimum the API should provide:


  • The ability to create new posts (specifying not just content but dates, categories, etc.)
  • The ability to edit posts (again, including modifying not just content, but also dates, categories, etc.)
  • The ability to discover information about a user's accessible weblogs, information on how many posts there are, and so on.
  • The ability to retrieve any post, or a set of posts.

These are the main tests that an API has to pass to be truly useful as far as I'm concerned. Reading recent posts is not as important, IMO, since you can obtain those by reading the RSS feed of the blog anyway.

As a side note: these are my ideal features for a weblogging API for the usage I have in mind, which is letting cactus deal with weblogs as another data/source sink, which would in the end let weblogs replace emails in many situations, particularly for mailing lists. You would be able to create a full "backup" of your weblog in your local machine. You would be able to sync the contents of a space to a weblog, post new items, and read the feeds, creating a "roundtrip experience" on the client, while retaining the flexibility to use the weblog (both for reading and writing) for the situations when that's necessary. That is, let the user choose the appropriate tool for the appropriate time. Other applications will certainly have different needs, but I think that what I'm looking for is more or less the high end of what you'd want to do (at the moment--who knows where we'll be in six months!).

On to the APIs that are available.

What's out there: an overview

First, there seems to be a growing proliferation of blogging APIs. There are tons of open-source blogging software coming out, and some of them are also implementing their own remote access APIs. This only creates confusion and problems for developers.

One bright spot is that, so far, all APIs so far are being written on top of XML-RPC although I've seen whiffs of SOAP implementations. The fact that XML-RPC appears to be the de facto "standard" feels strange: usually it's high-level APIs which should be the standard, using any number of transports (e.g., XML-RPC, SOAP, BEEP, whatever). However, this is the situation at the moment, and it doesn't appear that there is a huge drive to change it for the foreseeable future. At a minimum, the fact that they are all being written in XML-RPC means that there's less transport headaches.

As far as what I reviewed, there seemed to be three main API contenders: the Blogger API v1.0, the MetaWeblog API, and the LiveJournal API (Those are the original source links; Userland maintains a main list of APIs here). Those three main API mirror three of the main blogging tools available: Blogger (now owned by Google as we all know), Radio and LiveJournal. MovableType, also very popular, only adds extensions on top of the Blogger and MetaWeblog APIs, as I mention below. The main developers of these APIs have been Evan (Blogger) and Dave (MetaWeblog). LiveJournal doesn't seem to identify with any particular authors per se. Ben & Mena, as developers of MovableType, also hold some sway in the community (I would think).

A developer preview of the Blogger API 2.0 was released last December, but the location given for the document now responds 'file not found' (which might be related to the Google purchase of Pyra and their subsequent adjustment of plans--I don't know). Strangely, the release was not mentioned in Evan's site, but it was mentioned in Dave's and Ben & Mena's, as well as in a zillion other blogs. Evan did respond to comments from Dave, who was asking for a move towards uniformity so that only one API has to be supported.

Of those three, the APIs to focus on are, IMO, Blogger 1.0 and MetaWeblog. All major blogging software implements both (with the notable exception of Blogger), and other, less known but still popular packages such as blojsom do as well. LiveJournal supports their own API and nothing else, and no one else seems to support the LiveJournal API. As far as I'm concerned, that makes it a closed system and so third in interest by a mile. Why would you write software that works with a single vendor? Microsoft might be able to pull that off, but that has to do more with monopolies and bulging bank accounts than with developers liking the idea. That said, the LiveJournal API is actually quite complete. If it was more widely supported, or if you really, really needed interaction with LiveJournal, it would be worth taking a second look. 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. It seems that the API is moving closer to the functionality of the metaWeblog API, but as Ben commented there is still room for improvement and a lot of confusion built in. In particular, the new Blogger API, while being incompatible with 1.0, retains the method call names, something that's not, shall we say, ideal. Finally, MovableType has its own extensions to the APIs, but since it implements both Blogger and MetaWeblog I won't go into those. ManilaRPC is probably the oldest blogging API there is, but again since it applies only to Manila, and no one else supports it, I won't go into it in detail.

The comparison: Blogger API vs. MetaWeblog API

Before we get into the specifics, I can give one general impression: The Blogger API is a joke, and a bad one at that. This is probably to be expected since it's about two years old, but it's really disappointing to see that one of the most used weblog tools has such crappy developer support. The MetaWeblog API is much better, although it has one or two shortcomings as well (measured by the "tests" I mentioned above). 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.

To see why, look at the following lists of methods in each API:

Blogger API 1.0
blogger.newPost: Creates a new post.
blogger.editPost: Edits a given post.
blogger.getUsersBlogs: Returns information on all the blogs a given user is a member of.
blogger.getUserInfo: Authenticates a user and returns basic user information.
blogger.getTemplate: Obtains the main (or archive) index template of a given blog.
blogger.setTemplate: Sets the main (or archive) index template of a given blog.

MetaWeblog API
metaWeblog.newPost: Creates a new post.
metaWeblog.editPost: Edits a given post.
metaWeblog.getPost: Obtains a given post.
metaWeblog.newMediaObject: Uploads an image, movie, song, or other media object from a user's computer to the user's blog.

On the surface, the Blogger API appears to be more complete than MetaWeblog. This is not the case however, and there's a simple reason: the Blogger API considers the content of a post to be simply a string with no parameters whatsoever allowable. For example, when you editPost using the Blogger API, you can't change the date of the post, or do anything except modify its main text content. Yuck. Again, this comes from a simpleminded view of what a weblog post is, and one that is entirely innapropriate for the use most bloggers give to their blogging tools today.

The MetaWeblog API is, as I said, much, much better. It considers post content to be structures rather than simple strings, and the structures are elements of the item tag in RSS, so you can create essentially anything that you can read. Furthermore, it almost passes all of the "tests" I mentioned above. It doesn't have a way to query for a user's blogs or obtain information, and it doesn't let you edit templates etc. That said, all tools that I've seen implement the MetaWeblog API also implement the Blogger API, so you can use the getUserInfo call from Blogger and then use MetaWeblog for postings.

In summary: MetaWeblog API, good. Blogger API 1.0, bad. The Blogger API 2.0 apparently fixes many of these problems, let's hope it gets (re-)released soon.

In the end however, it's unlikely that any developer, particularly small developers, can choose one over the other. We will have to work with both for the foreseeable future, supporting other APIs like LiveJournal separately when necessary.

Final thoughts

A few things that will be important in the future, and are still missing: the ability to edit categories, and to specify things like RSS feed targets, among others. This of course falls into remote configuration of weblog software, rather than use of the software itself. This area hasn't been explored at all, but I think that as more people use blogging software the need to have simple, client-side configuration tools will grow.

Posted by diego at May 3, 2003 02:29 PM | TrackBack
Comments


Dave Winer clued me into this one time because it's not very clear, but the MetaWeblog API is a superset of the BloggerAPI - it doesn't live on it's own, but rather sits on top of the BloggerAPI. Thus any app that supports the latter, supports the former (but not vice versa, if you're following me).

You should check out MTs extensions to this as well, here: There's even more stuff in there to support if you're really into it. ;-)

http://www.movabletype.org/docs/mtmanual_programmatic.html

-Russ

Posted by: Russ at May 4, 2003 01:33 AM

Hey Russ,

Interesting. I didn't know it was suppossed to be a 'superset', since most of the methods are duplicates with different names... unless you consider it a superset 'in spirit'. The MetaWeblog spec doesn't mention anything about being a superset...

Re: movabletype, I did mention that, and linked to that page! :) Although for the reasons I explain in the post I didn't really consider it 'a contender' since it doesn't stand up on its own, and it works only for MT. The extensions are very cool though.

Posted by: Diego at May 4, 2003 02:30 PM

Thanks for the comparison and information, Diego. I was checking out the new version of blogger.com yesterday, and there's no mention of anything new on the API front. In fact, it mentions that the existing API should still work: http://new.blogger.com/projects/dano/release_notes.pyra .

There is a bloggerDev mailing list at http://groups.yahoo.com/group/bloggerDev/ where they're discussing the v2.0 API spec, as of April 27th. You have to join the group to view the documentation, however even after joining, I can't see the file, so cannot comment further!

Posted by: Martin at May 4, 2003 02:31 PM

Martin, glad it could be of help. The problem with the link you mention is the same I was talking about in the entry as well--I registered and the link isn't there, which is a bit... err.. suspicious. My intuition is that they've pulled it until the Google thing settles down, and they've figured out what they're going to do.

Posted by: Diego at May 4, 2003 02:47 PM

Sorry, Diego... I'm a bit of a skimmer. ;-)

-Russ

Posted by: Russ at May 4, 2003 03:37 PM

Excellent review and perfect timing. I'm talking later today to a bunch of engineers about weblog infrastructure. Your piece was a good refresher for me of the issues. I just linked to it from Scripting News, with more comments.

http://scriptingnews.userland.com/2003/05/05#When:6:38:55PM

Posted by: Dave Winer at May 5, 2003 04:29 PM

Another one to consider:

http://wellformedweb.org/story/9

Posted by: Sam Ruby at May 5, 2003 04:40 PM

BTW, ManilaRPC is also available over SOAP 1.1, not just XML-RPC.

Posted by: Dave Winer at May 5, 2003 04:50 PM

Dave, thanks for the comments. I agree that MetaWeblog should be "rounded out" with the methods from the Blogger API that it is relying on (I'm referring to what Russ said, see first comment above). Right now it's not clear that MetaWeblog is a "superset" of sorts of the B-API (if that's the case--If you could clarify the history of this that would be great!). MetaWeblog would then support basically all functionality requirements.

Sam, the comment API you linked to is really interesting--I had been looking for something like that but couldn't find it (the term "blog" appears only once in the page and weblog doesn't appear at all--that's why, probably).

Btw, as a follow-up I am now writing a sort of "how to" for using the APIs--even though the spec is reasonably clear, not having ready-to-go examples makes it hard to get started. I'll post it later today.

d

Posted by: Diego at May 5, 2003 05:01 PM

Re: follow up. May I suggest a test case? Take a look at what it would take to represent a simple blog entry with two categories with any of the popular APIs.

Posted by: Sam Ruby at May 5, 2003 05:15 PM

We're building a new blogging API based on SOAP (but also extensible to XML-RPC and REST) that takes a slightly diff approach. In our model, the data store is much richer (close to the LiveJournal model), but we also support the same functionality ideas as blogger/MetaWeblog/MT. In fact, we even offer an XML-RPC interface for the same data store. check it out at http://erablog.net/webservices/v1.4/erablogauthor.asmx and http://erablog.net/rcp2/erablog.xmlrpc.

Posted by: Mike Amundsen at May 5, 2003 05:17 PM

For a list of APIs

APIS list (http://www.la-grange.net/cms#blogger)

Posted by: Karl at May 5, 2003 05:27 PM

Russ got it right. When designing the MetaWeblog API, I just wanted to broaden the pipe in and out of posts, the other parts of the Blogger API were sufficient, imho (at the time). Now with all the rock and roll in BloggerLand, I want to be sure that we have a basic frozen spec for implementors, so it makes sense to round out the MetaWeblog API.

Posted by: Dave Winer at May 5, 2003 05:32 PM

Below is the link to the new Blogger API 2.0:

http://www.blogger.com/developers/api/documentation20.html

We are working on a developers area for Blogger and haven't formally introduced it yet. More soon...

Posted by: Jason Shellen at May 5, 2003 06:10 PM

Jason, how about we work together to get a single API that works for all blogging tools? It's not too late. I think we'll all look back on this moment a few years from now and see this is when we had the opportunity to do something great. Longterm people may forget our products, or who we are, but the API will last if there is a single API that allows you enough flexibility to tune it to your tool. In all that I've seen so far, I don't understand why you can't use the MetaWeblog API. Evan says it doesn't fit, but he didn't explain why. Perhaps you'd like to engage the rest of us in a discussion. It's important, imho.

Posted by: Dave Winer at May 5, 2003 06:16 PM

Diego, (and everyone else) given that MT's extensions to metaweblogAPI are "very cool", what's the general feeling about those extensions being part of MetaweblogAPI 2.0? Anyone see a reason why they shouldn't be in there?

Posted by: Anil at May 5, 2003 06:24 PM

Jason, thanks for posting the link. The new API looks very much like a mix of MetaWeblog and some of the original elements of Blogger 1.0, as I mentioned in the post. 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).

I second Dave's request. In my mind, there's one hugely important reason for a single API: if there isn't one, then someone, at some point, will come up with a an "uber Weblog API" that encapsulates all of the others, but, obviously, it won't be server side. It will be a wrapper on the client, and it won't be available for everyone (that is, it will be limited to certain platforms, or languages). We'll lose XML-RPC as a common base, which would be bad, since most likely it will be a provider of development tools of some sort. Then whoever controls *that* API will drive it. Who knows? It could even be (gasp!) Microsoft!

The pieces are all there IMO (as I said, unless I'm missing something), all that's needed is an agreement on naming conventions and request/response formats. And both weblog tool providers and weblog software providers would benefit from the simplicity that it would bring.

Posted by: Diego at May 5, 2003 06:35 PM

One thing I'm interested in is what the implications are of what you propose for adding the ability to change the date of a posting. It appears that this would break the permalink feature for most of the the blogging sites.

I do think this is something that could be useful and have found myself entering some posts that I after entering manually changed posting times in the DB. The reason for this was the content was tied to summary of events that happened (radio show review/recap) on that date.

I was able to do this since I am programmer at the
blogging site www.23pools.com but I think it could
be useful for others as well but it seems to break the permalink. BTW my site supports the Blogger API and am working towards adding the MetaWeblog API.

Posted by: Carl Garland at May 5, 2003 06:42 PM

Anil, I definitely agree that some of MT's extensions should be incorporated in some form. For example, MT's API is clean in terms of handling categories, which the other APIs don't consider "core" elements, but to me are.

Also, MT's API includes functions for dealing with trackbacks. Managing BOTH comments and trackbacks programatically *in a uniform way* would be excellent IMO, especially for what I have in mind. If a certain app doesn't support trackback (actually, I think only MT and Radio do --I think I read on Dave's blog that he was working on that at some point, Dave correct me if I'm wrong) then the call just returns "not supported" or something. (Sam Ruby linked to a Comment API above that I wasn't aware of).

For my "tests", the ideal API contains elements of all three at this point.

Posted by: Diego at May 5, 2003 06:43 PM

Diego, I did work on Trackback, and completed my work and passed it off to Jake at UserLand to release it for Manila and Radio. That hasn't happened yet, but I hope it happens soon. We tested our Trackback implementation against all flavors of Movable Type, and a couple of non-MT servers that volunteered. It was a lot of work, more than I thought should be necessary (proves the value of freezing a protocol early) and we require the RDF discovery bits be there. Net-net it works, and conforms to the MT spec in all its variations.

Posted by: Dave Winer at May 5, 2003 06:59 PM

I like, and use, some of the MT extensions in my software. I totally dig how scriptable MT is.

However... my main complaint is that it takes more calls to deal with categories than it does with other MetaWeblog API sites.

For instance, with Manila and Radio, categories are present in the structs returned by metaWeblog.getPost and getRecentPosts. So I can get, for instance, the 10 most recent posts, complete with categories. Just one XML-RPC call.

For Movable Type, I can get the 10 most recent posts, but then I have to call mt.getPostCategories for each post. That's 11 XML-RPC calls instead of just one.

And, similarly, I can set the categories for Radio and Manila via metaWeblog.newPost and metaWeblog.editPost. With Movable Type an additional call to mt.setPostCategories is necessary.

This is mainly by way of illustration of a point I want to make -- the fewer XML-RPC calls, the better. Another example might be mt.getTrackpackPings. I'd rather the list of trackback pings be a part of the struct returned by metaWeblog.getPost (and getRecentPosts).

Posted by: Brent Simmons at May 5, 2003 07:54 PM

Brent. To you point of multiple categories:
http://www.intertwingly.net/blog/1207.html

It seems to be a limitation of XML-RPC then MT's specific implementation. (http://www.intertwingly.net/blog/1160.html) I could be mistaken, but this is a question has gone unanswered for quite some time which leads me to believe that there isn't one.

Posted by: Timothy Appnel at May 5, 2003 08:25 PM

Diego

The Blogger API is extremely limited compared to alternatives, but maybe it's simplicity is one reason why it's so well-supported?

If I need to knock up an app which integrates with the maximum number of blogging tools (or conversely, write an app which allows the maximum number of blogging front-ends to integrate me), the Blogger API is the best choice... isn't this a case of "Don't worry, be crappy"?

http://www.brainyquote.com/quotes/quotes/g/q138091.html

fwiw I'm personally a big metaweblog API fan and implement that alongside blogger API whenever possible.

Posted by: Tom Hume at May 5, 2003 08:32 PM

Timothy, I wouldn't assume that it wasn't answered because there was no answer. If I were coding this from scratch I'd return an array in place of a string if there was more than one category. In the post you point to Charles is already saying he's annoyed and Sam says he prefers SOAP. Somehow I got the idea that neither of them was really looking for the answer, they were looking for a chance to be emotional or partisan. Had Evan, Brent, Mena, Ben or Anil asked me, I would have offered the above. In other words if someone is really doing the work and not tire-kicking, they tend to stick to the basics without adding the extra oomph that Sam often does, as does Charles. That's the trademark of a real developer -- they respect other developers, at some level. The tire-kickers are looking for something else. I don't nibble on every invitation for flaming.

I imagine that's more than you want to know, but the tendency of these communities to flame, particularly at me, makes me reluctant to answer questions sometimes.

Posted by: Dave Winer at May 5, 2003 08:43 PM

IMHO sticking to the basics would mean simply sending RSS 2.0 without any structs, arrays, or other mappings. That's why I recommend the commentAPI.

I've also personally implemented pingback, trackback, the comment API, and any number of other protocols.

Posted by: Sam Ruby at May 5, 2003 08:56 PM

I just spent a few minutes checking the spec and how Radio works, and they both use a list to transport categories, so I don't see what the problem is if there's more than one category.

"For categories, pass an array of strings of names of categories that the post belongs to."

http://www.xmlrpc.com/metaWeblogApi

Posted by: Dave Winer at May 5, 2003 09:03 PM

Timothy -- I send multiple categories via the MetaWeblog API all the time in my software. It's an array, as Dave points out. Piece of cake.

Posted by: Brent Simmons at May 5, 2003 09:46 PM

Brent: interesting that your solution hasn't come to light sooner. I'm glad that it has and a productive conversation has begun. How are you/would you propose denoting the primary category from the others? Have you submitted this feature request/fix to SixApart?

Posted by: Timothy Appnel at May 5, 2003 10:04 PM

Timothy, as far as I know MovableType could just add parsing of the parameters. This is from their docs on MT's programmatic API v2.63 (link in the post):

"The struct content can contain the following standard keys: title, for the title of the entry; description, for the body of the entry; and dateCreated, to set the created-on date of the entry."

It adds some MT-only parameters as well. For MetaWeblog you can call "metaWeblog.getCategories". If you're using MT's API, it has a call "mt.getCategoryList" that returns the possible categories, and then you have to call "mt.setPostCategories" which does the trick.

Posted by: Diego at May 5, 2003 10:26 PM

Timothy -- I hadn't realized that it was a solution that needed to come to light. I just thought it was how it worked, that's all.

Primary category: first item in the array.

I haven't submitted this to the Movable Type folks yet because I've been busy. But I've been meaning to.

Posted by: Brent Simmons at May 5, 2003 10:27 PM

For those interested, I've just posted a mini-howto of APIs, with comparison of how the same post is handled in them, at http://www.dynamicobjects.com/d2r/archives/001929.html

d

Posted by: Diego at May 6, 2003 12:21 AM

Timothy -- it was in the MetaWeblog API specification. Certainly it's reasonable to expect people to read the spec before escalating. The spec is pretty simple and short. It's very clear on this.

Posted by: Dave Winer at May 6, 2003 12:45 AM

Dave,

From my reading of http://www.intertwingly.net/blog/1160.html#c1043602085,
it didn't appear obvious to either you or Sjoerd at the time.

However, I'd really like to get this behind me and move forward.

Yes, I do believe that there are simpler alternatives that I would prefer. Ones that are directly RSS based. But I have a history of supporting pretty much every API that I can.

For example:

http://www.intertwingly.net/code/mombo/pingback.py

Search for xmlrcplib.

Posted by: Sam Ruby at May 6, 2003 01:06 AM

I guess we assumed you had looked at the spec.

Posted by: Dave Winer at May 6, 2003 04:12 AM

Don't forget that Livejournal is open source and numerous other sites are running their own versions (deadjournal being the largest).

Also, livejournal supports all sorts of things that blogger doesn't (last time I checked) like group-based security.

I'd be interested to see a comparison of the LJ API with the Blogger API that dealt with how much the blogger API would have to be extended in order to work with LJ.

Posted by: Andrew Ducker at May 6, 2003 09:29 AM

Hi Andrew,
Thanks for the comments. As I noted in the entry, I agree that the LiveJournal API is pretty complete. However, given that it is not compatible with the other APIs, its relevance is diminished. This is just my view, of course, but I think that my situation is not uncommon: uses of these APIs are coming from small developers, and we don't have a thousand programmers to throw at a task. I agree that you can do more things with the LiveJournal API, but it ties you to LiveJournal and so you need to rewrite code for other tools--and so you're left with the choice of having to support one group of users over another. Never an easy choice for a developer, but realistically, if I as a developer have to choose (because of limited resources) supporting either MetaWeblog+Blogger (they work in tandem), and thus providing support for Radio, MT, Blogger, and others that use the API such as blojsom, or LiveJournal, which would only let users work with LiveJournal, it's not really a choice, it's obvious the MetaWeblog+Blogger combination is the way to go.

Regarding the fact that it is open source, while that might be useful for people deploying their own systems, it doesn't affect this discussion IMO, since open source or not, what I as a developer deal with is its API, nothing less, nothing more. The fact that it is open source makes me hope however that the other APIs will be supported in the future though!

Posted by: Diego at May 6, 2003 11:16 PM

Rounding out the MetaWeblog API:

http://www.xmlrpc.com/roundingMetaweblogApi

Posted by: Dave Winer at May 7, 2003 09:17 AM

My partner in crime in developing blojsom had actually started XML-RPC support for LiveJournal in blojsom. But as you noted above, I think we pretty well covered the bases with our support for the Blogger and MetaWeblog APIs. It's not out of the realm of possibility that we'd have support for the LiveJournal API in the future, but I imagine as the Blogger and MetaWeblog APIs evolve more, we'll update the support for those APIs first. Besides, it'd be an interesting "Exercise left to the developer". Right now we're getting more plugins written as well as exploring other "touch points" for blogging like blojsim (http://blojsim.sf.net), blogging via instant messenger.

Posted by: David Czarnecki at May 7, 2003 02:29 PM

I view the metaWeblog API as a set of queries into a database. When viewed that way, all sorts of possibilities can be seen.

Specifically, I would like the abily to edit and add categories, not just list them. I would also like to be able to retrieve a set of blogs based on filters: categories, date range, number of posts, etc.

Posted by: John Crane at May 9, 2003 08:09 PM

Why those evil and uncooperative jerks at Blogger, who hate interop and publish incompatible specs that don't work with other people's stuff, don't support the metaWeblogAPI:

blogger.newPost (appkey, blogid, username, password, string, publish)

metaWeblog.newPost (blogid, username, password, struct, publish)

Try not to run clear down to the string versus struct part right away. Take it slow, and compare them carefully.

Posted by: Phil Ringnalda at May 14, 2003 04:27 PM

The reason for LiveJournal having its own API is a matter of tradition. LiveJournal had a client-server protocol before it had web-based posting, and while most other weblog systems were still in diapers. The XML-RPC API is a richer layer atop the original “flat” API.

It's a future plan to retrofit metaWeblog into LiveJournal as a layer over the existing API, although since LiveJournal does some things that most other weblog systems do not, it may be a little tricky… we'll see.

Posted by: Martin Atkins at May 15, 2003 11:05 AM

The reason for LiveJournal having its own API is a matter of tradition. LiveJournal had a client-server protocol before it had web-based posting, and while most other weblog systems were still in diapers. The XML-RPC API is a richer layer atop the original “flat” API.

It's a future plan to retrofit metaWeblog into LiveJournal as a layer over the existing API, although since LiveJournal does some things that most other weblog systems do not, it may be a little tricky… we'll see.

Posted by: Martin Atkins at May 15, 2003 11:06 AM

Phil, I did as you recommended, and looked really slowly at the two calls, and spotted a difference, right at the beginning. The Blogger call has something called an "appkey" and the MetaWeblog call doesn't. Is that what you're referring to?

Posted by: Dave Winer at May 17, 2003 08:29 PM

That's it exactly. I don't know why they want it, I don't know if it's a good way to do what they want, but I do know that they did it that way, that blogger2 does it that way, and that it's the only significant difference that can't be chalked up to just different styles. Evan said "you will have an appkey", metaWeblog, which was mostly being used where you knew what app was hitting your API because for Radio or MT you own the server and the app, didn't, and blogger2 does. The only use for it that has ever made sense to me would be something like: someone releases an app that does evil things (gets every single post every fifteen minutes, I don't really know what evil you could do), Blogger could block just that appkey while they negotiate with the developer, without having to shut down the whole API. It doesn't seem like very solid security to me, but then Ev's been sitting on Blogger's database watching the crack attempts for years, and I haven't.

Also, I noticed the other day while looking at that one Evhead archive file where the Orlowski piece still exists, that there's another secret surprise archive file - http://www.evhead.com/archives/2003_05_10_archive_default.asp - where he talks about it. A few things I would debate, several more that you will, but more than anything my takeway was what a shame it is that he really doesn't do any writing in public to speak of anymore. I miss the old evhead.

Posted by: Phil Ringnalda at May 17, 2003 09:17 PM

Phil, Dave,

Evan's point on the post Phil linked to is a valid one regarding the appKey; as a centrally managed service they have concerns such as the one Phil pointed too. Blogger has moved (in 2.0) to include a struct for the login; that would solve the compatibility problem, since weblogs that don't need it could just ignore it. Structs seem to be a good option I think since they allow for extensibility without breaking the syntax of the call.

Posted by: Diego at May 17, 2003 10:12 PM

Phil, that's a fascinating memo from Evan. I wrote a memo for Google management last week, after Evan posted that. I hadn't seen his comments until now, and I'm about to go out for the evening so I can't read them carefully. I've pointed to them from Scripting News.

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.

Posted by: Dave Winer at May 17, 2003 11:25 PM

Any new XML-RPC based API should support Unicode content and not 7-bit US-ASCII which is currently implied by the use of XML-RPC string values.

The two obvious solutions with respect to XML-RPC are to encode Unicode strings in some way which is valid according to the XML-RPC spec, for example using the base64 XML-RPC type, or to transition XML-RPC to allow string values with a Unicode encoding.

Posted by: Charles Cook at May 18, 2003 05:42 PM

It would be unfortunate if only the makers of Radio/Manila, Movable Type, and Blogger had a say in how all of this works. This doesn't necessarily allow best of breed to surface, and doesn't give the smaller companies any say. It does promote the concept of the Biggest over the Best.

I think it's past time for weblogging to get a standards group. Unless we want weblogging to turn into another Detroit, with Three Big Weblogging Companies equivalent to the Three Big Car Companies?

(Now, why is it we don't have effective electric or hydrogen powered cars now?)

Posted by: Burningbird at May 18, 2003 08:44 PM

Certainly it would be bad if only the Radio/Blogger/MT were setting standards in the long run. But it has to start somewhere... that's why I think that even a limited agreement, "less open" between Userland/Blogger/MT would be better than the current situation, where there is no agreement whatsoever. If a "standards group" of sorts could be set up that would be ideal, and much better, but that's probably even more difficult, which is why I tend to favor the other solution, which seems more feasible, *for the moment*. Maybe an initial agreement with the understanding that the stewardship will be phased over to a "standards group" would be a way to get there fast...

Posted by: Diego at May 18, 2003 09:36 PM

I'm all for standards. As for those who get their acts together and nail down the API being the drivers of the standards... well, If you have a "best of breed" laying there, get it out. Otherwise, nail the darned API's down and get on with developing a MacOS blog client that runs on Radio. Enough of the lopsided parity and more platform agnosticism. [no flame bait intended here]

Posted by: TheMadCow at May 21, 2003 07:53 AM

I must say, that I have never been to your website before, but it is very interesting and informative. I found out alot that I never realized that all these blog companies/programs need to do just to make it work. Me, myself, am not a big fan of blogger. But I am a big fan of FREE. I have had many problems with error codes and such...and that was even before google took over blogger. It really sucked to go and update your website just to find out that it isnt working...FOR DAYS. I found the simple solution for that was to make a new template, but that only meant losing that whole page. I looked into Live Journal, but they only allow you to embed into your website if you PAY. Which subsequently, there is a new one...{www.blurty.com} who Live Journal gave them their code to use. But, you have to pay to be able to embed into your website as well. I would love to use Moveable Type, but they use php, and my hosting company doesn't offer it for the package that I have. {they are a free webhosting company...www.breezeland.com} As well as many other places that I have found that have many nice programs. I can send you the whole list to look into, if you are interested. I just don't want to overflow your comments section with links that aren't wanted, unless you say so first. ;)
Good Luck and email me if you want the list.

Posted by: Chaos-Girl at May 30, 2003 06:30
>
> Extreme Mobility by Ray Ozzie.  Tablet PCs, WiFi, Groove, Wikis, Group Weblogs, oh my! [John Robb's Weblog]
> Sony Image Station with MetaWeblog API.

Hirata just demo'ed an experiment we did with Sony. It's a moblog gateway. It receives email from a cell phone with a photo attached. The Sony team made an XML RPC metaWeblog API interface to Sony Image Station. We take the picture, talk to Sony Image Station using metaWeblog API and post the picture in a photo album. Then the gateway talks to Movable Type using the metaWeblog API to create an entry with the thumbnail from Image Station that clicks thru to the full picture on the Image Station site. The text and the title get entered into Movable Type and the category is pre-set. We are using the metaWeblog.newMediaObject (which Movable Type current supports) to send the images. Please support this standard so photo sites can use the API.

We'll continue doing tests with the research group and hope to do some syndication stuff soon. ;-) This is not a product and is really just an experiment. I'm hoping more and more groups in Sony start looking at the open standards and that the open standards people start thinking photos, video and audio as micro-content. Totsuka-san from Sony CSL had an interesting comment today. He said that pictures are attached to email as second class citizens and the text is still the core of the data. I think the idea is to try to get multi-media micro-content to be more important. ;-)

PS I don't have a URL for this since we have only received an OK to demo it at the conference. Stay tuned.

By Joichi Ito jito@neoteny.com. [Joi Ito's Web]
> Swebok.
Swebok agile 24 June 2003

This is the month for review of the IEEE's Software Engineering Book of Knowledge. This is an attempt to define the body of knowledge of our profession, in a way that can lay the groundwork for a licensed profession.

Usually I'd ignore something like this. There are hoards of IEEE standards out there that are routinely ignored by anyone doing commercial software development. Mostly they were written by academics and those engaged in large government projects. Business people don't consider government as a synonym for efficiency.

But Cem Kaner, whose judgment I've learned to respect, does take it seriously. In his blog he says "If the SWEBOK is the basis for the licensing exam, the practices in the SWEBOK will be treated as the basis for malpractice lawsuits. People who do what is called good practice in SWEBOK will be able to defend their practices in court if they are ever sued for malpractice. People who adopt what might be much better practices, but practices that conflict with the SWEBOK, will risk harsh criticism in court. As the basis for a licensing exam, SWEBOK becomes as close to an Official Statement of the approved practices of the field as a licensed profession is going to get."

So how flawed is the Swebok? This is a busy month for me, so I haven't had time to dig into it in any detail. Just reading a few sections is enough to raise a few red flags, and certainly to confirm the view that Swebok puts undue emphasis on plan-driven development, to a degree that rules out agile approaches.

The first section I looked at was the one on design. Clearly Swebok sees design as a separate activity from programming - a view that's contrary to most of us in the agile movement. It hints at a very detailed level of design being required as an input to coding and testing - although it's impossible to say how detailed it actually thinks it should be.

The choice of books it came up with wasn't awful - although I was alarmed that GangOfFour didn't make it to the recommended list.

The process section relied heavily on the notions of measurement based control, which is seriously flawed since I've observed that MeasuringProductivity is impossible. It's clearly strongly based on Scientific Management principles, and as such utterly ignores the role of people and human interaction issues in process. Again since Individuals and Interactions trump Process, this is a huge hole in the body of knowledge.

The requirements section concentrates on producing a comprehensive System Requirements Specification prior to commencing development - again very much waterfall thinking. (Interestingly it shows a spiral model picture - but only for producing the requirements document!) There's no sense of exploring cost trade-offs in requirements - in my view a vital element of any requirements work.

Well that's it for a quick scan. I may look more in the future. But fundamentally I agree with Cem Kaner. Our industry is not sufficiently mature to produce a body of knowledge of this kind yet. We are still learning much about software development, and at the moment there are a number of schools of thought. The software engineering community has its own opinions, which may be appropriate for a portion of software development. But there is no widespread consensus yet.


[Martin Fowler's Bliki]
> The network song.
My title for this column was "Listening to my server" but InfoWorld's CEO Kevin McKean came up with a better one: "The network song." In his column, Kevin points out that InfoWorld.com is now using a TinyUrl-like scheme to compress URLs printed in the magazine. Excellent! Since moving my column from its online-only venue to its current position in the printed magazine and online, I've been frustrated by the need to curtail the amount of linking I do. This will help a lot. ... [Jon's Radio]
> Forbes Releases Rankings of World's Biggest Companies.
Resources, Reports, Tools, Lists, and Full-Text DocumentsBusiness--Lists & RankingsSource: ForbesJust Released, The Global 2000 (World's Biggest Companies)This is the first year Forbes has compiled this list. You can view the list by rank, name, cou [ResourceShelf]
> AOL Goes Blog, but Will They Be Smart Enough to Follow Up with RSS News Aggregators?.

AOL be Blogging

"Jeff Jarvis: 'Yesterday, I was one of a privileged council of blogging elders -- Meg Hourihan, Nick Denton, Anil Dash, Clay Shirky -- invited to see AOL's new blogging tools, which will be released later this year.

They've done a good job.'

  • You'll be able to blog from IM
  • Every weblog will have a RSS/XML feed
  • The want to feeds to be indexed by Technorati" [Micah's Weblog]

I think this is huge because now the people at SLS and our member libraries who use AOL will have a second blogging model to help them understand where we are headed with our NEWS grant project. Even better, people like Sheree's mother will be able to blog and automatically generate RSS feeds for the rest of the family in order to stay in touch.

You see, her mother just moved to Arizona, and while she mostly likes playing games on her computer and using email, if AOL has truly made blogging easy enough for her, we just reached the mythical promise of the internet - easy publishing for all. I've maintained all along that blogging will become incorporated into other tools that do other things, and it looks like this is starting to happen. Here's the thing, though.

Kudos to AOL for giving their bloggers RSS feeds, but I'll be most excited when they start providing integrated RSS news aggregators for their subscribers. That, to me, is really the future for delivery of current content. Imagine all these AOL users having aggregators that pop up when they first sign in. Imagine them being notified  on their smartphones of content updates via RSS in AOL Instant Messenger. Imagine they get RSS updates when the AOL Time Warner publications like People, Time, etc., publish new articles and their aggregators takes them directly to the full story.

It's huge, especially if you add in one-click subscriptions to your fellow AOL bloggers, specifically the ones that are relatives and friends. The trick is to hide the technical back-end of RSS and make it all seamless to AOL users. What a coup that would be if they could collaborate on "family journals!" You could track your entire family via RSS and visit the archive to remember exactly when your brother claimed to catch that 50-pound fish that was "this big."

And if there's no picture from his cameraphone, you could pretty well guess he was lying.

[The Shifted Librarian]

© Copyright 2003 Ed Pimentel.
 

July 2003
Sun Mon Tue Wed Thu Fri Sat
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
Jun   Aug



Subscribe to "bLOGical" in Radio UserLand.

Click to see the XML version of this web page.
 

Click here to send an email to the editor of this weblog.