Datagraph
A Programmatic Introduction to the Neo4j Graph-Database
Ian Robinson
Neo Technology
T01 Montag, 3. 9., 09:40 – 18:30 Uhr | Tutorium Mo de |
Neo4j is a JVM-based graph database. Its graph data model is intuitive and expressive, mapping closely to your whiteboard domain model. For highly connected data, Neo4j is thousands of times faster than relational databases, making it ideal for managing complex data across many domains, from finance to social, telecoms to geospatial.
This tutorial covers the core functionality of the Neo4j graph database. With a mixture of theory and entertaining hands-on coding sessions, you'll quickly learn how easy it is to develop a Neo4j-backed application. Sessions include a NoSQL and graph database overview, Neo4j fundamentals and architecture, the Neo4j Core API, Neo4j Traverser APIs, and declarative querying with Cypher. Each session (apart from the fundamentals and architecture) comprises a set of practical exercises designed to introduce and reinforce an aspect of the Neo4j stack. The practical parts of the tutorial consist of Koan-style lessons where a specific aspect of the Neo4j stack is presented as a set of failing unit tests that participants will work to fix. The exercises gradually become more challenging until the attendees are capable of implementing sophisticated graph operations against Neo4j.
JavaScript goes Business
JavaScript für Enterprise-Entwickler
Stefan Hildebrandt
consulting.hildebrandt.tk
T02 Montag, 3. 9., 09:40 – 18:30 Uhr | Tutorium Mo de |
Auch bei Web-Anwendungen im Unternehmensumfeld wünschen sich die Anforderer die Bedienbarkeit, die sie von öffentlich zugänglichen Anwendungen im Web kennen. Am besten sollen die Anwendungen dann noch auf Tablets und Smartphones laufen. Diese Anforderungen mit JSF2 und Prime-/Rich-/IceFaces zu lösen, ist nicht gerade einfach, da dort zum Beispiel Ajax-Integration sehr indirekt erfolgt und häufig die Performance nicht so wie gewünscht ist. GWT könnte eine Alternative sein, für richtig coole Features muss aber auch dort viel JavaScript geschrieben werden. Also warum nicht gleich direkt JavaScript verwenden?
In diesem Workshop wird eine kleine Anwendung mit einem der aktuellen JavaScript-Frameworks (jQuery, Javascriptmvc, extJS) erstellt, die per REST-Services Daten abruft und anlegt und dabei eine MVC-Struktur, Unit-Tests und das Build-System Gradle (Maven) verwendet.
Maßgeschneidert
Language Engineering mit MPS
Markus Völter
Freier Berater/itemis AG
Bernd Kolb
itemis AG
T03 Montag, 3. 9., 09:40 – 18:30 Uhr | Tutorium Mo de |
Was wäre, wenn sich eine Sprache genauso einfach weiterentwickeln und erweitern ließe wie wir das von Bibliotheken schon lange gewohnt sind?
In diesem Tutorium wird erklärt, wie dies mit der JetBrains MPS Language Workbench möglich ist. Nach einer generellen Einführung in die Konzepte von MPS wird gemeinsam mit den Teilnehmern Java und C mit eigenen Sprachkonstrukten angereichert. So wird an konkreten Use Cases gezeigt, wie APIs vereinfacht und Programme typsicherer werden, Requirements sich als Teil des Entwicklungsprozesses zusammen mit dem Code entwickeln und Fachexperten direkt in die Entwicklung mit einbezogen werden können. Dabei wird auch gezeigt, wie nicht-textuelle Notationen (tabellarisch oder mathematische Symbole) diesen Prozess unterstützen.
Das Tutorial ist als Hands-On Tutorial geplant – bitte den eigenen
(schnellen!) Laptop mitbringen; die nötige Software zur Installation wird gestellt.
Operndiva
Kleine Einführung in Scala
Rüdiger Keller
MATHEMA Software GmbH
T04 Montag, 3. 9., 09:40 – 18:30 Uhr | Tutorium Mo de |
In den letzten Jahren sind viele Sprachen für die Java Virtual Machine entstanden, von denen einige mehr und andere weniger populär geworden sind. Eine Sprache, die zweifelsohne viel Aufmerksamkeit auf sich zieht ist Scala. Sie versucht ein besseres Java zu sein, das die Konzepte objektorientierter und funktionaler Programmierung in sich vereint, dabei aber im Gegensatz zu den meisten anderen populären Sprachen an statischer Typisierung festhält.
Dieses Tutorium wendet sich an ein Java-kundiges Publikum und gibt eine Einführung und Übersicht zu Scala. Dabei werden die wichtigsten Features vorgestellt und verschiedene Code-Beispiele gezeigt, wie sich alltägliche Java-Probleme in Scala leichter und mit meist erheblich weniger Code lösen lassen.
Für die Teilnahme an dem Tutorium wird ein Notebook benötigt.
Spielerisch
Web-Entwicklung auf der JVM mit Play!
Yann Simon
adesso AG
Remo Schildmann
adesso AG
T05 Montag, 3. 9., 09:40 – 18:30 Uhr | Tutorium Mo de |
Mit dem Play-Framework existiert ein Java Web-Framework, das den Geist von Ruby on Rails auf die JVM bringt. Play ist von Web-Entwicklern für Web-Entwickler entworfen worden. Es bricht mit herkömmlichen Java-Standards und Gepflogenheit – zu Gunsten einer einfachen Entwicklung und schnellen Entwicklungszyklen. Eine sehr gute Developer Experience ist das Ergebnis: Veränderte Code-Dateien werden beim Reload im Browser automatisch kompiliert, neu geladen und in die Web-Anwendung integriert, ohne Neustart des Servers oder Redeploy.
Das jetzt erschienene Play 2-Framework wurde in Scala vollkommen neu implementiert, ermöglicht aber die schnelle Entwicklung von Web-Anwendungen in Java und Scala. Hinzugekommen sind u. a. statisch-typisierte Templates und eine leichtgewichtige asynchrone Architektur, wozu Play 2 das Middleware-Framework Akka nutzt.
In diesem Tutorium wird die neue Version von Play vorgestellt und das Erstellen von Web-Anwendungen damit gezeigt. Neben dem statisch-typisierten Templating wird auf Plays Persistenzschnittstellen zu relationalen Datenbanksystemen und NoSQL-Datenbanken eingegangen. In Übungen werden die verschiedenen Aspekte von Play demonstriert: Testen von Web-Anwendungen, Play Build Management mit SBT, Asynchronität und Skalierung. Abgerundet wird der Workshop mit der Integration aktueller Technologien wie WebSockets oder die dynamiche Stylesheet-Sprache LESS zur Erstellung moderner Web-Applikationen. Am Ende des Tutoriums sollten die Teilnehmer dazu in der Lage sein, eigene Projekte mit Play 2 aufzusetzen und erfolgreich durchzuführen.