Blog & Artikel

Blog-Post

Use webjars-locator-lite with internal WebJars

Switching to the new webjars-locator-lite, e.g. by following the Spring Boot 3.4 Release Notes, may result in errors when loading your internal WebJars. This post explains why that is the case and what you can and should do to fix that.

Artikel

Generative KI: Das Ende von „zu teuer“ in Unternehmenssoftware?

«Wir haben keine Use Cases gefunden.» — Nein, Sie haben zu viele. Betrachten wir doch mal, wie Generative KI die Unternehmenssoftware über Chatbots hinaus verändern wird. Welche Features werden möglich, die bisher nicht realisierbar oder einfach zu teuer waren?

Blog-Post

LLM-assisted Abbreviation Mining for Legacy Systems

Deciphering the Hidden Language within Old Software Programs

Artikel

Diverse Kommandozeilenwerkzeuge für Container und Kubernetes

Für den Umgang mit Containern und Kubernetes gibt es mittlerweile eine riesige Auswahl an Werkzeugen auf der Kommandozeile. So viele, dass es schwer ist, einen Überblick zu behalten und jedes neue Werkzeug mitzubekommen. Dieser Artikel stellt deswegen einige der vorhandenen Werkzeuge vor, die ich regelmäßig nutze.

Artikel

Pragmatische Evolution von Platform Engineering für die Cloud

Viele Unternehmen haben Services von Public-Cloud-Providern adaptiert, um von der Skalierbarkeit, Zuverlässigkeit und Innovationskraft der Cloud zu profitieren. Das primäre Ziel dabei: die Beschleunigung der eigenen Entwicklungsprozesse. Doch häufig tritt genau das Gegenteil ein.

Artikel

Java und seine Annotationen

Geschichten von Code vor und ohne Annotationen

Artikel

Spring Boot und explodierte JARs

Auf den ersten Blick scheint das Starten von Spring-Boot-Anwendungen nicht sehr schwer zu sein. Ein Aufruf von java -jar my.jar reicht dafür. Doch wie genau funktioniert das eigentlich? Und wie lässt sich die Softwareverteilung effizienter gestalten? Dieser Artikel beantwortet diese beiden Fragen und nimmt Sie dabei mit auf eine Reise durch die Geschichte von Spring Boot.

Artikel

Entwickler skalieren anders als Applikationen

Interne Plattformen können die unternehmenseigene Softwareentwicklung beschleunigen, indem sie die mentale Belastung der Entwicklungsteams reduzieren. Als Abstraktionsschichten konzentrieren sie sich auf die wesentliche Fach- und Laufzeitdomäne. Wenn sie sorgfältig gebaut sind, durchbrechen sie alte Konflikte und erlauben zum Beispiel den Entwicklungsteams viel Innovationsfreiheit trotz (oder dank) hoher Standardisierung. Allerdings erfordert dies ein Umdenken über den Wert von Wiederverwendung und auch eine Kehrtwende von Projekten hin zu internen Produkten. Organisationen, die der Versuchung erliegen, bestehende Betriebsschichten oder Frameworks in «Plattformen» umzubenennen, dürfen daher keine Wunder erwarten.

Artikel

Here’s All You Need To Know To Start Building With Generative AI

Blog-Post

Mehr aus Git machen

Git hat sich als das de-facto-Standard für Versionskontrollsysteme etabliert. Obwohl wir es täglich verwenden, sind viele von uns einfach mit den Standardeinstellungen unterwegs. Damit liegen jedoch viele der von Git gebotenen Möglichkeiten brach. In diesem Artikel möchte ich ein paar mir lieb gewonnene Optionen vorstellen und so vielleicht der einen oder dem anderen das Leben mit Git einfacher machen.

Blog-Post

Springboot mit Keycloak in 2024

Zur Verknüpfung einer Springboot-Anwendung mit Keycloak gibt es wahrlich genug Tutorials im Netz. Allerdings gibt es in den neuesten Versionen beider Anwendungen einige Dinge zu beachten, die sich geändert haben.

Blog-Post

Ist das Spring RestTemplate wirklich Deprecated?

Das Mysterium um Springs RestTemplate in 3 Akten

Artikel

Social Engineering ist durchgespielt

Der Angriff auf die Kompressionsbibliothek xz hat gezeigt, wie fragil die digitale Infrastruktur ist, die die moderne Welt am Laufen hält. In dieser Kolumne soll betrachtet werden, wie die sozialen Mechanismen Vertrauen und Misstrauen in diesem Zusammenhang wirken.

Blog-Post

Boring Innovation?

Does innovation always come with the latest technology or can innovation even seem boring? A quick look at a story from my work as an IT consultant.

Artikel

Entwicklung eines Datenprodukts mit Databricks

Artikel

Modernisierung einer Legacy Software-Architektur

Software-Systeme reifen mit der Zeit. Sie werden oft über viele Jahre und von verschiedenen Architekten und Entwicklern angepasst, um neue Anforderungen zu erfüllen. Der Alterungsprozess lässt sich trotz sorgfältiger Pflege nie ganz aufhalten und so erhält irgendwann jedes System den Stempel „legacy“. Legacy Systeme unterstützen aber weiterhin wichtige geschäftliche Tätigkeiten. Wie führt man diese Systeme also zurück in die Gegenwart und bereitet sie auf die Zukunft vor?

Blog-Post

Type-safe SQL queries in Java and Rust

In recent years, our industry has been in favour of strong typing and build-time verification to make certain classes of bugs impossible. How much influence has this trend had on how we can write SQL queries in Java? Let’s look at how typesafe SQL queries can be in Java, how this compares to what you can do in Rust, and consider the benefits and drawbacks of these different approaches.

Artikel

Nicht mehr Open-Source

Technologieentscheidungen rational treffen

Artikel

Die Ökonomie von Gut & Crypto III

In den ersten beiden Teilen zur soziotechnischen Betrachtung von Crypto-Technologien ging es um Vertrauen und die Rolle von Vermittlern bei Transaktionen. Dieses Mal soll der Gegenstand der Transaktionen im Mittelpunkt stehen: Geld.

Blog-Post

Type-safe HTML templates in Java and Rust

The current fashion in our industry is to use static and strong typing wherever possible. How fashion-conscious is the Java community when it comes to HTML templating, though? Let’s have a look at what approaches at type-safe or build-time verified HTML templating are available in the Java ecosystem, how they compare to what’s available in Rust, and whether the benefits outweigh the costs.

Artikel

Die Ökonomie von Gut & Crypto II

Soziotechnische Welten - Teil 12

Blog-Post

gRPC

One of the main tasks that business sets for IT as an industry is the creation of effective software, according to criteria that clearly meet the needs of this business. On the other side, one of the main prerequisites for achieving the goals that a business sets for itself is the ability to hire specialists who can create a product in the shortest possible time and/or effectively maintain it. Accordingly, to achieve this, the technology stack used, i.e. tools, must be mature enough, and widely used in the market.

Blog-Post

Type-safe HTTP routing in Java and Rust

In recent years, the trend in our pop-culture industry has been to favour static and strong typing as well as build-time checks over dynamic typing and techniques like late binding. Where possible, you are expected to use the compiler for correctness checks instead of unit tests. Even though the Java language is statically typed, its type system is often considered to be not very helpful. Web applications written in Java are traditionally bristling with weakly typed APIs, heavy use of reflection, and lots of annotations that are interpreted at runtime. Let’s see how far the trend towards build-time checks has been adopted in the Java ecosystem when it comes to writing web applications, how it compares to what’s done in the Rust community, and what benefits and weak points these techniques have.

Artikel

Was ist eigentlich htmx?

Das fehlende Puzzlestück von HTML?

Artikel

API gut, alles gut

Unternehmen streben häufig eine Modularisierung (wie durch Microservices) an, die Teams unabhängiger voneinander arbeiten lasst. Dabei ist aber ein reines Aufteilen der Applikation in verschiedene Module/Container/Bausteine nicht ausreichend. Die Abhängigkeit oder Unabhängigkeit entscheidet sich vielmehr mit der Gestaltung der Schnittstelle, genauer: Mit der Frage, ob die gewählte Schnittstelle fachliche Implementierungsdetails preisgibt oder diese versteckt.