Energy efficiency of programming languages

Servers are taking an ever growing share of our electricity usage. Of course, they exist to run applications. And the energy consumption is, to a large degree, determined by the applications running on them. Ironically, servers turn electricical energy into thermal energy and thus contribute to global warming in a very concrete sense. When I look around, I don’t see a lot of discussion happening around the responsibility of application developers regarding energy usage and the impact this has on climate change.

Website tech update

It was time for several updates. This site is now hosted by Codeberg instead of GitHub, Edit: doesn’t work yet, so for now it’s still GitHub. created using Hugo instead of Jekyll, using a different template/theme. I’m also contributing a few additions to the Hugo theme.

Mit dem Mountainbike auf den Grünten? Nein.

Wer ins Oberallgäu fährt und eine Leidenschaft für das Radfahren mitbringt, wird vielleicht auf die Idee kommen, mit dem Mountainbike auf den Grünten, den “Wächter des Allgäus”, zu fahren. Spoiler: es macht keinen Sinn und ist gefährlich. Mir ging es auch so. Der Grünten ist ein alleinstehender, attraktiver Gipfel und mit 1738 m höher als viele andere Berge in der Umgebung. Außerdem gibt es (außer für Mitarbeiter_innen des Bayerischen Rundfunk) keine Bergbahn.

Gekommen, um zu bleiben: Gründe, jetzt das Fediverse zu betreten

Zuletzt aktualisiert am 22. Juli 2022 In meinem vorigen Beitrag Wir treffen uns im Fediverse habe ich über dezentrale soziale Netzwerke und das Fediverse geschrieben. Verglichen mit den großen, zentralisierten Vorbildern ist das Fediverse im Moment klein. listet noch nicht einmal 3 Mio Accounts. Etwa 500.000 davon waren innerhalb der letzten 30 Tage aktiv. Lohnt es sich da, Zeit zu investieren, sich ein Netzwerk aufzubauen und Tools zu testen? Oder sogar darüber zu reden und andere Menschen, die wir im Fediverse vermissen würden, zum Mitmachen zu überreden?

Wir treffen uns im Fediverse!

Der Jahreswechsel steht an, und damit drei Gründe, sich mit Alternativen für die zentralen sozialen Netzwerke zu befassen: Wir brauchen natürlich einen guten Vorsatz für das neue Jahr (oder eher für die ersten paar Wochen des neuen Jahrs) Wir haben vielleicht ein bisschen Urlaub und Zeit Die Bekanntwerdung des neusten Facebook-Skandals liegt erst wenige Tage zurück Die Facebooks und Twitters können nicht unsere Zukunft sein. Brauchst Du Gründe? Die Macht, die diese Konzerne konzentrieren, ist gefährlich.

ESP8266 publishing DHT temperature and humidity via Web Thing API

After reading through some of the Mozilla IoT examples, I got an ESP8266 to publish temperature and humidity values via the Web Thing API. Here is the code: Link

Zusammen braucht man weniger

Vom (Gedanken-)Experiment des Müllvermeidens zu einer hyperlokalen Tauschplattform für den täglichen Bedarf Language notice: this is a post about how to share resources between neighbours. As I am living in Germany and my neighbours speak German mostly, I feel like I have to write this in German. Eigentlich möchte ich gar nicht erst anfangen, zu erklären, warum. Eigentlich möchte ich einfach voraussetzen, dass wir alle der Meinung sind, dass wir unseren Fußabdruck so klein halten sollten, wie möglich.

Re-claiming my content

Yesterday I was stuck in a commute situation, so I had a rare moment of boredom and reflection and decided to google jekyll microblogging to find out how easy it would be to make my blog fit smaller content chunks. I felt like gathering what I’m emitting on my home turf, at, which is a Jekyll site served by Github Pages. What I found was a great post by Fiona Voss that shows a way to re-claim my content by using my own blog as the center of my conversation in other channels.

Visualizing the Tour de France General Classification Build-Up

The 104th edition of the Tour de France is in full swing. Time to have a look at how the General Classification developed so far. Wait, what? General Who? Tour de WTF? OK, sorry. If you have no interest in the sport of riding bicycles and never heard of the most popular bike race in the world, maybe start with a Wikipedia article. To the rest who knows at least that there is such a thing as the Tour de France, let’s revisit how that race works.

Idea: DIY Sourdough Incubator

The idea of breaking bad baking bread, really good bread, is super-fascinating to me. I got recently amazed by this guy named Lutz Geißler, who seems to be on a mission and already published nearly 800 bread recipes in his blog called Plötzblog. I found him via an episode of the radio show Alles in Butter on local radio WDR5. If you want to find out more about him, bread and his driving forces, check out this lengthy and fascinating talk with him and Tim Pritlove (all in German).

Visualizing the Tour de France General Classification Build-Up

July 16, 2017

The 104th edition of the Tour de France is in full swing. Time to have a look at how the General Classification developed so far.

Wait, what? General Who? Tour de WTF?

OK, sorry. If you have no interest in the sport of riding bicycles and never heard of the most popular bike race in the world, maybe start with a Wikipedia article.

To the rest who knows at least that there is such a thing as the Tour de France, let’s revisit how that race works. The Tour (as friends call it) is a stage race. The nearly 200 riders, belonging to teams of nine riders each, ride twenty-one stages overall, over the course of twenty-three days.

Each stage can be seen as a race in its own right. Some are normal races, where all riders start together and the fastest rider wins the stage. Then there are time trials, which work a bit different. In an individual time trial (ITT), each rider rides by himself, one after another. In a team time trial (TTT), things get a bit more complicated, but in general – as the name says – the whole team rides together.

Regardless if the stage is a time trial stage or not, the time each rider takes from start to finish of a stage is noted and added up in the “General Classification” (GC) after each stage. The leader of the GC gets to wear the famous Yellow Jersey for the next stage. Whoever finished all stages and spent the least time overall, is the overall winner.

There are additional classifications, like the mountains or the sprint classification, which make the story even more complex. But we won’t get into this now.

So, as the above explanation shows, winning the Tour de France takes a long time. Some 3.500 kilometers want to be ridden, and whoever wants to win the GC, has to be consistent, should conserve himself well, and of course needs a strong team around him. It’s pretty much an elimination race, where it’s often more about avoiding mistakes, staying upright, than about actively attacking and distancing the opponents.

As a visual person, I need some visual representation of the GC development. Here is one approach, showing the buid-up (or alternatively: the fall-out) over the first 15 stages.


If that means anything to you, you are looking at a parallel coordinates chart. The X direction shows the development of the GC from stage to stage. The Y dimension represents the overall duration the riders took, relatively to each other. The GC leader is always shown in the very top with a time offset of zero. The other riders are placed further below, depending on how big their gap is compared to the leader. Each line links these data points from stage to stage for one rider.

The lines representing a few top riders are thicker and darker than the rest. These are, by no special criterium, those who can still maintain some hopes for the overall win. The other ~180 lines are lighter, to allow us to recognize some patterns over the course of the race.

At the left side of the graph, after stage one – an individual time trial (ITT) – most riders are still relatively close together. No surprise, since the stage was only 14 kilometers long.

Then, for each stage, the visualization shows a bundle of horizontal lines. These are the riders who didn’t lose time, but also didn’t win. Then some others drop down with various slopes. These are riders who lose various amounts of time, compared to the leader. And then, as visible for the first time in stage five, some rider’s lines tend upwards. These are riders who could win time, i. e. the reduced their time gap to the leader.

When you look at the graph above, you should see clearly: Some stages are more meaningful for the GC than others. They spread the lines out, which means they produce bigger overall time gaps. These tend to be the stages that involve riding uphill or “climbing”, as the cycling jargon calls it. However it’s still done on a bike, usually. Seeing that, you might get why Tour de France winners tend to be good climbers, which also means they are usually on the lower end of the BMI spectrum.


Road cycling nowadays is a team effort. Each team with ambitions to win the GC (and thus the Tour) usually has one rider that is supposed to become the leader. The other riders in the team have the job to help their leader save as much energy as possible. They take turns to keep their leader out of the wind and carry bottles from the team car to the riders, for example. Being up high in the GC is not important for them. And since most riders have no GC ambitions, it’s also not surprising to see many lines bend down more and more at some point.

The real GC race of the 2017 Tour has started to become really interesting over the last few stages. While the hilly 5th stage and the very hilly 9th, this year’s so-called “queen stage”, spread out the main contenders and increased their time gaps, some of them now managed to win time again on the current leader, Chris(topher) Froome. Among them are Romain Bardet, Rigoberto Uran, and Daniel Martin. This makes the race more open as we go into the third and last week of the Tour. On the other hand, one of the pre-race favourites, Nairo Quintana, has pretty much lost touch after losing roughly four minutes at today’s stage.

I’ll probably add a few more graphs here and on Twitter as the GC emerges.

If you’d like to create your own visualizations for the GC or the other classifications of the Tour de France, you can use a tool I wrote to gather the classification data called tour-tracker. The source is on Github. The visualization itself is half generated SVG, half manually created stuff which is combined in Illustrator. It could be created complelety programmatically, but I haven’t got around to do it yet.

If you have visualizations to share, any questions or comments, please use the comments function below. It might require unblocking Disqus (if you are the Ghostery type of guy, like me).

Update 2017-07-23: After the last stage