• Wie im Klischee

    Das Bild der EU als „Friedensmacht“, die allenfalls mit etwas Geld die Verhältnisse in der Welt milde verbessert, war natürlich schon immer Quatsch. Die Rücksichtslosigkeit, mit der Kommission und Rat rassistische und neokoloniale Agenden mit Gewalt durchsetzen („gemeinsame Außen- und Sicherheitspolitk“ oder GASP) sah jedoch zu Zeiten der Lomé-Abkommen durchaus deutlich harmloser aus (wobei auch diese viele Millionen Menschenleben erheblich verkürzt haben dürften [1]).

    Die GASP nun verbindet sich derzeit sehr direkt mit der blutigen Migrationspolitik der EU, beispielsweise im Aufbau von Return Case Management-Systemen. Das sind Verfahren, die der EU Zugriff auf Repressionsdatenbanken der Herkunftsländer von Geflüchteten geben. Damit auch die Regierungen der Herkunftsländer etwas davon haben, finanziert die EU wo nötig deren Auf- und Ausbau, inklusive Vollerfassung der Fingerabdrücke der Bevölkerungen.

    Wie das genau aussieht, und wie nebenbei der sicherheits-industrielle Komplex der EU gefüttert wird, hat im letzten November Privacy International (PI) am Beispiel des Senegal dokumentiert: ein Laden namens Civi.Pol, angesiedelt zwischen Rüstungsindustrie sowie französischem Geheimdienst und Innenministerium, baut eine Fingerabdruckdatenbank für sowohl die dortige Regierung als auch das EU-Deportationsmanagement.

    Nachtrag (2024-02-25)

    Nur, damit keine Zweifel bestehen über die Natur der Regierung, die die EU da aufrüstet: In der taz vom 14.2.2024 wird aus dem Senegal berichtet:

    „Anfangs haben sie gegen Demonstrierende Tränengas eingesetzt, heute sind es echte Kugeln.“ Dann fällt ein Name: Alpha Yoro Tounkara. Der Geografie-Student ist eines der drei Todesopfer der Niederschlagung der Proteste am vergangenen Freitag und ein Freund von Ndeye Magatte Seck

    PI hat den Artikel sehr treffend mit diesem offizielle Pressefoto der EU illustriert:

    Ndiaye und Avramopoulos dinieren

    Bildrechte beim Audiovisual Service der Europäischen Kommission; Nutzung für Zwecke der Verbreitung EU-bezogener Information.

    Hier trifft sich der Außenminister des Senegal, Mankeur Ndiaye, mit dem Migrationskommissar der EU, Dimitris Avramopoulos, und schon auf den ersten Blick ist klar, wer hier wem etwas erklärt, wer finster gucken darf und wer lächeln muss, und dass hier Anweisungen in kleinem Rahmen erteilt werden, die die Öffentlichkeit nichts angehen. Es ist auch kein_e Protokollführer_in in Sicht.

    Das Bild ist von 2016; vermutlich ging es bei diesem Gespräch also nicht direkt um den von PI diskutierten Deal. Dass aber die EU meint, ihre Verhandlungen mit Ländern im globalen Süden so illustrieren zu müssen und zu können, das ist zumindest in meiner Welt schon in sich ein Skandal.

    [1]Literaturtipp dazu: Brigitte Erler, Tödliche Hilfe, Freiburg 1985. Leider auch nicht in der Imperial Library of Trantor.
  • 35 Jahre Tschernobyl

    Sonne hinter Kühlturm

    Noch ein Grund, warum kleine AKWs stinken: Nicht mal klasse Kühltürme (wie den hier in Biblis) gibts mehr.

    Unter den deutschsprachigen Fortune Cookies von Debian sind jede Menge Witze des Typs „Wenn Microsoft Autos bauen würde… müssten wir alle auf Microsoft-Benzin™ umsteigen“ oder ”…würden die Warnlämpchen für Öl, Batterie, Benzin, und Motorschaden durch ein einziges »Genereller Auto-Fehler«-Lämpchen ersetzt.“

    Da wirkt es schon etwas befremdlich, wenn ausgerechnet Bill Gates jetzt Atomkraftwerke bauen will, und zwar jede Menge davon. Sein Laden Terrapower [Vorsicht: CPU-intensive Webseite] versucht, mit dem üblichen Marketing-Dummschwätz („Best-in-class talent“ – wer denkt sich sowas aus? Und meint, auch nur irgendwer würde da nicht nur die Augen verdrehen?) Schmelzsalzreaktoren wieder aus der Kiste klar schlechter Ideen rauszuziehen.

    Wer sich das bei Terrapower verlinkte Interview mit Gates [Vorsicht: Link zu youtube] ansieht, versteht vielleicht, weshalb er da alle Vernunft fahren lässt: Er hat genug Herz, dass ihm die Nöte der ärmeren Hälfte der Welt nicht ganz gleich sind, aber er glaubt zu sehr an Markt und Kapitalismus, um einzusehen, dass es diesen Leuten nicht wegen mangelnder Produktion dreckig geht, sondern wegen Markt, Eigentum und Ungleichheit, gerade auch im Zugriff auf Bildung und Produktionsmittel (sagen wir: der Boden, der entweder unsere Schweine oder ihre Bäuche füttert). Und so kommt er auf den Trichter, dass billigere Energie doch bestimmt den Kapitalismus auf eine weniger menschenfresserische Route bringen müsste.

    Obwohl ich Gates also durchaus halbwegs guten Willen unterstelle, kommt er doch wieder nur mit dem Unsinn, mit dem die Bombenbauer schon in den 50ern versuchten, ihren Atomstaat zu verkaufen (damals heiß das „electricity too cheap to meter“[1]):

    This is just like a candle. Our flame is taking the normal, depleted Uranium, the 99.3% that's cheap as heck and there's a pile of it sitting in [Paducah?], Kentucky that is enough to power the United States for hundreds and hundreds of years. You're taking that and you're converting it to [leicht verschämt] Plutonium, and you're burning that, and we have super-high power densities, we have, you know, total fail... fail-safe. Any reactor that a human has to do something... that's a little scary. [Audio]

    „Total fail-safe“ vom Microsoft-Vordenker und Vater des legendären Webservers IIS hat natürlich nochmal einen besonderen Geschmack, etwa angesichts der Exchange-Katastrophe, von der ich neulich am Rande gestreift wurde. Und dann sollen die Menschen draußen bleiben und... nun, wen genau die nötige Wartung machen lassen? Microsofts Roboter? Und das alles in den Ländern, in denen die vier Milliarden Ärmsten wohnen?

    Das ist so offensichtlich absurd, dass ich mich frage, warum Gates es überhaupt sagt.

    Nur ist das nicht das Thema.

    Wer über Atomkraft nachdenkt, sollte zumächst beim prinzipiellen Alptraum jeder Sorte Technik anfangen: Eine Kettenreaktion ist zunächst immer höchst instabil, denn ein Neutron muss dabei immer ganz genau ein weiteres Neutron erzeugen. Ist es auch nur ein Hauch weniger, geht der Reaktor exponentiell aus. Ist es ein Hauch mehr, geht der Reaktor exponentiell durch. Das ist, ganz prinzipiell, nichts, womit mensch basteln möchte, und das Gegenprinzip zu Gates' „fail safe“.

    Dass herkömmliche (langsame Uran-) Reaktoren überhaupt beherrschbar sind, liegt an einer Laune der Natur, nämlich einer sehr schmalen Neutronen-Absorptionslinie des Uran-238 gerade im Bereich von „thermischen” Neutronen (also welchen mit ein paar hundertstel eV). Nimmt nämlich die Reaktionsrate eines solchen Reaktors zu, wird er heißer, die Linie verbreitert sich thermisch, es kommt zu mehr Absorption von Spaltneutronen, die Reaktionsrate nimmt ab. Nimmt dagegen die Reaktionsrate ab, wird die Linie thermisch schmaler, die Absorption nimmt ab, die Reaktionsrate steigt wieder ein wenig.

    Das ist der wesentliche Grund, warum Brennstäbe ausgewechselt werden lange bevor alles U-235 gespalten ist und weshalb die Wiederaufbereitung schon vor der Zulassung von Mischoxid-Brennelementen (die Plutoium enthalten) nicht völlig unplausibel schien: Irgendwann muss mensch wieder U-238 in die Brennstäbe bringen, um die Regelung zu halten. Das heißt auch: Ein solcher Reaktor wird immer instabiler, je länger er ungewartet läuft. Zu den großen Wundern dieser Welt gehört, dass nicht ständig vernachlässigte Reaktoren durchgehen.

    Nun lassen sich ähnliche lokale Stabilitätspunkte auch künstlich herstellen („negativer Temperaturkoeffizient“), und die Wikipedia erklärt ganz gut, wie sich die Schmelzsalz-Fans das so vorstellen. Aber selbst wenn mensch ihnen diese Ideen abnimmt, sind das in all diesen Fällen nur kleine Dellen an einem langen, exponentiellen Hang einer sich entweder selbst-rückgekoppelt abschwächenden (Puh!) oder verstärkenden Reaktionsrate. Sowas will mensch als technisches Design ganz grundsätzlich nicht, wenns irgendwie anders geht.

    Und natürlich geht es anders, solange lediglich hinreichend Strom in vernünftigem Umfang (also: wenn wir uns komplett sinnlose Stromverschwendung wie die der terrapower-Webseite oder oder offensiv schädliche Stromverschwendung wie Elektroautos sparen) das Ziel ist. Wer sich die Mühe macht, die historischen Kernkraft-Programme in aller Welt anzusehen, wird feststellen, dass immer staatliches Geld und am Schluss das Interesse dahinterstand, die Technologie für die Bombe wenigstens in der Hinterhand zu haben. Plus vielleicht noch die Fantasie, einer politischen Einflussnahme im Stil der OPEC-Aktion nach dem Jom Kippur-Krieg länger widerstehen zu können – nicht ganz zufällig fing der ganz große Geldstrom in die „zivile“ Nutzung der Kernspaltung erst nach 1973 so richtig an. Weder Kosten (die immer exorbitant waren) noch Energieproduktion als solche waren je ein ernstzunehmendes Argument bei Atomprogrammen.

    Dementsprechend könnte mensch Gates' Gerede mit einem Achselzucken vergessen, wenn er mit seinem (natürlich absurden) „helft den Armen“-Narrativ nicht gerade den Staaten im globalen Süden eine Erzählung liefern würde, warum sie auch Bombentechnologie haben sollten. Denn natürlich ist Quatsch, dass bei Schmelzsalzreaktoren keine Proliferationsgefahr bestehe; wer Neutronen im Überfluss hat, kann mit etwas Chemie und vielleicht einer Handvoll Zentrifugen auch Bomben bauen. Punkt.

    Gates selbst räumt das – diskurv geradezu suizidal – ein: „super-high power densities“. Hohe Energie- und damit auch Neutronendichten sind das stärkste Argument gegen diese Sorte von Technik. Wer einen Eindruck von der Rolle von Energiedichte bekommen will (und sich um Umweltsauerei nicht kümmert), kann mal eine vollgeladene NiMH-Zelle (noch besser wäre NiCd, aber das will mensch dann wirklich nicht in die Umwelt pesten) und eine vollgeladene Lithium-Ionen-Zelle in ein Feuer werfen. Eins macht bunte Farben, das andere ein verheerendes Feuerwerk [nur zur Sicherheit: Nein, Feuer ist natürlich sowohl für NiMH als auch für Li-Ion eine ganz schlechte Idee. Lasst da die Finger von]. Beides ist weniger als ein laues Lüftchen gegen die Energiedichte eines Schmelzsalzreaktors.

    Was schließlich auf den zentralen Grund führt, warum mensch Nukleartechnologie in so wenigen Händen wie möglich haben will: Sie ist ein riesiger Hebel. Es gibt fast nichts anderes, mit dem ein einzelner, entschlossener Mensch eine Million andere Menschen umbringen kann. Ein Kilo Plutonium-239, geeignet verteilt, reicht jedenfalls mal, um die alle ordentlich zu verstahlen (nämlich den Jahres-Grenzwert für die Inhalation von α-Strahlern um einen Faktor 25 zu überschreiten). Ein paar Kilo Uran-232 (wie es sich aus Thorium-Brütern – und die braucht es von den Rohstoffreserven her, wenn der Kram eine Rolle bei der Gesamtenergieversorgung spielen soll – gewinnen lässt) reichen für eine richtige Bombe, die mechanisch so einfach ist, dass sie einE entschiedeneR BastlerIn hinkriegen kann. Dieser Hebel ist übrigens nicht nur für sich problematisch; er ist auch der Grund, warum ein Staat in Gegenwart verbreiteter Nukleartechnologie praktisch autoritär werden muss (vgl. Robert Jungks Atomstaat [2]), einfach weil er den Hebel so intensiv bewachen muss.

    Allein wegen dieses riesigen Hebels und der Tatsache, dass Leute auch ohne den gegenwärtigen Modetrend Faschismus immer mal wieder durchknallen will mensch hohe Neutronendichten nicht im Zugriff vieler Menschen haben. Und das heißt: AKWs im breiten, kommerziellen Einsatz [3] sind ein Rezept für Massenmord und autoritäre Staaten.

    Es gibt eigentlich nur eine Technologie, die einen noch größeren Hebel hat: Das ist DNA-Basteln. Mir schaudert vor der Zeit, in der die Leute, die heute Erpressungstrojaner schreiben, die Übertragbarkeit von Windpocken mit der Tödlichkeit der Masernfamilie zusammenprogrammieren und das Ergebnis mit DNA-Druckern und Bioreaktoren in diese Welt bringen können.

    [1]Höchst lesenswertes Buch in diesem Zusammenhang: Hilgartner, S, Bell, R.C., O'Connor, R.: Nukespeak – the selling of nuclear technology in America, Penguin Books 1982. Gibts leider nicht in der Imperial Library, aber dann und wann noch antiquarisch.
    [2]Gibts leider auch nicht in der Imperial Library.
    [3]Wer findet, dass ich hier defensiv klinge: Ja, na ja, ganz ohne erbrütete Radionuklide müssten wir die ganzen Nuklearmedizinabteilungen dichtmachen, und das wäre zumindest in Einzelfällen schon schade. Vielleicht reichen für sowas Spallationsquellen, aber wenn nicht: zwei, drei kleine Reaktoren weltweit wären jedenfalls genug; viel mehr ist es auch heute nicht, was den Krankenhausbedarf an wilden Isotopen deckt.
  • Unübersehbare Konsequenzen

    Als ich gestern endlich mal die autoritäre Versuchung in einiger Breite diskutiert habe, war eines der Argumente gegen die bequeme Lösung von Konflikten mit Zwang und Gewalt, dass diese Lösungen zwar manchmal den erwünschten Effekt haben, aber in der Regel auch ziemlich haarsträubende Nebenwirkungen.

    Blätter und Stängel

    Hydrilla-Pflanzen in einem Foto vom US Geological Survey.

    Dazu ist mir heute in einem Beitrag zu Forschung aktuell vom 26. März ein relativ exotisches Beispiel untergekommen, allerdings ziemlich weit ab von den sozialen Konflikten, über die ich gestern vor allem geschrieben habe. Es ging in der Sendung um ein aktuelles Science-Paper von Steffen Breinlinger, Tabitha Phillips und KollegInnen (DOI 10.1126/science.aax9050). Die Leute haben untersucht, warum ab Mitte der 1990er in bestimmten Gebieten der südlichen USA eine deutliche Übersterblichkeit von Weißkopf-Seeadlern und, bei näherem Hinsehen, entlang ganzer Nahrungsketten in und über Süßwasserseen auftrat.

    Zunächst war schon vor der Arbeit eine Korrelation der toten Vögel mit der Besiedlung von Seen durch Hydrilla (eine dort vom Menschen vor relativ kurzer Zeit aus der alten Welt eingeführte Wasserpflanze) aufgefallen, genauer durch Hydrilla und ein Cyanobakterium, das auf dieser haust. Das Weitere hatte etwas von einer Sherlock Holmes-Geschichte, denn Nachzucht und Verfütterung des Cyanobakteriums waren ein Haufen Arbeit – und führten zu nichts: Tiere, die den Hydrilla-Cyanobakterien-Cocktail verzehrten, fühlten sich prima.

    Erst mit echtem Pamp aus den todbringenden Seen erkannten die WissenschaftlerInnen, dass das Problem nicht das Cyanobakterium an sich war, sondern im Wesentlichen die Fähigkeit von Hydrilla, Brom anzureichern; erst mit wenigstens etwas Kaliumbromid im Wasser und Hydrilla zur Bromid-Anreicherung wurden die Cyanobaktierien giftig.

    Damit stellt sich die Frage, woher die Bromide in der freien Natur kommen. Und da kommen wir zu den autoritären Lösungen. Hydrilla ist invasiv, breitet sich also ziemlich stark aus, seit jemand mal sein Aquarium in einen See gekippt und die Pflanze so in die Gewässer der südlichen USA gebracht hat. Um der Ausbreitung Herr zu werden, wurde wohl teils auf Herbizide zurückgegriffen, die bromierte Kohlenwasserstoffe enthielten.

    Tja: Da hat wohl wer einer autoritären Versuchung nachgegeben und die einfache Lösung gesucht durch, na ja, das nächste Aquivalent zu Gewalt an Pflanzen. Vermutlich hat das nicht mal besonders gut gegen Hydrilla geholfen – es muss ja noch genug davon gegeben haben, dass Tiere durch Abweiden (bzw. Fressen der Abweidenden) das Cyanobakterien-Gift anreichen konnten. Aber plausiblerweise hat das Herbizid, die „Lösung“, am Schluss die Seeadler (und Eulen und Milane) umgebracht.

    Der Fairness halber: Vielleicht wars auch gar nichts in der Richtung. Brom könnte auch aus weggeworfenem Kram mit Flammschutzmitteln (das waren traditionell halogenierte Kohlenwasserstoffe) oder aus der Reinigung von Abgasen der Kohleverstromung kommen. Und klar, es gibt auch natürliche Vorkommen von Bromverbindungen. So ist das halt mit Wissenschaft: Richtig eindeutige Antworten brauchen lange Zeit.

  • Die autoritäre Versuchung

    Ich werde bestimmt nicht wie Joachim Stamp von „am meisten leiden“ reden, aber ich habe gerade schon ein gewisses Déjà Vu. So, wie 1999 (mit einiger Vorbereitung beim zweiten Golfkrieg 1991) allerlei ehemalige Pazifist_innen auf einmal bestimmte Reste von Jugoslawien bombardieren wollten, tun sich im Zeichen der Coronaprävention viele Menschen mit linkem Hintergrund durch die Forderung nach besonders drakonischem staatlichen Durchgriff hervor.

    Ich glaube, halbwegs zu verstehen, was diese Leute treibt; es ist die autoritäre Versuchung, die schon in meiner Locke-Apologie aufgetaucht ist.

    Die autoritäre Versuchung ergibt sich mit schöner Regelmäßigkeit, wenn Menschen, Gruppen oder auch mal Werte in Konflikt kommen. Es gibt dann, ganz schematisch, zwei Möglichkeiten: Entweder, mensch versucht, den Konflikt zu verringern, die Interessen auszugleichen, oft auch mal, Irrtümer geduldig zu klären („Verhandlungsoption“). Oder mensch unterdrückt den Konflikt, indem die (zumindest in Selbstwahrnehmung) mächtigere Seite die weniger mächtige Seite durch Drohung oder unmittelbare Gewalt zum Einwilligen zwingt („Nötigungsoption“).

    So beschrieben, wird wohl jede_r sagen, mensch solle doch die Verhandlungsoption nehmen. In Wahrheit ist die aber viel Arbeit, mensch muss mit Menschen reden, die weniger Macht und/oder Ressourcen haben als mensch selbst und, wenns ganz blöd kommt, noch ein paar Schritte auf deren Positionen zu machen. Das lästig und dauert.

    Wer auf Nötigungsoption setzt, hat hingegen häufig schnell Erfolg und muss die eigene Position nicht überdenken. Und: mensch hat ganz klar was Handfestes getan, was nicht zuletzt gut aussehen kann (wenn die Zuschauer_innen auch der autoritären Versuchung erlegen sind). Diese Perspektive auf schnelle, vorzeigbare und einfache „Lösungen“ macht die autoritäre Versuchung aus.

    Und die Versuchung ist stark, um so stärker, je weniger die andere Konfliktpartei als aus individuellen Menschen zusammengesetzt scheint. Ein paar Beispiele (ich könnte die Liste fast beliebig verlängern):

    1. Ohne die Drohung mit schlechten Noten bricht angeblich unser Schulsystem zusammen (was ich sogar glaube; so ähnlich sieht es ja mittlerweile auch an der Uni aus).
    2. „Terroristen“ werden mit weit mehr „bekämpft“ als die Menschenrechte hergeben (was immerhin dann und wann Unterhaltungswert hat).
    3. „Soziale Brennpunkte“ bekommen Kameras und extra Polizei (die Kamera mit ihrem panoptischen Potenzial ist überhaupt immer ein guter Hinweis darauf, dass autoritären Versuchungen nachgegeben wurde).
    4. Um arme Menschen, die sich in Bahnhöfen betrinken, kümmern sich „Sicherheitsleute“ (deren Auftreten ist ein ähnlich guter Indikator wie Kameras).
    5. Wenn viele Leute lieber keine Atomkraftwerke am Laufen hätten, prügelt die Polizei die Atommülltransporte schon durch.
    6. Die ganze Organisation unserer Produktion basiert immer noch auf der Drohung mit Hunger und Obdachlosigkeit.

    Angesichts dieser Alltäglichkeiten ist die Frage, warum mensch der autoritären Versuchung nicht nachgeben sollte, naheliegend.

    Die richtige Antwort könnte sich auf Kant berufen: anderen mit Zwang begegnen macht diese zu Mitteln eines eigenen Zwecks und ziemt sich deshalb nicht. Klar ist es etwas gewagt, antiautoritäre Lehren ausgerechnet auf den alten Preußen Kant zurückzuführen, aber doch, die Sorte von Freundlichkeit, die aus seiner Menschheitszweckformel folgt, führt da ebenso hin wie das viel simplere RiwaFiw.

    Es gibt aber auch einen pragmatischen, wegen mir utilitaristischen Grund: autoritärer Umgang funktioniert meistens nicht, jedenfalls nicht so, wie sich die Machthaber_innen das vorstellen – und wenn er funktioniert, hat er meist Nebenwirkungen, die auch diese nicht wollen. Sehen wir uns die Beispiele von oben an:

    1. Sobald die Leute an den Elementen des Zwangs (also den Prüfungen) vorbei sind, vergessen sie alles; und auch davor verwenden sie viel mehr Mühe darauf, den Überwachungsmaßnahmen zu entkommen bzw. sie zu unterlaufen als darauf, irgendetwas herauszubekommen oder zu verstehen [1].
    2. Die Bekämpfung des „Terrorismus“ der letzten 30 Jahre hat ganze Länder verwüstet, die Menschenrechte im Westen gerupft – und doch wachsen die die „Terrorlisten“ von EU, UN und USA stetig, müssen immer neue Menschenrechte der „Terrorbekämpfung“ geopfert werden.
    3. Manchmal „befrieden“ Kameras wirklich einen Platz (oft genug auch nicht) – aber dann geht das unerwünschte Treiben halt ein, zwei Ecken weiter von Neuem los. Zu dem Thema empfiehlt sich insbesondere ein Vergleich zu Kriminalität und Sicherheitsempfinden im Vergleich zwischen BRD (die immer noch eine relativ geringe Kameralast hat) und dem UK, speziell England (das in der Hinsicht nur noch als Karikatur durchgeht).
    4. Vielleicht stinkts am Bahnhof nicht mehr so, aber dann erfrieren die Leute halt.
    5. Nun, die AKWs haben sie am Laufen gehalten. So Kram geht schon autoritär, ja.
    6. Weil ja die Leute „arbeiten müssen“, aber ihr Konsum nicht beliebig steigen kann, sorgt wachsende Produktivität für immer mehr Bullshit Jobs (also: Arbeit, die dem Rest der Gesellschaft eher schadet) – oder Leute lassen sich bezahlen für Kram, den sie so ähnlich ohnehin tun würden, ohne dass er irgendwen füttern oder behausen würde (und ich bin sehr dankbar, dass ich zur zweiten Kategoie gehören darf).

    Ganz besonders augenfällig ist das Versagen autoritärer Methoden natürlich im militärischen Bereich. Zwischen Balkan und Afghanistan haben all die „Einsätze“ deutschen (oder anderen) Militärs kein erkennbares Problem gelöst, aber viele neue Probleme geschaffen.

    Deshalb: Sag nein zur autoritären Versuchung. Mit den „Anderen“ reden, versuchen, ihre Handlungsweisen zu verstehen: Ja, das ist anstrengender, aber es ist richtet im Normalfall viel weniger Schaden an, funktioniert häufig besser, und es ist, was Kant und Emma Goldmann euch empfohlen hätten. Wer könnte so einer Koalition widerstehen?

    Oh, und: Klar will mensch jetzt gerade Kontakte reduzieren. Aber wenn es gegenwärtig wirklich so sein sollte, dass sich haufenweise Leute des Nachts bei Treffen anstecken und das nennenswert zur Ausbreitung von SARS 2 beiträgt, dann dürften das wohl Leute sein, die die Ausgangssperre auch umgangen kriegen. Das gesetzt, wäre es dann wirksamer, herauszufinden, warum diese Leute so einer drastischen Fehleinschätzung bezüglich des eigenen und fremden Risikos unterliegen – oder warum ihnen das einfach wurst ist und wie mensch ihnen wieder aus ihrer zynischen Verzweiflung helfen kann, wenn es so sein sollte.

    [1]Gut: diese Argumentation steht und fällt mit dem Konzept, Zweck der Schule sei, etwas zu lernen. Das ist ziemlich sicher so nicht richtig, aber weil alle so tun, als stimme es, kann ich das in mich da erstmal anschließen.
  • Foltern oder töten?

    Als ich neulich meine Weisheit loswurde, nach der Radikalität wichtig, aber Freundlichkeit wichtiger ist, habe als eine der wichtigen Ausnahmen von „in gesellschaftlichen Fragen bitte nicht zu konsequent“ das Folterverbot genannt – und ich glaube wirklich, dass das unbedingt gelten muss. Aktuelle Illustration: der Taser.

    Elektroschocks sind eine extrem populäre Foltermethode, und Taser sind schlicht Maschinen, um diese kompakt und schnell verabreichen zu können. Punkt. Klar kann es sein, dass mensch als Polizist_in in Situationen kommen mag, in denen Gewalt legitim erscheinen mag. Aber das ist keine hinreichende Rechtfertigung für Folter, genauso wie es, sagen wir, entführte Kinder nicht sind. Rechtfertige Folter in einem Fall, und du bist auf dem klassischen slippery slope: Es wird sich immer noch eine weiterer Fall finden, in dem Folter auch ok, am Schluss gar moralisch geboten ist. Es gibt wirklich genug andere Sorten von Gewalt, die mensch als Polizist_in anwenden kann.

    Die faktische Verletzung des Folterverbots ist der eigentliche Grund, warum mich die grausamen und tödlichen „Pilotversuche“ zu Tasern überall in der Republik so entsetzen.

    Ein weniger dramatischer Grund wird illustriert in der aktuellen Geschichte, nach der eine Polizistin in Minneapolis mal wieder einen Menschen aus Versehen umgepufft haben will: sie hätte sozusagen danebengegriffen, hätte ihr Opfer nur foltern und nicht gleich töten wollen (ok, das mit der Folter hat sie so nicht gesagt, sie bzw. der Polizeichef hat wohl eher von „tasern“ geredet).

    Mal abgesehen davon, dass ich hier guten Gewissens den Preis für die dümmste Ausrede des Monats verleihen kann – wenn Taser wirklich bedienungsgleich mit Polizeipistolen sind, dann müssen sich Hersteller, Beschaffer_innen und Einsetzende Vulkanladungen von Asche aufs Haupt streuen: Das ist genau das Problem. Die Polizistin fand ganz offenbar, sie könne Tasern, weil das „nicht so schlimm” wie Schusswaffen sei und so mit niedriger Schwelle angewandt werden kann. Also: sie fand das nicht nur, sie hat einfach so gehandelt.

    Genau diese Senkung der Hemmschwelle ist, weshalb Taser nicht gebaut werden dürfen und sie schon gar nichts in den Händen von Polizist_innen verloren haben. Sie ersetzen, jedenfalls gemäß der polizeilichen Logik der Minneapolis-Rechtfertigung (und auch der Erfahrung von Amnesty), keine Schusswaffen, sondern sie schaffen eine neue Klasse von scheinbar weniger einschneidender gewaltförmiger Problembehandlung durch die Polizei, und zu allem Überfluss noch eine, die anständige Menschen von Folter nicht unterscheiden können.

  • Upgraded to bullseye

    I've upgraded my personal notebook – with a file system that has a continuous history back to a slackware in 1996 and thus always is the most rewarding thing to test upgrades on – to Debian bullseye today.

    It's been a while since the last dist-upgrade messed up my X or rendered a machine unbootable, but they still never fail to be exciting. This one was no exception.

    logind and systemd

    The one major trouble as far as Debian proper is concerned was that the full-upgrade pulled in systemd again (which I still can't get myself to adopt on boxes I fiddle with a lot). This was because at some point I had purged elogind (which doesn't do anything on this box), and both a few KDE programs I have installed and the indispensable gparted need policykit-1, which in turn pulls in some logind; if you don't have one, apt will migrate you to systemd.

    Well, it was easy to go back this time: Just say:

    apt install elogind
    apt install sysvinit-core
    

    and all is back to normal again with the wonderful shell script goo during system startup. Hooray for elogind! I will admit I've not quite figured out what its actual use is, though. But that's probably because I've never quite figured out policykit, which in turn is probably because I think there's nothing wrong with sudo. But, as you'll see in a second, I might be swayed.

    Sure enough: Power

    I'm running all kinds of interesting scripts when the machine goes through various power states; for instance, I'm kill -STOP-ing a few pieces of moving eye candy when the box loses grid power, and I'm kill -CONT-ing them when the power is back. This happens through shell scripts I've dropped into /etc/pm/power.d, from where pm-utils has nicely been executing them for the last 10 years or so.

    Alas, they didn't run any more after the upgrade. Instead, when I shut the lid, the box would sleep right again after waking up. This last thing was fixed quickly: Just tell elogind not to bother in /etc/elogind/logind.conf.

    That the pre-sleep and post-wakeup scripts still ran soothed my first worry – that pm-utils might have had an RC- (release critical) bug and dropped out of Debian. Going through pm-utils' /usr/share/doc info made me worry again, though: the last upstream change there is from 2010, and the last Debian changelog entry is from 2019, mentioning an open RC bug. Uh-oh. It seems I might soon need to try harder with elogind.

    But not just yet, as the trace to work this out was bug #772275 (oh yes, the bug page for pm-utils makes we worry, too): pm-utils used to receive the AC/Battery notification from acpi-support, and that clearly broke in some way. At least for me, and with this upgrade. Poking around a bit in /etc/apci didn't show an immediate hook; yes, there's power.sh, but that gets called a lot on my box if the moon is right (for Lenovo's crappy firmware at least), and one would need to figure out whether or not there's grid power oneself.

    So, I dug a bit deeper and noticed that ever since I've moved from laptop-mode-tools to tlp, pm-utils were almost obsolete because tlp actually does everything it does all without pm-utils – but it doesn't let me run my beloved shell scripts (“by design“, its authors say). Hence, it's not byebye to pm-utils yet.

    But I like the way that tlp uses to be notified of power events: through udev. Taking that thought a bit further so I don't have to do any manual state management (as pm-utils doesn't have the equivalent of tlp auto) and filter out power events for batteries (which I don't care about), I ended up introducing two new udev rules that look relatively generic to me:

    ACTION=="change", SUBSYSTEM=="power_supply", ATTR{type}=="Mains",\
      ATTR{online}=="1", RUN+="/usr/sbin/pm-powersave false"
    ACTION=="change", SUBSYSTEM=="power_supply", ATTR{type}=="Mains",\
      ATTR{online}=="0", RUN+="/usr/sbin/pm-powersave true"
    

    Drop this into /etc/udev/rules.d/10local.rules (or so), and pm-utils' power.d works again.

    Another python2 grace time

    But the real elephant in the room is that bullseye in effect drops Python version 2. While this certainly does not come as a surprise, it still hurts me a lot, because I have plenty of self-written larger or smaller python2 programs – my audiobook-reader, my local wikipedia, my work time accounting and a gazillion little other things. And there's things like editmoin that haven't been ported yet either.

    Well, I had hoped I could keep the buster python2 packages around, perhaps even using the python-is-python2 package. But really, I don't think that's an option for a halfway lively system (which will use quite a few python3 packages). I gave up on that idea more or less as soon as I realised that the python-docutils-common dependency (and docutils I need left and right) will conflict between the docutils from buster and from bullseye. Trying to keep buster packages will clearly become incredibly fiddly.

    So, instead I figured I ought to keep the legacy software alive while finally porting it as I go along (one, my one-line CLI, I actually have ported this morning) using a python2 “virtual” (yeah, right, virtual...) environment.

    Yes, virtual environments are evil all around, not only because their content rots without anyone noticing; but then this is exactly about letting things rot in a halfway controlled fashion, so I claim this is a use case.

    In case others mourn the demise of python2 in bullseye and want to go slowly when migrating, here's what to do:

    1. Make sure the python2 packages that still are in bullseye are in place. This would be python2.7, python2.7-dev, and presumably python-tk. Of course, you will want the virtualenv package, but that's already python3.

    2. Create the virtual environment:

      virtualenv -p python2.7 ~/.legacy-python
      
    3. Make it simple to use that. For that, add:

      alias enable-oldpython='export PATH=~/.legacy-python/bin:$PATH'
      

      to your .aliases (or whereever else you keep your aliases) and exec bash in the current shell to try that out. This is when you want want to run pip, or at any other time when you want your python to be what's in the virtual environment.

      But this won't work for hashbangs. To make that work, put a file like:

      #!/bin/sh
      export PATH=/home/<YOUR USERNAME>/.legacy-python/bin/:$PATH
      exec python "$@"
      

      somewhere into your path as, say, oldpython. Since I still have some system-wide things using python2, I ended up sticking this into /usr/local/bin. Given python2 has been out of security support for more than a year now, I might be regretting that; on the other hand, python's core hasn't had many security problems in the past 20 years, and so I figure I am fine. Caveat emptor, though.

    4. Then, run pip install and/or python setup.py install to your heart's delight. All this isn't forever, so this one time I found myself capable of forgetting the long run, later upgrades, and all that. Just remember: sudo and pip never mix, and they particularly badly mix here. Oh: I actually found myself apt-get source-ing python packages from buster and just running python setup.py install in them because in my book that's a good deal less obscure than pip.

    Limping along with a private MoinMoin

    But then came the bitter realisation: There's no moinmoin in bullseye any more. That's a killer for at least three servers I'm operating. And, really, looking at what the MoinMoin folks write on python3 (in particular at its list of dependencies), I shudder in the expectation of seeing something quite in line with my unpleasant experiences with mailman2 happen with MoinMoin.

    On my box, however, I can live with an aging service (that only listens to localhost), and I can live with having moinmoin be a CGI. In case these considerations (typically, for a “notes and observations”-style wiki) apply to you as well, here's what I did to make the legacy moinmoin run in my bullseye apache2.

    First, I installed moinmoin into the “virtual” python 2.7 I created above:

    enable-oldpython  # the alias above
    pip install moin  # no sudo!
    

    Then I fixed the apache configuration to use that. So, I commented out the previous MoinMoin integration and replaced it with something like:

    <Directory /home/<YOUR USER NAME>/.legacy-python/share/moin/server>
      AllowOverride None
      Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
      Require all granted
    </Directory>
    <Directory /home/<YOUR USER NAME>/.legacy-python/lib/python2.7/site-packages/MoinMoin/web/static/htdocs>
      AllowOverride None
      Require all granted
    </Directory>
    
    ScriptAlias /meiner /home/<YOUR USER NAME>/.legacy-python/share/moin/server/moin.cgi
    Alias /wiki/ /home/<YOUR USER NAME>/.legacy-python/lib/python2.7/site-packages/MoinMoin/web/static/htdocs
    Alias /moin_static1911 /home/<YOUR USER NAME>/.legacy-python/lib/python2.7/site-packages/MoinMoin/web/static/htdocs
    

    (you may need …

  • Kurze Biographien

    Ich lese gerade recht viele der Biographien der Menschen, an die in Heidelberg Stolpersteine erinnern, und dabei ist mir eins ganz besonders aufgefallen: In dieser Zeit war die Ehe offenbar in der Regel das effektive Ende des erzählenswerten Lebens einer Frau.

    Während es nämlich durchaus viele bunte und schon rein vom Text her lange Biographien unverheirateter Frauen gibt – ich erwähne hier nicht erschöpfend Johanna Geißmar, die Schwestern Hamburger, Leeni Preetorius oder natürlich Elise Dosenheimer –, beschränken sich die Geschichten von verheirateten Frauen praktisch durchweg auf geboren, geheiratet, Kinder gekriegt (oder nicht) – und dann entweder deportiert und ermordet oder eben geflohen. Das geht so von den eher wohlhabenden Hochherrs über die kleinbürgelichen Deutschs bis hin zu den intellektuellen von Waldbergs und ändert sich allenfalls für die Sozialdemokratin Käthe Seitz. Bei den meisten der Biographien ist es eher noch ärger als bei diesen Beispielen.

    Nun ist es wahrscheinlich, dass in dem Befund etwas historigraphischer Bias reflektiert ist (also: Was wird überliefert?). Andererseits hat eine Ehe die Möglichkeiten von Frauen tatsächlich drastisch eingeschränkt, bis hin zu Trivialitäten wie einer Kontoeröffnung, und die praktische Erwartung war wohl in aller Regel, dass sie in ihren ehelichen Pflichten aufgingen.

    Was mich daran gerade wirklich verblüfft: Gemäß praktisch der gesamten Literatur (in der es wenig Schlimmeres zu geben scheint als „alte Jungfer“ zu werden) und auch anekdotischer Überlieferung war die Heirat, die „gute Partie“ wesentlichstes Lebensziel der breiten Mehrheit der Frauen von damals. Klar, auch da dürfte die Geschichtsschreibung etwas verzerren. Ganz gegen die tatsächlichen Erzählungen von damals dürfte sie aber nicht stehen.

    Doch wahrscheinlich sollte ich mich nicht sehr wundern. Denn auch heute gibt es offenbar einen relativ breiten gesellschaftlichen Konsens für Dinge, die ganz offenbar im Konflikt mit den Interessen der allermeisten Mitglieder des Gesellschaft stehen: Autopolitik natürlich (will eigentlich wirklich irgendwer täglich Stunden in einem stinkenden Blechkäfig verbringen und endlos Krach machen?), oder die Privatisierung der Rentenversicherung (die für eine deutlich ungleichere Verteilung des für Alte bereitgestellten gesellschaftlichen Reichtums und ansonsten über Quatsch-Investments der Rentenfonds noch für Shopping-Malls überall sorgt), oder halt den ganz fundamentalen Wahnsinn, bei dem der Abbau von Arbeitsplätzen („weniger Leute müssen ihre Zeit mit Zeug verbringen, den sie gar nicht tun wollen“) als gesellschaftliche Katastrophe empfunden wird.

    Oh, falls das nicht offensichtlich ist: Klar kann es eine persönliche Katastrophe sein, gefeuert zu werden. Solange aber vorher und nachher gleich viel hergestellt wird, gilt das nur, weil wir die Warenverteilung an Lohnarbeit gekoppelt haben, und das ist eine Wahl, die wir als Gesellschaft auch anders vornehmen können. Und sollten, in Zeiten, in denen die Produktion so wenig Arbeit braucht, dass, wie David Graeber so treffend beobachtet, Bullshit Jobs die Regel geworden sind.

  • Worse is manchmal better

    TL;DR: Radikalität ist wichtig, aber Freundlichkeit ist wichtiger.

    Seit einiger Zeit blättere ich öfter mal in Shoshana Zuboffs Age of Surveillence Capitalism und finde es immer wieder nützlich und gleichzeitig verkehrt. Dazu will ich etwas mehr schreiben, wenn ich es ganz gelesen habe, aber jetzt gerade hat mich ihr Generalangriff auf den Behaviorismus – auch der gleichzeitig richtig und falsch – wieder an einen Gedanken aus Bertrand Russells A History of Western Philosophy erinnert, der mich immer wieder beschäftigt – und den ich sehr profund finde. Im Groben: „In politischen Theorien ist Menschlichkeit wichtiger als Stringenz”. Oder: das „worse is better“ der Unix-Philosophie, das mensch trefflich kritisieren kann, ist zumindest fürs politische Denken in der Regel angemessen.

    Was ist eigentlich eine Menge?

    Foto eines Computers

    Gegenstück zu worse is better: Eine LISP-Maschine im MIT-Museum.

    Dabei konnte Russell beeindruckend stringent denken, etwa auf den paar hundert Seiten, die er in den Principia Mathematica füllte, um sich der Richtigkeit von 1+1=2 zu versichern.

    Oder auch in der Russell'schen Antinomie, die ich in meinen Einführungsvorlesungen in die formalen Grundlagen der Linguisitk immer zur Warnung vor der naiven Mengendefinition – eine Menge sei ein Haufen von „Objekten unserer Anschauung oder unseres Denkens“ – gebracht habe. Wäre diese Definition nämlich ok, müsste es auch die Menge aller Mengen geben, die sich nicht selbst enthalten. Nennen wir sie mal Ξ (ich finde, das große Xi ist in Mathematik und Physik deutlich unterverwendet). Die wesentliche Frage, die mensch einer Menge stellen kann ist: Ist irgendwas in dir drin, also: „x ∈ Ξ“?

    Und damit kommt Russells geniale Frage: Ist Ξ ∈ Ξ oder nicht? Schauen wir mal:

    • Wenn Ξ ∈ Ξ gälte, enthält Ξ sich selbst, ist also nicht in der Mengen aller Mengen, die sich nicht selbst enthalten, entgegen der Annahme in diesem Spiegelstrich.
    • Ist aber Ξ ∉ Ξ, so enthält sich Ξ nicht selbst, wäre es also in der Menge aller Mengen, die sich nicht selbst enthalten und müsste sich also selbst enthalten. Passt wieder nicht.

    Brilliant, oder? Die Lösung dieser „Russell'schen Antinomie“ ist übrigens, sich bei der Definition von „Menge“ etwas mehr Mühe zu geben.

    Wer das nachvollzogen hat, wird wohl die Weisheit von Russells Entscheidung erkennen, nach den Principia Mathematica eher konventionelle Philosophie zu betreiben. In diesem Rahmen hat er 1945 seine überaus lesbare Darstellung der „westlichen“ Philosophie veröffentlicht, in der er sich deutlich als Fan von John Locke outet, den „apostle of the Revolution of 1688, the most moderate and the most successful of all revolutions“, erfolgreichst, denn „no subsequent revolution has hitherto been found necessary in England.“ Über das „found necessary“ könnte mensch angesichts des Elends, das noch in den Werken von George Orwell – geschrieben, während Russell in den 1940ern an seiner History arbeitete – deutlich wird, sicher streiten, aber vielleicht ist das durch „most moderate“ noch hinreichend abgedeckt.

    Vernünftig vs. Widerspruchsfrei in der politischen Doktrin

    Viel wichtiger ist mir aber Russells Beobachtung: „Pragmatically, the theory was useful, however mistaken it may have been theoretically. This is typical of Locke's doctrines.“ Etwas später sagt er: „No one has yet succeeded in inventing a philosophy at once credible and self-consistent. Locke aimed at credibility, and achieved it at the expense of consistency. Most of the great philosophers have done the opposite.“

    Also in etwa: in der Philosophie – und da würde ich etwas hinter Russell zurückgehen wollen und sagen: Politik und Soziologie – gibt es nicht gleichzeitig „glaubwürdig“ (sagen wir lieber: menschlich) und widerspruchsfrei. Ich glaube, Russell kam zu diesem desillusionierten Einsichten aus Enttäuschung mit der russischen Revolution, deren Scheitern, jedenfalls im Sinne von Freiheit, Gleichheit und Solidarität für die Bürger_innen der Sowjetunion, er wahrscheinlich mit übermäßiger ideologischer Strenge erklärte; jedenfalls führte er Lockes gedankliche Geschmeidigkeit zurück auf dessen Erfahrungen des britischen Bürgerkriegs der 1640er Jahre.

    Immer wieder spottet Russell freundlich über Lockes, nun, Liberalität, so etwa, wenn Hume einen schlimmen Irrtum beging, weil er „a better intellect than Locke's, a greater acuteness in analysis, and a smaller capacity for accepting comfortable inconsistencies“ hat. Oder wenn er Lockes Methode so umschreibt:

    [Er ist] always willing to sacrifice logic rather than become paradoxical. He enunciates general principles which, as the reader can hardly fail to perceive, are capable of leading to strange consequences; but whenever the strange consequences seem about to appear, Locke blandly refrains from drawing them. To a logician this is irritating; to a practical man, it is a proof of sound judgement.

    Was ich daraus mache: Wenn du über die Gesellschaft nachdenkst und du kommst auf Menschenfresserei, müssen deine Ausgangsgedanken nicht unbedingt Quatsch sein – das kann schon mal passieren, wenn ein Haufen Leute sich streiten. Du solltest aber trotzdem nicht Menschenfresser_in werden.

    Freundlichkeit vs. Radikalität in der politischen Praxis

    Eine derzeit ganz naheliegende Anwendung: So sehr es scheiße ist, wenn Leute an eigentlich vermeidbaren Krankheiten sterben: Die autoritäre Fantasie, einfach alle einzusperren, bis die SARS-2-Pandemie vorbei ist, ist schon deshalb nicht menschenfreundlich, weil so ein Präzedenzfall zu inflationären Forderungen nach ähnlich autoritären Maßnahmen führen wird (alles andere mal beiseitegelassen). Umgekehrt führt das unbedingte Bestehen auf Grundrechten wie Freizügigkeit, die Zurückweisung staatlicher Autorität, auch wo diese nicht immer so richtig wissenschaftlich unterfüttert ist, zu einem schlimmen Gemetzel. Es bleibt, sich da irgendwie durchzumogeln (und das, ich gebs immer noch nicht gerne zu, hat die Regierung recht ordentlich gemacht), und das ist wohl, was was Russell an Locke mag.

    Also: Im realen Umgang mit Menschen ist Freundlichkeit oft wichtiger als Konsequenz. Dass Russell, obwohl er fast jeden Gedanken von Locke widerlegt, seine gesamte Lehre sehr wohlwollend betrachtet, ist eine sozusagen rekursive Anwendung dieses Prinzips.

    Leider, und da kommen wir beinahe auf die Russell'sche Antinomie zurück, bin ich aber überzeugt, dass auch die Mahnung, es mit den Prinzipien nicht zu weit zu treiben, dieser Mahnung selbst unterliegt. Folterverbot oder Ausschluss der Todesstrafe etwa würde ich gerne unverhandelbar sehen.

    Locke hätte mit dieser fast-paradoxen Selbstanwendung von Nicht-Doktrinen auf Nicht-Doktrinen bestimmt keine Probleme gehabt. Bei mir bin ich mir noch nicht ganz sicher.

    Aber ich versuche, Zuboff mit der Sorte von Wohlwollen zu lesen, die Russell für Locke hatte.

    Nachtrag (2021-04-10)

    Weil ich gerade über irgendeinen Twitter-Aktivismus nachdenken musste (bei dem jedenfalls für mein Verständnis allzu oft gute Absichten zu böser Tat werden), ist mir aufgefallen, dass meine Russell-Interpretation eigentlich zusammenzufassen ist mit: „Radikalität ist wichtig, aber Freundlichkeit ist wichtiger“. Das hat mir auf Anhieb gefallen, weshalb ich es auch gleich als TL;DR über den Artikel gesetzt habe.

    Dann habe ich geschaut, ob duckduckgo diesen Satz kennt. Erstaunlicherweise nein. Auch bei google: Fehlanzeige. Ha!

    Und je mehr ich darüber nachdenke, gerade auch im Hinblick auf ein paar Jahrzehnte linker Politik: RiwaFiw hätte vieles besser gemacht, und, soweit ich sehen kann, fast nichts schlechter.

  • Die Viren loben

    „Jetzt ist aber wirklich höchste Zeit, dass Corona endlich mal weggeht“ ist inzwischen ein universelles Sentiment, und auch mich lockt gelegentlich die autoritäre Versuchung, einen „harten Lockdown“ zu wünschen, damit das Ding weggeht (was es natürlich nicht täte). Der Hass auf SARS-2 steigt, und damit womöglich auf Viren allgemein.

    In der Tat scheinen Viren erstmal richtig doof, eklig und widerwärtig. Wie scheiße ist das eigentlich, sich von den Zellen vertrauensvoll aufnehmen zu lassen und dann den Laden zu übernehmen mit dem einzigen Ziel, neues Virus zu machen? Und dann die Ähnlichkeit von z.B. der T2-Bakteriophage mit Invasoren vom Mars...

    Andererseits bin ich überzeugt, dass eine gewisse Anfälligkeit gegen Viren wahrscheinlich ein evolutionärer Vorteil ist. Da gibts bestimmt jede Menge echte Wissenschaft dazu, aber ich denke, eine einfache Intiution geht auch ohne: Praktisch alle Viren nämlich wirken nur auf kurze Distanz in Zeit und Raum (verglichen etwa mit Pflanzenpollen, aber sogar mit vielen Bakterien), werden also im Wesentlichen bei Begegnungen übertragen. Da die Wahrscheinlichkeit von Begegnungen mit dem Quadrat der Bevölkerungsdichte geht, sollten Viren explodierende Populationen „weicher“ begrenzen als leergefressene Ressourcen und so wahrscheinlich katastrophalen Aussterbeereignissen vorbeugen.

    Vorneweg: Ja, das klingt alles erstmal wild nach Thomas Malthus. Dessen Rechtfertigung massenhaften Sterbenlassens ist natürlich unakzeptabel (ebenso allerdings wie das fortgesetzte Weggucken von den Meadows-Prognosen, die in der Regel auch katastrophale Zusammenbrüche erwarten lassen).

    Dies aber nicht, weil falsch wäre, dass in endlichen Systemen der Ressourcengebrauch nicht endlos steigen kann; das ist nahe an einer Tautologie. Nein, Malthus' Fehler ist der der Soziobiologie, nämlich menschliche Gesellschaft und menschliches Verhalten an Funktionsweisen der Natur auszurichten. Wer das will, wird recht notwendig zum Schlächter, während umgekehrt die Geschichte der letzten 100 Jahre überdeutlich zeigt, wie (sagen wir) Wachstumszwänge diverser Art durch mehr Bildung, mehr Gleichheit und vor allem durch reproduktive Selbstbestimmung von Frauen ganz ohne Blutbad und unter deutlicher Hebung der generellen Wohlfahrt zu beseitigen sind.

    Bei Kaninchen ist das aber, da muss ich mich leider etwas als Speziezist outen, anders. Und daher habe ich mir Modellkaninchen für ein weiteres meiner Computerexperimente herausgesucht, ganz analog zu den Schurken und Engeln.

    Die Fragestellung ist: Werden Ausschläge in Populationen wirklich weniger wild, wenn Viren (also irgendwas, das Individuen nach Begegnungen mit einer gewissen Wahrscheinlichkeit umbringt) im Spiel sind?

    Um das zu untersuchen, baue ich mir eine Spielwelt (wer mag, kann auch „modifiziertes Lotka-Volterra-Modell“ dazu sagen) wie folgt:

    • Es gibt 1000 Felder, auf denen Gras wachsen kann oder nicht.
    • In der Welt leben Kaninchen, die pro Periode ein Grasfeld leerfressen müssen, damit sie glücklich sind.
    • Haben Kaninchen mehr Gras als sie brauchen, vermehren sie sich, und zwar um so mehr, je mehr Extrafutter sie haben (so machen das zumindest Rehe).
    • Haben Kaninchen zu wenig Gras, sterben ein paar.
    • In jeder Periode verdoppelt sich die Zahl der Grasfelder (sagen wir: durch Aussaat), bis alle 1000 Felder voll sind.

    In Code sieht die Berechnung der Vermehrungsrate der Kaninchen so aus:

    def get_growth_factor(self):
      grass_per_rabbits = self.grass/self.rabbits
      if grass_per_rabbits<1:
        return grass_per_rabbits**2
      else:
        return 1+math.sqrt(grass_per_rabbits-1)
    

    Wer den Verlauf der Vermehrungsrate mit dem Gras/Kaninchenverhältnis γ auf der Abszisse sehen will:

    Um dieses Modell zu rechnen, habe ich ein kleines Python-Programm geschrieben, lv.py, das, mit anfänglichen Zahlen von Gras und Kaninchen aufgerufen, den Verlauf der jeweiligen Populationen im Modell ausgibt (nachdem es die Anfangsbedingungen etwas rausevolvieren hat lassen).

    Wie bei dieser Sorte von Modell zu erwarten, schwanken die Populationen ziemlich (außer im Fixpunkt Kaninchen=Gras). So sieht das z.B. für python3 lv.py 400 410 (also: anfänglich ziemlich nah am Gleichgewicht) aus:

    Das sieht nicht viel anders aus, wenn ich mit einem Kaninchen-Überschuss anfange (python3 lv.py 400 800):

    oder mit einem Gras-Paradies (python3 lv.py 800 150):

    Aus Modellsicht ist das schon mal fein: Recht unabhängig von den Anfangsbedingungen (solange sie im Rahmen bleiben) kommen zwar verschiedene, aber qualitativ doch recht ähnliche Dinge raus: die Kaninchenpopulationen liegen so zwischen 250 und 600 – im anfänglichen Gras-Paradies auch mal etwas weiter auseinander – und schwanken wild von Schritt zu Schritt.

    Jetzt baue ich einen Virus dazu. Im lv.py geht das durch Erben vom LV-Modell, was auf die LVWithVirus-Klasse führt. Diese hat einen zusätzlichen Parameter, deadliness, der grob sagt, wie wahrscheinlich es ist, dass ein Kaninchen nach einer Begegnung mit einem anderen Kaninchen stirbt. Die Mathematik in der propagate-Methode,

    def propagate(self):
      LV.propagate(self)
      self.rabbits = max(1, self.rabbits-self.rabbits**2*self.deadliness)
    

    würde etwa einem Bau entsprechen, in dem sich alle Kaninchen ein Mal pro Periode sehen. Das ist jetzt sicher kein gutes Modell für irgendwas, aber es würde mich sehr überraschen, wenn die Details der Krankheitsmodellierung viel an den qualitativen Ergebnissen ändern würden. Wichtig dürfte nur sein, dass die Todesrate irgendwie überlinear mit der Population geht.

    lv.py lässt das Modell mit Virus laufen, wenn es ein drittes Argument, also die Tödlichkeit, bekommt. Allzu tödliche Viren löschen die Population aus (python3 lv.py 800 150 0.05):

    Zu harmlose Viren ändern das Verhalten nicht nennenswert (python3 lv.py 800 150 1e-6):

    Interessant wird es dazwischen, zum Beispiel python3 lv.py 800 150 2.1e-4 (also: rund jede fünftausendste Begegnung bringt ein Kaninchen um):

    – wer an die Beschriftung der Ordinate schaut, wird feststellen, dass die Schwankungen tatsächlich (relativ) kleiner geworden sind. Das Virus wirkt offenbar wirklich regularisierend.

    Wir befinden uns aber im Traditionsgebiet der Chaostheorie, und so überrascht nicht, dass es Bereiche der Tödlichkeit gibt, in denen plötzlich eine starke Abhängigkeit von den Anfangsbedingungen entsteht und sich die Verhältnisse weit in die Entwicklung rein nochmal grundsätzlich ändern können („nicht-ergodisch“). So etwa python3 lv.py 802 300 0.0012:

    gegen python3 lv.py 803 300 0.0012:

    Ein Kaninchen weniger am Anfang macht hundert Schritte später plötzlich so ein gedrängeltes, langsames Wachstum.

    Warum ich gerade bei 0.0012 geschaut habe? Nun ich wollte einen Überblick über das Verhalten bei verschiedenen Tödlichkeiten und habe darum stability_by_deadliness.py geschrieben, das einfach ein paar interessante Tödlichkeiten durchprobiert und dann die relative Schwankung (in Wirklichkeit: Standardabweichung durch Mittelwert) und den Mittelwert der Population über der Virustödlichkeit aufträgt:

    – das sieht sehr gut aus für meine These: Mit wachsender Tödlichkeit des Virus nimmt die relative Streuung der Population ab, irgendwann allerdings auch die Population selbst. Ganz links im Graphen gehts durcheinander, weil sich dort chaotisches Systemverhalten mit kleinen Zahlen tifft, und dazwischen scheint es noch ein, zwei Phasenübergänge zu geben.

    Leider ist dieses Bild nicht wirklich robust. Wenn ich z.B. die Anfangsbedingungen auf 600 Gras und 250 Kaninchen ändere, kommt sowas raus:

    – die meisten der Effekte, die mich gefreut haben, sind schwach oder gar ganz weg – wohlgemerkt, ohne Modelländerung, nur, weil ich zwei (letztlich) Zufallszahlen geändert habe.

    Mit etwas Buddeln findet mensch auch das Umgekehrte: wer immer mit 170 Gras und 760 Kaninchen anfängt, bekommt einen Bereich, in dem die Populationen mit Virus größer sind als ohne, während gleichzeitig die relative Schwankung nur noch halb so groß ist wie ohne Virus. Dazwischen liegt ein 1a Phasenübergang:

    Mensch ahnt: da steckt viel Rauschen drin, und auf der anderen Seite höchst stabiles Verhalten, wo mensch es vielleicht nicht erwarten würde (bei den hohen Tödlichkeiten und mithin kleinen Zahlen). Wissenschaft wäre jetzt, das systematisch anzusehen (a.k.a. „Arbeit“). Das aber ist für sehr ähnliche Modelle garantiert schon etliche Male gemacht worden, so dass der wirklich erste Schritt im Jahr 51 nach PDP-11 erstmal Literatur-Recherche wäre.

    Dazu bin ich natürlich zu faul – das hier ist ja nicht mein Job.

    Aber das kleine Spiel hat meine Ahnung – Viren stabilisieren Ökosysteme – weit genug gestützt, dass ich weiter dran glauben kann. Und doch wäre ich ein wenig neugierig, was die Dynamische-Systeme-Leute an harter Wissenschaft zum Thema zu bieten haben. Einsendungen?

  • Quatsch + Quatsch = Nichtzuglauben

    Ich mache die Kasse unserer Selbsthilfe-Fahrradwerkstatt URRmEL schon länger als ich mir das eingestehen will. Etwas vergleichbar Absurdes wie heute jedoch habe ich in dieser Eigenschaft noch nicht erlebt: 13,01 Euro für die Hochzeit von Terrorquatsch und Privatisierungswahn.

    Genauer hat der Bundesanzeiger-Verlag dem Verein vor einer Weile eine Rechnung geschickt, und da ich zu Coronazeiten nicht sehr oft zu unserem Postfach komme, habe ich das erst heute gesehen:

    Scan einer Rechnung

    Zunächst hatte ich ja an eine mäßig gelungene Bauernfängerei gedacht, aber es stellt sich raus: Das Transparenzregister gibt es wirklich. Es ist im Zuge des Sicherheitsgesetz-Tsunamis 2017 zusammen mit Netzwerkdurchsetzungsgesetz, Videoüberwachungsverbesserungsgesetz, dem „Bullenschubsparagraphen“ 114 StGB und noch einem runden Dutzend weiterer schlecht gemachter Gesetze zur Einschränkung von Bürgerrechten durch den Bundestag gerutscht.

    Wir wirklich will, kann sich diesen spezifischen Unsinn bei der Wikipedia erklären lassen. Aber viel mehr als die Umschreibung „Terrorquatsch heiratet Privatisierungswahn“ von oben braucht mensch dazu eigentlich nicht zu wissen: Er ist wahrscheinlich immerhin nicht sehr schädlich, jedenfalls verglichen mit den anderen Gesetzen dieses Jahrgangs.

    Exkurs: „Terrorismus“ als Antisprache

    Das Wort „Terrorismus“, diese Gelegenheit kann ich mir nach der Vorlage neulich nicht entgehen lassen[1], ist natürlich destillierte Antisprache, also Sprache, die Informationen verstecken und nicht transportieren will. „Terrorismus“ hat nämlich aus Sicht der Obrigkeit schon immer bedeutet: „wir dürfen auf andere Leute schießen, weil hinreichend viele von unseren Leuten die hassen“. Nicht mehr und nicht weniger.

    Das ist die Bedeutung des Wortes für die Putschisten in Myanmar genauso wie für Lukaschenko in Belarus, ist sie gegenüber „Islamisten“, ob nun Taliban in Afghanistan oder Uiguren in Westchina, gegenüber der UCK (jedenfalls aus Sicht der serbischen Obrigkeit von 1999), landlosen Bauern in Brasilien oder fabrikbesetzenden Arbeiter_innen in Argentinien. Und natürlich sowieso für all die „Innenpolitiker_innen“, die Scheibe um Scheibe von der Menschenrechtssalami absäbeln.

    Was das Wort versteckt: Auch die „Terroristen“ haben meist Gründe für das, was sie tun, und diese Gründe sind oft gar nicht so verschieden von denen, die die Obrigkeiten selbst antreiben: Patriotismus, Frömmigkeit, Streben nach Reichtum dürften ganz vorne dabei sein. Aus dieser Symmetrie folgt dann ziemlich unmittelbar auch, dass Versuche, die zugrundeliegenden Konflikte mit Gewalt zu beseitigen, meist weitgehend aussichtslos sind – und so eine Schlussfolgerung will mensch natürlich weder als Obrigkeit noch als, na ja, Terrorist_in halt ziehen, so sehr sie nach 20 Jahren „Krieg gegen den Terror“ eigentlich unvermeidlich ist.

    Nur zur Sicherheit: Nichts davon will, klar, staatliche oder private Akteure rechtfertigen, die von Patriotismus pp. getrieben werden, und noch weniger die, die deswegen rumballern oder -bomben (lassen). Es heißt nur, dass, solange wir Patriotismus, Religion und Reichtum nicht überwunden haben, die Klassifikation der der anderen Patriot_innen, Religiösen und Armen als „Terroristen“ ganz gewiss nicht weiterhilft.

    Ich kann diesen kurzen linguistischen Exkurs nicht schließen ohne eine Extraportion Befremden zu äußern über die Leichtigkeit, mit der selbst deutschen Regierungen das Wort „Terrorismus“ über die Lippen kommt. Mindestens angesichts der ebenfalls unter dem Label „Terrorismusbekämpfung“ gelaufenen Massakern im von der Wehrmacht besetzten Jugoslawien sollte doch zumindest da etwas mehr Bedacht walten. Sollte. Aber fragt mal eure_n Bundestagsabgeordnete_n, ob er_sie auch nur irgendwas mit Kraljevo oder Kragujevac anfangen kann.

    Verkaufen ohne Bestellung

    Aber zurück zum Thema: In der Gesetzgebung zum Geldwäschegesetz, das das Transparenzregister eingeführt hat, traf nun das semantische schwarze Loch „Terrorismus“ auf die offensichtlich widersinnige, aber erstaunlich vielen irgendwie einsichtige Idee, alles sei besser, wenn es ein Privatunternehmen mache.

    Und deswegen führt das Transparenzregister der Bundesanzeiger-Verlag, ein Laden, der zwar seine ersten 40 Jahre als so eine Art Bundes-Tochter fristete, aber im Rahmen des marktradikalen Rauschs um die Jahrtausendwende (in ein paar Stufen) ausgerechnet an den DuMont Schauberg-Verlag ging, einen der ganz großen Spieler im Kölschen Klüngel. Dass das ohne Ausschreibung passierte, verdient kaum Erwähnung – und klar hätte es eine Ausschreibung auch nicht besser gemacht: Entweder, etwas ist Obrigkeit, dann solls gefälligst auch der Staat machen, oder es ist es nicht, dann muss ich es aber auch nicht bezahlen, wenn ich es nicht bestellt habe. Meint mensch.

    Der Netto-Effekt jedenfalls: Der Terror-Zirkus Transparenzregister, den jedenfalls unsere Fahrradwerkstatt nicht bestellt hat, soll jetzt durch Gebühren finanziert werden von denen, die er transparent zu machen vorgibt.

    Und das sind rapide steigende Gebüren: es ging von 1.25 auf 4.80 Euro in vier Jahren. Sind wir großzügig, ist das eine Verdoppelungszeit von drei Jahren. Damit kostet der Eintrag in knapp dreißig Jahren 100 000 Euro. Auch wenn es nicht so weit kommt: Den Preis für etwas, das Leute zwangsweise kaufen müssen, in dieser Freiheit bestimmen zu können: das ist, soweit es mich betrifft, eine Lizenz zum Gelddrucken.

    Wobei, ehrlicherweise: von den 13 Euro wird wahrscheinlich erstmal nicht viel übrigbleiben, wenn Papier, Versand und Verrechnung bezahlt sind – aber das ist ja gerade der spezifische Wahnsinn: Mal angenommen, so ein Register hätte einen Nutzen, könnte mensch riesige Mengen Geld und Arbeit sparen, wenn dei Mittel nicht über Millionen von Briefen und Call Center und sonstwas eingetrieben werden müssten, sondern irgendwo aus dem BMI-Haushalt kämen. Das bisschen Zusammenführung verschiedener Register müsste dann eigentlich mit einer Million im Jahr drin sein – vermutlich vergleichbar mit den Portokosten des privaten Transparenzregisters.

    La-la-la Servicequalität

    Aber keine Sorge: Steuerbegünstigte Vereine wie unsere Fahrradwerkstatt „können gemäß §4 TrGebV bei der registerführenden Stelle eine Gebührenbefreiung ab dem Zeitpunkt der Antragstellung beantragen. Die Antragstellung kann nach Registrierung ausschließlich über die Internetseite des Transparenzregisters erfolgen.”

    Hab ich probiert.

    Ist nicht einfach.

    Immerhin geht die Webseite ohne Javascript. Das ist schon mal etwas, das ich mit all der Privatwirtschaft im Boot nicht erwartet hätte. Eine offensichtliche Möglichkeit, einen Verein als gemeinnützig zu melden, ist allerdings nicht erkennbar, und „steuerbegünstigt“ oder „gemeinnützig“ kommt bei den FAQ nicht vor.

    Ah: das ist eine Hotline. Ruf ich gleich mal an: „♪♪ ♪ ♪ Wir sind heute nur eingeschränkt für Sie da.“

    Das muss die Servicequalität (noch so ein Stück Antisprache: Qualität) im Privatsektor sein, von der mensch so viel hört.

    Ich habe mal eine Mail geschrieben. Wetten zu Dauer und Art der Antwort nehme ich an.

    [1]Auch wenn das Thema eigentlich schon oft behandelt wurde; vgl. etwa eine Abhandlung im Guardian von 2015
  • Tintenfische und der Erfolg im Leben

    Ein Oktopus im Porträt

    Gut: Es ist keine Sepie. Aber dieser Oktopus ist bestimmt noch viel schlauer.

    Mal wieder gab es in Forschung aktuell ein Verhaltensexperiment, das mich interessiert hat. Anders als neulich mit den Weißbüschelaffen sind dieses Mal glücklicherweise keine Primaten im Spiel, sondern Tintenfische, genauer Sepien – die mir aber auch nahegehen, schon, weil das „leerer Tab“-Bild in meinem Browser eine ausgesprochen putzige Sepie ist. Den Beitrag, der mich drauf gebraucht hat, gibt es nur als Audio (1:48 bis 2:28; Fluch auf die Zeitungsverleger), aber dafür ist die Original-Publikation von Alexandra Schnell et al (DOI 10.1098/rspb.2020.3161) offen.

    Grober Hintergrund ist der Marshmallow-Test. Bemerkenswerterweise zitiert der Wikipedia-Artikel bereits die Sepien-Publikation, nicht jedoch kritischere Studien wie etwa die auf den ersten Blick ganz gut gemachte von Watts et al (2018) (DOI: 10.1177/0956797618761661). Schon dessen Abstract nimmt etwas die Luft aus dem reaktionären Narrativ der undisziplinierten Unterschichten, die selbst an ihrem Elend Schuld sind:

    an additional minute waited at age 4 predicted a gain of approximately one tenth of a standard deviation in achievement at age 15. But this bivariate correlation was only half the size of those reported in the original studies and was reduced by two thirds in the presence of controls for family background, early cognitive ability, and the home environment. Most of the variation in adolescent achievement came from being able to wait at least 20 s. Associations between delay time and measures of behavioral outcomes at age 15 were much smaller and rarely statistically significant.

    Aber klar: „achievement“ in Zahlen fassen, aus denen mensch eine Standardabweichung ableiten kann, ist für Metrikskeptiker wie mich auch dann haarig, wenn mich die Ergebnisse nicht überraschen. Insofern würde ich die Watts-Studie jetzt auch nicht überwerten. Dennoch fühle ich mich angesichts der anderen, wahrscheinlich eher noch schwächeren, zitierten Quellen eigentlich schon aufgerufen, die Wikipedia an dieser Stelle etwas zu verbessern.

    Egal, die Tintenfische: Alexandra Schnell hat mit ein paar Kolleg_innen in Cambridge also festgestellt, dass Tintenfische bis zu zwei Minuten eine Beute ignorieren können, wenn sie damit rechnen, später etwas zu kriegen, das sie lieber haben – und wie üblich bei der Sorte Experimente ist der interessanteste Teil, wie sie es angestellt haben, die Tiere zu irgendeinem Handeln in ihrem Sinn zu bewegen.

    Süß ist erstmal, dass ihre ProbandInnen sechs Tintenfisch-Jugendliche im Alter von neun Monaten waren. Die haben sie vor einen Mechanismus (ebenfalls süß: Die Autor_innen finden den Umstand, dass sie den 3D-gedruckt haben, erwähnenswert genug für ihr Paper) mit zwei durchsichtigen Türen gesetzt, hinter denen die Sepien jeweils ihre Lieblingsspeise und eine Nicht-so-Lieblingsspeise (in beiden Fällen irgendwelche ziemlich ekligen Krebstiere) sehen konnten. Durch irgendwelche Sepien-erkennbaren Symbole wussten die Tiere, wie lange sie würden warten müssen, bis sie zur Leibspeise kommen würden, zum langweiligen Essen konnten sie gleich, und sie wussten auch, dass sie nur einen von beiden Ködern würden essen können; dazu gabs ein recht durchdachtes Trainingsprotokoll.

    Na ja, in Wirklichkeit wars schon etwas komplizierter mit dem Training, und ahnt mensch schon, dass nicht immer alles optimal lief:

    Preliminary trials in the control condition showed that Asian shore crabs were not a sufficiently tempting immediate reward as latencies to approach the crab, which was baited in the immediate-release chamber, were excessive (greater than 3 min) and some subjects refused to eat the crab altogether.

    Ich kann mir richtig vorstellen, wie die Gruppe vor dem Aquarium stand und fluchte, weil die doofen Viecher ihre Köder nicht schlucken wollten: „Wie zum Henker schreiben wir das nachher ins Paper?“ – um so mehr, als alle Sepien konsequent die gleichen Präferenzen hatten (was ich ja auch schon für ein bemerkenswertes Resultat halte, das bei n=6 und drei Auswahlmöglichkeiten kaum durch Zufall zu erklären ist – vielleicht aber natürlich durch das, was die Sepien sonst so essen).

    Und dann wieder Dinge in der Abteilung „was alles schiefgehen kann, wenn mensch mit Tieren arbeitet“:

    Subjects received one session of 6 trials per day at a specific delay. This number of trials was chosen to minimize satiety and its effects on eating behaviour.

    Schon die Abbildung 2 des Artikels finde ich wirklich erstaunlich: Alle Sepien bekommen es hin, 30 Sekunden auf ihre Lieblingsspeise zu warten – wow. Ok, kann natürlich sein, dass sie so lange brauchen, um sich zu orientieren, aber Schnell und Co scheinen mir schon viel getan zu haben, um das unwahrscheinlich zu machen.

    Was jedenfalls rauskommen sollte, war eine Korrelation der Wartezeit mit, na ja, der „Intelligenz“ (ich halte mich raus bei der genaueren Bestimmung, was das wohl sei), und um die zu messen, mussten die Sepien in ihren Aquarien zunächst lernen, das „richtige“ unter einem dunklen und einem hellen Stück Plastik aussuchen. Anschließend, das war der Intelligenztest, mussten sie mitbekommen, wenn die Versuchsleitung die Definition von „richtig“ verändert hat. Dazu haben sie laut Artikel im Mittel 46 Versuche gebraucht – gegenüber 27 Versuchen beim ersten Lernen. Nicht selbstverständlich auch: Sepien, die beim ersten Lernen schneller waren, waren auch schneller beim Begreifen der Regeländerung. Da ist Abbildung 3 schon ziemlich eindrücklich: einer der Tintenfische hat das Umkehrlernen in gut 20 Schritten bewältigt, ein anderer hat fast 70 Schritte gebraucht. Uiuiui – entweder haben die ziemlich schwankende Tagesform, oder die Gerissenheit von Sepien variiert ganz dramatisch zwischen Individuen.

    Die erwartete Korrelation kam selbstverständlich auch raus (Abbildung 4), und zwar in einer Klarheit, die mich schon etwas erschreckt angesichts der vielen Dinge, die beim Arbeiten mit Tieren schief gehen können; der Bayes-Faktor, den sie im Absatz drüber angeben („es ist 8.83-mal wahrscheinlicher, dass Intelligenz und Wartenkönnen korreliert sind als das Gegenteil“) ist bei diesem Bild ganz offensichtlich nur wegen der kleinen Zahl der ProbandInnen nicht gigantisch groß. Hm.

    Schön fand ich noch eine eher anekdotische Beobachtung:

    [Andere Tiere] have been shown to employ behavioural strategies such as looking away, closing their eyes or distracting themselves with other objects while waiting for a better reward. Interestingly, in our study, cuttlefish were observed turning their body away from the immediately available prey item, as if to distract themselves when they needed to delay immediate gratification.

    Ich bin vielleicht nach der Lektüre des Artikels nicht viel überzeugter von den verschiedenen Erzählungen rund um den Marshmallow-Test.

    Aber ich will auch mit Sepien spielen dürfen.

  • Wie aus dem 18. Jahrhundert

    Ich bin ja bekennender Leser von Fefes Blog, und ich gebe offen zu, dass ich dort schon das eine oder andere gelernt habe. Zu den für mich aufschlussreichsten Posts gehört dieser aus dem September 2015, der mir seitdem nicht mehr aus dem Sinn gegangen ist, und zwar wegen der Unterscheidung zwischen Kulturen der Ehre (die mensch sich verdienen und die mensch dann verteidigen muss) und denen der Würde (die mensch einfach hat).

    Der Rest des Posts ist vielleicht nicht der scharfsinnigste Beitrag zur Identitätsdebatte, und klar gilt auch Robert Gernhardts „Die Würde des Menschen ist ein Konjunktiv“ weiter, aber der zentrale Punkt ist: Artikel 1 Grundgesetz ist eine Befreiung von dem ganzen Unsinn von Ehre und insofern ein großer Schritt in die Moderne. Das ist mir so erst damals im September 2015 klar geworden.

    Und seitdem habe ich mich um so mehr gewundert über den Stellenwert, den „Gesicht nicht verlieren“ in „der Politik“ (und das schließt schon Bezirksvorsitzende von Gewerkschaften ein) immer noch hat. Wo außerhalb der Krawattenliga gibt es sonst noch „Ehrenerklärungen“ wie neulich bei der CDU (von vor 20 Jahren ganz zu schweigen) oder kräuseln sich nicht die Zehennägel, wenn jemand wie Westerwelle weiland verkündete: „Ihr kauft mir den Schneid nicht ab“?

    Um so mehr war ich angetan, als zumindest Angela Merkel diese Logik des 18. Jahrhunderts gestern durchbrochen hat und einfach mal „ich hab Scheiße gebaut“ gesagt hat. Und es tröstet etwas, dass zumindest die heutige Presseschau in weiten Teilen nicht das unsägliche Genöle von Vertrauensfragen aus dem Bundestag gestern reflektiert.

    Andererseits: Keine Presseschau ohne fassungsloses Kopfschütteln, wenn nämlich die Süddeutsche schreibt:

    Hätte die Bundesregierung stattdessen selber genug Impfdosen geordert, und zwar nicht zuletzt bei Biontech im eigenen Land, dem Erfinder des ersten Corona-Vakzins, befände sich Deutschland jetzt nicht am Rande der Hysterie.

    Hätte die Süddeutsche gesagt: „dafür gesorgt, dass so oder so alles, was an Abfüllkapazität da ist, anfängt, Impfstoff abzufüllen, sobald absehbar ist, dass es mit der Zulassung was wird“ – ok, das wäre ein Punkt. Das augenscheinlich auch im Ernstfall herrschende Vertrauen in „den Markt“ ist natürlich böser Quatsch. Aber auch überhaupt nichts Neues. Und die Süddeutsche sitzt in dem Punkt in einem Glashaus mit ganz dünnen Scheiben.

    Aber sie redet auch vom „ordern“, was im Klartext heißt: „wir wollen schneller geimpft sein als die anderen“ – das ist, noch klarerer Text, anderen Leuten den Impfstoff wegnehmen. Meinen die Süddeutschen das ernst?

    Ich bin ja ohnehin in den letzten Wochen in der unangenehmen Situation, meine Regierung zu verteidigen. Das habe ich, glaube ich, noch nie gemacht. Aber im schwierigen Lavieren zwischen autoritärem Durchgriff – etwa, alle Leute bei sich zu Hause einsperren – und einem Laissez-Faire, das vermutlich fast eine halbe Million Menschen in der BRD umgebracht hätte, sieht es fast so aus, als hätte der Gesamtstaat (zu dem ja auch Landesregierungen und vor allem Gerichte gehören) so ziemlich den Punkt erwischt hat, den „die Gesellschaft“ sonst auch akzeptiert.

    Warum ich das meine? Nun, so sehr ich gegen Metriken als Bestimmer politischen Handelns bin, gibt die Mortalitätskurve doch eine Idee davon, welche Kompromisse wir eingehen. Das RKI veröffentlicht jeden Freitag so eine, und die im Bericht vom letzten Freitag sieht so aus:

    Mortalitätskurven 2017-2021

    In Worten: Die Gesamtsterblichkeit war im Corona-Jahr nicht viel anders als sonst auch, nur kam der Grippe-Peak halt schon im November und Dezember statt erst im Januar und Februar. Und da wir ja wegen der Grippe in „normalen“ Jahren auch nicht alle das Winterende in Isolation verbringen, war das Level an Isolation und Shutdown, das wir am Ende hatten und das SARS-2 zur Vergleichbarkeit gezähmt hat, offenbar im Sinne „der Gesellschaft“ gewählt.

    Klar: Das hat so wohl niemand geplant. Dass es aber so rausgekommen ist, dürfte nicht einfach nur Zufall sein. „Schwarmintelligenz“ wird den Grund sicher nicht treffen. Aber irgendwas, das nicht furchtbar weit davon weg ist, dürfte die Ähnlichkeit der Kurven wohl schon erklären. Vielleicht: Das, was bei uns von Gewaltenteilung noch übrig ist?

    Ansonsten bereite ich mich schon mal aufs Verspeisen meines Hutes vor, wenn die „dritte Welle“ jetzt doch noch für einen schlimmen Mortalitätspeak sorgt.

  • Fortschritt des Monats: Neu-Eichenberg

    Bestimmt nur wegen durch Corona-Beratungen und Terrorgedenken in Brüssel anderweitig gefesselter Aufmerksamkeit lief die Nachricht des Tages nicht in der Tagesschau, sondern nur in der taz.

    Dort wird über die weise Wahl im hessischen Dorf Neu-Eichenberg berichtet, das sich nicht hat beirren lassen von der großen Verwirrung, dass zwar alle das Wochenende nicht erwarten können, aber „Arbeitsplätze“ im allgemeinen Bewusstsein das überragende Ziel privaten wie öffentlichen Handelns zu sein scheinen,

    In Neu-Eichenberg nämlich wollte eine Firma namens Dietz AG groß investieren und damit einem Haufen Menschen viel Arbeit machen. Und zwar wollte sie ein „Logistikzentrum“ bauen, in dem, so die taz, „Onlinefirmen und Paketzusteller“ wirken sollten. Die bisherigen Mehrheitsparteien SPD und CDU (bis vorhin gemeinsam 12 von 15 Sitzen) hatten das bejubelt. Sie verloren deshalb bei den Gemeinderatswahlen am vorletzten Wochenende je 17 und 20 Prozentpunkte. Damit ist die Mehrheit für das „Logistikzentrum“ weg. Weniger Lärm, weniger Arbeit, weniger hässliche Gewerbegebiete: die Bewohner_innen von Neu-Eichenberg bekommen den Engelszüngeln-Preis für den Fortschritt des Monats.

    Das um so mehr, als es ja wirklich ein Segen rundrum wäre, wenn die ganze Paketverschickerei wieder auf, sagen wir, 1% ihres aktuellen Umfangs einschrumpfen würde, denn selbst nach Maßstäben eines Landes, das irgendwas wie ein Siebtel seiner Arbeitskraft ausgerechnet auf die Produktion und den Betrieb von Autos verschwendet, ist die Paketfahrerei eine besonders sinnlose Art, menschliche Lebenskraft zu verschleudern: Erstmal, weil im Netz nach meiner anekdotischen Erfahrung noch mehr nutzloser Plunder vertickt wird als in echten Geschäften, und dann, weil bei der Einzelverschickung ein Haufen echt übler Jobs mitkommen.

    Klar ist jetzt auch der stationäre Handel nichts, wo ich eben mal Traumjobs vermuten würde, aber verglichen mit den Beschäftigungsverhältnissen in allen Kettengliedern der „Logistik“ ist das wirklich Gold (und das nicht nur im Hinblick auf den Tarif). Fast im Ernst: Eine Existenz als Buch- oder Wolle-und-Tee-Händler könnte möglicherweise selbst mir nicht ganz unattraktiv scheinen.

    Go Neu-Eichenberg.

  • Zum Tag der politischen Gefangenen

    Der 18.3. hat eine lange Tradition als Tag der politischen Gefangenen, anfänglich in Erinnerung an den Beginn der Pariser Commune vor 150 Jahren; die Erinnerungsfeierlichkeiten in diesem Zusammenhang waren in den Jahren der Weimarer Republik regelrechte politische Festivals. Das hatte nach der Machtübergabe an die NSDAP ein Ende, doch seit genau 25 Jahren begehen Menschen auch in der BRD wieder den Tag der politischen Gefangenen, vor allem im Umfeld der Roten Hilfe.

    In Heidelberg gab es dazu heute eine Kundgebung, deren Hauptziel war, den politischen Gefangenen in der BRD eine Stimme zu geben. Deshalb bestand ein großer Teil der Kundgebung auch schlicht draus, Briefe und andere Äußerungen der Gefangenen vorzulesen. Das wiederum schien den Veranstalter_innen wichtig, weil der_die durchschnittliche Passant_in in der Fußgängnerzone (die Kundgebung fand am Marktplatz statt) schon die Behauptung, in ihrem Staat gebe es politische Gefangene, für eine Zumutung hält. Tatsächlich erinnere ich mich an Gerichtsverfahren in den späten 1980er Jahren, in denen Menschen für die Forderung, die politischen Gefangenen in der BRD sollten freigelassen werden, mit schwerem strafrechtlichem Geschütz verfolgt wurden und zum Teil sogar Bewährungsstrafen kassierten. Das, immerhin, hat es nach meiner Kenntnis in den letzten Jahren nicht mehr gegeben.

    Aber dann würden vermutlich nicht viele Menschen glauben, dass es im Strafgesetzbuch im Jahr 2021 noch einen ganzen Abschnitt gibt zu „Hochverrat“, unterteilt in „gegen den Bund“ (§81), „gegen ein Land“ (§82) und „Vorbereitung“ (§83), wozu dann noch ein Kronzeugenparagraph §83a tritt. Und natürlich klingen auch etwa §90 und §90a („Verunglimpfung des Bundespräsidenten“ bzw. „des Staates und seiner Symbole“) oder §94 („Landesverrat“) durchaus nach ziemlich politischer Justiz.

    Die real exisitierenden politischen Gefangene in deutschen Knästen werden allerdings weit überwiegend verfolgt nach der 129er-Paragraphen-Familie, bestehend aus §129 (normale Banden, Provenienz: Kaiserreich), §129a (inländischer „Terrorismus“, Provenienz: Schmidt-Regierung) und §129b (ausländischer „Terrorismus“, Provenienz: Schröder-Regierung). Im Bereich der Antisprache „Terrorismus“ wirds natürlich immer etwas haarig mit den Vorwürfen, und drum nehme ich als Definition von „politische_r Gefangene_r” ganz pragmatisch: „hätten sie ohne politisch missliebigen Hintergrund gehandelt, wären sie nie eingefahren oder jedenfalls längst wieder draußen“.

    Um da mal das Spektrum aufzumachen zwischen „Fällen“, bei denen sich die bürgerliche Öffentlichkeit wahrscheinlich nur schwer wird empören können auf der einen und offensichtlichen moralischen Bankrotterklärungen des Staates auf der anderen, würde ich gerne kurz einen Blick auf die Gefangenen werfen, deren Kontaktadressen die RH in ihrer 18.3.-Zeitung auf Seite 15 druckt (zu den meisten sind auch Artikel in der Zeitung).

    Da hätten wir zunächst Yilmaz Acil, Hüseyin Açar, Gökmen Çakil, Mustafa Çelik, Salih Karaaslan, Agit Kulu, Veysel Satilmiş, Özkan Taş, Mazhar Turan und Mustafa Tuzak, die in verschiedenen Gefängnissen der Republik sitzen, weil... nun, weil sie mit der PKK in Verbindung gebracht werden. Soweit ersichtlich, wird keinem von ihnen irgendeine konkrete Straftat vorgeworfen – aber klar, die PKK als Organisation tut natürlich schon Sachen, die Menschen, die die türkische Obrigkeit als NATO-Verbündeten schon ok finden, für verwerflich halten könnten. Nach welchem Rechtsstaatsprinzip daraus abzuleiten ist, Leute mit schlichten Sympathien für PKK-Kämpfe sollten eingesperrt werden, ist natürlich noch eine andere Frage, zumal, wie Gökmen Çakıl richtig anmerkt, entsprechende „Aktivitäten [...] in der Schweiz oder in Belgien nicht sanktioniert“ werden.

    Ähnlich wird das Sentiment bei der Gefangenschaft von Musa Aşoğlu von der Einschätzung abhängen, von welcher Sorte Widerstand gegen verbündete Regierungen mensch sich dringend distanzieren muss, will mensch nicht ins Gefängnis kommen; in seinem Fall genügte die Mitgliedschaft in der DHKP-C (deren Erklärungen übrigens ein Fest sind für Liebhaber_innen realsozialistischer Prosa) für sechs Jahre und neun Monate Knast.

    Milde Empörung im Fall von Thomas Meyer-Falk dürfte weniger internationalistischen Furor brauchen. Er nämlich sitzt nach jahrelanger Gefängnisstrafe wegen Banküberfällen (mit denen er linke Jugendzentren finanzieren wollte) nun in Sicherungsverwahrung, die ja schon als solche ein menschenrechtlicher Skandal ist. In seinem Fall ist unbestreitbar: er wäre längst draußen, wenn es da nicht den politischen Hintergrund gäbe – von dem er sich auch nicht distanzieren will. Immerhin gibt derweil sein Blog wertvolle Einblicke in die Realität der Sicherungsverwahrung.

    Noch weiter im Spektrum klar politischer Justiz sind die Fälle von Lina, Jo und Dy – sie alle sind im Antifa-Bereich unterwegs und sind oder waren für Monate inhaftiert im Wesentlichen aufgrund vager Hinweise, sie könnten in, mal bewusst entpolitisierend gesprochen, Prügeleien mit Nazis verwickelt gewesen sein. Prügeleien dieser Art sind, weiter bewusst entpolitisierend, ohne SARS-2 Alltag auf jedem Volksfest und werden dann halt mit Strafbefehlen behandelt, die nur im Wiederholungsfall über dem Vorbestrafungs-Limit von 90 Tagessätzen liegen. Dass diese Leute monatelang im Knast schmoren, ist ausschließlich politisch bedingt. Was in diesem Fall angesichts des immer wieder hochblubbernden Faschismusproblems in Polizei und Staatsanwaltschaften nochmal ein ganz besonderes Hautgout hat.

    Bei der „militanten Zelle” von Nicole Grahlow und Martin Eickhoff – die seit Oktober 2020 in in Haft sind – liegen noch Sachbeschädungsvorwürde durch versuchte Brandstiftungen vor, aber keinerlei Gefährung von Menschen mehr. Die Ziele, nämlich die ehemalige Bundesanstalt für Arbeit in Nürnberg und das Schlachtimperium von Tönnies, sind allerdings so nachvollziehbar, dass das inzwischen durch rechte Hasspost-Praktiken ziemlich desavouierte Topos „Drohbriefe an diverse Politiker_innen“ in der staatlichen Kommunikation dominiert. Ich will hier bestimmt nichts gleichsetzen, aber ein ähnlicher Verfolgungseifer bei Nazis, die Menschen abfackeln, würde der Verfolgung der beiden einiges vom Eindruck von Willkür nehmen.

    Glasklar im Hinblick auf eine menschenrechtliche Bankrotterklärung ist schließlich der Fall von Ella („Unbekannte Person 1“): Ihr wird im Wesentlichen vorgeworfen, an der Besetzung des Dannenröder Walds teilgenommen zu haben und beharrlich die Aufklärung ihrer Identität zu verweigern. Ohne die Gewalttaten der Polizei bei der Räumung des Hüttendorfs, für deren wirklich empörendes Ausmaß der Staat rechtfertigende Narrative sucht, wäre sie ganz gewiss keinen Moment in Haft gekommen.

    Nach all dem: Wer will, kann die Grenze zwischen politischen und, nun ja, sozialen Gefangenen etwas anders ziehen als die Rote Hilfe. Um die Einsicht, dass es auch in Justizvollzugsanstalten (was für ein urdeutsches Wort!) politische Gefangene gibt, kommt mensch aber nicht herum.

  • Schurken und Engel, Teil 2

    Ich bin gestern nochmal der Sache mit den Schurken und Engeln von neulich nachgegangen, denn auch wenn die grundsätzliche Schlussfolgerung – wenn du Chefposten kompetetiv verteilst, kriegst du ziemlich wahrscheinlich Schurken als Chefs – robust ist und ja schon aus der dort gemachten qualitativen Abschätzung folgt, so gibt es natürlich doch jede Menge interessante offene Fragen: Setzen sich Schurken drastischer durch wenn die Engeligkeit steiler verteilt ist? Wie sehr wirkt sich der Vorteil für die Schurken wirklich aus, vor allem, wenn sie auch nur eine endliche Lebensdauer haben? Wie ändern sich die Ergebnisse, wenn Leute zweite und dritte Chancen bekommen, mal wie ein richtiger Schurke Karriere zu machen? Wie verändert sich das Bild, wenn mensch mehr Hierarchiestufen hinzufügt?

    Weil das alte Modell mit der einen Kohorte, die bei jedem Schritt um den Faktor 2 eindampft, für solche Fragen zu schlicht ist, muss ein neues her. Es hat den Nachteil, dass es viel mehr Code braucht als das alte – es hat aber der Vorteil, dass es im Prinzip beliebig lang laufen kann und über einen weiten Bereich von Parametern hinweg stationär werden dürfte, sich also der Zustand nach einer Weile (der „Relaxationszeit“) nicht mehr ändern sollte – natürlich vom Rauschen durch die diskrete Simulation abgesehen. Wem also das alte Modell zu schlicht und langweilig ist: Hier ist sunde2.py.

    Das Neue

    Wie sieht das Modell aus? Nun, wir haben jetzt simultan einen ganzen Haufen N von Hierarchiestufen, die auch immer alle besetzt sind; derzeit habe ich konstant N = 50. Von Stufe zu Stufe ändert sich jetzt die Population nicht mehr je um einen Faktor zwei, sondern so, dass die unterste Stufe 16-mal mehr Aktoren hat als die oberste und die Besetzungszahl dazwischen exponentiell geht. Diese Schicht-Statistik sollte keinen großen Einfluss auf die Ergebnisse haben, hält aber einerseits die Zahl der zu simulierenden Aktoren auch bei tiefen Hierarchien im Rahmen, ohne andererseits auf den oberen Ebenen die ganze Zeit mit allzu kleinen Zahlen kämpfen zu müssen.

    Aktoren haben jetzt auch ein Alter; sie sterben (meist) nach LN Runden; L kann interpretiert werden als die Zahl der Versuche pro Wettbewerb, die ein Aktor im Mittel hat, wenn er ganz nach oben will. Im Code heißt das lifetime_factor (hier: Lebenzeit-Faktor), und ich nehme den meist als 2 („vita brevis“).

    Es gibt eine Ausnahme auf der strikten Lebenszeitbegrenzung: Wenn ein Level sich schon um mehr als die Hälfte geleert hat, überleben die, die noch drin sind, auch wenn sie eigentlich schon sterben müssten. An sich ist diese künstliche Lebensverlängerung nur ein technischer Trick, damit mir der Kram mit ungünstigen Parametern und bei der Relaxation nicht auf interessante Weise um die Ohren fliegt; es kann nämlich durchaus sein, dass die oberen Ebenen „verhungern“, weil Aktoren schneller sterben als befördert werden. Er hat aber den interessanten Nebeneffekt, dass speziell in Modellen mit kleinem L wie in der Realität die Lebenserwartung der höheren Klassen höher ist als die der unteren.

    Um die Gesamtzahl der Aktoren konstant zu halten, werden in jeder Runde so viele Aktoren geboren wie gestorben sind, und zwar alle in die niedrigste Schicht.

    Das enspricht natürlich überhaupt nicht der Realität – schon die Zahlen zur Bildungsbeteiligung gegen Ende des Posts Immerhin gegen Ende zeigen ja, dass viele Menschen mitnichten bei Null anfangen in ihrem gesellschaftlichen Aufstieg. Insofern hätte mensch darüber nachdenken können, bestehende Aktoren irgendwie fortzupflanzen. Das aber hätte eine Theorie zum Erbgang von Schurkigkeit gebraucht (die auch dann nicht einfach ist, wenn mensch wie ich da wenig oder keine biologische Komponenten vermutet) und darüber hinaus den Einbau von Abstiegen in der Hierarchie erfordert.

    Die zusätzliche Komplexität davon wäre jetzt nicht dramatisch gewesen, aber das kontrafaktische „alle fangen bei Null an“ residiert als „Chancengleichheit“ auch im Kern der modernen Wettbewerbsreligion. Für ein Modell – das ohnehin in einer eher lockeren Beziehung zur Wirklichkeit steht – ist sie daher genau richtig. Sollten übrigens in der Realität Kinder von eher schurkigen Menschen auch tendenziell eher schurkig werden, würde das die Anreicherung von Schurkigkeit gegenüber dem chancengleichen Modell nur verstärken.

    Das Alte

    Der Rest ist wie beim einfachen Modell: da es gibt den Schurken-Vorteil, die Wahrscheinlichkeit, dass ein Aktor, der gerade schurkig ist, gegen einen, der gerade engelig ist, gewinnt. Dieser rogue_advantage ist bei mir in der Regel 0.66.

    Der letzte Parameter ist die Verteilung der Schurkigkeit (also der Wahrscheinlichkeit, dass sich ein Aktor in einem Wettbewerb als Schurke verhält). Dazu habe ich wie zuvor eine Gleichverteilung, Exponentialverteilungen der Schurkigkeit mit verschidenen λ (also: gegenüber der Gleichverteilung sind mehr Aktoren Engel, wobei die allerdings alle Schurkeigkeiten über 1 auf 1 beschnitten werden; für kleine λ wird das also schwer zu interpretieren) und Normalverteilungen reingebaut, dieses Mal aber viel expliziter als im einfachen Modell des letzten Posts.

    Ich hatte eigentlich vor, den Kram immer laufen zu lassen, bis er „stationär“ würde, also sagen wir, bis der Schurkigkeits-Gradient in den mittleren Schichten sich von Runde zu Runde nicht mehr wesentlich ändert. Stellt sich aber raus: durch die relativ überschaubaren Aktor-Zahlen und die Dynamik der Gesellschaft, in der ja per Design viel Aufstieg stattfindet, rauschen die Metriken, die ich da probiert habe, zu stark, um guten Gewissens sagen zu können, jetzt sei das Ding relaxiert (im Code: DiffingWatcher).

    Was passiert?

    Stattdessen lasse ich die Modelle jetzt erstmal laufen, bis die (gleichverteilte) Anfangspopulation weitgehend ausgestorben ist (nämlich NL Runden) und ziehe dann nochmal für NL Runden Statistiken, vor allem die mittlere Schurkigkeit in Abhängigkeit von der Hierarchieebene. Die kann ich dann übereinanderplotten, wobei ich die Zeit durch den Grauwert einfließen lasse (spätere, wahrscheinlich etwas relaxiertere, Zustände sind dunkler):

    Dabei ist auf der Abszisse die mittlere Hierarchieebene, auf der Ordinate die mittlere Schurkigkeit auf der entsprechenden Ebene; die Zeit ist, wie gesagt, durch den Grauwert der Punkte angedeutet und sorgt für die Streuung.

    Am auffälligsten ist wohl, dass Schurkigkeit auf den letzten paar Stufen am drastischsten ansteigt. Das hätte ich in dem Ausmaß nicht erwartet und deckt sich jedenfalls nach meiner Erfahrung nicht mit irgendwelchen Realitäten (in denen die Schurkigkeit schon auf nur moderat schwindelerregenden Ebenen rapide wächst). Ich komme gegen Ende nochmal etwas quantitativer auf die Steilheit des Anstiegs zurück.

    Hier, wie auch sonst, sind die Modelle bezeichnet durch einen String – sunde2.py verwendet ihn als Dateinamen –, der aus einer Bezeichnung der Verteilung (hier Exponential mit λ=4), der Zahl der Level N, dem Schurken-Vorteil und dem Lebenszeit-Faktor L besteht.

    Eine andere Art, diese Daten anzusehen, die insbesondere etwas mehr von der Dynamik erahnen lässt, ist eine Heatmap der Schurkigkeit; hier laufen die Hierarchieebenen auf der Ordinate, die Zeit auf der Abszisse; aus Bequemlichkeitsgründen hat hier die höchste Ebene mal die Bezeichnung 0 (so ist das übrigens auch im Programm gemacht, in den anderen Grafiken ist dagegen Ebene 50 das Nüßlein-Territorium):

    In-joke: Regenbogen-Palette. Ich habe gerade frei, ich darf das.

    Hier lässt sich ganz gut erkennen, dass der Kram nach einer maximalen Lebensdauer (da fängt die Grafik an) weitgehend relaxiert ist, und wieder, dass die letzten paar Hierarchieebenen die dramatischsten Schurken-Konzentrationen aufweisen. Die schrägen Strukturen, die überall sichtbar sind, sind zufällige Schurken-Konzentrationen auf der Karriereleiter. Intuitiv wäre wohl zu erwarten, dass sich Engel in Haifischbecken eher noch schwerer tun und so Schurkigkeitszonen selbstverstärkend sein könnten. Insofern ist die relativ geringe Streifigkeit der Grafik – die sagt, dass das wenigstens im Modell nicht so ist – erstmal eher beruhigend.

    Umgekehrt bilde mich mir ein, dass im unteren Bereich der Grafik einige blauere (also: engeligere) Strukturen deutlich flacher als 45 Grad laufen: Das könnten Engel-Konzentrationen sein, die gemeinsam langsamer die Karriereleiter besteigen. Fänd ich putzig (wenns die Karriereleiter denn schon gibt), kann aber auch nur überinterpretiertes Rauschen sein.

    Und noch eine Auswertung von diesem spezifischen Modell: Alter über Hierarchieebene, was angesichts des aktuellen Alte-weiße-Männer-Diskurses vielleicht interessant sein mag:

    Diese Abbildung funktioniert so wie die der mittleren Schurkigkeit, nur ist auf der Ordinate jetzt das Alter statt der Schurkigkeit. In dem Modell leben Aktoren ja zwei Mal die Zahl der Hierarchieebenen Runden, hier also 100 Runden. Die Aktoren ganz unten sind erkennbar deutlich jünger als der Schnitt (der bei 50 liegt), ganz oben sammeln sich alte Aktoren. Klingt speziell in dieser Ausprägung, in der oben wirklich nur Aktoren kurz vom Exitus sind, irgendwie nach später Sowjetunion, und klar ist das Modell viel zu einfach, um etwas wie die City of London zu erklären.

    Note to self: Beim nächsten Mal sollte ich mal sehen, wie sich das mittlere Alter von Schuken und Engeln in den unteren Schichten so verhält.

    Mal systematisch

    Weil Simulationen dieser Art schrecklich viele Parameter haben, ist das eigentlich Interessante, den Einfluss der Parameter auf die Ergebnisse zu untersuchen. Dazu habe ich mir mal ein paar Modelle herausgesucht, die verschiedene Parameter variieren (in der run_many-Funktion von sunde2); Ausgangspunkt sind dabei 50 Ebenen mit einem Lebenszeit-Faktor von zwei und einem Schurkenvorteil von 0.66. Das kombiniere ich mit:

    • einer Gleichverteilung von Schurkigkeiten
    • einer Exponentialverteilung mit λ = 2
    • einer Exponentialverteilung mit λ = 4
    • einer Exponentialverteilung mit λ = 4, aber einem Schurkenvorteil von 0.75
    • einer Exponentialverteilung mit λ = 4, aber einem Lebenszeit-Faktor von 4
    • einer Normalverteilung um 0.75 …
  • Fürchten lernen 3: Microsoft

    Nach dem zweiten Teil meiner Leidensgeschichte über den Betrieb eines Mailservers in der Postmoderne ist es ruhig geworden: Nachdem ich erstmal das DNS vertrauenswürdig gestaltet hatte, fanden eigentlich alle, bei denen mein Server Mails einliefern wollte, dessen Reputation reiche schon hin.

    Ich hegte also Hoffnung, dass das alles nicht so schlimm ist wie ich geglaubt hatte, dass SMTP noch nicht kaputt ist und mensch mit vernünftigem Aufwand selbst Mail verteilen kann. Bis heute morgen, als von meinen Mailserver das hier zurückkam:

    XXXXXXXXXXXXX@XXXXXXXXXX.de
       host XXXXXXXXXXXX01i.mail.protection.outlook.com [104.47.2.36]
       SMTP error from remote mail server after RCPT TO:<XXXXXXXXXXXXX@XXXXXXXXXX.de>:
       550 5.7.606 Access denied, banned sending IP [116.203.206.117]. To request
     removal from this list please visit https://sender.office.com/ and follow the
     directions. For more information please go to
     http://go.microsoft.com/fwlink/?LinkID=526655 AS(1430)
    

    Oh nein. Microsoft. Na, mal sehen.

    Ich schicke meinen Web-Browser zu sender.office.com, und es erscheint einen Dialog mit einem kreiselnden Wartedings, ein sicheres Zeichen, dass da mal wieder „Web-Programmier“ am Werk waren, die einfach so voraussetzen, dass sie Code auf allen Maschinen ausführen dürfen. Na super: Mails verschicken geht nicht, ohne Microsoft-Code laufen zu lassen.

    Aber egal, sollen sie halt auf meine CPU; das Javascript zieht ein Captcha ein (zum ersten Mal bin ich froh, dass das Microsoft ist, denn so ist es immerhin kein Google-Captcha und ich muss nicht deren „KI“ trainieren). Captcha gelöst, für ein paar Sekunden passiert nichts, dann eine Meldung:

    Step 1: Our messaging service has experienced a temporary issue,
    please resubmit your information below.
    

    Mach ich das mit dem resubmit, gleiche Reaktion. Hatte ich was anderes erwartet?

    Ok, kann ja sein, dass die einfach keine gute Fehlermeldung haben und das irgendsoein dämlicher CSRF-Schutz mit Referrern ist (auch wenn mir wirklich nicht klar wäre, wer auf diesem Zeug CSRF machen wollen könnte). Lasse ich meinen Browser also noch Referrer-Header schicken. Keine Änderung, immer noch kaputt.

    An der Stelle werde ich sauer und will irgendwem eine zornige Mail schicken. Aber: Keine Kontaktadresse, nirgends. Ich überlege, ob ich eine Telemediengesetz-Beschwerde auf den Weg schicken soll, denn zweifelsohne ist das ein kommerzielles Angebot unter deutschem Recht (der Empfänger ist eine hiesige Firma, für die Microsoft das bestimmt nicht umsonst macht). Vielleicht. Aber bevor ich mit einem Scheiß wie dem Telemediengesetz argumentiere, brauche ich noch mehr Verzweiflung.

    Aber gucken wir erstmal, was da „more information“ ist. Ich lasse meinen Browser also auf http://go.microsoft.com/fwlink/?LinkID=526655 los und bekomme ein Redirect auf:

    https://technet.microsoft.com/library/mt661881(v=exchg.150).aspx
    

    Sowohl auf luakit als auch per curl reagiert der Microsoft-Server darauf mit:

    Unable to process request
    

    Gratuliere. Was machen diese Leute eigentlich beruflich?

    Aber wurst, werfe ich halt meinen Browser für wüste, grob privatsphäreverletzende Seiten an – mein Leben ist zu kurz, um den Quatsch, den die Firma da auf die Menschheit loslässt, verstehen zu wollen. Mit dem Browser fürs Grobe kommt dann auch was: eine Seite mit viel Rede von „Defender”. Aber keine nützliche Information, und so probiere ich halt sender.office.com nochmal mit dem Kamikaze-Browser.

    Ergebnis: Our messaging service has experienced a temporary issue, please resubmit your information below.

    Immerhin hat ist auf der Info-Seite etwas, das nach einem Kontakt-Link aussieht. Aber nein, es ist eine Issue-Seite auf github, https://github.com/MicrosoftDocs/feedback/issues, 1630 Open Bugs. Jaklar, da schreibe ich meinen noch dazu. Was glauben diese Leute eigentlich?

    Stattdessen habe ich dann heute vormittag an postmaster@office.com geschrieben, und Mail ist nicht gleich zurückgewiesen worden. Entsprechend hatte ich da noch Hoffnung, Microsoft könnte sich immerhin an diesen Teil der Mail-RFCs halten. Jetzt, 18 Uhr, sieht es nicht danach aus, da kam genau keine Reaktion (im diesem Vergleich, es schmerzt mich, das zuzuzugeben, sieht die Telekom viel besser aus). Und die sender.office.com-Seite ist auch noch kaputt.

    Andererseits: Offensichtlich haben die Exchange-Leute gerade tatsächlich außergewöhnliche Probleme. Vielleicht habe ich einfach nur Pech gehabt und das ist sonst nicht so rekursiver Murks?

    Nachtrag (2021-03-12)

    (um 15:30) Immerhin weist Microsoft Mails an postmaster nicht so rüde ab wie andere Mails. Mein Mailserver schreibt mir gerade, dass er es 24 Stunden lang nicht geschafft hat, die Mail an postmaster@office.com auszuliefern, dass er es aber weiter probieren wird. Es bleibt spannend. Unterdessen findet aber yahoo.de, dass es mit meiner Reputation bergab geht. Oh je. Das sieht nach einem Alptraum mit Verzögerung aus.

    Nachtrag (2021-03-15)

    (mittags) Nee, natürlich ist nichts bei postmaster@office.com einzuliefern. Wo kämen wir da auch hin. Dafür macht inzwischen wenigstens die sender.office.com-Geschichte etwas, wenn auch von der Mail, die das verspricht, innerhalb von 10 Minuten nichts zu sehen ist.

    Nachtrag (2021-03-15)

    (abends) Nach noch einem Versuch mit der sender.office.com-Geschichte kam dann auch eine Mail mit einem Link, und dessen Derefenenzierung hat tatsächlich etwas produziert, das versprach, mein Server werde innerhalb von 30 Minuten von der Blacklist genommen. Schon frech, wie dieser Laden über die Zeit anderer Menschen verfügt. Auf der anderern Seite: jetzt will ich da gar niemandem mehr Mails schreiben. Pfft.

  • Wundern über Schurken

    Vor einer guten Woche habe ich inspiriert von dem, was inzwischen „Masken-Affäre“ heißt[1] gezeigt, wie eine ganz einfache Theorie sehr natürlich erklärt, warum die mittlere Schurkigkeit mit der Hierarchiestufe recht rapide steigt. Für mich eher unerwartet ist diese Masken-Affäre übers Wochenende richtig explodiert, bis hin zum puren Rock'n'Roll, dass Abgeordnete – und dann noch welche von CDU und CSU – wegen Selbstbedienung aus der Fraktion fliegen.

    Noch verdrehter fand ich allerdings heute morgen die Presseschau im Deutschlandfunk:

    • „untergräbt in schwerer Zeit das Vertrauen in die politisch Verantwortlichen” (Südkurier),
    • „trifft das pandemiemüde Land wie ein Donnerschlag” (Neue Osnabrücker Zeitung),
    • „kein kleiner Fehltritt“ (Badische Neueste Nachrichten),
    • „eine moralische Bankrotterklärung“ (Rheinische Post).

    Dieser Chor von Überraschung und Empörung ist deshalb zumindest bizarr, weil alle diese Medien normalerweise feiern, wenn sich „Fleiß und Einfallsreichtum aufs private Fortkommen richten“, wie die Hessische Niedersächsische Allgemeine zum gleichen Thema so schön formuliert – und sich mit dieser zutreffenden Beschreibung des Verhaltens von Nüßlein und Löbel zumindest mal den Preis für den am wenigsten verdrehten Kommentar an diesem Morgen verdient hat.

    Tatsächlich ist Vertreter_innen entsprechender Ideen zumeist mit etwas Mühe die Konzession abzuringen, natürlich sei eine Wirtschaft zu bevorzugen, die in einem gesellschaftlichen Prozess plant, welcher Kram produziert werden soll und wie das mit möglichst wenig Belastung für Mensch („Arbeit“) und Natur hinzukriegen sei. Aber, so ist dann das finale und kaum widerlegbare Argument, das sei nicht zu machen, weil der Mensch schlecht sei und egoistisch und drum, wenn die Wirtschaft nicht auf die Bedürfnisse von ehrgeizigen Schurken ausgerichtet sind, der Hungertod droht.

    Demgegenüber wandele ein moderat regulierter Kapitalismus die Niederträchtigkeit der Einzelnen in den größtmöglichen Nutzen des Staates und in der Folge der Gesellschaft – was unter der Bedingung, dass die Leute, von Mutter Theresa mal abgesehen, durchweg Gesindel sind, oberflächlich plausibel klingt[2].

    Und nun sind genau die Leute, die bei jeder Gelegenheit die Alternativlosigkeit von Markt und Wettbewerb für die Volkswirtschaft aus der Schurkigkeit des Menschen an sich ableiten, empört, weil ihre Vertreter_innen, und zumal die mit dem eklatantesten der-Mensch-ist-schlecht-Programm, bescheißen, so gut sie können. Hm.

    Es war schon lange meine Vermutung, dass die Fähigkeit, rechtzeitig mit den Ableitungen aus den eigenen Ideen aufzuhören, ganz entscheidend ist für die Erhaltung einer, nun ja, konservativen Gesinnung.

    [1]Montag 19:45 gibt es erstaunlicherweise noch keine Wikipedia-Seite „Masken-Affäre“, aber der Relevanzkriterien-Widerstand in der Sache dürfte innerhalb von Stunden bröckeln.
    [2]Jedenfalls solange, bis mensch sich klar macht, dass wir derzeit Jahr um Jahr fossile Kohlenwasserstoffe verbrauchen, die sich innerhalb von einigen 100000 Jahren gebildet haben (sprich: wir durch diese Ressourcen gehen, als hätten wir einige 105 Erden) und trotzdem noch Jahr um Jahr Milliionen von Menschen an Armut sterben.
  • Nerd des Monats: Friedrich Schmiedel

    Titel: Der einzige Artikel von Schmiedel im Internet

    Als großer Fan von der Deutschlandfunk-Sendung Forschung aktuell höre ich natürlich auch (wenn auch mit Verzögerung) jeden Tag die sehr empfehlenswerte Sternzeit.

    In der vom 2. Februar hat (denke ich mal) Dirk Lorenzen daran erinnert, dass vor 90 Jahren, am 2.2.1931, Friedrich Schmiedl die erste Postrakete hat fliegen lassen, und die Geschichte klang so irre, dass ich das mal genauer wissen wollte:

    Die erste Postrakete brachte rund hundert Briefe vom Schöckel, einem Berg bei Graz, ins nur wenige Kilometer entfernte Sankt Radegund. Die Raketen waren ferngesteuert und landeten sanft am Fallschirm – eine Meisterleistung des Ingenieurs.

    [...] Nach dem erfolgreichen Erstflug begann ein regelmäßiger Postraketendienst in der Umgebung von Graz.

    und vor allem:

    Nach dem Raketen-Aus vernichtete Friedrich Schmiedl seine Unterlagen, damit sie nicht für Rüstungszwecke genutzt werden konnten – und er lehnte etliche Stellenangebote von Militärs aus verschiedenen Ländern ab.
    Eingang des Instituts für Weltraumwissenschaften

    Das Grazer Institut für Weltraumwissenschaften ist leider nicht nach Schmiedel, sondern nach dem Entdecker der kosmischen Strahlung, Victor Hess, benannt. Immerhin hat auch er nicht mit den Nazis kollaboriert, ist nach dem Übergang vom Austrofaschismus zur Naziherrschaft in Österreich in die USA geflohen – und er war Lehrer von Schmiedel.

    Der Wikipedia-Artikel zur Raketenpost ist zwar bezüglich des „regelmäßigen Postraketendiestes“ doch etwas skeptischer, und klar ist das aus heutiger Sicht eine ziemlich irre Idee. Aber wahrscheinlich war sie in ihrer Zeit nicht viel irrer als die Idee eines globalen paketvermittelten Computer-Netzwerks in den Anfängen des ARPANet.

    Nach etwas Schmökern im Netz kann ich jedenfalls bestätigen: Schmiedl war ganz klar ein großer Bastler; allein die Raketen so zu starten bzw. zu steuern, dass sie die Briefe tatsächlich so grob dorthin brachten, wo sie hinsollten, ist mit der damaligen Technologie ein halbes Wunder. Und er war bewegt von Interesse an der Sache und natürlich dem Plan, irgendwann mal in den Weltraum zu kommen. Ein Nerd, kein Zweifel.

    Dass er jede Verwicklung in staatliches Töten („Militär“) konsequent und unter erheblichen zumindest materiellen Einbußen abgelehnt hat, macht ihn, so finde ich, noch dazu zu einem Vorbild. Und drum verleihe ich Schmiedl hiermit feierlich den Titel Nerd des Monats.

    Während ich im Netz rumgestöbert habe, um etwas etwas mehr über Schmiedel rauszukriegen (und viel scheint nicht online zu sein), ist mir irgendwann klar geworden, dass ich eine großartige Gelegenheit verpasst habe, Schmiedl näher zu kommen: Ich war nämlich vor ein paar Jahren mal Referent bei einer Konferenz im Institut für Weltraumwissenschaften der österreichischen Akademie der Wissenschaften, das bestimmt nicht ganz zufällig in Graz ist. Leider wusste ich nichts von der Geschichte und habe deshalb nicht im Institut nach Erinnerungen geforscht – er ist ja erst 1994 gestorben, es könnten also durchaus noch Leute dort arbeiten, die ihn gekannt haben – und auch sein Grab nicht besucht. Schade.

    Was mich beim Stöbern noch überrascht hat: Der Wikipedia-Artikel zur Raketenpost schreibt, erst nach einem Unfall, bei dem 1964 zwei Menschen gestorben waren, seien in der Bundesrepublik Experimente mit ernsthafteren Raketen für Privatpersonen verboten worden. So ein Verbot hätte ich genau angesichts der militärischen Interessen, die Schmiedel aus dem Gebiet gedrängt haben, viel früher erwartet.

    Schmiedels Geschichte finde ich jedenfalls inspirierend. Und siehe da: das ADS weist immerhin einen Artikel von ihm nach: Early postal rockets in Austria. Und siehe noch weiter: Das Web Archive hat einen Scan des Artikels (ganzer Band von archive.org; original kommt das vom NASA NRTS, aber deren Interface ist Mist), der vielleicht, wenn du das liest, schon am ADS verlinkt ist.

    Der Artikel ist alles, was ich von Schmiedel selbst have finden können. Daher hier noch ein paar Ausschnitte, die, finde ich, seine Art, visionären Ideenreichtum mit konkreten technischen Lösungen zu verbinden, ganz gut illustrieren:

    [Die hübsche und gar nicht tödliche Passage von P1/Halley im Jahr 1910] marked a new phase in human thought after it became evident that space was not that hostile; one could dare to explore it. [...]

    In the 1920s I started some preliminary rocket experiments towards space flight. But first of all I had to convince my professors, who considered my ideas on space flight as a scientific illusion because of my youthful eagerness to assume that space flight was possible. [...] under the hood of a vaccum pump I fired tiny rockets and tested their efficiency while the air was evacuated.

    [...Mein Stratosphärenballon] was furnished with magnetized steel wires to hold it in a predetermined east-west position [...] Furthermore, the steel wires had to hold an aluminum flag (300 cm x 7 cm) in a certain position relative to the Sun so that it could reflect the Sun's rays to an observation post on Earth. Thus one could pursue the position of the balloon despite its height.

    [...] my stratoballoon carried some silveracide which would explode at a high altitude [...so that] dispersed matter could be moved out of the Earth's gravitational field by solar light pressure.

    [Meine Test-Postrakete] V-5 carried letters where I stated “...it is theoretically possible to deliver mail from Europe to America via rockets within 40 minutes” [...]

    In April 1931 I launched three sounding rockets with home-made recording equipment: a spectrograph with Zeiss prisms, and instruments to record the pressure, height, and vibrations [...] One rocket was constructed like a Greek column with parallel grooves along the longitudinal axis that had been worked into the aluminum casing to prevent rotation during the flight [...] The second rocket, on the other hand, I provided with diagonal grooves in its casing for fast rotation. My purpose was to improve guiding accuracy [...]

    I launched the [V-8] rocket with a selen cell as an optical control which should have set its course toward a lighted balloon [...]

    Later, I destroyed nearly all of my research notes and photographs of rocket launches and proceedings, for fear they might be used by the military.

    Nee, wirklich: der Krieg ist mal ganz definitiv nicht der Vater aller Dinge.

  • Mailman3: "Cannot connect to SMTP server localhost on port 25"

    I've been a fairly happy mailman user for about 20 years, and I ran mailman installations for about a decade in the 2000s.

    Over the last week or so, I've spent more time setting up a mailman3 list off and on than I've spent with mailman guts in all the years before, which includes recovery form one or two bad spam attacks. Welcome to the brave new world of frameworks and microservices.

    Perhaps the following words of warning can help other mailman3 deployers to not waste quite as much time.

    Badly Misleading Error Messages

    Most importantly, whatever you do, never call mailman as root. This will mess up permissions and lead to situations really hard to debug. In particular, the error message from the post's title:

    Cannot connect to SMTP server localhost on port 25
    

    apparently can have many reasons (or so the recipes you find on the net suggest), few of which have anything to do with SMTP, but one clearly is when mailman can't read or write to queue files or templates or whatever and bombs out while trying to submit mail.

    Morale: Don't claim too much when writing error messages in your programs.

    Unfortunately, I've fixed the thing accidentally, so I can't say what exactly broke. The take away still is that, in Debian (other installations' mailman users might be called something else) you run mailman like this:

    sudo -u list mailman
    

    However, I can now say how to go about debugging problems like these, at least when you can afford a bit of mailman unavailability. First, stop the mailman3 daemon, because you want to run the thing in the foreground. Then set a breakpoint in deliver.py by inserting, right after def deliver(mlist, msg, msgdata), something like:

    import pdb; pdb.set_trace()
    

    Assuming Debian packaging, you will find that file in /usr/lib/python3/dist-packages/mailman/mta.

    Of course, you'll now need to talk to the debugger, so you'll have to run mailman in the foreground. To do that, call (perhaps adapting the path):

    sudo -u list /usr/lib/mailman3/bin/master
    

    From somewhere else, send the mail that should make it to the mail server, and you'll be dropped into the python debugger, where you can step until where the thing actually fails. Don't forget to remove the PDB call again, as it will itself cause funky errors when it triggers in the daemonised mailman. Of course, apt reinstall mailman3 will restore the original source, too.

    Template Management Half-Broken

    When I overrode the welcome message for a mailing list, the subscription notifications to the subscribing users came out empty.

    This time, there was at least something halfway sensible in the log:

    requests.exceptions.HTTPError: 404 Client Error: Not Found for url: http://localhost/postorius/api/templates/list/kal.sofo-hd.de/list:user:notice:welcome
    

    Until you read up on the mailman3 system of managing templates (which, roughly, is: store URIs from where to pull them), it's a bit mystifying why mailman should even try this URI. Eventually, one can work out that when you configure these templates from Postorius, it will take the URI at which mailman should see it, Postorius, from POSTORIUS_TEMPLATE_BASE_URL in /etc/mailman/mailman-web.py. This is preconfigured to the localhost URI, which proabably only rarely is right.

    To fix it, change that setting to:

    POSTORIUS_TEMPLATE_BASE_URL = 'http://<your postorious vserver>/postorius/api/templates/'
    

    Of course it'll still not work because the old, wrong, URI is still in mailman's configuration. So, you'll have to go back to the template configuration in Postorius and at least re-save the template. Interestingly, that didn't seem to fix it for me for reasons I've not bothered to fathom. What worked was deleting the template and re-adding it. Sigh.

    As soon as you have more than one template, I expect it's faster to change the URIs directly in mailman's database, which isn't hard, as seen in the next section.

    [Incidentally: does anyone know what the dire warnings in the docs about not using sqlite3 on “production” systems actually are about?]

    Disable Emergency Moderation After Moving

    Basically because I was hoping to get a more controlled migration, I had set one list on the old server to emergency moderation before pulling the config.pck. Don't do that, because at least as of now mailman3 has the notion of emergency moderation but makes it hard to switch it on or off. I eventually resorted to directly touching mailman's config database (if you've configured mailman to use something else than sqlite, the shell command is different, but the query should be the same):

    $ sudo -u list sqlite3 /var/lib/mailman3/data/mailman.db
    [on the sqlite prompt:]
    update mailinglist set emergency=0 where list_id='<your list id>';
    

    Note that <your list id> has a dot instead of the at, so if your list is mylist@example.org, its id is mylist.example.org.

    Oh No, CSRF Token

    The list I cared about most could be joined from an external web site, transparently posting to mailman2's cgi-bin/mailman/subscribe (oh! CGI! How am I missing you in the age of uwsgi and Django!). Looking at its counterpart for modern mailman3, the first thing I noted is that there's a CSRF token in it – if you've not encountered them before, it's a couple of bytes the originating server puts into a web form to prevent what Postorius' authors feels is Cross Site Request Forgery.

    Of course, what I wanted was exactly that: Post to Postorius from a different web site. I don't feel that's forgery, very frankly.

    I didn't see an obvious way to turn it off, and I was a bit curious about mailman3's own http API, so I wrote a few lines of code to do this; the API part itself was straightforward enough, something like:

    result = requests.post(
      getConfig("mailmanAPI")+"/members", {
        'list_id': getConfig("mailmanListname"),
        'subscriber': toSubscribe,
        'pre_verified': False,
        'pre_confirmed': False,
        'pre_approved': True,},
      auth=(getConfig("mailmanAPIUser"),
        getConfig("mailmanAPIPassword")),
      timeout=1)
    

    – but of course it sucks a bit that subscribing someone requires the same privilege level as, say, creating a mailing list or changing its description. And all that just to work around CSRF prevention. Sigh.

    On top of that, I've tried K-SAT on the pre_X booleans to try and see if anything gives me the tried and tested workflow of “let folks enter a mail address, send a confirmation link there, subscribe them when it's being clicked“. No luck. Well, let's hope the pranksters don't hit this server until I figure out how to do this.


    Hm. I think I'm a bit too locked in into mailman to migrate away, but I have to say I wish someone would port mailman2 to python3 and thus let mailman2 hang on essentially forever. It did all a mailing list manager needs to do as far as I am concerned, and while it wasn't pretty with the default browser stylesheets, even now, almost a decade into mailman3, it works a whole lot more smoothly.

    Or perhaps there's a space for a new mailing list manager with a trivially deployable web interface not requiring two separate database connections? Perhaps such a thing exists already?

    Well, summing up, the central migration advice again: Mind the sudo option in

    sudo -u list mailman import21 my-list@example.org config.pck
    
  • Fast alles Schurken

    Die gerade durch die Medien gehende Geschichte von Georg Nüßlein zeichnet, ganz egal, was an Steuerhinterziehung und Bestechung nachher übrig bleibt, jedenfalls das Bild von einem Menschen, der, während rundrum die Kacke am Dampfen ist, erstmal überlegt, wie er da noch den einen oder anderen Euro aus öffentlichen Kassen in seine Taschen wandern lassen kann.

    Die Unverfrorenheit mag verwundern, nicht aber, dass Schurken in die Fraktionsleitung der CSU aufsteigen. Im Gegenteil – seit ich gelegentlich mal mit wichtigen Leuten umgehe, fasziniert mich die Systematik, mit der die mittlere Schurkigkeit von Menschen mit ihrer Stellung in der Hierarchie steil zunimmt: Wo in meiner unmittelbaren Arbeitsumgebung eigentlich die meisten Leute recht nett sind, gibt es unter den Profen schon deutlich weniger Leute mit erkennbarem Herz. Im Rektorat wird es schon richtig eng, und im Wissenschaftsministerium verhalten sich oberhalb der Sekretariate eigentlich alle wie Schurken, egal ob nun früher unter Frankenberg oder jetzt unter Bauer.

    Tatsächlich ist das mehr oder minder zwangsläufig so in Systemen, die nach Wettbewerb befördern. Alles, was es für ein qualitatives Verständnis dieses Umstands braucht, sind zwei Annahmen, die vielleicht etwas holzschnittartig, aber, so würde ich behaupten, schwer zu bestreiten sind.

    1. Es gibt Schurken und Engel
    2. Wenn Schurken gegen Engel kämpfen (na ja, wettbewerben halt), haben die Schurken in der Regel bessere Chancen.

    Die zweite Annahme mag nach dem Konsum hinreichend vieler Hollywood-Filme kontrafaktisch wirken, aber eine gewisse moralische Flexibilität und die Bereitschaft, die Feinde (na ja, Wettbewerber halt) zu tunken und ihnen auch mal ein Bein zu stellen, dürfte unbestreitbar beim Gewinnen helfen.

    Um mal ein Gefühl dafür zu kriegen, was das bedeutet: nehmen wir an, der Vorteil für die Schurken würde sich so auswirken, dass pro Hierarchieebene der Schurkenanteil um 20% steigt, und wir fangen mit 90% Engeln an (das kommt für mein soziales Umfeld schon so in etwa hin, wenn mensch hinreichend großzügig mit dem Engelbegriff umgeht). Als Nerd fange ich beim Zählen mit Null an, das ist also die Ebene 0.

    Auf Ebene 1 sind damit noch 0.9⋅0.8, also 72% der Leute Engel, auf Ebene 2 0.9⋅0.8⋅0.8, als knapp 58% und so fort, in Summe also 0.9⋅0.8n auf Ebene n. Mit diesen Zahlen sind in Hierarchieebene 20 nur noch 1% der Leute Engel, und dieser Befund ist qualitativ robust gegenüber glaubhaften Änderungen in den Anfangszahlen der Engel oder der Vorteile für Schurken.

    Tatsächlich ist das Modell schon mathematisch grob vereinfacht, etwa weil die Chancen für Engel sinken, je mehr Schurken es gibt, ihr Anteil also schneller sinken sollte als hier abgeschätzt. Umgekehrt sind natürlich auch Leute wie Herr Nüßlein nicht immer nur Schurken, sondern haben manchmal (wettbewerbstechnisch) schwache Stunden und verhalten sich wie Engel. Auch Engel ergeben sich dann und wann dem Sachzwang und sind von außen von Schurken nicht zu unterscheiden. Schließlich ist wohl einzuräumen, dass wir alle eher so eine Mischung von Engeln und Schurken sind – wobei das Mischungsverhältnis individuell ganz offensichtlich stark schwankt.

    Eine Simulation

    All das in geschlossene mathematische Ausdrücke zu gießen, ist ein größeres Projekt. Als Computersimulation jedoch sind es nur ein paar Zeilen, und die würde ich hier gerne zur allgemeinen Unterhaltung und Kritik veröffentlichen (und ja, auch die sind unter CC-0).

    Ein Ergebnis vorneweg: in einem aus meiner Sicht recht plausiblen Modell verhält sich die Schurkigkeit (auf der Ordinate; 1 bedeutet, dass alle Leute sich immer wie Schurken verhalten) über der Hierarchiebene (auf der Abszisse, höhere Ebenen rechts) wie folgt (da sind jeweils mehrere Punkte pro Ebene, weil ich das öfter habe laufen lassen):

    Graph: Scatterplot von Schurkigkeit gegen Karriereschritt

    Ergebnis eines Laufs mit einem Schurken-Vorteil von 0.66, mittlere Schurkigkeit über der Hierarchieebene: Im mittleren Management ist demnach zur 75% mit schurkigem Verhalten zu rechnen. Nochmal ein paar Stufen drüber kanns auch mal besser sein. Die große Streuung auf den hohen Hierarchieebenen kommt aus den kleinen Zahlen, die es da noch gibt; in meinen Testläufen fange ich mit 220 (also ungefähr einer Million) Personen an und lasse die 16 Mal Karriere machen; mithin bleiben am Schluss 16 Oberchefs übrig, und da macht ein_e einzige_r Meistens-Engel schon ziemlich was aus.

    Das Programm, das das macht, habe ich Schurken und Engel getauft, sunde.py – und lade zu Experimenten damit ein.

    Zunächst das Grundmodell, in Python formuliert:

    ROGUE_ADVANTAGE = 0.66
    
    _WIN_PROB = {
        (False, False): 0.5,
        (False, True): 1-ROGUE_ADVANTAGE,
        (True, False): ROGUE_ADVANTAGE,
        (True, True): 0.5,}
    
    class Actor:
        def __init__(self, angelicity):
            self.angelicity = angelicity
    
        def is_rogue(self):
            return random.random()>self.angelicity
    
        def wins_against(self, other):
            return _WIN_PROB[self.is_rogue(), other.is_rogue()]>random.random()
    

    Es wird also festgelegt, dass, wenn ein Schurke gegen einen Engel wettbewerbt, der Schurke mit zu 66% gewinnt (und ich sage mal voraus, dass der konkrete Wert hier qualitativ nicht viel ändern wird), während es ansonsten 50/50 ausgeht. Das ist letztlich das, was in _WIN_PROB steht.

    Und dann gibt es das Menschenmodell: Die Person wird, wir befinden uns in gefährlicher Nähe zu Wirtschafts„wissenschaften“, durch einen Parameter bestimmt, nämlich die Engeligkeit (angelicity; das Wort gibts wirklich, meint aber eigentlich nicht wie hier irgendwas wie Unbestechlichkeit). Diese ist die Wahrscheinlichkeit, sich anständig zu verhalten, so, wie das in der is_rogue-Methode gemacht ist: Wenn eine Zufallszahl zwischen 0 und 1 (das Ergebnis von random.random()) großer als die Engeligkeit ist, ist die Person gerade schurkig.

    Das wird dann in der wins_against-Methode verwendet: sie bekommt eine weitere Actor-Instanz, fragt diese, ob sie gerade ein Schurke ist, fragt sich das auch selbst, und schaut dann in _WIN_PROB nach, was das für die Gewinnwahrscheinlichkeit bedeutet. Wieder wird das gegen random.random() verglichen, und das Ergebnis ist, ob self gegen other gewonnen hat.

    Der nächste Schritt ist die Kohorte; die Vorstellung ist mal so ganz in etwa, dass wir einem Abschlussjahrgang bei der Karriere folgen. Für jede Ebene gibt es eine Aufstiegsprüfung, und wer die verliert, fliegt aus dem Spiel. Ja, das ist harscher als die Realität, aber nicht arg viel. Mensch fängt mit vielen Leuten an, und je weiter es in Chef- oder Ministerialetage geht, desto dünner wird die Luft – oder eher, desto kleiner die actor-Menge:

    class Cohort:
        draw = random.random
    
        def __init__(self, init_size):
            self.actors = set(Actor(self.draw())
                for _ in range(init_size))
    
        def run_competition(self):
            new_actors = set()
            for a1, a2 in self.iter_pairs():
                if a1.wins_against(a2):
                    new_actors.add(a1)
                else:
                    new_actors.add(a2)
    
            self.actors = new_actors
    
        def get_meanness(self):
            return 1-sum(a.angelicity
              for a in self.actors)/len(self.actors)
    

    (ich habe eine technische Methode rausgenommen; für den vollen Code vgl. oben).

    Interessant hier ist vor allem das draw-Attribut: Das zieht nämlich Engeligkeiten. In dieser Basisfassung kommen die einfach aus einer Gleichverteilung zwischen 0 und 1, wozu unten noch mehr zu sagen sein wird. run_competition ist der Karriereschritt wie eben beschrieben, und get_meanness gibt die mittlere Schurkigkeit als eins minus der gemittelten Engeligkeit zurück. Diesem Wortspiel konnte ich nicht widerstehen.

    Es gäbe zusätzlich zu meanness noch interessante weitere Metriken, um auszudrücken, wie schlimm das Schurkenproblem jeweils ist, zum Beispiel: Wie groß ist der Anteil der Leute mit Engeligkeit unter 0.5 in der aktuellen Kohorte? Welcher Anteil von Friedrichs (Engeligkeit<0.1) ist übrig, welcher Anteil von Christas (Engeligkeit>0.9)? Aus wie vielen der 10% schurkgisten Personen „wird was“? Aus wie vielen der 10% Engeligsten? Der_die Leser_in ahnt schon, ich wünschte, ich würde noch Programmierkurse für Anfänger_innen geben: das wären lauter nette kleine Hausaufgaben. Andererseits sollte mensch wahrscheinlich gerade in so einem pädagogischen Kontext nicht suggerieren, dieser ganze Metrik-Quatsch sei unbestritten. Hm.

    Nun: Wer sunde.py laufen lässt, bekommt Paare von Zahlen ausgegeben, die jeweils Hierarchiestufe und meanness der Kohorte angeben. Die kann mensch dann in einer Datei sammeln, etwa so:

    $ python3 sunde.py >> results.txt
    $ python3 sunde.py >> results.txt
    

    und so fort. Und das Ganze lässt sich ganz oldschool mit gnuplot darstellen (das hat die Abbildung oben gemacht), z.B. durch:

    plot "results.txt" with dots notitle
    

    auf der gnuplot-Kommandozeile.

    Wenn mir wer ein ipython-Notebook schickt, das etwa durch matplotlib plottet, veröffentliche ich das gerne an dieser Stelle – aber ich persönlich finde shell und vi einfach eine viel angenehmere Umgebung...

    Anfangsverteilungen

    Eine spannende Spielmöglichkeit ist, die Gesellschaft anders zu modellieren, etwa durch eine Gaußverteilung der Engeligkeit, bei der die meisten Leute so zu 50% halb Engel und halb Schurken sind (notabene deckt sich das nicht mit meiner persönlichen Erfahrung, aber probieren kann mensch es ja mal).

    Dazu ersetze ich die draw-Zuweisung in Cohort durch:

    def draw(self):
         return min(1,
             max(0, random.normalvariate(0.5, 0.25)))
    

    Die „zwei Sigma“, also – eine der wichtigeren Faustformeln, die mensch im Kopf haben sollte – 95% der Fälle, liegen hier zwischen 0 und 1. Was drüber und drunter rausguckt, wird auf „immer Engel“ oder „immer Schurke“ abgeschnitten. Es gibt in diesem Modell also immerhin 2.5% Vollzeitschurken. Überraschenderweise sammeln sich die in den ersten 16 Wettbewerben nicht sehr drastisch in den hohen Chargen, eher im Gegenteil:

    Graph: Scatterplot wie oben, nur für gaussverteilte Aktoren

    Deutlich plausibler als die Normalverteilung finde ich in diesem Fall ja eine …

  • Michel Foucault vs. Corona

    Weil ich es neulich von der GEW hatte: ein weiterer Grund, warum ich 20 Jahre, nachdem es hip war, einen Blog angefangen habe, war eine Telecon im April letzten Jahres und die GEW.

    Na gut, es war nicht direkt die Telecon und eigentlich auch gar nicht die GEW.

    Tatsächlich hatte ich damals aber die erste Lehrsituation im engeren Sinne via Telecon, und kurz danach ich eine Epiphanie dazu, warum sich Lehre über Videokonferenzen so scheiße anfühlt. Dazu habe ich dann einen Artikel geschrieben, den ich, ermutigt von GEW-KollegInnen, gerne in der B&W (das ist die monatlich an alle Mitglieder in Baden-Württemberg verschickte Zeitschrift) untergebracht hätte – so brilliant fand ich ihn. Ahem.

    Nun, was soll ich sagen, die Redaktion war skeptisch, um das mal vorsichtig zu sagen. Ich habe da auch einiges Verständnis dafür, denn im letzten Juni gings bestimmt hoch her in Sachen computervermitteltem Unterricht, und da wären Einwürfe, die Videokonferenzen mit wüsten Folterszenen in Verbindung brachten, bestimmt nicht hilfreich gewesen.

    Aber schade fand ich es doch. Ich hatte aber nicht wirklich einen Platz, um sowas geeignet unterzubringen.

    Jetzt habe ich einen. Und damit: „Wider das Panopticon – Michel Foucault und der Unterricht via Videokonferenz“.

  • Wahlkampfkostenhilfe verdient

    Wahlkampfzeiten finde ich immer sehr anstrengend: Wenn diese Wahlplakate wirken, muss ich wirklich auswandern. Früher konnte ich ja wenigstens noch zum UNiMUT-Wahlplakateranking (2009, 2005, 2004, 2002, 2001, 1998) beitragen und so gleichzeitig Depressionen vorbeugen und ein (wirkungsloses) Fanal gegen den Ranking- und Rating-Unfug setzen.

    Seit es das nicht mehr gab, konnte ich nur noch weggucken, so gut ich konnte.

    Diese Misere ein wenig geändert hat die PARTEI, die es tatsächlich fertig gebracht hat, vor allen Alten- und Pflegeheimen hier „Kosten sparen – Pflege abschaffen“ zu plakatieren, und sie hatten ganz offensichtlich schon eine Ahnung, womit die FDP wohl plakatieren wird:

    Wahlplakate

    Kann ich dafür meine Wahlkampfkostenerstattung direkt der PARTEI zukommen lassen? Wählen muss ich, wenn ich denn mal wissen will, welche Bomben die Polizei in Baden-Württemberg nach §54a PolG BaWü [1] beschafft und was sie damit gemacht hat (und das will ich), leider wen anders...

  • Solidarität ist... charmant

    Ein Weißbüschelaffe

    Sucht nach netten Genoss_innen: ein Weißbüschelaffe – Raimond Spekking / CC BY-SA 4.0 (via Wikimedia Commons)

    An sich halte ich ja Soziobiologie für irgendwas zwischen Mumpitz und reaktionärer Zumutung, jedenfalls soweit sie verstanden wird als Versuch, menschliches Verhalten oder gar gesellschaftliche Verhältnisse durch biologische Befunde (oder das, was die jeweiligen Autor_innen dafür halten) zu erklären und in der Folge zu rechtfertigen.

    Hier ist aber eine Geschichte (DOI 10.1126/sciadv.abc8790), die so putzig ist, dass ich mir in der Beziehung etwas mehr Toleranz von mir wünschen würde. Und zwar hat eine Gruppe von Anthropolog_innen um Rahel Brügger aus Zürich das Kommunikationsverhalten von Weißbüschelaffen untersucht (Disclaimer: Nee, ich finde eigentlich nicht, dass mensch Affen in Gefangenschaft halten darf, aber in diesem Fall scheint zumindest das expermimentelle Protokoll halbwegs vertretbar).

    Dabei haben sie zunächst zwei Dialoge zwischen (den Proband_innen unbekannten) Affen aufgenommen: Ein Affenkind hat einen erwachsenen Affen um Futter angebettelt. Im einen Fall hat der erwachsene Affe abgelehnt, im anderen Fall wohl etwas wie „schon recht“ gemurmelt.

    Dann haben sie die Aufnahmen anderen Affen vorgespielt und haben dann geschaut, ob diese lieber weggehen oder lieber nachsehen, wer da geplaudert hat. Und siehe da: Die Tiere wollten viel lieber die netten Affen sehen als die doofen. Bei den netten Affen haben nach gut 10 Sekunden schon die Hälfte der Proband_innen nachgesehen, wer das wohl war, bei den doofen war das mehr so 30 Sekunden. Und bis zum Ende der jeweiligen Versuche nach zwei Minuten wollten immerhin ein Viertel der Proband_innen nichts von den doofen Affen sehen, aben nur ein Zehntel nichts von den netten.

    Moral: Seid nett, und die Leute mögen euch.

    Ja, ok, kann sein, dass die Äffchen nur gehofft haben, dass sie auch Essen kriegen, wenn schon das Kind was bekommen hat. Pfft. Ich sag ja, Soziobiologie stinkt.

    Nachbemerkung 1: Ich habe das auch nicht gleich in Science Advances gefunden (da gäbs andere Journals, die ich im Auge haben sollte), sondern in den Meldungen vom 4.2. des sehr empfehlenswerten Forschung aktuell im Deutschlandfunk.

    Nachbemerkung 2: Ich weiß, Literatur soll mensch nicht erklären, aber die Überschrift ist natürlich ein Einwand gegen einen der Wahlsprüche der Roten Hilfe: „Solidarität ist eine Waffe“. So klasse ich die Rote Hilfe finde, der entschlossene Pazifist in mir hat die Parole nie so recht gemocht. Mensch will ja eigentlich weniger Waffen haben, aber ganz bestimmt mehr Solidarität.

  • A Mail Server on Debian

    After decades of (essentially) using other people's smarthosts to send mail, I have recently needed to run a full-blown, deliver-to-the-world mail server (cf. Das Fürchten lernen; it's in German, though).

    While I had expected this to be a major nightmare, it turns out it's not so bad at all. Therefore I thought I'd write up a little how-to-like thing – perhaps it will help someone to set up their own mail server. Which would be a good thing. Don't leave mail to the bigshots, it's too important for that.

    Preparation

    You'll want to at least skim the exim4 page on the Debian wiki as well as /usr/share/doc/exim4/README.Debian.gz on your box. Don't worry if any of that talks about things you've never heard about at this point and come back here.

    The most important thing to work out in advance is to get your DNS to look attractive to the various spam estimators; I didn't have that (mostly because I moved “secondary” domains first), which caused a lot of headache (that article again is in German).

    How do you look attractive? Well, in your DNS make sure the PTR for your IP is to mail.<your-domain>, and make sure mail.<your-domain> exists and resolves to that IP or a CNAME pointing there. Note that this means that you can forget about running a mail server on a dynamic IP. But then dynamic IPs are a pain anyway.

    Before doing anything else, wait until the TTL of any previous records of this kind has expired. Don't take this lightly, and if you don't unterstand what I've been saying here, read up on DNS in the meantime. You won't have much joy with your mail server without a reasonable grasp of reverse DNS, DNS caching, and MX records.

    Use the opportunity to set the TTL of the MX record(s) for your domain(s) to a few minutes perhaps. Once you have configured your mail system, you can then quickly change where other hosts will deliver their mail for your domain(s) and raise the TTLs again.

    Exim4

    Debian has come with the mail transfer agent (MTA; the mail server proper if you will) exim4 installed by default for a long, long time, and I've been using it on many boxes to feed the smart hosts for as long as I've been using Debian. So, I'll not migrate to something else just because my mail server will talk to the world now. Still, you'll have to dpkg-reconfigure exim4-config. Much of what's being asked by that is well explained in the help texts. Just a few hints:

    • “General type of mail configuration” would obviously be “internet site“.
    • Mail name ought to be <your domain>; if you have multiple domains, choose the one you'd like to see if someone mails without choosing any.
    • Keep the IP addresses to listen on empty – you want other hosts to deliver mail on port 25. Technically, it would be enough to listen only on the address your MX record points to, but that's a complication that's rarely useful.
    • Relaying mail for non-local domains is what you want if you want to be a smart host yourself. You'll pretty certainly want to keep this empty as it's easy to mess it up, and it's easy to configure authenticated SMTP even on clients (also see client connections on avoiding authenticated SMTP on top).
    • Exim also is a mail delivery agent (MDA), i.e., something that will put mail for domains it handles into people's mail boxes. I'll assume below that you select Maildir format in home directory as the delivery method. Maildir is so much cooler than the ancient mboxes, and whoever wants something else can still use .forward or procmail.
    • And do split your configuration into small files. Sure, you'll have to remember to run update-exim4.conf after your edits, but that litte effort will be totally worth it after your next dist-upgrade, when you won't have to merge the (large) exim4 config file manually and figure out what changes you did where.

    DNS Edits

    With this, you should be in business for receiving mail. Hence, make your MX record point to your new mail server. In an NSD zone file (and NSD is my choice for running my DNS server), this could look like:

    <your domain>.  IN MX 10 <your domain>.
    

    (as usual in such files: Don't forget the trailing dots).

    A couple of years ago, it was all the craze to play games with having multiple MX records to fend off spam. It's definitely not worth it any more.

    While I personally think SPF is a really bad idea, some spam filters will regard your mail more kindly if they find an SPF record. So, unless you have stronger reasons to not have one than just “SPF is a bad concept and breaks sane mailing list practices, .forward files and simple mail bouncing”, add a record like this:

    <your domain>.                3600    IN      TXT     "v=spf1" "+mx" "+a" "+ip4:127.0.0.1" "-all"
    

    – where you have to replace the 127.0.0.1 with your IP and perhaps add a similar ip6 clause. What this means: Mail coming from senders in <your domain> ought to originate at the IP(s) given, and when it comes from somewhere else it's fishy. Which is why this breaks good mailing list practices. But forunately most spam filters know that and don't interpret these SPF clauses to narrow-mindedly.

    SSL

    I'm not a huge fan of SSL as a base for cryptography – X.509 alone is scary and a poor defense against state actors –, but since it's 2021, having non-SSL services doesn't look good. Since it's important to look good so people accept your mail, add SSL to your exim installation.

    Unless you can get longer-living, generally-trusted SSL certificates from somewhere else, use letsencrypt certificates. Since (possibly among others) the folks from t-online.de want to see some declaration who is behind a mail server on such a web site, set up a web server for mail.<your-domain> and obtain letsencrypt SSL certificates for them in whatever way you do that.

    Then, in the post-update script of your letsencrypt updater, run something like:

    /bin/cp mail.crt mail.key /etc/exim4/ssl/
    /usr/sbin/service exim4 restart
    

    (which of course assumes that script runs as root or at least with sufficient privileges). /etc/exim4/ssl you'll have to create yourself, and to keep your key material at least a bit secret, do a:

    chown root:Debian-exim /etc/exim4/ssl
    chmod 750 /etc/exim4/ssl
    

    – that way, exim can read it even if it's already dropped its privileges, but ordinary users on your box cannot.

    Then tell exim about your keys. For that, use some file in /etc/exim4/conf.d/main; such files are the main way of configuring the exim4 package in non-trivial ways. I have 00_localmacros, which contains:

    MAIN_TLS_ENABLE = yes
    MAIN_TLS_CERTIFICATE = /etc/exim4/ssl/mail.crt
    MAIN_TLS_PRIVATEKEY = /etc/exim4/ssl/mail.key
    

    – that ought to work for you, too.

    Then, do the usual update-exim4.conf && service exim4 restart, and you should be able to speak SSL with your exim. The easiest way to test this is to install the swaks package (which will come in useful when you want to run authenticated SMTP or similar, too) and then run:

    swaks -a -tls -q HELO -s mail.<your domain> -au test -ap '<>'
    

    This will spit out the dialogue with your mail server and at some point say 220 TLS go ahead or so if things work, some more or less helpful error message if not.

    Aliases

    Exim comes with the most important aliases (e.g., postmaster) pre-configured in /etc/aliases. If you want to accept mail for people not in your /etc/passwd, add them there.

    The way this is set up, exim ignores domains; if you told exim to accept mails for domain1.de and domain2.fi, then mail to both user@domain1.de and user@domain2.fi will end up in /home/user/Maildir (or be rejected if user doesn't exist and there's no alias either). If you want to have domain-specific handling, add a file /etc/exim4/forwards that contains pairs like:

    drjekyll@example.org: mrhyde@otherexample.org
    

    The standard Debian configuration of Exim will not evaluate this file; to make it do that, drop a file wil something like:

    # Route using a global incoming -> outgoing alias file
    
    global_aliases:
      debug_print = "R: global_aliases for $local_part@$domain"
      driver = redirect
      domains = +local_domains
      allow_fail
      allow_defer
      data = ${lookup{$local_part@$domain}lsearch{/etc/exim4/forwards}}
    

    into (say) /etc/exim4/conf.d/router/450_other-aliases. After the usual update-exim4.conf, you should be good to go.

    Client Connections

    This setup only accepts mail for transport locally, and it will only deliver locally. That is: This isn't a smarthost setup yet.

    For delivery from remote systems, we're using ssh because pubkey auth is cool. This even works from an exim on the remote system …

« Seite 16 / 17 »

Letzte Ergänzungen