Jan Bernecke

Jan Bernecke
Jan Bernecke ist seit 2019 Online-Redakteur bei S&S Media. Zuvor war der rugbyspielende Literaturwissenschaftler im Bereich Online-Marketing tätig.
Beiträge dieses Autors

Hearts ist Trumpf! Entwurf einer funktionalen Softwarearchitektur

Der Entwurf von nachhaltigen Softwarearchitekturen ist eine Herausforderung: Mit der Größe steigt in vielen klassisch objektorientierten Softwareprojekten die Komplexität überproportional an. Durch viel Disziplin und regelmäßige Refaktorisierungen lässt sich das Problem eine Weile in Schach halten, aber die wechselseitigen Abhängigkeiten und komplexen Abläufe von Zustandsveränderungen nehmen mit der Zeit trotzdem zu. Die funktionale Softwarearchitektur geht an die Strukturierung großer Systeme anders heran als objektorientierte Ansätze und vermeidet so viele Quellen von Komplexität und Wechselwirkungen im System.

MLOps: You rock it, you roll it! CI/CD und Operations für Machine Learning

Data Science, Machine Learning (ML) und Artificial Intelligence haben in den letzten Jahren einen wahren Hype ausgelöst und viel Aufmerksamkeit in der Industrie bekommen. Man versucht mit Machine-Learning-Methoden entweder die Produktivität der Nutzer oder die Interaktivität der Applikation zu steigern. Zahlreiche Data-Science-Teams verbringen ihre Zeit damit, Machine Learning Models zu trainieren. Allerdings beobachten wir zwei Arten von Problemen, die in der Praxis entstehen.

Finde die Ausreißer: Anomalieerkennung in Echtzeit mit Kafka und Isolation Forests

Anomalien – oder auch Ausreißer – sind in Daten allgegenwärtig. Sei es durch Messfehler der Sensoren, unerwartete Ereignisse in der Umwelt oder fehlerhaftes Verhalten einer Maschine. In vielen Fällen ist es sinnvoll, solche Anomalien in Echtzeit zu erkennen, um unmittelbar darauf reagieren zu können. Das nötige Rüstzeug dafür gibt uns die Data-Streaming-Plattform Apache Kafka sowie die Python-Bibliothek scikit-learn an die Hand.

Classic Games Reloaded: Neuronale Netzwerke spielen Tic Tac Toe

Im heutigen Artikel werde ich damit beginnen, Ihnen zu demonstrieren, wie sich neuronale Netzwerke im Rahmen der Spieleentwicklung einsetzen lassen. In diesem Zusammenhang werden wir uns zwei unterschiedliche Trainingsmethoden anschauen, mit denen sich ein untrainiertes Netzwerk in einen Meister des Tic-Tac-Toe-Spiels verwandeln lässt. Darüber hinaus werden wir auch noch auf die sogenannten Convolution-basierten neuronalen Netzwerke zu sprechen kommen, da diese nicht nur im Bereich der Objekt- und Mustererkennung wahre Wunder vollbringen, sondern auch bei komplexeren Spielen stets den Überblick über das Spielgeschehen behalten.

Jenkins-less CI/CD mit Kubernetes: Mit der Migration zu Kubernetes wird bei Jenkins alles anders

Jenkins X ist das jüngste Produkt aus dem Hause CloudBees, dem Hersteller von Jenkins. Außer dem Namen bleibt nicht viel von der weitverbreiteten Continuous-Anything-Plattform, die weitere Verwendung des Namens Jenkins ist sowohl Heilsversprechen als auch Menetekel. Zum einen versucht man wohl, die Jünger des altbekannten Butlers mitzunehmen, zum anderen schreckt man leider auch neue potenzielle Nutzer ab.

Freie Netze: Set-up eines Freifunk-Routers

In diesem Artikel sehen wir uns an, wie man einen Router für die Verwendung im Freifunk-Netzwerk vorbereitet. Das Freifunk-Netzwerk ist ein freies WLAN, das in Eigenregie aufgebaut und gewartet wird. Um das Netzwerk zu betreiben, stellen die Teilnehmer einen WLAN-Router und einen Teil ihrer Internetbandbreite zur Verfügung. Das Freifunk-Netz ist offen und kann von jedem verwendet werden. Die Freifunk-Router sind in der Lage, untereinander ein WiFi-Mesh-Netzwerk aufzubauen. Die Vorteile werden wir im Folgenden beleuchten.

C Plus Plus 20: Die Features der neuen C++-Version

Die Pflege von „in Ehren ergrauten“ Systemen ist seit jeher eine durchaus haarige Aufgabe. Die Arbeit an der neuen Ausgabe des C++-Standards erwies sich als durchaus kritisch. Bis zuletzt war nicht ganz klar, welche Erweiterungen wirklich in den neuen Sprachstandard kommen. Mittlerweile hat sich der Staub gelegt. Auch wenn ein Gutteil der Funktionen noch nicht in allen Compilern implementiert ist, ist nun ein guter Zeitpunkt, um einen Blick auf die Möglichkeiten und Grenzen der neuen Version von C++ zu werfen.

Ubiquitous Language: Warum ist Sprache so wichtig?

Ein Element, das in der gesamten Domain-driven-Design-Literatur querschnittlich präsent ist, ist die Ubiquitous Language, die allgegenwärtige Sprache. Allgegenwärtig bezieht sich darauf, dass es sich hierbei um eine Sprache handelt, die von Softwareentwickler*innen und Fachexpert*innen gemeinsam gesprochen wird. Diese Sprache soll dann auch die Basis für die Entwicklung des Softwaremodells sein. Im Rahmen dieses Artikels gehen wir erst auf die Motivation für die Etablierung einer Ubiquitous Language ein, bevor schließlich das Potenzial und die Möglichkeiten für die Arbeit mit einer solchen Sprache vorgestellt werden. Weiterhin werden noch kurz die Vorgehensweisen zur Herleitung einer Ubiquitous Language erläutert.

Starke Typen: Spannende TypeScript-Neuerungen im Überblick

TypeScript hat sich als Best Practice für die JavaScript-basierte Webentwicklung eta-bliert. Während Angular bereits seit Version 2 voll auf TypeScript setzt, kommt die typisierte JavaScript-Obermenge auch zunehmend in Angular-unabhängigen Webprojekten zum Einsatz. Das liegt am Mehrwert, den TypeScript gegenüber purem JavaScript bietet: Die statische Typisierung zeigt zur Compile-Zeit Fehler auf, zudem werden Entwickler durch Typinformationen beim Schreiben von Code unterstützt. TypeScript liegt zurzeit in Version 3.8 vor. Dieser Artikel zeigt die Entwicklung der Sprache ab Version 3.0 und stellt Neuerungen und Features vor.

Geschichte eines Filmverleihs: Reaktive Mandantenfähigkeit mit Neo4j 4.0 und SDN/RX

Diejenigen Leser, die meine Artikel, Vorträge und Posts seit längerem verfolgen, mögen mir nachsehen, dass ich ein Fan aussterbender Medienformate bin. Nach CDs und Alben jetzt Videos. Die Domäne Videos hat den Vorteil, dass Neo4j mit einem eingebauten Guide kommt, der den sogenannten Movie Graph erstellt. In den Java-Magazin-Ausgaben 7.2019, 8.2019 und 9.2019 habe ich ausführlich beschrieben, wie Neo4j lokal und auf dem Server in Betrieb genommen werden kann.

Der Teil und das Ganze: Ein 6+1-Punkte-Plan zur Erstellung einer Microfrontend-Shell

Microfrontends sind derzeit ein viel diskutiertes Thema. Nach dem Vorbild von Microservices wird dabei ein großes Frontend auf mehrere kleine aufgeteilt. Dadurch sollen einzelne Teams autark arbeiten und sogar eigene Technologieentscheidungen treffen können. Während diese Idee im Kern simpel ist, ist es die konkrete Umsetzung leider nicht. In diesem Artikel fasse ich die in verschiedenen Projekten gesammelten Erfahrungen in 6 + 1 Punkten zusammen und zeige, wie sich eine Microfrontend-Shell umsetzen lässt.

Sieben Mal daneben: Warum Continuous Delivery manchmal scheitert

Kontinuierliches Liefern (Continuous Delivery) und Infrastructure as Code sind Mainstream, oder? Zumindest behaupten viele, es zu praktizieren. Wer es nicht macht, ist draußen (neudeutsch: out) – oder zumindest ganz weit drin im Zimmer. Konsequent zu Ende betrachtet müssten wir also eine enorme Verbesserung der Liefergeschwindigkeit in unserer IT-Welt sehen – und zwar nicht nur bei kleinen Unternehmen und Projekten.