#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
#
Loqi
HACKER TEEN PUCKIPEDIA 👩‍💻
#
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
#
Loqi
[inmysocks] I am pretty certain that the code that handles inventory management for #Pescatoria is going to be longer than the rest of the code combined.Also: #HashTag
#
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 :-)