The art of Byzantine benchmarking
A traditional benchmark decides which of two implementations is superior in a controlled lab environment. But what if you have a system with soft real-time constraints? How can you proof they won't fail the real-time constraint? And how wide is the margin? Byzantine-Benchmarking is one possible approach to assess it. I am in search of a perfo... Read more 29 Jan 2023 - 14 minutes read
Untapped potential in Rust's type system
Today, I'm writing about what types can be used for other than checking code properties. It will involve a good chunk of dynamic typing, and yes it's in Rust. There are some wild ideas in it, so fasten your seatbelt and get ready for a ride! Overview The article is divided into introduction, background, three sections containing the main cont... Read more 28 May 2021 - 40 minutes read
One enum to rule them all
Have you ever spent time writing boilerplate code around enums? With Rust, you don't have to! In this article, I want to show how easy it has become in Rust to use a single enum type across many application domains. From SQL databases, through a web server and a GraphQL interface, all the way to a web client, we will use a single enum definitio... Read more 13 Mar 2021 - 11 minutes read
Gamedev #6: New features in 0.2.1
Paddlers 0.2.1 is online and brings a ton of new features! Among other features, I present a new take on the tower defense aspect of the game, custom shaders for improved graphics, a skill-tree, and quests to guide the players through the game mechanics. Play the demo here! (Register with a fake email, it is still not used in any way.) It is n... Read more 28 Feb 2021 - 10 minutes read
Gamedev #5: Version 0.2 Released
Finally, with the completion of the transition to a new web-oriented game engine, Paddlers version 0.2 is ready. In this short post, I summarize the changes and what they mean for the Paddlers browser game. This milestone has been a lot of work, although it barely shows in the demo. For the past seven months, I implemented zero new features. No... Read more 01 Jan 2021 - 3 minutes read
Rust Tutorial: An Introduction to Rust for JavaScript Devs
An editor from SitePoint reached out to me, asking me if I can write an article for them. They have decided to add some Rust content and wanted me to write an introduction to the language. To make a long story short, the article has now been published. It is primarily directed towards JavaScript programmers with little to no Rust experience. Bu... Read more 15 Dec 2020 - less than 1 minute read
Rust meets the web - a clash of programming paradigms
Most code running on the web is event-based, garbage-collected, and dynamically typed. In stark contrast, Rust is a compiled language with static type- and memory-safety without a garbage-collector. What are the implications for a project that compiles Rust to WebAssembly? I try to answer this question with a fictive story and hands-on code ex... Read more 03 Oct 2020 - 30 minutes read
Gamedev #4: Benefits of full-stack Rust
Efficiently synchronizing a client application with the server can be challenging. Today, I write about my recent experience on this topic and the benefits I found when using Rust for both the server and the client endpoints. Everything in this post is based on my long-term hobby project called Paddlers, an online multiplayer game playable in t... Read more 13 May 2020 - 18 minutes read
Gamedev #3: Fun with Rust and distributed systems
Programming an online multiplayer game is fun! Why, because programming is fun, especially in Rust. Not convinced? Let me show you. In this post, I will start to talk about the exciting technical stuff around Paddlers. If you haven’t read my other posts (#0, #1, #2), Paddlers is a game in which your goal is to make ducks happy. As of recently, ... Read more 16 Nov 2019 - 19 minutes read
Gamedev #2: Multiplayer and procedural map generation
Today, we define the basics of multiplayer in Paddlers and I walk you through the necessary steps to generate pseudo-random maps using procedural techniques. In previous posts, I have written about the single-player experience which happens inside a single village on a stream of water. The multi-player game mechanics should take place on a glo... Read more 11 Sep 2019 - 8 minutes read
Gamedev #1: Game mechanics
Gather a cult of followers around you and let them rise to become the most powerful empire in all of Paddland! After defining a theme for my game in the last post, let me now describe the gameplay from a player’s perspective. Entrance As you, as a player, start your journey in Paddland, you have a choice to make. From a set of ducks, you can ... Read more 07 Aug 2019 - 5 minutes read
Gamedev #0: Creating a new universe
I am working on a brand new massively multiplayer browser game! Three weeks ago, I decided it is finally time to put aside some of my other hobby projects and get to work on a game once again. The game is called Paddlers, as in a paddling of ducks, and the story description is presented in this post. Now, being the programming nerd that I am,... Read more 17 Jul 2019 - 5 minutes read
The struggle with API design
GraphQL could safe many software projects from failure because it reduces the total workload. With examples from my own work experience, I explain why I think like that. In this post, I am writing about the benefits of using GraphQL that have a positive effect on the development process of software projects. There may also be technical aspects ... Read more 19 Feb 2019 - 10 minutes read
My first master semester at ETHZ
Five months with much coffee, short nights and many amazing new insights that I could learn. Read this to find out which course selection kept me 100% motivated throughout the semester. After a full year of work as a software engineer, at a place that was full of friendly people, interesting challenges and great working conditions, I went back ... Read more 13 Feb 2019 - 10 minutes read
A custom time display for public transportation – Programming the Software
How I have replaced a wall clock by an LED matrix: A short look into the programming of a microchip. Overview The final product of this hobby project is a tram station board that displays visually how long I have to wait for the next connection to the city by public transportation. Previously, I have shown how I have assembled a small board w... Read more 17 Sep 2018 - 9 minutes read
A public transportation departures display in my home – The Hardware
The time until the departure of the next tram always displayed on my room's wall. How to build the hardware for it? In my last post, I have introduced the ESP-01S module and I showed how to program the integrated ESP8266. Now, I want to talk about a project I have realized, using that technology. This post covers the design thoughts behind the... Read more 02 Jul 2018 - 8 minutes read
Rust in a coding competition (Part 3) - Filling in the gaps
Python, Haskell, C, or Rust? Which do you like best to solve this task? This is the third post in a series. Follow the link to start reading part 1 first, where you can also find the problem statement and the first part of the solution. Second subtask: Guessing Okay, we are still trying to decrypt an encrypted message. From the task desc... Read more 09 Jun 2018 - 14 minutes read
ESP8266: A minimalistic, Internet-enabled computer chip
The central processing unit: Merely 5mm by 5mm! The complete module? 14mm by 25mm. The ESP8266 is a microprocessor natively speaking every protocol required to connect to the World Wide Web through a local WiFi network. In this post, I am writing about the ESP-01S module, one of the most common modules using this microprocessor. The picture ab... Read more 31 May 2018 - 7 minutes read
Versatile Rust - Part 2 of Rust in a coding competition
What does define a multi-paradigm programming language? And why should we care? This is the second post in a series. Follow the link to read part 1 first. Rust is imperative-procedural and functional at the same time. It also comes along with object-oriented features like methods, inheritance, and polymorphism, although it is technically ... Read more 20 May 2018 - 6 minutes read
Rust in a coding competition (Part 1)
What is the best programming language for a coding competition? What are the significant differences? And how does Rust fit in? The other Friday night, I attended a coding competition called Codecon. It has been organized by Bloomberg and hosted by ETHZ. Although I did not know what type of tasks will expect me, I knew that Rust would be am... Read more 18 May 2018 - 9 minutes read
Why this?
Why creating this public place in cyberspace? Why sharing personal ideas in a written form? Well, the Internet has quickly become a substantial part of human civilization. Both commercially and privately. But I have never been an active part of social media nor did I really participate actively in any online community. So far, I have almost exc... Read more 24 Apr 2018 - 1 minute read
Please activate Javascript.