I'm Brett Slatkin and this is where I write about programming and related topics. Check out my favorite posts if you're new to this site. You can also contact me here or view my projects.

12 February 2010

Own your content on the web with WebFinger

Now that all Gmail users have WebFinger enabled, its time for some real talk about why it's useful.

Tantek is passionate about his presence on the web. He's mentioned the importance of link shorteners but this has nothing to do with a 140 character limit; the concern here is attribution. When content is redistributed through services like Google Buzz and FriendFeed the URLs shared are owned by Google or Facebook. This exposes content creators to the risk of these services changing unexpectedly, but more importantly it disconnects creators from the means of distribution: links.

As a straw-man solution, let's say that Google Buzz let you redirect all of your content through your own domain (using a CNAME alias); that means your items would be shared on URLs like http://buzz.example.com/1234 instead of http://www.google.com/buzz/1234. At any time in the future you could change your links to redirect to another server (not Buzz) without losing any attribution. All of the URLs distributed throughout the web would continue to work, but you would make them point at a new place. For example, someone could export all of their Buzz data to WordPress and host it independently. Enabling URL ownership like this is an extension of the Data Liberation efforts, but for what we do on the web: share.

There are many problems with this straw man: it doesn't scale well because you would need to configure a new CNAME for every site you use on the web; it's error-prone because you could forget to set your redirection preference; and it's probably too complex for an average user to do.

Instead, what if sites could determine, just from your logged-in identity, how you want your URLs to be shared? The site would see that you're johndoe@example.com and magically determine the standard web service for generating short links on your behalf. You could configure this shortener a single time, associate it with your email address a single time, and then Google Buzz and hundreds of other sites could use your service to generate links to your content.

This is the promise of what you can do with WebFingerassociate global preferences with identity.

For the technical people, this works because the site would find a URL shortening service in the user's XRD file that looks like this:
<?xml version='1.0'?>
<XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0'>
  <Subject>acct:johndoe@example.com</Subject>
  <Alias>http://johndoe.example.com</Alias>
  <Link rel='http://openshortener.org/spec' 
        href='http://johndoe.example.com/shortener'/>
</XRD>

Note that this shortening standard isn't established yet, but it should be. Defining services like this is part of what DeWitt and others meant by "work with everyone here on where we are going next". Now that we have WebFinger, we're calling on you and other developers out there to run with it: Define the services you want to use, how they will work, and provide sample implementations. This is how the ecosystem of WebFinger services will grow.
© 2009-2016 Brett Slatkin