Talks by Karakun

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!

A comparative review of microservice frameworks

featured image

In this session we will compare some of the most popular Microservice frameworks in the Java ecosystem like SpringBoot, Quarkus, Eclipse MicroProfile, and more. We will give an overview and jumpstart for each framework. Next to this we will answer questions like:

  • Which features do provide all of them, what are their unique selling points?

  • How do I start writing microservices with the different frameworks?

  • Which technology stack do the different frameworks use?

  • How do they perform in regards to startup time, and responding with different response sizes?

  • How large are the resulting application containers in Docker?

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.

Beauty and the Beast: Java Versus TypeScript

featured image

Once upon a time, there was a poor, innocent language. It was friendly and kind. Everything could have been nice and peaceful, but there was another language that was grumpy and mean. One day they met and started to argue about who the better language was…. This session compares the Java language with TypeScript. It discusses how common problems are solved with these languages. At the end, you’ll see who is the beauty and who is the beast.

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.

Java WebStart is dead - What should we do now?

featured image

Starting with Java 11, WebStart is being removed from Java. Because even today several applications are built on top of this technology, it will be mission-critical for many companies to find a replacement for it. This session presents an overview of the features of WebStart and how they can be replaced. It includes samples of several open source and commercial tools that provide such features and might mean new and cool possibilities for WebStart-based applications.

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.

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.

Smart UIs for mobile and embedded in JavaFX

featured image

You need a shiny cool UI for embedded devices? It should be optimized for touch? It should be responsive? It should be configurable? It should be based on JavaFX?
Great! We have exactly what you need!
In this talk we will introduce a new JavaFX theme that is made for embedded device and will fit perfect in all the cool new IoT and mobile products. By using the theme developers can enrich there IoT application with a modern UI and best practice workflows.

JavaFX in production

featured image

Writing a “Hello World!” application is always easy and a Java developer can learn how to write such an application with JavaFX in some minutes. But if you want to create a productive application the knowledge of “Hello World” isn’t enough. A real application should be well structured, provide an automatic build that ends in useable artifacts and contain only needed dependencies. In addition such an application should be testable and maintainable. This talk shows some general concepts how you can create and structure a JavaFX application that can easily grow and become more complex without loosing control of the code, functionality and maintainability. At the end each attendee will have a template that he can use to start creating JavaFX based application.

Extreme Gui Makeover

featured image

This talk if for all UI lovers, GUI enthusiasts and friends of modern and user-friendly UX. JavaFX is not only a modern UI toolkit but the recommend UI Toolkit of Java, too. It offers a lot of amazing features to help you craft modern looking and interactive user interfaces. JavaFX offers everything that is needed to create well behaved and aesthetically pleasing GUI applications. This talk will compare and contrast your run-of-the-mill application and then go one step further by showing how developers can create an ‘Extreme’ GUI application. Who needs an old school toolbar when they can have an animated menu? This and other important questions will be answered in this lighthearted talk. Because it is an ‘Extreme Makeover’ talk the examples will be shown as live demos and live coding sessions.