Archive for March, 2008

Archive for March, 2008

XRDS-Simple and Infinite Interoperability

Posted on

Eran finally released the XRDS-Simple Draft 1 spec. Chris Messina has some great thoughts about how this fits into DiSo, and Eran has done some good explanations himself.  I’m just going to give some of my own thoughts.

First off, forget whatever you think about related standards, like XRDS or XRI. If you dislike OASIS, can it. I’m sick of the fighting and just want the web to *work*.

I’d like to talk a bit about my vision of infinite interoperability, which is facilitated somewhat by XRDSs. Little to none of this is implemented today.  I’m not expressing a pragmatic “let’s build this now” but a hope for what I would love to build in time.  I’m going to use brands familiar to me – if you hate them, pretend I used different brands.

Imagine this: Flickr is an OpenID consumer with OAuth as its authentication standard on all APIs.  They have moved all their content listing, posting, and editing features over to APP (yes, APP supports binary data, like images).  They are using XRDSs for discovery of the endpoints to *all* APIs.

I write a website.  This website lets you easily create collages of images from free sources for use in projects (I dunno, pick a more useful project idea).  You log in with your OpenID and create a collage.  You can print it out and embed it on your site, but you want to share with friends.  You click a ‘share’ button and are taken to flickr where OAuth authenticates you (maybe using shortcuts since we know your OpenID already) and posts the image to your account using APP.  It knows where all the endpoints are because of XRDSs.

How is this different than what can be done with the Flickr API today? Just wait.

Your friend sees your collage and wants to make their own.  They also come to my site.  They also click share.  They do not use Flickr, but rather Zooomr, for their images.  Zooomr is also OpenID+OAuth+APP+XRDSs enabled.

My site *does not* have to know about Zooomr.  You can simply entry into a settings box “” and my site with *automatically* (XRDSs) find the endpoints to authenticate (OAuth) and post (APP) and your friend can share their image.  I support four standards and get access to *every* photo sharing solution, without even knowing they exist or having to care.

Actionstream 0.35

Posted on

I’m updating too fast.  This release brings some improvements to the UI for adding services.  There are also now options to use the plugin as a sidebar widget or with at easy-to-include post/page tag.  This release also brings the recognition of a requirement of PHP5.2.0 or higher (after much debugging with James Kirk).

And, as always, bug fixes!

See the plugin page for more information /download. 

Bite the Bullet – CC-BY

Posted on

This week I was horrified when @adityavm moved from the most evil of Creative Commons licenses (BY-NC-ND) to All Rights Reserved.  As an advocate of free culture I began to realize just how dangerous it can be to walk that evil line of just-barely-free.  I took a long, hard look at my own licensing practices and decided it was time to open up.  All previous and future entries on my blog (unless otherwise noted) are now licensed CC-BY.  Let freedom reign!

Actionstream 0.30

Posted on

Some significant improvements to my ActionStream plugin. The plugin can always be downloaded from that page.  The changes are:

  1. Bugfix in how some feeds were handled (notably google reader)
  2. If nicknames are being displayed, they are hcards with links to your profile at that service
  3.  Including updates from your own blog is now optional
  4. There is now an option to remove services you have added
  5. Collapsed (5 more… et al) nodes may now be expanded on link click

Actionstream Plugin Update

Posted on

I am pleased to announce version 0.2 of my WordPress Actionstream plugin!

It can be downloaded from the normal place.

New this release:

  1. Better microformats support in the output
  2. Some architecture improvements and bug fixes
  3. There is now a sanity check for zero items or less items than requested
  4. Posts on the host blog are now added to the actionstream
  5. There is a well defined way to add stream items (say, from another plugin). Just create an array with the fields you need (be sure to specify identifier and created_on – GUID and unix time of publish, respectively) – usually includes title and url. Then instantiate an object of class ActionStreamItem and save in like so: (new ActionStreamItem($array_data, 'service', 'data_type', $user_id))->save();
  6. There is now a hook for other plugins to add available services. Example:
             'name' => 'Feed',
             'url' => '%s'
             'entries' => array(
                   'html_form' => '[_1] posted <a href="[_2]" rel="bookmark" class="entry-title">[_3]</a>',
                   'html_fields' => array('url', 'title'),
                   'url' => '{{ident}}',