2025 Review
Last year has been eventful and consequential. Until August I wrote my Master’s Thesis, and have now completed my university education. And in October I started working full time. In this post I will give a quick overview over this year and show new timetracking analysis!
Master’s Thesis
I started working on the broad topic late last year, but really got into it only this year. I worked investigating and evaluating the DDR protocol. I hope to write more about my work here in the near future.
Advent of Code
For the past 10 years in December, Advent of Code takes place. It is a series of small programming puzzles released daily from December 1st to December 25th. The first days are usually trivially easy, but the difficulty ramps up quickly, until at the end it takes multiple hours to come up with a working solution and implement that.
I started participating in 2020. In a time before LLMs, I actually completed every puzzle on the day it was released in Python, which took me many hours for the later challenges. After a successful first time, in 2021, I wanted to use the event as an opportunity to learn a new language, so I attempted to solve all puzzles in Rust. This was considerably more difficult because now I had to deal with the difficulty of the challenges and the borrow checker. That year, I was in Sweden, and remember well how I sat in a bus on the way to Lappland for more than a day, solving two puzzles there. But that trip was also where the streak ended, and I only got to day 12, completing the rest of the puzzles in the spring of the following year.
The Monaco Grand Prix from Above
Sometimes it is hard to explain the fascination of watching rich people drive around in circles, and the Monaco Grand Prix is definitely not the best entry into the world of Formula 1. The Monaco GP is an unusually boring race, since the narrow streets of the city make overtaking, the most interesting aspect of racing (apart from maybe crashes), virtually impossible. However, watching a race via TV or live are completely different experiences and when I worked in France last year (Read more) I took the opportunity to watch the Monaco Grand Prix, the most prestigious Grand Prix live.
Tracking my life in 30 minute blocks
Starting in 2023, I have tracked every half hour block in my life. Everything I do is categorized into one of currently 61 categories of activities, ranging from “Sleep” and “Work” to “University Teamwork” and “Political Activism”. Since I am now in the third year of time tracking, the categories have shifted somewhat (for example last year I thankfully did not need the category “Moving appartments”), with the specificity somewhat increasing over time.
Summer on the French Riviera
This past summer I had an internship of 6 months with SAP Labs France on the French Riviera (more specifically in Mougins, a city north of Cannes).
This was as part of a special internship program from my institute, where students are sent abroad for 6 months and can select from a long list of locations, I primarily chose this one because it was the only location which had topics on security. The physical location was a nice perk, and I wanted to go abroad again, even after my last venture left me with mixed feelings.
Metric Meld
tldr: Try it now.
Of course, I am a big fan of the metric system, who isn’t? It is very satisfying to convert units easily into other units and see the relationships between units of very different realms, e.g. quantities from mechanics and electricity. With the SI system of units, all specially named derived units (like Volt, Pascal, Newton) are linear combinations of the seven base units without any additional factors. Then again, using factors is also very nice, because you can use the prefixes kilo, mega all the way to quetta (which was only added to the standard in 2022).
My study abroad: Sweden
When studying, many people recommend to go abroad for a term or more. The EU’s Erasmus initiative makes this very easy, especially if the home university has agreed to partnerships with other universities. This made it possible for me to travel to Blekinge Tekniska Högskola for a term in 2021/22. Was it worth it?
What are the goals of a semester abroad? Learning a language and getting to know the culture? Participating in courses that are not available at home? Or just having fun?
qinoq
During the past year, the last year of my bachelor studies, I had the pleasure to work on a bachelor project. This project aimed to create a tool to create “scrollytellings”, interactive web pages that can be controlled by scrolling. Scrollytellings can combine text, images, videos and any other media found on the web, including games or control elements. Working in a team of 5 and with a industry partner, we created a software named qinoq that allows non-developers to create these scrollytellings.
The creation of scrollytellings takes place in the lively.next environment, a live object system that works as an online IDE for JavaScript and features the morphic graphics framework (as seen in Squeak/Smalltalk for example). The editor is built in JavaScript. I am writing this now, because the code has finally been open-sourced and is available here. To use the editor, you have to first install lively.next (also open-source, found here) and then clone the qinoq folder into the lively.next folder. The following steps are explained in qinoq’s README.
Learning JavaScript in 3 little projects
During the past semester I have programmed in a few languages: Python during Advent of Code ( my first participation at that event ), Ruby for a university project and Rust for another little project. But I have mostly used Javascript and have come to appreciate it. I had not used Javascript before for more than a few lines and now used it almost every day.
Javascript has a bad reputation for a few reasons:
Building an operating system
I spent this special summer building an operating system. It starts with me taking the Operating Systems II seminar. Here we were given several projects to work on and we decided in a group of 5 people to build a network stack (TCP/IP) for LEGO Mindstorms robots. We were given a basis: A bootloader, a scheduler and timer interrupts for it.
Based on this we built inter-process communication and implemented syscalls, while another part of the group tackled network communication. In this project you could understand very well how an operating system can be built, especially I improved my knowledge of C, ARM assembly and the handling of gdb. I can recommend anyone interested in the topic to start with a “ToyOS”, not for productive use but for teaching. As soon as the resulting paper is finished, I will link it here.