#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
# 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
# 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.
# 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
# puckipedia https://github.com/digitalbazaar/php-json-ld
# 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.
# 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] 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.