Bash if statements

One of the things in bash that always confuses me are if statements. I never know how to write one without googling it. For example: Do I need two square brackets [[ or just one [ . When should I use -eq and when ==?. Why are there even two options for all those things? This post is mostly an excuse to figure these things out and learn about them.
Read more

Docker Bridges

Configuring networks is hard, and docker certainly did not make things easier. Since I am no network expert most things I know come from trial and error. This post describes the process how I setup a docker bridge. Why would I need a docker bridge A docker bridge is needed when your containers must be reachable on the network your host is connected to. Each container will have an IP address in the same subnet as the host.
Read more

Compiling AT91Bootstrap for the Aria G25

This post will describe how to compile your own AT91Bootstrap. AT91Bootstrap is a bootloader for the Atmel AT91 SoC like the Aria G25. Why would you do this in the first place? While trying to update Linux kernel I discovered that U-Boot had to be updated as well, because the GCC version had increased. Updating U-Boot made the U-Boot binary just slightly larger. This caused a problem with AT91Bootstrap. AT91Bootstrap loads bootstrap into memory, so it needs to know how large U-Boot is.
Read more

Go Garbage Collection and Files

Some context A while ago I wrote a small Go library to work with the GPIO pins on an Aria G25 chip. This library can be used to read and write those pins. It also offers a function to set a callback on an edge (Rising, Falling or both). This means that when a pin changes its state, the callback got executed. The main part of the event handling is the Watcher.
Read more