photog.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
🌈 An inclusive place for your photos, silliness, and convos! 🌈

Administered by:

Server stats:

253
active users

#activitystreams

0 posts0 participants0 posts today
Daenney<p>After toiling away at this for a few months, I'm releasing two new Go projects for the fediverse today:</p><ul><li><a href="https://codeberg.org/daenney/longdistance" rel="nofollow noopener" target="_blank">longdistance</a>, a JSON-LD processor.</li><li><a href="https://codeberg.org/daenney/pana" rel="nofollow noopener" target="_blank">pana</a>, an ActivityStreams library built on longdistance.</li></ul><p>I built these projects with the hope to make it easier for folks to get started building on the fediverse themselves. You can read a bit about this <a href="https://logoi.dny.dev/2025/04/16/pana-fediverse-golang-library/" rel="nofollow noopener" target="_blank">on my blog</a>.</p><p>(If you happen to have computer touchers in your followers, I would appreciate a boost.)</p><p><a href="https://ap.dny.social/tags/golang" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>golang</span></a> <a href="https://ap.dny.social/tags/linkeddata" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>LinkedData</span></a> <a href="https://ap.dny.social/tags/activitystreams" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ActivityStreams</span></a></p>
Shane Becker<p><span class="h-card" translate="no"><a href="https://mastodon.social/@paulca" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>paulca</span></a></span> I wonder if there's prior art from <a href="https://ruby.social/tags/indieweb" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>indieweb</span></a> land that could be used and/or expanded upon?</p><p><a href="https://indieweb.org/Category:building-blocks" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">indieweb.org/Category:building</span><span class="invisible">-blocks</span></a></p><p><a href="https://ruby.social/tags/microformats" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>microformats</span></a> and <a href="https://ruby.social/tags/ActivityStreams" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ActivityStreams</span></a> (which begat <a href="https://ruby.social/tags/ActivityPub" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ActivityPub</span></a> already has a big vocabulary of things (nouns and verbs)</p><p>The <a href="https://ruby.social/tags/indeweb" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>indeweb</span></a> outlook on auth is that your domain is your UID</p><p>Payments… no real idea/suggestion<br>The allure of a a Just Works™ universal payments system on the web has been there since the start. That territory seems more fragmented than ever.</p>
just small circles 🕊<p><span class="h-card" translate="no"><a href="https://mastodon.social/@frankstrater" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>frankstrater</span></a></span> <span class="h-card" translate="no"><a href="https://mastodon.social/@dansup" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>dansup</span></a></span> <span class="h-card" translate="no"><a href="https://framapiaf.org/@peertube" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>peertube</span></a></span></p><p>Other than that.. I started calling current AS/AP fedi the "as soon as possible" fediverse, where necessarily early app implementations served as the de-facto reference implementations for the <a href="https://social.coop/tags/W3C" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>W3C</span></a> <a href="https://social.coop/tags/ActivityStreams" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ActivityStreams</span></a> and <a href="https://social.coop/tags/ActivityPub" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ActivityPub</span></a> open standards.</p><p>At serious cost: Ever increasing <a href="https://social.coop/tags/ProtocolDecay" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ProtocolDecay</span></a> and subsequent <a href="https://social.coop/tags/WhackaMoleAdoption" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>WhackaMoleAdoption</span></a> i.e. retaining app-by-app interop pipes against moving release targets.</p><p>When is Video domain getting standardized? That's my question.</p>
洪 民憙 (Hong Minhee)<p>I'm looking for your opinions from the developers of the fediverse.</p> <p>A common HTML web page can contain related links via the <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link" rel="nofollow noopener" target="_blank"><code>&lt;link&gt;</code></a> tag. I would like to do the same for Activity Streams objects, for example:</p> <pre><code>{ "@context": "https://www.w3.org/ns/activitystreams", "id": "https://writings.hongminhee.org/ap/2024/12/a-year-with-the-fediverse.json", "type": "Article", "name": "A year with the fediverse", "content": "2024 was truly a year where I was deeply immersed in the fediverse. …", "url": "https://writings.hongminhee.org/2024/12/a-year-with-the-fediverse/", "attachment": [ { "type": "Link", "rel": "alternate", "hreflang": "ko", "href": "https://writings.hongminhee.org/2024/12/a-year-with-the-fediverse/index.ko-hang-kr.html", "mediaType": "text/html" }, { "type": "Link", "rel": "alternate", "hreflang": "ja", "href": "https://writings.hongminhee.org/2024/12/a-year-with-the-fediverse/index.ja.html", "mediaType": "text/html" } ] } </code></pre> <p>Do you think this makes sense, and would it be appropriate to put <a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-link" rel="nofollow noopener" target="_blank"><code>Link</code></a> objects in the <a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-attachment" rel="nofollow noopener" target="_blank"><code>attachment</code></a>?</p> <p><a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/fedidev" target="_blank">#<span>fedidev</span></a> <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/ActivityPub" target="_blank">#<span>ActivityPub</span></a> <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/ActivityStreams" target="_blank">#<span>ActivityStreams</span></a></p>
Asta [AMP]<p><span>On that note, I think the need for a community owned, distributed search engine is higher than ever. Generative AI is going to continue filling Google, Bing, etc, with trash and it's pretty much a goal of any fascist or authoritarian regime to control information. One way you can do that is just totally sending the signal to noise ratio down to 0.<br><br>I believe we can use </span><a href="https://fire.asta.lgbt/tags/activityPub" rel="nofollow noopener" target="_blank">#activityPub</a> and <a href="https://fire.asta.lgbt/tags/activityStreams" rel="nofollow noopener" target="_blank">#activityStreams</a> as a basis for a distributed search engine. Human curation of data, strict integrity measures, opt-in federation and auditing can help keep relevant, genuine information in and bad actors <i>out</i><span>. I really think we need to do this.<br><br>I am working on it and have various pieces in place but it is admittedly slow going since I am also working on other things.<br><br></span><a href="https://fire.asta.lgbt/tags/search" rel="nofollow noopener" target="_blank">#search</a> <a href="https://fire.asta.lgbt/tags/searchEngines" rel="nofollow noopener" target="_blank">#searchEngines</a> <a href="https://fire.asta.lgbt/tags/knowledgePreservation" rel="nofollow noopener" target="_blank">#knowledgePreservation</a> <a href="https://fire.asta.lgbt/tags/tech" rel="nofollow noopener" target="_blank">#tech</a></p>
Jan Wildeboer 😷:krulorange:<p>Now that <a href="https://social.wildeboer.net/tags/ActivityPub" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ActivityPub</span></a> <a href="https://social.wildeboer.net/tags/ActivityStreams" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ActivityStreams</span></a> starts to get real traction, the infighting and ad hominem attacks start. Le sigh. Why, people? Why?</p>
julian<p><strong>re: better handling of non-notes by Mastodon</strong></p> <p>Toward the end of a day 2 FediForum session, <a href="https://mastodon.social/@pfefferle" rel="nofollow noopener" target="_blank">@pfefferle@mastodon.social</a>, <a href="https://manton.org/activitypub/manton" rel="nofollow noopener" target="_blank">@manton@manton.org</a>, and I sidetracked a bit and discussed once again the tendency for implementors to shift away from more suitable ActivityStreams Activities to <code>as:Note</code>.</p> <p>Specifically, it was the demo/session by <a href="https://podcastindex.social/@samsethi" rel="nofollow noopener" target="_blank">@samsethi@podcastindex.social</a> re: TrueFans. Instead of federating out an <code>as:Listen</code>, they send <code>as:Note</code>, and it's a fairly safe bet that this is because the content cannot be richly represented in Mastodon. The same story played out with Mattias and the WordPress plugin, and myself with NodeBB.</p> <p>Secondly, back in March/April and again in May, <a href="https://oisaur.com/@renchap" rel="nofollow noopener" target="_blank">@renchap@oisaur.com</a> <a href="https://github.com/mastodon/mastodon/issues/29981#issuecomment-2110758130" rel="nofollow noopener" target="_blank">mentioned that resolving this was of some interest to the Mastodon team</a>:</p> <blockquote> <p>We will work on improving the display of non-Note content in the next Mastodon version</p> </blockquote> <p><em>To be clear</em>, getting Mastodon to suitably process <code>as:Article</code>/<code>as:Listen</code>/<code>as:Offer</code> or any number of other activities <strong>is not what the ForumWG wants to accomplish</strong>. It's not up to Mastodon to adapt to the variety of content on the fediverse, but rather that its fallback handling needs to improve <em>just enough</em> so that its baseline rendering is acceptable to more implementors and their users.</p> <p>As concise and actionable as I can make it:</p> <ol> <li>Mastodon allows a subset of HTML for <code>as:Note</code>. This subset <strong>is good enough</strong>, but <code>content</code> in <em>non-notes</em> has all html stripped. Keep consistency here and allow the same subset of HTML.</li> <li>Non-note <code>content</code> is truncated. This is no longer necessary due to the addition of the expand button. The wonderful thing is this standardization of behaviour actually <em>simplifies</em> Mastodon code.</li> <li>Instead of appending the object URL to the status content, promote the "Open Original Page" button out of the overflow menu. It's more than okay to defer to the original site vis-a-vis presentation and allow the user a smooth exit if desired (<code>target="_top"</code> would be okay too if you're worried!)</li> </ol> <p><strong>That's it</strong>.</p> <p>You could even skip the third point, but even with 1 and 2 achieved this would sufficiently raise the baseline behaviour <em>just enough</em> that I would immediately update NodeBB to send <code>as:Article</code> for new topics, and I am certain <a href="https://mastodon.social/@pfefferle" rel="nofollow noopener" target="_blank">@pfefferle@mastodon.social</a> would adjust his defaults as well.</p> <p>Lastly, <a href="https://oisaur.com/@renchap" rel="nofollow noopener" target="_blank">@renchap@oisaur.com</a>, I'm sure I can speak for everyone at FediForum when I say that it was wonderful to see representatives from Mastodon (that of course includes <a href="https://macaw.social/@andypiper" rel="nofollow noopener" target="_blank">@andypiper@macaw.social</a> as well) in attendance. It means a lot to me personally that you were there, and sends a signal that Mastodon continues to desire broader inter-compatibility.</p>
Tantek Çelik<p>Good W3C SocialCG telcon yesterday morning.<br><br>Minutes: <a class="" href="https://www.w3.org/wiki/SocialCG/2024-08-02" rel="nofollow noopener" target="_blank">https://www.w3.org/wiki/SocialCG/2024-08-02</a><br><br>Appreciate working with <a class="" href="https://cosocial.ca/@evan" rel="nofollow noopener" target="_blank">@evan@cosocial.ca</a> <a class="" href="https://mastodon.mit.edu/@dmitriz" rel="nofollow noopener" target="_blank">@dmitriz@mastodon.mit.edu</a> <a class="" href="https://mastodon.social/@TallTed" rel="nofollow noopener" target="_blank">@TallTed@mastodon.social</a> <a class="" href="https://snarfed.org" rel="nofollow noopener" target="_blank">@snarfed.org</a> Lisa a <a class="" href="https://fosstodon.org/@AaronNGray" rel="nofollow noopener" target="_blank">@AaronNGray@fosstodon.org</a> <a class="" href="https://mastodon.social/@bobwyman" rel="nofollow noopener" target="_blank">@bobwyman@mastodon.social</a> <a class="" href="https://mastodon.social/@by_caballero" rel="nofollow noopener" target="_blank">@by_caballero@mastodon.social</a> <a class="" href="https://j12t.social/@j12t" rel="nofollow noopener" target="_blank">@j12t@j12t.social</a> <a class="" href="https://social.technoetic.com/@steve" rel="nofollow noopener" target="_blank">@steve@social.technoetic.com</a> <a class="" href="https://hachyderm.io/@thisismissem" rel="nofollow noopener" target="_blank">@thisismissem@hachyderm.io</a><br><br><a class="" href="https://indieweb.social/tags/W3C" rel="nofollow noopener" target="_blank">#<span class="p-category">W3C</span></a> <a class="" href="https://indieweb.social/tags/SocialCG" rel="nofollow noopener" target="_blank">#<span class="p-category">SocialCG</span></a> <a class="" href="https://indieweb.social/tags/20240802" rel="nofollow noopener" target="_blank">#<span class="p-category">20240802</span></a> <a class="" href="https://indieweb.social/tags/2024_215" rel="nofollow noopener" target="_blank">#<span class="p-category">2024_215</span></a> <a class="" href="https://indieweb.social/tags/ActivityPub" rel="nofollow noopener" target="_blank">#<span class="p-category">ActivityPub</span></a> <a class="" href="https://indieweb.social/tags/ActivityStreams" rel="nofollow noopener" target="_blank">#<span class="p-category">ActivityStreams</span></a> <a class="" href="https://indieweb.social/tags/relAuthor" rel="nofollow noopener" target="_blank">#<span class="p-category">relAuthor</span></a></p>
Ed Summers<p>This is a great presentation about how Library of Congress and the Program for Cooperative Cataloging are adding LCCN identifiers to <a href="https://social.coop/tags/Wikidata" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Wikidata</span></a>.</p><p><a href="https://drive.google.com/file/d/1TLmNCbNyIqkgRIpcRjRw3pP558pDQHlx/view" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">drive.google.com/file/d/1TLmNC</span><span class="invisible">bNyIqkgRIpcRjRw3pP558pDQHlx/view</span></a></p><p>They talk about how they developed the <a href="https://social.coop/tags/bot" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>bot</span></a> using the <a href="https://social.coop/tags/ActivityStreams" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ActivityStreams</span></a> feed from id.loc.gov, and how the data is reviewed and maintained. No AI automation involved, just using the intellectual work of people, with machines there to help. </p><p>The bot's activity can be seen here:</p><p>- <a href="https://www.wikidata.org/wiki/Special:Contributions/LccnBot" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="ellipsis">wikidata.org/wiki/Special:Cont</span><span class="invisible">ributions/LccnBot</span></a><br>- <a href="https://id.loc.gov/loads/lccnbot/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">id.loc.gov/loads/lccnbot/</span><span class="invisible"></span></a></p>
Peter Toft Jølving<p>Every time I take a stab at building for the Fediverse, I'm immediately drained for motivation by the ambiguities and contradictions of the AP/AS2 family of specs.</p><p>Oh, you want to do some validation of the actor property of activities posted to the Outbox? Good luck. It can have any number of values, and can even (per examples in the AS2 spec) mention actors from different instances.</p><p>Big respect for those of you who muddle through.</p><p><a href="https://mastodon.joelving.dk/tags/FediDevs" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FediDevs</span></a> <a href="https://mastodon.joelving.dk/tags/ActivityPub" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ActivityPub</span></a> <a href="https://mastodon.joelving.dk/tags/ActivityStreams" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ActivityStreams</span></a></p>
julian<p>There have been some scattered discussions I've seen over the past year that mention that <a class="" href="https://mastodon.social/@pfefferle" rel="nofollow noopener" target="_blank">@pfefferle@mastodon.social</a>'s WordPress ActivityPub plugin federates their blog posts out as an <code>as:Note</code>, and that the only reason this is done is because Mastodon only treats <code>as:Note</code> (and <code>as:Question</code>) as a first-class object and relegates anything else to a fallback handler that takes a short snippet of the content, and shows a link back to the original source, thus losing any in-app benefits (boosts, replies, etc.)</p> <p>Whether this is actually true or not, I do not know. So that's why I'd like to ask Mattias — or anybody else with some context — here.</p> <p>For reference:</p> <ul> <li><code>as:Article</code>: Represents any kind of multi-paragraph written work.</li> <li><code>as:Note</code>: Represents a short written work typically less than a single paragraph in length.</li> <li><code>as:Page</code>: Represents a Web Page.</li> </ul> <p>I have also noticed that Lemmy, perhaps out of principle, sends out an <code>as:Page</code> for new generated content, and only the <em>replies</em> federate out as <code>as:Note</code>. It has unfortunately led to some assertions that Lemmy's federation is "broken", even though it is arguably <em>not</em> the case.</p> <p><a class="" href="https://socialhub.activitypub.rocks/u/nutomic" rel="nofollow noopener" target="_blank">@nutomic@socialhub.activitypub.rocks</a>, care to weigh in?</p> <p>I don't even blame Mattias for opting to send everything out as <code>as:Note</code>.</p> <p>End of the day <strong>right now</strong> it doesn't matter how Mattias or Nutomic represent their higher-level collection of data, because Mastodon is the largest implementor and neither they — <em>nor anyone else I know of, for that matter</em> — treat anything that's <em>not</em> <code>as:Note</code> or <code>as:Question</code> specially.</p> <p>But that ought to change. The question is <strong>how</strong>, but this WG is not at the point where we start throwing around decrees and making up standards.</p> <p>What's important to me right now is what the landscape looks like right now, and why that is the case.</p> <p>N.B. The discussion here will eventually make its way to online real-time discussion at one of the future WG meetings.</p>
Matthias Pfefferle<p><strong>ActivityPub – The evolution of RSS</strong></p><p>Dave Winer (<a rel="nofollow noopener" class="u-url mention" href="https://mastodon.social/@davew" target="_blank">@<span>davew</span></a>) stellt (sich) auf <a href="http://scripting.com/2024/04/04/143706.html" rel="nofollow noopener" target="_blank">seinem Blog</a> und auf <a href="https://mastodon.social/@davew/112213481032208332" rel="nofollow noopener" target="_blank">Mastodon</a> die Frage:</p><blockquote><p>What does ActivityPub does that RSS doesn’t?</p></blockquote><p>und nimmt vorweg:</p><blockquote><p>Off the top of my head, it’s not the ability to syndicate, RSS already does that. I can follow anyone on any server.</p></blockquote><p>Es macht natürlich Sinn, erstmal zu klären was RSS ist und kann, um auf die Vorteile von ActivityPub einzugehen!</p><p>Also RSS steht für „Really Simple Syndication“ und ist eine Art „Digitale Einbahnstraße“, so zu sagen der Newsletter oder Podcast für Texte auf Webseiten. Und weil es dem Podcast so ähnlich ist (und eigentlich auch dessen technische Basis) nennt es Dave Winer auch neuerdings „<a href="https://textcasting.org/" rel="nofollow noopener" target="_blank">Textcasting</a>„, was ich großartig finde!</p><blockquote><p>Applying the philosophy of podcasting to text.</p></blockquote><p>Und technisch gesehen ist das auch der große Unterschied zu ActivityPub. Während ich bei Textcasting, Texte nur abonnieren kann, habe ich durch ActivityPub auch einen Rückkanal, der mir ermöglicht, die Texte auch zu liken, mit meinen <s>Freunden</s> Followern zu teilen und zu kommentieren!</p><p>In den Kommentaren zu Daves <a href="https://mastodon.social/@davew/112213481032208332" rel="nofollow noopener" target="_blank">Mastodon Post</a> wird auch fast ausschließlich über diese technischen Aspekte diskutiert. Es geht um Push vs. Pull und immer wieder darum, dass RSS ja eigentlich vollkommen ausreichend und viel simpler ist.</p><p><a rel="nofollow noopener" class="u-url mention" href="https://manton.org/activitypub/manton" target="_blank">@<span>manton</span></a> fasst es ganz gut zusammen:</p><blockquote><p>I think RSS + Webmention (for sending replies) gets you 90% of the way there. ActivityPub does provide a comprehensive framework for the rest, though, and perhaps follows modern social network conventions more closely, e.g. liking posts, approving follows.</p><p><a href="https://micro.blog/manton/34864514" rel="nofollow noopener" target="_blank">https://micro.blog/manton/34864514</a></p></blockquote><p>Aber ist die Technik das, was hier wirklich den Unterschied macht?</p><p>Die Diskussion erinnert mich sehr an den RSS vs. Atom „War“, von dem <a rel="nofollow noopener" class="u-url mention" href="https://fed.brid.gy/r/https://tantek.com/" target="_blank">@<span>tantek.com</span></a> in einem <a href="https://youtu.be/FNr0JNwsLy8?feature=shared&amp;t=1021" rel="nofollow noopener" target="_blank">IndieWeb Vortrag spricht</a>.</p> Inhalt von YouTube anzeigen<p></p> <p>Hier klicken, um den Inhalt von YouTube anzuzeigen.<br>Erfahre mehr in der <a href="https://policies.google.com/privacy?hl=de" rel="nofollow noopener" target="_blank">Datenschutzerklärung</a> von YouTube.</p><p class="">Inhalt von YouTube immer anzeigen</p> <span class=""><a href="https://youtu.be/FNr0JNwsLy8?t=1023" rel="nofollow noopener" target="_blank">„Tantek Çelik – The once and future IndieWeb“ direkt öffnen</a></span> <blockquote><p>I saw the best minds of my time waste our time arguing about syndication formats, arguing about plumbing, user don’t care about plumbing but for some reason we thought that that mattered, we thought that actually really mattered which XML tags to use in RSS versus Atom. […] So we focused on the wrong things we argued about plumbing instead of user experience.</p><p><a href="https://youtu.be/FNr0JNwsLy8?feature=shared&amp;t=1021" rel="nofollow noopener" target="_blank">Tantek Çelik – The once and future IndieWeb</a></p></blockquote><p>Vielleicht kommt man mit RSS, WebSub und Webmentions auf ein relativ ähnliches Ergebnis und es ist technisch gesehen wahrscheinlich auch etwas einfacher umzusetzen… Aber sind RSS und ActivityPub wirklich so weit auseinander?</p><p>Für mich ist ActivityPub einfach nur die logische Weiterentwicklung, oder auch die nächste Generation von RSS. Wer sich die erste Version von <a href="https://www.w3.org/TR/activitystreams-core/" rel="nofollow noopener" target="_blank">ActivityStreams</a> (das Format, welches ActivityPub benutzt um Aktivitäten auszuzeichnen) etwas genauer ansieht, erkennt vielleicht ein alt bekanntes Format.</p><pre><span><code><span class="">&lt;<span class="">entry</span> <span class="">xmlns</span>=<span class="">"http://www.w3.org/2005/Atom"</span> <span class="">xmlns:activity</span>=<span class="">"http://activitystrea.ms/spec/1.0/"</span>&gt;</span> <span class="">&lt;<span class="">id</span>&gt;</span>tag:photopanic.example.com,2009:photo/4352<span class="">&lt;/<span class="">id</span>&gt;</span> <span class="">&lt;<span class="">title</span>&gt;</span>My Cat<span class="">&lt;/<span class="">title</span>&gt;</span> <span class="">&lt;<span class="">published</span>&gt;</span>2010-11-02T15:29:00Z<span class="">&lt;/<span class="">published</span>&gt;</span> <span class="">&lt;<span class="">link</span> <span class="">rel</span>=<span class="">"alternate"</span> <span class="">type</span>=<span class="">"text/html"</span> <span class="">href</span>=<span class="">"..."</span> /&gt;</span> <span class="">&lt;<span class="">activity:object-type</span>&gt;</span>photo<span class="">&lt;/<span class="">activity:object-type</span>&gt;</span> <span class="">&lt;<span class="">activity:verb</span>&gt;</span>post<span class="">&lt;/<span class="">activity:verb</span>&gt;</span><span class="">&lt;/<span class="">entry</span>&gt;</span></code></span><span class="">Code-Sprache:</span> <span class="">HTML, XML</span> <span class="">(</span><span class="">xml</span><span class="">)</span></pre><p>ActivityStreams wurden 2011 als <a href="https://activitystrea.ms/specs/atom/1.0/" rel="nofollow noopener" target="_blank">Namespace für Atom</a> definiert um RSS/Atom Feeds mit Informationen anzureichern, die man aus den sozialen Netzwerken kennt. Das ist hauptsächlich der <code>object-type</code> um neben Texten auch Bilder oder Videos auszuzeichnen, und <code>verb</code> um klar zu machen um was für eine Aktion es sich genau handelt.</p><p><a href="https://notiz.blog/tag/ostatus/" rel="nofollow noopener" target="_blank">OStatus</a>, der Vorgänger von ActivityPub, <a href="https://notiz.blog/2010/03/05/ostatus-the-next-generation-of-openmicroblogging/" rel="nofollow noopener" target="_blank">benutzte übrigens genau dieses Format um Aktivitäten auszuzeichnen</a>!</p><p>Erst 6 Jahre später wurde die <a href="https://www.w3.org/TR/activitystreams-core/" rel="nofollow noopener" target="_blank">Version 2.0</a> als reines JSON Format veröffentlicht, was aber auch Sinn macht, da JSON das Format ist, welches moderne APIs eben sprechen.</p><p>Das heißt ActivityStreams ist im Prinzip eine moderne Form von RSS und ActivityPub ist einfach „nur“ ein <a href="https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern" rel="nofollow noopener" target="_blank">PubSub System</a> welches drumherum gebaut wurde.</p><p>Aber zurück zur Usability!</p><p>Die Frage ist für mich nicht RSS oder ActivityPub… Die wesentlich interessantere Frage ist: Feed-Reader oder Mastodon?</p><p>Die RSS oder <a href="https://indieweb.org/" rel="nofollow noopener" target="_blank">IndieWeb Community</a> (und ich zähle mich zu beiden, es geht hier nicht um Blaming) hat bisher leider kein massentaugliches Tool etabliert, welches mit der Usability und Reichweite von Mastodon (und Mastodon ist hier nur exemplarisch für eine Fediverse Platform… Pixelfed, Misskey und andere machen einen ähnlich guten Job) mithalten kann. Mastodon ermöglicht das dezentrale folgen, abonnieren, kommentieren, liken und sharen in einer simplen Oberfläche. Kein RSS-Reader, den man zum Kommentieren verlassen muss und kein <a href="https://indieweb.org/reader" rel="nofollow noopener" target="_blank">IndieWeb-Reader</a>, der eine eigene Webseite mit diversen Login- und Ping-Mechanismen voraussetzt!</p><p>Mastodon zeigt außerdem sehr deutlich dass Technik austauschbar ist, immerhin ging die Plattform 2016 mit OStatus an den Start <a href="https://notiz.blog/2019/08/16/farewell-ostatus/" rel="nofollow noopener" target="_blank">und schwenkte erst zwei Jahre später auf ActivityPub</a>!</p><p>Ich beschäftige mich jetzt seit ungefähr +/-15 Jahren mit dem Thema, welches man heute als Fediverse oder IndieWeb zusammen fassen würde, und habe auch ein gutes Jahrzehnt an Arbeit in diverse <a href="https://github.com/search?q=topic%3Aindieweb+owner%3Apfefferle&amp;type=repositories" rel="nofollow noopener" target="_blank">IndieWeb Projekte</a> gesteckt, aber Mastodon und ActivityPub sind in ihren Auswirkungen bisher konkurrenzlos!</p><p>Dank Mastodon und ActivityPub habe ich wieder <a href="https://notiz.blog/2024/04/22/its-a-thing/#comments" rel="nofollow noopener" target="_blank">bis zu 50 Kommentare auf einen einzigen Blog-Post</a> (Likes und Boosts nicht mit gezählt) während über RSS (gemessen an Kommentaren über das WordPress Formular) und Webmentions vielleicht eine Reaktion im Monat kommt.</p>
Matthias Pfefferle<p><strong>It’s a Thing!</strong></p><p>Das Fediverse tut sich schwer, das volle Potential der verschiedenen <a href="https://www.w3.org/TR/activitystreams-vocabulary/#object-types" rel="nofollow noopener" target="_blank">Activity-Objects</a> auszunutzen, hauptsächlich aus Angst, sie falsch oder schlecht darzustellen und deshalb teilen die meisten großen Netzwerke leider nur <code>Note</code>s.</p><p>Dabei könnte es so einfach sein!</p><p><a rel="nofollow noopener" class="u-url mention" href="https://social.wedistribute.org/users/deadsuperhero" target="_blank">@<span>deadsuperhero</span></a> schreibt auf seinem <a href="https://deadsuperhero.com/" rel="nofollow noopener" target="_blank">Blog</a>, dass er eigentlich gerne <code>Article</code>s veröffentlichen will, aber (hauptsächlich) durch Mastodon zu <code>Note</code> gezwungen wird, wenn er sicher gehen will, dass der Text vollständig dargestellt wird.</p><blockquote><p>Here’s the problem, though: the biggest player in the space, Mastodon, does a poor job of supporting Article. Instead, every post Mastodon uses is instead a <a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-note" rel="nofollow noopener" target="_blank">Note</a>. From a semantic point of view, it might not seem like there’s a lot of difference between the two: both are effectively texts posts that can contain some formatting markup, both can hold an arbitrary amount of characters, and both can effectively be used to represent a full article.</p><p><a href="https://deadsuperhero.com/2024/04/a-content-fallback-mechanism-for-the-fediverse/" rel="nofollow noopener" target="_blank">A Content-Fallback Mechanism for the Fediverse</a></p></blockquote><p>Ironischerweise zeigt Mastodon eine föderierte <code>Note</code> vollständig an, auch wenn der Text weit über die eigentlich erlaubten 500 Zeichen hinaus geht, bei einem <code>Article</code> wird statt dessen aber nur die kurze <code>summary</code> benutzt.</p><p>Seine Idee: Ein Content-Fallback Mechanismus!</p><p>Das heißt jede Aktivität, egal von welchem Typ, liefert zusätzlich zu dem spezifischen Objekt, eine standardisierte <code>Note</code> (<code>content-fallback</code>): </p><pre><span><code>{ <span class="">"@context"</span>:[ <span class="">"https://www.w3.org/ns/activitystreams"</span>, { <span class="">"Hashtag"</span>:<span class="">"as:Hashtag"</span> } ], <span class="">"id"</span>:<span class="">"https://wedistribute.org/2024/04/iftas-dsa-guide/"</span>, <span class="">"type"</span>:<span class="">"Article"</span>, <span class="">"content-fallback"</span>: { <span class="">"content"</span>:<span class="">"IFTAS, the dedicated Trust &amp; Safety organization ..."</span>, <span class="">"mediaType"</span>:<span class="">"text/plain"</span>, <span class="">"summary"</span>:<span class="">""</span>, <span class="">"tag"</span>:[{ <span class="">"href"</span>:<span class="">"https://wedistribute.org/tags/fediverse"</span>, <span class="">"name"</span>:<span class="">"#fediverse"</span>, <span class="">"type"</span>:<span class="">"Hashtag"</span> }], <span class="">"type"</span>:<span class="">"Note"</span>, <span class="">"updated"</span>:<span class="">"2024-04-11T20:55:29Z"</span> }}</code></span><span class="">Code-Sprache:</span> <span class="">JSON / JSON mit Kommentaren</span> <span class="">(</span><span class="">json</span><span class="">)</span></pre><p>Ich verstehe das Problem und finde die Idee generell nicht schlecht, aber eigentlich bietet ActivityPub alles Nötige schon von Haus aus! <a href="https://www.w3.org/TR/activitypub/" rel="nofollow noopener" target="_blank">ActivityPub</a> oder besser <a href="https://www.w3.org/TR/activitystreams-vocabulary/" rel="nofollow noopener" target="_blank">ActivityStreams</a> ist so aufgebaut, dass alle Objekte von einem Art <a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-object" rel="nofollow noopener" target="_blank">Base-Object</a> abgeleitet werden. Das heißt <code>Article</code>, <code>Note</code>, <code>Event</code> oder <code>Place</code>, haben ein gleiches Minimal-Set an Attributen:</p><ul><li><code><a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-attachment" rel="nofollow noopener" target="_blank">attachment</a></code></li><li><code><a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-attributedto" rel="nofollow noopener" target="_blank">attributedTo</a></code></li><li><code><a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-audience" rel="nofollow noopener" target="_blank">audience</a></code></li><li><code><a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-content" rel="nofollow noopener" target="_blank">content</a></code></li><li><code><a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-context" rel="nofollow noopener" target="_blank">context</a></code></li><li><code><a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-name" rel="nofollow noopener" target="_blank">name</a></code></li><li><code><a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-icon" rel="nofollow noopener" target="_blank">icon</a></code></li><li><code><a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-image" rel="nofollow noopener" target="_blank">image</a></code></li><li><code><a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-inreplyto" rel="nofollow noopener" target="_blank">inReplyTo</a></code></li><li><code><a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-published" rel="nofollow noopener" target="_blank">published</a></code></li><li><code><a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-replies" rel="nofollow noopener" target="_blank">replies</a></code></li><li><code><a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-summary" rel="nofollow noopener" target="_blank">summary</a></code></li><li><code><a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-tag" rel="nofollow noopener" target="_blank">tag</a></code></li><li><code><a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-updated" rel="nofollow noopener" target="_blank">updated</a></code></li><li><code><a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-url" rel="nofollow noopener" target="_blank">url</a></code></li><li><code><a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-to" rel="nofollow noopener" target="_blank">to</a></code></li><li><code><a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-bto" rel="nofollow noopener" target="_blank">bto</a></code></li><li><code><a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-cc" rel="nofollow noopener" target="_blank">cc</a></code></li><li><code><a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-bcc" rel="nofollow noopener" target="_blank">bcc</a></code></li><li><code><a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-mediatype" rel="nofollow noopener" target="_blank">mediaType</a></code></li><li>…und <a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-object" rel="nofollow noopener" target="_blank">mehr</a></li></ul><p>Und auch wenn beispielsweise <code>Place</code> oder <code>Event</code> einige spezifische Eigenschaften haben, die nicht jede Plattform „kennt“ und „versteht“, sollte es immer möglich sein, die Beschreibung (<code>description</code> oder <code>summary</code>) und den Titel (<code>name</code>) anzuzeigen.</p><p>Das Prinzip ist ähnlich wie, wenn nicht sogar inspiriert durch, <a href="https://schema.org/Thing" rel="nofollow noopener" target="_blank">schema.org/Thing</a>. Auch hier basieren alle Objekte letztendlich auf einem <code>Thing</code> und trotz der wesentlich größeren Anzahl1 an Objekten und Attributen, können Suchmaschinen sich immer sicher sein, dass es zumindest einen <code>name</code>, eine <code>description</code> und eine <code>url</code> zum Anzeigen gibt.</p><p>Bevor wir über also über ein `content-fallback` nachdenken, sollten wir (meiner Meinung nach) erst einmal dafür sorgen, dass die vorhanden Möglichkeiten richtig genutzt werden.</p><ol><li>The vocabulary currently consists of 806 Types, 1474 Properties 14 Datatypes, 90 Enumerations and 480 Enumeration members. – <a href="https://schema.org/docs/schemas.html" rel="nofollow noopener" target="_blank">https://schema.org/docs/schemas.html</a> ↩︎</li></ol>
Hazelnootcursed ActivityPub idea
Mark Gardner<p><span class="h-card" translate="no"><a href="https://threads.net/@chris/" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>chris</span></a></span> <span class="h-card" translate="no"><a href="https://mastodon.xyz/@chrismessina" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>chrismessina</span></a></span> <a href="https://social.sdf.org/tags/Threads" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Threads</span></a>’ current <a href="https://social.sdf.org/tags/fediverse" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>fediverse</span></a> sharing does not yet translate a post’s hashtags into <a href="https://social.sdf.org/tags/ActivityStreams" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ActivityStreams</span></a> tag properties: <a href="https://www.w3.org/TR/activitystreams-vocabulary/#dfn-tag" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://www.</span><span class="ellipsis">w3.org/TR/activitystreams-voca</span><span class="invisible">bulary/#dfn-tag</span></a></p>
Julian Lam<p>As expected, when an instance attempts to respond to a Note with a larger audience than the note replied to, Mastodon will silently drop it from processing.</p><p>I don't actually know if this is codified anywhere in <a href="https://crag.social/tags/ActivityPub" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ActivityPub</span></a> or <a href="https://crag.social/tags/ActivityStreams" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ActivityStreams</span></a> spec, but looking into it now. 💪</p><p>Edit: Might be it actually is processed, but doesn't link up to the more-restrictive parent. Also good I think. Not quite sure how I'd handle this in <a href="https://crag.social/tags/nodebb" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>nodebb</span></a> ...</p>
pieceofthepie :coffefied:<p>Is anyone aware of any OSS project that enables Disqus like commenting on static file blogs powered by ActivityPub? </p><p>I've found <a href="https://github.com/oom-components/mastodon-comments" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/oom-components/mast</span><span class="invisible">odon-comments</span></a> and <a href="https://github.com/dpecos/mastodon-comments" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">github.com/dpecos/mastodon-com</span><span class="invisible">ments</span></a> which are *really* close to what I envision.</p><p>What I really want is something more akin to the Wordpress plugin. i.e. a full integration with the protocol. A blog author that can be followed by a Mastodon user etc.</p><p><a href="https://social.n8e.dev/tags/Fediverse" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Fediverse</span></a> <a href="https://social.n8e.dev/tags/FediHelp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FediHelp</span></a> <a href="https://social.n8e.dev/tags/Mastodon" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Mastodon</span></a> <a href="https://social.n8e.dev/tags/ActivityPub" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ActivityPub</span></a> <a href="https://social.n8e.dev/tags/ActivityStreams" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ActivityStreams</span></a></p>
Hrefna (DHC)<p><a href="https://hachyderm.io/tags/ActivityPub" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ActivityPub</span></a> <a href="https://hachyderm.io/tags/ActivityStreams" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ActivityStreams</span></a></p>
Hrefna (DHC)<p>Relatedly: This is also one of the things that I think also went kind of sideways with <a href="https://hachyderm.io/tags/ActivityStreams" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ActivityStreams</span></a> and <a href="https://hachyderm.io/tags/ActivityPub" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ActivityPub</span></a>. </p><p>You don't usually end up writing something like Article as a different type from Note as a different type from Document all with the same behaviors and properties when you are writing a test case for every scenario. </p><p>Why? Because you quickly see the overlap and go "you know what, not worth implementing these as different things."</p><p>3/</p>
Evan Prodromou<p><span class="h-card" translate="no"><a href="https://fosstodon.org/@jasnell" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>jasnell</span></a></span> OK, so, I'm working on my chapter on Activity Streams 2.0, and I'm talking about the addressing headers. I have always thought that `bto` came from RFC 2822 like `to`, `cc`, and `bcc`, but now that I'm looking I can't find it in any RFC. And it doesn't seem to be an idiom from memoranda, either. So, where did `bto` come from? Is it your own invention? <a href="https://cosocial.ca/tags/ActivityStreams" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ActivityStreams</span></a> <a href="https://cosocial.ca/tags/AS2" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>AS2</span></a></p>