Posts
All posts on this blog in chronological order with newest first.
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.
Guter Roman über IT und DevOps
Im Roman “The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win” wird der Protagonist Bill gegen seinen Willen befördert und muss in seinem Unternehmen ab sofort den IT-Betrieb übernehmen, verantworten und am Laufen halten. Hierbei stößt er natürlich auf eine ganze Menge Probleme.
Spielerisch Programmieren lernen mit 'Human Resource Machine'
Mit dem Computerspiel Human Resource Machine kann man die Grundlagen der maschinennahen Programmierung spielerisch erlernen.
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.
Guter Hands-on Einstieg in Apache Spark
Wer die Grundlagen von Spark lernen möchte, ist mit dem Buch “Learning Spark” gut beraten. Mir hat besonders gut gefallen, dass das Buch sehr praxisorientiert ist und man nebenbei mit der Spark-Shell die Beispiele ausprobieren und nachvollziehen kann.
Pflichtlektüre im Bereich Security
In dem schon 2003 geschriebenen Buch “Beyond Fear: Thinking Sensibly About Security in an Uncertain World” schreibt _ Bruce Schneier_ ganz allgemein über Sicherheit. Hier ist die englische “security” gemeint und nicht die “safety”, d. h. die Zuverlässigkeit.
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.
Java MapReduce mit Hadoop
MapReduce ist ein “Korsett” und zwingt den Entwickler in enge Grenzen. Daher macht es Sinn, “MapReduce Design Patterns” zu lesen, damit man schnell die üblichen Tricks und Kniffe kennenlernt. Ähnlich ist es ja beim Lernen von anderen Paradigmen auch, wie z. B. Devide-and-Conquer oder Rekursion. Man begreift das allgemeine Prinzip schnell, man muss aber lernen, wann und wie man es am besten einsetzt.
Gute Einführung in C++ AMP
“C++ AMP: Accelerated Massive Parallelism with Microsoft Visual C++” ist eine gute Einführung in die Programmierung mit C++ AMP. Leider ist das Buch zum Zeitpunkt der Rezension das einzige Buch über C++ AMP, so dass ich es nur mit anderen Büchern über CUDA und OpenCL vergleichen kann.
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".
Nur teilweise elegant
Im ersten Teil von “The Elegant Universe: Superstrings, Hidden Dimensions, and the Quest for the Ultimate Theory” werden die Grundlagen der Relativitätstheorie und der Quantenmechanik anschaulich und mit tollen Beispielen erklärt. Es ist die beste Einführung, die ich bisher gelesen habe und klar 5 Sterne.
Mein Lieblings-Geschichtsbuch
James Gleick ist ein wahnsinnig belesener Mensch, der in diesem umfangreichen und lesenswerten Buch “The Information : a history, a theory, a flood” die Geschichte der Information und der Informationsverarbeitung darstellt. Äußerst bemerkenswert ist, dass sich der Autor in beiden “Kulturen”, den Geisteswissenschaften und den Naturwissenschaften, sehr gut auskennt.
Lesenswert, aber mit Schwächen - Rezension von “Ready Player One'
Das Buch “Ready Player One” hatte fast das Potential ein absoluter Klassiker zu werden in der Größenordnung eines “Hitchhiker’s Guide trough the Galaxy”.
Die geniale Idee des Autors ist es, 80er-Jahre-Nostalgie und ein Massively Multiplayer Online Game (MMO, MMOG) mitander zu verknüpfen und zum Gegenstand eines Romans zu machen.
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.
Hervorragende Erklärung der Krise und Ihrer Ursachen
Das Buch “Kasino-Kapitalismus” bietet einen sehr guten Überblick über die Ursachen, die zur Finanzkrise geführt haben. Die für die Krise relevanten Zusammenhänge aus der Finanzwelt werden präzise erklärt. Der Autor schlägt im letzten Kapitel auch Maßnahmen vor, um solche Krisen in Zukunft zu verhindern.
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.
Den Überblick behalten und konzentriert Arbeiten einfach gemacht
Im Zeitalter des Multi-Tasking und der ständigen Unterbrechungen ist es schwierig, seinen richtigen Arbeitsrhythmus zu finden, den Überblick zu behalten und keine Aufgaben zu vergessen oder aufzuschieben.
Eine Lösung bietet die “Pomodoro Technique Illustrated: The Easy Way to Do More in Less Time”, die der Autor in diesem Buch erklärt und mit vielen Illustrationen veranschaulicht.
Rezension von 'Complexity - A Guided Tour'
“Complexity - A Guided Tour” ist eine lesenswerte und interessante Einführung. “Komplexität” ist ein Querschnittsthema und durchzieht viele Fachbereiche, wie z. B. die Biologie (Immunsystem, Gehirn, Evolution), Wirtschaftswissenschaften, Informatik und Künstliche Intelligenz.
Ein besserer Titel wäre 'Gutes und korrektes Deutsch für Diplomarbeiten und Dissertationen'
Der Titel des Buches “Technisches Schreiben: (nicht nur) für Informatiker” ist viel zu allgemein. Der Autor betrachtet ausschließlich die akademische Seite der Informatik und auch nur die deutsche Sprache.
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.