More XFN+OpenID
Thursday, November 29th, 2007The action is over here. Next step is to start in on the thornier issue: how to start building the whitelist.
The action is over here. Next step is to start in on the thornier issue: how to start building the whitelist.
While writing Whitelisting With OpenID and XFN, I started thinking about what kind of work would have to go into implementing these ideas in Wordpress. One of the roadblocks I ran into was that in Wordpress (and Drupal, probably, and most other similar systems) links only support a single URI (not surprisingly). In order to support OpenID whitelisting, we need a unique identifying URI for an XFN contact - which may or may not be the same as the blog/site URI that you’d want to list in a blogroll.
I thought about trying to hack the support in myself, but after browsing through the 4 or 5 different files that would require patching, as well as adding database support, I decided I haven’t the experience with Wordpress nor the time to do it right. But I’d like to discuss this with someone who has the Wordpress expertise to give this a shot. Would be nice if it were a plugin, so we don’t have to hack the core code.
Any takers?
This weekend I ran across a post on Tim Berners Lee’s blog (the Giant Global Graph - Groan), but what got my attention was a previous post by Dan Connoly about the social-network-based whitelist they’ve developed for commenting on the Decentralized Information Group blog.
In less than a nutshell, the DIG is using the relationship data in their members’ FOAF files to build a whitelist of users (identified by their OpenID) who can comment on the site.
In FOAF and OpenID: two great tastes that taste great together, Dan writes about the system the DIG devised to whitelist comment authors:
In more detail, you can comment on our blog if:
You can show ownership of a web page via the OpenID protocol.
That web page is related by the foaf:openid property to a foaf:Person, and
That foaf:Person is listed as a member of the DIG group in http://dig.csail.mit.edu/data, or
related to a dig member by one or two foaf:knows links.
Sean Palmer has a deeper, very interesting description of the process that went into the system, and Shahan Khatchadourian describes how it works for a new user
Mapped out, the system looks something like this:

To be added to the site’s comment whitelist, either the green or blue path must be satisfied: User A has to be either identifiable (via OpenId) as a DIG member (foaf:Person matches in the DIG member data) or another DIG member must “claim” User A (User A is identified via OpenID and their foaf:Person is related via foaf:knows to the known DIG member).
So tonight I got to talking to Chris Messina about DIG’s system (he pointed me to Simon Willison’s efforts back in January at whitelisting via OpenID) and wondered if we couldn’t build a similar system with a little less propeller-head factor using XFN instead of the semantically pure but pragmatically awkward FOAF.
In order to make something like this work, it seems that the flow would work like this:
This is very rough, but mapped out it looks something like this:

As before, to be added to a site’s whitelist, either the green or blue path must be satisfied. I think that a system like this for Wordpress (for example) could be built out of mostly existing parts, starting with the Wordpress OpenID Plugin (newly 2.0). (Chris has more notes on a wordpress plugin.)
My thinking here is rough, and probably contains quite a few holes, so I’m trusting that those more knowledgable that I will point out flaws in my thinking or new directions.
UPDATE: A conversation with Paul Walsh and Simon Willison sprang up in the comments on Pauls’ post, “Identity” the most widely misused term by Internet experts. Paul makes a decent case (and Simon agrees) that saying OpenID “proves identiy” is misleading - nothing is proven and no Trust is asserted. OpenID provides a form of identity (”I can prove I own this URI”) that particpants have agreed to. Thanks to Paul and I’ve updated my diagrams accordingly.
I setup our pre-lit Christmas tree last night, and discovered to my dismay that four different strands of the pre-installed lights were not lighting.
CRAP.
I tried checking the initial bulb in each strand (typically with a white socket), checking the fuses in the strands, and replacing various burnt-out bulbs. Nothing was working. I spent this morning helping the church men setup one of the church homes for a ladies event next week, and one of the guys mentioned checking Ace Hardware for the individual mini-light bulbs I was looking for (needed to replace burnt-out bulbs).
I stopped by Ace this afternoon and the first person I talked to (helpful employees!) showed me to the bulbs I needed. Head home, and they’re not doing the trick. Head back to Ace and tell them I’m trying to fix broken strands on a pre-lit tree. The girl I talked to took me right over and handed me this.
The “Lightkeeper Pro”? I was skeptical, but it was on sale and after being assured that I could bring it back if it did not work, I grabbed it and some fuses and headed back home once again.
Well dang it, if the “Lightkeeper Pro” doesn’t work exactly as advertised! I was able to test the fuses and bulbs as I went, the built-in tools for removing the bulb sockets for changing bulbs worked great, and saved my fingers q lot of pain, and more amazingly, the seemingly “magic” feature of fixing non-lighting strands by sending a static charge down the line - works! I was able to fix not only the strands that were acting up this year, but the two stands which were not working last year as well. Woo!
“Big Cat” references aside, Mac OS X 10.5 “Leopard” is pretty nice. My favorite feature so far is probably Spaces - though others have pointed out that it’s hardly the 1st implementation of “virtual desktops’ on Mac OS X, and it’s missing some features, it’s (understandably) the best integrated of any implementation so far. And it makes my 17″ monitor at work actually useful. My only gripe is that I want/need different desktop backgrounds for each Space so that I can remember where I am.
Web design is the creation of digital environments that facilitate and encourage human activity; reflect or adapt to individual voices and content; and change gracefully over time while always retaining their identity.
[...]
If she achieves all that and sweats the details, her work will be beautiful. If not everyone appreciates this beauty - if not everyone understands web design - then let us not cry for web design, but for those who cannot see.
Thank you, Mr, Zeldman.
Check out this screencast from tagamac.com on Things, a new GTD app from Cultured Code.

I particularly like the concept of “Areas” - “an ongoing region of activity” - to group both Projects (multistep goals) and Tasks (single-step goals) together into something you can focus on. The example in the screencast is “Home Improvement”, an Area that contains both a Project (”fix the storm door”) and several single-step tasks.