I'm frankly quite pleased that all three of us have managed to keep those post permalinks working for 10 years, and in Matt's case, across a domain redirect as well (in stark contrast to all the sharecropped silo deaths since).
Since then, numerous implementations and sites deployed XFN, many of which survive to this day (both aforelinked URLs are wiki pages, and thus could likely use some updates!).
Thanks to deployment and use in WordPress, despite the decline of blogrolls, XFN remains the most used distributed (cross-site) social network "format" (as much as a handful of rel values can be called a format).
With successes we've also seen rises and falls, such as the amazing Google Social Graph API which indexed and allowed you to quickly query XFN links across the web, which Google subsequently shut down.
A couple of lessons I think we've learned since:
Simply using rel="contact" (introduced in v1.1) turned out to be easier and used far more than all of the other granular person-to-person relationship values.
The most useful XFN building block has turned out to be rel="me" (also introduced in v1.1), first for RelMeAuth, and now for the growing IndieAuth delegated single-sign-on protocol.
Iterations and additions to XFN have been slow but steadily developed on the XFN brainstorming page on the microformats wiki. Most recently the work on fans and followers has been stable now for a couple of years, and thus being used experimentally (as XFN 1.0 started itself), awaiting more experience and implementation adoption.
rel="follower" - a link to someone who is a follower
rel="following" - a link to someone who you are following
With the work in the IndieWebCamp community advancing steadily to include the notion of having an "Indie Reader" built into your own personal site, I expect we'll be seeing more publishing and use of follower/following in the coming year.
These days a lot of the latest cutting edge work in designing, developing and publishing independent web sites that work directly peer-to-peer is happening in the IndieWebCamp community, so if you have some experience with XFN you'd like to share, or use-cases for how you want to use XFN on your own site, I recommend you join the #IndieWebCamp IRC channel on Freenode.
Either way, I'm still a bit amazed pieces of a simple proposal on an independent website 10 years ago are still in active use today. I look forward to hearing others' stories and experiences with XFN and how we might improve it in the next 10 years.
When I recently updated to Checkie for Foursquare v2.5 on my iPod 5 Touch, it started crashing on launch. Tried restarting my iPod to no avail. So I reverted it to the previous version by doing the following:
delete Checkie App on my iPod (touch-hold Checkie icon, wiggly icons, touch (x) on the Checkie icon, confirm delete dialog box)
connect iPod to MacBook Air
open iTunes
select iPod in left column
choose the "Apps" tab
scroll to "Checkie for Foursquare" - note it is [ ] unchecked
check [x] Checkie for Foursquare
click "Apply" in the lower right corner of the iTunes window
Presto, the previous version of the app from the last time I sync'd/backed up to iTunes is back on my iPod Touch.
If I had been auto-syncing my apps with iCloud, then all my devices would have updated to the latest version of Checkie and the previous version would either be lost - or a huge hassle to retrieve from a previous backup (if iTunes even kept more than one backup of it).
If you're syncing directly with iTunes on your laptop, you can revert to the previous version there. You may even be able to revert to even older versions, see this blog post with lots of screenshots for details.
iOS native app developers seem to screw up apps in plenty of ways frequently enough that it's perfectly reasonable to take matters into your own hands as the user and revert such apps when developers screw up.
How do native app developers screw up? Let me count the ways:
update crashes on launch
removal of a feature essential to usability or you really liked
making an existing feature take more steps
addition of visual noise (design cheese, 1+1=3, chartjunk etc.)
less efficient use of screen space
None of these are theoretical. All of these have happened. The first with Checkie, and unfortunately all of 2-5 have happened with the Foursquare app.
Everybody makes mistakes of course. We're not trying to build the perfect system.
When software screws up, we should empower users with the agency to work around it. #fightfortheusers
Focus-enhancing note: all in-line hyperlink citations[number] are listed in the References footer of this post. You may procrastinate clicking them until the end for a more in-flow reading experience.
Smart and dumber
Remember when phones were dumb and people were smart?
While smart phones become smarter, their push notification interruptions fuel a mobile dopamine[1] addiction[2] that's making us dumber[3].
App focus and notification distractions
These devices and their app store interfaces have also trained us to install, organize, and curate ever more mobile "apps" on our home screens. Thanks to designers' obsession over attention, retention, returning eye-balls, and need to compete with all those other apps, they ever more aggressively demand our attention.
Their push notifications insist that they're more important than anything else we could possibly be doing. We miss things right in front of us, or we overreact, overmute, and miss important things. Not things. People.
Virtual notifications distract us from real people.
Take a moment to recover your focus after skimming or bookmarking those links.
App centric interfaces cause dopamine fueled distraction
Right now we have screenfuls of apps to communicate and interact with people online. Screenfuls like:
The problems with this current state of the mobile interface:
Person A wants to communicate with person B
Person A has to pick (absent B's context!) a communication app
Person A launches the specific app
The app immediately shows Person A:
Missed calls from others!
Unread count of new messages!
Actual new messages from others!
Every one of those exclamation points (!) is a dopamine squirt (you probably got a little one even just reading about it happening).
Consequence: Person A is distracted by the missed calls, unread counts, new messages beckoning their attention - ooh someone reached out to me! I better check if that's important before I communicate with, who was it I was going to communicate with?
Worse yet: the dopamine reinforces this distraction based behavior, turning it into a habit of reacting and losing our context, rather than acting and keeping our flow.
What if we focused on people first?
What if our mobile devices focused on people first and apps second?
Remember when they used to? When you looked up a person first, and decided to txt, call, or email them second?
What if we put people first in our mobile interfaces, before choosing an app to interact?
Could we grow a culture of adding icons of each other to our home screens instead of application intermediaries?
What if we organized screenfuls of icons of people that matter to us rather than apps that distract us?
If we could organize screenfuls of icons of people, what would it look like?
An interface with a bunch of faces[5] certainly feels a lot more human.
How do we organize screenfuls of icons of people?
The above is an actual screenshot. The answer, today, is to go to their personal sites, tap the action icon (or choose add bookmark), and then "Add to Home Screen".
Why would someone want an icon of you on their home screen?
In short, human-focused rather than app-focused communication.
You want to catch up on someone's site (recent writings, activities) just before meeting up with them in person.
You miss someone and are wondering what they're up to.
Communicating with a person - person first, method second:
if they happen to have sms: mailto: tel: etc. links on their home page, then their home page becomes the way you can contact them.
Your home page becomes your communication protocol.
callee-preferred comm apps icon UI
What if you provided icons for each of those yourself as if they were apps, e.g. in a pane on your home page?
Like a Contact folder that when tapped would open up a row of icons of the ways you could be contacted, maybe even in your order of preference!
Would it be too disruptive to the mobile experience and ecosystem to focus on people rather than apps?
User experience flow
How would a person use this?
Go to someone's domain, e.g. tap their icon from home screen
See their personal home page which with methods of contact as a list or icons in the order that they prefer to be contacted.
Go across and down that list until you see something you can (and want) to use to communicate, and tap/click it.
The browser takes you to a website or "native" app to open the communication channel / new message.
Thus after tapping the person you want to communicate with, just one more tap to open a new IM, email, or audio/video call.
Note that there was no distraction by unread IM/email or new activity counts beckoning your attention away from your desire to communicate with a specific person.
UX flow with identification
By identifying yourself to the personal site, the site can provide progressive enhancement of communication options:
Go to someone's domain, e.g. tap their icon from home screen
Identify yourself to the site (e.g. with IndieAuth, or perhaps your device/browser automatically detects IndieAuth and identifies you if you've been to the site before)
Now their personal site provides more (or possibly fewer!) communication options based on who you are.
Again pick the first method of communication you see that you want to use
You're again routed to either a website or "native" app to start communicating.
Thus after going to someone's personal site, with one tap you can perhaps SMS Facetime or Skype as well.
Context Enabled Presence
Someone's personal site could even do presence detection (some personal sites already show live IM presence status), and show/hide communication options in accordance with their apparent availability. E.g. some combination based on determining if they are:
Asleep?
In an area with poor network reception?
In a meeting (or noisy location)?
Or otherwise pre-occupied?
Running or otherwise in motion
Have IM/Skype client open (for more than 10 minutes)
Then their site could enable/disable various things by either hiding or disabling (dimming or greyscaling) the respective icons for:
User-friendly privacy: such context-based selection should be seamless enough and yet coarse enough that you cannot necessarily determine from the (un)availability of various methods of communication, what their actual context (asleep, busy, in motion etc.) is.
Solving the "Can we talk" problem
Perhaps this is the solution to the "Can we talk?"[7] problem.
Nevermind all this "what should I ..."
Domains (or proxies thereof) work as identity.
Just share domain names when you meet, add their icon to your home screen and you're done.
Or even share Twitter handles (purely as a quicker-easier-to-say discovery mechanism for domain names), add their icon and you're done.
The rest is automatically handled when you tap their icon.
How do you make this work on your site?
How do you make this work for when someone taps an icon to your site?
By adding this to your personal site:
aim:, mailto:, etc. hyperlinks (add rel=me to them)
platform familiar icons and grid layout (combining elements of adaptive and responsive design)
IndieAuth support - to allow visitors to identify themselves
Conditionally show more (or fewer) hyperlinks based on whitelists, i.e. check their identity against a whitelist or two and then provide
e.g. sms:, facetime:, skype: (callto:?) links.
Optionally have your site passively (or in response) check your meeting schedule, your Foursquare location, perhaps even native app specific presence (e.g. IM), and cache/show/hide links accordingly.
Who has done this?
Nobody so far - this is a user experience brainstorm.
Can we do this?
Yes. Some communication protocols are supported in today's mobile operating systems / browsers:
I couldn't easily find specific references for protocol support in Android Chrome and Firefox for Android browsers. My guess is that the various mobile browsers likely support more communication protocols than the above (and the reference documents) claim. It's probably worth some testing to expand the above lists.
Even maps.apple.com/?q= links are supported on iOS[8] (and "geo:" links on Android[10]) as a way to launch the native maps app - perhaps a person could for some identified visitors have a geo/maplink that showed exactly (or roughly) where the person was if and when they chose to.
Because the mobile web URL is more robust, platform/device independent, and never mind that the twitter: protocol[12] lacks a way to open messages (or a new message) to a specific person.
In addition, I feel I can better depend on DNS to go to twitter.com as intended, whereas it seems like it could be easier for a malevolent native app to hijack "twitter:" URLs by claiming to handle them.
What next?
Next, it's time to try prototyping this on our personal sites and mobile devices to see if we can make it work and how the interaction feels.
If this kind of out-of-the-app-box thinking and personal site focused hackery appeals to you, try it out yourself, and come on by tonight's Homebrew Website Club meeting and show what you got working!