Avalon A Programmer Blog

Comparison of git clients

There are many git clients available. I have used GitHub Desktop, SourceTree, GitKraken and the command line. I am not going to talk about the command line. Although it is powerful but you also need to google for the options.

All three other clients are GUI clients which are much user friendly than the command line.

The Journey of Home Labbing 1: The Beginning

Recently, I have spent most of my spare time maintain my home lab. I want share my story on my jouney of home labbing from the beginning.

Update Cloudflare DDNS with Docker

I was using Synology and created a script to update Cloudflare DDNS. As my Synology are becoming full, I decide to move to unRaid because Synology is expensive for its hardware specification. So, I decide to move my DDNS from Synology to unRaid in docker.

Access annotation fields by reflection in Kotlin

This only works on Kotlin 1.1.4 or above. There is a bug exist before that.

Annotations and reflection always come in handy when you try to avoid boilerplate. Today I am going to get all the fields marked by a custom annotation, and put its value into a map.

Create executable artifact from Kotlin project

As Kotlin is a much better language to write than Java (it also compatible with Java), I try to write a library in Kotlin and compile as a artifact(.jar). My project is a Gradle project and use Intellij IDEA as IDE. However, it is difficult to find a tutorial that works.