vboxautostart Setup on Ubuntu 18.04

In this article I show how to setup VirtualBox to start a virtual machine on boot of an Ubuntu 18.04 system.
Read more

A Semantic Logger for JVM Languages

This little library is inspired by the talk Observability in einer Microservice Welt held on Berlin Expert Days 2018 by Andreas Weigel and Jakob Fels. If you prefer to have some semantic to your logging and improve code readability you can use the SemanticLogger and its SemanticLoggerFactory which adds a thin layer around Slf4j. The SemanticLoggerFactory can be used like the Slf4j LoggerFactory to create a new Logger by class, name or a delegateLogger:
Read more

Building a Spring Boot 2 Auto-Configuration and Starter with Kotlin and Gradle

A concept that makes Spring Boot very powerful are its Starters and Auto-Configuration. It enables the automatic inclusion of dependencies and configuration or initialization based on several conditions. Recently I have been looking for a tutorial or “best practice” on how to use Gradle to build a custom starter. Since I was unable to find an example I ended up writing my own. I also added some Kotlin into the mix.
Read more

Using Jib to Build Docker Images for Spring Boot 2 Applications

If you want to create a Docker image from your Spring Boot 2 application you can use various plugins for Gradle or Maven. They all have in common that the application itself will be added as a single layer containing the full jar including all dependencies. For a typical Spring Boot 2 application this means, that for each build an image layer of at least 60MB has to be pushed to the registry.
Read more

Cross-compiling Kotlin/Native applications and libraries for Raspberry Pi on macOS

I’m a big fan of the Kotlin programming language since it has been announced by JetBrains some times ago. After Kotlin/Native became available including the ability to compile to native Raspberry Pi binaries I decided to play around with it and see what’s possible. The problem I’ve been facing is the fact that cross-compilation for Raspberry Pi requires a Linux system. Since I prefer to use my macOS system for developing I have been looking for an alternative to use a full blown Virtual machine.
Read more

Manually refresh let's encrypt on a Synology NAS

I’m using a https certificate from Let’s Encrypt to securely connect to my NAS and other servers (like this one). The software running on my Synology NAS automatically generates and renews this certificate for me after it has been setup once. One important thing though is that port 80 and 443 are reachable from the internet. I recently misconfigured my router so that the request was not getting thorough and I had to / wanted to start the renewal manually.
Read more

Using Kotlin "data class" in bi-directional JPA relations

Data classes in Kotlin provide an easy way to implement entity beans for JPA without a lot of boilerplate code. This also includes toString(), hashCode() and equals() methods. However when you are modelling a bi-directional relationship between to entities you run into trouble since the toString() methods of both entities will call each other recursively ending in a StackOverflowException eventually. @Entity data class Child( @Id @GeneratedValue val id: Long? = null, val name: String, @ManyToOne val parent: Parent?
Read more

Kotlin, Spring Boot and Angular 4

This weekend I have been tinkering around with Kotlin, Spring Boot and Angular 4. I experienced how to combine everything in a multi-project using Gradle as a build tool. As I’m getting more into Kotlin I like it more and more. Especially the lack of a lot of boilerplate code is very refreshing. I still have to improve on the overall style but I will definitely use Kotlin more in the future.
Read more

Kotlin Koans

Kotlin is an interesting language originally invented by JetBrains. Also you may be tempted to say that it’s a “new” language it’s in development for some time now and has already reached a decent level of maturity. I’ve became interested in Kotlin when it was first officially announced by JetBrains a while ago. Unfortunately I haven’t had much time to look into it. At the moment Kotlin gains more and more attention by developers.
Read more

Resource: Tutorial how to get into embedded software development

If you want to get into embedded development beyond Arduino I will point you to a series of articles on the embedded.fm blog. In the series EMBEDDED WEDNESDAYS: GETTING STARTED IN EMBEDDED SYSTEMS you will find a very good introduction into developing embedded software using C on a STM32 MCU containing an ARM Cortex-M4F core. The series starts by getting an introduction into the C programming language. Without getting too deep into the language you will learn enough to get started and implement your first projects that go well beyond the usual blinking LED (also this example is also included as an article).
Read more