Socialwg/2014-12-09-minutes
Social Web Working Group Teleconference
09 Dec 2014
See also: IRC log
Attendees
- Present
- evanpro, aaronpk, Arnaud, Lloyd_Fassett_, elf-pavlik, tantek, mattl, cwebber2, jessica_lily, bret, AdamB, Doug_Schepers, rhiaro, oshepherd
- Regrets
Chair - tantek
- Scribe
- evanpro, aaronpk
Summary of Action Items
[NEW] ACTION-20: Set up hosting for f2f 17 & 18 march 2015 [1]
[NEW] ACTION-21 contact sandro to enforce action-20 [2]
[NEW] ACTION-22 Create wiki page for mentions and proposal [3]
Resolutions
- RESOLVED
- Approve minutes of 02 December 2014
Contents
<aaronpk> Zakim: who is on the call?
<trackbot> Date: 09 December 2014
<tantek> eprodrom: yes and we decided I don't do email
<tantek> and that's ok
<eprodrom> tantek: oh, that was right
<eprodrom> I was going to post the agenda on your weeks
<tantek> right
<tantek> so I am supposed to chair today
<eprodrom> Good with me
<eprodrom> if it's good with Arnaud
<tantek> and any further email discussion are not relevant
<mattl> how do i associate nickname?
<cwebber2> I'm probably one
<cwebber2> I'm just listening in for this one though
<tantek> mattl like that ^^^
<cwebber2> I think jessica_lily can handle the mediagoblin and pump api stuff if it comes up :)
<mattl> tantek: aha. i am also just listening in really.
<cwebber2> 21# or
<eprodrom> Yes it's be great to have her speak up
<tantek> 41#
<cwebber2> 41 ok
<cwebber2> that's me
<cwebber2> thx
<eprodrom> yikes that is loud
<eprodrom> Arnaud: per our discussion last time
<eprodrom> I'm going to post the agenda for the weeks that Tantek is chairing
<eprodrom> It was my mistake Arnaud
<elf-pavlik> scribe?
<cwebber2> I can't do this week
<cwebber2> I'm helping a client whose server just went down
<cwebber2> and I scribed recently
<cwebber2> sorry, I'm normally happy to
<eprodrom> scribenick eprodrom
<eprodrom> Good here
<tantek> propose evanpro scribe til pump.io discussion then aaronpk
<aaronpk> should I do the "scribenick" thing when I switch?
<elf-pavlik> scribenick: evanpro
<bret> hey all
scribenick evanpro
Approval of minutes from last week
<tantek> yes
<tantek> https://www.w3.org/wiki/Socialwg/2014-12-02-minutes
tantek: any objections?
RESOLUTION: Minutes from 2014-12-02 approved
Next week's teleconference is the 16th
Arnaud LeHors to chair
Discussion of F2F
tantek: mid-march is best time on Doodle
Arnaud: Two sets of dates were acceptable by majority
elf-pavlik: thanks
F2F meetings
Arnaud: schedule meeting on 17th and 18th and hacktime on 19th
tantek: also hacking session beforehand
Arnaud: I have a slight preference for Tuesday
<tantek> sandro: any hosting prefs between 17&18 vs. 18&19?
tantek: do we still have these hours available in Cambridge?
PROPOSED: 17th and 18th March in Cambridge for F2F
+1
<cwebber2> +1
<jessica_lily> +1
<mattl> +1
elf-pavlik: I'm muted
ACTION sandro set up hosting for F2F 17 & 18 March 2015
<trackbot> Created ACTION-20 - Set up hosting for f2f 17 & 18 march 2015 [on Sandro Hawke - due 2014-12-16].
ACTION tantek contact Sandro to enforce ACTION-20
<trackbot> Created ACTION-21 - Contact sandro to enforce action-20 [on Tantek Çelik - due 2014-12-16].
<elf-pavlik> on not assigning others, seeAlso: https://n-1.cc/discussion/view/73892/free-will-libre-albedrio-aware-software
tantek: Any other questions for F2F?
... perhaps someone can suggest good places for St. Patrick's day that night
<tantek> AGENDA: open actions http://www.w3.org/Social/track/actions/open
Open actions and issues
<elf-pavlik> james not here, he sent regrets
<elf-pavlik> i added them to wiki
<tantek> elf-pavlik: http://www.w3.org/Social/track/actions/11
<tantek> go ahead elf-pavlik
<cwebber2> did the line go quiet?
<elf-pavlik> yes
<elf-pavlik> i didn't have time to tidy up my facebook review, by next week will do that!
<tantek> ok thank you elf-pavlik
<aaronpk> scribenick: aaronpk
<tantek> evanpro: http://www.w3.org/Social/track/actions/16
evanpro: these are wiki editing actions i've been putting off, so will take care of these after the call
... mostly getting links onto pages on the wiki
Activity Streams 2.0
<tantek> elf-pavlik: agenda http://lists.w3.org/Archives/Public/public-socialweb/2014Dec/0037.html
<mattl> elf-pavlik: if you're speaking, i can't hear you.
<elf-pavlik> i think sound doesn't work for me, just participated in Credentials CG call and it worked just fine
<evanpro> elf-pavlik: can you try reconnecting?
<elf-pavlik> i'll try to reconnect
evanpro: question on the email list about "mentions"
... when you mention another person in text
... kind of related to tagging someone in a photo, but is embedding someone's name or nickname into a photo or text
... was a proposal specifying microsyntax or html for text for some relations
... elf brought up a proposal to depend on strucured data in the activity streams, instead of embedding data in the plain text of the content
... the proposal right now is essentially to not do anything extra for AS2.0 right now
<elf-pavlik> ok for ACTION
tantek: propose elf write up his proposal ont he wiki for how a mention should be handled
<elf-pavlik> i ask over list to help me with reworkding it
<elf-pavlik> i ask over list to help me with rewording it
<elf-pavlik> tantek, i'll take that action!
<evanpro> ACTION elf-pavlik create wiki page for mentions and proposal
<trackbot> Created ACTION-22 - Create wiki page for mentions and proposal [on Pavlik elf - due 2014-12-16].
<elf-pavlik> sorry everyone, i just participated 2h ago in Credentials CG and my voice worked just fine, but they use independent VoIP setup...
Social API
<tantek> scribenick: evanpro
tantek: any other issues on Activity Streams 2.0?
Micropub
aaronpk to discussion Micropub
<aaronpk> https://www.w3.org/wiki/Socialwg/Social_API/Micropub
aaronpk: just a quick summary of micropub
used to create publications on your own domain name using any number of clients
authentication using indieauth
Generates an OAuth 2.0 token
On own web site, link-rel to endpoint for micropub
RPC-style, not REST-style
All requests made to single endpoint
requests are form-encoded, POST requests
micropub requests are mirrors of microformats requests
basic one is h-entry
for example a comment
h=entry (type of post)
content=blah
Other information generated automatically by the web site
If there are other fields to specify, include them as post parameters and send them as part of the request as well
e.g. specifying tags
reposts and likes
As well as reposts
There are examples of using this for all these types
Requests are extremely small, just enough info to get the service to create the data
8 different client implementations
At least 6 different server implementations
People are using own and others' clients
Several programming languages
Next step is figuring out full CRUD flow
There are some first steps for this
<shepazu> (what do you mean by "client" here? website scripts, or browsers?)
Some discussion happening on indiewebcamp wiki
a client means anything that can make a post request
example, think of an OAuth 2.0 client
<tantek> client can be a browser or a website serverside script
Can be a browser or a native app
aaronpk: has a micropub pebble app
shepazu: do you mean that people have implemented this on their website?
quill.p3k.io is a client app
Also iPhone apps
There are also libraries to create clients
<cwebber2> sorry
<tantek> who just joined?
evanpro: is this a write-only API?
<elf-pavlik> sounds like crawl to query
aaronpk: This is the write portion of the API. The discovery is via domain name, and the read part is via the HTML on the page + microformats.
<Zakim> elf-pavlik, you wanted to discuss how to add entry to target collection? eg. friend to friendslist or wish to wishlist
<elf-pavlik> ^
<tantek> or photos to a photo collection
aaronpk: we don't have documented examples of doing that - adding to a collection
... currently about publishing content to a single stream
... assumed to be a single collection
... if people start publishing to collections, we would need to figure that out
<elf-pavlik> thanks aaronpk
<bret> here is an example of a friend list https://kylewm.com/contacts would be a matter of accepting an h-card
tantek: follow up question to evanpro's
<Zakim> tantek, you wanted to ask about how do you read someone's activities that have access restrictions?
tantek: micropub assumes that 0auth 2.0 is taken care of
... does that have impact on how private or privileged data is read?
... or can you read private or limited data?
aaronpk: that would require authenticated requests to retrieve the HTML
... I can post content only readable by tantek.com e.g.
... micropub might be used to let other people edit my posts
... but no examples of this yet
tantek: sounds like limited-access read is out of scope for micropub
... if you were writing a client, how would you read a stream with a mix of private and public posts
aaronpk: so far micropub clients don't read or display streams
<elf-pavlik> aaronpk++
<Loqi> aaronpk has 619 karma
<aaronpk> scribenick: aaronpk
Pump.io API
evanpro: now covering pump.io API
<evanpro> https://www.w3.org/wiki/Socialwg/Social_API/pump.io_API
<tantek> I'll take care of pushing forward jasnell's agenda item
implmeneted by pump.io and gnu media goblin
a number of clients for web, desktop, android and ios
talking specifically about client-server aspects of the API
federation protocol is built into the API, so won't cover that here
pump.io API uses Activity Streams 1.0 the JSON version on-the-wire
no support for atom or xml
internally models one-directional follow network (groups, contact lists, etc)
all come from the AS base schema
uses OAuth 1.0 for authentication
all clients need to use OAuth 1.0, even the web interface for pump.io
API has around 42 endpoints, so one of the bigger ones we've looked at
main part of the API are "feeds" for the user
<tantek> (smaller than any of the proprietary ones though right?)
each user has an "outbox" feed which is activities theyv'e created
as well as an "inbox" feed which is things addressed to that person
things from groups they're members of, or based on people they follow
or posts directed to them by the author
<oshepherd> Theres some redundancy there also - e.g. 9 "filtered" inbox variants
there's a mechanism in AS 1.0 to specify the audience (to, cc, etc)
input/output feeds have sub-feeds divided by the major and minor activities
does not treat all activities equally
"like" or "follow" is a minor activity, appear off to the right in the pump.io UI
whereas major feed items are posting new content, like photos or text
users create new activities by posting to their own feed
<bret> example profile ;) https://e14n.com/evan
inbox also has a sub-feed for direct activities, things specifically to them (like direct messaging)
there is CRUD access to the user profile
as well as feed of all users on the site
which is used to creating new users (post to that feed)
ther's social graph endpoints for getting a list of who you follow, who follow you, etc
the main feeds (inbox/output) are the main place API clients use
but it is possible to generate activities using the other endpoints
for example you can get the list of users you're following, you can also post to that list
similarly you can post to the favorites list
users can also create lists of people, which become your contact list
can create photo albnums or other collections of objects
media upload endpoint you can use for uploading files
it is also a stream, so you can get the media objects back
posting uploads is kind of complicated, a few ways to do it, easiest way is browser-style multipart file upload
every activity has CRUD endpoints
collections all have feeds for members
you'd typically use an "add/remove" verb but can also post directly to i
for groups there are a few extra feeds, for members, documents, photos
all objects taht are created have CRUD via HTTP verbs (GET PUT DELETE)
in the pump.io implementation these actions (PUT) will create an edit activity for that object
objects also have feeds relating to the object, feed of people who have liked the object, feed of content posted in reply to the object, and who has reposted
spec for AS1.0 that has defined an umber of feeds that relate to an object
things like shares, for person may have following,followers,groups, etc
pump.io API uses those extensively
looking at the endpoints, reaosonable to think it's a pretty big API, but it's actually pretty small with a lot of API sugar thrown in
the core is really around the user feed and inbox feed
other things are there to make it easier for clients
<oshepherd> For reference Impeller re-implements all that filtering stuff in the client (so it could be trimmed from the API)
similar in some way to opensocial except that a lot of the extra information around following/followers is handled through other aspects
questions
<Zakim> elf-pavlik, you wanted to discuss can one use collections to create wishlists, skillslists, eventslists etc. ?
evanpro: you can. you can create lists of different kinds of objects named in a specific way
talking about a wishlist for a user, would have some way to relate that list tothe user
<elf-pavlik> schema:seeks
you could create these lists they would just be tougher to discover than other kinds of lists
<elf-pavlik> thanks evanpro
did a poll last week about using "harder" verbs like put and delete
<tantek> HTTP verbs
very few of the pump.io clients on IRC last week said they use PUT/DELETE
<oshepherd> Impeller doesn't use PUT because of an accident of history (tried PUT, didn't work, tried activity, didn't work, fixed bug, it worked, never changed it back)
instead they use activities with related types. so an activity with a "delete" type rather than the HTTP DELETE verb
tantek: do you have any percentages?
evanpro: no statistics on that, but have an open action for looking at pump.io access logs for that.
guess is it will be very small
<elf-pavlik> evanpro, do you know how http://sockethub.org/ does it?
<tantek> is there any difference between a list and a collection?
evanpro: no, doesn't know how sockethub does it. never heard of it.
<elf-pavlik> it uses AS1.0
does this need to go onto our list of apis to review?
<oshepherd> Impeller will be definitively doing everything via activities because that unifies all things through a common outbox (which can be synced as and when network access is available)
<elf-pavlik> and connects to fb, twitter, irc, smtp etc
difference between list and collection? no, lists are implemented as a collection
<elf-pavlik> it has js library to connect to sockethub server
<elf-pavlik> i'll post on maling list
<elf-pavlik> we can decide then
<AdamB> sockethub -> Sockethub is a polyglot (speaking many different protocols and APIs) messaging service for social and other interactive messaging applications. It assists web app developers by providing server-independent, server-side functionality - which gives the application greater autonomy. It can be used as a tool for many different types of applications, large and small.
<elf-pavlik> nope
tantek: is anyone here actually using sockethub for their own site?
last week we discussed only reviewing APIs and implementations someone here is using in the real world, or if someone thinks it has specific relevance to this group
<elf-pavlik> fair point!
<evanpro> Let's wrap it up!
tantek: thanks for the overview evan
<elf-pavlik> evanpro++
<Loqi> evanpro has 3 karma
<shepazu> elf-pavlik, maybe ask if the sockethub folks want to participate in the WG or mailing list
if there's no more questions, move to close the call
<evanpro> +1
<jessica_lily> evanpro++
<Loqi> evanpro has 4 karma
<jessica_lily> +1 closing call
<elf-pavlik> shepazu, i did and Nick just needs to weigh this time capacity
<evanpro> Thanks tantek
hearing no objects, call is finished
thanks everyone
<elf-pavlik> thanks tantek , evanpro, aaronpk !!!
<bret> see ya, very informative
<cwebber2> thx every1
<tantek> trackbot, end meeting
trackbot, end meeting