Automatisiertes Posten in einem Simple Machines Forum

Seit 2002 betreibe ich die Website der Gesellschaft zur Stärkung der Verben (GSV), seit 2007 nutze ich dafür die von Wikipedia bekannte Wiki-Software MediaWiki. Seit 2003 gibt es parallel dazu ein Forum, auch bulletin board genannt. Dieses läuft mit der Forensoftware Simple Machines Forum (SMF), die aber erst seit 2004 so heißt. Als ich das Forum einrichtete, hieß sie noch YaBB SE. Zu den aktiveren Zeiten der GSV fand die meiste Interaktion zwischen den Mitgliedern im Forum statt. Um die Aktivität im Wiki sichtbarer zu machen, richtete ich ein Skript ein, das regelmäßig den RSS-Feed der letzten Änderungen im Wiki abruft und neue Änderungen als Forenpost formatiert in einen dedizierten Faden im Forum postet. Dieses Skript hatte zunächst die Form eines SMF-Mods. Mods sind softwaretechnisch gesehen abenteuerliche Gebilde. Ähnlich wie Plugins fügen sie der Basissoftware (hier: SMF) neue Funktionalität hinzu. Sie tun dies jedoch nicht notwendigerweise über sauber definierte Schnittstellen. Vielmehr können sie, und so war es in diesem Fall, als eine Art Patch in einem SMF-eigenen XML-Format daherkommen, mit dem der PHP-Code von SMF im laufenden Betrieb modifiziert wird. Es ist sogar SMF selbst, das diese Modifikation an sich vornimmt, über den Paketmanager im Administrationsbereich. Neben dem Patch zur Installation enthalten Mods auch einen Patch zur Deinstallation, der unabhängig von ersterem ist. Z.B. sagt der Installationspatch »Suche in Datei X nach dem String ABC und füge direkt danach den String XYZ ein« und der Deinstallationspatch sagt »Suche in Datei X nach dem String XYZ und entferne ihn.« Man kann sich leicht vorstellen, wie chaotisch es werden kann, wenn eine Mod-Autorin es versäumt, die beiden Patches synchron zu halten, wenn SMF ein Update erhält, durch das der String ABC verändert wird, oder wenn zwei Mods benachbarte Codebereiche modifizieren. Aber für viele Jahre funktionierte mein Setup, basierend auf einer selbst modifizierten Version eines nicht mehr gepflegten Mods namens »RSS Feed Poster«, das eine komplette RSS-Parsing-Bibliothek im Code mit sich führte, gut. Erst kürzlich begann es zu holpern, es kam zu Dopplungen bei den Einträgen. Ich vermute, es hatte etwas mit neuen aggressiven Rate-Limiting-Einstellungen seitens meines Webhosters zu tun, durch die das Skript abbrach, bevor es Gelegenheit bekam, in der Datenbank zu vermerken, welche Feed-Einträge es schon bearbeitet hatte. Das nahm ich zum Anlass, endlich einen softwaretechnisch schöneren Zustand herzustellen, indem ich das Mod aufs Altenteil schickte und durch ein Python-Skript ersetzte, das auf dem Server als Cronjob läuft. Das Auslesen des Feeds der letzten Änderungen aus MediaWiki umzusetzen war easy, Feed-Parsing-Bibliotheken für Python gibt es zuhauf, ich entschied mich für feedparser. Interessanter war die Interaktion mit SMF, das leider über kein API verfügt. Mein Skript muss also so tun, als wäre es eine menschliche Benutzerin, die sich über einen Browser in das Forum einloggt und dort einen Beitrag verfasst. Dazu braucht man einen sog. headless web browser. Als ich aus dieser langen Liste einmal einen ausgewählt hatte, der schön leichtgewichtig ist und ein herzaugenmachend cutes API hat, nämlich mechanicalsoup, war auch das ein Vergnügen. Ah, die Freuden der Systempflege!

Das schlechteste Wise-Guys-Konzert aller Zeiten

Neulich träumte ich, ich wäre beim schlechtesten Wise-Guys-Konzert aller Zeiten, kurz vor der Auflösung, die Stimmung der Band im Keller. Das Konzert findet in einem modernen Kirchenbau statt. Ich sitze mit meiner Begleitung auf der Empore. Nach dem lustlos vorgetragenen Opener Grabesstille. Dän sagt: „Sie müssen auch gar nicht klatschen.“ Daraufhin gibt es spärlichsten Applaus. Nach dem zweiten Song ist schon Pause. Ich nutze sie, um mich mit dem Rücken zur Bühne an ein Tischchen zu setzen und einen Zoom-Call zu erledigen. Schon während meines Gesprächs endet die Pause, was ich aber dank meiner hervorragenden Noise-Canceling-Kopfhörer nicht merke und lauthals mitten durch den dritten Song quatsche. Abgesehen von den Bandmitgliedern, die mir, als ich es endlich merke und mich umdrehe, teils säuerliche Blicke zuwerfen, scheint es aber niemanden groß zu stören.

Verbrechen an der Sprache des Verbrechens

Die Verben im Wortfeld „Erpressung“ scheinen einige professionell Schreibende durchaus vor Herausforderungen zu stellen. So las ich vor einiger Zeit in einem Artikel über Hackerangriffe:

The idea of someone hacking your laptop camera, spying on you and then blackmailing you into releasing the footage publicly might sound like a cliche Hollywood plot, but it’s not as impossible as you may think.

Da möchte ich widersprechen: Dieses Szenario klingt überhaupt nicht klischeehaft, sondern im Gegenteil höchst avantgardistisch. Die Hackenden zwingen mich, das Videomaterial selbst zu veröffentlichen? Das ist ein Plot voller Rätsel: Wie wollen sie mich dazu zwingen? Und warum machen sie sich die Mühe, mich heimlich zu filmen, wenn sie mich doch eh zu ihrem Handlanger machen?

Aber solche Filme scheint es tatsächlich zu geben, zumindest laut Moviepilot. Da heißt es über den Film Apostle:

Zu Beginn des 20. Jahrhunderts reist Thomas (Dan Stevens) auf die abgelegene Insel eines geheimnisvollen Kults, um seine Schwester Jennifer (Elen Rhys) zu befreien: Die wurde von Mitgliedern des Kults entführt und soll gegen Lösegeld freigepresst werden.

Der Kult möchte also sich selbst dazu zwingen, Jennifer freizulassen – das hätte sich weder Kafka noch Beckett schöner ausdenken können. Wiederum bleibt im Dunkeln, worin die Drohung besteht, die die Verbrechenden in diesem Fall ja gegen sich selbst aussprechen müssten. Auch erfahren wir nicht, wer wem ein Lösegeld zahlen soll.

Overheard on Stage

You are a Native American burial ground. Act!

Let me thesaurus this.

My awesomeness is gone, but I have a lot of mediocrity left.

When you say, “That’s a possible theory”, what you really mean is, “You’re full of shit, lady.”

D: Was ist brawn eigentlich?
M: Muskelkraft. Oder Schweinskopfsülze, kannste dir aussuchen.

Neue Wörter (6)

ˌAu·then·tiˈme·ter <n.> Gerät, das Authentizität misst
ˈAb·kunst <f.> Abkönnen; Meine Abkunst für ihn hält sich in Grenzen
ˈan|rüch·ten <V. t.> ein Gerücht in Umlauf bringen; Es ist angerüchtet! [Arnymenos]
ˈbild·karg <Adj.> mit Bildern geizend [Martin Z. Schröder]
ˈein·zigˌma·lig <Adj.> nur einmal vorkommend; Ein einzigmaliges Wort bezeichnet man als Hapax legomenon
im·miˈnie·ren <V. i.> unmittelbar bevorstehen; Das Rigorosum imminiert
ˈKlar·kunft <f.> Klarkommen; Wir sind bemüht, bei der Patientin die Klarkunft mit dem Erlebten herbeizuführen
ˌneun·zehnˌhun·dertˌvier·undˈacht·zig <Adj.> an George Orwells Roman „1984“ erinnernd; durch Überwachung und Unfreiheit gekennzeichnet; Dieser Gesetzesentwurf ist ganz schön neunzehnhundertvierundachtzig
obˈsit·zen <V. i.> jemanden obsessiv beschäftigen; Dieser ungelöste Fall obsitzt ihr seit Jahren
ˌpi·o·niˈsie·ren <V. t.> den Weg für etwas bereiten; Prof. Müller hat diese Methode pionisiert [< Pionier]
Plaˈteau·witz <m.> Flachwitz für Gebildete [Anna]
ˌSkro·teˈrie <f.> Das männliche Gegenstück zu „Hysterie“. Beschreibt den emotionalen panikartigen Zustand, wenn z.B. die Alufelge an der Bordsteinkante ratscht, der Schiedsrichter dem gegnerischen Verein einen Elfmeter gönnt, eine Frau in einer „Männerdomäne“ überlegen ist oder Bier und Grillgut ausgehen. [Ute Giesen]
skro·ˈte·risch <Adj.> im Zustand der Skroterie; durch Skroterie verursacht [Ute Giesen]
slash <nebenordnende Konjunktion> und; oder; und/oder; beziehungsweise; Ich habe hier noch Lebkuchen slash Printen [< engl. slash „Schrägstrich“]
ˈstabˌrei·men <V. r.> alliterieren; Garstiger und Gauch stabreimen sich
ˈtiefˌschlür·fend <Adj.> unter Getöse mit einem Trinkhalm das letzte Bisschen Flüssigkeit aus einem Trinkgefäß zu bekommen suchend; Statt einer Antwort begann sie wieder, sich tiefschlürfend mit ihrem Long-Island-Eistee zu beschäftigen
ˈzeit·geˌnie·ßen <V. i.; mit etwas/jmd. ~> zur gleichen Zeit existieren; Zeitgenosse*in sein; Freud zeitgenoss mit Einstein
Zur·verˈnunft·kunft <f.> Zurvernunftkommen; Die Zurvernunftkunft des Ministers lässt noch auf sich warten

2000 ff.

Von ca. 2000 bis ca. 2002 bin ich auf einer Website aktiv, die von einem deutschen Buchverlag als Werbemaßnahme erstellt wurde. Sie ist meiner Erinnerung nach ursrpünglich in ASP geschrieben (zumindest legen das die URLs nahe, später PHP) und besteht u.a. aus einem Chat, einem Bulletin Board und einem Bereich, in dem man in Form von Texten Aufgaben bearbeitet und dafür insgesamt vier Achievements unlocken kann, wie man wohl heute sagen würde. Ich bin von der ersten Stunde an begeistert dabei und gehöre dadurch zu den ersten vier, die das höchste Level erreichen. Wir sind auch bis heute die einzigen geblieben, denn der Verlag stellt die Pflege der Website allmählich ein (später wird sie von einem Verein übernommen). Etwa zur gleichen Zeit kommt es bei einer Diskussion über besagten Chat, seine geheimen Funktionen und den verantwortungsvollen Umgang mit ihnen zu einer Reihe von Missverständnissen, Unterstellungen und Beleidigungen, in deren Folge ich von einigen tonangebenden Mitgliedern der Website geschnitten werde. Ich engagiere mich danach noch ein wenig in dem erwähnten Verein, aber rückblickend ist die Luft schon zu dem Zeitpunkt raus. Ab 2005 lasse ich mich nicht mehr blicken.