WASD Custom Keycaps

While I went into mechanical keyboards recently, I was looking for alternative keycaps for my GK64.

Beside nice mechanical keyboards, WASD sells plenty of different custom keycap sets for your mechanical keyboard such as this homage to Portal:

For now, I can’t decide which one I like the most…




Sometimes you wish there is a better user interface for Git… And sometimes wishes become true.

Fork, a fast and friendly git client for Mac and Windows…

Fork ist an awesome project, available for free for Windows and Mac.



Hack-the-Planet Podcast Episode 12 available

With some delay, episode 12 of our podcast has made its way out of the building…



Powerline Fonts in Windows WSL

Just in case you like modding your environment as I do, you might end up as well in a situation where you SSH into a remote server or using WSL requiring Powerline Fonts. And just in case, if you are wondering what Powerline is? Here you go:

Powerline is a statusline plugin for vim, and provides statuslines and prompts for several other applications, including zsh, bash, tmux, IPython, Awesome and Qtile. 

The problem arises if your host system is Windows and you are using SSH and WSL a lot as I do.

Stanley Meng provides a condensed instruction set on how to get Powerline fonts on your Windows system up and running.

Once you installed the fonts, you can select them e.g. for WSL:

Update (2019-11-18)
While I was looking for the new Cascadia Code font providing Powerline glyphs, I was pointed to Delugia, which in fact is Cascadia Code extended with Powerline glyphs.

Powerline on Windows:
Bash on Ubuntu on WSL:
Powerline Fonts:
Delugia Font:


Fixing USB Problems Ubuntu Server on Raspberry 4

When trying to rung Ubunto Server on a Raspberry 4 with 4 GB RAM, you might end up with the same problem as me: USB is not working at all.

The cause is a kernel bug affecting 4 GB version of the Raspberry 4 Model B only. 1 and 2 GB versions are working quite fine.

The issue has been identified and it’s been found to be a kernel bug with a solution in the works that being tested. In the meantime, you can access to your Raspberry Pi 4 4GB USB ports by limiting the memory to 3GB in /boot/firmware/usercfg.txt […]

To limit the available RAM to 3 GB just add


to the usercfg.txt.



Goodby Enpass?

In our podcast, we have recently talked about Enpass, beeing “the” alternative for 1Password. Why? Because of their “Buy it, have it, use it!” policy. Even the drawback of buying the app for three platforms was absolutely acceptable.

While I still had one blog article in my queue, I moved my passwords and secrets step by step from 1Password to Enpass. While there is no decent migration path, I had to di this password by password. 250 times. Roughly.

Again, it is a one time purchase. This is good. I would be happy to pay upgrade fees from time to time.

Today (13th of November), Enpass announced on their blog their plans to switch to a subscription model as well. And here another great app goes down the drain.

I am not against subscriptions, I pay for an XBOX live subscription, Netflix subscription and even for a Microsoft Office 365 subscription. I pay for a Todoist subscription as well. So, why would I not be willing to pay a subscription for an offline password manager software app? As we talked about in the podcast, I do not expect that many features or even maintenance for the app. It’s working. There might be some bugfixes as well. But I do not expect any regularly added features that would justify a subscription (for me).

I think we will talk about this in one of our next podcast episodes as well. So stay tuned.


Twelve Factors App

What principles to follow when building modern applications? Twelve Factors Apps is a collection of best-practices.

In the modern era, software is commonly delivered as a service: called web apps, or software-as-a-service. The twelve-factor app is a methodology for building software-as-a-service apps that.

In a nutshell, it covers the following aspects:

I. Codebase
One codebase tracked in revision control, many deploys

II. Dependencies
Explicitly declare and isolate dependencies

III. Config
Store config in the environment

IV. Backing services
Treat backing services as attached resources

V. Build, release, run
Strictly separate build and run stages

VI. Processes
Execute the app as one or more stateless processes

VII. Port binding
Export services via port binding

VIII. Concurrency
Scale out via the process model

IX. Disposability
Maximize robustness with fast startup and graceful shutdown

X. Dev/prod parity
Keep development, staging, and production as similar as possible

XI. Logs
Treat logs as event streams

XII. Admin processes
Run admin/management tasks as one-off processes



Your system has run out of application memory

I am using Apple MacBooks and macOS since 2010y I have been pleased all almost all the time.

However, I have never encountered something like “Your system has run out of application memory”, I think. Until I upgraded to macOS Catalina 10.15.1

I run a machine with 8GB of RAM. I wonder where the OS consumes 7.5 GB of RAM though.

Something worth a “screenshot” to remember…


Automatically upgrading Ubuntu on WSL to the latest release

As I use multiple Windows machines, all running the identical setup of WSL (Ubunto) I wanted to keep all these instances automatically updated.

I am using Ansible scripts to set up the WSL. While all the files are hosted on the file system (\mtn\c\…) I can throw away a WSL instance and create a new one within minutes.

While many packages are not available on Ubunto 18.04 LTS, I created a small Ansible task upgrading my WSL to the latest Ubuntu version available.

  1. Start your WSL instance the very first time and run sudo apt-get update
  2. Install ansible by running sudo apt-get install ansible
  3. Make sure the Ansible scripts are located on the host system (e.g. c:\dev\…)
  4. Start your WSL instance and change e.g. to /mnt/c/dev
  5. Run your Ansible playbook as sudo

You can check your dist version with lsb_release -a:

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 19.04
Release:        19.04
Codename:       disco

The Ansible tasks can be found here.

GitHub Gist:


Waterfall Model in Agile Sizes

I am a big fan of agile methodologies at all – if done right. Therefore, in my lectures, I teach about the big misunderstandings of the waterfall model, which never was told as such by Winston W. Royce in his paper “Managing the Development of Large Software Systems”. Actually, in his original paper, he described the error-prone approach he observed at this time.

“I believe in this concept, but the implementation described above is risky and invites failure”

Eventually, Bell & Thayer called this process Waterfall the first time in their paper ”Software requirements: Are they really a problem?”. 10 years later it became a standard in the Department of Defense Standard 2167A (DOD-STD-2167A).

When reading Royce’s paper carefully you will find a lot of recommendations pointing to nowadays agile practices such as iterative development, talking to the customer, performing reviews and even DevOps approaches as the fact software should be run by those who write it. All these things mentioned by Royce are never mentioned when talking about the waterfall.

But then again, when talking about agile you probably will realize, that it is nothing else than “Waterfall” just in small sizes as illustrated by @JishuaKerievsky:

Royce’s original paper:
Paper by Bell and Thayer: