All blog posts

All posts without the reviews in chronological order with newest first. This page does no

Generated Image

Using AI in your own web app

Apr 12, 2023

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.

Sep 13, 2022

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.

May 18, 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.

Apr 23, 2021

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.

Apr 02, 2021
Ray tracer in Kotlin

The Ray Tracer Challenge in Kotlin

Jan 10, 2021

Update of my website to Bootstrap 5

I updated my website so that it looks new and shiny and provides faster and easier access.

Dec 29, 2020

Coroutines in Kotlin and Go in iX Developer - "Weniger warten, asynchron arbeiten"

iX Developer 1/2019
Dec 01, 2019

Migrating a ray tracer from Java and Groovy to Kotlin (part 3)

I continued to work on migrating my ray tracer to Kotlin. Now the scenes can be specified with a Kotlin DSL and all Groovy code is gone.

May 25, 2019
Weniger warten, asynchron arbeiten

Coroutines in Kotlin and Go on heise Developer

May 06, 2019
Jörn Dinkla at the parallel 2019 conference

Talk about coroutines in Kotlin at the parallel 2019 conference

Feb 21, 2019

Machine learning library 'cuDNN' explained in iX Developer

Unter der Haube - cuDNN schafft die Grundlage für Deep Learning mit GPUs
Dec 01, 2018

Migrating a ray tracer from Java and Groovy to Kotlin (part 2)

I continued to work on migrating my ray tracer to Kotlin.

Oct 06, 2018

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.

Feb 25, 2018

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.

Jul 22, 2017
Program of the parallel 2017

Talk about GPU computing with CUDA and OpenCL

Apr 04, 2017

Working for ThoughtWorks

After long considerations i decided to quit being a freelancer and joined ThoughtWorks in Hamburg, Germany.

Feb 01, 2017

CUDA 8.0 on Mac OS/X

CUDA 8.0 on Mac OS X 10.12 gave me the following error:

Nov 30, 2016

Updated library of geometric algorithms

Today I released an updated version of the library of geometric algorithms.

Nov 22, 2016

Folien des Kurzvortrag 'Verbreitung von Familiennamen'

Die Folien für den Kurzvortrag beim Kultur-Hackathons Coding da Vinci Nord 2016 sind jetzt online.

Nov 11, 2016
Graph von Familiennamen

Visualisierung von Familiennamen mit Node, Angular und D3 für Coding da Vinci Nord 2016

Nov 10, 2016

Using a __device__ lambda in CUDA 8.0

In CUDA 8.0 C++ 11 lambdas can be used on the device. See the following code.

Sep 30, 2016

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.

Jun 27, 2016

Die ‚komplexe‘ Perspektive - Kurzvorstellung

Eine Kurzvorstellung des Buchs “Die ‚komplexe‘ Perspektive”.

Feb 16, 2016

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?

Feb 13, 2016

Gehen Firmen zu optimistisch in die nächste Krise? (Teil 4/4)

Es ist sicher, dass es eine nächste Krise geben wird [1], nur der Zeitpunkt ist offen [2]. Wie überlebt man als Firma eine solche Krise?

Jul 24, 2015

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?

Jul 23, 2015

Die Vorhersage von Wirtschaftskrisen (Teil 2/4)

Im letzten Artikel [1] habe ich erklärt, warum eine Festsetzung des Leitzins eine Krise hervorruft. Es ist also sicher, dass eine Krise kommt, aber kann man den Zeitpunkt vorher bestimmen?

Jul 22, 2015

Wirtschaftskrisen: Manipulation des Leitzins löst Boom & Bust aus (Teil 1/4)

Seit dem Anfang der letzten Wirtschaftskrise am Ende des Jahres 2008 beschäftige ich mich in meiner Freizeit mit der Ursache dieser Krisen, wie man sie vorhersagen könnte und welche Folgen sie haben.

Jul 21, 2015

Folien: 'Geschäftsmodelle - Ein kurzer Überblick'

Folien zu einer Einführung über Geschäftsmodelle und Geschäftsmodellmuster.

Jul 15, 2015

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.

Jul 15, 2015
Ambient Occlusion example

Ray tracing with Groovy and Java

Jul 08, 2015

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.

Jul 06, 2015

Covariance and Contravariance in Scala

I explain "covariance and contravariance" with some simple Scala examples.

Jul 06, 2015
Map of the USA using the LBNN

k-d-trees with Apache Spark and Scala

Jul 02, 2015
Using Elasticsearch with Spring Boot - Analyzing the emails with Kibana

Using Elasticsearch with Spring Boot - Analyzing the emails with Kibana

This is the last part in a series of four. It shows how to analyse the emails with Kibana.
May 28, 2015

Using Elasticsearch with Spring Boot - Technical background

This is the third part in a series of four. It explains the technical background.

May 27, 2015
Using Elasticsearch with Spring Boot - Installation and Usage

Using Elasticsearch with Spring Boot - Installation and Usage

This is the second part in a series of four. It shows installation and usage.
May 26, 2015
Spring Boot and Elasticsearch

Using Elasticsearch with Spring Boot

This article shows how to use Elastiksearch database with Spring Boot. It is the first in a series of four.
May 25, 2015

Heat diffusion on multiple GPUs

The implementation of the heat diffusion equation on multiple GPUs is explained in the talk (in german).

May 05, 2015

Measuring traffic on the PCI Express Bus (PCIe)

During my talk at the parallel 2015 conference i was asked how one can measure traffic on the PCI express bus. For multi GPU computing it is very important to control the amount of data exchanged on the PCIe bus.

Apr 24, 2015
Multi-GPU-Computing: Eins, zwei, drei, ganz viele

Vortrag auf der parallel 2015

Apr 24, 2015

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.

Apr 04, 2015

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.

Mar 06, 2015

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".

Mar 03, 2015
Tipps & Tricks für den erfolgreichen Einsatz von GPU-Computing

Vortrag auf der parallel 2014

May 07, 2014

Zwei Artikel in iX Developer: GPU Computing mit CUDA

"Massiv parallel - Grundlagen der GPU Programmierung"

"GPU-Programmierung in der Praxis mit CUDA"

iX Developer 01/2013
Feb 01, 2013
GPU-Computing mit CUDA und OpenCL in der Praxis

Vortrag auf der parallel 2012

May 25, 2012
Slides: 'Introduction to Parallel Computing'

Slides: 'Introduction to Parallel Computing'

Dec 12, 2011

Technical proofer of 'OpenCL in Action'

The OpenCL standard is not always easy and the technical proof was a challenge, because the code had to run on different os'es and platforms.

OpenCL in Action
Dec 03, 2011

Using Scala and TestNG with Gradle

During the christmas holidays i tried out Scala and TestNG with Gradle.

Dec 30, 2010

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.

Apr 07, 2010

Spalten-orientierte Datenbanken

Von 2002-2006 habe ich bei einem kanadischen Hersteller einer spalten-orientierten Datenbank gearbeitet.

Feb 01, 2010

CUDA Real-Time Ray Tracer

During the christmas holidays i rewrote my ray tracer for the NVIDIA CUDA architecture.

Jan 03, 2010
Schulung: 'Testgetriebene Entwicklung mit JUnit 4'

Schulung: 'Testgetriebene Entwicklung mit JUnit 4'

Oct 11, 2009
Schulung 'Subversion'

Schulung 'Subversion'

Oct 10, 2009
Schulung 'Ant im Detail'

Schulung 'Ant im Detail'

Oct 09, 2009

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.

Sep 28, 2009
Hyper-Threading with the Intel Core i7

Hyper-Threading with the Intel Core i7

I have got a new computer. As alway i build it myself. How much faster is it?
Jun 14, 2009

Parallelization with Haskell - Easy as can be

The functional programming language Haskell provides a very easy way of parallelization.

Jun 07, 2009
Real-Time RayTracer running on Intel Core i7

Real-Time RayTracer running on Intel Core i7

I tested my ray tracer on Intel Core i7 920 @2.67 MHz.
Jun 04, 2009
Real-Time RayTracer running on Core 2 Duo

Real-Time RayTracer running on Core 2 Duo

I tested my ray tracer on my Mac Book Pro.
May 24, 2009
Parallelization with the Cell Broadband Engine

Parallelization with the Cell Broadband Engine

I wanted to learn about the cell broadband engine in the Playstation 3 and wrote a parallel ray tracer for it.
May 19, 2009

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.

Feb 19, 2009

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.

Feb 27, 2008

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.

Feb 27, 2008

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.

Feb 01, 2008

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).

Jan 27, 2008

6th place at the Dynamic Languages Shootout at OOP 2008

The challenge was to implement Scrabble® in a dynamically typed programming language. I used Groovy and Grails.

Dynamic Languages Shootout at OOP 2008
Jan 23, 2008
Writing Eclipse plugins with Groovy

Writing Eclipse plugins with Groovy

Writing plugins for Eclipse with other languages than Java is not officially supported, but there is a way to write an Eclipse plugin with Groovy only.
Jan 17, 2008

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.

Nov 29, 2007
Rapid Application Development with Groovy

Rapid Application Development with Groovy

Nov 01, 2007
Using EMF with Groovy

Using EMF with Groovy

This article shows how Groovy can be used with the Eclipse Modeling Framework (EMF).
Oct 22, 2007
Editor for the Common Warehouse Metamodel (CWM)

Editor for the Common Warehouse Metamodel (CWM)

The Common Warehouse Metamodel (CWM) is a standard by the Object Management Group (OMG). The intention of CWM is to define a standard for metadata in Data Warehouses and Business Intelligence applications.
Oct 01, 2007

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.

Apr 11, 2006

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.

Apr 09, 2006
Eclipse-Editor for data warehousing metadata with EMF

Eclipse-Editor for data warehousing metadata with EMF

Apr 02, 2006
Eclipse SQL Editor Plugin

Eclipse SQL Editor Plugin

Mar 07, 2006
The Graphical Editor Framework (GEF)

Graphical Editors with Eclipse

May 10, 2005

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.

Jan 02, 2005

Bibliothek für Geometrische Algorithmen in Haskell

In meiner Diplomarbeit habe ich 1998 die Potentiale der funktionalen Programmierung bei der Implementierung von geometrischen Algorithmen untersucht. Den Source-Code habe ich veröffentlicht.

Oct 21, 1998

Geometrische Algorithmen in Haskell

In meiner Diplomarbeit habe ich 1998 die Potentiale der funktionalen Programmierung bei der Implementierung von geometrischen Algorithmen untersucht.

Diplomarbeit 'Geometrische Algorithmen in Haskell'
Oct 19, 1998

Geometrische Algorithmen in Haskell

In meiner Diplomarbeit habe ich 1998 die Potentiale der funktionalen Programmierung bei der Implementierung von geometrischen Algorithmen untersucht.

Diplomarbeit 'Geometrische Algorithmen in Haskell'
Oct 19, 1998

Dynamisches Scheduling in Realzeitsystemen

In dieser Seminararbeit für mein Hauptstudium habe ich 1996 Algorithmen für das Scheduling in verteilten Realzeitsystemen im Rahmen meines Informatikstudiums behandelt.

May 07, 1996

Optimale schnelle List-Ranking- und Präfix-Algorithmen

In dieser Seminararbeit werden optimale Algorithmen für Präfixsummen behandelt.

Optimale schnelle List-Ranking- und Präfix-Algorithmen
Feb 05, 1995

Artikel in c't

TrueColor-Programmierung der Diamond Speedstar 24x

Moduswechsel - TrueColor-Programmierung der Diamond Speedstar 24x
Mar 31, 1993