BIG-Nachträge: Interview und Messebericht
Thursday, 28. December 2023
Als ich letzte Woche von meinem Besuch der Bilbao International Games Conference erzählte, standen zwei größere Artikel noch aus. Der erste ein Interview mit Anna Guxens, einer RPG-Designerin bei den Larian Studios, die mit mir über diese Rolle und ihre Arbeit an Baldur's Gate 3 redete. Der zweite mein Messebericht, der den vorherigen Blogartikel etwas ergänzt und die Konferenz bzw meine Erfahrung dort noch etwas näher beschreibt.
Gerade das Interview halte ich für wirklich lesenswert, soweit ich das aus meiner Perspektive bewerten kann.
Ein kurzer Blogrückblick auf 2023
Monday, 25. December 2023
Letztes Jahr schrieb ich trotz Umzug relativ regelmäßig in diesen Blog. 2023 ähnelte sich da sehr: Wieder änderte sich einiges im Hintergrund, wieder war der Blog mir eine willkommene Konstante.
Dieses Jahr habe ich 106 Artikel geschrieben. Da sind die Linksammlungen mitgezählt, die fast jeden Freitag erschienen.
Die drei längsten Artikel waren:
- Deep Space 9 war das beste Star Trek und die falsche Richtung (24387 Zeichen)
- 15 Jahre Serendipity als Entwickler - ein Rückblick und ein Ausblick (23187 Zeichen)
- Zum jetzt spielbaren Cyberpunk 2077 (19981 Zeichen)
Die Verteilung gefällt mir – einmal Serie, einmal FOSS-Entwicklung und einmal ein Computerspiel, das trifft den gewollten Themenmix im Blog ganz gut. Und den angekündigten DS9-Artikel wirklich bringen zu können hatte mich gefreut.
Themenwahl dieses Jahr war ansonsten ähnlich wie zuvor, die Blogkategorien wurden allgemein so abgedeckt:
- Spiele: 18 Artikel
- Medien: 14 Artikel
- Linux: 10 Artikel
- Technikzeugs: 8 Artikel
- about: 7 Artikel
- Zeitgeschehen: 1 Artikel
- Textformen: 1 Artikel
- Code: 1 Artikel
Das sind mehr Medienartikel, aber weniger Spieleartikel als 2022. Das war mir ja wichtig, nicht nur Spiele hier in den Blog zu packen. Mit der Entwicklung bin ich daher zufrieden.
Insgesamt durfte ich im Blog 130 Kommentare verzeichnen. Davon waren 50 von mir. Mit Trackback und Pingbacks bekam die Kommentartabelle 231 neue Zeilen.
Die meistkommentierten Artikel waren:
Die Kommentare waren also recht verteilt, was mich gerade etwas überrascht. Ich habe die Kommentaraktivität als positiv wahrgenommen und daher mit einem längeren Kommentarthread gerechnet, aber scheinbar sind mehr Artikel mit zumindest wenigen Kommentaren angenehm.
Bei Google sah die Platzierung in der Suchmaschine so aus:
Das sind etwas mehr Klicks als letztes Jahr, aber weniger Impressionen. Das erscheint mir erstmal wie etwas positives, da mehr Artikel zur Suche gepasst haben dürften. Insbesondere Samsung A3 (2016) auf Android 11/LineageOS 18.1 updaten, der ist zum meistangeklickten Artikel aufgestiegen.
Beim Blog selbst hat sich nicht viel geändert. Das ist immer noch Serendipity 2.4.0 mit vultr als Hoster. Es gibt zwar mit 2.5-beta1 eine neue Version, aber da auf dem Server noch eine ältere PHP-Version läuft war das Upgrade nicht zwingend. Das dürfte sich nächstes Jahr ändern. Wo sich etwas getan hat ist beim Design, da kam ein Dark-Mode dazu und auch im hellen Modus wurden die Farben für einen besseren Kontrast etwas angepasst. Gerade bei den Linkfarben fand ich den Effekt davon sehr angenehm.
Soviel zu 2023. In Sachen Blog war es ein ruhiges Jahr ohne Umwälzungen, mit in etwa so viel Artikeln und Kommentaren wie zuvor, wovon nur der Samsung-Artikel in Sachen Reichweite etwas herausstach. Wenn ich auf das Jahr zurückblicke sehe ich aber schon eine Besonderheit: Es war schon einiges an Rückbesinnung, mit der Erinnerung an die Lan-Parties, der Besprechung der Serendipity-Entwicklungszeit und der Nostalgie im DS9-Artikel. Da setzte wohl der Bloggeburtstagsartikel am Jahresbeginn etwas den Ton.
Für das nächste Jahr habe ich für den Blog keine besonderen Pläne. Aber es dürften sich bei mir anderweitig ein paar Dinge ändern, was sich dann sicher auch auf den Blog auswirken wird. Ich rechne im Jahresverlauf mit deutlich weniger und mit kürzeren Artikeln.
An dieser Stelle ein Danke an alle Leser und an alle Kommentatoren. Euch allen wünsche ich ein gutes neues Jahr.
Linksammlung 51/2023
Saturday, 23. December 2023
Diese Woche fand ich besonders erwähnenswert:
Hasbro laying off Wizards of the Coast staff is baffling — and could lead to a brain drain. Hasbro zerstört ungezwungen seine eine profitable Sparte.
How Big is YouTube? Die interessante Idee ist, die Größe YouTubes durch das geschickte Raten von Video-URLs zu berechnen.
Das amüsante an Most 16-year-olds don’t have servers in their rooms für mich war das Bild mit dem Ikea-Tisch, denn fast die gleiche Lösung hatte ich auch am Laufen. Das Problem sind die Stromkosten und der Lärm, wobei er den Lärm durch einen Hack reduziert hat.
Ein bisschen Nostalgie weckte Unleash Your Inner Tycoon in Industry Giant 4.0. Industriegigant 1 und 2 spielte ich damals am ersten Familien-PC und habe ich in positiver Erinnerung.
Ich berichtete von der Bilbao International Games Conference
Wednesday, 20. December 2023
Am Freitag und Samstag letzter Woche fand ich mich auf der Bilbao International Games Conference in einer Reporterrolle wieder.
BIG via GG
Und das kam so:
Die BIG ist eine spanische Spielekonferenz, hauptsächlich für Entwickler bzw die Spieleindustrie. In einem Konferenztrack halten dort Entwickler Vorträge oder werden welche gehalten, die Spielemacher interessieren könnten. Gleichzeitig ist es ein Ort für Treffen untereinander, für die Publishersuche und für Interviews mit der Presse. Außerdem gibt es eine Ausstellungshalle, in der vor allem Indie-Entwickler ihre Spiele vorstellen und die dann meist auf Publishersuche sind. Und auch Spielereleases gab es.
Seit einigen Jahren habe ich einen Account bei der deutschen Spieleseite Gamersglobal. Ein halbes Mitmachmagazin, habe auch ich dort (für die größere Reichweite) Artikel veröffentlicht. Stammleser dürften sich erinnern, meistens verlinke ich die dann hier, manchmal waren es auch alternative Versionen von Blogartikeln. GamersGlobal nun war angefragt worden, ob sie nicht über die BIG berichten würden. Die Redaktion konnte das aber im vorweihnachtlichen Trubel nicht. Also wurde bei den anderen Community-Schreibern gefragt, bei denen die Zeit aber auch zu knapp war. Ich aber konnte und wollte.
Für mich war es perfektes Timing. Als die Anfrage reinkam war ich gerade aus Mexiko zurück, wo mein Spanisch sich stark verbessert hatte. Kurz vor Weihnachten war mein Terminkalender recht leer (außer dem generellen Zeitmangel für meine Softwareprojekte…). Und Messeberichte hatte ich ja schon gemacht, auch über Spiele schreibe ich seit Jahren, aber die Kombination hatte ich noch nie und diese offizielle Presserolle auf einer Konferenz schon gar nicht. Das reizte mich.
Die Ergebnisse
Meine Sorge war natürlich, dass es nicht klappen könnte. Dass entweder die Vorträge und die gezeigten Spiele langweilig sein würden, ich Interviewmöglichkeiten verstotterte oder den Spagat nicht schaffe würde zwischen dem Teilnehmen an der Konferenz und dem Schreiben darüber. Es war unbegründet. Sowohl zu den Vorträgen als auch zu den gezeigten Spielen ließen sich problemlos noch auf der Konferenz News schreiben. Dabei half auch ein ordentlicher Presseraum. Selbst mein altes LG G5 bewährte sich als Messe-Fotoapparat, zumindest waren die Bilder nicht inakzeptabel schlecht (wobei, sollte ich das öfter machen wäre es Rechtfertigung für ein neues Telefon mit besserer Kamera, oder für eine separate Kamera).
Die Liste bisher:
- Ein Besuch auf der Bilbao International Games Conference 2023 (Fotogalerie)
- Tiny Garden angespielt // Erntet Lob
- Atmosphärisches Puzzle-Adventure Evolution angespielt
- Wie Larian Baldur's Gate 3 entwickelte
- Das Metroidvania Eden's Guardian angespielt
- Titanium Awards verliehen, Zelda TotK ist Spiel des Jahres
- Les Mills XR Dance für die Quest 2 und 3 gezeigt
- Warum manche Spiele ständig reduziert sind
- Tekken-Leiter Katsuhiro Harada zur Zukunft von Prügelspielen
- Blasphemous 2 war ein schwieriger zweiter Teil
Schaut da gerne mal rein. Die Liste soll auch zeigen, dass es überhaupt kein Problem war, spannende Themen zu finden. Und mit mehr Leuten vor Ort hätte man locker die doppelte Zahl an News und Berichten schreiben können.
Ein bisschen Glück war bei der Sache auch dabei, natürlich. Zum einen, dass der Vortrag zu den Spielepreisen sehr früh war, und mir da sofort einfiel, wie man das für die Leser verpacken könnte (der Inhalt war ja ursprünglich an Entwickler und nicht an Käufer gerichtet, das musste umgedreht werden). Danach fiel das bei den Folgevorträgen recht einfach, der Ball war im Rollen. Zudem lief mir mit Iván Lerner ganz früh ein absolut sympathischer und messerscharf denkender Reporter über den Weg, der mir ein paar wirklich hilfreiche Ratschläge geben konnte und der eine fantastische Begleitung für die Feiern am Abend war. Ein absoluter Glücksfall.
In kurz, die BIG-Konferenz in Bilbao war spaßig und mir machte die Rolle als Konferenzreporter ebenfalls Spaß. Es gab auf ihr nicht die großen Enthüllungen oder die Möglichkeit, als erster überhaupt ein großes neues Spiel anzuspielen, zumindest bekam ich sowas nicht mit. Aber sie lieferte einen interessanten Einblick in die Spieleindustrie, besonders in die spanische Szene – und die ist spannend, denn sie macht international relevante Spiele.
Linksammlung 50/2023
Friday, 15. December 2023
Diese Woche fand ich besonders erwähnenswert:
Das große BOOM: Google Loses Antitrust Case. Beachtlich, weil die Jury-Entscheidung der Denke der Richterentscheidung im vorherigen Prozess gegen Apple widerspricht. Google wurde hier ein Monopol und dessen Missbrauch attestiert – obwohl bei Android alternative Appstores möglich sind. Jetzt könnten ein paar Einschränkungen im Play-Store fallen, wie die Google-Beteiligung an In-App-Verkäufen. Zumindest, falls Google die nächste Runde nicht gewinnt.
What We Watched: A Netflix Engagement Report ist mehr als der erwartete Blogpost mit einer Top 10, da ist auch eine Exceldatei mit den restlichen Zuschauerdaten drin. Das ganze ist wohl ein Ergebnis des Streiks, sodass hier Netflix mehr Transparenz über den Erfolg von Filmen und Serien herstellen muss, samt darauf basierender Vergütungsbeteiligung. Für uns sind da nette kleine Infohappen drin, z.B. dass The Night Agent wirklich sehr erfolgreich war, oder dass manche alte Schinken wie die Gilmore Girls immer noch oft gesehen werden.
GM Says It's Dropping Apple CarPlay And Android Auto Because They're Unsafe, das ist natürlich vorgeschoben. Der Witz ist, dass es stimmt: Jedes Display mit Touchsteuerung macht Autos unsicher, egal ob da Android Auto oder sonstwas drauf läuft. Nur blind bedienbares gehört in ein Auto, also echte mechanische Knöpfe und Sprachsteuerung.
Wobei Sprachsteuerung seine eigenen Probleme hat, wie The demise of digital voice assistants treffend beschreibt. Aber im Auto den Radiosender wechseln oder eine Adresse eingeben, genau das ist der vermisste Anwendungszweck, beschränkt genug um tatsächlich zu funktionieren. Intelligente Sprachsteuerung statt Sprachassistent packt den Unterschied.
Und schließlich habt einen Blick auf eure Kernelversion, denn ein Kritischer ext4-Bug (besonders betroffen: Linux 6.1.64) wurde teils ausgerollt.
Ersteindruck: Roborock E5 vs Roomba 615
Monday, 11. December 2023
Die letzten Jahre hat der Roomba 615 meine Wohnung gesaugt, in Zukunft sollte das der Roborock E5 übernehmen. Warum wechseln, was sind die Unterschiede und wie schlägt sich der neue?
Wechselgrund Routenplanung
Hauptgrund für den Wechsel ist die versprochene bessere Routenplanung. Der Roomba 615 folgt beim Reinigen scheinbar einfachen Regeln. Die sorgen dafür, dass er mit genug Zeit durch die ganze Wohnung fährt – aber dafür viel länger braucht, als wenn er effizient nur ungesaugte Bereiche anfahren würde. Verbunden mit dem doch nervigen Lärmpegel und seiner Eigenheit, immer wieder aus meinem Büro nicht mehr rauszufinden, wurde der alte Roomba nervig. Das machte seinen Zweck kaputt eine Alltagserleichterung zu sein, außerdem wurde er deswegen immer seltener genutzt.
Beim Roborock E5 soll die Navigation besser funktionieren. Dieser baue eine interne Karte und fahre dann gezielt durch die Wohnung. Gleichzeitig leiser verspricht das, die Wohnung in kürzerer Zeit mit wesentlich geringerem Nervfaktor sauber gemacht zu bekommen.
Was sonst für den E5 sprach: Internetlosigkeit und der Preis
Aber dieses geplante Vorgehen beherrschen fast alle modernen Saugroboter, außer den allergünstigsten. Warum kaufte ich den Roborock E5?
Zum einen, weil er mit einer Fernbedienung kommt und die App-Anbindung tatsächlich optional zu sein scheint. Roborock, eine chinesische Firma mit Verbindungen zu Xiaomi und damit unter permanenten Spionageverdacht, verspricht die Optionalität der App-Anbindung für alle Saugroboter. Sie erklärt aber nicht, welche Funktionen dann noch funktionieren. Fällt z.B. bei einem eher darauf ausgelegtem Modell wie dem S8 die Internetanbindung weg, funktioniert dann die intelligente Routenplanung noch? Beim E5 funktioniert sie scheinbar immer, zudem gibt die Fernbedienung Zugriff auf ein paar nützliche Funktionen wie die Einstellung der Saugintensität (und damit dem Lärmlevel), ohne das Gerät ins heimische Wlan lassen zu müssen.
Saugroboter anderer Hersteller starten Internetberichten teils gar nicht, wenn sie nicht ins Wlan kommen, oder sind definitiv bei der Adaption ihrer Navigation dann beschnitten. Deutlich kommuniziert wird die Situation um die nötige Internetanbindung leider bei fast keinem Hersteller, das Statement von Roborock war die große Ausnahme. Daher war es eine aufwändige Recherche, den E5 als mögliche Option herauszufinden, und Roborocks Versprechen gab den Ausschlag, die Auswahl schließlich auf Geräte dieses Herstellers zu beschränken. Mit der Fernbedienung als Manifestation davon war der E5 doppelt attraktiv.
Zweiter positiver Aspekt des E5 ist sein Preis. Er beherrscht moderne appgestützte Funktionen wie die Raumerkennung nicht, nur die Karte der gesamten Wohnfläche lässt sich in der App wohl anzeigen. Dementsprechend kann man ihn nicht anweisen, jetzt die Küche zu putzen – er kann nur ganz oder gar nicht. Völlig ausgereift sei die intelligentere Navigation zudem auch nicht. Letzteres kann ich bestätigen, gerade fährt er zum zweiten mal durch die Küche (aber gut, die Karte muss sich ja erst aufbauen). Und seine Wischfunktion ist einfach ein Tuch, das mit Wasser benetzt wird, keine Borsten oder Vibrationen unterstützten sie und Teppiche vermeidet er auch dann nicht. Er ist also in vielerlei Hinsicht ein Budgetmodell und entsprechend auch deutlich günstiger als viele Alternativen.
Unterschiede zum Roomba 615
Der Hauptunterschied zum Roomba 615 ist also die Routenplanung. Der Roborock E5 fährt in langen Linien durch die Wohnung und scheint wirklich gezielt Bereiche anzufahren, die noch nicht gesaugt wurden. Das ist ein Riesenvorteil und wirkte im ersten Test sehr angenehm! Aber die weitere Zeit muss zeigen, ob er wirklich die gesamte Wohnung durchfährt und dann auch wirklich das Saugen abbricht wenn er überall war, nicht erst, wenn der leere Akku das vorgibt. Schließlich hat auch der Roomba irgendwann das Saugen beendet, und in den ersten Tests schien der E5 länger weiterzumachen als sinnvoll erschien.
Beim Lärm schneidet der E5 besser ab – zumindest auf dem Laminatboden hier. Da ist er etwas leiser und der Lärmcharakter gleichförmiger, der 615 rödelt schlicht mehr. Fährt der E5 aber über Teppich, schaltet er in einen Turbomodus um, dann wird er sogar lauter als der alte Roomba je war. Die Saugintensität und damit der Lärm lässt sich beim Roborock einstellen, per Fernbedienung oder App. Der leisere Modus ist dann zwar wirklich nochmal ein bisschen leiser, aber der Unterschied zum Standardmodus ist nicht riesig.
Beide Saugroboter vermeiden herumstehende Objekte nicht völlig. Beim E5 hat mich das ein bisschen gewundert, hat er doch eine Kamera eingebaut, zumindest verstehe ich so die Herstellerbezeichnung OpticEye (auch wenn die nicht für die Primärnavigation benutzt wird, die basiert auf Gyroskopen). Trotzdem dozt er fast genauso gegen Tischbeine wie der völlig kameralose 615, nur leicht vorher abbremsend. OpticEye ist also wohl in der Praxis nur ein Näherungssensor, wie der Roomba ihn auch hat. Zusätzlich wird die Heftigkeit der Kollision durch einen vorne angebrachten Stoßdämpfer gemindert.
Bei anderen Hindernissen gibt es Unterschiede. So blieb der 615 immer auf den Streben des Wäscheständers hängen, halb in der Luft hängend kam er nicht weiter und schaltete sich schließlich ab. Der E5 hängt bei den gleichen Streben ebenfalls kurz in der Luft, gibt sich dann aber einen Ruck und bleibt nicht stecken. Super! Dafür hat er mehr Probleme mit Kabeln als der Roomba, so verfing er sich direkt in den Stromkabeln der Katzenfutterautomaten, mit denen der Vorgänger noch nie ein Problem hatte. Die werde ich nun anders verlegen müssen.
Zur Saugleistung kann ich noch nicht viel sagen. Die Herausforderung bei uns sind lange Menschenhaare und sehr viele Katzenhaare. Mit den Menschenhaaren hatte der Roomba ernste Probleme, sie verfingen sich in seiner Bürste und zerschnitten sie richtig. Aber zumindest solange die Bürstenborsten nicht ganz abgeschnitten waren schaffte er es doch, die Wohnung deutlich sauberer zu machen. Meinem Ersteindruck nach schafft der E5 das genauso, saugt aber ebenfalls nicht so perfekt als würde man es selbst machen, braucht dafür jedoch weniger Zeit als der Roomba.
Der Staubbehälter des E5 ist ein bisschen kleiner (640ml statt 700ml). Ob der waschbare Filter gut funktioniert kann ich nicht ordentlich messen, die Idee aber finde ich gut.
An den E5 kann man auch einen Wischmop anbringen, ein Wasserbehälter würde den dann befeuchten. Da hier in der Wohnung Laminat ist habe ich den gleich in der Packung gelassen. Ich will aber noch testen, ob zumindest das gelegentliche Wischen damit auf dem Laminatboden möglich ist. Der Roomba 615 hatte keine Wischfunktion.
Beiden gemein ist, dass Wlan nicht benötigt wird. Aber der E5 hat eine optionale Appunterstützung, die ich nicht getestet habe. Der 615 hat gar kein Wlan.
Anfangsprobleme mit diesem E5
Nicht unerwähnt bleiben soll, dass ich zu diesem Zeitpunkt noch nicht sicher bin, ob der gekaufte E5 (ein C-Modell, angeblich ein reparierter Rückläufer) nicht doch noch zurückgeht. Beim ersten Test hatte er für eine kurze Weile wunderbar gesaugt, danach aber klappte das Docken nicht – er fuhr zum Ladedock und auch drauf, blieb aber dann nicht drin stehen. Beim manuellen Hereinsetzen gab es keine Rückmeldung, dass das Laden nun klappt. Erst eine Stunde später kam plötzlich eine Fanfare vom Roboter. Ich ging davon aus, dass der Akku kaputt sei.
Danach aber funktionierte der Roboter, auch das Docken funktionierte jetzt mehrmals im ersten Anlauf und die Akkukapazität wirkte völlig okay. Hier muss ich also noch beobachten, ob das ein einmaliger Ausrutscher war oder ob dieser E5 nicht doch einen Schlag weg hat.
Der Roborock E5 bietet dem ersten Eindruck nach genau den Sprung, den ich mir erhofft habe. Ohne unbedingt jedes mal perfekt zu saugen, macht er die Wohnung genauso dadurch sauberer, dass er viel öfter saugt als ich es selbst machen würde. Aber anders als der Roomba 615 macht er das nicht mehr per Zufallsnavigation, sondern seine Liniennavigation ist nachvollziehbarer. Dadurch ist er weniger nervig, wobei dabei auch der etwas geringere Lärmpegel hilft.
Gleichzeitig vermeidet er den Sprung in unsere dystopische Jetztzeit, in der mit Kamera ausgestattete Roboter, dazu mit proprietärer Software ausgestattet und oft mit Verbindungen zu Diktaturen wie China belastet, ohne jegliche Kontrolle nach Hause funkend durch privateste Wohnungen fahren. Will man keine solche Unsicherheit wird sonst oft der Anker/Eufy RoboVac 11S empfohlen, der ist aber bei der Routenplanung genauso beschränkt wie mein alter Roomba 615, wäre also keine Verbesserung. Und mit Valetudo einen internetbewehrten Roboter zu entschärfen, wie bei GNU/Linux.ch gut beschrieben wurde und was als zweite Alternative gilt, war selbst mir zu aufwändig.
Ein paar Dinge könnten besser sein:
- Weniger laut geht immer.
- Kleiner und flacher wäre ebenfalls nett, natürlich nicht auf Kosten der Kapazität des Saugbehälters und des Akkus.
- Der Roboter sollte Objekte vermeiden können, insbesondere sich nicht in Kabeln verheddern. Diese Objekterkennung und Vermeidung fehlt dem E5 leider komplett.
- Die Navigation sollte perfekt funktionieren, der Roboter sich so effizient bewegen wie möglich.
- Der perfekte Saugroboter hätte eine gute Wischfunktion, so minimal nass um selbst auf Laminat zu funktionieren, die (wie der Roborock S7 und S8 es wohl können) für Teppiche dann deaktiviert wird.
Aber bei der derzeitigen Produktentwicklung in diesem Bereich ist nicht damit zu rechnen, dass je ein Roboter mit diesen Verbesserungen auf den Markt kommt und ohne App- und Internetanbindung auskommt. Von daher bin ich mit dem E5 erstmal zufrieden.
Linksammlung 49/2023
Friday, 8. December 2023
Diese Woche fand ich besonders erwähnenswert:
Making noisy SVGs fand ich spannend, weil mir völlig unklar war, dass das SVG-Format sowas kann.
Wayland Isn't Going to Save The Linux Desktop, obwohl der Artikel von 2022 ist, tauchte diese Woche auf meinem Radar auf. Seitdem gab es starke Versuche Wayland trotz aller Schwächen einfach trotzdem zu nutzen und X11 wegzulassen. Die Kritik im Artikel ist trotzdem weiterhin berechtigt.
Der wahre Preis des Lidl-Kleids deckt auf, wie ein vermeintlich geprüft nachhaltiges Kleid überhaupt nicht nachhaltig produziert wurde. Der Grüne Knopf ist wohl eine Scheinzertifizierung, obwohl ein Siegel der Bundesregierung.
Wagenknechts Schreibbrigade beleuchtet die NachDenkSeiten. Das ist ziemlich hart zu lesen – vor vielen Jahren war das mal wirklich eine kritische alternative Seite. Aber schon während Covid hatte ich mal wieder geschaut, was die so treiben, und mich massiv über ihre Verschwörungstheorien gewundert. Mittlerweile sei es sogar eine Trollseite für Russland und Wagenknecht. Echt traurig.
Auch wichtig und erschreckend, Elon Musk to advertisers who are trying to ‘blackmail’ him: ‘Go f--- yourself’ (Video). Man hat ja wahrscheinlich schon davon gelesen, aber es wirklich zu sehen beleuchtet nochmal sehr deutlich, wie Musk mittlerweile drauf ist.
Dagegen was positives beim Urheberrecht: OLG Dresden stuft DNS-Resolver bei Verstößen nicht als Täter ein. Damit wurden vorherige recht klare Fehlurteile ausgebügelt.
Simdock jetzt mit Compositing und GTK3
Tuesday, 5. December 2023
Simdock ist mein Dock für den Linuxdesktop, das ich seit ein paar Jahren pflege. Jetzt konnte ich dem Code ein großes Update verpassen und damit das Projekt für die nächste Zeit absichern.
Kurzfassung
- Simdock läuft nun mit der GTK3-Version von wxWidgets, bei mir ist das das sehr neue wxWidgets-3.2.4. Dadurch wird es auch auf modernen Systemen wieder kompilieren.
- Durch den Wechsel zu GTK3 musste auch die genutzte Library Wnck aktualisiert werden, die Version 1 zuvor setzte auf GTK2, das kollidierte. Nebeneffekt davon ist, dass für die dynamischen Programmanzeigen größere Icons gewählt werden sollten.
- Dank der neuen Version von wxWidgets konnte durch wenige Codeänderungen Compositing für den Dockhintergrund aktiviert werden. Die Pseudotransparenz funktioniert weiterhin, wenn kein Compositor am Laufen ist.
- Es werden wieder AppImages gebaut. Die gab es für Simdock schonmal, die waren aber durch den Wegfall von Travis CI ausgefallen. Die AppImages hatten (zumindest aber auf meinem System) noch einen Bug mit dem neuen Compositing, mehr dazu unten.
Der allgemeine Hintergrund des Updates
Simdock lief die letzten Jahre relativ zuverlässig vor sich hin. Aber der Wechsel zu GTK3 war eine große Gefahr für die weitere Existenz des Projekts und die Migration jahrelang durch eine fehlende Funktion von GTK3 blockiert.
Nun war der Wechsel aber unumgänglich, es musste etwas passieren. Denn selbst auf meinem eigenen System konnte ich Simdock nicht mehr bauen. Void Linux hatte wxWidgets auf GTK3 umgestellt, ohne die GTK2-Version weiterhin bereitzustellen. Und das alte AppImage lief auch nicht, neue wurden sowieso nicht mehr gebaut. Ich rechnete eigentlich damit, das Projekt aufgeben zu müssen – und stolperte dann gestern doch über die Lösung.
Als Simdock vor ~2 Monaten für mich wegbrach hatte ich noch mit keiner Lösung gerechnet und mir stattdessen Alternativen angeschaut. Und tatsächlich auch gefunden: Plank ist mittlerweile eine hervorrage Alternative. Es fehlen die konfigurierbaren Starter, dafür kann es sich selbst verstecken (Auto-Hide) und und ist so platzsparend, außerdem hatte es schon lange echte Transparenz. Ich nutzte es mit Openbox und jetzt nochmal mit IceWM (da kollidierte es erst mit meiner Konfiguration, aber mit der Versteckenfunktion passte es). Die Existenz der Alternative war entspannend! Aber jetzt nachziehen zu können befriedigt dann doch meinen Ehrgeiz. Und es war die bessere Lösung in meiner derzeitigen Projektaufräumaktion, so statt dem Aufgeben genau wie bei izulu nach Jahren des Zeitmangels die Modernisierung umsetzen zu können.
Technische Erklärungen
Warum war der Wechsel zu GTK3 so problematisch? Es sollte überraschen, denn wxWidgets abstrahiert das Toolkit eigentlich weg, ob da jetzt GTK2, GTK3 oder gar QT läuft sollte egal sein. Gleichzeitig ist wxWidgets eines dieser großartigen Projekte, bei denen Upgrades generell schmerzlos sind, ich musste genau null Zeilen wxWidget-Code anpassen.
Das Problem war diese Funktion: gdk_pixmap_foreign_new()
. Simdock benutzte sie, um den Hintergrund des X11-Desktops zu holen und den dann als Hintergrund des eigenen Fensters zu setzen. Klassische Pseudotransparenz. Und für diese Funktion gibt es in GTK3 einfach keinen direkten Ersatz. Der Code sah leicht vereinfacht so aus:
wxBitmap* backImage = new wxBitmap(); WnckScreen *screen = wnck_screen_get_default (); // The XID of the background pixmap Pixmap pm = wnck_screen_get_background_pixmap(screen); if (pm != None) { wxBitmap* backImage = new wxBitmap( gdk_pixmap_foreign_new( pm ) ); return backImage; }
Da wurde also auch Wnck genutzt, dessen Details sich ebenfalls ändern würden, das verstellte weiter den Blick auf die Lösung. Es gibt einfach keinen dokumentierten Weg, die Pixmap des XServers mit GTK3 in ein Grafikobjekt zu quetschen um sie dann wxBitmap zu übergeben.
Stattdessen sah meine Lösung schließlich so aus:
wxSize sz = wxGetDisplaySize(); wxBitmap* backImage = new wxBitmap( gdk_pixbuf_get_from_window( gdk_x11_window_foreign_new_for_display( gdk_display_get_default(), gdk_x11_get_default_root_xwindow() ), 0, 0, sz.GetWidth(), sz.GetHeight() ) );
Das benutzt jetzt also GDK-Funktionen ohne den Wnck-Umweg. Und war nur möglich, weil ich mit der Hilfeseite zu X Window System Interaction endlich über die passende Dokumentation gestolpert war. Der Code holt sich das Root-XWindows mit gdk_x11_get_default_root_xwindow()
, macht daraus ein GDK-Window mit gdk_x11_window_foreign_new_for_display
und davon kann gdk_pixbuf_get_from_window
dann eine Grafik ziehen. Dass dadrin ebenfalls gdk_display_get_default
benutzt wird folgte direkt der Dokumentation.
Jedoch: Das ist nicht ganz das gleiche! Denn die Grafik beinhaltet auch alle offenen Fenster. Es ist eben nicht der X-Hintergrund, an den ist einfach nicht ranzukommen. Doch für Simdock war das gut genug: Normalerweise sind eh keine Fenster hinter einem Dock, und ich schaffte es, Simdock vor dem Ziehen dieses Screenshots auszublenden. Flickert ganz kurz, aber da das nur bei Hintergrundbildwechseln passiert sollte das okay sein.
Damit war die Makefile anpassbar. Wnck-3.0 und wxWidgets-GTK3 konnten ins Projekt, Simdock damit wieder auf modernen Systemen gebaut worden. Und die nächste langjährige Baustelle war angehbar.
Echte Transparenz mittels eines Compositors hätte das Problem mit der oberen schwierigen Umsetzung von Pseudotransparenz umgangen. Diese Transparenz sollte wxWidgets eigentlich können, es gibt mit wxBG_STYLE_TRANSPARENT
einen passenden setzbaren Hintergrund, der echte Transparenz bringen soll. Doch bei mir hatte das in vorherigen Tests nie geklappt.
Mit GTK3 und einer neuen Version von wxWidgets testete ich das erneut. Und tatsächlich: Es brauchte nur minimale Codeänderungen und die Transparenz lief direkt. Ein echter Durchbruch. Simdock soll weiterhin Pseudotransparenz unterstützen – das war das originale Alleinstellungsmerkmal des Programms, weswegen ich es überhaupt übernommen habe – aber echte Transparenz zusätzlich anbieten zu können ist super. Vor allem, wenn es jegliches Flickern vermeidet.
Die Lösung folgt genau der Dokumentation, wie ich sie vorher schonmal verlinkt hatte: Im Konstuktor des wxWindow, in diesem Fall dem wxFrame, SetBackgroundStyle(wxBG_STYLE_TRANSPARENT);
setzen und erst danach mit Create(parent, ...);
das Fenster erstellen. Vorher sah der Anfang des Konstruktors so aus:
MyFrame::MyFrame (wxWindow parent, simSettings set, ImagesArray array, wxWindowID id, const wxString & title, const wxPoint & pos, const wxSize & size, long style): wxFrame (parent, id, title, pos, size, style) { … SetBackgroundStyle(wxBG_STYLE_PAINT); }
Daraus wurde das hier:
MyFrame::MyFrame (wxWindow parent, simSettings set, ImagesArray array, wxWindowID id, const wxString & title, const wxPoint & pos, const wxSize & size, long style): wxFrame() { // This enables full composited transparency: SetBackgroundStyle(wxBG_STYLE_TRANSPARENT); Create(parent, id, title, pos, size, style); … }
Da veränderte sich also ebenfalls die Definition des Konstruktors, plus dem schnelleren Setzen von wxBG_STYLE_TRANSPARENT
vor dem Create
.
Ausstehende Probleme
Simdock hat relativ früh AppImages bereitgestellt. Ich war auf der Froscon in einem Vortrag des AppImage-Projekts und fand die Idee super. Die wurden aber die letzten Jahre nicht mehr gebaut, weil die Travis-CI nicht mehr kostenlos war.
Also stellte ich die Buildpipeline wieder her. Diesmal mit Github-CI, und weil linuxdeployqt einen Fehler produzierte wechselte ich zu linuxdeploy mit dem GTK-Plugin. Das funktionierte an sich! Aber: Das AppImage bleibt bei mir schwarz, wenn Compositing aktiviert ist.
Ich habe ein Issue dafür auf, in dem ich auch mehr der Details zu den AppImages erkläre. Den gewählten Ansatz finde ich wirklich geschickt, die Logik hauptsächlich in eine zweite Makefile zu packen. Das hält die Github-CI-Workflowdatei simpel. Aber das Ergebnis muss eben auch funktioniere. Bis sich da eine Lösung auftut werde ich das AppImage weiter bauen lassen, aber nicht bewerben.
Mit all den Änderungen hat Simdock technisch einen großen Schritt getan und ich freue mich, dass das möglich war. Es wäre zu schade gewesen, das Projekt wegen den GTK-Migrationsproblemen aufgeben zu müssen. Und wer ein nettes Dock mit gutem Fenstermanagement sucht, mit Plank aber aus irgendwelchen Gründen nicht warm wird, dem kann ich Simdock jetzt wieder guten Gewissens empfehlen. Die Installation per Kompilierung wird im Readme beschrieben.
Linksammlung 48/2023
Friday, 1. December 2023
Diese Woche fand ich besonders erwähnenswert:
Das Paper-Park-Problem. Schutzgebiete im Meer, die dann tatsächlich einfach nicht geschützt werden. Wieder eine Sache, bei der Deutschland zugunsten der Profite Einzelner seinen kollektiven Verpflichtungen nicht nachkommt.
Auch etwas zur Rolle Einzelner und den Interessen von Untergruppen: The Failed Commodification Of Technical Work beschreibt, wie Programmierarbeit eben nicht in auswechselbare Industriearbeit umgewechselt werden konnte. Zum Glück!
Ein bisschen zu optimistisch ist diese News zur Linksteuer: Kanada gibt es billiger, damit Google News weiterläuft. Dass Kanada seine Forderung nicht völlig durchkriegt, weil Meta sich zurecht weigert zu zahlen und Google ebenfalls Bedingungen stellt, macht ja nicht rückgängig, wie korrupt hier Geld den Verlegern zugeschustert wird.
Eine beschränktere Öffentlichkeit betrifft Shutting down the Matrix bridge to Libera Chat, trotzdem beachtenswert. Libera Chat ist das Nachfolgenetzwerk zu Freenode, also IRC. Und die Kooperation mit Matrix hatte Bedeutung sowohl für die Legitimität für Matrix als die favorisierte moderne Lösung von Technikern, und für die fortwährende relative Wichtigkeit von IRC.
Warum dann also die Abschaltung? Matrix Bridge Temporary Shutdown, a Retrospective erklärt es aus der Perspektive von Libera.
Ein technisches Problem mit noch mehr Auswirkungen ist BLUFFS: Neue Angriffe gefährden Bluetooth-Datensicherheit auf Milliarden Geräten. Solche Lücken sind es, weswegen Geräte wie Telefone fortwährend Sicherheitsupdates brauchen.
15 Jahre Serendipity als Entwickler - ein Rückblick und ein Ausblick
Monday, 27. November 2023
Es ist jetzt ziemlich genau 15 Jahre her, dass ich das erste mal als Entwickler an der Blogsoftware Serendipity gewerkelt habe. Zumindest sagt so mein Archiv. Und mir ist in dieser Winterzeit melancholisch, sodass ich zurückblicken will, gleichzeitig suche ich einen Ort um Zukunftspläne für Serendipity aufzuschreiben. Mach ich beides doch hier.
Rückblick
Ich hatte nie vor, an Serendipity zu arbeiten. Es war kein geplantes Projekt. Es war vielmehr so, dass ich meinen Blog von einer Blogplattform (twoday.net) umzog, Dirk mir Zuflucht aus seinem Server anbot und dabei Serendipity als Blogsoftware vorschlug. Als ich die Software einmal am Laufen hatte, wollte ich auch meinen Blog anpassen. Das tat ich. Und als ich dann merkte, dass auch im Projekt selbst Platz dafür wäre, rutschte ich da langsam rein.
Beginn mit Plugins, Dokumentation und kleinen Anpassungen
Es war ein Plugin zur Livevorschau der Kommentare, das ich damals zuerst in den Blog stellte. Erinnere ich mich richtig war das meine erste Begegnung mit PHP und jQuery. 2008 dürfte ich im Informatikstudium gewesen sein, bekam dadurch also etwas Programmierübung, brauchte aber dringend mehr. Serendipity bot sich dafür damals sicher an.
Generell hatte mich der Kommentarbereich ziemlich gepackt. Den wollt ich in meinem Blog so gut wie möglich haben. Daher wohl auch das Plugin. Ich ergänzte das dann durch Änderungen am Design des Bereichs selbst. Noch heute sind mir Kommentare wichtig – und für mich ist es auch amüsant, das solche Nutzbarkeitsüberlegungen später mal mein Beruf wurden. Bei manchen Dingen war ich die letzten Jahre ziemlich konstant.
Es folgt ein Plugin für Markupbuttons im Kommentarformular, das existiert vom Konzept heute noch so und ist immer noch praktisch. nl2p danach war eine Fortführung meiner Auseinandersetzung mit dem Webteam von UbuntuUsers, die sich geweigert hatte Nutzer neue Zeilen ohne nötige Leerzeile setzen zu lassen – mir war es wichtig zu beweisen, dass die technische Argumentation dagegen vorgeschoben war. Der Code dafür lebt heute im nl2br-Plugin, von Stephan gründlich überarbeitet. Autotitel danach war eine gute Idee, es setzte den Titel der verlinkten Seite als Titel des Links. Es krankte aber an den Limitierungen der PHP-Plattform; Das müsste im Hintergrund geschehen, was aber nicht ging (nicht geht sogar!), daher setze ich es heute nicht mehr ein.
Das wichtigste Plugin war aber sicher das Bayes-Plugin, eine Kooperation mit dem Forumnutzer kleinerChemiker. Wir nahmen einen Bayes-Filter und ließen den zur Spamerkennung über Blogkommentare laufen und stellten fest: Das funktioniert super. Gleiches gilt heute noch, auch wenn der Code deutlich überarbeitet wurde und die neueste Version des verschlankten Plugins den Bayes-Filter als Library nutzt. Das Bayes-Plugin läuft heute noch hier und in einigen anderen Serendipity-Blogs.
Als ein guter Schlusspunkt für diese Zeit taugt die Anleitung zum Pluginschreiben, traute ich mir also inzwischen zu sowas zu verfassen. Und dann wurde es etwas ruhiger. Es gab noch den Template-Editor, woraus man heute wahrscheinlich was nutzbareres formen könnte. Aber im Grunde war ich mit den Pluginideen durch und genug damit beschäftigt, die meinen am Leben zu halten.
Wenn ich mir die Artikel von damals ansehe kommen neben den Plugins nun langsam andere Überlegungen dazu. Zum Beispiel die, dass man die Suche verbessern könnte. Auch, dass Archiv-URLs stabil sein sollten, was inzwischen wirklich fest im Kern ist und absolut richtig war. Oder ich erwähnte früh, dass dem Adminbereich eine Überarbeitung gut tun würde. Und genau das sollte später folgen.
Die 2.0-Überarbeitung
Mit Serendipity 2.0 war ich dann wirklich als Serendipity-Entwickler aktiv. Vorher hatte ich ein paar kleinere Patches eingebracht und wie oben gezeigt an meinen eigenen Plugins gearbeitet. Aber 2.0 war eine andere Dimension.
Wir – 2.0 war eine große Teamarbeit – hatten damals erkannt, dass Serendipity ein Problem hatte: Der Adminbereich war damals eine ziemlich wüste Implementierung. Er bestand komplett aus PHP-Dateien, die den Großteil der Logik sowie das gesamte HTML beinhalteten. Meine vorherigen Ideen zur Verbesserung des Bereichs waren so überhaupt nicht umsetzbar, das HTML war nicht editierbar. Und das war ein Tabellenlayout, natürlich, wohl geschrieben von vor-CSS geprägten Entwicklern. Was nicht abfällig klingen soll, so hatte ich es ja auch zuerst gelernt.
Das Großprojekt in 2.0 war also die Smartifizierung des Blog-Backends. Smarty, weil das die Template-Sprache war, die auch in den existierenden Blog-Themes genutzt worden war. Wir machten das so: Wir rissen das HTML aus den PHP-Dateien, packten sie in Smarty-Templates, und wo immer vorher in den PHP-Dateien Logik die HTML-Ausgabe steuerte wurde stattdessen eine Variable gesetzt, die dann an die Smarty-Templates übergeben wurde. Wir, das waren meiner Erinnerung nach in dem Fall ophian und ich. Gleichzeitig war YellowLed dran, das so entstehende HTML zu verbessern und mit einem CSS-Design zu versehen. Wobei ich auf Backendseite half. Dafür trafen er und ich uns sogar in Mumble und besprachen die Änderungen. Das Ergebnis ist der heute noch genutzte Adminbereich.
Den stellte YellowLed sogar in einem Video vor:
Serendipity 2.0 war mir so wichtig, dass ich andere Probleme von Serendipity mit angehen wollte. So hieß es eine Weile, ein Problem für die Adaption von Serendipity sei ein fehlendes Theme für Bilderblogs. Also baute ich eines. Und weil ich schon dabei war gleich noch ein zweites, gedacht als Alternative für textlastige Blogs. Es freute den inneren Kern ersichtlich, aber hatte ansonsten nicht den gewünschten Effekt.
Wie auch Serendipity 2.0, wenn man ehrlich ist. Die große Anstrengung bewahrte vielleicht die Nützlichkeit der Software für moderne Browser (und Telefone!). Aber sie bewirkte nicht den großen Popularitätssprung, den zumindest ich mir für Serendipity erhofft hatte. Vielleicht war es zu wenig zu spät (wir brauchten viel länger als gedacht), vielleicht waren die Alternativen zu gut, vielleicht hatten wir Pech oder es war einfach nie in den Karten. Aber ich glaube wirklich, man kann den negativen Effekt davon am nächsten Abschnitt sehen.
PHP 7, 8 und das Team
Nach 2.0 wurde es bei mir im Blog etwas ruhiger um Serendipity.
Im Idealfall hätten wir 2.0 neue große Releases nachgeliefert. Aber das schafften wir nicht, die Luft war raus. Nachfolgende Releases hatten durchaus noch Neuerungen: Responsive Bilder und die Bildergalerien per Mediendatenbank, echtes UTF-8 für MySQL-Datenbanken, ein neuer Cache, Komfortverbesserungen wie das Aktualisieren aller Plugins auf einmal. Das fällt zumindest mir direkt ein. Aber das ist wenig im Vergleich zu einem neuen Backend, von der Sichtbarkeit und vom Aufwand her. Während also neue Entwickler die Lücke hätten füllen müssen, blieben die bis auf ein paar Ausnahmen aus – oder rannten gegen die gewünschte Backwards-Kompatibilität und gaben auf, das beobachtete ich gleich dreimal.
Auch neue Plugins von mir wurden seltener. Das VGWort-Plugin als nächstes größeres Plugin z.B. brauchte ein paar Jahre. Es ist kein Zufall, dass ich mich später zu einer Serendipity-Entwicklerwoche erst aufraffen musste (gute Idee übrigens, da kamen nette Sachen bei raus).
Es kamen mehrere Dinge zusammen. Tatsächlich war es nicht (nur) die Enttäuschung über dem fehlenden Nachhall von 2.0. So wechselte ich mein Studium bzw meinen Job und hatte mit jedem Wechsel weniger Zeit – Zeit, die sich Serendipity mit meinen anderen und inzwischen mir auch sehr wichtigen Projekten teilen musste, insbesondere PC-Kombo und Pipes. Und das zwischenzeitliche Auswandern nach Frankreich war auch ein Lebensumbruch, wo s9y erst später wieder reinpasste.
Aber so ähnlich ging es scheinbar auch den anderen, die an 2.0 beteiligt gewesen waren. Jeder wird seine Gründe gehabt haben. Aber Fakt ist: Nach 2.0 war der Code teils verbessert, das Projekt aber nicht gesünder, sondern es fehlten Entwickler. Und ich war im Konflikt: Sinnvoller, das Projekt sich heilen zu lassen und sich rauszuhalten? Oder im Gegenteil Arbeit reinzustecken, um Entwicklungen zu beschleunigen?
Gleichzeitig wurde wiederholte Anstrengung nötig, ob wir wollten oder nicht, was dann für mich entschied. Und zwar aufgrund der PHP-Updates. Sowohl bei PHP 7 (da war z.B. Serendipity 2.3 für die Versionen nach 7.1), als auch bei PHP 8, jede Punktversion dieser Versionen brach alten PHP-Code auf neue Art und Weise. Und Serendipity ist vollständig alter PHP-Code. Zwei Glücksfälle kamen bei PHP 8.0 zusammen und ermöglichten Serendipity 2.4: Ich hatte durch einen Jobwechsel wieder mehr Zeit und neue (bzw neue alte) Entwickler tauchten wie für PHP 7 eben doch auf, wie surrim, sodass das Projekt die Codemigration stemmen konnte. Trotzdem war PHP 8.0 für Serendipity ein Monster, das sich zum Glück seitdem nicht wiederholt hat.
Es gab also die großen Entwicklungsbemühungen durchaus noch. Auch von mir. Aber anstatt in schön sichtbares und präsentierbares zu fließen ging viel der Energie für die schnöde Kompatibilität mit neuen PHP-Versionen drauf. Dafür kann das Projekt nichts, aber es schadete ihm. Oder vll stimmt das nichtmal, vll ist Serendipity einfach erwachsen genug, dass weitere Änderungen abseits von Wartungsarbeit kaum nötig waren?
Ein möglicher Ausblick
Und damit kommen wir zum Ausblick. Serendipity ist eine ziemlich großartige Blogsoftware und ein Projekt, das sich jetzt viele Jahre gehalten hat, sich also viele weitere Jahre halten wird. Aber es ist auch ein Projekt geworden, das sich langsamer entwickelt und bei Releases hinterherhinkt. Für etablierte Software ist das in Teilen gut, es ist sogar Projektphilosophie, so stabil wie möglich zu sein. Aber klar, die Gefahr ist, dass irgendwann zu wenig Bewegung im Projekt ist, um neue Entwicklungen mitzugehen und die Software deswegen irgendwann sogar stirbt. Und nebenbei: Wenn ich mir die untere Liste anschaue beantworte ich meine Frage von oben mit nein, s9y hätte durchaus mehr aktive Entwicklungsarbeit gut vertragen können, das Innehalten war nicht nur Zeichen der fertigen Entwicklung.
Es ist jetzt leider ganz konkret davon auszugehen, dass ich in Zukunft wieder weniger oder sogar eine Weile gar keine Zeit haben werde – ich rechnete stattdessen mit mehr Zeit, aber es kam etwas dazwischen. Andere werden das abfangen. Aber was wird das Projekt überhaupt in Zukunft machen? Was würde ich angehen, wenn ich mehr statt weniger Zeit hätte, wenn gar jemand Entwicklungsarbeit an Serendipity sponsern würde? Das sind meine Überlegungen dazu:
Kompatibilität mit neuen PHP-Versionen
Weil das PHP-Projekt auf Rückwärtskompatibilität scheißt wird es ein gewichtiger Teil der zukünftigen Arbeit werden, Serendipity einfach am Laufen zu halten. PHP 8.3, gerade veröffentlicht, hat wieder Breaking Changes, es wird bei 8.4 nicht anders sein. Bestimmt treffen die uns. Und weh dem, der Serendipity an PHP 9.0 anpassen muss.
Dazu ist es ja nicht nur der Kern von Serendipity, der hier Arbeit erfordert. Sondern auch die vielen Plugins, von denen der Großteil keinen aktiven Maintainer hat. Warum auch, sie funktionierten Jahrzehnte vor sich hin. Die Themes genauso, sie können viel Arbeit erfordern, wenn wieder wie bei PHP 8.0 Smarty versagt und die Codeänderungen nicht auf der Ebene der Template-Engine abfedert.
Gleichzeitig ist diese Kompatibilität auch die Arbeit, die auf jeden Fall gemacht werden wird. Zu viele Entwickler nutzen Serendipity für ihre eigenen Blogs. Wenn nicht die derzeitigen Entwickler handelten, würden andere zugunsten ihrer eigenen Blogs die nötigen Codeänderungen schreiben und bestimmt auch teilen. Es ist die auf den ersten Blick besorgniserregendste Herausforderung, aber auf den zweiten die ungefährlichste.
Automatisierte Tests
Die Arbeit an den PHP-Versionen ist auch deswegen schwer, weil das Projekt hier nicht gut aufgestellt ist. Es fehlen automatisierte Tests für Serendipity selbst. Sie fehlen auch besonders für die Spartacus-Plugins. Es bräuchte einmal ein System, das interne Codestellen durch Unit-Tests absichert – das wäre mit Github auch gut umsetzbar und wir haben mit ersten Tests den Ansatz dafür. Aber es braucht vor allem zweitens ein Testsystem, das alle Plugins installiert und prüft, dass zumindest die Kernfunktionen des Blogs weiterhin funktionieren. Und das jeweils mit allen PHP-Versionen, den neuen wie den alten.
Das wäre einmalige Arbeit, vll eine Heidenarbeit sogar, die letzten Endes aber Arbeit sparen würde.
Webmentions
Von mir initial geschmäht, gab es in den letzten Jahren eine Bewegung namens IndieWeb. Grundsätzlich kompatibel mit der Idee von Blogs, scheinen die Akteure nicht in der alten Blogosphäre verhaftet gewesen zu sein. Ergo bauten sie Webmentions und erfanden Trackbacks neu, gerade so abgewandelt, dass sie inkompatibel sind.
Trotz meiner negativen Bewertung denke ich mittlerweile, dass Serendipity den Standard trotzdem unterstützen sollte. Neben Trackbacks und Pingbacks ist die Aufnahme von Webmentions kein technisches Problem. Es wäre fürs Projekt wichtig, solche neuen Impulse aufzunehmen und ggf. so neue Entwickler anzusprechen. Ich denke dabei ganz konkret beispielsweise an Beko Pharm – sein ist ein Blog, wie er früher mit Serendipity gebaut worden wäre, wofür sich Serendipity aber wahrscheinlich mehr in sein Dienstenetzwerk eingliedern müsste.
ActivityPub
Gleiche Denkrichtung: ActivityPub. Wir reden schon ewig davon, dass Kommentare zu Blogartikel in sozialen Netzwerken auch im Blog gespiegelt werden sollten. Denn der Blog sei das Zentrum der Netzpräsenz, die Heimat. Genau das wäre mit ActivityPub möglich, wenn auch nicht mit Facebook, so doch mit Mastodon und anderen föderalisierten Diensten. Genau so wäre es möglich, Blogs ohne den Umweg RSS direkt in Mastodon etc zu abonnieren, wenn Serendipity ein paar Daten aussenden und empfangen würde.
Es gibt dafür mit ActivityPhp sogar ein passend erscheinendes PHP-Projekt, mit dem das als Plugin oder Teil des Kerns relativ vernünftig umsetzbar erscheint.
Theme-Archäologie
Gleichzeitig sollte Serendipity seine Identität bewahren. Ich meine, seine Geschichte vielleicht sogar herausstellen. Ich zumindest beobachte an mir echte Freude, wenn ich einen klassischen Blog mit klassischem Design sehe. Und genau davon hat Serendipity eine Riesenauswahl im Spartacus-Repository.
Diese Themes sind aber wirklich alt. Gerade mit Serendipity 2.0 (bzw 2.1?) gingen sie teils richtig kaputt: Wir hatten damals auch das Standard-Frontend auf 2k11 umgestellt und damit weg vom tabellenbasierten vorherigen default-Theme. Damit können viele der alten Themes aber immer noch nicht umgehen. Teils habe ich sie für PHP 8.0 etwas repariert, aber da sind immer noch Darstellungsfehler. Plus: Auch das HTML ist teilweise arg veraltet.
Es wäre toll, das alles wirklich zu reparieren. Die alten Themes technisch so zu modernisieren, dass sie erstens ein responsives CSS-Layout ausgeben, zweitens richtig mit dem von Serendipity ausgegebenem neuem HTML und CSS (wie im Kommentarformular) zusammenarbeiten. Damit wäre ein derzeit kaputter Teil von Serendipity für Nutzer wieder ohne den derzeit entstehenden negativen Eindruck nutzbar und Serendipity würde gleichzeitig seine Geschichte betonen.
Spartacus modernisieren
Und schließlich würde ich Spartacus modernisieren.
Bei Spartacus stören mich drei Dinge:
- Um zu erkennen, ob ein Plugin eine neue Version verfügbar hat, muss die aktuelle Version ausgelesen und dafür die PHP-Datei (des Plugins auf dem eigenen Server) interpretiert werden. Stattdessen sollte die Versionierung über eine .INI oder .toml-Datei laufen, also per Metadatendatei. Das würde auch bei Inkompatibilitäten mit neuen PHP-Versionen helfen.
- Gleichzeitig muss für Spartacus auf einem Server jeden Tag XML-Dateien generiert werden. Die gehen dann an die Blogs, so wissen sie welche Versionen es auf Spartacus gibt. Eine Lösung ohne diesen Generierungsschritt wäre ausfallsicherer. Vielleicht könnten wir im Git-Repository durch einen Git-Task diese Liste der aktuellen Pluginversionen automatisch erstellen, wann immer sich eine der Metdatendateien ändert?
- Spartacus aktualisiert derzeit Themes nicht, nur Plugins. Themes werden einmalig heruntergeladen, aber Updates werden nicht erkannt. Gerade im Hinblick auf das obere Theme-Projekt wäre das aber nötig, plus auch um Updates für zukünftige Smarty-Versionen ausliefern zu können.
Spartacus ist ein Kernbestandteil der Nutzung von Serendipity, Änderungen daran wollen wohlüberlegt sein. Und die alte Infrastruktur ist für sich gesehen ziemlich beeindruckend. Trotzdem fände ich es wirklich gut, wenn Serendipity sich hier verbessern könnte.
Nutzeranforderungen und Nutzertests
Als letzter Zusatz: Serendipity war jetzt so lange Entwickler- und Feedback-gesteuert, dass man auch hier nochmal ansetzen könnte. Was machen Nutzer mit Serendipity, was sind die Stolpersteine, Anwendungsfälle.
Da könnte viel bei rauskommen, was dann weitere Entwicklungen steuern könnte. Und ich habe inzwischen wirklich die Erfahrung, solch eine Erhebung und Auswertung ordentlich durchzuführen. Aber für die dann angesagten Entwicklungen müsste das Projekt danach eben auch die Kapazitäten haben, sonst wäre der Aufwand verschwendet.
Soweit meine Überlegungen. Ich hoffe, die Retrospektive ist für den einen oder anderen Serendipity-Blogger interessant. Ob sie sich mit euren Eindrücken deckt? Es ist ja alles nur meine Perspektive, gefiltert durch ein paar verstrichene Jahre und durch das, was ich eben nicht in den Blog getan und seitdem vergessen habe. Und viel wird bewusst unterschlagen, der Artikel war eh schon zu lang.
Zu den Zukunftsplänen, ich habe natürlich keine Ahnung, ob irgendwas davon Realität werden wird. Vielleicht entwickelt sich ja sogar das PHP-Projekt in Zukunft verantwortungsbewusster und selbst die Gewissheit der Anforderungen von dort fällt flach. Ansonsten sind die Ideen vielleicht für den einen oder anderen Entwickler ansprechend und werden dadurch Wirklichkeit, selbst wenn ich nicht dazu komme. Oder meine verfügbare Zeit entwickelt sich ganz anders, als ich derzeit glaube… Vielleicht aber haben andere auch ganz andere Pläne, auch das könnte völlig okay sein.
Linksammlung 47/2023
Friday, 24. November 2023
Diese Woche fand ich besonders erwähnenswert:
Ubuntu Linux Squeezes ~20% More Performance Than Windows 11 On New AMD Zen 4 Threadripper, ein sehr gutes Zeichen für den Zustand der Linuxplattform.
Ein schlechtes Zeichen für Flutter ist Reflecting on 18 years at Google, wo der Entwickler Hixie seinen Weggang von Google beschreibt, mit sehr viel unverstellter Enttäuschung. Hixie war im Flutterprojekt sehr aktiv, seinen Avatar hatte ich auf Github in vielen Bugreports gesehen. Er will dem Projekt erhalten bleiben, das mag positiv sein, aber wenn Google das Projekt nicht mehr ordentlich tragen kann ist das problematisch.
Nochmal Google, YouTube slows down video load times when using Firefox war ein großer Aufreger die Woche. Die Sabotage scheint subtiler zu sein als es erst hieß, es ist nicht einfach ein Timeout, sondern steht wohl im Kontext der Adblocker-Blocker? Trotzdem mittlerweile leider typisch für Google, mit solchen Aktionen Firefox zu treffen.
Sowas trifft besonders, weil YouTube tatsächlich tolle Videos hat. Mir gefiel I built a PC, but it moves (Video) diese Woche besonders. Nicht nur ist das Ergebnis ein PC-Gehäuse mit beweglichen Teilen in der Vorderseite, das Video arbeitet auch mit vielen Tricks bei den Transitionen und Visualisierungen, um unterhaltsamer und anschaulicher zu sein. Da ist beeindruckend viel Arbeit reingeflossen.
Eine weitere Technikspielerei, etwas weniger DIY, sind die Aufsätze für M.2-SSDs für den Raspberry Pi 5. SSDs verwenden zu können macht den Pi zu einer wesentlich stabileren und damit zu einer brauchbareren Serverplattform.
WandaVision
Monday, 20. November 2023
WandaVision hatte es geschafft, uns direkt bei der ersten Folge zu verlieren. Es blieb zu unklar, was diese schwarz-weiße Folge sein will. Nur weil die Kritiken so gut waren gaben wir ihr noch eine Chance – und tatsächlich, das war berechtigt.
Verliert sich Loki in Zeitreisequatsch und betont zu wenig, was diesen Charakter ausmachen könnte, ist das bei WandaVision überhaupt nicht so. Die Geschichte ändert sich etwas, aber angesichts der ersten Folge ist das ein Glück, wird die Serie danach doch zugänglicher. Und sowohl Wanda als auch Vision werden über ihre Charakterisierung in den Filmen hinaus gezeichnet, mit ihnen kann man durch die Serie nun eher etwas anfangen.
Es geht in der Serie – kleiner Spoiler – primär um Emotionen. Vielleicht zieht sich das gegen Ende ein kleines bisschen, vielleicht ist der Mix mit den Actionszenen etwas fragwürdig, und sicher ist der Einbezug von mir völlig unbekannten neuen Marvelfiguren ein massives Manko. Doch trotzdem ist die Geschichte durch ihren Fokus berührend. Vor allem bleibt WandaVision nach dem holprigen Anfang sehr sehenswert, die Serie verliert sich nicht.
Linksammlung 46/2023
Friday, 17. November 2023
Diese Woche fand ich besonders erwähnenswert:
Man kann hiermit geschickt Paywalls umgehen: Einfach und legal per Open-Source-Tool, der Browser-Erweiterung BibBot. Leider sehe ich in der Konfiguration meine Stadtbibliothek nicht, aber vielleicht funktioniert es für einen der Leser hier.
Ähnlich potentiell für mich praktisch fand ich Roborock S7 vacuumed. Es wird ausführlich beschrieben, wie die alternative Software Valetudo auf den Saugrobotor aufgespielt werden kann. Ich war bei meiner letzten Suche nach einer Alternative für meinen inzwischen wirklich alten (und lauten) Roomba schier verzweifelt daran, was für Datenkraken sich in diesem Bereich tummeln, dass alle Geräte proprietäre Software laufen haben und auch auf dem Telefon als Steuer-App einfordern. Da tut so eine Anleitung gut, auch wenn es ziemlich aufwändig aussieht.
Auf der anderen Seite der Wirtschaft gab es diese Nachricht, Google shares 36% of its revenue with Apple. Alles ein Argument im Monopolverfahren, zur Wichtigkeit der Standardsuchmaschine.
Und weil ich die Woche unterwegs war bleibt es bei den drei Links.
Loki
Monday, 13. November 2023
Die Idee einer Serie um den ambivalenten Marvel-Charakter gefiel mir. Die Idee der Disney+-Serie Loki war aber eine ganz andere und gefiel mir so gar nicht.
In der Serie wird Loki praktisch dupliziert. Dadurch taucht die TVA auf, um die zweite Version von Loki einzusammeln und so eine alternative Zeitlinie zu verhindern. Doch statt die Loki-Kopie zu töten, wie sonst üblich, rekrutieren sie ihn um ein Problem zu lösen. Daraufhin rennt Loki durch die Zeitlinien.
Mit diesem Szenario hat die Serie gleich mehrere Probleme:
Erstens ist dieses Szenario einfach doof. Multiversen und Zeitreisen sind immer Mist, auch für diese Variante dieser Standardgeschichte gilt das, sie kommt aus dem generischen kaum heraus. Ein paar nette Ideen sind drin, aber ansonsten rennt das in die üblichen Probleme der Beliebigkeit und dem Fehlen jeglicher Logik, wodurch die Serie nicht packen kann.
Zweitens hat das alles mit Loki nichts zu tun. Nichts was den Charakter ausmacht wird wirklich aufgegriffen. Da könnte auch Captain America durch die Zeitlinien rennen und mit Zerrbildern von sich kämpfen, Lokis Charakteristika sind seltenst relevant. Gerade die Szenen in denen das nicht gilt zeigen das, sind die wenigen Bezüge zu Lokis Wesen doch wesentlich interessanter als der Rest.
Und drittens und schließlich ist die Serie als Serie kaputt. Die erste Folge legt eine Geschichte an, die in der nächsten Folge direkt aufgelöst wird, weil die erste Staffel einfach zu kurz für die hineingepackte Geschichte ist. Die zweite Staffel dann weiß offensichtlich überhaupt nichts mit sich anzufangen, sie ist purer Füller und kann mit dem Ende der ersten Staffel nicht umgehen. Während die erste Staffel also noch ein bisschen verfangen konnte, weil die Auflösung der Geschichte mich dann doch etwas interessierte, ist die zweite wirklich langweilig. Wirkt sich da der Drehbuchautorenstreik aus?
Schade um den Charakter und Schauspieler, aber die Serie kann man sich leider sparen.
Linksammlung 45/2023
Friday, 10. November 2023
Diese Woche fand ich besonders erwähnenswert:
Google bins integrity API that looked more than a bit like horrible DRM for websites, nachdem es erst so aussah, als wollte Google die API gegen alle Widerstände durchboxen. Eine gute Entwicklung.
Nicht alle Firmen sind so einsichtig. Home Assistant musste wieder eine Integration entfernen, Removal of MyQ integration, wie vor kurzem bei Mazda. Wieder macht sich eine Firma unkaufbar.
Positiv dagegen Die Antwort von Murena. Ein veralteter Browser und nicht entfernbare vorinstallierte Apps sind zwar eigentlich nicht akzeptabel, aber die Antwort ist trotzdem erfreulich. Sie arbeiten dran (also ist das Projekt überfordert, und das passiert bei FOSS nur zu leicht). Beachtlich auch, dass GNU/Linux.ch die Anfrage gestellt und darüber berichtet hat. Journalismus!
Und ich bin über noch eine Firma gestolpert, Chargie. Wird zwischen Telefon und Ladekabel gesetzt, damit der Akku nicht stumpf auf 100% geladen wird, was massiv die Lebenszeit verlängert. Neue Android-Versionen können das auch so, aber längst nicht alle Telefone kriegen das Update, und bei meinem LG G5 zum Beispiel ist die Funktion trotz neuem Android in Lineage kaputt. Da könnte sowas praktisch sein, zumindest wenn die Steuer-App auch ohne Playstore funktioniert.
Lesenswert fand ich Martin Fowlers Current thoughts on social media. Er beschreibt darin, wie er mit dem Wegfall von Twitter umgeht.
Dabei verlinkte er auch Charles' Rules of Argument. Nicht neu, aber ich fand die Herangehensweise des bewusst sehr limitierten Engagements bei Online-Diskussionen bedenkenswert.
Thema Diskussionen, Esra Özyürek sagt in einem Interview "So verfestigt sich der Hass". Es geht darum, wie Deutschland mit Israelkritik von Muslimen umgeht. Ich sehe Punkte auf beiden Seiten: Einerseits gibt es da Antisemitismus, den zu kritisieren völlig richtig ist. Und andererseits ist Deutschland völlig durchgeknallt darin, jedwede und auch noch so berechtigte Israelkritik als Antisemitismus zu brandmarken. Entsprechend irrational auf Muslime einzuschlagen wird wirklich Hass verfestigen. Wobei, das gilt genauso für den Umgang der Gesellschaft mit israelkritischen Nicht-Muslimen.