Blog

Blog-Post

Monokausalität: Warum wir einfache Erklärungen lieben

Unser Gehirn liebt klare, einfache Antworten – besonders wenn es um die Frage nach dem «Warum» geht. Dieser Blogpost zeigt, warum Monokausalität verlockend, aber oft irreführend ist – und wie wir den Blick für komplexe Zusammenhänge schärfen können.

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.

Blog-Post

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

Features, die bisher außer Reichweite waren

Blog-Post

LLM-assisted Abbreviation Mining for Legacy Systems

This blog post shows the process of mining abbreviations and discovering first concepts a COBOL legacy mainframe codebase is made of with the help of Large Language Models. It uses Python, pandas and Claude 3.5 Sonnet to generate insights that can be gathered from such a simple thing like a list of files.

Blog-Post

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.

Blog-Post

Pragmatische Evolution von Platform Engineering für die Cloud

Organisatorische und kulturelle Transformation

Blog-Post

Java und seine Annotationen

Java-Code ohne Annotationen ist heute kaum mehr denkbar, auch wenn es hieran immer wieder Kritik gibt. Doch, kaum zu glauben, es gab auch eine Zeit vor diesen. Drei Anwendungsfälle demonstrieren, wie diese Probleme vor der Einführung von Annotationen gelöst wurden und wie es auch heute ohne diese gehen könnte.

Blog-Post

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.

Blog-Post

Entwickler skalieren anders als Applikationen

Blog-Post

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

Curious on how to start building with Generative AI? This guide covers the basics, from deploying local models to utilizing tools like Huggingface and LangChain. Learn to create your first AI application, manage customer feedback, and grasp key concepts such as context windows and vectorization. Discover practical examples and essential resources to help you get started.

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

Endlich aktuelle Infos…

Blog-Post

Ist das Spring RestTemplate wirklich Deprecated?

Ist das Spring RestTemplate wirklich veraltet? Dieser Artikel beleuchtet die verwirrende Geschichte hinter der angeblichen Deprecation, klärt auf, was wirklich Sache ist und gibt praktische Empfehlungen für Entwickler. Erfahren Sie, warum Sie vielleicht doch nicht all Ihren Code umschreiben müssen.

Blog-Post

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

Entwicklung eines Datenprodukts mit Databricks

Blog-Post

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

Nicht mehr Open-Source

Was kann man tun, um sich vorab dagegen zu wappnen, plötzlich für eine wichtige Technologie einem Anbieter ausgeliefert zu sein? Kann es auch eine valide Entscheidung sein, das Risiko bewusst in Kauf zu nehmen? Und sind die Risiken, die sich bei Verwendung von Open-Source-Technologien ergeben, per se geringer als bei kommerziellen Alternativen? Wie geht man damit um, wenn eine Technologie, die man verwendet, plötzlich nicht mehr Open-Source ist? Ist es sinnvoll, zu einem Fork zu wechseln, und welche Risiken bestehen dabei?

Blog-Post

Type-safe SQL queries in Java and Rust

The Type-Safe Web Stack, Part 3

Blog-Post

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.

Blog-Post

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.

Blog-Post

Was ist eigentlich htmx?

Das fehlende Puzzlestück von HTML?

Blog-Post

API gut, alles gut

Unternehmen streben häufig eine Modularisierung (wie durch Microservices) an, die Teams unabhängiger voneinander arbeiten lässt. 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.