The perils of other peoples services

I created a completely self-contained reverse geo-location service which you can host yourself. Code and docker images available on github.…

Read this article

Trusted time

Time stamping is an increasingly valuable complement to digital signing practices, enabling organizations to record when a digital item—such as a message, document, transaction or piece of software—was signed.…

Read this article

Switching from Medium to Ghost

It seemed easy enough, if you already have a DigitalOcean or similar hosting provider. It all should be done in 5 easy steps. Getting the pre-built ghost image was the easy part.…

Read this article

Clean AppDelegate

The App Delegate has many responsibilites by default including crash reporting, analytics, setting up the CoreData stack, notifications etc.This breaks the Single Responsibility principle because the AppDelegate handles too many things.…

Read this article

How to use ZKP to prove set membership without exposing the set or the member

Walther WSR-16 mechanical calculator. The row of digit-wheels in the carriage (at the front), is the AccumulatorI present a simple example with a prover and a verifier who do not know each other in advance and only share data in the form of a commitment to a set. The source…

Read this article

From Swift to Kotlin and Back Again

This article is a reaction to the From Java to Kotlin and Back Again article, which I disagree with on pretty much every single point.Kotlin is popular, Kotlin is familiar if you are coming from iOS development. Kotlin gives you compile-time null-safety and less boilerplate than Java. Naturally, it’…

Read this article

Why we dropped Realm

Before we begin, I should describe why we started using Realm in the first place. Realm is fast. Really fast. At least in this comparison to SQLite + SharkORM. In most use cases, I rarely perform 10.000 select statements, and in most apps I have been a part of developing,…

Read this article