Posts in Software Development

All posts in Software Development in chronological order with newest first.

Generating dialogues with OpenAI's API

During the winter holidays I had some fun letting AIs discuss with each other about various topics. I personally like to chat with ChatGPT and challenge it (him/her) with difficult thoughts. I wondered if I can let ChatGPT argue with other instances of itself …

Dec 31, 2023

Using OpenAI's API to generate prompts for images

The advances of artificial intelligence in the last months are simply breath taking. It is now very easy to use “intelligent” APIs in your web app. In this example application the user can describe a scene in simple terms. GPT creates a fully fledged description and DALL-E 2 converts this into an image.

Apr 12, 2023
Test driven development of concurrent programs in Kotlin at KKon 2022

Test driven development of concurrent programs in Kotlin at KKon 2022

Sep 13, 2022
Coroutines in Kotlin at KKon 2021 Warmup

Coroutines in Kotlin at KKon 2021 Warmup

Apr 23, 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
Refactoring with the Mikado Method

Refactoring with the Mikado Method

Apr 02, 2020
A short introduction to Kotlin

A short introduction to Kotlin

Mar 04, 2020
Plain react, hooks and/or Redux

Plain react, hooks and/or Redux

Mar 04, 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
Concurrency in Kotlin with coroutines

Concurrency in Kotlin with coroutines

Apr 23, 2019
Jörn Dinkla at the parallel 2019 conference

Talk about coroutines in Kotlin at the parallel 2019 conference

Feb 21, 2019

Fusion of object oriented and functional programming

The fusion of Object Oriented Programming (OOP) and Functional Programming (FP) languages has become increasingly popular in recent years, with many programming languages now offering features and constructs from both paradigms.

Jan 02, 2019

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

Working for ThoughtWorks

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

Feb 01, 2017

Updated library of geometric algorithms

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

Nov 22, 2016
Graph von Familiennamen

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

Nov 10, 2016

Sehr guter Einstieg in das beste Test-Framework für die Java-Plattform

Das Spock-Framework ist momentan meiner Meinung nach das komfortabelste Test-Framework für die Java-Plattform. Da es auf der Sprache Groovy aufbaut ist es sehr ausdruckstark.

Aug 12, 2016

Reviewer of Introducing Data Science

I bought the book in early access (MEAP) and decided to help as a reviewer.

Introducing Data Science
May 31, 2016
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

Sehr gute Einführung in Scala

Scala ist ein wichtiger Meilenstein bei der Fusion von funktionaler und objektorientierter Programmierung. Diese Fusion ist noch nicht abgeschlossen, sondern ein “Entdeckungs-Prozess”, der noch ein paar Jahre andauern wird.

Jun 17, 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

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

OO mit JavaScript hervorragend erklärt

JavaScript hat einen Prototyp-basierten Ansatz zur Objektorientierung. Damit unterscheidet es sich stark von den üblichen objektorientierten Programmiersprachen, wie z. B. Java, C++ und Ruby.

Apr 04, 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

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

Fortgeschrittenes ‘git'

Ich benutze git zwar schon ein paar Jahre, wollte aber mehr Hintergrundwissen haben und komplexere Abläufe kennenlernen. Das ist dem Buch “Git in Practice” zum einen gelungen, trotzdem habe ich irgendwie das Gefühl, dass das nicht alles gewesen sein kann.

Jan 29, 2015

Zu kurzer Einstieg in PaaS

“Understanding PaaS” ist ein sehr kleines Büchlein über die Grundlagen des Cloud Computings. Es kann gelesen werden, um sehr schnell in die Thematik einzusteigen. Es ist eher für Entwickler geschrieben, als für CEOs.

Jan 27, 2015

Fast definitiver Einstieg in MongoDB

“MongoDB: The Definitive Guide” ist ein gelungener Überblick auf MongoDB sowohl aus Entwickler- als auch als DBA-Perspektive. Jedenfalls soweit ich das als MongoDB-Einsteiger mit mehr als 11 Jahren Data-Warehousing-Projekterfahrung sagen kann.

Jan 16, 2015

Reviewer of Java 8 in Action

I bought the book in early access (MEAP) and decided to help as a reviewer.

Java 8 in Action
Dec 17, 2014

“Anspruchsvolles” JavaScript

Wenn es “anspruchsvolle” Literatur gibt, dann gibt es jetzt auch “anspruchsvollen” Code. “If Hemingway Wrote JavaScript” enthält viele lustige und lehrreiche Beispiele.

Dec 17, 2014

Neuauflage erforderlich: Gutes Buch, aber leider nicht mehr aktuell

“Using OpenMP” ist eine gute Einführung und enthält ein paar gute Performancetipps.

Mar 20, 2014

Zur Zeit beste Darstellung von Patterns für Shared-Mutability

Wenn man ein wenig Systematik in seine parallelen Programmierkünste bringen will, ist “Structured Parallel Programming: Patterns for Efficient Computation”
das Buch zum Einsteigen.

Mar 11, 2014

Empfehlenswerter Klassiker in Neuauflage

Ich hatte damals 1992 schon die zweite Auflage gelesen. Seit dem hat sich sehr viel zum Positiven geändert, sowohl bei C++ als auch bei diesem „Klassiker“.

Feb 25, 2014

Guter Überblick über C++ 11

In diesem kleinen Buch gibt der Erfinder von C++ einen Überblick auf die Neuigkeiten von C++ 11 und der STL.

Feb 11, 2014

Gute Übersicht und Einführung

An “The Definitive Guide to Grails 2” kommt keiner vorbei, der Grails lernen will.

Nov 11, 2013

Sehr viel Haskell, zu wenig funktionale Programmierung

Ich habe “Learn You a Haskell for Great Good” zur Auffrischung meiner Haskell-Kenntnisse gelesen. Während meines Studiums in den neunziger Jahren war ich begeisterter funktionaler Programmierer. Meine Diplomarbeit habe ich 1997-98 über „Geometrische Algorithmen in Haskell“ geschrieben.

Oct 15, 2013

Tipps mit sehr unterschiedlicher Qualität

Das Buch “97 Things Every Programmer Should Know” besteht aus 97 Abschnitten von unterschiedlichen Autoren zu oft auftretenden Fragen bei der Softwareerstellung.

Jul 30, 2013

Erste Schritte im API Design mit C++

“API Design for C++” ist eine hervorragende Einführung in die Implementierung von APIs mit C++.

Jul 07, 2012

Empfehlenswert als Nachschlagewerk

“Patterns for Parallel Programming” ist ein wichtiges Werk für ‘parallele Programmierer’.

Feb 23, 2012
Slides: 'Introduction to Parallel Computing'

Slides: 'Introduction to Parallel Computing'

Dec 12, 2011

Gute Einführung in jQuery und das Drumherum

“Head First jQuery” ist im “Heads First”-Stil gehalten und richtet sich an Anfänger und Quereinsteiger, die bereits über Grundkenntnisse in HTML und CSS und Programmierkenntnisse verfügen.

Dec 06, 2011

Knapper Einstieg und Überblick auf Spring ROO

Das Buch “Getting Started with Roo” hat nur etwas über 50 Seiten und beinhaltet eine kurze und oberflächige Einführung in die Benutzung von Spring ROO.

Dec 01, 2011

Stellenweise sehr gut, stellenweise nicht ausgereift und zu knapp

Die Programmierung von parallelen und nebenläufigen Programmen mit Shared-Memory und Threads ist kompliziert und sehr fehleranfällig. Als Lösungsansätze wurden z. B. Software-Transactional-Memory (STM), Message-Passing-Architekturen und Aktoren-Modelle entwickelt. In “Programming Concurrency on the JVM” werden diese für die Java-Plattform vorgestellt.

Dec 01, 2011

Nur für 'Thread-Monkeys'

Mit dem Titel “The Art of Concurrency” wird ein hoher Anspruch geweckt, der nicht erfüllt wird. Der Untertitel “A Thread Monkey’s Guide to Writing Parallel Applications” wird dem Inhalt schon eher gerecht, aber auch hier gibt es noch einige Kritikpunkte.

Nov 15, 2011

Dieses Buch wird Ihnen helfen, ein besserer Programmierer zu werden

“Dieses Buch wird Ihnen helfen, ein besserer Programmierer zu werden” steht als erster Satz in der Einleitung des Buchs “Der Pragmatische Programmierer”. Und ich bin der Meinung, dass es stimmt.

Nov 04, 2011

Hervorragendes Buch für Einsteiger und Fortgeschrittene

“Ray Tracing from the Ground Up” ist ein hervorragendes Buch für Einsteiger und Fortgeschrittene. Man merkt, dass sich der Autor viele Jahre mit dem Thema beschäftigt hat und dass er selber Ray Tracer geschrieben hat.

Jan 10, 2011

Using Scala and TestNG with Gradle

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

Dec 30, 2010

Sony Alienates Early PlayStation 3 Fans

On April 1st, Sony released an update for the PlayStation 3 that discontinued support for Linux. This move angered many, sparking intense reactions and discussions.

Apr 07, 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

Groovy, EMF and UML2

I wrote the Groovy EMF builder and the Groovy UML2 builder.

These tools use the builder concept of the programming language Groovy to ease the processing of Eclipse Modelling Framework and UML2 code.

Aug 01, 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

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.

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

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

Eclipse BugDays 2007

I participated at Eclipse BugDays in July, August, September, October, and November 2007 and helped debugging the Eclipse projects JDT, PDE/UI, and ECF.

Dec 01, 2007

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

Geometric algorithms in Haskell

In my diploma thesis I investigate functional programming and geometric algorithms

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

Graphics programming in c't

Programming TrueColor graphics with the Diamond Speedstar 24x

Programming TrueColor graphics with the Diamond Speedstar 24x
Mar 31, 1993