55
events were organized by JUG Switzerland during 2023.

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

BaselOne 17

LOCATION: Basel
KEYWORDS: Tools, Product, Technology, Open Source

AGENDA:

08:30 - 09:00 Türöffnung und Eintreffen
09:00 - 09:15 Eröffnung
09:15 - 10:15 Talk 1.1 & Talk 2.1 & Talk 3.1
10:15 - 11:15 Talk 1.2 & Talk 2.2 & Talk 3.2
11:15 - 11:30 Pause
11:30 - 12:30 Talk 1.3 & Talk 2.3 & Talk 3.3
12:30 - 13:45 Mittagessen
13:45 - 14:45 Talk 1.4 & Talk 2.4 & Talk 3.4 & Talk 4.4
14:45 - 15:45 Talk 1.5 & Talk 2.5 & Talk 3.5 & Talk 4.5
15:45 - 16:00 Pause
16:00 - 17:00 Talk 1.6 & Talk 2.6 & Talk 3.6 & Talk 4.6
17:00 - 17:30 Abschluss
17:30 - Open End mit Apéro und Networking


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


09:15 Talk 1: Choosing a Frontend Strategy

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
LANGUAGE: Talk: en / Slides: en


09:15 Talk 2: Cloud Native Java - Getting Started

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
LANGUAGE: Talk: de / Slides: en


09:15 Talk 3: JDK9 mit dem Java Plattform Modulsystem

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
LANGUAGE: Talk: de / Slides: en


10:15 Talk 1: Testing Java Code Effectively

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
LANGUAGE: Talk: en / Slides: en


10:15 Talk 2: Restrukturierung der Code Basis mit Java 9

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
LANGUAGE: Talk: de / Slides: en


10:15 Talk 3: Service discovery in Kubernetes with Fabric8

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
LANGUAGE: Talk: en / Slides: en


11:30 Talk 1: Building fast and efficient Microservices with binary protocol gRPC

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.

  • Configuring projects to generate gRPC stub code
  • Using Protobuf3 to define services
  • Creating synchronous and asynchronous services, with streaming
  • Load balancing
  • Interceptors

LEVEL OF TALK: Intermediate
LANGUAGE: Talk: en / Slides: en


11:30 Talk 2: When, why and how to CQRS

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
LANGUAGE: Talk: de / Slides: en


11:30 Talk 3: The Java 9 Module System - Beyond the Basics

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...

  • model finer-grained dependencies and APIs
  • decouple modules with services
  • weigh encapsulation versus reflection
  • analyze dependencies with 'jdeps'
  • safe the day with important command line flags
  • create runtime images with 'jlink'

With this under your belt, you're ready to become the local Java 9 modularity expert.

LEVEL OF TALK: Intermediate
LANGUAGE: Talk: en / Slides: en


13:45 Talk 1: DeepLearning on the JVM - ApacheSystemML and DeepLearning4J on ApacheSpark

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
LANGUAGE: Talk: en / Slides: en


13:45 Talk 2: Konsequent funktionale Programmierung für die JVM

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
LANGUAGE: Talk: de / Slides: en


13:45 Talk 3: Programming for the Cloud - Lösungen mit Amazon Elastic Beanstalk

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:

  • Cloud-Architektur: Verfügbarkeit, Skalierbarkeit und Elastizität
  • Hazelcast auf AWS EC2
  • Verwaltung mehrerer Environments (Config-Management), Applikations- und Plattform-Upgrades
  • Integration von Logentries
  • Integration von MongoDB Atlas
  • Weiterführende Konfiguration EC2 (Load-Balancer, http/2, Certificates

LEVEL OF TALK: Intermediate
LANGUAGE: Talk: de / Slides: en


13:45 Talk 4: Reactive Systems in Java

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
LANGUAGE: Talk: en / Slides: en


14:45 Talk 1: Perform Database Actions Using Java 8 Stream Syntax instead of SQL

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
LANGUAGE: Talk: en / Slides: en


14:45 Talk 2: Gradle 4.0 Scalable Builds

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
LANGUAGE: Talk: en / Slides: en


14:45 Talk 3: OpenJDK tools for fun and profit

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
LANGUAGE: Talk: en / Slides: en


14:45 Talk 4: Infrastructure as Code oder Provisionierung von Dockerhosts und Containern

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
LANGUAGE: Talk: de / Slides: en


16:00 Talk 1: Streaming Data Analysis with Kubernetes

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
LANGUAGE: Talk: en / Slides: de


16:00 Talk 2: Intel Multi OS Engine

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
LANGUAGE: Talk: en / Slides: en


16:00 Talk 3: Supercharging user experience with machine learning

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
LANGUAGE: Talk: en / Slides: en


16:00 Talk 4: Von API Design und glücklichen Usern

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
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


LEVELS:

BEGINNER
The presented topic is new to the audience or only little and superficial experience exists. This talk will mainly cover basic aspects of the topic and not go into much detail.

INTERMEDIATE
The presented topic is known to the audience, serious practical experience is expected. This talk might cover some basic aspects of the topic, but will as well go into depth and details.

ADVANCED
The presented topic is well-known to the audience, serious practical experience and a deep understanding are required. This talk will not cover basics of the topic, but will go into depth, might discuss details, compare different approaches, and so on.

ALL
The topic presented is of interest to all levels and does not require any special prior knowledge.

top

Supporting members

Platin

Gold

Silver

 
 

 

About

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.

Design
Partner

 

Contact

Java User Group Switzerland
8000 Zürich
info@jug.ch

© Java User Group Switzerland