• Deutsch- und Abendland: Vaterlandslosigkeit leider nicht in der taz

    Foto: Jemand hält ein handgeschriebenes Pappschild „Töten fürs Vaterland?  Scheiße.  Immer.  Überall.“

    Mit diesem Pappschild stehe ich derzeit öfters bei den Kundgebungen von „Heizung, Brot und Frieden“ (z.B. nächster Montag). Tatsächlich bin ich überzeugt, dass der Kampf gegen Patriotismus oberhalb der Ebene von Blockseiten durch 2%-Ziele und Haubitzendiskussionen nochmal einen Schwung Priorität gewonnen hat.

    Am letzten Montag erschien in der taz ein Kommentar von Jan Feddersen zum Schwarzer-Wagenknecht'schen „Manifest für den Frieden“ mit dem pompösen Titel „Ruiniertes Lebenswerk“. Auf die Gefahr hin, wie ein zorniger Zeitungsleser zu wirken: Ich fühlte mich aufgerufen, dazu einen Leserbrief unter dem Titel „Ruinierter Kommentar“ zu schreiben. Jedoch…

    …nicht, weil Feddersen ohne erkennbare Skrupel voraussetzt, es sei in Ordnung, Menschen zu erschießen, solange nur „die anderen angefangen haben“. Wenn ich jeweils sowas kommentieren wollte, müsste ich auch jetzt noch in eine dickere Internetverbindung investieren.

    …nicht, weil Feddersen unterstellt, Waffenlieferungen – und gar aus Deutschland – könnten irgendwo „helfen“. Dabei jeweils eine Perspektive zu geben von dem, was Bomben, Gewehre, Streubomben und Haubitzen in Wirklichkeit anrichten, und wie sehr ihr „Einsatz” in den realen Kriegen der letzten 500 Jahre jeweils geschadet statt geholfen hat (zumal im Vergleich zu späterem politischen und noch besser sozialem Umgang), wäre zwar auch jetzt gerade verdienstvoll, doch nicht unterhalb eines Vollzeitjobs hinzubekommen.

    …nicht, weil Feddersen die schlichte Wahrheit, dass Staaten auch dann wiederauferstehen werden können, wenn sie mal überrannt wurden, erschossene Menschen aber nicht[1], als obszön, trist oder Folge von „nicht mehr alles beisammen“ bezeichnet. Es hilft ja nichts, wenn sich Leute die Vorwürfe, obszönes, trauriges oder wirres Zeug zu reden, gegenseitig um die Ohren hauen. Das sind größtenteils Geschmacksfragen und mithin argumentativ nicht zu entscheiden[2].

    …nicht, weil er einem Staat oder „Volk“ so viel Identität zuspricht, dass er oder es ein Selbst habe, dem es zu helfen gelte (und zwar durch Intensivierung des Tötens realer Menschen). Dagegen hat schon Brecht gepredigt, und der Erziehungauftrag, statt „Volk“ einfach mal „Bevölkerung“ zu sagen und zu denken, wird auf unpatriotischere Tage warten müssen.

    …noch nicht mal, weil er eine Parallele zwischen dem heutigen Russland und dem Deutschland unter der Regierung der NSDAP zieht. Das ist zwar speziell von einem Deutschen, der vermutlich nicht viel mehr als 25 Jahre nach der Befreiung von dieser Regierung geboren wurde, schon sehr schlechter Geschmack, aber, ach ja, wenn ich Willy Brandt seinen schönen Ausbruch „Er ist ein Hetzer, der schlimmste seit Goebbels”[3] nicht verübele, hätte ich irgendein „seit dem 24.2.2022 wird zurückgeschossen“ schon noch weggelächelt.

    Nein, was auch nach den eingestandenermaßen schon heruntergekommeneren Maßstäben der Zeitenwende immer noch nicht geht, ist, die Höhepunkte der deutschen Kriegs- und Massenmordzüge unter der NS-Regierung irgendwie in Relation zu setzen zu heutigen Handlungen, schon gar von den RechtsnachfolgerInnen derer, die diesem Treiben damals wesentlich ein Ende gesetzt haben.

    Tatsächlich hat die taz am vergangenen Mittwoch (nach „Meinungsfreiheit“ suchen) auch einen Platz für den antifaschistischen Teil meines Leserbriefs gefunden. Da sich aber für den vaterlandslosen Teil kein Platz fand und ich auch diesen für wichtig und, wenn ich das selbst sagen darf, gelungen halte, will ich euch die Vollversion nicht vorenthalten:

    Ruinierter Kommentar

    Jan Feddersens Kommentar über einen Aufruf zu Verhandlungen im Ukrainekrieg wäre „selbstverständlich durch das hohe Gut der Meinungsfreiheit“ gedeckt, wie er sagt, wäre da nicht der letzte Satz, der Russlands Agieren in der Ukraine mit dem Nazi-Wüten gegen das Warschauer Ghetto gleichsetzt. Warum das grundsätzlich nicht geht und für Deutsche schon zwei Mal nicht, haben Nolte, Habermas und Stürmer 1986/87 abschließend geklärt (Wikipedia: Historikerstreit).

    Anstandsfragen beiseite: auch rein praktisch würde ein durchaus zulässiger Vergleich zum ersten Weltkrieg einiges an Verwirrung aufklären können. Es lohnt sich, die damaligen Attacken der Verfechter eines Siegfriedens nachzulesen[4], die vaterlandslosen Gesell_innen vorhielten, sie wollten, je nach Geschmack, das idealistische Deutsch- oder gleich das Abendland an, je nach Geschmack, das materialistische Albion oder die barbarischen Horden aus der asiatischen Steppe verfüttern. Welche Seite scheint aus heutiger Sicht attraktiver?

    —Anselm Flügel (Heidelberg)

    Geständnis: In der Einsendung hatte ich die antipatriotische Vorlage „Deutsch- oder […] Abendland“ übersehen und nur „Deutschland oder […] Abendland“ geschrieben, was eingestandenermaßen die literarische Qualität erheblich beeinträchtigt. Bestimmt hätte die taz das ganz abgedruckt, wenn ich da nur rechtzeitig dran gedacht hätte…

    Nachtrag (2023-02-27)

    Ein paar Tage später kam die taz übrigens mit einer Art Kundenbindungs-Massenmail rüber, in der Sie wörtlich schrieben:

    Sie muten sich mit der Zeitungslektüre jeden Tag Nachrichten und Meinungen außerhalb Ihrer so genannten Komfortzone zu. Wie halten Sie das nur aus? Wir wissen es nicht.

    Ach – wenn es nur um die Komfortzone ginge… Derzeit allerdings sind die Fragen: Beschleunigte Remilitarisierung der deutschen Gesellschaft? Oder können wir das der Welt doch noch eine Weile ersparen? Dass die Antworten für unsere Nachbarn weit mehr als Komfortverluste bedeuten, das zumindest sollten wir aus dem 20. Jahrhundert mitgenommen haben.

    [1]Es sei denn, Jesus käme vorbei und schöbe massiv Überstunden. Aber soweit ich das übersehe, ist das zumindest innerhalb der letzten 10'000 Jahre nicht passiert.
    [2]Na gut, das mit dem „wirr“ lässt sich im Prinzip schon entscheiden, aber nur, wenn mensch sich darüber einigt, ob die in der Fußnote eben erwähnte Jesus-Option irgendwie realistisch ist. Und das lassen wir mal lieber, denn nur der Patriotismus hat zu noch mehr blutiger Uneinigkeit geführt als die Jesus-Frage.
    [3]Ca. 1985 in einer Nachwahl-„Elefantenrunde“ über den späteren Stuttgart 21-Vermittler Heiner Geißler.
    [4]Ergänzung fürs Blog: Ich denke da insbesondere an Lenard vs. Einstein.
  • Digitalisierung ist: Auf dem kalten Bahnsteig warten

    Foto: Ein Zug steht mit geschlossenen Türen auf dem Bahnsteig, etliche Menschen in verschiedenen Stadien der Verwirrung davor.

    Digitalisierung live: Menschen stehen am kalten Bahnsteig vor einem geheizten Zug. Immerhin scheint die Sonne, so dass die Digitalisierung immerhin etwas für die Vitamin D-Versorgung der Fahrgäste tut.

    Heute, so gegen Neun, im Heidelberger Bahnhof: Der seit dem letzten Fahrplanwechsel dankenswerterweise stündlich und an sich flott pendelnde Regionalexpress nach Karlsruhe fährt ein, Leute steigen aus, Leute steigen ein. Ich habe mich gerade auf dem Sitz zurechtgeruckelt, als eine Durchsage kommt (etwas paraphrasiert):

    Sehr geehrte Fahrgäste, bitte steigen Sie noch einmal kurz aus. Dieses Fahrzeug muss neu gestartet werden.

    Allgemeine Verblüffung. Tatsächlich steigen aber alle aus; Digitalisierung ist ja inzwischen allgegenwärtig. Und so stehen wir auf dem kalten Bahnsteig, während der Zug dann und wann piept, schnauft und blinkt.

    Minuten vergehen. So etwa zur planmäßigen Abfahrtszeit ist der Reboot fertig, wir können wieder einsteigen. Leider fährt der Zug aber immer noch nicht. Muss erst noch die grafische Oberfläche starten? Mit 12 Minuten Verspätung setzt er sich dann doch in Bewegung, und ich werde milde nervös, denn ich soll eigentlich in Karlsruhe den TGV erwischen. Umsteigezeit 9 Minuten. Abenteuer Bahn.

    Ich warte jetzt nur auf eine Durchsage: „Dieser Zug hat derzeit eine Verspätung von 15 Minuten. Grund dafür ist ein Neustart des Fahrzeugs.“ Das wäre immerhin eine nette Abwechslung von „Personen im Gleis“ oder „Verzögerungen bei der Bereitstellung“.

    Warum genau wollten wir nochmal diese Digitalisierung haben?

  • Spatzen sehen den Mond als Fleck

    Ein etwas bedröppelt aussehender grüner Papagei mit langen Schwanzfedern.

    Dieser Halsbandsittich sieht so mitgenommen aus, weil es regnet, nicht, weil er mit Glas kollidiert ist.

    Eine Hochrechnung der Staatlichen Vogelschutzwarten in Deutschland hat ergeben, dass jährlich alleine in diesem Land ca. 100–115 Millionen Vögel an Glas verunglücken. Das sind über 5 % aller Vogelindividuen, die in Deutschland im Jahresverlauf vorkommen.

    Dieses Zitat kommt aus der Broschüre „Vogelfreundliches Bauen mit Glas und Licht” der Schweizerischen Vogelwarte Sempach[1], die vor ein paar Tagen auf der Webseite des BUND erschienen ist. Meine erste Reaktion war: „Das kann nicht sein“. Aber andererseits: Ich habe auch schon mehrfach gehört, wie Vögel gegen Fensterscheiben geprallt sind, zum Teil auch gesehen, wie sie sich dann zusammengerappelt haben – oder eben auch nicht.

    Wenn ich alle drei Jahre Zeuge eines Vogel-Glas-Unfalls bin, gut zwei Drittel davon ohne ZeugInnen ablaufen (plausibel: der durchschnittliche befensterte Raum ist bestimmt weniger als ein Drittel der Zeit bemenscht) und ich relativ typisch bin, dann gibt es in der Tat ungefähr einen Vogelunfall pro BürgerIn, und das sind halt so um die hundert Millionen.

    Oh, Grusel. Lest euch die Broschüre mal durch (Trigger Warning: Bilder von verunglückten Tieren). Ich suche gleich mal nach wetterfesten, selbstklebenden Punkten von mindestens neun Millimeter Durchmesser, mit denen ich zumindest die Balkontür an meinem Arbeitsplatz (wo es wirklich viele Vögel gibt) markieren kann. Spoiler: hinreichend dicht und an die Außenseite geklebt, helfen die Vögeln zuverlässig, das Glas zu vermeiden.

    Kein Fall für die Ethikkommission

    Schön an der Broschüre finde ich, dass sie recht sorgfältig erklärt, wie mensch eigentlich misst, ob eine bestimmte Sorte Markierung an Glasscheiben die Vögel wirklich abhält (z.B. weiße oder schwarze Klebepunkte) oder nicht (z.B. die Greifvogelsilhoutten oder Kram, der nur im Ultravioletten sichtbar ist). Dazu beschreiben sie ein Flugtunnel-Experiment, bei dem Vögel aus einem Beringungsprojekt nicht direkt wieder freigelassen werden, sondern zunächst in einen ein paar Meter langen dunklen Raum mit einem großen, hellen Ausgang gesetzt werden. Vögel fliegen in so einer Situation sehr zuverlässig zum Licht.

    Am hellen Ende des Tunnels sind nun zwei Glasscheiben angebracht, eine konventionelle und eine markierte. Wenn die Vögel halbwegs zuverlässig die markierte Seite meiden, ist die Markierung glaubhaft wirksam. Aber natürlich will mensch die Vögel, die vom Beringen eh schon gestresst sind, nicht noch gegen eine Glasscheibe krachen lassen, weshalb es ein für Vögel unsichtbares Sicherheitsnetz gibt, das sie (relativ) sanft abhält. Und dann dürfen sie auch gleich weiterfliegen.

    Ich finde das ein bemerkenswert gut designtes Experiment, weil es auf Dauer mit untrainierten Wildvögeln arbeitet, also genau mit der Population, um die es in der Realität auch geht. Und im Vergleich zur Beringung ist die zusätzliche Belastung der Tiere durch das kurze und vergleichsweise naturnahe Tunnelexperiment vernachlässigbar. Gut: Mensch mag über die Beringung als solche diskutieren – aber da halte ich mich zurück.

    Ganz besonders begeistern mich Beschreibungen von Experimenten zudem, wenn systematische Fehler von Vorgängerexperimenten besprochen werden. In diesem Fall etwa war eine Systematik, dass Vögel am Vormittag deutlich lieber die linke Scheibe wählten und am Nachmittag deutlich lieber die rechte. Die Erklärung: die Vögel wollten nicht aus dem dunklen Tunnel in die Sonne hineinfliegen (auch wenn sie nach dem Beringen gleich in den Tunnel gelassen wurden, also noch helladaptiert waren). Deshalb bogen sie am Vormittag lieber nach Westen, am Nachmittag lieber nach Osten ab – was natürlich die Wirksamkeitsmessung ganz furchtbar störte.

    Die Lösung des aktuellen Experiments, um diese Systematik zu vermeiden: Der ganze Tunnel ist drehbar montiert und wird der Sonne nachgeführt. Wow.

    Scharfsichtigkeiten

    Die Broschüre war für mich auch Anlass, mich einiger Kopfzahlen zu bedienen. So zitiert sie etwa aus Martin, G. (2017): The sensory ecology of birds, das

    Auflösungsvermögen des menschlichen Auges [sei] etwa doppelt so hoch wie das eines Turmfalken, vier Mal höher als das einer Taube und 14-mal so hoch wie das eines Haussperlings.
    Ein männlicher Sperling sitzt auf der Strebe eines Biergartenstuhls und blickt seitlich an der Kamera vorbei.

    Was er wohl über den Mond denkt? Ein Spatz im Berliner Botanischen Garten, 2008.

    Um das einzuordnen, habe ich mich erinnert, dass ein normalsichtiges menschliches Auge zwei Bogenminuten auflöst[2], und um eine Vorstellung zu bekommen, was wohl zwei Bogenminuten seien, ist die Ur-Kopfzahl für Winkel gut: Mond und Sonne sind jeweils etwa dreißig Bogenminuten (oder ein halbes Grad)[3] groß. Wenn also so ein Spatz etwa fünfzehn Mal schlechter auflöst als der Mensch, ist für ihn der Mond nur so ein heller, unstrukturierter Punkt. Today I learned…

    Will ich lieber fliegen oder lieber den Mond wie gewohnt sehen können? Hm.

    Fledermäuse und Lichtverschmutzung

    Erfreulich aus AstronomInnensicht ist der Exkurs zur Lichtverschmutzung mit einem Punkt, den ich noch gar nicht auf dem Schirm hatte:

    Fledermäuse meiden die Helligkeit, weil sie sonst leicht von Beutegreifern wie Greifvögeln und Eulen gesehen werden können. Besonders problematisch ist das Beleuchten der Ausflugöffnungen von Fledermausquartieren, wie sie beispielsweise in Kirchendachstühlen zu finden sind. Dies erschwert den Tieren den Ausflug aus den Quartieren und verringert damit die Zeit der aktiven Nahrungssuche, was wiederum den Fortpflanzungserfolg vermindern kann.

    Ich weiß nicht, wie lange das schon bekannt ist. Wenn das jetzt nicht brandneue Ergebnisse sind, bekomme ich schon wieder schlechte Laune, weil die Kirchenturmilluminationen, auf die für Fledermäuse offenbar nicht verzichtet werden konnte, im Herbst 2022 aus patriotischen Gründen plötzlich doch abgeschaltet werden konnten. Hmpf.

    Der ganze Werbe- und Touriklimbim ist übrigens alles andere als im Mittel vernachlässigbar. Nochmal die Vogelwarten-Broschüre:

    Eine Untersuchung der Wiener Umweltanwaltschaft hat gezeigt, dass in Wien 2011 zwei Drittel der Lichtverschmutzung von Schaufensterbeleuchtungen, Anstrahlungen und anderen Effektbeleuchtungen und nur ein Drittel von der öffentlichen Beleuchtung verursacht wurden, obwohl letztere zwei Drittel der Lichtpunkte betreibt.

    Ich stelle unter Verweis auf meinen Rant gegen die Dauerbeflimmerung schon wieder fest: Vernünftiges Konsumverhalten ist eigentlich selten Verzicht. Es ist viel öfter Befreiung von Mist, der den Nutzenden oder jedenfalls anderen Tieren (häufig übrigens der eigenen Spezies) das Leben eh nur schwer macht.

    Nachtrag (2023-02-13)

    Ich hätte vielleicht gleich sagen sollen, dass ich auf die Broschüre durch einen Artikel im BUNDmagazin 1/2023 aufmerksam geworden bin. Ein paar Seiten weiter hinten steht da eine Ergänzung zum Thema schlechte Laune, denn in der Tat hat Baden-Württemberg offenbar seit 2020 ein recht durchgreifendes Beleuchtungsrecht in §21 Naturschutzgesetz, in dem zum Beispiel drinsteht:

    Es ist im Zeitraum

    1. vom 1. April bis zum 30. September ganztägig und
    2. vom 1. Oktober bis zum 31. März in den Stunden von 22 Uhr bis 6 Uhr

    verboten, die Fassaden baulicher Anlagen der öffentlichen Hand zu beleuchten, soweit dies nicht aus Gründen der öffentlichen Sicherheit erforderlich oder durch oder auf Grund einer Rechtsvorschrift vorgeschrieben ist.

    oder gar:

    Werbeanlagen sind im Außenbereich unzulässig. Unzulässig sind auch Himmelsstrahler und Einrichtungen mit ähnlicher Wirkung, die in der freien Landschaft störend in Erscheinung treten.

    Naturschutzrecht ist offenbar ein wenig wie Datenschutzrecht. Mensch staunt regelmäßig über die Dissonanz zwischen Recht und Praxis – nicht zuletzt, weil es dann doch immer allerlei interessante Ausnahmen gibt, im Fall von §21 NatSchG vor allem Artikel 5.

    Kopfzahlen: Beleuchtungsstärken

    Während ich bei den Scharfsichtigkeiten mit Kopfzahlen auskam, die ich schon parat hatte, sammele ich die zu Beleuchtungsstärken jetzt gerade aus der Broschüre (die sie wiederum aus der Wikipedia hat). Die Beleuchtungsstärke ist dabei ein Maß, wie viel Licht pro Flächeneinheit auftrifft. Es ist nicht falsch, sich vorzustellen, dass sie misst, wie hell ein Stück Papier wirkt, wenn ihr es in dem entsprechenden Licht anguckt.

    Und da will ich mir merken: An einem Sommertag draußen ist die Beleuchtungsstärke 90'000 Lux; ein ordentlich ausgeleuchtetes Büro („Pfui, ist das ungemütlich“) hat nur ein verblüffendes halbes Prozent davon (also etwa 500 Lux), ein fernsehgerechter Wohnraum („endlich keine doofe Arbeit mehr”) gar nur ein halbes Promille.

    Zu bedenken ist dabei allerdings, dass unsere Helligkeitswahrnehmung, wie fast alle unsere Sinne, logarithmisch funktioniert. Die Wahrnehmung von Intensitäten geht also wie der Logarithmus der einkommenden Energie (vgl. etwa Dezibel). Mithin wäre es vielleicht sinnvoller, sich 5 (plusminus der dekadische Logarithmus von 90'000), 2.5 (Büro) und 1.5 (Wohnraum) zu merken. Andererseits ist diese Sorte von Kopfzahl vielleicht auch relevanter, wenn mensch abschätzen will, ob – sagen wir – ein Solarlader was tun wird oder nicht. Sowas geht aber bei unverändertem Spektrum weitgehend linear mit der einkommenden Energie.

    Bei genaueren Betrachtungen sind photometrische Einheiten übrigens immer ein Graus – als Astronom könnte ich davon viele Lieder singen, von Jansky, AB-Magnituden (gibts noch nicht in der deutschen Wikipedia) versus Vega-Magnituden (gibts noch nicht mal in der englischen Wikipedia) und vielem mehr. Immerhin kann ich mir traditionell merken, dass ein ordentlicher Beamer für Besprechungsräume 2000 Lumen Lichtstrom erzeugt. Dieser Lichtstrom ist so in etwa ein Maß dafür, wie viele Photonen (bei gegebener Frequenz und damit Energie pro Photon) pro Zeiteinheit aus so einer Lampe kommen[4]. Und ich kann mir gerade noch so merken, dass

    1  lux = (1  lm)/(1 m2)

    ist. Wenn ihr ein wenig rechnet, heißt das: Damit ein A5-Blatt (faul idealisiert auf 15 mal 15 Zentimeter) genauso hell scheint wie im Sommersonnenschein, braucht ihr das ganze Licht eines ordentlichen Beamers auf diesem Stück Papier. Das hätte ich per Bauchgefühl ganz anders geschätzt.

    Noch was gelernt heute.

    [1]Schweizer Provenienz heißt auch: Nicht ein blödes scharfes s im ganzen Text. Fantastisch! Können wir dießen Quatsch hier auch abschaffen?
    [2]Die englische Wikipedia …
  • Klarsprache: Migrationskontrolle als militärisches Problem

    Foto: Betonmauer und Wachturm, rekonstruiert an der Mauer-Gedenkstätte in der Bornholmer Straße in Berlin, gesehen von der alten Ostseite.

    Ist das noch ein Zaun? Und was sagen die „militärischen Fachleute“ zu seiner Eignung?

    Die Militarisierung aller möglicher Politikfelder hat ganz sicher nicht erst mit der <hust> Zeitenwende angefangen; speziell bei der Migrationskontrolle – noch spezieller bei der gewaltformigen Abwehr regierungsseitig unerwünschter Menschen – markiert etwa die Gründung von Frontex im Jahr 2004 so eine <hust> Zeitenwende.

    Die <hust> „verteidigungs”-politischen Richtlinien der Bundeswehr signalisieren in der Frage jedoch Kontinuität. In deren ersten Version (1992) ist nicht nur bereits sieben Jahre vor dem ersten ordentlichen Krieg der Bundeswehr von der (sc. militärischen) „Aufrechterhaltung des freien Welthandels und des ungehinderten Zugangs zu Märkten und Rohstoffen in aller Welt“ die Rede. Nein, im Einklang mit den damaligen Angriffen auf das Grundrecht auf Asyl formulierte die Bundeswehr:

    Jede Form internationaler Destabilisierung […] setzt Migrationsbewegungen in Gang […] Bei insgesamt negativem Entwicklungsverlauf kann dieser Zusammenhang auch militärische Dimensionen gewinnen.

    In der aktuellen Version von 2011 liest sich das so:

    Sicherheit wird nicht ausschließlich geografisch definiert. Entwicklungen in Regionen an Europas Peripherie und außerhalb des europäischen Sicherheits- und Stabilitätsraumes können unmittelbaren Einfluss auf die Sicherheit Deutschlands entfalten [… Es] entstehen Bedrohungen wie Bürgerkrieg, Destabilisierung von Regionen, humanitäre Krisen und damit verbundene Phänomene wie Radikalisierung und Migrationsbewegungen.

    Ob bereits in der nächsten Version dieser „Leitlinien“ direkt von der militärischen Kontrolle von „Bedrohungen“ durch grenzüberschreitende Menschen die Rede sein wird, bleibt abzuwarten.

    Dass die EU-Kommission schon seit Jahren in dieser Richtung diskutiert, kann hingegen spätestens seit heute morgen als gesichert gelten. Da nämlich hat Friedbert Meurer im Deutschlandfunk Franz Fischler interviewt, der von 1995 bis 2004 – also gerade in der Entwurfsphase von Frontex – in der EU-Kommission das (schon aus finanziellen Gründen) mächtige Landwirtschaftressort geleitet hat.

    Gefragt, was er von einem „Zaun“[1] halte, der zwischen der Türkei und Bulgarien Flüchtende abwehren soll, sagte dieser Mann (ca. Minute 2:10):

    …das kann ich jetzt auch nicht beweisen, ob es hilft oder nicht hilft [… von der Leyen meint, man] muss das also entsprechend auch ausstatten, mit Kameras, mit Luftraumüberwachung, mit Drohnen und was weiß ich was. Die anderen sagen, es hilft gar nicht. Also, ich kann da hier nicht den Schiedsrichter spielen, ich glaube, da muss man sich auf die militärischen Fachleute verlassen. [Hervorhebung A.F.]

    Das ist schon ziemlich klare Klarsprache: Die Frage ist längst nicht mehr, ob „wir“ Asylsuchende (oder ggf. auch anderweitig Migrierende) mit Gewalt abweisen dürfen oder gar sollen. Die Frage ist nicht mal mehr, welche Mittel für so ein eigentlich menschenrechtswidriges Verhalten ethisch oder juristisch in Ordnung gehen könnten. Die Frage ist einfach nur noch, was militärisch nützlich oder wirksam sein könnte.

    Ich frage mich mal wieder, was die Menschen in hundert Jahren über uns denken werden.

    [1]Es gibt ein Spektrum zwischen Vorort-Jägerzaun und Todesstreifen – ich habe den „Zaun“ hier mal in Anführungszeichen gesetzt, weil das diskutierte Bauwerk auf diesem Spektrum wahrscheinlich näher beim Todesstreifen liegen würde als beim Jägerzaun.
  • Eine neue Metrik für Webseiten: Crapicity

    Screenshot einer Webseite mit großem Banner "Crapicity" über einer Eingabezeile und einer Balkengrafik, die nach Lognormal-Verteilung aussieht.

    Die Krapizität der Webseiten, auf die ich hier so verlinkt habe (und noch ein paar mehr): works with netsurf!

    Kurz nachdem das Web seine akademische Unschuld verloren hat, Ende der 1990er, habe ich den UNiMUT Schwobifying Proxy geschrieben, ein kleines Skript, das das ganze Web in Schwäbisch, hust, erlebbar machte. Tatsächlich hat mir das gegen 2002 meine 15 Minuten des Ruhms verschafft, inklusive 200'000 Zugriffen pro Tag (fürs damalige Netz rasend viel), Besprechungen auf heise.de, spiegel.de und, für mich offen gestanden am schmeichelndsten, in Forschung aktuell (also gut: Computer und Kommunikation) im Deutschlandfunk.

    Ein heimlich verwandtes Web-Experiment war dass Dummschwätzranking von 1998, das – nicht völlig albern – die Dichte von (damals gerade modernen) Heißdampfworten in Webseiten beurteilt hat – dafür interessieren[1] sich bis heute Leute.

    Beide Spielereien sind praktisch abgestellt, teils, weil das kommerzielle Internet und SEO solche Sachen rechtlich oder praktisch sprengen. Teils aber auch, weil sie darauf bauen, dass das, was Leute im Browser sehen, auch in etwa das ist, was im HTML drinsteht, das so ein Programm von den Webservern bekommt. Das aber ist leider im Zuge der Javascriptisierung des Web immer weniger der Fall.

    Nun ist sicherlich die Habituierung der Menschen an „lass einfach mal alle Leute, von denen du was lesen willst, Code auf deiner Maschine ausführen“ die deutlich giftigere Folge des Post-Web-1-Megatrends. Aber schade ist es trotzdem, dass zumindest im kommerziellen Web kein Mensch mehr in die Seiten schreibt, was nachher in den dicken Javascript-Browsern angezeigt werden wird.

    Und weil das schade ist, habe ich einen postmodernen Nachfolger des Dummschwätzrankings geschrieben: Die Crapicity-Maschine (sorry, nicht lokalisiert, aber sprachlich sowieso eher arm). Ihre Metrik, namentlich die Crapicity oder kurz c7y: das Verhältnis der Länge lesbaren Textes (das, was ohne Javascript an Zeichen auf den Bildschirm zu lesen ist) zur Gesamtlänge der Seite mit allem eingebetteten Markup, Javascript und CSS (also: externes Javascript, CSS usf nicht gerechnet). In Python mit dem wunderbaren BeautifulSoup-Modul ist das schnell berechnet:

    def compute_crapicity(doc):
      """returns the crapicity of html in doc.
    
      doc really should be a str -- but if len() and BeautifulSoup() return
      something sensible with it, you can get away with something else, too.
      """
      parsed = BeautifulSoup(doc, "html.parser")
      content_length = max(len(parsed.text), 1)
      return len(doc)/content_length
    

    Um diese knappe Funktion herum habe fast 700 Zeilen herumgeklöppelt, die Ergebnisse in einer SQLite-Datenbank festhalten und ein Webinterface bereitstellen. Als Debian-und-eine-Datei-Programm sollte das recht einfach an vielen Stellen laufen können – wer mag, bekommt die Software bei codeberg.

    Die Web-Schnittstelle bei https://blog.tfiu.de/c7y hat aber den Vorteil, dass sich die Scores sammeln. Spielt gerne damit rum und empfiehlt es weiter – ich fände es putzig, da vielleicht 10'000 Seiten vertreten zu haben. Ich habe selbst schon knapp 200 Web-Ressourcen durchgepfiffen, meistenteils Links aus dem Blog hier.

    Im Groben kommt raus, was wohl jedeR erwartet hat: Das kommerzielle Netz stinkt, alter Kram und Techno-Seiten sind meist ganz ok. Allerdings habe ich den aktuellen Spitzenreiter, eine Reddit-Seite mit einem c7y von über 17'000, noch nicht ganz debuggt: Erstaunlicherweise ist die Seite auch im netsurf und ohne Javascript lesbar. Wie sie das macht: nun, das habe ich in 800 kB Wirrnis noch nicht rausgefunden, und der Quellcode der Seite sieht so schrecklich aus, dass der Score sicherlich verdient ist.

    Ich nehme mal an, dass derzeit alle youtube-Seiten bei c7y=8222 liegen; dort ist ja durchweg ohne Javascript nichts zu sehen, und so haut auch dieser Score prima hin. Bei taz.de (gerade 892) geht es vielleicht nicht so gerecht zu, denn die Seite funktioniert in der Tat auch ohne Javascript ganz gut. Eventuell ist hier BeautifulSoup schuld. Hochverdient hingegen sind die 682 von nina.no – das ist ohne Javascript leer. Eine Twitter-Seite liegt bei 413, Bandcamp bei 247.

    Vernüftige Seiten liegen dagegen zwischen etwas über eins (minimales Markup) und zehn (z.B. wenig Text mit viel CSS). Dishonorable Mention: uni-heidelberg.de liegt trotz Akademia bei 177. Tatsächlich ist die Seite auch in normalen Browsern[2] halbwegs lesbar. Der schlechte Score liegt vor allem an eingebetten SVGs, ist also schon ein ganz klein wenig unfair. Aber ehrlich: wer für ein bisschen Glitz ein paar hundert Zeichen Text auf satte 680k aufbläht, hat eine große crapicity verdient, auch wenn die Seite selbst nicht richtig kaputt ist. Wer unbedingt so viel Glitz haben will, soll externe Bilder verwenden – die muss ich nicht runterladen, wenn ich nicht will.

    Wer interessante Krapizitäten findet: Die Kommentarbox wartet auf euch.

    [1]Na gut, viel von dem Interesse kam aus erkennbar aus SEO-Kreisen; das war dann auch einer der Gründe, warum ich das eintragen von Links beim Dummschwätzranking abgestellt habe.
    [2]Definiert als: Alles außer den Monstren Firefox, Chrome, Webkit und ihren Derivaten.
  • „Seit bald acht Jahrzehnten nicht mehr“?

    Plot einer Badewannenkurve; die Ränder sind Mai 2022 und Februar 2022

    Der Olivindex mal als Linie geplottet (oh: das ist mit einem Acht-Tage-Gauß geglättet).

    Ich lese immer noch flächendeckend die Presseschau im Deutschlandfunk, um meinen Olivindex fortzuführen. Gedacht als grobes Maß für die bedenkliche Mischung aus Kriegsbegeisterung und Patriotismus ist der Olivindex in Wirklichkeit der Anteil der in der Presseschau vertretenen Kommentare, die ersichtlich voraussetzen, dass an deutschem Militär und deutschen Waffen die Welt genesen könnte oder gar müsste.

    Seit dem letzten Mai habe ich am Fuß jeder Blog-Seite unter „Kriegsfieber aktuell“ jeweils eine Visualisierung dieser Scores als olive Farbbalken. Oben hingegen zeige ich das Ganze mal als klassischeren Plot, unter Wiederverwendung der Gauß-Glättung aus der Untersuchung der CO₂-Zeitreihe[1].

    Es wäre wahrscheinlich interessant, das allmähliche Absinken des journalistischen Kriegsfiebers zwischen Mai und Juli mit den Ereignissen zu korrelieren, das kurzfristige Wiederaufflackern im Laufe des Septembers – ich glaube, im Wesentlichen im Gefolge der russischen Teilmobilmachung –, die kühleren Herzen im November und Dezember und das Wiederanschwellen des Bocksgesangs hin zu den weiter wachsenden Waffenlieferungen der letzten Zeit. Aber das ist wahrscheinlich eine Arbeit, die mit mehr historischer Distanz besser von der Hand gehen wird.

    Ich erzähle das jetzt gerade alles nur, um zu motivieren, wie ich auf den Preisträgertext gekommen bin für den

    Horst-Köhler-Preis für beunruhigend ernst gemeinte Worte.

    Der aktuelle Preisträger ist die Pforzheimer Zeitung, die ausweislich der gestrigen DLF-Presseschau (wenn der Link kaputt ist: sorry, der DLF depubliziert den Kram immer noch rasend schnell) ausgerechnet die doch eher zahme Frage der Faeser-Kandidatur mit folgendem ziemlich unprovozierten Ausfall kommentiert:

    Bundesinnenministerin will die 52-Jährige bis zur Hessen-Wahl bleiben – also ‚nebenher‘ auch noch Wahlkampf machen. In einer Phase, in der die nationale Sicherheit Deutschlands so wichtig ist wie seit bald acht Jahrzehnten nicht mehr.

    Ummmm. Acht Jahrzehnte sind achtzig Jahre, 2023-80 gibt 1943. Damals war nach Ansicht des Pforzheimer Kommentators die „nationale Sicherheit“, zumal von „Deutschland“ ganz besonders „wichtig“? Uiuiuiui… Nun. Pforzheim. Die Stadt, in der bei den Landtagswahlen 2016 24.2% der Abstimmenden die AfD gewählt haben – damit waren die damals stärkste Kraft im Wahlkreis.

    Eine gewisse Logik liegt da schon drin. Unterdessen herzlichen Glückwünsch an den/die PreisträgerIn.

    [1]Nun: weil mir hier die Ränder wichtig waren, habe ich etwas mehr „Sorgfalt“ (mensch könnte auch von „Großzügigkeit” reden) auf das Padding am Anfang und Ende der Zeitreihe verwendet, also die Stellen, an denen der Glättungskern über die Daten rausreicht. Ich mache das jetzt gerade durch Fortschreibung der jeweiligen Randelemente; das gibt diesen an den Rändern viel zu viel Gewicht, aber es ist immer noch besser als einfach mit Nullen fortzuschreiben. Wer mag, kann mein Tricksen in der smooth_gauss-Funktion in olivin ansehen.
  • Speech Recognition with Whisper.cpp

    Today I stumbled across Whispers of A.I.'s Modular Future by James Somers, a piece that, at least by the standards of publications aimed at the general public, makes an excellent point of why whisper.cpp might finally be some useful and non-patronising output of the current AI hype.

    What can I say? I think I'm sold. And perhaps I'm now a little bit scared, too. If you want to understand way and speak a bit of German, you can skip to The Crazy right away.

    The Good

    You know, so far I've ignored most of the current statistical modelling (“AI”, “Machine Learning“) – if you need a graphics chip with drivers even worse than Intel's, and that then needs 8 GB of video RAM before anything works, I'm out. And I'm also out when the only way I can use some software is on some web page because there's proprietary data behind it.

    Not so for whisper.cpp. This is software as it was meant to be: trivial dependencies, compact, works on basically any hardware there is. To build it, you just run:

    git clone https://github.com/ggerganov/whisper.cpp/
    cd whisper.cpp
    make
    

    – and that's it. No dependency juggling down to incompatible micro versions, no fancy build system, just a few C(++) sources and a Makefile. The thing works in place without a hitch, and it has a sensible command line interface.

    Well, you need the language models, of course. There are some reasonably free ones for English. The whisper.cpp distribution's models/README.md explains how to obtain some. I got myself ggml-small.en.bin, recorded a few words of English into a file zw.wav and ran:

    ./main -m models/ggml-small.en.bin ~/zw.wav
    

    The machine demanded I use a samplerate of 16 kHz, I made audacity oblige, ran the thing again and was blown away when – admittedly after a surprisingly long time – my words appeared on the screen.

    I immediately tried to figure out how to stream in data but then quickly decided that's probably not worth the effort; the software needs to see words in context, and for what I plan to do – transcribing radio shows – having an intermediate WAV file really does not hurt.

    I quickly cobbled together a piece of Python wrapping the conversion (using the perennial classic of audio processing, sox) somewhat cleverly, like this:

    #!/usr/bin/python
    # A quick hack to transcribe audio files
    #
    # Dependencies:
    # * sox (would be mpv, but that's somehow broken)
    # * a build of whispercpp (https://github.com/ggerganov/whisper.cpp/)
    # * a language model (see models/README.md in the whisper source)
    
    import contextlib
    import os
    import subprocess
    import sys
    import tempfile
    
    WHISPER_DIR = "/usr/src/whisper.cpp"
    
    
    @contextlib.contextmanager
    def workdir(wd):
            prev_dir = os.getcwd()
            try:
                    os.chdir(wd)
                    yield
            finally:
                    os.chdir(prev_dir)
    
    
    def transcribe(audio_source, model, lang):
            """transcibes an audio file, creating an in-place .txt.
    
            model must be the name of a model file in WHISPER_DIR/models;
            lang is the ISO language code in which the output should turn up.
            """
            audio_source = os.path.join(os.getcwd(), audio_source)
            with tempfile.TemporaryDirectory(suffix="transcribe", dir="/var/tmp") as wd:
                    with workdir(wd):
                            subprocess.check_call(["sox",
                                    audio_source,
                                    "-b", "16", "-r", "16000", "-c", "1",
                                    "audiodump.wav"])
    
                            out_name = os.path.splitext(audio_source)[0]
                            subprocess.check_call([WHISPER_DIR+"/main",
                                    "-l", lang,
                                    "-m", WHISPER_DIR+"/models/"+model,
                                    "-otxt", "-of", out_name,
                                    "audiodump.wav"])
    
    
    def parse_command_line():
            import argparse
            parser = argparse.ArgumentParser(description="Wrap whisper.cpp to"
                    " bulk-transcribe audio files.")
            parser.add_argument("model", type=str, help="name of ggml language"
                    f" model to use, relative to {WHISPER_DIR}/models")
            parser.add_argument("audios", type=str, nargs="+",
                    help="Sox-translatable audio file to transliterate.")
            parser.add_argument("--lang", type=str, default="en",
                    help="Spoken language to try and recogonise")
    
            return parser.parse_args()
    
    
    if __name__=="__main__":
            args = parse_command_line()
            for audio in args.audios:
                    transcribe(audio, args.model, args.lang)
    

    Nachtrag (2023-06-26)

    (Added a --lang option as per ron's feedback below)

    I have that as transcribe.py in my path, and I can now enter the rip of an audiobook and say:

    transcribe.py ggml-small.en.bin *.ogg
    

    (provided I have downloaded the model as per whisper.cpp's instructions). After a little while (with high CPU usage), there is a transcript on my disk that's better what I had typed myself even after two rounds of proof-reading, except that whisper.cpp doesn't get the paragraphs right.

    For the first time in the current AI hype, I start getting carried away, in particular when I consider how much speech recognition sucked when I last played with it around 2003, using a heap of sorry failure called viavoice.

    The Bad

    Skip the rant to get to the exciting part.

    Trouble is: What I'd mainly like to transcribe is German radio, and whisper.cpp does not come with a German language model. Not to worry, one would think, as whisper.cpp comes with conversion scripts for the pyTorch-based whisper models like those one can get from Hugging Face. I downloaded what I think is the model file and cheerfully ran:

    $ python convert-h5-to-ggml.py /media/downloads/model.bin
    Traceback (most recent call last):
      File "/home/src/whisper.cpp/models/convert-h5-to-ggml.py", line 24, in <module>
        import torch
    ModuleNotFoundError: No module named 'torch'
    

    Oh bummer. Well, how hard can it be? Turns out: Surprisingly hard. There is no pytorch package Debian stable. Ah… I very much later realised there is, it's just that my main system still has an i386 userland, and pytorch is only available for amd64. But I hadn't figured that out then. So, I enabled a virtual python (never mix your system python and pip) and ran:

    $ pip install torch
    ERROR: Could not find a version that satisfies the requirement torch
    ERROR: No matching distribution found for torch
    

    Huh? What's that? I ran pip with a couple of -v sprinkled in, which at least yielded:

    [...]
    Skipping link: none of the wheel's tags match: cp38-cp38-win_amd64: https://download.pytorch.org/whl/cpu/torch-1.9.0%2Bcpu-cp38-cp38-win_amd64.whl (from https://download.pytorch.org/whl/cpu/torch/)
    [...]
    Given no hashes to check 0 links for project 'torch': discarding no candidates
    ERROR: Could not find a version that satisfies the requirement torch
    ERROR: No matching distribution found for torch
    [...]
    

    The message with “Given no“ has a certain lyric quality, but other than that from the “Skipping“ messages I concluded they don't have 32 bit builds any more.

    Well, how hard can it be? Pypi says the sources are on github, and so I cloned that repo. Oh boy, AI at its finest. The thing pulls in a whopping 3.5 Gigabytes of who-knows-what. Oh, come on.

    python setup.py build fails after a short while, complaining about missing typing_extensions. Manually running pip install typing_extensions fixes that. But I killed setup.py build after a few minutes when there were only 50/5719 files built. Has AI written that software?

    In the meantime, I had gone to a machine with a 64 bit userland, and to be fair the experience wasn't too bad there, except for the hellish amount of dependencies that pytorch pulls in.

    So, my expectations regarding “AI code” were by and large met in that second part of the adventure, including the little detail that the internal links on https://pypi.org/project/torch/ are broken because right now their document processor does not produce id attributes on the headlines. Yeah, I know, they're giving it all away for free and all that. But still, after the brief glimpse into the paradise of yesteryear's software that whisper.cpp afforded, this was a striking contrast.

    The Crazy

    So, I converted the German language model doing, in effect:

    git clone https://github.com/openai/whisper.git
    git lfs install
    git clone https://huggingface.co/bofenghuang/whisper-small-cv11-german
    python convert-h5-to-ggml.py whisper-small-cv11-german/ whisper tmp
    

    (where I took convert-h5-to-ggml.py from whisper.cpp's repo). Then I moved the resulting tmp/ggml-model.bin to german-small.ggml and ran:

    transcribe.py german-small.ggml peer_review_wie_objektiv_ist_das_wissenschaftliche_dlf_20221214_1646_8a93e930.mp3
    

    with my script above and this German-language mp3 from Deutschlandfunk. From the English experience, I had expected to get an almost flawless transliteration of the German text. What I got instead was (paragraphs inserted by me); listen to the audio in parallel if you can:

    Germany. Research is on [that was: Deutschlandfunk Forschung aktuell]

    A Nobel Prize for Science is not easy without further ado. They really need to find something out. For example, Vernon Smith, who is now 95 years old, is now the father of the Experimental Economy. In 2002 he won the Nobel Prize for Science.

    This made such a prize and renommee also make impression on other Fachleuteen and that actually influenced the unabhängig well-office method for scientific publications. This has recently shown a study of Business Science in the Fachmagazin PNS. Anike Meyer spoke with one of the authors.

    When Jürgen Huber and his colleagues thought about the experiment, it was clear to them that this is not fair. The same manuscript was given by two different authors, Vernon …

  • Trailing blanks, vim and git

    Trailing blanks may be␣␣␣␣␣
    evil when git displays diffs.␣␣␣␣␣␣␣
    Time to remove them.
    

    I'm currently going through a major transition on my main machine in that I have configured my vim to strip trailing blanks, that is, to automatically remove space characters (as in U+0020) immediately before the ends of lines[1].

    Why do I do this? I suppose it mainly started with PEP 8, a style guide für Python source code which says trailing whitespace is evil. It has a point, but I have to say trailing whitespace really became a problem only when style checkers started rejecting trailing blanks, which then made all kinds of tools – including other peoples' editors – automatically strip trailing whitespace.

    That, in turn, causes the diffs coming out of version control systems to inflate, usually without anyone – neither the people leaving the trailing whitespace nor the ones whose tools remove them – actually wanting that. And well, I tackled this about now because I was fed up with humonguous continuous integration runs failing at the very end because they found a blank at the end of some source file.

    So, while I can't say I'm convinced trailing whitespace actually is as evil as all that, I still have to stomp it out to preserve everyones' nerves.

    Configuring vim to replace trailing blanks with nothing when saving files is relatively straightforward (at least if you're willing to accept a cursor jump now and then). The internet is full of guides explaining what to do to just about any depth and sophistication.

    Me, I am using a variant of a venerable vintage 2010 recipe that uses an extra function to preserve the state over a search/replace operation to avoid jumping cursors. I particularly like about it that the Preserve function may come in handy in other contexts, too:

    function! Preserve(command)
      " run command without changing vim's internal state (much)
      let _s=@/
      let prevpos = getcurpos()
      execute a:command
      let @/=_s
      call cursor(prevpos[1], prevpos[2])
    endfunction
    
    au BufWritePre * if !&binary | call Preserve("%s/  *$//e") | endif
    

    That is now in my ~/.vimrc.

    But I still have all the repositories containing files having trailing blanks. To keep their histories comprehensible, I want to remove all trailing blanks in one commit and have that commit only do these whitespace fixes. The trouble is that even with version control (that lets you back out of overzealous edits) you will want to be careful what files you change. Strip trailing blanks in a (more or less) binary file and you will probably break that file.

    So, here is what I do to fix trailing blanks in files that need it while leaving alone the ones that would break, using this blog's VCS (about) as an example:

    1. In preparation, make sure you have committed all other changes. Bulk operations are dangerous, and you may want to roll back everything in case of a fateful typo. Also, you don't want to pollute some other, meaningful commit with all the whitespace noise.

    2. In the root of the repository, look for candidate files containing trailing blanks, combining find and grep like this:

      find . -type f | xargs grep -l ' $'
      

      A brief reminder what's going on here: grep -l just lists file names with matches of the regular expression, ' $' is a regular expression matching a blank at the end of a line; xargs is a brilliant program reading command line arguments for the program named in its arguments from stdin, and the find invocation prints all names of actual files (as opposed to directories) below the current directory.

      It may be preferable to use some grep with built-in find functionality (I sometimes use ripgrep), but if I can make do with basic GNU or even better POSIX, I do, because that's something that's on many boxes rather reliably.

      The price to pay in this particular case: this recipe won't work if you have blanks in your file names (using -print0 in find and -0 in xargs would fix things here, but then the next step would break). Do yourself a favour and don't have blanks in your filenames. Having dashes in them looks-better-anyway: it makes you look like a die-hard-LISP-person.

    3. Now use egrep -v to filter file names, building patterns of names to ignore and process later, respectively. For instance, depending on your VCS, you will usually have lots of matches in .git or .svn or whatever, and most of these will break when you touch them (not to mention they won't spoil your history anyway). Coversely, it is clear that I want to strip trailing blanks on ReStructuredText files. My two patterns now grow in two separate egrep calls, one for files I don't want to look at, the other for files I will want to strip trailing blanks in:

      find . -type f |\
        egrep -v '\.git' |\
        egrep -v '\.rst$' | xargs grep -l ' $'
      

      This prints a much smaller list of names of files for which I have not yet decided whether or not to strip them.

    4. Repeat this: On the side of files I shouldn't touch, I spot some names ending in .jpeg, .png, and .db. On the side of files that need processing, I notice .html, .css, and .py. So, my next iteration is:

      find . -type f |\
        egrep -v '\.git|\.(jpeg|png|db)$' |\
        egrep -v '\.(rst|html|css|py)$' |\
        xargs grep -l ' $'
      

      That's a still smaller list of file names, among which I spot the index files used by my search engine in .xapian_db, .pyc files used by Python, and a vim .swp file. On the other hand I do want to process some files without an extension, so my next search command ends up as:

      find . -type f |\
        egrep -v '\.git|\.xapian_db|\.(jpeg|png|db|pyc|swp)$' |\
        egrep -v 'README|build-one|\.(rst|html|css|py)$' |\
        xargs grep -l ' $'
      

      That's it – this only leaves a few files as undecided, and I can quickly eyeball their names to ascertain I do not want to touch them. My second pattern now describes the set of files that I want to strip trailing blanks from.

    5. Stripping trailing blanks is easily done from the command line with sed and its inline (-i) option: sed -i 's/  *$//' <file1> <file2>...[2]. The file names I can produce with find alone, because at least GNU find supports the extended regular expressions I have just produced in my patterns; it needs a -regexptype option to correctly interpret them, though:

      find . -regextype egrep -regex 'README|build-one|.*\.(rst|html|css|py)$' |\
        xargs grep -l ' $'
      

      The advantage of using find alone over simply inverting the egrep (by dropping the -v) is that my gut feeling is the likelihood of false positives slipping through is lower this way. However, contrary to the egrep above, find's -regex needs to match the entire file name, and so I need the .* before my pattern of extensions, and editing REs might very well produce false positives to begin with… Ah well.

      Have a last look at the list and then run the the in-place sed:

      find . -regextype egrep -regex 'README|build-one|.*\.(rst|html|css|py)$' |\
        xargs grep -l ' $' |\
        xargs sed -i 's/  *$//'
      
    6. Skim the output of git diff (or svn diff or whatever). Using the blacklist built above, you can see whether you have indeed removed trailing whitespace from files you wanted to process:

      find . -type f |\
        egrep -v '\.git|\.xapian_db|\.(jpeg|png|db|pyc|swp)$' |\
        xargs grep -l ' $'
      

      If these checks have given you some confidence that the trailing blanks have vanished and nothing else has been damaged, commit with a comment stressing that only whitespace has been changed. Then take a deep breath before tackling the next repo in this way.

    [1]This post assumes your sed and you agree on what marks the end of the line. Given it's been quite a while since I've last had to think about CRs or CRLFs, it would seem that's far less of a problem these days than it used to be.
    [2]Incidentally, that's a nice example for why I was so hesitant about stripping white space for all these years: Imagine some edits make it so a line break sneaks in between sed -i 's/ and *$//'. Then both blanks that are there are gone, and even if the text is reflowed again later, it will still be broken (though not catastrophically so in this particular case).
  • Neun Monate Umwelt-CO₂, Teil II: Hochpass, Tiefpass, Spektrum

    Eher wolkiges grünes Wabern mit der Zeit auf der Abszisse und Frequenzen von 1/3 bis 3 pro Tag auf der Ordinate.  Dann und wann sind Strukturen bei ganzzahligen Frequenzen erkennbar.

    Am Ende des Posts verrate ich, welche Bewandnis es mit diesem hübschen, nachgerade frühlingshaften Muster hat. Und auch, wie mensch sowas selbst macht.

    Ich habe letztes Jahr neun Monate lang CO₂-Konzentrationen auf meinem Balkon gemessen, in der Hoffnung, ein wenig hinter die Gründe für die doch überraschend großen Konzentrationsschwankungen zu kommen, für die ich bei einer ersten Messung im November 2021 nur sehr spekulative Erklärungen gefunden habe (Stand Februar vor allem: die lokale Heizung und eventuell das Kraftwerk in Rheinau oder die Chemiefabriken in Ladenburg oder Ludwigshafen). Ich habe dann neulich an der Kalibration der Daten gespielt und bin zum Schluss gekommen, dass sie nach Maßstäben von KonsumentInnenelektronik recht ordentlich sein dürften.

    Jetzt möchte ich ein wenig in den Daten rumfummeln. „Explorative Datenanalyse“ nennen das Leute, die das mit dem Fummeln nicht zugeben wollen, und in der ernsthaften Wissenschaft wird zurecht etwas die Nase gerümpft, wenn jemand sowas macht: Es stecken in jedem hinreichend großen Datensatz fast beliebig viele Korrelationen, und wer sie sucht, wird sie auch finden. Leider sind (fast) alle davon Eigenschaften des Datensatzes bzw. der Messung, nicht aber des untersuchten Gegenstands.

    Andererseits: Ohne Induktion (was in normale Sprache übersetzt „Rumspielen, bis mensch einen Einfall hat“ heißt) gibt es, da muss ich Karl Popper ganz heftig widersprechen, keine Erkenntnis, und Deduktion kann mensch nachher immer noch machen (also, ich jetzt nicht, weil das hier mein Freizeitvergnügen ist und keine Wissenschaft).

    Erstmal glätten

    Meine ganz große Enttäuschung mit dem Datensatz war ja, dass sich fast kein Jahreszeiteneffekt gezeigt hat; natürlich werde ich hier, mitten im dichtbesiedelten Oberrheingraben, kein so hübsches Signal bekommen wie die Leute mit der klassischen Messung am Mauna Loa – davon, dass ich eine Schwingung von ein paar ppm nachvollziehen könnte, ganz zu schweigen. Aber ich hatte im September 2021 unter 300 ppm gemessen, während es im Herbst auf die global eher aktuellen 400 bis 500 ppm hochging. Ich hatte gehofft, den Weg zurück zu den 300 ppm im Laufe des Sommers beobachten zu können. Doch leider ist in den (Roh-) Daten erstmal nur Gekrakel:

    Plot: Kurve, die fast immer zwischen 400 und 500 ppm zittert. Auf der Abszisse die Zeit zwischen Ende Dezember 2021 und Mitte September 2022.

    Wenn in einem Datensatz nur Gekrakel ist, es aber einen langfristigen Effekt geben soll, hilft oft Glätten. Dabei ersetzt mensch jeden Punkt durch einen geeignet gebildeten Mittelwert über eine größere Umgebung dieses Punktes, wodurch kurzfristiges Gewackel wie in meinen Rohdaten stark unterdrückt wird und die langfristigen Trends besser sichtbar werden sollte. Es gibt noch einen zweiten Gewinn: Mensch kann das so gewonnene Mittel von den Daten abziehen und hat sozusagen destilliertes Gewackel (den „hochfrequenten Anteil“), der auf diese Weise auch ein klareres Signal zeigen mag.

    Im einfachsten Fall lässt sich so eine Glättung in ein paar Zeilen Python schreiben, und das auch noch relativ effizient als gleitendes Mittel unter Verwendung einer zweiendigen Queue aus Pythons großartigem Collections-Modul: Um das Mittel zu berechnen, addiere ich auf einen Akkumulator, und das, was ich da addiere, muss ich wieder abziehen, wenn der entsprechende Wert aus dem Fenster rausläuft. Dazu gibts noch die Subtilität, dass ich Zeit und Konzentration in der Mitte des Fensters zurückgeben will. Das führt auf so eine Funktion:

    def iter_naively_smoothed(in_file, smooth_over):
        queue = collections.deque()
        accum = 0
    
        for time, co2 in iter_co2(in_file):
            queue.append((time, co2))
            accum += co2
            while time-queue[0][0]>smooth_over:
                _, old = queue.popleft()
                accum -= old
            time, base_co2 = queue[len(queue)//2]
            yield time, accum/len(queue), base_co2-accum/len(queue)
    

    Als Plot sehen die über drei Tage[1] geglättete Konzentrationskurve und die Residuen so aus:

    Zwei Kurven, oben eine wellige Linie (die geglättete Kurve), unten eine sehr zackige Punktwolke.

    Die Ränder, vor allem der linke, sind dabei mit Vorsicht zu genießen, da dort fast nichts geglättet ist; die Funktion ist so geschrieben, dass dort die Fenster klein sind. So oder so: auch die geglättete Kurve hat keine nennenswerte Tendenz. Allenfalls die beiden großen Ausschläge bei den Tagen 80 und 110 könnten ein Signal sein.

    Zeitrechnungen

    „Tag 80” ist jetzt keine wirklich intuitive Angabe, aber ich wollte in den Plots nicht mit läsitgen Kalenderdaten operieren. Für die Interpretation wären sie jedoch schon ganz gut. Wie komme ich von Messtag auf ein bürgerliches Datum?

    Die Daten kommen original mit Unix-Timestamps, also der Zahl der Sekunden seit dem 1.1.1970, 0:00 Uhr UTC, und sie fangen mit 1640612194 an. Um ausgehend davon bürgerliche Daten auszurechnen, muss mensch wissen, dass ein Tag 86400 Sekunden hat. Pythons datetime-Modul liefert dann:

    >>> import datetime
    >>> datetime.datetime.fromtimestamp(1640612194+80*86400)
    datetime.datetime(2022, 3, 17, 14, 36, 34)
    >>> datetime.datetime.fromtimestamp(1640612194+110*86400)
    datetime.datetime(2022, 4, 16, 15, 36, 34)
    

    Mitte März und Mitte April ist also möglicherweise was Interessantes passiert. Da gucke ich nochmal drauf, wenn ich demnächst Wetterdaten einbeziehe.

    Die andere Seite, die Residuen, kann ich für eine saubere Fassung des Tagesplots aus Teil 1 verwenden. Weil längerfristige Schwankungen bei ihnen rausgerechnet sind, sollte ein regelmäßiger Tagesgang in den Residuen deutlicher herauskommen als im ganzen Signal. Dazu nehme ich wieder den Rest bei der Division durch 86400 (siehe oben), und die Warnungen wegen Zeitzonen aus dem Kalibrationspost gelten immer noch.

    Ein Dichteplot, der im Groben flach verläuft, aber zwischen 10'000 und 25'000 Sekunden auf der Abszisse deutlich fransig ist.

    Dass da „am Morgen” (15000 Sekunden sind etwa 4:15 Uhr UTC, also 5:15 MEZ und 6:15 MESZ) irgendwas passiert, dürfte ein robustes Signal sein, und es kommt ohne die niederfrequenten Signale deutlich besser raus. Mit etwas Wohlwollen könnte mensch vielleicht sogar zwei Berge im Abstand von einer Stunde sehen, was dann Normal- und Sommerzeit entspräche. Da der Sensor nicht weit von der Bundesstraße 3 stand, liegt als Erklärung zunächst Berufs- und Pendelverkehr nahe.

    Wenn der Tagesgang tatsächlich mit dem Berufsverkehr am Morgen zu tun hat, müsste sich eigentlich ein Signal im Wochenrhythmus zeigen, denn zumindest Sonntags ist es hier am Morgen deutlich ruhiger als an Werktagen. Die Projektion auf die Woche ist einfach: Statt den Rest bei der Division durch 86'400 nehme ich jetzt den Rest bei der Division durch 604'800, die Zahl der Sekunden in einer Woche. Das Ergebnis zeigt, vielleicht etwas überraschend, das Tagessignal eher deutlicher; ein Wochensignal hingegen ist weniger überzeugend erkennbar:

    Ein pinkes Siebengebirge mit grob gleichhohen Gipfeln.

    Vielleicht ist an den Tagen drei und vier etwas weniger los – welche Wochentage sind das? Nun, ich dividiere hier Unix-Timestamps; ihr erinnert euch: Die Sekunden seit dem 1.1.1970. Welcher Wochentag war dieser 1.1.?

    $ cal 1 1970
        January 1970
    Su Mo Tu We Th Fr Sa
                 1  2  3
     4  5  6  7  8  9 10
    11 12 13 14 15 16 17
    18 19 20 21 22 23 24
    25 26 27 28 29 30 31
    

    Weil die Unix-Epoche so eine große Rolle im heutigen Leben spielt[2], nehme das mal als erweiterte Kopfzahl: Er war ein Donnerstag. Und so sind die Tage 3 und 4 tatsächlich Samstag und Sonntag. Meine Autoabgas-These ist mir durch diese Prüfung etwas sympathischer geworden. Vermutlich fallen die Abgase nur bei wenig Wind und wenig Thermik (das ist praktisch die berüchtigte Dunkelflaute…) auf, so dass das dunkle Band mit hoher Punktdichte mehr oder minder bei der Null bleibt, jedoch immer wieder Spitzen mit bis zu 100 ppm extra in der Rush Hour auftreten. Wenn das hier Wissenschaft wäre, müsste ich mich jetzt auf die Suche nach Daten aus der Verkehrszählung machen.

    Und ich müsste überlegen, ob die Zacken im dunklen Band nicht doch ein echtes Signal sind. Speziell der Durchhänger so um die 180'000 Sekunden (also in der Nacht von Freitag auf Samstag) ist eigentlich kaum wegzudiskutieren. Aber was könnte gerade da plausiblerweise mehr frische Luft heranführen? Oder ist das, weil die Freitagnacht wegen Spätcorona noch besonders ruhig war?

    In Sachen Spitzen am Morgen hätte ich eine Alternativhypothese zu den Autoabgasen: Das könnte nämlich wieder der lokale Brenner sein. Dann wäre das, was da zu sehen ist, die Warmwasserbereitung zur Morgendusche. Attraktiv ist diese These schon allein, weil mir 6:15 eigentlich ein wenig früh vorkommt für das Einsetzen der Rush Hour nach Heidelberg rein; es ist ja nicht so, als seien da noch viele nennenswerte Industriebetriebe, in denen die Leute um sieben stechen müssten. Allerdings: in einem Wohnblock mit so vielen Studis wie meinem hier ist 6:15 auch keine plausible Zeit für massenhaftes Duschen…

    Spektralanalyse

    Was ich gerade gemacht habe, ist ein Spezialfall einer gerade für uns AstrophysikerInnen extrem wichtigen Technik – ich habe nämlich ein Signal nach Frequenzen aufgeteilt. Bis hierher hatte ich nur in zwei Bänder, ein hohes und ein tiefes. Mit der Fourieranalyse geht das viel allgemeiner: Mensch steckt ein Signal rein und bekommt ein Spektrum heraus, eine Kurve, die für jede Frequenz sagt, wie stark Schwingungen auf dieser Frequenz zum Signal beitragen.

    Mit dem Universal-Werkzeugkasten scipy kriegt mensch so ein Spektrum in anderthalb Zeilen Python:

    from scipy import signal
    f, power = signal.periodogram(samples[:,1], fs=86400/24/120)
    

    Dabei übergebe ich nur meine Konzentrationsmessungen, nicht die zugehörigen Zeiten, weil die periodogram-Funktion nur mit gleichmäßig gesampleten Daten zurechtkommt. Das sind meine Daten zum Glück: zwischen zwei Messungen liegen immer 30 Sekunden, und es sind auch keine Lücken in den Daten.

    Die halbe Minute Abstand zwischen zwei Punkten übergebe ich im Argument fs, allerdings als Frequenz (der Kehrwert der Periode) und umgerechnet in die Einheit „pro …

  • Eingeschneite Mandelblüten

    Foto einer geöffneten Mandelblüte vor einer Schneelandschaft.

    Heute bei Dossenheim: Ob aus dieser Blüte mal eine Mandel wird, darf trefflich bezweifelt werden.

    Zu den großartigeren Projekten in und um Dossenheim gehören die Mandelbäume am Mantelbach, die unter der Ägide des Freundeskreises der Gemeindebücherei im Laufe der letzten zehn Jahre (oder so) gepflanzt wurden. Wer Ende Februar, Anfang März im Norden von Heidelberg unterwegs ist: Ich finde, die rosa Blütenpracht mit dem Duft von Omaseife ist jedenfalls einen kleinen Ausflug wert. Trotz Klimawandel dürften Mandelbäume, die zudem noch ganz ordentlich tragen, noch für eine Weile als spezielle Sehenswürdigkeit von Bergstraße und Südpfalz durchgehen.

    In diesem Jahr nun war es aber in der ersten Januarhälfte schon so warm, dass einige der mutigeren Bäumchen schon mal losgelegt haben. Und dann hat gestern Nacht ein Nordostwind für hiesige Verhältnisse beachtliche Mengen Schnee mitgebracht. Bei einem Spaziergang heute morgen taten mir die frühen Blüten (und noch mehr die Knospen) schon ein wenig leid.

    Während die Mandelblüten den Frost, glaube ich, nicht gut mitmachen werden, bin ich für den Winterjasmin ein Stück weiter oben in den Weinbergen eigentlich ganz guter Dinge, auch wenn er fast verschwunden ist im Schnee:

    Ein Schneehaufen mit Löchern, durch die gelbe Blüten sichtbar sind.
  • Oracle, Mozilla, W3C: Broken Links, Broken Web, Slugs in a Bucket

    Type plate of a DEC PDP 12 minicomputer.  A large rotary switch is set to offline.

    This post is about why today I had intense fantasies about having an offline switch at least as large as the one on this DEC PDP-12 photographed at Vienna Observatory in 2018.

    I give you it has become somewhat trite to state the obvious: The Web (and quite possibly most of the Internet) is broken. Admittedly, a few relatively simple measures – a few well-placed dnsmasq statements, a default-no-javascript browser and a general avoidance of for-profit pages – can hide quite a bit of that brokenness. Today, however, it hit me hard; and two nonprofits were part of what makes me once more seriously consider a livelihood as a gardener.

    A long history of evil getting worse

    I must concede that it didn't take the pure evil of Oracle to fool around with redirects instead of 404s and to wantonly tear down static pages that could have been maintained forever at zero cost. Even the lesser evil that Sun was did that, as evinced by this 2006 capture from the Web Archive. That's already less than ten years after JDK 1.1 was released a quarter century ago (February 1997).

    Which brings me to another reason to want to retire: This link has been broken for more than 15 years now. I suspect I'm imagining the W3C to be a lot better staffed than it actually is, and yes, touching normative content is a tricky thing to do. But either through an Erratum or as an editorial change the W3C could and should have fixed the clickjacked link some time within those 15 years. That would have been particularly thoughtful given that my reaction probably isn't too untypical: Rather than go to the Internet Archive to fetch the original documentation right away, I looked for DecimalFormat in today's Java documentation. And yay!, it says:

    It also supports […] scientific notation […] Example: "0.###E0" formats the number 1234 as "1.234E3".

    Except it didn't for me. The numbers were stubbornly unformatted regardless of what I did as soon as I tried any sort of scientific notation. Which drove me entirely crazy until I ran the browser from a terminal and saw log output there:

    error
    xsltFormatNumberConversion : error in format string '0.###E0', using default
    

    It still took a while until I realised the problem was not actually with the format string – that I had taken literally from the modern documentation: Gnah! – but that JDK 1.1 just didn't have the feature. I actually had to go to an older capture of Sun's documentation to figure that out (do donate to the Internet Archive, please).

    That was not the end of my webaches of the day.

    Mozilla: Crashes in the supply chain

    Proclamation: I'm a huge fan of the MDN whenever I do “web development“. You may hence get an idea of my desperation when, minutes after I had somewhat worked out the Sun-Oracle-W3C debacle, I was looking up the border-spacing CSS property at MDN and just saw a brief flash of content and then this:

    Screenshot: an empty browser window

    What deviltry…? From folks who are at least reasonably concerned about standards compliance and accessability? Well, a quick glance into the developer tools made my me shiver. Here's what I found in the error console:

    [Error] The source list for Content Security Policy directive 'script-src' contains an invalid source: ''report-sample''. It will be ignored.
    [and a lot more CSP stuff]
    [Error] Failed to load resource: Unacceptable TLS certificate (analytics.js, line 0)
    "Error executing Glean task: NotFoundError: Failed to execute 'transaction' on 'IDBDatabase': One of the specified object stores was not found."
    [Error] (Glean.core.Dispatcher) – "Error initializing dispatcher, won't execute anything further." – "There might be more error logs above."
    [Error] TypeError: null is not an object (evaluating 'localStorage.getItem')
    [Error] TypeError: null is not an object (evaluating 'localStorage.getItem')
    

    So… the Mozilla folks list all kinds of new-fangled (i.e., bullseye Webkit doesn't know about them) Content Security Policies. I'll allow they do that out of concern for my privacy – though frankly, I'm not much worried about cross-site scripting from MDN, in particular because the site generally works fine without Javascript (I don't remember when or why I switched it on for them). Be that as it may, after all the CSP-ing, they turn around and try to rat me out to Google analytics (which fails here because google-analytics.com resolves to 127.0.0.1 on my boxes). Hu?

    Want to report a bug? Feed Microsoft!

    Anyway, I had Javascript on, and then I got the blank page because rendering crashes when the thing cannot do Javascript local storage. If you wonder why I keep that off by default, check out my rant against it; sorry: in German). That's why I get a blank page. It all goes belly-up starting with a message “Unable to read theme from localStorage“ from witin some React code. Call me a purist, but I don't even see how you'd need the ghastly React Javascript “framework“ <cough> for a documentation site. Why this would need to store a theme at all and why this should be crashing the whole doument[2] when it can't do that is entirely beyond me.

    Given that Mozilla are (to some extent) good guys, I wanted to file a bug. They also were home to the premier bugtracker of the 2000s, bugzilla, so… No. Even the contribution guide [warning: github link] – a static document! – sits in github, collecting behavioural surplus for Microsoft.

    Ah… sorry, Mozilla, if React and github are your ideas of an open, accessible, and standards-compliant Web, there is no point filing bugs against MDN. That's not a good use of the surveillance capital I have to give.

    But then: being a gardener isn't all that idyllic either:

    Lots of slugs in a bucket

    Given that, Oracle and Mozilla are not much worse. So, I guess I'll keep doing computers for a little while, at least as long as I can somehow still work around the postmodern Web's breakage most of the time.

    [1]Well, actually I was looking at a local mirror of that, but if turns out that looking at the online material right away wouldn't have made a difference.
    [2]I just notice that the existence of the phrase “crashing a document“ is a rather characteristic symptom of the state of the Web.
  • Sympathie für myrmekophile Falter: Schwierig

    Foto eines blauen Schmetterlings

    Unsympath vom Dienst für diesen Post: Ein (Quandel-) Ameisenbläuling. CC-BY-SA PJC&Co

    Im Dezember letzten Jahres lief in der DLF-Sendung Forschung aktuell zur Begleitung der Weltnaturschutzkonferenz in Montreal eine großartige Miniserie mit Geräuschen von Tieren, deren Arten demnächst ziemlich wahrscheinlich aussterben werden. Ihr ebenfalls großartiger Titel: „Letzte Rufe“. Soweit ich sehe, haben die Deutschlandfunk-Leute keine eigene Seite für die Miniserie. Lasst mich geschwind einspringen:

    Ich finde, das ist ein sehr audiophiles Format. Und ich habe in jeder Folge etwas gelernt.

    Nur… nun, nennt mich einen Naturromantiker, aber speziell beim Ameisenbläuling fällt mir allzu viel Empathie schwer, auch wenn ich weiß, dass Parasiten in den meisten Ökosystemen stark stabilisierende Funktionen haben. Es klingt einfach zu garstig, was die Viecher treiben.

    Sie sind nämlich Myrmekophile. Ich habe das Wort auch erst eben gelernt. Es bezeichnet Organismen, die an Ameisen „gebunden“ (Wortwahl des/der Wikipedia-AutorIn) sind. Bei Ameisenbläulingen heißt das etwas weniger beschönigend gesprochen, dass sie sich von Ameisen in deren Bau tragen lassen – etwa, indem sie durch abscheuliches Krächzen vorgeben, sie seien Königinnenlarven – und sich dort von diesen füttern lassen beziehungsweise gleich die Eier und Larven der Ameisen aufessen. In den Worten des Wikipedia-Artikels zum Quendel-Ameisenbläuling:

    Dennoch kommen viele Raupen [im Ameisennest] um, weil sie entweder in Gegenwart der Königin von den Arbeiterinnen angegriffen werden, oder weil sie das Ameisennest leer plündern und sich so selbst die Nahrungsgrundlage entziehen.

    Beim Lungenenzian-Ameisenbläuling ist es deutlich harmloser:

    Für die betroffenen Ameisenarten kann der Parasitenbefall zu einer Verkleinerung der Kolonie führen, da die bevorzugte Fütterung der Schmetterlingslarven den eigenen Nachwuchs gefährdet.

    Aber immerhin sind diese speziellen Falter relativ wenig manipulativ:

    Nach dem Schlüpfen bleibt den Faltern nicht viel Zeit für die Flucht, denn sie besitzen keine Duftstoffe, die sie vor den Ameisen schützen.

    Zum Hellen Wiesenknopf-Ameisenbläuling weiß die Wikipedia zu berichten:

    Etwa 98 % der Biomasse der Puppe (und des späteren Falters) stammt so von den Ressourcen des Ameisenvolkes. Es wurde geschätzt, dass bei den räuberisch lebenden Phengaris-Arten (P. teleius, P. arion und P. nausitous) etwa 350 Arbeiterinnen mittelbar nötig sind, um eine Phengaris-Larve zu ernähren. Diese Zahl wird benötigt, um die Nahrung für die Ameisenbrut zu beschaffen, die von den Phengaris-Larven gefressen wird.

    Sagt, was ihr wollt: Als Sympathieträger gegen das Insektensterben würde ich mir eine andere Art aussuchen. Jedenfalls solange, bis auch Menschen wie ich deutlich mehr Instinkt entwickelt haben für Ökosysteme und die Rolle, die auch Tiere mit nach menschlichen Maßstäben nicht so feinen Manieren darin spielen. Bis dahin kann ich die spontane Reaktion einer Freundin gut nachvollziehen: „Die Biester sollen ruhig aussterben“.

  • Von Verblindung und fachbedinger Blindheit

    Foto eines Notebookdeckels mit Aufkleber „Elsevirus“ und einem vertrockneten Baum (ein Spoof des Elsevier-Logos)

    Nur ein Symptom, nicht die Ursache: das wissenschaftliche Publikationswesen und seine unsympathischen Profiteure.

    Angesichts meiner fundamentalen Skepsis im Hinblick auf die epistemologischen Meriten der Wirtschaftswissenschaften an und für sich (ahem) bin ich selbst etwas überrascht, wie viele Wiwi-Arbeiten auf diesem Blog vorkommen. Immerhin: dieses Mal geht es eigentlich gar nicht um die Publikation selbst.

    Die Aussage des Artikels „Nobel and Novice: Author Prominence Affects Peer Review“ von Jürgen Huber und Kollegen aus Innsbruck, Graz und Los Angeles, doi:10.2139/ssrn.4190976, ist nämlich ein Gemeinplatz: Das Begutachtungsverfahren wissenschaftlicher Arbeiten ist kaputt. In diesem speziellen Fall: Ein Artikel wird oft vollständig zurückgewiesen, wenn er von wem eingereicht wird, dessen oder deren Name afrikanisch klingt, und oft ohne Korrekturwünsche angenommen, wenn auf der AutorInnenliste eine anerkannte Kapazität hinreichend weit vorne steht. Hier hat das halt mal wer ausprobiert, zwecks der Demo mit jeweils dem (ansonsten) gleichen Artikel.

    Aber wenns doch klar war?

    Nun gut, die Größe des im Paper gefundenen Effekts überrascht auch mich. Ich hatte eigentlich erwartet, dass es ein paar mehr Leute gibt, die Papers von DoktorandInnen aus Weichherzgründen eher mal durchwinken, weil diese die Publikation ja viel nötiger haben als die, die in Rente sind oder auf einer Professur sitzen. Aber diese Überraschung hätte mich jetzt nicht an die Tastatur gerufen.

    Wirklich kommentarbedürftig fand ich stattdessen die Aussage des Hauptautors in DLF Forschung aktuell vom 14.12.2022 (ab Minute 1:30):

    Die Begutachtung von wissenschaftlichen Arbeiten durch andere Wissenschaftler ist ja für Publikationen wichtig, für Forschungsgelder, dafür, wer Jobs bekommt, wer Professor wird und so weiter. Also, das ist ganz wichtig, dass wir diesen Prozess so objektiv, so fair wie möglich gestalten, damit auch die Gelder, die ja oft von der öffentlichen Hand kommen, bestmöglich verwendet werden, damit wir Fortschritte haben.

    Huber benennt den wesentlichen Grund dafür, dass das System wissenschaftlichen Publizierens disfunktional ist: Artikel und Zitate werden missbraucht als Metriken in dem Wettbewerb, in den WissenschaftlerInnen – also Menschen, die eigentlich lieber Zeug rausfinden wollen – geschickt werden, und der mit Zuckerbrot („Karriere“) und Peitsche (die meisten werden rausgekegelt) auf alarmierende Hitzegrade gebracht wird.

    Gut für „den Fortschritt“ oder gar die Wissenschaft ist dieser Zirkus natürlich nicht. Sein Fallout im Publikationswesen führt zudem dazu, dass Leute innerhalb von fünf Jahren fünfzehn verdünnte Paper raushauen statt nach fünf Jahren eine profunde Arbeit zu publizieren und dass jede Menge Zeit und Nerven draufgehen beim Schreiben und Begutachten dieser Artikel. Er bewirkt zudem, dass Zitate immer schlechter den Fluss von Ideen abbilden (was ja ihr eigentlicher Zweck ist) und immer mehr taktische Erwägungen (was schade ist).

    Gute und schlechte Fragen

    Aus der Diagnose, dass der Missbrauch von Publikationen als ökonomische Metrik der Wissenschaft schadet, würde logisch doch zumindest die Frage folgen: Lässt sich das auch wieder entkoppeln?

    Nicht so aber für Huber, der stattdessen fragt: können wir die Metrik fairer machen? Diese Frage halte ich für besonders falsch gestellt, denn klarerweise würde selbst ein guter Plan in dieser Richtung (vgl. unten) nichts ändern an taktischen Zitationen oder der Flut von Papern, die rundrum nur Zeit verschwenden; er würde sie vermutlich noch verschärfen.

    Ich frage mich ehrlich, warum der naheliegende Ansatz zur Lösung der Probleme Huber offenbar gar nicht in den Sinn kommt, nämlich: weniger Wettbewerb, und vor allem das Ende des Missbrauchs von Publikationen und Zitationen als Metriken in den diversen Wettbewerben.

    Wie die Allokation von Forschungsmitteln sonst funktionieren soll, fragt ihr? Nun, solange wir noch das System von universeller Lohnarbeit unter Existenzdrohung haben, werden flachere Hierarchien[1], die Abschaffung befristeter Beschäftigungsverhältnisse[2], die Rückverschiebung der Finanzierung durch „Drittmittel“ (die in Wahrheit ja in den nicht-gruseligen Fällen auch vom Staat kommen) auf die Grundfinanzierung, womit auch der Zugang zumindest kleinen und mittleren Instrumenten weniger kompetetiv würde; so Zeug halt, Wissenschaft als Beruf mit ganz normalen Beschäftigtenrechten. Und wo doch noch Anträge geschrieben werden: Würfelt aus, wer gefördert wird. Das wird in etwa genauso „gute“ Ergebnisse liefern wie die gegenwärtige Begutachtung, macht aber viel weniger Arbeit und vermeidet einige Fehlsteuerungen, allen voran die Selbstverstärkung von Moden und Hypes durch den Geldhebel.

    Klar: Vielleicht arbeiten dann ein paar der Beschäftigten weniger. Aber erstens würde der Wegfall der ganzen Wettbewerbs-Reibungsverluste das garantiert mehr als kompensieren. Und zweitens hat Wissenschaft den großen Vorteil, dass sie sehr nah am Spielen ist und so Leute in aller Regel keine Motivation durch Existenzdrohung oder auch Karriere-Zuckerbrot brauchen[3].

    Das war jetzt die reformistische Version. Etwas langfristiger gedacht werden Menschen in einer Gesellschaft, die ihre Produktion rational (was produzieren wir so, dass Mensch und Natur minimal belastet werden?) organisiert, also in einer Gesellschaft, in der die Menschen grundsätzlich weit weniger erpressbar sind, auch weit weniger durchgeknallte Systeme ersinnen, ihre Erkenntnisse zu verbreiten als unsere derzeitigen Journals.

    Die Allokation von Produktionsmitteln oder Umweltressourcen auf die Forschungsfragen wäre dann ein ganz normales Thema gesellschaftlicher Debatte, ganz wie die Frage, ob mensch, sagen wir mal, dünne und kurzlebige Fahrradketten für Zehnfach-Ritzel in gesellschaftlicher Arbeit herstellen will oder nicht. Fragen dieses Typs müsste so eine Gesellschaft ziemlich regelmäßig erörtern, da kommt es auf ein paar Debatten mit Wissenschafts-Hintergrund auch nicht mehr an.

    Noch nicht mal Einfachverblindet

    Ich will noch ganz kurz anmerken, dass der Lösungsvorschlag aus dem DLF-Beitrag, die Begutachtung doch doppelt zu verblinden in den meisten Disziplinen eher zu „unmöglich“ als zur „schwierig“-Einschätzung von Anneke Meyer tendiert. Zumeist sind die Felder doch so übersichtlich, dass, wer genügend Überblick für ein qualifiziertes Review hat, sich auch denken kann, wer da schreibt – genau wie zumindest in der Astronomie die meisten Leute, die eine Weile in ihren Feldern sind, schon an den Reviews ahnen, wer wohl als GutachterIn gearbeitet hat.

    Selbst wo das – wie in ausgesprochenen Trendfächern – nicht der Fall ist, wären Methoden, Instrumente, Vorarbeiten und Kontext einer Arbeit so charakteristisch, dass Papers zur Verblindung komplett zerschrieben werden müssten. Damit würde nicht nur der Wettbewerb, zu dessen Austragung die Publikationsmetriken missbraucht werden, die Wissenschaft massiv schädigen – wie bereits jetzt bei den Zitationen würde schon die Erhebung der Metrik der Wissenschaft schaden, weil die Paper notwendig unklar und wirr würden.

    Wieder kann ich zum Ende einer Klugscheißerei nicht widerstehen: Wenn der DLF-Moderator behauptet, Vernon Smith habe 2002 den Nobelpreis erhalten, ist dem im Sinne von Alfred Nobel zu widersprechen – Smith hat den „Preis für Wirtschaftswissenschaften der schwedischen Reichsbank in Gedenken an Alfred Nobel“ bekommen, der seit 1969 verliehen wird (richtige Nobelpreise: seit 1901). Aber dann: die Aufregung um die Groß- und Kleinpreise („Preis der Bäckerinnung Berlin-Brandenburg für engagierte Berichterstattung zur Tortenkultur“) gehört natürlich auch zu den Dingen, die demnächst im Zuge des Wettbewerbsabbaus wegkönnen.

    [1]Dazu gehört insbesondere die Abschaffung des archaischen Lehrstuhlprinzips – Menschen außerhalb das Uni-Systems können sich das meist gar nicht vorstellen, aber an Universitäten sind MitarbeiterInnen tatsächlich ihren Profen zugeordnet, und es ist üblich, die Beschäftigten eines Lehrstuhls komplett auszutauschen, wenn einE neueR ProfIn „berufen“ (ja, so heißt eine Einstellung wirklich noch) wird. in der Praxis wird auf so etwas schon Jahre im Vorhinein geplant. Profi-Tipp: wenn ihr an einer deutschen Uni verdauert werden wollt (und es gibt gute Gründe, das derzeit lieber nicht zu wollen), sorgt dafür in den ersten drei Jahren eures Profs. Danach nämlich plant die Uni schon für die Berufung seines_r Nachfolger_in und wird alles tun, um entsprechende Stellen für Berufungsverhandlungen „verfügbar“ zu halten…
    [2]Oder jedenfalls: nicht mehr 80% befristete Beschäftigte im aktiven Wissenschaftsbetrieb, wie gegenwärtig an den Unis (Profen zähle ich dabei vielleicht etwas übertriebenermaßen zur Verwaltung).
    [3]Um nicht missverstanden zu werden: die intrinsiche Motivation gibts natürlich in vielen anderen Jobs auch, aber verglichen mit, sagen wir, Immobilienmakelei oder internationalem Wirtschaftsrecht ist Wissenschaft doch eine ganz andere Liga in Sachen erreichbarer Zufriedenheit im Beruf.
  • Radikale Opportunität: Die BRD klagt gegen italienische Naziopfer

    Herbstliches Foto: halbuniformierierte Männer mit Verbindungskäppis stehen auf einem Parkplatz

    Oberhalb von Heidelberg befindet sich auf dem Ameisenbuckel ein Friedhof, auf dem Soldaten des Kaisers und der NSDAP-Regierung „geehrt“ werden. Hier also liegen die, um deren Opfer es in diesem Post gehen sollte. Bis vor ein paar Jahren (hier: 2007) trafen sich zum „Volkstrauertag“ dort oben aktuelle Militärs, reaktionäre Verbindungsstudis und Leute von der Stadt, um… Ja, wozu eigentlich?

    So wertvoll es ist, wenn gerade Staaten sich an Recht gebunden fühlen – und so doof es ist, wenn sie das mutwillig nicht tun –, mensch sollte gerade in Zeiten, in denen (jedenfalls verlautbart) „für das Völkerrecht“ getötet wird, nicht vergessen, dass Recht von denen gesetzt wird, die die Gewaltmittel dazu haben, und dass Rechtsetzung zwischen Staaten eine in der Regel recht unappetitliche Angelegenheit ist.

    Eine bedrückende Demonstration irritierender Rechtspraxis fand im April 2022 statt. Damals hat das wohl nicht viel Presseecho gegeben; ich jedenfalls bin erst durch späte Lektüre der Ausgabe 3/22 der Zeitung der Roten Hilfe (S. 44ff) darauf aufmerksam geworden. Dies hier ist ein Versuch, der Geschichte – die noch nicht vorbei ist – noch etwas mehr Aufmerksamkeit zu verschaffen.

    Schon im April fantasierten ja große Teile der deutschen Regierung öffentlich darüber, wie Putin und seine Truppe vor diversen internationalen Gerichten stehen würden[1]. Gleichzeitig jedoch, nämlich am 29.4., reichte genau diese Regierung eine Klage gegen Italien beim Internationalen Gerichtshof ein, um sich Immunität bei der Verfolgung von wirklich erschreckenden Kriegsverbrechen zu verschaffen (Einordnung bei der LTO).[2]

    Warnung an PatriotInnen: Der gesamte Großraum dieser Klage[3] ist ein dichtes Minenfeld für Überzeugungen, „Deutschland“ (also: seine diversen Regierungen) sei irgendwie für die Verteidigung von Freiheit und Menschenrechten qualifiziert.

    Grundsätzlich geht es darum, dass die paar verbliebenen Menschen, die sowohl Massaker deutschen Militärs im zweiten Weltkriegs als auch die Zeit seitdem überlebt haben, vor Gerichten in Italien (und übrigens auch Griechenland) Entschädigungsansprüche durchgeklagt haben. Tatsächlich wurden sogar schon verschiedentlich deutsche Vermögenswerte beschlagnahmt (Beispiel im Gefolge des Massakers im griechischen Distomo: Das Goethe-Institut in Athen).

    Nur haben deutsche Regierungen immer so heftigen Druck auf die Regierungen in Rom und Athen ausgeübt, dass diese, Gewaltenteilung hin, Gewaltenteilung her, ihrer Justiz regelmäßig in die Parade gefahren sind. Auf Zeit spielen lohnt hier, denn das Problem der Überlebenden wird sich ja in ein paar Jahren von selbst „gelöst” haben.

    Das Verfahren vom letzten April nun versucht, ein paar weitere Schlupflöcher zu stopfen, die vorherige Verfahren in Den Haag nationalen Gerichten gelassen haben, um die Doktrin staatlicher Immunität im Krieg (und auch sonst) zu umgehen. Den Haag hat schon 2012 für die BRD entschieden; es ist kaum davon auszugehen, dass die italienische Regierung eine starke Verteidigung aufbauen wird, nachdem sie in all den Jahren deutschem Druck nicht viel entgegengesetzt hat.

    Diese Sorte Umgang mit Recht („Bomben auf die Infrastruktur sind zwar pfui, gehen aber bei uns und unseren Freunden schon in Ordnung“) läuft unter dem Label „Opportunität“. Sie steht ganz wie in Rom oder Athen angewandt auch in unserer Strafprozessordnung. Schaut zum Beispiel mal auf §153d StPO:

    § 153d Absehen von der Verfolgung bei Staatsschutzdelikten wegen überwiegender öffentlicher Interessen

    (1) Der Generalbundesanwalt kann von der Verfolgung von Straftaten der in § 74a Abs. 1 Nr. 2 bis 6 und in § 120 Abs. 1 Nr. 2 bis 7 des Gerichtsverfassungsgesetzes bezeichneten Art [das ist eine Sammlung politisch aufgeladener Normen aus dem Strafgesetzbuch] absehen, wenn die Durchführung des Verfahrens die Gefahr eines schweren Nachteils für die Bundesrepublik Deutschland herbeiführen würde oder wenn der Verfolgung sonstige überwiegende öffentliche Interessen entgegenstehen.

    (2) Ist die Klage bereits erhoben, so kann der Generalbundesanwalt unter den in Absatz 1 bezeichneten Voraussetzungen die Klage in jeder Lage des Verfahrens zurücknehmen und das Verfahren einstellen.

    Ich muss bei solchem Text ja an Andreas Temme denken. Aber soweit ich weiß, hat gegen ihn noch nicht mal wer ein Verfahren eröffnet, das des 153d bedurft hätte.

    [1]So berichtet der DLF am 9.4., ausgerechnet „Bundespräsident Steinmeier hat sich für einen Prozess gegen Russlands Präsidenten Putin und Außenminister Lawrow vor dem Internationalen Strafgerichtshof in Den Haag ausgesprochen.“ Ich habe „ausgerechnet“ geschrieben, weil Steinmeier als Chef des Bundeskanzleramts (nicht nur) zur Zeit des deutschen Angriffs auf Restjugoslawien 1999 selbst an offener Aggression beteiligt war, als oberster Geheimdienstchef obendrein in Verwantwortung für die BND-Operationen Richtung UCK, zu denen er spätestens jetzt für Aufklärung sorgen könnte. Und dann: er hat sich bis heute nicht bei Murat Kurnaz entschuldigt.
    [2]Whoa, ruft ihr, deine Überschrift ist Clickbait, weil die Regierung ja gegen Italien klagt und gar nicht gegen Naziopfer? Na ja, vielleicht ist es ein ganz klein wenig Clickbait, aber mal ehrlich: Wenn ihr nur knapp den Mordorgien deutscher Truppen entgangen wärt, und die Rechtsnachfolger von deren Befehlshabern würden jetzt solche Verfahren einleiten: Würdet ihr nicht finden, dass diese Klagen gegen euch gehen?
    [3]Angefangen von der Weigerung der Staatsanwaltschaft Stuttgart, ein Verfahren wegen des Massakers von Sant'Anna di Stazzema zu führen, nachdem die BRD schon abgelehnt hatte, 2005 in Italien verurteilte SS-Männer auszuliefern (vgl. Berichterstattung in der taz vom 23.3.2013).
  • Papierrascheln am DLF

    Ich bin ein so großer Fan von Live-Programmen und vor allem Nachweisen ihrer Authentizität, dass ich hier einen eigenen Tag für diese habe: Live. Deshalb war ich auch begeistert, als ich in der Forschung aktuell-Sendung vom 5.12.2022[1] folgende, wie ich finde, professionell gemanagte Panne verfolgen durfte:

    Transkript der Sprecherin: Der Kohleausstieg wird im rheinischen Revier um… Ah, jetzt habe ich die falsche Meldung gelesen, tut mir leid (blättern) grad mal kurz die Richtige (leise distress signals) Wir wechseln bitte einmal kurz das Thema und machen die letzte zuerst… Der Kohleausstieg wird im rheinischen Revier um acht Jahre vorgezogen…

    Ich verstehe nicht ganz, wie es zu dieser Panne gekommen ist, aber erstens finde ich großartig, dass die SprecherInnen im DLF hörbar noch von Papier ablesen.

    Das ist auch nicht nur Nostalgie eines Menschen, der in seiner Jugend viel Tagesschau angeschaut hat. Tatsächlich ist das wahrscheinlich auch von einer CO₂-Perpektive nicht schlecht. Mike Berners-Lee[2] schätzt für ein Blatt Papier 10 g CO₂-Äquivalent. Na gut, bei ihm ist ein Papierhandtuch, also relativ mieses Papier und recyclet, aber andererseits schätzt er 400 g für ein Paperback, was gut zu 10 g pro A4-Seite passt. Für einen „einfachen“ Computer – also ein Tablet – schätzt er 200 kg CO₂e.

    Damit entspräche die Herstellung eines Tablets, das die SprecherInnen statt des Papiers verwenden würden, 200/0.01 = 20'000 Seiten Papier. Wenn pro Sendung 10 Seiten draufgehen, sind das 2000 Tage oder fünf Jahre. Wahrscheinlich hält kein täglich für eine Sendung verwendetes Tablet so lange.

    Zugegeben: das ist Unfug, denn die Seiten müssen ja auch bedruckt werden, und dazu braucht es Drucker und Toner (zusätzlich zu den Rechnern, auf denen die zu druckenden Texte geschrieben werden, aber die würde es beim Tablet auch brauchen), und die machen wahrscheinlich bereits einen größeren CO₂-Fußabdruck als Strom und Netzwerk, der beim Betrieb von so einem Tablet. Und dann sind 200 Kilo CO₂e über fünf Jahre für so eine Sendung ohnehin praktisch vernachlässigbar; so grob entspricht das (wiederum mit Berners-Lee) einer Recherche-Reise vom DLF-Standort Köln zum Wendelstein und zurück im ICE.

    Aber kurz zurück zur Frage, warum ich das Stück für erhaltenswert halte: ich finde, dass sich die Sprecherin Britta Fecke hier eigentlich recht elegant aus der Affäre gezogen hat. Deshalb verstehe ich nicht ganz, warum der DLF das in der Online-Version rausgeschnitten hat (wo das bei Minute 9:38 sein müsste; solche Schnitte machen sie nicht immer). Und ich finde es schade, denn zumindest mein Herz wärmt es, wenn da Papier raschelt und zu hören, ist, wie Leute Probleme lösen.

    [1]Ich habe das erst jetzt „live“ gehört, weil ich die Mitschnitte der Sendungen höre, wie ich Zeit habe. Wie schon seit Jahrzehnten kommt mein Material vom Livestrom, nicht aus dem RSS des DLF oder so.
    [2]Berners-Lee, M. (2011): How Bad Are Bananas, Vancouver: Greystone, ISBN 978-1-55365-832-0; nicht, dass ich nicht Berners-Lees Mahnung teilen würde, nicht jede Schätzung da drin auf die Goldwaage zu legen, aber für so schnelle Betrachtungen wie diese hier taugt das Buch bestimmt.
  • Begeht die Erdüberlastungssekunde: 1.1.2023, 00:00:10

    Balkengrafik mit Balken gleicher Höhe, die von 1971 bis 2022 einen immer größeren Anteil von Rot (also Überlastung) bekommen.

    In Grün der Teil der jeweiligen Jahre, die das GFN (siehe Text) für „nachhaltig“ bewirtschaftet (siehe Text) hält.[1] Rechte: GFN 2022

    Alljährlich verkündet das Global Footprint Network (GFN) den „Erdüberlastungstag“ oder Earth Overshoot Day, definiert als der Tag, an dem der jährliche „ökologische Fußabdruck“ (der Erfinder dieses Begriffs ist Teil des GFN) der Menschheit gerade die Größe der Erde erreicht hat. Klingt ein wenig komisch, ist aber ein ziemlich konventionelles ökonomisches Modell, in dem der Konsum von Menschen – ob nun Autos, Steaks, Eigentumswohnungen, Flugreisen oder Fernsehserien – mit grob plausibilisierten Modellen als Maß mit der Einheit einer Fläche ausgedrückt wird. Die Behauptung ist, dass dieses Maß einer realen Fläche entspricht, deren Ertrag diesen Konsum dauerhaft, also ohne Raubbau an nicht-erneuernden Ressourcen, decken könnte.

    Das ist eine große Zahlenschlacht („15'000 data points per country per year“) mit vielen freien Parametern. Wenn dabei herauskommt, dass wir innerhalb eines Faktors zwei von dem sind, was wir „nachhaltig“ machen können, werde ich ehrlich gesagt etwas skeptisch. Tatsächlich sollen wir (als ganze Welt) laut GFN im Augenblick einen Fußabdruck von 1.75 Erden haben[2], was den Erdüberlastungstag im vergangenen Jahr auf Tag 365/1.75 = 209 oder –

    >>> import datetime
    >>> datetime.date(2022, 7, 28).strftime("%j")
    '209'
    

    – den 28. Juli legen würde.

    Zweifel regen sich

    Offen gestanden: Ich halte das für ökonomistischen Unfug, der, wenn es überhaupt einen Sinn hat, Konsum in Fläche zu messen, garantiert um Faktoren von erheblich mehr als zwei beliebig ist. Gewiss, die frohe Botschaft „wir müssen eigentlich nur wieder so wirtschaften wie 1970, und schon sind wir nachhaltig“ ist heiterer und vielleicht auch politisch leichter zu verkaufen als: „Leute, wir müssen alle mal weniger arbeiten und uns überlegen, was wir wirklich verbrauchen wollen und wie wir das dann mit minimaler Belastung für Pflanzen, Menschen und andere Tiere produziert kriegen“.

    Nachtrag (2023-01-14)

    Zum Thema, wie „nachhaltig“ der menschliche Fußabdruck ca. 1970 wohl gewesen sein mag, lohnt sich ein Blick aufs DLF-Kalenderblatt vom 15.12.2022. Erinnert wurde an die Gründung des UN-Umweltprogramms 1972, zu dessen Vorgeschichte der Beitrag ausführt:

    Die Luftverschmutzung hatte Anfang der 1970er Jahre enorme Ausmaße angenommen. Blei, Cadmium und Quecksilber fanden sich in Tieren und Böden. Der massive Einsatz von Insektenvernichtungsmitteln wie DDT ließ ganze Ökosysteme kollabieren.

    Es ist auch – und das mag fast unausweichlich folgen aus dem Betrieb des GFN als NGO mit Menschen, deren wirtschaftliche Existenz am Funding der Organisation hängt – eine Nachricht, die der Logik von Wettbewerb und Wachstum verhaftet bleibt, einer Logik, die uns immer wieder in die Erdüberlastung zurückführen würde, selbst wenn wir den aktuellen Mist noch irgendwie hingebogen kriegten.

    Vor allem aber ist dieser „Fußabdruck” eine Metrik, was im modernen WiWi-Jargon so viel heißt wie: Wir sammeln viele Zahlen, so viele, dass es am Schluss ordentlich überzeugend aussieht, und suchen uns dann eine Methode, die so zusammenzumischen, dass etwas herauskommt, das mit unseren Interessen (oder mit denen derer, die existenzsichernde Gutachten in Auftrag geben können) verträglich ist. Letztlich ist das fast immer Zahlenmystik, denn im Umfeld von Politik und Gesellschaft ist „Messbarkeit“ die Ausnahme und nicht, wie der orthodoxe WiWi-Diskurs suggerieren möchte, die Regel. Wer in dem Bereich Streit und qualitative Argumentation ersetzen will durch Großpackungen von Zahlen, verdient jedes Misstrauen.

    Ein besserer Termin

    Lasst mich dagegen kurz und nur semiquantitativ argumentieren, warum wir statt des 28.7. besser den 1.1. als Erdüberlastungstag begehen sollten, genauer: die Erdüberlastungssekunde, noch bevor das Silvesterfeuerwerk richtig losgelegt hat. Mit meinen Daten ergibt sich im oberflächlich nachgestellten Stil der GFN-Grafik von oben folgendes Bild:

    Balkengrafik mit gleich hohen, durchweg roten Balken.

    Full disclosure: Gemacht mit schlechtem matplotlib-Code ohne echte Daten. Aber dafür auch ohne Photoshop.

    Die Basisdaten dazu kommen aus dem World Energy Outlook der International Energy Agency, einer Kooperationsveranstaltung von Regierungen des globalen Nordens, die sich tiefe Gedanken darüber macht, wie das Wettbewerbs- und Wachstums-Regime zumindest so lang mit Energie versorgt werden kann, dass die Dinge schon aus anderen Gründen Klump sind, bevor sie ohne Sprit liegen bleiben.

    Die Tabelle B.3 in der 2022er Ausgabe enthält „Ressourcen“ und „Reserven“ diverser fossiler Energieträger. Ich schaue mir hier mal das Öl an, da aus meiner Sicht Autos – die einen Großteil des Öls schlucken – eigentlich das größte Ärgernis der ganzen Show sind: Wir verpulvern endlos Ressourcen mit grob dem einzigen Effekt, dass wir in Blechkäfigen sitzen und den anderen das Leben schwer machen. Ich persönlich finde Heizung oder Computer bauen doch erheblich nachvollziehbarer als Grund, Fußabdrücke auf der Erde zu hinterlassen. Die Rechnung wäre für Kohle oder Gas aber nur geringfügig anders.

    Die Ölressourcen, Öl also, von dem wir wissen und das wir mit unbegrenztem Materialeinsatz fördern könnten, wird da auf 6000 Gb beziffert, die realistischen Reserven, also Öl, das wir im Augenblick gewinnbringend fördern können, auf 1800 Gb. Das „Gb“ steht hier für Gigabarrel, also Millarden Standard-Fässer zu 0.16 m³. In solchen verfluchten Einheiten rechnen die Öl-Leute leider, und so kommt es ja auch immer in den Nachrichten, weshalb mensch sich wahrscheinlich die Kopfzahl 6 barrel auf den Kubikmeter merken sollte.

    Für meine Zwecke hier ist das aber egal, denn ich will nur vergleichen mit den in ähnlich karmaschädlichen Einheiten gegebenen Verbrauchswerten in Tabelle A.7. Der globale Ölverbrauch wird dort als 100 Mb/d gegeben; für eine Überschlagsrechnung darf das Jahr 400 Tage haben, womit sich für den Ölverbrauch 40 Gb/yr ergeben.

    Ressourcen oder Reserven geteilt durch diesen Verbrauch führt auf die augenblickliche Reichweite in Jahren. Für Rechnungen zum „Fußabdruck“ ist das das, was ich haben will, im Gegensatz zur tatsächlichen Reichweite, bei der ich mir Sorgen ums Wachstum machen müsste. Für die Reserven sind das 1800/40 oder rund 50 Jahre (das grässliche Gb kürzt sich zum Glück raus). Analog käme für die Ressourcen 150 Jahre raus. Sagen wir im Geiste von Fermi: Wir leben derzeit so, dass wir das Öl in der Erde in ungefähr 100 Jahren verbraucht haben werden. Das, was wir schon verbraucht haben, spielt für diese Rechnung übrigens keine große Rolle, das sind nur ein paar Jahrzehnte (oder unten: Sekunden) hin oder her.

    Geologische Zeiträume

    In der Fußabdruck-Logik müssen wir jetzt schätzen, wie viel von diesem Öl in jedem Jahr nachwächst. Das ist wirklich schwer zu sagen, schon weil die Entstehung von Öl ein sich mindestens über Jahrtausende hinziehender Prozess mit vermutlich je nach Globalklima und -Hydrologie stark schwankenden Raten ist, und dabei ist die Konzentration zu Ölfeldern noch gar nicht eingerechnet. Einfacher ist es, die Frage umzudrehen: Wie lange hat die Erde gebraucht, um das Öl heranzubrüten, das wir jetzt gerade fördern?

    Werft zur Antwort einen Blick die geologische Zeitskala. Das Karbon (Anfang ca. 350 Myr vor heute) heißt nicht ganz umsonst Karbon: auch wenn uns die Biologie schon seit der kambrischen Artenexplosion (ca. -550 Myr) allmählich bekannt vorkommen würde[3], ging es erst im Karbon so richtig los mit der Bildung großer Kohlenstoff-Lagerstätten. Sagen wir also: die gegenwärtigen Ölressourcen haben sich innerhalb der letzten 400 Millionen Jahre gebildet.

    Wir bringen dann in 100 Jahren das Öl durch, das die Biologie auf der Erde innerhalb von 400 Millionen Jahren in den Boden verfrachtet hat. Anders gesagt: unser augenblicklicher Fußabdruck ist vier Millionen mal zu groß für diese Welt. Zusammen mit der Ur-Kopfzahl von 31 Millionen Sekunden auf ein Jahr (oder, wer das lieber hat, π⋅107  s) und etwas aufgerundet: wir überlasten die Erde ab Sekunde 10 des Jahres.

    Ich gestehe gerne ein, dass der genaue Zeitpunkt mit guten Argumenten etwas nach vorne oder hinten geschoben werden kann. Nach vorne etwa, weil doch eher unwahrscheinlich ist, dass all die Ressourcen ausbeutbar sind. Nach hinten vielleicht, weil sich die Mehrheit der gegenwärtig genutzten Öl-Lagerstätten doch eher in den letzten 100 Millionen Jahren gebildet haben werden, oder weil wir ja auch noch die 20'000 Gt Kohle verfeuern können oder die Methanhydrate von den Kontinentalschelfs oder was immer, oder weil ja vielleicht noch ganz viele neue Ressourcen entdeckt werden könnten (allerdings wird schon seit Jahrzehnten weniger entdeckt als verbraucht). Wer so rechnet, muss sich übrigens auch keine Sorgen wegen des CO₂ machen, denn bei so viel Techno-Optimismus kriegen wir das Zeug auch ganz locker wegsequestriert.

    Aber auch mit dem größten Techo-Optimismus kann ich valide Szenarien, in denen der Erdüberlastungsmoment im Kohlenstoffbereich hinter die erste Minuten rutschen könnte, praktisch ausschließen. Wegen leicht zu merken und hinreichend plausibel bleibe ich also dabei: der Erdüberlastungsmoment ist Sonntag, 1.1.2023, 00:00:10. Verglichen mit irgendwelchen Tagen im Juli aus den GFN-Schätzungen ist das ganz sicher ein robustes und reproduzierbares Ergebnis.

    Noch eine Umrechnung

    Ach ja: Im IEA-Paper steht noch, dass ein Exajoule 23.88 Mtoe (Megatonnen Öläquivalent) entspricht. Das EJ ist eine ganz bequeme Einheit für den Energieumsatz von Staaten; in der BRD sind laut Grünbuch Energieeffizienz im Jahr 2014 13'132 PJ Primärenergie in 8'648 PJ nutzbare Energie überführt worden. Dabei sind 1000 Petajoule ein Exajoule, so dass wir bei rund 15 Exajoule Primärenergieumsatz in der BRD rauskommen.

    Für wenn ich sowas mal in Vorstellbareres wandeln will, möchte ich mir die IEA-Zahl in der Form 1 EJ = 25 Mtoe merken. Damit kann ich den jährlichen …

  • Demächst frei: Ein wilder Auto-Rant

    Ich habe gerade eine Zusammenstellung einiger Werke durchgesehen, die nach US-Recht ab dem nächsten Ersten gemeinfrei werden (lange Nase an alle, die anderswo in diesem verfluchten Rechtsfeld Gesetze machen: in der Praxis ist das US-Recht dort normativ). Und was habe ich in der Liste gefunden? Den Steppenwolf von Hermann Hesse![1]

    Bemerkenswert finde ich das vor allem, weil Hesse in dieser Novelle schon 1927 einen Autohass entwickelt hat, der in seiner Radikalität noch heute beeindruckt. Dabei waren 1925 in einem etwas größeren Deutschland gerade mal 161'000 Autos zugelassen gegenüber heute (bei Pkws) 48'500'000[2] . Hesse schäumte also bei einer 300-mal kleineren Autobestandsdichte; da die Autos damals im Schnitt langsamer und vermutlich auch weniger lang fuhren als heute, dürfte der Faktor bei der Autoverkehrsdichte noch größer gewesen sein.

    Macht euch klar, was das bedeutet: in so einer Welt käme schlimmstenfalls an einer Straße, die jetzt im Sekundentakt miuw-miuw-miuw macht, gerade mal alle fünf Minuten ein Auto.

    Vergleicht angesichts dessen den folgenden Auszug aus dem Steppenwolf (ich zitiere im Vorgriff auf den 1.1. schon mal großzügig) mit Fritz Tietz' zeitgenössischem Analogon in der Weihnachts-taz.

    Der Ausschnitt setzt ein, als der Titelheld in einer Art (ich aktualisiere den Kontext ein wenig) wahnsinnigem Virtual Reality-Theater ist und sich überlegt, was er sich wohl reinziehen soll.


    Ich spürte, daß ich jetzt mir selber und dem Theater überlassen sei und trat neugierig von Tür zu Tür, und an jeder las ich eine Inschrift, eine Lockung, ein Versprechen.

    Die Inschrift

    Auf zum fröhlichen Jagen!
    Hochjagd auf Automobile

    lockte mich an, ich öffnete die schmale Türe und trat ein.

    Da riß es mich in eine laute und aufgeregte Welt. Auf den Straßen jagten Automobile, zum Teil gepanzerte, und machten Jagd auf die Fußgänger, überfuhren sie zu Brei, drückten sie an den Mauern der Häuser zuschanden. Ich begriff sofort: es war der Kampf zwischen Menschen und Maschinen, lang vorbereitet, lang erwartet, lang gefürchtet, nun endlich zum Ausbruch gekommen. Überall lagen Tote und Zerfetzte herum, überall auch zerschmissene, verbogene, halbverbrannte Automobile, über dem wüsten Durcheinander kreisten Flugzeuge, und auch auf sie wurde von vielen Dächern und Fenstern aus mit Büchsen und mit Maschinengewehren geschossen. Wilde, prachtvoll aufreizende Plakate an allen Wänden forderten in Riesenbuchstaben, die wie Fackeln brannten, die Nation auf, endlich sich einzusetzen für die Menschen gegen die Maschinen, endlich die fetten, schöngekleideten, duftenden Reichen, die mit Hilfe der Maschinen das Fett aus den andern preßten, samt ihren großen, hustenden, böse knurrenden, teuflisch schnurrenden Automobilen totzuschlagen, endlich die Fabriken anzuzünden und die geschändete Erde ein wenig auszuräumen und zu entvölkern, damit wieder Gras wachsen, wieder aus der verstaubten Zementwelt etwas wie Wald, Wiese, Heide, Bach und Moor werden könne. Andre Plakate hingegen, wunderbar gemalt, prachtvoll stilisiert, in zarteren, weniger kindlichen Farben, außerordentlich klug und geistvoll abgefaßt, warnten im Gegenteil alle Besitzenden und alle Besonnenen beweglich vor dem drohenden Chaos der Anarchie, schilderten wahrhaft ergreifend den Segen der Ordnung, der Arbeit, des Besitzes, der Kultur, des Rechtes und priesen die Maschinen als höchste und letzte Erfindung der Menschen, mit deren Hilfe sie zu Göttern werden würden. Nachdenklich und bewundernd las ich die Plakate, die roten und die grünen, fabelhaft wirkte auf mich ihre flammende Beredsamkeit, ihre zwingende Logik, recht hatten sie, und tief überzeugt stand ich bald vor dem einen, bald vor dem andern, immerhin merklich gestört durch die ziemlich saftige Schießerei ringsum. Nun, die Hauptsache war klar: es war Krieg, ein heftiger, rassiger und höchst sympathischer Krieg, worin es sich nicht um Kaiser, Republik, Landesgrenzen, um Fahnen und Farben und dergleichen mehr dekorative und theatralische Sachen handelte, um Lumpereien im Grunde, sondern wo ein jeder, dem die Luft zu eng wurde und dem das Leben nicht recht mehr mundete, seinem Verdruß schlagenden Ausdruck verlieh und die allgemeine Zerstörung der blechernen zivilisierten Welt anzubahnen strebte. Ich sah, wie allen die Zerstörungs- und Mordlust so hell und aufrichtig aus den Augen lachte, und in mir selbst blühten diese roten wilden Blumen hoch und feist und lachten nicht minder. Freudig schloß ich mich dem Kampfe an. Das Schönste von allem aber war, daß neben mir plötzlich mein Schulkamerad Gustav auftauchte, der seit Jahrzehnten mir Verschollene, einst der wildeste, kräftigste und lebensdurstigste von den Freunden meiner frühen Kindheit. Mir lachte das Herz, als ich seine hellblauen Augen mir wieder zuzwinkern sah. Er winkte mir, und ich folgte ihm sofort mit Freuden.

    »Herrgott, Gustav«, rief ich glücklich, »daß man dich einmal wiedersieht! Was ist denn aus dir geworden?«

    Ärgerlich lachte er auf, ganz wie in der Knabenzeit.

    »Rindvieh, muß denn gleich wieder gefragt und geschwatzt werden? Professor der Theologie bin ich geworden, so, nun weißt du es, aber jetzt findet zum Glück keine Theologie mehr statt, Junge, sondern Krieg. Na komm!«

    Von einem kleinen Kraftwagen, der uns eben schnaubend entgegenkam, schoß er den Führer herunter, sprang flink wie ein Affe auf den Wagen, brachte ihn zum Stehen und ließ mich aufsteigen, dann fuhren wir schnell wie der Teufel zwischen Flintenkugeln und gestürzten Wagen hindurch, davon, zur Stadt und Vorstadt hinaus.

    »Stehst du auf seiten der Fabrikanten?« fragte ich meinen Freund.

    »Ach was, das ist Geschmacksache, wir werden uns das dann draußen überlegen. Aber nein, warte mal, ich bin mehr dafür, daß wir die andere Partei wählen, wenn es auch im Grunde natürlich ganz egal ist. Ich bin Theolog, und mein Vorfahr Luther hat seinerzeit den Fürsten und Reichen gegen die Bauern geholfen, das wollen wir jetzt ein bißchen korrigieren. Schlechter Wagen, hoffentlich hält er’s noch ein paar Kilometer aus!«

    Schnell wie der Wind, das himmlische Kind, knatterten wir davon, in eine grüne ruhige Landschaft hinein, viele Meilen weit, durch eine große Ebene und dann langsam steigend in ein gewaltiges Gebirg hinein. Hier machten wir halt auf einer glatten, gleißenden Straße, die führte zwischen steiler Felswand und niedriger Schutzmauer in kühnen Kurven hoch, hoch über einem blauen leuchtenden See dahin.

    »Schöne Gegend«, sagte ich.

    »Sehr hübsch. Wir können sie Achsenstraße heißen, es sollen hier diverse Achsen zum Krachen kommen, Harrychen, paß mal auf!«

    Eine große Pinie stand am Weg, und oben in der Pinie sahen wir aus Brettern etwas wie eine Hütte gebaut, einen Auslug und Hochstand. Hell lachte Gustav mich an, aus den blauen Augen listig zwinkernd, und eilig stiegen wir beide aus unsrem Wagen und kletterten am Stamm empor, verbargen uns tief atmend im Auslug, der uns sehr gefiel. Wir fanden dort Flinten, Pistolen, Kisten mit Patronen. Und kaum hatten wir uns ein wenig gekühlt und im Jagdstand eingerichtet, da klang schon von der nächsten Kurve her heiser und herrschgierig die Hupe eines großen Luxuswagens, der fuhr schnurrend mit hoher Geschwindigkeit auf der blanken Bergstraße daher. Wir hatten schon die Flinten in der Hand. Es war wunderbar spannend.

    »Auf den Chauffeur zielen!« befahl Gustav schnell, eben rannte der schwere Wagen unter uns vorbei. Und schon zielte ich und drückte los, dem Lenker in die blaue Mütze. Der Mann sank zusammen, der Wagen sauste weiter, stieß gegen die Wand, prallte zurück, stieß schwer und wütend wie eine große dicke Hummel gegen die niedere Mauer, überschlug sich und krachte mit einem kurzen leisen Knall über die Mauer in die Tiefe hinunter.

    »Erledigt!« lachte Gustav. »Den nächsten nehme ich.«

    Schon kam wieder ein Wagen gerannt, klein saßen die drei oder vier Insassen in den Polstern, vom Kopf einer Frau wehte ein Stück Schleier starr und waagrecht hinterher, ein hellblauer Schleier, es tat mir eigentlich leid um ihn, wer weiß, ob nicht das schönste Frauengesicht unter ihm lachte. Herrgott, wenn wir schon Räuber spielten, so wäre es vielleicht richtiger und hübscher gewesen, dem Beispiel großer Vorbilder folgend, unsre brave Mordlust nicht auf hübsche Damen mit auszudehnen. Gustav hatte aber schon geschossen. Der Chauffeur zuckte, sank in sich zusammen, der Wagen sprang am senkrechten Fels in die Höhe, fiel zurück und klatschte, die Räder nach oben, auf die Straße zurück. Wir warteten, nichts regte sich, lautlos lagen, wie in einer Falle gefangen, die Menschen unter ihrem Wagen. Der schnurrte und rasselte noch und drehte die Räder drollig in der Luft, aber plötzlich tat er einen schrecklichen Knall und stand in hellen Flammen.

    »Ein Fordwagen«, sagte Gustav. »Wir müssen hinunter und die Straße wieder frei machen.«

    Wir stiegen hinab und sahen uns den brennenden Haufen an. Er war sehr rasch ausgebrannt, wir hatten inzwischen aus jungem Holz Hebebäume gemacht und lüpften ihn beiseite und über den Straßenrand in den Abgrund, daß es lang in den Gebüschen knackste. Zwei von den Toten waren beim Drehen des Wagens herausgefallen und lagen da, die Kleider zum Teil verbrannt. Einer hatte den Rock noch ziemlich wohlerhalten, ich untersuchte seine Taschen, ob wir fänden, wer er gewesen sei. Eine Ledermappe kam zum Vorschein, darin waren Visitenkarten. Ich nahm eine und las darauf die Worte: »Tat twam asi.«

    »Sehr witzig«, sagte Gustav. »Es ist aber in der Tat gleichgültig, wie die Leute heißen, die wir da umbringen. Sie sind arme Teufel wie wir, auf die Namen kommt es nicht an. Diese Welt muß kaputtgehen und wir mit. Sie zehn Minuten unter Wasser zu setzen, wäre die schmerzloseste Lösung. Na, an die …

  • Neun Monate Umwelt-CO2, Teil I: Taugen die Daten?

    Im vergangenen Jahr habe ich meine CO₂-Messung am Balkon bis Mitte September laufen lassen, vor allem, weil ich sehen wollte, wie die Konzentrationen im Laufe der Zeit auf unter 300 ppm sinkt. So weit unten (relativ zum gegenwärtigen globalen Mittelwert von um die 400 ppm) lag zu meiner damaligen Überraschung die Konzentration mal ganz am Anfang meiner CO₂-Messungen, im September 2021. Ich hatte eigentlich erwartet, dass all das Grün im Sommer nach und nach auch in diesem Jahr dafür sorgen würde.

    Daraus ist nichts geworden. Im Groben ist die CO₂-Konzentration über Frühling und Sommer 2022 konstant geblieben:

    Plot: Kurve, die fast immer zwischen 400 und 500 ppm zittert. Auf der Abszisse die Zeit zwischen Ende Dezember 2021 und Mitte September 2022.

    (Alle Plots in diesem Post von TOPCAT). Mag sein, dass es einfach zu trocken war in diesem Jahr – mag aber auch sein, dass meine ersten Experimente einfach in besonders frischer Luft stattfanden. Schließlich kämen natürlich noch Kalibrationsprobleme in Betracht; ich habe nicht versucht, meine Messungen mit denen anderer zu abzugleichen.

    Der Negativbefund hat mich aber dazu gebracht, die Daten im Hinblick auf statistische und vor allem systematische Fehler genauer unter die Lupe zu nehmen. Darum geht es in diesem Post.

    Zunächst stellt sich die Frage, ob die generelle Zittrigkeit der Kurve eigentlich Rauschen des Sensors ist oder etwas anderes – von Anfang an haben mich ja die teils erheblichen Konzentrationsschwankungen verblüfft. Nun: angesichts der hohen Korrelation benachbarter Messwerte kommen diese jedenfalls nicht aus statistischen Fehlern im Sensor. Ich greife mal den 26. Mai (einen Donnerstag) heraus:

    Plot: Kurve, die ein wenig vor sich hin wackelt, bei der aber aber aufeinanderfolgende Punkte klar korreliert sind.

    Wenn das Wackeln ein statistischer Fehler wäre, dann wäre die Linie, die ich durch die Punkte gemalt habe, völliges Gekrakel und nicht erkennbarer Verlauf. Ich will gerne glauben, dass da ein Rauschen irgendwo unterhalb von 10 ppm drin ist. Der Rest ist irgendein Signal.

    Welcher Natur das Signal ist, ist eine Frage, die sich allenfalls mit dem ganzen Datensatz beantworten lässt. Angesichts der überragenden Bedeutung der Sonne für Physik und Leben auf der Erde geht der erste Blick auf der Suche nach systematischen Fehlern oder auch echter Physik bei solchen Zeitreihen erstmal auf die Tagesverläufe. Um da eine Idee des Verhaltens des ganzen Datensatzes zu bekommen, habe ich mir die Punktdichte in einem Plot von Tageszeit gegen CO₂-Konzentration angesehen (ich „falte auf den Tag“):

    Plot: Heatmap, die bei 1.5e4 und 5.5e4 auf der Abszisse Bäuche hat

    Die Abszisse hier verdient einen kurzen Kommentar: Sie zeigt den Rest bei der Division meiner Timestamps durch 84600, ausgedrückt in Stunden. Meine Timestamps sind in Sekunden, und 84600 ist einfach 24 mal 3600, also die Zahl der Sekunden an einem Tag. Mithin steht hier etwas wie eine Tageszeit.

    Ganz so einfach ist das aber nicht, weil meine Timestamps immer in UTC laufen, während die Umgebung der Willkür der Zeitzonen unterworfen ist; die 15 auf der Abszisse entspricht also manchmal 16 Uhr bürgerlicher Zeit (nämlich, wenn die Umgebung MEZ hatte) und manchmal 17 Uhr (wenn ihr Sommerzeit verordnet war). Aber schon rein optisch liegt nicht nahe, dass viel mehr zu sehen wäre, wenn ich die politischen Kapriolen nachvollziehen würde, um so weniger, als die Sonne die ja auch nicht nachvollzieht.

    Die Bäuche in der dunkleren Fläche, also einer besonders hohen Dichte von Punkten, entsprechen nun Tageszeiten, zu denen es häufiger mal hohe CO₂-Konzentrationen auf meinem Balkon gab. Das könnte ein Signal der Lüftung unserer Wohnung (oder vielleicht sogar der unserer Nachbarn) sein. Es ist aber auch plausibel, dass es der Reflex der Verkehrsdichte ist. Der Balkon befindet sich etwa 10 Meter über und 20 Meter neben einer recht viel befahrenen Straße, weshalb im September 2021 die Unsichtbarkeit der CO₂-Emissionen der Fahrzeuge mit meine größte Überraschung war. Mit hinreichend viel Statistik und Mitteln über hinreichend viele Wetterlagen zeigen sich die Autos (vielleicht) eben doch.

    Zwei Eisschachteln beschwert mit einem rostigen Stahlriegel

    Die Messanordnung; das wird für die Kalibration noch wichtig…

    Wenn Effekte so sehr auf zusammengekniffenen Augen beruhen wie hier beim Tagesverlauf, hilft es nichts: Da braucht es einen zweiten Blick auf innere Korrelationen der Daten, um zu sehen, ob sich da schlicht systematische Fehler zeigen oder ob es wirklich die Autos sind. Klar: besser wäre es natürlich, mit bekannten Konzentrationen oder einfacher einem bekannt guten Messgerät zu kalibrieren, also zu sehen, welche Anzeige das Gerät für welchen wahren Wert hat.

    Aber das ist aufwändig, und zumeist zeigen sich Systematiken mit ein paar plausiblen Annahmen („Modelle“) auch schon in den Daten selbst. Zur plausiblen Modellierung lohnt es sich, das Messprinzip des Geräts zu betrachten. Der Sensor ist im Groben eine Infrarot-Leuchtdiode, die in einem der Spektralbereiche sendet, in denen Kohlendioxid stark absorbiert (weswegen es ja den Treibhauseffekt macht). Das Signal wird dann von einer Fotodiode (oder etwas ähnlichem) aufgefangen, und die Schwächung des Signals ist ein Maß für die Konzentration von CO₂ zwischen LED und Fotodiode.

    Allerdings sind alle Halbleiter temperaturempfindlich, und irgendwas, das im Infrarotbereich empfängt, wird schon zwei Mal viel Kalibration brauchen, um Temperatursystematik wegzukriegen. Mit Sicherheit tut die eingebaute Software schon viel in der Richtung. Aber ein Dichteplot zwischen Temperatur und Konzentration zeigt durchaus einen ganzen Haufen Struktur:

    Dichtplot: Etwas wie Australien mit einem langen Schwanz nach Nordosten, dazu noch ein abgetrennter Schnips bei 50 Grad und 650 ppm.

    Manches davon ist ziemlich sicher Physik, so insbesondere, dass die ganz hohen Konzentrationen bei niedrigen Temperaturen auftreten – das ist ein Jahreszeiteneffekt. Anderes ist ganz klar Instrumentensignatur, am klarsten das abgetrennte Schwanzende jenseits von 50 Grad Sensortemperatur. Offenbar[1] ist die Kalibrationskurve (also: Welches Signal von der Fotodiode soll bei welcher Temperatur welche CO₂-Konzentration ausgeben?) abschnittsweise definiert, und beim Abschnitt über 50 Grad wird sich wohl wer bei den Hundertern vertippt haben. Im Tagesplot entspricht dieses Schwänzchen übrigens dem abgesetzten Häubchen am Nachmittag.

    Im Neunmonatsplot zeigen sich die Punkte dort in ein paar der Spitzen zwischen dem 18. Juli und dem 4. August, nur dass sie dort mit den „normalen“ Daten mit einer Linie verbunden sind und nicht als abgesetzt auffallen; Grundregel Nummer 312: Vorsicht beim Verbinden mit Linien. In einem Scatterplot, bei dem Punkte in dem abgetrennten Schwanzende rot gefärbt sind, sind die Unstetigkeiten (und mithin die Fehlkalibration des Geräts) offensichtlich:

    Eine grüne Kurve mit Lücken.  Die Lücken sind jeweils Hauben in rot, die 100 ppm über den Enden der Lücken schweben.

    In meinem Datensatz betrifft das 1027 von 724'424 Datenpunkten – eigentlich sollte ich die wegwerfen, aber wenn mensch einfach 100 von ihnen abzieht, kommen weitgehend glatte Kurven raus, und so wird das schon nicht völlig unvernünftig sein. Ich bin auch ganz glücklich mit meiner Erklärung des Vertippers bei der Hunderterstelle der abschnittsweise definierten Kalibrationskurve.

    Mir gefällt aber auch die offensichtliche Korrelation von Temperatur und CO₂ zwischen 30 und 50 Grad nicht[2], die sich in der „Fahne nach Nordosten“ im T-Kalibrationsplot zeigt. Mein, na ja, Modell würde da keine Korrelation[3], also einen ebenen Verlauf geradeaus „nach Osten“ erwarten lassen.

    Soweit das Modell zutrifft, ist die ganze Steigung nur eine weitere Fehlkalibration der Temperaturabhängigkeit der Photodiode. Mithin sollte mensch wahrscheinlich oberhalb von 30 Grad etwas wie (T − 30) ⁄ 20⋅50  ppm (weil: über die 20 Grad oberhalb von 30 Grad Celsius geht die Fahne um rund 50 ppm nach oben) abziehen. Gegen Ende des Posts erwähne ich, warum ich die Korrektur am Ende auf (T − 25) ⁄ 25⋅80  ppm erweitert habe.

    Zur näheren Untersuchung habe ich die Punkte aus der Fahne in einer normalen CO₂-Zeitreihe rosa eingefärbt, die Temperatur dazugeplottet und bin dabei zunächst auf ein Ereignis gestoßen, das mir sehr merkwürdig vorkam:

    Zwei Kurven.  Oben CO2, wo aus einer pinken Basis plötzlich ein grüner Gipfel rauswächst, unten die Temperatur, bei der sich nichts tut.

    Ich habe immer noch keine Ahnung, was hier passiert ist: Wenn nicht einfach nur das Instrument durchgedreht ist, dann muss von irgendwoher ein Schwung kohlendioxidreiche Luft gekommen sein, die aber an der Temperatur unter der Eisdose nichts geändert hat. Wenn der Spike von einer Wohnungslüftung käme, wäre das sehr seltsam, denn wenn die Leute die Fenster zu hatten – und nur dann hätte sich CO₂ anreichern können – wäre die Luft innen je nach Bauphysik fast sicher kühler oder wärmer gewesen als draußen. Hm. Mein bestes Angebot: Luft ist ein schlechter Wärmeleiter, und welches Lüftchen auch immer hier wehte, hat den sonnenbeschienenen Sensor einfach nicht kühlen können.

    Ach so: die Kurve ist beim Ergeignis grün, obwohl sich an der Temperatur nichts geändert hat, weil bei den hohen CO₂-Konzentrationen die ensprechenden Punkte aus der kleinen Nase über der Nordost-Fahne im T-Kalibrationsplot zu liegen kommen. Pink ist aber nur gemalt, was in der Fahne selbst ist.

    Fruchtbarer ist die Betrachtung des parallelen Verlaufs von CO₂ und Temperatur zwischen 13 und 16 Uhr. Diese Parallelität besteht tatsächlich nur für die pinken Punkte. Es gibt keine plausible Physik, die CO₂ und Temperatur (auf diesen Skalen) gleich schwingen lassen würde. Wenn ich mit meiner Augenmaß-Kalibrationsfunktion von oben korrigiere, verschwindet dieses Signal auch tatsächlich fast vollständig:

    Zwei Kurven wie eben, nur ist dieses Mal oben co2-(temp-30)/20*50 geplottet, und der parallele Verlauf der beiden Kurven ist auch wirklich fast weg.

    Beachtet die obere Achsenbeschriftung; das ist die Nachkalibration, die ich zunächst angebracht habe; mit meiner verbesserten Nachkalibration ab 25°C bleibt etwas mehr Signal übrig:

    Zwei Kurven wie eben; die rekalibrierte, die jetzt wieder irgendwas im Rhythmus der Temperatur macht.

    Dass die Flanken des „Störsignals“ jetzt steiler sind, finde ich eher beruhigend, denn ich glaube, dass das etwas mit direkter Sonneneinstrahlung zu tun hat (die die Infrarotdiode ganz bestimmt stört), und Licht und Schatten gehen natürlich viel schneller als die Erwärmung von Luft und Gerät. In der Tat würde Streulicht von der Sonne so tun, als käme etwas mehr Licht beim Sensor an, als wäre also etwas weniger CO₂ im Strahlengang. Wenn ihr scharf schaut: im Plot sieht es aus, als sei die CO₂-Schätzung niedriger, wenn die Temperatur ansteigt (also vermutlich die Sonne schien) und höher, wenn sie das nicht tat. Wäre das hier Wissenschaft, müsste ich dieser Spur genauer nachgehen. So, wie es ist, kann …

  • My First Libreoffice Macro in Python

    Screenshot: a libreoffice window with the string "Libreoffice" selected, behind a browser window with a wikipedia search result for libreoffice.

    This is what I was after: Immediate Wikipedia search from within Libreoffice. In the document, you can also see the result of a Python dir() as produced by the inspect macro discussed below.

    While I still believe the creation „office“ software was one of the more fateful turns in the history of computing and this would be a much better world if there hadn't been VisiCalc and WordStar, not to mention all the software they spun off, I do get asked about Libreoffice quite a bit by people I have helped to get off of Windows.

    The other day one of them said: „You know, wouldn't it be nifty if I could mark a term, hit F3 and then that'd do a Wikipedia search for that term?“ I could sympathise with that, since the little one-line CLI I have on my desktop has a function pretty much for this, too. That program, however, probably is too mean for people using Libreoffice. But tomorrow is that guy's birthday, and so I thought: how hard can it be to teach this to Libreoffice directly?

    Turns out it's harder (for me) than I thought. Which is why I'm writing this post: perhaps a few people will find it among all the partially outdated or (to me) not terribly helpful material. I think I'd have appreciated a post like this before I started investigating Libreoffice's world of macros.

    In particular, I'd have liked the reassuring words: „There's no reason to fiddle with the odd dialect of BASIC that's built in, and there's no reason either to use the odd IDE they have.” The way things were, I did fiddle around with both until I couldn't seem to find a way to open a URL from within StarBasic or whatever that thing is called today. At that point I noticed that all it takes for Python support is the installation of a single small package. In addition, for all I can see the BASIC variant has just about as much relevant documentation as the Python API. So… let's use the latter.

    Preparations

    (a) To enable Python macros in libreoffice version 7 (as in Debian bullseye), you have to install the libreoffice-script-provider-python package.

    (b) The extensions go into a directory deep within your XDG .config. So, create and enter this directory:

    mkdir ~/.config/libreoffice/4/user/Scripts/python/
    cd ~/.config/libreoffice/4/user/Scripts/python/
    

    I'm calling this directory the script path below.

    Figuring out Libreoffice's API

    My main problem with this little project has been that I could not figure out Libreoffice's macro-related documentation. The least confusing material still seems to be maintained by openoffice (rather than libreoffice), and what I ended up doing was using Python introspection to discover attribute names and then entering the more promising ones into the search box of the openoffice wiki. I strongly suspect that's not how it's meant to work. If you know about better ways: please drop me a note and I will do an update here.

    But: How do you introspect given these macros do not (easily) have a stdout, and there seems to be no support for the Python debugger either?

    Based on an example from openoffice, I figured out that to Libreoffice, macros written in Python are just functions in Python modules in the script path, and that the basic entry point to libreoffice is through a global variable that the libreoffice runtime tricks into the interpreter's namespace, namely XSCRIPTCONTEXT. With this realisation, the example code, and some guessing I came up with this (save into the script path as introspect.py):

    def introspect():
        desktop = XSCRIPTCONTEXT.getDesktop()
        model = desktop.getCurrentComponent()
        text = getattr(model, "Text", None)
        if not text:
            # We're not in writer
            return
    
        text.End.String = str(dir(model))
    

    If all goes well, this will append a string representation of dir(model) to the end of the document, and in this way you can look at just about any part of the API – perhaps a bit clumsily, but well enough.

    But first, run Python itself on your new module to make sure there are no syntax errors:

    python introspect.py
    

    That is important because if Python cannot parse your module, you will not find the function in the next step, which is linking your function to a key stroke.

    To do that, in libreoffice, create a new text document and do ToolsCustomize from the menu. Then, in Range, you should find LibreOffice Macros, then My Macros, and in there the introspect module you just created. Click it, and you should be able to select introspect (or whatever function name you picked) under Function. Then, select the key F4 in the upper part of this dialog and click Modify[1].

    After you did that, you can hit F4, and you will see all attributes that the result of getCurrentComponent has. As I said, pasting some of these attribute names into the search box on openoffice's wiki has helped, and of course you can further introspect the values of all these attributes. Thankfully, libreoffice auto-reloads modules, and so traversing all these various objects in this way is relatively interactive.

    I freely admit that I have also used this text.End.String = trick to printf-debug when I did the next steps.

    The Wikipedia-Opening Script

    These next steps included figuring out the CurrentSelection object and, in particular, resisting the temptation to get its Text attribute (which points to its parent, the whole document). Instead, use the String attribute to retrieve what the user has selected. The rest is standard python fare with a dash of what I suppose is cargo-culting on my end (the supportsService thing seeing whether I can subscript the selection; I lifted that from another example I ran into on the openoffice wiki):

    import webbrowser
    from urllib.parse import quote as urlquote
    
    def search_in_wikipedia():
        """Do a wikipedia search for the current selection"""
        desktop = XSCRIPTCONTEXT.getDesktop()
        model = desktop.getCurrentComponent()
        sel = model.CurrentSelection
        if sel.supportsService("com.sun.star.text.TextRanges"):
            selected = sel[0].String.strip()
            if selected:
                webbrowser.open_new_tab("https://de.wikipedia.org/w/index.php"
                    "?fulltext=Suchen&search="+urlquote(selected))
    

    For all I can see, the Wikipedia search URI is the same across the instances modulo the authority part – so, replace the de in the URL with the code for whatever language you (or persons you need a birthday present for) prefer. Then, save it to the script path and bind it to a function key as before.

    I'm sure this can (and should) be made a whole lot more robust with a bit more actual Libreoffice-fu. But it seems to work nicely enough. And me, I have a very personal (in a somewhat twisted sense) birthday present.

    [1]I always find that describing operations in GUIs tends to sound like incomprehensible origami instructions. Is there a term for that kind of language already? Gooeynese, perhaps?
  • Gefrorener Nebel

    Foto: Ein Berg, unten wie von Schnee weiß überpudert, oben eher braun.

    Der Ölberg bei Dossenheim heute: Sieht zwar aus wie Inversionswetterlage, war aber überall kalt.

    Zu den großen Vorteilen des Lebens mit Bergblick[1] gehört, dass es immer wieder interessante Physik zu bestaunen gibt. Heute etwa zeigte sich der Ölberg – ein Teil des Aufstiegs zum Odenwald am östlichen Rand des Oberrheingrabens, das Foto entstand also von etwa 100 Metern über NN – wie im Foto oben. Berge, die oben braun und unten weiß sind, sind zunächst eher erstaunlich, denn „normal“ wirds nach oben hin kälter, und damit bleibt Schnee auf Bergen meistens viel länger liegen als im Tal, so wie etwa hier (Mai 2017):

    Foto: Viel Grün im Vordergrund, dahinter Schneeberge

    Eine wichtige Ausnahme von dieser Regel ergibt sich bei einer Inversionswetterlage, wenn sich warme Luft über kalte schiebt; der verlinkte Wikipedia-Artikel enthält in der Tat ein Bild ganz ähnlich wie das Eingangsfoto, also ein Berg mit weißem Fuß und braunem Kopf.

    Inversionswetterlagen sind von Dossenheim aus gut zu erkennen, wenn das Kraftwerk in Mannheim-Rheinau läuft, denn die Dampf-Fahne sieht dann etwas seltsam aus (Foto vom Dezember 2021):

    Foto: Himmel mit „Abgasfahne“, die auf halber Höhe abknickt und sich flach weiter ausbreitet.

    Wie das ohne Inversion aussieht, könnt ihr im kleinen GKM-Video im Kohlendioxid am Balkon-Post begutachten.

    Aber der Befund oben ist allenfalls indirekt auf eine Inversionswetterlage zurückzuführen. Es war gestern in der ganzen Luftsäule arschkalt – -8° Celsius ist für diese Gegend hier schon bitter – und dazu im Tal neblig. Bei diesen Tempraturen ist der Nebel ausgefroren, wie das heute morgen im Tal an vielen Stellen zu bewundern war, etwa an dieser Pflanze – also gut: an diesem Pflanzenrest:

    Foto: Myriaden von Eiskristallen an einem Pflanzentrieb in der Sonne

    Ich würde nennenswerte Summen verwetten, dass der Nebel gestern am Ölberg nur bis vielleicht 300 m über NN reichte und darüber strahlender Sonnenschein herrschte (diese obere Nebelgrenze mag an einer milden Inversion gelegen haben; ich bin nach den hiesigen Wetterverhältnissen der letzten Tage jedoch überzeugt, dass es auch bei Sonne nicht viel wärmer war dort oben).

    Es wäre bestimmt hinreißend gewesen, über die Nebel im Rheingraben zu blicken. Wenn mensch das nur immer so genau wüsste unten im Nebel… Andererseits: Es wäre mir wahrscheinlich so oder so zu kalt gewesen, und mein RSV (oder Influenza oder Parainfluenza oder Metapneumo oder hCoV oder was auch immer, also: meine blöde Erkältung gerade) hätte mich wohl eh drin gehalten.

    [1]Nein, ich will nichts darüber hören, dass Erhebungen von 350 Metern über die Umgebung – das ist die Größenordnung beim Ölberg – nicht als Berge, sondern allenfalls als Hügel zählen. Fahrt einfach mal mit dem Fahrrad rauf. Danach höre ich mir das Wort „Hügel“ auch aus eurem Mund an.
  • Machen Straßen auch nach 2000 Jahren noch Dreck?

    Foto: Straße mit braunem Tourismus-Hinweis: Limes

    Zumindest die Kolonnenwege am Limes sind heute meist grüne Wiese (oder Maisfeld oder Wald). Aber wie ist es mit Spuren größerer Römerstraßen?

    Neulich habe ich die DLF-Wissenschaftsmeldungen vom 23.11. gehört. Ab Minute 2:30 ging es römisch zu:

    Römerstraßen prägen noch immer den Wohlstand in Europa [...] Die anhand von Lichtspuren erkennbare heutige Verteilung von Siedlungen, Populationsdichte und Wirtschaftsleistung in Europa folgt noch immer den gleichen Mustern [wie das römische Straßennetz].

    Ich will nun gar nicht darüber schimpfen, dass ausgerechnet Licht- und damit Umweltverschmutzung als Maß für „Wohlstand“ (im Original etwas zweideutiger „prosperity“) genommen wird. Nein, meine spontane Reaktion war: „Boah, was für ein Wiwi[1]-Bullshit. Natürlich sind die römischen Straßen da, wo die damals ihre Städte gebaut haben, und natürlich haben sie ihre Städte im Groben da gebaut, wo wir das immer noch tun: dort, wo Schiffe gut hinkommen, wo das Wetter nicht zu garstig ist, wo nicht zu viele Berge sind, wo der Boden Ertrag bringt.”

    Damalige und heutige Produktions- und Bevölkerungsdichte werden also in jedem Fall stark korreliert sein, und das nicht, weil das eine das andere bedingen würde – immerhin trennt ein recht weitgehender und mithin kausal entkoppelnder Zusammenbruch[2] die beiden Sorten von Metriken –, sondern weil sie beide von ungefähr gleichen zugrundeliegenden Variablen wie „Verkehrsgunst“ oder meinetwegen „ökonomisches Potenzial des Bodens“ abhängen.

    Aber ich habe erstens einen Römerfimmel und will mich zweitens nicht unverdient des Natwi-Chauvinismus zeihen lassen. Deshalb habe ich das Paper herausgesucht. Es handelt sich um „Roman roads to prosperity: Persistence and non-persistence of public infrastructure“ von Carl-Johan Dalgaard und KollegInnen, erschienen leider bei Elsevier im Journal of Comparative Economics. Ich linke da nicht gerne drauf, zumal es nicht open access ist und selbst Leute mit Zugang derzeit durch ein dämliches Javascript-Fegefeuer müssen, um ein ordentliches PDF zu bekommen. Aber es hilft alles nichts: doi:10.1016/j.jce.2022.05.003.

    Korrelation oder Kausation?

    Die dänischen WirtschaftswissenschaftlerInnen – es hat offenbar niemand mit akademisch verbürgten Antike-Hintergrund mitgeschrieben – um Dalgaard prüfen in der Tat die Hypothese, dass sich Investitionen in die öffentliche Infrastruktur (also, ähh: Straßen) noch nach 2000 Jahren lohnen können, und die DLF-Zusammenfassung kommt auch insoweit hin, als sie diese Hypothese für den europäischen Teil des römischen Reichs bejahen.

    Natürlich war Dalgaard et al der Einwand der gemeinsamen Ursache der Korrelation durchaus bewusst, und so bieten sie bereits in der Einleitung an:

    Roman road construction did not follow the rules of infrastructure planning in the contemporary era. The Roman roads were built mainly with a military purpose in mind, and geographic obstacles in the landscape were often surmounted rather than evaded.

    Zum Beleg führen die AutorInnen den Prototyp der römischen Straße an, die Via Appia, die ohne viel Federlesens schnurgerade quer durch die Pontischen Sümpfe gelegt wurde. Aber schon ein schneller Blick auf die Abbildung A1 aus den Anhängen des Artikels stellt klar, dass die römischen PlanerInnen ihre Straßen sehr wohl den geographischen Gegebenheiten angepasst haben:

    Eine Landkarte des nördlichen Mittelitaliens, in die einige römische Straßen eingezeichnet sind; sie vermeiden ersichtlich bergige Gegenden.

    Straßen durch den Apennin gibt es, wenn überhaupt, nur in den Tälern, und wo niemand wohnt, ist auch keine Straße; ansonsten verbinden die Straßen halt Städte auf relativ direktem Weg und umgehen Unwegsamkeiten, wenn das ohne allzu große Umwege geht. Rechte: Dalgaard et al

    Richtig ist allerdings, dass die Römer durchaus auch größere Konstruktionen in Angriff genommen haben, wenn sie dadurch Strecke einsparen konnten. Schöne Beispiele dafür finden sich im Wikipedia-Artikel zur Via Claudia Augusta. Nebenbei zur Frage der Kontinuitäten: So sieht die Via Claudia Augusta heute bei Franzensfeste/Fortezza – wo das Tal übrigens so eng ist, dass es gar nicht so arg viele Alternativtrassen gibt – aus:

    Eine in den Felsen gegrabene Karrenspur, stark zugewachsen.

    Die Via Claudia Augusta belegt anonsten aber, dass römische Straßen den gleichen natürlichen Gegebenheiten unterworfen waren wie unsere heutigen Straßen auch. Damals wie heute sind Reschenpass und Fernpass halbwegs attraktiv, damals wie heute ging die Autobahn (oder damals halt die Via Raetia) schließlich über den bequemeren Brennerpass.

    Wer sich ein Bild zur Korrelation über die parallele Auswahl der Siedlungsräume machen will, möge eine Karte des obergermanischen Limes betrachten (zum Beispiel in den tollen Limes-Heften der Deutschen Limeskommission). Dort sind ein paar eigenartige Ausbuchungen zu sehen, insbesondere fürs Neuwieder Becken, für das die Provinzverwaltung den Limes extra noch ein Stück nach Norden gezogen hat, und die Wetterau, die insgesamt hübsch vom Limes eingeschlossen wird. Natürlich werden römische wie unsere Straßen mit solchen Gebieten korrelieren.[3]

    Oder ist da doch noch was?

    Damit könnte das Thema eigentlich erledigt sein, aber Dalgaard et al vermuten – so lege ich ihnen das mal in den Mund –, dass es da noch ein Extrasignal geben könnte, dass also der damalige Straßenbau heutige Umweltverschmutzung (in ihren Worten: wirtschaftliche Entwicklung) verursachen würde, die es bei sonst gleicher Geographie ohne den Straßenbau nicht gegeben hätte.

    Das Problem: wie findet mensch so einen Extra-Effekt? Die grundsätzliche Technik ist, in Analysen „für Confounder zu kontrollieren“, also im Groben zu versuchen, die (hier) störenden Einflüsse durch analoge Motivationen zum Straßenbau zu schätzen und dann herauszurechnen. Das ist tatsächlich kein völliger Hokuspokus, auch wenn es oft eine Familienpackung Modellierung und Annahmen braucht. Die englische Wikipedia deutet in controlling for a variable an, wie das gehen kann; wo sowas in der deutschen Wikipedia steht, weiß ich offen gestanden nicht.

    Die Achillesferse des Kontrollierens ist das Modell, was denn wohl (in diesem Fall) die möglichen gemeinsamen Einflüsse sein könnten. Dalgaard et al bieten dazu die Seehöhe an – auf den Bergen ist es kälter und unwirtlicher; etwas, das sie „Caloric Suitability“[4] nennen und das Boden, Wetter und Feuchtigkeit zusammenfasst zu einem Maß, wie viel Essen mensch aus dem Boden rausholen kann, getrennt nach vor-Kartoffel und nach-Kartoffel, so dass für die römische Zeit andere Kriterien gelten als für unsere; „agricultural suitability“, was so ähnlich funktioniert, aber andere AutorInnen hat; den Abstand zum nächsten größeren Fluss; den Abstand zum Meer; und antike Minen.

    Obendrauf meinen sie, moderne Systematiken rausrechnen zu müssen, vor allem den Einfluss von Sprache und Land auf die Wirtschaftsleistung, aber dann auch völlige Albernheiten wie die Entfernung zu Wittenberg als Proxy für Neigung zu Protestantismus – als sei dieser eine sich langsam ausbreitende Infektionskrankheit, die einfach noch nicht genug Zeit hatte, um sich, sagen wir, in Italien durchzusetzen – und inspiriert von Max Webers Theorie vom Protestantismus als Basisideologie des Kapitalismus. Wer schmunzeln will: die Arbeit sieht schwach signifikant, dass es mit wachsender Entfernung von Wittenberg im römischen Reich dunkler wird.

    Wie rechnet mensch die Verstraßung der Landschaft aus?

    Um ihre unabhängige Variable, die Straßendichte in römischer Zeit, auszurechnen, teilen Dalgaard et al das römische Reich in Zellen von ein Grad in Länge und ein Grad in Breite auf. Wenn ich das als Astronom mit Neigung zum Natwi-Chauvinismus sagen darf: In Zeiten von HEALPix ist das etwas fußgängerisch. Aber das römische Reich hat hinreichend wenig von der Kugelform der Erde mitbekommen, so dass zu Fuß laufen vermutlich keine nennenswerten Probleme einführt. Dann legen sie um die römischen Straßen aus dem Barrington-Atlas (ausleihbar in der Library Genesis) 5-km-Umgebungen – in der GIS-Szene „Buffer“ genannt – und rechnen das Verhältnis der so erzeugten Fläche zur Gesamtfläche in ihrer Zelle aus.

    Warum die das so machen, ist mir offen gestanden nicht klar, denn es benachteiligt ausgerechnet besonders gut vernetzte Orte, um die herum sich diese Buffer massiv überlagern werden. Als Zeichen für die Verbundenheit einer Zelle schiene mir jedenfalls die Gesamtlänge der Straßen in ihr als Metrik erheblich naheliegender. Wahrscheinlich ist das römische Straßennetz so grobmaschig, dass die Überlagerung allenfalls in ausgesprochenen Knotenpunkten wie Rouen überhaupt eine Rolle spielt. Aber etwas seltsam ist die Bufferflächen-Metrik doch.

    Damit fangen Dalgaard et al an zu rechnen. Sie fitten eine Unzahl linearer Zusammenhänge zwischen den Logarithmen aller möglicher dieser Metriken. Sachlich also unterstellen sie Potenzgesetze, a ∝ bγ, wobei sie endlose Tabellen dieser γ für alle möglichen Parameter ausrechnen, während sie für alles Mögliche kontrollieren.

    Ihr zentrales Ergebnis (aus der Tabelle 3, Spalte 7 im Paper) ließe sich etwa formulieren als: Die moderne Lichtverschmutzung geht ungefähr mit der Wurzel der antiken Straßendichte, also: 25 Mal mehr Straßen damals macht fünf Mal mehr Lichtverschmutzung heute[5].

    Zentral^WZahlenfriedhof

    Um ein Gefühl dafür zu kriegen, wie empfindlich dieses Ergebnis auf die diversen Kontrollen für Land, Leute, Höhe und Breite reagiert, kann mensch auf die anderen Spalten der erwähnten Tabelle spitzen: Das γ kann statt ungefähr 1/2 auch mal eher 3/2 sein (nämlich ganz ohne Kontrollen), was dann auf 125 Mal mehr Lichtverschmutzung für das 25-mal dichtere Straßennetz führen würde, oder auch mal 1 (wenn sie für die Zeit seit der lokalen neolithischen Revolution kontrollieren, wenn ich die etwas hemdsärmelige Beschreibug der Tabelle richtig lese), was einfach auf 25-fache Lichtverschmutzung führen würde.

    Ergebnisse, die je nach Modellierung so wild schwanken, rufen nach einer Plausibilisierung der zugrundeliegenden Modelle. Ich glaube, dass die Zahlenfriedhöfe, die das Paper und seine Anhänge durchziehen, dieser Plausibilisierung dienen sollen, und ich habe eine ganze Weile auf Tabellen dieser Art gestarrt (nur zur Illustration; die Werte, die ich für meine Betrachtung als relevant erachte …

  • Von der Banalität der Banalität des Bösen

    Als Hannah Arendt den Prozess gegen Adolf Eichmann beobachtete, prägte sie den Begriff der Banalität des Bösen, die erschreckende Einsicht, dass Menschen gelegentlich die schlimmsten Grausamkeiten aus Motiven begehen, wie sie uns auch im Alltag bewegen. Bei Eichmann, der damals die Tragödie eines einfachen Beamten aufführte, der sozusagen in Ausprägung von Sekundärtugenden die fabrikmäßige Vernichtung von Millionen von Menschen organisiert hat, war das zwar Quatsch. Er war, weitab von Alltagsrassissmus, ein rabiater, von glühendem Antisemitismus angetriebener Faschist (vgl. die Sassen-Interviews). Die Banalität des Bösen ist dennoch sehr real, wenn auch glücklicherweise in Ligen weit unterhalb industriellen Massenmords.

    Ein überraschend deutliches Beispiel dafür findet sich in der taz von diesem Wochenende: Ein Interview mit Wolfgang Schäuble, in dem dieser Einiges über die Beweggründe seiner schrecklichen Politiken verrät. Lasst mich zwei Datenpunkte zum Beleg seiner scheinbar gewissenlosen, autoritären Schurkigkeit beibringen.

    (1) Als Finanzminister (2009-2013) hat er nach der Lehman Brothers-Bankenkrise wesentlich den Einriss des (bereits zuvor eher rudimentären) griechischen Sozialstaats orchestriert (Troika-Politik); ein wenig davon lässt sich im DLF-Hintergrund Politik vom 16.8.2018 nachlesen. Auch für erklärte Metriken-SkeptikerInnen wie mich eindrücklich ist in diesem Zusammenhang die Entwicklung der Lebenserwartung in Griechenland nach Weltbank-Daten. Aufgeteilt in die Zeit vor (Prä) und nach (Post) dem großen Schäuble-Sozialabbau in Griechenland und mit linearen Fits der Entwicklung vor (bis 2011) und nach dem Greifen der Troika-Maßnahmen (ab 2012) sieht das so aus:

    Ein Plot mit einem klaren Knick im Jahr 2012: Vorher ziemlich linearer Anstieg, danach Stagnation

    Was passiert, wenn schwäbische Hausfrauen Sozialpolitik machen: Lebenswerwartung in Griechenland (Daten: CC-BY-SA Weltbank).

    Da mag 2020 ein wenig Corona dabei sein, das Ende des Anstiegs der Lebenswerwartung war jedoch auch vorher schon sonnenklar. Wer will, kann aus dieser Kurve mit einigem Recht schätzen, dass Schäubles Politik den GriechInnen inzwischen zwei Lebensjahre geraubt hat. Und wer sich schon so weit in diese Sorte Metriken begeben hat, kann auch gleich weiterrechnen.

    Griechenland hat um die 107 EinwohnerInnen. Mithin sterben dort jedes Jahr um die 105 Menschen (weil sie so in etwa 102 Jahre alt werden). Wenn die jetzt im Schnitt zwei Jahre kürzer leben, gehen aufgrund von Schäubles Politik Jahr für Jahr rund 200'000 Lebensjahre in Griechenland verloren. Das lässt sich noch etwas krasser ausdrücken: Wer ein mittelgroßes Stadion mit 104 Plätzen, also in etwas wie den…

    …mit 60-Jährigen (die noch eine Restlebenswerwartung von 20 Jahren haben) füllt, das dann mit einer hinreichend großen Bombe sprengt und innerhalb eines Jahres das Stadion wieder aufbaut, um das Ganze zu wiederholen: So jemand sorgt für ein vergleichbares Blutbad.

    Das ist kein Unfall. Schäuble hat eine so konsequente Verarmungs- und Privatisierungspolitik gerade auch im Gesundheitswesen erzwungen, dass über deren Ergebnisse von vorneherein keine Zweifel bestehen konnten. Er kann schlicht nicht sagen, dass er das Gemetzel nicht gewollt habe.

    (2) Als Innenminister (1989/1990 und wieder 2005-2009) hat Schäuble legendär im Bereich der Menschenrechte gewütet. Erwähnt seien hier etwa

    • die Erfindung der „Antiterror“-Datei, mit der unter anderem das uns von den Alliierten geschenkte Trennungsgebot von Polizei und Geheimdienst ziemlich obsolet würde (wenn nicht das Misstrauen zwischen Polizei und Geheimdiensten noch einen gewissen Restschutz böte).
    • in diesem Zusammenhang die Erfindung eines „Supergrundrechts auf Sicherheit“, das noch jede Aushebelung von Menschenrechten rechtfertigen würde und so quasi die Urmatrize autoritärer Politik darstellt.
    • die wesentliche Beförderung (gut: im Einklang mit seinen Länderkollegen) des Staatstrojaners, auch wenn er, als sein Werk 2011 spektakulär explodierte, schon dem Finanzministerium vorsaß.
    • die drastische Ausweitung von „Zuverlässigkeitsprüfungen” im Vorfeld der Fußball-WM der Männer 2006, seit der es ganz normal ist, dass über Menschen, die, sagen wir, Würstel in Fußballstadien verkaufen wollen, Auskunft bei den Polizeien eingeholt wird und so die üblichen und willkürlichen Datenspeicherungen der Exekutive existenzgefährdend werden können.
    • die Aushandlung und Durchsetzung des Vertrags von Prüm, mit dem unter anderem diese willkürlichen Daten über politisch missliebige und andere Personen quer durch Europa verschoben werden dürfen.
    • die Nutzung dieses Mechanismus beim NATO-Jubiläum 2009 in Baden-Baden, Kehl und Straßburg, um mutmaßliche GegendemonstrantInnen von den französischen Behörden abfangen zu lassen, nachdem Gerichte Schäuble untersagt hatten, das von deutschen Behörden erledigen zu lassen.
    • vergleichbar das wüste Vorgehen gegen die Proteste gegen den G8-Gipfel in Heiligendamm im Jahr 2007 mit großflächigen Hausdurchsuchungen im Vorfeld, gewaltigen Sperrzonen, militärischen Polizeieinsätzen und Polizeieinsätzen des Militärs („russische Verhältnisse“ sagte damals sogar Attac; weniger gleichmütige Stimmen haben weit drastischere Bilder).

    Undsoweiterundsofort. Ich könnte weiter machen mit den Fiesheiten, die er in den Einigungsvertrag mit der DDR hat reinschreiben lassen, seiner düsteren Rolle in der Kohl-Spendenaffäre, seiner Verwicklung in Cum-Ex oder vielem mehr. Keine Frage: Schäuble ist ein Schurke, der konsequent immer auf der falschen Seite jeder Geschichte stand.

    Und was erzählt dieser Mensch nun im taz-Interview, warum er im Jahr 2000 in der Politik geblieben ist, warum er also letztlich die Mehrzahl der hier aufgezählten Schurkigkeiten begangen hat?

    Als ich nach der Spendenaffäre als Fraktions- und Parteivorsitzender zurückgetreten war, war für mich eigentlich klar, dass ich nicht mehr für den Bundestag 2002 kandidieren werde. Aber für einen 60-Jährigen, der seit 10 Jahren im Rollstuhl sitzt und seit 30 Jahren in der Politik ist, waren die Möglichkeiten, etwas anderes zu machen, nicht so groß. Ich wollte keinen Lobbyposten. [...] Ich war vor 1972 in der Steuerverwaltung und bin Lebenszeitbeamter mit Rückkehranspruch. Aber mit 60 Jahren in die Steuerverwaltung zurückzukehren, war auch keine attraktive Idee.

    Also im Groben: Er hat den sozialen Abstieg gefürchtet.

    Ein schon damals alter, aber machtgewohnter Mann hat all den Schaden angerichtet, weil er sich um sein Ansehen sorgte. Und das in einer bemerkenswerten Verdrehtheit, denn auf die Frage, warum er wohl keinen Lobbyposten wollte, antwortet er: „Ich mache nicht alles.“ Was wohl zu lesen ist als: Die Leute, die sich kaufen ließen, um Einfluss auf die Politik zu nehmen (ein paar Beispiele: Kohl für Kirch, Fischer für BMW, Koch für Bilfinger Berger, Schröder für Gazprom oder gar Oettinger für Rosatom und mein Liebingsbeispiel Berninger für Mars) sind irgendwie noch schlechter als jemand, der hunderttausende Lebensjahre raubt und das Grundgesetz rupft.

    Nun wäre es ja denkbar, dass Schäuble auch mit weniger fieser Politik den Sozialstatus erhalten hätte, den er haben wollte. Wie kam er also ausgerechnet auf die Schurkereien, die er wirklich verfolgt hat? Er erläutert das so:

    Ich hatte immer meinen eigenen Kopf. Aber ich bin loyal. [...] Ich habe Kohl gesagt: Ich mache, was er machen würde, wenn er sich mit den Dingen beschäftigen würde. Ich mache, was in seinem Interesse ist. Das ist mein Verständnis von Loyalität.

    Das war schon lange meine Vermutung: Wenn Leute Politik machen, die offensichtlich eklig oder falsch ist, liegt es fast immer daran, dass sie irgendwem und vor allem irgendwas (typisch: dem, was sie „Volk“ nennen; siehe) gegenüber loyal sein wollen und dieser Loyalität Einsicht und Empathie unterordnen.

    Und ja, ich glaube tatsächlich, dass Leute wie Schäuble solche Bekundungen ernst meinen. Anders könnten sie, denke ich, mit all dem Mist, den sie mit ihrer „Verantwortungsethik“ angerichtet haben, gar nicht leben, jedenfalls, wenn ihre Boshaftigkeit tatsächlich banal ist. Das wiederum schien mir bei Schäuble bereits angesichts seines naiven Gequatsches von schwäbischen Hausfrauen schon immer nahezuliegen. Das Interview in der taz hat diesen Eindruck noch verstärkt.

  • Seuchen, Christen und das Ende des Imperiums

    Fotos antiker Inschriften: eine schön in regelmäßig, die andere völlig krakelig.

    Mein Sinnbild für den Zusammenbruch der antiken Kultur: Zwei Inschriften aus dem Kölner Römisch-Germanischen Museum, die eine schon christlich-apokalyptisch (mit Flammenvisionen), aber noch erkennbar von Profis mit Anschluss an die mediterrane Kultur gefertigt, die andere, vielleicht 100 Jahre später, nur noch freihändiges Gekrakel fränkischer Amateure.

    Ich habe mich schon im März eines gewissen Römerfimmels bezichtigt. Dieser Schwäche nachgebend lese ich gerade „The Fate of Rome – Climate, Disease & the End of an Empire“ von Kyle Harper (Princeton University Press, 2017, entleihbar bei libgen; gibts auch auf Deutsch bei C.H. Beck als „Fatum. Das Klima und der Untergang des Römischen Reichs“, aber das habe ich nicht).

    Der Untertitel verrät es: Harper analysiert hier den Untergang des römischen Reichs als Folge von Klimaveränderung und Seuchen. Das klingt nicht nur wie ein Film am Discovery Channel, es ist auch ein wenig so geschrieben. Gut, der eingebettete Arztroman über Galen ist immerhin noch motiviert, weil dieser eine wichtige Quelle zur Antoninischen Pest (nach Harpers Einschätzung eine Pockenepedemie) ist, aber dennoch wirken Spannungsbögen in so einem Buch schnell albern oder ranschmeißerisch. Und Harpers Tendenz, das Gleiche mehrfach hintereinander leicht variiert zu sagen, verbunden mit einer oft ziemlich atemlosen Sprache, nervt doch etwas. Eine Kostprobe:

    But it was not yet a crisis: [...] The fruits of Severan success were abundant. A bloom of cultural efflorescence, more inclusive than ever before, unfolded. The influx of provincial talent was a jolt to Severan culture. The ancient capital remained the focal point of imperial patronage.

    Allzu oft wirkt es, als hätte Harper Zeilen geschunden. Das Buch könnte bei gleichem Informationsgehalt auch halb so lang sein und wäre dabei jedenfalls für Menschen wie mich lesbarer.

    Dabei sind viele der Gedanken sehr wertvoll und verdienen überhaupt nicht, im Stil einer Fernsehreportage über spontane Selbstentzündung serviert zu werden. So hatte ich zwar schon lange die Ausbreitung des apokalyptischen Christentums mit dem weitgehenden Zusammenbruch der antiken Kultur in Verbindung gebracht. Über die Ursache dieser Ausbreitung hatte ich mir jedoch nie wirklich Gedanken gemacht – es war in meiner Vorstellung, wahrscheinlich unter dem übermächtigen Einfluss von Bertrand Russell, eben so, dass die Leute plötzlich auf orientalische Kulte Lust hatten, ob nun Isis und Osiris, Mithras, Jupiter Dolichenus[1] oder halt Jesus Christus.

    Nun bietet Harper eine historisch-materialistisch befriedigendere Geschichte an:

    Bis 200 ndcE[2] sind Christen in der Überlieferung praktisch unsichtbar. Die Christen der ersten zwei Jahrhunderte wären kaum eine Fußnote der Geschichte, wären da nicht die späteren Ereignisse. Es wird geschätzt, dass es in der zweiten Hälfte des zweiten Jahrhunderts größenordnungsmäßig 100'000 ChristInnen gegeben hat [wie gesagt, Harper sagt die Dinge gerne drei Mal]. Im Jahr 300 ndcE hatte sich ein atemberaubender Wandel ergeben. Das deutlichste Zeichen ist die plötzliche Verbreitung christlicher Vornamen. Eine aktuelle Arbeit schätzt, dass zu diesem Zeitpunkt erstaunliche 15-20 Prozent der ägyptischen Bevölkerung ChristInnen waren.

    Dazwischen fand – neben dramatischen Missernten infolge von mit einer Abkühlung des Weltklimas verbundenen Dürren im Mittelmeerraum[3] – die nach Harpers Darstellung verheerende Cyprianische Pest statt, für die er einen Ebola-ähnlichen Erreger vorschlägt. Es ist höchst plausibel, dass ein Massensterben an hämorrhagischem Fieber – also: Leute bluten aus jeder Pore ihres Körpers – größte Zweifel an den herrschenen Weltbildern auslösen kann. Harper schreibt dazu:

    Die Verbindung von Pest und Verfolgung scheint die Verbreitung des Christentums beschleunigt zu haben. So jedenfalls sah die Erinnerung einer bestimmten Christengemeinde aus, der von Neocaesarea in Pontus. In den Volkserzälungen rund um den Ortsheiligen, Gregor den Wundertäter, war die Pest ein Wendepunkt in der Christianisierung der Gemeinde. Das Massensterben zeigt die Machtlosigkeit der Götter der Alten und stellte die Tugenden des christlichen Glaubens heraus. Mag die Geschichte auch stark schablonenhaft sein, sie konserviert einen Kern historischer Erinnerung über die Rolle der Pest in der religösen Bekehrung der Gemeinde.

    Der klarste Vorteil des Christentums war seine unerschöpfliche Kapazität, mittels einer Ethik aufopfernder Liebe familienähnliche Netzwerke zwischen völlig Fremden zu knüpfen.

    Ohne, dass das viel an Harpers Darstellung ändern würde, würde ich persönlich ja in der erwähnten Tradition von Bertrand Russell eher spekulieren, dass das zumindest in etlichen Ausprägungen heitere antike Pantheon – ich verweise auf das leicht skandalöse, aber den römischen Geschmack m.E. gut treffende Riesendia im Römermuseum Osterburken:

    Foto: Ein farbenprächtig-sinnliches modernes Gemälde eines runden Dutzends antiker Götter

    – in einer Zeit von Hunger- und Pestkatastrophen viel weniger attraktiv wirkte als die Endzeitreligion, die das damalige Christentum ganz sicher war. Die zeitgenössichen Missionierenden dürften mindestens ebenso alarmistisch unterwegs gewesen sein wie die „das Ende ist nah“-Zeugen, die sich heute auch nicht davon beirren lassen, dass sich ihre Vorhersagen der Weltuntergänge 1914, 1925 und 1975 allesamt als nicht ganz zutreffend erwiesen haben[4].

    Und damit landen wir in der Gegenwart. Gewiss ist die SARS-2-Pandemie verglichen mit einem Krankheitsgeschehen mit einer Gesamtsterblichkeit im einige-zehn-Prozent-Bereich nicht zu vergleichen – aber dann ist unsere Gesellschaft in mancherlei Hinsicht etwas menschlicher geworden (auch wenn Blicke etwa in Fußballstadien oder Boxhallen anderes vermuten lassen). Und so mögen auch die insgesamt weniger dramatischen Auswirkungen auf die öffentliche Gesundheit zusammen mit der Erfahrung von Lockdown, Aussperrung und Heimarbeit sowie dem Doomscrolling auf Twitter durchaus zu vergleichbaren Aufwühlungen geführt haben. Müssen wir jetzt also mit religiösen Erweckungsbewegungen der Größenordnung der Christianisierung Roms rechnen?

    Ich sage mal mutig: eher nicht. Ohne tiefere Recherche scheint mir, dass grob vergleichbare Ereignisse in der Moderne auch keine solchen Konsequenzen hatten. Weder die spanische Grippe, die noch dazu vor der Horrorfolie des gerade zu Ende gegangenen ersten Weltkriegs ablief und fast überall deutlich dramatischer war als SARS-2, noch die vermutlich letzte Coronapandemie vor SARS-2 mit einer Sterblichkeit, die damals wahrscheinlich mit der in heutigen Lassen-Wirs-Laufen-Ländern vergleichbar gewesen sein wird, hatten offenbar nennenswerten Einfluss auf den Missionserfolg von Adventisten, Zeugen oder vergleichbaren Endzeitkulten.

    Schauen wir mal. Wer Anzeichen von Post-Corona-FlagellantInnen sieht: Ich bin für Hinweise dankbar.

    [1]Der ist übrigens mein Lieblingskult in dieser Liga, weil er eine der wenigen Religionen in der Geschichte der Menschheit sein dürfte, die an Kollisionen mit der Realität scheiterten. Der Hauptgott war eine milde angepasste Interpretatio Romana des mesopotamischen Superhelden Hadad, der vor allem mal alles zerschmettern konnte. Zitat Wikipedia: „Nach der Zerstörung des Hauptheiligtums in Doliche durch den Sassaniden-König Schapur I. Mitte des 3. Jahrhunderts ging der Kult unter.“ Sagt, was ihr wollt: Ein Kult, der einen solchen Gegenbeweis der Glaubensinhalte zum Anlass zur Auflösung – statt, wie in dem Geschäft sonst üblich, zu Zelotentum und verdrehten Ausflüchten – nimmt, kann so verkehrt nicht gewesen sein.
    [2]„nach der der christlichen Epoche“; vgl. dazu diese Fußnote.
    [3]Aus Heidelberger Sicht vergleichbar relevant: In der fraglichen Zeit, also zwischen 240 und 260, löste sich auch das Grenzregime am Limes auf, und die römischen Truppen zogen sich an Rhein und Donau zurück (von ein paar Brückenköpfen wie Ladenburg oder Köln-Deutz mal abgesehen).
    [4]Nur, damit ich nicht falsch verstanden werde: Verglichen mit zahlreichen anderen Kulten kann ich Jehovas Zeugen trotzdem total gut leiden. Einerseits natürlich wegen der Steinigungsszene im Life of Brian, vor allem aber, weil eine Lehre, aus der konsequente und radikale Kriegsdienstverweigerung (lokales Beispiel) folgt, extrem viel Nachsicht erwarten kann.
  • Alle Richtungen

    Foto: Zwei Fahrrad-Umleitungsschilder, die in verschiedene Richtungen weisen.

    Derzeit bei Heidelberg: Umleitungsbeschilderung für Fahrräder, an der Ortsfremde lange rätseln werden.

    Die Beschilderung von Radwegen gehört zu den permanenten Ärgernissen meines Fahrradlebens, soweit es außerhalb der Niederlande stattfand: Ausgerechnet Radwege, die ja überall (außerhalb der Niederlande) kompliziert um die einfach zu benutzenden (und deshalb für Autos freigeregelten) Straßen herumgeflochten werden, sind normalerweise freihändig mit ein paar kleinen Schildchen oder Fahrradlogos auf dem Asphalt markiert. Nach ein paar Jahren ist dann ein Großteil davon zugewachsen, umgefallen abgerubbelt oder zugeparkt, jedenfalls, soweit sich nicht Freiwillige vom ADFC drum kümmern (dürfen).

    Insofern finde ich bemerkenswert, dass sich (ich denke) die Stadt Heidelberg bei den derzeitigen Bauarbeiten im Handschuhsheimer Feld – Kontext: das ist eine Drehscheibe des Fahrradverkehrs, der von Norden und Nordwesten in die Stadt kommt – erhebliche Mühe zu geben scheint, Radfahrende irgendwie um die Sperrungen herumzuleiten.

    Nur: leider hilft viel in diesem Fall nicht viel. Was sich die SchildaufstellerInnen bei dem oben dokumentierten Konstrukt gedacht haben mögen? Witz am Rande: Auch in die dritte Richtung, in Blickrichtung nach links, steht ein, wenn auch kleineres und grünes, Fahrradumleitungsschild, das allerdings immerhin grenzwertig nützlich ist; es verrät nämlich, dass es dort ohne Baustelle nach Ladenburg gehen soll.

    Ich wäre ja schon neugierig, ob all diese Schilder gleichzeitig aufgestellt wurden oder nacheinander, und in jedem Fall, wie es dazu kam. Sollte jemand aus der Stadtverwaltung Heidelberg dazu etwas wissen: Ich behandele Hinweise auf Wunsch vertraulich.

    Unterdessen: In gewisser Weise ist das ein schönes Symbolbild für jede Sorte wünschbarer „Verkehrswende“: Egal, wo du hinwillst, am Ende muss es Richtung Fahrrad gehen.

« Seite 6 / 17 »

Letzte Ergänzungen