SocialCG/2018-03-28/minutes

From W3C Wiki

Social Web CG

28 Mar 2018

Attendees

Present
ajordan, aaronpk, saranix, melody, fr33domlover, eprodrom
Regrets
Chair
aaronpk
Scribe
ajordan, aaronpk

Contents

<RRSAgent> logging to https://www.w3.org/2018/03/28-social-irc

<fr33domlover> aaronpk, is the audio written into the minutes as text? or should I make notes if I need?

<aaronpk> trackbot, start meeting

<trackbot> Sorry, but no Tracker is associated with this channel.

<aaronpk> oops

<ajordan> fr33domlover: that's what the scribe is for

<aaronpk> we will need to pick a scribe to scribe the call

<ajordan> https://www.w3.org/wiki/SocialCG#Scribing

<fr33domlover> thanks ajordan i saw that, just wanted to be sure it's happening in this meeting too :)

<aaronpk> ajordan: are you still connecting? guess we can get started once you do

<aaronpk> I know a few others will be joining late in about 25 minutes

<fr33domlover> I can scribe, but I type slowly and english isn't my native language :p

<fr33domlover> (That's why I never scribed before on meetings of this sort :p)

<ajordan> aaronpk: I just connected, did you hear me?

<aaronpk> no, double check mic settings?

<ajordan> oh man I forgot to disable the thing that announces everything

<ajordan> what a nightmare

<ajordan> just a sec

<ajordan> you can start without me

<melody> i can't hear anyone talking for some reason

<ajordan> fr33domlover: probably you want to wait a bit until you recognize everyone's voices

<eprodrom> Halloo all

<ajordan> aaronpk: you're clear

<eprodrom> Weird

<ajordan> I think I fixed my microphone, could y'all hear me?

<ajordan> grr

<ajordan> scribenick: ajordan

eprodrom: hi yeah my name's Evan Prodromou, I'm one of the coauthors of the AS2 spec and also one of the contributors to pump.io, a distributed social networking project

aaronpk: awesome thanks, I think we should just jump right in
... I see fr33domlover had a question about federation for project hosting using AP
... I don't know much about that other than that sentence

fr33domlover: I started working ~3 years ago on a repository hosting, sort of like GitLab
... I want to make it decentralized

<eprodrom> q+

... so I was thinking about how to match objects I have like users, repos etc. to objects in AP
... so e.g. a question I have is what things should be actors
... suppose the users are actors, should the project be an actor or an issue be an actor or a repo be an actor

<aaronpk> ack eprodrom

<aaronpk> scribenick: aaronpk

eprodrom: users can definitely be actors. issues probably don't need to be followed int he same way, but users and projects would make sense to be actors.

eprodrom: ultimately deciding what should be an actor in activitypub network is a question of "should I be able to follow this thing"

eprodrom: I have a question... have you thought about sketching out on the w3c wiki a diagram for this to get commetns and feedback?

<aaronpk> scribenick: ajordan

<ajordan> scribenick: ajordan

<eprodrom> q-

<aaronpk> ajordan: everyone is talking

<aaronpk> mumble fail today

<ajordan> ah sorry my headphones came out of the jack

<aaronpk> haha

<ajordan> if y'all can repeat real quick :/

<Loqi> rofl

fr33domlover: I can make a diagram, and I'd love to get a review on the diagram
... if I want people to be able to follow an issue, e.g. in Bugzilla where there's a list of emails per issues
... should I make issues into actors so people can follow them

eprodrom: good question, I guess it comes down to what your use cases are ... I see the point either way

<ajordan> is it problematic to follow non-actor objects?

fr33domlover: I had an idea about inbox and outbox, I'd like to see if it makes sense

eprodrom: super sorry to do this, but I have to go soon and I have an item on the agenda
... can I ask CG about next steps for this one thing?

aaronpk: yeah go ahead

eprodrom: so sorry, I don't like hijacking the agenda like this
... so good news is that ajordan and I met over the weekend along with cwebber and we hacked on AP in pump.io
... so we have some of the endpoints working as well as generating AS2 from our database
... as I was looking at our code I realized there's a couple AP props that haven't been added to the context
... I *think* that requires sandro or rhiaro to actually do the push to the W3C servers though

<eprodrom> https://github.com/w3c/activitystreams/issues/465

<Loqi> [evanp] #465 Add "shares" from ActivityPub

aaronpk: I belive that's correct, not sure who else would have access to that

<eprodrom> https://github.com/w3c/activitystreams/issues/464

<Loqi> [evanp] #464 Add "likes" from ActivityPub to context

eprodrom: so I think probably next steps is, I would do this in our GitHub repo and then I'll collaborate with sandro and rhiaro to get it pushed to W3C servers

aaronpk: sorry is this basically a bug with the current context? AP says it should be a thing but it's not in the context?

eprodrom: correct

aaronpk: interesting, sounds like GitHub issues are a good place to track that

eprodrom: the one thing is, I'd like to make sure we do as many of these as possible at once, so I'm gonna do a last pass over AP, add them to the context and ask sandro/rhiaro to do the push

aaronpk: sounds good

eprodrom: do we need to do a vote to approve that process?

aaronpk: I don't think we need to do a vote? we could to document that that's the process we're following
... and people here can provide feedback, as to whether that's a good idea

aaronpk: anyone have thoughts about that? sounds like this is essentially a bugfix so I'm inclined to just let the editors roll with it since it's not creating anything new
... seems very reasonable to me

<ajordan> +1

<aaronpk> +1

<eprodrom> PROPOSAL: add shares, likes, and potentially other properties from ActivityPub to ActivityStreams 2.0 context

<eprodrom> +1

<eprodrom> Cool!

<aaronpk> +1

aaronpk: okay well if anyone else... oh there we go an actual proposal to vote on sure

<ajordan> +1

<melody> +1

eprodrom: okay so if we're okay with it I'm going to take the steps and coordinate with sandro to get it pushed

aaronpk: sounds good and can your report back to IRC as to how that goes?

eprodrom: okay I have to run, I appreciate it and especially fr33domlover I appreciate you letting me agenda jump, I know that's a hassle

fr33domlover: it's okay

aaronpk: thanks evan

<eprodrom> Outie

aaronpk: before we go back to fr33domlover's questions, does anything else have anything to talk about? otherwise I think we should just go back to the original questions

aaronpk: okay so back to your architecture questions

fr33domlover: okay so because I'm doing this for project hosting I have lots of objects and concepts that are extensions to plain AP
... so my question is if I have things like new actor types, it won't just be like group, person, service, it'll be like issue, repo
... so if I have all these extra properties, does it make it harder for my app to federate with existing implementations
... like e.g. pump.io once they have AP
... so could someone on pump.io comment on an issue or whatever despite pump.io not understanding the extensions
... do I need to be careful about stuff to make sure I'm still compatible

<aaronpk> scribenick: aaronpk

ajordan: let me think about it for a minute
... citation needed, but I think pump.io should accept anything it doesn't recognize, so as long as you provide some sort of sensible alternative content, like a fallback description in summary, then it should display
... and you can certainly add comments to that
... it might not show up in the pump web UI or clients, i'm not sure, but you could use a pump account. like if you had a client that displayed issues you could use your pump account
... you would need to write your own JSON-LD context so other implementations can understand that
... pump.io probably won't end up caring about that, but other implementations do

fr33domlover: great i'll end up doing that
... the spec says you can treat the data as plain JSON, so do implementations usualyl understand JSON-LD? would that be a problem? or can I trust them to accept what they don't understand

ajordan: the answer is complicated. in the spec, all the authorization stuff is unspecified. in real life... let me find the wiki url

<ajordan> https://www.w3.org/wiki/SocialCG/ActivityPub/Authentication_Authorizationhttps://www.w3.org/wiki/SocialCG/ActivityPub/Authentication_Authorization

... what has happened in real life is all of the implementations have converged on this authentication scheme where server-to-server people use HTTP signatures and linked data signatures, so all implementations are full JSON-LD processing or they have a corner where they care about LD and the rest they treat it as plain JSON
... mastodon does it as mostly plain JSON, pump will do it as plain JSON
... kroeg does json-ld, not sure about the others

fr33domlover: so either way I need JSON-LD for the things you linked

<saranix> hmm... I suppose the same applies to my chat presense question... so if someone is "following" the room actor, they will get objects like { summary:"@foo is now away"}, but what should the type:{} be? Should it be a top-level activity of some kind? Since type:Add, object:type:{away status", etc.} seems kinda overly verbose

ajordan: if someone is consuming JSON-LD you can treat it as plain json except for the signatures. if you're producing data with extensions then you have to worry more about JSON-LD

fr33domlover: okay thank you

fr33domlover: one more question. I was thinking about inbox/outbox for actors
... it adds new addresses like actorid/inbox actorid/outbox
... that differs from RESTFUL applications where you can get and post the object ID directly
... I had this thought, suppose a project is an actor, since a project is part of the application itself, it's not a person, it doesn't need to GET its own outbox or POST to its inbox
... so the only things you need from an outbox and inbox for a project is people need to be able to post to an inbox to send changes and get from the outbox to see events
... so if I make the inbox the same url as the actor, and the outbox can have a url like actorid/changes
... then if I want to make a project into an activitypub actor, I don't need to add a new URL to my application
... since the changes are already visible as an HTML page, so I can use the Accept header to return the activitystream
... in regular REST applications you post to the object to make changes, so if you use the same URL for the inbox as the actor then you can use the content-type header whether you're receiving plain JSON or HTML form input, it all goes to the same URL
... so I was wondering if that's okay, and not surprising to other implementations, that the inbox URL and actor ID are the same

ajordan: off-hand, I don't think that should be a problem
... this has been discussed recently on IRC with saranix I think?
... it is worth noting that in activitypub, the client-to-server stuff is totally separate from server-to-server, so if you wanted to, you could implement a "regular" rest client-to-server API and then use activitypub for server-to-server.
... i'd encourage you not to of course, since if you implement activitypub client-to-server you get all the clients

fr33domlover: I noticed they're separate, and I agree I want the existing clients to be able to communicate
... so I think i'll go for what I said, making the inbox and actor id the same

ajordan: sounds great

fr33domlover: thanks for the feedback, i'm done asking questions for this meeting

<ajordan> np

<ajordan> scribenick: ajordan

<ajordan> aaronpk: thanks, great questions and I like trying to reuse existing URLs and things like that, sounds great ... well cool, anyone else have any new topics they want to squeeze in since we have a few extra minutes? ... I don't see anything on the wiki

<melody> i think saranix said they wanted to talk about chat on AP

aaronpk: alright well in that case let's call the meeting early

<saranix> BUMP: so if someone is "following" the room actor, they will get objects like { summary:"@foo is now away"}, but what should the type:{} be? Should it be a top-level activity of some kind? Since type:Create, object:type:{away status", etc.} seems kinda overly verbose

aaronpk: well thanks everyone for coming, hope it's been useful and let's do it again in two weeks

fr33domlover: yes thanks

aaronpk: and thanks ajordan for scribing

<ajordan> np! I've been slacking recently lol

<aaronpk> trackbot is slacking so I think i'm gonna have to generate the minutes manually

<trackbot> Sorry, aaronpk, I don't understand 'trackbot is slacking so I think i'm gonna have to generate the minutes manually'. Please refer to <http://www.w3.org/2005/06/tracker/irc> for help.

<ajordan> wait

<ajordan> saranix is here

<aaronpk> ohai

<aaronpk> wait not on the call tho

<saranix> yeah I don't do mumble

<aaronpk> someone want to take the question?

<ajordan> saranix: I would think it would be an Edit on the Actor

<aaronpk> i'll leave you all to continue this in IRC :)

<saranix> ajordan: oh yeah, that makes sense

<ajordan> are we done on Mumble? my laptop is about to die

<saranix> ajordan: but AP requires Edits send the Full Object... which sucks for chat

<ajordan> scribenick: nobody

<ajordan> aaronpk: do we want to end the meeting? or what's happening

<ajordan> also

<ajordan> present+

<aaronpk> trackbot, end meeting