7th of November 2017

Modern Day Annoyances - Digital Clocks

This morning I woke up to the beeping noise of our oven's alarm clock. The reason was that I tried to correct the oven's local time the day before — and I pushed the wrong buttons. As a result I didn't set the correct time, instead, I set a cooking timer... and that's what woke me up today.

15th of October 2017

Learn Some Rust During Hacktoberfest

October is the perfect time to contribute to Open Source — at least according to Github and DigitalOcean. Because that's when they organize Hacktoberfest, a global event where you get a free shirt and lots of street cred for creating pull requests. Let me show you, how everybody can contribute code to Rust, a safe systems programming language.

10th of October 2017

A Little Story About the `yes` Unix Command

What's the simplest Unix command you know?
There's echo, which prints a string to stdout and true, which always terminates with an exit code of 0.

18th of September 2017

Lightning Fast Image Previews with Pure CSS and LQIP

My website is reasonably fast. There was one thing left which really annoyed me: layout reflow after images got loaded. The problem is, that the image dimensions are not known when the text is ready to be displayed. As a result, the text will be pushed down on the screen as soon as an image is loaded above. I decided to fix that once and for all.

15th of September 2017

Go vs Rust? Choose Go.

Rust or Go, which one should I choose? This is a question I get quite often. My answer is simple: use Go.

15th of August 2017

Afraid of Makefiles? Don't be!

In the last few years, I've had the pleasure to work with a lot of talented Software Engineers. One thing that struck me is, that many of them did not have any working knowledge of Makefiles and why they are useful. Let's change that!

12th of August 2017

Of Boxes and Trees - Smart Pointers in Rust

Recently, I tried to implement a binary tree data structure in Rust. Each binary tree has a root value, a left, and a right subtree. I started from this Python implementation, which is quite straightforward.

10th of July 2017

Why Type Systems Matter

I've written most of my code in dynamically typed languages such as Python or PHP. But ever since dabbling with Rust, I've developed a passion for static type systems.
It began to feel very natural to me; like a totally new way to express myself.

18th of May 2017

Being a Professional Programmer

When I was around 12, I set myself the goal to become a professional programmer.
I can tell, because at this time I made the conscious decision to use my right hand to control the mouse — even though I'm left-handed.

27th of April 2017

The Future of Rust

Let me first point out the obvious: yes, the title is a little sensationalist. Also you might be asking why I should be entitled to talk about the future of Rust. After all, I'm neither part of the Rust core team, nor a major contributor to the Rust ecosystem. To that I answer: why not? It's fun to think about the future of systems programming in general and Rust in particular.

9th of April 2017

Launching a URL Shortener in Rust using Rocket

One common Systems Design task in interviews is to sketch the software architecture of a URL shortener (a bit.ly clone, so to say). Since I was playing around with Rocket, why not give it a try?

18th of March 2017

The Essence of Information

People look confused, when I tell them about my passion for Algorithms and Datastructures. Most of them understand what a Programmer is doing, but not what Computer Science is good for. And even if they do, they think it has no practical relevance. Let me show you with a simple example, that applied Computer Science can be found everywhere.

15th of March 2017

Why I Love Programming

Programming has many faces. It is the science of structured thinking. It is the art of eloquent expression. It teaches you to be humble when you look at other peoples' fascinating work. Most of all, it teaches you a lot about yourself.
While the syntax may change, the concepts will not.

30th of October 2011

Tools

As long as I can think, Computer Science has been infected by religious flamewars. Having arguments about technical topics can be healthy but flamewars are not. I'm sick of it. I'm fed up by people telling me that their work environment is oh-so better, faster and so on. That's fine but it doesn't matter. Your equipment only plays a supporting role. You don't even need a computer to do programming. Donald Knuth wrote algorithms on a notepad. Alan Turing wrote the first chess computer on a piece of paper. And it worked. Beat that!

20th of October 2011

Are you a Programmer?

My geography teacher once told the story of her first lecture at University. As an introduction, her professor asked the class to draw a map of Germany without any help and as accurate as possible. To her surprise she was not able to fill the map with much detail. Even the shape of the country was a bit vague.

13th of October 2011

On Hard Work

Great people get shaped by their achievements

12th of February 2010

Overkill: Java as a First Programming Language

I recently talked to a student in my neighborhood about his first programming experiences. They started learning Java at school and it soon turned out to be horrible.

27th of January 2010

Howto Sort a Vector or a List in C++ using STL

A little code snippet that people need very often. Note: This code is probably outdated. If you use C++11 or newer, look for more idiomatic alternatives!

10th of January 2010

Why I Love Text Files

Text files are the single most important way we can communicate with computers. It's no coincidence that they are also the most important way to communicate with other human beings. What we can achieve with text files is invaluable: Write it once and refer to it whenever you want to get the message across in the future. Write a program (it's just text), save it and let the machine execute it whenever you like. Write another text file which contains the rules for the execution of your program and the computer runs your program exactly as you specified (cron files do that on Unix).

8th of November 2009

Running Legacy Code

This short article deals with a serious problem in software development: bit rot. When switching to a new platform (for instance from Windows XP to Windows Vista/7) the programmers need to make sure that old bits of code run flawlessly. There are several ways to achieve this goal that will be discussed during the next paragraphs: