Kiosk-Artikel

Mehr Flexibilität: Hartkodierten Code verringern

Die Verwendung von hartkodiertem Code geht wesentlich einfacher von der Hand: Man muss fürs Erste weniger überlegen, da der Code nur im Hier und Jetzt läuft. Zukünftige Änderungen werden mit dieser Technik hingegen erschwert. Sobald der Code um neue Funktionen oder Datentypen erweitert wird, muss er erst überarbeitet werden. Wir zeigen, mit welchen Bibliotheken, Klassen und Techniken sich hartkodierter Code reduzieren lässt.

Legacy mit DDD verbessern

Legacy-Code treibt die Entwicklungskosten in die Höhe und führt dazu, dass wir diese alten Softwaresysteme nicht mehr gerne anfassen. Ist das unvermeidbar? Können wir etwas tun? Mit Domain-driven Design (DDD) haben wir ein Werkzeug zur Hand, um Legacy-Code Schritt für Schritt wieder in den Bereich beherrschbarer Wartungskosten zu bringen.

Cloud-Services zum Entwickeln und Testen von mobilen Apps

Geräte- und plattformübergreifende Entwicklung ist angesagt, zum Beispiel mit Xamarin oder NativeScript. Möchte man Apps für mehrere Systeme erstellen, benötigt man die passende Systemumgebung aus Entwicklungsrechner und Testgeräten. Statt echter Hardware können Lösungen aus der Cloud helfen.

Classic Games Reloaded: Klassische KI gegen neuronales Netzwerk – Runde 1

Spieleklassiker erfreuen sich heutzutage einer großen Beliebtheit unter KI-Forschern und Programmierern, da die einfach strukturierten Spielewelten unter anderem ideale Testumgebungen für die Erforschung und Entwicklung von künstlichen neuronalen Netzwerken darstellen. Selbstverständlich werden auch wir uns diesem Trend nicht verschließen. Da wir jedoch die KI-Routinen unserer Spiele nicht von jetzt auf gleich völlig umkrempeln können, werden wir uns in diesem Artikel zunächst einmal mit den grundlegenden Aspekten von einfachen neuronalen Netzen beschäftigen.

Tutorial: Migration von Swing auf JavaFX

Obwohl JavaFX 2.0 bereits 2011 [1] erschienen ist, verfügen etliche Java-Anwendungen noch über eine Java-Swing-Oberfläche, so auch die Back-up-Software Areca oder MediathekView, die Sendungen der öffentlich-rechtlichen Rundfunkanstalten zum Download anbietet. Da Oracle JavaFX als Nachfolger von Swing betrachtet, zeigen wir, wie ein Umstieg auf JavaFX erfolgen kann. Das Tutorial berücksichtigt das Model-View-Controller-Pattern (MVC), auf dem Anwendungen mit grafischer Oberfläche üblicherweise basieren.

Classic Games Reloaded: Klassische KI gegen neuronales Netzwerk – Runde 1

Spieleklassiker erfreuen sich heutzutage einer großen Beliebtheit unter KI-Forschern und Programmierern, da die einfach strukturierten Spielewelten unter anderem ideale Testumgebungen für die Erforschung und Entwicklung von künstlichen neuronalen Netzwerken darstellen. Selbstverständlich werden auch wir uns diesem Trend nicht verschließen. Da wir jedoch die KI-Routinen unserer Spiele nicht von jetzt auf gleich völlig umkrempeln können, werden wir uns in diesem Artikel zunächst einmal mit den grundlegenden Aspekten von einfachen neuronalen Netzen beschäftigen.

Die Golumne: In die Ferne schweifen

Wir haben inzwischen 2020 und die Softwareentwicklung hat sich in mehreren Schritten von großen Programmen mit kompletter Funktionalität in einem System hin zu Microservices in verteilten Landschaften entwickelt. Das ist durch die Aufteilung in fachliche Komponenten, die leichtere Skalierbarkeit und eine bessere Hochverfügbarkeit eine spannende Veränderung. Dass damit auch neue Herausforderungen geschaffen werden, sei nicht verschwiegen. Das Design ändert sich, Netzwerklatenzen und -ausfälle werden zu eigenen Problemen und für die Verteilung muss ich mich auf weitere Plattformen einlassen. Hier hilft beispielsweise das leistungsfähige Kubernetes, das soll an dieser Stelle aber nicht das Thema sein.

Durch-, Rum- oder Reinreichen? Advanced Vue: Datenfluss und Dependency Injection

Was soll denn dieser Titel schon wieder? Wie sich im weiteren Verlaufe dieses Beitrags herausstellen wird, handelt es sich durchaus um eine passende Etikette, um den ersten Teil unserer Serie über fortgeschrittene Themen rund um Vue einzuleiten. In diesem Beitrag geht es um die Frage der Kommunikation und des Datenflusses zwischen den Komponenten einer Vue-Anwendung und wie Dependency Injection hier eingesetzt werden kann.

Domino statt Puzzle: CI/CD richtig umsetzen

Schneller, besser, zuverlässiger ist heute eine Kernanforderung an die Softwareentwicklung. Continuous Integration und Continuous Delivery versprechen, alle Aspekte gleichermaßen zu adressieren und dass man dabei keinerlei Einbußen hinnehmen muss. Der Weg dahin ist allerdings steinig und hat weitreichende Folgen für das gesamte Unternehmen. Julian Fish von Micro Focus erklärt die weitreichenden Stolperfallen und Fragestellungen, denen sich Unternehmen bei der Implementierung stellen müssen.

Golumne Spezial: Go 1.14 ist da – das beste Release ever

Kurz nach dem 10. Geburtstag erscheint im bekannten Rhythmus ein neues Release der Sprache Go. Während die Hauptversion weiterhin die Nummer 1 trägt, um das Halten des Sprachstandards zu dokumentieren, erreicht der Gopher nun die Unterversion 14. Und wie schon zuvor enthält sie so einige kleine, aber feine Verbesserungen, die zur Reife der Sprache beitragen.

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.