Software Engineering Blog

Tipps und Tricks aus dem Leben eines Informatikers.

Letzte Blog Posts

Reverse Engineering a Dotnet Monitor

We reverse engineer a Dotnet Monitor in Windbg to see how it is internally implemented.

Weiterlesen …

Tune bcache for large SSDs

As SSDs are getting cheaper, low HDD / SSD ratios of 10/1 or better become an option. This article describes how to tune bcache for this scenario from an empirical perspective.

Weiterlesen …

Mailcow + Reverse-Proxy + Letsencrypt

This article is about how to use the great mailcow software behind a reverse-proxy with public certificates from the Let's Encrypt CA.

Weiterlesen …

How to include external libraries

Including external libraries in CMake projects is often a tedious and error-prone task. In this blog post I will show a common and a better and more recent approach.

Weiterlesen …

Virtualization is not HA

Running software (single instance) in a multi-node cluster might reduce downtimes due to planned maintenance, as the VM can be live-migrated to another node prior to that. This in fact increases the availability of the instance. However this only holds for planned events.

Weiterlesen …

Block Puzzle Solver

This program solves the 5x5x5 brick-cube-puzzle in less than one second using a sophisticated algorithmic approach.
The implementation is both highly efficient as well as easy to understand.
The presented techniques are suited for many optimization problems and also can be used for educational purposes.

Weiterlesen …

To free or not to free in C

In the programming language C the programmer is responsible for handling the (heap) memory allocations.
This means, whenever memory is allocated on the heap using e.g. `malloc`, the programmer has to ensure that this allocation is released to the OS again. But does this always hold?

Weiterlesen …

Why git squash merges are bad

Using Github's squash merge feature seems to be perfect to transform a wast amount of commits made during development of a feature into one single and tidy one. However this only holds in theory.

Weiterlesen …

Using CMake to resolve dependencies

Why you should use CMake to resolve transitive dependencies when implementing a C/C++ library.

Weiterlesen …

SSD caching using Linux

This tutorial focuses on how to speed up random accesses on a disk array using a spare SSD and bcache. As filesystem on top of the cache, BTRFS is chosen.

Weiterlesen …

Rsync beschleunigen

Rsync ist ein sehr praktisches Kommandozeilen Werkzeug zum Kopieren von Daten. Leider ist die Performance jedoch nicht immer optimal. Hier zeige ich ein paar Möglichkeiten, die maximale Kopiergeschwindigkeit zu erreichen.

Weiterlesen …

Launch der neuen Website

Wie heißt es so schön: Alles neu macht der Mai. Zwar ist es jetzt erst Mitte Februar, aber die Arbeiten an der neuen Website sind tatsächlich schon so gut wie abgeschlossen.

Weiterlesen …

Windows in Virtual Machine migrieren

Einfache Möglichkeit, ein bestehendes Windows System in Virtual Disk zu migrieren.

Weiterlesen …

Blog Eröffnung

In den nächsten Wochen werde ich hier über vieles rund um Bits und Bytes schreiben.

Weiterlesen …