🇩🇪 — Hi, ich bin Martin Ueding; Physiker, Maschinenlerner, Softwareentwickler und Fahrradaktivist. 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 und Twitter 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 and travel. 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 and Twitter.


Geringere Informationsdichte auf modernen Webseiten am Beispiel von IFTTT

Ich erinnere mich noch an früher, an die Zeiten von Röhrenbildschirmen. Da hatte ich einen 17" Röhrenbildschirm, der einem 15" Flachbildschirm entsprach. Darauf hatte ich 800×600 Pixel Auflösung. Mit Windows XP und den damaligen Programmen passte da genug drauf. Irgendwann hatte ich ein Apple iBook mit 1024×768 Pixeln Auflösung. Da ging auch viel mit, gerade Programme wie Photoshop und Final Cut hatten eine sehr dichte Nutzeroberfläche. Die Monitore wurden größer, ich habe privat noch immer 23" mit 1920×1080 Pixeln. Da geht viel drauf.

Dann kam aber das ganze mobile Internet, und die Informationsdichte hat rapide abgenommen. Besonders krass fand ich das bei IFTTT neulich. Ich habe den Browser im Vollbild. Und so riesig sah dann alles dort aus:

Weiter rein wurde es auch nicht besser.

Weiterlesen…

Gefolgte Accounts zu Mastodon mitnehmen

Ich bin von Twitter zu Mastodon umgezogen, bei der Abrissparty wollte ich nicht mehr in der ersten Reihe dabei sein. Meinen Account gibt es weiterhin, allerdings werden da nur per IFTTT die Blogartikel geteilt, ich schreibe da keine exklusiven Inhalte mehr.

Um die Accounts, denen ich folge, auch auf Mastodon zu finden, haben viele Leute ihre Mastodon-Accountnamen in ihren Profiltext geschrieben. So habe ich dort @Martin_Ueding@bonn.social drinstehen. Das Werkzeug Movetodon kann sich mit dem eigenen Twitter-Account verbinden und liest die Profiltexte aller gefolgten Accounts aus. Dann verbindet man es mit dem eigenen Mastodon-Account und das Werkzeug fügt die ausgelesenen Accounts dann dem eigenen Account hinzu.

So konnte ich alle viele meiner gefolgten Accounts mitnehmen, ohne dass ich da viel für tun muss. In die andere Richtung habe ich auch meinen Nutzernamen im Twitter-Profil, damit andere mich ebenfalls umziehen können. Daher meine Empfehlung das entsprechend auch zu tun, damit andere Leute das finden können.

Gefährlicher Radweg-Seitenwechsel am Drachenfels

Kommt man von Ittenbach die L 331 Ferdinand-Mülhens-Straße Richtung Rhein gefahren, so gibt es erstmal keinen Radweg. Dann beginnt am Fuß des Petersberges ein Radweg auf der linken Seite, aber ohne sichere Querungsmöglichkeit. Das ist schon ein gefährlicher Seitenwechsel.

Als wäre das nicht dumm genug, gibt es kurz darauf dann wieder den nächsten Seitenwechsel. Der Radweg führt entgegen der Fahrtrichtung in einer Parallelstraße mit Parkplätzen. Und dann hört der auf, man muss auf die andere Seite.

Die Stelle ist einfach wieder dumm. Und wohl auch nach VwV-StVO verboten. Es hilft ja nichts, also schreibe ich Straßen NRW mal wieder an.

Weiterlesen…

Gemischte Packungen beim Aldi

Beim Aldi sind häufig mehrere Varianten eines Produktes in einem Karton. So gibt es Stiegen je hälftig mit zarten und kernigen Haferflocken. Oder fertige Tortellini mit Gemüse und mit Fleisch. Das vereinfacht wahrscheinlich die Logistik, so haben sie dann nur Stiegen mit Haferflocken und ganze Paletten mit diesen Stiegen. Klingt erstmal praktisch.

In den Läden sieht das allerdings so aus, als würde das Konzept nicht aufgehen. Bei den Haferflocken ist meist die oberste Stiege nur noch mit kernigen Haferflocken voll, die verkaufen sich wohl einfach besser. Tortellini mit Fleisch sind meist die einzig übrigen, die ohne Fleisch sind fast immer vergriffen. Genauso beim Käse, da steht immer alles voller Maasdamer, der Gouda ist aber schon weg.

Weil da aber noch eine Stiege oder Karton steht, wird der von der Mitarbeiter*innen auch nicht nachgefüllt. Es sammeln sich also mit der Zeit die unbeliebten Varianten an, und die beliebten Varianten sind dann einfach weg. Mich nervt das, weil ich dann gewisse Dinge bei einem Einkauf nicht bekommen kann.

Weiterlesen…

Inkompatible Bildraten zwischen verschiedenen Kameras

Möchte man Video produzieren, muss man sich über die Auflösung und Bildrate Gedanken machen. Das eine sind Gedanken bezüglich der Aufnahme. Zum Beispiel haben wir in Deutschland eine Netzfrequenz von 50 Hz, sodass Glühlampen mit dieser Frequenz flackern. Nimmt man hier mit 60 Bildern/Sekunde auf, erhält man eine Schwebung. Andererseits muss man aber auch genug Bildrate haben, damit es für das Ziel sinnvoll ist. Computermonitore haben 60 Hz. Mein Fernseher (Samsung GU43TU8079) hat 60 Hz. Somit erscheint mir eine Produktion in 60 Hz eigentlich am sinnvollsten.

Nur unterstützten das nicht alle meine Geräte. Die Canon-Kamera und das Samsung-Handy unterstützten diese Modi:

Gerät Brennweite Auflösung Bildrate Ton
Canon PowerShot G5 X Mark II 24 – 120 mm 1280×720 50 Ja
Canon PowerShot G5 X Mark II 24 – 120 mm 1280×720 59,94 Ja
Canon PowerShot G5 X Mark II 24 – 120 mm 1920×1080 23,98 Ja
Canon PowerShot G5 X Mark II 24 – 120 mm 1920×1080 25 Ja
Canon PowerShot G5 X Mark II 24 – 120 mm 1920×1080 29,97 Ja
Canon PowerShot G5 X Mark II 24 – 120 mm 1920×1080 50 Ja
Canon PowerShot G5 X Mark II 24 – 120 mm 1920×1080 59,94 Ja
Canon PowerShot G5 X Mark II 24 – 120 mm 1920×1080 100 Nein
Canon PowerShot G5 X Mark II 24 – 120 mm 1920×1080 119,9 Nein
Canon PowerShot G5 X Mark II 24 – 120 mm 3840×2160 23,98 Ja
Canon PowerShot G5 X Mark II 24 – 120 mm 3840×2160 25 Ja
Canon PowerShot G5 X Mark II 24 – 120 mm 3840×2160 29,97 Ja
Samsung Galaxy A33 26 mm 1280×720 30 Ja
Samsung Galaxy A33 26 mm 1920×1080 30 Ja
Samsung Galaxy A33 26 mm 1920×1080 60 Ja
Samsung Galaxy A33 26 mm 3840×2160 30 Ja
Samsung Galaxy A33 13 mm 1280×720 30 Ja
Samsung Galaxy A33 13 mm 1920×1080 30 Ja

Das ist echt absolutes Chaos. Die Auflösungen sind mit HD, FullHD und UHD (4k) immerhin relativ standardisiert, wobei man da auch aufpassen muss. »4k« bezeichnet halt irgendwas »um 4000 Pixeln Breite«. Immerhin sind sich hier die beiden Kameras, mein Computermonitor und mein Fernseher einig, was FullHD und 4k sind.

Weiterlesen…

Brustharness für Kamera – Ablösung der Lenkerkamera

Früher hatte ich eine Kamera am Fahrradlenker. Das war eine Actionkamera, eine Garmin Virb Elite. Die hat auch gut funktioniert, die Bildqualität war allerdings so mäßig. Wirklich viel gebracht hatte es nicht, daher habe ich irgendwann das Filmen komplett aufgegeben. Nun haben wir allerdings demnächst einen Ortstermin mit anderen Aktiven und ich wurde gefragt, ob ich nicht vielleicht auch was filmen könnte. Die Kamera hatte ich schon verkauft, und Handy am Lenker ist auch ziemlich doof.

Ich habe also überlegt, was ich sinnvoll machen könnte, damit das Video am Ende auch brauchbar ist. So bin ich dann darauf gekommen, wie ich für ausgewählte Anlässe sinnvoll filmen könnte: Mit einem Brustgeschirr.

Da kann ich wahlweise meine Canon PowerShot reinschrauben und damit filmen, wie oben im Bild gezeigt. Alternativ kann ich auch mein Handy dort montieren und damit filmen, siehe das folgende Bild.

Weiterlesen…

Fortsetzung des Verkehrszeichen-Dramas in der Lindenstraße

In Sankt Augustin Niederberg mündet die Lindenstraße in die Alte Heerstraße. Die Alte Heerstraße hat schon einen Artikel von 2021, weil die Radverkehrsführung dort schon immer merkwürdig war. Im Dezember 2022 gab es dann einen Artikel zur entfernten Fahrradfreigabe entlang der Lindenstraße. Ich hatte damals an die Stadtverwaltung geschrieben und mich erkundigt, was sie damit meinten.

Ich bekam darauf keine Antwort, allerdings haben sie das Radrouten-Schild beim Leihfahrräderparkplatz entfernt (linker Pfeil). Nun steht das alles im Widerspruch zu dem Radwegszeichen ganz hinten (rechter Pfeil)

Leider hatte ich die SD-Karte zuhause im Laptop vergessen, daher gibt es in diesem Artikel nur Handyfotos. Aber man sieht trotzdem genug.

Weiterlesen…

Aufgemalte Verkehrsinsel in Vilich

In Bonn-Vilich auf der Stiftsstraße habe ich diese merkwürdige Verkehrsinsel gesehen. Da sind die Umrisse einer Verkehrsinsel erkennbar, aber es ist keine dort.

Schaut man genauer hin, so erkennt man dort noch Reste auf der Fahrbahn. Es könnte also dort einmal eine Verkehrsinsel gewesen sein, die dann abgebaut worden ist.

Weiterlesen…

Versuch einer neuen Route ins Büro

Bei der Fahrt ins Büro hatte ich eine schöne Route, bis es dann mit der Umgehungsstraße um Meschenich losging und die Straße gesperrt wurde. Ich brauchte eine neue Route. Ich nahm die Brühler Landstraße trotz Blendungen und die Militärringstraße trotz dem schlechten Radwegs.

So richtig toll war es nicht, also probierte ich mal eine Route eher durch die Grüngürtel der inneren Stadt aus. Die bin ich früher schon gefahren, das sollte eigentlich ganz gut sein.

Das Problem ist aber, dass es in Köln so viele richtig fahrradfeindliche Ecken gibt, dass das nur noch frustrierender war.

Weiterlesen…

Objektorientierung als Nachrichten verklärt

Viele der heute gängigen Programmiersprachen folgen dem objektorientierten Paradigma. In Anleitungen wurde das früher häufiger als »Nachrichten senden« erklärt, und mich hat das mehr verwirrt als es geholfen hätte.

Also nehmen wir ein einfaches Beispiel in Python:

class MyClass:
    def my_method(self):
        ...

def main():
    my_instance = MyClass()
    my_instance.my_method()

Wir haben eine Klasse MyClass mit der Methode my_method. In der Funktion main erzeugen wir eine Instanz dieser Klasse und rufen die Methode auf. In diesen Tutorials wird es aber anders beschrieben: Die Funktion main sendet an das Objekt my_instance die Nachricht my_method. Bei »Senden« denke ich an Netzwerkverbindungen.

Weiterlesen…