Babun: Cygwin done right!

Babun is a preconfigured Cygwin which greatly reduces the pain of working with Windows.

Today I would like to introduce you to a real life saver for people who are force to work on Windows systems. At my current place of work our whole company IT is based on Microsoft products and we use Windows all across the company. Furthermore, we do a lot of application development focusing on Windows clients.

Hence, Windows is the operating system of choice. No matter if I like it or not. In my spare time, I use a Mac and I really appreciate it. It is just the perfect mix of a solid Unix foundation and an awesome GUI. And it just works!

As I work a lot with Linux servers, too, I really like the shell and automate a lot of tedious tasks as well using plain shell scripts.

My favorite shell is Zsh in combination with oh-my-zsh. Unfortunately, on Windows and Windows 7 in special, there is no Unix like command line with Zsh by default.

Continue reading “Babun: Cygwin done right!”

Migrating from Mercurial to Git (Migrating the People)

This is the second part of my “Git migration lessons learned”. In this post I will explain how moved the people from Mercurial to Git.

XKCD: How to work with Git
XKCD 1597 (

This is the second part of my „lessons learned“ from our migration from Mercurial to Git. You can find the first part here.

Beside of the migration of the repositories itself, we kind of needed to migrate the teams also.

At first look, Mercurial and Git seem quite similar: Both are distributed version control systems, both have tags and branches and a lot of concepts are named equally.

Therefore we thought that this part would be easy, but the devil lays in detail, as always.

Continue reading “Migrating from Mercurial to Git (Migrating the People)”

Migrating from Mercurial to Git (The Technical Migration)

All project repositories in our software department were migrated to Git. Here is what I have learned from leading this migration project.

XKCD 1597 (
XKCD 1597 (

During the last year, my team and I migrated over twenty software projects and the teams, that develop them, from Mercurial to Git.

While this seamed like an easy job to me at first, I quickly realized the hidden challenges in this undertaking. In this post I will summarize our reasons, our approach and my experiences gathered in the process of migrating the code base while training the teams on the new git workflow in parallel.

This first part will concentrate on the technical migration while the second part will focus on the trainings.

Continue reading “Migrating from Mercurial to Git (The Technical Migration)”

Qmake on Steroids – Cutting Build Times by Half

In my current project at my place of work we had a serious problem: Long build times and slow unit tests.

What do I mean with long? On our Jenkins a full build with unit tests needs approx. 1:20 hours. On our developer notebooks, the build without any tests took the same amount of time.

For me, coming from the nice and beautiful Java world at the university where builds execute within seconds or at least minutes, this was incredible. Hence nobody in our team has executed all unit tests locally for a while. Even worse!

Since I was new to QT projects and hadn’t any experience with qmake, the makefile generator that comes with QT, I decided to invest a rainy weekend to see what is possible. Luckily my first successes look so promising that my team and I decided to spend even more time on build time reduction in the following sprint.

In this post I will summarize what helped us and what didn’t.

Continue reading “Qmake on Steroids – Cutting Build Times by Half”