Welcome to my home page
This is the place where I publish articles about my findings and progress in the awesome world of technology and beyond! Also, check out my projects or get in touch.
My latest articles //
Compliance checks in your IDE, Git hooks or CI
In this article I compare several approaches for running compliance checks, like validating Git commit messages with a regular expression, or linting your code. I explain how these checks can either run in your IDE, in a local pre-commit hook, a remote pre-receive Git hook, or as part of your CI pipeline. I compare these four execution environments and provide…
Book recommendation: Release It! – Design and Deploy Production-Ready Software
In this book recommendation, I review the second edition of the book Release It! Design and Deploy Production-Ready Software by Michael Nygard, released in 2018. I also offer my 27 page summary of the book as free download. Introduction A common misconception is that the majority of the costs in a software-based project is allocated to staffing, e.g. for your deveopment…
Docker portability: 6 important caveats and pitfalls
In this article I present 6 kinds of real-world Docker portability issues, where Docker-based software does not run or build the same way on two different machines. Introduction to Docker portability When I started learning about Docker several years ago, I was very enthusiastic about its promise of portability: write your software and Dockerfile once, then run it anywhere. A…
Digital tool efficiency – how to maximize your computer productivity at work and at home
This guides provides ideas and techniques for using your digital (software) tools more efficiently (via keyboard shortcuts) and effectively (by discovering useful features). I present a 3-step process that starts with collecting the digital tools you use, then researching efficiency/effectivity tricks, and finally adopting them in daily life. Introduction Knowledge work today makes heavy use of digital tools. No matter…
Synchronize two Outlook calendars with Microsoft Power Automate
Having multiple calendars that are not synchronized often causes scheduling issues. To solve this problem, this post offers a Microsoft Power Automate flow to synchronize two Outlook calendars, as well as pseudo code of the synchronization algorithm. I explain the approach, and how it evolved from previous iterations (including their shortcomings). Introduction Managing your calendar events and availability at work…
Docker image analysis and diffing: what, how and why
In this article I present two tools that help you with a Docker image diff or Docker image analysis: “dive” and the slim.ai Docker Desktop extension. I explain use cases for which you need these tools, and I show screen shots that illustrate their usage. Introduction Docker images (or more generally: OCI images) have become a standard packaging format for…
Go vs. Python: an introduction to Go for senior (Python) developers
In this article I compare the programming languages Go vs. Python. I highlight 3 similarities and 12 differences. This comparison is written for senior developers, but it is not exclusively limited to Python developers: everyone with a OOP-language background (like Java or C++) will benefit. I also provide tips regarding learning resources you should start with. Introduction I recently learned…
Docker build cache: debug techniques
The Docker build cache avoids rebuilding those parts of a Docker image that were already built. Unfortunately, cache misses are hard to debug. In this article I explain three frequent yet unexpected reasons for cache misses, with solutions. One of them is that COPY or ADD statements are rebuilt, because files have changed. To diagnose the exact files, I present…
Infrastructure testing for Ansible playbooks and roles: an introductory guide
This article demonstrates how you can do infrastructure testing for Ansible roles and playbooks. I explain how the tools Vagrant and Molecule+Docker let you easily provision temporary VMs or Docker containers in which you can experimentally run your Ansible roles/playbooks, or even run unit testing in Continuous Integration. Introduction to infrastructure testing Ansible is a CLI tool that provisions other…
Ansible introduction: the definitive guide to provisioning with Ansible
This Ansible introduction explains what Ansible is and how it works. I explain the most important concepts and demonstrate them by example. I go into common pitfalls, such as installing Ansible, handling secrets, or getting reproducible projects. Ansible introduction Ansible is a CLI tool that provisions other machines. Here, provisioning refers to installing and configuring software on other machines. A…