Hi, I am Martin Ueding, a physicist (Dr., M.Sc.), machine learning researcher and software developer.

Although I am German, most of the content on this website is in English as both science and programming is communicated mostly in English. Lately I have written a lot of traffic policy and cycling, which is in German.

Since 2011, I studied Physics at Bonn university. I have finished my Bachelor degree in 2014 and my Master thesis in 2017. My dissertation was finished in 2020. See the studies section for the study related material.

At the age of 13 I started programming with C. Then I looked into HTML and CSS, started to use PHP and then MySQL. Looking for something to write software with a nice user interface with, I came to Java. Then I looked into more languages like Bash, Python, JavaScript, GNU Octave, VimScript, Fish. From then on, I tried to do most things in either Python 3 or C++11, so that I only have two languages, which I know well. For my work I now use R and also picked up the Wolfram Language, personally I looked into Haskell. See my portfolio.

My most popular project are the thinkpad-scripts which I wrote to get all the screen and digitizer features working effortlessly on my ThinkPad. It is a collection of Python modules that take care of docking and screen rotation.

For several years now, I have been almost paperless. The main challenges are papers I get from other people and hand written notes. The former can be faced with a scanner, the latter was more interesting. I own a Wacom Tablet since long before I started to become paperless, but I never had a good software for note taking. Since I did not find one at first, I wrote jscribbe. After I was almost done with that, I discovered Xournal which I now use most of the time.


You can also find me on other platforms:


Verkehrsinsel mit Parkplätzen

In Holzlar gibt es so einen Überweg mit Verkehrsinsel in der Mitte. Und der Bordstein ist auch so schick abgesenkt. Es gibt da nur so ein kleines Problem …

Auf der anderen Seite wurden Parkplätze angelegt. Man kommt da also nicht mehr sinnvoll rüber.

Read more…

Radverkehrsführung an der Kennedybrücke

Die Kennedybrücke ist die zentrale Rheinbrücke, sie verbindet Bonn-Zentrum mit Beuel-Mitte. Auf beiden Seiten der Brücke ist ein Radweg in beide Richtungen. Das ist ein Symptom dafür, dass die Verkehrsführung an den Brückenköpfen ziemlich mies ist. Zur ersten Orientierung erstmal eine Übersichtskarte von OpenStreetMap.org:

Ich bin früher regelmäßig zwischen Endenich (im Westen) und Holzlar (im Osten) gependelt. Dabei habe ich diverse Routen ausprobiert und bin letztlich bei dieser hier für beide Richtungen geblieben:

Für die Strecke von Endenich nach Holzlar sieht das soweit auch sinnvoll aus. Aber für die Rückrichtung erscheint das erstmal bekloppt. Um das zu verstehen, zeige ich einmal die Verkehrsführung an den Brückenköpfen. Dann kann ich darlegen, warum die anderen Routen alle weniger angenehm sind.

Read more…

Password Guideline Nonsense

My company has solid security policies which seem to be oriented at best practices. And I am very glad that they don't enforce nonsense policies that would actually weaken the passwords that users choose. That of course isn't the case with every company. There is one particularly arcane case. They have these rules for passwords:

  • At least two capital letters
  • At least one special character
  • At least one digit
  • At least 12 characters
  • At most three characters may overlap with the last 10 passwords
  • No characters from the last password

And the passwords have to be changed every four weeks. Of course, writing them down is forbidden, as that would weaken the security.

How are employees supposed to sensibly come up with these passwords and remember them? They will of course come up with a clever enumeration scheme that will just barely abide these rules. And I am sure none of them will have more than 12 characters. If they were allowed to have the passwords for more than four weeks, people might actually take more time to craft a sensible password. But this seems to encourage writing it on sticky notes …

Straßen Privatisieren

Freie Fahrt für freie Bürger ist das Leitbild deutscher Mobilität. Es geht also um Freiheit, und die Partei mit »Frei« im Namen weiß, ist vor allem der freie Markt das für die Realisierung wichtige Element. Wie auch in anderen Lebensbereichen wird die unsichtbare Hand des Marktes aber von links-grünen Fortschrittsfeinden aufgehalten, sodass am Ende der Verkehr aufgehalten wird.

Wie bei allen anderen gesellschaftlichen Problemen ist auch hier eine Befreiung nötig. Das gesamte Straßenverkehrsnetz muss privatisiert werden, staatliche Eingriffe drastisch reduziert und somit der Markt befreit werden. Eine vollständige Privatisierung bietet zudem ungeahnte Möglichkeiten für Kapitalanleger und Investoren, sodass die private Altersvorsorge ebenfalls gestützt werden kann.

So ein abstraktes Konzept ist aber nicht genug, es müssen konkrete Ideen her. Und somit fangen wir doch einfach bei den Autobahnen an. Dort wird schon jetzt eine Maut Infrastrukturabgabe erhoben. Hier wurde schon einiges richtig gemacht, der Betrieb der Abrechnungsinfrastruktur wurde der Privatwirtschaft überlassen. Dies soll in Zukunft auch weiter exakt so gehandhabt werden. Allerdings soll die Maut für alle Verkehrsteilnehmer gelten, nicht nur für die LKW.

Read more…

Fensterfalzlüfter

Ich kann normalerweise ganz gut hören, ob irgendwo noch ein Fenster geöffnet ist. Der Straßenlärm klingt dann ganz anders. Mit geschlossenen Fenstern ist es dann deutlich dumpfer. In meiner neuen Wohnung habe ich aber häufig den Eindruck, dass die Fenster nicht ganz geschlossen waren. Da es sich um Plastikfenster handelt, kann man das eigentlich nicht falsch machen. Aber vorbeifahrende Autos sind irgendwie immer so präsent …

Irgendwann habe ich mir mal die Fenster genauer angeschaut. Und da habe ich nicht schlecht gestaunt, als ich auf das Konzept Fensterfalzlüfter gestoßen bin. Das ganze ist ein Konzept zur kontinuierlichen Raumbelüftung. Das Fenster hat zwei Dichtungen, einmal im Rahmen und einmal im Flügel. Die Dichtung im Rahmen ist unten an der Seite unterbrochen, sodass dort kalte Luft von außen dort einströmen kann.

Diese wird erwärmt und steigt dann zwischen der inneren und äußerden Dichtung auf. Sie kommt oben an, dort ist der Fensterfalzlüfter eingebaut. Letztlich ist das nur ein Plastikteil mit einer kleinen Klappe. Sollte es zu sehr ziehen, kann sie den Spalt somit schließen.

Read more…

Wear on CF card receptacles

My camera is a rather old DSLR which still uses CF cards. In order to get the images, I would take it out of the camera body, put it into a card reader and then transfer the images. Afterwards the card was inserted back into the camera body. This has worked fine for years, but one day the card reader would not work any more. I didn't understand, and just bought a new card reader. One day in 2016, the new card reader stopped working. I then looked into the card reader and saw that a pin was bent.

So I took a simple screwdriver and tried to fix the pin and bend it back.

Read more…

Simulating Scythe: Greedy Beam Search

Scythe is a board game from the engine builder genre. Is a rather complicated game as there are different types of entities and actions around. It is about collecting resources, deploying the hero, workers, mechs and buildings, moving them around, fighting with others, accomplishing achievements. In the end one obtains a score based on the number of achievements, controlled hexes and resources as well as left-over money and some bonus points.

The player will pick a random player mat, the following shows the innovative mat (German version):

Every turn one picks a new column and performs the top, bottom or both actions. There are certain patterns that lead to successful game play. Most importantly one should strive to do both the top and bottom action in order to get the most done each turn. With the innovative board, the bolster action is combined with the build action. Therefore one should have some wood ready when picking this to perform both actions. But wood is collected either through the trade or produce top-row actions, which have their own bottom-row actions. Different player mats have different arrangements, therefore the cycles that one goes through are also different. After playing this game a couple of times, one gets better at building a good engine.

Whenever I play such games, I see a game graph in my head. Abstract models seem to be more present than the beautiful artwork of the game. So I spend a whole rainy Saturday actually implementing a subset of the game and let if figure out good ways to build that engine. In this blog post I want to share the code, explain my approach and share some results. There is so much more to be done, but there is only so much one can do in one sitting.

Read more…

Cookies and Do Not Track

As an internet user, you of course have seen more of these cookie banners than you had liked to. They are on virtually all sites that I browse and they totally annoy me. A decade ago websites had those pesky adversisement pop-ups, now they have those banners that show up seconds after the site has loaded enough to see the content.

There is quite the spectrum. Some sites will just notify that they are using cookies and by using the website you agree. They offer a link to a page where you can learn more. You can ignore the notification at the bottom of the screen and just go on reading the actual content. Other pages have a blocking modal dialog where you have to first take care of the cookies.

Read more…

US International Keyboard Variants

I have been using the ANSI keyboard layout for many years now and stronly prefer it over the ISO layout. The ANSI layout has the smaller enter button and a longer left shift key. Then I use the US international layout such that I can create German umlaut characters and other fancy things. On top of that I use the Linux compose key to create even more characters.

The issue the sheer variety of US international keyboard layouts. Every time I set up a new computer, I end up having to cycle through all of them to find the one that I actually want. There are two major differences: One is whether there are more accented characters or more symbols. The other is the presence of dead keys. I absolutely hate dead keys, I need those accents on their own for programming. Curiously the one that has no dead keys has “dead keys” in the name.

But there are many other variants, which don't work for me.

Read more…

Reader Survey — Leserumfrage

English version below.

Ich benutze kein Tracking, daher habe ich im Grunde keine Ahnung, wer meine Leser sind. Ursprünglich ging es auf meiner Website hauptsächlich um Programmierung, dann habe ich ziemlich Physik-Studiumsmaterial hochgeladen. Und neuerdings schreibe ich über Verkehrspolitik. Wenn du möchten, kannst du an meiner Zwei-Fragen-Umfrage teilnehmen:

Umfrage auf Google Forms


I don't use any tracking, therefore I basically have no clue who my readers are. Originally my website was mostly about programming, then it became rather heavy with Physics study material. And lately I'm writing about traffic policy. If you'd like, you could participate in my two-question survey:

Survey on Google Forms