#social 2015-05-08

2015-05-08 UTC
bblfish, tantek, LCyrin, tilgovi, Arnaud, the_frey and shepazu_ joined the channel
#
melvster
http://indiewebify.me/ seems to be trending
#
ben_thatmustbeme
it ended up on hackernews
#
aaronpk
mostly positive response, which is surprising for hackernews
#
melvster
i think we need to come to a consensus on how following works, in order to implement swat0
#
melvster
i dont think swat0 should be an approved use case until that is known
#
melvster
or maybe split it up more
#
aaronpk
the act of following is not part of swat0 intentionally
#
melvster
well maybe this is one reason that almost no one has managed to implement it, in 5 years, let alone test interop
#
aaronpk
the story is not about following
#
aaronpk
i agree we need an approved story about following though
#
melvster
ill be interested to see what people implement when this spec goes to CR
#
ben_thatmustbeme
we should hope we get implementations long before then.
#
aaronpk
indeed
#
melvster
agree, but as I say, that's been hoped for, for 5 years already, it would be easier to do if the dependencies were also approved use cases
#
ben_thatmustbeme
its on my list of things, is to start adding m-card to my micropub endpoint, and start being able to 'follow' that way, hopefully i can use that list as input to readers *hint hint aaronpk/monocle*
#
aaronpk
also note that there is only one "following" relationship in swat0, and it's actually called "subscribed"
#
aaronpk
"Evan, who is subscribed to Dave"
#
aaronpk
which implies that Dave doesn't even need to know that Evan is subscribed to him
#
melvster
i think it would help if that was explained to implementers
#
melvster
how to do that
#
aaronpk
i think the point is that swat0 works even if the "subscribed" is something dumb like a script polls Dave's site and sends an SMS to Evan on new posts
#
melvster
or if there's another spec that describes it
#
melvster
"Evan, who is subscribed to Dave" -- i dont unambiguously know what this means
#
melvster
i would not know how to test this
#
aaronpk
i *think* that's why it's in a parenthetical
#
melvster
many of the other use cases are less ambiguous and I think could be more easily implemented
#
aaronpk
we'd have to ask tantek and evanpro about the original intent
#
aaronpk
many of the other use cases are equally ambiguous ;)
#
melvster
it's encouraging for people trying to implement the spec to start with some use cases that are more self contained, imho
#
aaronpk
yes, swat0 has always been a more advanced one
#
aaronpk
that's why it's the last one I wrote up
#
melvster
i agree, but it's still the *only* approved one at the moment, so I think it's where many people will start
#
aaronpk
nah, people will start wherever they want
#
aaronpk
or at least should ;)
#
melvster
ok, well that wasnt clear, I thought swat0 was the focus
#
melvster
why not approve other stories then?
#
aaronpk
i actually don't know what the timeline or goal is for approving other stories
#
melvster
i think it would be useful for an approved story for following to come before swat0
#
aaronpk
i agree
#
aaronpk
and several other simpler ones
#
aaronpk
yes, swat0 was by no means meant to be the simplest one, sorry if that was unclear
#
melvster
no need to apologize, it just seemed logical to start with the approved ones, because then there is a chance to test interop
#
melvster
the other ones are interesting too
#
rhiaro
cwebber2: resume
#
cwebber2
I was about to link the user story example I hacked up, and now I think I made a mistake in it :)
#
rhiaro
cwebber2: is there an example somewhere of what a republished activity looks like?
#
rhiaro
(for everyone else's context):
#
rhiaro
<rhiaro> so when A comments on B's post, A's server notifies B's server, so that B's server can propagate the activity to the receivers of the original post
#
rhiaro
<rhiaro> Does that mean B republishes the *same* activity A published, or does B make a new one?
#
rhiaro
<paroneayea> rhiaro: B publishes a new activity, referencing the old one
#
cwebber2
rhiaro: I made a mistake in my user story example, hold on I'm updating it
#
cwebber2
hilariously I included the object only, and not the activity ;p
bblfish_ joined the channel
#
cwebber2
argh I wish pypump had references to the original json objects it was passed in
#
cwebber2
and I wish Tsyesika was around :)
#
cwebber2
rhiaro: okay, so
#
cwebber2
I was about to paste you a real example of a share from pump.io
#
cwebber2
it's... amazingly verbose.
#
melvster
cwebber2: that's just a single share, or is it a bunch of stuff?
#
cwebber2
that's a single share. It repeats a lot of data.
#
cwebber2
I don't think it needs to do this for activitypump
#
cwebber2
but that's the reality in pump.io, it seems
#
aaronpk
pump.io is not AS2.0 right? i keep getting confused
#
cwebber2
it's as 1.0
#
cwebber2
I was just referencing it to see "oh, I should see what a real life example is before fixing my current example"
#
cwebber2
in the user stories doc
#
rhiaro
ohhh so I don't actually need to understand that
#
cwebber2
no you don't :)
#
rhiaro
I was just about to ask if you could break that down
#
rhiaro
but, never mind :)
#
cwebber2
I'm going to give you the actually simple version
#
rhiaro
simple++
#
Loqi
simple has 1 karma
#
rhiaro
cwebber2++
#
Loqi
cwebber2 has 30 karma
#
cwebber2
note, a lot of this is like, repeating content
#
cwebber2
where the content could just be an id
#
cwebber2
you don't need to inline the entirety of the debian actor
#
melvster
what's this?
#
melvster
'displayName': 'Debian Women MiniDebConf Bucharest next 16-17 '
#
melvster
is that JSON?
#
aaronpk
jusssst ignore that ;)
#
cwebber2
melvster: this is a python de-serialization of the json.
#
cwebber2
I pretty printed it, but pretty printed it in python
#
cwebber2
I figured nobody wanted to see a completely one-line version of that.
#
cwebber2
I hope this helps
#
cwebber2
that's a simpler explaination
#
cwebber2
which has an inReplyTo
#
cwebber2
note, there may still be things missing, I wrote this as an example late at night, and obviously I already had the activity missing. But I think it's right
#
rhiaro
thanks cwebber2
#
rhiaro
takes a look
#
melvster
looks like quite a complicated way to do a share, i dont really like the acct: uris because that dereferences to a whole other JSON language to support, which doesnt interoperate with AS2
#
melvster
having said that, it's possible to write a translator in many cases
#
cwebber2
melvster: I think we agreed in the group that the acct: stuff wouldn't be supported
#
cwebber2
in the socialwg stuff
#
cwebber2
so a lot of this stuff can change from pump api -> activitypump
#
cwebber2
I'd also like to be less "duplicate all the data recursively in a payload" and more "linked data implies that the other end has that data anyway" where possible!
#
cwebber2
I think one reason pump copies stuff recursively so much is to save the other server round trips in fetching it, or to preserve the old state of things, or something
#
cwebber2
maybe evan can fill in more on why.
#
Tsyesika
i believe that is the reason to also
#
Tsyesika
when there is an object pump provides the entire thing
#
Tsyesika
so you don't need to do many requests
#
Tsyesika
this isn't confirmed to me by evan just my assumption from using the API
#
cwebber2
anyway, dereferencing of URIs are possible in activitypump
#
cwebber2
so you shouldn't have to produce such bloated things
#
cwebber2
thanks for confirming, Tsyesika :)
#
aaronpk
that sounds like it works fine if you assume the API exists in a closed system ;)
#
aaronpk
as soon as you move across servers, you can't necessarily trust the data
#
aaronpk
i want to avoid putting things like that in the spec, in order to be able to support the federated use case
#
aaronpk
i know we're not supposed to solve federation with v1 necessarily, but I want to make sure we don't prohibit it
#
cwebber2
aaronpk: I'm confused as to what you're arguing :)
#
aaronpk
let me rephrase
#
aaronpk
I don't want the API to require that objects from other domains is sent in a payload
#
aaronpk
or at the very least, it should require that a dereferencable URL is sent
#
aaronpk
e.g., if you see something in my stream that says "ben liked aaron's photo", you might get all the details about ben and ben's like, but you need to be able to go look at ben's URL to verify it
tilgovi joined the channel
bengo joined the channel
#
Loqi
Ok, I'll tell them that when I see them next
#
cwebber2
aaronpk: yes I think that's what I was referring to
#
cwebber2
maybe I should have said referenceable rather than dereferencable? I'm not sure on the term ordering
#
cwebber2
but seems we agree nonetheless
#
aaronpk
i think so yes, just making sure that was explicit for the logs :)
#
aaronpk
pretty sure i have this private webmention thing figured out
#
rhiaro
^ so this allows some degree of access control for static sites (elf-pavlik)
#
aaronpk
it's definitely possible
#
aaronpk
it's just a matter of writing it down
#
aaronpk
i have two options in mind, going to write them both down to compare
bengo, LCyrin, jaywink, bblfish, rhiaro_, KevinMarks_, mattl_, LynnCyrin, ben_thatmust, cwebber2, bblfish_, rhiaro, ElijahLynn, cwebber2`, wilkie_, Loqi, KevinMarks, wilkie and tilgovi_ joined the channel
#
oshepherd
cwebber2`: Was there actually consensus to not support acct: URIs?
#
oshepherd
Evan, myself and actual deployments in the wild would seem to disagree with that
#
oshepherd
aaronpk: Your client should trust *your* server, no?
#
cwebber2
oshepherd: so, there was agreement to go the "follow your nose" route with http URIs at the second face to face
#
cwebber2
however, evan opened an issue on activitypump to include them
#
cwebber2
so I'm not sure what's going on
#
oshepherd
I think its' one thing to say "For HTTP(s) URIs, follow your nose" and another to say "We aren't going to support the account naming format that the vast majority of distributed social systems use today"
#
oshepherd
One thing that early ActivityPump drafts mandated was that for any object with an acct: /ID/ the object references must also contain a self: URI
#
oshepherd
This reduces the need to do any "out-of-band" dereferences to "user types name into UI"
#
aaronpk
oshepherd: sure but i was talking about my server reading a stream from someone else's server
#
aaronpk
i may be thinking a step ahead
#
aaronpk
still need to get this clearer in my head
#
oshepherd
aaronpk: In the case of pump.io, all server-to-server interaction is push. But yes, in the case of reading from another server, be conservative in what you accept
#
aaronpk
i'm thinking of the case when pump.io is sending push data to another server
tilgovi joined the channel
#
cwebber2
let's add an activitypump "strict" mode where it's http urls only ;)
#
oshepherd
aaronpk: In that case it doesn't matter if it's verbose or not; you have to be conservative anyway
#
aaronpk
https ;)
#
oshepherd
cwebber2: As opposed to?
#
cwebber2
oshepherd: as opposed to allowing acct: uris
#
oshepherd
cwebber2: How does that interoperate?
#
cwebber2
well, I was making a joke.
#
oshepherd
(Answer: It doesn't!)
#
cwebber2
hence the winky face
#
oshepherd
But anyway, as I originally drafted the spec WebFinger or any other such name resolution system was confined to a very tiny corner (to the point that, if you are doing your own implementation for you only, it's probably unnecessary)
#
cwebber2
oshepherd: maybe you should weigh in here:
bengo joined the channel
#
aaronpk
i cannot for the life of me find a documented reference to that resolution :(
#
cwebber2
aaronpk: I'm not sure the minutes of the second f2f got published :\
#
aaronpk
not even in IRC tho
#
aaronpk
unless my find isn't working
#
aaronpk
ahh found it
#
cwebber2
it's a good comment, oshepherd
#
cwebber2
I do agree with your corporate rollout point.
#
melvster
im not sure it's a great idea to prioritize a new uri scheme (acct:) on top of http: and it even has a dependency on yet another JSON serialization (JRD) which must be supported and parsed, with some strange rules such as forcing results to be in order of 'preference' ... I think it's adding a big new dependency to the WG which may put the deliverables at risk
#
melvster
at the same time, there's no reason to exclude it I dont think
#
melvster
these points were brought up during webfinger standardization
#
melvster
however i do think complete interoperability with acct: uris is an *impossibility* -- id be very happy to be proved wrong
#
melvster
technical reasons: it doesnt handle numbers, all uri lists are ordered specifically in order of 'preference' (no other serialization does that), literal properties can contain at most one value (other serializations can contain many) ... there's a few other things that came up when I tried to write a convertor
tantek joined the channel
#
melvster
this is the web, we really should be using HTTP when we can
#
melvster
both indieweb and SoLiD do that, and what I saw of mediagoblin I think that could be the case too
bengo, bengo_ and bblfish joined the channel
#
oshepherd
melvster: Uh, prioritize? Who said prioritize?
#
oshepherd
And what do you mean complete interoperability is an "impossibility"?
#
oshepherd
Are you thinking we are proposing to encode the entirty of people's profiles in a JRD document? (Nobody is)
#
oshepherd
And, as a *pure consumer* of webfinger, why would any of the properties stuff matter? Surely the preference order actually makes things easier? (Grab the first link)
#
melvster
i mean interop between JRD and AS2
#
melvster
ie json ld
bengo joined the channel
#
melvster
writing a two way bridge i found impossible, id love to see how it could be done tho
#
oshepherd
In the early ActivityPump drafts there was *one single defined use* of JRD/WebFinger: If a user types in "name@domain.com" to a "username" box and clicks follow/login/whatever, then you do webfinger query https://domain.com/.well-known/webfinger?q=acct:name@domain.com[&rel=profile-whatever], grab the first rel=profile-whatever link which either matches "application/activitystreams+json" or has unspecified type, and then follow that link and proceed as if
#
oshepherd
you'd been given a https URI
#
melvster
let's see if it is needed for the use cases
#
melvster
that's encouraging to hear
#
oshepherd
It's simply a "human name/canonical name" to "URI" mapping
#
melvster
i think jrd only breaks at the edges, for some stuff it will interop fine, with a library, lets see if we can get interop working tho
#
oshepherd
For all I care you'd do .well-known/asprofile?q=acct:name@domain.com and get a HTTP redirect, but I'd rather we avoided *yet* *another* bikeshed on how to turn name@domain into domain.com/~name or whatever