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.

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.

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.

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.

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!

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.

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.

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.

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.

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?

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.

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.

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!

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.

On Hard Work

Great people get shaped by their achievements

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.

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!

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).

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: