Stranger Than Usual

60g GRATIS

Ich habe mir heute Schokolade gekauft. Schokokugeln von einer bekannten, teuren Marke. Man muss sich ja zu Weihnachten auch mal etwas gönnen.

Was mich ein bisschen genervt hat war die Werbung auf der Verpackung: „60g GRATIS“. Wer hat sich diesen Bullshit eigentlich ausgedacht?

Das ist eine 200g-Packung. Ich habe für eine 200g-Packung gezahlt. Die 60g „gratis“ waren nicht gratis. Die habe ich bezahlt.

Oder ich habe halt 60g gratis bekommen, weil ich 140g zum Preis von 200g gekauft habe. Gratis wäre es, wenn ich die 60g kriegen könnte, ohne etwas zu bezahlen. Ich habe im Supermarkt aber nicht nachgefragt, ob das möglich ist.

Animierte SVG und CPU-Last

Ich habe ja vor ein paar Monaten schon davon geschrieben, wie ein Kollege einen animierten Github/Gitlab contribution graph gebastelt hat, in Form einer animierten SVG. Ich finde das nach wie vor cool, aber ich habe keine solche Datei in den Blogpost eingebunden. Zum einen, weil die Dateigröße trotz alle Optimierungen noch ziemlich heftig war (250 kiB), zum anderen, weil alleine das Anzeigen der Animation bei mir 50% CPU-Last auf einem Kern erzeugt.

In diesem Artikel geht es um animierte SVG und deren CPU-Last. Eigentlich wären animierte SVG eine super Gelegenheit, mal wieder ein paar Bilder in das Blog zu bringen… allerdings möchte ich keine riesige CPU-Auslastung bei allen verursachen, die meine Seite besuchen, also verlinke ich die Animationen nur.

Angefangen hat meine neuerliche Besessenheit mal wieder mit Napstablook.

Napstablook, animiert und tanzend

Ich bin gestern Abend über ein Github-Repo mit einem animierten Napstablook gestoßen. Die Grafiken selber stammen von Joel Erhart, die er auch in diesem Youtube-Video veröffentlicht hat. Ob das Github-Repo von ihm ist oder von einem Fan, weiß ich nicht.

Dieses Repo enthält jedenfalls eine Napstablook-Animation. Allerdings nur, wenn man eine SVG-Datei mir SPrites der verschiedenen Animationsschritte mit ein bisschen HTML und CSS mischt. Und ich habe mir gedacht: Hey, das kann man doch sicher auch standalone machen. Also habe ich das Repo geklont und mich an die Arbeit gemacht.

Einschub: SVG-Editoren und ihr komischer SVG-Code

Meistens wird der SVG-Code nicht von Hand geschrieben. Das ist verständlich, denn SVG von Hand zu bearbeiten ist eine Menge Arbeit und, um ehrlich zu sein, ich habe keine Intuition dafür, wie ich die Punkte in Bezierkuven setzen muss, damit sie so aussehen, wie ich es will. Also Benutzt man visuelle Editoren wie z.B. Inkscape, diese eine Adobe-Tool dessen Namen ich vergessen habe oder einen Haufen anderer SVG-Editoren. Manche Editoren sind auch für bestimmte Zwecke gemacht (z.B. für Diagramme), lassen ihre Ergebnisse aber auch als SVG exportieren.

Und dieses exportierte SVG ist, meiner Erfahrung nach, oft sehr unschön. Zum Beispiel wird anstelle von SVG-Attributen wie fill und stroke eine Menge CSS eingefügt wie ich schon bei meinem nichtanimierten Napstablook-SVG feststellen musste. Dann werden Koordinaten und Skalierungen willkürlich gesetzt, um sie danach mit einem transform-Attribut auf die richtige größe zu skalieren und an die richtige Position zu schieben.

Oft werden auch Gruppierungs-Tags (<g>) recht willkürlich verwendet, um Elemente zu gruppieren. Und, was ich speziell in diesem Fall feststellen musste: Statt den stroke eines Pfades zu nehmen, um eine Linie zu zeichnen, wurde mit dem Pfad eine zweidimensionale Fläche erzeugt, die dann mit fill gefüllt wurde. Obwohl es in dem Bild eigentlich nur zwei etwa gleich starke Linien gibt. Wenn man das so macht, kann man das Element natürlich nicht mehr weiß füllen… also erstellte die Software einen zweiten Pfad, der die inneren Umrisse des ersten Pfades abbildet. Oh, und der beide Pfade sind auch sehr lang.

Ich habe eine ganze Menge Müll herausgeworfen und es geschafft, die Größe der Datei von etwa 200 kiB auf etwa 100 kiB zu reduzieren. Immer noch groß, aber ich habe auch nicht alle Optimierungsmöglichkeiten ausgenutzt.

Lustig ist, dass man an der Struktur der SVG-Datei gut erkennen kann, wie die erschaffende Person gearbeitet hat, vieles davon zeigt auf verschiedene Arbeitsschritte hin, z.B. die zeigen Translationen und Transformationen vermutlich, wie der Künstler in diesem Fall Objekte hin- und hergeschoben hat. Ist ja schön, aber es sollte in einem SVG-Editor eine Export-Funktion geben, die diesen ganzen Kram zusammenstreicht um ein einfacheres SVG zu erzeugen. Aber genug der Ausschweifung.

Der animierte Napstablook, standalone

Ich habe einige Zeit gebraucht, die größtenteils daraus bestand, mich in der Ursprungsdatei zurechtzufinden, unnützen krams wegzuwerfen und Translationen zu berechnen. Am Ende jedoch hatte ich die Animation, die ich auch zu meinem geklonten Repo auf Github gepushed habe. Die Sache hat nur einen Nachteil: Meine CPU-Lst geht auf 30% hoch, sobald ich die Animation im Browser betrachte.

  <use> <!-- "use" referenziert ein anderes Objekt, das gerendert werden soll.-->
    <!-- Das "href"-Attribut von "use" wird durch das "animation"-Tag gesetzt. -->
    <animate attributeName="href" values="#f1;#f2;#f3;#f4;#f5;#f6;#f7;#f8;#f9;#f10;#f11;#f12;#f13;#f14;#f15;#f16;#f17" dur="1.5s" repeatCount="indefinite"/>
  </use>
  
  <!-- das sind die einzelnen Animationsschritte, sie sind in einer Gruppe, die sie aus
       dem gerenderten Bereich heraus verschiebt -->
  <g transform="translate(135,253)">
    <path
       transform="matrix(0.5,0,0,0.5,0,-273)"
       id="f1"
       d="m 50.917047,1047.8813 c -9.810776,-5.1114 [sehr langer Pfad]"/>
    <!-- 16 andere Pfade mit IDs von "f2" bis "f17" -->
  </g>

Die CPU-Last animierter SVG

30% auf einem halbwegs modernen CPU-Kern… das ist zu viel für einen kleinen animierten Geist in schwarz-weiß. Aber wie gesagt, die SVG-Pfade für den Geist sind sehr lang und umständlich. Also nehme ich eine einfachere Animation. So einfach wie möglich. Ich nehme das Beispiel von der MDN-Dokumentation zum <animate>-Tag:

<svg viewBox="0 0 10 10" xmlns="http://www.w3.org/2000/svg">
  <rect width="10" height="10">
    <animate
      attributeName="rx"
      values="0;5;0"
      dur="10s"
      repeatCount="indefinite" />
  </rect>
</svg>

Das ist nur ein Quadrat, und die Animation ist so, dass sie langsam die Ecken immer weiter abrundet, bis ein Kreis dabei heraus kommt, und wieder zurück. Ad infinitum. Das kann doch nicht so schlimm sein, oder?

70 Prozent?!?

Mist. Dieses fast-Minimalbeispiel braucht sogar noch mehr CPU-Leistung. Und es macht auch keinen Unterschied, ob das Bild groß skaliert oder klein ist. Oder ob man die Animation verlangsamt oder beschleunigt. Es braucht.

Ich kann doch nicht die einzige Person mit diesem Problem sein, oder?

Nein, natürlich nicht. Vor über 7 Jahren schon hat zum Beispiel jemand auf Stackoverflow um Hilfe gebeten. Und das ist kein alleiniges Firefox-Problem. Chrome (bzw. Chromium) macht das Gleiche. Und damit in aller Wahrscheinlichkeit auch Safari und Edge.

Ich habe noch ein paar Experimente angestellt. Bewegen von Elementen (in diesem Fall eines Quadrats) hat auch für 70% Auslastung gesorgt (Beispiel von der MDN-Seite über das repeatCount-Attribut). Tatsächlich bin ich mit den 30% noch ganz gut dabei gewesen.

<svg viewBox="0 0 220 150" xmlns="http://www.w3.org/2000/svg">
  <rect x="120" y="0" width="100" height="100">
    <animate
      attributeType="XML"
      attributeName="y"
      from="0"
      to="50"
      dur="1s"
      repeatCount="indefinite" />
  </rect>
</svg>

Ironischerweise hat dieses Tutorial, um SVG-Animationen auf Page Speed zu optimieren als Titelbild eine animierte SVG, die meine CPU-Last auf 200% bis 250% hochtreibt. Super hilfreich ist die Seite auch nicht. Ein paar gute Tipps (z.B. zum Verkleinern der SVG-Dateien) sind aber dabei.

Andere Animationen

Auch CSS-Animationen können sehr teuer sein. Ich habe da nicht viel ausprobiert, aber ich vermute mal, dass Animationen, die das Seitenlayout verschieben, sehr teuer sind, weil dabei ständig alles neu berechnet werden muss. Animationen, die nur sich selbst betreffen, dürften weniger rechenlastig sein. Die über CSS animierte Ursprungsversion des tanzenden Napstablook zum Beispiel sorgt nur für eine 15% Last auf einem Kern.

Animierte Rastergrafiken (z.B. animierte GIF-Bilder) funktionieren hingegen sehr effizient. Ich vermute mal, dass dort einfach nur die Pixel ausgetauscht werden, während bei SVG potentiell eine Menge Fließkommazahlen berechnet werden müssen, um das Bild richtig darzustellen.

Vielleicht kann ich also hoffen, dass sich die SVG-Animations-Renderer mit der Zeit verbessern, und z.B. alte Zustände cachen, um deutlich effizienter zu rendern. Bis dahin muss ich selber herausfinden, wie ich SVG-Animationen möglichst effizient mache.

Wenn ich etwas herausfinden sollte, schreibe ich hier wieder etwas dazu.

PS: svgo

Ach ja: Seit vorsichtig mit SVG-Optimierungstools wie svgo, wenn ihr animierte SVG-Dateien habt. SVGO fügt nämlich mehrere Pfade zu einem Pfad zusammen, entfernt Gruppen und IDs, und ignoriert dabei, dass die vielleicht von Animationen als getrennte, identifizierbare Elemente benötigt werden. Man kann das teilweise wegkonfigurieren, aber das ist ein bisschen aufwändig und man muss trotzdem aufpassen.

Edit 2025-12-26

Ich hatte ganz vergessen, ein paar Codebeispiele einzufügen. Das habe ich jetzt nachgeholt.

39C3 Power Cycles

Ab morgen ist es wieder soweit: Der 39. Chaos Communication Congress (39C3) beginnt. Hier ist ein Überblick mit Links zu allen notwendigen Informationen. Wer kein Ticket hat, kann sich die Livestreams der Talks auf media.ccc.de anschauen. Dort werden auch später die Aufzeichnungen veröffentlicht.

Der Fahrplan mit allen Talks oder der Schedule mit vielen anderen Veranstaltungen wie z.B. Workshops ist auch online. Er wird immer wieder aktualisiert, also schaut regelmäßig drauf.

Wer sich im CCH nicht zurecht findet, kann das C3Nav verwenden.

Aber die Talks sind nur der Kern der Sache. Der eigentliche Spaß sind die ganzen verrückten Hacker, ihre Projekte, Werke und Assemblies. Ich werden zum Beispiel mal wieder beim House Of Tea vorbeischauen. Vielleicht gibt es auch wieder einen Pixelflut-Server, auf dem ich ein bisschen spielen kann (dieses Jahr ohne Raspberry Pi und Controller). Die Lightning Talks an Tag 2 und 3 sollte man nicht verpassen, da sind immer ein paar Perlen dabei.

Oder man lernt ein bisschen Lockpicken. Oder lötet sich etwas zusammen (Bausätze unterschiedlicher Komplexität werden gegen Spenden verteilt).

Wer kein Ticket bekommen hat: Viele Hackspaces in Deutschland veranstalten den Congress Everywhere mit dezentralen events. Ich war da noch nie, aber meine Erfahrung mit Hackspaces ist gut.

Für alle die zum Congress kommen: Viel Spaß und be excellent to each other. Für die, die nicht zum Congress kommen: Habt trotzdem viel Spaß, schaut euch vielleicht den einen oderen anderen Talk an und be excellent to each other!

39C3: Tag 1

Eine Fassade mit vielen Glasscheiben und bunten Lichtern. An der Fassade ist eine große Leuchttafel mit der Aufschrift „39C3 POWER CYCLES“

Letztes Jahr habe ich ja im Nachhinein über den Congress geschrieben, dieses Jahr versuche ich, das halbwegs zeitnah zu machen.

Der erste Tag war mal wieder ein voller Genuss. Ich bin morgens angekommen, erst einmal durch die größtenteils leeren Hallen gewandelt und mir angeschaut, was die Assemblies so alles aufgebaut haben. Ich habe mir im Laufe des Tages einige Vorträge angehört, einige alte Bekannte getroffen, mich gut unterhalten, mit ein paar Leuten über ihre Projekte gesprochen usw. Ich habe auch ein paar Fotos von Sachen (aber nicht von Leuten) gemacht. Ich bin während des Congress innerhalb des Congress-Netzes unter der Nummer 65914 erreichbar.

Ich werde vermutlich wieder einige Posts zum Congress schreiben, also kommt nicht alles, was ich erlebt habe, in diesen Post (auch weil ich müde bin und ins Bett will). Links zu den aufgezeichneten Talks füge ich auch später hinzu.

Vorträge, die ich angeschaut habe

  • Opening Ceremony: Hier hat Stella Schiffczyk einige schöne Cartoonfiguren gezeichnet, um die Erklärungen lebhafter zu gestalten
  • The art of text (rendering): Ein Vortrag über die Schwierigkeiten und Details von Textrendering
  • All my Deutschlandtickets gone: Fraud at an industrial scale: über Betrug beim Verkauf von Deutschlandtickets.
  • Die Känguru-Rebellion: Digital Independence Day: Eine Lesung von Marc-Uwe Kling. Zum Digital Independence Day (DID) schreibe ich später noch mehr.
  • Hacking washing machines: Ein Talk über reverse-Engineeren von Wartungsschnittstellen und internen Bussen von Waschmaschinen und anderen Geräten von Miele und B/S/H. Gut vorgetragen, inhaltlich interessant und gutes Reverse-Engineering. Fun fact: Die beiden Vortragenden haben unabhängig voneinander an Waschmaschinen unterschiedlicher Marken geforscht und unabhängig voneinander Vorträge eingereicht. Die Orga hat die beiden miteinander in Kontakt gebracht und den Vortrag zusammengelegt.

Vorträge, deren Aufzeichnung ich noch anschauen möchte

Update 2025-12-28: Ich habe jetzt die anderen Vorträge, die ich noch anschauen möchte, hier aufgelistet

Pixelflut und Pixelebbe

Pixelflut gab es auch wieder. Neu dieses Mal: Pixelebbe. Der Prozess, hier ein Pixel zu setzen ist fast so effizient wie bei Pixelflut:

  1. Eine Wartenummer ziehen
  2. Warten, bis die Nummer aufgerufen wird
  3. Der Person am Schalter sagen, dass man ein Pixel setzen möchte. Man bekommt daraufhin ein Formular (mit Durchschlag)
  4. Das Formular ausfüllen (Koordinaten, Farbcode, Unterschrift und eventuell optionale Felder)
  5. Das Formular abgeben. Es wird überprüft, gestempelt und man erhält es als Bestätigung (der Durchschlag wird nicht ausgegeben)
  6. Warten, bis das Pixel gesetzt ist.

Ein ausgefülltes Formular für einen „Pixelfestsetzungsantrag“. Formularfelder sind u.a. „Ortschaft“ (Koordinaten), Gegenstand des Pixels (Farbe) und Datum des Antrags. Der Antrag ist vom „Pixel Office“ abgestempelt.

Rick Rolling

Special Mentions gehen an den Harry Plotter. Ein Plotter mit verschiedenen Knöpfen. Ich war neugierig, was der „mystery“-Knopf macht:

Eine Plotterzeichnung von Rick Astley. An der Seite steht: „You have been rickrolled by Harry Plotter.

Zu allem Überdruss hat der Plotter dann auch noch seine Motoren genutzt, um „Never Gonna Give You Up“ zu spielen.

So, jetzt muss ich aber schlafen um für Tag 2 fit zu sein.

Digital Independence Day / Digitaler Unabhängigkeitstag (DID/DUT)

Mark-Uwe Klings Lesung gestern endete mit dem Vorschlag des Digital Independence Day (DID), oder, auf Deutsch, des Digitalen Unabhängigkeitstages (DUT).

Die Idee ist, jeden ersten Sonntag im Monat eine Umstellung von proprietärer Software (oder von Diensten eines Tech-Riesen) zu freier Software oder zu unabhängigen Diensten machen, die man schon lange machen wollte. Kein Druck dabei. Wenn man einen Dienst unbedingt braucht, gerne behalten. Oder zweigleisig fahren: Auf der einen Plattform publizieren und auf der anderen, bis man die erste ersetzen kann. Und ganz wichtig: am Ende angeben, das man es getan hat („I DID it“ oder „DUT gemacht“). Wenn man selber gerade nichts hat, was man ersetzen kann oder möchte, kann man gerne Familie und Freunden dabei helfen, die das vielleicht nicht alleine schaffen.

Hier ist die offizielle Seite dazu. Dann gibt es auch noch die Ankündigung des CCC.

Ich werde da auf jeden Fall mal mit anfangen, vielleicht wird es ja was. Ich muss mir aber noch überlegen, was ich im Januar dafür mache. Ich melde mich dann zurück :)

39C3: Lightning Talks Tag 2

Ich habe ja öfter schon erwähnt, dass die Lightning Talks auf dem Congress immer einen Besuch wert sind. Jeder Talk ist maximal fünf Minuten lang, über etwa zwei Stunden kriegt man da eine Menge unterschiedlicher Informationen und Inspirationen.

Man kann sich die Aufzeichnung der Lightning Talks auf media.ccc.de anschauen. Ich werde hier nicht weit in Detail gehen, ich Liste die Talks auf und schreibe ein paar Worte dazu. Kontaktinformationen kann man im verlinkten Video finden.

  • „Chaos auf der Schiene: Die Wahrheit hinter den Verspätungen“: Ein Bahnmitarbeiter erzählt einen Grund, warum es zu Verspätungen kommt: automatische Systeme haben nicht richtig erkannt, dass ein Zug einen Gleisabschnitt wieder verlassen hat. Das muss dann langsam manuell geprüft werden.
  • „EventFahrplan - The 39C3 Fahrplan App for Android“ – der Entwicker der Fahrplan-App (der Fahrplan ist der Plan der Events auf dem Congress) redet über seine App, die er nun schon seit Jahren pflegt und die auch auf anderen Events eingesetzt wird. xkcd lässt grüßen
  • „Quantum computing myths and reality“: Häufige propagierte Irrtümer über Quantencomputer
  • „Return to attacker.com“: eine Forscherin berichtet über Unvalidated-redirect-Attacken
  • „Teilchendetektor im Keller? Ich habs gemacht. Die Theorie und der Bau einer Funkenkammer“: eine 19-Jährige Physikstudentin hat sich eine Funkenkammer zur Erkennung von Myonen gebastelt. Dazu gibt es heute später am Tag noch einen längeren Vortrag
  • „What's the most secure phone?“: Eine kurze Abhandlung, welche Smartphone-Betriebssysteme mit welchen Einstellungen am sichersten sind
  • „reverse engineering a cinema camera’s peripheral port“: Jemand hat zusätzliche Schalter für seine Filmkamera an der Kamera angebracht
  • „Youth Hacking 4 Freedom: the European Free Software competition for teenagers“: Der Titel sagt es schon
  • „From word clouds to Word Rain: A new text visualisation technique“: Word Clouds sind für Textanalyse nicht hilfreich genug, Word Rain ist hilfreicher (inklusive einer Erklärung, was Word Rain ist)
  • „Spaß mit Brettspielen“: Werbung für Brettspiele als Hobby
  • „Creative Commons Radio - I really didn't want to become a copyright activist!“: Der Sprecher wollte nur mit Musik im Hintergrund streamen. Trotz Copyright-strikes gegen CC-lizenzierte Musik
  • „lernOS für Dich - Selbstmanagement & persönliches Wissensmanagement leicht gemacht“: Irgendwas mit Wissensmanagement
  • „Was man in Bluetooth Advertisements so alles findet“: Viele Bluetooth-Geräte schicken Payload unverschlüsselt. Das führt in vielen Fällen zu Privacy-Problemen
  • „The Sorbus Computer“: Ich bin mir nicht mehr sicher, aber ich glaube es ging um einen Emulator mehrerer alter Computer (z.B. Apple ][)
  • „AI doesn’t have to slop - Introducing an open source alternative to big-tech AI agents“: Vorschlag einer freien Alternative für zentrale LLMs
  • „Interoperability and the Digital Markets Act: collecting experiences from the community“: ich habe nicht mehr genau im Kopf, worum es ging
  • „Leveraging Security Twin for on-demand resilience assessment against high-impact attacks“: Absicherung gegen Attacken auf IT-Systeme
  • „A seatbelt for innerHTML“: ein Firefox-Entwickler erzählt über ein kommendes Feature, bei dem der Browser HTML-Sanitizing machen kann, so dass man keine JS-Bibliothek mehr dafür braucht
  • „Toxicframe - Ghost in the Switch: Vier Jahre Schweigen in der Netgate SG-2100“: Ein neuer Switch verschluckt immer ein ganz spezielles TCP-Paket, unabhängig vom darüberliegenden Protokoll
  • „KI³Rat = Mensch x Daten x Dialog“: Irgendeine Idee, wie man den ganzen „KI“-Kram politisch besser handhaben kann
  • „iPod Nano Reverse Engineering“: Hardware-Reverse-engineering
  • „Interfaces For Society - Wenn Demokratie Auf Protokollen Läuft“: Über ein freies, öffentliches Datensystem, das ursprünglich in Estland entwickelt wurde
  • „Security problems with electronic invoices“: der Titel spricht für sich selbst

Dieses Mal haben mir die Lightning Talks besonders gut gefallen: Ein hoher Anteil von Themen, die ich interessant fand, die Vorträge waren gut gemacht und alle Vortragenden waren pünktlich.

39C3: Congress-FOMO

So ein Chaos Communication Congress ist überwältigend: So viele interessante, talentierte und kreative Leute. So viele coole Talks. So viele Workshops zu Themen, die man schon immer mal angehen wollte. So vielw Workshops zu Themen, von denen man nicht wusste, dass man sie angehen wollte.

Kleine Spielchen, bei denen man auf dem ganzen Congress Sachen machen muss. Zusammenlöten von Gadgets. Pixelflut. Pixelebbe. Siebdruck. Druck mit Legosteinen. Tee. Capture-the-Flag-Challenges. Engelschichten. Chaospost.

Man kann den Congress nicht besuchen, ohne den Großteil des Congresses zu verpassen. Das erzeugt bei mir eine gewisse Fear of missing out (FOMO). Im Gegensatz zu FOMO als Marketing-Masche / Dark Pattern ist es hier zwar nicht absichtlich, aber wenn man nicht darauf vorbereitet ist, kann es schon zu Stress führen.

Und ich neige zu Stress, gelinde gesagt. Also wie gehe ich damit um? Ich kann hier keine allgemeinen Ratschläge geben. Was für mich aber funktioniert ist: Ich mache mir von Anfang an klar, dass ich nicht alles machen kann. Wenn ich diese Erwartungshaltung habe, dann ist das für mich schon die halbe Miete. Die Talks werden aufgezeichnet, also kann man die im Zweifelsfall wegfallen lassen (auch wenn man dann z.B. das Q&A verpasst).

Ansonsten versuche ich einfach, nicht zu viel zu planen, dann kann ich auch nicht enttäuscht sein, wenn mein Plan nicht funktioniert.

39C3: Tag 2

Mit ein bisschen Verspätung der Bericht zum zweiten Tag. Ich habe ein paar Vorträge gehört, Tee getrunken, mich mit mir unbekannten Leuten unterhalten, Pixelflut gespielt und noch ein paar Sachen.

Ich habe einen Freund gefunden, den ich vom Rollenspielen her kenne (er spielt z.B. die neulich erwähnte Waldläuferin Therith). Die haben eine Winkekatze entworfen, die nur auf Befehl winkt. Auf wessen Befehl? Naja, auf den Befehl der Person, die auf der Website einen Button drückt. Dann winken alle Winkekatzen, die angeschlossen sind. Man kann sogar die Augenfarbe wählen, weil die Winkekatze LED-Augen hat. Natürlich musste ich eine bauen.

Ich bin dann irgendwann zu müde geworden, um sie fertig zu kriegen, aber ich habe ja noch Zeit und zur Not nehme ich sie mit nach Hause. Ich habe noch keine Fotos gemacht, aber wenn das fertig ist, stelle ich sie online. Eine Übersicht zum Bau einer solchen Winkekatze gibt es auch.

Vorträge, die ich gesehen habe

Diese Vorträge habe ich gesehen:

Vorträge, die ich mir noch anschauen will

39C3: Lightning Talks Tag 3

Heute hatten die Lightning Talks einen eigenen Block für Klimawandel-Themen. Auch heute wieder: Viele interessante Talks, keine Verspätungen, und es war noch genug Zeit über, zwei Extra-Talks spontan einzubinden.

  • „"Oma, erzähl mir von der Zukunft" oder: Wie wir weiter interessante Sachen machen, ohne den Planeten zu ruinieren 🌱“: Über „Omas for Future“ und warum man auch ältere Leute für den Klimaschutz mobilisieren soll.
  • „Don't abuse the ecosystem: against overloading "ecosystem'“: philosphieren darüber, dass man das Wort „Ökosystem“ nicht als Metapher für Technologie-Zusammenhänge (z.B. „Apple-Ökosystem“) verwenden soll
  • „The Climatepoetry.org video tool“: Automatische Visualisierungen für Musik von climatepoetry.org
  • „Neo-Kolonialismus & Katzenbilder - Installation zur Lieferkette von GenAI“: Der ärmste Teil der Welt hat am wenigsten von GenAI, wird aber ausgebeutet, um sie zu trainieren“
  • „Build social inventories with StashSphere“: Mal eben was kaufen ist oft einfacher, als es von Freunden auszuleihen oder zu übernehmen, wenn sie es nicht mehr brauchen. StashSphere soll eine Plattform bieten, Freunden, Familie und Bekannten Sachen zu überlassen. Du hast z.B. 100 Widerstände gekauft, brauchst aber nur60 gebraucht? Gib die anderen an einen Freund ab.
  • „Invitation to the Fermentation Camp "Kvas 2026"“: Einladung zum Fermentation Camp, es geht über Lebensmittel und Veredelung durch Fermentierung
  • „Stretching nginx to its limits: a music player in the config file“: Eine Minimallösung für einen Web-Musikplayer, man braucht nur nginx
  • „2D Graphics Creation with Graphite - How to Build a Hackable Graphics Editor“: Über den neuen Graphics-Editor Graphite
  • „The Modulator: a Custom Controller for Live Music Performance“: Jemand hat ein konfigurierbares Audiomodulator-Board gebastelt
  • „Find hot electronic devices for cheap using Lock-In Thermography“: Mit einer relativ billigen IR-Kamera Hitzebildanalyse von Elektronik machen, um Fehlerstellen zu finden
  • „Those Who Control“: Ein Kunstprojekt in Anlehnung an 1984 „He who controls the present controls the past. He who controls the past, controls the future.“
  • „SearchWing - Search&Rescue Drones“: Kameradrohnen, um Schiffbrüchige im Mittelmeer zu finden
  • „Reducing E-Waste With The Reverse Engineering Toolkit“: Ein Toolkit, um Hardware besser auseinandernehmen zu können, sie wiederverwerten zu können und sie zu reverse-engineeren
  • „Genetic engineering with CRISPR/Cas9: how far are we today from biopunk?“: Eine kurze Erklärung zu CRISPR/Cas9 und was damit so gemacht wird
  • „Discovering the Orphan Source Village“: Ich habe es nicht ganz verstanden, aber irgendwas mit LLMs, Halluzinationen und ich glaube data poisoning für LLM-Lerndaten
  • „kicoil - generate planar coils in any shape for PCBs and ICs“: Ein Tool, Muster für um planare (ebene) Spulen auf PCBs zu generieren
  • „Trade Offer: Pentest Data for CTF Points“: Details vergessen. Irgendwas mit annotierten Daten über IT-Angriffe
  • „Soziologische Gabentheorie - Grundlage für die Bewertung von Social Media?“: Man kann Erfolg im Fediverse nicht mit den gleichen Metriken messen wie in traditionellen social networks.
  • „Hacking ID3 MP3 Metadata“: Sicherheitslücken beim Behandeln von ID3-Metadaten.
  • „ICANN HAZ .MEOW? How we're (trying to) make a TLD out of sheer audacity“: die Top-Level-Domain .meow für die queere Community registrieren
  • „Shitty Robots“: Über den jährlichen Shitty-Robots-Wettbewerb auf dem C3
  • „UNIX v4“: Vor Kurzem wurd eine der frühesten, aber verloren gegangen geglaubten Unix-Versionen wieder entdeckt. Zu finden unter amderem auf archive.org
  • „WissKomm Wiki - Bibliothek für Videos und Podcasts“: Es ist schwierig, Podcast-Episoden oder Videos zu speziellen Themen zu finden, auch wenn es sie gibt. Diese Bibliothek soll abhilfe schaffen.
  • „Lightning“: Ein sehr kurzer Talk über verschiedene „lightnings“, angefangen bei Unicode-Lightnings: ⚡,🌩️ und ⛈️. Dieser Talk war kürzer als es gedauert hat, die Folien für den spontan hinzugefügten Talk anzuzeigen.

39C3: Saal X

Gesehen auf dem 39C3:

Eine Holzvertäfelung. Dort steht in großen weißen Buchstaben „Saal X“. Daneben hängt ein DIN A4-Zettel mit der Aufschrift „(formerly known as Twitter)“

Passend dazu hat Marc-Uwe Kling vorgeschlagen, für das Posten auf X (früher Twitter) das Wort „furzen“ oder „to fart“ zu verwenden. Auf Twitter hat man getweeted, auf Mastodon schreibt man toots, auf X furzt man. Passend dazu auch die Bezeichnung „Shitter“, die mir schon oft untergekommen ist. Oder Χitter, wobei „Χ“ das griechische Chi ist, ausgesprochen dann auch „Shitter“.

39C3: Vorträge an den Tagen 3 und 4

Mein „Ich poste jeden Tag des Congresses über diesen Tag“-Vorsatz musste ich ja wegen Congresserschöpfung ziemlich schnell aus dem Fenster werfen. Ich unterschätze immer wieder, wie lange es dauert, so einen Post zu schreiben. Also teile ich die restlichen Sachen lieber thematisch auf. Zunächst der langweiligste der Posts, nämlich eine Übersicht über die Talks. Die mache ich aber u.a. für mich selbst, damit ich eine Übersicht habe, welche Talks ich noch schauen möchte.

Eine Anmerkung noch: Das hier ist eine subjektive Auswahl aller Talks, die ich aus dem Bauch heraus ausgewählt habe. Eine Liste aller aufgezeichneten Talks gibt es bei media.ccc.de.

Talks, die ich angeschaut habe

Tag 3

An Tag drei habe ich nicht viele Talks angeschaut. Ich bin auch aus Erschöpfung schon gegen 18:00 Uhr gegangen, habe danach aber noch ein paar Talks im Stream gesehen.

  • die Lightning Talks
  • Set-top box Hacking: freeing the 'Freebox': Die Freebox ist eine Set-Top-Box u.a. mit Fernsehaufnahmefunktion eines französischen Anbieters. Der Hacker, der den Talk gehalten hat, hat um 2013 herum unglaublichen Aufwand betrieben, um das Ding zu knacken, nur um an die Aufzeichnungen dranzukommen, nachdem die (vorher existierende) Funktion, Aufzeichnungen herunterladen zu können, gesperrt wurde. Sehr beeindruckend
  • Blackbox Palantir: Es ging um Palantir, wie Bundesländer argumentieren, es einzusetzen usw.
  • 10 years of Dieselgate: Ein Recap über den Abgasfilterskandal

Tag 4

  • Atoms in Space: Der Titel ist ein bisschen irreführend, das Thema trotzdem interessant: Es geht im Messungen von Masse über Interferometer und Atome, und wenn man das aus dem Weltall heraus macht, kann man z.B. die Verringerung von Eisschilden und den Schwund von Grundwasser anhand der Gravitationseffekte messen.
  • Security of Cardiac Implantable Electronic Devices: Sicherheit von Herzimplantaten. Der Talk wurde leider nicht aufgezeichnet.
  • Security Nightmares: Der Klassiker. Eine humorvolle Übersicht über Trends in der IT-Sicherheit, zusammen mit einem Rückblick auf die letzte Jahre.
  • Closing Ceremony: Schön gemacht, ist ganz nett anzuschauen.

Talks, die ich noch anschauen will

Tag 3

Tag 4

39C3: Tag 3 und 4

Kommen wir nun zu meinen Erlebnissen und Eindrücken an Tag 3 und 4 des 39C3. Ich werde vermutlich ein paar Sachen vergessen. Ist aber nicht tragisch. So oder so kommen noch ein oder zwei weitere Posts. Tag 3 habe ich wegen Erschöpfung schon gegen 18:00 Uhr beendet, Tag 4 ist sowieso immer kürzer.

Menschen

Ich habe mich sowohl an Tag 3 als auch an Tag 4 wieder mit ein paar Leuten unterhalten, die ich am House of Tea getroffen habe. Ich habe dort außerdem einen ehemaligen Kollegen von der Uni getroffen, der auch Spaß auf dem Congress hatte. Es war schön, den mal wieder zu sehen.

Ich habe auch einen anderen ehemaligen Mitdoktoranden getroffen, allerdings unter komischen Umständen: Ich sah im Vorbeigehen ein Gesicht, das mir bekannt vorkam, und nickte unwillkürlich. Die andere Person drehte sich um. Sie kam mir immer noch bekannt vor, aber ich konnte sie nicht einordnen. Kurzer Wortwechsel mit der Person: die Person hat das gleiche Problem mit mir. Wir haben uns also vermutlich schon einmal gesehen. Wir ließen das erst einmal auf sich beruhen. Später liefen wir uns wieder über den Weg. Person fragte mich, ob wir uns aus Saarbrücken kennen. Da resonierte etwas in mir. Wir kennen uns nicht aus Saarbrücken, aber Thorsten Holz, Professor, der früher an der RUB war und bei dem meine Professorin ihre Promotion gemacht hat, ist jetzt dort. Also kennen wir uns vielleicht aus Bochum? Nein, auch nicht, aber der Name meiner Professorin kam ihm bekannt vor. Also Nijmegen! Ja, das muss es sein. Rätsel gelöst. Glück gehabt dabei: dass wir uns überhaupt noch ein zweites Mal zufällig über den Weg gelaufen sind, ist auf dem Congress schon unwahrscheinlich.

Nicht tagesspezifisch, aber die RPG-Assembly mit einem Freund aus Hamburg war ein netter Ruhepol für mich, im Chaos des Congresses.

Alles in Allem konnte ich mehr Kontakte zu Leuten aufnehmen, obwohl ich schüchtern bin. Ich habe dazu jetzt drei Taktiken:

  1. Am House of Tea fragen, ob man sich zu einem Tisch dazusetzen kann (ggf. Tee anbieten oder fragen, ob man Tee haben darf). Oft entwickelt sich daraus ein Gespräch
  2. Chaospost austragen
  3. Irgendein interessantes Objekt betrachten und Leute darauf ansprechen. Die Erschaffenden erzählen meist gerne darüber, was sie da wie gemacht haben. Zum Beispiel Pilze

Austernpilze

Bei der Bits & Bäume-Assembly hat jemand in einem Eimer, in dem wohl früher mal Lebensmittel waren, Austernpilze gezüchtet. Die wurden dann auf einer Drehplattform dramatisch ausgeleuchtet präsentiert. Das Foto ist leider nicht besonders gut, weil es recht dunkel war.

Ein Plastikeimer, an dem aus einem kleinen Loch eine Menge Pilzfruchtkörper herauswachsen.

Der Typ dort hat mir auch eine kurze Erklärung gegeben, wie man das macht. Es lag aber auch ein Stadtpilze-Handbuch aus, in dem die Anleitung niedergeschrieben ist.

Postbote

Eine andere Möglichkeit, Leute kennenzulernen, ist es, Postbote für die Chaospost zu spielen. Die Leute findet man entweder an einem Ort auf dem Congress, der auf der Karte angegeben ist oder per interner Telefonnummer. Manchmal auch anders.

Ich hasse es, fremde Leute anzurufen, aber ich habe dieses Mal zum ersten Mal Karten angenommen, die nur eine Telefonnummer hatten. Dummerweise habe ich keine Zielperson erreicht.

Also habe ich die Karten zurückgegeben und mir andere Karten geschnappt. Zwei davon waren recht einfach, und ich konnte mich ein bisschen unterhalten. Die dritte Karte war schwierig. Sie hatte als Ziel nur „Team Grün“, keinen Text, keinen Absender, nur das Wort „Gelb“ und goßen, gelben Buchstaben auf der Vorderseite.

Nach einigem herumfragen (auf Mastodon, im Matrix-Channel, am Infopoint und bei der Chaospost) hatte ich einen Hinweis: Es gab ein Spiel, bei dem Leute mit einem RFID-Chip bestimmte Stationen scannen mussten. Das war mir schon vorher aufgefallen. Was ich nicht wusste: In dem Spiel gibt es verschieden farbige Teams. Ich habe mich dann neben einen dieser Punkte gestellt und gewartet. Zwei Leute kamen vorbei, aber beide von Team Pink. Dann kam ein kleines Mädchen: „Du darfst nicht campen!“ Ich habe versucht, ihr zu erklären, dass ich das Spiel nicht spiele. Sie war nicht wirklich überzeugt, aber zusammen mit ihrer Mutter konnte ich sie überzeugen, dass ich nur nach jemandem von team Grün suche. Sie war Team Grün, also hat sie die Postkarte bekommen.

Eine Karte habe ich übrigens im Himmel abgegeben. Dabei habe ich entdeckt, dass der Himmel jetzt ordentliche Säulen hat (3D-gedruckte Aufsätze für die Warteschlangen-Absperrungen):

Ein weißer Pfosten für Absperrband. Oben hat er einen schnörkelig verzierten Säulensockel. Das Absperrband ist schwarz mit weißer Beschriftung.

Power Cycle

Ich habe schon am ersten Tag das Power Cycle entdeckt, von dem der Congress sein Motto hat ;)

Fotografiert habe ich es erst an Tag 3. Gegenüber des Rads ist ein Beamer, der ein Video einer Bahnfahrt anzeigt, das flüssiger läuft, je fester man in die Pedalen tritt. Wenn nicht getreten wird, schaltet sich das Video komplett ab.

Ein Fahrradergometer. Auf dem gelb lackierten „Lenker“ ist ein Aufkleber mit der Aufschrift „CYCLE“

c3nav down

Am vierten Tag war dann irgendwann das c3nav down. Ich habe das zunächst nicht bemerkt. Ich habe mich am House of Tea mit ein paar Leuten unterhalten, von denen eine Person einen Blåhaj-Aufkleber auf dem Laptop hatte. Ich hatte am Vortag schon ein paar kleinere Blåhaj-Aufkleber entdeckt, und einer meiner Spielleiter war begeistert davon, also dachte ich mir, ich bringe ihm ein paar mit. Die Person mit dem Aufkleber am Laptop konnte mir sagen wo der herkommt und setzte an, mir zu erklären, wie ich dahin komme.

Ich meinte, ich könne das ja im c3nav nachschlagen. Dann musste ich erfahren, dass das c3nav down ist. Korrumpierte Datenbank oder so. Ich habe die Assembly mit einer guten Beschreibung trotzdem gefunden, aber die Aufkleber waren leer. So habe ich nur ein paar von den kleineren Aufklebern:

Ein Aufkleberbogen mit vier Blåhaj-Köpfen, die verschmitzt grinsen

Was das c3nav angeht: Ich habe per Masotodon die Zusage bekommen, dass jemand ein Post Mortem schreibt. Ich bin neugierig, was da passiert ist. Wenn es das Post Mortem gibt, dann verlinkte ich das in diesem Blog.

Abbau

Ich habe dann auch ein bisschen beim Abbau geholfen. Hauptsächlich Stühle gestapelt. Immer abwechselnd ein Stuhl mit und ein Stuhl ohne Armlehnen. Manche Stühle hatten nur auf einer Seite Armlehnen. Die Armlehnen lagen dann irgendwo herum. Öfter als nicht hatte man dann eine rechte Armlehne und einen Stuhl mit nur einer rechten Armlehne und musste weitersuchen.

Ein Stuhl mit einer rechten Armlehne, aber ohne Linke Armlehne. Auf dem Stuhl liegt eine weitere rechte Armlehne.

Was ich nicht geschafft habe

  • ich habe nur eine einzige Postkarte mit der Chaospost verschickt, aber die immerhin an die Person, die ich länger nicht mehr gesehen habe
  • ich habe zwar schon wieder den Typen getroffen, der auf dem Congress Teelieferungen macht, aber habe mir trotzdem nie Tee bei ihm bestellt
  • ich wollte mal wieder Lockpicking üben, aber immer wenn ich da war, war gerade ein Workshop und alle Ausleihwerkzeuge waren in Gebrauch

Bloglinkprojekt: Ankündigung und Neujährchen

Ich habe mir vorgenommen, 2026 ein Bloglinkprojekt durchzuführen. Die selbst erdachten Regeln sind:

  • jede Woche poste ich einen Artikel mit einem Link zu einem Blog
  • der Link muss zu einem konkreten Artikel in dem Blog gehen, nicht zum Blog allgemein
  • keine Wiederholungen des verlinkten Blogs innerhalb des Projekts, und wenn möglich auch jedes Mal ein Blog, das ich noch nie verlinkt habe

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:

Eiserkuchenröllchen / Neujährchen

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.

39C3: Primzahlen

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):

Ein Papieraushang: „Free Prime Numbers – For all your cryptography and math nerding needs!!!“. Darunter ein paar griechische Buchstaben: π, τ und Σ. Darunter sind Abreißzettel mit aufgedruckten Zahlen.

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

Zwei Papieraushänge übereinander. Zunächst der gleiche wie oben, aber alle Primzahlen sind schon abgerissen. Darunter: „Paid Prime Numbers – Got premium numbers for all your cryptography and math needs“, mit einem hämisch grinsenden Smiley und mehreren Abreißzetteln mit der Aufschrift „5 digits, 0.5€“

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:

Ein ähnlicher Papieraushang mit der Aufschrift „Random Prime Number Emergency Supply“. Der rest ist zu unscharf, um ihn zu lesen, aber alle Abreißzettel sind auch schon abgerissen.

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:

Ein Papieraushang ähnlich dem ersten Aushang, allerdings mit dem Titel „Captive Prime Numbers“. π, τ und Σ sind hinter Gittern dargestellt. darunter der Satz „LET THEM OUT!!!! TAKE A KEY, und darunter Bilder von Schlüsseln zum abreißen.

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

39C3: Der Fahrplan-Fahrplan

Ab Tag 2 gab es auf dem 39C3 Aushänge dieser Art zu sehen:

Ein gelber Papieraushang. Er sieht so aus wie die Abfahrtsfahrpläne der Deutschen Bahn, enthält aber die Termine für Talks und Workshops.

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.

Ein Screenshot eines Fahrplans wie oben, mit weißem Hintergrund

Wenn man seine Daten im richtigen Format hat, kann man das also für alle möglichen Zeitpläne machen. Ich liebe diese Community.