Zum Hauptinhalt springen

Die erste Änderung in der Twitter-API ist seit ein paar Tagen scheinbar aktiv, was bedeutet, dass Third-Party-Clients diese Woche noch periodisch Zugriff auf diverse APIs (Site Stream und User Stream) haben, die aber dann endgültig am 23.08. abgeschalten werden. Die DirectMessage-API darf noch bis zum 17.09.18 existieren und eine Woche vorher treten dann noch die neuen API-Restrictions und neuen Regeln für das Entwickeln von Apps in Kraft, die es den inoffiziellen Clients noch schwerer machen werden.

Zwar kann man angeblich den Support anbetteln, dass die eigene App die aktuell geltenden Limits zurückbekommt, aber das ist so schön formuliert, dass die Ausnahme nur für die aktuelle App gilt. Sollte also eine neue Version von Tweetbot herauskommen, werden nur noch die neuen Limits gelten. Und damit das Aus für Tweetbot & Co. bedeuten.

Ich habe keine richtige Ahnung, warum sich Twitter so verhält und die Wünsche ihrer User ignoriert. Ich denke mal, dass es um die Maximierung von Werbeeinahmen und bezahlten Tweets geht, die in den 3rd-Party-Clients nicht angezeigt werden. Twitter scheint sich sehr an Facebook zu orientieren, was die Umgestaltung seiner Streams angeht. Die anfangs noch chronologisch geführte Timeline wurde in der Webansicht und in der offiziellen Client-App durch Algorithmen und Werbeanzeigen kaputt gestaltet, dass diese eigentlich unbenutzbar sind.

Seit ein paar Tagen schaue ich mir Mastodon an, dass ein sehr ähnliches Konzept wie Twitter verfolgt, aber in erster Linie nur ein Stück Software ist, das jeder nutzen kann, um eine eigene Instanz zu erstellen. Die Mastodon-Instanzen können sich dann untereinander unterhalten, können aber auch geblockt werden, wenn sich eine Instanz zum Beispiel als Versender von Spam herausstellt.

Die Idee dahinter ist verlockend und durch die Twitter-Ankündigung sind die verfübaren Mastodon-Instanzen auch mit Accounterstellungen überrant worden. Trotzdem befinden sich zur Zeit einfach zu wenige Nutzer auf den Instanzen, so dass sich ein ähnliches Gefühl wie bei Diaspora breitmacht. Diaspora war damals mit einem ähnlichen Ansatz gegen Facebook angetreten, hat aber in den bestehenden knapp acht Jahren seiner Existenz noch nicht einmal die Millionen-Marke an Benutzern geknackt.

Gestern habe ich den Kommentar auf Heise zum Sterben von RSS mit Verwunderung gelesen. Wie oft ist eigentlich RSS schon gestorben? Schon mit dem Wegfall von Google Reader Mitte 2013 wurde RSS schon zu Grabe getragen. Klar, das war ein herber Einschnitt und seitdem entwickelt sich RSS beziehungsweise die Clients nicht sonderlich weiter. Auch mein Lieblingswerkzeug Fever wird seit 2016 nicht mehr weiter entwickelt.

Aber tot ist RSS in meiner Filterblase nicht. Mein Rasen ist tot, wie man auf dem Foto gut sehen kann. Aber RSS konnte sich in seiner Form einfach nicht durchsetzen, aber die Idee dahinter ist doch nichts anderes als das Abonnieren eines Facebook-Kanals, nur dass man hier leider eine gefilterte Version bekommt und nicht alle Einträge chronologisch sortiert.

Vielleicht muss man einfach nur mal wieder mehr Werbung für RSS machen? Ich entwickele seit einiger Zeit eine TYPO3-Erweiterung, die einen ähnlichen Funktionsumfang wie Fever hat. Einfach, weil ich Fever für mich als die beste Lösung fand. Es war selbstgehostet, die Daten bleiben also bei mir und es gab sogar Apps auf iOS (auf Android wahrscheinlich auch), die die Fever-Schnittstelle abfragen konnten.

Die Einträge von mir können übrigens auch per RSS abgeholt werden. Die deutschen Artikel bekommt man unter der Adresse https://www.insomniaonline.de/feed und die englische Übersetzung unter https://www.insomniaonline.de/en/feed.

Über den Blutmond in Zelda: Breath of the wild kann ich mich ja aufregen. Aber das ist eine andere Geschichte. Beim heutigen Blutmond bei uns haben keine Gegner respawned, das Ganze wurde eher von einem netten Picknick umrahmt und neben ein paar kleinen Sternschnuppen und der ISS gab es eine ziemlich lange totale Mondfinsternis mit Blutmond. Und Mars.

Vor ein paar Wochen hatte ich richtig Schiss. Respekt. War angespannt wie ein Flitzebogen. Hatte wochenlang gelernt. So richtig, wie man es damals hätte in der Schule oder Uni machen sollen. Kannte ich gar nicht oder hatte es schon wieder vergessen, wie es ist, sich auf eine Prüfung vorzubereiten.

Die Schullaufbahn und die Ausbildung ist ja auch schon echt mal lange her und zwar lerne ich jeden Tag etwas Neues hinzu, aber sich auf eine Zertifizierung vorzubereiten ist dann doch etwas anderes. Aber ich habe es geschafft und die nächsten drei Jahre darf ich mich TYPO3 CMS Certified Integrator nennen!

Und übermütig bin ich auch gleich geworden, bereite ich mich doch schon auf die nächste Zertifizierung vor: TCCD oder TYPO3 CMS Certified Developer. Aber das hat bis Anfang nächsten Jahres noch Zeit...

Bei der Umstellung des Blogs auf TYPO3 habe ich die Kommentar-Funktion gekilled. Nicht, dass hier viele Artikel kommentiert wurden, auch wenn ich für jeden Kommentar dankbar war, aber eine großartige Diskussionskultur kam hier aufgrund auch meiner Texte nicht auf. Warum auch?

Trotzdem hat mir in den letzten Tagen etwas gefehlt. Und somit sind ab jetzt bei allen Blogposts wieder die Kommentarfunktion verfügbar. Die Kommentare aus der Wordpress-Installation habe ich leider nicht mehr, da ich die Installation und die Backups gelöscht habe. An dieser Stelle bitte ich bei den damaligen Kommentatoren um Entschuldigung. Das hätte ich besser planen sollen.

Die letzten Tage in Griechenland, das Betrachten der täglichen News aus der "sicheren" Entfernung, das nur leichte Überfliegen der Nachrichten meiner Filterbubble und das Konzentrieren auf die wesentlichen Dinge (nämlich Entspannung und Zeit mit der Familie) haben mich ziemlich nachdenklich gemacht.

Es war mein erster Besuch von Griechenland und leider ein wenig zu touristisch geprägt. Etwas über eine Stunde nach Süden von Thessaloniki entfernt, gab es wenig Möglichkeiten mehr über dieses Land zu erfahren. Kulturell war dort echt tote Hose, alles war nur auf den Tourismus ausgelegt. Das wenige, was man über Griechenland erfahren konnte, war, dass es den Griechen echt nicht so prall gehen muss. 

Und dann liest man täglich, wie hier in Deutschland die politische Diskussion immer weiter vor die Wand gefahren wird. Und gefühlt ein Stillstand herrscht, was andere Themen außer der Asyl- und Flüchtlingsdebatte angeht. Es kann doch nicht sein, dass es in der politischen Debatte nur noch um Einwanderung geht und von Sektoren wie Bildung (das wichtigste überhaupt!), Gesundheit und Auffangen der unteren sozialen Schichten keine Rede ist.

Ich denke immer mehr darüber nach, mich in irgendeiner Weise politisch zu engagieren, um mir später nicht selber vorwerfen zu müssen, dass ich einfach nur zugeschaut habe, wie die rechten Idioten die Oberhand gewonnen und dieses Land kaputtgemacht haben. Ich weiß nur leider noch nicht wie, weil ich mich derzeit einfach mit keiner Partei identifizieren kann.

Eine vollkommene Deckungsgleichheit mit einem Parteiprogramm mit seinen Ideologien bekommt man ja sowieso nie hin, aber bei mir hapert es allein schon an der grundsätzlichen Ausrichtung. CDU und Konsorten scheiden aus, bei den Linken fand ich schon immer eigentlich nur Gregor Gysi ansprechend, die Grünen sind mir einfach nicht mehr ihrer Ideologie treu und die SPD richtet sich seit Jahren nur noch zu Grunde. Obwohl ich bei der SPD die größte Überschneidung mit meinen politischen Interessen finde, zögere ich noch, wohin die Reise gehen soll.

Auch wenn ich immer mehr das Gefühl bekomme, dass es so langsam Zeit wird, den Arsch hochzubekommen. Und aktiv zu werden.

Und schon ist der letzte Tag der Developer Days da. Schön wars, inspirierend und aufregend zu gleich. Es war ja mein erstes Event überhaupt in der TYPO3 Community und ich hatte von Anfang an das Gefühl integriert zu sein. Ich habe eine Menge netter Leute getroffen, die man bis jetzt nur von Twitter, Slack oder von ihren Arbeiten im TYPO3 Universum her kannte. Ich glaube, ich werde immer mal wieder auf Events vorbeischauen und auch die Form der Barcamps ausprobieren.

How to better maintain your (public) extensions

Nicole Cordes zeigte ihr TravisCI-Setup, mit dem sie eine Menge Tasks abfeuert: PHPLinter zum Überprüfen der Kompatibilität, Unit und Functional Tests, Überprüfen der Codequalität per SonarQube und abschließendes Veröffentlichen im TER, wenn alle Tests durchgelaufen sind.

Auf den gesamten DevDays kristallierte sich heraus, dass es ohne Automatisierung einfach nicht mehr funktioniert. Keiner möchte mehr diese Tasks manuell ausführen, weil es nur unnötig Zeit kostet. Aber diese Tasks einfach wichtig sind und immer wichtiger werden, vor allem, wenn man in Teams unterwegs ist. Dienste wie SonarQube können die Qualität des Codes erhöhen und vor allem auf einen fest definierten Standard bringen. Tests sorgen dafür, dass der ganze Kram in erster Linie funktioniert und Änderungen nichts kaputtmachen.

Es wird Zeit, dass alles auch zu automatisieren!

TYPO3 Performance

Speed ist alles, wenn man eine Website aufruft. Dauert das Laden/Anzeigen der Seite zu lange, ist der Tab schon wieder zu.
Marcus Schwemer von in2code präsentierte seine sieben Schichten der Performance Onion (Delivery, Frontend, TYPO3 Konfiguration, Extensions, TYPO3 Core, Services und Hardware).

Angefangen beim Ausliefern an den Browser mit angepassten Caching-Hinweisen (Expire-Header, Cache-Control-Header), über minimiertes und gezipptes Ausliefern von Ressourcen, über das Verwenden von Cache-Extensions wie staticfilecache, Optimierung der GarbageCollection der TYPO3-Cache-Tabellen, das Verwenden des Caching-Frameworks beim Entwickeln eigener Extensions bis hin zur Optimierung der PHP-Konfiguration und schlußendlich dem Verbessern der Hardware-Architektur war alles dabei.

Am dritten Tag war ich etwas zwiegespalten, welche Sessions ich besuchen wollte, weil es leider ein paar Überschneidungen gab. Auf der einen Seite wollte ich mir die PHPUnit-Session anschauen, um nochmal einen Tritt in den Allerwertesten zu bekommen, viel mehr Unit-Testing zu betreiben, auf der anderen Seite hat mich aber die Nachmittagssession über das "perfekte" composer-Setup interessiert. Letzteres hat dann gewonnen.

How TYPO3 can help you with GDPR

Und schon wieder eine GDPR-Session! Wer des Themas noch nicht überdrüssig ist, kann sich gerne mal neben den GDPR-Änderungen in den TYPO3-Cores von 6.2 ELTS bis hin zum Master auch die gdpr-Extension von Georg Ringer, der den Talk gehalten hat, anschauen.

Georg zeigte am Anfang den Scheduler-Task und die IP Anonymization API, die in TYPO3 enthalten ist, wobei diese nur Definitionen für sys_log und indexed_search bereithält, für andere Extensions muss man dann seine eigenen Konfigurationen schreiben bzw. werden hoffentlich diverse Extensions angepasst.

Daneben gibt es ja die schon vorhandenen Tasks des GarbageCollectors und vom Recycler den Task zum Entfernen gelöschter Inhalte aus der Datenbank.

Im Zuge der DSGVO muss man ja vielleicht sogar ein Verfahrensverzeichnis erstellen, was dann einhergehen sollte, dass Backend-Zugriffe restriktiver gehandhabt werden. Denn nicht jeder BE-User muss persönliche Daten einsehen können.

Neben so Allgemeinplätzen wie dem Einbinden von Inhalten fremder Plattformen wie YouTube, ging es dann noch um die in der GDPR/DSGVO verankerten Notwendigkeit von Datenlöschung und Export von personenbezogenen Daten bis hin zur Verschlüsselung von sensiblen Daten direkt in der Datenbank.

Zum Schluss stellte er noch seine gdpr-Extension vor, die es auch in einer zahlungspflichtigen Variante gibt. Diese enthält dann ein Backend-Modul zum Löschen und Pseudonymisieren von Datensätzen mittels Faker.

Slides zu der Session kann man hier finden.

Create your perfect TYPO3 (Composer) project setup

In der Vorbereitung auf die TCCI-Prüfung musste ich mich mit der "normalen" Installation von TYPO3 beschäftigen und stellte mal wieder fest, wie einfach nicht nur die Installation, sondern auch das Verwalten von Abhängigkeiten mit composer geworden ist.

Das "perfekte" composer Setup von Helmut Hummel kommt meinem schon recht nahe (beziehungsweise umgekehrt): es wird alles nur noch per composer verwaltet, mit TYPO3 Console wird die PackageStates geschrieben, die Datenbankstruktur wird auf den neuesten Stand gebracht und die Verzeichnisstruktur wird angepasst.

Auch die Trennung von web und vendor halte ich für obligatorisch. Konfigurationsdateien und ähnliches gehören einfach nicht ins Webroot. Warum man, wie am Beispiel von T-Mobile Austria erwähnt, ein komplettes git-Verzeichnis auf einen Live-Server deployed werden konnte: naja, jeder hat mal einen schlechten Tag.

Ganz so hart wie man es mit Helmuts typo3-secure-web anstellen kann treibe ich es zwar noch nicht, aber das werde ich mir mal anschauen, ob man das Package auf alle Hosting-Umgebungen, mit denen ich es zu tun habe, verwenden kann.

Äußerst interessant fand ich auch sein Konzept des Environment-Handlings mit typo3-config-handling, dass die gesamte Konfiguration und sogar das Extconf-Handling in Yaml-Dateien auslagert. Ich benutze dafür noch den ApplicationContext, der dann je nach Kontext die LocalConfiguration mit anderen Werten überschreibt, die ich zum Beispiel in Development benötige.

Die Slides seiner Präsentation kann man hier finden.