Talks by Karakun

Your thoughts are chemical, mine are digital. - Macht KI die Software-Entwicklung wirklich besser?

featured image Generative KI und Deep Learning können schon heute Dinge, die vor einigen Jahren undenkbar waren. Hierzu zählen beispielsweise das Generieren von Code, das Erstellen von Prototypen für intelligente Services, Optimierung von Suchplattformen, Security Audits - um nur ein paar wenige Use Cases zu nennen. Was jetzt zu schön klingt, hat aber auch diverse Makel, wie der Mangel an brauchbaren Trainingsdaten, fehlende Erklärbarkeit, Vertrauenswürdigkeit und Fairness von ML Algorithmen. In unserem Vortrag werden wir die Auswirkungen von Künstlicher Intelligenz auf die Prozesse in der Softwareentwicklung und auf Software-Architekturen diskutieren.

Why Software Testing Is a Waste of Time

featured image Testing software takes up a lot of time in the software development process, often the same amount of time if not more than the time required for the development itself. Just like development, testing also requires continued maintenance efforts. This (rightfully so) makes a lot of people in different roles, be it managers, developers or even testers question whether or not that time effort is really justified. With more and more companies deploying every 10 minutes or even less start to wonder: why invest time in testing when you can simply rollback issues in a matter of seconds, in some cases even automatically?

Singularity by mistake - Why my AI is wiping out humanity

featured image

In movie blockbusters, we learn that artificial intelligence can rise against humanity and sound the death knell of the world. Is this just Hollywood fantasy or already reality? And why is Elon Musk “afraid” of the AI future?
In this talk, we will deal with failed AI learnings and the abstruse results that can be created by such learning attempts. Here we will have a look at difference areas of AI like NLP or reinforcement learning. Ever thought about a PacMan that is controlled by an evil AI and how such character would act? We will look at the errors that can occur during learning processes. Here we will not only see amusing results, but also scenarios that can be a real danger in a productive environment. In the conclusion will also take a closer look at the causes of these failed learning processes and discuss what can be done to avoid such problems and pitfalls.


I know what you did last summer

featured image

Can you say the same about your Java applications? Today, applications run not only as monoliths on a server, but also distributed as (micro-)services in the cloud. Continuous monitoring is becoming more important in such scenarios. For example, as soon as you want to be informed about running out of memory, too many user sessions or increasing memory consumption, logging alone is no longer sufficient. For these and many other scenarios, metrics are the tool of choice today.
In this session we will look at how to implement, visualize and evaluate metrics for Java applications. We will not only look at products and ready-to-use solutions like Grafana or Prometheus. Rather, we also want to find out how to implement metrics in Java in a meaningful way without vendor lock-in. With Micrometer and Java Flight Recorder, for example, there are several APIs that can be used to easily extend a Java application with metrics and the possibility of continuous monitoring. Together we will look at different approaches and discuss best practices or pitfalls when using metrics.


Understanding Open Source

featured image

Content management systems, web browsers or operating systems: many of these products and services that we use every day are now implemented as open source projects. Due to the high influence that open source development has on the digital world, there are also many different statements about the advantages and dangers of open source products. Especially if you are not familiar with the subject matter, it is difficult to make a technically correct assessment of open source products
The knowledge presented in this talk should help to better understand and evaluate open source software. Using this knowledge, the various dangers and advantages arising from the use of open source components can be better evaluated in the future.


Intelligent Text Analytics & Enterprise Search

featured image

Technologies based on intelligent speech analysis and enterprise search are increasingly finding their way into all areas of companies. They enable the implementation of digitization and automation strategies. Their contribution to the optimization of document-based processes and an improved customer experience is essential for businesses, politics, public authorities and the public to successfully master the digital transformation.
In this talk we will discuss the technical possibilities of speech analytics and enterprise search and show how the Hibu platform can be used for efficient content indexing. Using practical examples and a demo, we will explain how methods of text classification and intelligent semantic search contribute to the development of smart functions and automated workflows, e.g. automated invoice processes.


Management and analysis of test and simulation data

featured image

The amount of data collected during tests and simulations in the automotive industry has grown massively in recent years and there is no end in sight to this trend. Previous techniques for analysis have reached their limits. While the amount of data collected during tests and simulations is increasing, individual computers cannot be expanded to the same extent. This means that the usual practice of copying data to a workstation for analysis is reaching its limits. In addition, transferring and copying the data itself becomes a time and cost factor.
This talk presents the various ways in which test and simulation data can be managed and analyzed using Big Data technologies. How do ASAM ODS and Big Data come together?


Java 17

featured image

If someone told us in summer 2017 that Java 17 would be released in fall 2021, we certainly wouldn’t have taken that statement seriously. But with the OpenJDK roadmap presented in September 2017 and releases every 6 months, the JVM has been able to make great leaps in the last few years and Java 12, 13, 14, 15 and 16 have been released. You read right: since Java 11, there are really already 6 releases that add interesting and important new features to the language syntax, the JVM or the Java APIs. In this session, I talk about Java 17, the OpenJDK, different Java distributions and the Java ecosystem.


Beam me up, Botti

featured image

Human-computer interaction has changed dramatically in recent years. As a result, more and more so-called social bots have been created over the years - especially in the area of social networks - which can be used both to obtain information and to enhance the user experience. In addition to “nice gimmicks,” however, such bots are also being used more and more in critical areas, such as by politicians during election campaigns. Misinformation on climate change, for example, is also being spread more and more by bots. In this talk, we will look at how to develop bots in general (with Java) and what options are open to a developer. Together we will develop a bot and look at how easy it is to integrate and use gamification aspects to motivate users to interact with our bot. However, we will also look at the downsides of this technology, e.g. what sensitive data a developer might suddenly have at his disposal.


OpenJDK & Adoptium

featured image

In the last few years, there have been many rumors in the Java community about the new roadmap of Java and the OpenJDK. Next to this, Oracle changed its licensing terms for the Oracle JDK. Today, you can no longer simply download your Java Runtime from Oracle and use it for free on your company servers. You have to choose between different providers. One of these runtime providers is Eclipse Adoptium. But who is behind Eclipse Adoptium and how do their Java distribution Temurin and its licenses differ from other providers? And what does AdoptOpenJDK or OpenJDK have to do with it?
As a working group member and committer of Adoptium, I will give an overview of the origin and intention of Eclipse Adoptium and show how this huge community-based project for the free reuse of Java has emerged within the last years. Of course, questions about security and future-proofing of Adoptium and OpenJDK will also be addressed. Additionally, I will show the current and future goals of the project and also give ideas how interested participants can participate and contribute to the project.


System.out.println("USE A LOGGER!!!");

featured image

No matter if you are developing a small library, a complex framework or an application for end users - you will come to the point that you want to log information. The Java community offers a whole wealth of solutions: Besides java.util.logging there are libraries like tinylog, Log4J or Logback. Where are the differences and unique selling points of these frameworks? In addition, actually everyone says that only the use of a facade like slf4J is “best practice”. But why should I use an abstraction when developing a concrete application? Or does a facade perhaps offer completely different advantages? And as if that weren’t enough questions, with Java 9 a new logger, System.Logger, was quietly integrated into the OpenJDK.
This talk gives an understandable guide through the logging jungle and shows a few practices that help to get the logging of libraries and applications under control. If you’re on the verge of going back to System.out out of frustration, this session is for you.


Java Desktop 2020

featured image

In Java’s history a lot of different UI technologies appeared and helped Java to become an established technology for desktop applications. Especially the cross platform functionality of Java enabled a lot of mission critical desktop applications in industries like the aerospace sector, deep sea research, the stock market, and others.
As we all know the market share of desktop applications has gone down during the last decade. Next to mobile computing more and more applications move to web browsers. Based on this Java desktop technologies are not as attractive anymore as they were a couple of years ago. ​ Nevertheless there is still progress in Java Desktop technologies and a lot of positive changes and progression happened within the last 12 months. Together we will take a look at the current state of these technologies, how they evolved within the last year, and what new developments the future might bring for us.


50 Shades of Java

featured image

Let me seduce you! Talks in which you learn how to “program Java correctly & cleanly” has been seen way to often. In this session you will learn things you should never do in your next Java project. Let’s leave the world of all this boring clean code and come with me on a journey into the shadows of Java programming. Even though Java is a solid & stable language, there are still some loopholes that you can exploit with tools like Reflection to get really whacky results and effects. If you want to experience the pain of these hacks then you’ve come to the right place.


AdoptOpenJDK - Making Java free again

featured image

AdoptOpenJDK is the leading provider of OpenJDK™ binaries. With over 170 million downloads in the last year, it is successfully used by many enterprises and ready for your production usage of Java™. AdoptOpenJDK provides prebuilt OpenJDK binaries from a fully open source set of build scripts and infrastructure. This talk will cover how we build on over 15 different platforms, execute over 87 million tests and distribute OpenJDK binaries to millions of users. We will also cover how AdoptOpenJDK binaries compare against the Java binaries that you use today. If you’re curious to understand the difference between OpenJDK, Oracle Java, AdoptOpenJDK and all the other distributions, then this is the talk for you!


1 Codebase, 2 Mobile Platforms: How to Test iOS and Android by Just Writing Tests Once

featured image

Developing consistent mobile apps on iOS and Android is difficult enough, but writing automated end to end tests so they run on both platforms without writing them twice is even harder. The limited selectors on mobile make it very difficult to only use one testing code base for both platforms. By using accessibilityId’s with translation keys in the same way as in the app, we use the fastest and least brittle selector on mobile possible, being resistant to tests breaking in case of text changes, allowing to also check the app in all languages without any additional effort.
Using a hybrid framework like React Native or NativeScript with WebdriverIO, François will show how to use utility methods to cleverly encapsulate all of the platform differences as much as possible, so writing tests is efficient, readable and maintainable.


Java Desktop 2019

featured image

Some years ago development of Java Desktop applications was easy: We just downloaded Java 8 from Oracle and got a set of useful tools and framework to develop Java desktop applications:



  • AWT & Swing

  • WebStart

  • JavaFX

  • JFX Packager
    If you now download a Java version from Oracle (or any other vendor) several of the mentioned tools and frameworks are gone. Some JDKs only contain AWT & Swing for desktop development and miss all the newer tools. But even if they include such tools or frameworks you have sometimes no idea about their state. In this session I will give an overview about the differences between JDKs that you can use today and how frameworks like JavaFX are really supported by the vendors. Next to this we will have a look at all the tools that are important for building and installing desktop development. Since some like WebStart are gone you can find quite good alternatives.


Java 11 - OMG!!!!

featured image

With Java 6, 7 or 8, the world for a Java developer was quite easy. The Java platform had a long running release cycle and versions normally overlapped for more than 1 year. Normally, you as a developer had more than enough time to prepair your applications for the next release. Once this was done, you simply downloaded the JDK from Oracle and installed it with the automatic installer. The biggest problem in that world was the Ask-Toolbar ;)
Starting with Java 9 Oracle has announced a new release train and with Java 11 the licence model of the Oracle JDK has changed. Because of this, new vendors appear on the market offering commercial support for Java. But isn’t Java 11 a LTS version that I can easily use for years and why should I use commercial support in this case?
The keynote gives an overview of the history of Java and the OpenJDK. We will have a closer look the new at the release train to kill all the rumors about Java 11, commercial support and the future of Java.


Progressive Web Apps and the Service Worker API

featured image

Progressive Web Apps (PWAs) closes the gap between websites and native applications. They combine the high accessibility of web pages with the open standards of the web in terms of Look and feel (HTML, CSS), search engine optimization (SEO) and functionality (Push API, Notification API), Web Storage API, HTTPS etc.) with properties of native applications. So Progressive Web Apps can work offline (Service Worker API) and be added like a native app to the Home Screen of your device (Web App Manifest).
This talk shows how to create a PWA. The focus is on the Service Worker API, which plays a central role for Progressive Web Apps. It will also show how the Web App manifest and which help to realize a PWA.


Web APIs - The missing manual

featured image

Web developers use different Web APIs every day. Often this APIs are well known ones, like the Document Object Model (DOM), the DOM Event API, the Fetch API or the Geolocation API. A kind of comfort zone is created, which one rarely leaves. The web provides many more APIs, which are rarely or not at all known. Do you already know for example the Web Speech API, or the Web Bluetooth API, the Server Timing API, the Battery Status API or the Credential Management API? These and other APIs are part of the talk to help web developers leave their comfort zone. Since the presentation includes many APIs, the attendees can choose at the beginning which APIs will be presented in detail.


Java APIs - The missing manual

featured image

This isn’t a talk about microservices, NoSQL, container solutions or hip new frameworks. This talk will show some of the standard Java APIs that are part of Java since version 5, 6, 7 or 8. All those features are very helpful to create maintainable and future-proof applications, regardless of whether JavaEE, Spring, JavaFX or any other framework is used. The talk will give an overview of some important standard concepts and APIs of Java like annotations, null values and concurrency. Based on an overview of this topics and some samples the talk will answer questions like:



  • How can I create my own annotations?

  • How can I create a plugin structure without using frameworks like OSGI?

  • What’s the best way to handle NullPointerExceptions?

  • How can I write concurrent code that is still maintainable?


Multidevice Controls: A Different Approach to UX

featured image

Everybody knows boring form-based user interfaces. What if you could add mobile devices to improve the UX of desktop or web applications? A research project at the University of Applied Sciences and Arts Northwestern Switzerland has tried to address this topic in a totally different way. Usually you would expect to rework the UI and make it fancier, but here the idea is to enhance controls so they can reside on a mobile device. For example, you can think about a text input field that gets the focus, with the actual data input being done on a mobile phone. This session presents an overview of the concept and shows you some results of the research project in the form of demos based on Swift, JavaFX, and Polymer.


The path to CD: End-to-End with Docker and Geb

featured image

End to end testing is a crucial part of a tool chain to deliver high-quality releases of many software systems.
With Geb, we have a very handy wrapper to WebDriver/Selenium at our fingertips that enables us to create actually maintainable E2E test suites even for large web applications. Combining it with Docker and a CI system enables us to be very flexible about the context we use this tests in and allow us to provoke feedback for many interesting aspects we need to know about in our system.
This talk outlines findings and experiences from projects that utilized the mentioned technologies to succeed in constantly delivering high quality releases not only in slides but also with some live-coding and demos.


Where the wild projects are

featured image

Build and testing a commercial software is easy. You can use a big infrastructure for CI and commercial tools to test your complete stack. And if you want to test your application on different mobile devices - well, that’s easy! You company will buy them for you. But what can you do if you want to work on Open Source? You can not spend thousands of Dollars for a free time project and without a given infrastructure several build, test and deployment steps are just impossible… Imagine a world in that testing, building or deploying of open source software is at least as easy as for commercial projects. Maybe it’s just easier and the infrastructure is better than in most $$$ stacks. I will introduce you to this world and show several tools and services that will help you to get the best out of your open source project - without producing any costs but with a lot of fun, cool new technologies and the freedom of choose.


Polyglott Java - a platform for many paradigms

featured image

There are many ways to program - and all of them find a home on the JVM. Whether you are a die-hard object-oriented enterprise programmer, a super-cool scripting hipster, or a scientific functional engineer, the Java Platform has all you need. In this talk we will go through unconventional combinations of these paradigms that enrich your solution space - scripting user-defined functions for a business application, building ambitious user interfaces, and creating rock-solid transaction systems. Java has something for everybody.


Lightweight and reproducible environments with Vagrant and Puppet

featured image

Many developers are in need of complex development- and test environments for different projects with customers. The ideal situation would be to have them running in a sandbox. With help of the Cloud and VMs it’s possible to create those sandbox-environments but administration, configuration and maintenance cost a lot of time and money. With a combination of Vagrant & Puppet it’s possible to create and configure those environments “on the fly”. Anytime, anywhere and above all reproducible. The Talk shows how fast you can create and configure a sandbox for a Java environment including an Application Server and a database with the help of those tools.


DataFX: The Best Way to Get Real-World Data into Your JavaFX Application

featured image

The real value in most client-oriented business applications is the data sitting on remote servers and cloud systems. Unfortunately, retrieving and displaying this data is an exercise left to the developer, and it must be done (correctly!) before end users can interact with it. Fortunately, the open source DataFX framework aims to simplify this by enabling JavaFX developers to easily retrieve data from a variety of sources in several formats and rapidly integrate it with JavaFX components (such as TableView), using typical JavaFX patterns. This session introduces the free and open source DataFX project, gives practical advice for using it, and provides insight into future plans for this project.


JavaFX, Widgets, and Apps

featured image

Attend this session to hear about two exciting new OSS widget/app-launching frameworks, LaunchBoxFX and eWidgetFX, for embedded and desktop platforms. See how to create dock-based widgets ranging from mini-apps to full-control interfaces for entire systems—and everything in between. LaunchBoxFX provides a pluggable interface for development of dynamic widgets in embedded environments. You’ll learn how to use JavaFX 8 to create dynamic widgets that provide live updates and scalable monitoring/control for any number of inputs. With more resources comes more power! With eWidgetFX, you’ll learn to create futuristic, dockable apps that “snap out” for greater visibility and control. Learn to leverage the power of JavaFX on desktop platforms for user-awing UI results.


Let’s Get Wet! AquaFX and Best Practices for Skinning JavaFX Controls

featured image

JavaFX offers a wide range of default controls for creating cool and great applications, from business to entertainment use cases. Because JavaFX is a multiplatform UI framework that can be used mainly on desktop-based platforms and embedded devices, a cross-platform skin named Caspian is provided by JavaFX. As of Java 8, Modena will be a official second cross-platform skin for JavaFX, but some applications and developers have a definite need for native or custom skins for their controls and applications. This session points out how to create custom skins for JavaFX controls. You will learn that with AquaFX, this custom skin can even feel like a native one.


Feature Driven Development

featured image

This talk shows Best Practices that can be used to develop application in an agile and feature driven workflow. Companies like flickr use this development process internally and even Martin Fowler defined a part of the process as “FeatureToggle”.
In the talk I will start with the definition of feature tasks and what steps and methods are needed to define them. Next to this an application is shown that was developed by the use of FeatureToggles. Here different architecture approaches in Java will be shown. Next to the architecture of an application the development workflows must be changed to create applications in a feature driven way, too. In some examples best practices to handle the new workflows will be shown.
Methods and tools like the GitFlow, GitLab, the Java Togglz API and Jira will be shown in this talk.


JavaFX Enterprise

featured image

JavaFX 8 offers a lot of excellent features to create modern and interactive user interfaces. However, in addition to a shiny UI there are other important issues that must be considered when creating enterprise business applications with JavaFX. This talk gives an overview of the various best practices on solving problems like client-server communications (transport), asynchronous vs synchronous tasks, MVC/MVP framework patterned approaches and designing of complex dialog window flows. Although the JavaEE platform already defines decent data binding solutions when developing JavaFX applications, this session will demonstrate 3rd party frameworks such as DataFX, ControlsFX and Open Dolphin. These 3rd party frameworks provide useful features that will ease development, thus reducing time and money on your enterprise projects. By learning these JavaFX enterprise APIs and techniques a developer will be able to focus on application building instead of the underlying plumbing.


WebComponents and Polymer

featured image

Up until now it was almost impossible to create reusable components for the Web in a reasonable way. CSS rules and JavaScript variables would always get in their way in large applications. Luckily there is an initiative now to unify techniques to define custom Web Components
Using examples we will show in this talk how you can build your own components. We will explain what the Shadow DOM is and will present tools like Polymer and X-Tag. This talk will give an overview of the current state of technology and a forecast of future development.


The remote presentation model

featured image

Finding the right architecture and remoting layer for a modern application of often very hard. In this talk we want to introduce the Remote Presentation Model Pattern that is based on MVC and introduces a generic model approach that can be used to define (presentation) models that can be synchronized between the client and the server. By doing so the business logic of an application can be defined completely on the server. In addition this pattern is a perfect match to create cross-platform apps that support real time updates and collaborative features. In this talk we show how the pattern can be used in a Spring or JavaEE environment by using all the cool features of this enterprise frameworks. In addition we will show how different clients can easily be implemented for an app that is based on remote presentation models.