Hack-the-Planet Podcast Episode 12 available

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

Link: https://podcast.hack-the-planet.tv/2019/11/19/episode-12/

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: https://github.com/powerline/powerline
Powerline on Windows: https://medium.com/@slmeng/how-to-install-powerline-fonts-in-windows-b2eedecace58
Bash on Ubuntu on WSL: https://medium.com/@jrcharney/bash-on-ubuntu-on-windows-the-almost-complete-set-up-1dd3cb89b794
Powerline Fonts: https://github.com/powerline/fonts
Delugia Font: https://github.com/adam7/delugia-code/releases

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.

Link: https://www.cnx-software.com/2019/11/04/raspberry-pi-4-4gb-models-usb-ports-dont-work-on-ubuntu-19-10/

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

Link: https://12factor.net/

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: https://gist.github.com/aheil/6d48a77ac44c83e00666d3c49ffd7890