September 3, 2020

Increasing Azure AD Access Token Lifetimes

By default, Azure AD Access Tokens have a lifetime of 1hour. Especially for single page apps, it’s very inconvenient. Users have to re-login every hour. Ideally, it’s just one redirect to the login of Azure AD, and there they still are within their session, and AD redirects them back to your app. However this can still be very painful, e.g. if the user does something within your app, and gets pretty much logged out because all API calls fail due to an expired token. Read more

July 10, 2020

Managing multiple DNS zones with Terraform and Google Cloud DNS

Google Cloud DNS is a convenient way to manage DNS Zones. With Terraform, it’s possible to manage these Zones as code, usually by committing the terraform files to version control. However, setting up sub-zones has always been a bit tricky. I’ll use this blog post to document how to manage zones and sub-zones with CloudDNS and terraform. To manage a zone, the resource google_dns_managed_zone can be used: To add a sub-zone: Read more

June 28, 2020

Updating an AUR package

Archlinux’ documentation is good, but somehow i struggled to find simple instructions how to update a package. The kafka CLI i’m maintaining, kaf, has been available for some time in the AUR. At some point i have been passed the ownership of the AUR package, but i had no idea how to do a release. For more complex cases there’s probably more to do, however in my simple case: Clone repo: Read more

April 12, 2020

Using kaf for Azure EventHub

Since kaf v0.1.35 it is now possible to interact with Azure EventHub. Kaf is a modern CLI to interact with Kafka, i.e. producing data, consuming, or viewing topic and Consumer Group information. Now having first-class support for EventHub makes EventHub much more accessible than before. In the following Example i’ll show how to set up kaf for your EventHub. It’s very simple. Install kaf There’s several ways to install kaf. Read more

September 23, 2018

Building a 22 Megabytes Microservice with Java, Javalin and GraalVM

Oracle’s GraalVM allows for ahead-of-time (AOT) compilation of JVM applications. This means, instead of running a JVM process to execute your application, the compiler builds a native binary. How does it work? On a very high level, a basic runtime (called SubstrateVM) is compiled into the binary, as well as the actual application. Sounds a little like Go, which also includes a small runtime for e.g. garbage collection. In this article, I’ll show how to build a small sample restful webservice with GraalVM native compilation. Read more