• Wird Bolsonaro Schuld sein an der nächsten großen Seuche?

    Diagramm mit Einflussfaktoren wie Wald-Dichte, Artenvielfalt, Stadtnähe und ihren Korrelationen untereinander und mit der Inzidenz von Zoonosen

    Wie verschiedene Metriken die Häufigkeit von Zoonosen beeinflussen: Abbildung zwei aus doi:10.1126/sciadv.abo5774. CC-BY-NC Winck et al.

    Auch wenn (oder gerade weil) in China ein SARS-Erreger schon mal aus enem Labor entkommen ist, glaube ich ja immer noch ziemlich fest daran, dass SARS-2 aus (zu) engem Kontakt von Menschen und Wildtieren entstanden ist. Wo es viele Tiere gibt, sind solche Krankheiten mit tierischer Beteiligung, Zoonosen, Regel eher als Ausnahme, und wo es viele verschiedene Tiere gibt, ist entsprechend mit vielen Überraschungen zu rechnen. So erscheint Brasilien als ideales Land, um quantitative Schätzungen zu bekommen zur Frage, wie insbesondere neuartige Krankheitserreger Artgrenzen überwinden können und was dann passiert.

    Das war das Projekt von Gisele R. Winck und Ciclilia Andreazzi vom Institiuto Oswaldo Cruz in Rio de Janeiro sowie KollegInnen von verschiedenen anderen brasilianischen Instituten, über das sie in „Socioecological vulnerability and the risk of zoonotic disease emergence in Brazil”, Science Advances 8 (2022), doi:10.1126/sciadv.abo5774, berichten – und auch gleich anmerken, dass Brasilien vielleicht doch kein ganz ideales Land ist, ist doch ein Großteil der derzeit in Brasilien grassierenden Zoonosen gar nicht in Amerika entstanden: Malaria, Dengue, Zika oder Gelbfieber kommen alle aus der alten Welt.

    Aber es gibt auch Beispiele für Zoonosen aus Südamerika, so etwa Chagas, ein von Trypanosomen – das sind einzellige Eukaryoten, also in gewissem Sinn einfache Tiere – hervorgerufenes Syndrom, das zu tödlichen Verdauungsstörungen führen kann, sich aber nur gemeinsam mit relativ memmigen Wanzen weiterverbreiten kann.

    Pfadanalyse

    Winck et al versuchen, der Frage nach künftigen Zoonose-Risiken mit einer Pfadanalyse auf den Grund zu gehen, einer statistischen Methode zur Aufklärung von Netzwerken einander beeinflussender Größen, von der der ich, soweit ich mich erinnere, zuvor noch nie gehört habe. Diese Lücke dürfte wohl damit zusammenhängen, dass die Methode in der Biologie entwickelt wurde (ihr Erfinder war Populationsgenetiker) und im Bereich von Physik und Astronomie wenige etwas damit anzufangen wussten.

    Eine entsprechende ADS-Anfrage (und das ADS hat eigentlich alles, was es in der Astronomie gibt) liefert dann auch vor allem Kram aus Randbereichen, darunter eine Studie in den Geophysical Review Letters, die fast in das aktuelle Thema passt: „Urban Vegetation Slows Down the Spread of Coronavirus Disease (COVID-19) in the United States“. Da allerdings wette ich ungelesen, dass von dem Effekt wenig übrigbleibt, wenn mensch die Korrelation zwischen graueren Vierteln und Armut auf der einen und SARS-2 und Armut auf der anderen Seite rausrechnet.

    Wie dem auch sei: Bei einer Pfadanalyse braucht es eine Zielgröße (also das, dessen Verhalten erklärt werden soll) und „Kausalfaktoren“ (also Größen, das Verhalten der Zielgröße erklären sollen). Die Zielgröße im Paper ist die Fallzahl von einigen Zoonosen[1] in den verschiedenen brasilianischen Bundesstaaten.

    Das grobe Modell, das der Arbeit zugrundeliegt, ist nun, dass enge Kontakte zwischen Menschen und Tieren, gerade wenn wie beim Verzehr von Bushmeat Blut im Spiel ist, die Zoonosen nach oben treibt. Es könnte auch indirekte Effekte geben, wenn es etwa Wildtieren schlechter geht, weil die Menschen gerade ihr Habitat zerstören, und daher Pathogene, die vorher selten und harmlos waren, genau dann durch die geschwächte Population rauschen, wenn Menschen und Wildtiere während der Rodungen und vor der Etablierung funktionierender Landwirtschaft besonders wahrscheinlich interagieren. Mit solchen Motivationen betrachtet die Arbeit folgende Kausalfaktoren (vgl. Tabelle 1 im Paper):

    • Exposition gegenüber Zoonosen (Wie viele wilde Tiere gibt es? Wie gut ist die medizinische Versorgung der Nutztiere? Wie viel Boden ist (artenarme und in der Hinsicht wahrscheinlich eher sichere) landwirtschaftliche Fläche? Wie ist der Anteil der im Wesentlichen unberührten Fläche? Wie schnell gehen unberührte Flächen verloren?)
    • Empfindlichkeit gegenüber Zoonosen (Bäume in Städten als Proxy für die Art der Besiedlung; Kontakt mit Hausmüll als Proxy für die Dichte des Kontakts zu Vektoren wie Ratten und Mücken; Zustand der Abwassererfassung; Bruttoinlandsprodukt pro EinwohnerIn als Proxy für die Armutsrate)
    • Resilienz (Wie viel Gesundheitspersonal gibt es? In wie vielen Einrichtungen? Wie weit ist es in die nächste Stadt, in der spezialisierte Kliniken verfügbar sein werden?)

    Ich muss an der Stelle ein wenig die Nase rümpfen, denn an sich kann dieses Modell nicht so richtig das, was die AutorInnen zu versprechen scheinen: Aufklären, was mensch tun könnte, um neue Zoonosen im Zaum zu halten. Die Zielgröße ist ja die Ausbreitung längst an den Menschen gewöhnter Erreger. Zudem wird die Mehrheit der untersuchten Zoonosen von einzelligen Tieren verursacht und nicht von Viren oder Bakterien, deren pandemisches Potenzial ich weit höher einschätze, zumal, wenn sie anders als die meisten Einzeller keine Zwischenwirte brauchen.

    Aber seis drum: Ganz unplausibel ist ja nicht, dass, wo bekannte Erreger besonders intensiv zwischen Menschen und Tieren ausgetauscht werden, sich auch unbekannte Erreger allmählich an Menschen gewöhnen können.

    BIP ist wurst

    Angesichts des betrachteten Reichtums an Faktoren ist schon erstaunlich, dass die Mathematik der Pfadanalyse mit den Daten von Winck et al das Bild am Anfang des Posts ergibt (nicht signifikante Kausalfaktoren sind dort nicht gezeigt), also etwa das Bruttoinlandsprodukt pro EinwohnerIn keinen signifikanten Einfluss auf die Zoonoserate hat (was aus meiner Sicht nur heißen kann, dass es in Brasilien kein nützliches Maß für den Wohlstand mehr ist). In den Worten des Artikels:

    Zoonotic epidemic risks, as inferred from the observed mean number of ZD cases, are positively associated with vegetation loss (path analysis coefficient = 0.30), mammalian richness (0.47), and remoteness (0.72) and negatively related to urban afforestation (−0.33) and vegetation cover (−0.82).

    Also: Bäume in der Stadt (hätte ich erstmal nicht als einen wichtigen Faktor geraten, aber siehe das oben erwähnte GeoRL-Paper) und vor allem intakte Wildnis sind gut gegen Zoonosen. Eine hohe Dichte wilder Säugetiere, mit denen Menschen im Zuge von Entwaldung eifrig interagieren und, noch stärker, die Entfernung von größeren menschlichen Ansiedlungen befördern demgegegenüber solche Krankheiten.

    Besonders stark ist dabei der Effekt der Bewaldung (bzw. Besteppung oder Bemoorung, wenn das die lokal vorherrschenden Ökosysteme sind): Sie fördert zwar sehr stark die Artenvielfalt von Säugetieren, doch hemmt sie dennoch Zoonosen insgesamt. Das passt erstaunlich gut zur Beobachtung von Jared Diamond in seinem lesenswerten Buch „Collapse: How societies choose to fail or succeed“[2], dass Entwaldung wohl der allerwichtigste Faktor für den Zusammenbruch von Zivilisationen ist.

    Und dann die Schurken

    Ich bin auf das Paper wie üblich über einen Beitrag in der DLF-Sendung Forschung aktuell gegekommen, in dem Fall vom 30.6. Darin wurde vor allem abgehoben auf den Schluss der AutorInnen, die aktuelle Herrschaft in Brasilien beeinflusse die Kausalfaktoren mit ihrer marktradikalen, reaktionären und teils auch anderweitig dummen Politik stark in Richtung Zoonose:

    Ein weiterer wichtiger Aspekt, dessen Relevanz sich gerade erst erwiesen hat, ist die Empfindlichkeit gegenüber fehlgeleiteten politischen Maßnahmen, wie sie von den augenblicklichen Regierungen veranlasst wurden.

    Besonders gut hat mir dabei gefallen die Rede von einer „increasing socioecological degradation“, also einem zunehmenden sozio-ökologischen Verfall, zumal ich dabei an meine eigene brasilianische Geschichte denken musste.

    Foto eines Schildes aus Portugiesisch: Vorsicht, Waldtiere auf der Straße

    Im Parco de Tijuca auf dem Stadtgebiet von Rio de Janeiro: Warnung vor den „Waldtieren“, die auf der Straße rumlaufen. Tatsächlich turnen Affen sogar durch die Telefonleitungen, die zum Nationalobservatorium führen.

    Im Jahr 2014 habe ich rund eine Woche am Nationalobservatorium in Rio de Janeiro gearbeitet. Ich denke, es ist nicht verkehrt, so etwa in dieser Zeit den Höhepunkt der Wirkungen der Sozialpolitik von Lula da Silva zu verorten, der speziell mit seiner bolsa familia Dutzenden Millionen Menschen ein halbwegs menschenwürdiges Leben ermöglicht hat.

    Das hatte sehr profunde Konsequenzen auch für Menschen aus der Mittelschicht. Mein Gastgeber etwa erzählte, er sei vor Lulas Sozialpolitik „Opfer ungefähr jedes Verbrechens gewesen, das es gibt“, und das sei eine recht typische Erfahrung der Cariocas gewesen. Demgegenüber sei in den vieleicht fünf Jahren vor meinem Besuch eigentlich nichts mehr in der Richtung passiert. Ein weiterer Kollege ergänzte, er sei in dieser Zeit nur einmal ausgeraubt worden, und zwar mit chirurgischer Präzision (seine Worte), als er in den frühen Morgenstunden schon ziemlich beschickert unterwegs gewesen sei und die Räuber die Nettigkeit hatten, ihm seinen Geldbeutel wieder zurückzugeben, zwar ohne Bargeld, aber mit allem Plastikwahnsinn, dessen Wiederbeschaffung wirklich viel Stress gewesen wäre.

    Diese Zeiten sind lange vorbei. Nach dem (rückblickend ist diese Charakterisierung wohl nicht zu bestreiten) Putsch gegen Dilma ging die Politik zurück zur Umverteilung von unten nach oben, mit den erwartbaren Konsequenzen für das Leben in einer Stadt wie Rio – und den weniger offensichlichen Konsequenzen für das Heranbrüten der nächsten großen zoonotischen Pandemie.

    Ich frage mich ja bei solchen Betrachtungen immer, wie Leute wie Bolsonaro eigentlich ruhig schlafen können. Aber dann: Die Frage stellt sich ja ganz analog für Scholz, Steinmeier, für Fischer und Schröder, die mit Hartz IV oder der versuchten Rentenprivatisierung ganz ähnliche Dinge, wenn auch vielleicht auf kleinerer Flamme, angerichtet haben. Und ich vermute, ich habe den Kern der Antwort schon berechnet: Allein der Umstand, dass diese Menschen Macht haben, macht es sehr wahrscheinlich, dass sie über erhebliche moralische Flexibilität verfügen.

    [1]Im einzelnen Bilharziose, Leishmaniose (innere und Haut-; wird im Rahmen des Klimawandels auch in der BRD häufiger), Leptospirose (letzter großer Ausbruch in der …
  • Vorbildliches Friedrichstadt

    Schwarzweißbild auf Tafel vor realen Häusern.

    In Friedrichstadt zeigen Tafeln gerne Fotos von um die 1900, die oft genug bis in Details wie Fenstersprossen dem aktuellen Zustand entsprechen. Dieser Post ist ein vorsichtiger Lobpreis einer solchen Praxis.

    Ich bin gerade im nordfriesischen Friedrichstadt, einem Städtchen nahe der Nordseeküste, das viele TouristInnen anzieht, vor allem wenn, wie jetzt gerade, das Wetter am Strand längere Aufenthalte dort eher unattraktiv macht. Diesen BesucherInnen wird Friedrichstadt gerne als „Stadt der Toleranz“ präsentiert. Angesichts einer jahrhundertelangen Präsenz pazifistischer und damit relativ sympathischer protestantischer Sekten wie der Mennoniten und Quäker ist das wahrscheinlich auch eine recht brauchbare Zuschreibung – gerade diese hatten mit weniger toleranten Obrigkeiten meist erhebliche Probleme.

    Ich allerdings finde das Nest aus anderen Gründen bemerkenswert, und das nicht nur, weil die Toleranz Grenzen hatte, die zumindest halbwegs aufgeklärten Menschen völlig albern erscheinen: Die Unitarier mussten zum Beispiel wieder gehen, was um so erschütternder ist, als sich diese von der christlichen Rechtgläubigkeit vor allem in der Zurückweisung des wahrscheinlich durchgeknalltesten aller Dogmen unterscheiden, nämlich der Trinität.

    Wir müssen uns Gott als Tafellappen vorstellen

    Ich kann nicht widerstehen: Als ich in der Grundschule war, erzählte uns der Dorfpfarrer original, mensch müsse sich die dreifaltige Gottheit vorstellen wie einen Tafellappen. Er nahm daraufhin so einen und faltete ihn an fünf Stellen so, dass vorne drei Falten rausguckten. Ein Tafellappen, drei Falten. Wer andere aus seiner Stadt wirft, weil sie so einen offensichtlichen Polit-Kompromiss[1] nicht glauben wollen, verdient einen Toleranzpreis vielleicht doch nur eingeschränkt.

    Nein, wirklich vorbildlich an Friedrichstadt ist die, trärä, Na… Na… na ja. Ich muss es ja doch irgendwann mal sagen: Nachhaltigkeit. Das Wort ist zwar inzwischen zu Heizmaterial für Dampfplauderer verkommen, aber an sich liegt es ja schon nahe, so leben zu wollen, dass das auch noch ein paar Jahrhunderte weitergehen kann. Die wichtigste Zutat dabei ist: Nicht (prozentual, also exponentiell) wachsen. Was um x% im Jahr wächst, verdoppelt sich nach ungefähr 75/x Jahren (oder so), und zehn Verdopplungszeiten entsprechen einer Vertausendfachung. Fast nichts auf dieser Welt kann sich vertausendfachen, ohne dass etwas gewaltig vor die Hunde geht.

    Friedrichstadt hat sich dem Wachstum in mancherlei Hinsicht beeindruckend entzogen. Herzog Friedrich III von Gottorf hat den Ort in den 1620er Jahren als künftiges Handelszentrum mit ein paar tausend EinwohnerInnen planen lassen. Derzeit, 401 Jahre Jahre nach der Gründung, leben so um die 2500 Menschen hier. Um die Größenordnungen zu betonen: Wer 400 Jahre Zeit hat, hat auch bei einer Verdoppelungszeit von 40 Jahren noch eine Vertausendfachung, und 40 Jahre Verdoppelungszeit entsprechend weniger als zwei Prozent Jahreswachstum.

    Fortzug in wirtschaftlich prosperierendere Gegenden

    Friedrichstadt aber wuchs zumindest in der Bevölkerung nicht. Die entsprechende Statistik aus der Wikipedia sieht als Spline-geglätteter (was das Loch nach dem ersten Weltkrieg überbetont) Plot so aus:

    Plot: Recht konstant bei 2500 verlaufende Linie mit einem jähen Anstieg in den 1940er Jahren und einem relativ steilen Rückgang danach.

    Der Berg in den 1940er und 1950er Jahren ist Folge des Zuzugs von Geflüchteten vor allem aus den von der Sowjetunion eroberten bzw. später kontrollierten Gebieten. Sein Abschmelzen führen die Wikipedia-AutorInnen auf den „Fortzug der Vertriebenen in wirtschaftlich prosperierendere Gegenden“ zurück.

    Auch wenn Bevölkerungsexport keine, hust, nachhaltige Strategie ist: Der Nettoeffekt ist eine konstante Bevölkerung, und bei recht maßvoller Entwicklung der Wohnfläche pro Mensch ist das auch im Stadtbild sichtbar, denn Friedrichstadt hat kaum Einfamilienhaus-Wüsten aus dem Auto-Zeitalter (auch wenn die Stadt, das Eingangsfoto zeigt es, der Automobilisierung nicht entgehen konnte).

    Doch auch wirtschaftlich hat sich nicht allzu viel getan: Eine Mühle, die Kölln-Flocken hergestellt hat (na gut, vielleicht auch anderen Kram für die Firma), ist 2001 wegen mangelnder Kapazität geschlossen worden – wo sie stand, ist heute ein Komplex von Spiel- und Bolzplätzen. Andere Industrie hat schon vorher aufgegeben.

    Und so lebt Friedrichstadt eben weitgehend von Tourismus. Es ist ja auch hübsch hier. Auch das würde ich jetzt nicht als „nachhaltig“ bezeichnen, zumal es ohne ein gewisses Niveau an industrieller Produktion nichts würde mit den fünf Stunden Lohnarbeit pro Woche. Aber dennoch ist es interessant, wie sich eine Stadt anfühlt, die 400 Jahre lang stagnierte, aus welchen Gründen und mit welchen Mitteln auch immer.

    Ich muss sagen: Mir gefällt es in Friedrichstadt.

    [1]Ich persönlich vermute ja, dass es, als beim Konzil von Nicäa die Trinität beschlossen wurde, ähnlich zuging wie während der marktradikalen Hochschul„reformen“ der 1990er und Nullerjahre („Bologna-Prozess“), als jedeR jedeN aufs Kreuz zu legen versuchte und das Ergebnis völlig dysfunktionaler Quatsch ist.
  • Velorution Aber Hallo

    Demo-Impressionen: Fahrrad mit Pappschild "Velorution jetzt", Fahrraddemo fährt auf eine Autobahnauffahrt

    Weil mir mein Pappschild „Velorution Aber Hallo“ im Fridays-for-Future-Stil so gut gefiel (bis auf die Klettbänder war alles recyclet), muss ich kurz von der Demo für den Fahrradschnellweg zwischen Heidelberg und Mannheim erzählen.

    Diese hat eine lange Tradition von inzwischen fast einem Jahrzehnt. Eine noch längere Tradition hat allerdings das Thema, nämlich (mindestens) eine Verbindung zwischen Heidelberg und Mannheim, auf der RadlerInnen nicht entweder ein einem Fort von rasenden Autos gequält werden oder im Übermaß Schnitzeljagd- und Querfeldein-Qualitäten benötigen. Seit größenordnungsmäßig 20 Jahren wird an dem Thema herumdiskutiert und -geplant, ohne dass etwas passiert wäre.

    Um die Sache etwas in Bewegung zu halten, veranstalten ADFC und Co jedes Jahr im Juli eine Raddemo von Heidelberg nach Mannheim. Ganz ehrlich ist es eigentlich immer darum gegangen, die bestehende A656 zu verwenden – diese Straße ist zwar nicht besonders schön, würde aber die technischen Voraussetzungen an einen Radschnellweg durchaus erfüllen. Soweit es mich betrifft, könnten sie das Ding für Autos sperren und es als Radschnellweg deklarieren: Wäre fürs Erste ok.

    In der Realität sind diese Demos natürlich nie auf einer, schauder, Bundesautobahn gefahren, jedenfalls nicht den ganzen Weg. Dieses Mal aber waren wir immerhin ein kleines Stück auf einer leibhaftigen Autobahn unterwegs, für vielleicht 500 Meter auf der A656 vor Mannheim, mit offiziellem Segen und von der begleitenden Polizei zelebriert wie ein Hochamt.

    Jaja, Velorution, der Übergang von einer Auto- in eine Fahrradgesellschaft, in der der Wahnsinn aus der Dystopie des Herrn Benz durch entspannte Mobilität und selbstbestimmten Umgang mit Verkehrstechnik ersetzt würde: die sieht anders aus. Aber vielleicht hat die Standpauke[1], die eine Vertretrin des Radentscheid Heidelberg den mitfahrenden Offiziellen (ja, der Heidelberger OB und der Mannheimer „Verkehrsbürgermeister“ sind tatsächlich die ganze Strecke mitgefahren) bei der Abschlusskundgebunge gehalten hat, diese ja vielleicht doch so weit beeindruckt, dass wenigstens zwei oder drei Parkplätze im nächsten Jahr verschwinden werden. Und das wäre ja schon mal ein Gewinn.

    Fahrräder auf einer autobahnähnlichen Straße, ein Anhänger mit Blumen

    So sieht Velorution aus: Menschen und Blumen auf der Autobahn.

    [1]Es war großartig: Während die Bürgermeister wieder davon geredet haben, dass es nur noch ein paar „Lückenschlüsse“ brauche, beschrieb die Rednerin die Untätigkeit der Verwaltungen und die düstere Realität, in der nicht ein Parkplatz weichen darf, während die Bürgermeister im Stil gescholtener Schulbuben danebenstanden. Sehr charmant und mit viel Applaus bedacht. Wenn das dem Apparat nicht etwas mehr Realitätssinn vermittelt…
  • Wifi im Metronom: Ui

    Screenshot: Etwas zerrupfte Felder einer einfachen Webseite

    Das Captive Portal im WLAN vom Metronom, gerendert in einem netsurf: Nicht perfekt, aber es funktioniert, ganz ohne Javascript und anderen Zauber.

    Ich sage ja nur ungern etwas Positives über Epiphänomene der Bahnprivatisierung, aber wo ich gerade in einem Metronom sitze und ich wiederholt über absurd komplexe Captive Portals geschimpft habe: Die Metronoms (bzw. ihr Dienstleister Icomera) machen das tatsächlich mal so, dass das halbwegs akzeptabel ist: Es funktioniert ohne Javascript und Local Storage, auch im netsurf (wenn auch interessanterweise nicht mit dillo; ich habe das nicht debuggt) und überträgt in restriktiv konfigurierten Browsern gerade mal 6 kiB für die Seite. Selbst ein webkit kommt, solange Javascript aus ist, mit rund 50 kiB raus.

    Wenn das irgendwer von Icomera liest: Ziemlich großes Lob[1]! Wenn das hier jemand liest, der/die ein kommerzielles WLAN anbieten will, es aber nicht einfach ganz offen lassen will: Geht zu Icomera und sagt: „Ich will das, was die Metronoms bekommen haben“.

    Full Disclosure: Ich bin an sich ein zähnefletschender Feind von „Dienstleistern“ wie Icomera, habe aber ansonsten tatsächlich nichts mit denen zu tun.

    PS: Kein Licht ohne Schatten im Geschäft von IT-„Dienstleistung“: Icomera blockt leider Port 587, der inzwischen Standard fürs Maileinliefern ist. Ach, Icomera: Drängt die Leute doch bitte nicht noch mehr zu webmail (und gmail). Aber immerhin haben sie ssh offen gelassen, so dass halbwegs unproblematische Selbsthilfe möglich ist.

    [1]Für ganz großes Lob müsstet etwas zurückhaltenderes CSS verwenden oder zumindest den z-index eures Dialogs über den Footer heben.
  • PSA: netsurf 3 does not accept cookies from localhost

    As I have already pointed out in April, I consider simple and compact web browsers a matter of freedom (well, Freedom as in speech, actually), and although there's been a bit of talk about ladybird lately, my favourite in this category still is netsurf, which apparently to this date is lean enough to be runnable on vintage 1990 Atari TT machines. I'll freely admit I have not tried it, but the code is there.

    Yesterday, however, netsurf drove me crazy for a while: I was developing a web site, making sure it works with netsurf. This website has a cookie-based persistent login feature, and that didn't work. I sent my Set-Cookie headers all right – ngrep is your friend if you want to be sure, somewhat like this:

    sudo ngrep -i -d lo cookie port 8888
    

    Ngrep also clearly showed that netsurf really did not send any Cookie headers, so the problem wasn't on the cookie header parsing side of my program, either.

    But why did the cookies disappear? Cookie policy? Ha: netsurf does accept a cookie from Google, and crunching this would be the first thing any reasonable policy would do. Did I perhaps fail to properly adhere to the standards (which is another thing netsurf tends to uncover)? Hm: looking up the cookie syntax spec gave me some confidence that I was doing the right thing. Is my Max-Age ok? Sure, it is.

    The answer to this riddle: netsurf does not store cookies if it cannot sort them into a hierarchy of host names, and it never can do that for host names without dots (as in localhost, for instance). Given the ill-thought-out Domain attribute one can set for cookies (see the spec linked above if you want to shudder), I even have a solid amount of sympathy for that behaviour.

    But given that that is something that will probably bite a lot of people caring about freedom enough to bother with netsurf, I am still a bit surprised that my frantic querying of search engines on that matter did not bring up the slightly unconventional cookie handling of netsurf. Let us hope this post's title will change that. Again, netsurf 3 will not store cookies for not only localhost but any host name without dots in it. Which is a bit inconvenient for development, and hence despite my sympathy I am considering a bug report.

    Meanwhile, I've worked around the problem by adding:

    127.0.0.1 victor.local.de
    

    to my /etc/localhost (the name really doesn't matter as long as it will never clash with an actual site you want to talk to and it contains one or more dots) and access the site I'm developing as http://victor.local.de. Presto: my cookie comes back from netsurf all right.

    A Debugging Session

    So, how did I figure this riddle out? The great thing about Debian and halfway compact software like netsurf is that it makes it reasonably simple to figure out such (mis-) features. Since I firmly believe that the use of debuggers is a very basic skill everyone touching a computer should have, let me give a brief introduction here.

    First, you need to get the package's source. Make sure it matches the version of the program that you actually run; to do that, copy the deb line in /etc/apt/sources.list for the repository the package comes from (note that this could be the security repo if you got updates from there). In the copied line, replace deb with deb-src. In my case, that would be:

    deb-src https://deb.debian.org/debian bullseye main
    

    On a freshly installed Debian, it's likely you already have a line like this; consider commenting out the deb-src lines when not working with source code, as that will make your apt operations a bit faster.

    After an apt update, I can now pull the source. To keep your file system tidy, I put all such sources into children of a given directory, perhaps /usr/src if you're old-school, or ~/src if not:

    cd
    mkdir -p src/netsurf
    cd src/netsurf
    apt-get source netsurf-gtk
    

    I'm creating the intermediate netsurf directory because apt-get source creates four items in the directory, and in case you're actually building a package (which you could, based on this), more entries will follow; keeping all that mess outside of src helps a lot. Note that apt-get source does not need any special privileges. You really should run it as yourself.

    By the way, this is the first part where monsters like webkit make this kind of thing really strenuous: libwebkit sources (which still are missing much over a full browser) pull 26 megabytes of archive expanding to a whopping 300 Megabytes of source-ish goo.

    To go on, enter the directory that apt-get source created; in my case, that was netsurf-3.10. You can now look around, and something like:

    find . -name "*.c" | xargs grep "set-cookie"
    

    quickly brought me to a file called netsurf/content/urldb.c (yeah, you can use software like rgrep for „grep an entire tree“; but then the find/xargs combo is useful for many other tasks, too).

    Since I still suspected a problem when netsurf parses my set-cookie header, the function urldb_parse_cookie in there caught my eye. It's not pretty that that function is such an endless beast of hand-crafted C (rather than a few lines of lex[1]), but it's relatively readable C, and they are clearly trying to accomodate some of the horrible practices out there (which is probably the reason they're not using lex), so just looking at the code cast increasing doubts on my hypothesis of some minor standards breach on my end.

    In this way, idly browsing the source code went nowhere, and I decided I needed to see the thing in action. In order to not get lost in compiled machine code while doing that, one needs debug symbols, i.e., information that tells a debugger what compiled stuff resulted from what source code. Modern Debians have packages with these symbols in an extra repository; you can guess the naming scheme from the apt.sources string one has to use for bullseye:

    deb http://debug.mirrors.debian.org/debian-debug bullseye-debug main
    

    After another round of apt update, you can install the package netsurf-gtk-dbgsym (i.e., just append a -dbgsym to the name of the package that contains the program you want to debug). Once that's in, you can run the GNU debugger gdb:

    gdb netsurf
    

    which will drop you into a command line prompt (there's also a cool graphical front-end to gdb in Debian, ddd, but for little things like this I've found plain gdb to be less in my way). Oh, and be sure to do that in the directory with the extracted sources; only then can gdb show you the source lines (ok: you could configure it to find the sources elsewhere, but that's rarely worth the effort).

    Given we want to see what happens in the function urldb_parse_cookie, we tell gdb to come back to us when the program enters that function, and then to start the program:

    (gdb) break urldb_parse_cookie
    Breakpoint 1 at 0x1a1c80: file content/urldb.c, line 1842.
    (gdb) run
    Starting program: /usr/bin/netsurf
    

    With that, netsurf's UI comes up and I can go to my cookie-setting page. When I try to set the cookie, gdb indeed stops netsurf and asks me what to do next:

    Thread 1 "netsurf" hit Breakpoint 1, urldb_parse_cookie (url=0x56bcbcb0,
        cookie=0xffffbf54) at content/urldb.c:1842
    1842  {
    (gdb) n
    1853    assert(url && cookie && *cookie);
    

    n (next) lets me execute the next source line (which I did here). Other basic commands include print (to see values), list (to see code), s (to step into functions, which n will just execute as one instruction), and cont (which resumes execution).

    In this particular debugging session, everything went smoothly, except I needed to skip over a loop that was boring to watch stepping through code. This is exactly what gdb's until command is for: typing it at the end of the loop will fast forward over the loop execution and then come back once the loop is finished (at which point you can see what its net result is).

    But if the URL parsing went just fine: Why doesn't netsurf send back my cookie?

    Well, tracing on after the function returned eventually lead to this:

    3889      suffix = nspsl_getpublicsuffix(dot);
    (gdb)
    3890      if (suffix == NULL) {
    

    and a print(suffifx) confirmed: suffix for localhost is NULL. Looking at the source code (you remember the list command, and I usually keep the source open in an editor window, too) confirms that this makes netsurf return before storing the freshly parsed cookie, and a cookie not stored is a cookie not sent back to the originating site. Ha!

    You do not want to contemplate how such a session would look like with a webkit browser or, worse, firefox or chromium, not to mention stuff you don't have the source …

  • Der Markov-Preis für die ungewöhnlichste Wortfolge

    Ich bin kein besonderer Freund der Triggerwarnung an sich, aber hier warne ich mal: Es geht um Rassismus, schreckliche Gewalt (wenn das für euch einen Unterschied macht: obendrein gegen Kinder) und Religion. Eigentlich ist das alles viel zu ernst für einen Spaßpreis.

    Aber es hilft nichts: Der Markov-Preis für die ungewöhnlichste Wortfolge[1] geht heute an den Deutschlandfunk für den Hintergrund Politik vom 2. Juli, dessen Thema der Sender wie folgt umschreibt:

    Tausende indigene Kinder wurden zwischen 1870 und 1996 in Kanada von ihren Familien getrennt und in Internaten untergebracht. Oft wurden sie dort sexuell missbraucht, viele starben. Die Aufarbeitung dieses Kapitels der kanadischen Geschichte hat erst begonnen – und wird die Gesellschaft noch lange beschäftigen.

    Darin heißt es bei Minute 12:00: „Die Nonnen hatten alle Lederpeitschen.“ Nennt mich naiv im Hinblick auf die Realität des Christentums, aber: jedenfalls außerhalb der engeren BDSM-Szene ist das schon ein Satz, dem eine durchschnittliche künstliche Intelligenz eine eher geringe Wahrscheinlichkeit zuordnen würde. Der Neugier halber habe ich kurz meinen Müllbrowser angeworfen (in dem darf liberal Javascript laufen), um zu sehen, was Google dazu einfällt:

    Google-Suchfeld mit "Die Nonnen hatten alle" und vorgeschlagener Ergänzung "folgen"

    Bei näherer Überlegung muss ich die Preisvergabe allerdings relativieren, denn wenn ich (erneut) an Edgar Allen Poes Kurzgeschichte Die Grube und das Pendel denke, erscheint die prämierte Wortfolge und auch ihre BDSM-Konnotation gar nicht mehr so abwegig.

    Eine weitere Verbindung zu jüngeren Themen aus diesem Blog fand ich bei Minute 10:20. In der Übersetzung des Deutschlandfunks:

    Sie kamen mit diesen Lastwagen, mit denen sonst Vieh transportiert wird. Damit haben sie uns abgeholt…

    …nämlich in die besagten residential schools.

    Ich glaube, es ist kein Zufall, dass da Fahrzeuge eingesetzt wurden, die normalerweise Schlachttiere bewegen. Gegen Ende meiner Überlegungen zu Königinnenkämpfen neulich hatte ich schon darauf hingewiesen, dass die Charakterisierung von Menschen als lästige (oder im vorliegenden Fall zu tötende) Tiere ein „konstantes Feature so gut wie aller Kriege und anderer Massenmorde der Geschichte“ ist.

    Ganz gewiss hat es der Transport der Kinder in Schlachtvieh-Wagen den im Apparat beschäftigten Menschen erheblich leichter gemacht, so unmenschlich zu handeln. Und ja, das ist sowohl ein Argument für die Erhaltung der Empathie mit Schlachtvieh als auch ein Argument gegen den Transport von Menschen in Viehtranportern[2].

    [1]Benannt ist der Preis nach Andrei Andrejewitsch Markow in seiner in Fachkreisen üblicheren englischen Umschreibung (sich selbst wird er wohl vor allem Марков geschrieben haben). Markov-Ketten waren bis zum Durchmarsch der neuronalen Netze das Mittel der Wahl zur statistischen Modellierung sprachlicher Äußerungen, also letztlich zur Beantwortung der Frage, wie wahrscheinlich es ist, kurz nach dem Token „Nonne“ ein Token wie „Hostie“, „Backschaufel“, „Gesangbuch“, „Rohrstock“ oder eben „Lederpeitsche“ zu finden.
    [2]Auch wenn ich irgendwelche Nazigeschichten hier lieber raushalten würde (denn da ist nochmal was ganz anderes passiert), muss ich, wo ich schon grob das Thema habe, noch anmerken: Ich bin überzeugt, dass Adolf Eichmann nicht nur aus Sachzwang Viehwaggons gewählt hat, um all die Menschen in die NS-Vernichtungslager verschleppen zu lassen.
  • Bertrand Russell und die Faulheit

    Als ich angefangen habe, an diesem Blog zu schreiben, wollte ich eigentlich regelmäßig über den Wahnsinn ranten, dass wir Unmengen Plunder und „Dienstleistungen“ herstellen, ohne die die Welt eigentlich besser wäre, und dafür sowohl uns selbst als auch den Planeten furchtbar stressen. Wenn ich jetzt sehe, was ich wirklich unter dem Tag Faulheit geschrieben habe: Am Schluss gab es doch immer andere Themen.

    Unterdessen war am 18. Mai der 150. Geburtstag von Bertrand Russell, von dem hier verschiedentlich schon die Rede war, allerdings eher im Zusammenhang mit seiner Philosophiegeschichte und weniger aufgrund seiner Arbeiten an den Grundlagen der Mathematik, seiner zähen Arbeit gegen religiösen Wahn oder seines pazifistischen Elans[1]; mit all dem hat mich Russell schon sehr lange begeistert.

    Erst im Portrait von Russell in SWR2 Wissen am 13.5. (Audio lohnt sich: Russell spricht selbst, Englisch und Deutsch!) jedoch erfuhr ich, dass er mal wegen Aufruf zu Widerstand gegen die Staatsgewalt im Gefängnis saß (zudem im Alter von 89 Jahren) – und, dass er schon 1932 die zornige Diatribe gegen den Unsinn exzessiver Lohnarbeit geschrieben hat, die ich für diesen Blog vorgesehen hatte.

    Sind wir 90 Jahren später klüger?

    Allerdings schrieb Russell seinen kleinen Aufsatz auf dem Höhepunkt der Großen Depression, also unter fantastischen Arbeitslosenraten, und so unterscheidet sich seine Analyse schon in vielem von meiner; der wichtigste Punkt wäre wohl, dass Russell in erster Linie die vorhandene Arbeit gleichmäßiger verteilen wollte, während ich, 90 Jahre später, überzeugt bin, dass die Gesamtmenge an Arbeit drastisch reduziert werden muss und kann, um den allgemeinen Wohlstand zu heben. Aber wir haben eben auch 90 Jahre Produktivitätssteigerung trotz Übergangs in die „Dienstleistungsgesellschaft“ hinter uns, und Russell konnte nichts von Indexfonds, Fidget Spinnern, SAP, SUVs, Nagelstudios, Bundesligafernsehen, Rechteverwertungsgesellschaften, Flimmerwände, TikTok und all dem anderen bunten Mist wissen, mit dem wir uns heute das Leben gegenseitig schwer machen.

    Russells Essay „In Praise of Idleness“ ist beim Web Archive zu haben (fragt mich nicht, wie das gerade mal 50 Jahre nach Russells Tod trotz Contentmafia zugeht; schlechter auf Deutsch), und wo ich ihn schon gelesen habe, möchte ich ein paar der schöneren Zitate hier versammeln, zumal seine Argumente inzwischen vielleicht unvollständig, sicher aber nicht falsch sind. Die Übersetzungen sind jeweils von mir.

    Russell fängt mit etwas an, das zwar zu lang ist, um ein gutes Gaffito zu machen, und vielleicht klingt „rechtschaffen“ („virtuous“) ein wenig angestaubt. Ich würde damit dennoch jeden Tag auf eine Fridays For Future-Demo gehen:

    Ich glaube, dass viel zu viel Arbeit getan wird in der Welt, und dass der Glaube, Arbeit sei rechtschaffen, unermesslichen Schaden anrichtet [...]

    Ursprüngliche Gewalt

    Im Weiteren leitet Russell die „Arbeitsethik“ in etwa dadurch ab, dass früher mal Krieger die Leute, die die Arbeit gemacht haben, nicht dauernd mit Gewalt zwingen wollten, sie zu füttern. Russell, der ja Kommunist gewesen war, bis er Lenin getroffen hat, waren gewiss die Parallelen zu Marx' ursprünglicher Akkumulation[2] bewusst; ich frage mich ein wenig, warum er darauf nicht wenigstens kurz anspielt.

    Und dann kommt seine scharfe Beobachtung, dass es während des ersten Weltkriegs mit all seiner völlig destruktiven Verschwendung den ArbeiterInnen im UK eigentlich besser ging als in Zeiten ganz normalen Wirtschaftens:

    Trotz all [der Verschwendung aufs Töten] war das generelle Wohlstandsniveau der ungelernten LohnarbeiterInnen auf der Seite der Alliierten höher als davor oder danach. Die tatsächliche Bedeutung dieser Tatsache wurde durch Finanzpolitik versteckt: Die Kriegsanleihen ließen es so aussehen, als würde die Zukunft die Gegenwart ernähren. Aber das ist natürlich unmöglich; ein Mensch kann keinen Brotlaib essen, der noch nicht existiert.

    Diese Argumentation zeigt in der anderen Richtung übrigens den Unsinn (oder die Fiesheit) kapitalgedeckter Rentenversicherungen: Wenn in 50 Jahren niemand mehr Brot backt, wird es für all das angesparte und zwischenzeitlich zerstörerische Kapital kein Brot zu kaufen geben – über diesen spezifischen Wahnsinn hatte ich es schon kurz im letzten April.

    In diesem speziellen Fall würde ich Russell allerdings fragen wollen, ob das ähnlich auch für die britischen Kolonien galt; einige indische Hungersnöte im Megaopferbereich fallen durchaus in die verschiedenen Kriegszeiten, und ich vermute, Russell sieht hier zu guten Stücken lediglich die während Kriegen erheblich größere Kampfkraft nicht allzu patriotischer Gewerkschaften reflektiert.

    Philosophie und Sklavenhaltung

    Wenig später folgt ein weiteres Bonmot, wenn Russell zunächst die immer noch herrschende Ideologie erklärt:

    Warum [sollten Leute ohne Lohnarbeit verhungern und die anderen furchtbar lang arbeiten]? Weil Arbeit Pflicht ist, und Menschen nicht im Verhältnis zu dem bezahlt werden sollen, was sie herstellen, sondern im Verhältnis zu ihrer Tugendhaftigkeit, wie sie durch ihren Fleiß unter Beweis gestellt wird.

    Das ist die Moralität des Sklavenstaates, angewandt auf Umstände, die völlig verschieden sind von denen, unter denen sie entstand.

    Ich merke kurz an, dass Russell als Philosoph dem antiken Sklavenstaat durchaus etwas abgewinnen konnte, denn ohne die Arbeit all der SklavInnen hätten Thales und Demokrit wohl keine Muße gehabt, ihren von Russell sehr geschätzten Gedanken nachzuhängen. Dabei ist er gar nicht so furchtbar darauf fixiert, dass die Leute in ihrer Muße dringend philosophieren[3] müssen:

    Es wird der Einwand kommen, dass, wenn auch ein wenig Muße angenehm ist, die Leute nicht wüssten, mit was sie ihre Tage füllen sollen, wenn sie nur vier Stunden von ihren vierundzwanzig arbeiten müssen. Soweit das in unserer modernen Welt wirklich zutrifft, ist es eine Verdammung unserer Zivilisation; es war jedenfalls in keiner vorherigen Epoche wahr. Es hat vor uns eine Fähigkeit gegeben für Freude und Spiel, die in gewissem Maß von unserem aktuellen Kult der Effizienz gehemmt wird. Der moderne Mensch denkt, dass es für jede Tätigkeit einen Grund außerhalb ihrer selbst geben müsse, dass Dinge nie um ihrer selbst willen getan werden dürfen.

    Die lahmeren Einwände gegen das bedingungslose Grundeinkommen kamen also auch damals schon. Ich stimme Russells Entgegnug aus diesem Absatz herzlich zu, auch wenn er wie ich auch nicht widerstehen kann, kurz darauf von einer generellen Begeisterung für Wissenschaft zu träumen:

    In einer Welt, in der niemand gezwungen ist, mehr als vier Stunden pro Tag zu arbeiten, wird jede Person, die die wissenschaftliche Neugier packt, sich dieser hingeben können, und alle MalerInnen werden malen können, ohne zu verhungern, gleichgültig, wie großartig ihre Bilder sein mögen.

    Nun… Bis zum Beweis des Gegenteils glaube ich fest daran, dass eine Gesellschaft mit minimalem Lohnarbeitszwang eine Gesellschaft von BastlerInnen und Amateurastronominnen sein wird. Schaun wir mal.

    Krieg ist viel Arbeit

    Ich kann dieses Best-of aus Russells Artikel nicht ohne seine Brücken zum Kriegführen beenden. Krieg erwähnt er, wenn er Techniken diskutiert, die die Übersetzung von Produktivitätsfortschritten in weniger Arbeit verhindern:

    Wenn sich alle diese Methoden als unzureichend herausstellen, machen wir Krieg; wir lassen ein paar Leute Explosivstoffe herstellen und ein paar andere diese zünden, ganz als wären wir Kinder, die gerade Feuerwerk entdeckt haben.

    Und dann sagt er in der Abteilung Utopie:

    [Wenn die Leute nicht mehr so wahnsinnig viel arbeiten,] wird der der Hunger nach Krieg aussterben, teils aus diesem Grund [weil die Leute netter und weniger misstrauisch wären] und teils, weil Krieg viel und schwere Arbeit mit sich bringen würde.
  • Libellen aufs Kreuz gelegt

    Eine Königslibelle sitzt senkrecht an einem Stück Holz; seitlich hängt eine leere Hülle einer Libellenlarve.

    Diese Libelle – ausweislich der leeren Larvenhülle halbrechts unten wahrscheinlich gerade erst geschlüpft – ist hoffentlich Zeit ihres Lebens (ein paar Wochen im Sommer 2020) mit sehenden Augen in der Gegend vom Weißen Stein herumgeflogen.

    Als ich in den Kurzmeldungen in Forschung aktuell vom 16.5. (ab Minute 1:50) davon hörte, wie Leute Libellen auf den Rücken gedreht und dann fallen gelassen haben, habe ich unmittelbar Lausbuben assoziiert, die strampelnden Käfern zusehen. Das hörte sich nach einer vergleichsweise eher gutgelaunten Angelegenheit für meine fiktionale Ethikkommission an. Jetzt, wo ich die zugrundeliegende Arbeit, „Recovery mechanisms in the dragonfly righting reflex“, Science 376 (2022), S. 754, doi:10.1126/science.abg0946, gelesen habe, muss ich das mit der guten Laune etwas relativieren.

    Zunächst beeindruckt dabei der interdisziplinäre Ansatz. Hauptautorin ist Jane Wang, Physikerin von der Cornell University (kein Wunder also, dass im Paper eine Differentialgleichung gelöst wird), mitgeholfen haben der Luftfahrtingenieur James Melfi (auch von Cornell; kein Wunder, dass rechts und links Euler-Winkel gemessen werden) und der Neurobiologe Anthony Leonardo, der am Janelia Resarch Campus in Virgina arbeitet, augenscheinlich eine Biomed-Edeleinrichtung im Umland von Washington DC.

    Zusammen haben sie mit Hochgeschwindingkeitskameras eine Variante des Schwarzweiß-Klassikers „Wie eine Katze auf den Füßen landet[1] aufgenommen, dieses Mal eben mit Libellen. Dabei haben sie den Libellen einen Magneten auf den Bauch geklebt, sie mit diesem in Rückenlage an einem Elektromagneten festgeklemmt, gewartet, bis sich die Tiere beruhigt hatten und dann den Strom des Elektromagneten abgeschaltet, so dass die Libellen (im physikalischen Sinn) frei fielen.

    Libellen rollen präzise nach rechts

    Wenn das exakt so gemacht war, war offenbar sehr vorhersehbar, was die Libellen taten. Wang et al geben an, es sei ganz entscheidend, dass die Füße der Tiere in der Luft hängen, weil sonst einerseits eigene Reflexe von den Beinen ausgelöst würden und andererseits die Libellen selbst starten wollen könnten: „voluntary take-off via leg-kicks introduces a large variability“.

    Bis dahin regt sich meine Empathie nur wenig. Zwar schätzen es die Libellen ganz sicher nicht, auf diese Weise festgehalten zu werden. Aber andererseits ist das alles ganz gut gemacht, und die Ergebnisse der Studie sind soweit ganz überzeugend und beeindruckend. Die Tiere drehen sich konsistent um ihre Längsachse, um wieder auf den Bauch zu kommen, fangen mit der Drehung nach gerade mal 100 ms an (als Reaktionszeit für Menschen gelten so etwa 300 ms; aber ok, wir haben auch viel längere Nerven) und sind dann nach gut zwei Zehntelsekunden oder vier Flügelschlägen fertig, also bevor unsereins überhaupt beschlossen hätte, was zu tun ist.

    Für mich unerwarteterweise findet die Drehung sehr kontrolliert und offenbar vorgeplant statt. Ich lese das aus der Tatsache, dass die Winkelgeschwindigkeit der Drehung zwischen 170 Grad (fast auf dem Rücken) und vielleicht 40 Grad (schon recht gut ausgerichtet) praktisch konstant ist. Abbildung 2 B des Papers fand ich in der Hinsicht wirklich erstaunlich: nicht vergessen, das Tier bewegt derweil ja seine Flügel.

    Die AutorInnen betrachten weiter die Stellung der beiden Flügelpaare im Detail, um herauszubekommen, wie genau die Libellen die präzise Drehung hinbekommen. Das ist bestimmt sehr aufregend, wenn mensch irgendwas von Flugzeugbau versteht, aber weil ich das nicht tue, hat mich das weniger begeistert. Außerdem war ich zu dem Zeitpunkt bereits etwas voreingenommen, nachdem ich erfahren hatte, dass, um die Flügelstellung mit den Analyseprogrammen, die Wang et al hatten, rekonstruieren zu können, die Libellen mit Nagellack sechs Punkte auf die Flügel gemalt bekamen.

    Die Erzählung wird düsterer

    Für die Libellen noch unangenehmer dürfte, so denke ich mir, das kleines Y-förmige Plastikgestell gewesen sein, das ihnen die ExperimentatorInnen auf den Thorax geklebt haben. Sie sagen, es sei nötig, um das Bezugssystem der fallenden Libelle bestimmen zu können. Und dann gibts noch den Magneten, der die Libelle vor dem Abwurf hält: alles zusammen wiegt ungefähr 25 mg, bei einer Libelle, die selbst gerade mal ein Viertelgramm wiegt. Andererseits, und das will ich gerne glauben, nehmen heranwachsende Libellen bis zu 50 mg am Tag zu (sie haben ja auch nur ein paar Wochen Zeit als Imago), so dass sie Massenänderungen dieser Art vielleicht wirklich nicht belasten.

    Tote Königslibelle hängt in der Luft an einem Spinnfaden

    Wie es eine Spinne hinbekommen hat, diese Libelle zu erlegen, weiß nicht nicht. Aber immerhin sind ihre Augen und Ocellen nicht zugepinselt.

    Wirklich geregt hat sich mein Mitleid – unter der Maßgabe der letzten Absätze der Geschichte mit den Wespen – aber, als es um die Frage ging, woher Libellen eigentlich ihre Orientierung kennen, woher sie also wissen, ob sie gerade auf dem Rücken fliegen oder vielleicht auf der Seite.

    Die Arbeitshypothese von Wang et al war offenbar, dass das im Wesentlichen der Sehsinn ist. Moment: „Der Sehsinn“? Nein: „Die Sehsinne“. Libellen haben nämlich gleich zwei davon, einerseits ihre Facettenaugen, dazu jedoch noch einfache, nicht abbildende Sensoren, die Ocellen. Ich sags ganz ehrlich: Ich habe das Paper vor allem gelesen, weil ich wissen wollte, wie sie den Libellen die Augen und Ocellen verbunden haben.

    Da ich das jetzt weiß, kenne ich die Stelle, an der ich als Ethikkommission nein gesagt hätte, denn die Sinne der Tiere wurden mit einem bestimmt nicht mehr entfernbarem Pamp aus schwarzer Farbe vermischt mit UV-blockierendem Kleber zugekleistert. Die Versuchsreihe mit geblendeten Libellen haben Wang und ein lediglich in den Acknowledgements erwähnter Leif Ristroph unabhängig von der ersten durchgeführt, dramatischerweise im Courant-Institut, grob als „Angewandte Mathe“ zu klassifizieren, unangenehm nah an dem, wofür ich bezahlt werde.

    „Drei kamen durch“ ist kein Rezept für gute Wissenschaft

    Diese beiden haben also vierzehn Libellen in New York City gefangen und elf weitere von KollegInnen bekommen. Und jetzt (aus dem Supplementary PDF):

    Beim Bemalen der Augen und Ocellen ist es wichtig, einen feinen Pinsel zu verwenden, damit keine Farbe auf den Hals oder Mund [des Tieres] tropft.

    Aus dieser Sammlung von Libellen haben drei die vollständigen Experimente überlebt, zwei der Gattung Perithemis tenera, eine der Gattung Libellula lydia. Dies umfasste die Tests mit normalem Sehsinn und mit blockierten Sehsinnen. Alle waren präzise [? Original: rigorous] Flieger. Mit funktionierendem Sehsinn rollten sie nach rechts. Sie überlebten auch mindestens zwei Kältephasen im Kühlschrank, eine vor dem Ankleben des Magnets, eine weitere vor dem Bemalen der Augen.

    Nennt mich angesichts dessen, was wir täglich 108-fach mit Hühnern, Schweinen, Rindern und Schafen machen, sentimental, aber wenn ein Protokoll von 25 Tieren 22 tötet, bevor das Experiment fertig ist, ist es nicht nur roh, sondern fast sicher auch Mist. Es ist praktisch unvorstellbar, dass bei so einer Selektion nicht dramatische Auswahleffekte auftreten, die jedes Ergebnis mit Fragezeichen in 72 pt Extra Bold, blinkend und rot, versehen.

    In diesem Fall war das Ergebnis übrigens, dass die Libellen ohne Ocelli etwa 30% später mit dem Drehen anfingen und anschließend nicht mehr ins Gleichgewicht kamen, bevor die Kamera voll war (ich hätte es trotzdem nett gefunden, wenn Wang wenigstens anekdotisch berichten würde, ob sie es am Schluss geschafft haben). Mit zugepinselten Facettenaugen sind die Libellen ins Gleichgewicht gekommen, wenn auch langsamer und weniger kontrolliert. Waren Ocellen und Facettenaugen blockiert, sind die Libellen häufig einfach nur runtergefallen „like leaves“.

    Was aber, wenn – ja vielleicht im Einzelfall doch existierende – nichtoptische Gleichgewichtsorgane Libellen anfälliger dafür macht, die Torturen des Experiments nicht zu überleben? Was, wenn auch die überlebenden Libellen anfangs ein nichtoptisches Gleichgewichtsorgan hatten, das aber durchs Einfrieren oder eine andere überwiegend tödliche Prozedur kaputt gegangen ist?

    Hätte ich das Vorhaben ethisch begutachten müssen, wäre ich vermutlich eingestiegen auf Abschnitt 2.3 der ergänzenden Materialien (wenn etwas in der Art im Antrag gewesen wäre), in dem es heißt, „Dragonflies perform mid-air righting maneuvers often during their prey-capture maneuvers”.

    Also… wenn die solche Manöver auch freiwillig fliegen, wäre es dann nicht besser gewesen, sie in solchen Situationen zu filmen? Klar, das wäre dann wahrscheinlich fies den Ködern gegenüber, die mensch ziemlich sicher fest positionieren (und damit ihrerseits festkleben) müsste, damit das mit dem Hochgeschwindigkeitsfilmen klappt. Aber trotzdem: Für mich wäre das das mildere Mittel gewesen.

    Außerdem hätten die Köder ja Mücken sein können.

    Nachtrag (2022-07-11)

    Meine Sorgen über ethisch grenzwertige bis unhaltbare Experimente mit Insekten liegen offenbar im wissenschaftlichen Trend. Am 10. Juli haben die Science Alerts einen Beitrag über die Schmerzwahrnehmung von Insekten veröffentlicht, der einige weitere beunruhigende Experimente anführt (etwa zu Phantomschmerzen bei Drosophilen). Immer mehr sieht es aber so aus, als fände bei vielen Insekten durchaus Schmerzverarbeitung statt, auch wenn diese im Detail etwas anders funktioniert als bei uns.

    [1]

    Das Genre „Wir drehen Tiere auf den Rücken und lassen sie fallen“ ist ausweislich des Papers beeindruckend fruchtbar. Zumindest heißt es …

  • Ach Bahn, Teil 7: Endlich ehrlich

    Mindestens seit letztem September bezahlt die Bahn das Unternehmen hcaptcha dafür, ihre KundInnen nach einer mysteriösen Systematik beim Einloggen recht regelmäßig mit minder unterhaltsamen Spielen zu belästigen: Fahrräder, Wasserflugzeuge, Busse anklicken, bis entweder die „KI“ von hcaptcha oder der/die geneigte BahnkundIn die Geduld verlieren. Gleichzeitig ging auch der Eingeloggt-bleiben-Mechanismus der Bahn-Webseite kaputt – jedenfalls verlangt sie seitdem bei jeder Buchung ein neues Login –, und so durfte ich bei im Schnitt zwei von drei Kartenkäufen stupide auf Bilder klicken. Wäre das ein Tierversuch, würde ich die Ethikkommission einschalten.

    Ich habe hier schon im letzten Oktober über diesen Mist gejammert und angemerkt, dass eine Anfrage, ob das so sein soll und wann es repariert wird, seit zwei Wochen unbearbeitet bei der Bahn lag. Seitdem habe ich immer mal wieder bei der Bahn nachgefragt und habe auch zwei oder drei Mal „Abgabeinformationen“ bekommen, die in etwa so aussahen:

    webkit-box-shadow: 0px 4px 8px #828282; /*webkit browser */-moz-box-shadow:
    0px 4px 8px #828282; /*firefox */box-shadow: 0px 4px 8px
    [... ~100 Zeilen so weiter]
    .NormaleTabelle-C{vertical-align:top;}
    .TableNormal-C{vertical-align:top;} Ihre Nachricht vom: 22. Oktober
    2021Unser Zeichen: 1-XXXXXXXXXXXX Sehr geehrter XXXXXXXXXXXXXXXXXXX,
    vielen Dank für Ihre E-Mail.  Den geschilderten Sachverhalt haben wir
    sorgfältig durchgesehen. Damit Ihr Anliegen umfassend bearbeitet und
    beantwortet wird, haben wir Ihr Schreiben heute an die zuständige
    Abteilung weitergegeben.Wir bitten Sie um Geduld und freuen uns, wenn
    Ihr Anliegen von der Fachabteilung zu Ihrer Zufriedenheit beantwortet
    werden kann.  Mit freundlichen Grüßen Ihr Team vom Kundendialog
    

    (die vergurkte Formatierung in der text/plain-Alternative der Bahn-Antworten hatte ich schon vor Monaten an die Bahn berichtet und im April etwas ausführlicher diskutiert; repariert ist natürlich nichts). Nennt mich naiv: Ich hatte wirklich ein wenig Hoffnung, dass die „Fachabteilung“ irgendwas schreibt wie „es gibt da App-Schurken, die dasunddas tun, und wir wissen uns gerade nicht anders zu helfen als mit Captchas“ oder irgendwas dergleichen.

    Das ist natürlich nicht passiert. Aber irgendeine nicht völlig inhaltsleere Antwort hätte ich schon gerne gehabt, und so habe ich trotz der Bitte um Geduld doch noch ein, zwei Mal geschrieben, wenn ich mal wieder irgendwelche Verkehrsmittel abklicken musste, damit die Bahn mir erlaubte, ihr Geld zu geben.

    Zuletzt habe ich am 24.6. Folgendes geschrieben:

    > versichern Ihnen, dass jedes Anliegen bearbeitet wird und bitten
    > Sie noch um ein wenig Geduld.  Sie erhalten eine Antwort, sobald
    > Ihr Antrag geprüft wurde.
    
    Hm... Bei drei Buchungen der letzten Zeit hatte ich wieder zwei Mal
    ein Captcha zu lösen (heute: Fahrräder).  Insbesondere hatte ich mich
    auch jedes Mal wieder neu einzuloggen.
    
    Zumindest eine Aussage darüber, ob das beabsichtigtes Verhalten ist
    oder ein Fehler wäre, finde ich, in den 10 Monaten seit meiner ersten
    Anfrage schon drin gewesen, oder?  *Soo* katastrophal kann doch das
    Anfragevolumen gar nicht sein, dass auf dieser Zeitskala niemand
    entscheiden kann, ob sich das so gehört oder ob es sich für mich
    lohnt, auf Fehlersuche zu gehen.
    
    > Link. P.S.: Für Ihre Anregungen, Lob und Kritik sind wir jederzeit
    > gern unter 030 2970 für Sie da. Sie erreichen uns rund um die Uhr
    
    Hmja... das hatte ich auch mal versucht, und die arme Mitarbeiterin
    konnte nichts tun außer mir anzubieten, mir die Nutzung einer App zu
    erklären, was beim vorliegenden Problem nun auch nur eingeschränkt
    nützlich war.
    

    Ich finde, nach Lage der Dinge ist das eine vertretbar freundliche und durchaus vernünftig formulierte Anfrage samt dem Angebot, ihre Javascript-Wüste zu debuggen, wenn das bereits vorher beschriebene Verhalten nicht beabsichtigt sein sollte.

    Was soll ich sagen? Das Ergebnis war die, so glaube ich, erste halbwegs ehrliche Antwort der Bahn, unter dem Betreff „Ihre Erfahrung mit der Deutschen Bahn“:

    -webkit-box-shadow: 0px 4px 8px #828282; /*webkit browser
    */-moz-box-shadow: 0px 4px 8px #828282; /*firefox */box-shadow: 0px
    [... >100 Zeilen so weiter wie gehabt...]
    .NormaleTabelle-C{vertical-align:top;} Ihre Nachricht vom: 24. Juni
    2022Unser Zeichen: XXXXXXXXXXXXXX Sehr geehrter XXXXXXXXXXXXXXXXXXX,
     herzlichen Dank für Ihr Schreiben vom 24. Juni 2022. Sie haben sich
    die Zeit genommen, uns von Ihren Beobachtungen und Erlebnissen zu
    berichten. Ihre Unzufriedenheit können wir gut nachempfinden. Wir
    bedauern, dass das Erlebte keinen guten Eindruck bei Ihnen
    hinterlassen hat. Unser Anspruch ist es, unsere Leistungen stetig zu
    verbessern.  Alle Mitarbeiterinnen und Mitarbeiter arbeiten täglich
    daran, die Qualität und den Service auszubauen, die Verlässlichkeit
    sicherzustellen und die Verfügbarkeit und Aktualität von Informationen
    zu optimieren. Gerne stehen wir Ihnen für Ihre Fragen, Ihr Lob und
    Ihre Kritik zur Verfügung. Wir bitten Sie jedoch um Verständnis, dass
    wir von weiteren Stellungnahmen zu diesem Thema absehen. Für alle
    Anliegen zu anderen Themen stehen wir selbstverständlich zur
    Verfügung. Mit freundlichen Grüßen Ihr Team vom Kundendialog
    

    Zwar ist das erkennbar auch nur aus vorgefertigten Phrasen zusammengeklickter Nonsens, aber immerhin: sie geben ehrlich zu, dass sie „von weiteren Stellungnahmen zu diesem Thema“ absehen werden. Nun würde ich das „weiteren“ in der Formulierung bestreiten, und ich bleibe dabei, dass das für Leute, denen ich einige tausend Euro im Jahr gebe, eine etwas überarrogante Haltung ist. Ich möchte auch darauf bestehen, dass es wirklich nicht zu viel verlangt ist, von Captchas verschont werden zu wollen. Aber es ist viel besser als „Abgabeinformationen“ zu verschicken, die nie Konsequenzen haben – und bei denen das auch keineR erwartet.

    Tja, dann also hier in die Runde: Weiß jemand, ob es Absicht ist, dass mensch auf der Bahn-Webseite vor einer Buchung ausgeloggt wird? Und weiß wer, wie mensch die Chancen in hcaptchas Lotterie verbessert, ums Verkehrsmittelklicken herumzukommen?

  • Kopfzahlen: Über Grenzregimes

    Dann und wann können Kopfzahlen ziemlich bedrückend sein. So die 50000 Toten (genauer: 48647), die die, na ja, NGO UNITED for Intercultural Action in ihrer Liste der der Opfer der Festung Europa aus den Jahren zwischen 1993 und 2022 bestimmt. Das sind nur die gut dokumentierten Fälle, und da die in die EU Einwandernden vor allem im Mittelmeer und in den Weiten des Ostens sterben, dürften zu ihnen zahlreiche undokumentierte Tote kommen. Nimmt mensch sehr konservativ eine Dunkelziffer in der Größenordnung der dokumentierten Toten an und teilt durch die 30 Jahre, ergiben sich etwas wie 3000 Tote pro Jahr in direkter Folge der EU-Migrationskontrolle.

    Zum Vergleich: an der Berliner Mauer starben, Unfälle, Grenzsoldaten und Herzinfrakte eingeschlossen, zwischen 1961 und 1989 ungefähr 400 Menschen (vgl. Wikipedia-Artikel Mauertote). In dem Sinn könnte mensch sagen, dass das EU-Grenzregime jedes Jahr so viele Menschen umbringt wie sechs Berliner Mauern während ihrer ganzen Betriebsdauer.

  • Konferenzplattformen-Shaming

    In meinem Job hatte ich über die letzten Jahre reichlich Gelegenheit, mich über verschiedene Konferenzplattformen zu ärgern – und dabei gibt es weit Schlimmeres als indico, das dank CERN die meisten Konferenzen in meiner fachlichen Umgebung organisiert und auch schon reichlich Gelegenheit zum Kopfschütteln gibt. Jetzt gerade muss ich mich mit einer „Plattform“ auseinandersetzen, die mühelos den Klick-mich-weg-Preis für die grottigste Software ihrer Klasse abräumt: whova.com

    Das fängt dort an, wo die Tagesordnungs-Links nicht etwa auf das Programm der jeweiligen Session führen, sondern blind zu einem eingebetteten Zoom-Widget und hört noch lange nicht auf, wo die ProgrammiererInnen viel Mühe darauf verwenden, dass NutzerInnen die Zoom-Raumkennung nicht rauskriegen und so sowohl den proprietären Zoom-Scheiß und die murksigen Browser-Medien (im Gegensatz zum immerhin halbwegs ordentlich funktionierenden nativen Client) haben. Das Schlechteste aus allen Welten.

    Aber über sowas kann ich mich normalerweise nicht mehr aufregen[1]. Zur Tastatur greifen musste ich erst, als ich unvorsichtigerweise dem „Leaderboard“-Link in der Sidebar der Plattform folgte. Dabei zeigte sich folgendes:

    Screenshot eines Browserfensters: Eine Rangliste mit 308900, 211900 und 23400 Punkten an den ersten drei Plätzen.

    Ich habe ein wenig anonymisierend eingegriffen, weil ich Konferenzplattformen, aber keine Konferenzen oder Personen shamen will.

    Ich wollte meinen Augen nicht trauen: Diese Plattform will die TeilnehmerInnen mit albernen „Challenges“ und künstlichen Wettbewerben steuern? Nur der Klarheit halber: Das ist eine Konferenz mit lauter MoverInnen und ShakerInnen aus dem Wissenschaftsbetrieb, die endlos „Strategien“, „Nachhaltigkeit“ und, görks, „Innovation“ durchquirlen können. Solche Leute sollen wegen Fleißbienchen ihr Verhalten ändern? Tun die das am Ende gar?

    Wenn ich das richtig verstanden habe, werden folgende Dinge belohnt:

    • Add a topic or social group (20000 Punkte)
    • Suggest meet-ups (20000 Punkte)
    • Post a question in Session Q&A (10000 Punkte)
    • Recommend a conference (6000 Punkte)
    • Post a reply (500+ Punkte – wer entscheidet über das „+“?)
    • Share an article (500+ – und was ist, wenn die Urherberrechtspolizei kommt?)
    • Join a meet-up or share a ride (? Punkte)
    • Add 3 sessions to personal agenda (300 Punkte)
    • Beef up your profile (300 Punkte)
    • Say hi to someone in the attendee list (300 Punkte)
    • Post an Ice Breaker in the community board (? Punkte)

    „Hallo sagen“? Und das wird dann belohnt? Ich will mal hoffen, dass diese whova.com-Leute weit außerhalb der DSGVO-Jurisdiktion sitzen, denn mit welchem Buchstaben von Artikel 6 (1) sich so eine Datenverarbeitung begründen ließe, könnte ich mir auch mit starken bewusstseinserweiternden Substanzen nicht vorstellen. Und: Hat wirklich eine reale Person auf die „Congratulate“-Links geklickt? Wenn ja: Was ging derweil in deren Gehirnen vor? „Es könnte ja auch meine zweijährige Tochter sein, und mit meinem Lob verbessere ich ihren Wettbewerbswillen“?

    So entsetzt ich insgesamt über diesen Großangriff auf Menschenwürde und Vernunft bin, eine Frage drängt sich mir schon auf: Wenn die beiden „Leader“ jeweils zehn Mal mehr Punkte haben als die Person auf Platz drei: Sind das Beschäftigte, deren Job es ist, auf dieser Zumutung aus dem Webbrowser rumzuklicken? Oder sind es Leute, die ihren Computern beigebracht haben, Fleißbienchen für sie zu erklicken? Wenn Letzteres: Ist das stummer Protest oder demonstrative Selbstaufgabe?

    [1]Wobei: Ich habe ja nicht viel mit Jira zu tun, aber doch genug, um die Testimonials auf https://ifuckinghatejira.com/ mit grimmer Befriedigung zu lesen. Ganz so entspannt im Hinblick auf nervige proprietäre Software wie ich gerne wäre bin ich also doch nicht.
  • Darf mensch Königinnen aufeinander hetzen?

    Nicht in meiner DLF-Lieblingssendung Forschung aktuell, sondern im Freistil vom 5.6.2022 bin ich auf den nächsten Fall meiner kleinen Sammlung von Fragen an die Ethikkommission bei Tierversuchen gestoßen. Im Groben: Ist es ok, Tiere bewusst und absichtlich gegeneinander kämpfen zu lassen? Und gibt es im Hinblick auf diese Frage Unterschiede zwischen Stieren und Regenwürmern?

    Aus meiner Sicht nicht weit von der Mitte der Wurm-Rind-Skala entfernt befinden sich die Papierwespen, für die die deutsche Wikipedia enttäuschenderweise auf die ordinäre Wespenseite weiterleitet. Speziell für die Stars dieses Posts, Polistes fuscatus – die biologische Normenklatur könnte mich der Physik abspenstig machen – gibt es immerhin einen Link auf der Feldwespen-Seite, doch hat sich noch niemand gefunden, der/die die zugehörige Seite angefangen hätte.

    Portraits von vier Wespen

    Fast noch spannender als die Frage, ob Wespen die Gesichtszeichnungen von Individuen auseinanderhalten können, finde ich ja die Frage, ob sie auch mal gut gelaunt aussehen können. Bildrechte: doi:10.1016/j.cub.2008.07.032 (bearbeitet).

    Bei Freistil klang es nun so, als habe jemand jeweils zwei Königinnen dieser Wespen miteinander bekannt gemacht; dass sie sich erkennen können, und zwar ziemlich sicher am Gesicht, ist offenbar spätestens seit den Arbeiten von Michael Sheehan und Elizabeth Tibbetts wohlbekannt. Unter den einschlägigen Artikeln, die ab den 2000er Jahren an der Uni von Michigan in Ann Arbor entstanden sind, ist viel zitiert „Specialized Face Learning Is Associated with Individual Recognition in Paper Wasps“ (viel zitiert vermutlich weil: Science 334 (2011), 1272, doi:10.1126/science.1211334). Das darin beschriebene Experiment ist erkennbar nicht das, von dem im Freistil die Rede war, wirft aber selbst eine ethische Frage auf:

    Darf mensch Königinnen elektroschocken?

    Sheehan und Tibbet gaben den Wespen nämlich eine T-förmige Flugzone, die überall Elektroschocks verabreichte, bis auf eine Stelle, die dann mit einem von einem paar von Bildern markiert war. Mithin war der Reiz, den die Leute zum Training der Wespen nutzten, die Abwesenheit von Elektroschocks, wenn es die Wespen richtig machten. Hm. Hrrmmmmmmmm! Wäre das nicht auch etwas freundlicher gegangen?

    Ausgangspunkt der Arbeit war die Vermutung, dass fuscatus-Wespen, die staatenbildend sind und deren Königinnen sich vor Gründung ihres Staates mit einem ganzen Haufen anderer Wespen raufen, zwei verschiedene Wespengesichter besser auseinanderhalten können („habe ich gegen die schon mal verloren?“) als metricus-Wespen, die meist allein leben und sich wenig prügeln. Um ein wenig sicherer zu sein bei der Frage, was da eigentlich beobachtet wird, haben Sheehan und Tibbetts auch Versuchstiere („healthy wild-caught adult female[s]“) auf Raupen (die die Wespen gerne essen), geometrische Zeichen (Kreuze, Dreiecke und sowas) und Wespenköpfe ohne Antennen trainiert.

    Das Ergebnis: Wespengesichter mit Antennen haben ausgelernte fuscatus-Wespen in 80% der Fälle vorm Elektroschock bewahrt (wobei der Nulleffekt 50% wäre), und sie haben die Gesichter schneller gelernt als die an sich viel einfacheren Zeichen. Waren die Antennen rausretuschiert, hat das Lernen länger gedauert, und bei 70% richtiger Wahl war Schluss.

    Wie viel Ausdauer braucht es für 10'000 Versuchsläufe?

    Und von wegen „Erst kommt das Fressen, dann kommt die Moral“: Wenn der Hinweis aus verschiedenen Raupensorten bestand, haben die Wespen nur in 60% der Fälle die trainierte Raupe gefunden, also fast nicht häufiger als durch Zufall zu erwarten. Und etwa genauso gut wie die einsiedlerischen metricus-Wespen, die mit den Gesichtern ihrer Artgenossinnen gar nichts anfangen konnten.

    Fleißbienchen am Rande: grob überschlagen müssen Sheehan und Tebitt die Wespen gegen 10'000 Mal haben fliegen lassen. Ich mag mir gar nicht vorstellen, wie viel Ausdauer es dafür gebraucht haben mag. Auf beiden Seiten. Aufgrund vorheriger Interaktionen mit Wespen vermute ich jedoch fast, dass für diese der repetetive Charakter der Unternehmung weniger problematisch gewesen sein dürfte. Ach ja, und ich würde gerne wissen, wie viele Stiche sich die beiden Menschen während der Arbeiten eingefangen haben.

    Wie ist es mit Kämpfen?

    Sheehan, der inzwischen an die Cornell-Universität in New York gewechselt ist, hatte schon zuvor (und hat noch weiter) mit den Wespen gearbeitet und berichtet darüber zum Beispiel in Current Biology 18 (2008), Nr. 18, R851 (doi:10.1016/j.cub.2008.07.032), „Robust long-term social memories in a paper wasp“. Für diese Studie haben die Leute ebenfalls einen Haufen fuscatus-Papierwespen gefangen, dieses Mal aber gezielt Begegnungen herbeigeführt. Dabei haben sie an Tag 0, 6 und 8 jeweils Wespen zusammengeführt, die sich nicht kannten, am siebten Tag dagegen nochmal die von Tag 0 vorbeigeschickt. Das fand ich schon mal ein recht cleveres Design: Wenn sich die Rauflustigkeit der Wespen generell geändert hätte, wäre das durch die Kontrollen an den Tagen sechs und acht aufgefallen.

    Aber das führt auf die Eingangsfrage: Ist diese Sorte Experiment nicht ziemlich eng verwandt mit Hahnenkämpfen, bei denen zwei Tiere, die, wären sie nicht in menschlicher Gefangenschaft, vermutlich friedlich vor sich hingelebt hätten, künstlich dazu gebracht werden, aufeinander einzuhacken? Wäre ich in einer Ethikkommission, müsste ich zumindest mal etwas nachdenken, ob ich Königinnenkämpfe eigentlich absegnen möchte, auch wenn es hier nicht um das Gaudium einer blutrünstigen Menge, sondern um die Förderung der Wissenschaft geht.

    Unter Bekannten doppelt so viele Begegnungen ohne Gewalt

    Immerhin scheinen die Kämpfe der Wespen relativ zivilisiert abzulaufen. Zumindest berichten Sheehan et al nicht davon, dass die Begegnungen an Tag 7 mal hätten ausfallen müssen, weil die Besucherinnen von Tag 0 inzwischen vielleicht totgestochen worden wären (Disclaimer: ich habe die Zusatzdaten nicht auf solche Vorkommnisse hin durchgesehen, denn ich war ja eigentlich auf der Suche nach etwas anderem).

    Das Ergebnis ist wieder recht beeindruckend; kannte sich ein Wespenpaar, gingen offenbar doppelt so viele Begegnungen ohne Gewalt aus wie andernfalls.

    Meine eingestandenermaßen oberflächliche Literaturrecherche hat aber leider kein Paper geliefert, bei dem jemand Wespen geschminkt hätte; ich hatte ich die Geschichte aus dem Freistil nämlich so verstanden, dass jemand zwei Wespen bekannt gemacht hat und dann das Gesicht einer der beiden verändert, um zu prüfen, ob es wirklich das ist, an das sich die Wespen erinnern und nicht etwa, sagen wir, der Geruch oder die Melodie des Summens. Auch wenn das Elektroschockexperiment das sehr nahelegt: Ich finde es völlig plausibel, so ein Schminkexperiment zu machen. Wer die dazugehörige Studie findet: das Antwortfomular gehört völlig euch.

    Empathietraining

    Wer die ganze Sendung hört, dürfte auf ein anderes ethisches Problem stoßen, eines, das mir, der ich nicht in einer Ethikkommission sitze, deutlich mehr Sorgen macht: Im O-Ton wird eingespielt, wie jemand eine Drosophile erst mit Wachs festklebt und dann immer weiter fesselt. „Drosophile“: Ihr merkt, ich habe rein emotional ein spezielles Verhaltnis zu Fruchtfliegen, weil ich in ihnen, die wie ich Obst nicht widerstehen können – je süßer, je besser – ganz entfernt Geistesverwandte sehe.

    Andererseits: Wenn ich den Kompostmüll leere, nehme ich, ehrlich gesagt, keine Rücksicht darauf, wie viele von ihnen ich dabei wohl zerquetsche. Die insgesamt vergleichbar menschenähnlichen Mücken und Zecken töte ich sogar gezielt, wenn ich kann. Und nun habe ich diesen Bericht gehört und musste mich sehr beherrschen, um mich nicht zu empören. Das mag ein wenig zu tun haben mit dem völlig überflüssigen Gag, Enrico Caruso durch das Drosophilenohr aufzunehmen, denn Folter[1] ist nochmal schlimmer, wenn irgendeine Sorte, ach ja, „Humor“ mitschwingt.

    Aber auch ohne das: Ist es verlogen, wenn ich mich über die Misshandlung von Lebewesen empöre, die ich andererseits ohne große Reue und ganz nebenbei – oder gar gezielt – töte?. Auf der anderen Seite will mensch, so glaube ich, diese Anflüge von Empathie auch nicht wirklich bekämpfen. Die Charakterisierung der Feinde als Ratten und Schmeißfliegen (der Namenspate des Münchner Flughafens, Franz Josef Strauß, war Meister dieses Genres), als Tiere also, mit denen Empathie zu haben wirklich schwerfällt, wenn sie sich erstmal ordentlich vermehrt haben, ist ein recht konstantes Feature so gut wie aller Kriege und anderer Massenmorde der Geschichte.

    Mit diesem Gedanken bin ich nach der Freistil-Sendung auf folgendes Fazit gekommen: Selbst wenn es nicht der Tiere selbst wegen geboten sein sollte, schon ganz speziezistische Humanität gebietet es, diese Sorte von Mitleid mit jeder Kreatur zu hegen und nicht zu kritisieren. Und vor den Feldzügen gegen die Nacktschnecken wenigstens noch ein wenig mit sich zu ringen.

    [1]Ja, ich behaupte, es ist Folter, wenn mensch so ein Lebewesen bei lebendigem Leibe immer weiter eingießt, bis es (nehme ich an) erstickt, weil die Tracheen alle dicht sind.
  • Zum Glück ist das nicht Hollywood

    Die ziemlich hörenswerte Miniserie über Pilze und Menschen in der Deutschlandfunk-Sendung Wissenschaft im Brennpunkt (Teil 1, Teil 2) endet mit folgenden Worten von (ich glaube) Oliver Kurzai von der Uni Würzburg:

    Deswegen müssen wir glaub ich nicht damit rechnen, dass wir in absehbarer Zeit tasächlich, ich sag mal, eine Killerpilz-Pandemie kriegen, die auch den normalen, gesunden Menschen bedroht.

    Wenn unsere Realität irgendeine Ähnlichkeit hat mit einem zünftigen Katastrophenfilm, wisst ihr, was als Nächstes passieren wird.

  • (Un)verstandene Infektionsdynamik

    Ich habe vorhin einen Beitrag zu den Wirkungen nicht-pharmazeutischer Maßnahmen gehört, der in der Deutschlandfunk-Sendung Forschung aktuell am dritten Juni lief. Darin hieß es:

    Vielleicht sind die vielen Einflussfaktoren ein Grund, warum auf diesem Gebiet überhaupt wenig geforscht wird. Die Bessi-Collaboration zur Erforschung sozialer, Umwelt- und Verhaltens-Pandemiemaßnahmen zählt aktuell nur 18 veröffentlichte Studien aus diesem Bereich, aber 974 zu Impfstoffen oder Medikamenten.

    Das hat mich daran erinnert, dass ich spätestens seit Oktober 2021 eine ziemlich grundsätzliche Lücke bei unserem Verständnis der Epidemiologie von SARS-2 gewittert habe, und zwar ganz unabhängig von meinen misslungenen Vorhersagen im letzten Herbst. Ich habe nämlich bis genau heute aufgrund von, Fanfare, Unabhängigkeitsargumenten für sehr unplausibel gehalten, dass sich die Varianten gegenseitig verdrängen. Lasst mich spoilern: Mein Instinkt, dass da was nicht stimmen kann, war falsch, Mensch soll einfach nie die Exponentialfunktion unterschätzen.

    Aber langsam. Zunächst habe mir die R-Wert-Schätzungen des RKI vorgenommen. Zur Erinnerung: Der R-Wert soll sagen, wie viele Leute einE InfizierteR zu einer bestimmten Zeit im Mittel ansteckt; ist er konstant größer als eins, wächst die Inzidenz exponentiell, ist er konstant kleiner als eins, schrumpft sie exponentiell.

    Ich möchte auf der Basis der R-Werte den Pandemieverlauf nacherzählen, um der Variantenverdrängung auf die Spur zu kommen. Dabei nutze dabei die Kurvenfarbe als Indikator für die geschätzte Inzidenz – beachtet, dass sowohl die Skalen auf dieser Hilfsachse als auch auf der Ordinate von Bild zu Bild drastisch verschieden sind.

    Plausibler Anfang

    Dabei habe ich mir nacheinander ein paar Phasen vorgenommen. Von März bis Juli 2020 konnte mich mir alles prima zusammenreimen:

    Kurve mit einem Peak von über drei, die dann Richtung eins abfällt.

    Fig 1: R-Werte der ersten Welle

    Die unkontrollierte Infektion lief anfangs mit dem geschätzten R0 (also: wie groß ist das R ganz ohne Maßnahmen und Immunität?) der Wuhan-Variante (im Winter etwas wie 3) los, dann griffen die Maßnahmen, und wie sie nacheinander so griffen, fiel auch der R-Wert.

    Ich war damals mit dieser Interpretation soweit glücklich, auch wenn Leute immer mal wieder an den Zeitskalen rumgemäkelt haben: Reagiert das nicht schon vor den Maßnahmen? Hätte das nicht schneller auf Schul- und Betriebsschließungen reagieren müssen? Zu letzterem Punkt zumindest ist einzuwenden, dass es einerseits zwei, drei Wochen gedauert hat, bis die Leute wirklich im Coronamodus waren. Andererseits sind für die Mehrzahl der Fälle auch nur Melde-, nicht aber Infektionszeitpunkte bekannt. Da diese ohne Weiteres um ein oder zwei Wochen auseinanderliegen können, wäre selbst eine scharfe Stufe in R in den RKI-Schätzungen weich ausgeschmiert; ein weiteres Beispiel übrigens für die Gefahren von Big Data.

    Ein merkwürdiger Balanceakt

    Gegen Ende des ersten Coronasommers kam mir aber schon komisch vor, wie sehr sich das effektive R immer ziemlich genau um die Eins herum hielt. Bei sowas Kitzligem wie einem Infektionsprozess, der davon lebt, dass sich immer mal wieder ein ganzer Haufen Leute ansteckt, ist es alles andere als einfach, diese Sorte von Gleichgewicht (es stecken sich in jeder Zeiteinheit ungefähr genauso viele Leute an wie gesund werden) zu halten – die Überdispersion der Wuhan-Variante soll was wie 0.1 gewesen sein, so dass vermutlich überhaupt nur ein oder zwei von zehn Infizierten zur Ausbreitung der Krankheit beitrugen (dann aber auch gleich richtig, also mit mehreren Angesteckten).

    Unter diesen Umständen einen R-Wert von um die eins zu haben, ist ein Balanceakt ganz ähnlich der Steuerung eines AKW (das zudem nicht mit der Überdispersion zu kämpfen hat): mach ein bisschen zu wenig und die Infektion stirbt rapide aus (der Reaktor wird kalt); mach ein bisschen zu viel und du bist gleich wieder bei enormen Zahlen (der Reaktor geht durch). Dennoch hat sich der R-Wert (abgesehen vom Tönnies-Zacken Mitte Juni, der ganz gut demonstriert, was ich mit „kitzlig“ meine) im Sommer doch recht gut rund um 1 bewegt:

    Kurve, die um Eins rumzittert

    Fig 2: R-Werte im Sommer 2022

    Was hat R so (relativ) fein geregelt? Sind die Leute in Zeiten ansteigender R-Werte wirklich vorsichtiger geworden? Und waren sie unvorsichtiger, wenn die R-Werte niedrig waren? Erschwerend im Hinblick auf so eine Regelung kamen zumindest im Juli und August nennenswert viele Infektionen nicht durch Reproduktion im Land zustande, sondern kamen mit Rückreisenden aus Gegenden mit höheren Inzidenzen. Wie das genau lief, ist aber wieder schwierig zu quantifizieren.

    Mein erstes kleines Rätsel wäre also, warum die Inzidenz im Sommer 2020 über ein paar Monate hinweg im Wesentlichen konstant war. Im Herbst 2020 schien mir das eher wie eine Anekdote, zumal es recht erwartbar weiterging:

    Kurve mit einigen Peaks

    Fig 3: R-Werte der zweiten und dritten Wellen

    Die hohen R-Werte im Oktober sind überaus zwanglos durch Schulen, Betriebe und ganz kurz auch Unis mit allenfalls lockeren Maßnahmen bei lausig werdendem Wetter zu erklären. Der Abfall zum November hin wäre dann der „Lockdown Light“. Wieder mag mensch sich fragen, warum der Abstieg schon Mitte Oktober einsetzte, während der Lockdown Light ja erst Anfang November in Kraft trat, aber seis drum. Der nächste Buckel, hier schon in rot, weil mit für damalige Zeiten enormen Inzidenzen einhergehend, dürfte ganz grob Weihnachtsmärkte (Aufstieg) und deren Schließung (Abstieg; ok, es hat auch noch einige weitere Lockdown-Verstärkungen gegeben) im Dezember 2020 reflektieren.

    Verdrängt oder nicht verdrängt?

    Dass bei gleichbleibenden Maßnahmen der R-Wert ab Mitte Februar stieg, habe auch ich mir damals dadurch erklärt, dass die Alpha-Variante infektöser ist. Richtig schöne Grafiken dazu gibt es erst später, so etwa hier aus dem RKI-Wochenbericht vom 7.10 (der gerade nicht im RKI-Archiv zu finden ist):

    Farbig markierte Anteile verschiedener SARS-2-Varianten, die sich offenbar verdrängen

    Fig 4: Anteile der verschiedenen Varianten vom Oktober 2021 (Rechte: RKI)

    Während der, sagen wir, ersten 13 Kalenderwochen des Jahres 2021 hat also Alpha den Wuhan-Typ im Wesentlichen kompett, nun ja, verdrängt. Und das schien mir bis jezt sehr unplausibel. Anschaulich gesprochen nämlich kann Alpha den Wuhan-Typ nur dann verdrängen, wenn die Varianten „sich sehen“, also überhaupt nennenswert viele Menschen, die der Wuhan-Typ infizieren möchte, schon zuvor Alpha gehabt hätten[1].

    Das war im Frühling 2021 ganz klar nicht so. Der RKI-Bericht vom 16.4.2021 (in dem sich übrigens auch die damaligen Gedanken zu den Varianten spiegeln) spricht von rund 3 Millionen Infizierten. Plausible Dunkelziffern werden den Anteil der bereits mit SARS-2 (in der Regel noch nicht mal Alpha) Infizierten kaum über 10% heben. Die Wuhan-Variante kann also im Wesentlichen nichts von Alpha gesehen haben, und damit kann sie auch nicht verdrängt worden sein[2].

    Mit einem zweiten Blick stellt sich heraus, dass es das auch nicht brauchte, denn unter den recht drakonischen Maßnahmen vom Januar 2021 – wir reden hier von der Zeit nächtlicher Ausgangssperren – hatte der Wuhan-Typ so in etwa einen R-Wert von 0.9 (das lese ich jedenfalls aus Fig. 3). Nun rechnet(e) das RKI den R-Wert in etwa so, dass er das Verhältnis der Infektionen in einem Viertageszeitraum zum vorherigen Viertageszeitraum angibt; der Gedanke ist, dass es (die „Serienlänge”) von einer Infektion bis zur Ansteckung in der nächsten Generation bei SARS-2-Wuhan sowas wie eben die vier Tage dauern sollte[3].

    Unter der angesichts konstanter Maßnahmen wenigstens plausiblen Annahme eines konstanten R-Werts (gegen Ende des Zeitraums mag er wegen Wetter sogar noch weiter gefallen sein), kann mensch ausrechnen, dass nach 13 Wochen vom Wuhan-Typ nur noch

    0.913⋅7 ⁄ 4 ≈ 10%

    übrig waren, und weil bei hinreichend niedrigen Inzidenzen der Bestand eines im Wesentlichen ausbruchsgetriebenen Erregers wie der Wuhan-Variante eh schon prekär ist: Eigentlich reicht das schon, um das praktische Verschwinden der Wuhan-Variante ganz ohne Verdrängung durch Alpha zu erklären.

    Zero Covid vs. die vierte Welle

    Wenn das die Erklärung ist, wäre das in gewisser Weise eine gute Nachricht für die Zero Covid-Fraktion: Wir haben Corona schon mal ausgerottet, inzwischen sogar drei Mal, nämlich den Wuhan-Typ, Alpha und (wahrscheinlich) Delta. Die „Maßnahmen“ für die jeweils infektiösere Variante haben offenbar ausgereicht, ihre Vorgänger (praktisch) vollständig auszurotten. Damit wäre zwar immer noch nicht das Langfrist-Problem gelöst – denn global wird SARS-2 sicher nicht verschwinden –, so dass ich nach wie vor eifrig gegen Zero Covid argumentieren würde, aber ein lokales Ende von Corona haben wir offenbar schon mehrfach hinbekommen.

    Gehen wir weiter in der Zeit:

    Bunte Linie mit zwei ausgeprägten zweigipfeligen Höckern

    Fig 5: R-Werte während des Anlaufs zur vierten Welle.

    Im Anlauf zur vierten Welle wird es unübersichtlich, weil nennenswert viele Menschen geimpft waren. Es mag sein, dass der Wuhan-Typ etwas empfindlicher auf die Impfung reagiert als Alpha, so dass es vielleicht glaubhaft ist, dass der R-Wert des Wuhan-Typs nicht wieder auf das „gut 1“ aus dem Sommer 2020 zurückgeschnappt ist, nachdem die Beschränkungen aus dem Winter 20/21 nach und nach wegfielen; dann wäre zumindest klar, warum der Wuhan-Typ nicht wiederkam.

    Bei Alpha und Delta liegen die Verhältnisse wahrscheinlich komplizierter. Der Umschlag von Alpha auf Delta war noch schneller als der von Wuhan auf Alpha; abgeschätzt aus Fig. 4 vielleicht zwischen den Kalenderwochen 21 und 27. Davor, also im Juni, lag der R-Wert um 0.8, angesichts relativ entspannter Verhältnisse zu diesem Zeitpunkt vermutlich bereits eher durch Impfung als durch nichtpharamzeutische Maßnahmen bedingt. Sechs Wochen R = 0.8 bringen die Inzidenzen, immer noch unter der Annahme der Unabhängigkeit der konkurrierenden Infektionsprozesse, wiederum runter auf

    0.86⋅7 ⁄ 4 ≈ 10%

    – das Aussterben von Alpha kommt also erneut so in etwa hin, wenn …

  • Aus der Seele gesprochen

    Selten hat mir jemand so aus der Seele gesprochen wie Susanne Fischer in ihrer Glosse 9-Euro-Reporter in der taz von gestern, in der sie nach etwas Spott über die verbreitete Berichterstattung in Sachen 9-Euro-Ticket – anscheinend größtenteils geschrieben von Menschen, die schon lange keine Züge mehr von innen gesehen haben – ihre eigene Situation beschreibt:

    Der größte Mehrwert für mich ist, dass ich neuerdings in fremden Städten den ÖPNV nutzen kann, ohne vorher ein mehrstündiges Tarifstudium zu absolvieren – mit praktischer Prüfung an Automaten, deren Software vom sadistischen Andi-Scheuer-Fanclub programmiert wurde.

    Ja! Ja! Ja! Ich kann mich nicht erinnern, wann ein Satz zuletzt so in Resonanz mit meinen eigenen Gedanken stand.

  • Ach Bahn, Teil 6: Vernünftiges HTML ist möglich

    Über absurd komplexe Captive Portals in öffentlichen WLANs, die insbesondere die Ausführung von Unmengen von Javascript erfordern – was besonders kitzlig ist, da in der Situation der Accesspunkt der ultimative Man-in-the-middle ist –, habe ich mich hier schon öfter geärgert. Was wäre so verkehrt an einer einfachen HTML-Seite, die kurz die Regeln erläutert, wenns dringend sein muss, noch ein Häkchen verlangt und sich ansonsten auf <input type="submit" value="Connect"/> (für Interoperabilität; ich selbst hätte auch nichts gegen ein <button>Connect</button>) beschränkt? Nebennutzen: Sowas abzuschicken wäre leicht automatisierbar[1].

    Stellt sich heraus: Wer auch immer diesen Mist bastelt, könnte auch anders. Jetzt gerade fahre ich – zum ersten Mal mit 9-Euro-Ticket[2] – in einem S-Bahn-Zug der Bahn und bin mit einem WIFI@DB-Netz verbunden. Beim Versuch, die nötigen Beschwörungen fürs Internet zu vollführen, kam eine ganz schlichte Meldung: „We are offline“, so schlicht, dass ich mir gleich den Quelltext angucken musste, und siehe da (ich habe ein paar Leerzeilen gekürzt):

    <html lang="de"><head>
        <meta http-equiv="Cache-Control" content="no-store">
        <meta http-equiv="Cache-Control" content="no-cache">
        <meta http-equiv="Pragma" content="no-cache">
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>SRN Startseite</title>
        <link rel="stylesheet" href="scss/styles.css">
    </head>
    <body>
    We are offline...
    </body></html>
    

    Gut: Das Übertöten bei der Cache-Kontrolle ist nicht optimal, und auch nicht, dass englischer Text als Deutsch ausgezeichnet ist; generell wäre ich zwecks einfacher Parsbarkeit auch immer für XHTML zu haben, und wenn sie schon UTF-8 als Zeichensatz haben, sollten sie aus typografischen Gründen statt ... lieber … (alias U+2026) schreiben – aber anonsten: So kann modernes HTML („modern“ wg. des dämlichen viewport-metas) auch aussehen.

    Ach so: Das stylesheet gibt natürlich ein 404, und würde ich die Kennung meiner Netzwerkkarte nicht ohnehin auswürfeln, wäre nicht amüsiert, dass die URL, unter der der Kram ausgeliefert wird, genau diese Kennung enthält, aber verglichen mit den üblichen Javascript-Wüsten wäre das wirklich ein Fortschritt. Warum gehen Captive Portals nicht immer so?

    Wobei: ganz so einfach ist das natürlich auch nicht. Zieht mensch nämlich einfach irgendeine Webseite, kommt als Request Body des Redirects auf die obige schlichte Seite sowas hier:

    <HTML><BODY><H2>Browser error!</H2>Browser does not support redirects!</BODY>
    <!--
    <?xml version="1.0" encoding="UTF-8"?>
    <WISPAccessGatewayParam
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:noNamespaceSchemaLocation="http://www.wballiance.net/wispr_2_0.xsd">
    <Redirect>
    <MessageType>100</MessageType>
    <ResponseCode>0</ResponseCode>
    <VersionHigh>2.0</VersionHigh>
    <VersionLow>1.0</VersionLow>
    <AccessProcedure>1.0</AccessProcedure>
    <AccessLocation>CDATA[[isocc=,cc=,ac=,network=HOTSPLOTS,]]</AccessLocation>
    <LocationName>CDATA[[94800463058]]</LocationName>
    <LoginURL>https://www.hotsplots.de/auth/login.php?res=wispr&amp;uamip=192.168.44.1&amp;uamport=80&amp;challenge=7e9b9ebbcbaa23dcee39cd94b42695fd</LoginURL>
    <AbortLoginURL>http://192.168.44.1:80/abort</AbortLoginURL>
    <EAPMsg>AQEABQE=</EAPMsg>
    </Redirect>
    </WISPAccessGatewayParam>
    -->
    </HTML>
    

    Heilige Scheiße – HTML-Tags in Großbuchstaben und in einen HTML-Kommentar eingebettetes XML: da waren klare SpezialexpertInnen am Werk. Wenn die Leute, die sich das ausgedacht haben, das hier lesen: Ich mache zum Sonderpreis von 9 Euro eine Fortbildung in XML Namespaces und wie sie für so Zeug einzusetzen wären.

    Ansonsten sollte ich wahrscheinlich mal bei http://www.wballiance.net vorbeischauen; vielleicht lässt sich mit diesem Zeug ja irgendwas basteln, das die lästigen Vorschaltseiten, die sowas ausliefern, ganz ohne Javascript webzaubert?

    Nur nicht gerade jetzt, denn: We are offline....

    [1]Also gut: Was wäre verkehrt daran, den Captive-Portal-Scheiß ganz zu lassen?
    [2]Ich würde gerne sagen, dass ich extra zu dessen Erwerb zum Bahnhof Mainz Römisches Theater gefahren bin, denn das ist schon einer der schönsten Bahnhofsnamen der Republik, aber das wäre eine Lüge.
  • Entering Wild Unicode in Vim

    Screenshot of a vi session showing the unicode PILE OF POO symbol

    This is what this post is about: being able to type PILE OF POO (a.k.a. U+1f4a9) in vim in…tuitively. For certain notions of intuition.

    As a veteran of writing texts in TeX, I've long tended to not bother with “interesting” characters (like the quotes I've just used, or the plethora of funny characters one has for writing math) in non-TeX texts. That is, until I started writing a lot of material not (directly) formatted using TeX, as for instance this post. And until reasonably robust Unicode tooling was widely available.[1]

    I enter most of my text in vim, and once I decided I wanted the exotic unicode characters I experimented with various ways to marry unicode and vim. What I ended up doing is somewhat inspired by TeX, where one enters funny characters through macros: a backslash and a few reasonably suggestive letters, as perhaps \sigma for σ or \heartsuite for ❤.

    What lets me do a similar thing in vim are interactive mode abbreviations and unicode escapes. I've found the abbreviations do not inconvenience me otherwise if I conclude them with a slash. And so I now have quite a few definitions like:

    iab <expr> scissors/ "\u2702"
    

    in my ~/.vimrc. This lets me type scissors/␣ to get ✂ (and blank/␣ to get the visible blank after the scissors). This works reasonably well for me; it's only when the abbreviation is not bounded by blanks that I have have to briefly leave the insert mode to make sure that vim recognises the abbreviation. For instance y▶y – where the abbreviation needs to directly abut the letter – I have to type as y<ESC>aarrleft/ <BACKSPACE>y. I don't know about people who didn't grow up with TeX, but in my world such a thing passes as really natural, and for me it easily beats the multibyte keymaps that, I think, the vim authors would recommend here.

    And how do I figure out the unicode code points (i.e., the stuff after the \u)? Well, there is the unicode(1) command (Debian package unicode), which sounds cool but in reality only points me to what I'm looking for every other time or so: It's hard to come up with good words to look for characters the name of which one doesn't know.

    In practice, most of the time I look at the various code blocks linked from the Wikipedia unicode page. Going by their titles in my experience is a good way to optically hunt for glyphs I'm looking for. The result is the following abbreviations – if you make interesting new ones, do send them in and I will update this list:

    iab <expr> deg/ "\u00B0"
    iab <expr> pm/ "\u00B1"
    iab <expr> squared/ "\u00B2"
    iab <expr> cubed/ "\u00B3"
    iab <expr> times/ "\u00D7"
    iab <expr> half/ "\u00BD"
    iab <expr> acirc/ "\u00E2"
    iab <expr> egrave/ "\u00E8"
    iab <expr> idia/ "\u00EF"
    iab <expr> subtwo/ "\u2082"
    iab <expr> euro/ "\u20ac"
    iab <expr> trademark/ "\u2122"
    iab <expr> heart/ "\u2764"
    iab <expr> smile/ "\u263A"
    iab <expr> arrow/ "\u2192"
    iab <expr> emptyset/ "\u2205"
    iab <expr> bullet/ "\u2022"
    iab <expr> intersects/ "\u2229"
    iab <expr> scissors/ "\u2702"
    iab <expr> umbrella/ "\u2614"
    iab <expr> peace/ "\u262e"
    iab <expr> point/ "\u261b"
    iab <expr> dots/ "\u2026"
    iab <expr> mdash/ "\u2014"
    iab <expr> sum/ "\u2211"
    iab <expr> sqrt/ "\u221a"
    iab <expr> approx/ "\u2248"
    iab <expr> neq/ "\u2260"
    iab <expr> radio/ "\u2622"
    iab <expr> hazmat/ "\u2623"
    iab <expr> pick/ "\u26cf"
    iab <expr> eject/ "\u23cf"
    iab <expr> check/ "\u2713"
    iab <expr> alpha/ "\u03b1"
    iab <expr> beta/ "\u03b2"
    iab <expr> gamma/ "\u03b3"
    iab <expr> delta/ "\u03b4"
    iab <expr> epsilon/ "\u03b5"
    iab <expr> zeta/ "\u03b6"
    iab <expr> eta/ "\u03b7"
    iab <expr> theta/ "\u03b8"
    iab <expr> kappa/ "\u03ba"
    iab <expr> lambda/ "\u03bb"
    iab <expr> mu/ "\u03bc"
    iab <expr> nu/ "\u03bd"
    iab <expr> Delta/ "\u0394"
    iab <expr> Xi/ "\u039e"
    iab <expr> pi/ "\u03c0"
    iab <expr> rho/ "\u03c1"
    iab <expr> sigma/ "\u03c3"
    iab <expr> chi/ "\u03c7"
    iab <expr> supp/ "\u207A"
    iab <expr> supm/ "\u207B"
    iab <expr> tripleeq/ "\u2261"
    iab <expr> cdot/ "\u22c5"
    iab <expr> powern/ "\u207f"
    iab <expr> chevopen/ "»"
    iab <expr> chevclose/ "«"
    iab <expr> element/ "\u2208"
    iab <expr> notelement/ "\u2209"
    iab <expr> subset/ "\u2282"
    iab <expr> superset/ "\u2283"
    iab <expr> blank/ "\u2423"
    iab <expr> block/ "\u2588"
    iab <expr> achtel/ "\u266a"
    iab <expr> clef/ "\u1d11e"
    iab <expr> arrleft/ "\u25B6"
    iab <expr> arrdown/ "\u25BC"
    iab <expr> poop/ "\U1f4a9"
    

    One last thing one should know: quite a few interesting unicode characters are outside of what's known as the „Basic Multilingual Plane“, which is a pompous way to say: within the first 65536 code points. That in particular includes all the emoijs (please don't torture me with those), but also the timeless PILE OF POO character, the rendering of which in the Hack font is shown in the opening image. Addressing codepoints above 65536 needs more than four hex characters, and to make vim grok those, you need to say \U rather than \u.

    [1]Which, I give you, has been the case as of about 10 years ago, so it's not like all this is bleeding-edge.
  • Aus der Geschichte lernen: Chios

    Landschaftsfoto: Felsen mit einzelnen Bäumen drin

    Für diese Landschaft haben sich Menschen 1822 in großen Mengen massakriert: Das Innere von Chios. CC-BY-SA FrontierNG

    Am 11. April gedachte das DLF-Kalenderblatt dem Massaker von Chios, das vor 200 Jahren den Höhe- oder eher Tiefpunkt einer jedenfalls rückblickend betrachtet völlig durchgeknallten Verkettung von Gewalttaten und Vergeltungsaktionen markierte.

    Ich muss gestehen, dass mir die ganze Geschichte völlig neu war; in der Kürze beim DLF klang es für mich zunächst so, als habe der osmanische Sultan die Bevölkerung der reichen Ägaisinsel Chios ausradieren lassen, weil sie gegen ihre manifesten (ökonomischen) Interessen mit Aufständischen paktiert hatte, die wiederum zuvor andere Untertanen des Sultans massakriert hatten.

    Mir klang das nach einem guten Beispiel, wie das allseite Nachgeben gegenüber der autoritären Versuchung zu einer Spirale von Bestialität führt, bei der jede Seite die moralische Berechtigung, wenn nicht gar Verpflichtung fühlt, den Feind zu töten. Da der Abstand den Blick schärfen mag, der bei analogen Ereignissen in der Nähe derzeit ganz offenbar vielfach getrübt ist, habe ich mir heute den zugehörigen Wikipedia-Artikel zu Gemüte geführt.

    Die Vorgeschichte

    Sehr bemerkenswert fand ich schon mal, dass die Wikipedia für die Vorgeschichte auf den Frieden von Küçük Kaynarca verweist, den 1774 das osmanische Reich und Russland geschlossen hatten. Bemerkenswert ist das einerseits, weil es damals schon um die jetzt gerade wieder umstrittenen Gebiete ging: Russland hat sich in diesem Vertrag den Süden der späteren Ukraine einverleibt, die Krim – die für zehn Jahre noch als autonomes Khanat weiterexistierte – folgte 1783. Nach allem, was danach kam, von Krimkrieg über die Verheerungen des zweiten Weltkriegs bis zum jetzigen Stellvertreterkrieg: Was für eine geschundene Gegend.

    Andererseits war diese Niederlage des osmanischen Sultans offenbar ein Segen für jedenfalls nennenswerte Teile seiner Untertanenschaft. In den Worten der Wikipedia:

    Wie im Rest Griechenlands wuchs nach dem Friedensvertrag von Kutchuk-Kaïnardji 1774 der Wohlstand auf Chios.

    Das bezieht sich, wie gesagt, auf die Verliererseite des Russisch-Türkischen Krieges von 1768-1774. Erneut zeigt sich die alte Weisheit, dass es weit schlimmer ist, einen Krieg zu führen als einen zu verlieren.

    Das Verhängnis von Chios begann indes, auch recht typisch, mit Patrioten, und zwar in diesem Fall mit griechischen. Diese nämlich legten 1821 einen zünftigen Aufstand auf der Peloponnes hin, als viele der dortigen (osmanischen) Besatzungssoldaten andernorts gebraucht wurden, nämlich für Kämpfe innerhalb der osmanischen Elite und weil, ganz modern, russische Truppen in das noch osmanische Moldawien eingefallen waren.

    Der zünftige Aufstand schlug erwartungsgemäß schnell in Barbarei um. Die tapferen und frommen Freiheitskämpfer eroberten^Wbefreiten im Oktober 1821 die Provinzhauptstadt Tripoli (nicht zu verwechseln mit dem zuerst durch unsere Flugverbotszone befreiten und dann seit inzwischen einem Jahrzehnt glühend umkämpften libyschen Tripolis) und metzelten gegen 8000 der verbliebenen BewohnerInnen nieder – schon während der Belagerung hatte sich die Bevölkerung auf etwa 15000 halbiert. Immerhin sind wohl nicht alle anderen 15000 dem Krieg zum Opfer gefallen, einige haben rechtzeitig fliehen können.

    Eine weitere Weisheit: Wenn es nach Krieg riecht, verpiss dich rechtzeitig. In der jungen Welt gab es am Wochenende eine Geschichte, wie es ganz aktuell zugeht, wenn du das mit dem „rechtzeitig“ nicht hinbekommst.

    In Chios

    Aber dies ist ja eine Geschichte über Chios, eine vor 1821 in weitgehender christlicher Autonomie von achtzehn, großartiger Titel, Demogeronten für den Sultan regierten Insel nicht weit vor der Küste der heutigen Türkei.

    Die DLF-Erzählung einer durch Mastix-Produkion und -Handel reich gewordenen Gemeinde trägt wohl; jedenfalls hatten die Demogeronten schon im April 1821 klar angesagt, dass sie lieber Wohlstand als (nationalen) Aufstand haben wollen. Für solche Anliegen hatten die Patrioten von der Peloponnes wenig Verständnis. Ein „Admiral“ Iakovos Tombazis – bei einem derart jungen Aufstand dürfte so ein „Admiral“ ungefähr drei Jollen befehligt haben – landete auf Chios, zog mit seinen Leuten ein wenig herum, um die satt & glücklich-Bevölkerung dort zum Abfall vom Sultan und zur Unterwerfung unter die neue christlich-griechische Regierung zu bewegen. Chios ist die zehntgrößte Insel im ganzen Mittelmeer, so dass er dafür elf Tage brauchte. Dann verschwanden er und seine Leute wieder.

    Bekannte von Bekannten berichten von ähnlichen Stunts der aktuellen PKK im türkischen Kurdistan. Zumindest diese Bekannten von Bekannten hat das nicht zu Fans der PKK gemacht, denn die Reaktion der derzeitigen türkischen Regierung ist in etwa so wie die der damaligen. In den Worten der Wikipedia:

    Der Dīwān entsandte den Gouverneur Vehid-Pacha. Er richtete sich in der Festung von Chora ein. Um sicherzustellen, dass die Chioten sich ruhig halten, forderte er 40 Geiseln an (darunter den Erzbischof Platon Franghiadi, die Demogeronten und Mitglieder der wichtigsten Familien der Insel [...]).

    Klar: Das war auch völlig überflüssiger Terror. Anständige Leute tun sowas nicht. Aber wer könnte es, „denkt an Tripoli!“, dem armen Dīwān verübeln, wenn er den Aggressor in die Schranken weist? Dazu gehören natürlich auch Soldaten. Erwartbarerweise sorgten diese Soldaten mitnichten dafür, dass irgendwas besser wurde:

    Es handelte sich um wenig disziplinierte Soldaten, die von der Plünderungsmöglichkeit angezogen wurden. Sie kontrollierten die ländlichen Gebiete der Insel und verbreiteten dort Schrecken.

    So wurden die ChiotInnen, die sich anfangs aus guten Gründen aus der ganzen für sie völlig nutzlosen Frage raushalten wollten, ob sie nun aus dem fernen Konstantinopel oder aus dem noch ferneren Athen regiert werden sollten, allmählich doch zu PatriotInnen.

    Wirklich schlimm wurde es allerdings erst, als bewaffnete Patrioten aus Samos im März 1822 versuchten, die inzwischen wieder etwas menschlicher gewordene Militärherrschaft auf Chios durch Rumballern zu beenden. Fast 3000 christliche Soldaten landeten auf der Insel und zwangen die osmanischen Truppen zum Rückzug in die Burg der Hauptstadt Chora.

    Das Verhängnis patriotischer Erhebung

    An diesem Punkt wurden auch die BäuerInnen aus dem Inselinneren vom nationalen Taumel erfasst und bewaffneten sich, übrigens gegen das Flehen ihrer alten Lokalregierung, die ja immer noch in osmanischer Geiselhaft saß:

    Sie zogen mit Kreuzen und Ikonen durch die Straßen und sangen patriotische Lieder.

    Das konnte sich nun wiederum der Sultan nicht bieten lassen und schickte weitere Verstärkung nach Çeşme, gleich gegenüber von Chios. Am 11. April 1822 landeten ungefähr 7000 osmanische Soldaten auf der Insel – ihr merkt, wie sich auch die Zahlen immer weiter aufschaukeln –, und machen mit christlichen Soldaten wie BäuerInnen recht kurzen Prozess, zumal ersteren zwischendurch die Munition ausgegangen war.

    Es entfaltete sich ein Massaker, das das von Tripoli nochmal weit überbot. Die Bilanz der Wikipedia ist ähnlich düster wie die des DLF:

    Die Bevölkerung der Insel betrug Anfang 1822 zwischen 100.000 und 120.000 Menschen, davon 30.000 Einwohner in Chora. Es waren auch etwa 2.000 Muslime auf der Insel. Für die Zeit nach den Massakern wird meist die Einwohnerzahl von 20.000 genannt. [...] Die häufigsten Schätzungen nennen 25.000 Tote und 45.000 versklavte Menschen. 10.000 bis 20.000 sei die Flucht gelungen.

    Zwar hat so schnell niemand den Griechen Panzerhaubitzen geliefert, und so hatten sie rein materiell keine Möglichkeit zur weiteren Eskalation. Sie brachten aber in der nächsten Runde immer noch 2000 osmanische Soldaten um, als sie am 6. Juni 1822 – die Besatzung war wegen Zuckerfest vermutlich nicht gut beieinander – das osmaische Flaggschiff in der Bucht von Chora abfackelten. Die türkischen Truppen haben zur Vergeltung eine weitere, letzte Zerstörungstour über die Insel unternahmen, konnten da aber auch nicht mehr eskalieren, weil ja schon fast alle BewohnerInnen tot oder verschleppt waren.

    Alles umsonst

    Wofür sind die Leute alle gestorben? Aus heutiger Sicht wird wahrscheinlich niemand bestreiten, dass das alles Quatsch war. Für die Griechen bestand ihre „Freiheit“ aus einem bayrischen König, der „Griechenland“ zwar exzessiv „liebte“, 1862 aber von einem britischen Schiff evakuiert werden musste, weil seine Machtbasis komplett erodiert war und schon wieder Aufstand herrschte. Sein letzter Nachfolger schließlich ging 1968 unter, als er selbst einen Militärputsch plante, ihm andere Militärs aber zuvorkamen (die Ereignisse in der Wikipedia). Diese Militärs waren wiederum die, über die ich in meinem Filmtipp von neulich geschäumt habe.

    Für die Osmanen hat sich das auch nicht gelohnt, denn die Griechen gingen mit Chios im Westen ähnlich wie heute die aktuelle ukrainische Regierung mit russischen Massakern hausieren. Sie konnten viel Sympathie für diese Sorte „Freiheitskampf“ wecken und bekamen viel politische Unterstützung für ihre Sezession, die 1830 auch stattfand. Sicher weniger dramatisch für die Hohe Pforte: Leute wie Lord Byron[1] zogen „für Griechenland” in den Krieg und starben dabei. Chios selbst ging 1912 doch an Griechenland, noch bevor das osmanische System zum Ende des ersten Weltkriegs gänzlich implodierte.

    Und die Leute auf Chios? Also: die, die übrig geblieben sind? Nun, von den gut 100'000 BewohnerInnen aus dem Wikipedia-Zitat von oben ist Chios immer noch weit entfernt; gegenwärtig wohnen rund 50'000 Menschen auf der Insel.

    Ach weh. Wer aus der Geschichte nicht lernen will, wird immer wieder zehntausende Menschen in irgendwelchen mehr oder minder romantischen Anwandlungen von Patriotismus umbringen und, wenns ganz schlimm läuft, auch noch den Rest der Welt davon überzeugen wollen, dass das groß, wichtig und gut ist. Den Akteuren von 1822, die noch keine Wikipedia hatten, möchte ich das nicht vorwerfen, auch wenn sie mit etwas mehr Mühe bereits hinreichend viel Anschauungsmaterial aus der Geschichte hätten gewinnen können.

    Uns Heutigen – tja, wir haben die Wikipedia.

    [1]

    Zu Byron will ich euch die Worte von Bertrand …

  • Quick RST Previews for Posts in Pelican

    In January, I described how I use this blog's engine, pelican, and how I have a “development” and a “production” site (where I will concede any time that it's exceedingly silly to talk about “production” in this context). Part of that was a trivial script, remake.sh, that I would run while writing and revising a post to format it without doing too much unnecessary work. This script was running between a couple and a couple of dozen times until I was happy with an article.

    What the script did was call pelican asking to only write the document being processed. When pelican was instructed to cache work on the other articles, that was enough to keep build times around a second on my box; but as the number of posts on this blog approaches 200, build times ended up on the totally wrong side of that second, and I thought: “Well, why don't I run, perhaps, rst2html for formatting while revising?” That would be, essentially, instantaneous.

    But pelican does a lot more than rst2html. Especially, having the plugins and the templating available is a good thing when inspecting a post. So, I got to work and figured out how pelican builds a document. The result is a script build-one that only looks at a single (ReStructuredText) article – which it gets from its command line – and ignores everything else.

    This is fast enough to be run whenever I save the current file. Therefore, in my pelican directory I now have, together with the script, the following .vimrc enabling just that (% expands to the file currently edited in vim):

    augroup local
      au!
      autocmd BufWritePost *.rst !python build-one %
    augroup END
    

    I've briefly considered whether I should also add some trick to automatically reload a browser window when saving but then figured that's probably overdoing things: In all likelihood I want to scroll around in the rendered document, and hence I will have to focus it anyway. If I do that, then effort spent on saving pressing r after focusing feels misplaced.

    The script does have an actual drawback, though: Since pelican does not get to scan the file system with build-one, it cannot do file name substitution (as in {filename}2022-05-26.rst) and will instead warn whenever seeing one of these. Since, as described in January, my static files are not managed by pelican, that is not a serious problem in my setup, except I have to watch out for broken substitutions when doing a final make html (or the make install).

    Insights into Pelican

    It took me a bit to figure out how the various parts of pelican fit together at least to the extent of letting me format a ReStructuredText document with the jinja templates. Let me therefore briefly discuss what the script does.

    First, to make pelican do anything remotely resembling what it will do on make html, you have to load its settings; since I assume I am running in pelican's directory and this is building a “draft” version, I can simply do:

    settings = pelican.read_settings("pelicanconf.py")
    

    With that, I already now where to write to, which lets me construct a writer object; that will later arrange for actually placing the files. I can also construct a reader for my ReStructuredText files (and you would have to change that if you are writing in Markdown); these readers decouple the Article class from input formats:

    writer = writers.Writer(settings["OUTPUT_PATH"], settings)
    reader = readers.RstReader(settings)
    

    With that, I have to delve deep into pelican's transformation machinery, which consists of various generators – for articles, static files, pages, whatever. The constructors of these generator classes (which are totally unrelated to Python generators) take a lot of arguments, and I cannot say I investigated why they insist on having them passed in when I fill them with data from settings anyway (as does pelican itself); but then I suspect these extra arguments are important for non-Article generators. I only need to generate a single article, and so stereotypically writing:

    artgen = generators.ArticlesGenerator(
        settings.copy(), settings,
        settings["PATH"], settings["THEME"], settings["OUTPUT_PATH"])
    

    does the trick for me.

    Article generators will usually collect the articles to generate by looking at the file system. I don't want that; instead, I want to construct an Article instance myself and then restrict the generator's action to that.

    The Article class needs to be constructed with content and metadata, which happen to be what readers return. So, to construct an Article from the RST file passed in in source_path, I need to say:

    content, metadata = reader.read(source_path)
    art = contents.Article(content, metadata,
        source_path=source_path, settings=settings)
    

    After all that preparation, all that is left to do is overwrite any misguided ideas the article generator might have on what I would like to have processed and then let it run:

    artgen.translations = []
    artgen.articles = [art]
    artgen.generate_articles(
        functools.partial(writer.write_file, relative_urls=True))
    

    (the currying of the writer's write_file method to make sure it creates relative URLs you can probably do without, but I'm a fan of relative URLs and of almost anything in functools).

  • Hirsche im Zoo

    Foto: Hirsch, im Hintergrund radelnde PassantInnen

    Nicht weit vom Edersee – praktisch schon im Kellerwald-Nationalpark – laufen Hirsche auch mal bei Tageslicht über herbstliche Felder und bezaubern radelnde TouristInnen. Aber: was machen sie im Zoo?

    „Bikeshedding“ bezeichnet das in vielen Entscheidungsgremien zu beobachtende Phänomen, dass große und tiefgreifende Entscheidungen ohne große Kontroverse durchgewunken, Nebensächlichkeiten[1] jedoch in großer Breite diskutiert werden.

    Als ich heute morgen die DLF-Sendung Wissenschaft im Brennpunkt vom 15.5. hörte, hatte ich eine Art intellektuelles Bikeshedding. In der Sendung geht es um höchst raffinierte Verfahren der Metagenomik, bei der durch Sequenzierung von DNS in mehr oder minder blind aus der Natur entnommenen Proben tiefe Einsichten in Ökologie und Biologie gewonnen werden. Dass sowas geht, dass dabei etwas rauskommt, und teils schon, was dabei rauskommt: Das ist alles sehr beeindruckend.

    Doch mein Wow-Moment kam erst bei folgender Passage (bei ca. Minute 23; der Text auf der DLF-Seite ist leider nicht das Transskript der Sendung):

    Elizabeth Clair [...] berichtete in einer Vorveröffentlichung von einer DNA-Analyse der Luft in einem englischen Zoo. [...] DNA von 25 Arten konnte das Team aufspüren, darunter 17 Zootierarten [...], einige davon bis zu 300 m von der Untersuchungsstelle entfernt. Außerdem ein paar Wildtiere wie Igel und Hirsch.

    Ein wilder Hirsch? Im Zoo? Wie bitteschön soll das denn zugehen? Setzen die elegant über den Zaun des Zoos? Um den gefangenen Tieren vielleicht eine lange Nase zu drehen? Ich gebe zu, dass das verglichen mit den Wundern von Massensequenzierungen doch eher trivial wirkt. Aber ich wüsste wirklich gerne, was der Hirsch dort wollte.

    Aufbauend auf dieser Erfahrung würde ich „behirschen“ als neues Verb vorschlagen, mit der Bedeutung „sich an einer (scheinbaren) Nebensächlichkeit in einer Forschungsarbeit aufhängen und damit deren AutorInnen auf die Nerven gehen“? Nur nebenbei: Ich vermute, wir behirschen in der modernen Wissenschaft fast alle deutlich zu wenig.

    Nachtrag (2022-07-01)

    Auf eine Nachfrage von @StephanMatthiesen hin hat mich die Sache doch nicht losgelassen, und ich musste mal nach dem Paper sehen, von dem im DLF-Zitat die Rede ist. Es scheint, als sei es bereits Anfang 2021 erschienen, und zwar als „Measuring biodiversity from DNA in the air“ von Elizabeth Clare et al, Current Biology (2021), doi:10.1016/j.cub.2021.11.064. Darin heißt es:

    Of special interest was the detection of the European hedgehog (Erinaceus europaeus) in three samples [...] As of 2020, the hedgehog was listed as vulnerable to extinction in the United Kingdom (https://www.mammal.org.uk/science-research/red-list/), making it vital to develop additional methods to monitor and protect existing populations. [...] One commonly cited application of eDNA approaches is the detection of invasive species. We detected muntjac deer (Muntiacus reevesi) in five samples. These muntjacs are native to China but became locally invasive after multiple releases in England in the 19th century. They are now well established in eastern England, the location of the zoological park, and are frequently seen on site. They are also provided in food for several species; thus, the detection of muntjacs may reflect either food or wildlife.

    (Hervorhebung von mir, um die Verbindung zu den Igeln und Hirschen aus der DLF-Sendung zu belegen). Mithin: Wir reden hier von keinem stattlichen Zwölfender, der majestitisch an den Gittern entlangschreitet. Wir reden von Muntjaks, die, so die Wikipedia, „zwischen 14 und 33 Kilogramm“ wiegen und offenbar nur mit Mühe die Größe von Damhirschen erreichen. Und obendrauf kann es gut sein, dass die DNS dadurch in die Luft kam, dass andere Tiere die Muntjaks vertilgt haben und dabei eher ruppig vorgegangen sind.

    Selbst wenn die DNS nicht von Futter, sondern von einem Wildtier abgesondert worden wäre, wäre ihr Vorkommen kaum erstaunlich, wenn mensch die Lage des Tierparks bedenkt. Manchmal (aber selten) verlieren die Dinge doch ein wenig von ihrem Zauber, wenn mensch näher nachsieht.

    [1]Der Begriff „Bikeshedding“ bezieht sich tatsächlich auf überdachte Fahrradstellplätze; dass gerade so eine zentrale und wichtige Einrichtung als Prototyp des Nebensächlichen herhalten muss, sagt natürlich schon einiges aus über unsere Gesellschaft und den weiten Weg, den wir bis zur Befreiung vom Auto noch vor uns haben.
  • Angst ist eine schlechte Beifahrerin

    Am ersten Mai hatte ich mich an dieser Stelle gefragt, wann wohl die „Dauerbeflimmerung“ – also: leuchtende Werbedisplays am Straßenrand – an der Heidelberger Jahnstraße dazu führen wird, dass Leute einander kaputtfahren. Fünf Tage später lief in Forschung aktuell ein Beitrag, der einen ganz speziellen Blick auf Gefahren durch Beflimmerung vom Straßenrand warf.

    Grundlage des Beitrags ist der Artikel „Can behavioral interventions be too salient? Evidence from traffic safety messages“ der Wirtschafts- hrm -wissenschaftler Jonathan Hall und Joshua Madsen aus Toronto und Madison, WI, erschienen in Science vom 22.4.2022 (doi:10.1126/science.abm3427)[1].

    Bevor ich den Blick nachvollziehen konnte, musste ich mich zunächst ärgern, denn alles, was ich beim Folgen des DOI gesehen habe, war das hier:

    Screenshot einer Cloudflare-Verzögerungsseite

    Der Fairness halber will ich einräumen, dass die drei Punkte animiert waren, und dann und wann hat die Seite, als ich ihr erstmal Javascript erlaubt hatte, einen Reload geworfen und dann eine neue „Ray ID“ angeboten. Dennoch ist das gleich in mehreren Richtungen Mist, verschärft hier dadurch, dass Landing Pages von DOIs statisch sein können und sollen. Es lässt sich kein Szenario denken, in dem mensch für statische Seiten auf einem ordentlichen Webserver einen „DDoS-Schutz“ (was immer das sein mag) braucht, und schon gar keinen, der ohne Javascript, Referrer und weiß ich noch was nicht funktioniert.

    Ich muss gestehen: ich war es müde, den Mist zu debuggen. Da der Artikel leider noch nicht bei libgen (die – Science, horche auf! – diese Sorte Unfug nicht nötig haben) war, habe ich in den sauren Apfel gebissen und statt meines Standardbrowsers einen überpermissiv konfigurierten Firefox genommen, der der Cloudflare-Scharlatanerie schließlich akzeptabel schien. Auch eine Art, das Web kaputtzumachen.

    Zur Sache

    In Texas hat das Verkehrsministerium über viele Jahre hinweg „Campaign Weeks“ gemacht, während derer auf den elektronischen Großanzeigen an vielbefahrenen Straßen – wer Falling Down gesehen hat, weiß, wovon die Rede ist – unbequeme Wahrheiten („Für Menschen zwischen 5 und 45 ist der Straßenverkehr die führende Todesursache“) angezeigt wurden.

    Der Effekt: Offenbar fahren die Leute nach so einer Mahnung nicht vorsichtiger, sondern abgelenkter. Jedenfalls gehen die Unfallraten hinter solchen Nachrichten merklich nach oben. In Abbildung eins des Papers sieht das so aus:

    Scatterplot -- Punktpaare gehen allmählich gegen Null

    Rechte: AAAS, Science

    Das „DMS” in der Beschriftung heißt „dynamic message signs“ – zumindest im Untersuchungszeitraum zwischen 2012 und 2017 war das aber sicher richtig fades Zeug im Vergleich zu moderner Werbebeflimmerung. Bei den roten Punkten kamen nach der ersten Tafel für 10 km keine weiteren mehr, so dass das das sauberere Signal ist.

    Auch wenn der Effekt im Vergleich zu den Fehlerbalken nicht sehr groß ist und es allerlei versteckte Confounder geben mag – die Autoren gehen aber erfreulich vielen nach und können viele glaubhaft kontrollieren –, überzeugt mich das Paper davon, dass mindestens auf dem Kilometer nach der Tafel die von alarmierenden Zahlen beunruhigten Menschen ein paar Prozent mehr Unfälle bauen.

    Ein Grund für meine Einschätzung der Zuverlässigkeit des Effekts ist, dass offenbar die Zunahme der Unfälle mit der Drastik der Nachrichten korrelierte: Spät im Jahr, wenn texanische Autos schon tausende Menschen zermalmt haben und also entsprechend große Zahlen auf den Tafeln zu sehen sind, sind die Effekte deutlich stärker als früh im Jahr:

    Scatterplot mit abnehmenden Punkten

    Rechte: AAAS, Science

    Zwar ist die Null auch hier überall innerhalb von „zwei sigma“, also der doppelten Fehlerbalken, so dass ich das nicht völlig überbewerten würde. Ich könnte insbesondere nicht erklären, woher ein negativer Achsenabschnitt der Ausgleichsgerade kommen könnte, warum Leute also besser fahren sollten, wenn die Zahlen klein (oder ihre Neujahrsvorsätze noch frisch?) sind. Dennoch entsteht, nimmt mensch alle Evidenz zusammen, durchaus ein recht robustes Signal, das wiederum nur schwer durch Confounder zu erklären ist.

    Und auch wenn was wie 5% nicht nach viel klingen: Der Straßenverkehr ist mörderisch (in den USA gibt es, Kopfzahl, in jedem Jahr so um die 50000 direkte Verkehrstote), und es gibt einen Haufen dieser Displays. Hall und Madsen schätzen, dass ihr Effekt in den 28 Staaten, die das ähnlich wie Texas machen, 17000 Unfälle mit 100 Toten verursachen dürfte.

    Verblüffung am Rande: Für ein Kontrollexperiment haben Hall und Madsen nach Tafeln gesucht, die mindestens 10 km vor sich keine andere Tafel haben (damit sich die Effekte der Vortafel hoffentlich bereits gelegt haben). Das hat die Samplegröße um 75% reduziert. 75%! Dass diese DMSe so sehr clustern – denn es sich sicherlich undenkbar, dass über das ganze riesige Straßennetz von Texas hinweg alle paar Kilometer Tafeln stehen –, hätte ich nicht erwartet. Warum planen Leute sowas?

    Und Werbetafeln?

    Nun gebe ich zu, dass Hall und Madsen über ganz andere Dinge reden als die Werbe-Displays von Ströer und JCDecaux, sie ja sogar auf die Wichtigkeit der Natur der Nachricht abheben und so das Medium eher aus dem Blick nehmen.

    Sie zitieren aber auch Literatur, die sich allgemeiner um die Frage der Ablenkung durch Beflimmerung kümmert. Davon gibts einiges, und offenbar ist umstritten, wie tödlich Werbetafeln wirklich sind. Vermutlich wäre es ein wertvolles Projekt, die Drittmittelgeber der entlastenden Studien zu ermitteln.

    Was Hall und Madsen zitieren, ist leider nichts in dieser Richtung. Dennoch habe ich mir ihre Quelle „Driving simulator study on the influence of digital illuminated billboards near pedestrian“ von Kirstof Mollu (aus dem Dunstkreis der Wiwis an der Universiteit Hasselt, Belgien) et al, Transportation Research Part F 59 (2018), S. 45 (doi:10.1016/j.trf.2018.08.013) kurz angesehen. Das braucht immerhin keine Beschwörungen von Cloudflare, ist aber wieder kein Open Access und zwingt NutzerInnen erstmal den "Elsevier Enhanced Reader" auf, der ohne Javascript gar nichts tut – eine sehr aufwändige Art, ein PDF runterzuladen.

    Nun: Mollu et al haben sieben Handvoll Führerscheinhabende rekrutiert und in einen einfachen Fahrsimulator (zwar force-feedback, aber keine Beschleunigungssimulation) gesetzt, in das Szenerio verschieden hektisch flimmernde Displays integriert und dann gesehen, wo die Leute hingucken und wie oft sie übersehen, dass FußgängerInnen über die Straße wollen.

    Wenig überraschende Einsicht: Die Leute gucken mehr, wenn die Bilder nur 3 Sekunden (statt 6 Sekunden) stehen bleiben. Was Filmchen (bei denen Bilder ja nur was wie 1/25stel Sekunde stehenbleiben) anrichten, untersuchen sie nicht. Überhaupt macht der Artikel quantitativ nicht viel her. Oh, abgesehen von Zahlen, die sie selbst nur zitieren: In den Fahrradländern Niederlande und Dänemark sterben nur drei bis vier FußgängerInnen pro Million Einwohner und Jahr. In den jüngst wild motorisierten Lettland und Litauen ist es ein Faktor 10 mehr, also etwas wie 35 pro Million und Jahr.

    Zur Einordnung will ich nicht verschweigen, dass ausweislich der aktuellen RKI-Zahlen SARS-2 in der BRD 1500 Menschen auf eine Million EinwohnerInnen umgebracht hat und das auch schlimmer hätte kommen können (aber: Caveat bezüglich dieser Sorte Zahlen). Andererseits: Wollte mensch den gesamten Blutzoll des Autos bestimmen, Verkehrstote, durch Verkehrsverletzungen verfrühte Tode, Opfer von Lärm und Luftverschmutzung, vielleicht gar von Bewegungsmangel, wäre es wohl nicht schwer, für die BRD auf 700 Autoopfer pro Million und Jahr zu kommen und damit ziemlich genau in den Bereich des durch Maßnahmen und Impfung gezähmten SARS-2. Aber diese Rechnung braucht mal einen anderen Post.

    [1]Leider hat Science den Artikel, dessen AutorInnen fast sicher aus öffentlichem Geld bezahlt wurden und die jedenfalls öffentliche Infrastruktur (U Toronto, Vrije Uni Amsterdam, U Minnesota) nutzten, weggesperrt, und er ist im Augenblick auch noch nicht auf libgen. Hmpf.
  • Der Oliv-Index

    Filmszene: Revue-Bühne mit Tänzerinnen und Sänger in Uniform und Monokel

    Die Staudte-Verfilmung von Klaus Manns Untertan (DDR 1951) illustriert die militarisierte Gesellschaft durch eine Revuenummer, in der Frauen mit Pickelhauben zu uniformiertem Gesang von der „Elite der Nation“ halb tanzen, halb marschieren. Olivindex: 1. (Rechte bei… na ja, wer immer den DEFA-Kram halt gekauft hat.)

    Wer in den frühen 1990er Jahren Filme wie Der Untertan oder, etwas leichtherziger, den Hauptmann von Köpenick gesehen hat, wird die Verehrung des Militärischen, die dort gezeigt wurde, für eine unfassbare historische Verirrung gehalten haben, eine Art kollektive Psychose, lächerlich und zugleich gruselig, aber jedenfalls vom anderen Ende der Geschichte.

    Dann kam die Zeitenwende; nicht etwa jetzt, sondern im Laufe der 1990er, in denen sich die Bundeswehr zurückrobbte an diverse Plätze an der Sonne, angefangen mit Jagdbombern, die im Januar 1991 US-Jets in der Türkei ersetzten, damit diese für die Wiedereinsetzung des Emirs von Kuwait töten konnten. Es folgten die ersten Truppen außerhalb des NATO-Gebiets in Kambodscha im Mai 1992, wo im Oktober 1993 auch der erste Held anfiel (for the record: Alexander Arndt), dann mit AWACS-Flügen über Jugoslawien und so weiter und so fort. Langsam, aber bestimmt überschritt das Militär immer wieder zuvor sicher geglaubte Grenzen. Der große Zusammenbruch, oder wegen mir die Zeitenwende, kam aber erst ganz am Ende der 1990er Jahre: Militärminister Rühe hatte noch 1997 verkündet, nie wieder dürfe ein Stiefel eines deutschen Soldaten in Jugoslawien auftreten. 1999 griff die Bundeswehr Serbien an und marschierte im Kosovo ein, geschmackloserweise gerade unter Verweis auf die Verbrechen der deutschen Großväter (die damals ja noch in großer Zahl lebten).

    Nach diesem Tabubruch schlichen sich Reden von Helden, Tapferkeit und Vaterland in immer mehr Salons, kehrte der Glaube zurück, Militär an sich und schon gar deutsches Militär könne irgendwo und schon gar im Ausland Zustände verbessern. Mit der schon aus fünf Schritt Entfernung offensichtlich dystopischen Erzählung vom R2P wurde ab 2005 aus dem „Können“ allmählich ein „Müssen“ – also: dort, wo es bequem war und gegen die richtigen Feinde ging.

    „Rohrkrepierer“ ist eine Diagnose – von Sprache

    Die Militarisierung des Diskurses fand nicht nur nach außen statt. Eines der exteremen Beispiele: 2005 sollte die Bundeswehr für die Polizei Zivilflugzeuge abschießen dürfen – was das Verfassungsgericht 2006 zum Glück nochmal einfangen konnte (vgl. Luftsicherheitsgesetz in der Wikipedia). Dass der Corona-Krisenstab einen General als Vorsitzenden bekam, war kurzfristig ein neuer Höhepunkt der Preußen-Renaissance. Wieder half das Glück der Zivilgesellschaft, denn dieses Gremium stellte sich schnell als Rohrkrepierer (um mich auch kurz an Militärsprache zu versuchen) heraus.

    Nach dem Umschlagen der jüngsten Aufrüstungsrunde (das verlinkte PDF ist von 2019; der Kram ist also nicht neu) in einen weiteren Krieg hat eine giftige Mischung aus Patriotismus und Militarismus wenigstens vorläufig die… unbestrittene Lufthoheit. Zeitweise waren und sind Kommentare, die sich positiv auf deutsche Eingriffe in Kriege bezogen, in der Presseschau im Deutschlandfunk in der breiten Mehrheit, während in der Tagesschau oft kaum ein Beitrag ohne Olivgrün daherkommt.

    Ein Thermometer fürs Kriegsfieber

    Auch ein erklärter Feind von Metriken wie ich kann an dieser Stelle nicht widerstehen. Es braucht eine Zahl zur Charakterisierung des gesellschaftlichen Kriegsfiebers[1]. Nun, hier ist meine Zahl: Der Oliv-Index. Der von heute ist 0.55, wobei 0 „alles zivil oder unpatriotisch“ und 1 „der Kaiser schickt seine Soldaten aus“ bedeutet. Etwas weniger blumig ist der Oliv-Index ist das Verhältnis der Zahl der patriotisch-militaristischen Kommentarauszüge zu allen, die an einem Tag in der Morgen-Presseschau des DLF zitiert werden.

    Balken in verschiedenen Schattierungen von oliv

    Der Olivgrün-Index zwischen siebtem und 21. Mai: Je oliver, desto höher das patriotisch-militärische Fieber im Blätterwald der Republik.

    Nachtrag (2022-06-09)

    Ich führe den Olivindex tatsächlich fort, und für eine Weile ist die aktuelle Lage jeweils am Fuß der Blogseiten. Und, jeweils aktuell, solange ich das Elend auswerte, hier:

    Viel mehr Balken in verschiedenen Schattierungen von oliv

    Ich habe das in den vergangenen zwei Wochen ausprobiert, schon, um zu sehen wie viele Zweifelsfälle es geben würde. Tatsächlich war es beispielsweise nicht immer einfach, die Kommentare zur Entthronung von Gerhard Schröder korrekt einzuordnen: Was davon war allgemeine patriotische Empörung, was davon Empörung über Vaterlandsverrat im Krieg? Und – nicht, dass das für den Oliv-Index eine Rolle spielen würde: Was war Abwiegelung aus Staatsraison, was Abwiegelung aus kühlem Kopf? Die naheliegende Position „wenn ihr ihn wegen Kosovo und Hartz IV, wegen Afghanistan und Riesterrente, wegen BamS und lupenreinen Demokraten nicht abgesägt habt, müsst ihr es jetzt auch nicht mehr machen“ kam leider nicht vor.

    Dennoch sind Zweifelsfälle nach meinem ersten Eindruck nicht furchtbar dramatisch. Ich würde vermuten, dass andere Menschen meine Scores innerhalb von vielleicht 10% reproduzieren würden.

    Wer das probieren will, ist herzlich eingeladen. Dazu könnt ihr meine codes.txt inspizieren und sehen, ob ihr meine Einschätzungen teilt, solange die Presseschauen nicht depubliziert sind (was derzeit leider sehr schnell geht). In so einem Code steht von links nach rechts jedes Zeichen für einen Kommentarauszug, von oben nach unten gelesen. Ein o steht für einen oliven, also patriotisch-militaristischen Artikel, ein Punkt für einen anderen.

    Ihr könnt auch das Programm, das die Plots macht, ziehen: olivin. Da dürfte sich in der nächsten Zeit noch das eine oder andere ändern, denn, das gebe ich gleich mal zu, ich hoffe, am Schluss etwas Ähnliches zu produzieren wie die längst zu Popkultur gewordenen Climate Stripes von Ed Hawkins. Nur eben, ich bin ja Optimist, als Illustration einer vielleicht wieder allmählich sinkenden Begeisterung für Militär und Vaterland.

    Nachtrag (2023-06-17)

    Nach über einem Jahr mit der DLF-Presseschau hat mich jetzt die Lust verlassen; die letzte Presseschau, die ich verdaut habe, ist die vom 20.5.2023. Hier sind die military stripes von damals:

    Viel mehr Balken in verschiedenen Schattierungen von oliv

    Verschiedene braune Bänder lassen sich den Ereignissen der Zeit zuordnen; so entspricht das starke Feature rechts von 2023-01-16 der Großaufregung für die Lieferung von Kampfpanzern aus der Produktion der Rüstungsschmieden Krupp^W Krauss-Maffei-Wegmann und Rheinmetall an die Regierung der Ukraine; die darauf folgende weiße Beruhigung illustriert, dass der militärisch-patriotische Komplex durchaus auch mal für ein paar Tage zufrieden sein kann.

    Aber erstens war die militärisch-patriotische Begeisterung schon im letzten Sommer insgesamt überschaubar, und zweitens artet das alles in Arbeit aus. Wenn aber wer mal mit inzwischen über einem Jahr DLF-Presseschauen spielen will (ich könnte mir z.B. vorstellen, dass ein darauf nachtrainiertes LLM ausgesprochen bizarre Sachen sagen würde), möge sich bei mir rühren.

    [1]Nun ja: Für die Leute, die die Metriken definieren, sind sie ja schon nützlich, denn natürlich wird mensch die so definieren, dass sie den eigenen Interessen dienlich sind. Insofern bin ich natürlich kein Feind von Metriken, die ich definiere.
  • Ach Bahn, Teil 5: Stuttgart 21

    Foto: Bahnaushang mit fast schon sarkastischer Umwegkennzeichnung

    Schon seit anderthalb Monaten müssen die Fahrgäste am Stuttgarter Hauptbahnhof den hier grün eingezeichneten Weg nehmen, um den Bahnhof Richtung Innenstadt und Nahverkehr zu verlassen, nach (realistischer) Bahn-Einschätzung ein Weg von fünf Minuten. Ich bin erstaunt, dass das bisher noch keinen Aufstand gegeben hat.

    Frage an Radio Eriwan: „Steht die Einundzwanzig in Stuttgart 21 für die Zahl der Jahre, die der Stuttgarter Hauptbahnhof kaputt sein wird oder für die Zahl der Minuten, die mensch braucht, um vom Bahnsteig an den Bahnhofsausgang zu kommen?“ Die Antwort: „Im Prinzip ja, aber in Wahrheit haben wir die Gesamtkosten für die öffentliche Hand in Milliarden Euro gemeint.“

    Ok: Die S21-Katastrophe ist zur Abwechslung nicht der Fehler der Bahn alleine. Das historische Faktum der Volksabstimmung, die das Immobilienspekulationsprojekt rund um den Stuttgarter Bahnhof abgesegnet hat, illustriert gewiss über die DB hinaus einige Grundprobleme der Abstimmungsvariante direkter Demokratie (die, nebenbei, die Entropieprobleme ihres repräsentativen Cousins teilt). Solange Menschen ein Wahnsinns„argument“ wie „wir haben schon zwei Millarden ausgegeben, jetzt müssen wir da auch durch“ kaufen, wird es mit so einer Abstimmerei nicht besser.

    Demokratietheoretisch noch kniffliger ist, dass hier in breiter Mehrheit Menschen, die selbst praktisch nie einen Bahnhof betreten („Autofahrer“) den NutzerInnen des Stuttgarter Bahnhofs mehr als ein Jahrzehnt auch nach Bahnmaßstäben allenfalls hinkenden Notfallbetriebs eingebrockt haben. Alle Auswege aus Problemen dieses Typs, die mir so einfallen, schweben irgendwo zwischen Ablismus und Aristokratie oder sprengen alle vernünftigen Konzepte von Gesellschaft; vermutlich ist das ein Zeichen, dass es echte Partizipation nur im Gespräch, nicht aber in der Abstimmung geben kann (was ich ja schon lange vermute).

    Baustellenaushang: "Zu den Zügen bitte die Halle verlassen"

    Mai 2022: Über ein Jahrzehnt nach der blutigen Räumung des Schlossgartens, damit es „endlich“ losgehen konnte mit dem Abbau des Stuttgarter Hauptbahnhofs, markiert die Bahn: Wanderer, betrittst du den Bonatzbau, kehre einfach wieder um.

    Durchaus ein Fehler der Bahn ist aber, wenn zunächst für zehn Jahre die Gleise nur über zwei Brücken von vielleicht 200 Metern Länge mit dem Bahnhofsgebäude verbunden sind – war in dieser Grube wirklich so lange so viel zu machen? – und dann selbst diese beiden Brücken gleichzeitig abgerissen werden. Genau das ist aktueller Stand der Dinge, und der Weg Richtung Innenstadt verläuft jetzt über eine riesige Schleife von vielleicht einem halben Kilometer. Damit braucht es mindestens fünf Minuten von Bahnsteig zu Vorplatz und ÖPNV – was solide in der Größenordnung der Wege liegt, die ich überhaupt zurückzulegen habe, wenn mich ein gehässiges Schnicksal nach Stuttgart verschlägt. Das hätte mit etwas kundInnenfreundlicher Planung nicht sein müssen.

    Updates zu meinen übrigen Sorgen mit der Bahn: Keine. Ich weiß immer noch nicht, welche „Angriffe“ eigentlich durch hcaptcha abgewehrt werden sollen, habe keine Hinweise, wie ich nicht bei jeder Buchung wieder ein Captcha lösen muss (heute habe ich ca. 15 Flugzeuge angeklickt), und es gibt immer noch kein Signal der Bahn zur doch eigentlich sehr naheliegenden Forderung, entweder die Bahn-Bonus-App oder zumindest ihre API offenzulegen.

  • HTML and Word in mutt

    I read my mail using mutt, and even though I was severely tempted by astroid, mutt just works too nicely for me to make moving away an attractive proposition. And it is a fine piece of software. If you're still stuck with Thunderbird (let alone some webmail interface in the browser) and wonder what text-based software you might adopt, right after vim I'd point you to mutt.

    I'm saying all that because the other day I complained about a snooping mail marketing firm (in German) abusing MIME's multipart/alternative type to clickbait people reading plain text mails into their tracker-infested web pages, and I promised to give an account on how I configured my mutt to cope with HTML mails and similar calamities.

    The basic mechanism is ~/.mutt/mailcap. That's a file analogous to /etc/mailcap, for which there's a man page, mailcap (5)[1]. That explains how, in general, software uses this file to figure out which program to use to display (or print or compose) files of which types.

    Mutt reads system-wide mailcaps, too, but I've found I generally want to handle a solid number of media differently in mails than, say, in browsers or from the shell[2], and hence I'm keeping most of this configuration in mutt's private mailcap. For HTML mail, I've put into that file:

    text/html; w3m -dump -T %t -I utf-8 -cols 72 -o display_link_number=1 %s; copiousoutput
    

    This uses w3m to format HTML rather than te lynx that the mutt docs give. Lynx these days really is too basic for my taste (I'm not even sure whether it has learned utf-8). Still, this will not execute javascript or retrieve images, so most of the ugly aspects of HTML mails are sidestepped. The copiousoutput option makes mutt use its standard pager when showing the program's output, and thus HTML mail will look almost like sane mail.

    To make that really seamless, you need an extra setting in your ~/.mutt/muttrc:

    auto_view text/html
    

    This makes mutt automatically render HTML (which, contrary to the behaviour of gmail or thunderbird I consider relatively safe if it's parsimonious w3m that does the rendering). In addition, since I still believe in the good in humans, I believe that when there is both HTML and plain text in a mail, the plain text will be better suited for my text terminal, and so I tell mutt to prefer text/plain, which, again in the muttrc, translates into:

    alternative_order text/plain
    

    And that's it: If the villains at cleverreach (the marketing firm I complained about) didn't have their treacherous text/plain alternative, my w3m would render their snooping HTML without retrieving their tracking pixel and I could read whatever they send me without them ever knowng if and when. I'm still not sure if that's the reason they have the nasty clickbait text/plain alternative. In general, I support the principle that you should never explain with malice what you can just as well explain with stupidity. But then we're dealing with a marketing firm here…

    Anyway: The best part of this setup is that you can quote-reply to HTML mails, giving your replies inline as $DEITY wanted e-mail to work. That is something that also is nice when folks send around MS office files (I get the impression that still happens quite a lot outside of my bubble). To cater for that, I have in my mailcap:

    application/msword; antiword %s; copiousoutput
    application/vnd.openxmlformats-officedocument.wordprocessingml.document; docx2txt %s - ; copiousoutput
    

    and consequently in the muttrc:

    auto_view application/msword
    auto_view application/vnd.openxmlformats-officedocument.wordprocessingml.document
    

    I admit I actually enjoy commenting inline when replying to office documents, and I trust antiword (though perhaps docx2txt a bit less) to not do too many funny things, so that I think I can run the risk of auto-rendering MS office files. I've not had to regret this for the, what, 15 years that I've been doing this for (in the antiword case; according to my git history, I've only given in to autorendering nasty docx in 2019).

    I mention in passing that I have similar rules for libreoffice, but there I have a few lines of python to do the text rendering, and that is material for another post (also, folks decent enough to use libreoffice are usually decent enough to not send around office files, and hence auto-displaying ODT is much less of a use case).

    Two more remarks: This actually cooperates nicely with rules not using copiousoutput. So, for instance, I also have in my mailcap:

    text/html; x-www-browser file://%s
    

    With that, if need by I can still navigate to an HTML file in the attachments menu and then fire up a “normal” browser (with all the privacy implications).

    And: people indecent enough to mail around MS office files often are not even decent enough to configure their mail clients to produce proper media types. Therefore, mutt lets you edit these to sanity. Just hit v, go to the misdeclared attachment and then press ^E. Since the “Office Open XML“ (i.e., modern Microsoft Office) media types are so insanely long and unmemoralisable, I have made up a profane media type that I can quickly type and remember for that particular purpose:

    application/x-shit; libreoffice %s
    
    [1]In case you're not so at home in Unix, writing “mailcap (5)” means you should type man 5 mailcap (for “show me the man page for mailcap in the man section 5”) to read or skim the documentation on that particular thing. Explicitly specifying a section has a lot of sense for things like getopt (which exists in sections 1 and 3) and otherwise is just an indication that folks ought to have a look at the man page.
    [2]You can use programs like see (1) or even compose (1) to use the information in your non-mutt mailcaps.

« Seite 9 / 17 »

Letzte Ergänzungen