Worum es bei uns geht

Dies ist eine Gruppe für alle Java Developer in und um Augsburg. Wir wollen unsere Räumlichkeiten nutzen um in einem regelmäßigen Austausch mit Menschen mit ähnlichen Aufgaben und Fragen zu haben.

Bevorstehende Events (3)

Reinforcement Learning - Ein kurze Einführung mit Tobias Steidle

Reinforcement Learning ist ein Teilbereich im Machine Learning Umfeld.
Dabei lernt ein Agent die beste Aktion für eine Situation, ohne ihm vorher eine Lösung vorzuzeigen.

In meinem Vortrag zeige ich anhand eines Beispiels
wie ein Reinforcement Learning Algorithmus implementiert wird.
Im Wechsel wird das theoretische Fundament gelegt und direkt in der Praxis angewendet.
So bauen wir Stück für Stück einen selbstlernenden Agenten auf.

Tobias Steidle ist Full-Stack Entwickler und seit über 15 Jahren in verschiedensten Branchen tätig.
Aktuell hauptsächlich im Versicherungsumfeld als Entwickler von Cloud Anwendungen (Front- u. Backend) u.a. mit Spring.
Sein besonderes Interesse gilt dem Machine Learning.
Von Computer Vision über Natural Language Processing bis zum Reinforcement Learning.

Checkt auch den Host der JUG Augsburg: www.mischok.de und den Spring Boot Blog: www.spring-boot-blog.de

Du willst Programmieren lernen? Schau bei der Mischok Academy vorbei: www.mischok.academy

Neues von microstream - Markus Kett

Benötigt einen Veranstaltungsort

Link zum Talk:
https://microstream.youcanbook.me/zoom/NRVA-IBCZ-DDAB

MicroStream ist die erste Java Persistence (Engine), mit der man beliebige Java Objekt-Graphen oder einzelne Subgraphen in einer beliebigen Storage-Lösung nativ speichern kann. Nativ bedeutet, dass der Objekt-Graph so wie er im RAM von der JVM gehalten wird, persistent gespeichert wird. Der MicroStream Ansatz unterscheidet sich fundamental vom traditionellen RDBMS/NoSQL DB-Server Programmiermodell:

1. nur noch 1 Datenmodell: Java-Klassen ohne Abhängigkeiten (POJOs)

2. kein DB-spezifisches Datenmodell mehr (Tables, Column-Store, JSON, Key-Value, DB-spezifisches Graph-/Object-Modell) - welche zu Objekt-Graphen, die wir in Java verwenden inkompatibel sind

3. überhaupt keine Mappings mehr

4. keine DB-spezifische Query Language mehr, keine klassischen Selects mehr, einfach nur Getter-Aufrufe

Objekt-Graphen im RAM lassen sich als superschnelle Java In-Memory Datenbank nutzen. Dabei ist der Objekt-Graph eine echte Multi-Model-Data-Structure, da beliebige Java-Typen wie Collections genutzt werden können. Queries: Mit Java Streams und GraphQL lassen sich Objekt-Graphen in nur Mikrosekunden durchsuchen und die Suche sogar parallelisieren. Das ermöglicht bis zu unglaubliche 1000 Mal schnellere Suchergebnisse als vergleichbare JPA-Queries und ist sogar bis zu 100 Mal schneller als das Lesen von Objekten aus einem lokalen Cache. Zusätzliche Caching-Frameworks wie EHCache sind damit ebenfalls überflüssig. Das Endergebnis ist eine ultraschnelle Pure Java In-memory Datenbank-Applikation oder Microservice mit ultraschneller Persistenz. MicroStream selbst ist eine kleine Java API, die in beliebige Java-Projekte via Maven eingebunden wird und auf dem Server, Desktops, in Container, in GraalVM Native-Images und auch auf Android benutzt werden kann.

MicroStream richtet sich an Java Entwickler, die hoch performante Datenbank-Applikationen oder Microservices mit eigener Persistenz entwickeln wollen und eine ultraschnelle, leichtgewichtige, einfach implementierbare, Pure-Java Alternative zu JPA/ORM-Frameworks wie Hibernate sowie zu heutigen NoSQL-Ansätzen suchen.

MicroStream ist bereits seit über 5 Jahren im Produktiv-Einsatz u.a. bei der Allianz SE in über 30 Ländern weltweit. 2019 wirde die erste freie Version von MicroStream veröffentlicht. Mit dem nächsten Major-Release wird MicroStream Open-Source und in Kürze Bestandteil von Helidon, Open Liberty und anderen Microservice-Frameworks.

Checkt auch den Host der JUG Augsburg: www.mischok.de und den Spring Boot Blog: www.spring-boot-blog.de

Du willst Programmieren lernen? Schau bei der Mischok Academy vorbei: www.mischok.academy

Quo Vadis JVM? Funktional coden in Java, Scala und Kotlin - Jerat & Pfleiderer

Die Bedeutung funktionaler Programmierkonzepte nimmt im Entwickleralltag immer weiter zu. Spätestens seit Java 8 sind funktionale Konstrukte zunehmend präsent. Was früher noch als "zu akademisch" oder "nice-to-have" abgestempelt wurde, bietet heute in der Praxis unverzichtbare Mehrwerte. Unveränderliche Datenstrukturen, Funktionen höherer Ordnung, Funktionskomposition und weiterführende Konzepte fördern Testbarkeit, Modularität und Wiederverwendbarkeit. Das sind alles unbestreitbare Kriterien für sauberen Code.

Die Erfahrung zeigt, dass es oftmals an der praktischen Erfahrung mit funktionalen Pattern fehlt, um diese an geeigneten Stellen korrekt zu verwenden. Auch fällt es vielen Entwicklern anfangs schwer, sich selbst von den bekannten imperativen Mustern zu lösen. Dahinter stecken eingefahrene Denkmuster, die erst einmal überwunden werden müssen. Natürlich fallen auch initiale Lernaufwände an. Denn plötzlich wird die Bedeutung von seiteneffektfreier Programmierung und referentieller Transparenz relevant. Vor dieser ersten Lernhürde schrecken viele Entwickler zu Unrecht zurück. Die Belohnung ist eleganter und prägnanter Code, der sich leichter warten lässt.

In dieser Session lernen die Teilnehmer verschiedene typische Pattern aus der funktionalen Programmierung kennen. Der Fokus liegt darauf, den Nutzen dieser Pattern zur praktischen Verwendung zu vermitteln. Für die Code-Beispiele wurden die beiden JVM-Programmiersprachen Kotlin und Scala gewählt. Jedoch können Entwickler in jeder Sprache unmittelbar von den vorgestellten Konzepten profitieren.

Florian Pfleiderer beschäftigt sich als Senior Consultant bei Digital Frontiers mit agiler Software-Entwicklung. Seine Kunden berät er in den Bereichen Architektur, Microservices und Craftsmanship.

Benedikt Jerat ist als Consultant für Digital Frontiers tätig. Seine Schwerpunkte liegen dabei auf der Softwareentwicklung im Scala-, Java- und Spring-Umfeld mit Fokus auf funktionaler Programmierung.

Unsere Speaker: www.digitalfrontiers.de/
Host: www.mischok.de
Programmieren lernen: www.mischok.academy
Spring Boot blog: www.spring-boot-blog.de
Digitalisierung: go-digital.mischok.de

Fotos (28)