System.out.println("USE A LOGGER!!!");
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
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
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
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
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?
OpenWebStart 1.3 - Webinar
Besides new functionalities and improvements, version 1.3 of OpenWebStart will come with a new documentation and support options. Most of the new functionalities will be discussed in this session.
Whats New in the Eclipse Platform Project
This is a wrap up of what has happened in the Eclipse Platform Project from last years EclipseCon (Eclipse 2019-09) till EclipseCon 2020 and also current challenges the Eclipse Platform team is working on.
The talk is complementary to other talks given at EclipseCon that focused on aspects like JDT, Java Support, Build, or Performance.
- Community & Adoption of the Eclipse Java IDE
- Code Cleanups
- Java 11
- Usabilty enhancements, e.g. Dark Theme
- Linux Support
- New Apple Hardware
- Current & Future Challenges
OpenWebStart 1.2 - Webinar
Besides new functionalities and improvements, version 1.2 of OpenWebStart will come with a new layout which aligns with the new look and feel of the OWS website. Most of the new functionalities will be discussed in this session.
1 Codebase, 2 Mobile Platforms: How to Test iOS and Android by Just Writing Tests Once
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
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
- 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
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.
JavaFX - Custom Controls
Gerrit presents his two open source frameworks TilesFX and Medusa. TilesFX is used for creating professional and sophisticated dashboards. Medusa delivers a huge set of custom controls that implement gauges, ideal for monitoring applications. Gerrit will share many tricks on how to accomplish eye candy effects.
Java 11 - OMG!!!!
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
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
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
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
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
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.
The secret behind JWT
In the age of micro services and applications that are build from many distributed components and need to take care for aspects like CSRF and CORS, session cookies are not practicable anymore.
Tokens promise to be a silverbullet. JWT (JSON Web Token) aims to simplify the usage of authentication tokens in modern application landscapes.
This talks shows if tokens can fulfill that promise and keep up the web applications taste even when cookies are missing.
Java WebStart is dead - What should we do now?
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
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
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.
Extreme Gui Makeover
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.
Several people at Karakun already did a bunch of talks before they founded Karakun as a new company. You can find an overview of talks that we did in the past here.