Funktionale Validierung in Kotlin

Dieser Post ist der Beginn einer Reihe über funktionale Softwarearchitektur in Kotlin. Sie entstammt ursprünglich einer Zusammenarbeit der Active Group mit Blume2000, die wir bei der Entwicklung ihres Webshops beraten haben. Diesen Post habe ich zusammen mit Benedikt Stemmildt geschrieben, seinerzeit CTO bei Blume2000.

Es geht um die Validierung von Daten. Wir wollen sicherstellen, dass Objekte in unserem Programm „valide“ sind, also beliebig definierbare Konsistenzkriterien erfüllen, ohne die unsere Software nicht funktioniert.

Mein Kollege Marco Schneider hatte schon in einem früheren Post Abstraktionen dafür in Haskell präsentiert.

Die gleichen Ideen sind auch – mit Abstrichen – nach Kotlin übertragbar. In diesem Post rollen wir das Thema noch einmal neu auf, und zwar wie wir aus objektorientierter Sicht mit funktionalen Techniken helfen können. Es ist also nicht notwendig, das Haskell-Posting zu lesen. (Wir empfehlen den Post trotzdem wärmstens, da er insbesondere das Konzepts des Applicatives beschreibt, das in Kotlin unpraktikabel ist.) Kotlin-Grundkenntnisse werden allerdings vorausgesetzt.

Weiterlesen...

Das Programm für die BOB 2023 am 17.3. steht!

BOB 2023

Das Programm der BOB 2023 steht: Am Freitag, dem 17.3.2023, findet die zehnte BOB statt, endlich (hoffentlich) wieder am gewohnten Austragungsort in Berlin bei Lohmann & Birkner statt. Wir sind mit dem Programm mit vielen hochkarätigen Beiträgen überaus glücklich. Unglücklich macht uns lediglich die große Anzahl von tollen Beiträgen, die wir ablehnen mussten. Die Zahl der Einreichungen lag deutlich über dem bisherigen Rekord.

Den Eröffnungsvortrag der BOB wird Yulia Startsev halten, die aus Ihrer Arbeit im JavaScript-Komitee an Modulen berichten wird.

Danach gibt es wie immer vier Tracks - zwei Tracks mit insgesamt 14 Vorträgen und zwei Tracks mit acht Tutorials.

Die Registrierung ist eröffnet - der Early-Bird-Rabatt läuft noch bis 31. Januar 2023.

Weiterlesen...

Funktionales Deep Learning in Haskell - Teaser

Bei der Active Group entwickeln wir für Siemens eine App, die mithilfe Neuronaler Netze Anomalien in Produktionsprozessen erkennen soll. Während Python unbestritten die alles dominierende Sprache in Sachen Deep Learning ist, haben wir natürlich nach einer funktionaleren Lösung gesucht und sind dabei in Conal Elliots GHC-Plugin ConCat fündig geworden. Im ersten Teil dieser Reihe schauen wir uns an, warum ConCat eine attraktive Alternative zu gängigen Bibliotheken wie TensorFlow oder PyTorch ist, und geben einen ersten groben Einblick in die Funktionsweise von Deep Learning mit ConCat.1

Weiterlesen...

Startschuss für die BOB Konferenz 2023!

Am 17. März 2023 findet die BOB, unsere Konferenz über das Beste in der Softwareentwicklung, statt – diesmal (hoffentlich) endlich wieder in Berlin.

Die Keynote hält dieses Mal Yulia Startsev von Mozilla.

Der Call for Contributions läuft. Schicken Sie uns also (bis zum 21. November 2022) Ihren Vorschlag für einen Vortrag oder ein Tutorial - das Programmkomitee freut sich darauf!

Weiterlesen...

Eventverarbeitung mit Riemann

Riemann ist ein Stream-Processing-System, das sich hervorragend zum Sammeln und Verarbeiten von Events und Logs von Servern und Systemen eignet. Wir verwenden Riemann erfolgreich produktiv in sehr großen IT-Systemen als Kernstück für die Log- und Metrikverarbeitung und für das Monitoring.

Dabei nutzen wir Riemann zur Aufbereitung von Events und zum Weiterleiten an Langzeitspeichersysteme wie Elasticsearch, in denen diese Events wiederum durch Benutzeroberflächen wie Kibana komfortabel durchforstet werden können. Außerdem nutzen wir Riemann, um Metriken in Zeitreihendatenbanken wie InfluxDB zu schreiben; diese Zeitreihen können dann durch Benutzeroberflächen wie Grafana visualisiert werden oder können auch benutzt werden, um bei Fehlern und Problemen zu alarmieren.

Wir zeigen heute an einem Anwendungsbeispiel, wie man aus Logs mit Hilfe von Riemann Metriken extrahieren kann.

Weiterlesen...