Blog & Artikel

Artikel

Gemischtdatenladen

Genau wie das persönliche Surfverhalten sind die Einkaufsgewohnheiten eines Menschen sehr aufschlussreich – wenn man es schafft, die unhandlichen Daten zu analysieren. Wer so einen Datenschatz im Selbstversuch auswertet, bekommt Einblicke ins eigene Einkaufsverhalten, Erfahrung in der Analyse von Daten und obendrein ein unterhaltsames Programmierprojekt.

Blog-Post

Rich code documentation with Jekyll

Static site generation is a perfect fit for publishing documentation. In a recent project, we chose to use a combination of Jekyll and NGINX to build and host the documentation. In this post, I show how to process and include other types of assets.

Blog-Post

Code knows no gender

Der INNOQ Girls’Day 2022

Blog-Post

Customer-specific documentation with Jekyll

Static site generation is a perfect fit for publishing documentation. In a recent project, we chose to use Jekyll for rendering our content. As a special requirement, we had to build different „flavours” for different customers.

Artikel

Data Mesh: Entwicklungsteams heben Datenschätze

Der dezentrale Datenarchitekturansatz soll Entwicklerinnen und Entwickler in die Lage versetzen, selbstständig domänenübergreifende Datenanalysen durchzuführen.

Blog-Post

Was macht ein Trainee bei INNOQ?

Über meine Zeit als Trainee bei INNOQ

Artikel

Module – Microservices – Monolithen

Microservices sollten alle Architekturprobleme lösen. Wenig überraschend kam es anders. Jetzt sollen die Monolithen, die wir schon seit Jahrzehnten entwickeln, wieder die Lösung sein. Bei dieser Diskussion gerät eine Grundlage für die Entwicklung von komplexen Softwaresystemen in Vergessenheit: Modularisierung, die viel wichtiger als die Frage nach Monolithen oder Microservices ist.

Artikel

Continuous Deployment mit GitOps

GitOps ermöglicht einen entwicklungszentrierten Betrieb von Anwendungen und deren benötigter Infrastruktur durch die Verwendung von Tools, mit denen Entwicklungsteams bereits vertraut sind und einem Operator, der in der Zielumgebung lebt.

Artikel

DNS und LDAP mittels JNDI abfragen

Was genau ist eigentlich JNDI?

Blog-Post

Managing Kubernetes Resources with Kustomize

Helm is the de-facto standard for managing groups of Kubernetes resources that belong to an application as a package. It comes with its own ecosystem to build, configure and distribute these packages. In some cases, this is an appropriate approach but sometimes we just want to manage our resources as yaml files and need a simple way to slightly modify the resources for different environments. In this article we will have a look at how Kustomize can help us with this.

Artikel

TypeScript – Die Komplexität von JavaScript bändigen

2022 feiert TypeScript zehnjähriges Jubiläum. Anlass genug, auf die Anfänge zurückzublicken – und Einsteiger:innen alles an die Hand zu geben, was sie für die Arbeit mit der Programmiersprache brauchen.

Artikel

Der Nächste, bitte!

Wie die Event-Loop asynchronen Code im Browser ermöglicht

Artikel

Die Angemessenheit von Komplexität

Wenn in der Softwareentwicklung über verteilte Systeme gesprochen wird, findet sich Eric Brewers CAP-Theorem meist direkt um die Ecke. Das CAP-Theorem, obwohl es erst 1998 formuliert wurde, gehört heute zu den fundamentalen Erkenntnissen über verteilte Systeme. Was enthält es an Einsichten für die Betrachtung sozialer Systeme bereit?

Artikel

Der Foerster und die Softwarearchitektur

Moderne Softwarearchitekturen benötigen ein gutes Verständnis für die Kommunikationsprozesse in sozialen Systemen. Eine Erklärung und praktische Perspektive darauf liefert ein Konzept des Physikers Heinz von Foerster.

Artikel

Mythos Teamautonomie

Soziotechnische Welten – Teil 3

Artikel

Fairness und Künstliche Intelligenz

Klassisches Software-Testing lässt sich nicht ohne Weiteres auf KI übertragen. Model Governance und interne Audits sind nötig, um Fairness zu gewährleisten.

Artikel

JSON in Java verarbeiten

Im Gegensatz zu vielen anderen Programmiersprachen bringt das JDK für Java keine fertige Lösung für das Lesen und Schreiben von Daten in der JavaScript Object Notation (JSON) mit. Wir müssen uns also eine passende Bibliothek für diese Aufgaben suchen. In diesem Artikel schauen wir uns deswegen eine Auswahl von Bibliotheken an.

Blog-Post

CORS extension “Private Network Access”

Understanding the new preflight requests

Artikel

Eine kleine Geschichte über Qualität…

Du denkst Dir nichts Böses, da bittet Dich Tante Lucy um einen kleinen Gefallen… und Du musst Dich entscheiden, wie Du das angehen sollst. Aber als Belohnung winkt ihr leckerer Erdbeerkuchen, außerdem sind wir doch alle Herausforderungen gewöhnt, oder?

Artikel

Ethik und Künstliche Intelligenz

KI bahnt sich den Weg in viele Anwendungsbereiche. Jetzt ist es wichtig, dass das auch auf verantwortungsvolle, sichere und transparente Weise funktioniert. Die Regulierung von KI-Systemen ist ein rechtliches, gesellschaftliches und technisches Thema, das ein breites Bewusstsein erfordert und in den nächsten Jahren weiter an Relevanz gewinnen wird.

Artikel

Principles of technical documentation

Artikel

Bibliotheken für Kommandozeilen­anwendungen

Kommandozeilenanwendungen in Java sind zwar, aufgrund der Startzeit der JVM, nicht die verbreitetsten. Allerdings kann die Entwicklung für interne Anwendungen, je nach Wissensstand des Teams, sinnvoll sein. Und dank der nativen Kompilierung mit der GraalVM wird die Startzeit beschleunigt. Neben der Fachlichkeit besteht ein Großteil der Arbeit einer Kommandozeilenanwendung darin, die übergebenen Argumente und Optionen auszulesen und anzuwenden. Dazu schauen wir uns vier mögliche Bibliotheken an.

Blog-Post

Awesome presentations deserve beautiful code

Occasionally we need to put parts of our source code onto slides for presentations. The common presentation programs (such as PowerPoint or Keynote) fail miserably at this task because they interpret code as normal text. Syntax highlighting is lost, as are indentations. It looks lousy, and it’s no fun. This post introduces carbon.now.sh, a quick and free solution, created by the awesome people from @carbon_app.

Blog-Post

Cloud Security

Wie schaffe ich Sicherheit in einer Cloud-Umgebung?

Artikel

Iterierst du noch, oder streamst du schon?

Worin unterscheiden sich Streams und Iteratoren in Java? Man sollte denken, dass beide Ansätze dafür gedacht sind, Dinge wiederholt auszuführen, und dass Streams nur eine komfortablere Art und Weise sind, den Algorithmus auszudrücken. Die beiden APIs unterscheiden sich aber in mancher Hinsicht. Ziel dieses Artikels ist es, die beiden Ansätze zu vergleichen – zum einen mit Blick auf die Ergonomie eines Beispiels, zum anderen auf funktionale Unterschiede bei der Parallelisierung und Mutabilität.