Stranger Than Usual

I'm on the server floor of a "highly secure data center with 24/7/365 surveillance, direct access control and robust perimeter security".

An actual duck just walked by. 🦆

The panic is absolutely glorious. I think this just became one of the highlights of my life.

Pepjin

Überwachungsinfrastruktur

Ich rege mich ja schon seit vor Beginn dieses Blogs über Überwachung und Datensammeln sowohl seitens des Staates als auch seitens privater Unternehmer auf. Aber warum eigentlich? Wäre es nicht gut, Überwachungskameras zu haben? Dadurch werden die Straßen doch sicherer. Ist es nicht wichtig, das Internet zu überwachen, um Terroranschläge zu verhindern? Ist es nicht praktisch, über Facebook mit allen möglichen Menschen in Kontakt zu treten, egal wie viel Daten das Unternehmen dahinter über mich sammelt? Was will Facebook schon mit den Daten, außer mir Werbung zu zeigen? Und dem Staat vertraue doch sicher gerne meine Daten an, oder?

In den USA kann man gerade sehr gut sehen, was damit alles passieren kann. Trumps Sturmabteilung (ICE) hat zum Beispiel eine Software, die mit Gesichtserkennung Leute erkennen kann. Mehr oder weniger zuverlässig. Private Ring-Überwachungskamers werden beschuldigt, Daten an das ICE weiterzugeben. Der Hersteller leugnet das zwar, aber gegeben dass in der Vergangenheit auch Tesla-Bordkameras als Beweismittel herangezogen wurden, oder die Aufnahmen von Alexa-Geräten (ihr wisst schon, diese Dinge, die scheinbar harmlos im Wohnzimmer herumstehen), sind zumindest Beweis dafür, dass der Staat darauf zugreifen könnte.

Worauf ich hinaus will: Es ist egal, mit wie viel guter Absicht die Daten gesammelt werden: in den falschen Händen sind sie gefährlich. Wenn die Nazis ein Land übernehmen, sollten sie es so schwierig wir möglich haben, gegen ihre Gegner vorzugehen. Selbst wenn ich der jetzigen Regierung traue, wer sagt mir, dass in drei Jahren nicht die AfD die Macht übernimmt? Selbst wenn Ich Google vertraue, meine Daten nur für Werbung einzusetzen, wer sagt denn, dass Trumps Regime nicht genug Druck machen kann, um an die Daten zu kommen? Selbst wenn ich mich durch die Überwachungskamera am Bahnhof sicher fühlen würde, wer sagt denn, dass mich in drei Jahren die AfD dabei überwacht, wie ich zu einer Anti-AfD-Demo gehe?

Die beste Möglichkeit, dass Daten nicht in falsche Hände geraten ist, sie überhaupt nicht erst zu erfassen. Und was machen wir stattdessen? Mit dem aktuell diskutierten digitalen Omnibus soll das Datenschutzrecht wieder eingestutzt werden. Die ewig untote Vorratsdatenspeicherung soll wieder aus dem Grab der verfassungswidrigen Gesetze geholt werden. Alle möglichen Bundeslländer wollen Verhaltensscanner einführen.

Sehen die denn nicht, wohin das führt? Der Sicherheitsgewinn dieser Maßahmen ist minimal. Aber das Potential für die Nazis, wenn sie an die Schalthebel gelangen, ist gewaltig. Die USA demonstrieren das gerade sehr gut. Wir, in Deutschland und in Europa, sollten, nein müssen uns dagegen stellen.

Digital Independence Day: Posteo statt Googlemail

Heute ist der zweite Digital Independence Day. Im Januar habe ich mein Blogrepo von github zu Codeberg umgezogen. Diesen Monat ziehe ich meine Email-Adressen um.

Ich habe seit 2012 einen Googlemail-Account. Damals habe ich mir den Account angelegt, weil ich mir mein erstes Mobiltelefon angeschafft habe und das ein Android-Phone war. Damals habe ich es ohne Googlemail nicht hingekriegt, meine Adressen auf das Telefon zu synchronisieren.

Ein paar Jahre später habe ich mir eine Posteo-Adresse zugelegt. Posteo ist sehr datenschutzbedacht, ganz im Gegensatz zu Googlemail. Nur habe ich die Posteo-Adresse zunächst nur für private Kommunikation verwendet. Wenn ich irgendwo in Onlineshops oder dergleichen Accounts anlegen musste, habe ich weiterhin Googlemail genommen.

Das hatte zwei Gründe: Zum einen wollte ich keinen Spam auf die Posteo-Adresse bekommen. Zum anderen gibt es bei Googlemail die Funktion, dass man nach einem + ein beliebiges Suffix an den lokalen Teil der Adresse hängen kann, die Mails aber noch ins selbe Postfach kommen. Zum Beispiel vorname.nachname+bahn@googlemail.com für die deutsche Bahn. So kann ich nachverfolgen, über welchen Weg E-Mail-Adressen geleaked wurden, wenn ich Spam bekomme.

Warum ändere ich das jetzt? Mehrere Gründe:

  1. Posteo kann jetzt auch das +suffix
  2. Ich wollte nicht, dass die ganzen Shopseiten meine Haupt-Email-Adresse kennen. Aber warum soll Google eigentlich wissen, wo ich einkaufe?
  3. Es hängen einige wichtige Accounts an der Googlemail-Adresse. Wenn sich Trump morgen entscheidet, Deutschland zu sanktionieren, bin ich von all diesen Accounts ausgeschlossen.

Ich habe also die am häufigsten genutzten Accounts von Googlemail zu Posteo umgezogen.

Was ändert sich nicht?

Ich werde den Googlemail-Account nicht löschen. Einige alte Bekannte haben vielleicht nur diese Adresse. Für die möchte ich weiterhin erreichbar sein. Außerdem gibt es noch einen Haufen kleinerer Seiten, die ich noch nicht umgezogen habe. Mein Plan: Ich ziehe sie dann um, wenn ich eine Email von denen bekomme oder ich mich auf deren Seiten einloggen will. Nach und nach.

Fun fact: Googlemail

Ich nenne es immer noch „Googlemail“, dabei heißt es eigentlich Gmail. Warum? Es gab in Deutschland eine Zeit lang einen Markenstreit, so dass Gmail in Deutschland Googlemail hieß. Als ich meinen Account erstellt habe, habe ich eine @googlemail-Adresse bekommen, und bin dabei geblieben.

Technology Connections über erneuerbare Energien

Ich bin gestern über diese Video des Youtube-Kanals „Technology Connections“ gestolpert. Es geht um erneuerbare Energien, mit einem besonderen Fokus auf Solarkraft und Batterien zum Speichern von Energie.

Das Coole an dem Video: Er hat es geschaft, eine sehr solide Argumentation für erneuerbare Energien auf die Beine zu stellen, ohne den Klimawandel erwähnen zu müssen. Alleine aus wirtschaftlicher Sicht sind Solar- und Windkraft fossilen Energieträgern weit überlegen. Das Video kann also auch die Spinner überzeugen, die den Klimawandel für eine Lüge halten.

Ich folge dem Kanal schon eine Weile. Normalerweise bringt er deutlich kürzere Videos, in denen mehr oder weniger alltägliche Technologien erklärt und demonstriert werden, zusammen mit ihren Vor- und Nachteilen. Der Kanal ist auf jeden Fall sehenswert. Das neue Video ist ziemlich lang, aber ihr solltet es trotzdem anschauen, selbst wenn ihr schon von Solar- und Windkraft überzeugt seid, denn es gibt euch vielleicht noch ein paar gute Argumente, um andere Menschen zu überzeugen.

Plesiosaurier

Die Westfälischen Plesiosaurier sind die Fossilien des Jahres 2026. Plesiosaurier sind übrigens keine Dinosaurier, sondern Reptilien, die aber zeitgleich mit Dinosauriern lebten.

Das verlinkte Blog ist das Beutelwolf-Blog, wo der Autor regelmäßig Tierarten vorstellt. Nicht nur ausgestorbene (wie der Name vermuten lässt), sondern, soweit ich es beobachtet habe, hauptsächlich rezente Arten. Kann sich lohnen, da mal ab und zu reinzuschauen.

Rollenspielszenen: Geschwister

Rollenspielszene. Die Band Spice of Life ist immer noch im Zug. Mint hat ein schwieriges Verhältnis zu ihrem „Bruder“ Anis. Ihre Eltern halten Mint für eine Versagerin und lassen sie das bei jeder Gelegenheit spüren. Anis hingegen passt ihnen viel besser. Nach einem unfreiwillig harschen Austausch zwischen den beiden versucht Mint einen Keil zwischen Anis und Cracker zu schieben, die sich näher gekommen sind.

Anis und Cracker kapieren das beide nicht und gehen nicht darauf ein, aber Cracker bringt Anis dazu, ihr von seinem Verhätlnis zu Mint zu erzählen:

Cracker: „Ich dachte ihr seid Geschwister.“
Anis: „Eigentlich nicht. Wir haben nur dieselben Eltern.“

Blogstatistiken: Tags

Ich hatte eigentlich gehofft, dass mehr aus diesem Artikel wird. Aber man soll ja auch fehlgeschlagene Experimente veröffentlichen, also kommt das jetzt.

Die Idee war ja eigentlich schön: Ich habe ja die meisten meiner Beiträge mit einem oder mehreren Tags versehen. Die Tagseite listet alle Tags auf, und ihre absolute Häufigkeit im Blog. Momentan ist „rant“ mit Abstand das häufigste Tag, zum Beispiel.

Aber es wäre doch cool, auch zu wissen welche Tag-Kombinationen häufig vorkommen, oder?. Also habe ich ein kleines Programm geschrieben und in einem Repo veröffentlicht. Ich habe Tag-Paare und Tag-Tripel gezählt. Ein N-Tupel sind hier N unterschiedliche Tags, die zum selben Artikel gehören (Bei Paaren ist N = 2, bei Tripeln ist N = 3).

Die Ergebnisse sind, wie schon gesagt, eher langweilig. Hier erst einmal die 20 häufigsten Tag-Paare (von insgesamt 7385 Paaren):

  1. {rollenspiel, rollenspielszenen}: 22
  2. {gentoo, linux}: 18
  3. {39c3, chaos communication congress}: 15
  4. {das labor, labor}: 15
  5. {advent of code, adventskalender}: 14
  6. {bahn, deutsche bahn}: 13
  7. {deutsche bahn, rant}: 13
  8. {advent of code, programmieren}: 12
  9. {hackerspace, labor}: 12
  10. {das labor, hackerspace}: 12
  11. {adventskalender, programmieren}: 11
  12. {rant, öpnv}: 11
  13. {politik, rant}: 10
  14. {programmieren, rust}: 10
  15. {bahn, rant}: 10
  16. {per anhalter durch die galaxis, thhgttg}: 10
  17. {deutsche bahn, öpnv}: 10
  18. {rant, webdesign}: 10
  19. {uni, zitate}: 10
  20. {advent of code, puzzle}: 9

Am häufigsten zusammen sind tatsächlich eng verwandte Begriffe oder Synonyme. „bahn“ und „deutsche bahn“ zum Beispiel. Erst auf Platz 12 finden wir die Kombination, die ich viel weiter oben erwartet hätte, nämlich {rant, öpnv}, {bahn, rant} und {politik, rant}. Die Rollenspielszenen haben es in nur einem guten halben Jahr auf Platz 1 geschafft. Der 39C3 nach zwei Wochen Blogmanie auf Platz 3.

Die Tripel sind auch nicht viel interessanter. Insgesamt gab es 22527 Tripel, die zehn häufigsten sind:

  1. {das labor, hackerspace, labor}: 12
  2. {advent of code, adventskalender, programmieren}: 11
  3. {advent of code, adventskalender, puzzle}: 9
  4. {advent of code, adventskalender, rust}: 7
  5. {advent of code, programmieren, puzzle}: 6
  6. {adventskalender, programmieren, puzzle}: 6
  7. {adventskalender, programmieren, rust}: 6
  8. {advent of code, programmieren, rust}: 6
  9. {digitale kunst, fordite, kunst}: 5
  10. {39c3, chaos communication congress, humor}: 5

Dasselbe Muster. Naja, es war einen Versuch wert. Vielleicht kriege ich ja noch interessante Statistiken, wenn ich die Häufigkeit der Kombination irgendwie gegen die Häufigkeit der einzelnen Bestandteile gegenrechne oder so. Aber erst einmal belasse ich es dabei.

Trumps Sturmabteilung

Ich war ja bisher immer ein bisschen vorsichtig mit direkten Nazivergleichen. Zum einen wegen Godwin's Law. Zum anderen, weil ich die Naziverbrechen nicht verharmlosen möchte.

Aber was Trump da seit einem Jahr abzieht hat schon lange jedes Maß verloren und befindet sich so weit jenseits allen, was normal, akzeptabel oder auch nur tolerierbar wäre. Wenn er handelt wie ein Nazi, redet wie ein Nazi und Menschen behandelt wie ein Nazi, dann nenne ich diesen Vogel einen Nazi.

Trumps aufgemotze ICE-Leute rennen durch die USA wie die SA der Nazis. Sie wenden Gewalt gegen Leute an, erschießen Leute und verhaften Leute aus rassistischen Gründen. Sie suchen halt nach „illegalen Einwanderern“, und da ist jeder verdächtig, der eine auch nur etwas dunklere Hautfarbe hat oder komisch spricht. Dann ist es egal, ob die Person Bürger der USA ist, kein Bürger, aber legal im Land oder ohne Aufenthaltserlaubnis im Land.

Menschen haben mittlerweile Angst, auf die Straße zu gehen. Leute verschwinden. Fünfjährige werden festgehalten, um ihren Vater aus dem Haus zu locken. Und die Trump-Junta verbreitet weiter ihre Lügen, dass die ganzen Einwanderer alle ganz schlimm und gewalttätig sind und alle, die sich Trump widersetzen, gewalttätige Linksradiale seien, die Amerika zerstören wollen.

Das ist eine Nazitaktik. Verbreite Lügen, wiederhole sie immer wieder, bezeichne alle, die gegen dich sind als Feinde und Verräter, mach die Presse nieder, wenn sie es wagt, dir zu widersprechen, untergrabe die Rechtsstaatlichkeit auf allen Ebenen… die Liste lässt sich fortsetzen.

Und nur um es zu betonen: selbst wenn jemand illegal im Land ist, und selbst wenn diese Person for fünf Jahren mal einen Schokoriegel geklaut hat, dann ist das immer noch ein Mensch, den man wie einen Menschen behandeln muss. Und man sollte sich fragen: Warum ist diese Person hier nicht legal im Land? Kann man das vielleicht legal machen, wenn sie hier schon arbeitet, Freunde hat, vielleicht auch Familie?

In der Hinsicht können wir uns übrigens auch gerne mal an die eigene Nase fassen. Auch wenn wir noch keine Terroreinheiten durch die Städte schicken, gehen wir hier in Deutschland auch brutal mit Leuten um, denen die Aufenthaltsgenehmigung nicht erteilt wurde. Wo dann Bürgerkriegsgegenden als „sichere Herkunftsländer“ erklärt werden.

Und ist euch schon einmal aufgefallen, dass verzweifelte Menschen Unsummen bezahlen, um auf mäßig seetauglichen, völlig überfüllten Booten über das Mittelmeer nach Europa zu kommen? Und dabei oft genug ertrinken? Das machen nur Leute, die wirklich verzweifelt sind. Die haben einen Grund, weg zu wollen. Und für Das Geld, dass sie alleine für die Bootsfahrt ausgeben, könnten sie sich ein Flugticket besorgen und hätten sogar noch genug über, um sich für die erste Woche Kost und Logis in Deutschland leisten zu können.

Ich habe keine Lust mehr auf den Scheiß. Und wenn demnächst die AfD an die Regierung kommt, dann haben wir hier auch wieder echte deutsche Nazis, die Angst und Schrecken verbreiten.

Modern Solution: Good riddance!

Modern Solution ist insolvent. Etwas Besseres hat die Firma nicht verdient. Ihre Kunden vielleicht schon: Denn ganz im Rahmen der bisher gezeigten Kompetenz der Firma lief bei ihren Kunden plötzlich ohne Vorwarnung nichts mehr. Online-Shop, Email, Warenwirtschaftssystem: Weg. Auch kein Zugriff auf die Daten (wobei letzteres mittlerweile auf Kulanz des Hosters wieder möglich ist, wenn auch langsamer, wenn ich es richtig verstanden habe).

Warum gönne ich Modern Solution den Untergang? Nun, erst einmal waren die so inkompetent, dass sie die Secrets für ihre Datenbankzugriffe in ihren Binaries rausgegeben haben. Und dann waren es dieselben Credentials für alle Kunden. Wenn du also Kunde bei denen warst, konntest du auf die Daten von allen anderen Kunden zugreifen.

Das hat dann ein Entwickler herausgefunden, der für einen der Kunden einen Auftrag erledigt hat. Er hat dann versucht, Modern Solution darauf hinzuweisen, worauf Modern Solution den Entwickler verklagt hat.

Und nicht nur das, sie sind damit sogar erfolgreich gewesen. Der Entwickler ist dann durch die Instanzen gegangen und hat am Ende sogar eine Verfassungsbeschwerde eingereicht, die aber abgelehnt wurde.

Das ist ein Muster, das leider zu häufig passiert und meiner Meinung nach ein gutes Beispiel ist, warum der Hackerparagraph Murks ist und abgeschafft gehört.

Rollenspielszenen: Am Eingang die Waffen abgeben

Rollenspielszene. Wir sind im Land Galt, das seit Jahren von Unruhen und Revolutionen geplagt wird. Genauer gesagt sind wir in Eloins Heim, wo die Stadt streng in zwei Teile getrennt ist. In einem Stadtteil ein Haufen rassistischer Elfen, die sich als Beschützer der Stadt sehen, in der anderen Hälfte alle anderen. Von unserer Gruppe darf nur Thivuc, der Halbelf, in den elfischen Teil.

Thivuc schafft es aber, den Elfen das Versprechen abzuringen, dass er mit dem Anführer unserer Gruppe (ein Mensch) in den elfischen Teil der Stadt kommen darf, um zu handeln. Als sie am Tor ankommen, werden sie aufgefordert, alle Waffen abzugeben. „Alle Waffen? Aber wir wollen doch auch Waffen verkaufen!“. Ok, also dürfen sie die Waffen mitnehmen, die sie verkaufen wollen.

Gut. Ich möchte alle meine Waffen verkaufen.

Und schwupps waren sie drin, mit allen Waffen.

Avif und andere Bildformate

Im Zuge meiner Blogpost-Exzesse zum 39C3 habe ich zwischendurch auch zum ersten AVIF für Bilder verwendet. Dazu musste ich die Blogsoftware leicht anpassen (um automatisch die Bildgröße zu ermitteln), aber das ist nicht weiter wichtig.

Ich habe dabei ein bisschen herumexperimentiert, AVIF-Dateien mit Webp verglichen und so, und wollte noch etwas dazu schreiben. Da kommt es mir gerade recht, dass ein anderer enthusiastischer Bildformateamateur einen Blogpost über AVIF im Vergleich mit anderen Formaten geschrieben hat.

AVIF im Vergleich zu JPEG und Webp

In dem anderen Post war der Ansatz: ein unkomprimiertes Bild nehmen, es mit 10% Qualität als JPEG abspeichern, und dann mit anderen Bildformaten versuchen, eine vergleichbare Dateigröße zu erreichen. JPEG schneidet hier am schlechtesten ab, mit stark sichtbaren Artefakten (bei 10% kein Wunder). Webp sieht deutlich besser aus, zeigt aber gerade an Kanten unschöne Artefakte. AVIF sieht am besten aus, wenn man genau hinschaut, sieht man aber auch ein paar Artefakte. Der Autor hat auch noch andere Formate verglichen, aber die können bei mir im Browser nicht angezeigt werden, deswegen ignoriere ich sie erst einmal. Wichtig ist: Avif ist bei gleicher Größe deutlich besser als Webp.

Interessanterweise entspricht das nicht ganz meinen eigenen Erfahrungen. Ich bin aber auch weniger systematisch herangegangen. Ich habe Webp-Bilder und AVIF-Bilder mit 75% bzw. 50% Qualität (die Standardeinstellungen) erstellt. Die AVIF-Bilder waren i.d.R. ein kleines bisschen kleiner und ein kleines bisschen besser, wobei letzteres nur nach Augenschein war. Vielleicht lag es an der Art der Bildinhalte. Vielleicht an etwas anderem. Allgemein ist mir aufgefallen, dass bei AVIF die Artefakte eher wie ein Gaußfilter aussehen während Webp, ähnlich wie bei JPEG. Ich bin aber bei Weitem kein Experte in Bildkompression, insbesondere nicht bei Webp und AVIF.

Was verlustfreie Kompression anging, war AVIF deutlich hinter Webp hinterher. Zumindest dafür werde ich also in Zukunft auch Webp nehmen, bei verlustbehafteter Kompression werde ich noch herumprobieren

JPEG-XL

Ein weiteres Bildformat, das leider von aktuellen Browsern nicht gut unterstützt wird, ist JPEG-XL. Das Format hat eine bewegte Geschichte hinter sich. 2022 hat Google angekündigt, es nicht mehr unterstützen zu wollen (Maintenance-Kosten, und Bildformate parsen ist auch immer eine Stelle, an der leicht Sicherheitslücken passieren) und hat die experimentelle Unterstützung eingestellt. Mozilla ist mit Firefox nachgezogen, denn wenn Chrome ein Format nicht unterstützt, macht sich kaum ein Website-Betreiber die Mühe, das Format bereitzustellen.

Es gab dann in den entsprechenden Communities Proteste, es wurde ein Rust-basierter Decoder angekündigt, um die Sicherheitsrisiken kleinzuhalten und erst vor ein paar Tagen wurde in Chromium wieder der JPEG-XL-Suppoert hinzugefügt.

Ich bin mal gespannt auf dieses Format. Ich habe einige gute Dinge darüber gehört, aber mich noch nicht näher damit auseinandergesetzt. Ich werde vermutlich mal ein bisschen herumprobieren.

Content Negotiation

Was mir bei dem Thema auch wieder eingefallen ist: Ich habe einen ganzen Haufen alter Bilder auf diesem Blog. Viele PNG-Bilder, die als Webp noch deutlich kleiner sein könnten. Hier stehe ich jetzt vor einem kleinen Dilemma: Ich würde sie gerne ersetzen, aber die Dateiendung der Bilder ist Teil der URL. Wenn ich die nicht ändere, führt es bei Benutzern zu Verwirrung, die sich die Dateien vielleicht herunterladen. Wenn ich die ändere, habe ich kaputte URLs und Cool URIs don't change.

Der Fehler war natürlich, die Dateiendung überhaupt zum Teil der URL werden zu lassen. Sonst könnte ich jetzt im Hintergrund ohne Probleme das Dateiformat austauschen. Glücklicherweise gibt es in HTTP ja schon seit Ewigkeiten Content Negotiation: mittels des Accept-Headers kann man bei einer Anfrage angeben, welche Formate man unterstützt. Der Server liefert dann nur ein unterstütztes Format zurück. Das bräuchte ich auch für meinen Server.

So könnte ich zum Beispiel das alte und das neue Bild nebeneinander auf die Platte legen, mit unterschiedlichen Dateiendungen. Der Server sieht sie beide, und wenn die Datei ohne Endung angefordert wird, liefert der Server die kleinste Datei zurück, die unterstützt wird. In meinen Blogposts müsste ich dann die Pfade anpassen, aber das könnte ich vermutlich auch automatisch machen. Wenn eine Datei mit Endung angefordert wird, könnte er ja die konkrete Datei ausliefern. So gehen auch existierende Deeplinks nicht kaputt.

Damit kann ich auch das Problem mit unterstützten Bildformaten umgehen, indem ich zwei oder mehr verschiedene Formate ablege. Wenn jemand dann z.B. noch kein JPEG-XL unterstützt, wird halt Webp ausgeliefert oder so.

Die ganze Sache hat nur ein Problem: Ich habe noch nicht herausgefunden, wie ich das mit nginx mache, ohne mich komplett zu verrenken. Aber irgendwann…

PS: AVIF in og:images

Ich habe ja schon erwähnt, dass ich AVIF für einige Bilder während des 39C3 verwendet habe. Die habe ich dann auch in die og:image-Tags eingefügt. Die Unterstützung dafür lässt aber noch zu Wünschen übrig. Aber das ist vermutlich auch nur eine Frage der Zeit.