#social 2018-09-16

2018-09-16 UTC
up201705417, kaniini, xmpp-social, vasilakisfil, Guest84 and vt joined the channel
#
heluecht[m]
Since I had a good progress in my coding, I'm now at the point where I have to see how comments are distributed. Have Pleroma, Mastodon and the rest agreed on a single way or are they all are doing it differently?
#
nightpool[m]
hmm. can you clarify what you mean by "how comments are distributed?
#
puckipedia
replies to posts on other servers
#
heluecht[m]
With OStatus the comments are distributed by the commenting person to all of the commenter's followers. With DFRN and Diaspora this work is done via the thread starter.
#
heluecht[m]
And AFAIK AP does support both methods.
#
nightpool[m]
so when user A replies to user B
#
nightpool[m]
they send the post to 1) their followers and 2) user B
#
nightpool[m]
(this is indicated by addressing the post to: user B and cc: their followers collection)
#
nightpool[m]
when user B receives the post, they have the option of forwarding it to their followers
#
nightpool[m]
user A indicates they want this behavior by including user B's followers in the cc audience as well as their own followers.
#
heluecht[m]
On Diaspora and Friendica user A is replying to user B and user B distributes it to all the user's followers.
#
nightpool[m]
user B distributes it to user A's followers on friendica as well?
#
heluecht[m]
No.
#
heluecht[m]
User B doesn't know any of user A's followers.
#
nightpool[m]
yeah, that's why i found your statement so surprising :P
#
heluecht[m]
This is some privacy thing as well.
#
nightpool[m]
Ultimately, in activitypub, the choice is one you make when you set up your addressing.
#
nightpool[m]
there's nothing "hard-coded" into the protocol about replies
#
rialtate[m]
> <@heluecht:feneas.org> No.
#
rialtate[m]
heluecht: wait so it would send it to user A if it was a followback but not otherwise?
#
heluecht[m]
@rialtate:matrix.org: I don't understand.
#
nightpool[m]
@rialtate:matrix.org hmm? why would user A's post get sent back to them?
#
rialtate[m]
Hate when riot quotes random posts
#
rialtate[m]
User Bs post
#
nightpool[m]
user B doesn't make a post in this scenario
#
nightpool[m]
except the original one that A is already replying to
#
nightpool[m]
we're only talking about the reply process
#
rialtate[m]
Oh i thought we were talking comments (replies)
#
nightpool[m]
we are
#
nightpool[m]
heluecht: does what I said make sense?
#
heluecht[m]
I think so.
#
rialtate[m]
Read it backwards
#
rialtate[m]
Still trying to wrap my head around why only public was in the "to" :)
#
rialtate[m]
heluecht:
#
nightpool[m]
to/cc is really just a matter of preference.
#
nightpool[m]
there's no difference on a protocol level
#
nightpool[m]
(just like w/ email)
#
heluecht[m]
I would like it to have it like on mailing lists.
#
rialtate[m]
nightpool: I'm talking about something else
#
heluecht[m]
So you don't know all mailing list receivers, but only the address of the mailing list.
#
rialtate[m]
nightpool: from another channel
#
heluecht[m]
Everything else is clumsy.
#
rialtate[m]
heluecht: that's how my thing works
#
rialtate[m]
heluecht: but the list address was not on the to, only public was
#
nightpool[m]
@rialtate:matrix.org: okay. if it's related to a conversation in another channel, it's probably confusing to have here without giving people background?
#
heluecht[m]
It's confusing to me now as well, since I'm lying in bed, close to fall asleep, mit my laptop on the side :-)
#
heluecht[m]
It's 0:03 here.
#
nightpool[m]
heluecht: so one implementation detail to note is that mastodon will only forward objects with an included object signature
#
heluecht[m]
So there is some forward mechanism.
#
rialtate[m]
nightpool: we were testing heluecht 's implementation earlier
#
nightpool[m]
didn't I already describe the forward mechanism?
#
heluecht[m]
@rialtate:matrix.org: Which isn't very perfect at the moment :-D
#
nightpool[m]
the object signature mastodon uses is according to ld-sigs and it's separate from the http signature used for transport (since you can't give that to anyone else).
#
rialtate[m]
nightpool: do you run a masto server?
#
nightpool[m]
yes, and i'm a mastodon maintainer.
#
heluecht[m]
I know about LD-Signatures - which I wanted to avoid :-)
#
heluecht[m]
Possibly I can take code from other projects.
#
nightpool[m]
pleroma is happy to forward any objects, but it's up to the reciever to determine their authenticity by dereferencing their identifier (basically, making a HTTP Get for the `id`)
#
rialtate[m]
heluecht: it can be avoided, there are ways
#
heluecht[m]
So for me it is the best to always have a look at the "cc" and "to" and to always distribute my stuff there as well.
#
nightpool[m]
i think there's probably an argument that mastodon should do so as well when LD-sigs are missing, but there are DoS/scalability/processing time concerns
#
heluecht[m]
nightpool: In fact in my current implementation I'm simply making this HTTP call to the id as well.
#
heluecht[m]
Can there be multiple follower collections?
#
heluecht[m]
So that you could have a difference on a per post way.
#
puckipedia
heluecht[m]: the 'followers' collection is special in that it allows for optimized delivery
#
puckipedia
for every other purpose, it's just a(n ordered) collection of users
#
nightpool[m]
there can definitely be different user collections. each user i think only has one "followers" collection though
#
puckipedia
mumbles "technically", but decides she doesn't want to go down this path
#
nightpool[m]
i'm not 100% sure whether that's actually marked functional in the json-ld schema but the spec refers to it as if it is
#
nightpool[m]
either way, the forwarding language doesn't actually mention followers collections
#
heluecht[m]
Hmm, okay.
#
nightpool[m]
just collections that the server has access to when dereferencing a post, it may choose to forward to those collections under some conditions.
#
nightpool[m]
s/dereferencing/processing
#
puckipedia
yeah. I meant publicInbox for this
#
puckipedia
ehm, sharedInbox
#
puckipedia
heluecht[m]: anyways, I'm working on a patch for Mastodon that allows for you to send posts to a specific audience, instead of sending them all to all the followers all the time
#
heluecht[m]
When I would relay the posts - like Mastodon is doing when having signatures - is this a regular "create" or an "announce"?
#
puckipedia
you'd send the entire activity, so the object you receive in your inbox
#
nightpool[m]
you wouldn't add a wrapper activity
#
nightpool[m]
just send the entire activity as is
#
heluecht[m]
So the actor doesn't change.
#
nightpool[m]
no
#
heluecht[m]
I still think that this comment handling is some birth defect of the protocol. The same error had been made to OStatus and pump.io.
#
nightpool[m]
how so?
#
nightpool[m]
it depends on who the audience of the comment is, but it's fully compatible with the friendica model.
#
heluecht[m]
It's just that there are so many different ways.
#
heluecht[m]
There is not the one single way.
#
nightpool[m]
sure, but that's because the audience of an activity is open-ended
#
nightpool[m]
that's like criticizing email because not every thread is a mailing list
#
heluecht[m]
Yeah, E-mail is really bad, NNTP is better.
#
puckipedia
the issue is: it's technically possible to do inbox forwarding
#
puckipedia
but Mastodon will just refuse it
#
nightpool[m]
i'm pretty sure most people aren't interested in having their private discussions over nntp.
#
nightpool[m]
puckipedia: do you mean without ld-sigs?
#
rialtate[m]
Different valid ways of delivery is not overchoice. It being valid to put a "subject" in "name","title",and "summary" fields, is overchoice.
#
puckipedia
nightpool[m]: indeed
#
nightpool[m]
i don't really think that's an issue with the protocol.
#
heluecht[m]
I still feel sorry, that during the SocialWG times I hadn't got the time to participate as a regular member. (Which had surely been a language problem as well)
#
heluecht[m]
I made some comments, but as a regular member it maybe had been possibly to make some things more specific.
#
nightpool[m]
activitystreams2 took on the somewhat gargantuan task of trying to reconcile all of these disparate usecases for social communication into one vocabulary, and i think they did a pretty good job
#
nightpool[m]
there's ambiguity, sure, but compatibility is always going to be a messy task
#
heluecht[m]
AS2 is not that bad. It's AP (and the choice for JSON-LD) that I don't like that much.
#
nightpool[m]
well, the comment by rialtate was about as2
#
nightpool[m]
i tend to think AP is neat, but the only way it's going to get better is if more people use it.
#
heluecht[m]
I think it is overengineered in some ways and much too unspecific in others.
#
rialtate[m]
Well I don't think my comment was about as2. AP runs on top of as2 and there are other instances where the spec clarifies ambiguity by making a choice. Just subject was one that seems to have been forgotten
#
puckipedia
rialtate[m]: the AP spec says "Clients SHOULD look at any objects attached to the new Activity via the object, target, inReplyTo and/or tag fields, retrieve their actor or attributedTo properties, and MAY also retrieve their addressing properties, and add these to the to or cc fields of the new Activity being created."
#
rialtate[m]
^ or what heluecht said
#
puckipedia
which is basically, pull out the audience of any objects replied to etc, and build a default audience off of that
jessehattabaugh joined the channel
#
jessehattabaugh
Howdy!
#
puckipedia
then " When objects are received in the outbox (for servers which support both Client to Server interactions and Server to Server Interactions), the server MUST target and deliver to: " "The to, bto, cc, bcc or audience fields if their values are individuals or Collections owned by the actor."
#
rialtate[m]
puckipedia: thats client to server
#
nightpool[m]
i'm not sure what this has to do with the subject of activities
#
rialtate[m]
puckipedia says so in the first few words
#
nightpool[m]
jessehattabaugh: hello!
#
nightpool[m]
@rialtate:matrix.org: the specific semantics of objects is completely unspecified by as2. nowhere does it say what the "content" of a note is, or how servers should display things
#
puckipedia
former is c2s, but it's the sugestion on how to build audience, which indicates that the spec doesn't tell you "forward to everyone who may have an interest in the post yourself", but rather "you can make this implicit", which also applies to implementing the spec in other servers
#
nightpool[m]
this is, as i understand it, intentional.
#
puckipedia
the latter is for: if you send a post that is targeted to another server's user's followers, that server should forward the post to that user's followers too
#
rialtate[m]
nightpool: actually it precisely does specify that content is html, you couldn't have picked a better example :)
#
puckipedia
nightpool: " The content or textual representation of the Object encoded as a JSON string. By default, the value of content is HTML. The mediaType property can be used in the object to indicate a different content type. "
#
nightpool[m]
that's as2
#
nightpool[m]
sorry
#
nightpool[m]
i realized i typoed as2 for AP in the previous post
#
nightpool[m]
AP tries not to concern itself at all with how servers are displaying things
#
puckipedia
however, AP does indicate that it's using AS2
#
nightpool[m]
so i think it would be really weird and bad if it said "this is what the subject of an activity is"
#
nightpool[m]
for whatever definition of "subject" you care to have i guess
vasilakisfil joined the channel