Moving from the X1 Carbon 9th Gen running Fedora to a Macbook Pro 14 with M2 Pro

11 Jan 2024 • Reviews

As I will be going to the US for a few months this year, I knew I would not be able to take a huge Desktop PC with me. Hence, I started researching for solutions. The MacBook Pro 14 with M2 Pro seemed like a good fit.

Climate Tracker with Ruuvi Tag

21 Aug 2023 • Programming

As there is currently a heatwave rolling over Switzerland, I wanted to get detailed information on temperature and humidity. While researching some solutions to automatically record these values for multiple places wirelessly, I came across Ruuvi Tags. In the following tutorial I will outline the steps needed to create a Raspberry Pi based temperature, humidity, and air pressure recorder including a nice graphical front-end.

Some Thoughs on the X1 Carbon 9th Gen with Linux

22 Feb 2023 • Reviews

I used to have a Dell XPS 13 developer edition with a 4k screen. I was utterly disappointed with the 3-4h battery life and the weight of the laptop, hence once I saw a good offer for a used Lenovo X1 9th Gen, I couldn’t resist.

Sane Explanation of Change of Bases

20 Feb 2020 • Mathematics

The following is an explanation how changes of bases work in vector spaces with a focus on building intuition.

Implementing a Semaphore in Java

27 Apr 2019 • Programming

Today we will take a glimpse at semaphores and have a look at an implementation based on locks. What is a semaphore? A semaphore is basically a lock that allows multiple processes to enter a critical section at the same time.

Implementation of Sorting Algorithms in Java

5 Feb 2019 • Programming

This document is a list of common sorting algorithms and their implementations in Java. The algorithms have been written by myself. I have tested them with the JUnit tests you can find at the end of this article, however, I do not guarantee that the implementations are 100% correct.

A short proof of Cantor's theorem

31 Oct 2018 • Theory

Cantor’s theorem states that for any set \(S\) we have \(S \preceq \mathcal{P}(S)\) and \(S \nsim \mathcal{P}(S)\). In words this means that the cardinality of \(\mathcal{P}(S)\) is strictly bigger than the cardinality of \(S\). Unlike some of my other posts, this one is strictly mathematical.

Writing a Sudoku Solver in Python

2 Sep 2018 • Programming

Pretty much every free newspaper you find comes with a sudoku puzzle. Depending on the difficulty it might take you a considerable amount of time to solve them. As a result I wanted to write an algorithm which could do that for me within seconds.

Building an API based temperature sensor

15 Aug 2018 • Programming

The goal of this short summary is to explain how you can build a small API based temperature sensor that costs less than 10$ and can be used anywhere. I use this sensor at my office to log the temperature and then display it on a smart dashboard.

Automating Cross Compiling Go Programs on Linux

2 Jul 2018 • Programming

Programs written in Go can be compiled for a variety of different targets. Cross compiling is easy, but takes a lot of effort. In order to automate cross compilation the following Ruby script is built to take that burden off you.