#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 :-)