Scoping XFN and identifying authoritative hcards

Before I can write up my proposal for transcending social networks, I need to clarify the originating and destination scopes of XFN links.

It’s currently understood that links describe personal relationships between two URLs.

Typically the endpoints of XFN links are URL-centric personal blogs (i.e. horsepigcow.com or tantek.com), but not always. And because we can’t always assume that the outgoing linker speaks for the whole URL, or that the destination linkee is all inclusive, we need a set of standard criteria to help us determine the intended scope of the originating linker.

Put another way, how can we better deduce who is XFN-linking to whom?

Let’s take a concrete example.

The established XFN protocol states that when I XFN-link from my blog at factoryjoe.com to horsepigcow.com, that I’m describing the relationship between me and Tara Hunt, and our blogs act as our online proxies. Readers of our blogs already know to equate factoryjoe.com with Chris Messina and horsepigcow.com with Tara Hunt, but how can computers tell?

Well, if you check our source code, you’ll find an hcard that describes our contact information — marked up in such a way that a computer can understand, “hey, this data represents a person!”

If only things were so simple though.

If I linked to Tara and there were only one hcard on the page, you could probably assume that that single hcard contained authoritative contact details for her since knowing that Tara blogs at horsepigcow.com there’d be a good chance that she put it there. Sure enough, in her case, the hcard on horsepigcow.com does represent Tara.

Now, flip that around and let’s have Tara XFN-link back to my blog. This time instead of one hcard, she’ll most certainly find more than one hcard, and, most perplexing of all, most are not me, but rather people for whom I’ve marked up as hcards in my blog posts.

So, if you’re a computer trying to make sense of this information to determine who Tara’s trying to link to, what are you to think? Which relationship is she trying to describe with her link?

Well, as a stop-gap measure that I think could be easily and universally adapted to add definitiveness to any arbitrary hcard at the end of an XFN link, I propose using the <address> tag. Not only has this been proposed before and not been overruled, but it is actually semantically appropriate. Furthermore, there are already at least a few examples in the wild, notably on my blog, Tara’s blog, and most importantly, Tantek’s.

Therefore, to create a definitive an authoritative hcard on any page, simply follow this example markup (note the self-referencing use of rel-me for good measure):

.code { border: 1px solid #ccc; list-style-type: decimal-leading-zero; padding: 5px; margin: 0; }
.code code { display: block; padding: 3px; margin-bottom: 0; }
.code li { background: #ddd; border: 1px solid #ccc; margin: 0 0 2px 2.2em; }

  1. <address class="vcard" id="hcard">
  2. <a href="https://factoryjoe.com/blog/contact/#hcard" rel="me" class="fn n">Chris Messina</a>.
  3. </address>

At the destination URL, include a fragment identifier (#hcard) for the hcard with the complete contact information and add rel-self in addition to rel-me (as per John Allsopp’s suggestion):

  1. <address class="vcard" id="hcard">
  2. <a href="https://factoryjoe.com/" rel="me self" class="fn n">Chris Messina</a>.
  3. </address>

This practice will primarily help identify who XFN-linkers intend to link to when pointing to a blog or URL with multiple hcards. In the event that no definitive hcard is discovered, the relationship can be recorded until later when the observing agent can piece together who owns the URL by analyzing secondary clues (rel-me or other hcards that point to the URL and claim it).

Oh, and I should note that from the standpoint of multi-author blogs, we should be able to scope XFN links to the author of the entry — with entry-author making this infinitely easier.

hResume is live on LinkedIn

Detecting hResume on LinkedIn

And the hits just keep on comin’.

I’m thrilled to be able to pass along Steve Ganz of LinkedIn‘s Twitter announcement (tweet?) of their support for hResume on LinkedIn (these tweets are becoming trendy!).

Brian Oberkirch is curious about the process they went through in applying microformats post facto — that is, without changing much of the existing codebase and design — and will have a podcast with Steve tomorrow on the topic. Personally I’m curious if they developed any best practices or conventions that might be passed on to other implementors that might improve the appearance and/or import/export of hResumes.

If you’ve been playing along, you’ll note that this is one of the first examples of a successful community-driven effort to create a microformat that wasn’t directly based on some existing RFC (like vcard and ical). Rather, a bunch of folks got together and pushed through the definition, research and iteration cycles and released a spec for the community to digest and expound upon.

Soon after, a WordPress plugin and a handy creator were released, Tails added support and then Emurse got hip: Elegant template has hResume support — long term planning, ya know? It’s your data, and we want to make it as flexible as possible..

I wrote about the importance of hResume in August:

Why is this better than going to Monster.com and others? Well, for one thing, you’re always in charge of your data, so instead of having to fill out forms on 40,000 different sites, you maintain your resume on your site and you update it once and then ping others to let them know that you’ve updated your resume. And, when people discover your resume, they come to you in a context that represents you and lets you stand out rather than blending into a sea of homogeneous-looking documents.

Similar threads have come up recently about XFN, hcard and OpenID on the OpenID mailing list and the possible crossover with hResume should not be ignored. When LinkedIn is already support hcard and XFN — it’s just a matter of time before they jump on OpenID and firmly plant themselves in the future of decentralized professional networks.

Oh, and the possibilities to accelerate candidate discovery for all those job boards shouldn’t be understated either.

Technology for the future: MacFUSE

Introduction: I can’t say for certain, but with concerns about BitTorrent making the rounds (P2P as a concept and technology should be fine long-term) I’m curious about two new technologies with a lot of future-shaping potential — one that I was already aware of and a new one that I just found out about yesterday…

I previously covered Adobe’s Apollo and now I’d like to discuss Amit Singh of Google’s MacFUSE.

FUSE

SSHFS iconLet me first state that this topic is going to sound downright dorky, but it’s actually really cool (as any geek would agree). Second, it took me a bit of research, some code digesting and a couple app installs to actually grok this, but now that I do, I think it’s an amazingly powerful demonstration of future web technology. Anyway, don’t say I didn’t warn you.

First, FUSE is a Linux fanboy’s dream — it allows you to hook up your file manager to just about any “collection of stuff”. A germane example might be connecting your Linux computer with a Windows machine in order to read, write and delete files. A less obvious example might be hooking up the Mac Finder up to an RSS feed and treating it like a hard drive where each post represents individual files that you can copy, move and delete.

Not that you would, but you could.

And in fact, Amit Singh, who built MacFUSE, demonstrates that use case in this excellent video. If that doesn’t give you goose-pimples, well… what if you could create “true smart folders, where the folders’ contents are dynamically generated by querying Spotlight.” No? Hmm. Ok.

Well, I’ll leave with you with two examples that might start to shed some light on what’s so interesting about this technology and then follow up with another post that extrapolates on an idea I’ve mentioned before and where I see kind of technology heading (perhaps not in its current form but in a more polished state).

SSHFS

So, let’s say that you want convenient access to SSH storage on your Mac. Ok, no problem. Just install MacFUSE Core, restart, then install sshfs (both files are available here). Load up sshfs, connect to your remote host (for example, on TextDrive, you’d used something like nelson.textdrive.com), enter your password and sshfs’ll mount the remote drive on your desktop, which you can then browse as though it were a local drive — moving, copying, drag and dropping files. In fact, I used this trick to upload the photo in this post.

GmailFS

The second example is definitely not for the faint of heart (and honestly, I couldn’t really get it to work though it compiled and connected just fine). The goal is to enable you to mount your Gmail account on your desktop — which might start to reveal Google’s interest in developing FUSE (more on that later). (Oh, and for the record, gDisk already serves this purpose very well, FYI). So, take a look at the detailed instructions laid out by Jean-Matthieu and then crack open that command line. You’ll need some knowledge of compiling apps (and you’ll need Apple’s developer tools) but it’s still pretty cool to be able to type mount -ovolname=bla -t gmailfs /usr/local/bin/gmailfs.py ~/gmailfs and have your Gmail account pop up on your desktop. Sort of.

Finally, as a bonus, you can mount a number of other services, including RubyForge and soon Blogger.

Given this advance (and Amit’s demonstration of hooking into Picasa, an RSS feed, Gmail, Google Docs and Spotlight) it’s just a matter of time before we’re able to connect natively to remote web services, as we do today over FTP, AFS and Bonjour. I’ll elaborate on just what that might mean in my next post.

Technology for the future: Apollo

Introduction:I can’t say for certain, but with concerns about BitTorrent making the rounds (P2P as a concept and technology should be fine long-term) I’m curious about two new technologies with a lot of future-shaping potential — one that I was already aware of and a new one that I just found out about yesterday…

The first is Adobe’s Apollo, and I’ll cover that in this post. The second is a more obtuse technology called MacFUSE, which I’ll cover in a second post.

Apollo

Apollo LogoThe first is Adobe’s forthcoming platform. In a recent interview with Mike Downey, Apollo’s senior product manager, he made some interesting comments. First, about the relationship between Firefox and XUL and Apollo:

With Apollo you can take advantage of OS-level services like system notifications, drag and drop from the desktop and complex local data storage and manipulation. Browsers are great for browsing content and Apollo doesn’t aim to replace that.

And second, about monetizing Apollo:

Adobe is also looking to build applications on top of Apollo. I can’t give you any specific examples right now, but we have several teams within Adobe that are building software on top of Apollo as we’re developing it. They give us some great feedback and will also give us some great examples to showcase at Apollo’s launch later this year.

So to me what this sounds like is web-enabled versions of flagship Adobe apps — and others that we’ve not heard of yet. Their Bridge product is already something of a browser of sorts, and I think we’re going to see that functionality woven more directly into each app — so instead of opening your color palettes from your local drive, you might import them from an Apollo-backed web service like Kuler.

Additionally, the relationship between Apollo and as a distribution platform is fundamental. As Ted Patrick points out, Flex is being built as a long term development and deployment platform, meaning subsequent generations of tools will be able to code against generations of Flash players beyond the current Version 9. As Ted says, can rest easy investing in Flex today and tomorrow. In choosing Flash Player 9 for the deployment target of Flex 3.0, Adobe is making a larger commitment to supporting a longer application life-cycle.

All this suggests that, from the standpoint of developing Rich Internet Applications (RIA), Apollo and Flex will be a serious platform pairing to watch.

Another reason to reconsider your password approach

According to Finjan Inc., Google’s anti-phishing blacklist (used, for example, in their Firefox extension) apparently contained various phished usernames and passwords, suggesting that you really should not use the same username and password combination across the web.

Interestingly, OpenID would have, to some degree, mitigated this breach by moving the username and password combo off by one step, so at worst, the only credentials compromised would have been the publicly known identity provider URL.

I’ll be posting more about the topic soon, but I think that, in this particular case, the OpenID model would have been slightly more secure in concealing the high value information (namely your username and password credentials), and, better still, in the case of a breach, if you still had access to your account, you’d be able to change your password once and reduce the vulnerability of the remote sites that you use your OpenID to login to.

And, note that I’m not talking about the serious matter of spoofing your OpenID provider… in which case OpenID is no better than any other phishable site.

Trademark in its final throes?

No, not really, but it does sound pretty bleak:

Limited Brands SVP and Associate General Counsel Carol Matorin, who represents Victoria’s Secret among other brands, summed up the Sisyphean challenge of policing trademark violations in the midst of what she called “a great ocean of infringing materials.”

“It’s like trying to empty the ocean with a pail,” she said on a panel discussing the topic. “Can you even identify the perpetrator or whoever you’re trying to go after? There’s always been too much to go after in its entirety.” And each day brings more infringement than the last.

I dunno, I’d really like to see that Community Mark idea given some legal scrutiny, from the standpoint of creating doctrine that reflects the current social or economic needs of a society.

We’ve got trademark, which is economically unenforceable, patents, which are the DRM of genius, and copyright which are the modern shackles of the scamp-as-artist.

Hell, why don’t we just throw out the baby with the bathwater and come up with something unpatently original?

Twitter and the future of transmogrification

Technorati on Twitter

I proposed to Ma.gnolia a short while ago that they start using Twitter to broadcast their system status updates and they implemented it shortly thereafter.

The beauty of using Twitter is its flexibility — you can ping it using Jabber, the web, SMS or through its API. You can also receive updates through the same protocols, as well as via feed subscriptions. I call this “” — essentially the ability to morph data between forms and through various inputs.

It seems that others are picking up on the trend towards Twitterification — and I find it very interesting, especially as the differentiation between bot, aggregate and human is essentially nonexistent. Was it a service, a friend or one of many friends pinging you just then? One never knows!

So far I’ve found these non-individual, non-human Twitterers

Organizations & Companies

Weather

I’m sure there are more, but do you know of any more that I missed?

VolumeLogic Beta available

Volume Logic 1.3.2PB

Apparently I was mistaken when I reported earlier that iTunes 7.0.2 fixed VolumeLogic after breaking on the whole number upgrade.

I was able to get VolumeLogic to work successfully after I installed the iTunes point release, but once I rebooted — whaddya know — it stopped working again. I tried various other solutions, with mixed results, until yesterday when a registration-required beta was posted.

Finally! Now I can listen to my music the way it’s supposed to sound again!