Linksammlung 05/2025
Diese Woche fand ich besonders erwähnenswert:
The Past, Present, and Future of UI at GitHub, hochgespült letzte Woche, ist bemerkenswert für die Behauptung von mobilen UIs als neuen Standard. Bemerkenswert, weil die konstantierte Erwartungshaltung für ein Entwicklerwerkzeug wie Github immer noch unzutreffend wäre.
Es gab einen tollen Geburtstag, 20 Jahre Shopblogger, der meines Wissens genau so lange mit Serendipity betrieben wird.
The Mythical IO-Bound Rails App argumentiert gegen die verbreitete Grundannahme von Rails- bzw Rubywebanwendungen als dominiert von der Wartezeit auf Datenoperationen. Tatsächlich sei die Prozessorauslastung viel gewichtiger, was die Statistiken aber versteckten.
Hard numbers in the Wayland vs X11 input latency discussion belegt mit Statistiken ein Waylandproblem bei der Latenz von Mauszeigerbewegungen.
The Microsoft 365 Copilot launch was a total disaster. Kann man nicht widersprechen.
Distrowatch sieht einen Facebook ban, der Nutzerberichten zufolge generell Linux als Thema umfasst. Vielleicht geht es nur gegen die Seite, was ja auch nicht okay wäre.
Es gab zwei zusammengehörige News zur lange eingestellten Smartwatch Pebbel, einmal mit See the code that powered the Pebble smartwatches die Offenlegung des Quellcodes durch Google, das führte zweitens zu We're bringing Pebble back! Es sollen neue Modelle mit dem befreiten PebbleOS hergestellt werden.
Weniger nett von Google war der Umgang mit Besitzern des Pixel 4a, denn Google Pixel 4a's old firmware is gone, trapping users on the buggy battery update. Interessant dazu auch die Spekulationen, allerdings überzeugend argumentiert am Updateinhalt, was Google mit dem Update erreichen wollte.
DivestOS eingestellt! Alternativen für Nutzer
Die alternative Androiddistribution DivestOS gibt es nicht mehr. Die Entwicklung wurde komplett eingestellt, mittlerweile ist sogar die Webseite vom Netz gegangen. Angekündigt hatte der Entwickler diesen Schritt schon letzten Monat in einer News zum zehnjährigen Jubiläum, ich bezweifel aber, dass viele das mitbekommen hatten.
Das war DivestOS
DivestOS hatte als sogenanntes Custom-ROM einige Alleinstellungsmerkmale. So kam es mit Anwendungen, die extra für das System entworfen worden waren – darunter der Browser Mull, der auch abseits DivestOS genutzt werden konnte und etwas Bekanntheit erlangt hatte. Das Betriebssystem galt als datenschutzfreundlich, wobei gerade das Entfernen unnötiger proprietärer Blobs meines Wissens ein Alleinstellungsmerkmal war. Zudem wurden erstaunlich viele Telefone unterstützt, darunter auch ältere, die bei der Vorlage LineageOS schon lange aus dem Raster gefallen waren. Kein Wunder, dass das alles im Test bei GNU/Linux.ch trotz der unten zu sehenden schmalen Startkonfiguration gut abschnitt.
Oder, um die Webseite des Projekts selbst sprechen zu lassen: Ein hochgradig angepasster Fork von LineageOS mit monatlichen Sicherheitsupdates, automatisch gepatchte Kernel, Wiederverschließen des Bootloaders möglich, gehärtete Systemwebview (der interne Browser für Apps), integrierter Trackerblocker, datenschutzfreundlicher Browser (Mull); mit einem Fokus auf FOSS, Entfernung von proprietären Blobs und vorinstalliertem F-Droid. Ein Robocall-Blocker, ein Tool zum restlosen Entfernen gelöschter Dateien sowie ein Malwarescanner wurden als Extras präsentiert.
Warum der Entwickler genau jetzt aufgehört hat ist unklar. Ein Hinweis ist eben das "der Entwickler": DivestOS war ein Einzelprojekt, soweit ich das mitbekommen habe hatte sich nie ein Team gebildet. Das erklärt den erreichten Erfolg, ein einzelner fähiger Entwickler ohne Abstimmungsbedarf kann viel erreichen. Doch damit war nie jemand da, der die Entwicklung weiterführen könnte. Nach zehn Jahren kann dann schonmal die Energie ausgehen. In einem Thread zur Abschaltung auf Techlore werden letztjährige Geldprobleme erwähnt, andererseits war eine damalige Geldsammelaktion wohl erfolgreich. Er selbst schrieb, frei übersetzt:
Ich habe ein Jahrzehnt an diesem Projekt gearbeitet. Das ist eine lange Zeit und ich brauche einen Neuanfang.
Das kann jeder Entwickler mit langjährigen Projekten wahrscheinlich nachfühlen.
Die Alternativen
Doch bei allem Verständnis für den Einzelentwickler, wer sich von den guten Besprechungen überzeugen ließ steht jetzt leider im Regen. Anwender sollten möglichst schnell zu einem anderen System wechseln. Nicht nur, weil es keine weiteren Sicherheitsupdates geben wird, sondern auch wegen der an der Webseite zu sehenden Abschaltung der Infrastruktur. Die wirkt nämlich sehr überhastet. Da würde es nur zu gut ins Bild passen, dass beispielsweise die Domain ausläuft, über die bisher Updates verteilt wurden. Vielleicht ist das alles auf Clientseite gut genug abgesichert, verlassen wollte ich mich darauf nicht.
Update 02.02.2025: Wie Julian in den Kommentaren erwähnt (Danke!) gibt es mit AXP.OS ein auf DivestOS basierendes Custom-ROM, das die Ansätze von DivestOS fortführen könnte. Bleibt das Projekt nach diesem Umbruch wirklich aktiv wäre das eine weitere Option.
Die Alternativen sind:
- CalyxOS, ein ebenfalls auf Datenschutz und mehr noch auf Sicherheit bedachtes und sehr komfortables Androidsystem, das aber leider nur sehr wenige Smartphones unterstützt.
- iodéOS, eine nochmal Datenschutz versprechende Option aus Frankreich. Auch hier ist die Geräteauswahl begrenzt, aber die längere Unterstützung der Geräte ein erklärtes Ziel. Anders als Calyx hat iode mehr Apps für die Startauswahl ausgewählt.
- /e/, ein lange existierendes ROM, das schon seit Jahren integrierte Alternativen zu den Googleanwendungen (samt Onlinespeicherplatz) anbietet. Unterstützt sehr viele Telefone.
- LineageOS, das große Ursprungsprojekt. Vorteil ist hier auch wieder die Unterstützung vieler Geräte.
CalyxOS, iodéOS und /e/ würde ich LineageOS vorziehen, weil sie wie DivestOS freie Apps wie insbesondere den Appstore F-Droid und microG vorinstallieren und so ein benutzbares Android ausliefern, ohne dass man die proprietären Googledienste nachinstallieren muss. CalyxOS hat dabei den Vorteil, durch ein Verschließen des Bootloaders nach der Installation ein paar Angriffsszenarien auszuschließen – wie DivestOS es auf manchen Telefonen auch konnte. Damit und mit der reduzierten Appauswahl wirkt es auf mich wie die ähnlichste Alternative.
Unterstützt keine der vier Androidvarianten das eigene Gerät bleibt noch der Blick in das XDA-Forum, wo Entwickler oft handgebaute ROMs oder inoffizielle Varianten von LineageOS hochladen. Da setzt man dann aber sehr viel Vertrauen in völlig unbekannte, die Sicherheit des angebotenen ist meist unkontrollierbar. Das Wechseln auf ein moderneres, am besten von CalyxOS unterstützte Telefon würde ich eher empfehlen.
So oder so, meine Webseite sustaphones zeigt die Auswahl an unterstützten Geräten dieser vier ROMs und könnte daher die Suche nach den Optionen für das vorhandene Telefon oder die Suche nach einem neuen Telefon vereinfachen.
Das Ende von DivestOS ist ausgesprochen bedauerlich. Nicht nur für die bisherigen Nutzer, sondern auch alle anderen Interessierten steht nun eine attraktive Option weniger zur Verfügung, in einem sowieso sehr kleinem Feld an Androiddistributionen. Dabei war das Konzept auch einfach gut, für alte Geräte die bestmögliche Androidalternative zu stellen, ohne die Schwächen von einem System ohne Herstellersupport für die proprietären Bestandteile zu verschweigen. Das machte das Netz viel breiter als bei CalyxOS, war innovativer als das etwas gemächliche /e/ bei Dingen wie dem Wiederverschließen des Bootloaders, und schuf Abstand zum als Grundlage genutzten LineageOS durch die (wenigen, aber immerhin) mitgelieferten freien Softwareanwendungen.
Zudem war der Entwickler im direkten Kontakt mit mir, damals zur Einbindung des ROMs in sustaphones, freundlich und hilfsbereit. Es ist gerade im Bereich der Androidvarianten keineswegs eine Selbstverständlichkeit, dass Entwickler überhaupt mit anderen kommunizieren und noch weniger, dass sie sich dabei Mühe geben. So jemand wird fehlen. Es ist daher sehr schade, dass hier keine Strukturen gegriffen haben um das Engagements dieses Entwicklers zu bewahren – vor allem, wenn es nur um Geld ging hätte das lösbar sein sollen.
Trotzdem muss ich die kurze Warnzeit vor der Abschaltung kritisieren. Den Nutzern wurde zu wenig Zeit für einen Umstieg auf eine Alternative gegeben. Klar, Telefone mit DivestOS implodieren jetzt nicht plötzlich. Aber gerade wer kein Sicherheitsupdate verpassen will dürfte nun Stress haben. Da ist es nur gut, dass DivestOS meiner Wahrnehmung nach noch nicht allzu populär geworden war.
Warum Pullrequests nicht immer der passende Entwicklungsmodus sind
Eine von mir lange gehaltene Überzeugung, die ich hier endlich aufschreiben werde: Manchmal profitieren Softwareprojekte davon, wenn die Entwicklungsarbeit nicht per Pullrequests eingesendet wird, sondern wenn die Entwickler direkt den Masterbranch ändern. Es erleichtert das Testen und ermächtigt Entwickler.
Erklärungen vorab
Programmierern dürfte der Großteil in diesem Abschnitt klar sein, aber um so viele mitzunehmen wie möglich und Missverständnisse zu vermeiden:
Bei der Arbeit an Software wird inzwischen fast immer Git als Versionsverwaltung eingesetzt. Im üblichen und meiner Erfahrung nach von Firmen ausschließlich genutzten Nutzungsmodus erstellen Entwickler für ihre Aufgaben immer neue Kopien als Grundlage für ihre Änderungen (Branches, dann Featurebranches genannt), die sie dann als Pullrequest an das Projekt schicken. Ein anderer Entwickler prüft die Änderungen in einem mehr oder weniger ausgiebigen Codereview, danach werden sie dem gemeinsamen Entwicklungsbranch hinzugefügt. Wenn zwischendurch andere Codestellen verändert wurden kann oft genug Git die Änderungen zusammenbringen, gibt es aber einen direkten Konflikt müssen die Entwickler diesen manuell auflösen (und entsprechend testen). Diese Nutzungsweise gibt es in mehreren Varianten, eine davon wird Gitflow genannt, nutzt permanent mehrere Branches (mindestens master und dev) und war lange ziemlich populär.
Beim kürzlich wiederaufgekommenen Trunk-based development – vom Namen her ein Verweis auf Entwicklungsweisen vor Git, so war Trunk der Name für den Hauptbranch beim alten Versionsverwaltungssystem CVS – entfallen laut der verlinkten Definition die mehreren Branches, alles liefe schnell im Master zusammen. Aber es gäbe so wie sich das dort liest immer noch die PRs. Laut anderen Definitionen entfallen die ganz, senden Entwickler ihre Änderungen direkt in den gemeinsamen Masterbranch. Und dann sind wir bei meinem Thema.
Vorteile davon, ohne PRs zu arbeiten
Es sind dabei vor allem zwei Punkte, die ich beim direkten Ändern des Masterbranches positiv sehe.
Und zwar primär (und nur tautologisch klingend), dass Änderungen direkt im Masterbranch landen. Das macht sie sichtbarer: Denn anstatt in einem eigenen Branch auf Reviewer und Tester zu warten, wird in manchen Projekten der neue Code im Masterbranch viel eher wahrgenommen. Nämlich immer dann, wenn einzelne Nutzer nicht auf Releases warten, sondern den Code direkt nutzen. Das machen zum Beispiel bei Serendipity ein paar Nutzer mit ihren Blogs. Die akademische Literatur zu FOSS würde sie als Nutzerchampions bezeichnen: Als Nutzer, deren Engagement über das normale Maß hinausgeht und die so die Entwicklung beeinflussen, ohne notwendigerweise selbst Code zu schreiben. Der Masterbranch (aber eben nur der) wird durch sie ausgiebig getestet und Probleme an die Entwickler gemeldet.
Genauso stolpern auch andere Entwickler direkt über den neuen Code, wenn er direkt im Master landet. Es besteht kaum mehr die Gefahr, dass Arbeit gedoppelt wird oder zwei Entwickler in ihren eigenen Branches inkompatible Systeme bauen. Auch Mergekonflikte werden seltener.
Dieser Vorteil wird nochmal wichtiger, wenn PRs lange liegenbleiben können. Wieder Serendipity als Beispiel, das jQuery-Upgrade wäre garantiert nicht fünf Jahre liegengeblieben wenn sein Ansatz schnell im Master gelandet wäre. Wir hätten so bemerkt, dass die gröbsten vermeintlichen Inkompatibilitäten gar nicht an der Javascriptseite hingen (zumindest ist das mein derzeitiger Stand). Das ist übrigens kein Problem nur mit freien Projekten, auch in Firmen mit proprietärer Software habe ich mehrfach erlebt, dass PRs lange liegenbleiben und teils sogar verrotten, also am Ende nicht mehr gebraucht werden konnten weil sich um sie herum zu viel geändert hatte.
Zweitens ist das direkte Ändernkönnen des Masterbranches eine Ermächtigung des Entwicklers. Es bedeutet, dass das Projekt zumindest soweit auch ihm gehört, dass er nicht jede Änderung von anderen absegnen lassen muss. Wenn mal etwas nicht passt, kann das später immer noch geändert werden – bei einer vertrauensvollen Zusammenarbeit eines fähigen Teams ist das auch für niemanden ein Problem. Mit PRs als notwendigen Zwischenschritt ist stattdessen immer die Zustimmung eines Reviewers notwendig (wobei diese Anforderung formell oder informell sein kann), der einzelne Entwickler daher immer sehr viel abhängiger von anderen. Keine gute Voraussetzung, um sich als (Mit-)Entscheider zu fühlen.
Diese Abhängigkeit ist natürlich wieder besonders problematisch, wenn PRs liegenbleiben können. Das muss ja – anders als beim Beispiel mit jQuery oben – gar nicht an konstatierten Problemen liegen, sondern in vielen FOSS-Projekten ist es schlicht Zeitmangel. Und selten ist ein eigener PR den anderen genau so wichtig wie einem selbst. Dann wird die Abhängigkeit von den anderen zu einer frustrierenden Blockade der Entwicklungsarbeit.
Tatsächlich würde (und tue) ich mischen
Pragmatisch ist das Mischen von beiden Ansätzen, und ich fahre damit schon eine Weile meiner Wahrnehmung nach ganz gut. Während das komplizierte Branchmanagement von Gitflow generell abzulehnen ist, haben Pullrequests klare Vorteile. Und die kann man auch dann nutzen, wenn man sonst direkt in den Masterbranch pusht: Immer, wenn Änderungen Abstimmungsbedarf haben, macht man dann eben doch einen PR auf. Zum Beispiel wenn die zu nutzende Version der Programmiersprache sich ändert und dafür große Codeänderungen nötig sind. Sowas landet in einem PR, damit die anderen Entwickler draufschauen und bei der Migration helfen können.
Und wenn mal solch ein PR zu lange braucht und das die eigene Motivation zu ersticken droht? Dann drückt man eben selbst auf den Mergebutton, akzeptiert den eigenen PR auf eigene Kappe. Die anderen hatten dann wenigstens eine Chance gehabt, vorher Rückmeldung zu geben. Sollten in den späteren Tests die Änderungen Probleme machen kann man so oder so immer noch entscheiden, ob an ihnen weitergefeilt werden sollte oder ob sie zurückzunehmen sind.
Klar: Wenn ein Entwickler von außerhalb des Projekts Änderungen einsenden will – wie es bei FOSS-Projekten hoffentlich häufig geschieht – dann wird es völlig unabhängig von allen Überlegungen der internen Arbeit ein PR, der zu reviewen ist. Will man auch in dem Szenario trotzdem PRs soweit möglich vermeiden kann man so jemanden ja schnell ins eigene Team einladen, das mit dem direkten Zugriff auf den Masterbranch entwickelt sich dann meist nach etwas Zögern ganz natürlich.
Das ganze ist ein Balanceakt zwischen Qualität und Entwicklungsgeschwindigkeit, Motivation des Einzelnen und Einflussnahmemöglichkeiten der Gruppe. Man kann damit auf die Nase fallen, man kann aber auch schmerzhafte Blockaden lösen und Projekte besser am Laufen halten. Wichtig ist bei solchen Freiheiten besonders, dass das Entwicklungsteam sich ziemlich vertraut.
Auch ist es wichtig, dass keiner im Team ist, der vor sich hinstümpert und dauernd unlesbaren Code direkt in den Master pusht, am besten noch ohne erkennbare Commitstruktur. Solches Verhalten würde den Ansatz natürlich direkt kaputtmachen und dann braucht es unbedingt die Struktur von PRs und Codereviews, um das Projekt zu schützen. Wobei solche Entwickler dann meiner Erfahrung nach auch mit Codereviews nicht zu bändigen sind, aber das ist ein Thema für sich.
Eure Erfahrungen würden mich interessieren: Habt ihr selbst schon in Teamprojekten ohne PRs gearbeitet, und hat es gut funktioniert?
Linksammlung 04/2025
Diese Woche fand ich besonders erwähnenswert:
Creation | anyon_e ist der Zusammenschrieb der beeindruckenden Konstruktion eines Open-Source-Laptops.
Erfreulich ist auch A Look Back at 2024: F-Droid's Progress and What’s Coming in 2025. Der freie Appstore für Android scheint gut zu gedeihen.
Moving on from React, a Year Later ist eine weitere Empfehlung für eine Besinnung auf HTML als Grundlage für Webseiten.
Zum Abschluss zwei politische Artikel, zuerst Convicted US Capitol rioter turns down Trump pardon, überraschender Anstand der Aussteigerin.
Und Die Linke und der Nahost-Konflikt: Nun sag, wie hältst du es mit Gaza? Vor allem wegen der traurigen Realität, dass das Zitat „Wir stehen an der Seite des Völkerrechts und der Menschenrechte“ Ausdruck eines Alleinstellungsmerkmals ist.
Bondkommentar: Das Schlusswort zu allen Filmen
Alle Bondfilme sind hier kommentiert, viele eingeordnet und auf meine Art bewertet worden. Es ist Zeit für ein Fazit.
Was bei mir am Ende überwiegt ist Bewunderung für die Modernisierungsfähigkeit der Filmreihe. Zum einen sind die Bondfilme allen Klischees zum Trotz keineswegs alle auf ein festes Schema runterbrechbar. Ein Bondrezept war bei Connery und Moore zwar immer wieder prägend, aber spätestens nach Moore sind die Filme sehr anders geworden und auch bei den beiden klassischen Bonddarstellern gab es einige Experimente. Zweitens ist die Einbindung der jeweiligen aktuellen Themen beachtenswert. Gerade in den Neunzigern fällt das ins Auge, wie mit dem Wegfall der Sowjetunion als Feindbild umgegangen wird und plötzlich Medien, Überwachung und Energiekrisen (und genau, letzteres gab es vorher schonmal) ein Thema werden. Drittens wie sich die Art von Film unterschied die gemacht wurde, jeder Bondfilm hat auf der filmischen Ebene wenig gemeinsam mit den etwas späteren, die entwickelten sich immer sehr schnell gemäß der sonstigen Entwicklung von Kinofilmen. Viertens natürlich der Umgang mit Frauen: Die Bonds von Sean Connery und Roger Moore waren nicht immer, aber immer wieder chauvinistische Schweine. Aber das änderte sich. George Lazenbys Auftritt war dafür die große Vorankündigung, schaut man sich jetzt Daniel Craigs Bond bzw seinen Umgang mit Frauen an ist da ein himmelweiter Unterschied zu den Anfängen.
Ist Bond noch Bond?
Gerade Craigs Bondreihe, also 2006 bis 2021, war nochmal eine besonders enorme Modernisierung. Leider bestätigte sie völlig die Gefahr darin: Den Wegfall der Charakteristika. Ja, da sind noch M und Q und Moneypenny, aber sie sind nicht viel mehr als die alten Namen, kaum noch die alten Rollen. Ja, es gibt schöne Autos und Frauen und verrückte Bösewichte und Handlung an exotischen Orten. Aber sie werden nicht mehr so präsentiert wie zuvor, und gibt es all das heute nicht in vielen Actionfilmen?
Da Bond jetzt knapp 20 Jahre nie einfach Bond sein durfte sehe ich den Kern der Filmreihe als stark beschädigt. Besonders nach No Time to Die mit seinem harten Ende, und obwohl ich den Film als solchen sehr mochte, und obwohl ich gerade die Modernisierungsfähigkeit der Filmreihe lobte – ich sehe die Zukunft nicht. Es wird ein Riesenakt, sich aus der aktuellen Lage herauszumanövrieren. Vielleicht schafft es ein Ryan Gosling, wenn er bewusst charmant spielt und die alten Filme mehr noch Vorlagen als nur Sortiment für einzelne versteckte Rückbezüge werden. Vielleicht war der Auftritt von Ana de Armas im letzten Bond deswegen so komisch, weil es ein Testballon für sie als Bond war – und vielleicht könnte das sogar funktionieren. Ich mochte auch gerade Naomie Harris als Miss Moneypenny, sie hätte ebenfalls in Bonds Fußstapfen treten können, ist jetzt aber wahrscheinlich zu alt dafür. Aber ansonsten schätze ich die Chancen des nächsten Bonds, die Marke in ihrer Größe zu bewahren, für mich selbst überraschenderweise als gering ein. Gut, ich mag mich täuschen – gibt es doch kaum große Marken für Actionfilme, die nicht Marvel sind (und Marvels Kinofilme liegen im Sterben), es ist daher gut möglich, dass der Inhalt der Filme für den weiteren Erfolg recht egal ist.
Mit den modernen Bonds fallen mir noch zwei Dinge ins Auge. Zum einen sind die Filme seit den Nullerjahren sehr viel zugeknöpfter. Schaut man sich Ana de Armas Kleid in No Time to Die an möchte man mir wahrscheinlich widersprechen. Aber welche Rolle der Agent gegenüber Frauen einnimmt, und ob die auch mal riskante Rollen ausfüllen, die es in den 90ern noch gab – auf der Ebene sind die neuen Bondfilme komplett harmlos. Das vermeidet die negativen Seiten, aber dadurch hat die Actionseite der Bondfilme ein Gegengewicht weniger.
Außerdem ist da die Science-Fiction: Denn genau das ist es, wenn Bondfilme auf einmal über Nanobots reden und Laser ganze Komplexe ausmessen können. Im gleichen Atemzug werden dann besonders doofe moderne Klischees bedient, wie das des allmächtigen magischen Hackers. Klar, die typischen Gadgets waren seltenst realistisch und mit Moonraker gab es schon früh einen ganzen SciFi-Bondfilm. Aber das war eben damals schon Schrott. Der wiederholte Sprung in die Science-Fiction fühlt sich jedes mal sehr unpassend an, die betroffenen Filme entwertete er bisher immer ein ganzes Stück.
Schließlich, ohne es gemessen zu haben: Ich empfand das musikalische Bondmotiv in den Craig-Bonds als unterbenutzt. Während das früher oft die Actionszenen untermalte, war es jetzt seltener da und wenn, dann auch noch meist verkopft eingebunden in orchestrale Hintergrundmusik. Ein großer Gegensatz beispielsweise zu GoldenEye, mit dem industriellen Pochen samt Bondmotiv, das ich direkt hören kann wenn ich daran denke. Eine Alternative dazu wurde auch nicht platziert. So bauten diese Filme musikalisch keinen Wiedererkennungswert auf, der jetzt in der Zukunft entsprechend fehlen könnte.
Die Rangliste
Doch genug der Spekulation. Egal was die Zukunft bringt, die existierenden Filme sind gewaltig. Da nun alle Bonds besprochen wurden sei auch noch kurz meine Rangliste erwähnt, welche der Filme ich am besten fand:
- GoldenEye, mit der perfekten Mischung aus Action und Bondklischees ist er für mich der beste Vertreter der Reihe.
- Casino Royale folgt knapp dahinter. Er kann nicht der beste Bond sein, weil er dafür zu sehr damit bricht wie ein Bondfilm vorher war. Aber es ist für sich ein toller Film.
- Never say Never again, Sean Connery in seinem letzten Auftritt als Bond verkörperte zu gut den klassischen Bond um einen der anderen Filme zu wählen, dazu gab es die tollen anderen Schauspieler.
On Her Majesty's Secret Service gehört aber eigentlich auch auf die Liste mit einem Ehrenplatz, als der alternative und erst verschmähte Bond, der dann doch die Reihe prägte.
Meine empfohlene Nachholreihenfolge
Als Abschluss will ich eine Liste der Bondfilme geben, die ich in dieser Reihenfolge empfehlen würde, wollte ich jemanden in komprimierter Form die Essenz der Bondreihe zeigen. Denn dafür eignet sich alleine die Rangliste oben meiner Meinung nach nicht so gut, die drei besten Vertreter eine Reihe sind ja nicht die drei typischsten.
Starten würde ich stattdessen mit The Man with the Golden Gun. Roger Moore war zwar nicht der erste Bond, aber lieferte mit diesem einen ziemlich kompletten Bondfilm ab. Er hat ein paar campige Elemente, aber ansonsten ein gut funktionierendes Drehbuch und eine recht spannende Handlung, in der damaligen politischen Situation geeerdet, die gleichzeitig das charakteristische Bondrezept voll präsentiert. Und dass der Film gar nicht so toll ist macht ihn eben auch repräsentativ, klar besser waren die anderen alten Bonds ja auch nicht. Es ist sogar die Frauenfeindlichkeit der Vorgänger (bzw Moores Anfangszeit) voll zu sehen, schwer erträglich heute.
Folgen sollte Never say Never again. Der gealterte Sean Connery gibt einen besonders tollen Agenten ab, der sehr gut zeigt, wo der Reiz dieses Charakters überhaupt herrührt. Die Handlung in diesem seinen letzten Auftritt mischt dabei gelungen Elemente aus vorherigen Bondfilmen, die damit auch kennengelernt worden wären. Dazu zeigen Klaus Maria Brandauer und Kim Basinger in Ausnahmerollen, wie fantastisch ein Bond-Bösewicht und ein Bondgirl sein können – sie setzten definitiv den Maßstab für alles folgende.
Danach On Her Majesty's Secret Service. Auch wenn dieser Lazenby-Bond eigentlich älter ist, zeigt er doch eine Alternative zu Bond wie man ihn damals kannte und noch viele Jahre kennen sollte. Das dürfte ohne die Ursprungsversion gesehen zu haben aber kaum verfangen, daher die Platzierung nach je einem Film von Moore und Connery.
Licence to Kill wäre ein zweiter Ausreißer. Timothy Dalton spielte Bond hier bereits sehr anders, bekam aber vor allem eine ganz anderere Art Drehbuch vorgesetzt. Voller persönlicher Motivation und mit viel Action zeigt auch dieser Bondfilm, wie das alte Konzept gelungen durchbrochen werden kann. Etwas, was in diesem Jahrtausends immer wieder versucht wurde, meist vergeblich.
GoldenEye danach wäre das Ende der Ausreißer, stattdessen der essentielle 90er-Bond, mindestens. Fantastische Musikuntermalung, die beeindruckendsten Stunts der Filmreihe; auch ansonsten tolle Actionszenen, Bondgirls und Bösewichte. Pierce Brosnan spielte noch dazu diese Rolle mit einem solchen Charme und gleichzeitig so cool, dass er zumindest in diesem Film null hinter Connery und Moore zurückbleibt. Tatsächlich, sollte ich nur einen einzigen Film wählen, es wäre dieser hier. Nur schade, dass Brosnans Folgefilme dann nie wieder so gut waren.
Und schließen… würde ich mit Casino Royale. Aber es ist eine knappe Entscheidung. No Time to Die ist ebenfalls gelungen und ein guter Schlusspunkt für Bond insgesamt. Aber Casino Royale hat den Vorteil, auch ohne Kenntnis der Vorgängerfilme verständlich zu sein – war es doch der erste Bond mit Daniel Craig und ein Neubeginn bei Null. Dabei zeichnet dieser sehr atypische Bond genau durch diese seine Andersartigkeit, wie mit den Nullerjahren der Charakter bzw der alte Trott gebrochen werden sollte und wie anders mit den Bondklischees umgegangen wurde. Gleichzeitig ist es einfach ein spannender Agentenfilm mit tollen Actionszenen und Schauspielern und steht dabei für eine Filmqualität, die kein andere Serienvertreter rein als Film betrachtet erreichte.
Und damit sind wir am Ende des letzten Artikels dieser Reihe. Zumindest bis ein neuer Bondfilm veröffentlicht wird, vielleicht mache ich dann ein Update. Es war ein besonderes Projekt für diesen Blog, ein Experiment, aber ich zumindest hatte Spaß hierdran. Ich hoffe das ging ein paar von euch genauso.
Mass Effects Scheitern als Vorzeichen des Scheiterns von Bioware
Ein letzter Gedanke zu Mass Effect bzw der Legendary Edition von Mass Effect 3, damit ich das Thema endgültig abhaken kann. Ich glaube, dass man eine rote Linie vom verhunzten Trilogieende zu Biowares derzeitigem Zustand ziehen kann. Wobei diese Linie zeigen würde, dass man die Firma damals völlig falsch wahrnahm.
Wahrnehmung damals und heute
Mit dem ersten Mass Effect hatte Bioware einen Geniestreich gelandet. Ihr Rollenspielkonzept (für damals) filmreif zu inszenieren, es mit einem Shooter zu kombinieren, Entscheidungen und Konsequenzen noch weiter zu betonen und dabei eine einzigartige SciFi-Welt zu zeichnen, in der dann auch noch toll geschriebene Begleiter auftauchten – es war eine allzu verlockende Kombination. Und sie kam von Bioware, was damals als der beste Rollenspielhersteller galt, durch Baldur's Gate 2 und angesichts des gelungenen Sprungs zu 3D mit KotOR. Wenn diese Firma von tiefgreifenden Konsequenzen und einer epischen Trilogie redete, dann glaubte man ihr das. Vor allem, wenn man all die Stärken dieser Spiele sah, die unbestreitbar vorhanden sind. Und genau deswegen war die Enttäuschung so stark, als Mass Effect 3 (und in der Retrospektive auf der Ebene auch Mass Effect 2) diese Versprechungen nicht erfüllen konnte.
Heute schaut man sich diese Spiele an und merkt: Sie müssen von einem völlig überforderten Studio gekommen sein. Denn überall merkt man die Arbeitsvermeidungsmaßnahmen. Besonders in Mass Effect 1 ist das überdeutlich, dem dadurch schwächsten der Spiele, mit all den Recyclinginhalten in den sich dadurch sehr ziehenden Nebenmissionen. Aber auch in den beiden Folgespielen ist es teils erdrückend sichtbar, z.B. bei Kaidan und Ashley: Eine Schlüsselstelle in ME1, als nur einer der beiden überleben kann; in ME2 gibt es dann aber nur eine einzige Rolle für beide – soll heißen, wer überlebt ändert gar nichts. Übel auch, denn der originale Charakter des Überlebenden passt dann eventuell null zum neuen Charakter der Person. Und dann sieht man zusätzlich, wie kurz die Entwicklungszeit dieser Spiele war, liest vom Crunch als Biowares Entwicklungsmethode und plötzlich wird alles klar: Da war kein böser Wille. Es war Unfähigkeit, mit den arg begrenzten vorhandenen Ressourcen etwas wirklich großartiges abzuliefern, obwohl die Grundlage da gewesen wäre.
Ein kaputtes Studio…
Und auch das passt dann: Bei der Diskussion um die Spiele und ihre Linearität wurde in der Spielepresse immer wieder behauptet, Studios könnten keine echten Konsequenzen entwerfen; Inhalte zu bauen die dann nicht alle Spieler sehen sei viel zu aufwändig. Das war in dieser Allgemeinheit erzürnend da kompletter Unsinn – hatte doch mit Baldur's Gate 2 sogar ein Spiel von Bioware viele solcher optionalen Inhalte; zeitgenössisch brillierte Alpha Protocol dank ihnen; die Witcherreihe zeigte ihre Möglichkeit vor, während und nach der Mass-Effect-Trilogie; Baldur's Gate 3 (nicht mehr von Bioware stammend) wäre ein modernes Beispiel für ihre Machbarkeit. Aber offensichtlich konnte das Bioware dieser Zeit es nicht. Von ihnen wird diese Behauptung kommen, für das Studio wird sie wahr gewesen sein. Bioware konnte nicht mehr als absolute Linearität (und immerhin Unterschiede bei initial wichtig wirkenden Details), alles andere war für die Firma nicht zu stemmen.
Denn ein Studio, das trotz höchsten Erwartungen sich nur zwei Jahre für ein riesiges Trilogieende nimmt, ist wahnsinnig, in furchtbarer Not oder unter der Fuchtel des Publishers. Und ein solches Studio hat dann nicht die Fähigkeit und Willensstärke, eine große Trilogie sauber zu Ende zu bringen und wirkliche Konsequenzen in sein Spiel einzubauen. Dazu passt dann auch die Heuchelei, einerseits eine Geschichte um den größten vorstellbaren Genozid zu stricken und davon viel zu zeigen, andererseits (nach Teil 1) vor jeglicher Nacktheit zurückzuschrecken. Auch der Umgang mit den DLCs passt dann: Damals wirkte es wie die absolute Verkommenheit einer doch so gesunden Firma, wichtige Inhalte offensichtlich aus dem Spiel zu nehmen und nur separat gegen Geld abzuliefern. Bioware wie man es damals sah konnte sowas nicht nötig haben. Heute wirkt das anders, muss Bioware so schwach und kaputt gewesen sein und die sich um Spieler kehrenden Entwickler so entmündigt, dass für die Firma ihre Fans dergestalt auszunehmen alternativlos war. Am deutlichsten wird die beispiellose Durchsetzungsschwäche beim enorm selbstschädigenden Verhalten, nur aufgrund einer Vorgabe von Electronics Arts dem kostenlosen DLC für ein besseres Ende offiziell ein Ablaufsdatum zu geben (ohne das je einhalten zu wollen).
…das entsprechend scheiterte
Genau solch ein überfordertes Studio zerbricht dann so, wie wir es später gesehen haben. Und schafft es, mit ihren drei letzten Spielen auf jeweils eigene Art grandios zu scheitern: Bei Mass Effect Andromeda an gravierenden Qualitätsproblemen, die auszumerzen nicht die Zeit gegeben wurde. Bei Anthem an einem völlig falschen Konzept eines Lootershooters plus Crunch als Entwicklungsmethode, ohne auch nur den Hauch früherer Stärken einzubringen, also dem Bilderbuchbeispiel von Publisherdruck. Und bei Dragon Age: Veilguard ist das Scheitern kulturell, beim überzogenen Einbau politischer Korrektheit und der Bioware früher atypischen Verweigerung, in einem Rollenspiel auch mal härter auftreten zu dürfen.
Für mich ändert diese Einschätzung die Dinge. Es ist etwas anderes, ob ein Studio aus Arroganz und Gier ihre Kunden verarscht oder ob überforderte Entwickler schlicht nicht liefern können, was sie versprochen hatten. Dementsprechend werde ich Bioware als Konsequenz der Verbesserungen der Legendary Edition trotz des immer noch ungenügenden Trilogieabschlusses von meiner schwarzen Liste entfernen. Wobei das nicht heißt, dass ich derzeit weitere Spiele des Studios in Zukunft spielen will.
Linksammlung 03/2025
Diese Woche fand ich besonders erwähnenswert:
Sonos CEO Patrick Spence steps down after app update debacle, oder ein bisschen ausführlicher als Sonos CEO Patrick Spence steps down after disastrous app launch. Das Scheitern der App war aber auch wirklich spektakulär. Mit Sonos’ chief product officer is leaving the company gingen die Konsequenzen sogar noch weiter.
Read: Meta's memo to employees rolling back DEI programs. Im ersten Moment könnte man versucht sein das positiv zu lesen, immerhin waren diese Programme mit ihrem Fokus auf Herkunft durchaus eine Art institutionalisierte Diskriminierung. Aber der Zeitpunkt der Abschaffung offenbart, dass es hier vielmehr darum ging, den rassistischen Vorhaben der Trumpisten Platz zu geben. Positiv ist daran dann nichts mehr.
Mehr Wellen schlug die Abschaffung der Faktenprüfung, Meta is ending its fact-checking program in favor of a 'community notes' system similar to X's. Auch hier ist das Kauern vor Trump wieder überdeutlich, Faktenchecks gehen nicht zusammen mit einem faschistischen Führer, der in seiner Alterssenilität keine zwei Sätze ohne eine Lüge herausbringen kann. Wobei, LA wildfires disinformation reveals limits of fact-checking kann durchaus stimmen, die Faktenprüfung war schon vorher zu limitiert. Das rechtfertigte aber nicht ihre Abschaffung.
Wohl eine Reaktion darauf, ein Konkurrent sei "Beispiellos" gewachsen: Facebook sperrt Links zu Instagram-Alternative Pixelfed. Meta zahlt für seine auf die nazistischen Republikaner ausgelegte Neuausrichtung also mindestens erstmal durchaus einen Preis.
Bei Zuckerbergs Zerstörungen konnte Mullenwegs wohl nicht mehr an sich halten, daher ging die Woche nach einer Weihnachtspause sein Amoklauf weiter und WordPress is in trouble. Diesmal kamen gleich drei Geschichten zusammen, einmal Wegen Rechtsstreit: Automattic kündigt Mitarbeit an Wordpress fast komplett auf, d.h. die Software wird durch Mullenwegs zentrale Entscheiderrolle gar nicht weiterentwickelt werden, Mullenweg Shuts Down WordPress Sustainability Team, Igniting Backlash, und Matt Mullenweg deactivates WordPress contributor accounts over alleged fork plans, damit ja kein Fork zustandekommt. Wer von Wordpress zu Serendipity wechseln und dabei Unterstützung will kann sich jederzeit bei mir melden. Ernsthaft, auch wenn die Wahl nicht auf s9y fällt, es ist an der Zeit zu reagieren.
Auch nett, Amazon is selling radioactive products with no warnings | Ann reardon (Video). Man darf da wirklich nicht einkaufen.
Das war viel zu drei großen Firmen, nun zu einem kleineren Projekt, und zwar Reloaded: Elementary OS - und warum wir es nicht mögen. Ich habe die Distribution immer ähnlich negativ wahrgenommen.
Und um doch noch etwas positives in der Liste zu haben: A Brimful of ASHA verbessert die Integration von Hörgeräten in Linux. Bei allem großen Unbill gibt es doch auch positive Entwicklungen.
Bondkommentar: No Time to Die
Als die Überreste von Spectre eine Biowaffe samt Wissenschaftler stehlen, kommt Bond aus dem Ruhestand und jagt der Waffe hinterher.
No Time to Die dürfte der letzte Bond mit Daniel Craig sein. Damit hätte Craigs Bondreihe etwas erstaunliches geschafft: Die Hauptkonstante seiner Bondfilme ist es, kein typischer Bond zu sein. Denn auch auch hier ist Bond nicht wirklich Bond: Er ist im Ruhestand, M in einer arg negativen Rolle, Bond bekommt schnell eine private Motivation für sein Handeln und ohne Spectre gesehen zu haben ist die Handlung völlig unverständlich. Das alles war früher komplett untypisch. Als Ausgleich wird endlich wieder im richtigen Moment eine Bondmelodie gespielt; der Martini geschüttelt, nicht gerührt bestellt; es gibt gleich mehrere klassische Bondautos – sogar mit Maschinengewehr – und eine Gadgetuhr.
Auch wenn ich es etwas unglücklich finde, dass diese letzten Filme immer im Ausnahmezustand laufen mussten und obwohl ich wenig Zuversicht habe, dass hiernach ein neuer Bond gut folgen kann: Trotzdem war No Time to Die ein ziemlich guter Film, vielleicht sogar ein guter Bondfilm. Tolle Actionszenen, eine verständliche Handlung, ein paar hervorragende Kameraeinstellungen und dazu gute Auftritte von Daniel Craig selbst, aber auch von Ana de Armas (wenn auch etwas merkwürdig in einer Art Gastauftritt), Léa Seydoux (Hauptbondgirl), Rami Malek (als ordentlicher Bösewicht), auch mochte ich wieder Naomie Harris als Moneypenny. Dass Lashana Lynch als Alternativ-007 eher blass blieb würde ich nichtmal negativ werten wollen, alles andere wäre in einem Abschiedsfilm unangemessen gewesen.
Größte Schwäche des Films waren die Fehltritte bei der CGI, insbesondere Qs Katze und ein Flugboot waren unterirdisch umgesetzt. Dazu kamen einzelne schwache Szenen die mich rausrissen, z.B. als unglaubwürdigerweise ein Wissenschaftler im selten dämlichen Moment Drohungen ausstieß.
Ansonsten auffällig dafür, tatsächlich ein Abschiedsfilm und als solcher erkennbar zu sein. Sowas hatte noch nie ein Bonddarsteller bekommen. Und dafür, offenkundig eine Hommage an On Her Majesty's Secret Service zu sein – was unheimlich passend ist, war die damals gehasste Andersartigkeit von Lazenbys Bond doch immer eine starke Parallele zu Craigs Interpretation des Charakters.
Meine Spyfall-Lösung, oder: Bilder im Terminal
Im Oktober letzten Jahres hatte GNU/Linux.ch einen Programmierwettbewerb für das Spiel Spyfall veranstaltet. Spyfall ist ein Diskussionsspiel, bei dem eine Gruppe von Spielern durch Fragen den Spion in der Gruppe identifizieren müssen. In jeder Spielrunde wissen alle außer dem Spion an welchem zugeteilten Ort sie sind (z.B. in einem Bunker) und stellen einander in einem Zeitlimit Fragen. Die Programmieraufgabe war nun, dafür ein Helferprogramm zu schreiben, das einem der Spieler die Spionrolle zuweist und allen anderen den Ort verrät.
Mich hatte das (nicht nur wegen dem Preis) direkt interessiert, weil ich hier eine Möglichkeit sah Bilder im Terminal einzusetzen. Denn das geht überraschenderweise, wie mir kürzlich erst WezTerm nochmal gezeigt hatte. Ich erkläre im Folgenden meine in Bash implementierte Lösung im Detail.
Spiellogik
Die Spiellogik können wir schnell abhandeln. Am Anfang wird die Spielerzahl eingegeben:
while [[ -z $players || 0 == $players ]];do # ask for players and duration echo "Wie viele Spieler nehmen teil? [3-10]" read players done
Genauso wird die Rundenlänge abgefragt:
echo "Wie viele Minuten soll die Runde dauern? [Standard 8]" read duration if [[ -z $duration ]];then duration=8 fi
Mit den Informationen kann nun aus vorher vorbereiteten Arrays mittels Bashs Zufallsfunktion ein Ort und das passende Bild ausgewählt werden:
# Select a place placeindex=$((RANDOM%${#places[@]})) # Zufallszahl mod der Anzahl möglicher Orte, sodass sie nie größer sein kann place=${places[$placeindex]} # Der gewählte Index bestimmt dann den Ort place_image=${images[$placeindex]} # Und die Bilder, siehe unten place_image_ascii=${images_ascii[$placeindex]}
Und um die Spielerrollen zuzuweisen muss nur der Spion ausgewählt werden:
spy=$((RANDOM%players))
Die Spieler werden dann noch einer nach dem anderen über ihre Rolle informiert:
for i in $(seq 0 $((players - 1)));do echo "Hey Spieler $((i+1)), bist du da und alleine? Bitte bestätige mit Enter:" read confirmed if [[ $spy == $i ]];then # ask for players and duration echo "Hey Spieler $((i+1)), du bist diese Runde der Spion. Bitte bestätige mit Enter:" read confirmed else # ask for players and duration # Hierhin kommt nachher noch der Code zum Bilderanzeigen, siehe unten … echo "Hey Spieler $((i+1)), diese Runde spielt in $place. Bitte bestätige mit Enter:" read confirmed fi clear done
Das Skript hilft während des Spiels dabei das Zeitlimit anzuzeigen, was ich recht simpel durch ein sekündliches Herunterzählen des Countdowns umgesetzt habe:
# On start, start the timer countdown=$((duration*60)) echo "Das Spiel startet nun. Ihr habt $duration Minuten!" while [[ $countdown > 0 ]];do sleep 1 countdown=$((countdown - 1)) echo "Noch $countdown Sekunden!" done
Am Ende soll ein Ton abgespielt werden. Das war gar nicht so einfach. Ich wollte erst nur den Beeper im PC tönen lassen, aber der ist oft deaktiviert, war es bei mir im Terminal beispielsweise. Daher versucht das Skript zusätzlich das oft auf Systemen vorhandene Programm speaker-test
einzuspannen, um für einen Moment einen Ton über den Lautsprecher auszugeben:
# Now we signal the end of the game. # First with the bell, but that might be disabled echo -ne '\a' # Now with speaker-test, to use the regular sound system. Note how we kill it quietly thanks to wait if hash speaker-test 2>/dev/null ;then speaker-test -t sine -f 1000 -l 1 > /dev/null & speaker_pid=$! sleep .2 kill -9 $speaker_pid wait $speaker_pid 2>/dev/null fi
Der Test auf hash speaker-test
ist dabei eine der Möglichkeiten um zu testen, ob ein Befehl auf einem System verfügbar ist. Mir ist nicht mehr klar, warum ich diesen Weg und nicht einen anderen wählte, aber er funktioniert.
Das war der relevante Teil der Spielelogik. Er war verpackt in einer Funktion namens main
, sodass ich außenrum noch ein paar Variablen anlegen konnte. Denn die wurden für das eigentlich interessante gebraucht.
Bilder anzeigen
Denn wie kann ein solches Bashskript nun Bilder anzeigen? Es stellt sich raus, dass manche Terminals das einfach können. WezTerm beispielsweise bringt eine Befehlkombination wezterm imgcat
mit, die man auf eine Bilddatei loslassen kann, sodass die dann im Terminal angezeigt wird. Das nutzt mein Skript so:
if [[ "$TERM_PROGRAM" == "WezTerm" ]];then temp_file=$(mktemp) echo "$place_image" | base64 -d > "$temp_file" wezterm imgcat "$temp_file" else
Generisch scheint das Stichwort Sixel zu sein. Ein Protokoll, um Bilder an Terminals zu übertragen und von ihnen darstellen zu lassen. Darauf kann man testen, wobei ich mir von lsix
abschaute wie ein solcher Test aussehen kann. Das nutzt mein Skript alternativ:
# We detect for sixel support, partly how lsix does it stty -echo IFS=";?c" read -a REPLY -s -t 1 -d "c" -p $'\e[c' >&2 for code in "${REPLY[@]}"; do if [[ $code == "4" ]]; then hassixel="yup" break fi done hash lsix 2>/dev/null # hacky, but I did not want to fight with the syntax to have the hash inside the [[ if [[ $hassixel == "yup" && $? ]] ;then temp_file=$(mktemp) echo "$place_image" | base64 -d > "$temp_file" lsix "$temp_file" fi
Das funktioniert! Glaube ich, habe ich es doch letztendlich nur mit WezTerm getestet. Doch was hat es mit dem base64 auf sich, wo kommen die Bilder her?
Bilder im Skript mit ausliefern
Ich wollte, dass die Bilder nicht separat im Dateisystem liegen müssen, sondern dass ich sie an Ralf mit dem Programmcode in einer Datei schicken kann. Zuerst erstellte ich dafür ganz normale grafische Bilder mit einem KI-Bildergenerator (Bing, wie hier vorgestellt). Doch dann nutzte ich base64
um von der Bilddatei eine Textrepräsentation zu erstellen (es zu serialisieren) und es der Skriptdatei anzuhängen, z.B.so:
base64 Downloads/zoo.jpg >> spyfall.sh
Um diese Serialisierung auch nutzen zu können packte ich sie in eine Variable, indem ich sie mit Anführungszeichen umstellte und den Variablennamen davorstellte, also so:
zoo="…"
Diese Bilder landeten in der main in einem Array:
# Man beachte die wiederholte Nutzung der Anführungszeichen. images=("$cave" "$spacestation" "$desert" "$disco" "$bunker" "$corn" "$antarktis" "$zoo")
Das Array wurde im Spiel zur Auswahl des Bildes genutzt wie oben bei der Spiellogik gezeigt, indem nur die aktive Arrayposition festgelegt wurde.
Die ASCII-Ausweichlösung
Aber nicht alle Terminals können grafische Bilder anzeigen. Für die wollte ich auch eine Ausweichlösung haben. Dafür griff ich auf tiv
zurück. Das ist ein Programm, das aus Bildern eine ASCII-Grafik zaubert, samt den Escapesequenzen um sie einzufärben (was in xterm mir übrigens am besten zu funktionieren schien).
Ein Pluspunkt davon: Das Programm kann ich auf meiner Seite laufen lassen, es muss beim Spieler nicht installiert sein. Beim Spieler reicht es völlig, die gespeicherte Ausgabe des Programms auszugeben. Ich musste also nur wieder die Bildrepräsentation dem Skript anhängen:
tiv Downloads/zoo.jpg >> spyfall.sh
Die wieder in einer Variable speichern:
# Man beachte das einzelne Anführungszeichen, um die Escapesequenzen zu bewahren. zoo_ascii='…'
Und wieder ein Array vorbereiten:
images_ascii=("$cave_ascii" "$spacestation_ascii" "$desert_ascii" "$disco_ascii" "$bunker_ascii" "$corn_ascii" "$antarktis_ascii" "$zoo_ascii")
Nun ist es mit einem echo
darstellbar:
else # Our two graphical methods failed, so we fall back to the ascii images echo "$place_image_ascii" fi
Somit läuft das Skript vernünftig in allen Terminals mit Bash.
Das Spiel selbst zu programmieren war nicht schwer. Sicher, man hätte das besser machen können, so war mein Ansatz mit clear
einfach alte Ausgaben zu entfernen oder den Countdown schlicht mit echo untereinander herunterzuzählen nicht ideal. Hier hätte sich ein interaktives Terminalprogramm angeboten, das (wie nano, top, etc) seinen eigenen Platz schafft und alte Ausgaben überschreiben kann. Aber Bilder einzuarbeiten war mir neues genug.
Es hat auch Spaß gemacht, sowas mal wieder in Bash umzusetzen. Damit gute Lösungen zu finden ist mehr noch ein Knobelspiel als sonst und das Ergebnis trotzdem kompakt und gut lesbar. Vorausgesetzt man verirrt sich nicht in den Bilderdefinitionen (die Skriptdatei ist übrigens 2,6 MB groß). Dass meine Implementierung dann auch noch als valider Gewinnspielkandidat akzeptiert wurde hat mich durchaus gefreut.
Wer sich das im ganzen ansehen will, ich habe das Skript als Gist hochgeladen.
Linksammlung 02/2025
Diese Woche fand ich besonders erwähnenswert:
SteamOS expands beyond Steam Deck (via) auf Geräte anderer Hersteller. Klasse, weil so endlich auch andere mobile Konsolen mit Linux statt Windows laufen und dadurch brauchbar werden.
Collections: Coinage and the Tyranny of Fantasy ‘Gold’ erklärt, warum Gold wie in Computer- und Rollenspielen genutzt nicht den früher genutzten Zahlungsmitteln entspricht.
Ein größeres Modell des Raspberry Pi ist verfügbar, 16GB Raspberry Pi 5 on sale now at $120. So wie ich den Pi nutze war fehlender Ram eines der größten Probleme, daher freut mich das.
Magic Links Have Rough Edges, but Passkeys Can Smooth Them Over. Als mögliche Erweiterungsidee für Portier.
Weil es eine Stolperfalle ist für europäische Blogger mit WordPress: Double Opt-in im StCR-Plugin ist KEIN Double Opt-in 😩 + Fix 💪 + Rant 😁. Serendipity macht das übrigens direkt richtig und wartet mit dem Absenden von Benachrichtigungen auf die Bestätigung, wenn Double-Opt-In an ist.
Bondkommentar: Spectre
Bond jagt ohne Unterstützung von MI6 im persönlichen Auftrags M jemanden, dabei kommt er einer globalen Verschwörung auf die Spur.
Die Anfangsszene in Mexiko ist erinnerungswürdig, dass Bond mit ihr den Umzug in der Stadtmitte von Mexiko-Stadt zum Tag der Toten als Tradition erschaffen hat ist fantastisch. Davon abgesehen ist Spectre ein Bond, der weniger nervig als Skyfall ist, aber sehr ähnliche Glaubwürdigkeitsprobleme hat. Angesichts des Namens ist es keine Überraschung, dass die alte Terrororganisation Spectre wieder auftaucht, die nach Dr. No in vielen Bonds die Antagonisten gestellt hatte und mit Roger Moore dann – ich las, wegen eines Rechtsstreits – aufgegeben wurde. Leider ist die Verknüpfung von Spectre mit den vorherigen Craig-Bondfilmen komplett aufgesetzt, das persönliche Interesse des Antagonisten (Christoph Waltz) an Bond kommt aus dem Nichts und verfängt daher nicht. Die Behauptung, dass er für den Tod der Frauen in Bonds Leben verantwortlich sei, ist angesichts der Handlung der Vorgängerfilme lächerlich.
Problematisch auch: Spectre entspricht genau der Antagonistenorganisation in der Konkurrenzfilmserie Mission Impossible. Das machte ihre Wiedereinführung noch weniger originell, das war sogar damals im Kino richtiggehend verwirrend. Mit dem seltsamen Verhalten des Antagonisten, bei dem zugeschriebene Überwachungsphantasien und erschreckende Rationalität nicht mit seinem spielen mit Bond zusammengehen, und nicht nachvollziehbaren Wendungen im Verhältnis zwischen Bondgirl und Bond ("Ich liebe dich", zwei Minuten später will sie ihn verlassen) reißt Spectre den Zuschauer dann noch weiter raus. Entsprechend verpufft der starke Anfang schnell, Spectre wird nur zu einem höchstens okayen Bond. Nie ganz schlecht, ein paar starke Szenen, aber insgesamt echt nicht gut.
Auffällig sind die unzähligen Verweise auf vorherige Bonds, Spectre dürfte da einen Rekord aufgestellt haben.
Rettet Mass Effect 3 als Legendary Edition das misslungene Trilogieende?
Während im ersten Teil der Serie die Bedrohung durch die Reaper entdeckt, im zweiten verzögert wurde, sind die Reaper nun da. Und knöpfen sich direkt die Erde vor. Shepard, der zwischen den Spielen aufs Abstellgleis gesetzt wurde, entkommt dem Massaker und ist für die Verbliebenen wieder die letzte Hoffnung.
Mass Effect 3 wurde 2012 veröffentlicht, nur zwei Jahre nach Mass Effect 2. Eine unfassbar kurze Entwicklungszeit, gerade angesichts der hohen Ziele und Versprechungen von wichtigen Auswirkungen aller Entscheidungen der Vorgängerspiele. Prompt ging das schief, das originale Ende war eine riesige Enttäuschung und beschädigte Bioware nachhaltig. In der Legendary Edition sind nun alle DLCs enthalten, die zum einen das Ende verbessern sollen, zum anderen vorher offensichtlich rausgeschnittene Inhalte wieder einbauen. Ist das Ergebnis gelungen?
Spiel und Grafik, wie in Teil 2?
Doch zuerst zum Spiel selbst. Das beginnt wieder mit einem Import des Shepards aus dem Vorgänger, wobei wieder Aussehen wie Klasse angepasst werden kann. Bei diesem Import werden vor allem die vielen Entscheidungen aus Teil 1 und 2 übernommen. Nach einem kurzen Intro auf der Erde, das während der Reaperankunft spielt und dabei als Tutorial fungiert, steht man bald wieder auf der Normandy mit einer kleinen Crew. Die wird wieder erweitert werden, doch anders als im zweiten Teil ist nicht mehr jeder Begleiter seine eigene Mission, sondern werden die während der packenden Hauptstory praktisch nebenbei aufgesammelt.
Wieder gibt es die Galaxiekarte mit den unterschiedlichen Sternensystemen. Aber das Scannen von Planeten für Ressourcen ist entfallen (ebenso alle anderen Minispiele, wie das Hacken von Schlössern). Stattdessen werden nur noch Anomalien erscannt, die wiederum meist Ziele kleiner Nebenquests sind. Auf der Citadel finden sich dann die zugehörigen Zielpersonen, die mit dem Anomalieprodukt zusammenzubringen erhöht den Kampfscore.
Dieser Score wird prominent auf der Normandy angezeigt. Er entspricht einer Auflistung aller Kräfte, die bei der Endschlacht gegen die Reaper ins Feld geführt werden können. Beispielsweise ganze Armeen, oder einzelne Begleiter aus den vorherigen Spielen. Diesen Wert zu erhöhen ist praktisch das Ziel des Spiels. Und bei ihm wirken sich auch sehr viele Entscheidungen aus. Wer beispielsweise in ME1 die Menschenflotte nicht geschont hat, sieht jetzt bei ihr verringerte Werte – und profitiert dafür durch das so gerettete Alienschiff. Es ist möglich dabei schlecht abzuschneiden, aber wenn man die Spiele ernsthaft gespielt hat (statt durchzusprinten) laufen viele der Entscheidungen bei diesem Score auf Nullsummenspiele hinaus.
In den Missionen steuert man wieder Shepard und hat (fast immer) zwei Begleiter. Wie zuvor sind die Missionen dabei Abfolgen von Kämpfen, auch das Deckungsshootersystem wurde wieder gewählt. Es gibt aber Änderungen. Zum einen ist Shepard beweglicher geworden, kann sich beispielsweise zur Seite rollen – auch wenn die Animationen diesmal (beim Sprinten insbesondere) komplett vermurkst sind. Zum anderen gibt es mehr und teils wirklich unterschiedliche Waffen, wobei die LE mit den DLCs diese Auswahl nochmal erweitert. So gibt es zum Beispiel eine Pistole, die im Grunde Haftgranaten verschießt. Außerdem gibt es einige neue Gegnertypen, die auch vermehrt Rüstung, reguläre und bionische Schilde einsetzen. Die Kämpfe sind dadurch nochmal verbessert worden.
Story samt Konsequenzen minus Rollenspiel
Das ist auch gut so, denn der dritte Teil der Reihe ist wieder absolut kampffixiert. Alternative Spielinhalte oder auch nur alternative Wege kann man in den Missionen nicht finden. Bezeichnend dafür sind die stumpfen Sequenzen, bei denen man im Stile eines Call of Duty hinter einem übermächtigen Geschützturm sitzt. Selbst bei den Entscheidungen lässt sich eine weitere Minimierung feststellen: Es gibt nochmal öfter genau zwei Antwortmöglichkeiten, das Rollenspiel beschränkt sich auf die Wahl zwischen Paragon und Renegade.
Dafür spielt dieses Trilogiefinale (zumindest vor dem Ende) diese seine Rolle gut und zeigt sehr viele Konsequenzen und Rückbezüge. Die dann teils auch noch ineinandergreifen. Sowohl im Kleinen gelingt das, wenn z.B. Shepards Stalker wieder eine Rolle spielt und beim Ausgang seiner Geschichte eine Nebenmission von ME1 mit reinspielt; als auch im Großen, z.B. wenn die Entscheidungen zur Heilung der Kroganer von zuvor Auswirkungen hat. Vor allem aber wird viel bei den Gefährten gezeigt, die Entscheidungen gerade der Loyalitätsmissionen aus Teil 2 werden immer wieder gespiegelt.
In die Geschichte des Spiels, die ansonsten dem bekannten Schema folgt und diesmal zur Gründung einer großen Allianz von Planet zu Planet springt, mischen sich ganz neue Untertöne. So wird Shepard zwischen den Missionen immer wieder in Traumsequenzen gepackt, bei denen ein Kind durch einen Wald läuft und am Ende verbrennt. Ein Rückbezug auf das Tutorial auf der Erde, bei dem ein Kind erst in einem Lüftungsschacht steckt, sich nicht raustraut, später in einen Transporter rennt der abgeschossen wird. Aber es ist nie klar, ob das Kind wirklich existierte, oder ob Shepard einfach durchdreht. Doch genausowenig klar ist was das soll, warum diese neue Verwirrung plötzlich da ist, was das Spiel damit bezwecken will. Konsequent eingebaut in eine Charakterentwicklung ist es auf jeden Fall nicht.
Ansonsten ist die Geschichte einfach sehr düster. Die Verheerungen durch die Reaper sind enorm. Schon im zweiten Teil gab es Leichenberge, sowas ist nun noch viel häufiger und generell wird das Ende aller Zivilisationen thematisiert, was natürlich schwerwiegend ist. Gleichzeitig traut sich Bioware keine Nacktheit bei den Romanzen, da werden noch Duschszenen durch nicht ausgezogene Unterwäsche lächerlich gemacht. Auf der einen Seite also klar an Erwachsene adressiert, auf der anderen für Kleinkinder – eine schwer verdauliche Mischung.
Merkwürdigkeiten und Macken
Womit wir beim nächsten Thema wären: Ein paar Auffälligkeiten stechen heraus, die schlecht gelöst sind und beim ansonsten bemüht polierten Gesamtbild überraschen.
Das seltsame Sprinten von Shepard fällt dabei direkt auf der Erde auf. Shepard wackelt dabei merkwürdig auf gestelzten Beinen umher, dabei schwebt der Charakter vorwärts. Das war noch im Vorgänger besser umgesetzt und sieht keinen Moment realistisch aus. Auch gibt es da einen Bug, das Sprinten verhält sich nicht immer gleich, manchmal ist es mehr ein Schweben.
An mehreren Stellen stolpert man als Spieler übelst über die Linearität des Spiels, das Entscheidungen von zuvor zugunsten einer Arbeitsminimierung minimiert. Drei Beispiele: Die Quarianer greifen immer die Geth an, egal ob man das in ME2 anfacht oder vermeintlich verhindert. Es gibt immer eine Mission um Kroganer und Rachni, egal ob man die Rachni-Königin in ME1 befreit oder vernichtet hat. Und die Entscheidung in Teil 1, welches Crewmitglied stirbt, ist bedeutungslos: In beiden Fällen wird der oder die Überlebende als zweiter menschlicher Spectre eine Rolle ausfüllen können – obwohl beide sehr unterschiedliche Profile haben, sich daher ganz unterschiedlichen verhalten und an anderen Orten in der Story enden müssten.
Arbeitsminimierung ist auch an anderen Stellen sichtbar. Während in ME2 auf der Normandy noch einige Crewmitglieder miteinander redeten, gibt es davon jetzt nur noch eine Stelle, die man auch unbedingt passieren muss. Und an der gleichen Stelle ist (zusätzlich zum Aufzug) eine Ebene der Normandy mit einem als Sicherheitscheck getarnten Ladebildschirm unterteilt worden. Die Citadel besteht aus mehreren gut gefüllten, aber sehr kleinen Bereichen, kein Vergleich zu ME1. Also überall zu spüren: Das Spiel ist insgesamt leerer, der Atmosphäre dienende Details wurden viel weniger eingebaut, und technische Limitierungen beherrschten Designentscheidungen.
Gerade angesichts der Bedeutung der Loyalitätsmissionen aus ME2 verwundert die limitierte Zusammenstellung des Teams. Denn kein originärer Begleiter aus ME2 hat es in den dritten Teil geschafft, nur Konstanten aus ME1 wie Garrus, Tali und Liara überdauern. Die ME2-spezifischen Figuren tauchen zwar auf und haben teils tolle Auftritte, aber keiner landet als Gefährte auf der Normandie. Schlägt hier etwa wieder Biowares Arbeitsminimierung durch, immerhin können diese Teammitglieder im Finale von ME2 sterben? Alternative Gefährten anzubieten bzw das Team so breit aufzustellen, dass jemand getrost wegfallen kann, war also keine Option? Stattdessen gibt es dann mit James einen neuen Charakter, der aus dem nichts kommt und gegen ausgebaute Hintergründe wie insbesondere Talis nun so gar nicht anstinken kann – besonders nicht mit seiner Gears of War entlehnten Charakterzeichnung.
Die Änderungen der Legendary Edition
Ein großer Nervfaktor im Original war der Einbezug von Multiplayer und einer mobilen App in den finalen Flottenstärkewert. Diese Gängelung wurde in der Legendary Edition entfernt, sodass nur noch die drei Spiele selbst Auswirkungen haben.
Die LE verändert das Original sonst vor allem durch die Einbindung aller DLCs. Wie oben erwähnt gibt es dadurch eine vergrößerte Waffenauswahl. Aber das ist noch das kleinste. Mit Javik gibt es einen neuen Begleiter (original ein Abzock-DLC, veröffentlicht zeitgleich mit dem Grundspiel), den letzten Überlebenden der Protheaner. Der füllt einige Lücken aus, wird in den Hauptmissionen viel genutzt und hat auch generell viele Kommentare (teils lustige, weil absurd böse).Der Ausflug nach Omega ist sehr kampflastig und allzu linear, hier ärgert man sich darüber, später die Station nicht besuchen zu können. Das ist bei den Missionen um Leviathan anders, die sind teils nett da keine reinen Kämpfe, zudem erklärt der DLC eine vorherige Leerstelle um die Herkunft der Reaper.
Gelungen ist dann der Citadel-DLC, der auf der Raumstation ein Appartement und ein neues Gebiet hinzufügt, das dann mit vielen Begegnungen mit den Teammitgliedern (alten wie neuen) füllt sowie einen etwas durchgedrehten Missionsstrang einbaut. Das passt zwar teils so gar nicht zu Ton und Story des Hauptspiels, aber füllt mit der tieferen Ausarbeitung der Teammitglieder und ihrer Weiterentwicklung eine wichtige Lücke.
Die wichtigste Lücke aber ließ das Ende, und auch dafür gab es einen DLC. Dafür werde ich im folgenden spoilern, bevor es zum Fazit geht.
"Rettet Mass Effect 3 als Legendary Edition das misslungene Trilogieende?" vollständig lesen
Linksammlung 01/2025
Diese Woche fand ich besonders erwähnenswert:
Historically, 4NF explanations are needlessly confusing, über ein Datenbankthema aus meiner Studienzeit. Gerade die diskutierte Didaktik erregte damals auch meine Aufmerksamkeit, bei der Informatik gab es ein paar solcher Felder, bei denen Dinge unnötig verkompliziert wurden. Der Gedanke lag da immer nahe, dass niemand das Thema wirklich versteht. Noch vom Dezember über.
Ebenfalls noch vom letzten Monatsanfang ist Reclaim the internet: Mozilla’s rebrand for the next era of tech (via). Es ist ein sehr schlechtes Zeichen, dass Mozilla überhaupt Geld für ein Redesign rauswirft, das vorherige Design war gut genug und Mozilla hat drängendere Probleme. Vor allem das Wortlogo mit dem Moz://a-Effekt war an sich sogar toll, da hätte es keinen Wechsel gebraucht und eine gesunde Organisation wüsste das. Das neue Design ist immerhin nicht schlecht: Das Wortlogo ist zwar langweiliger geworden und verschenkt den Wiedererkennungswert des bisherigen Kniffs, dafür ist die in der Animation zum Dino werdende neue Flagge ein toller Verweis auf Mozillas historisches Design. Die zugehörige Schriftart kann ich via den verpixelten Beispielbildern noch nicht einordnen, aber die Theorie der gleichen Größe der unterschiedlichen Stile ist nett. Naja.
Die Vollüberwachung der modernen Autos führt zum vorhergesagten Datenleck: Wir wissen, wo dein Auto steht. Volkswagen vertieft seinen Platz auf der schwarzen Liste.
Dirk diskutiert Benedikts und Roberts Newsletterpläne in Regelmässiger Newsletter? Die Pläne wären damit indirekt ebenfalls verlinkt. Beachtet auch die Kommentare, das für und wider wird durch sie deutlicher.
Bondkommentar: Skyfall
Die Liste mit allen Nato-Geheimagenten gerät in falsche Hände, daraufhin eskaliert die Situation in London.
Skyfall hat mich genervt und enttäuscht. Eigentlich ist da viel positives: Der Versuch mal eine andere Geschichte zu erzählen, Hintergründe der bekannten Charaktere auszubauen, Daniel Craigs überfällige Bondwerdung abzuschließen. Dazu Actionszenen, die nicht mehr zu sehr von Bourne inspiriert sind, ein toller Introsong von Adele, viele Verweise auf Bonds Geschichte (passend fürs 50-jährige Jubiläum der Filmreihe), sogar für einen Moore-würdigen Bondkommentar war Platz. Ich fand es interessant, so viel Handlung in London und Schottland stattfinden zu sehen, und Craigs hier gefestigt scheinende Bondrolle wäre keine schlechte gewesen, mit seinem oft durchschimmernden subversiven Humor. Zudem sieht der ganze Film großartig aus.
Aber alles positive wird durch abgrundtief schlechte Schreibe kaputtgemacht. Es beginnt mit der Kleinigkeit, aus scheinbarer Ideenlosigkeit schon wieder den Film mit einer Verfolgungsjagd zu beginnen. Aber später wird es wirklich schlimm: Skyfall bemüht maßlos überzogen das Klischee des allmächtigen Hackers, in Person des Bösewichts (und teils auch bei Q). Mit so intelligenten Plänen, dass er noch in den hektischsten Situationen genau weiß wer zu welchem Zeitpunkt wo sein wird, um dann passgenau Bomben zu zünden etc. In billigen Serien wie Bones bereits unerträglich, ist sowas in einer großen Produktion wie einem Bond erst recht unverzeihbar. Entsprechend sind die Logiklücken in der Handlung unübersehbar, die lautlosen CGI-Helikopter betonen das noch weiter. Andere schlechte CGI-Szenen wie der Komodowaran verstärken dann nur noch den negativen Eindruck. Die Überlänge wird angesichts all der Probleme schwer zu ertragen, in der Hinsicht ist Skyfall einer der schlechtesten Bond aller Zeiten.
Auffällig besonders, weil mit Skyfall ein experimenteller Bond so arg gescheitert ist. Bonds mit alternativen Ansätzen waren bisher meist die besten oder zumindest willkommene Abwechslungen. Ansonsten speziell für die erwähnte und teils gelungene Ausarbeitung von Charakterhintergründen; von Bond selbst, aber auch M, Q und Moneypenny. Bei M kommt als Besonderheit dazu, dass ihre Einbettung in die Filmhandlung an The World is not enough angelehnt ist, was ein Glanzstück des früheren Films war.