Publications

Articles published in journals and on blogs



2020

Continuous Delivery to Maven Central with Travis CI

Kubernetes AppOps Security Part 4: Security Context (2/2) – Background

Docs As Code - Continuous Delivery of Presentations with reveal.js and Jenkins - Part 2

Kubernetes AppOps Security Part 3: Security Context (1/2) – Good Practices


 

2019

Kubernetes AppOps Security Part 2: Using Network Policies (2/2) - Advanced Topics and Tricks

Querying docker image sizes via the command line

Kubernetes AppOps Security Part 1: Using Network Policies (1/2) - Basics and Good Practices

Docs As Code - Continuous Delivery of Presentations with reveal.js and Jenkins - Part 1

Generating a hard-coded build number/version name in your Java app

GraalVM (a bit) beyond Hello World

Short comparison: Building Graal Native Images with Quarkus, Micronaut and Helidon

Continuous Delivery with Sonatype Nexus, Jenkins and the Cloudogu EcoSystem


 

2018

Coding Continuous Delivery with Jenkins Pipelines

Coding Continuous Delivery — Static Code Analysis with SonarQube and Deployment on Kubernetes et al. with the Jenkins Pipeline Plugin

Coding Continuous Delivery – Helpful Tools for the Jenkins Pipeline

Coding Continuous Delivery – Performance optimization for the Jenkins Pipeline

Coding Continuous Delivery – Jenkins pipeline plugin basics

The pragmatic migration to JUnit 5


 

2017

More sutainable Android Software with Project Treble and 6-y LTS Kernels on Android O?

Android Logging for Java Professionals – SLF4J and Logback in Android

Android Logging for Java Professionals – SLF4J - Logback in Android

Android 7 (Nougat) on a 5-year-old phone

Jenkins Pipeline plugin: code completion in IntelliJ

Automatic checks for vulnerabilities in Java project dependencies

Automatic checks for vulnerabilities in Java project dependencies


 

2016

Maven: Create a more sophisticated build number

Version names with Maven: Reading the version name

Version names with Maven: Creating the version name


 

2015

Building GitHub projects with Jenkins, Maven and SonarQube 5.2 on OpenShift

Using Custom Maven / JDK version when building with Jenkins on OpenShift

Building GitHub projects on Jenkins slaves on OpenShift

Modernizing android UIs part 2: design support library, switches, action buttons

Modernizing android UIs part 1: Migrating from Actionbarsherlock to Material Design

iTunes: Exporting playlists with relative paths

Migrating from Songbird/Nightingale to iTunes

Building GitHub projects with Jenkins, Maven and SonarQube 4.1.1 on OpenShift


 

2014

Moving from Google Code to GitHub: Migrating the wiki

Maven: Create a simple build number

Synology: Backup and restore encrypted folders


 

2013

Android apps – nusic: Find New Music Albums

Automatically downloading/backing up/dumping/exporting databases from remote hosts via the web

JSF: Displaying FacesMessages during render response phase

Android: Custom Rom – Installing Google Play only (Customize GApps)

Raspberry Pi: What to do if SD card doesn’t work

Hibernate: Write SQL to a specific logfile (without additional framework)

Songbird/Nightingale: Improving search performance

NAS: Downgrading DSM (DS213+)

Songbird/Nightingale: Using Songbird database in Nightingale

Songbird/Nightingale: Exporting playlists

Microsoft Robocopy vs Linux NAS: Robocopy Pitfalls

NAS: DS213+ & WD20NPVT – 3. Performance and Encryption

NAS: DS213+ & WD20NPVT – 2. Power Consumption

NAS: DS213+ & WD20NPVT – 1. Conclusion


 

2012

Shutting down JUnit tests “gracefully” in eclipse

Running Windows batch files from eclipse using workspace-relative paths

Using Unix command-line tools in the Win32 console

Generating and customizing JUnit and Code Coverage reports with Ant