OAuth

MicroPlaza shows you links from people you follow on Twitter

I don't know that I can give a *really* short description of MicroPlaza that does it justice, but I'll start by saying that it takes the links - short or otherwise - that the people you follow in Twitter post, and creates thumbnails out of them. MicroPlaza supports OAuth, so you can connect your Twitter account to it without giving away your Twitter password. You login and it shows you all the posts from the people that you follow that contain links. It also shows you any other Twitter posts that also link to that same item. You'll note from the screenshot below that multiple short URLs are being used, but MicroPlaza follows them all and figures out that they refer to the same page:

As I overlaid onto the image, @lauras is the person I follow on that list - MicroPlaza has included the rest of the people because they've pointed to the same thing Laura has.

Since it only includes Twitter posts with links, it's like a high intensity stream of information goodness. I very rarely go to the website, choosing instead to subscribe to an RSS feed of my public timeline. I first found out about MicroPlaza when Roland started sharing MicroPlaza entries in Google Reader - there was good stuff being shared, and the screenshot of the web page (plus the full title of the linked to page instead of just another short URL) made it easy to decide if the whole thing was worth reading. The commentary of all the people linking to the item makes for even more context.

Jaiku is going open source on Google App Engine

As announced on the Google Code blog / cross-posted to the Jaiku blog, Jaiku is going open source:

As we mentioned last April, we are in the process of porting Jaiku over to Google App Engine. After the migration is complete, we will release the new open source Jaiku Engine project on Google Code under the Apache License. While Google will no longer actively develop the Jaiku codebase, the service itself will live on thanks to a dedicated and passionate volunteer team of Googlers. With the open source Jaiku Engine project, organizations, groups and individuals will be able to roll-their-own microblogging services and deploy them on Google App Engine. The new Jaiku Engine will include support for OAuth, and we're excited about developers using this proven code as a starting point in creating a freely available and federated, open source microblogging platform.

The rest of the Google Code announcement actual mentions the end of Dodgeball (also similar to Jaiku and Brightkite) plus the Mashup Editor (which I had never heard of). Technically, the Mashup Editor is also moving to the App Engine infrastructure.

I had heard rumours of the coming open source nature of Jaiku, but didn't think it would extend to Google itself essentially not further developing it. There has been talk of a tightening of focus, which is fine, but I think real time, Jaiku-like services (and really, Jaiku was first ... Twitter, Friendfeed, etc. came later) are going to become more important, not less.

The open sourcing of Jaiku should make one wonder about the recent funding for Identi.ca. I think what the Montreal Startup Fund guys are doing is fantastic, but don't know that I agree with putting money into open source projects before they've shown real traction.

That funding link points to a GigaOm post that also points to Twitter for Enterprise "clones" Yammer and Presently. I like both of those tools, and think they work great for internal / group communicatons. Stowe Boyd's write up of Presently is what made me go try it, plus we had a need for shared / private groups for Bootup Labs.

So, the open sourcing of Jaiku is one thing. The BIG thing is that this allows turn key public / private microblogging on a scalable infrastructure. No fail whale, you just get more resources via the underlying Google App Engine. And by turnkey, I mean anyone with a Google Apps for Domains account can follow a few steps to run their own instance, on their own domain.

Oh right, and by the BIG thing, I mean that this instantly catapults microblogging into a fully federated system: I set up jaiku.bootuplabs.com, which can federate with all the other Jaiku instances on Google App Engine. It's open source, so allowing one to map identities to Twitter, Identi.ca, or other systems is certainly possible as well. Or, as Presently does it, by pre-pending a special tag for posts you want to show up on other systems.

OK, I don't know if that last bit is true, I'm just hoping it is: will federation be turned on out of the box? Or an option? In any case, it's open source, so it would definitely be possible to add this feature.

One final question I have is where the centralized discussion of future features / development / etc. for Jaiku Engine?

Social Graph applications: why not for every community website?

One of the outcomes from my trip to Victoria last week is some thinking about the social graph. More specifically, you may recall that I've been using Flock. As it turns out, I recently upgraded my laptop to Leopard, and made Flock my main browser. This has given me increased exposure to their "people bar" -- a side bar that supports a variety of big community websites, like Facebook, Flickr, Twitter, and so on. As I've been using this feature, and seeing the way that Flock "detects" features of different websites, I started thinking about how every community website could enable this functionality. Right now, the Flock team has to pre-integrate with the specific website's API to enable this functionality. But, just as they "detect" the presence of site-specific search engines, there is no reason that one couldn't expose a link header that indicates the presence of a social graph. I know what you're thinking: "But Boris, how many people use Flock? Isn't this just browser specific functionality?" Well, no. First of all, Google has a Social Graph API that is already being crawled -- looking at FOAF and XFN. Secondly, I got to thinking about all these site-specific applications -- like Twhirl that was bought by Seesmic. So, if we had some basic standards about this stuff, it would be simplistic to have one app that let us monitor / notify / update any of these systems. Yes, there will ALWAYS be websites that have more complex APIs with more features -- that are only accessible by implmenting *their* API to talk to them. But for thousands of other community websites, built in Drupal, WordPress, Joomla, or what have you -- you suddenly have the same rich access to applications as the big guys. How many websites would encourage their users to install Flock or Twhirl if it supported *their* website? Oh, and I'm completely skipping the linked data / RDF / Semantic Web factor of having community websites expose some part of their social graph, or at least make it available for querying by people that have the right credentials. OK, so how does this look to the end user? I'll use Flock as an example, since I've got agreement in principle from them that they'll work with me on this, including help in defining some of the formats.

  1. User surfs to community website where they already have an account (for simplicity's sake, we'll pretend a session is still open)
  2. Flock detects a website that has a social graph available because of a header link that looks something like this: <link rel="socialgraph" href="/user/4426/socialgraph.rdf" type="application/rdf+xml" /> (Note the user ID in there, because the user already has a current session open)
  3. Flock does it's fun in browser slide down that says something like "This website supports a people bar. Would you like to add it?"
  4. If the user clicks on "yes", then Flock initiates an OAuth request to be allowed to a) fetch the current user's social graph file and b) take actions on behalf of the user such as setting their status or sending a message/poking/whatever another user on the site
  5. The user acknowledges the OAuth request and clicks some allow buttons
  6. Voila! A fantastic site specific "people bar" right in your Flock browser

So, that was a VERY Flock specific flow, but as I mentioned with Twhirl up above, absolutely no reason that you couldn't do the same thing with those type of people notifier on your desktop apps / widgets / etc. -- just start by typing in the URL of the website, the app would go and discover the social graph link and/or initiate an OAuth request to authenticate, and all of a sudden you're directly monitoring the different community websites you're a part of directly. Bonus points to websites that expose the social graph as an XMPP Pub Sub endpoint so these apps don't need to poll constantly. Now, I know the first thing we're going to have to do is fight a religious war over the format of the socialgraph file. I'm going to suggest some minimal FOAF format, since I'm a born again RDF fan.I don't want to go spraying email addresses all over the place, so perhaps either local unique user GUIDs or OpenID could be used as identifiers for each person. We actually don't need full "person" information -- a username, avatar, status message, and date stamp for last activity sorting should be the minimal set. Even status message could be option for smaller, less complex sites so almost anyone could support this out of the box: just show everyone on the site (yes, that's right...ignore any sort of "friend" connection) sorted by last active -- which could be a post / comment, or (again, simple support by many sites...) just date stamp of last login. I'd like to think that the choice of OAuth as credentials for acessing this info isn't controversial at all. Feel free to layer OpenID in here somehow, but for the action-at-a-distance on which cool functionality can be built, this kind of a token system looks to be ideal.What next? Well, surprise, surprise, I'm going to take a crack at getting this implemented in Drupal. Raincity Studios is already working on the OAuth module, which would be one of the main pre-requisites. Once the format of the social graph file is defined (calling Joshua, Arto, and maybe RalphM...), building the next piece shouldn't be too hard.Ideally, something like the Gnomepal Drupal distribution would ship with this out of the box (for the really ambitious, Drupal 7 core!). And other systems like Marc Canter's People Aggregator could easily expose this social graph info as well.I'm excited at the continuing growth of every website as a dynamic web application, and also of the exposure of data and APIs by this web of sites. This feels like the right path we're travelling on to get everything a little bit more interconnected.