Activity Streams meetup on Friday, 16 October, 2009
Location: Google - Building CL4
Conf. Room: Ascraeus Mons FL1 CL4
1400 Crittenden Lane
Mountain View, CA
Map
Time: 10am-3pm with a break for lunch
Please RSVP: (some copied from thread)
- Attending: Ryan Boyd, Rob Dolin, Monica Keller, Kevin Marks, John Panzer, Arne Roomann-Kurrik
- Tentative: Phil Wolff
- Hopefully next time: Martin Atkins, Chris Messina
Tentative Agenda:
Notes (Ryan Boyd):
- Salmon (John Panzer)- http://salmon-protocol.org
- Great: Content being broadcasted out and syndicated many places
- Problem: Comments/likes/stars/etc don't flow upstream, so many conversations occurring about the content in silos.
- Question: Thought about upstream abuse reporting?
- Solution:
- Salmon provides protocol for syncing comments/likes/stars upstream. The source validates the user positing the comment. The source then pushes it out via pubsubhubbub to all other subscribes.
- Salmon-playground.appspot.com
- Example application to salmonize a blogger blog.
- thr:in-reply-to (says what the source is)
- sal:signature (security 'magic pixie dust' :)
- Should be able to use any identity (with OpenID) rather than an identity provided by the aggregator.
- Main concerns:
- Deduping
- Author is maintained properly
- Threading is maintained properly
- Timestamps
- Nailing down magic security pixie dust
- Discussion of atom:id values
- Conclusion
- Intended to be activity-streams compatible. Willing to change the salmon spec so that it matches activity streams as necessary. Also planning on adopting whatever the AS JSON spec looks like.
- Next steps
- John Panzer open sourcing the demo project and looking for people who are interested in contributing (you get a free t-shirt then, and only then)
- RSS
- Microsoft has 9 people who have implemented activity streams elements in RSS2
- Profile picture
Notes (Arne Roomann-Kurrik):
Attendees
Ryan Boyd (Google), Arne Roomann-Kurrik (Google), Kevin Marks (BT), John Panzer (Google), Chris Toomey (Yahoo), Stephen Garcia (Yahoo), Phil Wolff (Skype Journal), Rob Dolin (Microsoft), Monica (MySpace), Adrian Chan, Kaliya Hamlin, Joseph Boyle
Action Items
- Chris: appoint additional people to approve groups posters / wiki editors.
- Yahoo!, Google: to perform trademark searches for activitystrea.ms and logo.
- Rob: Ask Martin why he forked music out and then put it back in?
- Monica: Post "post", "earn", "receive" question to mailing list
Topics
General
Q: Process for proposing a new object type?
A: Propose it on the mailing list, then write up a wiki page. Every object gets its own wiki page.
Q: Chris has access to approve wiki editors?
A: Yes, should be more people - single point of failure. Annoint Rob to also help approve new editors.
Trademark search for activitystrea.ms and logo.
Get activitystreams.com
Piggyback on open web foundation?
Salmon / Lox
People syndicating their content to everyone. People want to comment when they see a piece of content. Comments are not forwarded back to original source.
Salmon is a protocol intended to solve this in a distributed way.
Q: Thought about using this for abuse reporting? If you could report something is spam and have it forwarded back up stream?
A: Should be able to accept arbitrary activities, so makes sense.
New "negative" activities - might fit in there.
Slide flow at http://salmon-protocol.org
Demo at http://salmon-playground.appspot.com/setup_proxy
Draft spec at http://salmon-protocol.org/salmon-protocol-summary
Q: Works on RSS?
A: Yes, could also work on any HTML page, for commenting.
Open questions regarding Salmon?
- Magic pixie dust
- Distributed author identity
- Spam control
- Signing content
- Signing content - would be good to know what formats we need to support.
Profile-Photo
Q: My representation of myself? Or others' representation of me?
A: Post action, like upload - would be your representation of yourself.
LiveJournal - use a different photo of yourself for a comment. You may have more than one profile pic associated with an event.
Link rel=preview in the author element would be where you put that picture. "Thumbnail of Kevin's head"
Use "profile-photo" instead of "profile-pic" - "Photo" in use for HCARD.
For a given entry, have an author block. Photo associated with the block. For case where one author may have different photos per scope (this is the photo for my friends, this is the photo for my family) we don't have the idea for permission - no idea of permission in Atom (entire feed is permissioned).
Blogger - give different formats of a feed per user accessing it.
Portable contacts - photo, not photos.
Upload - "This is my profile photo now". Two step process - upload a photo, then select which photo you want to use for the profile photo.
Namespace
If we were doing this 5 years ago, what would the vocab be? In 2004, MySpace was the dominant social network. Share, bookmark, etc. RSS is 10 years old. If we don't put items in namespaces, we lock in a 2009 view of the world.
Verbs are already in namespaces. E.g: http://activitystrea.ms/schema/1.0/share. Everything is in the "main" namespace. Would be good if you could have stuff scoped in different namespaces - "music" namespace, "gaming" namespace.
Maybe it would be worth to start bucketing some of these. There has been intent expressed in this direction.
Base names are so generic that they could be used across several genres? Maybe we should only have activities namespaced if they fall into a "vertical".
Call the core "core-2009"? Is that what "1.0" is for? "1.0" is for the spec, not the verbs. Difference is actually "spec/1.0" and "schema/1.0". Bug in the spec?: refers to both "spec/1.0" and "schema/1.0".
How would you represent an alternative namespace? Replace the core verbs with a new collection of names? Increment the version number. What about being additive?
- /gaming-schema/1.0/share?
What's the current proposal for the gaming stuff? Does it get thrown into the namespace, or in its own? Not specified.
Proposal: "schema" is treated as core. Extensions replace schema:
Outside parties are discouraged from extending. Want to express a path for extending the specification. Maybe it would be best just to define a way to extend the specification? ex: MediaRss to RSS. Martin had forked music out and then back in in the past - Future agenda item: ask Martin why he forked music out and then put it back in?
JSON format? Essentially, there will be parsers which ignore namespaces. Need to ensure that there isn't verb clobbering, even across namespaces. Music/Gaming is a good example of this: "play". If we come to the conclusion that the JSON format doesn't have namespaces, then we have to be very careful going forward with namespaced ATOM elements.
What we come up with today won't encompass all possible uses in the future. Will only be collisions if someone in the future just ignores the standard that we choose today.
Should you put the burden on every library which may not be checking namespaces, plus JSON, or do you want to put the burden on the (small) set of items which may actually collide in the future.
The issue isn't redefining the core verbs - it's more about two extensions colliding. Possibly define a prefixing scheme. If you're going to define "play" in gaming or music, pick a two letter prefix for your extension - "gm-play", or "ms-play".
Proposal:
Extensions may define an XML namespace, e.g:
-
http://activitystrea.ms/gaming/1.0
-
http://activitystrea.ms/schema/gaming/1.0
-
http://gamingstreams.org/schema/1.0
If an extension defines a namespace, it should/must define a short (two letter?) prefix to use for JSON element names - e.g.: "gm-verb". Verbs in the core namespace do not need to use a prefix. Should be a registry page on the activitystrea.ms wiki, where extension authors list their XML and JSON namespaces, and provide a link to a human-readable description of the extension.
Logo
Has anyone run the logo through legal or done a trademark search? No. We should use some resources to run one of these searches. Also make sure that the licensing allows use in commercial and non-commercial uses.
Consensus on the logo? Three horizontal wavy lines. Colors? Something other than orange. Something that colorblind people can also see. General thumbs up on the blue.
Yahoo! to post mockups on the wiki and Yahoo/Google do a trademark search.
Can we get a flat background version? Black field, and reverse, to work on a black color background.
Gaming
Gaming proposal. Personal record - can mean a lot of different things. Game summary? End of a game, game result. What about turn based games? Phil bites Bob? Achievement is the culmination of "phil bites 20 people and gets the Zombie Biter award", but won't address individual bites at this time.
Achieve and win are two verbs that should be pulled into the spec. Highest priority objects: Personal-Record, Achievement,
Three potentially interesting pieces of context - Game/Platform/Mode. Game most important. Platform may not only be game-specific? Maybe use Atom:source to represent this. (looked at the atom spec) atom:source may not be the most appropriate place to put this, but we should generalize this to apply to activity streams in general.
This kind of information looks like a "via" thing, and the closest thing in atom is generator, but not appropriate. Why not use links? Elements do need a unique url to identify themselves. Future agenda items: How to represent "via"?
Tweetdeck posts an activity to Twitter, picked up by MySpace. (Conversation deferred to a top-level topic).
Object: Phil beat Rob - the loser of the game. Achievement - "achievement". Losses? Could just use the "play" verb for this? Can the result be an attribute on the verb? Could, but we don't have attributes on the verb at this point. Verbs are single elements. Generic vs specific activity types? "Play" - generic, don't care who won or lost - "win", "lose".
Suggested activity: "My wife beat me the other night in Scrabble with a score of 100" - "What mode were they playing in?" Generalize this? Many activities may have a result? "John raised $500 for the MS Society"
Why are we pushing gaming stuff? Windows mobile team wants to push activities from gaming you've done on your phone (closest to shipping). Badges + Achievements, scores, records in the games. Looked at these and some MySpace games to try and figure out what we can do there. If Nike+ is sitting at this table, we can work on a schema with them, but there's a current need for a gaming schema.
Point of looking at this: Is there something here that prohibits future extensibility? Want to make sure that anything that can be in core is in core. We have to make sure that we're representing the templates most in use by current games - can't just base this off of a handful of games.
Elements of a game:
- Game
- State
- Score
- Participants
Bowling - results are not just your score, but what your sheet reads. Want to include a summary report in a single activity. Agree, but P2 - Chess is a good example - Rob moved pawn e2-e4. There could be a "move" or a "turn" in a game, but the piece that a user would intentionally publish to the game would be "rob beat jeff in chess".
Difference between describing the action that a user takes, the move I make describes the game I'm in. What I put into my activity could be a game move. Status is that the game is unresolved. Could play a game of chess just through the activity stream. The containing game would be a different object.
Actor Verb Object Target
Rob Play e2-e4 Chess
Phil Play e2-e5 Chess
Phil Win Rob Chess
If a feed is a list of actions, you could take that feed and put it as a subfeed inside of an activity entry. Then the "win" activity could roll up all of the moves into one entry.
Foursquare - ten checkins become a "badge", the "badge" activity could contain a subfeed of each checkin which was associated with obtaining the badge.
Game UID? Can we target a specific game session with this approach? Left live:gamerTag in the proposal by accident, but could use to target players. Identifying an individual game session? Target:id? That identifies the game's ID number, maybe not the session. UID for MafiaWars, UID for game we're playing in MafiaWars, UID for the player.
Targeting a specific session in a social network:
<Target>
<Id>123456</Id>
<Link rel="alternate">http://myspace.com/chess-app</Link>
</Target>
Targeting a specific NBA game:
<Target>
<Id>{ timestamp of the bulls:clippers game }</Id>
<Link rel="alternate">http://nba.com/</Link>
</Target>
Worthwhile to spin off a discussion with the gaming industry? Should we invite Zynga or Playfish over to see what they want? Disagreement of incentive. If you're Zynga or Playfish, you want to spread your activities as far as possible. If you're MySpace or Facebook, you only want the highest-priority feeds showing up. Problem for the publishers and syndicators. Forwarded this proposal to Yahoo! games product manager.
Need definition for a group of people? Group object to represent a clan or a team. Chicago bulls as a "group" object.
Use "post", "earn" or "receive" instead of "achieve"? Use "badge" instead of "achievement"? Action item (Monica): Post "post", "earn", "receive" question to mailing list.
Comments (4)
Peter Reiser said
at 3:15 pm on Oct 13, 2009
It would be nice if people outside of the Bay Area could attend the meeting (virtually). Any plans to use a virtual meeting service in the future ?
Rob Dolin said
at 5:54 am on Oct 14, 2009
+1 (as someone not from the bay area)
In some ways, I look at work on the wiki and listserv as virtual meetings. Though this is async virtual, it hopefully enables people to participate regardless of physical location.
I'd be a big fan of "beta-testing" virtual meetings around specific issues (ex: folks interested in a particular topic get on a ConCall, IM Chat, or other virtual meeting service) and if that works, then we could try with the larger group.
jrconlin said
at 7:26 am on Oct 15, 2009
What would work best for folks? I've got a ustream.tv account if folks wanted to set up a video feed from a laptop. The biggest problem I have with those things is that the audio always sucks for remote folks.
(P.S. may not be able to make the morning part of this, but I should be able to do the full afternoon bit.)
jrconlin said
at 8:33 am on Oct 16, 2009
Going to pass on this meeting since things are going quite nicely and I don't want to crowd the room. Looking forward to the notes.
You don't have permission to comment on this page.