Da das jweiland.net Projekt-Team größtenteils schon am Vortag angereist war, trafen wir uns zum Einklang erst einmal zu einem gemeinsamen, gemütlichen Abendessen, wo uns schon einige bekannte Gesichter aus der TYPO3 Community begegneten.
Am nächsten Morgen startete dann die Veranstaltung im Geno-Hotel, das diesmal ganz unter dem Motto "Südsee - Surfen - Aloha" geschmückt war. So wurden wir am Eingang mit Fächern, Sonnencreme und hawaiianischen Blumenketten, den "Leis" begrüßt.
Der größte Teil des Camps war dieses Jahr eine sehr verregnete Angelegenheit. So trafen wir uns am nächsten Morgen mehr oder weniger gut durchgefeuchtet im FAT CAT, wo uns ein Frühstück in Form von sehr ansprechenden Sandwiches und liebevoll zubereitetem Kaffee erwartete. Im Anschluss ging es gleich zur Sessionplanung.
Das Orga-Team konnte sich dieses Jahr über einen großen Andrang von Session- und Talk-Vorschlägen freuen. So dauerte es nicht lange, bis der Plan für Samstag und für Sonntag schon am ersten Veranstaltungstag nahezu vollständig gefüllt war.
Das Social Event fand, wie auch schon im letzten Jahr, im Paulaner Brauhaus mit gewohnt zünftigen Speisen statt.
Hier ein Auszug aus den Sessions und Talks:
Besondere Highlights dieses Jahr waren das Atem-Training von Stefan Völker, das bei uns für maximale Entspannung sorgte, und die einmalige Gelegenheit, sich das TYPO3 Logo von den Tattoo Helden aus Karlsruhe vor Ort stechen zu lassen. Diese Gelegenheit nahmen einige Mutige direkt wahr. Die weniger abenteuerlichen unter uns begnügten sich derweil mit nicht-permanenten Aufklebe-Tattoos, die ebenfalls ausgegeben wurden.
Für uns persönlich gab es noch ein drittes Highlight, da dieses Jahr gleich drei Kollegen und der Chef zur Zertifizierung antraten, um ihr Know-How erneut zu beweisen. Stolz können wir verkünden, dass wir nun um drei zertifizierte Integratoren und einen zertifizierten Editor reicher sind.
Traditionell fand auch dieses Jahr am Donnerstagabend wieder die Coding Night statt, in der gemeinsam an der Weiterentwicklung von TYPO3, aber auch an der Verbesserung der Dokumentation gearbeitet wurde.
End-To-End Tests mit Playwright
Websites im Frontend zu testen, zum Beispiel nachdem ein Upgrade durchgeführt oder ein neues Feature hinzugefügt wurde, kann gerade bei großen Websites aufwändig sein und es besteht die Gefahr, doch etwas zu übersehen.
Volker Kemeter zeigte uns, wie man mit der Opensource Software Playwright bereits vordefinierte Tests zum Prüfen der Site im Frontend automatisiert durchführen kann. Playwright verfügt außerdem über einen Code-Generator, mit dem man sehr einfach eigene Tests definieren kann, zum Beispiel zum Aufrufen von Schlüsselseiten, Checken von Cookie-Bannern, Versenden von Test-Mails oder -Formularen, Durchspielen der Navigation, aber auch zum Prüfen der Website auf W3C-Konformität oder Barrierefreiheit und viele andere Aspekte.
Keynote
In seiner Eröffnungs-Keynote stellte Benni Mack die Frage, ob man in Zeiten von Künstlicher Intelligenz überhaupt noch ein Content Management System benötigt. Es wurde aber schnell klar, dass GenAI derzeit als Unterstützung beim Erstellen von Inhalten, der Übersetzung und Personalisierung von Inhalten genutzt werden kann, aber ein CMS nicht ersetzt.
Danach folgten 3 Tage voller spannender Sessions zu verschiedensten Themen rund um TYPO3 Entwicklung. Hier ein Auszug:
TYPO3 v13 für Integratoren
Wolfgang Wagner gab uns noch einmal eine gute Einführung in drei der wichtigsten Neuerungen von TYPO3 v13: Site Sets, das neue Content Objekt PAGEVIEW und Content Blocks (auch wenn letztere es nun doch noch nicht in den Core geschafft haben).
Mit Site Sets ist es möglich, eine vorkonfigurierte Site-Set-Definitionen aus Site-Settings, TypoScript aber auch PageTSConfig in einem Site-Package oder einer Extension zur Verfügung zu stellen, die pro Site-Konfiguration (pro Root-Seite) über das Backend-Modul "Site Management">"Sites" angewendet werden kann. Wie bisher über den Konstanten-Editor können auch hier Konstanten definiert oder überschrieben werden. Diese landen aber nicht mehr in der Tabelle sys_template, sondern in einer YAML-Datei direkt in der Extension bzw. im Site Package. Somit kann das TypoScript vollständig aus der Datenbank verschwinden.
Mit dem neuen Content Objekt PAGEVIEW wird es noch einfacher, Fluid-Templates auszugeben und Backend-Layouts einzubinden, da es mit weniger Konfiguration auskommt. Es kann außerdem auf mehr Standard-Variablen im Fluid Template zugegriffen werden. Um die Vorteile des Objekts zu nutzen, müssen aber einige Konventionen beachtet werden, wie zum Beispiel eine leicht veränderte Verzeichnisstruktur.
Die Content-Blocks erleichtern und beschleunigen das Erstellen von individuellen Inhaltselementen, Seiten- oder Datensatz-Typen. Das ist vor allem für diejenigen interessant, die sich in TYPO3 gerade erst einarbeiten. Auch hier funktioniert das Erstellen mit YAML-Dateien. Aus diesen wird dann automatisch eine TCA-Konfiguration generiert.
Web Design for Everyone
Jeder von uns kann von Barrieren betroffen sein: sei es durch körperliche oder mentale Einschränkungen oder auch durch Sprachbarrieren in fremden Ländern. Weltweit sind etwa 15% der Bevölkerung betroffen.
Der Vortrag demonstrierte, dass auch barrierefreie Webseiten optisch attraktiv sein können. Am Beispiel der berufswahlapp (https://berufswahlapp.de/) wurden verschiedene Konzepte gezeigt. So ist für Personen mit Farbenblindheit eine schwarz/gelbe Darstellung besser geeignet als schwarz/weiss.
Kernaussage: Betrachte Barrierefreiheit nicht als Hindernis sondern als zentrales Thema der Zukunft.
Upgrade TYPO3 v4 auf v12
Dass der tollkühne Versuch, eine TYPO3 v4 Installation auf v12 upzugraden gelingen kann, bewies uns Patricia Ottmar. Anhand eines Fallbeispiels zeigte sie uns die Schritte, die sie dafür gegangen ist (oder auch einfach übersprungen hat), "weil wir es können" ;-). Wichtig ist, sich die nötigen Upgrade Wizards zu merken und der Reihe nach auszuführen, aber auch selbst geschriebene Wizards können sehr hilfreich sein. Vor allem der Upgrade Wizard für den Schritt von v4 nach v6 ist wichtig, da er die Datei-Referenzen für den in v6.2 eingeführten File Abstraction Layer anpasst, benötigte Datensätze erzeugt und Dateien in das Fileadmin-Verzeichnis verschiebt.
Um sich ein Upgrade so einfach wie möglich zu machen, empfahl sie, von Anfang an nur so viele Third-Party-Extensions einzusetzen, wie unbedingt nötig und auch die Upgrade Wizards dieser Extensions nicht zu vergessen. Dazu nannte sie uns Alternativen und Migrations-Tools für häufig verwendete Extensions, die jedoch nicht für aktuelle Versionen von TYPO3 zur Verfügung stehen, wie zum Beispiel tt_news und gridelements. Zu guter Letzt gab sie uns noch Tipps für das Upgraden eigener Site Packages oder Extensions und nannte hilfreiche Tools wie rector oder fractor.
TYPO3 Agencies and AI: An Experience Report
In der Session von Fabian Stein wurde die Rolle und die Auswirkungen von Künstlicher Intelligenz auf TYPO3 Agenturen beleuchtet. Fabian prognostizierte, dass KI in etwa fünf Jahren kleine Unternehmen ersetzen könnte und betonte die Notwendigkeit einer europäischen Lösung zur Minimierung von Risiken und Datenschutzproblemen.
Manager zeigen mehr Begeisterung für KI als Entwickler, und auch Kunden sind stark interessiert. Fabian empfiehlt daher, interne Richtlinien für den Umgang mit KI zu erstellen und die Gemeinschaft zur Zusammenarbeit zu ermutigen. Ein zentrales Thema ist auch das Gleichgewicht zwischen Leistung und Qualität der KI.
Er nannte Technische Ansätze wie den RAG Workflow und Pre-Prompting, die helfen können, spezifische Informationen zu generieren. Open Source LLM wie LAMA 3.1 sowie europäische Initiativen wie Gaia-X und OpenGPT-x fanden ebenfalls Erwähnung.
Fabian betonte abschließend, dass Fachwissen der beste Schutz vor der Ersetzbarkeit durch KI ist.
Eine große Herausforderung war die Installation der Carrera Rennbahn, die schließlich am Sonntag – wenn auch in abgespeckter Form – doch noch gelang und endlich bespielt werden konnte.
Embeddings - the lesser known Hero of AI
Embeddings sind Bereiche in einem mehrdimensionalen Raum. Diese Bereiche werden durch Vektoren beschrieben. Man kann sie sich (sehr vereinfacht) wie ein dreidimensionales Achsenkreuz vorstellen, jedoch mit Tausenden von Dimensionen, die viele Datenpunkte enthalten, die über den gesamten Raum verteilt sind und alle Arten von Wörtern oder Phrasen wie „Apfel“, „Obst“, „Birne“, „Banane“ und so weiter darstellen. Je ähnlicher sie sich sind, desto näher sind sie beieinander.
Diese Beziehungen (Abstand, Winkel, Korrelation...) können durch mathematische Formeln ausgedrückt werden, und diese Formeln können wiederum mit PHP beschrieben werden. Durch die Nutzung der OpenAI API (oder einer Alternative), um die Informationen des Datenpunkts abzurufen sowie eine Berechnung in der PHP-Klasse, kann der Abstand zwischen zwei Wörtern oder zwei Phrasen berechnet werden.
Das Modell gibt Rückmeldung auf Eingaben basierend auf dem berechneten Abstand der beschriebenen Objekte zueinander, was gleichsam eine Wahrscheinlichkeit abbildet.
Natürlich neigen solche Modelle im Allgemeinen dazu, bestimmte Vorurteile zum Vorschein zu bringen, was nur zeigt, dass das Ergebnis immer von den Daten abhängt, die das Modell im Web findet oder mit denen es trainiert wurde.
Viele Anwendungen nutzen bereits Embeddings, zum Beispiel:
- Videokonferenz-Anwendungen, die in der Lage sind, die Stimmung der Teilnehmer zu überprüfen
- Online-Shops, die ähnliche Produkte oder Empfehlungen basierend auf einer Bestellung anzeigen
- Suchmaschinen, die dem Benutzer eine gezielte Suche ermöglichen
Embeddings können in Vektordatenbanken oder Dateisystem-Caches gespeichert werden.
Settings and Configuration Management
Benjamin Franzkes ging in seiner Session schwerpunktmäßig auf die in TYPO3 13 neu eingeführten Site Sets und ihre Vorteile im Vergleich zu bisherigen Konfigurationsmethoden ein.
Ein wichtiger Aspekt ist die Kompositionsfähigkeit, wobei Sets als Abhängigkeiten definiert werden können, z.B. kann ein Set von mehreren Subsets abhängen. In der Site Configuration kann für jede Seite eines oder mehrere Site Sets ausgewählt werden. Die Settings werden als TS Constants und im neuen Content Objekt PAGEVIEW über die Eigenschaft settings.* zur Verfügung gestellt.
Benjamin betonte, dass Importe in Zukunft vermieden werden und stattdessen Abhängigkeiten in Site Sets genutzt werden sollten. Site Sets verhindern doppelte Einbindungen und werden auf alle Seiten einer Website vererbt, können jedoch nicht für individuelle Seiten verwendet werden. Verschachtelte Seiten mit eigener Konfiguration erben nicht die Einstellungen der übergeordneten Seite. Die Tabelle sys_template wird dank Site Sets nicht mehr zwingend benötigt. Einstellungen aus Extensions werden zuerst geladen, gefolgt von sys_template (wenn vorhanden) und anderen Konfigurationen. Änderungen der Settings mittels Event oder Hook sind nicht möglich.
Ask the Doctors
Auch dieses Jahr waren wieder die beliebten Doctors "in the house", um uns von unseren Leiden rund um das Thema Webentwicklung zu befreien. Die Spezialisten Benni Mack, Susanne Moog und Oliver Hader sowie die bezaubernde Sprechstundenhilfe Benjamin Kott setzten eifrig Infusionen, klebten Pflaster und verteilten Atemschutzmasken an (für einen guten Zweck) zahlende Patienten.
In vielen Fällen brachte eine ärztliche Anordnung oder auch eine Überweisung an einen Experten die Lösung, bei einigen wenigen Leidgeplagten mussten jedoch auch mal ein paar warme, mitfühlende Worte genügen.
Wobei speziell in dieser Session wahrscheinlich das Lachen die beste Medizin war.
The Secret Way to Success as a TYPO3 Developer
Zum Schluss verriet uns der fabelhafte Mathias Bolt Lesniak noch das Geheimnis, wie man als Developer erfolgreich sein kann. Was in Wirklichkeit gar kein Geheimnis ist, aber es ist wie mit so vielem: man kennt die Stolpersteine erst, nach dem man darüber gefallen ist, oder nach Donald Rumsfeld: “you cannot know what you don’t know”.
In diesem Sinne nannte er uns nicht nur wichtige themenbezogene Aspekte, auf die es sich lohnt den Fokus zu legen und persönliche Erleuchtungen, die er auf seinem Weg als Entwickler hatte, sondern auch, was ein guter Mindset ist und von welchen Einstellungen man sich besser verabschieden sollte.
Zu guter Letzt eröffnete er uns noch die Wichtigkeit des Spazierengehens und zeigte uns auf, dass uns in dieser großen, vielfältigen Open Source Community mehr vereint als uns trennt. Und dass wir uns deswegen gegenseitig nicht als Konkurrenz sehen, sondern uns stattdessen unterstützen und bereichern sollten.
Social Night
Zum krönenden Abschluss beendete die Social Night mit Buffet, Food-Pavillons, Cocktails und Disco diesmal die Developer Days. Das war gut für alle, die entweder drinnen auf der Tanzfläche das viele Sitzen der letzten Tage kompensierten, oder das angenehme Wetter nutzten und zum Anlass nahmen, noch sehr lange draußen zu sitzen und zu feiern. Denn so konnte das Frühstück am nächsten Morgen bei Bedarf auch etwas später und gemütlicher eingenommen werden.