Montag - 13. Oktober 2014
09:00 bis 12:30

JavaScript Security (Teil 1)

german

+

Wenn der größte Teil der Logik in JavaScript stattfinden, dann findet auch der größere Teil der Sicherheitsrisiken dort seine Heimat. Und Angreifer finden mit JavaScript eine interessante neue Heimat, denn die Sprache selbst und auch Ihre Heimat in Browser und node.js bringen viele neue Probleme. Und genau da setzt der Vortrag an: die verblüffenden Unterschiede von JavaScript zu anderen Sprachen, wenn es um Security geht. Die Risiken und auch die Besonderheiten von Browsern und anderen JavaScript-Engines wie node.js. Die Security-Implikationen von JavaScript Frameworks bishin zu speziellen Problemen wie mXSS, ReDOS und HTML5-Security.

Johann-Peter Hartmann

Spielerei mit CSS3

german

+

Dank CSS3 können wir heute auf viele separate Grafiken und JavaScript verzichten. In dieser Session schauen wir uns anhand vieler Beispiele an, welche Techniken heute schon mit einer sehr guten Browserunterstützung genutzt werden können. Auch der Umgang fehlender Browserunterstützung wird thematisiert.

Jens Grochtdreis

ECMAScript 6 - Eine Zeitreise (Teil 1)

german

+

Die nächste Generation des JavaScript Standards, ECMAScript 6, nähert sich immer weiter der Fertigstellung. Viele neue Features, sowie strukturelle Änderungen der Sprache stehen bereits fest. Spannende neue Konzepte werden in JavaScript Einzug halten. Doch ist es jetzt bereits wichtig sich mit diesen zu beschäftigen, da diese doch vermutlich erst in Jahren vollständig von aktuellen Umgebungen unterstützt werden? Die Antwort ist Ja! Auch bereits heute gibt es dank der unermütlichen Arbeit unterschiedlicher Entwickler und Firmen die Möglichkeit bereits ECMAScript 6 kompatiblen JavaScript Code zur Ausführung zu bringen. Sei dies in kontrollierten Umgebungen, wie dem Server (Node.js) oder aber auch innerhalb aktueller, sowie älterer Browser, dank des Einsatzes sog. Transpiler. Dieser Workshop gewährt ihnen einen Blick in die Zukunft. Lassen Sie sich von Ihren Trainern Jakob Westhoff und Sebastian Springer die Geheimnisse der nächsten Sprachevolution zeigen. Lernen Sie viele dieser Fähigkeiten bereits heute einzusetzen, sowie deren Grenzen zu erkennen. Die Zukunft wartet auf Sie!

Sebastian Springer, Jakob Westhoff

Moderne Tools für Frontend-Tests (Teil 1)

german

+

Dieser Workshop richtet sich an Web- und Frontendentwickler, welche zumindest über grundlegende Kenntnisse von JavaScript und CSS verfügen. Am Beispiel einer Web Applikation lernen Sie, wie Sie Ihre Web Seiten und Web Applikationen auf verschiedenen Ebenen testen können. Sie lernen die grundlegenden Kniffe der UI-Testing-Tools DalekJS, Hardy, Siteeffect.io, Gremlins.js, Phantomas und Perfjankie kennen. In einfachen Beispielen erfahren Sie, wie Testfälle erstellt werden, die Ausführung auf mehreren Plattformen und Browsern automatisiert werden kann, Sie die Ergebnisse in Ihren CI Prozess integrieren, Anwendungen Stresstets unterziehen, Performance zur Lade- und Laufzeit messen und die Tests in Cloud basierten Testing Plattformen wie Sauce Labs ausführen können.

Sebastian Golasch
13:30 bis 17:00

JavaScript Security (Teil 2)

german

+

Wenn der größte Teil der Logik in JavaScript stattfinden, dann findet auch der größere Teil der Sicherheitsrisiken dort seine Heimat. Und Angreifer finden mit JavaScript eine interessante neue Heimat, denn die Sprache selbst und auch Ihre Heimat in Browser und node.js bringen viele neue Probleme. Und genau da setzt der Vortrag an: die verblüffenden Unterschiede von JavaScript zu anderen Sprachen, wenn es um Security geht. Die Risiken und auch die Besonderheiten von Browsern und anderen JavaScript-Engines wie node.js. Die Security-Implikationen von JavaScript Frameworks bishin zu speziellen Problemen wie mXSS, ReDOS und HTML5-Security.

Johann-Peter Hartmann

Moderne Tools für Frontend-Tests (Teil 2)

german

+

Dieser Workshop richtet sich an Web- und Frontendentwickler, welche zumindest über grundlegende Kenntnisse von JavaScript und CSS verfügen. Am Beispiel einer Web Applikation lernen Sie, wie Sie Ihre Web Seiten und Web Applikationen auf verschiedenen Ebenen testen können. Sie lernen die grundlegenden Kniffe der UI-Testing-Tools DalekJS, Hardy, Siteeffect.io, Gremlins.js, Phantomas und Perfjankie kennen. In einfachen Beispielen erfahren Sie, wie Testfälle erstellt werden, die Ausführung auf mehreren Plattformen und Browsern automatisiert werden kann, Sie die Ergebnisse in Ihren CI Prozess integrieren, Anwendungen Stresstets unterziehen, Performance zur Lade- und Laufzeit messen und die Tests in Cloud basierten Testing Plattformen wie Sauce Labs ausführen können.

Sebastian Golasch

HTML5 - Formulare für die Welt von heute

german

+

Schluss mit komplizierten JavaScript-Plugins für Datumspicker oder Formularvalidierung - der HTML5-Browser von heute hat all das schon eingebaut. HTML5 bringt neben neuen Input-Typen und einer eingebauten Validierungsmechanik auch viele weitere Formularfeatures mit, die allesamt früher mühsam gescriptet werden mussten und heute mit einfachstem HTML umzusetzen sind. Im Workshop lernen die Teilnehmer die neuen Inputs und Features von HTML5 kennen und erstellen selbst ein praxisnahmes Beispielformular.

Peter Kröner

ECMAScript 6 - Eine Zeitreise (Teil 2)

german

+

Die nächste Generation des JavaScript Standards, ECMAScript 6, nähert sich immer weiter der Fertigstellung. Viele neue Features, sowie strukturelle Änderungen der Sprache stehen bereits fest.

Spannende neue Konzepte werden in JavaScript einzug halten. Doch ist es jetzt bereits wichtig sich mit diesen zu beschäftigen, da diese doch vermutlich erst in Jahren vollständig von aktuellen Umgebungen unterstützt werden?

Die Antwort ist Ja!. Nachdem Sie in der ersten Session des Tages erste Eindrücke zum Umgang mit ECMAScript 6 sammeln konnten, sowie gelernt haben wie und wo dies bereits heute einsetzbar ist, führt sie der zweite Teil tiefer in die Zukunft. Die beiden Trainer Jakob Westhoff und Sebastian Springer zeigen ihnen an vielen Beispielen, welche neuartigen Konzepte und Features auf sie warten, wie diese gewinnbringend eingesetzt werden können und auf welche sie vielleicht lieber verzichten sollten.

Begeben sie sich in diesem zweiten Teil auch wieder mit auf eine spannende Zeitreise. Nehmen Sie das Beste aus der Zukunft zurück mit in die Gegenwart!

Sebastian Springer, Jakob Westhoff
17:30 bis 18:30

Projektkommunikation will gelernt sein!

german

+

Redet miteinander! - so banal die Forderung klingt, so schwer ist sie im Projektalltag umzusetzen. Team- und Abteilungsgrenzen, zu beachtende Hierarchien und "das haben wir schon immer so gemacht" stehen häufig pragmatischen Lösungen im Weg. So ist nicht verwunderlich, dass Projekte häufig nicht an der Technik scheitern. Projekte werden schwierig, wenn die teaminterne und teamübergreifende Kommunikation nicht funktioniert.

Die Referentin Judith Andresen berichtet über typische Kommunikationsfehler in Projekten und zeigt Wege auf, wie Teams sich mit einfachen Schritten in Richtung Offenheit und Klarheit entwickeln können.

Judith Andresen
Dienstag - 14. Oktober 2014
09:00 bis 12:30

Hood.ie - No Backend needed

german

+

Wer kennt das Problem nicht: Eigentlich möchte man nur schnell eine One-Page-JavaScript-Applikation bauen, die ein HTTP- Backend lediglich noch als Data Store benutzt. Leider ist es jedoch so, dass besagtes Backend natürlich auch einer Implementierung bedarf. Hood.ie ist der Ausweg aus dieser Misere. Es erlaubt die Erstellung von JavaScript Applikationen ohne Backend. Selbst Aufgaben, die ohne Backend-Dienst unmöglich scheinen, wie User-Authentification oder Versand von Mails, erledigt Hood.ie problemlos. Hood.ie verwendet ein modernes, speziell für das Web konzipiertes Architekturkonzept, das nicht nur die einfache Verwendung erlaubt, sondern ebenfalls die Erstellung von Offlineapplikationen mit zeit- verzögerter Synchronisierung zu einem Kinderspiel macht.

Verpassen Sie nicht die Möglichkeit, einen Blick in die Zukunft mobiler Applikationen zu werfen. Schließen Sie sich uns auf einem Weg durch die nächste Generation der JavaScript-Applikationsarchitektur an.

Kore Nordmann, Hans-Christian Otto

Techniken für asynchrones JavaScript

german

+

Egal ob im Browser oder in NodeJS: größere JavaScript-Projekte kämpfen immer mit asychronem Code. Um zu verhindern, dass man in die unübersichtliche Callback Hell abrutscht, braucht man auf asynchrone Umgebungen angepasste Programmiertechniken. Dieser Workshop stellt zentrale Async-Techniken wie Promises, Functional Reactive Programmierung und Generator Functions vor. Im Praxisteil entwickeln die Teilnehmer selbst ein kleines Tool für die Verarbeitung asynchroner Sequenzen mit Promises und Generator Functions.

Peter Kröner

Modulare Webentwicklung mit Sass

german

+

Webseiten sind keine Gesamtkunstwerke. Sie sind vielmehr eine Zusammenstellung einzelner Bestandteile, einzelner Module. Ich zeige, wie man eine Seite modular durchdenkt, aufbaut und dabei auch das CSS modular erstellt. Ansätze wie OOCSS, SMACSS und BEM werden dabei ebenso angesprochen, wie CSS-Frameworks.

Hilfreich ist dabei die Arbeit mit Sass und Compass. Mittels Mixins und Kontrollstrukturen können wir CSS quasi programmieren. Gleichzeitig ermöglichen uns die Tools eine sehr modulare Arbeitsweise, die uns beim Übergang zwischen Projekten zu Gute kommen. Hilfreiche Funktionen für Farben und die kinderleichte Erstellung von Sprites bringen mehr Spass in die Frontendentwicklung.

Grundsätzliches Ziel ist dabei die Sammlung einzelner, wiederverwendbarer Module, damit man sich selber die Arbeit in der Zukunft erleichtert und aus einem Fundus schon gelöster Probleme schöpfen kann.

Jens Grochtdreis

Touch Interfaces (Teil 1)

german

+

Getting touchy - eine Einfuehrung in Touch- und Pointer-Events

Jenseits von Smartphones und Tablets finden sich Touchscreens mittlerweile auch auf Laptops und traditionellen Desktop-Computern. Jetzt wo die Hardware-Unterstützung für Touch immer durchgreifender wird, ist es an der Zeit, dass sich Entwickler mit den neuen Möglichkeiten (und Problemen) dieser Technologie auseinandersetzen.

Dieser Workshop bietet einen Einstieg in die Erfassung und Bearbeitung von Touch-Events - von einfachen Tipps, wie man Web-Applikationen auf die Eigenheiten von Touch-Geräten optimieren kann, bis hin zu Gesten und Multitouch-Interaktionen.

Patrick H. Lauke
13:30 bis 17:00

Web Application Architecture

german

+

Dieser Workshop richtet sich an alle, die die strukturellen und architekturellen Unterschiede zwischen verschiedenen Backends für moderne JavaScript-Applikationen verstehen wollen.

So werden zum Beispiel die Vor- und Nachteile verschiedener Serverarten (Node.js, Application Server zu Shared-Nothing-Architektur) und Datenbanken (NoSQL, relationale Datenbanken und In-Memory-Speicher) diskutiert. Mit dem Workshop erhalten Sie das Basiswissen, um optimale Entscheidungen auf dem Weg zu skalierbaren und funktionalen Webapplikationen zu treffen. Während des Workshops werden die Erkenntnisse in Übungen mit Diskussion und Reflexion vertieft.

Kore Nordmann

CouchApps Hands-On

german

+

CouchDB hat durch die inhärente Verbindung mit Webtechnologien wie HTTP und JSON, aber auch durch die einfache Handhabung von Replikation und die damit verbundene Skalierbarkeit, mittlerweile in viele Webapplikationsstacks Einzug gehalten. Warum dann nicht auch für die Repräsentation und Manipulation ihrer Daten CouchDB benutzen und gleich alles "aus einer Hand" verwenden? Die Antwort auf diese Frage lautet CouchApps. CouchApps bieten Ihnen die Möglichkeit, komplette Webapplikationen (mit HTML und JavaScript) direkt aus der CouchDB auszuliefern. Dadurch lässt sich Ihre ganze Applikation ebenso leicht skalieren und replizieren wie Sie es von CouchDB-Datenbanken gewohnt sind und gewinnt gleichzeitig ein hohes Maß an Portabilität. In diesem Workshop möchten wir Ihnen praktisch näher bringen, wie Sie CouchApps entwickeln und Ihnen zeigen wofür Sie CouchApps einsetzen können und wofür nicht. Nach einer Einführung in die Grundkonzepte von CouchDB und CouchApps erhalten Sie die Möglichkeit gemeinsam mit uns eine CouchApp zu entwickeln und Ihr erworbenes Wissen zu vertiefen.

Jan Dworschak, Sebastian Schaum

Node.js - JavaScript im Back-End

german

+

Das klassische Beispiel, ein Webserver in unter zehn Zeilen, ist mit Node.js schnell erstellt. Doch diese Plattform kann wesentlich mehr leisten und dabei ist Node.js selbst nur ein kleiner Teil einer sehr umfangreichen Infrastruktur, mit der sich nahezu alle Aufgabenstellungen lösen lassen. Der Kern von Node.js wird durch einen Paketmanager ergänzt, über den Sie beispielsweise Application-Frameworks wie Express.js, aber auch eine Vielzahl anderer Pakete in Ihre Applikation einbinden können.

Dieser Workshop zeigt Ihnen anhand eines konkreten Beispiels, wie schnell Sie mit Node.js Applikationen mit serverseitigem JavaScript entwickeln können, bei denen sowohl Performance als auch Qualitätssicherung nicht zu kurz kommen.

Systemvoraussetzung für diesen Workshop ist ein auf dem System installiertes und funktionsfähiges Node.js (Version > 0.10 + NPM).

Der Workshop richtet sich an Entwickler, die bereits Erfahrung mit JavaScript gesammelt haben.

Sebastian Springer

Touch Interfaces (Teil 2)

german

+

Getting touchy - eine Einfuehrung in Touch- und Pointer-Events

Jenseits von Smartphones und Tablets finden sich Touchscreens mittlerweile auch auf Laptops und traditionellen Desktop-Computern. Jetzt wo die Hardware-Unterstützung für Touch immer durchgreifender wird, ist es an der Zeit, dass sich Entwickler mit den neuen Möglichkeiten (und Problemen) dieser Technologie auseinandersetzen.

Dieser Workshop bietet einen Einstieg in die Erfassung und Bearbeitung von Touch-Events - von einfachen Tipps, wie man Web-Applikationen auf die Eigenheiten von Touch-Geräten optimieren kann, bis hin zu Gesten und Multitouch-Interaktionen.

Patrick H. Lauke
17:30 bis 18:30

Lightning Talks: Einblicke in die Welt der Spezialisten

german

+

Lernen Sie in diesen spannenden Lightning-Talks (6 Minuten) Werkzeuge und Ressourcen ihrer Trainer kennen. Wie lösen Profis wiederkehrende Probleme? Welche Tools setzten die Spezialisten ein? Welche Nachschlagewerke können der Erinnerung auf die Sprünge helfen?

Jeder Trainer beantwortet in dieser Session eine solche Frage. Schauen Sie hinter die Kulissen und lassen sie sich inspirieren.

Mittwoch - 15. Oktober 2014
09:00 bis 12:30

Mysteries of Website Performance

german

+

In diesem Workshop werden wir uns vor allem mit zwei Fragen beschäftigen, die sich wohl jeder Frontend-Entwickler schon das eine oder andere mal gestellt hat: Woher kommt eigentlich das ruckeln der Animationen auf meiner Seite? Was läuft da falsch? Wie kann ich das beheben? Um diese Fragen zu beantworten werden wir uns damit auseinandersetzen, wie der Rendering-Prozess im Browser funktioniert, mit welchen Tools analysiert werden kann, wo die Probleme liegen und natürlich mit einigen nützlichen Tipps, wie man solchen Problemen am besten begegnen kann.

Martin Schuhfuß

TDD mit AngularJS (Teil 1)

german

+

AngularJS ist ein JavaScript-Framework, das Sie dabei unterstützt, moderne clientseitige Web-Anwendungen zu erstellen. Erstmalig finden bewährte Konzepte wie Dependency Injection und testgetriebene Entwicklung nun auch Einzug in die JavaScript-Welt und machen diese attraktiv für den Enterprise-Einsatz.

AngularJS bietet hier eine sehr nachvollziehbare Implementierung und achtet im hohen Maße auf das Bilden und Einhalten von Schnittstellen. Dieser Workshop führt Sie an die Entwicklung mit AngularJS heran und fokussiert insbesondere die Möglichkeiten zum Test-Driven-Development (TDD). Saubere Anwendungsentwicklung mit JavaScript ist eben doch möglich. Finden Sie es heraus!

Philipp Tarasiewicz, Sascha Brink

D3.js

german

+

Eine der Hauptaufgaben von JavaScript ist die Beschaffung und Transformation von Daten. Daten existieren in rauen Mengen in jeder Webapplikation. Ohne eine visuelle Aufbereitung dieser Datensätze sind sie jedoch leider meist nutzlos. Viele Informationen lassen sich mittels üblicher Graphen und Charts abbilden: Pie-Charts, Line-Charts und Bar-Charts sind die häufigsten Vertreter. Direkt danach kommen weniger häufige Darstellungsformen, wie z.B. Radar-Charts. Was jedoch, wenn diese übliche Aufbereitung der Daten nicht mehr ausreicht um eine geschickte Visualisierung zu erreichen? Eventuell müssen den existierenden Chart-Typen weitere Komponenten hinzugefügt werden, wie z.B. zusätzliche Achsen und Ausgleichsgeraden. Oft sind auch vollständig individualisierte Darstellungen nötig, die präzise auf die Daten zugeschnitten sind. In diesem Fall kann D3.js helfen. Diese Library bietet alle nur erdenklichen Abstraktionen um bei der Erstellung von spezifischen Daten-Visualisierungen dem Entwickler helfend zur Seite zu stehen. Dieser Workshop richtet sich an Alle, die schon immer einmal D3.js kennen lernen wollten, oder daran interessiert sind einen Blick in die Welt der Datenvisualisierung zu werfen. Der Fokus auf Einsteiger sollte aber auch D3.js-Profis nicht abschrecken. Vielleicht gibt es hier noch etwas neues zu lernen.

Hans-Christian Otto, Jakob Westhoff

Responsive Webdesign - Websiten für unterschiedliche Endgeräte

german

+

Das Web ist seit seiner Erschaffung ein grundsätzlich flexibles Medium. Wir haben diese Eigenart nur die letzten Jahre erfolgreich ignoriert. Angesichts der unübersichtlichen Vielfalt aktueller Zugangsgeräte für die Nutzung von Webseiten müssen wir unseren bisherigen Ansatz überdenken.

In diesem Workshop werden wir nach vielen einleitenden Infos an einem Testprojekt die Stärken und Tücken responsiver Webseiten erfahren. Denn neben flexiblen Bildern und ein paar Mediaqueries müssen wir uns auch über den Aufbau und den Inhalt der Webseiten Gedanken machen. Anhand praktischer Beispiele werden wir dies hautnah erfahren können.

Jens Grochtdreis
13:30 bis 17:00

Modulare Webseiten der Zukunft mit Web Components

german

+

Das Webseiten-Modul der Zukunft ist kein jQuery-Plugin mehr, sondern ein selbstgebauter HTML-Tag! Web Components werden in naher Zukunft die Arbeit mit HTML und den Aufbau modularer Webseiten revolutionieren - und mit ein bisschen Trickserei kann man die Revolution schon auf heute vorverlegen. Im Workshop erfahren die Teilnehmer die Hintergründe zu Web Components und lernen selbst, wie man mit Polymer-Library eigene HTML-Tags erfindet oder vorhandene Neuerfindungen verwendet.

Peter Kröner

TDD mit AngularJS (Teil 2)

german

+

AngularJS ist ein JavaScript-Framework, das Sie dabei unterstützt, moderne clientseitige Web-Anwendungen zu erstellen. Erstmalig finden bewährte Konzepte wie Dependency Injection und testgetriebene Entwicklung nun auch Einzug in die JavaScript-Welt und machen diese attraktiv für den Enterprise-Einsatz.

Nachdem Sie im ersten Teil die grundlegenden Konzepte von AngularJS kennengelernt haben und die ersten Schritte in Richtung TDD unternommen wurden, fokussiert der zweite Teil des Workshops primär den Test-First-Ansatz. Sie werden lernen, wie Sie die verschiedenen Testkonzepte von AngularJS einsetzen und mithilfe testgetriebener Entwicklungsmethoden wartbare Frontend-Anwendungen erstellen. Saubere Anwendungsentwicklung mit JavaScript ist eben doch möglich. Finden Sie es heraus!

Philipp Tarasiewicz, Sascha Brink

Frondend-Tooling mit Yeoman und Grunt.js

german

+

Mit Yeoman und Grunt existieren zwei Node.js Werkzeuge, die es sich zur Aufgabe gemacht haben die zahlreichen Nebenaufgaben eines professionellen Frontend-Entwicklers zu übernehmen und zum Selbstläufer zu machen.

In diesem Training eignen wir uns an, wie wir diese Werkzeuge für einen vollautomatisierten Workflow von der Projekterstellung bis zur kontinuierlichen Auslieferung nutzen können. Außerdem entwickeln wir eigene Tasks und Generatoren, die wir auf unsere Bedürfnisse zuschneiden können. Für dieses Training sind keine Node.js Kenntnisse erforderlich, diese holen wir uns über die Tools, die wir abdecken.

Stefan Baumgartner

Regex-fu for JavaScript

english

+

Regular expressions, you either hate them or you love them, but do you really know how to harness their power? This talk will show you how to get the most out of your /^regex(es)?$/, how switches affect your results, how to be less greedy and let's not forget: when *not* to use regex.

Juliette Reinders Folmer