More ocPortal Thoughts
I’ve just finished a 0.1 version of my Flattr addon for ocPortal,
which means that I’m looking for a new project to hack on. I’ve created
a list of ideas in Basket, which includes many of the things I mentioned
in my last post. Since I’ve taken some time off over Christmas I thought
I’d try and make a start on getting ocPortal integrated with the
Federated Social Web framework that’s emerging. This
includes:
WebFinger support: WebFinger is an extension of the
classic UNIX finger utility. It allows arbitrary data to be associated
with an email address. There are 2 parts to this: ocPortal can take
advantage of WebFinger data by populating profiles with existing public
information, and it can produce WebFinger data by making public profile
information available to services looking for it.
Salmon
support: Salmon allows content to flow upstream (ie. towards the
source). It means that, for example, a news article can be syndicated by
many different sites, and comments from all of them will be sent
upstream to the source. There’s an issue here with comment spam, since
we would like this to be automatic (ie. CAPTCHA wouldn’t work), but once
the protocol is supported we can keep it turned off until we work out a
solution to spam.
PUbSubHubbub: This is a publish-subscribe
mechanism, similar in principle to XMPP PubSub which I wrote a library
for a couple of years ago. This allows arbitrary content to be sent
downstream to everyone subscribed to a source. For example, it allows
comments on a news article to be sent to everyone who is syndicating it.
Combined with Salmon, this allows content like comments on a republished
article to be sent upstream to the original, which can then push them
out to everyone who’s republished that article.
OStatus
support: This is a group of standards made to interoperate with each
other. It allows users on different sites to follow each other’s
activity, comment and converse. There’s a really clear breakdown of
how
to make a site/application/service OStatus capable. The nice part is
that each step towards integration gives useful functionality. This
depends on WebFinger, Salmon and PUbSubHubbub support, if we want to
support the whole lot.
There are some ocPortal hacks knocking
around in Subversion to log user activity in a “Bob made a comment on
Foo” way, so this could be piped into any social web structure I manage
to put in place. Ideally, ocPortal should be able to pass the
SWAT0
test.
If I manage to get some of the above done then I
might have a go at turning ocPortal into a Diaspora “pod”. From what I
can tell, this also requires WebFinger and Salmon support, but the only
documentation I can find for
Diaspora’s
message-passing interface is pretty sparse. When I do get around to
this I think I’ll have to have a chat with some Diaspora
devs.
Oh well, time to install Apache, MySQL, PHP and
ocPortal on my XO :)
UPDATE: Holidays are over. I’ve done a
lot of reading of specifications, and I’ve started hacking the
“Salmonpress” plugin for WordPress into ocPortal. This also includes a
skeletal use of WebFinger and, the main reason I chose it, “Magic
Signatures”. I’ve cleaned up the code to remove WordPress-specific
stuff, mostly put ocPortal replacements in place, and have got rid of
its stupid use of classes and static methods (otherwise known as
functions, which is what I’ve turned them into). Haven’t worked out the
best way to get this working for all content types (or as much as
possible) yet. Also, didn’t need MySQL on my XO, I used ocPortal’s
built-in XML database :)