Zu blöd für Visual-Regression-Tests

Ich habe das Gefühl, dass es an mir liegt, dass ich bei diversen Webprojekten beim Snapshot testing im Rahmen von Visual regression tests Probleme habe. Wie man auch am Screenshot oben sieht.
Ich möchte eigentlich nichts weiter als die Differenz von zwei Screenshots einer kompletten Seite erstellen, einmal vom aktuellen Livestand der Seite und dann vom aktuellen Entwicklungsstand. Bei manchen Frontends habe ich aber das Problem, dass es scheinbar Elemente gibt, die dann beim Screenhot-Erstellen "mitgenommen" werden. Das kann man sich ganz gut hier im Gesamtscreenshot ansehen.

Ich weiß nicht, aber ich denke, dass es an mir liegt, denn die Suchmaschinen dieser Welt scheinen das Problem irgendwie nicht zu kennen. Und es kann doch nicht sein, dass es die Lösung ist, dass ich während des Tests irgendwie JavaScript oder CSS "einschleusen" muss, um diese Effekte zu unterbinden? Das würde ja den Test irgendwie ad absurdum führen.

Ich habe den Effekt bei Codeception/VisualCeption und bei Cypress.io. Es ist auch egal, in welchem Browser ich die Tests fahre. Ob das Selenium-basiert stattfindet oder der native Browser genommen wird. Egal ob headless oder nicht. Egal ob Chromium, Chrome oder Firefox.

Wer also eine Idee hat und mich irgendwie auf den Pfad der Lösung schubsen kann, wird in meiner Liste des Ewigen Dankes verewigt werden. Und wer weiß, wozu die noch irgendwann gut sein wird. ;-)

TYPO3-Backend anpassen in fünf Minuten

In der Entscheidungsphase zur Wahl eines Content Management Systems hört man zu TYPO3 oft, dass das Backend für den Redakteur nicht intuitiv und viel zu überladen ist. Dass es zu viele Optionen und Felder gibt, die man beim Erstellen von Inhalten gar nicht verwenden würde und zu einer Überforderung der Redakteure führen.

Auch habe ich schon viele Backends gesehen, in denen für die Redakteure das Backend nicht angepasst oder sogar gar keine Benutzergruppen mit entsprechenden Rollen verwendet wurden. Und somit alle Benutzer mit Adminstrationsrechten im Backend unterwegs waren.

Das hat in meinen Augen mit der steilen Lernkurve von TYPO3 zu tun, die dem Anfänger entsprechende Steine in den Weg legt. Wenn man aber das Konzept der Konfiguration von TYPO3 verstanden hat, stehen einem alle Türen offen, das Backend so einfach wie möglich zu gestalten. Und zwar lediglich mit den Feldern und Optionen, die man zum Erstellen von Inhalten benötigt.

Um das zu erreichen gibt es einen ziemlich einfachen Weg: das Ausblenden von Feldern mittels TCEFORM, dem Setzen von Default-Werten für Felder mit TCAdefault und dem konsequenten Einsatz von Benutzergruppen. Administratoren sind wirklich nur Administratoren und nicht für das Erstellen von Content zu verwenden. Bei einem ordentlich aufgesetzten TYPO3 sollte man sich also eigentlich nie mit einem Administrator-Account anmelden müssen. ;-)

Weiterlesen

Monument Valley

Nur weil ich eigentlich mal ein paar Apps vom Telefon löschen wollte, habe ich vorhin dann mal Monument Valley in einem Rutsch durchgespielt. Okay, das ist keine Meisterleistung, besteht das Spiel doch nur aus zehn Level. Und die Rätsel sind auch nicht sonderlich schwer, wenn man nur halbwegs in der Lage ist, eins und eins zusammen zu zählen. Aber schön ist es immer noch anzusehen, auch wenn es mittlerweile acht Jahre auf dem Buckel hat. Ich mag solche Rätselspiele auf dem Smartphone, für die man nur ein paar Minuten Aufmerksamkeit benötigt.

Hello Linux

Quasi aus der Not heraus habe ich seit langem mal wieder ein Linux als Entwicklungssystem aufgesetzt. Und das in echt kurzer Zeit. Als Basis habe ich die SSD meines Gaming-Laptops um 120 GByte verkleinert und dann per USB-Stick Ubuntu installiert. Und das ging fix und vor allem hat er einwandfrei alle Komponenten erkannt. Das ist man aus den Urzeiten von Linux ja gar nicht gewohnt.

Der Rest an Installation war dann einfach nur ein Kinderspiel. PhpStorm, GitKraken, zsh mit oh-my-zsh als Shell und dann noch der übrige Kleinkram wie docker, SSH/VPN-Konfiguration, GPG/PGP. Alles andere spielt sich in Browsern ab. Ein Wechsel von macOS auf Linux ist also, was das Arbeiten angeht, einfach zu vollziehen und ich denke nicht, dass ich einen Unterschied feststellen werde. Dafür sind die Tools, mit denen ich arbeite, auf allen Plattformen gleich.

Klar fühlt es sich ein wenig besser an, mit quelloffener Software zu arbeiten, aber das Verwenden von Apple-Hardware verbuche ich bei mir als elitäre Attitüde.

Gescriptete Popcorn-Schießbude

Sehr, sehr viele Spiele habe ich nicht zu Ende gespielt. Weil sie entweder nicht gut waren, Fehler enthielten oder deren Mechaniken mich irgendwann langweilten.
Und es gibt Spiele wie die "Grand Theft Auto"-Serie, bei der ich aber trotzdem zugeben muss, dass ich die ersten beiden Teile nicht durchgespielt habe. Damals haben wir auf LAN-Parties eher andere Spiele gespielt, die Multiplayer-Modi der beiden ersten Episoden waren nicht sonderlich spannend.

Nachdem ich die letzten Wochen den fünften Teil nun zum dritten Mal durchgespielt habe und die Definitive Edition soweit gepatched wurde, dass sie scheinbar spielbar ist, werde ich nun alle Teile ab dem dritten erneut spielen. Nicht, weil die GTA-Spiele so überragende Spielmechaniken haben. Wenn man ehrlich ist, klaut man seit dem ersten Teil Autos um von A nach B zu kommen, um X zu machen, um danach nach Z zu fahren, damit die Mission abgeschlossen wird. Dazwischen ein wenig rumballern, was auch nicht sonderlich überragende Fähigkeiten verlangt und das war es auch schon.

Alles weitere sind gescriptete Ereignisse. Die in ihrer Gesamtheit mit jedem weiteren Teil der Spielereihe immer besser erzählt werden. Und das macht für mich den Reiz dieser Serie aus. Einfach ein wenig abschalten, zwei-drei Missionen spielen und am nächsten Tag einfach wieder einsteigen. Popcorn halt.

Remote Pair Programming

Video-Calls. Wer kennt sie nicht. Mal abgesehen von Team-Meetings, Stand-Ups und so weiter, muss man diese Kommunikationsform verwenden, wenn man mit seinen Kollegen im Home-Office zusammen ein Problem lösen möchte. Dann teilt einer am besten noch seinen Bildschirm mit der IDE und alle schauen zu, wie dort nach der richtigen Stelle in der Datei gesucht wird und dann mit etlichen Vertippern der zugerufene Code angepasst wird.

So ging es mir auch heute, wobei ich mich dann auch während des Meetings dauernd dabei erwischt habe, auf dem geteilten Bildschirm scrollen zu wollen. Aber dabei gibt es mit Tool wie "Code with me" innerhalb von PhpStorm eine hervorragende Lösung für dieses Problem. Ich hatte mir vor zwei (?) Jahren, als die erste Version des Tools erschienen ist, das ganze zwar schon mal angeschaut, aber damals stand das noch auf wackeligen Beinen und war nicht sonderlich performant.

Das heutige Meeting habe ich aber zum Anlass genommen und mir "Code with me" eben erneut angeschaut und ausprobiert. Und: es funktioniert einwandfrei. Und vor allem einfach. Der, der das Problem hat, stellt den Host und kann in PhpStorm in einem einfach gehaltenen Dialog einen Einladungslink generieren. In einer anderen Instanz kann man diesen Link dann entsprechend aufrufen oder im PhpStorm-Plugin eingeben und schon wird die Instanz gespiegelt. Und je nach den Berechtigungen können mehrere Leute dann direkt im Code zusammen arbeiten.

Ich habe keine Ahnung, warum ich das bisher einfach nicht genutzt habe.

Altersweisheit

Ich habe es mir leider nirgendwo abgespeichert, aber vor ein paar Tagen bin ich auf einen Blogeintrag gestoßen, in dem der Autor erzählt hat, dass er im aktuellen gehobenen Alter entdeckt hat, warum ihm gewisse Dinge nicht mehr so stressen. Ich glaube, er ist in einem ähnlichen Alter wie ich. Dreiundzwanzig. Naja, okay, Anfang/Mitte Vierzig. Biologisch betrachtet.

Ähnliche Gedanken hatte ich auch schon und mittlerweile machen die mir nicht mehr zu schaffen. Verbuchen wir das Ganze mal unter Weisheit ab, denn die Erfahrungen haben mir gezeigt, dass man gewisse Dinge einfach nicht beeinflussen kann und warum sollte ich mich dann noch darüber aufregen? Einfach nach vorne schauen und das Beste daraus machen.
Was mir aber immer noch Angst macht, ist, dass ich im hohen Alter doch mit einem Kissen auf dem Fenstersims Falschparker der Polizei melde. Oder ähnliches.

Bloggen mit TYPO3

Vergleiche zwischen Content Management Systemen gibt es wie Sand am Meer, da möchte ich jetzt keinen weiteren aufstellen. Vor allem, weil ich es schwer finde, ohne ein bestimmtes Problem eine ansprechende Gegenüberstellung zu erstellen.

Von daher nehmen wir an, dass wir schon eine TYPO3-Installation haben und der Wunsch entstanden ist, in einer Seite auch ein Blog zu integrieren. Vereinfachend und um es besser nachvollziehen zu können, verwendet diese Installation bk2k/bootstrap-package mit einer eigenen Template-Extension (wo kommt eigentlich der Begriff SitePackage her? In der ext_emconf gibt es doch "template" im Parameter "category"?).

Nach der Installation der Blog-Extension der TYPO3 GmbH folgt man einfach dem Setup-Wizard aus der Dokumentation integriert durch ein bißchen TypoScript und TsConfig das Ganze in seiner Template-Extension. Das alles dauert nicht mehr als eine Viertelstunde, wenn man ein wenig firm mit dem Backend ist. Und ist auch nicht schlimmer als die Installation und Konfiguration einer anderen Blogsoftware.

Man bekommt danach eine Seitenstruktur, in der man sich austoben kann. In der man wie man es mit TYPO3 gewohnt ist, Seiten und deren Inhalte bearbeiten kann. Inhalte, die man auch mehrsprachig verwenden kann, eine Instanz, in der man neben diesem Blog auch weitere Seiten/Domains mit ganz anderen Inhalten pflegen kann. Mit ganz vielen anderen Usern zusammen, wenn man möchte. Aus dem Fundus von tausend anderen Extensions schöpfen kann, um seine Inhalte aufzubereiten und zu präsentieren.

Klar, vielleicht bin ich voreingenommen, da ich seit anderthalb Jahrzehnten mit diesem System arbeite, aber ich weiß nicht, was daran schwer sein soll, sich per composer TYPO3, von mir aus das bootstrap-package und die Blog-Extension zu installieren, um dann per Assistent sich die Seitenstruktur erstellen zu lassen. Eine WordPress-Installation dauert genauso lang und stellt mir erstmal auch nicht mehr Funktionen zur Verfügung. Klar, sobald ich mir dann irgendwoher ein Theme mit so einem Seiteneditor reingeklickt habe, was zugegeben wirklich jeder technisch Unbedarfte schafft, hat WordPress vielleicht seine Vorteile was die Gestaltung angeht. Sieht man ja auch an dieser Seite (bin halt kein Pixelschubser ;-) ).

Und jetzt habe ich doch noch einen Vergleich reingebracht...