Photo by [Uta Scholl](https://unsplash.com/@uta_scholl) on [Unsplash](https://unsplash.com/photos/ipUuGGUgR5A)

Go Generics

The latest release of Go (1.18) added generics to the language, besides fuzzing, workspaces and performance improvements. 1 So let’s use them to implement the repository pattern, which is a way to abstract data handling from your business logic. When working on REST-like APIs you want to split handling of data from and into some kind of data store (e.g. a database, a file, …) from business logic. This is where the repository pattern comes in handy....

May 1, 2022 · 5 min · 915 words · André Sterba
Photo by [Adi Goldstein](https://unsplash.com/@adigold1) on [Unsplash](https://unsplash.com/photos/EUsVwEOsblE)

Install Arch Linux

This will be a reminder for myself on how to set up a basic Arch Linux and not a guide with a lot of variety on how to set up arch. I will update this post when I learn something new, while installing arch on one of my machines again. In the past I did some experiments with btrfs, but had some problems while rebalancing, and actually used none of the fancy features like snapshots, btrfs send or other cool things....

April 1, 2022 · 4 min · 648 words · André Sterba
Photo by [Amrut Roul](https://unsplash.com/@amrutroul) on [Unsplash](https://unsplash.com/photos/evNX5mSx6kc)

Neovim LSP

I was (and still am for some parts) a happy vscode user. On the other hand I was always looking up to all these crazy fast vim/neovim users and their keyboard only drive workflows. After hopping on and off the vim train a few times a year something new came around sometime in 2021 - LSP support on neovim core. LSP stands for Language Server Protocol and definies how your IDE communicates with a specific language server to get features like ‘go to definition’, ‘show references’ or ‘rename this variable’....

March 1, 2022 · 7 min · 1482 words · André Sterba
Photo by [Syed F Hashemi](https://unsplash.com/@sfhashemi) on [Unsplash](https://unsplash.com/photos/VqdG9PBB43Q)

Build a simple VPN with WireGuard

As you already know I host most of the services I use on a daily basis myself. Some of these services are hosted on the public Internet, while others are running on my home server. In this post I will cover the basic on how to get a peers-to-site VPN connection with WireGuard. WireGuard uses a simple public/private keypair to set up an encrypted VPN tunnel, therefore there is no need for a complicated certificate authority setup....

February 6, 2022 · 6 min · 1241 words · André Sterba
Photo by [Jannis Brandt](https://unsplash.com/@jannisbrandt) on [Unsplash](https://unsplash.com/photos/4mHaSX8zvJI)

Using macOS as a Linux user

I never expected to use any other OS than my beloved Linux (and especially Arch Linux) for developing and day-to-day computing. Well, I actually use Windows to play some games with friends occasionally, but the time has come to use a Mac at work. It was simply the easiest way to get a much more powerful machine than my ThinkPad X390. So here I’m trying to write up what I like about macOS and what I miss from my highly customized Linux machine....

December 17, 2021 · 7 min · 1283 words · André Sterba