Hi, I am Martin Ueding, a physicist (M.Sc.), programmer and PhD student in Lattice QCD.

Although I am German, most of the content on this website is in English as both science and programming is communicated mostly in English.

Since 2011, I study Physics at Bonn university. I have finished my Bachelor degree in 2014 and my Master thesis in 2017. 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. 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:


Are Clothespins Worth Using?

I've been using clothespins all along. I know other people who do as well, and some who never use them. While discussing this over dinner, it seems there are two stances that people take:

  1. Pins are not worth using at all. The clothing dries as fast as it does without them, perhaps insignificantly slower. The time needed to work with the pins does not make up for the benefit of having the laundry done faster.

  2. Pins clearly must do a difference as the clothing is just in two and not four layers.

Well, I am clearly in the second team. But this is a hypotheses that one can test and negate. So apply the scientific method! As a setup I took four pieces of underwear and two t-shirts. Then I put half of them on the dryer with pins, the other just folded in half. Every now and then I measured their weight with a kitchen scale.

Read more…

Fahrradstraßen in Bonn

Bonn wollte ja mal »Fahrradhauptstadt 2020« werden, also Landeshauptstadt. Das hatte ich damals mit Münster im gleichen Bundesland schon für sehr sportlich gehalten, aber gut. Bonn brüstet sich damit, dass immer mehr Fahrradstraßen eingerichtet werden. Das klingt ja auch ganz toll, man stellt sich naiv vor, dass das Straßen nur für Fahrräder sind. Wie sieht es denn in der Realität aus?

Schaut man sich die Karte mit Fahrradstraßen an, sieht man schon einige davon in Bonn.

Der Eindruck trügt allerdings. Wenn man auf den Bereich der Innenstadt vergrößert, so sieht man besser die Verteilung. Vor allem wird deutlich, wie große Lücken dazwischen sind. Es ist also kein Netz, sondern einfach nur einzelne Straßen. Und wenn man ehrlich ist, sind das nicht wirklich kritische Verbindungen, sondern eher ein paar Straßen, die eigentlich eh keinen großen Beitrag zum Verkehr haben.

Read more…

Suggestive Meldungen zu Unfällen mit Radfahrerbeteiligung

Ich lese auf Twitter immer wieder Unfallmeldungen zu Vorfällen zwischen Autofahrern und Radfahrern, die über die offiziellen Polizei-Accounts geteilt werden. Dabei ist die Perspektive fast immer so gewählt, dass die Autofahrer nichts falsch gemacht haben und die Radfahrer sich komplett selbstverschuldet gegen das Auto geworfen haben. Ich möchte hier ein paar davon zeigen und auseinandernehmen.


Nehmen wir die Meldung der Polizei Borken mit diesem Titel »Kind von Auto touchiert und gestürzt«. Dort steht im Mittelteil:

Der Zwölfjährige sei daraufhin auf den Grünstreifen geraten, habe die Kontrolle verloren und sei mit seinem Fahrrad hingefallen.

Das liest sich ja so, als sei der Junge zu doof zum Fahrradfahren. Wenn man aber die ganze Meldung liest, so hat dort ein Fahrer mit großem Auto hinter einem Kind gedrängelt und gehupt. Er ist dem Kind sogar so nach aufgefahren, dass er dessen Fahrrad mit seiner Stoßstange berührt hat. Und das Kind hat dann wenig überraschend die Kontrolle über das Fahrrad verloren. Und der Fahrer begann Fahrerflucht.

Das ist dann ziemlich krass, aber wenn man nur die Überschrift liest, klingt es verharmlosend.


Meldung der Bonner Polizei:

Bonn-Weststadt: Hauptunfallursache Abbiegen - Transporter stößt mit Fahrradfahrer zusammen — Twitter/Polizei NRW BN

In der Pressemitteilung steht dann das hier:

Der 57-jährige Radfahrer war am Vormittag gegen 11:20 Uhr auf der Endenicher Allee in Fahrtrichtung Endenich auf dem Fahrradschutzstreifen unterwegs. Auf Höhe der der Kaufmannstraße sei er neben einem Mercedes Sprinter gefahren, der plötzlich nach rechts abgebogen sei. Der 57-Jährige habe einen Zusammenstoß nicht mehr verhindern können. — bonn.polizei.nrw

Da fuhr also ein autonomer Mercedes Lieferwagen, der neben dem Radfahrer irgendwie aufgetaucht ist. Und dann bog der Lieferwagen einfach von selbst nach rechts ab, da konnte man nichts machen. Und der Radfahrer ist schuld, weil er nicht rechtzeitig bremsen konnte. Das kann doch nicht deren Ernst sein!

Read more…

Python has no Variables

Python doesn't have variables. It sounds mind-boggling, as one seems to use them all along. But really, that is not how it works with Python. This will really confuse people with a background in C or C++. If we do int n in C++, and write n = 1, n += 1 or the like, the address &n will never change. The value changes.

But in Python the “variables” are mere pointers to values somewhere. This can be seen because doing n += 1 in Python actually creates a new value. Expanding this as n = n + 1 and reading it as “let n point to the value of n + 1. We can easily see this by creating a variable and looking at the ememory address.

>>> n = 10000
>>> id(n)
140715441549616

Now increasing this number will make n point to a different address in memory!

>>> n += 1
>>> id(n)
140715441549392

Read more…

Umlaufsperren

Umlaufsperren sind eine echte Krankheit. Und leider sind sie auch nicht nur ein Relikt aus Vergangenen Zeiten. Diese hier am Radweg entlang der Sieg wurde erst letztes Jahr neu gebaut. Die Abstände zwischen den beiden Teilen sind halbwegs groß, sodass man mit dem Rad noch so halbwegs vorbeikommen kann. Bei der Sperre vorne im Bild ist allerdings der Weg recht steil, sodass man bergauf sein Fahrrad gut beherrschen muss, damit man sie fahrend passieren kann.

Mir erschließt sich auch nicht wirklich der Grund. Die Strecke ist komplett einsehbar, es gibt keinen querenden Verkehr. Vielleicht ist sie nur für die Baustelle errichtet worden, damit Radfahrer nicht in die Baustelle rasen. Aber warum hat man dann nicht nur die unten? Damit man nicht schnell den Hügel herunter fährt und nicht mehr rechtzeitig bremsen kann?

Read more…

Mehrwertsteuersenkung und Veränderter Grundwert

Bei ALDI gibt es wegen der Mehrwertsteuersenkung aktuell 3 % auf alles. Mediamarkt hatte manchmal auch so Aktionen, bei denen es 19 % Rabatt unter dem Motto »Mediamarkt schenkt die Mehrwertsteuer« gibt. Interessant ist ja eigentlich, dass bei den Rabatten die Preise sogar noch weiter gesenkt werden als nötig.

Sei der Nettopreis $N$, dann ist der Bruttopreis $B$ bei einer Mehrwertsteuer $m$ gegeben durch $B = N \cdot (1 + m)$. Im Normalfall ist $m = 0.19$ und daher haben wir $B = 1.19 \cdot N$. Möchte man die Mehrwertsteuer erlassen, so muss man den einen Rabatt geben, der $1/1.19 \approx 0.8403361$ entspricht. Das ist aber ein Rabatt von $1 - 0.8403361 \approx 0.1596639$, also knapp unter 16 %. Würde Mediamarkt den Kunden aber nur 16 % Rabatt geben, wären wahrscheinlich viele empört. Also gibt es noch weitere 3 % Rabatt für alle, die in Prozentrechnung nicht so fit sind.

Read more…

Scattered Across Messengers

For the past years I have only used WhatsApp and Telegram for messaging. Surely also Discord, Skype, Team Speak and Zoom for certain discussion groups, but not genereal messaging. Most people use WhatsApp, and few use Telegram and insist that it is the better messenger. I still do not like Telegram for its home-grown cryptography, trusted-server design and opt-in end-to-end-encryption. A relative had a security incident on Telegram, apparently somebody was reading all the chats and searched for login credentials that were sent to somebody else. In the end the person ditched Telegram as they did not feel secure on it any more.

But then the family group on Telegram did not work any more. WhatsApp is not an option because another person despises Facebook and does not want to share any data with them. We eventually agreed on the Signal messenger. I have installed this on my phone an laptop, and the family group was opened up there.

Read more…

Assigning Audio Devices to Programs

On my Windows PC I have multiple audio devices. There is a 2.1 speaker system attached via USB and an analog headphone jack on the front. When I am not alone, I attach the headphones and want it to be used. Otherweise I remove the headphones and want to use the speakers. For some reason Windows has the super obnoxious limitation that audio sinks cannot be changed after the application has launched. There is a settings menu where I can apparently set the source and sink for separately for every application. But it does not seem to have any effect when the application is already running!

Read more…

Bonner Innenstadt als Freiluft-Mall?

Ich bekomme über lokale Zeitungen, Twitter, Newsletter des ADFC (Allgemeiner Deutscher Fahrrad-Club) immer wieder Einblicke in die Verkehrsplanung in Bonn. Interessant ist das Festhalten von vielen am City-Ring, einem Rundkurs im Uhrzeigersinn um die Fußgängerzone (Belderberg, Am Hof, Rathausgasse, Maximilianstraße, Rabinstraße, Berliner Freiheit, Oxfordstraße, Bertha-von-Suttner-Platz). In der Maximilianstraße gab es das Experiment zur Sperrung für MIV, dann ein ähnliches Experiment in der Rathausgasse zur Errichtung einer Radspur in Gegenrichtung. Nun wurde neulich beschlossen, dass der MIV wieder durch die Rathausgasse fahren darf.

Dafür stimmte auch der BBB (Bürger-Bund-Bonn). Über Twitter habe ich mit deren OB-Kandidaten darüber diskutiert, die IHK Bonn (Industrie- und Handelskammer) machte ebenfalls mit. Letztere kenne ich als Vertretung für die bedingungslose Erreichbarkeit der Innenstadt mit dem Auto.

Es ist anscheinend oberste Priorität, dass man mit dem Auto im Kreis um die Fußgängerzone fahren kann. Man muss von einem Parkhaus zum nächsten fahren können. Wenn man am Busbahnhof wartet, sieht man manchmal aber die immer gleichen Poser mit dem Auto im Kreis fahren, wollen den Leuten an den Bushaltestellen zeigen, wie geil laut ihr Auto ist. Durch die Kappung des City-Rings wurde das unterbunden. Für mich hat das die Aufenthaltsqualität in der Innenstadt erhöht. IHK und BBB sahen hier aber den Untergang.

In der Diskussion kam dann heraus, dass die Erreichbarkeit der Innenstadt für Externe wichtiger ist, als eine für die Anwohner leisere und lebenswertere Stadt zu haben. Der »inhabergeführte Einzelhandel« würde anscheinend sofort pleite gehen, wenn man nicht mehr um die Innenstadt kreisen kann. Der ADFC hat ein Konzept vorgeschlagen, bei dem man das Parkhaus auf der jeweiligen Seite der Innenstadt erreichen kann, und dann wieder abfährt. Es gibt keinen Grund im Kreis zu fahren. Aber das reicht anscheinend dem scheuen Reh Einzelhandel nicht.

Read more…

Poller

Poller sind eine echte Krankheit im Straßenverkehr. Sie sind fast immer dazu da Autofahrer an Fehlverhalten zu hindern. Sie werden meist gegen illegales Befahren oder Falschparken eingesetzt. Angebracht werden die Scheißteile jedoch auf der Infrastruktur, die sie schützen sollen. Das muss man sich einmal auf der Zunge zergehen lassen: Um den Gehweg für Fußgänger freizuhalten, setzt man Poller auf den Gehweg. Das sieht dann so aus:

Der rechte Gehweg ist jetzt super gegen Falschparker abgesichert. Allerdings ist der vergleibende Gehweg jetzt auch noch schmaler, sodass man mit einem Kinderwagen echt aufpassen muss. Außerdem kann man nicht mehr entspannt zu weit nebeneinander gehen. Ständig muss man entweder hintereinander gehen oder eine Person weicht kurz auf die Fahrbahn aus. Man kann das ganz gut bei den beiden Personen am Ende der Straße sehen, da geht er auf der Fahrbahn, sie geht auf dem Gehweg.

Um die schwächeren Verkehrsteilnehmer zu schützen, werden sie effektiv noch weiter gegängelt. Die Das Ordnungsamt der Stadt Bonn könnte auch einfach besser kontrollieren. Falschparker haben effektiv nichts zu befürchten. Also kapituliert die Stadt und setzt diese Poller dort hin. Angenommen, ich hätte meinen Eltern während der Schulzeit von einem Mobber erzählt, der mir regelmäßig mein Pausenbrot wegnimmt. Wie kann man dann nicht den Mobber angehen? Die Reaktion der Stadt wirkt auf mich als hätten meine Eltern mir den Tipp gegeben mein Brot in Glasscherben zu wälzen, sodass der Typ es mir nicht mehr wegnehmen wolle. Gut, ich hätte es dann auch nicht mehr genießen können, aber immerhin hätte ich es noch. Man könnte die Poller doch auch auf die Fahrbahn stellen, oder?

Read more…