Symfony 3 vs. 4: Früher war alles besser … Wirklich?

Ich bin inzwischen in einem Alter, in dem ich – ähnlich wie meine Eltern früher – kopfschüttelnd die Kids von heute beobachte. Emojis, Sprachnachrichten über einen Textmessenger, … Früher war das doch nicht so, oder? Früher war alles besser!
Weiterlesen

Redux-Workshop für Einsteiger

In diesem Workshop gebe ich eine schnelle und praktische Einführung in das State-Handling-System Redux. Hierfür wollen wir unser bestehendes React-Projekt aus dem React-Workshop für Einsteiger so umschreiben und erweitern, dass das State-Handling unserer Task-Listen-Applikation komplett vom Redux-System übernommen wird und dessen Vorteile in der Praxis sichtbar werden.

Weiterlesen

React-Workshop für Einsteiger

In diesem React-Workshop möchte ich einen schnellen und praktischen Einstieg in die Entwicklung mit dem JavaScript-Framework bieten und alle Bestandteile vorstellen, die man benötigt, um eigene Anwendungen mit dem erfolgreichen und weit verbreiteten System zu entwickeln.

Hierfür erstellen wir zusammen eine kleine Web-Applikation, die den Benutzer eine ToDo-Liste verwalten lässt, in der er neue Tasks anlegen sowie bestehende Tasks löschen und umpriorisieren kann. Im Laufe der Umsetzung werden alle wichtigen Grundprinzipien von React Schritt für Schritt vorgestellt und in die Praxis umgesetzt.

Was ist React?

React-Logo

Bei React handelt es sich um ein von Facebook ins Leben gerufenes Web-Framework für die Entwicklung von Single-Page-Webanwendungen. Die einzelnen Bestandteile unserer Anwendung werden unter React konsequent durch die Realisierung unabhängiger und modularer Komponenten konzeptioniert.

Der Benutzer erfährt hierdurch eine sehr responsive und gesamtheitliche User-Experience, die mit Hilfe des Frameworks sehr einfach und gut strukturiert umgesetzt werden kann.

Weiterlesen

21.12. Agile Developer Skills (ADS)

Last week I had the chance to attend an Agile Developer Skills Workshop in Berlin.

The 3 day workshop is, next to a Scrum Master or PO Certification, a prerequisite for the Certified Scrum Developer, short CSD.

I was very excited about the ADS workshop and I found it an intersting approach to hold a workshop which focusses on developers rather than on the management side of scrum. Especially as in my experience all the other scrum workshops mainly concentrate on the rituals, artefacts and organisation of Scrum, without giving answers on how to develop high quality software.

Weiterlesen

IPC die Zweite – DevOps

Nach einem sehr guten Mittagessen, in tollem Ambiente ging es weiter mit dem Powerworkshop von Soenke Ruempler (Jimdo) und Johann-Peter Hartmann (SektionEins GmbH, Mayflower GmbH).
Da sich, vielleicht zum Glück, nur wenige Teilnehmer für diesen Workshop fanden, ging die Vorstellungsrunde recht flink und es wurde schnell deutlich was wir als Publikum zu erwarten hatten.
Die Vortragenden stellten klar das PHP seinen größten Vorteil, das schnelle umsetzen von Anforderungen, durch fortschreitende Professionalisierung eingebüßt habe und Scrum nur einen Teil der Lösung darstellt.
Grund für die Tatsache, dass der Scrumprozess bei dem Benutzer nicht ankommt sind seltene Deployments, welche mehrere Features zusammenfassen.
Dadurch wird der in kurzen Iterationen angelegte Scrumprozess von einem wasserfallartigen Deployment überdeckt.
Grund für die seltenen Deployments ist der erhebliche Zeitaufwand für die Administratoren und der fehlende Projekt überblick, auch als Silo-Problematik bekannt.

Eine mögliche Lösung für das fehlende Betrachten des Gesamtprojektes, wurde mit Kanban recht ausführlich vorgestellt.
Dieses kann genutzt werden, um Engpässe im Projekt zu visualisieren, vor allem wenn diese zwischen Abteilungen entstehen.

Wichtigster Teil des Vortrages war es aber, die Lücke zwischen Development und Administration zu schließen.
Während die Developer vorrangig die Features im Blick haben, steht für die Administration der Reibungslose Ablauf im Tagesbetrieb im Vordergrund.

Schließen kann man diese Lücke durch das richtige Toolset.
Die Administrationsseite kümmert sich darum, eine Infrastruktur zu schaffen, damit das Deployment von den Entwicklern übernommen werden kann und bekommt im Gegenzug das lästige Deployment abgenommen.
Dadurch werden Kapazitäten frei, um die Infrastruktur zu erweitern, was beiden Seiten zu gute kommt.

Für diesen Zweck wurden Puppet und Vagrant vorgestellt.

Puppet ist ein System zur automatisierten Verteilung und Durchführung von Serverkonfigurationen.
Mit Vagrant wurde er Tool vorgestellt, welches anhand von Konfigurationsbeschreibungen beliebig viele virtuelle Maschinen aufsetzten kann.
Konfigurationen können dabei auch aus einem Puppet-Repository stammen, was den Verwaltungsaufwand reduziert.
Mit beiden Tools in Kombination ist es möglich, lokal das Produktivsystem nachzustellen und zu testen.
Das anlegen mehrerer vorkonfigurierter Server wurde dabei ausführlich vorgeführt.

Anschließend wurde noch das Buildpipelining vorgestellt, am Beispiel des Mapolis Projektes.
Buildpipelining beschreibt die Möglichkeit PHPUnit Test und Selenium Test getrennt voneinander auszuführen, letztere nur nach erfolgreichem Verlauf der voran gegangenen Tests.
Theoretisch kann nach erfolgreichem Bestehen aller Buildprojekte ein automatischer Deploy erfolgen.
Praktisch wird jedoch oftmals noch die Freigabe des Projektleiters benötigt.

Das Ziel des Workshops, Administratoren und Entwicklern Tools aufzuzeigen, die die Deploymentrate erhöhen können, wurde in 4 Stunden gut vermittelt und es wurde klar gestellt, dass es mithilfe dieser Tools möglich ist, PHP seinen verlorenen Wettbewerbsvorteil zurück zu geben.
Dennoch waren die 4 Stunden sehr knapp bemessen, die größtenteils abstrakten Inhalte zu vermitteln, weshalb ich trotz der vielen mitgenommenen Ideen danach froh war entspannen zu können.

IPC die Erste – RIA – Entwicklung mit Ext JS

Der Tag startete mit einem Vortrag von Dominik Jungowski (Chip Xonio Online GmbH) und Hans-Christian Otto (crosscan GmbH).
Das ganze war als Workshop angelegt und dementsprechend sportlich wurde auch sofort, nachdem jeder kurz seine Javascript und ExtJS Erfahrungen und Erwartungen umrissen hatte mit der ersten Aufgabe, ein Border Layout mit ExtJS umzusetzen, losgelegt.

Zu Beginn fühlt sich ExtJS völlig anders an als normale Javascriptentwicklung, sehr viel zielgerichteter und sauberer.
Mit nur wenigen Zeilen Code entstand ein 5-teiliges Layout, welches im Laufe des Workshops durch einen Data Store und ein Grid erweitert wurde, so das am Ende der 4 Stunden eine funktionale Anwendung entstand, welche so durchaus auch für Projekte genutzt werden kann.
Verblüffend war dabei wie schnell mit wenigen Zeilen Code eine lauffähige Rich Internet Application zusammengeschraubt war, welche, ausgestattet mit realen Daten, produktiv gehen könnte.

ExtJS macht einen sehr robusten Eindruck und ermöglicht durch seinen modularen Aufbau und seine gute Dokumentation auch für Neulinge in der ExtJS Welt einen sehr schnellen Erfolg, was von den Vortragenden eindrucksvoll an Beispielaufgaben, die jeder lösen konnte, demonstriert wurde.
Einziger Kritikpunkt war der Zeitmangel, da in 4 Stunden Workshop nur ein sehr oberflächlicher Einblick in das mächtige ExtJS Framework gegeben werden konnte.

Einladung zum Themenabend „Barrierefreiheit im Internet in Theorie und Praxis“

Die PHP Usergroup Würzburg veranstaltet am Dienstag, 01.12.2009 um 19:00 Uhr einen Themenabend zur “Barrierefreiheit im Internet in Theorie und Praxis”.

Jason Easter, Senior Developer und Teamleiter bei der Fa. Mayflower GmbH, wird zunächst einen Vortrag über die theoretischen Aspekte halten und erklären, warum Barrierefreiheit nicht nur für Blinde wichtig ist.

Im Anschluss daran wird Markus Heurung, Lehrer und Online-Trainer am Berufsförderungswerk Würzburg, über seine Erfahrungen bei seiner Arbeit mit Blinden und Sehbehinderten berichten und erklären, wie diese tagtäglich mit Barrieren zurecht kommen müssen.

Abgerundet wird der Abend durch Marcel Heim, einem ehemaligen Küchenchef, der im jungen Erwachsenenalter erblindete. Er wird zur Zeit zum Fachinformatiker Anwendungsentwicklung umgeschult und war (Blinden-)Fußball-Nationalspieler. Er wird aus eigener Erfahrung berichten und demonstrieren, wie sich ein Blinder im Internet zurecht findet, welche Hilfsmittel ihm dabei zur Seite stehen und welche Barrieren trotzdem noch unüberwindbar sind.

Die Veranstaltung findet in den Räumen der FRANKFURTER FUENF, Frankfurter Straße 5, 97082 Würzburg, statt.

Alexander Deß (FRANKFURTER FUENF) und Mayflower unterstützen diese Veranstaltung mit einem Zuschuss zur Verpflegung, wofür sich die PHP Usergroup bereits jetzt herzlich bedanken möchte.

Aus organisatorischen Gründen wird um eine Anmeldung bis zum 27.11.2009 gebeten. Diese kann hier per Kommentar sowie telefonisch unter 0179 6744360 erfolgen.

Dojo Toolkit Workshop, Mai 2009

Anfang Mai luden Uxebu und SitePen zu einem Dojo Toolkit-Workshop, genauer gesagt „Intro to Dojo, Charts, Grids, and Comet“, nach Oberhaching bei München. Mayflower war mit schätzugsweise einem guten Drittel aller Workshop-Teilnehmer zahlreich vertreten.

Dylan Schiemann von SitePen, Inc. und Nikolai Onken von Uxebu führten durch das Programm, außerdem konnten die Teilnehmer bei Fragen auf das Wissen und Erfahrung von Wolfram Kriesing (Uxebu), Tobias von Klipstein (Uxebu) und Peter Higgins (Dojo Toolkit) zurückgreifen.

Nachdem das Programm im Laufe der Zeit auf einen Tag reduziert worden war, änderte sich auch das Grundkonzept der Veranstaltung. Diese sollte nun die Benutzung von einigen ausgewählten Widgets zeigen, wobei sich die Auswahl an der Anwendung Stocker orientierte.
http://persevere.sitepen.com/stocker.html

Das Backend (Persevere/CometD-basiert) wurde von Sitepen bereitgestellt. Nähere Details zum Backend bzw. zur Anwedung selbst können hier in Erfahrung gebracht werden:
http://www.sitepen.com/blog/2009/04/01/stocker-advanced-dojo-made-easy/

Die behandelten Widgets waren u.a.:
dijit.layout.BorderContainer
dijit.layout.ContentPane

dojox.grid.DataGrid (mit Anbindung an einen JSON-Store über dojo.data.ItemFileReadStore)
dojox.charting.Chart2D

Aufgrund des engen Zeitrahmens wurde auf den Dojo Parser sowie die CSS-Struktur nur insofern eingangen, als dass man sich die entsprechenden Includes kopieren/abschreiben konnte, mit der man eine Umgebung zum Ausprobieren hatte. Auch wurde nahezu ausschließlich nur das „deklarative“ Dojo-Programmierungsmodel gezeigt, sprich die Widgets wurden über Markup platziert und initialisiert, nicht programmatisch.
http://dojocampus.org/content/2009/04/15/declarative-vs-programatic/
Andererseits ist es wohl genau der Weg, den jemand beim ersten Blick auf Dojo zuallererst einschlagen würde.

Der Ablauf jedes Agenda-Teilschrittes (im Falle der Widgets) war wie folgt:

  • Vorstellung des Widgets inkl. Beispielcode
  • 15-30 Minuten Zeit, in der die Teilnehmer das zuvor Gezeigte selber ausprobieren konnte. In dieser Zeit begutachteten die Tutoren immer wieder den Fortschritt bzw. standen für Fragen zur Verfügung

Natürlich bestand die Agenda nicht nur aus Widgets – diese wurden immer wieder mit anderen Programmpunkten aufgelockert – sei es durch Interessantes von Dylan (ob Geschichte des Dojo Toolkits oder kurze Erklärung von Polling und Comet), ganz banal Mittagessen oder (am Ende) Peters beeindruckende Einblicke in plugd (Erweiterung der Dojo-Basisbibliothek).

Trotz der Ausrichtung auf Anfänger, gab es auch zwischendurch kleinere Tipps, die man auch als erfahrener Dojo-Anwender nicht unbedingt gekannt hatte, z.B.:
Weiterlesen