Jonas Felix
Flavie Laurens
Christian Schwörer
Wolfgang Weigend
Andres Almiray
Andy Moncsek
Ray Tsang
Sebastian Daschner
Nicolai Parloq
Romeo Kienzler
Dierk König
Daniel Hasler
Nicolas Barbé
Per Minborg
Etienne Studer
Dmitry Vyazelenko
Remigius Stalder
Galder Zamarreño
Vitaly Tsaplin
Cedric Reichenbach
Ilgün Ilgün
Christoph Engelbert
David Sondermann
19.10.2017
LOCATION: Basel
KEYWORDS: Tools, Product, Technology, Open Source
AGENDA: | 08:30 - 09:00 Türöffnung und Eintreffen |
Es ist wieder soweit - die BaselOne (ehemals Java Basel) steht vor der Tür!
Die zweite Ausgabe der BaselOne findet am 19. Oktober 2017 in der Markthalle in Basel statt. Die Konferenz bietet eine optimale Plattform, um mit Kollegen und Gleichgesinnten zu diskutieren, um neue Kontakte zu knüpfen und bestehende Verbindungen zu pflegen und natürlich um spannenden und relevanten Content rund um aktuelle Themen aus dem Bereich der Softwareentwicklung direkt von erfahrenen Experten zu erhalten.
National und international anerkannte Speaker wie Ray Tsang, Andres Almiray, Sebastian Daschner, Wolfgang Weigand oder Rabea Gransberger präsentieren Talks zu Java, JavaScript und weiteren nützlichen softwarebezogenen Themen.
Der Rabatt-Code für jug.ch-Mitglieder wurde per E-Mail verschickt. Er kann auch beim Sekretariat angefragt werden.
Programm als pdf herunterladen
SPEAKER: Jonas Felix COMPANY: felixideas
SPEAKER: Flavie Laurens COMPANY: felixideas
The request developers get today: “It has to run on my iPad, on his Android, on their iPhones. It has to run on the web. It should be global and scalable. It has to run everywhere. And it has to do everything. And of course, only write it once.”
In this “use it everywhere” world we have to change the way we build our frontends. We start to move more and more logic to the frontend and are ending up using mostly JavaScript for the UI. The Backends get thinner and the Frontends explode in size and complexity. Even offline mode in the browser or apps in the store have to be built with the same tools. So we build single page applications which need a framework to tackle their complexity. We have established frameworks for our backends in any language, frameworks we love and trust. But now in the frontend world, we are confronted with an extremely fast paced and atomized world of libraries, patterns, packages, styling methods and platforms.
Let us give you a little guide through this jungle. Let us show you the crucial points to consider by comparing today's big players: ⇒ React and Angular.
LEVEL OF TALK: Intermediate p>LANGUAGE: Talk: en / Slides: en
SPEAKER: Christian Schwörer COMPANY: Novatec GmbH
Spring Boot hat sich als das JVM-Framework zur effizienten Entwicklung von Microservices etabliert. Es vereinfacht die Anwendungsentwicklung drastisch, in dem es unter anderem das convention-over-configuration-Paradigma konsequent umsetzt.
Mit Cloud Foundry steht eine quelloffene und multi-cloud-fähige Plattform (PaaS) zum Betrieb von Microservices zur Verfügung. Auch sie zeichnet sich durch Entwicklerfreundlichkeit sowie der ganzheitlichen Unterstützung des Entwicklungszykluses aus.
Der Vortrag stellt praxisorientiert dar, wie durch das Zusammenspiel dieser beiden Technologien innerhalb kürzester Zeit ein Microservice erstellt und in der Cloud betrieben werden kann. Dazu wird nach einer Einführung in die wesentlichen Konzepte eine Spring Boot Anwendung entwickelt und direkt in der Cloud Foundry Plattform deployt. Zusätzlich werden die grundlegenden Mechanismen zu scaling und availability angesprochen.
LEVEL OF TALK: Intermediate p>LANGUAGE: Talk: de / Slides: en
SPEAKER: Wolfgang Weigend COMPANY: Oracle
Nach der Freigabe vom JDK 9 im Juli diesen Jahres lohnt es sich einen Blick auf die Plattformmodularisierung im Projekt Jigsaw zu werfen. Über die JDK-Enhancement-Vorschläge JEP 200 (Modulares JDK), JEP 201 (Modularer Source-Code) und JEP 220 (Modulare Laufzeit-Images) gelangen die technischen Vorschläge ins JDK 9. Diese Veränderungen lassen es zu, mit dem JDK 9 die gewünschte technische Paketierung von ausgewählter Java-Funktionalität selbst zu bestimmen. Das Projekt Jigsaw hat die primäre Aufgabe, das Design und die Implementierung eines Standard-Modulsystems für die Java-Plattform und für das JDK 9 bereitzustellen. Dabei soll die durchgängige, dynamische und einfache Anpassbarkeit der Java-SE-Plattform & dem JDK, auch für kleine Endgeräte berücksichtigt werden, sowie die Verbesserung von Sicherheit und Wartbarkeit von Java-SE-Plattform-Implementierungen, speziell vom JDK, verwirklicht werden.
Im Vortrag werden Demo-Beispiele gezeigt, die eine Erstellung von individueller Java Runtime mit Anwendung anhand der JDK 9-Werkzeuge verdeutlichen.
LEVEL OF TALK: Intermediate p>LANGUAGE: Talk: de / Slides: en
SPEAKER: Andres Almiray COMPANY: Canoo Engineering AG
The Java ecosystem has myriads of libraries and projects that can be used to create the features our customers require, there's no shortage of options everywhere you look when it comes to writing production code. But what about testing code? If you ascribe to the Clean Code ideals then you know that testing code is as important as production code. Luckily there are a good number of libraries that can be used with popular testing frameworks. In this session we'll discover how to write better parameterized tests; take care of concurrency related events; spy/mock/stub out collaborators to ensure cleaner and isolated tests; fake out REST APIs to test out client code; fake out REST clients to test out server code, and more.
LEVEL OF TALK: Intermediate p>LANGUAGE: Talk: en / Slides: en
SPEAKER: Rabea Gransberger COMPANY:
Dieser Vortrag zeigt Strategien zur Modularisierung von großen Projekten und berichtet von den gemachten Erfahrungen.
Jeder Entwickler ertappt sich dabei, wie er sich wünscht mit einem neuen Projekt zu beginnen, um diesmal alles besser zu machen und dem Chaos im aktuellen Code zu entfliehen.
Mit Version 9 unterstützt Java die Aufteilung von Code in einzelne Module. Zugriffsregeln zwischen den Modulen können z.B. die Nutzung von UI Klassen aus Model-Klassen heraus verbieten. Durch diesen Ansatz kann die bestehende Code-Basis in einzelne Teile zerlegt werden, um mehr Übersicht zu schaffen. Diese kleineren Module sind als eigene Projekte deutlich einfacher zu warten und sorgen für ein besseres Gefühl bei Entwicklern.
LEVEL OF TALK: Intermediate p>LANGUAGE: Talk: de / Slides: en
SPEAKER: Andy Moncsek COMPANY: Trivadis AG
Kubernetes/OpenShift is clearly becoming the new de facto standard in container orchestration. You can even run your legacy applications without rewriting them, which might be one of the reasons for it's success. But still, distributed systems consists of many different services (even in legacy applications) and rely on service discovery.
In this talk I will introduce the Fabric8 Kubernetes API and how you can use it in you existing Java EE and Spring application to do service discovery inside Kubernetes. I will provide step-by-step examples how to use the Fabric8 CDI integration and how to discover Services in Spring or in any other Java application.
LEVEL OF TALK: Intermediate p>LANGUAGE: Talk: en / Slides: en
SPEAKER: Ray Tsang COMPANY:
gRPC is a high performance, open source, general RPC framework that puts mobile and HTTP/2 first. gRPC is based on many years of Google's experience in building distributed systems - it is designed to be low latency, bandwidth and CPU efficient, to create massively distributed systems that span data centers, as well as power mobile apps, real-time communications, IoT devices and APIs. It's also interoperable between multiple languages.
But beyond that fact that it's more efficient than REST, we'll look into how to use gRPC's streaming API, where you can establish server-side streaming, client-side streaming, and bidirectional streaming! This allows developers to build sophisticated real-time applications with ease.
In addition to learning about gRPC and HTTP/2 concepts with code and demonstrations, we'll also deep dive into integration with existing build systems such as Maven and Gradle, but also frameworks such as Spring Boot and RxJava.
LEVEL OF TALK: Intermediate p>LANGUAGE: Talk: en / Slides: en
SPEAKER: Sebastian Daschner COMPANY: Freelancer
Most of today’s enterprise applications base on a CRUD data model that is simple and straightforward to implement. Another concept of how to model applications is Command Query Responsibility Segregation (CQRS) that enables interesting solutions and use cases, especially with rising demands of scalability.
In this session I’ll show the concept and benefits of CQRS, to which other buzzwords such as eventual consistency, event-driven architectures and event sourcing it is related and how to realize a CQRS application. The questions whether this concept can be realized with Java EE technology, where the framework already offers solutions and where it has to be extended will be answered.
Most of the time will be spent live-coding and examining the “devil is in the details” cases of both approaches.
LEVEL OF TALK: Intermediate p>LANGUAGE: Talk: de / Slides: en
SPEAKER: Nicolai Parloq COMPANY: CodeFX
Java 9 shipped the Java Platform Module System (JPMS), which brings language-level modularity to the Java ecosystem. But you already know that and even spent some time to learn the basics? That's great because this talk will take you beyond that and show how to...
With this under your belt, you're ready to become the local Java 9 modularity expert.
LEVEL OF TALK: Intermediate p>LANGUAGE: Talk: en / Slides: en
SPEAKER: Romeo Kienzler COMPANY: IBM
DeepLearning frameworks are popping up at very high frequency but only a few of them are suitable to run on clusters, use GPUs and supporting topologies beyond Feed-Forward at the same time. DeepLearning4J features all this without forcing you to learn new exotic programming languages and in addition also scales-out on well established infrastructures like ApacheSpark and Hadoop/YARN.
In this talk we will introduce DeepLearning4J on top of ApacheSpark with an example to create an anomaly detector for IoT sensor data with a LSTM auto encoder neural network.
LEVEL OF TALK: Intermediate p>LANGUAGE: Talk: en / Slides: en
SPEAKER: Dierk König COMPANY: Canoo Engineering AG
Die Industrie gewöhnt sich langsam an einen „funktionalen Stil“ in Java und in anderen JVM Sprachen. Das ist ein Fortschritt. Den bisher dominierenden Ansatz von prozeduraler Bewirtschaftung veränderlicher Objekte können wir nun ergänzen durch reine Funktionen, deren Wirkung sich besser vorhersehen lässt.
Die großen Vorteile der funktionalen Programmierung ergeben sich jedoch erst, wenn man sie so konsequent umsetzt wie Frege, das die Eigenschaften von Haskell auf die JVM bringt.
LEVEL OF TALK: Intermediate p>LANGUAGE: Talk: de / Slides: en
SPEAKER: Daniel Hasler COMPANY: Bluesky IT-Solutions AG
Anhand eines konkreten Beispiels werde ich zeigen, wie mit Amazon Elastic Beanstalk PaaS (Java/Tomcat) und anderen Cloud Diensten (AWS Route53, AWS EC2, AWS SES, Logging, Database, …) ganze cloud-native Lösungen gebaut werden können.
Im speziellen werden folgende Themen behandelt:
LEVEL OF TALK: Intermediate p>LANGUAGE: Talk: de / Slides: en
SPEAKER: Nicolas Barbé COMPANY: Magnolia
Nowadays, systems are more and more distributed and must handle an increasing amount of traffic coming from an increasing amount of other systems. One approach to solve these challenges has been formalized as Reactive Systems.
A reactive system is an architectural style based on a set of design principles to build distributed systems that are elastic, resilient, consistent and responsive.
This talk serves as an introduction to build a simple Reactive Systems in Java. We will illustrate the advantages of this approach with some concrete examples based on the latest Spring 5 released recently. We will see how they perform and scale compare to more traditional approaches.
LEVEL OF TALK: Intermediate p>LANGUAGE: Talk: en / Slides: en
SPEAKER: Per Minborg COMPANY: Speedment AB
Why should Java developers need to use SQL when the same semantics can be derived directly from Java Streams? When one takes a closer look at this objective, it turns out there is a remarkable resemblance between Java streams and SQL. For example, stream operations like filter(), sorted() and flatMap() can be automatically translated to corresponding “WHERE”, “SORT” and “JOIN” SQL statements.
By leveraging retrospective streams, open-source Speedment can drastically reduce your code base and allows you to write pure Java code for entire database applications. Speedment is using lazy evaluation of streams, meaning only a minimum set of data is actually pulled from the database into your application and only as the elements are needed.
LEVEL OF TALK: Intermediate p>LANGUAGE: Talk: en / Slides: en
SPEAKER: Etienne Studer COMPANY: Gradle Inc.
Building, testing, assembling, and releasing software has become a very demanding and complex process over the past years. Multiple components built in multiple languages, distributed teams in different timezones working on different parts of the system, several stages of quality insurance, various software distribution channels, and so on. At the same time, the pressure to release new versions of the software has also tremendously increased and fast high-quality deliveries have become essential for the survival and success of many products.
A suitable platform to build and release your software needs to handle the high complexity of today’s build requirements while at the same time still scaling in terms of performance. Gradle is the most powerful player amongst the build platforms and is chosen by companies like LinkedIn, Netflix, and others that rely strategically on continuous and fast delivery of their software.
In this presentation, we will take a look at how Gradle allows you to elegantly model your build requirements, how Gradle manages to scale its performance to very large builds, and how you can get deep insights into the behavior of your Gradle builds. Demos will be given on features like the Daemon, Composite Builds, Incremental Builds, Compile Avoidance, Build Cache, Build Scans, and other features that maybe sound a bit obscure to you right now but whose concepts and application you will soon understand and appreciate.
LEVEL OF TALK: Intermediate p>LANGUAGE: Talk: en / Slides: en
SPEAKER: Dmitry Vyazelenko COMPANY: Canoo Engineering AG
The Java libraries landscape is huge. There are thousands of frameworks and tools out there but not many people know about useful tools and libraries that are available under OpenJDK umbrella.
In this talk I will cover the following OpenJDK projects: JOL (Java Object Layout), JMH (Java Microbenchmarking Harness), jcstress (Java Concurrency Stress tests) and JITWatch. For every project I will answer questions such as what is this project about, which problems and use cases it solves and show some usage examples.
LEVEL OF TALK: Intermediate p>LANGUAGE: Talk: en / Slides: en
SPEAKER: Remigius Stalder COMPANY: Descom Consulting AG
Lästige und aufwändige manuelle Serverinstallation kann auf einfache Art durch automatisierte Provisionierung und Konfiguration der Infrastrukltur ersetzt werden. Dieser Vortrag zeigt einen Ansatz, bei dem die Definition der Infrastruktur in voll maschinenlesbarer und ausführbarer Form in einem git repo anstatt in den Köpfen der (oder des) Engineers vorhanden sind.
Es wird gezeigt, wie das Verfahren sowohl auf Blech (d.h. auf lokalen physischen Maschinen) als auch in der Cloud angewendet werden kann, und somit eine grosse Übereinstimmung zwischen Test-/Integrations- und Produktionsinfrastruktur erreicht wird.
Die vorgestellten Werkzeuge sind terraform und ansible für Provisionierung und Konfigurationsmanagement, sowie lxd (nur lokal) und docker für System- und Applikationscontainer. Die vollständige Codebasis ist auf github verfügbar, so dass alle TeilnehmerInnen auch sofort mit eigenen Experimenten loslegen können.
LEVEL OF TALK: Intermediate p>LANGUAGE: Talk: de / Slides: en
SPEAKER: Galder Zamarreño COMPANY: Redhat
Dealing with real-time, in-memory, streaming data is a unique challenge and with the advent of the smartphone and IoT (trillions of internet connected devices), we are witnessing an exponential growth in data at scale.
To be able to handle potential data growth, you want to process data in a cloud environment that can easily scale. In this space, Kubernetes offers great container orchestration and auto-scaling capabilites that are perfectly suited for streaming data use cases. When combined with Infinispan, an in-memory data grid from Red Hat, it enpowers you with state of the art distributed data processing capabilities to tackle these challenges.
In this session, we will identify critical patterns and principles that will help you achieve greater scale and response speed. On top of that, you will witness how Infinispan follows these patterns and principles to tackle a Big Data situation via a live coding demonstration on top of a container platform orchestrated by Kubernetes.
LEVEL OF TALK: Intermediate p>LANGUAGE: Talk: en / Slides: de
SPEAKER: Vitaly Tsaplin COMPANY: Adobe
Have you ever dreamed to write a native app in Java for iOS? How about reusing the most of the code for Android? Tired of HTML and Cordova? How cool would it be to apply all your Java skills and expertise to develop a native mobile application for iOS and Android without sacrificing the native look and feel? There was a project aimed to fill the gap called RoboVM but it was abandoned since an acquisition by Xamarin. So no hope anymore? Let me introduce you to Multi-OS Engine, developed by Intel, which is aimed at enabling Java developers an easy way to cross-develop for both iOS and Android. You can now reuse your favourite Java tools and IDEs getting the native look and performance along the road.
LEVEL OF TALK: Intermediate p>LANGUAGE: Talk: en / Slides: en
SPEAKER: Cedric Reichenbach COMPANY: Magnolia
SPEAKER: Ilgün Ilgün COMPANY: Magnolia
We present a modern approach to pushing content and actions closer to users. Instead of manually scouting user interfaces, a smart search mechanism acts as a gateway to any kind of actionable item in a system.
LEVEL OF TALK: Intermediate p>LANGUAGE: Talk: en / Slides: en
SPEAKER: Christoph Engelbert COMPANY: Hazelcast
SPEAKER: David Sondermann COMPANY: Hazelcast
Ein Problem das jeder aus seinem eigenen Entwickler-Alltag kennt: die meisten APIs sind nicht ansprechend gestaltet. Unintuitiv, nicht selbsterklärend, inkonsistent, WT... sind nur ein paar der Aussagen die laufend über die Flure schallen.
Doch APIs, gestaltet aus Sicht des späteren Benutzers, lassen sich schneller verwenden, sind einfacher verständlich und machen viel Spaß bei ihrer Entwicklung und Nutzung. Warum also sind die meisten APIs immer noch so komplex und schlecht zugänglich?
Durch einfache Ansätze wie „Am Anfang steht das Interface“, Nutzung von Builder Pattern und anderen kleinen Tricks zeigt dieser Vortrag Methoden, wie man einfach und schnell entwicklerfreundliche, aber trotzdem „coole“ APIs gestaltet kann.
LEVEL OF TALK: Intermediate p>LANGUAGE: Talk: de / Slides: en
Jonas Felix
Flavie Laurens
Christian Schwörer
Wolfgang Weigend
Andres Almiray
Andy Moncsek
Ray Tsang
Sebastian Daschner
Nicolai Parloq
Romeo Kienzler
Dierk König
Daniel Hasler
Nicolas Barbé
Per Minborg
Etienne Studer
Dmitry Vyazelenko
Remigius Stalder
Galder Zamarreño
Vitaly Tsaplin
Cedric Reichenbach
Ilgün Ilgün
Christoph Engelbert
David Sondermann
JUG Switzerland aims at promoting the application of Java technology in Switzerland.
JUG Switzerland facilitates the sharing of experience and information among its members. This is accomplished through workshops, seminars and conferences. JUG Switzerland supports and encourages the cooperation between commercial organizations and research institutions.
JUG Switzerland is funded through membership fees.