TL;DR

<time class="dt-duration" duration="P20Y">
    20 Jahre Microformats 🎉
</time>

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 🥳!

Vor ein paar Tagen bin ich über einen Post von Tantek Çelik gestolpert, in dem er metaformats vorstellt.

Introducing (https://microformats.org/wiki/metaformats), an extension to for parsing invisible data published in HTML meta tags, for backward compatibility with existing vocabularies consumed by multiple testable interoperable implementations.

https://tantek.com/2022/091/t1/metaformats

Der Vorschlag ist vom 01. April und war wohl ursprünglich als April-Scherz gedacht.

metaformats started as an April Fools joke concept to describe how to both publish using microformats class names and openly parse meta tags as a fallback for what should be in-the-body visible data, including backcompat with OGP, Twitter Cards, and meta author, description, and anything else real sites (like search engines) appear to consume.

https://indieweb.org/metaformats

Eine Art Fallback-Spezifikation für Microformats-Parser finde ich in der Tat etwas sperrig, aber ich mag die Idee eines Fallbacks an sich.

Microformats sind ein Building-Block des IndieWebs und werden unter anderem auch von Webmentions genutzt. Es sind Markup-Formate zur semantischen Auszeichnung von HTML. In der Version 2, werden Microformats aber fast ausschließlich von der IndieWeb Community benutzt und sind darüber hinaus wenig bekannt.

Aber gerade für WordPress ist es extrem schwer, bestehende Themes nachträglich mit Microformats zu „veredeln“. Wir haben es mit diversen Plugins versucht, mit nur mäßigem Erfolg. Andere Formate wie das Open Graph Protocol oder Schema.org (JSON-LD) sind da wesentlich einfacher zu integrieren, da sie nicht bestehendes HTML erweitern und durch den Support der großen Suchmaschinen und sozialen Netzwerke, auch viel attraktiver sind.

Ich bin kein großer Fan von embedded JSON-LD, aber wenn es nicht anders funktioniert und seine Reichweite hat, warum sollte man es dann ignorieren?

Das IndieWeb hat eigentlich eine großartige Philosophie um mit solchen „Problemen“ umzugehen.

bridge all the things is a nascent IndieWeb philosophy that prioritizes interoperability over ideology, NIH, historical disagreements, etc. ecosystems are valuable and powerful, and one easy way to extend an ecosystem is to bridge it with other existing ecosystems.

https://indieweb.org/bridge_all_the_things

Für das Webmention Plugin haben David und ich schon vor Monaten einen ganz ähnlichen Ansatz gewählt. Neben Microformats unterstützen wir auch OGP, Twitter-Cards, Schema.org, Meta-Header und die WordPress API, um eventuell fehlende Microformats v2 zu kompensieren.

Selbst wenn „metaformats“ nur als April Scherz gedacht waren, hat die Idee Potential um speziell Webmentions voran zu treiben, da sie eine direkte Abhängikeit zu einer speziellen Websemantik verhindert.

Bridge all the things!

Wer hier schon ne Weile mit liest weiß, dass ich nicht viel von Facebook, Instagram & Co. halte… Neben dem „Walled Gardens“ Thema finde ich sie einfach steril und wenig individuell… Alle Seiten sehen gleich aus und trotz dem Namen „Sociales Netzwerk“ wirken die Inhalte gestellt und unpersönlich…

Ich lese Blogs!

Am liebsten persönliche (sind das Blogs nicht per Definition?), die keinen speziellen Themen-Fokus haben oder zumindest immer ihre Meinung mit einfließen lassen, wie z.B. anmutunddemut.de, wirres.net und hackr.de.

Ich habe außerdem ein Faible für /about Seiten (meine ist ironischerweise nicht wirklich aussagekräftig 🙁 ). Wenn es um persönliche Ideen und Meinungen geht, interessiert mich natürlich auch der Autor dahinter.

Vor ungefähr einem Jahr bin ich auf ein Projekt gestoßen, das die Idee der /about Page noch einen ticken weiter treibt: Die /now Page!

Most websites have a link that says “about”. It goes to a page that tells you something about the background of this person or business. For short, people just call it an “about page”. […] So a website with a link that says “now” goes to a page that tells you what this person is focused on at this point in their life. For short, we call it a “now page”. […] Besides answering the common question, “What are you up to these days?”, those who have a now page say it’s a good reminder of their priorities. By publicly showing what you are focused on now, it helps you say no to other requests.

Derek Sivershttps://nownownow.com/about

Bisher hab ich mir aber lediglich eine /now Page angelegt ohne mir weiter Gedanken dazu zu machen, bis ich vor ein paar Tagen über einen Artikel von Christian Tietze gestolpert bin.

And a “/now” page is a bulletin board-like page that indicates what someone is up to. It’s a status page. Unlike status feeds on social media, this page does not show incremental updates. It always show the latest status, period. And it doesn’t do push notifications. You have to go there and look. I’ve got one.

[…]

A problem I see is consumption. I sometimes look at what Matt Gemmel is up to, for example. I have to visit each person’s website manually.

Proposing the h-now Microformat to Mark-Up All Our /now Pages

Da hat er natürlich recht… Eine /now Seite macht wirklich nur dann Sinn, wenn man sie regelmäßig ließt… Ansonsten ist sie nicht viel mehr als eine zeitlich limitierte /about Page.

Um eine /now Seite abonnieren zu können, schlägt Christian ein neues Mircoformat vor: h-now.

(…es funktioniert natürlich auch mit h-entry oder semantischem HTML, aber ich liebe neue Formate!)

Christian hat natürlich auch gleich ein kleines Referenz-Tool geschrieben.

/now Page Aggregator
/now Page Aggregator

Außerdem hat er mich indirekt herausgefordert…

Everybody and their grandchildren can change a WordPress page template to include the h-now class somewhere around the body text. If you run a static site generator, it’s probably even simpler.

…und auch damit hat er recht!

WordPress bietet dafür zwei einfache Möglichkeiten: „Custom Page Templates“ und „Page Templates within the Template Hierarchy“ und natürlich lassen sich auch beide Varianten in einem Template kombinieren.

Über den Datei-Namen page-now.php wird das Template automatisch für die /now Page angezogen und es ist eigentlich keine weitere Arbeit notwendig, falls die Seite aber (warum auch immer) unter einem anderen Slug erreichbar sein soll, kann man das Template auch üder den /** Template Name: "/now" Template */ Header für jede beliebige Seite verfügbar machen.

Eine weitere Alternative wäre post_class zu erweitern, ein dediziertes Template bietet aber einfach mehr Möglichkeiten. Ein schönes Beispiel ist Dominik Schwinds https://lostfocus.de/now/, die er über die Category „nownownow“ updated.

Schöne Ideen! 🙂

Vor ein paar Wochen kam Marcel Weiß auf mich zu und fragte, ob ich nicht Lust hätte, mit ihm über das Thema „Open Web“ zu podcasten. Die letzte Ausgabe des OpenWeb-Podcasts ist jetzt fast 7 Jahre alt und natürlich freue ich mich wie bolle, wieder mit jemandem über mein Nischen-Thema zu sprechen 😉

Im Ernst, ich freue mich sehr, dass Marcel Interesse an dem Thema hat (und das schon seit einer ganzen Weile) und nach einem kurzen Vorgespräch haben wir auch gemerkt, dass uns der Stoff so bald nicht ausgehen wird!

Hier klicken, um den Inhalt von share.transistor.fm anzuzeigen

Die erste Ausgabe ist eine Bestandsaufnahme der letzten 15 Jahre „Open Web“ und ein kleiner Ausblick auf zukünftige Themen.

In der ersten Ausgabe der neuen Podcastreihe zum Themenkomplex ‚Open Web‘ sprechen Matthias Pfefferle und Marcel Weiß über die Evolution von OpenID, die uns einen Hinweis auf allgemeine Herausforderungen für Protokolle in der heutigen Zeit gibt; Stichwort Extrawürste der großen Teilnehmer, welche zu Balkanisierung führen. Weitere Themen sind die DSGVO und Dataportability, Mastodon, Identi.ca und wie ActivityPub aktuell OStatus als zugrundeliegendes Protokoll für dezentrale Netzwerke ablöst. Wir ordnen die Irrungen von Diaspora ein und reden last not least über die Tragödie der Microformats.

Viel Spaß beim Hören!

‚Hier & Jetzt‘ kann man per RSS-Feed abonnieren und findet man natürlich auch bei Apple Podcasts und in jeder Podcast-App.

2018 war ein durchwachsenes Jahr!

Mein privates „Ich“ hat letztes Jahr sehr viel Raum eingenommen und auch beruflich hat sich viel verändert.

Das heißt ich hatte generell wenig Zeit für mein online „Ich“ und wenn ich doch etwas Zeit hatte, war das Ergebnis meistens eher frustrierend.

Pfefferles OpenWeb

Bilder von "Pfefferles OpenWeb" Artikeln

Ich habe für das SCREENGUIDE/Webstandards-Magazin in den letzten 10 Jahren 36 mal „Pfefferles OpenWeb“, 3 Artikel, 1 Titelthema und 1 Interview geschrieben! Letztes Jahr musste der Verlag das Magazin aus „wirtschaftlichen Gründen“ leider einstellen und ich hab es nicht einmal geschafft darüber zu schreiben!

notiz.Blog

Und zum Bloggen kam ich, trotz der gewonnenen Zeit auch nicht! Wenn ich dieses Jahr so weiter mache, muss ich mir meinen selbstvergebenen Titel als „Chronist des OpenWebs“ wieder selbst aberkennen!

IndieWeb

Das IndieWeb wächst und das ist prinzipiell auch gut so. Neben den ganzen Nerds und Geeks interessieren sich auch immer mehr Blogger und Journalisten für das Thema. In der Community spricht man von der 2. Generation.

Auch das Interesse an WordPress wächst. Das ist nicht verwunderlich, immerhin geht es um die Berufsgruppe der Schreibenden und deren Seiten werden, mit einer Wahrscheinlichkeit von 30%, mit WordPress betrieben.

Dieses Interesse beißt sich aber leider mit meinen Möglichkeiten. Von Anfang an verfolge ich folgende Grundsätze des IndieWebs:

Scratch Your Own Itches. Make tools, templates, etc. for yourself first, not for all of your friends or ”everyone“.

und:

Use what you make! Whatever you build you should actively use. If you aren’t depending on it, why should anybody else?

Ich baue (mittlerweile) ausschließlich Plugins die ich für sinnvoll erachte und ich baue sie so, dass sie für mich funktionieren. Das mag erstmal egoistisch klingen, es ist für mich aber die einzige Möglichkeit dieses „Hobby“ überhaupt zu betreiben.

Ich verstehe, dass Anwender teilweise überfordert sind, meine Plugins zu benutzen, kann sie aber nicht in dem Umfang optimieren, der nötig wäre. Ideal ist wahrscheinlich ein großes IndieWeb Plugin, welches alle Features bereit stellt und, am besten ohne viel Einstellungen, einfach funktioniert. Aktuell nutze ich 50% aller, vom IndieWeb vorgeschlagenen WordPress Plugins, eine allumfassende Plugin Suite würde dann also nicht mehr meinen Anforderungen entsprechen.

Ich habe aktuell keine Ahnung wie ich aus diesem Dilemma heraus kommen soll. Es gibt Plugins die will ich nicht aus der Hand geben und Plugins die ich an die Community übergeben habe, werden aus Mangel an Entwicklern nicht weiter gepflegt. Aktuell arbeiten maximal 3 Personen (mich inbegriffen) an über 10 unterschiedlichen Plugins.

…und wenn das noch nicht genug wäre, kommt das „Microformats Problem“ noch on top.

Microformats

Microformats2 und WordPress scheinen nicht kompatibel zu sein und das ist schade, immerhin sind Microformats DER Building-Block des IndieWebs. Mehr noch: Microformats sind die API des IndieWebs!

Ich habe in den letzten Jahren viel ausprobiert um das Problem zu lösen, aber es gibt keine generische Möglichkeit, ein WordPress Theme mit Microformats2 auszustatten.

Benutzt man ein Plugin, um über Hooks einige zentrale Elemente (wie z.B. den Titel) Semantisch auszuzeichnen, bekommt man nette Effekte, mit Themes die ihre Ausgabe „escapen“:

After activating the last version (1.1.0) of your plugin on WordPress 4.9.8 with understrap theme my meta entry become : Posted on September 12, 2018 by <span class='p-author h-card'>Author</span> instead of : Posted on September 12, 2018 by Author for fun I look into the code and I think the error is here but since I’m totally not a PHP developer I’ll pass on the potential PR

Versucht man es mit einer Art Microformats Feed, bekommt man Probleme, alle Meta-Daten zu integrieren. Schlimmer noch, man arbeitet gegen einen Grundsatz der Microformats:

Design for humans first, machines second

Zusammengefasst: Microformats gehören ins Theme, es gibt aber keine generische Lösung. Eine generische API ist möglich, widerspricht aber der Microformats-Idee.

Aktuell gibt es drei WordPress Themes die Microformats2 voll unterstützen und um sein Blog wirklich IndieWeb tauglich zu machen, muss man eines dieser drei Themes benutzen oder selber HTML bzw. ein Theme schreiben.

Das ist frustrierend! Außerdem liefen die Diskussionen (meines Erachtens) etwas aus dem Ruder, weshalb ich mich letztes Jahr entschieden habe, mich aus dem Microformats-Thema komplett heraus zu nehmen.

OStatus

OStatus ist das zentrale Protokoll, über das identi.ca, status.net, gnu.social und friendi.ca sprechen. Es ist arsch-alt, funktioniert aber immer noch prächtig!

Ich hab mich wie bolle gefreut als OStatus mit Mastodon wieder frischen Wind bekam, hab mein altes OStatus Plugin ein wenig aufpoliert und wollte gerade freudig darüber berichten, als Eugen Rochko, der Macher hinter Mastodon, einen meiner Bugs, mit folgenden Worten schloss:

Closing on the grounds that OStatus is no longer our primary mechanism and will be deprecated in the future.

Mein vorbereiteter Blogpost hatte den Titel „My Blog is my Social-Network“ und der erste Abschnitt lautete:

Ich habe in den letzte Woche an einem Update für ein WordPress Plugin gearbeitet, das ich seit 6 Jahren nicht angerührt habe… Nicht dass das Plugin an sich nicht mehr funktioniert hätte, aber PHP und WordPress haben sich weiter entwickelt.

Schade!

ActivityPub

Aber dann kam ActivityPub! ActivityPub ist der heiße Shit im Fediverse. So zu sagen OStatus in neu und besser! Was AtomPub für Atom ist, ist ActivityPub für ActivityStreams… und noch ein bisschen mehr.

Ein Schaubild des ActivitPub flows

ActivityPub ist außerdem der erste, vom W3C veröffentlicht, „Standard“ (abhängig davon wie man „Standard“ definiert), der versucht ein dezentrales, soziales Netzwerke zu definieren.

Naiv wie ich bin, dachte ich, ich geb‘ dem Ganzen eine Chance. Die Spezifikation ist relativ simpel und ein „Standard“ ist „wohl definiert“, das heißt es gibt nur einen Weg um ihn zu implementieren!

Das Ergebnis (Trommelwirbel): ein ActivityPub Plugin für WordPress!

War es so einfach wie ich gedacht habe? Natürlich nicht! Es hat natürlich doch wieder jede Plattform seine extra Wurst, aber im Gegensatz zu Microformats2, basiert ActivityPub auf einer „echten“ API und lässt sich somit relativ leicht in WordPress integrieren.

ActivityPub und das Plugin waren definitiv das Highlight des Jahres, immerhin ist WordPress jetzt offiziell ein Teil des Fediverse:

und laut dem „2018 Report“ von fediverse.network sogar auf Platz 8 von 13.

Fazit

Die Arbeit an ActivityPub hat eigentlich Spaß gemacht und ich werde mich wahrscheinlich auch 2019 hauptsächlich mit ActivityPub beschäftigen!

2018 war nicht so dolle, 2019 kann nur besser werden!

Zu Zeiten von Pingbacks, antwortete man noch mit Blog-Posts auf Blog-Posts, aber es fehlte die Technik um sie richtig zu übermitteln und darzustellen:

[…] und Wertvorstellungen entspricht und nicht von der Mehrheit meiner Freunde abhängig sein.» Dezentrale Walled Gardens Hier erscheinen von Montag bis Freitag ausgewählte Links zu lesenswerten Texten und aktuellen […]

Mit Webmentions und Microformats2 hat sich zwar die Darstellung verbessert, aber die Texte… naja… haben sich „verändert“:

#100DoPP d84:
Both #AS2 & #Micropub are @W3C PRs!
Congrats @SocialWebWG @jasnell @evanpro @aaronpk!
https://www.w3.org/TR/micropub
https://www.w3.org/TR/activitystreams-core/
https://www.w3.org/TR/activitystreams-vocabulary

tantek.com/t4np2

Twitter sei Dank!

…da hätte man sich die Arbeit auch sparen können 😉

Ich durfte mal wieder einen etwas längeren Artikel für das aktuelle SCREENGUIDE Magazin (Ausgabe 34) schreiben. Thema des Artikels sind Websemantics:

Websemantics sind fast 17 Jahre alt, und es hat eine ganze Weile gedauert, bis sie sich wirklich etabliert haben. Aktuell gibt es eine Reihe von Formaten, etwa OpenGraph, Twitter Cards, Schema.org, Microformats, RDFa und Microdata. Wir sagen Ihnen, auf welche Formate Sie sich konzentrieren sollten.

Websemantiken, genauer gesagt Microformats, haben vor einer halben Ewigkeit mein Interesse für offene Standards geweckt und deshalb hab ich mich sehr gefreut, mich wieder etwas ausführlicher mit dem Thema zu beschäftigen. Außerdem habe ich vor fast genau 8 Jahren meinen ersten Artikel über ein ganz ähnliches Thema geschrieben 🙂

Microformats erfreuen sich mittlerweile einer großen Verbreitung, alleine die Yahoo! Suche hat mehr als 4 Milliarden der verschiedensten Formate indiziert und die Zahl wächst stetig. Trotz dieser scheinbar großen Verbreitung und der Unterstützung verschiedenster Browser erreicht das Thema „Semantic HTML“ noch immer nicht die breite Masse. Dieser Artikel beschreibt die Probleme bisheriger Browserunterstützungen und vorhandene Alternativen.

Neben dem Websemantics Artikel, gibt es auch wieder eine Kolumne, diesmal über Micro.blog:

Facebook ist jetzt knapp 13 Jahre alt, und so mancher hat mittlerweile sein halbes Leben auf der Plattform dokumentiert. Je länger Facebook besteht, umso mehr binden wir uns an den Dienst. Deshalb gibt es immer wieder Ideen und Plattformen, um sich unabhängiger zu machen – wie etwa das neue Micro.blog, das gerade via Crowdfunding finanziert wurde.

Falls ich noch einmal zwei Artikel für eine Ausgabe schreiben sollte, sollte ich mir die Einleitungen der beiden Texte etwas genauer ansehen 😉

App.net hat endlich alles nachgereicht was Dalton Caldwell vor fast genau einem Jahr versprochen hat. Die Liste kann sich echt sehen lassen:

Mal schauen was sich damit alles basteln lässt, immerhin hab ich im SCREENGUIDE-Magazin (Ausgabe 18) noch groß getönt:

Mit ein paar wenigen Änderungen und dem Support von z. B. Microformats, RSS/Pubsubhubbub, AtomPub oder Pingbacks, wäre App.net kompatibel zu fast allen Blogs oder IndieWeb-Systemen. Das hätte zum Vorteil, dass sich App.net ohne weitere Anpassungen über RSS-Reader konsumieren und über Blogging-Tools befüllen ließe. Außerdem könnten Posts und Kommentare zwischen App.net und z.B. WordPress ausgetauscht werden, ohne auf komplizierte, dezentrale Protokolle im Sinne von Diaspora oder Tent.io zurückgreifen zu müssen.

😉

via Carsten Pötter