If you have an old/insecure GPG/PGP key and want to upgrade, this blog post is for you. Such a key would be one using less than 2048 bits or using DSA encryption.

I decided that I need to change something about my GPG setup. I was still using a 1024bit DSA key from 2010 which means: Even if I create new and stronger subkeys, my signatures would forever be weak.

Since upgrading my old primary key was a non-trivial task, I'm writing this blog post for future reference by me or you.

First off: You cannot really upgrade a GPG primary key. You...

Many people and companies are using Github issues for project management. With the new projects board feature the transparency for managing a project have been greatly improved. It gives similar options to established tools like PivotalTracker or Trello - basically, you can create a basic custom Kanban board.

There’s one little UX pitfall into which I see people stepping over and over (I’m no exception here). If you’ve seen issue updates like this, you know what I mean:

The reason is that when working in the /project board/ view, the preview of an issue has “Close issue” as primary...

I use Offlineimap to download mails from various accounts to my machine where. After my last Debian upgrade, when running offlineimap, I got the following error for one of my accounts:

Establishing connection to imap.redacted.ch:993 (redacted-Remote)
ERROR: Unknown SSL protocol connecting to host 'imap.redacted.ch' for repository 'redacted-Remote'. OpenSSL responded:
[SSL: DH_KEY_TOO_SMALL] dh key too small (_ssl.c:727)
*** Finished account 'redacted' in 0:00
ERROR: Exceptions occurred during the run!

If you have the following error, let me save you some time with your favorite search engine: The reason is that "newer" versions of OpenSSL fend of a TLS attack called FREAK (Factoring RSA Export...

Es gibt wieder neue Verbesserungen und Features bei QuickShift. Natürlich profitieren Sie kostenlos davon! Hier eine Auflistung der wichtigsten Änderungen.

Schichten in den Ferien

Sicherlich ist es Ihnen auch schon passiert: Ein Angestellter, welcher an einem Wochentag immer dieselbe Schicht hat, gibt Ferien ein. Sie generieren den Einsatzplan und merken erst danach, dass dieser Angestellte, der nun in den Ferien eine Schicht zugewiesen bekommen hat.

Um dies zu vermeiden gibt es nun eine Option auf Betriebs-Ebene: Ferien von Mitarbeitenden als wichtiger einstufen als Schichten. Ist diese Option aktiviert, werden Mitarbeitende vor der Generierung automatisch aus denjenigen Schichten entfernt, bei welchen sie in...

Phil was invited to speak at the Goto conference in Copenhagen last November. By now the video has been uploaded to Youtube for everyone to enjoy:


Clojure and ClojureScript provide fine-grained control over the state of a running application. Especially when combined with a reactive front-end framework like React, features like hot-swapping code reach far beyond simple live reloading.

Applying a reactive paradigm means that changing the data updates the user interface. Clojure’s functional nature, with its strict separation of data and code, lets us use the reactive paradigm for...

If you’re a PulseAudio user on Linux, you might have experience this feature: When you change the volume in an application, it changes the system volume at the same rate.

This feature is called “flat volume” and seems to be targeted to users who do not understand the concept of a mixer. For example someone might turn up the volume of an application (i.e. Spotify or Youtube) all the way up while the system volume is very low or even at zero and wonder why “it” isn’t working.

On a first glance, this might seem reasonable. However, speaking from personal experience, it’s actually...

Due to his experience, Phil was asked to give an interview to the paper Netzwoche in which he outlines the benefits of PWAs. You can find the original article on the Netzwoche website here or download it as a PDF.

This is a copy of the article:

Mit Progressive Web Apps (PWAs) verschwimmen die Grenzen zwischen responsiven Websites und Native-Apps. Doch nicht für jeden Zweck ist eine PWA die bessere Anwendung. Wo die Stärken und Schwächen von PWAs liegen und warum offene Standards wichtig sind, erklärt Phil Hofmann, Dozent an der ZHAW und Gründer von 200ok.

Was finden Sie...

In an collaborative effort with OpnTec and FossAsia, 200ok GmbH has just open sourced all of the code of the professional live audio streaming and archiving of events platform voicerepublic.com under the GPL license.

The project was originally created in a funded company in which Phil and Alain were sharing the role of CTO. Many big publishers (i.e. Frankfurter Buchmesse, Fraunhofer Institute, Deutscher Ethikrat) have used the platform in the past to create and distribute their content in an open manner.

So here it is: https://github.com/voicerepublic/voicerepublic_dev

The ongoing plan is for OpnTec and FossAsia to build...

Recently at ClojureD, Josef introduced me to a tool which quickly rose to fame (in the JavaScript world): prettier. It is an opinionated code formatter for various languages - this paradigm probably got popular ever since Go started to ship such a formatter in the core tooling. I knew the paradigm and prettier itself from blog posts, but didn’t really try to use it so far.

Generally speaking I liked the idea of having my code automatically formatted in Emacs whilst adhering to configured linters such as eslint. However, from the docs it was much too complicated...

Excited to see that our good friends from Livingdocs are on the shortlist for the Best of Swiss Web Awards with their project for Swisscom TV where 200ok has been involved with since the end of 2017. You can read the whitepaper here: https://livingdocs.io/swisscom-whitepaper-5924

Livingdocs is a growing Startup based in Zurich. Their product is a modern Web Content Creation and Publishing System, in use at large corporations. However, if you have any use cases for CMSs (and who doesn’t?^^): Their product is also great for smaller and bigger publishers alike - you can sign up to...