All blog posts
All posts without the reviews in chronological order with newest first. This page does no
Test driven development of concurrent programs in Kotlin at KKon 2022
Concurrent and asynchronous applications can be written in Kotlin with coroutines in a precise and structured way. Unfortunately, concurrency often increases the complexity and it is difficult to create bug-free and maintainable programs.
In my talk “Korrekte nebenläufige Anwendungen mit Koroutinen und TDD” at the KKon 2022 I show that test-driven development (TDD) is a solution.
Test driven development of concurrent programs in Kotlin at KKon 2022
I will talk about “Korrekte nebenläufige Anwendungen mit Koroutinen und TDD” (“Correct concurrent applications with coroutines and TDD”) at the KKon 2022.
Slides of my talk about coroutines in Kotlin at KKon 2021 Warmup
In my talk “Nebenläufigkeit mit Koroutinen strukturieren” at the KKon 2021 Warmup i explained how to structure and organize concurrent programs with coroutines in Kotlin.
Talk about coroutines in Kotlin at KKon 2021 Warmup
I will talk about “Nebenläufigkeit mit Koroutinen strukturieren” (“structuring concurrency with coroutines”) at the KKon 2021 Warmup.
Migrating a ray tracer from Java and Groovy to Kotlin (part 1)
After reading the wonderful book Kotlin in Action I started to migrate my ray tracer from Java and Groovy to Kotlin.
EuroClojure 2017 in Berlin
In my first project for ThoughtWorks the backend is written in Clojure. Since the project was in Berlin, I visited the EuroClojure 2017 which takes place in Berlin this year, too.
Working for ThoughtWorks
After long considerations i decided to quit being a freelancer and joined ThoughtWorks in Hamburg, Germany.
Updated library of geometric algorithms
Today I released an updated version of the library of geometric algorithms.
Folien des Kurzvortrag 'Verbreitung von Familiennamen'
Die Folien für den Kurzvortrag beim Kultur-Hackathons Coding da Vinci Nord 2016 sind jetzt online.
Der DAX und das Wirtschaftswachstum
Wenn man sich die Entwicklung des deutschen Aktienindex (DAX) anguckt, dann kann man nur über das scheinbar grenzenlose Wachstum staunen. Eine Wirtschaft kann aber nach dem gesunden Menschenverstand nur dann wachsen, wenn sie etwas besser macht als vorher. Wenn z. B. die Produktivität der Mitarbeiter durch den Einsatz von Software gesteigert wurde.
Die ‚komplexe‘ Perspektive - Kurzvorstellung
Eine Kurzvorstellung des Buchs “Die ‚komplexe‘ Perspektive”.
Die ‚komplexe‘ Perspektive - Einführung in die digitale Wirtschaft
Die Menschheit ist in der Informations- und Wissensgesellschaft angekommen. Kaum sind die ersten Änderungen verdaut, schon tauchen weitere Neuigkeiten am Horizont auf: das Internet der Dinge, Big Data, Data Science, intelligente Roboter und selbstfahrende Autos mit künstlicher Intelligenz.
Wie soll man diese Technologien bewerten? Welche Folgen werden sie haben?
Lassen sich die Folgen einer Krise vorhersagen? (Teil 3/4)
Die Manipulation des Leitzins durch die Zentralbanken löst viele Fehlinvestitionen aus. Diese müssen dann während einer Krise korrigiert werden [1]. Der genaue Zeitpunkt der nächsten Krise ist nicht vorhersagbar, da die Wirtschaft ein sehr komplexes System ist [2]. Lassen sich denn die Folgen der nächsten Krise vorhersagen? Lässt sich vorhersagen, wer die Krise besser übersteht als andere?
Buchvorstellung: 'Libertarian Anarchy: Against the State'
Gerard Casey ist ein Philosoph und Professor am University College Dublin. Sein Buch “Libertarian Anarchy: Against the State” beinhaltet recht kontroverse aber dafür interessante Thesen.
Kovarianz und Kontravarianz in Scala
Das Thema "Kovarianz und Kontravarianz" wird zwar auch bei Wikipedia erklärt, ich versuche es hier mit eigenen Worten und Scala.
Covariance and Contravariance in Scala
I explain "covariance and contravariance" with some simple Scala examples.
Heat diffusion on multiple GPUs
The implementation of the heat diffusion equation on multiple GPUs is explained in the talk (in german).
Trying out next-gen JavaScript now with ECMAScript 6
With Babel you can test many features of the upcoming next version of JavaScript called ECMAScript 6 now.
Examples for parallelism: ray tracer on the GPU
I tested the parallel ray tracer on all NVIDIA cards i bought. This page contains the results.
Examples for parallelism: ray tracer
I wanted to learn some frameworks for parallel computing and i decided to implement a simple ray tracer as a "visual benchmark".
Sony verprellt die ersten Fans der Playstation 3
Am 1. April hat Sony ein Update für die Playstation 3 herausgegeben, mit dem der Support für Linux eingestellt wird. Das hat viele verärgert und teilweise heftige Reaktionen und Diskussionen entfacht.
Compiling OpenCL programs on Mac OS X Snow Leopard
I installed Snow Leopard on my laptop yesterday. I was very curious about OpenCL and installed the drivers and the GPU Computing SDK from NVIDIA.
Parallelization with Haskell - Easy as can be
The functional programming language Haskell provides a very easy way of parallelization.
Little big planet and computer graphics
I am fascinated by the possibilities of modern computer graphics. It all began while playing the game Little Big Planet. It does not look like a computer game. It looks like the results of handicraft work with scissors, glue, paper, drapery, etc.
New version of the library of geometric algorithms in Haskell
Almost 10 years after the initial release, i released an updated version of the library of geometric algorithms in Haskell. It now builds with Cabal and requires the Glasgow Haskell Compiler.
Remark: This post was adapted to the new blog format in November 2016.
Memoization in Groovy with a Decorator
Memoization is a well known optimization technique to avoid repeated calculations. With dynamic programming languages like Groovy it is possible to extend the behaviour of an already exisiting class at runtime.
Dynamic Languages Shootout / OOP 2008
The german magazine JavaSpektrum organized the "Dynamic Languages Shootout" contest for the OOP 2008 conference. The challenge was to create a computer game similiar to Scrabble in a dynamically typed programming language.
Accessing EMF models with JRuby
JRuby provides access to Java packages, so it is possible to use packages created with the Eclipse Modeling Framework (EMF).
Using UML2 with Groovy
The UML2 project provides an EMF based implementation of the UML 2.x metamodel in Java. With the EMFBuilder it is possible to create and process UML2 models.
Higher order Markov chains in Ruby - Ruby Quiz #74
Here’s my second solution for the quiz No 74. It generates text with a first or higher order Markov chains. See also the first order version.
Markov chains in Ruby - Ruby Quiz #74
Here’s my solution for the quiz No 74. It generates text with a first order Markov chain.
Missbrauchserkennung mit Künstlicher Intelligenz
Von 1999 - 2005 habe ich Informationen zum Thema "Fraud detection" auf einer Webseite gesammelt. Als ich 1999 damit als wissenschaftlicher Mitarbeiter der Uni Karlsruhe anfing, gab es zum Thema "Data Science" noch nicht viel Informationen. Es hieß damals auch eher "Knowledge Discovery in Databases" (KDD) in akademischen Kreisen oder "Data Mining" in der Wirtschaft.