Git branch typing completion and other useful stuff

June 22, 2018

Recently I was looking a way to have auto completion with git when checking out a branch. The solution was kind of obvious. The github git mirror repository has a folder containing experimental tools. One of these tools is a shell scripts that enables completion for various git sub commands. Exactly what I was looking for.


Struggle with arbitrary knowledge

June 1, 2018

This post is about a thought I wanted to process and thus wrote it down.

At work I often find myself to be exhausted from dealing with intensive thinking patterns. In my definition intensive thinking patterns are caused by issues which occur often, cannot be solved easily and require a sustainable solution. This sounds very broad, let me give you an example.


The digital bookshelf

May 14, 2018

Two years ago I’ve started to read books on my mobile device. I have skipped the whole e-reader thing and went straight from hard covers to e-books. Many doubt that you can read a book comfortably on the smart phone, but I can tell with certainty that it works well. It is only a matter of changing your habits. However, there is one thing I miss. A hard cover in a bookshelf also represents an association with your memories of the book. Whenever I see a book cover I remember the story. This does not work with virtual book covers. Memories of books I’ve read on my e-book reader fade as they move beyond the display on my phone. To solve this issue I’ve come up with a simple solution. I want to create a bookshelf poster and pin it to my bedroom wall. With this idea in mind I’ve started creating a list of books I’ve read. Now I would like to present you the tool I’ve built to create beautiful post from this book list.


SOA and microservices explained well

May 9, 2018

As mentioned to my friends many times I’m a huge fan of Hacker News and read it every day (make sure to not get fooled by the misleading name, it has nothing to do with hacking at all). It’s about IT news from various domains and sometimes from other domains of science. Today I stumbled upon an article about SOA and microservice while browsing HN. I personally struggled understanding the concept of microservices and its relations to SOA.


Using pass in teams

April 3, 2018


Pass is the standard password manager for Unix systems. It follows the Unix philosophy.

Pass saves passwords in text files and encrypts them using a gpg key. The folder structure containing the encrypted files is the pass store. Sharing a pass store without handing over the gpg key requires a gpg key exchange. Git is integrated into the pass cli and is used as version control system.

This document is a guideline for users which require access to a shared pass store and is also a documentation of how to set up a shared pass store. The first part elaborates the process of creating a shared pass store and the second part shows how collaboration from the perspective of a user looks like.


How I manage knowledge

March 23, 2018

So far I mostly posted about technical aspects of IT. Mainly solutions for particular problems. In future I would like to change that a bit. Not only because I am currently working on confidential projects, but also because I believe I have developed some ideas worth to be shared. One of those ideas is about knowledge management. While I never dealt with the topic on a research level, I made some experience while applying knowledge base solutions in different companies. Interest in this topic is probably cause because I often faced a frustrating situation. IT employees at company X were not incentivized to write documentations at all. Company X had not institutionalized a proper knowledge management. In result with employees leaving the company, knowledge got lost. Mistakes were repeated. Frustration increased. A vicious cycle.


Profiling Ansible roles and tasks

March 7, 2018

Performance is critical when deploying an environment with Ansible. By default Ansible does not tell how much time elapsed for specific role or task. However, this information would be critical to identify inefficient tasks. Luckily Ansible offers an interface for callback plugins. With the help of a callback plugin one can hook into the role or task execution call. In this post I’ll show you how to configure the callback plugins for profiling roles and tasks. It is quite easy.


Working with Ansible - Cleanup tasks

February 26, 2018

My current project is heavily based on Ansible. We use Ansible to deploy into different environments and domains. The configuration has become quite complex. That is why we need to cleanup a server from time to time. Especially when one has to upgrade services on a server and requires to get rid of the old services first. In this post I would like to show you, how we define and run Ansible cleanup tasks in our project.


Update Windows Subsystem for Linux

January 30, 2018

Today I learned that certain Ubuntu package versions are bound to the release version of Ubuntu. For example the only available version of the password store tool pass for Ubuntu LTS 14.04 (trusty) is 1.4.2-3. If you need a newer version you have to update Ubuntu first. Usually this no big deal, however, if you work with Windows Subsystem for Linux (WSL) it is a big deal. The WSL release is bound to the Windows version. In result to update a package you have to update your Windows first.


Setup SSH on Windows 10

January 19, 2018

I have started a new job and as usual had to set up a new computer. Using Windows in a Unix environment seems like a bad choice at first. However, Microsoft has changed strategy and embraced the Unix world with projects such as Windows Subsystem for Linux (WSL) or Windows SQL Server support for Linux. In result you can install bash with WSL and use the native ssh client. But there is also another way. If you install Git for Windows a ssh binary is shipped as well. This binary and other tools such as ssh-keygen are not available from the command line by default. I want show you how to fix this, setup a keypair and start using ssh in a Windows environment.