Announcing NKP 0.1: Static Analysis for Kotlin Projects
I’m excited to share the first MVP release of NKP (aNalysis of Kotlin Programs), a command-line tool for analyzing Kotlin codebases and uncovering architectural insights.
All posts tagged with #jvm in chronological order with newest first.
I’m excited to share the first MVP release of NKP (aNalysis of Kotlin Programs), a command-line tool for analyzing Kotlin codebases and uncovering architectural insights.
I’ve written a new article for JavaSpektrum: “Java im Technology Radar – Totgesagte leben länger”. The piece looks back at Java’s journey through the eyes of the Thoughtworks Technology Radar...
I’ve written an article for JavaSpektrum 2/2025 about Structured Concurrency in Java 24. The article covers JEP 499, Java’s fourth preview of Structured Concurrency, which aims to make concurrent programming...
At a client of ThoughtWorks I gave a talk about the advantages of Kotlin.
Coroutines are a “new” way to handle concurrency on the JVM. I gave an introduction to coroutines in Kotlin at Thoughtworks. This is basically the translation of the german slides....
Coroutines are a “new” way to handle concurrency on the JVM. At the para//el 2019 conference, I gave an introduction to coroutines in Kotlin.
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,...
In my opinion, the Spock Framework is currently the most convenient testing framework for the Java platform. Since it is built on the Groovy language, it is very expressive.
While I was reading the excellent book by Kevin Suffern "Ray tracing from the ground up", I implemented a ray tracer in Java and wrote a DSL in Groovy, to...
The topic of covariance and contravariance is explained in many places (including Wikipedia). This post is my attempt to explain it in my own words, using Scala.
I explain "covariance and contravariance" with some simple Scala examples.
This article shows how to use k-d-trees with Apache Spark.
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.
This is the last part in a series of four. It shows how to analyse the emails with Kibana.
This is the third part in a series of four. It explains the technical background.
This is the second part in a series of four. It shows installation and usage.
This article shows how to use Elastiksearch database with Spring Boot. It is the first in a series of four.
I bought the book in early access (MEAP) and decided to help as a reviewer.
An “The Definitive Guide to Grails 2” kommt keiner vorbei, der Grails lernen will.
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.
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...
During the christmas holidays i tried out Scala and TestNG with Gradle.
This training teaches test-driven development with a focus on JUnit 4. Other frameworks such as JUnit 3 and TestNG are briefly introduced as well (as of 2009).
Apache Ant offers a lot of capabilities that many teams never end up using. This training dives into Ant’s more advanced features (as of 2009).
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...
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...
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...
JRuby provides access to Java packages, so it is possible to use packages created with the Eclipse Modeling Framework (EMF).
The challenge was to implement Scrabble® in a dynamically typed programming language. I used Groovy and Grails.
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.
I participated at Eclipse BugDays in July, August, September, October, and November 2007 and helped debugging the Eclipse projects JDT, PDE/UI, and ECF.
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.
While i was cleaning up my hard disk on my Linux in 2007, i needed a program that displays the disk usage graphically. I didn't find a suitable one on...
This article shows how Groovy can be used with the Eclipse Modeling Framework (EMF).
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.
When i first heard of the Eclipse Modeling Framework (EMF) i got really excited, i tried it out and i wanted to use it.
I wanted to find out how hard it is to build a language editor in Eclipse. Back then I didn’t know of any open-source SQL editor (and there wasn’t one...
Over Christmas 2004, I built an EMF plugin for family trees. Around Easter 2005, I finally found the time to develop a GEF-based editor for it.