Misc

Gedanken aus dem Maschinenraum

25. Februar 2021 · Intern · andreas · Kein Kommentar

WordPress 5 und der Block-Editor

Es ist viel geschrieben worden über Gutenberg, den nicht mehr ganz so neuen Editor, der mit WordPress 5 zum Standard wurde. WordPress Version 5 liefert aber nicht nur einen neuen Editor im bekannten Umfeld, sondern einen Wechsel der Philosophie.

Einer der Hauptvorteile eines Content Management Systems ist die klare Trennung von Inhalt und Präsentation. In einer Analogie zu Office ist ein CMS-Design das, was ein Folienmaster in einem Präsentationsprogramm oder eine Formatvorlage in einer Textverarbeitung ist. Im Text wird lediglich markiert, was ein Textabschnitt, eine Liste oder was eine Überschrift ist - die optische Repräsentation wird vom Design bestimmt. Dies ergibt sich auch aus der Definition von HTML:

HTML dient als Auszeichnungssprache dazu, einen Text semantisch zu strukturieren, nicht aber zu formatieren. Die visuelle Darstellung ist nicht Teil der HTML-Spezifikationen und wird durch den Webbrowser und Gestaltungsvorlagen wie CSS bestimmt. [Quelle]

Genauso, wie Markdown als vereinfachte Auszeichnungssprache diesen Gedanken in eine Richtung weiterentwickelt, weicht WordPress spätestens seit Version 5 diese Trennung immer mehr auf. Die WordPress-Gutenberg-Seite wirbt

Das gesamte Bearbeitungs-Erlebnis wurde für medienreiche Seiten und Beiträge neu konzipiert. [Quelle]

und verspricht

Verlass dich darauf, dass dein Editor wie deine Website aussieht. [Quelle]

Je nachdem, was der Entwickler eines Designs an Blöcken oder Bearbeitungsmöglichkeiten vorgesehen hat, kann ein Redakteur auch in die optische Gestaltung eingreifen und diese für einen Block (oder mehrere Blöcke) anpassen. Natürlich war dies vorher (in einem engeren Rahmen) auch schon mit TinyMCE möglich, mit WordPress 5 wird dieser Philosophiewechsel aber von der Ausnahme zur Regel befördert. Ein Wechsel auf ein alternatives Design wird deutlich erschwert und mit erhöhtem Aufwand verbunden sein, wenn Blöcke oder deren Anpassungsmöglichkeiten nicht mehr zur Verfügung stehen.

Nachdem hier seit dem Update auf WordPress 5 das “Classic Editor”-Plugin zum Erstellen und Bearbeiten von Beiträgen zum Einsatz kam, habe ich mich nebenbei mit Gutenberg auseinandergesetzt und Erfahrungen gesammelt. Manche Dinge werden Dank der Aufteilung in Blöcke einfacher - mal schnell einen Abschnitt verschieben oder die über dem aktuell bearbeiteten Abschnitt verfügbare Werkzeugleiste machen das Arbeiten angenehmer und flüssiger, es gibt aber auch Schattenseiten.

Um den neuen Anforderungen gerecht zu werden, muß - zwangsweise - auch innerhalb von WordPress viel geändert werden. WordPress und Gutenberg sind im permanenten Wandel, was den benötigten Zeiteinsatz spürbar erhöht um mit dem vorgelegten Tempo Schritt zu halten - bei einem reinen Hobbyprojekt fast unmöglich.

Child Themes

Mit TwentyTwenty war hier seit November 2019 erstmals kein selbstentwickeltes Design, sondern ein WordPress-Standarddesign im Einsatz. Eine gängige (und die empfohlene) Möglichkeit, fremderstellte Designs an eigene Bedürfnisse anzupassen, sind sogenannte Child-Themes.

Statt an den vorhandenen Dateien herumzubasteln, wird ein sog. Child erzeugt, welches im ersten Schitt bis auf den Namen alles vom Parent übernimmt. Dann können entweder PHP-Dateien des Parents kopiert und angepasst oder in der “style.css” des Childs Einstellungen des Parents überschrieben werden.

Wie die Ankündigung des Designs unterstreicht, wurde TwentyTwenty insbesondere als Vorzeige-Design für WordPress 5 und Gutenberg erstellt

Unser Standard-Theme für 2020 ist so konzipiert, dass es die Flexibilität des Block-Editors voll ausschöpft. [Quelle]

Dies wirkt sich direkt auf die Größe und Anzahl der mitgelieferten Styles aus, denn mit rund 125kb war bereits die “style.css” von TwentyTwenty alles andere als schlank, hinzu kamen nochmal rund 15kb an Style-Anpassungen durch das Child-Theme. Dies mag auf den ersten Blick nicht dramatisch klingen, letztendlich bedeuten Anpassungen im Child aber immer, daß diese nicht auf magische Weise optimiert und kombiniert zusammen mit den Parent übertragen werden, sondern sich der ausgebende Browser damit herumschlagen darf. Im Endeffekt wird viel übertragen und interpretiert, was dann doch nicht verwendet wird.

Dazu kommt noch der Unsicherheitsfaktor bei Aktualisierungen des Parent-Themes. Aktualisierungen sind meist gut und wichtig, sie bergen aber jedesmal die Gefahr, daß irgendetwas anschließend nicht mehr funktioniert. Die Folge ist ein erhöhter Aufwand an Tests und Anpassungen bei jeder Aktualisierung.

Zurück zum Start

Letztlich bleibt das Gefühl, daß WordPress mit Version 5 jede Menge nicht benötigte und “nebenbei” nur schwer überschaubare Funktionalität eingeführt hat. Deutlich mehr auf Javascript (und im Backend auch auf React) setzend und mit vielen hier nicht verwendeten Möglichkeiten wurde mit jeder neuen Version klarer, daß die Plattform nicht mehr so richtig zum Einsatzzweck passt. Vieles ist abschalt- und konfigurierbar, aber die Verwendung eines Systems, bei dem man immer mehr Standard-Funktionalität abschaltet und durch zusätzlich zu installierende Alternativen ersetzt, ist aus meiner Sicht der falsche Ansatz.

Glücklicherweise werden alte WordPress-Versionen noch weiter gepflegt (aktuell sogar bis zurück zur Version 3.7 aus dem Oktober 2013) und so habe ich ein Downgrade der WordPress-Installation vorgenommen. Seit ein paar Tagen gehört dieses Blog (wieder) zu den rund 8% aktiven WordPress 4.9 Installationen.

Alternativen und Aussichten

Zu einer interessanten Alternative scheint sich ClassicPress zu entwickeln, ein Fork der Version 4.9 von WordPress, der mit den Schlagwörtern “Stable. Secure. Instantly Familiar.” wirbt. ClassicPress 1 ist aus Gründen der Abwärtskompatibilität noch recht eng mit WordPress 4.9 verbunden, es wurden lediglich die mitgelieferten Plugins entfernt und Security-Fixes hinzugefügt. Eine Migration sollte problemlos möglich sein.

Für Version 2 ist geplant, Teile wie z.B. die Gravatar- oder Emoji-Unterstützung aus dem Core zu lösen und in in Plugins auszulagern und mit einem Sprung auf die Mindestanforderung PHP 7 alte Code-Teile zu entrümpeln.

Vielleicht wird der Weg nach rund 10 Jahren WordPress aber auch in eine ganz andere Richtung zu einem Flat-File-Content-Management-System führen. Hier gibt es vielversprechende Kandidaten und der Gedanke, Mediendateien statt in einem großen “Upload”-Ordner zu suchen vielleicht mal wieder zusammen mit dem auf sie referenzierenden Text aufzubewahren, klingt verlockend.


Abendkühle bei Microsoft

18. Februar 2021 · Funstuff · andreas · Kein Kommentar

Ich weiß, warum ich technische Dokumentationen lieber in der Originalsprache lese. In der deutschen Übersetzung der Parameter zum PowerShell-Modul “Get-MessageTrackingLog” hat sich z.B. der Parameter “-Abendkühle” eingeschlichen …

Screenshot

Auch mit viel Knobeln bin ich noch nicht auf eine sinnvolle Erklärung gekommen, warum “EventId” so übersetzt wurde. Der Anfang passt ja noch zu “evening”, aber der Rest?


Star Wars - Episode VIII: Die letzten Jedi

14. Februar 2021 · IMHO · andreas · Kein Kommentar

Nachdem mich sowohl “Episode VII: Das Erwachen der Macht” als auch “Rogue One: A Star Wars Story” nicht sonderlich begeistern konnten, hatte ich eigentlich mit dem Thema abgeschlossen. Gute Vorsätze halten bekanntlich nicht lange und so haben wir vor ein paar Wochen dann doch begonnen, uns chronologisch durch die Skywalker-Saga zu wühlen. Während “Episode I - Die dunkle Bedrohung” mit genügend zeitlichem Abstand zum damaligen Kinobesuch durchaus zu den positiven Überraschungen zählt, standen mit Episode VIII und IX auch zwei bisher noch nicht gesehene Filme auf der Liste.

Um das Ergebnis vorwegzunehmen: ich hätte nicht gedacht, daß es ein Film schaffen wird, “Episode II - Angriff der Klonkrieger” vom Platz des meiner Meinung nach schwächsten Star Wars-Films zu verdrängen, aber die letzten Jedi haben das mühelos geschafft.

Es ist schwer, überhaupt einen Anfang zu finden, da so viel an diesem Film nicht stimmig wirkt. Als erstes irritiert aber die Bildsprache. Während J.J. Abrams recht nah an den vorherigen Filmen war, ist die komplette Anfangssequenz von “Episode VIII: Die letzten Jedi” als moderner Kriegsfilm inszeniert. Schnitte, Montagen, Einstellungen und Kamerafahrten passen nicht zum bisherigen Star Wars, sondern verwenden eine Ästhetik, wie sie spätestens seit Pearl Harbor in vielen Filmen, die vornehmlich im zweiten Weltkrieg spielen, verwendet wird.

Die Rahmenhandlung entpuppt sich als dürftig: mal wieder sind die Rebellen auf der Flucht und mal wieder ist ihnen das Imperium auf den Fersen. Damit ist die Geschichte auch schon fast komplett erzählt, denn die ersten zwei Stunden des Films verbringen die beiden Flotten damit, einfach hintereinander her zu fliegen bis den Rebellen der Sprit ausgeht … Nicht, daß in den vergangenen sieben Filmen jemals jemand kurz vor einer Tankstelle liegen geblieben wäre.

Der komplette Erzählstrang um Finn und Rose bringt den Film - außer in Minuten gesehen - auch nicht weiter und fühlt sich wie der Versuch an, die inhaltliche Leere zu kaschieren. Spätestens ab dem Moment, als die beiden durch das Set eines James Bond-Films stolpern, wirkt sie wie ein totaler Fremdkörper. Die krampfhaft humoristischen Einlagen retten wenig, sondern bestärken den Eindruck, daß der Film auf dem schmalen Grat zwischen Kommödie und Tragödie immer wieder ins Stolpern gerät.

Der große böse Snoke, im “Das Erwachen der Macht” noch als übermächtige düstere Projektion zu sehen, entpuppt sich als Patriarch aus “Star Trek: The Original Series”, der vor seiner bunt beleuchteten Wand im Thronsaal sitzt. Hoffentlich als Hommage gemeint, wird der Eindruck aber spätestens beim Kampf zwischen Rey, Ben und den Wachen zerstört, da sich der Zuschauer plötzlich mitten in Kill Bill wiederfindet - nur, daß die Protagonistin keinen gelben Trainingsanzug trägt, dafür die Gegner aber rote Uniformen.

Der absolute Tiefpunkt ist aber Luke Skywalkers Mutation zum Kleinkind. Auch Ben Kenobi wurde in “Krieg der Sterne” als Sonderling in den Bergen eingeführt, aber Lichschwert wegwerfen, schmollend ins Haus rennen und die Tür zuschlagen ist deutlich unreifer, als das, was der noch 9-jährige Anakin Skywalker in “Die dunkle Bedrohung” abgeliefert hat. Das Pole-Jumping zum Fischen bestärkt das “Out Of Character”-Gefühl dann noch weiter und man kann nachvollziehen, warum Mark Hamil mit der (W|H)andlung seines Charakters nicht sonderlich zufrieden war:

The thing is, Luke changed so much between the first trilogy and the last trilogy. … They had me walking by 3PO, not even acknowledging him. I said: “I can’t do that!" He (The Last Jedi’s director, Rian Johnson) said, “Okay, go over and do whatever.” So I went over, and I did whatever. They say it in the script: “Forget the past, kill it if you have to”, and they’re doing a pretty good job! [Quelle]

Wie wenig Gespür Regisseur Rian Johnson sowohl für die bisherigen Filme als auch deren Charactere hat, zeigt sich immer wieder in Kleinigkeiten wie zum Besispiel Lukes Staub-von-der-Robe klopfen in der kurz-vor-Schluss-Szene. Es fühlt sich nicht nur falsch an, sondern ist auch mal wieder ein Fehltritt auf dem oben erwähnten schmalen Grat. Schade, denn Filme wie “Knives Out” zeigen, daß der Regisseur es eigentlich besser kann.


Renovierung III

04. Februar 2021 · Intern · andreas · Kein Kommentar

In den letzten Tagen wurde hinter den Kulissen fleißig gebohrt, gehämmert und tapeziert, so daß sich das Blog in einem modifizierten Gewand präsentiert.

Der Ausflug zum Standardtheme “Twenty Twenty” war interessant, aber letztendlich zu schwerfällig - sowohl im Handling mittels Child-Theme als auch in der Datenmenge, welche über die Leitung transportiert wurde. Nun kommt wieder das von 2016 - 2019 hier eingesetze Theme zum Einsatz, wenn auch in einer moderaten Fortentwicklung.

Sollte es noch irgendwo klemmen, bitte die Kommentar-Funktion mit entsprechenden Hinweisen füttern.

Vielen Dank!


Frohe Weihnachten 2020

24. Dezember 2020 · IMHO · andreas · Kein Kommentar
Weihnachtskarte 2020

Sicherlich wird Weihnachten 2020 bei den meisten ganz anders ausfallen als sonst.

Allen, die hier mitlesen (oder sich auch nur durch Zufall hierher verirrt haben) wünsche ein schönes Weihnachtsfest und einen guten Rutsch in ein hoffentlich normal(er)es und entspannt(er)es Jahr 2021 - bleibt gesund!