#social 2018-09-18

2018-09-18 UTC
#
dansup
puckipedia: wow, your phpbb post went viral lol
#
puckipedia
slightly surprised
#
puckipedia
418 likes, 389 boosts, 86 replies
#
puckipedia
also i tuned up some things and i have an idea for what i need to build into kroeg now
#
dansup
nice!
#
nightpool[m]
wow, that's a lot of boosts
#
dansup
Getting close to pushing the rest of the pixelfed federation code!
#
heluecht[m]
Does someone know what Pleroma does need to accept a private post? Mastodon and Hubzilla are already accepting my stuff.
dlongley joined the channel
#
rialtate[m]
heluecht: just send a note with only the one recipient in "to"
#
rialtate[m]
heluecht: or more specifically don't include public. There can be multiple recipients
#
rialtate[m]
heluecht: if masto and hubzilla are accepting mine should too btw.. I have way looser requirements than them. Well pleroma does too actually
#
heluecht[m]
I did so (with the "to"). Also I added the receiver to the tags (this is needed by Mastodon)
#
rialtate[m]
heluecht: hmm do you get a 202 status?
vt joined the channel; vt left the channel
#
heluecht[m]
200
#
heluecht[m]
Pleroma always andwers with 200
#
heluecht[m]
I now added the followers collection to "to" - that hadn't changed anything.
#
rialtate[m]
I get a 202 with text "ok"
#
heluecht[m]
To Pleroma?
#
heluecht[m]
I think the more important question is why Pleroma does accept and display my public posts and not the non public ones.
#
heluecht[m]
While other systems don't have any problem with this.
#
rialtate[m]
heluecht: yeah. What does your json look like? Maybe I can spot it
#
heluecht[m]
How can I post it here, so that it isn't destroyed? I guess there is some fancy special character for that?
#
rialtate[m]
Yeah the left single quote
#
heluecht[m]
What is the left single quote? The descending one? Or the other one?
xmpp-social joined the channel
#
rialtate[m]
```
#
rialtate[m]
Like this
#
rialtate[m]
```
#
heluecht[m]
'Test
#
heluecht[m]
`Test
#
heluecht[m]
'Test
#
heluecht[m]
"Test
#
rialtate[m]
Yeah the 2nd one you did, but both before and after, and 3 of them actually
#
rialtate[m]
:)
#
heluecht[m]
sent a long message: heluecht[m]_2018-09-18_06:26:41.txt <https://matrix.cybre.space/_matrix/media/v1/download/cybre.space/UinNocICLlJxQQqArrjSmLlP>
#
rialtate[m]
sent a long message: rialtate[m]_2018-09-18_06:27:36.txt <https://matrix.cybre.space/_matrix/media/v1/download/cybre.space/iiCqcXOVLNDFfcXsMPdpNQHG>
#
rialtate[m]
Dang
#
heluecht[m]
What?
#
rialtate[m]
sent a long message: rialtate[m]_2018-09-18_06:28:31.txt <https://matrix.cybre.space/_matrix/media/v1/download/cybre.space/wsuYbxWztmkLYJyNNcvxKyPB>
#
rialtate[m]
Haha
#
rialtate[m]
Anyway I bet the problem is pleroma needs the cc guys to be in to not cc
#
rialtate[m]
I personally don't even bother with cc
#
heluecht[m]
I just changed it - but it doesn't change the behaviour.
#
heluecht[m]
I mean: It doesn't work :-(
#
rialtate[m]
Hmm
#
rialtate[m]
That's the only thing that looks off to me. Try with my server again...
#
heluecht[m]
I have to leave for work now. But while eating my porridge I can join the room again. (I eat my breakfast at work)
#
rialtate[m]
Ok. Just added cc support... Hopefully with no typos haha
jic and jdormit joined the channel
#
jdormit
The ActivityPub spec specifies how an inbox should handle Announce activities, but not an outbox. Does this mean that Announce activities should be sent by clients directly to inboxes? Or should clients send them to outboxes who federate them to inboxes as normal?
#
puckipedia
jdormit: the spec actually specifies this
#
jdormit
In other words, my server implementation should handle Announce activities posted to the outbox, right?
#
jdormit
Ah really?
#
puckipedia
first of all
#
puckipedia
"Servers communicate with other servers and propagate information across the social graph by posting activities to actors' inbox endpoints."
#
puckipedia
second, "Client to server interaction takes place through clients posting Activities to an actor's outbox."
#
puckipedia
so yes, the client always posts to an outbox
#
jdormit
That's what I figured. It's just odd to me that the spec has an Announce section in the inbox part but not in the outbox part
#
puckipedia
that's because announces don't do anything special on c2s
#
jdormit
I see, no side effects other than delivery
#
jdormit
Should servers handle arbitrary activities being posted to the outbox then? Or I guess at a minumum all of those defined by ActivityStreams?
#
puckipedia
unspecified
#
jdormit
:|
#
jdormit
Thanks for all your help though :)
#
puckipedia
unspecified as in, you are allowed to do arbitrary filtering on activities
#
jdormit
Arbitrary filtering as in, unless an activity has a behavior defined in the spec a server can do whatever it wants with it? Makes sense, I guess.
#
puckipedia
no i mean, you can just reject arbitrary messages from the outbox/inbox
#
jdormit
Right, that's what I was getting at
#
jdormit
Cool this gives me a lot to go on, thanks
#
rialtate[m]
jdormit: what are you making?
#
jdormit
I'm making a Wordpress plugin that will federate posts/comments via ActivityPub
#
jdormit
I figure if we really want federated social networks to take off the best way to do it is to bring it existing platforms
#
jdormit
And wordpress runs half the internet
#
aaronpk
you may want to collaborate with pfefferle https://github.com/pfefferle/wordpress-activitypub
#
Loqi
[pfefferle] wordpress-activitypub: ActivityPub for WordPress
#
jdormit
We actually spoke a while ago
#
jdormit
We decided we were going to pursue our own projects but would stay open to collaborating in the future
#
jdormit
We basically had different visions for what the plugin would look like
jdormit joined the channel
#
nightpool[m]
so where does the inbox go, in a WordPress plugin? the admin panel?
#
puckipedia
eh, probably
#
puckipedia
or in the comments if it's a comment
#
nightpool[m]
yeah, makes sense. I'm just worried we'll get a lot of people "spraying out" into the fediverse without actually being participants
#
nightpool[m]
e.g. what happened with twitter crossposting on mastodon
#
nightpool[m]
are you going to be able to follow people?
jdormit joined the channel
#
jdormit
Depends on the object type - posts go to the blog, pages go to site pages, comments go to comments (in the magical world where I've finished the plugin).
#
jdormit
Is it kosher to use custom object types, or would it be better to use types defined by activity streams?
#
puckipedia
please use standard types.
#
puckipedia
use Page for pages, Article for blog posts, and Note for comments
#
jdormit
Gotcha
jdormit` and jdormit joined the channel
#
heluecht[m]
For what could "Page" exactly be of any use?
#
puckipedia
heluecht[m]: pages
#
heluecht[m]
Yeah, but what exactly is the usecase? Is it meant as some kind of sharing a bookmark?
#
puckipedia
representing pages as as2 json-ld
#
heluecht[m]
That's too abstract for me.
#
heluecht[m]
I always need a direct usecase.
#
rialtate[m]
heluecht: "heluecht updated https://somepage/wiki/foo"
#
puckipedia
heluecht[m]: the vocabulary says "Represents a Web Page"
#
heluecht[m]
So it's not for saying: "Here, have a look at this page". For example this object would more be a "note" than a "page", I guess? https://squeet.me/display/962c3e101e70cd339dea78f81e7c73e8de633aa4
#
Loqi
[heise online (inoffiziell)] Kameras haben einen schweren Stand. In den letzten vier Jahren hat sich der Absatz fast halbiert. Die Industrie sieht vor der photokina aber auch Licht. Fotomarkt schrumpft weiter - Künstliche Intelligenz im Fokus Kameras haben einen schweren Stan...
#
puckipedia
heluecht[m]: does that message represent a web page or a message about a web page? :P
#
heluecht[m]
It is sharing the link to a web page.
#
puckipedia
but it isn't a web page
#
heluecht[m]
Okay. When you say this.
#
heluecht[m]
I really have massive problems in understanding specs. Not only because of the language, but also because I'm really thinking differently.
#
puckipedia
heluecht[m]: well, like, it's a note about a web page so it isn't really a web page is it :P
#
puckipedia
i just like. think things through literally
#
puckipedia
in social media you most probably won't need the Page type
#
puckipedia
but like, if you're building federated wikis or something
#
heluecht[m]
BTW: Where would see the difference between an article and a note? When it has got a title or when the number of characters exceed some limit?
#
puckipedia
I think 'title' might be a useful metric. Note is microblogging, Article is ... macroblogging??
#
heluecht[m]
Friendica is made for both, so I need some automatic.
#
aaronpk
yes title/name is the thing that differentiates notes and articles
#
puckipedia
also. Mastodon will show Articles as just a name and a link back to the site
#
puckipedia
you can still reply to it from Mastodon though
#
heluecht[m]
Is there a "title" in the standard?
#
puckipedia
name
#
heluecht[m]
Yeah, I knew that field
#
heluecht[m]
Hubzilla is using "title", but I don't want to break standards here.
#
puckipedia
like, the title of an article is its name
#
puckipedia
i mean. hubzilla is doing other things badly anyways...
#
heluecht[m]
Yeah, mostly I'm orientating after Mastodon und Pleroma. I'm only using the Hubzilla code to see how things like HTTP signing had been done.
#
heluecht[m]
I guess I will use the JSON-LD signing stuff from there as well - when you don't know some PHP code I should use instead.
#
puckipedia
the digitalbazaar php-json-ld stuff can do almost everything of the signing
#
puckipedia
jsonld_normalize with I guess URDNA2015, as in the example, then rsa-sha256 sign that
#
heluecht[m]
Was this the link that you already sent me?
#
puckipedia
possibly
#
Loqi
[digitalbazaar] php-json-ld: PHP implementation of a JSON-LD Processor and API
#
heluecht[m]
It's great that it comes with this composer thing.
#
heluecht[m]
I never know how to really add this to our project, but I'm happy that we are now using this.
#
heluecht[m]
So signing is just some normalizing, then signing, and adding the signature?
#
puckipedia
indeed
#
puckipedia
at least, from what I remember
#
heluecht[m]
You don't use it?
#
puckipedia
no
#
puckipedia
there's some design issues with it imo, I might add it for outgoing public posts but nothing more
#
heluecht[m]
I'm still unsure about the message distribution. So using this signing and then dstributing everything that is signed sounds fine to me.
#
puckipedia
for distribution just sign the post with HTTP signature then send it to the other inboxes
#
heluecht[m]
I meant it differently.
#
heluecht[m]
Yeah, me an words ;-)
#
heluecht[m]
I meant the relay thingy. I prefer sending a comment from person B only to the the thread starter A who then distributes it to the person's followers B, C, D and E.
#
heluecht[m]
So that B doesn't have to send it to C and D.
#
puckipedia
it's gonna be interesting to see if that works in reality
#
heluecht[m]
I heard that Mastodon already does it this way.
#
puckipedia
in a limited way, i guess
#
heluecht[m]
When I don't get this to work, AP will never replace our own protovol.
#
puckipedia
like, the protocol allows it
#
puckipedia
the implementations don't
#
heluecht[m]
It can happen that I will have to do some stuff that is according to the protocol but breaks implementations.
#
heluecht[m]
Friendica is much more "mighty" than programms like Mastodon or Pleroma.
#
heluecht[m]
We can decide upon every single post which single contacts should get the post.
#
csarven
My code can beat up your code.
#
heluecht[m]
When using the "following" collection in "to" or "cc" I guess that the receiving server will automatically distribute the post to the contacts on the server that are known to be followers?
#
heluecht[m]
This is especially important in posts that aren't public.
#
puckipedia
heluecht[m]: if you send it to the sharedInbox, yes
#
heluecht[m]
But posts with only some contacts in "to" and/or "cc" without this should reach their destination as well, I guess?
#
heluecht[m]
And this should be indepentend on sending it to the private or shared inboxes?
#
puckipedia
if you send a message to someone's inbox it should just arrive there, the sharedInbox may also deliver it to actors if it sees them, this is not guaranteed
#
heluecht[m]
This here should be valid and reach its target, shouldn't it? https://pastebin.com/p0usaj3C
#
puckipedia
assuming you send it to your three inboxes, I think so.
#
heluecht[m]
I did - and it only arrived at Hubzilla.
#
puckipedia
one note. can you drop the name value if it is empty? for the rest, ehm, i have ... oh right
#
puckipedia
mentions
#
puckipedia
limitation in their implementation requires everyone that should privately get it to be mentioned
#
puckipedia
or well
#
puckipedia
that should be masto
#
heluecht[m]
This would be really bad since then they would appear in a special timeline there as well.
#
rialtate[m]
From my testing Mastodon seems to have a very complex secret formula for the addressing that has to be exactly the same way mastodon does it or it won't accept /display the post.
#
rialtate[m]
Other impls are not so picky
#
puckipedia
correct. this'll be fixed in future masto (though like, i'm the only one who probably wants to bother to implement it in masto)
#
rialtate[m]
I'm also running into a problem with groups where it seems like if you aren't following a person who posts to the group you can't see any posts by them, even when the group boosts it
#
puckipedia
yeah, that's a thing that mastodon doesn't quite like i assume
#
rialtate[m]
But I'll have to wait until nightpool or someone can help debug for sure
#
nightpool[m]
are you actually having the group Announce the post, or just relay it?
#
nightpool[m]
mastodon currently does not support private audience posts that aren't just follower private, mostly for ux reasons
#
rialtate[m]
nightpool: announce
#
nightpool[m]
huh. I guess it's maybe something wrong with your announce activity?
#
rialtate[m]
> <@nightpool:cybre.space> huh. I guess it's maybe something wrong with your announce activity?
#
rialtate[m]
Possibly.
#
nightpool[m]
Im on lunch break right now, I won't really be able to debug until I'm off work
#
puckipedia
i'm guessing it's unresolvable
#
rialtate[m]
Ahh ok
#
nightpool[m]
puckipedia: unresolvable how? if you boost the post, why wouldn't it work?
#
puckipedia
nightpool[m]: i mean, it sounds like the original note is unavailable
#
nightpool[m]
unavailable how?
#
puckipedia
you can't get the note as AS2 json-ld
#
puckipedia
I don't think that's a fewature yet
#
rialtate[m]
puckipedia: no that's definitely not it, the uri never gets hit
Gargron joined the channel
#
heluecht[m]
> mastodon currently does not support private audience posts that aren't just follower private, mostly for ux reasons
#
heluecht[m]
What do you mean with this? I want to post privat to some persons but not with tagging them. This doesn't seem to be accepted by Mastodon.
#
heluecht[m]
nightpool: Why is this post not accepted by Mastodon? https://pastebin.com/UijssKSn
#
nightpool[m]
i won't be able to take a look until i'm done off work
#
nightpool[m]
nothing looks obviously wrong
#
heluecht[m]
nightpool: Would this work without tagging?
#
nightpool[m]
not currently
#
heluecht[m]
Why?
#
nightpool[m]
because mastodon UX only supports three levels of visibility—direct messages, followers only messages, and public messages
#
nightpool[m]
you can see the audience of each type obviously
#
nightpool[m]
adding a new type for users to understand would require thinking through how they can interact with it
#
heluecht[m]
Sadly this is partly incompatible to the way, Friendica is working.
#
nightpool[m]
yeah we had the same problem with hubzilla
#
heluecht[m]
So I have to tag the users - which is annoying for them.
#
nightpool[m]
I'm down to fix it, but it'd probably require UI changes on our part and I'm not sure what the best way is
#
nightpool[m]
we try to keep mastodon as simple as possible conceptually
#
heluecht[m]
It would be great if servers (or profiles) could have some "cappabilities" data where you could see what they accept.
#
nightpool[m]
that sounds much worse the graceful degradation, like how HTML works
#
nightpool[m]
anyway, I think you should federate the most correct thing as much as possible, and open a GitHub issue we can use to track the compatibility issue.
#
nightpool[m]
I would not recommend that you synthesize mentions for large collections, the way hubzilla does
#
nightpool[m]
although in practice I've found that hubzilla's behavior is mostly confusing because hubzilla users didn't understand what audience they were posting yo
#
nightpool[m]
*to
#
heluecht[m]
nightpool: Yeah. I will do it in a way that only persons are tagged when they are mentioned in the post. This is what they would expect. This of course means that many posts won't arrive at the server. Opening an issue sounds okay for me.
#
heluecht[m]
I ad some thought while driving home: I don't think that this has to be solved via UI. Not tagged private posts only had to arrive where the private posts to the follower collection does land - and when replyiing the permission set of the original post has to be used.
#
heluecht[m]
The user him- (or her) self does not need to know that this post goes to a much smaller group of people, I think.