#social 2018-09-07
2018-09-07 UTC
xmpp-social, vasilakisfil and cwebber2 joined the channel
# heluecht[m] I'm currently creating the profile export. How do I have to do it with "vcard" data? Is this the correct way:
# heluecht[m] sent a long message: heluecht[m]_2018-09-07_21:13:12.txt <https://matrix.cybre.space/_matrix/media/v1/download/cybre.space/CWUXHYMrXWbxQhjxqglZGjUi>
# heluecht[m] Or do I have to use "vcard:" in front of every of these fields?
# nightpool[m] yes you'll need to use vcard:region, etc
# nightpool[m] we don't import them all to avoid polluting our namespace
# heluecht[m] Who is "we"?
# nightpool[m] ActivityStreams
# nightpool[m] I assume you're asking about an activitystreams document, given the context of the channel
# heluecht[m] I'm working on the AP implementation of Friendica.
# heluecht[m] Friendica does have these fields, so I want to export them in the profile as well.
# nightpool[m] it depends ultimately on the @context of your document
# heluecht[m] My current test looks like this:
# heluecht[m] sent a long message: heluecht[m]_2018-09-07_21:18:31.txt <https://matrix.cybre.space/_matrix/media/v1/download/cybre.space/VzmrnVmdLyBrHQSJEeSSVfua>
# nightpool[m] you can change your @context to make them look however you want, but explicitly namespacing them as vcard:* properties is probably best
# heluecht[m] I'm orientating on the look of Pleroma and Mastodon.
# nightpool[m] do you use all of those context items?
# heluecht[m] Most of this is currently just copied.
# heluecht[m] But I guess in the end I will use most of them, since I want to make Friendica posts look good on these systems.
# nightpool[m] sure
# heluecht[m] This "manuallyApprovesFollowers" for example seems to perfectly represents the connection process at Friendica.
# heluecht[m] Per standard a contact request has to be approved.
# heluecht[m] The "sensitive" should be a represantion of the "nsfw" field in our profile.
# heluecht[m] Is there some validator that could check my test data?
# nightpool[m] json-ld probably has some but I've never used it.....
# heluecht[m] Possibly with checking if the key looks fne.
# heluecht[m] Okay.
# nightpool[m] especially because I'm not sure how well they'd be able to distinguish "I want to refer to these specific vcard terms" vs "I'm happy to refer to anything named Home"
# nightpool[m] although I guess if the URIs werent defined in the context that could be a detectable error
# heluecht[m] Using the vcard is suggested in the AP reference.
# heluecht[m] I'm unsure about some fields in the "@context". Is it only valid for the current document?
# nightpool[m] @context is only for the current document, yes
# heluecht[m] Because: There are fields in the context of Pleroma and Mastodon that aren't used in the profile but the actions.
# nightpool[m] Yeah. I can't speak for pleroma, but on mastodon we just keep the context the same to simplify serialization code
# nightpool[m] it's not harmful to have unused properties in there, but it's not useful either.
# heluecht[m] Ah, okay. I think it is ugly, having unused stuff there. So I will remove everything that i don't need.
# heluecht[m] What is the "sensitive" used for?
# heluecht[m] And would it be an idea for flagging "nsfw" accounts?
# nightpool[m] yep!
# heluecht[m] Ah okay.
# nightpool[m] (that page is currently pretty out of date because we haven't finished standardizing the extensions process yet, but it does include some of the properties)
# heluecht[m] What's with the ID of the "publicKey"? Does it need to be retrievable or is it just some value?
# heluecht[m] I'm lazy, so I don't want to make too much work ;-)
# nightpool[m] the id is used to reference the public key when doing http signatures
# nightpool[m] you can do what mastodon does and use a fragment identifier to reference it in the existing document
# heluecht[m] Yeah, I already compared Mastodon/Pleroma and Hubzilla in this point.
# nightpool[m] hubzilla's AP impl is pretty broken
# nightpool[m] i wouldn't suggest using it as a reference.
# heluecht[m] Yeah, it looked different. I already recognized this.
# nightpool[m] no worries, just wanted to point it out.
# nightpool[m] i think most of it is working now, but we (mastodon) had to field a lot of bugs when it first came online and i don't know if all of them got fixed.
# heluecht[m] How is Pleroma working with Mastodon? Pleroma looks even slimmer to me.
# nightpool[m] pleroma is totally fine
# heluecht[m] And which implementations are out there, where I could have a look at as well?
# heluecht[m] I would like to scan the profiles, outboxes, and so on.
# heluecht[m] I'm someone who learns from examples, not from documentations.
# nightpool[m] hmm. mastodon, pleroma, kroeg (rust and c#), peertube, write.as are the major ones I know about
# nightpool[m] kroeg is very complete
# nightpool[m] there are some other smaller impls for single-purpose bots or similar stuff
# heluecht[m] Do you have some profile URLs of kroeg or peertube?
# nightpool[m] https://video.blender.org/accounts/blender is a peertube one
# nightpool[m] https://puckipedia.com/ is i think the only currently running kroeg instance
# heluecht[m] Peertube has got some fields that I hadn't seen before, like "uuid"
# nightpool[m] i'm not sure what it uses that for
# heluecht[m] We use something similar for the Diaspora protocol.
# nightpool[m] the id property should be unique and universal (it has to be, cause it's an uri.....)
# heluecht[m] I'm asking how I could propagate hashtags for the profile. This doesn't seem to be implemented by anyone.
# nightpool[m] mmm i think mastodon has it
# nightpool[m] i'm just having trouble finding an example
# nightpool[m] ah, it looks like we currently don't do the correct thing here
# nightpool[m] we only federate hashtags outward (as links) we don't currently parse them when reading profiles (because there's no concept in mastodon of looking through profiles by hashtag)
# nightpool[m] the Correct thing would be to include them in the account's tag array, i assume
# heluecht[m] This thing where currently the emojis are?
# nightpool[m] right
# heluecht[m] I guess for the start I will igore this.
# nightpool[m] you can see how we do it for statuses here: https://kitty.town/@inmysocks/100656097926961126.json
# nightpool[m] you'd do the same for accounts, i'd imagine
# heluecht[m] BTW: How does Mastodon knows that some profile is now reachable via AP as well? (When the connection process had been done for Ostatus)
# nightpool[m] webfinger, i think
# nightpool[m] been a while since i touched that part of the code
# heluecht[m] Would be good to know. Since at some point during my development I will need to receive data.
# heluecht[m] But not too early ;-)
# nightpool[m] my understanding is that if you include a activitystreams type link in your webfinger with rel=me, mastodon will try to migrate to it automatically
# heluecht[m] Would it do a fallback if something doesn't work or is it oneway?
# nightpool[m] hmm
# nightpool[m] that's a good question
# nightpool[m] i know it tries to fall back as appropriate, but i don't know how good it is at doing so
# heluecht[m] Okay. I guess I will see. I'm coding on a semi production system. And yes, I know that this is dirtx. But it works astounishing well.
# heluecht[m] My users do know that things sometimes can break - but they always are having the fresh stuff and they are willingly to report bugs.
# nightpool[m] well, good luck :P
# heluecht[m] At work I'm working in a comparable way. Often we do have to make changes directly at production systems.
# heluecht[m] I'm programmer for ERP systems.
# nightpool[m] oh geeze :O
# heluecht[m] Many customers do have test servers - but not all.
# nightpool[m] i occasionally code stuff in production on cybre.space but i would be so terrified if I didn't have a dev environment and staging server at my work
# heluecht[m] We do have a wide variety in this direction. We do have customers with "productive", "staging" and "pre-prod" servers.
# heluecht[m] We do have customers who can do snapshots of their system so you can always test on fresh data.
# heluecht[m] And we do have customers who don't even have test servers. Coding there is always like a heart surgery.
# heluecht[m] Since you surely never heard of a fruit+vegetable shortage in Germany, it seems to work well in most cases :-D
# nightpool[m] for sure
# heluecht[m] Something different: How is Mastodon handling the inboxes? Would it be okay to send the whole stuff solely to the "sharedInbox"?
# nightpool[m] mastodon handles the inboxes identically
# heluecht[m] Since the "to", "cc", "bto" and "bcc" headers tells where the stuff is send to, it shouldn't matter, I guess?
# nightpool[m] this is not incredibly activitypub-compliant though
# nightpool[m] in pure activitypub-land the to, cc, etc is really supposed to be a guide for the sending server
# heluecht[m] So I could send stuff to your personal inbox that isn't directed to you, but another person on your server - and then only the other person, but not you, would get the content?
# nightpool[m] that's how mastodon currently works
# nightpool[m] like I said, it's not the best way of doing things
# heluecht[m] That was exactly how I would implement it as well :-)