Kena nach anderthalb Jahren
Anmerkung: Dieser Beitrag ist zusammengestellt aus mehreren Posts im Fediverse. Für die bessere Auffindbarkeit veröffentliche ich das nachträglich auch hier.
Der Kampf gegen den Steinwächter bei Kena hat mich das Spiel vor anderthalb Jahren beiseitelegen lassen. Jetzt will ich das endlich mal zu einem Ende bringen, aber der Kampf bleibt fordernd. Und unfair, würde ich sagen. Nachdem ich Horizon Zero Dawn gespielt habe, merke ich erst, wie mies die Treffererkennung bei Kena ist. Immerhin, ich nähere mich Stück für Stück dem Ende seines Lebensbalkens immer weiter an. Frustrierend ist es dennoch.
Die Steuerung ist auch … anders. Wird eine Aktion wie Zielen unterbrochen, muss ich den Trigger erneut betätigen, statt dass das Spiel den weiterhin gedrückten Trigger annimmt.
An solchen Details merke ich dann doch den Unterschied zwischen einem polished game und einem, dass weniger polished ist.
Anmerkung: Fortgeführt in einem neuen Thread im Fediverse. Das Datum des Beitrags setze ich auf das des ersten Beitrags des Threads.
Drei Tage ist es jetzt her, dass ich Kena wieder aufgegriffen habe. Nach anderthalb Jahren Pause habe ich natürlich nicht erwartet, sofort wieder auf die ganze Finesse zurückgreifen zu können, die ich zuvor in 28 Stunden Spiel erworben hatte. Mir war klar, dass ich die Steuerung wieder weitgehend erlernen musste: ausweichen, rennen, schnelle Schläge, starke Schläge, Bomben werfen, Pfeile verschießen, Rott anwenden, Rottpfeile, Sprungschläge – das kam alles wieder in Dutzenden verlorener Kämpfe gegen den Steinwächter. Ich habe mich nicht unter Druck gesetzt und das getan, wovon ich wusste, dass es mit der Zeit funktionieren wird: Dem motorischen Zentrum zu vertrauen, wie beim Tanzen, die einzelnen Schritte zu üben, dann sacken zu lassen, indem ich bewusst Pausen einlegte, wenn ich merkte, dass die Luft raus ist. Schlafen, Hirn die Verbindungen aufbauen lassen.
Natürlich habe ich mich geärgert, aber wenn ich Ärger bemerkte, habe ich das eher als Anlass für eine kurze Pause gesehen. Ich habe da mit meinem Bruder immer ein leuchtendes Beispiel vor Augen, wie ich es nicht machen sollte 😄 (er hat meinen Lieblings-Joystick (und mehr) zerstört). Im oben verlinkten Thread habe ich ja schon meine Beobachtungen festgehalten, was mir an Kena weniger gefällt als an Horizon Zero Dawn. Zugegeben, HZD ist eher Action-RPG, während Kena eher Action-Adventure ist.
Für mich äußert sich das darin, dass die Kämpfe bei HZD taktischer sind als bei Kena, die dort dafür mehr Geschick erfordern. Das verfügbare Repertoire bei Kena ist an vielen Stellen im Spiel weitgehend vorgegeben, während es bei HZD vom Charakterfortschritt wie auch von der erworbenen Ausrüstung abhängt. Dennoch stelle ich beim konkreten Spielen mehr Ähnlichkeiten als Unterschiede fest.
Nach meinem aktuellen spielhistorischen Kenntnisstand würde ich sagen, dass sie alle ihre Wurzeln in den Tomb-Raider-Spielen haben. Natürlich waren diese auch "nur" dreidimensionale Versionen früherer Spielkonzepte. Aber die Kombination aus dreidimensionaler Umgebung mit Ausweichbewegungen für Nah- und Fernkampf sowie ein Repertoire an verschiedenen Angriffsoptionen und Interaktion mit der Umwelt unterscheidet sie deutlich von den Firstperson-Shootern. Oder gab es da vor Tomb Raider schon etwas?
Was ich jedenfalls sagen wollte: Es war erfolgreich. Gestern habe ich es erst spät geschafft, den Steinwächter so weit zu erschöpfen, dass er in seine zweite Kampfphase eintritt, heute habe ich ihn fast bei jedem Kampf so weit heruntergekämpft. Wenn ich es heute nicht geschafft hätte, dann auf jeden Fall morgen. Endlich kann ich Kena weiterspielen. Auch wenn es nicht so poliert sein mag, ist es ein bezauberndes Spiel, in dem ich gerne die eine oder andere Stunde verbringen will.
Mass Effect – Gedanken
Fangen wir mal mit meinen ersten Eindrücke zu Mass Effect an, wie ich sie am 18.Februar bei Facebook festgehalten hatte. Das Datum dieses Beitrags setze ich grob auf den Zeitpunkt, an dem ich Horizon Zero Dawn beendet habe, denn das hat mich dazu gebracht, noch einmal über Mass Effect nachzudenken.
Zum Abendessen habe ich #MassEffect mal beendet.
Meine ersten Eindrücke: Neben meinen Squad-Mitgliedern sind die einzigen weiblichen Charaktere, die nicht total unpraktisch bodenlange Kleider tragen, Dr. Michel und die Crewfrau, die mir den Zutritt zur Normandy verweigert.
Die Kleider interpretiere ich auch als modische Übernahme von den Asari, da sie für meinen Geschmack nicht wie das Ergebnis menschlicher modischer Entwicklung aussehen.
Generell scheinen auf der Citadel alle weiblichen Charaktere entweder Menschen oder Asari zu sein. Ich habe keine Tularianer oder Sarianer oder sonst was gesehen, die ich als weiblich gelesen hätte. Volus, Elcor, Hanar – sie wirken alle männlichen Geschlechts. Da es bei den Asari explizit erwähnt wird, dass die Spezies exklusiv weiblich ist, nehme ich an, dass sie geschlechtliche Besonderheiten bei den anderen Völkern erwähnt hätten. Natürlich kann es sein, dass Geschlechter bei anderen Völkern für Menschen nicht erkennbar sind. Das wäre mal ganz nett, hätte aber auch eine Erwähnung wert sein können.
Generell scheinen nur Spielercharaktere und ganz besondere NSC bei den Menschen nicht einem 08/15-Modell zu folgen, wobei viele Frisuren bei den Frauen sehr ähnlich sind. Ja, ich habe mir die männlichen Statisten nicht so genau angesehen, gebe ich zu.
Auffällig finde ich weiterhin, dass es zwar vereinzelte PoC-Menschen gibt –allen voran Captain Anderson–, ansonsten aber die dominante Hautfarbe eher käsig-kaukasisch ist. Bathia, der die Leiche seiner Frau haben wollte, war die andere bemerkenswerte Ausnahme. Und ich glaube, in der Botschafter-Lounge saß noch ein BPoC-Mann.
Die Kombination aus Beinahe-Einheitskleid, Einheitsfrisur und Einheitshautfarbe sorgt für ein, sagen wir mal, recht gleichförmiges Bild (um nicht zu sagen "einfallsloses"). Ja, ich verstehe, man wollte wenig Ressourcen auf Hintergrund-Design verschwenden. Aber selbst bei den Asari gibt es mehr Hauttöne als bei den menschlichen Statisten. Und bei den Kleidern haben sie auch ein wenig an den Farbpaletten gespielt, das hatte doch auch bei der Hautfarbe drin sein können.
Was mich total kirre macht, sind die fetten Lidstriche bei den menschlichen Frauen. Jede einzelne, ob Zivilistin oder Soldatin, läuft mit Lidstrich umher. Natürlich können auch Soldatinnen Make-up tragen, aber dass da keine Varianz drin ist, zeigt mMn, dass da irgendwelche Männer mit eigenwilligen Vorstellungen von weiblichen Charakterdesigns die Entscheidungen getroffen haben.
Ich werde nach diesem Fokus auf die weibliche Repräsentation beim nächsten Mal auf die männliche achten. Meine Erwartungen sind da gering. Vielleicht mehr Charakterdesigns, individuellere Gesichter, aber grundsätzlich öde Outfits in öden Farben mit konventionell männlicher Darstellung.
Ansonsten habe ich bei der Erkundung der Citadel starke Assoziationen zu Knights of the Old Republic. Es wirkt ein wenig so, als wäre die Absicht gewesen, ein Setting zu entwickeln, das die Vielfalt, Fortschrittlichkeit und Atmosphäre von Star Wars KOTOR einfängt, ohne Star Wars zu sein, aber eine eigenständige Geschichte erzählt. Das ist explizit kein Vorwurf. KOTOR war ein großartiges Spiel, das zeigte, dass man mit dem Setting mehr machen kann als LucasFilm gewagt hat. Und die Atmosphäre, der Flavour bietet noch viel mehr Raum.
Natürlich sind auch Parallelen zu Babylon 5 zu sehen, weniger von Star Trek. Der abzusehende Fokus auf die galaktische Geschichte wird früher oder später auch Ähnlichkeiten zu Star Control 2 und bestimmt auch Starflight zeigen, wenn auch die letztgenannten mehr Mut beim Design der Aliens zeigten (wobei "Design" bei einem EGA-Grafik-Spiel aus den 80ern schon eine sehr mutige Wortwahl darstellt). KOTOR meets B5 trifft es im Moment aber noch am besten.
Ich habe im Anschluss fast zwei Monate lang die Mass Effect Legendary Edition gespielt, die aus allen drei Teilen und meines Wissens allen DLC besteht. 207,9 Stunden habe ich damit laut Steam verbracht. Aber ich habe die Spiele nicht weiter bei Facebook kommentiert. Weil ich in meinen ersten Gedanken meinem Gefühl nach recht harsch über manche Aspekt geurteilt habe, will ich das hier noch "schnell" abhandeln.
In Sachen Hautfarben gibt es im Verlauf noch ein bisschen mehr Abwechslung, aber der Fokus bleibt doch auf sehr weißer Haut. Die weiblichen Körper sind weitestgehend identisch, konventionelle Schönheiten. Jack in Mass Effect 2 wirkt dürrer, sehniger, drahtiger, aber richtig rundliche Körper unterschiedlicher Größe gibt es nicht. Abseits der Citadel gibt es auch andere Kleidung für Frauen, sogar schon auf der Citadel. Tatsächlich scheint es für jeden Abschnitt dort andere Outfits zu geben.
Bei den Männern gab es von Anfang an ein wenig mehr Variation bei den Gesichtern, die Figuren wirken aber auch größtenteils identisch. In den Teilen 2 und 3 bessert sich das alles ein wenig.
Repräsentation menschlicher Vielfalt ist bei einem SF-Setting für mich mittlerweile ein neuralgischer Punkt, und da schwächelt Mass Effect in meinen Augen. Aber das ist ja immer noch in bester Tradition der großen Vorbilder, wo Spezies schablonenhaft dargestellt werden.
Immerhin sind die Spezies dann doch nicht alle monolithische Blöcke, sondern es werden Individuen mit eigenen Bedürfnissen, Zielen und Methoden dargestellt, auch wenn sie teilweise eher ungelenk wirken. In Anbetracht des Alters des ersten Teiles finde ich das alles aber noch nachvollziehbar.
Die anderen beiden Teile?
Spielerisch finde ich die gesamte Trilogie großartig, das möchte ich vorweg schreiben. Was es mir schwer macht, Mass Effect als großen Wurf zu bezeichnen, sind die Auswirkungen der Entwicklung der Spiele auf die Story. Dieser Thread bei Reddit führt viele der Probleme auf. Dass am Ende die zahlreichen Entscheidungen nur wenig Auswirkungen auf die Quantität der Enden, sondern nur auf die Qualität haben, finde ich persönlich verschmerzbar. Bei einem Spiel dieser Länge und bei meinem Spiele-Backlog ist meine Motivation zum erneuten Durchspielen eher gering.
Nein, ich hatte eher irgendwann nur noch zerknirscht neue Details über die Story und insbesondere die Hintergrundgeschichte zur Kenntnis genommen. Was mich dann total vom Glauben hat abfallen lassen, war, dass ich nachlesen konnte, wie dieser oder jener Inhalt Teil eines DLC gewesen sein soll, wo ich mich fragte, was der Schwachsinn soll.
Ich habe oben mehrere potentielle Vorbilder genannt. Und Mass Effect hat es leider nicht geschafft, mir eine Hintergrundgeschichte zu liefern, wie einst die von den Leghk, die dem Uhl zu Opfer fielen, oder was das Endurium tatsächlich ist. Oder auch, wie die Ur-Quan begannen der Eternal Doctrine zu folgen, die sie gegen ihre Kohr-Ah-Cousins auf dem Path Of Now And Forever verteidigten. Die Motivation der Reaper bleibt bis zum Ende … ein Witz. Ich würde gerne eine weniger despektierliche Wortwahl finden, aber alles andere, was mir einfällt, fühlt sich unangemessen an. Selbst die Motivation von Schatten und Vorlonen fühlt sich im Rahmen der Story von Babylon 5 nachvollziehbarer an.
Ich glaube den Menschen, die an der Entwicklung beteiligt waren, dass sie andere und auch größere Pläne insbesondere für Mass Effect 3 hatten. In einem Kommentar zu meinem Beitrag, in dem ich mein Durchspielen von Horizon Zero Dawn verkündete, schrieb ich:
Stimmt, MEs Entwicklung fällt ja in die Zeit, wo Monetarisierung durch DLCs so Richtung Fahrt aufnahm. Ich habe ja "nur" die Legendary Edition gespielt, die ja alles enthielt. Und erst nachdem ich die LE gespielt hatte, bzw. nach dem jeweiligen Teil, las ich so ein bisschen, was die einzelnen DLCs eigentlich beinhaltet hatten, und teilweise empfand ich das schon als extrem lächerlich.
Ich erinnere mich an Expansion-Packs von Wing Commander 1 auch WC2 (Secret Mission resp. Special Operations), die ja ihr jeweiliges Hauptspiel um jeweils eine komplette Kampagne und auch neue Schiffe ergänzt haben. Und ich sehe jetzt bei HZD wie sie mit FW für mich zusätzliche 20 bis 30 Stunden an Spiel integriert haben. Dahingehend ist albern, was sie bei ME3 fabriziert haben. Der letzte Proteaner ein DLC? Ernsthaft? Dafür wurden die Spieler*innen zur Kasse gebeten? Erst einmal waren das vielleicht ein bis zwei Stunden zusätzliches Spiel, andererseits war das so elementar, dass das nie ohne diese Inhalte hätte verkauft werden dürfen. Leviathan wiederum wirkte einfach nur drangeklatscht. Und komplett hätte ich auf den Silversun-Strip-Kram verzichten können. Die ganze Jagd auf den Shepherd-Klon hatte irgendwie so die Atmosphäre einer Comedy-Episode in einer ansonsten ernsten Serie. Ja, ich musste zwischendurch lachen, aber es wirkte … unpassend. Ich nehme an, der Silversun Strip diente eher so als Hub für die Multiplayer-Komponente, die ich ja (glücklicherweise) nicht erleben konnte.
Aber bei allem Verständnis für die Schwierigkeit des Studios bei der Entwicklung: Die Story fängt stark an, wird aber schwach und schwächer, je mehr man von ihr erfährt. Das hätte nicht sein müssen. Die Motivation der Reaper ist dämlich und der Grund für ihre Existenz ist Blödsinn.
Ich werde sicher niemandem vorschreiben, dass meine Meinung zur Story die endgültige Wahrheit zu sein hat. Ich werde auch niemanden dafür verurteilen, wenn sie oder er die Story toll findet. Die Mass-Effect-Trilogie ist immer noch eine tolle Spielereihe, die sich sehr geschmeidig spielte (vielleicht abgesehen vom Inventarmanagement im ersten Teil). Atmosphärisch war sie großartig, mir trübte nur die Story den Gesamteindruck.
Spannenderweise hatte ich vor mehr als 10 Jahren schon einmal etwas zu Mass Effect gelesen und auch bei Facebook gepostet: The Problem With Modern Games. Es hat nur am Rande mit meiner Beurteilung zu tun, aber ich finde das Geschriebene durchaus gerechtfertigt.
Bleeding Love
Note: This post is compiled from several posts in the Fediverse. To make it easier to find, I also published it here afterwards. I set the date of the post to the date of the first post of the thread.
I've been to an international Vampire: The Masquerade LARP event the last few days, and I'd been assigned the role of a 3000 year old vampire who only longed to be reunited with his love whom he was forced to betray shortly after meeting her, still a mortal man back then. For 3000 years they avoided a direct encounter, instead putting pawns against each other, causing catastrophic events in their wake.
On the last night of the event, the great reconciliation between the two was scheduled and I put a lot of effort into evoking the emotional landscape of not having met her for three millennia. It was an emotional rollercoaster of pain, guilt and regret, of forgiveness, bliss, happiness – and love. And finally of loss, once again. I jokingly called it the happiest an hour and a half of his undead existence, and my counterpart made it easy for me to act these moments.
I not only heard of "The Bleed" before, I experienced it before, too. Feelings "bleeding" from the game's roles into their actors. But until now it's been mostly negative feelings – anger, aggression, contempt, fear, but also some positively connoted emotions as joy, arousal and the like. These were easy to deal with, to put aside. I knew they would wear off. And it's easy because they dissonate with the real life connections to the fellow actors.
But as I wrote before, I put special effort into evoking the emotions for this role as love was the event's central theme and deemed it worth this effort. And everybody who knows love knows it's a feeling worth every effort. And so I evoked love stalled for 3000 years.
I only met my counterpart for this event during this event. While her being a wonderful person had been helpful for the acting, it doesn't really help getting over the Bleed, and, even worse, the real life connection is practically non-existent.
Now, there's an emotional gap, an emptiness following the bliss of experiencing love as old as history (and nobody can prove me wrong on this one, don't even try). Sure, it will pass, too, but at the moment it weighs heavy on my heart. I'm not even certain what direction to take with this feeling. In contrast to real life love which besides thwarted by death always contains a glimmer of hope this love is completely fictional and thus without any hope. The persons involved don't even exist.
There are options, though. The emotion is real nonetheless and I could direct it at my wonderful wife. But this love was a young man's love, a foolish love, love burning hot, just stalled without hope of maturing beyond this stage. It appears unseemly to put her up with that. Love does not need symmetry but asymmetric love needs consent.
I could break down this feeling and somehow use it to fuel my real life feelings.
Or I could overanalyze this feeling. Maybe I'm not really good at "feeling".
Kontrollverlust
Ich schätze, Kontrolle kann man nur verlieren, wenn man vorher glaubte, sie besessen zu haben.
Ein einfaches Resümee, das Michael Seemann hier zieht. Ich sehe in diesem kurzen und knappen Befund aber ein Phänomen, das auch andere Bereiche umfasst, als mspr0 hier umreißt.
Ich frage mich bei solchen Aussagen ja immer: Habe ich Kontrolle über mein Leben? Über mein Umfeld? Habe ich die Kontrolle verloren? Ich finde die Fragen spannend, weil die aktuellen politischen Entwicklungen in Deutschland oft mit Aussagen einhergehen, dass Menschen empfänden, die Kontrolle über ihr Leben verloren zu haben. Gehe ich in mich, muss ich die Fragen mit "nein", "nein" und "hatte ich nie" beantworten.
Das ist natürlich sehr verallgemeinert. Es gibt Bereiche in meinem Leben, über die ich die Kontrolle habe, über andere habe ich sie nicht. In wiederum anderen Bereichen habe ich gute Chancen, Kontrolle zu erlangen, wenn ich mich engagiere.
Politisch und wirtschaftlich sah ich mich jedoch nie in der Position, Kontrolle zu haben. Ich empfand das auch nie als schlimm, denn Menschen sind soziale Tiere: Wir können uns in Gemeinschaften einbringen, aber keine Kontrolle über sie ausüben. In der Wirtschaft gibt es das Phänomen, dass einzelne Individuen ein Maß an Kontrolle erlangen können, das sicher den Eindruck erwecken kann, tatsächlich Kontrolle zu haben. Und es gibt den Mythos, dass, wer sich nur genug anstrenge, seines eigenen Lebens Herr werden können.
Als Mann mag ich mich da weit aus dem Fenster lehnen, ich wag es aber trotzdem. Ich denke, gerade beim letzten Punkt gibt es eine stark gegenderte Schieflage, denn Kontrolle zu haben gehört zur männlichen Rollenvorstellung, oder scheint es zumindest. Frauen lernen sehr früh, sich in Gewässern zu bewegen und bewegen zu müssen, wo sie keine Kontrolle ausüben können. Vielleicht hat das auch Auswirkungen auf die Berufswahl; ich will den Gedanken später nochmal aufgreifen.
Männer ziehen einen großen Teil ihres Selbstverständnisses daraus, von sich behaupten zu können, sie hätten die Kontrolle – über sich, über ihr Leben, über ihr Umfeld. Zu akzeptieren, dass andere über das eigene Leben entscheiden könnten, wird als unmännlich und sogar emaskulierend empfunden. In vielerlei Hinsicht bedeutet "Kontrolle zu haben", bekannte Umstände navigieren zu können. Unter verändernden Umständen jedoch taugen die eingeübten Navigationsfähigkeiten nicht mehr, es folgt das Gefühl des Kontrollverlusts und im Falle von konventionell männlich denkenden und fühlenden Männern wohl auch das Gefühl eines Angriffs auf die eigene Männlichkeit.
Frauen haben sich, wie ich oben erwähnt habe, früh damit arrangiert, weniger Kontrolle über ihr Umfeld zu haben, und orientieren sich eher im Rahmen des Möglichen der jeweiligen Situation. Frauen definieren ihre Geschlechtsperformance nicht in dem Umfang wie Männer darüber, Kontrolle über ihr Leben zu haben.
Jetzt gibt es eine Partei des Kampfes gegen den empfundenen Kontrollverlust: Es ist die Alternative für Deutschland, die AfD. Die AfD ist das Sammelbecken all derer, die das Gefühl des Kontrollverlustes haben. Die Welt verändert sich, und die AfD macht das Versprechen, die Welt wieder auf den gewohnten Pfad zurückführen, eine gefühlte alte Ordnung wiederherstellen zu können.
Ich bin kein Politwissenschaftler, meine Aussage ist kein Absolutum, sondern nur meine Sichtweise, der Versuch, Sinn zu erzeugen aus dem, was ich sehe.
Die AfD ist natürlich mehr als nur das. Sie ist, was sie vorgibt zu sein, sie ist eine Projektionsfläche für Mitglieder und für Wähler*innen, für Gegner*innen und Beobachter*innen, und somit ist sie auch das, was auf sie projiziert wird.
Aber "Kontrollverlust" ist auch ein Schlagwort, das aus den Reihen von AfD und ihren Sympathisant*innen zu hören ist. Die Flüchtlinge ab 2015, die Alternativlosigkeit in den Merkeljahren, die Klimakrise, die Pandemie – es gibt vieles, was instrumentalisiert werden kann, um einen Kontrollverlust herbeizureden.
Es gibt einen Gendergap bei den Unterstützer*innen der AfD. Es gibt sie auch bei den Wähler*innen der Republikaner. Es gibt ihn in der Parteipräferenz bei den Erstwähler*innen. Jungen und Männer neigen viel stärker dazu, Parteien zu wählen, die die Geschichte von der Kontrolle über das eigene Leben propagieren oder auch den Kontrollverlust beklagen. Die Republikaner fordern die Mauer an der Grenze nach Mexiko, und sie werfen ihren politischen Gegnern immer wieder vor, das Land nicht im Griff zu haben. Law & Order als Form von Kontrolle spricht generell eher Männer an als Frauen.
Kontrolle ist ein Weg, Sicherheit zu erlangen. Die beiden Begriffe sind nicht synonym, das eine folgt nicht aus dem anderen, sie bedingen sich vielleicht nicht einmal gegenseitig, aber sie sind assoziativ dicht beisammen.
Veränderungen verunsichern. Unsicherheit deutet an, keine Kontrolle zu haben.
Wer auch Kontrollverlust verspürt, wer auch die wählt, die Gewohntes zu konservieren versprechen, sind ältere Menschen. Es heißt, man werde konservativer, je älter man wird. Alter bedingt, im Laufe des Lebens mehr Veränderungen in der eigenen Lebenszeit angehäuft zu haben. Der Schock der Veränderungen ist natürlich umso größer, je länger man sein Leben leben konnte, ohne bewusst die Veränderungen um einen herum wahrnehmen zu müssen. Wer ein Leben von 60 Jahren führen konnte, in dem Homosexualität nicht vorzukommen schien, kriegt dann die Veränderungen von 40 bis 50 Jahren mit einem Schlag serviert.
Ich kann mir vorstellen, dass das ein sehr privilegiertes Leben war.
Wer 40 Jahre im Kohleberg- oder -tagebau geschuftet hat, um dann erst lernen zu müssen, dass die eigene Arbeit Anteil am Klimawandel trägt, kann davon auch komplett überfordert sein.
Wenn die Opfer unseres Wohlstandes vor der Tür stehen, und wir uns der Wahrheit stellen müssen, dass wir nicht nur geschaffen, sondern auch ausgebeutet haben, dann sind auch das Erkenntnisse von Jahrzehnten auf wenige Augenblicke komprimiert.
Die Augen vor Veränderungen verschließen zu können, ist ein Privileg.
Es ist wohl nur zu verständlich, wenn sich Menschen um Sicherheit in ihrem Leben bemühen. Und Kontrolle über das Umfeld auszuüben, ist eine Art, diese Sicherheit erlangen zu wollen. Für Frauen sind Männer ein Quell der Unsicherheit, männlich dominierte Arbeitsumfelder ein beständiger Kontrollverlust, der sich leichter in weiblich dominierten Arbeitsumfeldern bewältigen lässt. Safe spaces, von rechter, konservativer und männlicher Seite gerne verspottete Bereiche von lesbischen, schwulen, bisexuellen, trans, queeren und anderen Menschen, um Sicherheit durch Kontrolle des Umfeldes zu erzeugen. Auch People of Color haben sich ihre safe spaces errichtet, um nicht der Unsicherheit durch Weiße Menschen ausgesetzt zu werden.
Für viele Menschen ist Unsicherheit durch Unkontrolle Alltag. Und diejenigen, die den Kontrollverlust am lautesten beklagen, sind für diese Menschen nur allzuoft in der Vergangenheit der Grund für die Unsicherheit.
Ich stimme mspr0 zu. Kontrolle kann man nur verlieren, wenn man vorher glaubte, sie besessen zu haben. Ich möchte Kontrolle aber auch als Selbstlüge, als Illusion betrachten, zumindest für das Gros der Menschen. Unter großem Einsatz von Ressourcen lässt sich vielleicht individuelle Kontrolle erzeugen, aber ich wage zu behaupten, dass das für die meisten Menschen keine realistische Perspektive ist.
Ich persönlich neige dazu, die Zustände der Vergangenheit nicht zu idealisieren, und flexibel und spontan auf veränderte Umstände zu reagieren. Für Segelmetaphern bin ich im Thema nicht tief genug drin, aber Stürmen trotzt man wohl nicht, indem man sich ihnen entgegenstemmt.
Steam Deck, SSD-Upgrade
Anmerkung: Dieser Beitrag ist zusammengestellt aus mehreren Posts im Fediverse. Für die bessere Auffindbarkeit veröffentliche ich das nachträglich auch hier. Das Datum des Beitrags setze ich auf das vom ersten Beitrag des Threads.
Ich habe mir eine WD Black 2230 mit 2 TB fürs Steam Deck gekauft. Alte SSD ausgebaut, in USB-Adapter eingesetzt, Image gezogen. Dann neue SSD in den Adapter, Image wieder zurückschreiben.
Abbruch des Schreibvorgangs nach 200 GB. Wiederholt, Abbruch nach 170 GB, Abbruch nach 60 GB, Abbruch nach 160 GB. Das Device kriegt immer einen neuen Buchstaben, erst sdb, dann sdc, dann nach einem Neustart wieder sda, sdb, sdc. Fehlermeldung: Kein Speicherplatz auf dem Gerät.
Irgendwann steigt eine Komponente also aus, die SSD wird aber wieder erkannt und als neues Device bereitgestellt. Der Schreibvorgang ist dann natürlich hin. Ich vermute, dass entweder die SSD überhitzt (unwahrscheinlich) oder der USB-Controller-Chip, der NVMe auf USB umsetzt.
Ich pipe also die Ausgabe von gunzip
durch pv -L 20M
, bevor es weiter nach dd
geht. Ja, umständlich, aber ich hatte vorher mit pv
und dd
probiert, weil ich da die Ursachen gesucht hatte. Der Parameter -L 20M
begrenzt die Übertragung auf 20 MB/s. Unbegrenzt werden 150 bis 200 MB/s durch den Controller auf die SSD gejagt.
In meinen letzten Versuch mit dd
setze ich also noch pv
. Und wo der Schreibvorgang vorher nach 1000 bis 1500 Sekunden abbrach, läuft er jetzt schon mehr als 2,5 Stunden. Leider darf ich noch mit mindestens der gleichen Laufzeit rechnen. Aber ich habe es ja nicht sonderlich eilig, Hauptsache, die Daten werden vollständig geschrieben.
Als Lehre daraus nehme ich jedenfalls mit, dass es bei diesen USB-Adaptern wohl auch Qualitätsunterschiede gibt.
Es hat fast 7 Stunden gedauert, aber der Schreibvorgang wurde ohne Fehlermeldung beendet. Ich fasse das mal als "fehlerfrei" auf.
In parted
dann die GPT reparieren lassen, und das Ende der Partition 8 auf 100% gesetzt. Ich dachte, das Dateisystem sei btrfs auf der Partition, aber es ist ext4. Also e2fsck -f /dev/sdc8
und im Anschluss resize2fs /dev/sdc
.
Der Zusammenbau erfolgt wie das Auseinandernehmen nach iFixit-Anleitung, aber natürlich in umgekehrter Reihenfolge.
Meine Kinder haben mir zum Geburtstag vor zwei Wochen eine Skin fürs Steam Deck geschenkt. Wenn ich schon am Steam Deck arbeite, klebe ich die Skin dann auch gleich mal auf. Ja, es war nervenaufreibend, mit dem Booten zu warten, bis ich damit fertig wurde.
Aber das Steam Deck bootete ohne zu klagen. MicroSD-Karte vergessen! Da ich eh noch in die Firmware wollte, habe ich das Deck ausgeschaltet und dann erst die Karte eingesetzt.
Jetzt wird deren Inhalt auf den internen Speicher verschoben.
Update fürs Blog: Steam erlaubt aus dem UI heraus, die Spiele zwischen den konfigurierten Bibliotheken hin und her zu schieben. Leider warf das bei mir beim einen oder anderen Spiel Fehlermeldungen, die ich aber nicht weiter recherchiert habe, weil es mir eh zu umständlich war, bei 50 oder 60 Titeln manuell das Verschieben anzustoßen. Ich habe einfach den Ordner steamapps
von der MicroSD-Karte mit dem gleichnamigen Ordner /home/deck/.local/Steam/steamapps
zusammengeführt. Nach einem kurzen Test, ob das so funktioniert, habe ich die MicroSD-Karte formatiert, um sicherzugehen, dass kein Spiel mehr von dort gestartet wird. Großes Lob an Valve, dass man so unkompliziert auch direkt im Dateisystem arbeiten kann.
Fehlercode 0.60 bei Prime Video auf Google Chromecast mit Android-TV
Seit etwas mehr als einer Woche plagte mich der Fehlercode 0.60 bei der "Prime Video"-App auf dem Google Chromecast mit Android TV – ich finde es ja auch furchtbar, das so auszuschreiben, aber das Gerät heißt nun mal so. Da ich meine Lösung letztendlich über ein Apple-TV-Support-Forum fand, wird das aber vermutlich auf verschiedenen Geräten von Roku, Amazon und Herstellern von Smart-TVs ähnlich sein.
Auf die falsche Fährte führte mich, dass am 2024-01-24 ein Update der App stattgefunden hat, was dann vermutlich in den ein, zwei Tagen danach auch auf meinem Chromecast landete. Während meiner Recherche habe ich mich zu sehr auf diese zeitliche Koinzidenz eingeschossen. Tatsächlich lag die Ursache aber in der Aktivierung unserer Glasfaser am 2024-01-25 und vermutlich am Kurzurlaub meiner Familie am 2024-02-03 für ein paar Tage.
Die Glasfaser-Aktivierung war schuld, weil damit erstmalig IPv6 Einzug hielt bei uns. Vorher befand sich das Heimnetz in einem Zustand von "vielleicht funktioniert das ja so". Ich konnte ja nichts belastbar testen, ich konnte keine Erfahrungen sammeln. Hätte ich nicht zu viele Eigenheiten im Heimnetz, wäre das vielleicht auch nie aufgetreten, wer weiß?
Durch IPv6 über die Glasfaser hat mein Netz jetzt jedenfalls auch endlich ein IPv6-Präfix erhalten. Und ich war super erstaunt, dass das praktisch sofort alle Geräte erreichte, die sich dann auch selbst konfiguriert hatten. Für mich ein Rätsel war aber immer noch, wie die Geräte eigentlich herauskriegen, wo das Gateway liegt und wie sie Namen auflösen sollen. Das sollte mir hierbei noch auf die Füße fallen.
Im Nachhinein kann ich mir nicht erklären, warum das nicht sofort aufgefallen ist. Vielleicht haben wir bei Amazon einfach nichts geschaut für ein paar Tage. Oder ich habe das als Fehler auf Amazons Seite betrachtet, denn alle anderen Streamingdienste liefen ja ohne Probleme. Ja, die App "Prime Video" auf dem Google Chromecast mit Android TV macht irgendwas eigenes, und sie macht das nicht auf anderen Android-Geräten – auf meinem Tablet wie auch auf dem Handy konnte ich sie normal benutzen.
Der Kurzurlaub meiner Familie wiederum war dahingehend daran beteiligt, dass ich währenddessen am NAS gearbeitet hatte, wo ich einen dnsmasq in einem systemd-nspawn-Container betreibe, der für DNS und DHCP im Heimnetz zuständig ist. Nach viel hin und her beschloss ich am Ende, um zumindest einen Teil des Umzugs durchzuführen, den alten Container auf dem neuen NAS in Betrieb zu nehmen. Für niemanden überraschend außer mich, der schlicht nicht dran gedacht hat, hat der Container dort natürlich eine neue IPv6 für sich erzeugt, so dass der DNS-Server-Eintrag in den IPv6-Netzwerkeinstellungen der Fritzbox natürlich falsch war. War er vorher vermutlich auch schon, denn es hatte ja schon vorher nicht funktioniert.
Jetzt habe ich auch ein paar Tage Urlaub und habe mich heute früh mal dran gesetzt. Der Forumsbeitrag erwähnte IPv6, und da ich das noch nicht weiter verfolgt hatte, dachte ich mir, dass ich das ja mal machen könnte. Stück für Stück habe ich dann meine Konfiguration im Heimnetz mal abgeklopft.
Die resolv.conf
meines Containers war noch auf die alte IP eingerichtet.
Meine Datei für Namensauflösungs-Overrides warf immer Fehler.
Feb 08 09:34:22 lan-basics1 systemd[1]: Starting dnsmasq - A lightweight DHCP and caching DNS server... Feb 08 09:34:22 lan-basics1 dnsmasq[4698]: bad option at line 1 of /etc/dnsmasq.d/override.hosts Feb 08 09:34:22 lan-basics1 dnsmasq[4698]: FAILED to start up Feb 08 09:34:22 lan-basics1 systemd[1]: dnsmasq.service: Control process exited, code=exited, status=1/FAILURE Feb 08 09:34:22 lan-basics1 systemd[1]: dnsmasq.service: Failed with result 'exit-code'. Feb 08 09:34:22 lan-basics1 systemd[1]: Failed to start dnsmasq - A lightweight DHCP and caching DNS server.
Hintergrund: Auch wenn in der /etc/dnsmasq.conf
steht:
conf-dir=/etc/dnsmasq.d,*.conf
so steht in der /etc/default/dnsmasq
dummerweise:
CONFIG_DIR=/etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new
In der /etc/init.d/dnsmasq
wird die Default-Datei dann gesourcet und CONFIG_DIR
auf der Kommandozeile übergeben, womit es die Option in dnsmasq.conf
überschreibt, falls die Datei dann überhaupt noch ausgewertet wird. Das hat jedenfalls dazu geführt, dass alle Dateien in /etc/dnsmasq.d
eingebunden wurden, die nicht auf .dpkg-dist
, dpkg-old
oder dpkg-new
endeten. Ich habe den Eintrag in der Default-Datei entsprechend geändert, dass er dem in der Konfigurationsdatei entspricht.
Ich vermute, die Debian-Maintainer hatten das irgendwann in der Vergangenheit aus guten Gründen so gehandhabt, aber dann nicht mitbekommen, dass die Upstream-Konfigurationsdatei das bereits erledigt, was die Maintainer erzielen wollten. Ich werde das auch mal melden müssen. Die Korrektur hat jetzt jedenfalls dazu geführt, dass meine ausgelagerten Einstellungen für DNS-Server –google.dns
und quad9.dns
– nicht mehr beide gleichzeitig eingebunden werden. War zwar vorher kein bemerkbares Problem, aber ich erinnere mich, dass ich zurück auf Google musste, weil Quad9 irgendeinen Blödsinn gemacht hat (oder auch nix gemacht hat).
Ich finde solche Probleme bei Konfigurationsdateien ja doch sehr ärgerlich. Ich möchte gerne wissen, welche Dateien die Laufzeit-Konfiguration enthalten. Ich möchte Kontrolle darüber haben. Ich will nicht so überrascht werden.
Auf der anderen Seite, beim Chromecast, konnte ich zumindest feststellen, dass die App funktionierte, wenn ich die Netzwerkkonfiguration von "DHCP" auf "statisch" änderte.
Trivia: Ändert man das, werden die einzelnen Optionen nicht mit den letzten DHCP-Werten befüllt, sondern mit generischen Werten aus dem 192.168.1.1/24-Netz. Und die Eingabe über die Fernbedienung ist nicht sonderlich komfortabel.. Immerhin müssen nur Adresse, Subnetzlänge und Gateway eingegeben werden. Bei den DNS-Servern habe ich schlicht die Vorgaben (Google-DNS) verwendet.
Damit ging es also, was mir die Vermutung nahelegte, dass irgendwas bei der DHCP-Konfiguration schief lief. Aber mehr als die IP-Adressen kann ich der Oberfläche des Chromecast nicht entlocken. Und irgendwie funktionierte ja die Konfiguration. Ich habe wieder einmal in die DHCP-Einstellungen von dnsmasq geschaut, und wieder hatte ich vergessen, dass IPv6 anders konfiguriert wird. Mein Router meldet den IPv6-Clients, welchen DNS-Server sie verwenden sollen. Und da fiel mir dann auf, dass da ein falscher Wert steht. Schwupps ausgetauscht gegen die aktuelle IPv6-Adresse des lan-basics-Containers, und schon läuft es.
Hilfreich zum Überprüfen (Quelle: How can I view IPv6 router advertisements that are being received by my computer for diagnostic purposes?) :
tcpdump -n -i wlp2s0 icmp6 tcpdump -n -i wlp2s0 icmp6 and ip6[40] == 134 radvdump
Interessanter Nebeneffekt: Ich hatte seit Monaten das Gefühl, dass mein Tablet beim Aufruf einer noch nicht cachierten Website eine unangenehm lange Denkpause einlegt. Ich hatte DNS im Verdacht, aber ich fand nichts. Ich denke, das geht jetzt auch flotter. Vermutlich hat auch das Tablet erst einmal DNS per IPv6 aufzulösen versucht, und wenn keine Antwort kam, hat es IPv4 probiert. Das scheint die "Prime Video"-App nicht zu machen.
Mir bleibt nur noch die Frage offen, wie stabil die Selbstkonfiguration bei IPv6 ist. Ich habe für den lan-basics-Container folgendes gesetzt:
IPv6LinkLocalAddressGenerationMode=eui64
Nach dem Wälzen der man-Page (ist schon ein paar Monate her) scheint mir das die einzige Einstellung zu sein, die keine Konflikte erzeugen kann und reproduzierbar die gleiche IPv6-Adresse erzeugt. Aber ist das so?
Strange Behaviour in Container Namespace
Anmerkung: Dieser Beitrag ist zusammengestellt aus mehreren Posts im Fediverse, wo ich gerade bei technischen Beiträgen zu englisch neige in der Hoffnung, dass jemand drauf reagiert. Für die bessere Auffindbarkeit veröffentliche ich das nachträglich auch hier. Das Datum des Beitrags setze ich auf das vom ersten Beitrag des Threads.
I am, by no means, a good C programmer or a good programmer at all. But looking at the #dnsmasq source code causes some severe headaches. Indentation is wildly mixed between tabstops, 8 spaces and 2 spaces. Functions have no meaningful documentation … has anybody some resources to make sense of this code? I'm especially interested in iface_check (network.c:112) as dnsmasq complains about my interface not having an address (dhcp.c:295).
For the moment, I'm tempted to just switch over to Kea + Bind. Or try to get systemd-networkd + systemd-resolved to do what I want.
Background: I'm migrating my NAS to a new NAS (NAS1 → NAS2). On my NAS1 I have a systemd-nspawn lan-basics which provides some LAN basics like DNS and DHCP. My NAS1 only has 1 physical interface so I created a bridge and added it to the nspawn. That worked reasonably well. My NAS2 has 4 physical ports and I wanted to dedicate 1 port for the nspawn. I did not try yet to replicate the complete NAS1 interface config on NAS2 to rule out some other sources for my problems.
On NAS1 I added all nspawns to the bridge interface. On NAS2 my plan was to only expose the nspawns that are required to be exposed. Everything else should be reverse proxied using nginx on the lan-basics nspawn. So, lan-basics requires at least two interfaces: the physical interface and a veth connected to the veth zone on NAS2. The other nspawns only get veth interfaces bound to that zone.
The NAS2 does DHCP using systemd-networkd on the zone interface, vz-zone. lan-basics should provide DNS and DHCP on the physical interface but itself use LLMNR on the veth interface to find the neighbouring nspawns.
At the moment, I think I'll just drop this requirement and use a dedicated nspawn for nginx. But then along came the message "DHCP packet received on enp6s0 which has no address" which is caused by dnsmasq and I can't find out what's wrong.
I could imagine it has something to do with the interface being moved into a different namespace, though. Maybe there's a difference in a veth bound to bridge and a physical interface in a different namespace, even if veth and physical interface both were in the same namespace.
Okay, I did replicate the config but it's still "DHCP packet received on host0 which has no address".
The last difference is the version of dnsmasq: 2.85 vs 2.89. I'll move the nspawn to NAS1 and try it there.
I must emphasize that I really appreciate the networkctl command. Prior to that I always issued systemctl restart systemd-networkd.service and still wasn't sure if it really applies my changes. networkctl reload OTOH seems to always does.
And then there's netplan. The people from Openmediavault, as much as I appreciate their work, decided to use netplan for network management. I just managed to terminate my ssh connections by netplan apply.
Of course, that's just a coincidence as my DHCP server wasn't running and the interfaces were set to DHCP. 😄
Well, I cannot tell for sure why, but the lan-basics nspawn from NAS2 doesn't work on NAS1, too. Because I already wasted^Wlearned so much I'll just copy the old lan-basics to NAS2 and see if it works there as I intended. Actually, I feel bad not using btrfs send|receive for that but it's just too big a hassle to ro-snapshot the subvolumes, send/receive them and the set them rw again. I should suggest automating these steps.
Result 1: The lan-basics1 nspawn bound to a bridge interface works.
Result 2: When providing exclusive access to enp6s0 the nspawn's dnsmasq starts showing "DHCP packet received on enp6s0 which has no address".
I don't know what's happening here but I'd say it's a bug somewhere, either in systemd-nspawn or in dnsmasq.
After a long chat with the nice people of #systemd IRC channel (nice to have it hashtagged if I mention the channel) I conclude that the bug is with dnsmasq. There's no reason it shouldn't work.
I then went on to file a bug report:
I finally found some time for further investigations. Here are my observations.
- NAS1
-
old NAS with systemd-nspawn lan-basics
- NAS2
-
new NAS with systemd-nspawn lan-basics
- lan-basics1
-
NAS1's lan-basics on NAS2
- lan-basics2
-
NAS2's lan-basics on NAS1
- OS NAS1
-
Debian 11
- OS NAS2
-
Debian 12
- OS lan-basics at NAS1
-
Debian 11
- OS lan-basics at NAS2
-
Debian 12
lan-basics at NAS1 is configured to use bridge br0 which enslaved the physical interface enp1s0.
lan-basics at NAS2 started with 1 of 4 interfaces moved into the systemd-nspawn, enp6s0. I removed any additional interfaces of my prior setup as I wanted to reduce the moving parts.
Leaving aside dnsmasq's configuration that worked on lan-basics at NAS1, I made the following attempts:
I copied lan-basics at NAS2 to lan-basics2 at NAS1. As NAS1 only has one interface I added lan-basics2 to the same br0 as lan-basics at NAS1. The result was the same as on NAS2: "DHCP packet received on host0 which has no address" (the veth interface in this configuration is named host0 in the container).
I replicated the network configuration from NAS1: I created a bridge interface br0, enslaved enp6s0 and configured lan-basics at NAS2 to use this bridge interface. Still the same symptoms.
I copied lan-basics at NAS1 to lan-basics1 at NAS2. There I first tried using the same initial config as lan-basics at NAS2 with enp6s0, but lan-basics1 now oddly showed the same symptoms.
I reconfigured the network to enslave enp6s0 under br0 and lan-basics1 to use this bridge interface. It works.
For the moment I stick to setup 4 but there's apparently something wrong with how dnsmasq treats namespaced interfaces. I can switch around setups 3 and 4, always with the same result of dnsmasq complaining about receiving DHCP packets on the interface where it doesn't know its address. Yes, I made sure that dnsmasq is started after the interface got its configuration (stopping dnsmasq, checking the address of the interface, starting dnsmasq).
I haven't tried yet the other network options of systemd-nspawn, e.g. IPVLAN, MACVLAN, VETH with port forwarding etc. Giving a systemd-nspawn container a network interface with exclusive access should be the gold standard of all possible network configurations.
FWIW, the versions of the involved dnsmasq binaries are 2.85 for Debian 11 and 2.89 for Debian 12.
I believe this to be a bug in dnsmasq. I'd gladly help to debug it but I can't do it myself. AFAICT the problem seems to be in iface_check in network.c but I don't know where it goes wrong.
Erste Erfahrungen mit dem E-Rezept
Anmerkung: Dieser Beitrag ist zusammengestellt aus mehreren Posts im Fediverse. Für die bessere Auffindbarkeit veröffentliche ich das nachträglich auch hier. Das Datum des Beitrags setze ich auf das vom ersten Beitrag des Threads.
Über das E-Rezept wurde ja schon viel gemeckert, aber ein Aspekt kam mir noch nicht unter.
Ich muss jedes Quartal meine Versichertenkarte in die Praxis bringen. Meine Medikamente reichen knapp weniger als ein Quartal. Meine regulären Kontrolltermine werden aber auch nicht so gelegt, dass sie mit der Reichweite meiner Medikamente übereinstimmen.
Effektiv habe ich nur ca.jedes 4. Rezept etwas vom e-Rezept, wenn mal ausnahmsweise das neue Rezept ans Ende eines Quartals fällt.
Wichtige Zusatzinfo: Eigentlich könnte ich einfach eine Mail schreiben mit meinem Rezeptwunsch und einen halben Tag später zur Apotheke gehen, um mit meiner Versichertenkarte mein E-Rezept einzulösen.
Wie ich heute aber erfuhr, wird kein E-Rezept ausgestellt, wenn ich im aktuellen Quartal noch nicht meine Karte habe einlesen lassen.
Obendrauf kam, dass meine Praxis mir diese Info erst mitteilte, als ich persönlich vor Ort nach dem Verbleib des E-Rezeptes nachfragte. Aber das ist ja kein Fehler des e-Rezeptes, sondern des Prozesses in meiner Praxis. Ich hoffe, sie kriegen das noch besser hin.
Und ja, ich habe mitbekommen, dass gerade im Gespräch sei, diesen Quartalsturnus zu einem Jahresturnus zu verändern. Meine Unterstützung hat das.
Update: Am Samstag danach, also 2024-02-03, war ich gerade auf dem Rückweg nach Hause, als ich überlegte, noch eine Apotheke aufzusuchen, um endlich mein Rezept einzulösen. Aber nach der obigen Erfahrung würde ich ungerne in der Apotheke stehen ohne Rezept im System. Also dachte ich mir, dass es doch eine Möglichkeit geben müsste zu überprüfen, ob ich jetzt ein E-Rezept habe oder nicht.
Die App erfordert aber eine Anmeldung bei der Krankenversicherung. Gut, dass ich erst vor zwei Monaten die App eingerichtet habe. Schlecht, dass es offensichtlich eine weitere Authentifizierung braucht, weil Rezepte als Daten mit erhöhten Sicherheitsbedarf gelten. Ich kann mich also per Personalausweis plus PIN oder per Gesundheitskarte plus PIN authentifizieren.
Es gehört natürlich nicht viel Fantasie dazu sich vorzustellen, dass ich weder die eine noch die andere PIN auf dem Rückweg nach Hause dabei habe. Bei der Gesundheitskarte ist mir nicht einmal klar, ob ich jemals eine PIN dafür zugesandt bekommen habe. Ich kann mich nur an einen Einmal-Code erinnern, mit dem ich mich initial bei der App anmelden konnte.
War also nix. Hatte eh keine Apotheke gefunden, die nach 14 Uhr noch auf hat und gut gelegen war.
Mir fiel dabei nur auf, dass beide Apps zwingend eine App-PIN festlegen wollten. Mir geht so was ja auf die Nerven, schließlich ist mein Handy bereits gesichert, vermutlich sicherer als die Apps es könnten.
Mastodon als Kommentarsystem für Nikola
Ich bin sicher nicht der erste, der Mastodon als Kommentarsystem einsetzen wollte. Immerhin waren es Blogbeiträge zum Thema, weswegen ich das überhaupt aufgreifen wollte. Aber anscheinend gab es vor mir niemanden, der das für Nikola umgesetzt hat.
Nun hatte ich mir Nikola ja deswegen ausgesucht, weil es in Python geschrieben ist und ich Python als sehr lesbare und einsteigerfreundliche Sprache ansehe. Zu recht, wie ich nach dieser Arbeit erneut feststellen muss.
tl;dr: https://github.com/MasinAD/nikola-mastodoncomments/ ist das Ergebnis.
Für ausgiebige Erklärungen, was da passiert, verweise ich lieber auf meine Inspirationsquellen:
Grob formuliert, funktioniert das so:
Ich schreibe einen Blog-Eintrag.
Ich verlinke in einem Mastodon-Beitrag auf meinen Blog-Eintrag.
Ich notiere die ID meines Mastodon-Beitrags.
Ich füge dem Blog-Beitrag diese ID als zusätzliches Meta-Datum hinzu.
Das Plugin kann dann auf der Basis dieser ID die Antworten auf den Beitrag laden, sofern der Beitrag nicht in der Sichtbarkeit beschränkt ist. Die hohe Kunst ist dann sicher, aus der Antwort der Mastodon-Instanz hübsch aufbereitete Kommentar-Beiträge unterhalb des Blog-Eintrags zu machen. Um den Teil habe ich mich bislang nicht weiter gekümmert, aber nach dem, was ich gesehen habe, werde ich mit der bisherigen Arbeit sicher nicht glücklich sein.
Das Plugin lädt mittels API den Context des Beitrags. Dieser enthält das Attribut descendants
mit Referenzen auf alle Antworten auf die ID. Das ist aber erstmal nur flach und erfordert die Auswertung der jeweiligen Attribute id
und in_reply_to_id
. Derzeit werden nur Antworten auf Kommentare ein Mal eingerückt, aber das geht bestimmt auch noch besser.
Zeitzonen-Spaß mit Nextcloud
Ich habe meine heutige Neuerstellung meines Kontos bei meiner Nextcloud mal genutzt, die Einrichtung der Kalender auf meinen Androiden zu vervollständigen. Mittels "Google Integration" habe ich mein Google Drive sowie Kalender, Kontakte usw. zu Nextcloud synchronisiert.
Android beherrscht von Haus aus kein CalDAV, einen Kalenderstandard, aber es gibt DAVx, was (nicht nur) CalDAV synchronisiert und als Kalender-Anbieter auf dem Androiden auftritt. Zur Anzeige von CalDAV-Kalendern habe ich mir Etar installiert.
Jetzt fiel mir auf, dass zwei morgige Termine kollidierten. Aber auch nur bei Nextcloud. Nach kurzem Grübeln fiel auf, dass ein Termin ein wiederholender Termin ist, der eine Stunde früher als eigentlich eingestellt begann. Das sah schon so aus, als hätte es was mit dem Wechsel von Sommer- zu Winterzeit zu tun. Es stellte sich heraus: Entweder speichert Google generell alle Termine mit UTC als Zeitzone und interpretiert erst bei Anzeige den endgültigen Wert, oder die Google-Integration hat beim Abgleich Mist gebaut und die Zeitzone irgendwie auf UTC gesetzt, den Zeitstempel aber gelassen.
Ich habe zu wenig Ahnung von den beteiligten Komponenten, um tief ins Debugging einzusteigen. Aber ich konnte den Termin immerhin damit "reparieren", dass ich im Nextcloud-Kalender den ersten Termin suchte und dort bei den Uhrzeiten eine Zeitzone (Europe/Berlin) einstellte. Das hat erstmal nur bis Ende Oktober geholfen, bis zum Wechsel von Sommer- auf Winterzeit. Beim ersten, wieder abweichenden Termin habe ich das Prozedere wiederholt. Das hat anscheinend das Problem auch über den nächsten Sommerzeit-Wechsel hinweg gelöst.
Aus irgendeinem Grund waren die Termine auf einem der beiden Androiden dann aber um 7 Stunden verschoben. Ich würde meinen, Nextcloud war dieses Mal unschuldig. Es hat aber ein Weilchen gedauert, bis ich in den allgemeinen Einstellungen von Etar die "Heimatzeitzone" entdeckte, die merkwürdigerweise auf "Chinesische Normalzeit GMT+8" oder so eingestellt war. Nachdem ich das auf "Europäische Normalzeit GMT+1" zurückgestellt hatte, war auch im Kalender wieder alles okay.
Update 2023-12-19 23:58:00
Links gesetzt. Die beteiligten Android-Apps stammen alle aus dem F-Droid-Repository. Der Plan ist es, sukzessive die Abhängigkeit von Google zu reduzieren.