Programm

Andreas Hanke Geschäftsführer

„Das Wissen und die Erfahrung unserer Mitarbeiter sind das Fundament unseres Hauses“

Andy_wide

Alexandra Specht Key Account Managerin

„Seit 1995 sind wir auf dem Markt und jedes Jahr werden es mehr zufriedene Kunden, die unsere Dienstleistungen schätzen“

Nana_wide

Werner Eberling Principal Consultant

„Technologie-Hypes kommen und gehen, fundamentale Prinzipien der Software-Entwicklung halten Systeme stabil und zukunftssicher“

Slide3

Thomas Haug Chief Technology Officer

„Die Vermessung von Software und die Visualisierung der Ergebnisse hilft uns, strukturelle Probleme aufzudecken“

Thomas_wide

Thomas Künneth Head of Mobile / Principal Consultant

„Mobile Apps gehören zum Enterprise. Wir helfen Ihnen dabei, beides zusammenzubringen“

Kuenneth_thomas

Vorträge 20. und 21. April 2018

PDF-Version des Programms mit Zeitplan

A1   It’s a jungle out there

Java 10 oder wie es mit den neuen Versionen geordnet weitergeht

Mit dem neuen JDK-Enhancement-Proposal (JEP 322) wird die zeitbasierte Java-Release- Versionierung definiert die auf dem neuen Java SE Version-String-Schema basiert und die Namensgebung für die kommenden Versionen der Java SE Plattform und vom JDK vorgibt. Die künftigen Java-Releases werden ab dem Jahr 2018 alle 6 Monate als Feature- Release erscheinen. Das JDK10 wird als nächstes Feature-Release im März 2018 veröffentlicht und nach sechs Monaten folgt das JDK11 im September 2018 als Long-Term- Support-Release (LTS-Release), welches über den Zeitraum von drei Jahren weitere Java Updates öffentlich zugänglich macht. Mit dem zeitlichen Abstand von sechs Monaten bekommen die Entwickler wesentlich schneller neue Java-Funktionsmerkmale als dies mit dem bisherigen Dreijahreszyklus der Fall war. Zwischen den JDK-Feature-Releases sind zwei Updates geplant, bei denen es um die Wartung und Bugfixes geht, die, wie gewohnt, jeweils im Januar, April, Juli und Oktober eines Jahres als Java Critical Patch Update erscheinen werden. Die Planung sieht vor, jeweils alle drei Jahre ein weiteres Java-LTS-Release zu veröffentlichen, damit der Anwendungsbetrieb eine stabile und ausgereifte Java-Basis bekommt, die mit der nachfolgenden Versionierung $FEATURE.$INTERIM.$UPDATE.$PATCH gekennzeichnet wird. Im Vortrag werden Beispiele zum Version-String besprochen, sowie Empfehlungen diskutiert, wie die künftige Java-Strategie mit Java SE Advanced Support für die Entwickler und für den Anwendungsbetrieb aussehen soll.

Sie können den Vortrag hier herunterladen.

A2  Spring Data JDBC

The new kid on the block

Mit Spring Data erstellt man einfach und schnell Repositories, um auf diverse Persistenztechnologien auf konsistente Weise zuzugreifen. Hier werden wir einen Blick auf die neuste Variante werfen: JDBC. Wie kann ich das nutzen? Ist es ein neues ORM und wird es JPA ablösen? Warum sollte man JDBC benutzen, wenn es doch JPA gibt? Geht das auch reaktiv? Diese Fragen werden wir beleuchten und mit Live Coding demonstrieren.

Sie können den Vortrag hier herunterladen.

A3  knOwledge ChAllenge

Wie gut kennst du JAVA?

Kennen Sie die OCA Zertifizierung? Hier werden im ersten Teil Java Basics vermittelt und abgefragt. Doch teilweise sind schon die Basics ziemlich kniffelig oder man stolpert über kleine fiese Syntaxfallen. Heutzutage machen IDEs die Entwicklung viel einfacher. Man muss sich nicht viele Gedanken machen über Checked-Exceptions und Compile-Fehler. Das übernimmt die IDE für einen. Doch damit hört man auch auf, über einige Dinge nachzudenken. „Die IDE hat gesagt, dass ich das tun soll ...“ In diesem Vortrag wird über Java fundamentals, know-how, basic operators und constructs gesprochen. Das ganze geschieht in einem interaktiven Modus zusammen mit dem Publikum.

Sie können den Vortrag hier herunterladen.

A4  Nicht nur Java ist eine Insel

Kotlin für Neugierige

Die Programmiersprache Kotlin gibt es schon ein paar Jahre. Als moderne Alternative zu Java konzipiert, macht sie vieles anders, und auch einiges besser. Einen großen Gefallen dürfte Google dem Erfinder JetBrains damit getan haben, die Sprache in Android Studio 3 als gleichberechtigte Alternative zu Java zu positionieren. Aber: lohnt der Umstieg? Dieser Talk stellt die Highlights von Kotlin vor. Wenig Powerpoint, viel Code.

Sie können den Vortrag hier herunterladen.

A5  Wie der GlassFish 5 mit Java EE 8 weiterschwimmt

Der GlassFish Server 5 hat sich mit Java EE 8 im Aquarium freigeschwommen. Oracle hat die Entwicklung des GlassFish Servers mit einem fest zugeordneten Entwickler-Team unterstützt. Dies umfasst die Bereitstellung der Java EE Referenzimplementierung (RI) mit GlassFish 5 und die Implementierung der Java EE 8 Spezifikation. Im Java Community Process ist verankert, dass der Specification Lead eine Implementierung zum Nachweis der Umsetzung der verschiedenen Spezifikationen erbringen muss. Dies beinhaltet die Erstellung vom Java EE SDK mit Tutorien, Beispielen und der Dokumentation für Java- Entwickler. Die GlassFish Open Source Edition (OSE) ist fester Bestandteil von Oracle und wird als kostenloser, Open-Source-basierter Server zum Deployment von Java EE Anwendungen angeboten. Die Planung beinhaltet ein jährliches Release mit Bug-Fixes und Updates für GlassFish. Die Fertigstellung von Java EE 8 (JSR-366), unter Einbeziehung der Java Community, ist vollzogen und dazu wurden die benötigten Spezifikationen und API’s für Java EE 8 zusammengeführt. Java EE 8 basiert auf Java SE 8, aber mit GlassFish 5 soll auch Java SE 9 unterstützt werden. Im Vortrag wird der GlassFish 5 mit den dazu gehörenden Java EE 8 Spezifikationen vorgestellt. Auch die weiterführende Spezifikation EE4J der Eclipse Foundation wird im Vortrag dargestellt. JSF 2.3.0; Jersey 2.26; JAX-RS 2.1; HK2 2.5.0; Grizzly 2.3.29; Grizzly NPM 1.7; Jboss Logging 3.3.0; Tyrus 1.13.1; Jackson 2.8.4; JSTL 1.2.5; Servlet 4.0.0

Sie können den Vortrag hier herunterladen.

A6  Mine the Gap!

Mit Datenanalysen die Lücke zwischen Management und Entwicklung schließen

Gerne möchten wir als Entwickler einmal so richtig in unseren Legacy-Systemen aufräumen oder grobe Schnitzer korrigieren. Mit unserem „Nerdy Talk“ kommen wir hier jedoch nicht weiter: Das Management lässt sich nur mit Zahlen, Daten, Fakten von dringenden und teuren Verbesserungsarbeiten überzeugen. In meinem Vortrag stelle ich Software Analytics vor, dessen Vorgehen und Methoden diese Lücke schließen können. Das Ziel von Software Analytics ist es, Daten aus der Softwareentwicklung so aufzubereiten, dass diese auch von Nicht-Techies zur Entscheidungsfindung verwendet werden können. Konkret zeige ich meinen Werkzeugkasten (mit Jupyter, Python, Pandas, jQAssistant, Neo4j und D3), mit dem sich Analysen von Java-Anwendungen und deren Umgebung (Git, FindBugs, JaCoCo, Profiler etc.) in der Praxis einfach umsetzen lassen. Im Praxisteil sehen wir uns die Identifikation von nutzlosen Code-Teilen, die Aufdeckung von Wissenslücken und die Optimierung des fachlichen Schnitts einer Anwendung an.

Sie können den Vortrag hier herunterladen.

A7  Wer braucht schon Hilfe?

Bücher selbst veröffentlichen

Warum sollte man ein Buch, ganz ohne Verlag, selbst veröffentlichen? Und wie geht das eigentlich? David Tanzer hat letztes Jahr zwei Bücher veröffentlicht. In diesem Vortrag erzählt er, welche Tools er verwendete, was gut funktioniert hat und auch was noch nicht so läuft.

A8  Elasticsearch

Einfach aber sicher!

Elasticsearch – das Herz des Elastic Stacks – ist als verteilte, skalierbare Volltextsuchmaschine und für Analytics bekannt. Zehntausende Elasticsearch Instanzen laufen weltweit, so dass trotz aller neuen Features in jedem Release auch über das Thema Sicherheit nachgedacht werden muss – zu jeder Zeit. Dieser Vortrag geht auf unterschiedliche Aspekte von Elasticsearch im Bereich Sicherheit ein, von Features bis hin zu
bestimmten – manchmal auch unpopulären – Entscheidungen, die getroffen worden sind. Der Vortrag behandelt unter anderem

  • Eine Einführung in den Java Security Manager
  • Die Verwendung des Java Security Managers in Elasticsearch
  • Production vs. Development mode
  • System Call Filtering
  • Painless als sichere Alternative für eine Scripting Sprache
  • Sicherheit als Feature

Ziel des Talks ist es, nicht nur auf einige Details in Elasticsearch einzugehen, sondern vielmehr den Zuhörer dazu zu bekommen, diese Themen auch in seinen eigenen Apps zu berücksichtigen.

Sie können den Vortrag hier herunterladen.

B1  Railway Oriented Programming

Komplexe Orchestrierung wartbar machen

Trotz bester Absichten (Clean Code, SOLID) entstehen in größeren Projekten immer wieder unwartbare Hotspots, an denen viel Logik zusammenläuft. Diese Hotspots haben oft nur Orchestrierungsaufgaben, sind aber nach ein paar try/catch oder if/else Blöcken vollkommen unleserlich. Die Idee für das Konzept des Railway Oriented Programming (ROP) stammt aus der funktionalen Programmierung und bietet hier einen möglichen Lösungsansatz: ROP kapselt korrekte und fehlerhafte Ergebnisse in ein eigenes generisches Objekt. In diesem Vortrag lernen Sie, wie dieses Pattern in einer OO-Sprache angewendet werden kann.

Sie können den Vortrag hier herunterladen.

B2  Wie klein kann ein Großkonzern sich machen?

Erfahrung mit Microservice- Architekturen

Microservice-Architekturen versprechen eine schöne neue Welt: Kürzere time to market, Wegfall technologischer Restriktionen und ein kostengünstiger, flexibler Betrieb in der Cloud. Um dies zu erreichen, sind die Prinzipien einer Microservice-Architektur einzuhalten und in der Organisation durchzusetzen. Es werden die Erfahrungen aus drei Projekten als IT-Dienstleister für einen Großkonzern versprochen. Auf den ersten Blick scheint die Umsetzung solcher Prinzipien, die nur aus der konsequenten Anwendung von best-practises bestehen einfach, z. B. CICD. Andere Prinzipien wie shared-nothing von Code und Daten und technologische Autonomie der Microservices muss der Systemarchitekt mit Augenmaß anwenden, damit das System wartbar und performant bleibt. Besondere Aufmerksamkeit ist nötig bei Prinzipien, die innerhalb der Kundenorganisation technische Verantwortung und Arbeitsaufwand umverlagern.

Sie können den Vortrag hier herunterladen.

B3  Kaffeesatz

Die Zukunft von Java und anderen JVM-Sprachen

Beginnend mit Java11 wird die JVM um einige Features erweitert, die sich gravierend auf die Performanz auswirken werden. Das betrifft natürlich auch Java, wobei die sprachlichen Gestaltungsmöglichkeiten bedingt durch die Syntax und die Stabilitätskriterien etwas eingeschränkt sind. Trotzdem werden sich Entwickler, die es immer etwas eiliger als der Durchschnitt haben, um diese neuen Features kümmern müssen – für Designer und Implementierer anderer Sprachen sind diese das lang erwartete Paradies. In diesem Vortrag geht es also um das, was man in Zukunft von der JVM erwarten kann und welchen Einfluss dies auf die Performanz von Java-Programmen hat. Darüber hinaus zeigt der Referent (am Beispiel seiner eigenen Sprache Aalgola), wie man diese Features gewinnbringend nutzen kann.

B4  Cargo Cult

Denkfallen in der Software-Entwicklung

Nach Ende des 2. Weltkriegs schufen Südsee- Insulaner beeindruckende Nachbildungen von Flugzeugen, Landebahnen und Funkgeräten aus Stroh. Sie wollten durch die kultische Nachahmung äußerlicher Formalien erreichen, was sie bei den zwischenzeitlich auf ihren Inseln stationierten Soldaten beobachtet hatten. Diese lockten mit ihren Riten „große Vögel“ an, die an Fallschirmen Lebensmittel abwarfen, ohne dass man dafür sammeln, jagen oder fischen musste. Klingt aus heutiger Sicht albern. Aber unterscheidet sich dieser sogenannte „Cargo Cult“ wesentlich von der Art und Weise, wie z. B. in der IT-Branche rituell geSCRUMt wird, um agile Wunder heraufzubeschwören? Die Session lädt dazu ein, eine Reihe von Denkfallen kennenzulernen und zu diskutieren, für die unsere Branche besonders anfällig ist. Kleine Live-Experimente und Studienergebnissen zeigen, wie diese Fallen „funktionieren“ und sich vermeiden lassen, wenn man sich ihrer bewusst ist. Neomanie, Confirmation Bias, Plappertendenz... wenn man ein paar dieser Fettnäpfchen umgeht, lebt es sich ein bisschen leichter.

Sie können den Vortrag hier herunterladen.

B5  Jobs are for machines

Humans need not apply

Für das 21. Jahrhundert wird allgemein der Durchbruch der künstlichen Intelligenz prophezeit. Aber wann genau soll das geschehen und wie sieht dieser Durchbruch aus? Albert A. Bartlett sagte einst „Das größte Versäumnis der Menschheit ist unser Unverständnis für die Exponentialfunktion“. Für die Entwicklung künstlicher Intelligenz wird aber genau das vorausgesagt: exponentielles Wachstum. Entwickler, Industrie, aber auch Gesetzgeber und selbst Ethik und Religion halten sich selbst zur Wachsamkeit an, um von diesem Zug nicht überfahren zu werden. Welche Formen von A.I. gibt es und wieso ist dies heute anders und brisanter als in den 60ern? Welchen Einfluss hat dies auf die Softwareentwicklung? Welche Auswirkung hat es auf den Arbeitsmarkt? Wer haftet wann für was? Darf man bei exponentiellem Wachstum noch blinzeln oder ist man dann schon in der Zukunft? Und welche Ethik können wir mitgeben, um Skynet zu verhindern?

B6  Ab in die Wolke

Vorteile der Cloud für Java-Anwendungen

Wie kann ich die Vorteile der Cloud einfach für meine Java Anwendung nutzen? Die Nutzung von Managed-Services aus der Cloud bietet viele Vorteile. Einfache Skalierbarkeit, sich nicht um den Betrieb kritischer Services kümmern müssen, sind die bekanntesten. Auch die tägliche Feature-Entwicklung kann beschleunigt werden, indem durch Automatisierung jeder Entwickler sein neues Feature einfach in einem separaten Environment deployt. Demonstriert wird ein Deployment- Setup einer Java Spring Anwendung nach AWS. Dabei werden AWS Services wie ECS (Docker Containers), RDS, CloudFormation, CloudFront, S3, Lambda, Cognito verwendet.

Sie können den Vortrag hier herunterladen (Vortragsteil Schmidt).

B7  How Deep is your Learning?

Eine praktische Einführung in neuronale Netze und Deep Learning

Deep Learning ist aus der Forschung im maschinellen Lernen und unserem Alltag kaum noch wegzudenken. Zu vielversprechend sind die Ergebnisse von Alpha Go aber auch beim autonomen Fahren sowie der Bild- und Spracherkennung und daher ein guter Grund das Thema näher zu beleuchten. Dieser Vortrag klärt die Grundlagen von neuronalen Netzen und Deep Learning. Es wird sowohl auf Funktionsweise und Differenzierung als auch auf dem Markt befindliche Tools und Frameworks eingegangen. In der zweiten Hälfte werden beispielhaft eigene Neuronale Netze mit verschieden Tools trainiert.

Sie können den Vortrag hier herunterladen.

B8  Produktiver durch weniger Denken

Funktionale Programmierung für OO-Programmierer

Spätestens seit der Einführung von Lambdas in Sprachen wie Java und C# ist funktionale Programmierung (wieder) in aller Munde. Doch was zeichnet eigentlich funktionale Programmierung (FP) aus? Muss man gleich die Sprache wechseln oder Kathegorientheorie studiert haben, um die Vorteile von FP verwenden zu können? In diesem Vortrag zeigen wir euch einige funktionale Konzepte, die auch in Java und C# zu verständlicherem Code führen. Darüber hinaus möchten wir euch auch einige Eigenschaften von FP-Sprachen vorstellen, die in Java/C# nur schwer umzusetzen sind: Vielleicht als Anregung das eine oder andere Modul im Projekt mit F#, Scala oder Clojure zu realisieren?

Sie können den Vortrag hier herunterladen.

C1  Die Verwandlung

Apache Kafka Theorie und Praxis

Messaging und Queueing Systeme dominieren verteilte Enterprise Umgebungen. In solchen Landschaften Nachrichten sicher und zuverlässig verschicken zu können, scheint eine grundsätzliche Anforderung zu sein. Datengetriebene Software setzt aber ganz andere Schwerpunkte. Durchsatz wird der Sicherheit und der Zuverlässigkeit manchmal vorgezogen. Apache Kafka zeigt, dass diese breite Anforderungsmenge doch einfach und verständlich bedient werden kann. Anstatt „nur“ Messaging bietet es eine „Streaming Platform“. In diesem Vortrag werden die grundsätzlichen Bausteine von Apache Kafka erklärt und es werden die unterschiedlichen Einsatzmöglichkeiten gezeigt – von einfachen Messaging Anforderungen bis hin zur verteilten Verarbeitung.

Sie können den Vortrag hier herunterladen.

C2  Vom Winde verweht

Event Storming für Domain-Driven Design

Im Domain-Driven Design ist es sehr wichtig, ein gutes Domänenmodell zu haben. Allerdings wird nirgendwo so wirklich erklärt, wie man denn zu einem solchen guten Modell kommen kann. Hier schafft Event Storming Abhilfe. Dies ist eine Technik, mit der man seine Domäne Schritt für Schritt erforschen, erweitern und verfeinern kann – und das innerhalb eines einzigen Tages! Gleichzeitig wird noch jede Menge Domänenwissen von den Domänenexperten zu den restlichen Projektbeteiligten transportiert. Beim Modellieren lassen sich sehr einfach und schnell verschiedene Szenarien ausprobieren, man kann mehrere Varianten gegeneinanderstellen und vergleichen, um so die beste Lösung zu finden – und das ganz ohne eine Zeile Code zu schreiben. Trotzdem sind die Modelle sehr nahe am Code und an der Logik. Dabei werden keine langweiligen UML-Diagramme gezeichnet, sondern es wird mit Post-Its an einer riesigen Modellierungsfläche gearbeitet, so dass alle involviert sind. Im Vortrag werden wir versuchen, Event Storming so praktisch zu erleben, wie es im Rahmen der kurzen Zeit möglich ist. Freut Euch auf ein actionreiches Abenteuer.

Sie können den Vortrag hier herunterladen.

C3  OrientDB bis TinkerPop

Einführung in Graph-Datenbanken

Graph-Datenbanken stellen zur Abfrage von Graphen unterschiedliche Abfragesprachen zur Verfügung. Einige haben große Ähnlichkeit zu SQL-Dialekten, andere Abfragesprache nutzen beispielsweise LINQ oder definieren eine Sprachsyntax, die völlig neu ist. Das Apache Projekt TinkerPop abstrahiert von der zugrunde liegenden Graph- Datenbank und bietet eine Abfragesprache, die einen Hersteller-neutralen Zugriff auf Graph-Datenbanken ermöglicht. In dieser Session werden verschiedene Abfragesprachen (z.B. von OrientDB, Graph Engine, JanusGraph und Neo4J) vorgestellt. Hierbei wird gezeigt, dass jede Graph-Datenbank ihren eigenen Weg beschreitet. Zusätzlich wird mittels TinkerPop demonstriert, wie auf verschiedene Graph-Datenbanken in C# und Java zugegriffen werden kann.

Sie können den Vortrag hier herunterladen.

C4  Er hat’s schon wieder getan

The coding Architect

„Ich war ein schlechter Entwickler, aber ich bin ein guter Architekt“ – diese Aussage eines Unternehmensarchitekten mag im ersten Moment erheitern, bei genauerem Hinsehen macht sie aber sehr nachdenklich. Eigentlich sollte es allgemein bekannt sein, dass ein guter Architekt nur aus einem guten Entwickler hervorgehen kann. Doch bedeutet die Weiterentwicklung tatsächlich die Entwicklung „hinter sich zu lassen“? Die Ansichten über die Tätigkeiten eines (Projekt-)Architekten haben sich weiterentwickelt. Auch diese Rolle wird in modernen Entwicklungssetups zum aktiven Teil des Entwicklungsteams. Aber wie sieht so etwas im Detail aus? Wie schafft es ein guter Architekt auch weiterhin, ein guter Entwickler zu bleiben, der nicht nur „nebenbei“ sondern kontinuierlich, produktiv mitentwickelt? Geht so etwas überhaupt? Und wie vermeidet man die altbekannten „Oh Gott, der Architekt hat wieder programmiert!!!!“-Situationen?

C5  Solide Verträge

Consumer-Driven Contract Testing – And Beyond

Dieser Talk stellt zum einen Consumer- Driven Contract Testing (CDCT) vor, eine Methode, um beide Seiten einer Schnittstelle automatisiert synchron zu halten. Des Weiteren werden die Schwächen von CDCT beleuchtet und neue Wege aufgezeigt, wie man hier Verbesserungen erzielen kann.

Sie können den Vortrag hier herunterladen.

C6  Server? Wo wir hin wollen, brauchen wir keine Server…

Serverless Programmieren mit AWS Lambda

Im Umfeld der schon länger anhaltenden Cloudmania taucht ein neuer Begriff immer wieder auf: Serverless. Amazon, Google, Microsoft: Alle namhaften Cloud Anbieter haben inzwischen auch „serverless“ Angebote im Programm. Aber was bedeutet dieses „Entwicklen ohne Server“ eigentlich? Wofür sind solche Ansätze sinnvoll? Der Vortrag zeigt am Beispiel von AWS Lambda, wie Serverless Entwicklung funktioniert und diskutiert, für welche Problemstellungen dieser Ansatz eine gute Wahl sein kann.

Sie können den Vortrag hier herunterladen.

C7  Objektiv betrachtet

Domain Driven Design aus objektorientierter Perspektive

Domain-Driven Design ist ein weit verbreiteter Ansatz mit dem Schwerpunkt auf Verständnis der Domäne, Kommunikation mit einer allgegenwärtige Sprache, die Trennung durch „Bounded Contexts“ und mehr. Die meisten Ressourcen, inklusive des Buches von Eric Evans, schlagen aber auch konkrete Implementationsmuster und Bausteine vor, die man benutzen kann, um Domain- Driven Designs zu implementieren: Entities, Value Objects, Services, Layered Architecture, Aggregates, usw. Wie passen diese Bausteine aber zur Objektorientierung? Sollten beispielsweise Value-Objekte „getter“ Methoden haben? Würde das die Kapselung nicht verletzen? Oder den Law of Demeter? Sind Services eigentlich Prozeduren? Verletzen Services vielleicht die Kohäsion? Sind technische Bausteine wie „Model“, „View“, „Controller“ überhaupt erlaubt? Basierend auf Beispielen aus echten Projekten und Grundprinzipien wie Kapselung und Kohäsion erforscht dieser Vortrag, welche Domain-Driven Design Konzepte vereinbar mit Objektorientierung sind und welche vielleicht anders eingesetzt werden müssten. Ziel ist es, ein neues Design kennen zu lernen, das beide Paradigmen erfolgreich kombiniert.

Sie können den Vortrag hier herunterladen.

C8  Offen für alle?

Einstieg in OpenSource Projekte – ein Vergleich

Welche Erfahrungen erwarten ein Greenhorn, wenn man den ersten Commit in einem OpenSource-Projekt macht? Der Ton der Linux Kernel Entwickler schafft es ja immer wieder in die IT-Schlagzeilen. Aber ist das die Regel? Wir beleuchten den Einstieg in drei OS-Projekte mit unseren Erfahrungen.

D1  System-Bausteine aus Bits & Bytes

LEGO® virtuell am PC

Wenn die eigene LEGO® Steinesammlung gerade nicht in Reichweite ist, kann man mit dem PC aus einem unendlichen Fundus aus Teilen wahrlich schöne Dinge zaubern. Mit diesem Vortrag möchte ich einen Einblick in das OpenSource-Projekt LDraw.org geben, welches sich zum Ziel gesetzt hat, alle Steine des LEGO® Systems zu digitalisieren und das geht natürlich nur mit Spezialsoftware. In meiner Freizeit arbeite ich seit 10 Jahren für dieses OpenSource-Projekt und bin maßgeblich an der Entwicklung einer 2D/3D CAD Tool-Chain für das Nachbauen von einzelnen LEGO® Bauteilen beteiligt. Im letzten Jahr wurde ich für meinen Beitrag mit dem James Jessiman Memorial Award ausgezeichnet.

Sie können den Vortrag hier herunterladen.

D2  Alles muss man selber machen lassen, aber wer macht es dann am Ende?

Eine Geschichte über ein Big Data-Projekt im DevOps-Stil

In den goldenen Zeiten haben wir Entwickler einfach Artefakte über verschiedene Zäune geworfen. Wenn ein Release die Tests bestanden hatte, war unsere Arbeit getan. Und wenn wegen Problemen nachts jemand aufstehen musste, war es meist jemand anderes. Und falls es diesen anderen nicht gibt? Dann muss man selber raus. Für einen geregelten Schlaf ist es daher unerlässlich, dass nichts kaputt geht – oder sich der Kollege Computer selbst darum kümmert. Einige Dinge können dabei helfen, z.B. wenige kritische Komponenten, Redundanzen, Monitoring und DevOps Methoden wie Infrastructure as Code, Immutable Infrastructure oder Continuous Delivery etc. Wir werden darstellen, wie nahe wir dem Ziel der Wartungsfreiheit in unserem aktuellen Projekt (ein komplexes Setup in einer containerisierten Cloud-Umgebung) in knapp zwei Jahren gekommen sind, was wir nächstes Mal anders machen würden und was noch zu tun bleibt.

Sie können den Vortrag hier herunterladen.

D3  A Cure For Runtime Errors

Funktional fehlerfreie Frontends mit Elm

Die funktionale Programmiersprache Elm löst durch die von ihr gegebenen Garantien zahlreiche Probleme der modernen Web- App-Entwicklung, wie unerwartete Laufzeitfehler, risikoreiches Refactoring und langsame Ausführung. Im Vortrag wird ein Überblick über den grundlegenden Aufbau von Elm-Applikationen und die verschiedenen Sprachfeatures gegeben. Es wird anhand konkreter Beispiele gezeigt, wie dadurch die gängigen Probleme bei der Web-App-Entwicklung vermieden werden. Abschließend werden eigene positive und negative Erfahrungen anhand von zwei mit Elm durchgeführten Projekten geschildert.

Sie können den Vortrag hier herunterladen.

D4  Kryptisch ökonomisch

Was Blockchains im Innersten zusammenhält

Der Begriff Blockchain ist in aller Munde, ohne dass es dafür eine gute Definition gibt. Die beste ist wohl: „Etwas, das so ähnlich funktioniert wie Bitcoin“. Bitcoin hat gezeigt, wie in einem Peer-to-Peer-Netzwerk ein Konsens hergestellt werden kann, ohne dass sich die Teilnehmer gegenseitig vertrauen. Das Buzzword Blockchain beschreibt die Idee, die Prinzipien von Bitcoin auf andere Anwendungsfälle als der einer Währung zu übertragen. In regelmäßigen Abständen tauchen derzeit neue Projekte mit neuen Ansätzen und neuen Anwendungsfällen auf. So ist ein spannendes Forschungs- und Experimentierfeld entstanden, von dem ich berichten will. Dazu erläutere ich zunächst die Grundlagen und arbeite dann die Unterschiede zwischen mehreren aktuellen Blockchains heraus. Die Chancen stehen nicht schlecht, dass wir als Branche in naher Zukunft in bestehende und neue Software solche neuen Blockchains integrieren werden.

Sie können den Vortrag hier herunterladen.

D5  Kommunikation

Für Softwareentwickler und alle anderen

Kommunikation mit Computern ist wundervoll einfach. Sie erfolgt fast ausschließlich schriftlich, d.h. Ich kann mir so viel Zeit lassen, wie ich will und mir über die Formulierung und meine Ziele in Ruhe Gedanken machen. Und wenn ich was Falsches schreibe, bekomme ich eine Fehlermeldung, und kann es nochmal versuchen. Aber am wichtigsten: Wenn ich zweimal das Gleiche tue, bekomme ich das gleiche Ergebnis. Mit Menschen ist dies alles viel komplizierter. Aber auch das kann man lernen! Warum ändert kaum jemand seine Meinung, wenn er mit Fakten konfrontiert wird? Wie erziehe ich Manager, Ehemänner und Kinder? Sollte ich Entwickler, die sich nicht an Architekturvorgaben halten durch Schläge oder durch Liebesentzug strafen? Und wie kann ich das üben, wo ich doch meinen Lebensabschnittsgefährten nach einem fehlgeschlagenen Testlauf nicht so einfach neu instanzieren kann?

Sie können den Vortrag hier herunterladen.

D6  One Size Fits All

PostgreSQL als (No)SQL-Datenbank

Die Zeit der SQL-Alleinherrschaft über die Datentöpfe ist vorbei – zu viele Anwendungsfälle lassen sich heutzutage nur mit NoSQL-Mitteln vernünftig handhaben. In den vergangenen Jahren haben aber auch SQL-Datenbanken dazugelernt und bieten inzwischen eine Fülle von NoSQL-Features. Kann man mit einer einzigen Datenbank alle Einsatzszenarien erschlagen? Anhand eines konkreten Kundenprojektes werden die Erfahrungen aus dem Einsatz von PostgreSQL als alleiniger Datenbank für alle Anwendungsfälle aufgezeigt. Von der Entwicklung über Continuous Delivery bis hin zum Betrieb (sowohl vor Ort als auch in der Cloud) werden alle Aspekte beleuchtet sowie Vor- und Nachteile transparent gemacht. Dabei kommt auch der Vergleich mit reinen NoSQL-Systemen nicht zu kurz.

Sie können den Vortrag hier herunterladen.

D7  Python im Netz

Ein mitlernender Software-Assistent als Webservice

Mit Python lassen sich vielfältige Anwendungen im Bereich Data Science und Machine Learning entwickeln. Wie integriert man diese Anwendungen dann aber in bestehende Systeme? In diesem Beitrag wird ein Pythonbasierter Software-Assistent vorgestellt, der mit Hilfe maschineller Lernverfahren und Textanalyse Benutzer bei der Erfassung von Texten unterstützt. Durch die Bereitstellung als lose gekoppelter Webservice ist der Assistent flexibel und einfach in User Interfaces integrierbar. Die eigenständige Datenhaltung ermöglicht dem Software-Assistent mitzulernen (mit supervised und unsupervised Learning) und die Unterstützung für den Benutzer kontinuierlich zu verbessern.

Sie können den Vortrag hier herunterladen.

D8  How to get your time back

Zeitmanagement für alle

Findest du die Zeit alles zu tun, was du gerne tun möchtest? Oder fühlst du dich zwischen den Dingen, die du tun willst, sollst und musst hin und her gerissen, weil du nicht weißt, was du als erstes anpacken sollst? Das Leben geht leider schneller vorbei als man denkt. Angesicht der schnelllebigen Gesellschaft, in der wir leben und der Geschäftigkeit, die damit zusammenhängt, lohnt es sich, ein bisschen Zeit in Zeitmanagement zu investieren. Wir möchten uns mit der Frage beschäftigen: Wie können wir die Zeit, die uns zur Verfügung steht am sinnvollsten nutzen und das Beste daraus machen.

Sie können den Vortrag hier herunterladen.

E1  Nachtschicht

Digitale Bildbearbeitung von astronomischen Bildern

Für die digitale (Nacht-)Himmelsfotografie werden neben digitalem Fotoapparat und ggf. astronomischen Gerätschaften eine ganze Reihe an Software-Produkten eingesetzt. In diesem Vortrag werden wir kurz die astronomischen Gerätschaften streifen, aber uns dann den unterschiedlichen Programmen zur Bearbeitung von solchen Bildern zuwenden. Hierbei werden wir eine Reihe von tollen, frei verfügbaren Programmen praktisch kennen lernen: mit diesen werden wir Planeten, die Sonne und den Mond bearbeiten. Und schließlich werden wir uns den Sternen, Nebeln und Galaxien zuwenden. Abschließend wird noch ein kommerzielles Tool zur Bildbearbeitung von Deepsky Bildern demonstriert.

Sie können den Vortrag hier herunterladen.

E2  Man muss das Leben tanzen

Tango Argentino in Bezug auf das Leben und die Arbeit

Java-Entwickler, Buildmanager, Problemlö- ser – auf der Arbeit. Nach der Arbeit bin ich weit weg von zu Hause und auf Abwege geraten. Vorsicht: GitHub hat mich verloren, aber es bewegt sich alles in den gesellschaftlich akzeptierten Umgangsformen. Der Titel ist ein Zitat von Nietzsche, ein Verfechter des Tanzes. Meine Leidenschaft heißt Tango Argentino. Es geht um Führen und Folgen, Vielseitigkeit, Flexibilität, Fantasie, Entscheidungsfähigkeit und soziales Denken. Es lassen sich unglaublich viele Bezüge auf das Leben und die Arbeit im Team ziehen und davon möchte ich in diesem Vortrag berichten.

Sie können den Vortrag hier herunterladen.

E3  Der Bien

Über die Lebensweise des Superorganismus der Bienen

Jeder kennt Bienen, manche hassen sie, manche lieben sie. Dabei gibt es keinen Grund, Bienen nicht zu mögen. Denn Bienen leisten einen wichtigen Beitrag für das Ökosystem, produzieren leckeren Honig und sind dabei stets freundlich. Eine Biene durchläuft von Geburt bis zum Tod mehrere Lebensphasen und Aufgaben. Sie opfert jede Sekunde ihres Lebens, um den Fortbestand des Volkes zu sichern. Dies schafft der Schwarm nur dadurch, dass die einzelnen Teile, wie Zahnräder, nahtlos ineinandergreifen.

Sie können den Vortrag hier herunterladen.

E4  Helden am Küchentisch

Eine Einführung in die Welt der Pen & Paper Rollenspiele

Ein Ausblick auf das Hobby „Pen & Paper Rollenspiele“ mit einer Einführung in verschiedene Spielsysteme, lustigen (und vielleicht traurigen) Anekdoten, Gründen warum P&P auch für den Job hilfreich ist/sein kann und der Hoffnung, eventuell ein paar neue Menschen für ein wundervolles Hobby begeistern zu können.

Sie können den Vortrag hier herunterladen.

E5  Rational, irrational, willkürlich

Das menschliche Entscheiden aus einer psychologischen Perspektive

Das Treffen von Entscheidungen ist ein integraler Teil unseres täglichen Lebens. Von kleinen Entscheidungen wie der Bestellung im Restaurant über Entscheidungen im Arbeitsalltag bis hin zu Lebensentscheidungen wie der Partner- oder Berufswahl können somit auch die Konsequenzen dieser Entscheidungsprozesse ein unterschiedliches Ausmaß annehmen. In diesem Vortrag wird ein Überblick über die psychologische Forschung zu den Persönlichkeitsfaktoren gegeben, die auf unsere Entscheidungen Einfluss nehmen, sowie die Frage behandelt, ob man erfolgreiches Entscheiden „erlernen“ kann.

Sie können den Vortrag hier herunterladen.

E6  Ist das Kunst oder kann das weg?

Moderne Kunst unter der Lupe

Bei den sogenannten Alten Meistern würde niemals jemand zweifeln, dass es sich bei den Gemälden um Kunst handelt. Hier sieht alles so echt aus als wäre es fotografiert und die Dinge scheinen fast schon zu realistisch. Umso näher man in der Kunstgeschichte aber an unser eigenes Zeitalter heranrückt, desto unsicherer sind die Kriterien, die man für den Kunstbegriff gedanklich anwenden kann. Ob etwas echt aussieht, ist schwer zu sagen, wenn man nicht einmal erkennt, was dargestellt ist. Manches sieht aus wie von einem Kleinkind hingekleckst. Aber oft steckt doch viel mehr dahinter. Umso moderner und damit auch abstrakter die Kunst wird, desto mehr Hintergrundwissen braucht man zum Entschlüsseln der Frage „Ist das Kunst oder kann das weg?“ Ein Querschnitt durch die moderne Kunst soll ein bisschen Licht ins Dunkel bringen und das Werkzeug liefern, die Frage zu beantworten.

E7  Wie würdest DU diesen Vortrag nennen?

Und andere wichtige Fragen

Weißt du, wie man Fragen stellt? Das wissen wir doch alle, oder? Jedes Kind geht durch eine „Warum“-Phase. Kannst du dich an deine erinnern? Oder die deiner Kinder? Wenn du jetzt ein Kind wärst, wie würdest du eine Frage an Erwachsene stellen, um eine richtige Antwort zu bekommen? Und hast du gemerkt, dass wir in diesem Absatz schon vier unterschiedliche Fragen-Typen verwendet haben? Unabhängig davon, ob es in einem Mob ist, beim Pair-Programming oder einfach in einem Team mit anderen Menschen, gute Fragen sind das Wichtigste. „Shit-in shit-out“ sagen die Amerikaner. Wenn du nicht klar kommunizieren kannst, kommst du nicht weit. Denke nach über die Fragen, die du stellst. Experimentiere mit der „Question Formulation Technique“. Lerne mehr über unterschiedliche Fragentypen und deren Einsatz. Und werde zum Befragungsexperten.

Sie können den Vortrag hier herunterladen.

E8  Auf zu neuen Dimensionen

3D-Druck für Jeden?

3D-Drucker werden immer günstiger, die Community immer größer, die Möglichkeiten ebenso. In diesem Vortrag soll eine praktische Einführung in die Welt der 3D-Drucker gegeben werden. Dabei wird nicht nur auf die Hardware der Drucker eingegangen, sondern auch auf unterschiedliche Materialien, die nötige Software, eine kleine Einführung in die Konstruktion dreidimensionaler Objekte (man will ja nicht nur fertige Designs drucken) sowie auf Fallstricke hingewiesen, die vor allem Neulingen das Leben schwer machen können.