#social 2018-10-21

2018-10-21 UTC
timbl and xmpp-social joined the channel
#
heluecht[m]
aaronpk (IRC) aaronpk (IRC) My comments to your posts don't seem to be accepted - but my likes are. Could we check where the problem is?
#
aaronpk
hmm sure
#
aaronpk
are you getting a 202 response at least?
#
heluecht[m]
I think so. Let me see
#
aaronpk
what's your domain name? I can check some of the recent logs
#
heluecht[m]
pirati.ca
#
heluecht[m]
I will fetch a timestamp.
#
heluecht[m]
It's 201
#
aaronpk
I see one in the log
#
heluecht[m]
> 2018-10-21T06:06:04Z@wrk:18785:5bcc174b30ab9194 [INFO]:HTTPSignature.php:307:transmit Transmit to https://aaronparecki.com/activitypub/inbox returned 201
#
aaronpk
oh, I forgot that I'm still handling activitypub replies by triggering a webmention from the post URL
#
aaronpk
(likes and reposts are interpreted directly from the AP payload)
#
heluecht[m]
So I'm doing nothing wrong?
#
aaronpk
well the microformats on your page are definitely not anything i've seen before
#
aaronpk
normally the URL to your post would be its own h-entry, showing the thing you're replying to as a smaller secondary content (aka reply context)
#
aaronpk
your page seems to be a copy of my post showing your comment at the bottom, and it's marked up as such, which is confusing my site
#
heluecht[m]
Ah okay. We don't have a single post view. We only show the whole thread.
#
aaronpk
ah okay interesting
#
aaronpk
there's technically a way my site could interpret that successfully still, but I definitely haven't encountered that before
#
aaronpk
but there is still one problem with the markup for that to work, which is that i'd need the "url" property of the specific comment to match the url of the page. I see you're going through a redirect url thingy there instead.
#
heluecht[m]
And concerning any standards: I'm sure that we are violating several ones. This is a grown system :-)
#
heluecht[m]
Which url are you fetching?
#
Loqi
[aaronpk] Tonight's dinner in Germany was a confusing mix of Tex Mex (black beans, corn, avocado, cilantro, chipotle sauce), Asian (green beans, pickled cucumbers) and Greek (feta cheese, cherry tomatoes). It was delicious though, and a much needed change! #v...
#
aaronpk
if you want to indicate that this URL specifically represents your comment, I need some indication in the parsed json which object is the "primary" object on the page
#
aaronpk
the easiest way is to make the "url" property of the specific object match the url of the page I just fetched
#
heluecht[m]
Until now I haven't even known what this "h-card" thing means.
#
heluecht[m]
I'm currently unsure about what you mean with your proposal. Wich url property has to be set to which valie
#
heluecht[m]
value?
#
aaronpk
oh one thing I am not clear on, do you generate a new URL for each comment in the thread?
#
aaronpk
e.g. does the URL https://pirati.ca/display/ec054ce7-205b-cc14-5739-709614787239 correspond to your specific comment? or is that a URL of your copy of my post?
#
heluecht[m]
That url is the url of my comment.
#
aaronpk
okay, then the URL on that page that is currently https://pirati.ca/redir/6265?url=https://pirati.ca/display/ec054ce7-205b-cc14-5739-709614787239 should instead be your comment's URL
#
aaronpk
at that point, it's then at least theoretically possible for my code to go traverse the tree of h-entry objects and find your comment and know that that's the main object on the page
#
heluecht[m]
Why don't you just use AP stuff for that?
#
heluecht[m]
By fetching the url with the correct content-type you would get the JSON object in return.
#
heluecht[m]
But: Where is this "redir" thing on the page?
#
heluecht[m]
We should only have this "redir" functionalty for logged in users. So I would like to see the origin.
#
aaronpk
yeah at this point I should really just consume the AP data directly, but I had started with a minimal version that just translated AP replies into webmentions
#
Loqi
definitely
#
aaronpk
heluecht[m]: it's on the "4 hours ago" text on your comment https://media.aaronpk.com/Screen-Shot-2018-10-21-11-51-11-f14PQ1ey8U.jpg
#
heluecht[m]
Ah okay. Thanks.
Guest84 joined the channel
#
heluecht[m]
Okay. The "redir" is now only displayed for users who logged in.
#
aaronpk
so now at least it's possible for my to fix my code :)
#
aaronpk
i'll probably change to support reading AP replies directly first though
#
heluecht[m]
Before applying a PR I will have to check if we use this function only at the frontend. If not, I have to change some more stuff.
#
heluecht[m]
Would be great to improve AP compatibility. I'm still unsure about some fields that I'm using. I would like to only transmit the really needed data.
#
heluecht[m]
Meh ... This "redir" stuff is more complicated. We use it to invoke some "remote authentication". And though it is only needed for local users, we have to add it at places where we cannot know who will watch this content.
timbl joined the channel
#
heluecht[m]
I have got a question concerning this here: https://www.w3.org/TR/activitypub/#inbox-forwarding
#
heluecht[m]
> Alyssa makes a post about her having successfully presented a paper at a conference and sends it to her followers collection, which includes her friend Ben. Ben replies to Alyssa's message congratulating her and includes her followers collection on the recipients.
#
heluecht[m]
So should we really add all follower's collections of the previous post to our comment?
#
heluecht[m]
What it the sense?
#
nightpool[m]
heluecht: everyone who you expect the post to get delivered too should be in the followers collection. for many systems, they want all possible followers to be able to see the whole thread. my understanding is that in your system, only the followers of the person who created the root post will see the whole thread
#
heluecht[m]
I guess you misunderstood. I will make an example:
#
heluecht[m]
You create a post and you send it to your follwers collections. Then I answer to it. Should I add the link of your followers collections to the reply that I send (to my followers) collection as well?
#
heluecht[m]
And when a third person replies should this person at the followers collection of you and me to that comment as well?
#
nightpool[m]
I didn't misunderstand.
#
nightpool[m]
it's dependent on how complete you want the thread to be for remote users.
timbl, taravancil, mattl and hadleybeeman joined the channel
#
heluecht[m]
But when I would distribute an incoming post from actor "a" according to the followers of user "b" wouldn't this allow spamming very easily?
#
nightpool[m]
well, obviously you would have to apply your own logic as to when such a forwarding makes sense.
#
nightpool[m]
>The server MAY filter its delivery targets according to implementation-specific rules (for example, spam filtering).
#
rialtate[m]
heluecht: in practice user A's server generally doesn't even have access to user B's (complete) list of followers, so if A targets Bs followers then it is up to Bs server to distribute the post. When Bs server receives As post Bs policy can decide whether or not to target their followers. Ldsigs become handy here if the post is semi-private because rando B follower may not be able to access the post directly from As server.
#
nightpool[m]
Right, all that section is saying that "Bs policy can decide whether or not to target their followers" needs to be opt-in for A when they author the post
#
nightpool[m]
A needs to decide whether or not they want their post to be delivered to Bs followers before B can go ahead and do it.
#
rialtate[m]
Hmm... There should be a way to discover an actor's policies... Or at least capabilities grants (like hubzillas "can forward to my followers")
#
heluecht[m]
These capabilities could be interesting, since even the forwarding is done differently in the different implementations.
#
nightpool[m]
@rialtate:matrix.org: no, there's no need to represent a "policy", which may have manual carveouts and exceptions
#
nightpool[m]
that's why we just say to use the addressing from the original post
#
nightpool[m]
each post has explicit addressing and you forward to any non-public addressing that's local to your server
#
nightpool[m]
that's the whole purpose of the quoted section
#
rialtate[m]
Another thing I thought of, was lets say we have 4 actors. A makes a post, B replies, C likes that reply and targets Bs followers, B forwards the post to D who is one of their (unlisted) followers. D replies to Bs reply. How does C know that this reply is allowed if C doesnt realize they targetted D? How does A decide whether to allow all this on their thread?
#
nightpool[m]
what??
#
nightpool[m]
what do you mean by "that this reply is allowed"?
#
nightpool[m]
If D is replying to Bs reply, where does C ever come into it??
#
nightpool[m]
A can't decide whether to "allow" any of this on their thread—threading is just putting "inReplyTo" into your activity. that's what https://github.com/w3c/activitypub/issues/319 is about
#
rialtate[m]
C targetted Bs followrrs, and D is one of those, so if C can talk to D it stands to reason D should be able to talk back, but since C doesn't directly know D...
#
nightpool[m]
you didn't say that D was talking back to C though..... you said they were replying to B's reply..........
#
rialtate[m]
Which c "liked" and told D about (indirectly)...
#
nightpool[m]
But you're saying D is one of B's followers, so they'd already have seen the post?
#
nightpool[m]
I'm trying to understand the dilemma your example is meant to illuminate, but it doesn't seem like there's any contradiction here
#
nightpool[m]
There is no sense in activitypub by which a reply is "allowed"
#
rialtate[m]
> <@nightpool:cybre.space> A can't decide whether to "allow" any of this on their thread—threading is just putting "inReplyTo" into your activity. that's what https://github.com/w3c/activitypub/issues/319 is about
#
rialtate[m]
That github issue is way more blunt than what I am talking about. Also, I'm talking the other direction, saying that A doesn't even have enough information to make a decision / apply any kind of policy, and thats a problem. Not at all related to telling that policy to the rest of the world.
#
nightpool[m]
hmm. i'm still confused, sorry.
#
nightpool[m]
what information does A "not have"?
#
rialtate[m]
Well in a very split graph it doesn't know whether someone legitimately jumped in from a follower of a follower or they are just some random spammer that picked their threadid from a dartboard.
#
nightpool[m]
that doesn't seem like something it could ever know completely? like, if I post a link to a Mastodon post in IRC, there's no way for mastodon to know that, but it's still a "legitimate" way of sharing the post
timbl joined the channel
#
rialtate[m]
Crossing protocols is a strawman
#
rialtate[m]
I think the information can be inferred though. If e.g. Sue tells me about a reply on the thread and Sues followers are allowed then I can maybe assume the post is by one of Sues followers if she's telling me about it but that opens up an army of confused deputies. There should be some way for Sue to convey that explicitly yes this person's post is being forwarded by me because they are one of my followers.
#
rialtate[m]
Maybe something like email? "originalTo":"example/followers" .. That would break the ldsig and make authenticity check fail though :/
#
rialtate[m]
This is another reason why jws / salmon sigs are better because you don't have to sign the whole object
#
nightpool[m]
ldsigs don't force you to sign the whole object either......
#
rialtate[m]
I'm giving myself a headache now
#
heluecht[m]
Hmm ... how do you not sign everything?
vasilakisfil joined the channel