Blog & Artikel

Blog-Post

Das Test-driven Development für eine Conversational AI

Anlässlich meines kürzlichen Wechsels vom Student zum Consultant schreibe ich in diesem zweiten Blogpost über die Thematik meiner Masterarbeit.

Blog-Post

Softwarequalität im Kontext von Wertschöpfung und Evolution

Qualitätsziele helfen, Architekturentscheidungen fundierter zu treffen. Eine Auswahl angemessener Qualitäten zu finden ist aber ein herausforderndes Thema. Qualitätsansprüche sind stark abhängig vom Betrachtungspunkt aus. Notwendige Qualitäten ändern sich zudem über die Zeit hinweg. In diesem Blog-Post möchte ich gerne eine Idee vorstellen, die helfen kann, Qualitäten im Hinblick auf ihre Relevanz besser einzuordnen. Als Basis verwende ich hierzu das ISO 25010 Qualitätsmodell sowie Wardley Mapping, mit Hilfe dessen sich Wertschöpfungsaktivitäten und die Evolutionsstufen von Softwaresystemen kommunizieren lassen.

Blog-Post

Mein Weg als Werkstudent bei INNOQ

Blog-Post

Injecting environment variables into static websites using NGINX

Static site generation is a perfect fit for publishing documentation. In a recent project, we chose to use NGINX as a web server to host the HTML and CSS files. However, we also wanted to protect the site using SSO. This is where things get a bit difficult.

Artikel

Maven, das unbekannte Wesen – Teil 2

Bereits in der letzten Kolumne haben wir uns mit vier Themen zu Maven beschäftigt. Natürlich war diese nicht erschöpfend und es gibt noch viele weitere Themen, die eine Betrachtung wert sind. In dieser Kolumne betrachten wir deswegen fünf weitere Themen, die meiner Meinung nach wertvoll sind.

Artikel

Maven, das unbekannte Wesen - Teil 1

Weiterführende Themen zum Umgang mit Maven

Artikel

Widerstandsfähigen Java-Code mit Resilience4j schreiben

Eines ist beim Betrieb von Software sicher: Fehler und unerwartete Situationen werden eintreffen. Stabile Software sorgt deswegen vor und kann auch mit solchen Situationen umgehen. Diese mit Resilienz oder Widerstandsfähigkeit beschriebene Eigenschaft kann den Unterschied zwischen einer Anwendung, die nicht mehr reagiert oder erreichbar ist, und einer darstellen, die noch ihren Dienst tut. Dieser Artikel beschäftigt sich deshalb mit Stabilitätsmustern und zeigt, wie wir diese mit Resilience4j in Java umsetzen können.

Blog-Post

Die Vielseitigkeit eines Product Information Management-Systems

PIM steht für Product Information Management und ist die zentrale Verwaltungsstelle für Produktdaten. Es ist auf vielfältige Weise nutzbar und keinesfalls nur auf wenige Branchen beschränkt. Die Einsatzmöglichkeiten sind, je nach Features und Entwicklungsstand des PIM-Systems, beinahe grenzenlos, so lang die Verwaltung von Daten und Informationen der gemeinsame Nenner ist.

Artikel

Die Top 5 der Neuerungen in Scala 3

Artikel

Machine Learning Security – Teil 2

ML kommt immer mehr in sensiblen Entscheidungssystemen zum Einsatz - z.B. in autonomen Fahrzeugen, in der Gesundheitsdiagnostik oder der Kreditwürdigkeitsprüfung. Dies bringt nicht nur neue Möglichkeiten, sondern auch neue Schwachstellen mit sich, die gezielt von Angriffen ausgenutzt werden können. In Teil 2 dieser Artikelserie beschäftigen wir uns mit verschiedenen Angriffstypen in der ML-Security-Landschaft und den dazugehörigen Lösungsvorschlägen.

Artikel

Verträge im Äther

Blockchains werden oft mit Kryptowährungen gleich­gesetzt, aber die Technologie kann mehr als Geld verwalten. „Smart Contracts" erlauben die Blockchain als Computer zu ­benutzen und ermöglichen zum Beispiel virtuelle Organi­sationen oder Non-Fungible-­Tokens (NFT). Ethereum ist der Vorreiter bei diesen An­wendungen.

Artikel

Geld im Äther

Ein kleiner Praxisleitfaden zu Ethereum-Wallets

Artikel

Den Äther programmieren

Bei Ethereum denken viele an eine Kryptowährung, dabei ­handelt es sich eigentlich um ein weltweit verteiltes Rechen­zentrum, das Programme – ­sogenannte Smart Contracts – auf einer Blockchain ausführt. Wir zeigen Ihnen, wie Sie einen solchen Smart Contract programmieren, um „Schere, Stein, Papier“ auf der Ethereum-­Blockchain zu spielen.

Artikel

Feature Flags mit FF4j, Togglz oder Unleash in Java einsetzen

Feature Flags haben mittlerweile in vielen Projekten einen festen Platz. In dieser Kolumne wollen wir uns anschauen, welche Probleme sich durch Feature Flags lösen lassen. Neben der reinen Theorie lernen wir dabei auch die drei Java-Bibliotheken FF4j, Togglz und Unleash kennen, mit denen sich Feature Flags in Java nutzen lassen.

Artikel

Machine Learning Security – Teil 1

Eine neue Herausforderung

Artikel

Quality Driven Software Architecture - Revised

Quality is the raison d’être for software architects: Our systems should be reliable, performant, scalable and user-friendly. Systems should be build and maintained cost-effective and future-proof. Every IT professional knows that this combination of characteristics means hard work. The article shows how you can methodically construct quality.

Artikel

Docker Server

Integrationstests sind zur Qualitätsabsicherung in komplexen Softwaresystemen unverzichtbar, dauern aber häufig sehr lange in der Testausführung. Hier hilft ein dedizierter Docker-Server.

Blog-Post

Test organization and naming

Artikel

Accessibility-Mythen aufgeklärt

Wer sich mit der Barrierefreiheit bzw. Accessibility von Websites und mobilen Anwendungen beschäftigt, stößt früher oder später auf Mythen, die sich in diesem Bereich hartnäckig halten und eine weitere Verbreitung barrierefreier Designs erschweren. Wir greifen fünf dieser häufig verbreiteten Mythen auf und klären auf, warum sie nicht zutreffen.

Blog-Post

What’s in a name: Legacy

The term «legacy» has a negative connotation in IT, and stands for an old, somehow bad piece of software. In real-life, legacy has a completely different and often positive meaning.

Artikel

IT-Projekte: Kostenfaktor statt Wettbewerbsvorteil

Blog-Post

Test Strategy

In our previous posts, we focused on why and how we write tests. In most of our projects, there will be many of those tests. In the last post about tests granularity, we additionally stated that there usually will be different kinds of tests, on different levels of granularity. That leads to our next topic: which kinds of tests do we need and what is the ideal mix of them?

Artikel

Innovation on steroids - Teil 2

Ging es in Teil 1 von „Innovation on Steroids” allgemein um die Innovationskraft von Machine Learning und die Identifizierung von ML Use Cases, beschäftigen wir uns im zweiten Teil mit der Frage, wie wir herausfinden, wo sich der Einsatz von ML/AI lohnt und wie wir danach strukturiert vorgehen.

Artikel

Stufe 3

Neuerungen in der dritten Version der Programmiersprache Scala

Blog-Post

Dezentralisierte Architektur: Was steckt hinter Blockchains

Befeuert von immer neuen Kurshöhen der Kryptowährungen, findet derzeit eine lebhafte Debatte über Blockchains statt. Die einen preisen die „autarken“ Währungen als Heilsbringer in Krisenzeiten, die anderen sehen im exzessiven Stromverbrauch einen Klimakiller.