Socialwg/2016-06-06-minutes

From W3C Wiki

Social Web Working Group Face to Face

06 Jun 2016

See also: IRC log

Attendees

Present
Lloyd_Fassett, rhiaro, sandro, cwebber2, eprodrom, aaronpk, tantek, paul, taehwan
Regrets
AnnB, wilkie
Chair
eprodrom
Scribe
Lloyd_Fassett, rhiaro, sandro, cwebber2, eprodrom, aaronpk

Summary of Resolutions

  1. approve minutes for 2016-05-31
  2. Close issue #22 without changes. Use current micropub syntax and not adopt AS2 syntax




<eprodrom> https://www.w3.org/wiki/Socialwg/2016-05-31-minutes

<eprodrom> PROPOSED: approve minutes for 2016-05-31

<eprodrom> +1

<rhiaro> +1

<cwebber2> ~1

eprodrom: 7 resolutions in the last minutes

<cwebber2> ugh

<cwebber2> +1

<aaronpk> +1

<sandro> +1

<paul> +1

<taehwan> +1

RESOLUTION: approve minutes for 2016-05-31

eprodrom: next important thing is to build the agenda for the next 16 hours of F2F.
... Review documentation
... Implementations
... Are there preferences on time for thosse?
... ...sounds like not...editing wiki

with schedule details

eprodrom: maybe we should do a strategic review 9:30 - 10..or once Tantek arrives..strategy for next 6 months. Then 30 minutes for future development of IG.

<eprodrom> https://www.w3.org/wiki/Socialwg/2016-06-06#June_6

<aaronpk> can you hear okay?

<ben_thatmustbeme> yes, fine

eprodrom: <scheduling and updating tomorrow's schedule>
... As chair I approve the agenda..I don't think we need a vote..we'll see what Tantek thinks when he arrives

Strategic overview and future work

Sandro: We don't have pubsubhubbub on the list.

rhiaro: or a subscription service

eprodrom: we'll put that on tomorrow afternoon with a question mark...it seems to come up a lot without a lot of action

eprodrom: where we get into PuSH is IP issues with Google...they were going to put the IP under public license but their isn't documentation that they've done so...conversation seems to get into a grey area around IP.
... that leaves us about 3 hrs of buffer tomorrow afternoon
... anymore agenda building or agenda issues?
... I have 9:20 lets talk about our strategy for the next 6 months. I can start with a STate of the State on WG
... As of now we have 4 specs on track for recommendation

Sandro: formally we're keeping Social Web Protocols on Rec Track

eprodrom: One has made the transition to recommendation (Webmention)...one that we are moving AS2 is being moved to Recommendation
... Question for Sandro, we have 7 months left on our charter, is it reasonable to get it done?

Sandro: if we stay on target, yes.

eprodrom: If we throw something over at last second...

Sandro: I'm not sure, management is getting more strict.

eprodrom: The clock is ticking, good

<ben_thatmustbeme> according to the process doc (from memory) anything not a REC when the group closes, becomes a note

eprodrom: It seems like we have the documents with the most momentum have made it. There is some issue if we should keep supporting all 4, or select 1 or 2 or 3. I think it's unlikely

Sandro: We don't have a lot of resource contention

eprodrom: We have a F2F in Sept

Sandro: this is important. It's in Lisbon. Who will be there? I will go if we meet there.
... 22 - 23 Sept

<sandro> https://www.w3.org/2016/09/TPAC/

<sandro> (but go for the 21st if you're going)

eprodrom: It would be useful for our group to have a presence there and promote documents to CR status.

Sandro: We should be at CR for all the documents in this meeting
... might be an issue is AS2 doesn't include all the vocabulary terms.

Aaronpk: How much of a document can change after CR?

Sandro: editoriral...anything that changes an implementation is not ok.

eprodrom: It's a catch 22..we'd only drop vocab if they weren't being implemented...

<ben_thatmustbeme> that was going to be my next question, marking at risk

Sandro: We used an At Risk flag before to signify things that might come out after CR

<Tantek arrived>

Tanktek: I thought that was only for the first CR?

Sandro: possibly

Tantek: if you wnat to make non-normative changes that are not At Risk...if there are specific features as the editor, would you want to wait, or go to PR? It's a judgment call. If you get one implementation that's one thing, if you get two.

<sandro> https://www.w3.org/2015/Process-20150901/#revised-cr

eprodrom: Sounds like it's a likely situation for AS@ that we will have a large part of vocab not implemented, then we'd have to have another CR, which we should be prepared for.

Sandro: you still need 4 weeks.

Tantek: you can communicate that as your intent.

eprodrom: We have said that we want to see each of the vocab terms to have 2 implementations that show meaningful understanding

Sandro: we came to this because we're discussing if we should meet at TPAC

Tantek: we can turn documents into Notes too, which is useful if we don't get rechartered or another group brings it up.

eprodrom: I believe the energy and resources of this group are at best to publish the 6 documents. I don't think we have resources to take on new tasks.

Tantek: as background, each of the documents had work in them before coming to the group...as an outside Open Source project or other...if someone has a new idea the chances of success are greater if it's incubated informally before being brought to the group.

Paul: (contributions I missed on clarity around the process)... after CR can we add new features?

Sandro: we would need a new CR

Tantek: I've seen implementations with existing interop go back to CR. We can debate it. I"m just giving you the background

Sandro: Micropub and Activity Pub are what we are looking at for tomorrow

Cwebber2: I don't think that's possible. Both Jessica and I have had life changing things....can we really go to CR without implementations of Acitivty Pub? I think we need implementation

rhiaro: I implemented it last week and had question.

<tantek> rhiaro++ for helping implement ActivityPub and surface implementation issues

<Loqi> rhiaro has 206 karma

eprodrom: Will it be ready for CR before Sept? Maybe?
... We have a partial implementation for Wordpress. I count that because it's outputting the feed.

Tantek: conceptually it's in good shape, editorially it's lagging.
... Since we're going forward with no At Risk features in AS2 are we going ahead with it? This is a good signal to implementors, we telling them that they need to implement things they really want as warning and incentive they know they need to ship.

<ben_thatmustbeme> broadcasting that implementors NEED to implement features they want, sounds good

Sandro: as an implementor I'd like to see that as a note that calls out what's being watched,

<eprodrom> http://jasnell.github.io/w3c-socialwg-activitystreams/activitystreams-core/#exit-criteria

Tantek: I would take that as a signal to really implement an item. This is a suggestion to Evan, not a request

eprodrom: In terms of exit criteria, the note says you have to have a meaningful implementation

Tantek: As I read it an implementor would not feel the urgency.
... It's common in W3C to have a spec last for years in CR.
... now every Charter renewal goes to Advisory because they saw groups not making progress...wanted to force WG's to show progress. We are showing progress, but we need to show interest from membership companies. We haven't been successful with that to date.

Sandro: We should be public with deadlines.
... something like the end of the summer
... AFter we go to CR, that takes 2 weeks, 4 weeks in CR, 2 weeks to go to PR. We need to decide to go to CR 12 weeks before our charter ends.

eprodrom: Expecting optimal behavior

Sandro: We publish in January

eprodrom: to summarize, last chance, with an *, is at the F2F in Lisbon to go to CR. Much better option is to go to CR before that.
... My expectation is that there will not be significant social work after CR until implementations come back. It doesn't feel like there's anything in chute for January 1.

Tantek: there has been an uptick in Webmention since it went to CR. I imagine the same effect with AS2. Optimistically I hope to see people come out of the wood work. We should look for that and ride that wave. RIght now I agree with Evan, but I hope we're altering it

eprodrom: We've built up institutional knowledge about the social web landscape. Is there something we can identify as reasonable and useful to recommend.

Tantek: like Social Web Protocols

Tanktek: I want to see PuSH

eprodrom: with the necessary humility that we don't know what the world will look like in 2018

Sandro: 2017 workshop at the earliest May? W3C measures success by how many people show up...one could do a state of the Social Web...I don't know when there will be energy for that, but it's a thing someone could start to figure out.

Tantek: do we want to aim for the path to get charter renewal, or plan for letting the group close and start a new group. Something this group has achieved is a culture of moving multiple approaches forward where they a more than civil but synergistic. I think that's a unique thing and I don't want to lose that.

cwebber: I strongly agree. Would it be better to decide this at the next F2F?

Tantek: it will be much clearer in 3 months.

Sandro: At TPAC there's a time where we can popularize the work

Tantek: like the last last Plenary. If we do another one I expect a group. We can tell them our charter expires in 3 months. We can ask for support. If we got enough AC support, that's all we need.

Sandro: I heard Sapporo was contentious. It heard it was about personalities.

cwebber2: Was it about different stack type of argument? We might be able to keep things pretty happy

<ben_thatmustbeme> i think the collaboration we are getting between the different communities is actually one of the really great reasons to keep the WG going

Tantek: I agree we were underrepresented. We got a lot of folks that were not involved with the WG but were strongly objecting.

rhiaro: I remember the meeting going better than expected. There was debate but I didn't see anyone was particularly aggressive.

eprodrom: On a practical level on extending a Charting. I think we'll lose Arnaud and James Snell. They've said that. It would be a different kind of chartering process.

Sandro: usually you see the large industry players show up and you know you're in good shape. We had Sam Goto

eprodrom: We've drifted..if we get documents to CR, I'm not sure we have a burning purpose for this group beyond that. If we do have a purpose, we might want to identify that. Webextensions? additional vocabularies?

Tantek: If we want to extend we need a new charter with new work items, We need that to be prepared in advance. If it 's not clear by Sept. We can't really justify a renewal, but if there is a list we should go for it. I think there will be a need sooner rather than later for Vouch.

eprodrom: What about a situation where Micropub has been going through implementations, changes, exciting, but we need more time?

Tantek: We'd ask for a 3 months extension, not a Charter renewal. It might go to AC, but it's less contentious. The point is to let the group wrap something up.

eprodrom: the outcome ....let's talk about IG.

<aaronpk> http://www.decentralizedweb.net/

Tatek: one last thing about the prospect of change...the two days after this meeting is a Decentralized Web Summit, Tim is also attending, in addition to Vint Cerf. I could see some critical mass coming out of that, though it's unpredictable. The probably goes up with the profiles of the poeple attending. I'll be there. Sandro will be there. It's not W3C. It's being hosted by the Internet Archive.

<eprodrom> http://www.decentralizedweb.net/

We moved this meeting so it wouldn't conflict.

eprodrom: I'll try to attend one day

cwebber2: I'd have to rebook flights... I'll have to see

<sandro> https://www.w3.org/2016/04/blockchain-workshop/

Tantek: W3C is hosting a blockchain workshop at MIT

eprodrom: Bitmessage...microblogging over the blockchain.
... Blockchain is very unwebby.

Tantek: who knows what can happen over the next two days.

<KevinMarks> There is a "builders day" tomorrow before the public day weds

Sandro: my point was about industry participation. It used to be Microsoft ruled the world..then we got around the internet...I was expecting people to team up against Facebook....Google seems like the obvious candidate, but they have internal conflicts.

eprodrom: Google Buzz covered AS and PuSH pretty well.

<rhiaro> scribe: rhiaro

<tantek> KevinMarks are you going to the builders day?

Lloyd_Fassett: I spoke with AnnB, she thinks we'll close the IG as I was the only one who responded about who wants to keep going
... I expect something formal will come from her

sandro: the IG is shutting down. Turning into a CG?

Lloyd_Fassett: Yes
... I think the purpose of the next two days is to comment about wrapping up the IG's input into the process
... It does have some indication of things that could help for a new charter
... Particularly recent comments about MS to internet to facebook, are we building something that can challenge facebook? THe w3c is largely still being directed by large industry players, but I think the social web is about challenging what industry does and hwo they make their revenue
... I think there's a core conflict that would be hard to overcome
... I haven't thought about the distributed web as strongly as tantek, but there might be a really good opportunity to look for something for this group to coalesce around for distributed web standards
... For the two years I've been involved, I'm coming at this as an entrepreneur figuring out decentralised collaboration
... This group felt more like social networking
... I'm trying to build something that changes a function, a process
... So for me, if IBM is only going to do it if it's in their interest, or google, they've moved to just defending revenue streams
... That's in conflict with enabling individuals to collaborate

<KevinMarks> Yes, I'm going to builders day tomorrow. Will record what I can (not sure if Chatham House Rules)

Lloyd_Fassett: The thing about the decentralised summit.. maybe the people there and their interests, can further move what this work has been

<sandro> maybe a Decentralized Web Applications Working Group :-)

Lloyd_Fassett: Just hard to get people who want to fund it and put time in when there isn't some revenue stream
... The things that are of interest to me are trying to figure out ways to crowdsource and standardise vocabularies
... The decentralised web is decentralising the way industries are set up
... It's gonna be somewhat hard to find interest
... I think if we reach out to people that have objectives to do something like that
... There's a better chance of getting things adopted and better used
... There's a lot to unpack
... THe subtext is that the IG didn't contribute a lot. We did put forward use cases that were specifically about collaboration
... My personal industry is healthcare recruiting, but that's a figment. The asparagus seller use case is the same thing
... that's very different than tagging people in a picture
... However, very impressed to see the implementations from the IndieWeb these past few days
... Those types of things can be a good step towards doing something that's about making processes more efficient
... and enabling individuals
... but the whole thing about enabling individuals, the decentralised web is about decentralising the power of big businesses
... The w3c is being directed by members who are not so jiggy with that

eprodrom: When we were chartered we had this continuation of the open social concept, a backbone within enterprise, you could buy these social applications from different vendors and they would all work together
... You could swap out backbones and they'd still work together
... I think the combination of the fact we haven't had a lot of participation from opensocial implementors so that voice has not been brought out here
... This might be a little bit predictiony, but my idea is that social within enterprise has changed from the activity stream model to more along the conversation format that you see in say a slack or a hipchat
... We're seeing a sea change in the enterprise use of social from streams to chat
... Which has made that story of having applications that run in the stream work together less compelling
... All of which is to say that I think the story that we had about developing business cases from the IG at the chartering time has reflected that world
... I don't think it's necessarily our job to force the hand of anyone to change that
... We can't necessarily whip up enthusiasm if it's not there

Lloyd_Fassett: I think a part of coming in to the whole process a couple of years ago is an innovation period
... The best process when something has been incubated from the outside and then brought to w3c
... Probably a lot of people in the world they would like to share and have standardised so it can gain adoption. Maybe more outreach could be a useful thing

tantek: I expect a bunch of us will be trying to do outreach the next couple of days after the f2f
... sandro, rhiaro, kevinmarks, eprodrom for a day, me, we're all pretty active
... If we're all talking to people

Lloyd_Fassett: I think there's a real need for that
... If there's non-large-compnay interest in doing some decentralisesd web
... I just want to direct it towards a use case in collaboration, crowdsourcing
... If we can standardise crowdsourced information in a way that it can be reused
... Something that enables people to solve a problem for less cost or allows you to aggregate more information

tantek: may just be a problem space that's more social, political and economic than it is technical
... It may be a space where a technical solution no matter how awesome won't work and you end up siloing that information however
... like wikipedia

sandro: a lot of people think of wikipedia as highly decentralised

tantek: ?!

sandro: in a technical sense it's not
... but distributed control. eg. compared to Britannica it's radically more decentralised
... I've seen wikipedia used as an example of decentralisation

eprodrom: We have got to our limit for this topic
... Do we have action items from this discussion?
... Seems that we have at least an expectation that we'll be putting into SWP future directions
... Are there other concrete actions that we have coming out of this discussion?

tantek: the one new thing is to suggest that for those who think we're going to want to recharter in december that any time between now and december would be a great time to be incubating things that you would expec tto put into the charter
... If you look at the charter now, written 2/3 years ago, what actually came of the group was something that was mentioned explicitly in the charter
... For the most part what we've produced is stuff that was mentioned by name
... So looking forward I would expect a future charter to succeed based on explicit things named in that
... So anyone who wants to put things there should start incubating asap

eprodrom: would it make sense for us to collaboratively produce a next charter?

sandro: that is commonly done

eprodrom: if we were to recharter, this is what we think it would be like
... We don't necessarily take that forward, but if we put that together

tantek: we could block out time at september tpac
... half or full day on rechartering

sandro: my concern is we have to actually talk to people who might want to sign on
... If it's just us we're not going to have enough people

eprodrom: but if we have one that *we* don't want to sign on for, it's unlikely we can convince anyone else

tantek: our f2f is after the plenary, thu-fri
... if we can plan on doing a breakout session at tpac that's a place where we can float potential charter items to a broader set of people

sandro: I'd like to understand whether we're trying to appeal to people as individuals with political and moral stances, or more traditional w3c space appeal to business and what makes good business sense
... Making this stuff make good business sense is pretty hard to do
... open social did it for a little while, but we seem to have not been able to tell that story
... facebook has not turned into an existential threat for others

tantek: times are not desperate enough

Lloyd_Fassett: I think there's a conflict between being driven towards businesses vs being driven towards individuals
... Some more methodological way of finding people might help
... I think a recharter would be more exciting if it included some data
... a lot of the work here is social first
... but I don't have magic bullets for that
... maybe something will come up ath the decentralised web summit about that
... there are people who have a lot of battle scars from semantic web which was data-first

eprodrom: We're past time, but I'd like to amend our agenda so we do implementation updates starting at 11 then half hour for SWP then possibly more this afternoon
... And we can take a 15 minute break before 11. Whatever time we save before 11 can be a break
... I mentioned earlier that social interactions within enterprises has been moving towards conversation/chat oriented. Slack is the leader here
... is there a place for us in providing specifications around that?

sandro: the bizarre thing there is that what does slack do that irc doesn't?

various: a lot

cwebber2: the main thing is an interface that makes it really friendly
... integration with contacts

<ben_thatmustbeme> it looks pretty

aaronpk: the main thing it does is run everywhere, which is not to be undervalued
... The only reason slack works is because slack the company built all for the apps. If it were a standard anyone could build apps on any platforms

tantek: irc is too shitty a standard for a healthy app ecosystem to exist

aaronpk: slack went beyond a provides webhooks to get more

<ben_thatmustbeme> very very easy set up too

aaronpk: irc bots are a hack on top of irc
... slack has it built in

cwebber2: if we used xmpp multi-user chat from a standards perspective is phenomenally written
... but the clients are terrible

eprodrom: a poor developer experience too

cwebber2: it's a library thing and things like that
... the standard is actually quite good

aaronpk: So many more people write slack integrations. I think that's a measure of success

cwebber2: if slack had used xmpp multi user chat, I don't think the standard is the thing, it's pouring billions of dollars into UI

aaronpk: if xmpp multi user chat had as simple interface as slack it would be as used

eprodrom: if we wanted to chase the trendiest thing..

sandro: we need a blockchain slack.

eprodrom: conversational interfaces

<tantek> no

aaronpk: irc protocol is being actively worked on

<tantek> no Slack is not a member of W3C

<ben_thatmustbeme> thats a shame

aaronpk: doing things like adding proper identity

eprodrom: this would be a stretch, though it would be fun, a stretch for what we're doing
... but maybe something to consider
... may be worthwhile for us to think about in terms of is it something that membership would want to happen
... That said, big effort to do

sandro: depends if they view slack as being sufficiently evil
... as long as everyone is okay using slack, they don't need to standardise in that space
... all the businesses building their business around slack seem comfortable with that

tantek: we have seen with the examples of twitter and facebook there have been tons of business that have been built around either one of those, and ther ehas been a slow attrition of tightening apis, cutting off, etc

sandro: all the media companies that are built around twitter don't feel threatened or endangered by twitter
... if its started to be an unreliable or evil utility they would want some open replacement

eprodrom: I feel like we've covered the issue of where we stand today, what we're doing over the next 6 months, and what future directions would be
... We have some action items to look towards doing a draft charter at the next f2f, that we have some expectations of what will go into SWP, as well as some urgency to move the documents we have along as fast as we possibly can. And implementations
... Anything else we need to talk about in terms of strategy for the WG?

<aaronpk> here's the IRC v3 working group http://ircv3.net/

tantek: If you want something in a charter renewal, an item, scope or deliverable, you need to be incubating it today and be prepared to present it at a breakout session at tpac

eprodrom: break until 11am
... 12 minutes. Then reconvene for demos

ActivityPub demo

eprodrom: We might go over and move SWP until later

rhiaro: I dump all my photos on my server
... this is activitypub updates
... curl with activitystreams+json of my /food to get AS2 list of photos
... on this server (a DO droplet) I made endpoint that accepted update activity
... no real auth
... made publishing app running on another server
... I can edit stuff about photos, name, date, tags
... it just does AS2 updates
... last f2f I demoed create
... showing again
... four clients that do creates
... food logger
... uses AS2 extensions in my namespace
... check-ins
... tracking purchases
... I take a photo, scp it to my server, then it appears in this collection
... events + travel plans ---- as events, arrives
... travel activity
... with in-reply-to it's an rsvp
... that's it for as2

Lloyd_Fassett: Are you signalling that it's an RSVP

rhiaro: using webmention
... shows up indieweb summit rsvp's list
... microformats, turtle, AS2

eprodrom: questions!
... feeds? you seem to post things in different feeds. Do you have an amy-everything?
... I think that's in AP. A Feed Of Me

rhiaro: I used to.
... My home page is page by month, but it excludes checkins, purchases. It drops things with explicit types.

sandro: every feed is both human-readable HTML + any data feed

rhiaro: Yes. All con-neg. This is all super simple PHP

eprodrom: Some of this stuff is personal. You've chosen to make it public. When I'm publishing, I publish some things only to some audiences.

rhiaro: I use "to" for targetting, but not currently for access control
... could have a /to-me page if you're logged in with indieauth

tantek: This is an amazing accomplishment. I like how you've thought through and combined elements, and you've made it look nice

rhiaro: explanation of microformats + AS2 magic
... All of this is blogged about

cwebber2: Nice to see something done on an individual basis

rhiaro: Very much doing it because I wanted it

cwebber2: inspiring :-)

eprodrom: Images on flickr, blogs on wp, ... separate feeds. could/should we have multiple feeds?

cwebber2: stream property, in last meeting
... plugin for blog.... turned out a bit problematic

rhiaro: I want to publish things in separate feeds

<KevinMarks_> classically activity streams have a query api

<ben_thatmustbeme> rhiaro, i'm having a hard time getting the AS format

sandro: having separate feeds is nicely more efficient for rare items

<ben_thatmustbeme> tried curl -H "Accept: application/activity+json" http://rhiaro.co.uk/

rhiaro: This is just client-to-server updates.
... Completely different from subscription

cwebber2: Should AP be two separate specs, c-s and s-s ?
... Or at least clearly separated.

rhiaro: Push should be different

eprodrom: What you did was create a rich set of client-server apps
... Probably after the first one they were pretty easy

rhiaro: Yes, I made burrow first then copied & modified
... Apps auth with indieauth

eprodrom: So you've really addressed client-server, and you have some server-to-server in json-out.
... so I could implement a pull-based s-s to see what amy's been eating, but you don't have the push mechanism that we have AP
... strong use case

rhiaro: At least F2F we talked about negotiating push-pull model

sandro: How does this connect with implementation report

rhiaro: I ran it against as2.rocks, and I can list features

eprodrom: How did we not do an implementation report template? Oops!

aaronpk: You can copy what I did with webmention

tantek: We should have this ready for the CR transition call

sandro: What about testing consumers?

rhiaro: My consumer is mostly blind, but it knows an update is an update, and the obtainium album is built off AS2

eprodrom: Nice to list extensions, too

sandro: Can we put this feed data in the sample feeds repo?

rhiaro: Yes

tantek: the way you're using AS1 in the AS2 feed is important to note, for people doing the transition.
... rhiaro can you also try doing an implementation report of webmention?

rhiaro: I don't have a current implementation, I'm using other products (webmention.io and telegraph)

Webmention tests demo

aaronpk: With webmention.rocks
... I've had for a while tests on your ability to send wms
... now there's incomplete support for testing your ability to receive wms
... I went through the spec and turned it into check boxes
... you can self-report everything
... login with indieauth
... demo test post
... demo in wm.rocks
... in browser
... it makes a comment on my post
... but only because I'm signed in
... on the same host
... testing that you reject invalid webmentions

<ben_thatmustbeme> huh, the second test i fail because i queue everything and actually respond with 449

aaronpk: Receiving and Request Verifications

sandro: what happens when someone clicks check boxed?

<tantek> ben_thatmustbeme, interesting, that may highlight a place where the spec should be updated to explicitly allow for the Vouch extension

aaronpk: Really you submit the markdown

<ben_thatmustbeme> well presumably thats in the vouch spec

aaronpk: update via pull request

<ben_thatmustbeme> but a good question for aaronpk

aaronpk: I'll add a sentence encouraging Submit Early Submit Often

tantek: Nice, new

<ben_thatmustbeme> aaronpk, you'll mail them to me?

aaronpk: I make stickers for people who pass at least one test

Demo of Micropub

aaronpk: last F2F we talked about media endpoints
... because the create JSON section, there's no clear way to sent JPEG data.
... you could do form encoding, but no standard way to do that with json
... so a media endpoint helps solve that

<ben_thatmustbeme> this is how twitter does it as well correct?

<tantek> I was just going to ask about that

aaronpk: you sent a form-encoded file-upload with your jpeg to the media endpoint; it returns the URL of the new media resource.
... then when you're posting micropub, you can just use that URL

<Zakim> sandro, you wanted to ask about testing

aaronpk: implications on UI side

sandro: so the endpoints COULD be the same if you want?

aaronpk: sure

tantek: All the research of proprietary APIs led to this

aaronpk: Here's Quill, showing how I add a photo
... Quill posted the photo to my endpoint, then showed it in this HTML

<ben_thatmustbeme> aaronpk++

<Loqi> aaronpk has 159 karma

aaronpk: so when we publish, it's just a little json, the photos are already elsewhere

<tantek> is it a little json? or is it a form encoded response?

sandro: if you don't post blog?

aaronpk: twitter's media endpoint deletes items if they don't appear in a tweet
... but that standard doesn't need to know

sandro: is there a security consideration that the URLs be unguessable?

aaronpk: probably should be. But they can be emphemeral.
... In my case my micropub endpoint copied the media from the media server!
... The only reason we'd want this spec'd is if there are commercial media endpoints, eg on S3

<ben_thatmustbeme> aaronpk, are you posting html to your endpoint then, since you included multiple images in place in the post?

sandro: This is in micropub spec now?

aaronpk: In discovery -- you GET on the micropub endpoint to find the media endpoint

tantek: In the second request, the complete post one, is that JSON encoded or form encoded or what?

aaronpk: Quill posts form encoded, I think, but they're equivalent

<ben_thatmustbeme> ahhh, okay

aaronpk: Another use of media endpoint, app to post food photos
... slightly more visible

sandro: You could use the sha for the media endpoint? that might be nice?

aaronpk: yes, sure

tantek: Upload a big media file?

sandro: I don't think HTTP has any kind of partial/continuing uploads. youtube doesn't seem to have such a thing.

<KevinMarks_> ftp allows resume

JS + https://developer.mozilla.org/en-US/docs/Using_files_from_web_applications

<KevinMarks_> curl seems to support resume https://curl.haxx.se/libcurl/c/CURLOPT_RESUME_FROM_LARGE.html

<KevinMarks_> maybe thats ftp only?

aaronpk: bookmarks with screenshots, using micropub to make it a separate app

<tantek> right, wondering what the HTTP equivalent is

<tantek> (to resume)

just use xhr, imho

or websockets :)

<ben_thatmustbeme> I plan to support it with mobilepub

sandro: any other micropub impls?

<ben_thatmustbeme> the media endpoint that is

aaronpk: Some, but without support for media endpoint

<KevinMarks_> i think you'd have to use PUT to resume as POST doesn't let you set target URL

I don't think PUT supports ranges. So you'd need PATCH. Or a custom POST-chunks protocol.

<tantek> also demo'd 2016.indieweb.org, RSVPs from 24 independent sites, sent via webmention, nearly that many different implementations, though some may have been sent by curl

<ben_thatmustbeme> rhiaro, I tried curl -H "Accept: application/activity+json" http://rhiaro.co.uk/

<ben_thatmustbeme> but i didn't get anything

<ben_thatmustbeme> or rather, i got html

<eprodrom> Wow, I should make sure not to do any Risky Business dancing

<rhiaro> ben_thatmustbeme: yeah my main site is dodgy

<rhiaro> img.amy.gy should be stable

<ben_thatmustbeme> i'm here

<KevinMarks2> Yes, I think that refers to a very different draft

<tantek> chair:tantek

<tantek> scribe:cwebber2

AS2 implementation - WordPress plugin

eprodrom: so one of the implementations that hasn't come out of this group from AS2 is the wordpress implementation which came up a few telecons ago
... since then I've looked into it and put it onto the blog for my company fuzzy.io
... and you can see the as2 format here
... in general looking over implementation there are strong points, is almost painless to roll out form in wordpress
... there are some downsides, looking at validation report it says "object does not have a type property"
... there are basically a lot of funky as1-isms, for example generator and provider are properties in as1 that aren't in as2
... that said, there are some good parts; it's relatively complete in handling actors, objects, targets
... one last thing is that there's type and id properties @-prefixed, which we took out relatively early on in as2
... but we've seen at least one other implementation that had a similar problem
... so I think it will come down to supporting that in validation. To be honest, my json-ld foo is not strong enough to know if our alias is defined

cwebber2: (and rhiaro:) yeah it's fine (sorta)

eprodrom: there's some great wordpress blogs out there, maybe if we can get some review from some of them, it might be a nice next step to get on w3c blog and etc

<ben_thatmustbeme> eprodrom, out of curiosity, who wrote this implementation? is this just the as1 plugin writers extended it to as2?

sandro: it would be great if there was some consumer that only consumed as2

tantek: not sure that's a fair criteria to apply

sandro: I mostly need to justify to w3c team

<tantek> pfefferle

eprodrom: ben asked who wrote it, it's Matthais Pfefferle
... he's done a number of other distributed social network efforts; think he worked on friendica / diaspora
... having this version is good

<ben_thatmustbeme> cool

<aaronpk> he also wrote the wordpress webmention plugin

tantek: matthias is great
... has written many distributed social web things

eprodrom: yeah so hopefully if we can keep that momentum going, it'd be really good
... there are a couple of things from us, at least from a specification standpoint, do we need for someone who has an as1 implementation, what can we do to let them upgrade to as2
... since this is an example of someone who's done that who hasn't been in these discussions, would be good to see what "mistakes" he's made, etc
... so @-prefix properties, default type, one object has name one has display name...
... he also grabbed a schema.org type for the blog itself because we don't have one in as2
... but I was happy to see it up there, it helped me put an as2 feed up for my company
... any other questions?
... I'm happy with it, next actions will be to look at what was tricky for him and submit pull requests

sandro: I hope writing will be kind of trivial once you know both sides of the interface

eprodrom: to be fair, wordpress has a pretty reasonable feed mechanism built in
... so 36k? not a lot of code, and that contains l10n stuff
... thank you!

<eprodrom> https://wordpress.org/plugins/activitystream-extension/

<eprodrom> http://blog.fuzzy.io/feed/as2

tantek: as we get into CR, that's a question we'll keep asking

eprodrom: I think my strategy will be see what those implementations are...

sandro: for this use case where it's kind of just doing the same thing as RSS, would it make sense to have consuming libraries that take rss / atom / etc and give you as2 out

tantek: I guess I'd like to ask that question generally, what's the external implementation status for webmention?

aaronpk: I have not received any implementation reports

tantek: we knew 27 implementations when we went to CR, any changes?

aaronpk: not that I know of

sandro: most of them were not all of webmention

aaronpk: I think many were just senders and not receivers

sandro: maybe good to pick high profile ones and get them to (?)

tantek: I think that's good encouragement from sandro, and figure out what's the gap between you ran webmention.rocks, but haven't filled out implementation report

eprodrom: what we decided to do for as2 test suite is two things, one is a validator, which for publishers is the "test" mechanism. for consumers we have a test suite of sample documents, served off of github, or you can download them and read them off the filesystem, and that's the level we went for in terms of as2
... as we see more implementations we see more edge cases where we see this does/doesn't work, etc

aaronpk: for those, can you consider them complete implementations of the specs?

eprodrom: let me try the consumer side first, since seed of test repo was the document itself, I would say that yes, that's the case, however... not all variations of the different types are fully there
... for example, let's say adding a photo to a collection. We don't have examples of adding a video to a collection, a blogpost, a collection to a collection, etc
... if we were going to unit test this to make it bullet proof, we don't quite have that, and we don't have a lot of the sociopathic examples of adding a person to themselves, etc
... but I think at least we have a few hundred documents in there

sandro: I was unable to find that collection, the spec links to as2rocks for testing, but maybe there can be a link to examples for consumers

eprodrom: good idea

tantek: we're jumping into social web protocols now

rhiaro: should I give a rundown?

Social Web Protocols

<rhiaro> http://w3.org/tr/social-web-protocols

<rhiaro> https://github.com/w3c-social/social-web-protocols/issues

tantek: I realize document status is semi-automatic?

rhiaro: it's completely automatic

tantek: maybe in overview text might indicate our general intent

rhiaro: third paragraph of 1.1

tantek: oh ok

rhiaro: might be that if we produce some normative text to do you must use this spec in these circumstances, must use this in these circumstances

tantek: I greatly appreciate this update

rhiaro: the main thing is I need to see if there are major things missing from the specs, and where there are missing things in specs I've put a red box

<tantek> PuSH needs an explicit entry in references

rhiaro: I see two ways there's subscribing
... the issue is the wg doesn't have a coherent story on subscriptions

<ben_thatmustbeme> cleaning_up_PuSH++

<Loqi> cleaning_up_PuSH has 1 karma

tantek: a general feedback is any issues in this spec is worth raising github issues
... maybe link to those specs

eprodrom: most general purpose protocols don't handle distribution to groups, eg posting to just friends and family, etc
... there's a mechanism for doing that in activitypub, and it's not something that pubsubhubbub handles
... there are tricks to doing it with different feeds, eg a friends feed, but that can get tricky when you say only send this to Sandro and the public

aaronpk: I'm not sure it's fair to say that it's tricky there and not in activitypub

eprodrom: in activitypub situation it's a subscribe thing

aaronpk: you've moved the burden

eprodrom: yes now on publisher side not subscriber side
... was one of the things that was a big deal for ostatus, which was a problem because it only supported one feed
... only stuff that was 100% public went out on pubsubhubbub

rhiaro: we diagrammed things to separate out push and pull
... so you don't have to support people subscribing to you when pushing out to get your content
... the algorithm is my server tells your server hey amy wants to subscribe, you say yes from now on I push to you, or your server can say no i don't support that, keep polling

<tantek> Suggest renaming 1.2 to Social Web Working Group Documents

rhiaro: so it allows flexibility

<tantek> and moving Post Type Discovery [ED] to that

eprodrom: also a scaling issue

rhiaro: that's something I don't know anything about

<tantek> and third add PubsubHubbub explicitly to 1.3

rhiaro: but for me it's separation of concerns

eprodrom: the only problem with polling, it's great in a lot of ways in that you can do kind of lighter-weight servers etc, but you can imagine two servers with 1000 servers, and now you have one million possible relationships, and with all that polling you could shut that down with all those polls

rhiaro: in this scenario no server has to support poll and no server has to support push

tantek: is that something you want to describe in section 4

rhiaro: if we have a spec that has these 2 options then yes

tantek: you have specs that do *one* of those options

rhiaro: if we as a group can figure out a story about that

tantek: that sounds like AP only,. so I'd say for your document
... well yes it has an opinion, and your specification can say push vs pull

eprodrom: if I'm not mistaken aaronpk, you do a poll to pull things right?

aaronpk: also pubsubhubbub
... and kyle wrote woodwind, which uses pubsubhubbub if it has it

eprodrom: and it uses rss with woodwind (?)

<eprodrom> scribe: eprodrom

cwebber2: one of the things when we wrote out the whiteboard for subscription we thought we would need two separate terms

rhiaro: We had an amended version of that whiteboard process
... issue 80

<rhiaro> https://github.com/w3c-social/activitypub/issues/80

rhiaro: this version has an advantage of having fewer verbs

cwebber2: will be reviewing during break time

<cwebber2> scribe: cwebber2

tantek: first, anyone else have input for Amy?
... I think all spec editors want to read and see if this correctly summarizes features of specs
... and if not maybe you want to see if it gets more readable in those areas as well as update social web protocols

rhiaro: also I have bullet points to compare
... like you have to use json or don't use json
... I can drop a link to the issues on irc

paul: you should put it in the document

<rhiaro> https://github.com/w3c-social/social-web-protocols/issues

<Zakim> tantek, you wanted to make 3 requests for Social Web protocols http://socialwg.indiewebcamp.com/irc/social/2016-06-06#t1465248057089

tantek: I think we should explicitly add pubsubhubbub to 1.3
... specifically asking for post type discovery to be added to 1.2

<tantek> https://www.w3.org/TR/social-web-protocols/#profiles

rhiaro: there's a big hole in profiles, we haven't worked on that, but we should at least give a story about why

tantek: I like both how your document is working on both the stuff that's happening in the wg and things that are outside
... I think it doesn't need to turn into the wikipedia article of social web protocols, which is a massive mess

rhiaro: it's good to have an archive of that

tantek: yes, but that's not this

<eprodrom> scribe: eprodrom

<cwebber2> http://dustycloud.org/tmp/activitypub_wd_2016-06-02.html

ActivityPub

cwebber2: I have the token necessary to publish on Echidna

Not as much to talk about as implementation for AP

cwebber2: what can best be done with AP
... should we talk about issues first?

tantek: we need to have an implementation to get to CR

sandro: Not necessarily

tantek: it's a way to expose critical issues

sandro: having at least one implementation will make sure the spec is stable

cwebber2: I will add an issue and will make sure it happens

<cwebber2> https://github.com/w3c-social/activitypub/issues/85

cwebber2: micropub supports partial updates and activity pub does not

eprodrom: patch vs put

KevinMarks: patch is constrained

<aaronpk> scribe: aaronpk

eprodrom: if we were to do that we would need to have a type for properties

cwebber2: it's possibly conceptually tricky with json-ld
... if your'e thinking about saying i'm going to add these specific things or change them, but then have remove and refer to it by name, if you think about json-ld then this name might expand

eprodrom: let me propose this... if we take the update type to mean patch, make changes to the properties i'm providing and everything else stays the same
... then if the client wants to change all the properties then they send all the properties, if they want to remove a property you provide null

rhiaro: that's what my implementation does now

eprodrom: that does require the client know the state of the object on the server

rhiaro: right, you send everything you want. if there's something on the server you don't know about then you shouldn't be updating it anyway

cwebber2: the place this might break with pump.io implementations, current implementations expect full replacements. with this there is a change of expecations of clients now.

eprodrom: yes but there are also lots of other things they'll have to learn

cwebber2: so we're deciding that updates are always mutation
... to remove a value you supply null
... is there a case when null is a meaningful value?

rhiaro: what about empty strings

cwebber2: i prefer empty string to mean empty string

rhiaro: if there's a property that has multiple values, how do you remove a specific value
... i want to remove the tag "social"
... so you'd have to resubmit the new list of tags

<eprodrom> http://jsonpatch.com/

<eprodrom> https://tools.ietf.org/html/rfc6902

<Loqi> we will be breaking

<Loqi> Countdown set by tantek on 6/6/16 at 2:36pm

eprodrom: there are a couple mechanisms on this with json, such as json patch
... i think jsonpatch ground to a halt a couple years ago

tantek: is this discussed far enough to put something into the issue?

cwebber2: yes i've captured this in an issue

tantek: can we close on the discussion of this issue
... time for a break
... afternoon break until 3:30
... maybe take a few minutes to re-read social web protocols

<cwebber2> http://saraswat.org/desiderata.html

cwebber2: talk about possibly splitting the spec up

<cwebber2> https://github.com/w3c-social/activitypub/issues/79

cwebber2: we talked about this at the last meeting. there's several ways we could split it up
... probably the simplest way is to have a client-server and server-to-server spec
... maybe one of them included the possibility of including polling and the other didn't
... my main concern is that refactoring while keeping coherence with what we have now will be hard
... one of the big challenges is that right now the spec interlinks and would duplicate stuff between documents
... i'm open to hearing input on this

rhiaro: a year ago i did a first attempt at taking it apart into distinct sections
... that's still the organization in my head
... i did a PR i think
... basically the thing you say about referring back and forth between things, i reorganized it in such a way that the parts don't depend on each other
... that's my goal, is that the parts don't depend on each other

sandro: in theory that makes implementations a lot easier

rhiaro: that also means if there are 3-4 activitypub specs and we get two of those to CR that's better than nothing to CR

eprodrom: I made an illustrated diagram on our wiki at some point,

<cwebber2> https://www.w3.org/wiki/Socialwg/API/Layers

<cwebber2> https://www.w3.org/wiki/Socialwg/API/Layers

eprodrom: the idea being that there's a small amount of CRUD with activities
... and second layer of access to various feeds, these are my followers, friends, etc
... and finally a last point which is the server to server

rhiaro: for me the server to server part breaks down further
... the server to server differentiates (inspired by webmention being a tiny thing) stuff appearing in my inbox that i didn't ask for vs subscribing to things
... under the hood they may use the same mechanism, but you can have one and not the other
... they're super tied together in activitypub right now but they seem distinct to me
... the fact that we have webmention right now that doesn't involve subscriptions seems important to me

cwebber2: assuming activitypub's implementation is the same, would it still simplify things separating out things you subscribed to vs not
... if you assume the functionality is the same, then you kind of implement them all in one go right?
... they both happen where one is someone posts something to you because you hit subscribe earlier, and the other because someone just wants to post to you
... would it simplify things to break this up or not
... assuming no technical change

rhiaro: the bit that's different is how the server decides why to send something
... for me it's a big enough thing that it's a barrier to implement it. implementing webmention seems small but implementing subscribe in activitypub seems big

eprodrom: i feel like activitypub now is disproportionate in terms of how much deals with S2S
... it's a little talk about the inbox about oh by the way this is how federation works

rhiaro: notification and delivery are kind of ambiguous in the spec and it's not super clear right now

<rhiaro> https://github.com/w3c-social/activitypub/issues/76 - another issue about notifcation/delivery

eprodrom: with OStatus, there were two different mechanisms for subscriptions vs replies. salmon for replies and PuSH for subscription, it seems like in the indieweb stack that's how it works now too
... PuSH is used to subscriptions, webmention for replies

tantek: there was an early attempt by sandeep for doing subscriptions with webmentions.

<cwebber2> rhiaro: could you ack whether this captures what you were saying? https://github.com/w3c-social/activitypub/issues/79#issuecomment-224114464

tantek: the rough idea is you'd send a comment to a post, but instead you'd send a follow to a home page
... and then what they would do is send a webmention every time they post something
... there was some mechanism that didn't involve PuSH but as far as i know nobody ever implemented it

cwebber2: so in AP what those subscription verbs are really for mutating the special collections of people
... that might not be clear right now, it's not clear at what point you start blasting things out to people
... so maybe if we broke those out we could say now you've added someone to this internal list
... that makes sense to me, i wanted to talk this through to make sense of it
... so there's still a question about whether this should be one specification that has clearly separated parts or whether this should be broken into multiple documents

rhiaro: maybe this is a question for sandro about process

tantek: it allows each to proceed independently towards the rec track

cwebber2: what might be a good workflow is to break them into sections in the same spec, and maybe as a second step split them into separate documents

rhiaro: my instinct would be to write them from the ground up. rather than untangling the existing wording, write two new specs
... ActivityPub and ActivitySub

sandro: trying to make sense of this for someone who doesn't know the lingo
... activity distribution and activity server control

cwebber2: it soudns like splitting into two specs is the general plan
... but it's up to me to decide whether to start by splitting the same doc into sections or start writing two new ones immediately

<sandro> Activity Pub + Activity Federation

tantek: i don't want you to have to do 2x the overhead of work

cwebber2: anybody have anything else they were hoping to discuss about activitypub?

<cwebber2> https://github.com/w3c-social/activitypub/issues/54

cwebber2: issue 54
... a couple of people would like it to be defined how we order it
... but, a server might end up implementing ordering differently based on how the database is structured
... if a server is sorting based on updated time vs when they incrementally add things to the database
... i think it should be fine as long as it's consistent

eprodrom: unfortunately it's not something explicit within activitystreams, we do have ordered collection but it doesn't specify how items are ordered
... if i were looking at a collection in activitypub i wouldn't know how it's ordered
... i'll be honest, for some of the collections like following/follower it might not be a big deal. but for inbox/outbox i would be surprised to do it any way other than reverse chronological by published
... i just contradicted myself. the world of feeds is not reverse chronological, e.g. facebook and twitter are moving towards ordering by relevance

tantek: we ran into a non-reverse-chron use case at IWC Düsseldorf, which i think we ran into in this group earlier, which is tombstones
... you bubble up a tombstone back up in a feed when you want readers to delete old posts

cwebber2: pump.io had a requirement that you could say i want everything since this post
... .but that functionality doesn't require a specific order, just since this thing

tantek: is that "since" created since or updated since?

cwebber2: imagine you have a client and you logged in yesterday and you have a local cache of the objects, and you log in again, and you want just the objects that have been added to the collection since this one

eprodrom: one of the things that happens with naive paging within collections is you say here are the first 20 elements, and the next request is show me the next 20. if any new items have come into the collection you would skip some
... the idea is you start with the bottom of what you have and show everything starting from there

tantek: i have another exception. facebook in the primary feed for a group, bubbles things to the top based on most recently commented on

cwebber2: it seems that there's a difference between ordered collections and unordered collections

tantek: there is an order, but it's just not about the post

cwebber2: the activitystreams vocab has the right terminology here
... the ordered collection says that it's always strictly ordered but doesn't say by what
... i'm going to be focusing the next many months on getting implementations of activitypub. i originally didn't think we were going to fill up this whole time.
... currently 21 open issues, most have resolutions just need to be done now

tantek: i'm going to encourage you to keep the momentum going with resolving issues

BREAK

<cwebber2> KEARB

<cwebber2> scribe: cwebber2

<aaronpk> https://github.com/aaronpk/Micropub/issues/24

Micropub

<eprodrom> https://en.wikipedia.org/wiki/Micropub

aaronpk: 24 is something someone has noticed which is that because the expectation was that all values would be arrays, but the spec didn't say that
... so the question is that whether it should be explicit that in the json format that all values MUST be arrays

sandro: or never

aaronpk: well if there's a single value, should it still be an array, that's the same way the microformats json works

sandro: I guess for when the values are only single

aaronpk: but the spec doesn't know
... so that would mean that the form encoding is a special case?

sandro: so this is a hack syntax?

aaronpk: this is the oldschool php hack that has since been adopted nearly everywhere

sandro: and how are the values...

aaronpk: there's only one value there, and you could do "and bracket bracket"

sandro: technically in formencoding you don't need the bracket bracket

aaronpk: technically not but implementations...
... so in json you just have arrays, so I think it's the simplest story

sandro: that's the general correspondence between formencoding and json

aaronpk: so we agree, add...
... explicit text that says values must be arrays in the JSON, that takes care of that one

<aaronpk> https://github.com/aaronpk/Micropub/issues/23

aaronpk: next issue is 23, I think the next simplest, came up when reviewing an implementation of a client
... this was for editing posts, the client loads up the values from a post, it assumed it would include the URLs from the posts
... in order to get that the client needed the URL already, but the way the client was written it assumed it already knew the URL

sandro: and so the server and clients may have different expectations

aaronpk: well for example the slug can be anything, so someone can load a url that could be a redirect
... if the server does get the wrong url of this post

sandro: basically a canonical url...

aaronpk: the question is when querying for the raw content of the post, should posts include the canonical URL?

https://github.com/w3c-social/activitypub/issues/83

cwebber2: did you file this bug because it's mostly the same?

aaronpk: it's different, this is if update *causes* url to change

tantek: if this is like a slug changing?

aaronpk: yes

cwebber2: the pump.io philosophy is that you have a separate id that doesn't change and a url (which might be the same thing) which might change
... though that may not be the same philosophy

aaronpk: yeah.

sandro: so occasionally I've written servers that don't know what the url is until (...?)

aaronpk: so if it's not required that the url is on the response, then it's on the responsibility of the client to remember what the url was

sandro: I think that's less likely to result in some weird error

Loqi, time for you to run the meeting

aaronpk: I'm totally fine with not making it a requirement

sandro: I have no idea because I haven't implementing it but my gut is to not make it a requirement

aaronpk: I think that's how my clients have worked so let's go with that

<aaronpk> https://github.com/aaronpk/Micropub/issues/22

aaronpk: a while ago I had it use the activitypub type syntax for updates, started working on a draft for that, but the problem I ran into is that there was no way for it to specify partial updates
... that may have just changed
... but it didn't have a way to just add one value to a property
... or remove a value from a property

cwebber2: and it probably won't have that part

aaronpk: correct

sandro: and why do you need to do that? it's not very big

aaronpk: well this is so you can avoid update order concerns with atomic updates

sandro: why not just replace the whole post

aaronpk: I don't ever want to require replacing the whole post, because I don't trust clients to replace with a full fidelity version
... so I don't want to trust that apps preserve the full content and post it back
... so a great example is a server adds screenshots to my bookmarks
... I assume someone wants to add screenshots to my bookmarks, I don't want them to preserve my publish date and all the tags I've added...

sandro: to me it seems reasonable, they can be malicious if they want to

tantek: why raise the responsibility if they don't need to

sandro: GET and PUT is simpler than PATCH

aaronpk: well I did do an example in a weekend because it was simpler

sandro: why not use HTTP PATCH to the rest of the page

tantek: in http verbs you're talking about *the* resource

aaronpk: the way this actually works, my app quill can add publish date and location of where I am, sets the timezone of the publish date properly, so now when I add a photo I can't imagine there's any reason to require that the app adding a photo also know about all the specifics about the rest of this post

sandro: in my mind, because this is years of argument in LDP
... you do POST to create it, and then you do a GET to post back the entire content
... and you only PUT it back if someone changes things

s/PUT/PATCH/ (???)

eprodrom: so if you provided a PATCH which had the full content, that would be equivalent to a PUT with full content

sandro: if it's a json overlay, putting what you put the full content doesn't delete the things you don't know about

eprodrom: yes you need a way to do property: NULL or something

aaronpk: so this isn't the original issue
... this came up because micropub does now support partial updates in its own way, via POST
... it's more RPC style
... but the original issue was to use the ActivityPub syntax for that, or to do what's already there which has been implemented by people not me
... but the question is about whether partial updates is important comes up later

eprodrom: if I can maybe specifically talk to the activitypub issue, that we thought there would be value in having overlap here, but if there's not value maybe close it saying "it could have been helpful, it turns out to not be helpful"

aaronpk: but I think that the original view could be that they have the same document

rhiaro: well in the recent discussion we talked about UPDATE updating only parts, except that adding/removing values to sets

aaronpk: I'm kind of on the same page with that but not 100% sold
... it does let me with the bookmark thing it can just add a photo

rhiaro: and what happens if you just add the photo

sandro: if you just use RDF instead of json it wouldn't have this problem

rhiaro: so it's not like there's mysterious stuff this client doesn't know about

tantek: I feel like there's a real world oauth type assumption here we're not taking into account
... which is that clients like on Flickr allow people to tag other peoples' stuff but not add/delete tags

sandro: in this particular case it doesn't actually conflict because it's up to the server

aaronpk: but it makes it more complicated on the server... tantek's on the right track in saying that if we add the ability to *just add* something

<rhiaro> scribe: rhiaro

cwebber2: whether or not activitypub should have the ability to add or remove things from a set on an individual level, eg. tags
... Currenly you write a comma separated list and the server breaks it up. So in the user interface it'sa ll at once update and remove
... Maybe it could be useful
... We don't do things that way right now
... But there is a question about whether or not this is tricky to do in json-ld
... Earlier, adding and removing something from a field, how would you model it?
... What woulld it look like in the AP syntax?

<cwebber2> {"addToField": {"prop": "tags", "val": ["gorilla", "pics"]}}

cwebber2: in json-ld the context won't expand out the property of the tags

eprodrom: does AP having it help micropub?

cwebber2: ... I think it's okay to move forward with these separately
... I understand the reasoning for both

aaronpk: Proposed resolution is to not adopt AP syntax for updates and deletes
... and to keep current micropub syntax

PROPOSED: Close issue #22 without changes. Use current micropub syntax and not adopt AS2 syntax

<eprodrom> +1

<aaronpk> +1

<tantek> +1

<sandro> +0 (very mixed)

<rhiaro> +0 what sandro said

<cwebber2> +1

tantek: I would encourage you to try to interoperate, even if it's informative and non-normative

cwebber2: I agree
... I want to test it before saying yes or not to anything

RESOLUTION: Close issue #22 without changes. Use current micropub syntax and not adopt AS2 syntax

tantek: I feel like we understand the subtleties and reservations to raise more specific issues in the future if this becomes a problem

<sandro> https://tools.ietf.org/html/rfc7396

<sandro> JSON Merge Patch

<cwebber2> sandro: JSON merge patch is the sane version of json patch

<aaronpk> https://github.com/aaronpk/Micropub/issues/25

<sandro> sandro: Maybe raise issue on activitypub and micropub about they should use PATCH + JSON-merge-patch

aaronpk: The way that the spec originally was written, if you were doing an update you could use either form-encoded or json
... See the example right now
... In both of these examples of the same update operation as form-encoded and json, the data structure if the request is the same, so you can convert between them
... However there's no actual functional benefit to form-encoded in this case
... Whereas there is a benefit to form encoded for creating, cos it's simpler. But for updates it's not simpler
... The proposal is for doing updates you must use json
... And updates are not supported in form-encoded
... It means that clients and servers don't have to handle both formats so in theory it should be easier to both because there's fewer cases to handle
... And there isn't a large benefit to using form-encoded for this anyway
... whereas if the spec allows the client to send either, the server has to support both, and will probably end up just mapping one to the other

eprodrom: There is an argument from a consistency point of view.. i've been using form-encoded for creation why should I switch to json for update? That said, if real implementors are not saying this it makes sense to me that if there are two ways to do something and everyone is doing it one way, it's not necessary to support both ways

aaronpk: I think it's also important to note that in a lot of cases a client might only create post and never intend on updating posts
... In which case it can still just create with form encoded
... So there is no burden to switch formats
... And if the client is planning o n updating posts it can use json all the way through
... So for me, cleans things up to only support json for updates on the server
... I'll go through the examples and remove all the form encoded versions
... Publishing clients is a different class of client than editing clients
... Publishing clients MUST support sending form-encoded requests and they may only publish, and never edit a posts. Whereas editing clients are going to support the full list of operations on posts, so they can just use json all the way through
... I feel like it separates those conformance classes better

eprodrom: Proposal?

tantek: any objections to as discussed?

cwebber2: none here

eprodrom: my full support

aaronpk: resolution is that editing clients don't need to support form-encoded, only json
... My current thinking with the media endpoint is that based on what I've seen with... github issues - if you drag a photo into an issue it uploads it right away and puts a url into the markdown. In these cases it seems like the url to the image is permanent, it is meant to be the actual location of the photo
... Twitter returns an id not a url
... The reason the spec should specify it is if we want to be able to have someone create a media endpoint service that clients and servers can expect to work a certain way
... You can implement your own in your micropub endpoint,t hen it becomes an implementation detail. But if we want to support stand-alone media endpoints then clients and servers need to know how it will work

sandro: isn't it only servers that need to?

aaronpk: I guess it is only the server that needs to know whether it should copy the photo or not

sandro: sounds like a possibility for future standardisation

aaronpk: So should the spec mention it? Or not?

cwebber2: if you post something and that cycle never finishes in mediagoblin, it gets garbage collected eventually
... But if you don't end up implementing it it doesn't affect the standard

sandro: clients must do media endpoint discovery? they can't just post it to the micropub endpoint? THe discovery thing concerns me. Seems like a whole complication

aaronpk: its' a different issue. I like that for clients that only want to create posts they can just post a photo to the micropub endpoint. That's still in there in the form-encoded creating
... One of the reasons for using a media endpoint at all was for user experience when you're putting multiple photos in a blog post. Also if you want to create a post with the json syntax you have to do two different posts

sandro: why not to the same endpoint?

aaronpk: the url returned is not expected to be the actual jpeg url, it's supposed to be the url of the post
... The thing being created is not the jpeg, it's the post with all the data

sandro: you could have that be a header on the post
... If you're posting certain media types you could get certain behaviour

aaronpk: I think it moves the complication to a different part of the process
... The way it's written right now, the complication is discovering the media endpoint
... Otherwise it's does the endpoint expect what kind of data
... Chris, you said media goblin does do the periodic cleanup of media never used in a post?

cwebber2: I remember tsyesika and I talking about it at some point

aaronpk: how does it know if a file is used in a post?

cwebber2: Media is specifically associated with a post in mediagoblin's case. You upload it and it ends up going through a step where it gets transformed by the processing to generate multiple resolutions of the file etc, and also associates that...
... we can talk about it tomorrow

tantek: also facebook. and instagram
... It's a pattern that we are seeing driven by better UX

sandro: in that case we want not just multipart form for upload, but you want to use javascript to send in a recoverable way

aaronpk: partial uploads are a different story

sandro: in that case you want a different protocol. ideally rsync over websockets to the server..

aaronpk: I think it's useful without going that deep into it
... Even when the upload either succeeds or fails it still provides a better experience cos when it does succeed it's great. doesn't have to support partial upload to provide a better experience
... The is this pattern that we're seeing implemented by lots of services, so it's useful to capture that in the spec and encourage implementors to also follow that pattern
... It's in the ED

tantek: you could consider adding an UX flow to support the why

aaronpk: ok

tantek: done with outstanding issues. this morning sandro asked what's left to go to CR
... We could have that discussion tomorrow morning
... Ajourned!