So many features!
Fediverse
A community to talk about the Fediverse and all it's related services using ActivityPub (Mastodon, Lemmy, Mbin, etc).
If you wanted to get help with moderating your own community then head over to !moderators@lemmy.world!
Rules
- Posts must be on topic.
- Be respectful of others.
- Cite the sources used for graphs and other statistics.
- Follow the general Lemmy.world rules.
Learn more at these websites: Join The Fediverse Wiki, Fediverse.info, Wikipedia Page, The Federation Info (Stats), FediDB (Stats), Sub Rehab (Reddit Migration)
It's this kind of thinig that makes me think of PieFed as just a pile of hacks with no serious consideration for the Fediverse
Designating which comment is an answer involves federating a new Activity:
{
"id": "https://piefed.social/activities/answer/hgb4iO4b8UAFRTn",
"type": "ChooseAnswer",
"actor": "https://piefed.socialz/u/rimu",
"object": "https://piefed.ngrok.app/comment/224",
"@context": ["https://www.w3.org/ns/activitystreams", "https://w3id.org/security/v1"],
"audience": "https://crust.piefed.social/c/linux_questions",
"to": ["https://www.w3.org/ns/activitystreams#Public"],
"cc": ["https://crust.piefed.social/c/linux_questions"]
}
There are at least three different ways to implement this in a way compatible with ActivityPub:
- Send an "as:accept" activity with the comment as the object.
- Add an attribute for the comment indicating that it has been selected.
- Create a collection for chosen answers, add to the post object.
And even if this type of new activity was a necessity, they could add their own extensions via a proper JSON-LD context definition. But they completely disregard JSON-LD, which means that they expect other servers to either (1) adopt their ad-hoc vocabulary or (2) ignore it completely and keep this idea that "Only PieFed has these features".
Feel free to open a PR: https://codeberg.org/rimu/pyfedi
This is not a matter of "opening a PR". The fact that they are adding features in this completely ad-hoc manner shows that they are prioritizing features for piefed over interoperability with the wider Fediverse. If my job was to go around convincing every AP developer that their approach is flawed and to fix their mistakes, I'd be doing nothing else with my life.
What I can do though is to create a framework that makes it easy to work with JSON-LD and occasionally file bug reports.
An aside: this "feel free to open a PR" - without any justification or discussion about the merit of issue at hand - is the standard passive-aggressive response from every developer who is not interested in making the change. It's sad to see that it's also becoming the go-to retort for the project cheerleaders...
How is creating a new Activity type preventing compatibility with the rest of the Fediverse? Is there any other Fediverse platform that has a similar feature that Piefed could have been replicated?
When you're the first one doing something with ActivityPub, you have to create it yourself. This is not perfect, and you raise valid points, hence my suggestion to engage on the Codeberg.
On the other hand, for other Piefed features inspired by existing implementations such as the emoji reactions, the feature is compatible with those platforms which already supported the feature.
Regarding your last paragraph, picking the one feature for which the implementation can be improved and saying "It’s this kind of thinig that makes me think of PieFed as just a pile of hacks with no serious consideration for the Fediverse" while it's clearly not true seems fully aggressive.
How is creating a new Activity type preventing compatibility with the rest of the Fediverse?
If they chose to use any of the 3 solutions I described, there would be no changes on the other servers to receive and parse the message. But because it uses a different type, now those serves that want to store the information about an answer being accepted have to write code specifically to handle messages from PieFed.
It also works in the other direction: if I want to send an "accept" activity for a comment, I could do it from my server and PieFed could easily understand it as well. But because they want to create their own ad-hoc solution, then they won't be able to.
When you’re the first one doing something with ActivityPub, you have to create it yourself.
No, you don't. The whole point of Linked Data and RDF is that nodes can send data to each other without having to agree on any new protocol
Piefed features inspired by existing implementations such as the emoji reactions
You are only making my point. Emojis have already a defined extension, this is why it's easier to adopt it.
picking the one feature
It's not just that. They also proposed some ad-hoc activities for moderation in the past and their "import community" works by taking posts and rewriting them as if they originated in the piefed instance. These are all signs that the devs either don't understand or don't care about JSON-LD as an standard.
This is just my personal opinion, so feel free to disregard.
But I feel you raise some decent points. But you‘re commenting them in such an adversarial manner that it makes it unlikely the piefed devs will take you seriously.
No more time for this today.
Merry Christmas everyone.
There are people whose concerns it is worth listening to. I'm sure they will show up eventually.
Happy holidays!
What ad hoc activities?
And community migration being fully realised has massive fediverse support.
'ChooseAnswer' is not an object type defined by activitystreams, and the json-ld context provided by PieFed server has no extension referring to it.
This means that any server ingests messages to an inbox using RDF will see this document and think "this is invalid" and drop it. If it sent as:accept instead, it would work without any modification.
Re: community migration, there is at least one other person besides me that said "when I post something to one community, and PieFed says that I also said that on another place when I didn't, then the server is fabricating Information".
To illustrate the point: if suddenly we adopted JSON-LD signatures as a message authentication system, then all messages from imported communities would fail.
Yes, there are some people against it. But the majority of the fediverse support the idea of modular communities.
You can have "modular communities" without violating basic compatibility with the standards. But it is harder to do it and the end users don't see the potential issues, they will gladly cheer you to do it in the easiest way.
Yeah, but if I recall you specifically - in the past (activitypub issues aside) - took specific issue with the concept of moving a user's posts, subscribers etc to another instance via hypothetical community migration.
"feel free to open a PR" - without any justification or discussion about the merit of issue at hand - is the standard passive-aggressive response from every developer who is not interested in making the change.
Man, the entitlement. Especially coming from the only person I know of who is here with the explicit goal of monetizing the platform.
There's a way of voicing concerns and criticisms in a way that is constructive, helpful, and in good faith, inviting to an open discussion with concerned parties. Yours is not that.
Believing that the we need professional hosting providers to have a sustainable Fediverse != "Monetizing the platform".
Besides, I've already voiced similar concerns through different venues. The devs made it clear they are not interested in developing software with a focus on standards compliance. They care about throwing as many features as possible to their system.
It's fine, it's their project, they can do whatever they want. It doesn't mean that I don't have the right to have an opinion about it.
I'm confused - this seems like idiomatic way to add new features in activity pub? What's actually missing here?
What’s actually missing here?
At the very least, it is missing a context definition in the JSON-LD document that describes the term. What does a document of type ChooseAnswer mean if the provided @context entry only makes references to activitystreams and security/v1 namespaces?
More than that, it is missing a clear need. There is no need to specify a new vocabulary term when as:accept is right there: Why define a new term when something like
{
"id": "https://piefed.social/activities/answer/hgb4iO4b8UAFRTn",
"type": "Accept",
"actor": "https://piefed.socialz/u/rimu",
"object": "https://piefed.ngrok.app/comment/224",
"target": "https://piefed.ngrok.app/post/123",
"@context": ["https://www.w3.org/ns/activitystreams", "https://w3id.org/security/v1"],
"audience": "https://crust.piefed.social/c/linux_questions",
"to": ["https://www.w3.org/ns/activitystreams#Public"],
"cc": ["https://crust.piefed.social/c/linux_questions"]
}
can represent the information that a comment has been accepted as a good answer to the question?
I can’t wait for my instance to update, this all sounds great!
Comments can be marked as an Answer, like on StackOverflow.
Was anything changed about how this federates? If no, what protections are in place against someone just patching their instance software to always return an "answer": true on Notes?
That won't have any effect unless the author of the Note is the same as the author of the original post. You're welcome to try it.
The json structure used during federation does not limit the kind of access control checks we can do.
I don't think so, but I wasn't working on it. Tagging @rimu@piefed.social for awareness.
To do this, they would need to be an admin running a modified version of the software no? If that was really happening with any kind of regularity, it would surely be grounds for defederation.
In any case, if this were to become an issue, then I am sure we can change it. We have already had to change how community flair federates a few times to try to keep up with lemmy's PRs on the feature to try to make sure it is compatible.
Is it me or does PieFed sound like a horse's piaffe?
Love to see the progress and new features! Are there any apps out there keeping pace with the latest?