Tim Zöller
Founder @ lambdaschmiede GmbH
Gründer @ lambdaschmiede GmbH
Mainz, Germany
Actions
Tim founded the company lambdaschmiede GmbH. He helps his clients to digitalize their manual business processes with Java and is a co-founder of the Java Usergroup Mainz. In his free time, he accumulates new side projects with Java and Clojure and sometimes even finishes one of them.
Tim hat das Unternehmen lambdaschmiede GmbH gegründet. Er hilft Kunden dabei, ihre manuellen Geschäftsprozesse mit Java zu automatisieren und ist Mitgründer der Java Usergroup Mainz. In seiner Freizeit häuft er neue Nebenprojekte mit Java und Clojure an, und beendet sogar ab und zu eines davon.
Area of Expertise
Topics
Operaton - Eine lokale Workflow-Engine für Java de
Das Angebot an Workflow-Engines für Software-Entwickler:innen wächst stetig. Mit der steigenden Anzahl an Projekten wird das Feld für Einsteiger:innen leider immer unübersichtlicher. Mit dem wachsenden Markt verschiebt sich auch der Fokus der Maintainer:innen stetig weg von Tools und Libraries für Entwickler:innen, wie z.B. jBPM oder Activiti, hin zu Workflow Engine Suites mit Fokus auf Low Code, No Code, Robotic Process Automation und AI, oft als zentrale Applikation in der Cloud gehostet. Diese richten sich an größere Unternehmen, die ein übergreifendes Prozessmanagement einführen wollen. Was können wir also tun, wenn wir in unserer ansonsten leichtgewichtigen Java-Anwendung lediglich Unterstützung für Geschäftsprozesse benötigen?
In diesem Deep Dive betrachten wir, wie wir Operaton, eine Open Source Prozessengine, als Bibliothek in unsere Java-Applikation einbinden können und wie uns dies bei der Entwicklung unterstützen kann. Dabei lernen wir die Grundlagen der Modellierungssprache BPMN 2.0, korrektes transaktionales Verhalten innerhalb unserer Applikation und warum unsere Applikation trotz Verwendung einer Prozessmodellierungssprache nicht zu einer "Low Code" Applikation wird, sondern eine vollwertige Java Applikation bleibt.
Der Process - Warum Josef K. BPMN 2.0 hätte nutzen sollen de
In Franz Kafkas Werk "Der Process" irrt der Protagonist Josef K. durch einen Gerichtsprozess, der ihn durch ein unverständliches - geradezu kafkaeskes - Gewirr von Aktivitäten und Ereignissen führt. In der von Hilflosigkeit und Angst geprägten Geschichte versucht Josef K. gegen Prozesse anzukämpfen, die er nicht verstehen kann und in die ihm der Einblick fehlt.
BPMN 2.0 (Business Process Model and Notation) ist eine Modellierungssprache, mit der wir Prozesse nicht nur transparent darstellen können, sondern die auch die Grundlage für deren Automatisierung sein kann. Sie ist ein wichtiges Werkzeug, um Prozesse, die oft über viele Systeme verteilt und schwer verständlich sind, greifbar zu machen. In dieser Session lernen wir im Livecoding die Grundlagen von BPMN 2.0, wie wir als Softwareentwickler:innen von sauber notierten Prozessen profitieren können und werden versuchen einen Teilprozess aus Kafkas Geschichte mit BPMN 2.0 und Java zu automatisieren.
Der Process - Warum Josef K. BPMN 2.0 hätte nutzen sollen de
In Franz Kafkas Werk "Der Process" irrt der Protagonist Josef K. durch einen Gerichtsprozess, der ihn durch ein unverständliches - geradezu kafkaeskes - Gewirr von Aktivitäten und Ereignissen führt. In der von Hilflosigkeit und Angst geprägten Geschichte versucht Josef K. gegen Prozesse anzukämpfen, die er nicht verstehen kann und in die ihm der Einblick fehlt. BPMN 2.0 (Business Process Model and Notation) ist eine Modellierungssprache, mit der wir Prozesse nicht nur transparent darstellen können, sondern die auch die Grundlage für deren Automatisierung sein kann. Sie ist ein wichtiges Werkzeug, um Prozesse, die oft über viele Systeme verteilt und schwer verständlich sind, greifbar zu machen. In dieser Session lernen wir im Livecoding die Grundlagen von BPMN 2.0, wie wir als Softwareentwickler:innen von sauber notierten Prozessen profitieren können und werden versuchen einen Teilprozess aus Kafkas Geschichte mit BPMN 2.0, Java und Open Source Technologien zu automatisieren.
Embrace the func - How far has functional programming come in Java? en de
In recent Java releases, the focus has often been on features known from functional programming languages. Do these additions suffice to enable functional programming in Java? And if so, what are the advantages that this paradigm brings? Is it worthwhile to use functional Java constructs in our everyday lives, or are they purely theoretical gimmicks? We will examine these questions together in this live coding session, keeping a close eye on the readability and maintainability of the resulting code, as well as how Java compares to "real" functional languages like Clojure or Haskell in this discipline.
Embrace the func - funktionale Programmierung mit Java en de
In den Java-Releases der jüngeren Vergangenheit lag der Fokus oft auf Features, welche aus funktionalen Programmiersprachen bekannt sind. Reichen diese Ergänzungen aus, um in Java funktionale Programmierung zu betreiben? Und, falls ja, was sind die Vorteile, die dieses Paradigma mit sich bringt? Lohnt es sich, funktionale Java-Konstrukte in unserem Alltag einzusetzen, oder handelt es sich um rein theoretische Spielereien? Diese Fragen nehmen wir in dieser Livecoding-Session gemeinsam unter die Lupe, wobei wir auch ein scharfes Auge darauf werfen, wie les- und wartbar der resultierende Code ist und wie sich Java gegen "echte" funktionale Sprachen wie Clojure oder Haskell in dieser Disziplin schlägt.
Ruby and Java and Python, oh my! Polyglot programs with GraalVM en de
GraalVM, that's the one with native binaries and Native Image, right? In fact, when most people hear about Oracle's virtual machine, they first think of small and lightweight programs that start in no time. Besides this prominent feature, GraalVM is also a JDK and an execution environment for polyglot programming. Within the same VM, Java, JavaScript, Ruby, R, or Python can be executed.
In this talk, we will look at use cases where we go beyond the Java horizon and use features from other programming languages and their ecosystems to always use the right tool for the job without leaving our runtime environment. The examples come from both our productive experience and our curiosity about what is possible and what makes sense.
Ruby und Java und Python, oh weh! Polyglotte Programme mit GraalVM en de
GraalVM, das ist doch das mit den nativen Binaries und Native Image, oder? Tatsächlich dürfte den meisten Menschen bei der Nennung von Oracles virtueller Maschine zuerst an kleine und leichtgewichtige Programme denken, welche in kürzester Zeit starten. Neben diesem prominenten Feature ist GraalVM aber auch ein JDK und eine Ausführungsumgebungen für polyglotte Programmierung. In der selben VM kann Java, JavaScript, Ruby, R oder Python ausgeführt werden.
In diesem Vortrag werden wir uns Anwendungsfälle anschauen, in welchen wir über den Java Tellerrand hinausschauen und Funktionen aus anderen Programmiersprachen und deren Ökosystem nutzen um jeweils das geeignete Werkzeug für die jeweilige Aufgabe zu nutzen, ohne unsere Laufzeitumgebung zu verlassen. Die Beispiele stammen hierbei sowohl aus unserer produktiven Erfahrung, als auch aus unserer Neugierde was möglich und was sinnvoll ist.
Zurück in die Zukunft! Zeitreisen mit bitemporalen Datenbanken de en
Für unsere Datenhaltung gibt es zwei Zeitachsen, welche wir Softwareentwickler mit hohem Aufwand verwalten müssen: Die Transaktionszeit und die Gültigkeitszeit eines Datensatzes. Während die Transaktionszeit festhält, wann ein Datensatz in den Speicher geschrieben wurde, sagt die Gültigkeitszeit aus, von wann bis wann ein Datensatz in der Programmlogik berücksichtigt werden soll. Treffen beide dieser Zeitachsen aufeinander, steigt die Komplexität unserer Persistierungs- und Abfragelogik oft exponentiell. Als Beispiel kann man eine rückwirkend eingetragene Gehaltserhöhung heranziehen: Einem Menschen in unserer Firma wird am 14. März eine Gehaltserhöhung gewährt, welche rückwirkend ab Januar gilt. Der Gültigkeitszeitraum ist klar, aber wie erklären wir dem Finanzamt, warum im Januar und Februar noch der geringere Betrag überwiesen wurde? Welche Gültigkeit konnten wir zur jeweiligen Transaktionszeit annehmen, und wir können wir den Fall in unserer Software nachstellen? Datenbanken welche Bitemporalität abbilden können helfen uns dabei, diese beiden Zeitachsen zu verwalten. In diesem Vortrag veranschauliche ich, wie sie benutzt werden können, welche Anwendungsfälle wir damit abbilden können und wie komplex solche Lösungen werden können, wenn wir sie uns mit Applikationslogik oder Datenbanktriggern selbst bauen.
Back to the Future! Time Travel with Bitemporal Databases de en
For our data storage, there are two time axes that we, as software developers, must manage with great effort: the transaction time and the validity time of a data record. While the transaction time records when a data set was written to storage, the validity time indicates from when to when a data record should be considered in the program logic. When both of these time axes intersect, the complexity of our persistence and query logic often increases exponentially. An example can be a retroactively recorded salary increase: An employee in our company is granted a salary increase on March 14th, which is retroactively effective from January. The validity period is clear, but how do we explain to the tax office why the lower amount was transferred in January and February? What validity could we assume at the respective transaction time, and how can we replicate the case in our software? Databases that can map bitemporality can help us manage these two time axes. In this talk, I will illustrate how they can be used, which use cases we can represent with them, and how complex such solutions can become if we build them ourselves with application logic or database triggers.
BERLIN BUZZWORDS
Back to the Future! Time Travel with Bitemporal Databases
https://program.berlinbuzzwords.de/bbuzz24/talk/HEHE38/
Digital Crafts Day 2024 - by DCN Sessionize Event
JCON WORLD 2023 Sessionize Event
CamundaCon 2020.2
microXchg 2019 Sessionize Event
Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.
Jump to top