TYPO3camp Berlin 2016

TYPO3 Logo Closeup (c) Olivier Dobberkau 2016

Vom 8. bis 10. Juli 2016 fand in Berlin das ausverkaufte TYPO3camp in den Räumlichkeiten des SAE Institute statt. Es ist bereits das siebte TYPO3camp in Berlin. Dieses wurde auch in diesem Jahr vom Team um Sebastian Kreideweiß durchgeführt. Es ist meine erste Teilnahme in Berlin.

Tag 1

Für mich beginnt das Camp am Samstagmorgen. Traditionell gab es am Vorabend schon ein erstes Meet & Greet für Anreisende am Freitag, sowie ein Pre-Event, welches durch ein EXIT Game gestaltet wird. Ferner konnten die Teilnehmer am bereits legendären TYPO3-Kickerturnier teilnehmen oder einem Vortrag über die Arbeit im Untersuchungsausschuss zum Flughafen BER teilnehmen.

Nach der Registrierung und der Begrüßung der Teilnehmer beginnt das TYPO3camp mit einem kurzen Vortrag von Mathias Schreiber über den aktuellen Stand des Aufbaus der TYPO3 GmbH, sowie über deren künftige Aufgaben und Angebote.

Anschließend findet die für Barcamps übliche Vorstellungsrunde statt, die einen guten Überblick über die anwesenden Teilnehmer gibt. Danach folgt die gemeinsame Session-Planung. Positiv ist hier anzumerken, dass erstmals nach gewünschten Vortragsthemen der Teilnehmer gefragt wird. Das hat den Vorteil, dass sich von Anfang an auch spontane Themen ergeben.

Die Tafel, auf der die Session stehen, füllt sich schnell mit einer Reihe an interessanten Themen. Dann können die Teilnehmer, die schon einen Vortrag vorbereitet haben, ans Mikrofon treten und um das Interesse der Camp-Besucher werben.

Session Plan Day 1 (c) Olivier Dobberkau 2016

Zum besseren Verständnis des Blogposts: Ich bin im Bereich Forschung und Entwicklung meiner Firma tätig. Meine Programmierkenntnise sind eher bescheiden, aber mich schreckt Code nicht ab.

Vormittags finden zwei Session-Blöcke statt.

JSON und REST mit TYPO3

Meine erste Session, die ich besuche, dreht sich um das Thema REST in TYPO3. Konkret stellt uns Daniel Goerz die Nutzung von REST und die Ausgabe von TYPO3-Objekten als JSON vor. TYPO3 Extbase bringt ein gesondertes JSON View mit, welches genutzt werden kann. Viele TYPO3-Entwickler wissen aber wohl nichts von der Existenz dieser Funktion.

Daniel erklärt die technischen Zusammenhänge und dass die Ausgabe der JSON Daten durch die Fluid Template Engine erfolgt. Als Best Practice wird dies mit einem eigenen TYPO3-Seitentyp konfiguriert und ausgegeben.

Mehr Details können in Daniels Blog gefunden werden. Er hat hier einen Teil der fehlenden Dokumentation zum JSON View von Extbase geschrieben:

https://usetypo3.com/json-view.html

Am Code entlang erklärt er weiter, wie das parameterbasierte Routing von Extbase auf HTTP Request-Arten umgestellt werden kann. Per Default werden alle Properties des Extbase Objekts in JSON ausgegeben. Child Objekte können durch eine gesonderte Konfiguration abgefragt werden.

Große Teile der Dokumentation sind laut Daniel nur im Quellcode von Extbase zu finden.

Nachteil dieser Vorgehensweise ist, dass für jede REST-Schnittstelle die Konfiguration im Code gemacht werden muss. Eine Erweiterung der Schnittstelle erfordert programmatische Änderungen.

Die Performance ist für viele Anwendungsfälle mehr als ausreichend und nur mit TYPO3-Core-Mittel zu realisieren.

TYPO3 Barcamp Session (c) Olivier Dobberkau 2016

Von den Teilnehmern des Vortrags kommen Hinweise auf weitere TYPO3-Erweiterungen, die im Bereich REST-Schnittstellen helfen können:

Routing https://typo3.org/extensions/repository/view/routing
RESTler https://typo3.org/extensions/repository/view/restler

Leider war die Session zu kurz um weitere Themen im Bereich REST API anzusprechen. Auch einen Ausblick auf GraphQL und clientbasierte API Integration wären super gewesen.

Mein Dank an Daniel, der einen tollen Vortrag gehalten hat.

Eigene Content Elemente mit Fluid

Meine zweite Session, die ich besuche, wird ebenfalls von Daniel Goerz gehalten und soll an einem Beispiel die Erstellung eigener fluidbasierten Content Elemente (FSC) erklären.

Daniel hat hierzu schon mal einen Artikel auf seinem Blog veröffentlicht: https://usetypo3.com/custom-fsc-element.html

Zu Beginn wird ein ctype für das neue Content-Element benötigt. Daniel empfiehlt eventuell den Namen gemäß eines Extensionkeys zu nutzen.

Als nächstes legt Daniel das TCA an. Als Best Practice sollte dies nicht mehr in der ext_tables.php erfolgen, sondern im Configuration/TCA/Overrides Folder der Extension, die das FSC-Element einführt. Details zu der genauen Konfiguration des TCA finden sich in Daniels Artikel sowie in der Core-Dokumentation von TYPO3.

Ist das TCA definiert, so steht als nächstes das Hinzufügen der Rendering-Definition für das Front-End an. Hierzu wird die Core-Funktion lib.fluidContent mittels typoscript genutzt.

Daniel erklärt weitere optionale Schritte, um zum Beispiel eigene Preview-Optionen im Backend zu haben. Das ist wichtig, wenn die Core-Methoden nicht ausreichen oder erweitert werden müssen. Als Beispiel führt Daniel an wann Code im Backend angezeigt werden soll.

Auch geht Daniel auf die DataProcessors-Optionen des Core für Fluid ein. Am Beispiel des File Processors wird gezeigt wie komfortabel alle Objekte des Content-Elements im Fluidtemplate zur Verfügung stehen. So können diese einfach und sicher verwendet werden.

Eigene DataProcessors sind ebenfalls möglich. Im Beispiel von Daniel werden hier Bilder auf eine bestimmte Größe gebracht.

Zum Ende hin werden nochmal einzelne Fragen zur Nutzung von verschachtelten Content Elements im Stile von Gridelements angesprochen. Hier gibt es eine aktuelle Initiative, um eine solche Funktion im Core einzuführen.

Die Session hat für mich sehr deutlich gezeigt wie mächtig TYPO3 ist und erweitert werden kann, so dass eigene Content-Objekte genutzt werden können.

Ohne Mampf kein Camp(f)

Hiernach folgt die Mittagspause, die neben dem Essen sich hervorragend zum Plausch mit anderen Camp-Teilnehmern eignet. Das Essen ist genießbar und bietet Auswahl für alle. Auch für verschiedene Softdrinks ist gesorgt. Kaffee steht den ganzen Tag über zur Verfügung. Die in der SAE vorhandenen Vending Machines erfüllen ebenfalls die Gelüste nach anderen kleinen Süßigkeiten.

TYPO3 Pills Closeup (c) Olivier Dobberkau 2016

Der Nachmittag

Am Nachmittag folgen 3 weitere Session-Blöcke à jeweils 45 Minuten.

Anforderungsmanagement TYPO3

Die erste Session des Nachmittags beschäftigt sich mit dem Thema Anforderungsmanagement rund um TYPO3. Hierbei handelt es sich nicht um einen Vortrag, sondern um eine Diskussionsrunde. Ein studentischer Teilnehmer, der im Rahmen seiner Bachelor-Arbeit das Thema Anforderungsmanagement bearbeiten will, eröffnet die offene Frage- und Antwortrunde: Welche Besonderheiten gilt es zu betrachten, wenn in Agenturen TYPO3 eingesetzt und angeboten wird?

Generell fällt auf, dass es eigentlich keine Vergleichbarkeit auf dem ersten Blick zwischen verschiedenen TYPO3-Projekten gibt. Die technologische Basis, die durch TYPO3 vorhanden ist, führt nicht zu einer einfachen Anforderungsliste. Faktoren, wie Kundenbudget, gewünschte Projektziele, Prozesse im Unternehmen, Konzeptions-Stärke der Agentur (mit dem damit verbundenen Beraten-werden-Wollen des Kunden), erwartete und gelieferte Qualität spielen bei der Formulierung der Anforderung eine große Rolle.

Die Diskussionsrunde ist, aufgrund ihrer offenen Fragestellung und vielleicht auch durch den Mangel an Definition und Kenntnisse zum Anforderungsmanagement, geprägt von narrativen Beispielen. Das ist nicht schlecht, aber ich möchte nicht der Student sein, der die Arbeit zu diesem Thema schreiben muss.

Dennoch ist der offene und ehrliche Austausch von Erfahrungen bei solchen Barcamps für mich das wirkliche Salz in der Suppe. Der Blick hinter die Kulissen, der mir sagt: Hier haben andere das gleiche Problem aktuell, welches einem im Umgang mit Kunden und TYPO3 begegnet ist.

YaCy Integration in TYPO3

Meine zweite Session am Nachmittag dreht sich um die Integration von YaCy in TYPO3 durch Eike Starkmann. Ein Thema, welches mich aufgrund meiner Apache-Solr-Kenntnisse interessiert.

YaCy basiert auf einer Crawling Engine, die HTML Websites besucht und indexiert. Hierbei nutzt die Anwendung Apache Solr als Index. Externe Quellen werden durch ein Harvester importiert. Der aus der Box fallende Funktionsumfang erlaubt es den gecrawlten Inhalt zu filtern. Eine Strukturanalyse der indexierten Inhalte ist möglich. So ist das Auffinden von toten Links zum Beispiel gut möglich. Mittels RSS Feed Integration wird Content von Plattformen in der Suche aufgenommen. YaCy verfügt über eine Konfigurationsmöglichkeit für das Ranking.

TYPO3 Camp Session empty roon (c) Olivier Dobberkau 2016

Eike Starkmann zeigt uns anschließend das YaCy Backend und indexiert live die TYPO3 Barcamp Website.

Ein möglicher Usecase für YaCy könnte die Beobachtung von Websites sein.

Ein Docker Image für erste Tests steht zur Verfügung, aber es gibt ein paar Probleme mit der Nutzung der Peer-to-Peer-Technologie.

YaCy Instanzen können auch von Dienstleistern gemietet werden. Das Backend von YaCy kann in viele Aspekte eingreifen. So ist es schon möglich Boosting-Faktoren in einem Index zu beeinflussen.

https://github.com/Starkmann/yacy

Strukturierte Daten und TYPO3

In der letzten Session von Vera G. Meister und Jonas Jetschni geht es um die Nutzung von strukturierten Daten im Universitätskontext. Hochschulen, die mittlerweile im Bereich Marketing vieles unternehmen müssen, stehen hier vor der Notwendigkeit bis zu 50 verschiedene Plattformen mit Informationen zu angebotenen Studiengängen zu befüllen.

Der Aufwand, die Inkonsistenz und mangelnde Homogenität, die durch eine solch wenig automatisierte Vorgehensweise stehen in keinen Verhältnis zum Effekt.

Hier haben sich die beiden Vortragenden Gedanken gemacht und sehen in der semantischen Auszeichnung einen Lösungsansatz, um die Arbeit von Universitäten im Bereich Publikation zu Studiengängen zu verändern und so zu erleichtern.

TYPO3 Camp in the Dark (c) Olivier Dobberkau 2016

Auf der Suche nach Umsetzungsideen und mit der Tatsache verbunden, dass viele Universitäten auf TYPO3 setzen, haben die Beiden den Besuch des Camps als gute Möglichkeit für Input gewählt.

Ziel ist es Daten, die in TYPO3 erstellt werden, so auszugeben, dass Maschinen diese Daten erfassen und weiterverarbeiten können.

Als Standard für die Speicherung solcher Daten ist JSON-LD vorgesehen. Basis sind die von Schema.org http://schema.org/docs/schemas.html angebotenen Kataloge von Dingen.

Idealerweise würde TYPO3 sich mittels einen Models (gemäß Schema.org) konfigurieren lassen und die Ausgabe einzelner Seiten maschinenverständlich ermöglicht.

In meinen Forschungsprojekt ForgetIT habe ich mich mit dem Thema Content maschinenverständlich auszuzeichnen beschäftigt. Hier wurde uns klar, dass ohne einen sehr konkreten Nutzen, eine semantische Annotation von Content nicht stattfinden wird. Ansatzpunkt ist aber die Bevorzugung von annotierten Content durch die Suchmaschinen wie Google, welche eine Motivation bedeuten könnte. Wichtig ist, dass die Organisationen verstehen, welche nächste Schritte zu gehen sind. Hier ist der Bereich Semantisches Web immer noch ein Buch mit sieben Siegeln und Beratung mehr als notwendig.

Hier gilt es über den konkreten Usecase hinaus, die Möglichkeiten für andere Organisationen zu beschreiben.

So würden Unternehmen von einem maschinenlesbaren Modell gemäß Schema.org profitieren. Im Bereich der Unterhaltungsindustrie bildet das schon die Basis für intelligente und natursprachliche Abfragen in Sinnen: Hey Siri, zeige mir Filme mit amerikanischen Schauspielern zum Thema Börsenturbulenzen.

Background der beiden Vortragenden:
https://bmake.th-brandenburg.de/

BBQ

Zum Ende des erstes Camp-Tages steht das Social Event mit einem BBQ an. Für die Unterhaltung wird mit Musik, Kubb und dem TYPO3 Jeopardy gesorgt.

Ein Dank gilt dem Sponsor des Social Events: WebhostONE https://www.webhostone.de/

Fazit des ersten Tages:

Tag 2

Ab 9.00 Uhr morgens geht es mit einem Frühstück los. Anschließend wird die Session-Planung aktualisiert und mit zwei Session-Blöcken bis kurz vor eins zum Mittagessen durchgeführt.

TYPO3 Sessions Day 2 (c) Olivier Dobberkau 2016

Docker

Ich besuche am Vormittag eine Doppelsession zum Thema Docker. Nachdem ein kurzer Überblick über die Grundideen von Docker gegeben worden ist, geht es munter hin und her um Vor- und Nachteile der Nutzung von Docker im TYPO3-Umfeld. Leider hatten wir während der Session Netzwerk-Probleme, so dass die Demos nicht so durchschlagend waren.

In der dkd haben wir Docker in der Evaluation, um unser bestehendes Development Setup zu ersetzen. Wir hoffen bis Ende des Jahres auch hier eine stabile Basis zu haben mit der wir auch Projekte in Produktion geben können.

Meine Literatur-Emfehlung für den Einstieg: https://www.dockerbook.com/

Security in der Praxis

Nach der Mittagspause geht es in Jochen Weilands Talk um das Thema Security in TYPO3. Hier erklärt Jochen wie ein Hacker in Weißrussland binnen der letzten Jahre mehrfach TYPO3-Installation mit Hilfe von einer Sicherheitslücke kompromitierte. Unter Ausnutzung einer SQL Injection konnte so extra Code auf dem Server installiert werden, mit dem unter anderen Passworte erspäht werden.

Entlang der Themen Passworte, Upload von Dateien und Nutzung von SSL illustriert Jochen gekonnt welche Vorgehensweisen sich in der Praxis gut eignen seine TYPO3-Installation aktuell und sicher zu halten.

Die Folien zum Talk können hier runtergeladen werden: http://www.jweiland.net/t3cb

Zum Ende des Nachmittags gibt es noch eine Session mit einem Gedächtniskünstlers. Diese habe ich leider nicht besuchen können, da ich zum Flughafen musste.

TYPO3 Barcamp Aula (c) Olivier Dobberkau 2016

Mein Fazit: Eine tolle Veranstaltung an einem schönen Veranstaltungsort, die ich hoffentlich im kommenden Jahr wieder besuchen kann.