flipboard.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
Welcome to Flipboard on Mastodon. A place for our community of curators and enthusiasts to inform and inspire each other. If you'd like to join please request an invitation via the sign-up page.

Administered by:

Server stats:

1.3K
active users

#fep_171b

0 posts0 participants0 posts today
Jupiter Rowland@<a href="https://fedi.ml/profile/pvagner" rel="nofollow noopener noreferrer" target="_blank">Peter Vágner</a> @<a href="https://poliverso.org/profile/dieguitux8623" rel="nofollow noopener noreferrer" target="_blank">Dieguito 🦝🧑🏻‍💻🍕</a> How conversations work is not unified all across the Fediverse. Even how <em>connections</em> work is not unified.<br><br>Mastodon has taken over the follower/followed principle from Twitter which is always illustrated with arrows with one point. A following B is illustrated with an arrow from A to B. A being followed by B is illustrated with an arrow from B to A. A and B following each other mutually is illustrated with one arrow from A to B and one arrow from B to A.<br><br>It appears to me that Friendica has adopted this to become more compatible with Mastodon. But its several descendants, created by Friendica's own creator, starting with Hubzilla, haven't.<br><br>Hubzilla, (streams) and Forte still have the bidirectional "connection" or "contact" as the default. It's illustrated with one arrow, but with one point on each end.<br><br>Also, all three understand a threaded conversation as an enclosed contruct entirely owned by the conversation starter. Everyone on these three who has the start post on their stream always actually has the whole thread on their stream.<br><br>In fact, all three have Conversation Containers implemented. This feature was <a href="https://fediversity.site/help/develop/en/Containers" rel="nofollow noopener noreferrer" target="_blank">originally created in the streams repository</a> in 2022. Forte has had it from the get-go as it started out as a fork of (streams). It was eventually turned into <a href="https://codeberg.org/silverpill/feps/src/branch/main/171b/fep-171b.md" rel="nofollow noopener noreferrer" target="_blank">FEP-171b</a> and backported to Hubzilla last year.<br><br>All three make sure that everyone who has a post on their stream also always has all comments on that post, at least those that are made after they have received the post.<br><br>This works on two basic principles:<br><ul><li>All comments go directly to the original poster because the original poster owns the thread.</li><li>Those who have the post automatically receive all comments from the original poster.</li></ul><br>In a pure Hubzilla/(streams)/Forte system, your above example would look like this:<br><ul><li>User 1 and User 2 are connected.</li><li>User 1 and User 3 are connected. (This doesn't even matter.)</li><li>User 2 and User 3 are connected.</li><li>User 2 and User 4 are connected.</li></ul>Much simpler than explaining everything with "following" and "being followed", isn't it?<br><br>Now, the conversation works like this.<br><ul><li>User 2 sends a public post, thus creating a Conversation Container of which they are the owner.<br>User 1, User 3 and User 4 receive the post.</li><li>User 3 comments on User 2's post.<br>The comment goes from User 3 to User 2, who is the owner of the conversation, and it is automatically forwarded to User 1 and User 4 who already have User 2's post on their streams.</li><li>User 4 comments on User 3's comment.<br>The comment goes from User 4 <em>past User 3</em> straight to User 2, who is the owner of the conversation, and it is automatically forwarded to User 1 and User 3 who already have User 2's post on their streams.</li></ul>The only mentioning that occurs here, if any, is User 4 mentioning User 3. This is not necessary for User 4's post to reach anyone. This is only necessary to make sure on Hubzilla (which doesn't have a tree view) that User 4 is replying to User 3's comment and not to User 2's post.<br><br>On Mastodon, for comparison, everything depends on who follows whom, who mentions whom and whose instance knows whose instance.<br><br>#<a class="" href="https://hub.netzgemeinde.eu/search?tag=Long" rel="nofollow noopener noreferrer" target="_blank">Long</a> #<a class="" href="https://hub.netzgemeinde.eu/search?tag=LongPost" rel="nofollow noopener noreferrer" target="_blank">LongPost</a> #<a class="" href="https://hub.netzgemeinde.eu/search?tag=CWLong" rel="nofollow noopener noreferrer" target="_blank">CWLong</a> #<a class="" href="https://hub.netzgemeinde.eu/search?tag=CWLongPost" rel="nofollow noopener noreferrer" target="_blank">CWLongPost</a> #<a class="" href="https://hub.netzgemeinde.eu/search?tag=FediMeta" rel="nofollow noopener noreferrer" target="_blank">FediMeta</a> #<a class="" href="https://hub.netzgemeinde.eu/search?tag=FediverseMeta" rel="nofollow noopener noreferrer" target="_blank">FediverseMeta</a> #<a class="" href="https://hub.netzgemeinde.eu/search?tag=CWFediMeta" rel="nofollow noopener noreferrer" target="_blank">CWFediMeta</a> #<a class="" href="https://hub.netzgemeinde.eu/search?tag=CWFediverseMeta" rel="nofollow noopener noreferrer" target="_blank">CWFediverseMeta</a> #<a class="" href="https://hub.netzgemeinde.eu/search?tag=Fediverse" rel="nofollow noopener noreferrer" target="_blank">Fediverse</a> #<a class="" href="https://hub.netzgemeinde.eu/search?tag=Mastodon" rel="nofollow noopener noreferrer" target="_blank">Mastodon</a> #<a class="" href="https://hub.netzgemeinde.eu/search?tag=Friendica" rel="nofollow noopener noreferrer" target="_blank">Friendica</a> #<a class="" href="https://hub.netzgemeinde.eu/search?tag=Hubzilla" rel="nofollow noopener noreferrer" target="_blank">Hubzilla</a> #<a class="" href="https://hub.netzgemeinde.eu/search?tag=Streams" rel="nofollow noopener noreferrer" target="_blank">Streams</a> #<a class="" href="https://hub.netzgemeinde.eu/search?tag=%28streams%29" rel="nofollow noopener noreferrer" target="_blank">(streams)</a> #<a class="" href="https://hub.netzgemeinde.eu/search?tag=Forte" rel="nofollow noopener noreferrer" target="_blank">Forte</a> #<a class="" href="https://hub.netzgemeinde.eu/search?tag=Conversations" rel="nofollow noopener noreferrer" target="_blank">Conversations</a> #<a class="" href="https://hub.netzgemeinde.eu/search?tag=FEP_171b" rel="nofollow noopener noreferrer" target="_blank">FEP_171b</a> #<a class="" href="https://hub.netzgemeinde.eu/search?tag=ConversationContainers" rel="nofollow noopener noreferrer" target="_blank">ConversationContainers</a>
Jupiter Rowland@<a href="https://anonsys.net/profile/hamiller_friendica" rel="nofollow noopener noreferrer" target="_blank">Hamiller Friendica</a> Es gibt auch noch <a href="https://codeberg.org/fediverse/fep/src/branch/main/fep/171b/fep-171b.md" rel="nofollow noopener noreferrer" target="_blank">FEP-171b "Conversation Containers"</a>. Das basiert auf etwas, was (streams) vor etwa einem Jahr eingeführt hat. Bis dahin hatte (streams) dasselbe Konversationsmodell wie Hubzilla, das wieder dem von Friendica ähnlich ist. Und vor einer Woche hat Hubzilla selbst Conversation Containers eingeführt.<br><br>Davon mal abgesehen könnte das gesamte Threadiverse (Lemmy, Mbin, PieFed...) ohne ein Konzept von Konversationen auch nicht funktionieren.<br><br>Es geht also schon. Auch mit reinem ActivityPub. Die Entwickler müssen nur wollen. Aber Mastodon will im Grunde nichts, was Twitter vor Musk nicht auch hatte.<br><br>CC: @<a href="https://moppels.bar/@BrauchC" rel="nofollow noopener noreferrer" target="_blank">Christiane Brauch :calckey:</a><br><br>#<a class="" href="https://hub.netzgemeinde.eu/search?tag=Long" rel="nofollow noopener noreferrer" target="_blank">Long</a> #<a class="" href="https://hub.netzgemeinde.eu/search?tag=LongPost" rel="nofollow noopener noreferrer" target="_blank">LongPost</a> #<a class="" href="https://hub.netzgemeinde.eu/search?tag=CWLong" rel="nofollow noopener noreferrer" target="_blank">CWLong</a> #<a class="" href="https://hub.netzgemeinde.eu/search?tag=CWLongPost" rel="nofollow noopener noreferrer" target="_blank">CWLongPost</a> #<a class="" href="https://hub.netzgemeinde.eu/search?tag=FediMeta" rel="nofollow noopener noreferrer" target="_blank">FediMeta</a> #<a class="" href="https://hub.netzgemeinde.eu/search?tag=FediverseMeta" rel="nofollow noopener noreferrer" target="_blank">FediverseMeta</a> #<a class="" href="https://hub.netzgemeinde.eu/search?tag=CWFediMeta" rel="nofollow noopener noreferrer" target="_blank">CWFediMeta</a> #<a class="" href="https://hub.netzgemeinde.eu/search?tag=CWFediverseMeta" rel="nofollow noopener noreferrer" target="_blank">CWFediverseMeta</a> #<a class="" href="https://hub.netzgemeinde.eu/search?tag=Hubzilla" rel="nofollow noopener noreferrer" target="_blank">Hubzilla</a> #<a class="" href="https://hub.netzgemeinde.eu/search?tag=Streams" rel="nofollow noopener noreferrer" target="_blank">Streams</a> #<a class="" href="https://hub.netzgemeinde.eu/search?tag=%28streams%29" rel="nofollow noopener noreferrer" target="_blank">(streams)</a> #<a class="" href="https://hub.netzgemeinde.eu/search?tag=ConversationContainers" rel="nofollow noopener noreferrer" target="_blank">ConversationContainers</a> #<a class="" href="https://hub.netzgemeinde.eu/search?tag=FEP_171b" rel="nofollow noopener noreferrer" target="_blank">FEP_171b</a>
silverpill<p>Existing implementations of Conversation Containers (<a class="hashtag" href="https://mitra.social/collections/tags/streams" rel="nofollow noopener noreferrer" target="_blank">#Streams</a> and <a class="hashtag" href="https://mitra.social/collections/tags/hubzilla" rel="nofollow noopener noreferrer" target="_blank">#Hubzilla</a>) add a <code>context</code> property to top-level posts of conversations. This is also what <a href="https://codeberg.org/fediverse/fep/src/commit/6ecc6957ac17d2fb6176628f572ced26ae3cd2a1/fep/171b/fep-171b.md#top-level-post" rel="nofollow noopener noreferrer" target="_blank">FEP-171b</a> currently prescribes.</p><p>However, as I noted in the FEP, this is not consistent with <a href="https://codeberg.org/fediverse/fep/src/commit/8d2c84a82dd1e8ff9b0f9bfa91bfa214400c74de/fep/7888/fep-7888.md" rel="nofollow noopener noreferrer" target="_blank">FEP-7888</a> recommendations.<br><code>context</code> property is supposed to be used for grouping objects, and in Conversation Containers we have a collection of conversation activities, not posts.</p><p>A property that links top-level post to its conversation container should be called differently. For example, <code>threadContext</code> or <code>conversationContext</code></p><pre><code>Note.threadContext == Add.target.id </code></pre><p><code>context</code> can still be used, but for linking to the collection of posts (although I would prefer to use <code>thread</code> for that purpose).</p><p><a class="hashtag" href="https://mitra.social/collections/tags/fep_171b" rel="nofollow noopener noreferrer" target="_blank">#fep_171b</a> <a class="hashtag" href="https://mitra.social/collections/tags/conversationcontainers" rel="nofollow noopener noreferrer" target="_blank">#ConversationContainers</a></p>
silverpill<p>FEP-171b update: <a href="https://codeberg.org/fediverse/fep/pulls/454" rel="nofollow noopener noreferrer" target="_blank">https://codeberg.org/fediverse/fep/pulls/454</a></p><p>Some clarifications, and an explanation of why FEP-fe34 <a href="https://codeberg.org/fediverse/fep/src/branch/main/fep/171b/fep-171b.md#authentication" rel="nofollow noopener noreferrer" target="_blank">authentication</a> is important:</p><p>&gt;The processing of unauthenticated embedded activities is strongly discouraged. If such activities are not rejected by the consumer, a malicious conversation owner may be able to perform a cache poisoning attack and overwrite any actor or a post in consumer's local cache by sending a forged Update(Actor) or Update(Object) wrapped in an Add activity.</p><p>This is not difficult to do. Someone makes a post and says <em>"hey everyone, join my new @group about &lt;popular_topic&gt;"</em>. People join and the next day Gargron is messaging them and asking to fund Mastodon's new Trust &amp; Safety initiative by donating bitcoins.</p><p>Similar attacks might be possible against FEP-1b12 implementations that don't authenticate announced activities.</p><p><a class="hashtag" href="https://mitra.social/collections/tags/fep_171b" rel="nofollow noopener noreferrer" target="_blank">#fep_171b</a> <a class="hashtag" href="https://mitra.social/collections/tags/conversationcontainers" rel="nofollow noopener noreferrer" target="_blank">#ConversationContainers</a> <a class="hashtag" href="https://mitra.social/collections/tags/activitypub" rel="nofollow noopener noreferrer" target="_blank">#ActivityPub</a></p>