🇩🇪 — Hi, ich bin Martin Ueding; Physiker, Maschinenlerner, Softwareentwickler und engagiere mich für die Mobilitätswende. Ich habe recht früh mit dem Programmieren angefangen und schreibe darüber im Bereich »Code & Zahlen«. Im Physikstudium bin ich immer weiter in die Computerphysik gegangen, meine Studiumsunterlagen sind noch immer Teil dieser Webseite. Nach der Promotion bin ich in die Wirtschaft gewechselt. Seit dem Abitur habe ich meine Wege mit dem Fahrrad erledigt, Radtouren unternommen und irgendwann auch Radreisen. Inzwischen bin ich auch Aktiver im Radentscheid Bonn.

Aktuell schreibe ich am meisten zu Verkehrsthemen, manchmal auch noch über Wissenschaft, Maschinenlernen oder anderen Dingen, die mir einfallen. Die eher technischen Dinge schreibe ich meist auf Englisch, den Rest auf Deutsch.

Man kann mich per E-Mail, Threema oder Telegram kontaktieren, oder mich auf Mastodon, Pixelfed und GitHub finden.

🇺🇸 — Hey, I am Martin Ueding, a physicist, software developer, machine learning researcher and a traffic policy activist from Germany. On my blog you can find all my physics study material, mostly English articles about code and numbers. The articles about traffic policy are in German.

You can contact me via E-mail, Threema or Telegram. You can also find me on Mastodon, Pixelfed and GitHub.


Verlärmter Rheinsteig

Nach einer Spaziergehpause während der Lebendimpfstoff eingewirkte habe ich eine Wanderung entlang des Rheinsteigs unternommen. Das war allerdings deutlich weniger erholsam, als gewünscht. Das Problem ist schlicht der Lärm. So gibt es zum Beispiel die Aussichtsplattform am Dornheckensee. Die sieht erstmal richtig schön aus. Allerdings hört man sehr laut Autoverkehrsrauschen, obwohl man keine Straße sehen kann.

Weiterlesen…

Übersetzungsverhältnisse bei Shimano-Gangschaltungen

Nachdem mir 2018 mein Trekkingrad gestohlen worden ist, habe ich mir einfach ein neues Trekkingrad gekauft. Dabei habe ich mir keine weiteren Gedanken über das Übersetzungsverhältnis gemacht. Ich habe vorne Kettenblätter mit 26, 36 und 48 Zähnen. Hinten eine Kassette mit zehn Ritzeln zwischen 11 und 34 Zähnen.

Weiterlesen…

Monte Carlo Tree Search for Railroad Ink

In a recent post I looked at the game “Railroad Ink” and how applying a backtracking algorithm to it. Then I have written another post about refactoring that into a tree search library and also have applied a random walk algorithm to Railroad Ink. Then in yet another post I have implemented Monte Carlo tree search (MCTS) and applied it to Tic-Tac-Toe. This algorithm is now also part of the tree search library and can be applied to Railroad Ink. That is what I am going to do in this post.

Weiterlesen…

Creating a Tree Search Library

I have recently simulated a few games using Python code, see the articles with the Game Simulation Toolbox tag. All the code is in one repository, but I haven't really written good code. It was mostly just experimenting, and I did not work as cleanly as I otherwise do. My latest addition, the backtracking with Railroad Ink ended up as completely hacky code: Control flow on the module level, no clear separation, huge functions, little use of classes. It is a total mess.

Weiterlesen…

Backtracking in Railroad Ink

One of my favorite board games is “Railroad Ink”. One has to build a rail and road network on a square grid using the building blocks shown on dice. During the game, my player mat looks like this:

Weiterlesen…

Notifications from Python to Android

For the Vigilant Crypto Snatch we currently use Telegram to send notifications from the Python program to the phones (mostly Android, I guess). Each user has independently set up a bot with Telegram. This bot token is registered in the configuration file and the Python script can then use the bot to send messages. The users have to write to their bot using Telegram such that the bot knows about their personal account. Then the bot can send messages to that particular end user.

Weiterlesen…