Satire ist tot. Auf office.com zeigt Microsoft jetzt folgendes an:
![Welcome to the Microsoft 365 Copilot app – The Microsoft 365 Copilot app (formerly office) lets you […]](/file/copilot_formerly_office.webp)
— Worst Premade EverAlex: “It's a cold and miserable country.”
Ellis: “Well it was a cold and miserable country.”
Alex: “Now it's just a miserable country.”
Satire ist tot. Auf office.com zeigt Microsoft jetzt folgendes an:
![Welcome to the Microsoft 365 Copilot app – The Microsoft 365 Copilot app (formerly office) lets you […]](/file/copilot_formerly_office.webp)
Ich bin letzte Tage auf das Konzept von Stone Websites gestoßen, und zwar dank diesem Blogpost, der das Thema erläutert. Beide beziehen sich auf den Artikel „This Website is designed to last“. Es dreht sich also um die Langlebigkeit von Websites.
Ich werde das hier nicht alles wiederholen, lest am besten die verlinkten Posts selber durch. Ich mache hier nur eine Schnellzusammenfassung und gebe meinen Senf dazu. Es geht darum, dass Websites dauerhaft sein sollen, damit man auch Jahrzehnte später noch die Informationen darin lesen kann. Man hat damit also „Stone Websites“, das digitale Äquivalent davon, Texte in Stein zu meißeln.
Dafür hat Caio Lente ein paar Regeln aufgestellt:
Kein Javascript, kein Webassembly, keine dynamisch geladenen Inhalte. Keine Abhängigkeiten. Das ist nicht immer machbar, aber wo es machbar ist, ist es gut. Mein Blog benutzt auch kein Javascript. Ich würde die Regel erweitern: Wenn Javascript, dann sollte es die Funktionalität der Website nicht beeinträchtigen, wenn es fehlt. Höchstens sollte dann ein paar Komfortfunktionen wegfallen. Ich habe mich schon vor 15 Jahren über Javascriptabhängigkeit aufgeregt. Ich habe seitdem beruflich gezwungenermaßen an Single-Page-Apps gearbeitet, die ohne Javascript nicht einmal eine Überschrift anzeigen konnten. Aber das ist eine andere Geschichte.
Wichtig ist: Je weniger komplex eine Website ist, desto einfacher wird es, sie über einen langen Zeitraum zu erhalten. In diesem Blog hatte ich zum Beispiel schon nach ein paar Jahren Ärger mit Ruby on Rails, während mein static site generator seit Jahren zuverlässig läuft und mein Blog weiter bestehen kann, selbst wenn der Generator über Nacht aufhören würde zu arbeiten.
Die Idee ist, dass minimalisiertes HTML (ohne technisch überflüssige Leerzeichen wie z.B. Einrückungen) schwieriger zu lesen, schwieriger zu debuggen und damit schwieriger zu warten ist, aber (wenn es auch noch komprimiert wird), kaum kleiner ist.
Ich sehe den Punkt. Aber als Gegenargument: Es ist wirklich leicht, einen HTML-Formatter zu finden (oder zu schreiben), besonders, wenn man gültiges HTML geschrieben hat. Man kann also jedes minifizierte HTML ohne Probleme wieder lesbarer machen.
In diesem Blog erzeugt die HTML-Template-Bibliothek automatisch HTML mit minimalen Leerzeichen. Einzig der Markdown-Renderer fügt regelmäßig Zeilenumbrüche (aber auch keine Einrückungen ein). Ich sehe da kein großes Problem.
Wenn ich mir mein CSS anschaue… Das ist eine andere Sache. Ich nutze derzeit SCSS, auch wenn ich es für diese Seite eigentlich nicht brauche. Das ist natürlich auch eine Abhängigkeit, aber es hat auch den Nebeneffekt, dass mein CSS minifiziert wird, und ich als Kompressionsfetischist will bei meinen knapp 2.2 kiB (686 Byte Brotli-komprimiert) jedes Byte einsparen!
Es geht darum, dass eine Seite leichter zu warten ist als mehrere, und man leicht die Links dazwischen zerstört. Mein Blog hält diese Regel absolut nicht ein. Kategorienseiten, Tag-Seiten, Archivseiten, jeder Blogpost hat noch eine Seite, und es gibt die Seiten für die Quotes… Dank meines statis site generators alles gut managebar, aber sollte der einmal aufgeben (z.B. weil die Abhängigkeiten offline genommen werden), hätte ich ein Problem.
Hotlinking, also direktes Einbinden von Inhalten anderer Seiten (Bilder, Style-Dateien, Schriftarten, Javascript, you name it) sorgt dafür, dass deine Seite kaputt geht, wenn die Seite, auf die du verlinkst nicht mehr existiert oder ihre URLs ändert. Außerdem ist es ein potentielles Sicherheitsrisiko, wenn ein Angreifer eine der toten Links übernimmt und darüber z.B. gefährliches Javascript in deine Seite einschleust.
Dieses Blog hat kein Hotlinking. Direkt eingebundene Resourcen liegen auf demselben Server wie das Blog, ansonsten wird regulär verlinkt. Wenn dann die Seite dahinter kaputt geht, habe ich zwar einen toten Link, aber ansonsten ist meine Seite nicht beeinträchtigt.
Heutzutage kann man einfach Schriftarten vom Server laden, wenn sie auf dem Zielrechner nicht existieren. Früher musst man hoffen, dass die Schriftart existiert, deswegen wurde oft geraten, sich auf Fonts zu verlassen, die auf praktisch jedem Rechner zu Verfügung stehen, oder man hat einfach Font-Familien angegeben (z.B. „serif“).
Heutzutage kann man Schriftarten dynamisch laden, aber sie neigen dazu, auch komprimiert noch groß zu sein. Zudem wird häufig die Hotlinking-Regel verletzt, wenn man sie z.B. von Google lädt.
Generell ist es eine gute Idee, eine Website so zu bauen, dass die auch dann gut aussieht, wenn nicht genau die richtige Schriftart gefunden wurde. Dieses Blog ist da recht unkompliziert, lädt keine Schriftarten nach und sieht selbst in einem textbasierten Browser noch in Ordnung aus.
Da rennt er bei mir offene Türen ein. Ich bin ein Kompressionsfetischist. Ich habe dazu oft genug geschrieben. Hat aber imho weniger mit Langlebigkeit zu tun, außer, dass die Seite dann einfacher zu archivieren ist.
Lustig ist, dass Lente zwar gegen HTML-Minimierung ist, aber SVG-Minimierung stark empfiehlt, wobei minimierte SVGs praktisch nicht mehr in eine gut lesbare Form zurückgewandelt werden können.
Hier geht es darum, Warnmechanismen aufzubauen, falls bestimmte Pages oder die ganze Seite nicht mehr erreichbar ist. Habe ich nicht, aber wäre vielleicht mal wert, darüber nachzudenken. Auch, was externe Links angeht.
Meine Seite kann, meiner Meinung nach, rein technisch noch Jahrzehnte bestehen. Die größte Gefahr ist, dass aus irgendwelchen Gründen mal mein Server abgeschaltet wird (z.B. weil ich keine Lust mehr habe, ihn mir nicht mehr leisten kann oder mir etwas zugestoßen ist). In diesem Fall wäre die Seite weg.
Ich archiviere grundsätzlich jeden neuen Blogpost hier auf archive.org. So sind diese Posts auch noch verfügbar, wenn diese Seite nicht mehr existiert. Weil ich die Seite minimal gehalten und die Bilder gut komprimiert habe, nimmt sie dort auch nicht zu viel Speicher weg und kann im Gegensatz zu single-page-apps auch sehr effektiv archiviert werden.
So, das hier wird vorerst der letzte Post zum 39C3. Ich habe zwar noch zwei bis drei kleine Themen auf Lager, aber dafür muss ich erst einmal von anderer Seite Input kriegen.
Ich wollte noch ein paar Eindrücke, Erfahrungen und Ähnliches vom 39C3 posten. Dinge, die sonst nirgendwo hereingepasst haben. Das kommt jetzt.
Besonders an Tag 0, wo ich noch nicht auf dem Congress war, sondern erst abends in Hamburg angekommen bin, aber auch an den folgenden Tagen war es draußen sehr glatt. Die Art von Glätte, bei der der Boden nur feucht aussieht, aber gefährlich rutschig ist. Ich habe den Tag über schon Glättewarnungen auf Mastodon gesehen. In Hamburg angekommen war ich also vorgewarnt. Ich habe, beladen mit zwei schweren Taschen, nur kleine Schritte gemacht. Das hat eine Ewigkeit gedauert, aber ich bin sicher angekommen.
Damit sich auch sonst niemand verletzt, gab es auch dem Congress auch Warnhinweise, wie zum Beispiel diesen hier:

Die Schilder für die Assemblies waren dieses Mal im Stil von Bushaltestellenschildern:

Analog zu Pixelflut gab es dieses Jahr auch Sampleflut. Anstelle auf einen Canvas zu schreiben schreibt man hier in einen Audiobuffer, der dann abgespielt wird. Ich selber habe es aber nicht gespielt.
Bei einer Assembly gab es verschiedene Kreaturen, die aushingen. Darunter dieser Coaxolotl (das Licht war komisch, ich habe die Farben nachträglich angepasst, damit man mehr erkennt):

Die anderen Kreaturen habe ich nicht fotografiert.
Nach und nach tauchten auch andere Kreaturen auf. Sie hatten einen RFID-Chip und man konnte sie scannen, um seinen Creaturedex zu vervollständigen. Das Schöne: Jeder konnte Kreaturen hinzufügen. Ich habe das Spiel nicht gespielt, aber wenn es nächstes Jahr wieder so etwas gibt, möchte ich es mal ausprobieren.
Der Congress ist immer etwas unübersichtlich. Glücklicherweise gab es ein cheat sheet:

Es gab aber auch ernsthaft hilfreiche Informationen. So gab es zum Beispiel eine gestickte Karte für Sehbehinderte:

Eine interessante Geschichte dazu habe ich erst auf der Closing Ceremony erfahren: Das c3tactile-Team hatte alles Mögliche mitgebracht, aber die 3D-Gebäudekarte vergessen. Da ist dann eine Assembly mit Stickmaschine in die Bresche gesprungen und hat einfach gestickte Pläne gemacht, die man mit den Händen lesen kann.
Es ist kein vollständiges Chaosevent, wenn nicht zumindest eine Person mit einem schrägen, selbstgebauten Vehikel herumfährt. Sei es ein Matekasten, ein Sessel oder ein Landkajak. Dieses Jahr war es ein recht einfaches Gefährt:

Immerhin weiß ich jetzt, dass diese Aludinger mir den Rillen „Aluminiumprofilrahmen“ heißen.
Ein weiterer häufiger Gast auf Chaosevents sind LED-Matrizen in irgendeiner Form. In diesem Fall wurden kleine Schnapsfläschchen (der Marke „Klopfer“) verwendet:

Diese Installation heißt passenderweise Klopferlight. Der Hacker, der das gemacht hat hat direkt zwei davon gebaut, man kann auf denen auch kompetitiv Tetris spielen. Er hat auch nicht alle 400 Klopferflaschen ausgetrunken, er hat sich einfach eine größere Menge davon ohne Füllung gekauft.
Dann gab es das Creature ChroniCles-Projekt. Das hat am Anfang für ein bisschen Wirbel gesorgt, wegen der Foto-Policy (keine Fotos von Personen ohne explizite Einwilligung). Das Projekt lässt sich aber sicher auch mit der Fotopolicy durchführen. Die Idee war: Hacker_innen fotografieren und dann die Körper mit allen möglichen interessanten Kreaturen übermalen, so dass man die Person nicht erkennt.
Am Ende sind nur ein paar Bilder herausgekommen. Ich würde mich aber für dieses Projekt fotografieren lassen :)
Ein paar Sachen waren auch im Klassichen Geek-Stil dekoriert, wie z.B. dieser Bartresen:

Damit ist die Reihe von Posts über den 39C3 auf diesem Blog fast abgeschlossen. Mir hat der Congress dieses Mal außerordentlich gut gefallen und ich hoffe, ich kann auch nächstes Jahr wieder dabei sein.
An Tag 1 auf dem 39C3 ist mir dieser Aushang untergekommen:
![Grand Trunk – Der Beginn | nomis | Grand Trunk ist eine Installation. Mit Hilfe von Technik kann eine optische Nachricht vo einem Punkt zum anderen Geschickt werden. Optisch bedeutet, dass etwas sichtbar ist. Diese Technik nennt man Optische Telegrafie. Das gibt es schon seit sehr langem. Hier werden Klappen als optisches Signal benutzt Die Installation ist inspiriert von einer Fantasy Buchreihe[sic]. Die Buchreihe sind die Scheibenwelt-Romane vom Autor Terry Pratchett.](/file/39c3_grosser_strang.webp)
Nun bin ich ein großer Fan von Terry Pratchett und den Scheibenweltromanen. Die Klacker (wie die einzelnen Geräte genannt werden, weil sie wegen der sich öffnenden und schließenden Klappen ständig klappern) kenne ich natürlich. Der „Grand Trunk“ ist in der deutschen Übersetzung der „Große Strang“, das Netzwerk dieser Klacker bzw. die Firma, die sie betreibt.
Das einzige Problem: Da stand kein Klacker. Naja, es war Tag 1, vielleicht kommt ja noch etwas. Und tatsächlich: An Tag 4 standen dort dann zwei Kästen, bei einem bewegten sich auch die Klappen:

Was man auf dem Bild nicht sieht: Oben auf dem Kasten ist noch eine Kamera angebracht.
Wirklich viel passiert ist da aber nicht. Später am Tag habe ich dann die Person erwischt, die das aufgestellt hat (Nickname „nomis“). Nomis hat mir erzählt, dass er nicht ganz fertig geworden ist, und dass er noch eine Weile daran arbeiten wird. Bis zum nächsten Congress sei es auf jeden Fall fertig, aber ob er da noch einen Stellplatz bekommt, sei dahingestellt.
Ich jedenfalls hoffe sehr, dass er den bekommt, denn ich möchte das Ding gerne in Betrieb sehen. Ach ja: Die Klacker sind auch die Inspiration für GNU Terry Pratchett.
Heute ist der erste Digital Independence Day (ich hatte letzte Woche schon davon berichtet). Wird das was bringen? Ich weiß es nicht, aber ich probier das einfach mal aus.
Für heute habe ich das Repo dieses Blogs von Github nach Codeberg verschoben. Dazu habe ich mir auch einen Account auf Codeberg eingerichtet, was es für mich einfacher macht, zukünftige Entwicklungen auf Codeberg zu machen. Ich habe nicht alle meine Repos migriert, aber das Blog-Repo ist mit Abstand das meistbenutzte davon. Meinen Github-Account behalte ich auch, weil viele andere Projekte über Github laufen, wenn ich da also etwas einreichen möchte, brauche ich Github.
Github war eigentlich eine gute Software. Was mich immer gestört hat war, dass die dahinterliegende Software keine freie Software ist. Nachdem Github 2018 von Microsoft aufgekauft wurde, war ich schon ein bisschen besorgt. Viele sind damals schon z.B. zu Gitlab gewechselt. Ich habe das Repo bei Github behalten. Wenn es zu nervig wird, konnte ich ja immer wechseln, ich benutze ja keine speziellen Github-Funktionen.
Dieses „wenn es zu nervig wird“ war nie ganz erreicht, auch wenn Github auf anderen Projekten wohl massiv mit LLM-Agenten genervt hat. Für mich selber hat es den Digital Independence Day gebraucht, um zu einer freien Alternative zu wechseln.
Die Gitlab-Software steht zwar unter einer freien Lizenz (zum Selbsthosten), aber gitlab.com ist mir in der Vergangenheit negativ aufgefallen. Selber hosten möchte ich nicht, also wurde es Codeberg, das mit der ebenfalls freien Software forgejo läuft.
Es ist nur eine Kleinigkeit, aber sie öffnet für mich ein paar Türen, weiter von Github bzw. Gitlab wegzukommen. Für alle anderen: Überlegt doch mal, was ihr zum nächsten Digital Independence Day macht. Das ist immer der erste Sonntag im Monat, der nächste ist also am 1. Februar.
Und wenn ihr wollte, dass die freien Alternativen auch durchhalten, überlegt doch mal, ob ihr nicht spenden wollt. Für Codeberg zum Beispiel kann man hier spenden.
Auf dem 39C3 sind mir auch zwei handgemalte Aushänge untergekommen von einer Person, die einen Daniel suchte. Halt, nein, nicht irgendeinen Daniel, es musste der richtige sein:

Der zweite Aushang hatte sogar ein Phantombild:

Ich habe keine Ahnung, was das war, aber ich hoffe, dass die suchende Person ihren Daniel gefunden hat.
Jetzt ist es soweit: Trump hat einen Krieg gegen Venezuela angefangen und Präsident Maduro entführt. Ich habe nicht viel Ahnung von Völkerrecht, aber das war vermutlich völkerrechtswidrig.
Ich sehe da einige Parallelen zu Bush und dem Irak-Krieg. Hussein war Diktator. Maduro ist (war?) Diktator. Ein Konflikt hat sich über längere Zeit angebahnt, und die USA haben einen völkerrechtswidrigen Angriff auf ein anderes Land geführt. Ein Land, dass Ölreserven hat.
Es gibt natürlich Unterschiede. Damals hat die US-Regierung noch als Feigenblatt angebliche Massenvernichtungswaffen im Irak angeführt. Zwar mit einer gefälschten Beweislage, aber immerhin haben sie gemeint, sich rechtfertigen zu müssen. Trump ist da ganz schamlos. Er versenkt / ermordet erst einen Haufen mutmaßlicher Drogenschmuggler (anstatt sie zu verhaften und vor Gericht zu stellen). Er beschlagnahmt unter Fadenscheinigen Argumenten venezuelanische Tanker. Und jetzt greift er halt an. Würde mich nicht wundern, wenn er das auch als „militärische Spezialoperation“ und nicht als Krieg deklariert, so wie Putin mit seinem Krieg gegen die Ukraine.
Ich habe keine Sympathien für Maduro, aber Trump, der sich immer als Friedensbringer darstellt ist eine echte Gefahr für den Weltfrieden.
Ab Tag 2 gab es auf dem 39C3 Aushänge dieser Art zu sehen:

Das ist natürlich in mehrere Hinsicht lustig. Zum einen heißt das Programm des 39C3 traditionell „Fahrplan“. Zum Anderen ist es einfach verdammt gut gemacht.
Ich habe mal nachgefragt, und es gibt tatsächlich ein Script, mit dem man einen solchen Fahrplan erstellen kann. Erste commits irgendwann an Tag 2. Ich vermute, das ist recht spontan entstanden. Das Script gibt keinen gelben Hintergrund, man muss das also auf gelbem Papier ausdrucken oder ein bisschen mit Farben und Transparenzen herumspielen.

Wenn man seine Daten im richtigen Format hat, kann man das also für alle möglichen Zeitpläne machen. Ich liebe diese Community.
Eine schöne Sache an den CC-Congressen sind ja die humorvollen Aushänge. Manchmal gibt es aber auch wichtige Aushänge (Fotos sind dank schlechter Beleuchtung leider etwas unscharf):

Wie das so geht, waren die kostenlosen Primzahlen schnell aus, und an Tag 2 gab es schon kostenpflichtige Primzahlen:

Ist es opportunismus eines Konkurrenzanbieters? Enshittification des Originalanbieters? Oder hat vielleicht jemand die kostenlosen Primzahlen verbraucht, um jetzt welche für Geld verkaufen zu können? So oder so, es ist ein Skandal. 50 cent für eine fünfstellige Primzahl, wo es vorher 45-stellige Primzahlen umsonst gab! Glücklicherweise gab es eine Gegenbewegung:

Das Bild ist leider ein bisschen unscharf, aber die Idee ist klar. Etwa zur selben Zeit stellte sich auch heraus, wo die „Free Prime Numbers“ abgeblieben waren:

So viele Primzahlen wurden allerdings nicht befreit. Wir brauchen wohl ein internationales Primzahlschutzabkommen.
Aber nun die entscheidende Frage: Habe ich es geschafft, Primzahlen zu ergattern? Ja! Gleich an Tag 1 habe ich einen Abreißzettel mit zwei Primzahlen mitgenommen. Ich teile sie hier mit euch, aber benutzt sie nicht zu viel, ich möchte nicht, dass sie sich abnutzen.
760416122552145957375458334467
507229345003260436783415437687
Ich habe mir vorgenommen, 2026 ein Bloglinkprojekt durchzuführen. Die selbst erdachten Regeln sind:
In welchem Kontext der Artikel verlinkt wird, ist egal. Ich kann z.B. einfach auf einen interessanten Artikel hinweisen. Oder ich schreibe selber einen Artikel und benutze den verlinkten Artikel als Quelle oder zum weiteren Nachlesen. Oder ich möchte vielleicht einen Artikel kritisieren. Egal.
Die Idee ist, mehr Links zu anderen Blogs zu schaffen, die vielleicht sonst nicht viel Aufmerksamkeit bekommen. Wenn Suchmaschinen durch Chatbots ersetzt werden und die großen Social-Media-Riesen versuchen, Links nach außen zu minimieren, brauchen wir mehr Links zwischen kleinen Blogs.
E ist zwar noch nicht einmal Kalenderwoche 1, aber letzte Woche ist mir schon ein Kandidat für einen Artikel untergekommen, der seht gut zum heutigen Tag (Neujahr) passt:
In meiner Familie (oder generell wo ich herkomme) ist es eine Tradition, zu Neujahr „Neujährchen“ zu essen. Das sind mit Sahne gefüllt, dünne Waffelröllchen (optional mit Schokolade überzogen). Die sind recht schwierig zu essen, weil sie am Ende dazu neigen, beim Draufbeißen auseinander zu breche (und dann hat man die Hände voller Schlagsahne) Erst vor wenigen Jahren habe ich gelernt, dass diese Röllchen auch unter dem Namen „Eiserkuchen“ bekannt sind.
Die Eiserkuchen kann man auch selber machen. Ich habe das noch nie gemacht, aber hier ist ein Rezept. Die Eiserkuchen sind hier sind nicht zylinder- sondern kegelförmig und die Sahnefüllung hat noch Vanille beigemischt, aber um Grunde genommen ist es das Gleiche.