Michael Ummels bio photo

Michael Ummels

Software. Railways. Traveling.

Twitter Github

All Posts


Going Static

After almost 10 years, I have decided to ditch Wordpress for Jekyll, a static blog engine. As opposed to Wordpress, Jekyll is not dependent on MySQL and PHP,...


Tramino Braunschweig

After some delays due to certification, the new Tramino trams for Braunschweig have finally entered into service last Monday. The first two pictures show uni...

Dijkstra in Scala

Dijkstra’s algorithm is a fundamental graph algorithm, which allows to compute the shortest path from a source node to a target node in a directed, weighted ...


Priority Maps in Scala

In many algorithms—including Dijkstra’s algorithm for finding the shortest path between two vertices in a weighted graph—we need access to a data structure t...

Dawn in Brunswick

This tram has just left the depot to make its first run as line M5 to Hauptbahnhof. Due to construction work at Leonhardplatz the direct route to the termina...

Happy Birthday, Shinkansen!

We are celebrating the 50th birthday of the Tōkaidō Shinkansen with a limited-edition Tenugui, which was on sale in Nagoya this summer exclusively.

French Press

Finally, I have decided to get a decent coffee setup for my home. After playing with the thought of buying a real Espresso machine, I finally went for a good...

Tram Impression

Just a quick shot I took with my Nexus 5 in one of Brunswick’s oldest trams, which are due to be replaced later this year.

Dijkstra in Clojure

To set the tone for future posts, today I’d like to discuss Clojure. In short, Clojure is a Lisp dialect that targets the Java Virtual machine, so you can us...

Back to Blogging

Okay, obviously this blog hasn’t been very active for some time. Time to change that and get back to blogging, I guess. As you can see I’ve updated the desig...