Open Source and the Open Social Web
Small pieces, loosely joined
Evan Prodromou
StatusNet Inc.
Who I am
- Founder Wikitravel (http://wikitravel.org/) 2003
- Founder StatusNet (http://status.net/) 2008
- Debian
- FreeNet
- MediaWiki
- Creative Commons
Communications revolutions of the last 20 years
- Email
- Documents
- Personal publishing
Email: 1993
- large consumer systems: AOL, CompuServe, GEnie
- University networks on Internet
- Government systems (Minitel)
- Proprietary systems in corporations, government
- X.500
- ad-hoc bridges
- BBSes (FidoNet) for customers or communities
Email: 1995
- Unified around Internet email
- Hierarchical addressing: user@domain
- BBS → ISP
- Telecom companies
- AOL opens up (1995)
- BBSes almost disappeared
- Open Source: Sendmail
Documents: 1992
- Proprietary, complex, internal in enterprise
- File sharing
- BBSes for customer download
- AOL, CompuServe, etc.
- Some FTP systems
Documents: 1997
- Web almost ubiquitous
- Hierarchical addressing: http://domain/document
- Intranet/Internet/Extranet
- HTTP + HTML
- Open Source: Apache
Personal publishing: 2001
- "Home page" on ISP
- Geocities, Tripod
- Frontier, Blogger
- RSS confusion
- Personal vs. Business
Personal publishing: 2005
- Hosted blogs ubiquitous
- URLs for identity
- Feed readers
- Podcasting (enclosures)
- RSS 1.0, 2.0, Atom: more than we need!
- Personal and business
- Open Source: TypePad, WordPress
What's my point?
- Revolutions happen quickly.
- Unconnected islands → federated networks
- Commercial adoption drives need for control
What is federation?
- Network of networks
- Open protocols (usually a lot)
- Uniform namespace
- Hierarchical addressing
- Anyone can play
Other federated networks
- Postal system (country + postal code + local addressing)
- Telephones (country + area/city code)
- SMS (ditto)
- TCP/IP (IP addresses)
- DNS
What drives federation?
- Control
- Distrust
- Greed
- Innovation
What drives federation on the Internet?
- TCP/IP
- DNS
- Scale
- Globalism
Metcalfe's Law
- V = cN^2
- "The more, the merrier."
Metcalfe's Law and federation
- Makes big networks stronger, easier to resist
- Makes federation important for small networks
- Once network of networks > big networks, makes them join too
Social software: 2010
- Facebook: 400M+ users
- Twitter: 100M+ users
- Application-specific networks threatened: Flickr, Digg, YouTube
- National networks threatened: Orkut, Friendster, Bebo, Hi-5
- Social gaming
One vision
- Some networks become defacto substrate for Internet.
- Facebook: "Open" Social Graph
- Twitter: Social messaging, "real-time"
- "Open" means "Use our API"
- Compare: Skype for voice
- Compare: Google for search
Another vision
- Commercial adoption of social messaging
- Need to connect
- Threatened networks fight to survive
- Open government requires 100% engagement
- Business needs of providers
Social software: 2012?
- Email-like identity evan@status.net or URL-like http://evan.status.net/
- Distributed real-time follow
- Combination of small and large networks
- Application-specific networks → general representations
Why should hackers care?
- Most important parts of our life: family, friends, romance
- Politics requires open discourse
- Making software that matters
Protocol suites
- "Email" = SMTP, RFC 1822 messages, addresses, MIME, ...
- "Web" = HTTP, HTML, CSS, JavaScript, favicon.ico, robots.txt ...
- "Blogging" = Web, RSS or Atom, Atom API, enclosures, pingback/trackback, ...
- "Social Web" = ???
Protocols: OpenID
- http://openid.net/
- Authentication (AuthC)
- URL for identity http://evan.prodromou.name/
- Devolving to a few identity providers (Google, Yahoo)
- Whitelist oriented
Protocols: OAuth
- http://oauth.net/
- Authorization
- Widely implemented
- Whitelist oriented (consumer keys)
- Not a lot of social parts
- Authentication (Sign in with Twitter)
Protocols: PubSubHubbub
- http://code.google.com/p/pubsubhubbub/
- Real-time publishing ("PuSH")
- Atom- or RSS-based
- Web hooks
- Great support: Google Buzz, Posterous, Tumblr, WordPress,
LiveJournal, StatusNet, Cliqset, ...
Protocols: ActivityStreams
- http://activitystrea.ms/
- Represent social actions in Atom with XML namespace extension
- Subject, Verb, Object
- "Evan published a photo"
- Powerful when combined with PubSubHubbub
Protocols: Salmon
- http://www.salmon-protocol.org/
- Subscriber to publisher ("upstream")
- Comments and replies
- Activities
Protocols: WebFinger
- http://code.google.com/p/webfinger/
- Email-like identity for the Web user@domain
- XML document format matches identity to URLs (My photo service
is X, my social messaging service is Y, my profile is Z, my OpenID is W...)
- LRDD uses URLs instead of Webfingers
Protocols: Portable Contacts
- http://portablecontacts.net/
- Define social relationships
- Static social graph
- User-controlled sharing of contact data
- Compare: XFN, FOAF
Protocol Suite: OStatus
- http://ostatus.org/
- Webfinger + LRDD = discovery
- PuSH + ActivityStreams = follow
- Salmon + ActivityStreams = reply
- ActivityStreams + PoCo = profile
What's missing?
- Privacy
- Client API
- Microapps
The Open Source enabler
- Who will be the Apache of the Open Social Web?
- Not sure yet
- Many contenders
- Trying to work together
Projects: Diaspora
- http://joindiaspora.com/
- 4 students in NYC, 1 summer, $100K!
- OStatus-like stack
- Ruby on Rails
- AGPLv3
- No working version yet
Projects: DiSo
- http://www.diso-project.org/
- Based on WordPress
- Chris Messina, Steve Ivy
- XFN
- Leading ActivityStreams
Projects: Elgg
- http://elgg.org/
- General-purpose social network
- LAMP
- Commercial version http://elgg.com/
- Some federation (PuSH), more coming
- GPLv2
Projects: GNU Social
- http://groups.fsf.org/wiki/Group:GNU_Social
- General-purpose social network
- LAMP
- AGPLv3
- Some federation (PuSH), more coming
- No working version yet
Projects: BuddyPress
- http://buddypress.org/
- General-purpose social network
- Automattic project, very nicely done
- LAMP
- GPLv2
- Very little federation
Projects: StatusNet
- http://status.net/
- Microblogging server
- LAMP
- AGPLv3
- OStatus for federation
- Twitter-like API
- Plugin architecture
- Identi.ca + 22K other sites on the Web
What next?
- Projects working together
- Integration testing
- Real-life usage
- Innovation
- Growth
How to help
- Hack!
- Translate!
- Theme!
- Implement!
- Use!
- Spread!
Thank you!
- Evan Prodromou
- http://evan.status.net/
- acct:evan@status.net
- http://status.net/signup code ELLAK 2010