2010-199-tantek-fsws-talk

From IndieWeb

(originally posted on 2010-199 at http://federatedsocialweb.net/wiki/2010-199-tantek-fsws-talk which was moved to the W3C FSW IG wiki, have copied here for easier referencing/updating. -t 2012-066)

Itches & Scratches

2010-199 Federated Social Web Summit talk by Tantek

  • many building blocks - towards a Federated Social Web
  • hopefully you might be able to (re)use some of them


successful projects

  • most successful projects
  • are people scratching their own itches


consolidating profiles

itch: no easy way of consolidating profiles

scratch: XFN rel-me (since 2003)


easy way to publish personal profile

itch: no easy way to publish my preferred profile

scratch: hCard (2004)


sharecropping and site death

fast-forward to 2008-2010

itch: tired of sharecropping and site death, untrustworthy content hosting

and

scratch: DIY indie web, start with my own site

  • use my site as my identity - XFN+hCard+OpenID pretty much solved this
  • post tweets/notes on my own site
    • syndicate out to silos - that's where my friends listen/post

http://tantek.com/

user interface frustrations

itch: crappy Twitter permalink UI, etc.

http://twitter.com/t, http://twitter.com/t/status/18803073634

  • inconsistent typography (sans vs. serif ?!?)
  • navigation deadend
  • no URL embeds
  • poor auto-linking (e.g. "federatedsocialweb.net" )
  • auto-shortening when not needed!

scratch: improved UI on my site http://ttk.me/t46n3

  • Helvetica - at least it's consistent
  • next/prev buttons/shortcuts (arrow keys, j/k)
  • easy URLs for copy/paste linking
  • better auto-linking (handle URLs without http)
  • better ellipsing

URL shortener service problems

itches:

scratch: my own shortener domain

http://ttk.me/

everyone should have one (in addition to their own domain of course).

go get one.


URL shortener fragility

itch: url shorteners are fragile (Joshua post), databases are fragile (database dies, IDs die)

scratch: algorithmic URL shortening

  • Whistle
    • what you use to call a trained Falcon
    • introducing "algorithmic permashortlinks"


non-printsafe short URLs

itch: non-printsafe short URL encodings

scratch: print-safe NewBase60


writing code over and over

itch: tired of writing same logic front/back-end

scratch: CASSIS language subset/framework


CASSIS proof of concept

itch: amazon shortlinks too long

scratch: ASIN.cc

  • proof of concept of CASSIS, NewBase60, algorithmic shortening


OpenID too hard to consume

itch: OpenID PHP libraries too big/complex

scratch: RelMeAuth - generalize form of TwitterAuth model

Twitter bottleneck

itch: twitter being down - bottleneck to update other sites

scratch: implement PubSubHubbub support (easy) + Atom (bulky)

  • goal: unbottleneck myself from Twitter
  • e.g. updates my Buzz directly

http://www.google.com/profiles/tantek

discovered:

  • Buzz not really support Atom with XHTML (avoiding double-escaping)
  • Buzz special treats Twitter - can't emulate yourself (yet)

Maybe Activity Streams can solve this.


diso

itch: DiSo lack of apparent progress, don't want to install/maintain/update WordPress, database backup tax

complexity favors oligarchies, rise of the oligarchies

scratch: reframe DiSo2

  • indie web first, oligarchies second

conceptualizing DiSo 2.0:

  1. personal site+shortlink domains.
  2. algorithmic URL shortener.
  3. hAtom store (no DBA tax - easier to maintain/backup than MySQL).
  4. hAtom activity stream (DRY).
  5. update notifications to PubSubHubbub (PuSH).
  6. your own PuSH hub.
  7. content-type-specific syndication to specific sites (e.g. text notes to Twitter, geo checkins to Foursquare, photos to Flickr, events to Upcoming, etc.).
  8. reverse syndication of comments+tags+notes from said specific sites.
  9. edit/comment authorization via RelMeAuth (OAuth + rel-me).
  10. personal OAuth endpoint.


summary

steps you can take today:

  1. use your own site as your identity
  2. publish on your own site: HTML first (XFN, hCard, hAtom), XML next (Atom, ActivityStreams), API last
  3. syndicate with PubSubHubbub

Most importantly, build things that scratch your own itches first.


thanks