🇩🇪 — 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 Computer. 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.

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.

🇺🇸 — 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, English articles about computer and programming, about science and travel. The articles about traffic policy are in German.


Mich findet man auch auf anderen Plattformen und Webseiten:


Clean Architecture for Vigilant Crypto Snatch

I have recently finished Clean Architecture1. In the book Robert C. Martin presents a certain way to organize components of a program. It consists of a series of concentric rings, where dependencies are only inward. There is a core of central business rules in the middle, depending on nothing else. Then there are use-cases around that, depending only on the core business rules. And then even further out are adapters to other libraries and interfaces. Since there are no dependencies on concrete things, these can easily be exchanged for something else, be substituted for tests and so on.

For years I wanted to improve the design of the software that I work on, so I have been reading books like that. And today I want to apply the ideas to my hobby project Vigilant Crypto Snatch to get some experience with the architecture. The idea is to first draw the architecture of the current system, then clean it step by step.

Weiterlesen…

Doppelte Radwegsführung in Lohmar

Auf einer Radtour durch Lohmar habe ich eine sehr verwirrende Radverkehrsführung gesehen. Es ist unklar, ob man hier den Schutzstreifen auf der Fahrbahn oder den gemeinsamen Geh- und Radweg nutzen soll.

Das ist bei Hauptstraße 9, 53797 Lohmar, 50.84355 N, 7.21765 E.

Eigentlich sind Verkehrszeichen auf dem Boden nicht ausreichend, so ein Zeichen 240 muss schon noch an einem Mast stehen. Also gilt wohl der Schutzstreifen.

Weiterlesen…

Radroute mit Schiebestrecke

In Koblenz kann man die Mosel über die Balduinbrücke queren. Damit man aber vom Peter-Altmeier-Ufer dorthin kommt, muss man ein Stück über einen Gehweg.

Das erscheint mir für eine Radroute auch nicht so wirklich durchdacht. Also noch eine E-Mail an die Stadt.

Weiterlesen…

Radweg mit Treppe in Bendorf

In Bendorf gibt es von der Eisenbahnstraße zur A 48 eine wunderbare Treppe. Das wäre ja noch okay, wenn diese nicht mit einem Zeichen 240 ausgeschildert wäre. Man darf dort also mit dem Fahrrad fahren. Aber wie soll man das bitte machen?

Die Rille zum Schieben zählt nicht. Sobald man schiebt, ist man juristisch ein:e Fußgänger:in. Ein Zeichen 239 würde also auch komplett ausreichen. Keine Ahnung, was die sich dabei gedacht haben.

Weiterlesen…

Clean Architecture and Social Networks

I'm currently reading Clean Architecture: A Craftsman's Guide to Software Structure and Design by Robert C. Martin, which came out in 2017. It is a book about software architecture and design. And today I was able to put something that annoys me about social network and messaging services into new words.

A clean architecture consists of entities at the core. These are important business rules which would even exist if they are not implemented with a computer, but with a paper file system. Then around that are use cases. These manipulate the entities, but have no specific dependence on any implementation. Around those are components for user interface, data presentation and data storage. The dependencies are only inward, the core doesn't depend on any specifics. This is achieved by letting the inner layer control the interface, the outer layer implements it. A use case might need to store data, so part of that component will be an interface for data storage. A data storage implementation will implement that interface, but live in a different component. The implementation will just be one of many possible ones, the use case doesn't depend on anything specific.

Transfer that to content in social media. I have the text of my blog posts, I have the tracks I rode with the bike, I have taken images, and I want to send messages to friends. All these exist independent of the actual medium that I publish them on. The file formats (Markdown, JPEG, GPX) which I use are an implementation detail. And now I want to post them, that is my use case. And I want to post images to an image service, I want to post blog posts to a blog service, and GPS recordings to such a service.

Weiterlesen…

Fachaufsichtsbeschwerde nach Dienstaufsichtsbeschwerde

Mit dieser Antwort bin ich nicht zufrieden gewesen und habe daher eine Fachaufsichtsbeschwerde (FAB) geschrieben. Diese geht eine Stelle höher als die Dienststelle, nämlich an die Behörde, die die Fachaufsicht über das Ordnungsamt hat. Das scheint die Bezirksregierung Köln zu sein. Auf deren Webseite heißt es:

Für die nichtpolizeiliche Gefahrenabwehr sind zunächst die Kommunen in eigener Verantwortung zuständig. Die Koordination, die fachtechnische und organisatorische Unterstützung bei der Erfüllung dieser Aufgabe, sowie die Fachaufsicht erfolgt jedoch durch die Bezirksregierung.

Daher habe ich die folgende Fachaufsichtsbeschwerde an die Bezirksregierung Köln geschickt.

Weiterlesen…

Fahrrad-Umleitung plötzlich Einbahnstraße

In Königswinter ist der Weg am Rheinufer so schmal, dass man die Radfahrer:innen auf eine eher längere Umleitung schickt, sodass Konflikte mit Fußgänger:innen ausbleiben. Das ist auch ganz gut, andernfalls hätten einige Bäume gefällt werden müssen. Das ganze ist auch als Umleitung ausgeschildert, man kann es also gut finden.

Nicht gut ist allerdings, dass da jetzt im Rahmen einer Baustelle eine Einbahnstraße eingerichtet worden ist, bei der die Radfahrer:innen vergessen worden sind.

Das ganze geht dann um die Ecke genauso weiter.

Weiterlesen…

Fehlendes Radwegszeichen in Bülgenauel

Die Radroute entlang der Sieg führt durch Bülgenauel im Stadtgebiet Hennef. Dort überquert man die Bahnstrecke und fährt dann auf eine Landstraße zu:

Dort sieht man links den Knotenpunkt sowie die Wegweiser zu den nächsten Knotenpunkten. Soweit, so gut. Fährt man nun aber an die Kreuzung heran, sieht man hier auf der linken Seite ein Hochboard.

Weiterlesen…

Sichere Querungsmöglichkeit am Petersberg

Ich war neulich auf dem Hohen Ölberg und habe mir dann die Abfahrt von der Margarethenhöhe nach Königswinter auf der Landstraße gegönnt. Davon gibt es auch ein Video. Am Fuß des Petersberges beginnt auf der linken Seite ein Radweg.

Der ist mit Zeichen 240 ausgewiesen und entsprechend mit Benutzungspflicht. Das Problem ist jedoch, dass man dort nicht mal eben auffahren kann. Ich müsste den Linksabbieger überfahren, dort sind aber durchgezogene Linien. Kurzum, ich kann dort nicht legal drauf.

Weiterlesen…