Every year in September the Workshoptage take place, organized by CH-Open. We've participated several times ourselves, but now we've taken the next step: We submitted six proposals, of which four were chosen. In the end, three workshops came about: One about Keycloak, one about Kotlin and one about Quarkus.
The location of this year’s event was again the Hochschule für Technik in Rapperswil, right on the coast of Lake Zurich. For Chris, Michael and Mirco – the founders of nxt – this is home turf, as we all once studied there together.
Keycloak is an opensource identity and access managment (IAM) solution, mainly developed by Red Hat. Keycloak supports both major authentication standards OAuth2 OpenID Connect and SAML 2.0 out of the box. It can therefore quickly be set up and configured to authenticate users for a wide variety of software applications with great flexibility.
During the workshop the participants learnt how the OpenID Connect (OIDC) protocol works it’s magic and got to know the basics about the inner workings of Keycloak. Several exercises conveyed knowledge about how to install Keycloak, configure it, secure applications with it and about how to customize the look and feel to match one’s preferences.
This workshop was developed and given by Michael Gerber. All the material used during the workshop is available on out Gitlab.
Not only Android developers profit from Kotlin, the rest of the Java universe can as well. Take the Spring Foundation, which announced already back in 2017 that, from then on – and ever since, starts to treat Kotlin as a “first-class-citizen” in their widespread Spring Framework.
But what makes Kotlin so great? This was the leading question which this workshop tried to answer. My highlights include:
null-related problems and runtime errors.
The workshop began with a short introduction about Kotlin’s whereabouts (that it’s originally made by Jetbrains, that it’s opensource with an Apache 2 license). This was quickly followed by the first chance to get one’s hands “dirty” and write a Kotlin program for the first time.
After a theoretical introduction into similarities and differences of the Kotlin syntax, compared to Java, the next block of exercises awaited the participants. Step by step the well-known game “Rock, Paper, Scissors” was turned into a basic computer game. Each step in the exercise introduced a new concept of Kotlin. This allowed the participants to quickly get to know all the important concepts that make Kotlin so great in a learning-by-doing experience.
The second part of the workshop was all about how Kotlin and Java work together. (tl;dr: They match perfectly!) The task was to add Kotlin to an existing Java-only Spring-based project and convert it step-by-step to Kotlin.
This event was part of the Kotlin/Everywhere series of events. If you’re interested, there are plenty more opportunities to attend a Kotlin event, such as a conference, workshop or meetup. A special thank goes out to Jetbrains and Google for making it possible for us to have stickers produced with the Kotlin logo and distribute them to all the workshop’s participants.
This workshop was developed and told by Christian Mäder. The slides, scripts and sample solutions are available on our Gitlab:
Quarkus is a cloud-native Java software development stack, built around the GraalVM and OpenJDK HotSpot. It’s based on some of the best Java libraries and standards there are. The Quarkus project is opensource and driven mainly by Red Hat. Leveraging the GraalVM, a Quarkus-based Java application can be compiled to a native application for Linux, Mac and Windows. Being a native application has the benefits of a greatly reduced memory footprint (like five times less) and a much improved performance when starting up (up to 50 times as fast).
During the workshop, the participants learnt in several consecutive exercises about the strengths and weaknesses of Quarkus. The goal was a native Java application that was being deployed to a local Kubernetes cluster.
The workshop was developed and held by Michael Gerber. All the material of the workshop is available on our Gitlab.
Preparing these workshops thought us many lessons. What we greatly underestimated was the effort that is required to prepare such workshops.
Michael even had to prepare two workshops, but he wouldn’t do so anymore in the future. It’s not only because of the huge preparation effort, but also because teaching a new topic to a class is actually quite demanding.
Of the six topics proposed to the organizers, four where chosen. Yet one workshop did not take place because it somehow did not attract enough interest. It was interesting to observe which topics got traction and which didn’t. We – once again – learned that “the market” is unpredictable and that assumptions must always be put up to the test with the “real thing”.
In retrospect, and despite all the hard work and phases of self-doubt, it was a pleasure to develop those workshops and to work with the participants. We loved to share our knowledge, and we’ve also learnt quite a bit ourselves during the preparations. We also would like to express are gratitude to the organizers at CH-Open for giving us this chance.