Dave Winer (@davew) stellt (sich) auf seinem Blog und auf Mastodon die Frage:

What does ActivityPub does that RSS doesn’t?

und nimmt vorweg:

Off the top of my head, it’s not the ability to syndicate, RSS already does that. I can follow anyone on any server.

Es macht natürlich Sinn, erstmal zu klären was RSS ist und kann, um auf die Vorteile von ActivityPub einzugehen!

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 „Textcasting„, was ich großartig finde!

Applying the philosophy of podcasting to text.

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 Freunden Followern zu teilen und zu kommentieren!

In den Kommentaren zu Daves Mastodon Post 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.

@manton fasst es ganz gut zusammen:

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.

https://micro.blog/manton/34864514

Aber ist die Technik das, was hier wirklich den Unterschied macht?

Die Diskussion erinnert mich sehr an den RSS vs. Atom „War“, von dem @tantek.com in einem IndieWeb Vortrag spricht.

Hier klicken, um den Inhalt von YouTube anzuzeigen.
Erfahre mehr in der Datenschutzerklärung von YouTube.

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.

Tantek Çelik – The once and future IndieWeb

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?

Für mich ist ActivityPub einfach nur die logische Weiterentwicklung, oder auch die nächste Generation von RSS. Wer sich die erste Version von ActivityStreams (das Format, welches ActivityPub benutzt um Aktivitäten auszuzeichnen) etwas genauer ansieht, erkennt vielleicht ein alt bekanntes Format.

<entry xmlns="http://www.w3.org/2005/Atom"
       xmlns:activity="http://activitystrea.ms/spec/1.0/">
  <id>tag:photopanic.example.com,2009:photo/4352</id>
  <title>My Cat</title>
  <published>2010-11-02T15:29:00Z</published>
  <link rel="alternate" type="text/html" href="..." />
  <activity:object-type>photo</activity:object-type>
  <activity:verb>post</activity:verb>
</entry>Code-Sprache: HTML, XML (xml)

ActivityStreams wurden 2011 als Namespace für Atom definiert um RSS/Atom Feeds mit Informationen anzureichern, die man aus den sozialen Netzwerken kennt. Das ist hauptsächlich der object-type um neben Texten auch Bilder oder Videos auszuzeichnen, und verb um klar zu machen um was für eine Aktion es sich genau handelt.

OStatus, der Vorgänger von ActivityPub, benutzte übrigens genau dieses Format um Aktivitäten auszuzeichnen!

Erst 6 Jahre später wurde die Version 2.0 als reines JSON Format veröffentlicht, was aber auch Sinn macht, da JSON das Format ist, welches moderne APIs eben sprechen.

Das heißt ActivityStreams ist im Prinzip eine moderne Form von RSS und ActivityPub ist einfach „nur“ ein PubSub System welches drumherum gebaut wurde.

Aber zurück zur Usability!

Die Frage ist für mich nicht RSS oder ActivityPub… Die wesentlich interessantere Frage ist: Feed-Reader oder Mastodon?

Die RSS oder IndieWeb Community (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 IndieWeb-Reader, der eine eigene Webseite mit diversen Login- und Ping-Mechanismen voraussetzt!

Mastodon zeigt außerdem sehr deutlich dass Technik austauschbar ist, immerhin ging die Plattform 2016 mit OStatus an den Start und schwenkte erst zwei Jahre später auf ActivityPub!

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 IndieWeb Projekte gesteckt, aber Mastodon und ActivityPub sind in ihren Auswirkungen bisher konkurrenzlos!

Dank Mastodon und ActivityPub habe ich wieder bis zu 50 Kommentare auf einen einzigen Blog-Post (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.

Das Fediverse tut sich schwer, das volle Potential der verschiedenen Activity-Objects auszunutzen, hauptsächlich aus Angst, sie falsch oder schlecht darzustellen und deshalb teilen die meisten großen Netzwerke leider nur Notes.

Dabei könnte es so einfach sein!

@deadsuperhero schreibt auf seinem Blog, dass er eigentlich gerne Articles veröffentlichen will, aber (hauptsächlich) durch Mastodon zu Note gezwungen wird, wenn er sicher gehen will, dass der Text vollständig dargestellt wird.

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 Note. 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.

A Content-Fallback Mechanism for the Fediverse

Ironischerweise zeigt Mastodon eine föderierte Note vollständig an, auch wenn der Text weit über die eigentlich erlaubten 500 Zeichen hinaus geht, bei einem Article wird statt dessen aber nur die kurze summary benutzt.

Seine Idee: Ein Content-Fallback Mechanismus!

Das heißt jede Aktivität, egal von welchem Typ, liefert zusätzlich zu dem spezifischen Objekt, eine standardisierte Note (content-fallback):

{
  "@context":[
    "https://www.w3.org/ns/activitystreams",
    {
      "Hashtag":"as:Hashtag"
    }
  ],
  "id":"https://wedistribute.org/2024/04/iftas-dsa-guide/",
  "type":"Article",
  "content-fallback": {
    "content":"IFTAS, the dedicated Trust & Safety organization ...",
    "mediaType":"text/plain",
    "summary":"",
    "tag":[{
      "href":"https://wedistribute.org/tags/fediverse",
      "name":"#fediverse",
      "type":"Hashtag"
    }],
    "type":"Note",
    "updated":"2024-04-11T20:55:29Z"
  }
}Code-Sprache: JSON / JSON mit Kommentaren (json)

Ich verstehe das Problem und finde die Idee generell nicht schlecht, aber eigentlich bietet ActivityPub alles Nötige schon von Haus aus! ActivityPub oder besser ActivityStreams ist so aufgebaut, dass alle Objekte von einem Art Base-Object abgeleitet werden. Das heißt Article, Note, Event oder Place, haben ein gleiches Minimal-Set an Attributen:

Und auch wenn beispielsweise Place oder Event einige spezifische Eigenschaften haben, die nicht jede Plattform „kennt“ und „versteht“, sollte es immer möglich sein, die Beschreibung (content oder summary) und den Titel (name) anzuzeigen.

Das Prinzip ist ähnlich wie, wenn nicht sogar inspiriert durch, schema.org/Thing. Auch hier basieren alle Objekte letztendlich auf einem Thing und trotz der wesentlich größeren Anzahl1 an Objekten und Attributen, können Suchmaschinen sich immer sicher sein, dass es zumindest einen name, eine description und eine url zum Anzeigen gibt.

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.

  1. The vocabulary currently consists of 806 Types, 1474 Properties 14 Datatypes, 90 Enumerations and 480 Enumeration members. – https://schema.org/docs/schemas.html ↩︎

Es scheint wohl zum guten Ton zu gehören, dieser Tage einen Newsletter zu betreiben… und da ich das immerhin schon seit 2005 tue, dachte ich, ich mache auch mal etwas Werbung dafür!

Und ja, ich hatte schon einen Newsletter, lange bevor Newsletter cool waren!!!

Das Thema ist natürlich das „open, portable, interoperable, small, social, synaptic, semantic, structured, distributed, (re-)decentralized, independent, microformatted and federated social web“, was auch sonst.

Das Archiv mit alten Veröffentlichungen findet ihr hier und abonnieren könnt ihr ihn hier.

Viel Spaß beim Lesen 😉

Aber jetzt im Ernst: Warum sollte man einen Newsletter starten, wenn man schon ein Blog hat? Was ist der Unterschied außer die Art der Distribution?

Keine Angst, es geht nicht um Avatare ohne Beine!

Threads has entered the fediverse!!!

TL;DR: Ich freue mich, dass Meta diesen Schritt geht und ich zukünftig vielleicht all meine Freunde im Fediverse Social Web treffen kann, ohne dafür einen Threads, Facebook oder Instagram Account zu benötigen, ich respektiere aber auch jeden, der anderer Meinung ist und das Netzwerk (aus guten und nachvollziehbaren Gründen) blockiert.

Meta experimentiert ja schon eine ganze Weile mit ActivityPub, aber jetzt können wirklich alle, die:

das Teilen im Fediverse auf Threads aktivieren!

If they do, they’ll be able to publish posts on Threads that will be viewable on other ActivityPub-compliant servers. Threads users will also be able to see aggregated like counts on their posts from other fediverse servers directly from the Threads app. If people on other fediverse servers follow federated Threads profiles they’ll be able to see, reply to, and repost Threads posts (if their server allows it).

Das ist sicherlich noch alles sehr limitiert und klingt auch immer noch experimentell, aber es ist raus aus der „beta“ Phase und ein erstes Zeichen, dass Meta es mit ActivityPub doch ernst meinen könnte.

Ich bin wirklich kein großer Fan von Meta/Facebook und habe den „Verein“ in der Vergangenheit heftig kritisiert, aber ich glaube diese Entwicklung ist wichtig und ich freue mich dass Meta sie (bisher noch) weiter verfolgt!

Die Entwicklung ist wichtig, da ohne Meta das Fediverse einfach nur das Fediverse bleibt und wir uns die Diskussion, ob „Social Web“ nicht passender wäre, sparen können. Ohne Facebook (et al.) ist das Fediverse nur eine Nische, zwar eine offene und dezentrale Nische, aber eben nur eine Nische.

Ich weine immer noch den Anfängen der Web 2.0 Zeit nach, in der Blogs und soziale Netzwerke sich ergänzt und nicht untereinander konkurriert haben. Das bezieht sich aber nicht ausschließlich auf Walled Gardens wie Facebook und Twitter, auch Netzwerke wie Diaspora, die im Grunde zwar dezentral aufgebaut sind, aber nie den Anspruch erhoben auch mit anderen Netzwerken zu „föderieren“, waren bzw. sind das Problem.

Was ich vor 12 Jahren über Diaspora geschrieben habe, passt (glaube ich) immer noch sehr gut:

Wenn die großen Netzwerke wie Facebook, Twitter und Google+ sich nicht auf ein einheitliches Protokoll einigen, wird es wohl nichts mit der „dezentralen“ Idee! Ich möchte mich in Zukunft für eine Community entscheiden die meinen Interessen und Wertvorstellungen entspricht und nicht von der Mehrheit meiner Freunde abhängig sein. Wenn alle meine Freunde aber bei Facebook sind, bleib ich auch auf einem offenen und dezentralen Diaspora alleine!

Dezentrale „Walled Gardens“

Beide Seiten müssen kooperieren, deshalb finde ich es wichtig, dass sich das Fediverse auch für Threads öffnet!

Da aber genau diese Haltung die Fediverse-Community spaltet, möchte ich das nicht so stehen lassen.

Evan Prodromou, benennt die zwei entstandenen Lager in einem Blog-Post „Big Fedi versus Small Fedi“ und ich würde mich (aus den oben genannten Gründen und auch wenn ich den Namen unpassend finde) eher dem „Big Fedi“ Lager zuordnen, schon alleine wegen dem ersten Punkt:

The fediverse should be big. Real big. Like, everyone on the planet should have an account on the fediverse. It will make the internet better and the world better.

Das heißt aber weder, dass ich allen Punkten von „Big Fedi“ zustimme, noch dass ich alle Argumente aus dem „Small Fedi“ Abschnitt ablehne… im Gegenteil!

Gleich den ersten Punkt der „Small Fedi“ Liste, sehe ich als essentiell wichtig für das weitere Bestehen und die Zukunft des Fediverse und bin der Meinung, dass er beiden Lagern zugeordnet werden sollte muss:

The fediverse should be safe. Safe from harassment, safe from privacy violations.

Für viele ist Threads per se eine Verletzung dieser Aussage und die fedipact Seite empfiehlt, das Meta-Netzwerk aus genau diesen Gründen zu blocken:

tl;dr

  1. they won’t moderate effectively, there is precedent with facebook being a toxic cesspit of hate
  2. they have a long track record of pure evil and we have no reason to give them the benefit of the doubt
  3. to protect the existing communities of marginalized people on the fediverse, many of whom rely on it to survive
https://fedipact.online/why

Das sind alles valide Argumente, die Schlussfolgerung ist in meinen Augen aber die Falsche. Mit Spam und Abuse hat das Fediverse auch jetzt schon und gänzlich ohne das zutun von Threads zu kämpfen. Wie toxisch das Fediverse sein kann, zeigt der Fall von „Content Nation“ vom März diesen Jahres mehr als deutlich.

Aside from simply blocking the domain and moving on, community members decided to have a little bit of extra fun, attempting to “make the crawler crash“, send angry emails to the service operator, and more. After some study of how the site worked, one person had the malicious idea to send a remote post containing child pornography to the site, before getting someone else to report Content Nation for Child Sexual Abuse Material.

Content Nation Backlash Highlights Mastodon’s Toxicity

Threads zu blocken, ist nicht die alleinige Lösung für das stetig wachsende „Trust & Safety“ Problem. Neben simplen Block-Listen, brauchen wir zukünftig bessere Strategien um diesem Problemen Herr zu werden. Wir brauchen mehr Initiativen wie IFTAS und Services, die sich ähnlich wie mit E-Mail- oder Kommentar-Spam, zukünftig auch mit Social Media „Spam“ befassen.

Andernfalls betreiben wir einfach nur „Security by obscurity„.


Aber eine Sache noch zum Schluss: In dem Abschnitt in dem Meta ActivityPub und das Fediverse erklärt, wird ausgerechnet WordPress als das einzige Beispiel neben Mastodon erwähnt.

The protocol plays a key role in allowing Threads to be interoperable with other servers that also use it. Eventually, people on Threads will be able to interact with people on platforms like Mastodon and WordPress without having to sign up for accounts on those apps.

What is ActivityPub?

… 😍

Ich war am Wochenende auf dem CloudFest Hackathon und hatte zum zweiten Mal die Change ein Projekt zu betreuen. Die Idee zu „Enable Mastodon Apps“ stammt von @alex und ich freue mich sehr, dass er mir sein „Baby“ für den Hackathon anvertraut hat!

Hier ist unser Pitch:

Hier klicken, um den Inhalt von YouTube anzuzeigen.
Erfahre mehr in der Datenschutzerklärung von YouTube.

Ich bin begeistert von der Idee!

Das Nachbauen der Mastodon-API stellt eine relativ einfache Lösung für das aktuelle ‚App-Problem‘ von WordPress dar. Die gängigen Apps zielen darauf ab, den Nutzern das traditionelle Bloggen zu ermöglichen. Allerdings haben soziale Medien im Allgemeinen und Twitter im Speziellen, die Art und Weise wie wir im Internet kommunizieren, maßgeblich verändert. Es geht nicht mehr um lange Artikel, sondern um kurze Nachrichten ohne Titel mit dem Fokus auf Bilder oder Videos.

Ein weiterer Nebeneffekt sind die sozialen Interaktionen wie Kommentieren (die WordPress über die letzten Jahre spärlich vernachlässigt hat), Liken, Boosten und Bookmarken (die WordPress nativ gar nicht unterstützt), welche die Mastodon Apps von Haus aus schon mit bringen.

„Enable Mastodon Apps“ stellt aber nur die Endpunkte für diese Interaktionen bereit, um sie nutzen zu können, braucht es weitere Plugins, wie z.B. Friends und/oder ActivityPub. Mehr dazu hier: Friends with ActivityPub – Deine nachhaltige Identität im Web.

Das Projekt hat mich sehr an die frühen Twitter-Jahre erinnert. Die Twitter-API galt lange als der de-facto Standard für Micro-blogging und Automattic/@photomatt hat damals schon die Vorteile für sich erkannt und die API für WordPress.com nach gebaut:

Of course one of the coolest things about Twitter right now is the client applications, particularly the mobile/iPhone ones. I use Tweetie 2 on my iPhone every day. Wouldn’t it be cool if you could get all your blog subscriptions and post to your WordPress.com blog from apps like Tweetie? Well here’s an early Christmas present…

We’ve enabled posting to and reading of WordPress.com blogs via the Twitter API. Any app that allows you to set a custom API URL will work.

Post and Read via Twitter API

Hackathon

Wir waren zwar nur 4 Personen, aber ich sag nur „Qualität statt Quantität“!

Vielen Dank @Drivingralle, @matze und @obenland, es war super produktiv und hat großen Spaß gemacht 🙂

Von links nach rechts: Ralf Wiechers, ich, Matthias Kittsteiner und Konstantin Obenland

Was wir erreicht haben:

  • Die meisten Mastodon-API-Endpunkte wurden implementiert.
  • „Hooks“ und „Actions“ für den internen Gebrauch.
  • Dokumentation aller Hooks.
  • Grundlegende Beispielimplementierungen in ActivityPub und im Friends Plugin.
  • Testen von zusätzlichen Clients.

Und hier ein paar Statistiken von den zweieinhalb Tagen:

  • 3 new contributors to the plugin
  • 4,101 lines added
  • 911 lines removed
  • 213 commits
  • 34 files changed
  • 25 PRs merged
  • 7 PRs almost merged
  • 0 Social Media posts

Und hier der Pull Request in seiner ganzen Pracht: Collection of changes from the CloudFest Hackathon

Vielen Dank auch an @bart und das Team von Mammoth, die uns im Vorfeld unterstützt haben. Mammoth funktioniert jetzt wunderbar mit WordPress und Alex und ich hatten einen Einblick in die App-Entwicklung und deren Eigenheiten 🙂

Hier ein paar Bilder:

Ich bin schon vor Monaten über einen Artikel auf heise gestolpert, der das potentielle Phänomen der „Demenz bei Künstlicher Intelligenz“ beschreibt.

Die nächste Generation von KI-Anwendungen werde unweigerlich auch an Datensätzen im Netz trainiert, die nicht von Menschen, sondern von früheren KI-Anwendungen erstellt wurden.

Künftige KI-Modelle potenziell von Demenz bedroht

Das ist vor allem deshalb spannend, weil es genau die zwei Anwendungsfälle von KI betrifft, die auch mich, in meiner Arbeit oder als Betreiber eines Blogs, begleiten:

  1. Das automatische Generieren von Inhalten
  2. Die automatische Verarbeitung und Interpretation von Inhalten

Konkret handelt es sich um Plugins/Dienste, die beim Erstellen von Texten helfen oder sogar komplett automatisiert Texte verfassen, um AI-generierte Bilder oder der Kombination aus beidem. Auf der anderen Seite stehen Dienste wie Google et al., die versuchen, Antworten auf Suchanfragen direkt aus den Suchergebnissen zu extrahieren, um dem Suchenden den Klick auf den entsprechenden Link zu „ersparen“.

Auch wenn ich das generelle Potential von KI durchaus sehe, sind das zwei Bereiche in denen mich deren Anwendung eher nervt!

Ich bin ein „Kind“ der Generation Web 2.0, ich schreibe meine Gedanken ins Web um mich mitzuteilen und mit anderen über meine Ideen und Einschätzungen zu diskutieren und (konstruktiv) zu streiten. Wenn ich was zu schreiben habe, schreibe ich etwas, wenn nicht, nicht.

Leider gibt es aber auch Menschen, die berufsbedingt schreiben müssen, ohne dabei die Freiheit zu haben, dies lediglich nach Lust, Zeit oder Inspiration zu tun. Dieser Druck verstärkt die Verlockung, auf KI-Unterstützung zurückzugreifen natürlich wesentlich.

Ein „wunderbares“ Beispiel hierfür ist die WordPress Community auf LinkedIN. Ein stetiger Stream an ähnlichen und meist inhaltslosen Posts mit einem überzeichneten, grellen, bunten Bild im Comic Stil, in dessen Mitte ein verunstaltetes WordPress Logo prangt!

Mein RSS-Reader ist zum Glück noch frei von solchen Inhalten, aber die Anzahl der KI generierten Bilder steigt auch hier auffällig konstant.

@Krisuuu schreibt in seinem Blog:

Das persönliche Bloggen hat eine lange und reiche Geschichte. Es ermöglicht Menschen, ihre Gedanken, Erfahrungen und Leidenschaften in einer einzigartigen Stimme zum Ausdruck zu bringen. Doch mit dem Aufkommen von KI-Technologien, die in der Lage sind, menschenähnliche Texte zu generieren, könnte das persönliche Bloggen bedroht sein. Die Versuchung, diese Aufgabe an Algorithmen abzugeben, ist real – aber sie könnte auch den Verlust von etwas Unersetzlichem bedeuten.

Der Kampf um Authentizität: Warum persönliches Bloggen unersetzbar bleibt

Per definition hat das nichts mehr mit „bloggen“ zu tun1, aber das ist Wortklauberei und das Problem ist wirklich real!

So real, dass Google aktuell schon damit zu kämpfen hat:

In the continual cat-and-mouse game of Google Search versus search engine optimization (SEO) firms, Google seems to be losing lately. Search feels less useful with every passing day as the ChatGPT era has unleashed a tsunami of AI junk that quickly fills up search results. Google played a big part in creating all this with its invention of transformers, and now it’s finally doing something about it. A new blog post details efforts to reduce „spammy, low-quality content on Search.“

Google now wants to limit the AI-powered search spam it helped create

Das ging schneller als ich dachte!

Auf Social Media hab ich ein sehr schönes Kommentar zu der Misere gelesen. Leider finde ich es nicht mehr und muss deshalb improvisieren. Hier eine sinngemäße Zusammenfassung: „Ein Ziel der industriellen Revolution war, unliebsame und stupide Prozesse zu optimieren um dadurch mehr Zeit für Kunst und Kultur zu schaffen. Und was macht AI, sie automatisiert uns genau diese Freiheit und nimmt uns ausgerechnet das Erstellen von Bildern und Texten ab.“

Die Aussage ich sicherlich etwas konstruiert, beschreibt aber genau meine Sorge: Optimiert euren Arbeitsalltag mit und durch AI, damit ihr mehr Zeit zum schreiben, bloggen und „malen“ habt, nicht umgekehrt!

Brave New World!

  1. Ein Blogger steht als wesentlicher Autor über dem Text, schreibt zumeist in der Ich-Perspektive und integriert seine persönliche Meinung. — Wikipedia ↩︎

TL;DR

<div class="h-event">
    <time class="dt-duration" datetime="P20Y">
        20 Jahre Microformats 🎉
    </time>
</div>

Longread

Vor zwanzig Jahren haben @KevinMarks und @tantek.com Microformats in einer Konferenzpräsentation vorgestellt.

Happy Birthday 🎉

Ich bin ein bisschen spät dran, ich weiß, ich weiß, aber es gibt wenig, was mich schon so lange (online) begleitet wie das Format und die Community (abgesehen vielleicht von WordPress), dass ich das nicht unkommentiert lassen kann!!

Zu meiner Historie: Im Gegensatz zu vielen Anderen in der Branche, mache ich meinen Job nicht, weil ich Spaß am programmieren alleine habe. Ich hatte nie das Bedürfnis, als Kind oder Jugendlicher an einem Computer oder C64 herumzubasteln. Statt dessen bin ich Ende der 90er dem Internet/Web/Bloggen verfallen.

Das Web war:

But if you think of the years 1995-2005, you remember when the web was our social network: blogs, comments on blogs, feed readers, and services such as Flickr, Technorati, and BlogBridge to glue things together. Those were great years […]

Why Micro.blog is Not Another App.net

Eigentlich passt auch die Beschreibung des IndieWebs:

It is a community of independent and personal websites connected by open standards and based on the principles of: owning your domain and using it as your primary online identity, publishing on your own site first (optionally elsewhere), and owning your content.

indieweb.org

Ich habe damals angefangen Webseiten mit Frontpage zu bauen, hab den HTML Code verändert und geschaut wie sich das auf sie Seite auswirkt, hab CSS „drüber gelegt“, ein wenig Dynamik mit JavaScript dazu „gebastelt“… Es hat Spaß gemacht!

Ich bin also nicht durch die Freude am Programmieren im Web gelandet, sondern habe durch die Faszination am Web, programmieren gelernt 🙂

Wer sich damals, im deutschsprachigen Raum, mehr oder weniger seriös mit dem Thema HTML beschäftigt hat, ist früher oder später über die Webkrauts gestolpert und über diesen Dunstkreis, habe ich 2006 auch das erste Mal von Microformats gelesen.

Wenn man in letzter Zeit durchs Internet surft, stolpert man immer häufiger über den Begriff „Microformats“ oder sieht das grüne Symbol auf Kontaktseiten. Aber was genau sind Microformats und für was sind sie gut?

Microformats

Ich glaub es war das Blog von @pixelgraphix auf dem ich dieses „grüne Symbol“ zum ersten Mal entdeckt habe.

Die Idee hat mich tief beeindruckt! Ein Format, „designed for humans first and machines second„! HTML als API „nur“ unter Verwendung von class und rel Attributen, also klassisches Plain Old Semantic HTML (PoSH)!

Und irgendwie beschäftigen mich Microformats bis jetzt:

Durch die Erfahrung der letzten Jahre habe ich mittlerweile eine etwas differenziertere Meinung zu „HTML als API“, das Ändert aber nichts an meiner generellen Faszination für Websemantiken.

Die Microformats Community hat mir außerdem die Welt des Open Webs und der Open Standards offenbart, immerhin haben Microformats direkt oder indirekt auch Initiativen wie DataPortability.org, DiSo und das IndieWeb beeinflusst.

Danke Microformats und noch einmal Happy Birthday 🥳!

Seit letzter Woche braucht man keinen Invite-Code mehr um sich bei Bluesky anzumelden, die wesentlich spannendere Info steht aber, wie beiläufig erwähnt, im letzten Abschnitt:

This month, we’ll be rolling out an experimental early version of “federation,” or the feature that makes the network so open and customizable. On Bluesky, you’ll have the freedom to choose (and the right to leave) instead of being held to the whims of private companies or black box algorithms. And wherever you go, your friends and relationships can go with you.

https://bsky.social/about/blog/02-06-2024-join-bluesky

Ich bin gespannt wie Bluesky federation umsetzen wird. Auf mich wirkt das ATProtocol immer noch viel zu kompliziert und „overengineered“, aber vielleicht ist das ja auch gerade der Vorteil gegenüber ActivityPub.

Ich hatte vorgestern einen kleinen Plausch mit @deadsuperhero für den Decentered Podcast, in wir unter anderem auch über die Schwierigkeiten bei der Implementierung von ActivityPub sprachen. Da WordPress in vielen verschiedenen Umgebungen laufen muss und sich die Konfiguration des Webservers, die PHP Version, das Caching, die Interferenz mit anderen Plugins und andere spezial Fälle nicht seht gut abschätzen lassen, ist es sehr schwer komplexere Funktionalitäten umzusetzen.

Ein Beispiel: Im Gegensatz zu OStatus, wo die Distribution von neuen Inhalten über PubSubHubbub (jetzt WebSub) geregelt wurde, ist bei ActivityPub der Service selbst dafür verantwortlich. Ein direktes Verteilen der Inhalte, direkt nach dem Veröffentlichen, würde bei großen Follower zahlen, den Prozess unnötig in die Länge ziehen, oder könnte sogar zu einem Fehler oder einem kompletten Abbruch führen. Um dem (so gut es geht) entgegen zu wirken, wird der Prozess asynchron über WP_Cron abgearbeitet. Leider ist aber auch das keine Garantie für einen fehlerfreien Ablauf (Siehe Ende des vorherigen Absatzes).

Lange Rede kurzer Sinn: Abhängig davon wie simpel ein Personal Data Server kurz PDS aufgebaut ist, könnte Bluesky vielleicht doch interessanter sein als ich ursprünglich angenommen habe.

Ich muss mich wohl mal mit @snarfed.org über seine Bluesky Implementierung unterhalten.

Ich bin gespannt!

Vor ein paar Tagen schrieb Tantek Çelik (@tantek.com) auf seinem Blog:

No large language models (LLM) were used in the production of this post.

Inspired by a subtle but clear sign-of-the-times one-line disclaimer at the end of RFC9518’s Acknowledgments (https://www.rfc-editor.org/rfc/rfc9518.html#appendix-A-4)

Ich weiß nicht ob „inspiriert“ hier der richtige Begriff ist… ich weiß was er meint und verstehe seinen Punkt, finde es aber auch sehr beängstigend. Ist es wirklich schon soweit, dass man explizit erwähnen muss, dass ein Mensch einen Text geschrieben hat?

Es fühlt sich ein wenig so an, als würden wir hier gerade wieder den gleichen bzw. einen ähnlichen Fehler begehen, den wir schon zweitausendirgendwas mit dem Social Web begangen haben.

„No large language models (LLM) were used in the production of this post.“ scheint das neue „IndieWeb“ oder „Fediverse“ zu werden. Man fängt an, das was eigentlich die Norm sein sollte, zur Ausnahme zu machen und neue Begriffe/Beschreibungen dafür zu finden.

Es gibt gerade erst wieder (nach fast 15 Jahren) verschiedene Diskussionen zu dem Thema „Social Web“ vs the „Fediverse“ und auch @Gargron (der Gründer von Mastodon) spricht im dotSocial Podcast mit @mike (der Gründer von Flipboard) vom Social Web!

Passend dazu hat @marcelweiss (der übrigens auch schon seit Ewigkeiten im Team „Social Web“ spielt), unsere neue Podcast Folge „neunetzcast 99: Nieder mit dem Fediverse, hoch lebe das Social Web“ genannt 🙂

Ich werde also weder das „Not By AI“ Badge, noch den Text „No large language models (LLM) were used in the production of this post.“ irgendwo auf meinen Blog packen, in der Hoffnung, dass die Nutzung von AI/LLM irgendwann kennzeichnungspflichtig wird!

Ich schreibe hier um meine Gedanken (mit euch) zu teilen, nicht für irgendeine Suchmaschine, das heißt wenn ich irgendwann nichts mehr zu scheiben habe, dann wird es hier eben einfach ruhig PUNKT

…and because it fits so well: Happy Birthday Ma.tt! And happy blogging forever!

Das notiz.blog ist volljährig 🎉

Ginge es nach ChatGPT, könnte jetzt folgendes auf mich und mein Blog zutreffen/zukommen:

  1. Selbstfindung und Identitätsstiftung: Mit 18 Jahren könnte das Blog in einer Phase der Selbstfindung und Identitätsstiftung sein. Der Blogger könnte überlegen, wer er als Autor ist, welche Werte er vertritt und wie er sich weiterentwickeln möchte.
  2. Erwachsenwerden in der digitalen Welt: Ein 18-jähriges Blog könnte die Herausforderungen des Erwachsenwerdens in der digitalen Welt reflektieren. Das bedeutet möglicherweise eine verstärkte Auseinandersetzung mit Themen wie Datenschutz, Ethik im Online-Journalismus und der Verantwortung gegenüber der Online-Community.
  3. Bewältigung von Veränderungen: In diesem Alter könnten sich auch Änderungen in der Technologie und den Online-Trends bemerkbar machen. Das Blog könnte seine Anpassungsfähigkeit zeigen, indem es sich den aktuellen Entwicklungen anpasst und möglicherweise neue Medienformen integriert.
  4. Einfluss auf die jüngere Generation: Ein 18-jähriges Blog könnte eine inspirierende Rolle für neuere Blogs oder aufstrebende Blogger spielen. Es könnte seine Erfahrungen teilen, Ratschläge geben und dazu beitragen, die nächste Generation von Bloggern zu beeinflussen.
  5. Reflektierte Inhalte: Das Blog könnte sich darauf konzentrieren, tiefer gehende, reflektierte Inhalte zu produzieren. Es könnte sich in Richtung anspruchsvollerer Themen bewegen und einen Beitrag zu qualitativ hochwertigerem Online-Content leisten.

Ich lass das mal so stehen 🙂