OStatus-enabling your Application
What is OStatus?
Modeling distributed social networks
Broadcaster-receiver
Aggregation
What kind of application?
Anywhere people do stuff
Especially good when not explicitly social
Wikis
Blogs
CMS
Bug tracking
Photo-sharing
Incremental approach
Broadcaster
Response handler
Receiver
I. Make good feeds.
ActivityStreams
http://activitystrea.ms/
Fallbacks
plain-old RSS 2.0
Atom feeds
Single feed per person
Author element at the feed level
Author elements have URI element
uniquely identifies the author
discoverable with a
HTML profile page
Optional: enhancing your feeds with ActivityStreams
verb
object
Optional: use Portable Contacts
extensions to the element.
Important elements include , , , and .
II. PuSH-enable your feeds
PubSubHubbub (PuSH)
real-time updates
http://code.google.com/p/pubsubhubbub/
Add a 'hub' link
Send new-content update
Congratulations!
OStatus users can subscribe
http://example.com/someuser
Who else is here?
Posterous
Tumblr
WordPress.com
Gowalla
III. WebFinger identities
http://code.google.com/p/webfinger/
Update schema
Congratulations!
Who else is here?
Google Buzz
IV. Model remote users
Roles in the system
authors of comments
favorites
Social graph
Subclass model
Superclass Author
Subclasses User and RemoteAuthor
Identifiers
typically usernames are unique for Users but not for RemoteAuthors
Numerical ID may be locally but not globally unique
Weak user model
Same table and/or class
Very weak user role
absolute minimum permissions
No login, if possible!
V. Accept Salmon for replies
http://www.salmon-protocol.org/
Salmon slap
Comments
Replies
Plain Atom entries
What to do with Salmon messages
display them
notify the user
Watch for spam!
Use a service
Watch for signatures!
RSA signature is tricky
Different languages
Different libraries
VI. Accept Salmon for social activities
Atom + ActivityStreams
Social graph updates
Follow
Unfollow
Popularity
Like (or Fave)
Share
Remote users' profile data
ProfileChange verb
Congratulations!
users can publish activities
have a two-way conversation
VII. Allow subscriptions to remote users
PuSH subscriber role
Discovery
Find that feed!
By profile URL
By WebFinger ID and updates-from
By Atom/RSS feed URL
Optional: Subscribe button
Discover subscription endpoint
Redirect to own server
VIII. Send Salmon slaps
Local replies
discover the remote user's Salmon endpoint
Provide an RSA key in WebFinger
Sign the slap!
IX. Send Salmon slaps for social activities
Activity Streams
Follow/Unfollow
Fave/Like
Share
Profile update
What next?
OStatus 1.5
Improved support for privacy
Activity Streams JSON encoding
Better on-site UI
Conversation tracking
Follow me.
http://ostatus.org/
http://federatedsocialweb.net/
Click to edit the outline text formatSecond Outline LevelThird Outline LevelFourth Outline LevelFifth Outline LevelSixth Outline LevelSeventh Outline LevelEighth Outline LevelNinth Outline Level