All blog posts
All posts without the reviews in chronological order with newest first. This page does no
Who Ensures Quality in the Scaled Agile Framework (SAFe)?
As an external consultant in an Enabling Team for Cloud Architecture, I supported several teams and noticed that software development quality was lacking. This surprised me because the client was using the Scaled Agile Framework (SAFe). A quick look at the SAFe website promises that quality is built in with “build quality in.” Why was this not the case in the projects I was involved in?
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 …
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.
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.
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.
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?
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 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.
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.
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.
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.
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).
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.
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.
Fraud Detection with Artificial Intelligence
From 1999 to 2004, I collected information on the topic of ‘Fraud detection’ on my website.
When I started this in 1999 as a research assistant at the University of Karlsruhe, there was not much information available on the topic of ‘Data Science’. Back then, it was more commonly referred to as ‘Knowledge Discovery in Databases’ (KDD) in academic circles or ‘Data Mining’ in the business world.