Kategorien
Allgemein

Steckachse steckt fest …

Samstag war ich damit (selbst noch verblüfft) zum ersten Mal beim Radhändler, … als ich ihm erzählte, dass beim Herausdrehen der Steckachse die Hälfte eben dieser im Rahmen blieb, hat er nur ungläubig geguckt. Kam dann aber mit vor den Laden, schraubt … und siehe da, hat auch nur eine halbe Achse in der Hand. Die andere „Hälfte“ (bzw. der weit längere Teil) blieb auch bei ihm im Rahmen stecken, ohne, dass man ihn greifen (bzw. drehen) könnte …

Einen Versuch das mit Loctite zu kleben, und einen weiteren Versuch das mit noch stärkerem Kleber zu verbinden später … war ich heute wieder in dem Laden. Ein Angestellter hatte dann die Idee … und siehe da:

… beide Teile sind raus. Etwa mittig vom Bild, das Teil, das sich immer lösen lies. So eine Art Schraube mit dem Zentrierring… aber im Hintergrund auch die eigentliche Achse 🙂

Den Achskern (oder wie auch immer man das Stück nennen mag) hat er aus dem Rahmen bekommen, indem er einen Links-Gewindeschneider in die Achse gedreht hat — der sich dort erwartetermaßen verkanntet hat – und damit dazu geführt hat, dass die Achse sich drehen ließ.

Jetzt hat das Gravelchen auf jeden Fall eine neue Steckachse — in der Hoffnung, dass diese aus einem Stück gefertigt ist (bzw. sich zumindest nicht auftrennt).

Übrigens eine Achse von Specialized — im Cube-Rahmen 🙂

Kategorien
Allgemein

Heatmap Segmente

… für den BRouter. Oder: wie bekomme ich eigene Informationen mit in das BRouter Kartenmaterial?

Zu nutze gemacht habe ich mir den „alten“ Weg um Segment-Dateien zu erstellen, wie vorhin hier schon beschrieben. Auch wenn es etwas langsamer geht, ich finde den mehrschrittigen Weg übersichtlicher. Und man kann eben, an geeigneter Stelle, einfach einen weiteren Schritt mit dazwischen hängen.

Oder konkreter: nachdem die Kartendaten initial konvertiert wurden (OsmCutter) und der NodeFilter gelaufen ist, nehme ich die ways.dat und reichere sie um einen Pseudo-Schlüssel für die Heatmap an.

Den Schlüssel gilt es erst in profiles/lookups.dat zu registrieren. Also unter der Rubrik „context:way“ eine weitere Zeile dazu. Die längliche Zahl, die da mit in der Zeile steht, ist übrigens einfach egal 🙂 … so sah das dann bei mir aus:

heatmap:stefan;0000000001 yes

… damit kann man einen Weg mit „heatmap:stefan=yes“ taggen.

Dann also ein bissl Java-Code schreiben, der

  1. die gefilterten Node-Tiles ausliest, sich pro Node aus der MongoDB die Information zieht, ob ich bei dem Node schon einmal war
  2. die ways.dat liest und Weg für Weg überprüft, ob ich an allen Nodes, die den Weg bestimmen, schon einmal war — und ggf. dann den Pseudo-Schlüssel ergänzt

Eine erste Version davon habe ich als Gist hochgeladen. Die Datei einfach mit nach brouter-map-creator/src/main/java/btools/mapcreator packen und dann durchkompilieren.

Das Skript will übersichtliche acht Parameter, und kann dann z.B. so aufgerufen werden:

java -jar brouter-server-1.6.1-jar-with-dependencies.jar -Ddeletetmpfiles=true -DuseDenseMaps=true btools.mapcreator.HeatmapEnricher ../../../profiles2/lookups.dat 172.17.0.2 heatmaps points stefan ftiles ways.dat ways-enriched.dat

… und wenn man danach die weiteren Schritte zum Erstellen der Segment-Dateien (wie üblich) vollführt, den Server startet und testet: sieht man erstmal gar nix.

Der BRouter-Server gibt einem in der Antwort nämlich nur diejenigen Tags zurück, die ausgewertet wurden. Und ohne Bezug im Profil kommen die Neuen halt auch nicht mit zurück.

… der zunächst einfachste Weg führt über einen dummyUsage-Eintrag in einem benutzerdefinierten Profil, also so:

assign dummyUsage = heatmap:stefan=

… und wenn man dann eine Route ermitteln lässt, dann sieht das etwa so aus:

… der erste Routingschritt betrifft ein Straßenstück, das ich noch nie befahren habe. Der zweite Eintrag dann hingegen schon. Unter WayTags wird der Pseudo-Schlüssel mit aufgeführt. Yay 🙂

So, nächster Schritt ist dann natürlich noch ein Profil dahingehend zu modifizieren, dass es die Information geeignet mit berücksichtigt. Konkret ist die Idee, bei kleineren Straßen und Wegen einen kleinen Bonus zu vergeben, wenn das Heatmap-Tag noch nicht gesetzt ist …

Kategorien
Allgemein

BRouter Segmente

… nachdem das Erstellen von eigenen BRouter Segment-Dateien mit einer gewissen Lernkurve verbunden ist, hier ein paar Dinge, über die ich gestolpert bin …

Zunächst ist da die offizielle Dokumentation, die im Wesentlichen auf das Skript process_pbf_planet.sh verweist. Wie ich lernen musste, funktioniert dieses jedoch nicht (also den Bug-Report habe ich gefunden, nachdem ich wusste warum es nicht geht).

So oder so, es gibt zwei Varianten des „map creators“: den „alten“ Weg (der beginnt mit dem Einsatz von OsmCutter.java) und den „neuen“ Weg (der die OsmFastCutter.java verwendet). Letztlich passieren bei letzterer Variante nur mehrere Dinge auf einen Rutsch — und der alte Weg geht Schritt für Schritt vor.

Das Problem beim alten Weg ist (inzwischen) einfach nur, dass die Dateinamen nicht mehr passen. Die OsmCutter schreibt Dateien, die auf .ntl enden, jedoch erwartet die NodeFilter-Klasse, dass die Dateien dann auf .tls enden (und NodeCutter/WayCutter erwarten wiederum als Endung .tlf).

Kurzum, um auch den alten Weg beschreiten zu können, einfach die Dateien NodeFilter.java, NodeCutter.java & WayCutter.java bearbeiten und .tls bzw. .tlf einfach durch .ntl ersetzen.

Fertig 🙄

Update: gibt sogar einen Pull Request, der das behoben hätte – der wurde aber ohne merge geschlossen.

Kategorien
Allgemein

Geschminkte Hütte

… steht am Wegesrand zwischen Ettleben und Werneck.

Ich bin bei soetwas immer wieder am Staunen, wieviel Kreativität und dann auch noch Können manche Leute haben.

Kategorien
Allgemein

Namens-Highlight

… ein Fahrradladen der Brem(b)s heißt 🙂
Fundstück in Röthlein.

Musste unterwegs leider mehr lachen als wohl angemessen war 😇

Kategorien
Allgemein

Kunst am Wegrand

… ich frag‘ mich ja, ob sich die Hauseigentümer:in da ab und an neben dran auf die Bank setzt.

Kategorien
Allgemein

Fundstück

… eine eher aufwändige Art seine Apfelbäume zu kennzeichnen. Aber war konsequent durchgezogen, also jede Baumreihe hatte so eine Figur:

Kategorien
Allgemein

Autofrei – Jahr #1

… so schnell vergeht die Zeit: heute vor einem Jahr habe ich mein Auto verkauft. Hier ein (kurzer?) Bericht über meine „Learnings“ in jenem Jahr.

Der Weg zum Verkauf

Bevor es jedoch konkret darum geht, noch ein paar Vorbemerkungen und ein wenig Kontext. Im April 2018 ging es für mich vom Land (okay, zuletzt eine Stadt mit ca. 42k Einwohnern) in eine „richtige“ Stadt (nämlich Würzburg, mit ca. 128k Einwohnern) — egal wie, an Autofreiheit hatte ich weder in Ansbach gedacht noch zu meinen ersten Tagen in Würzburg. Aber im Endeffekt konnte ich sowohl zu Fuß den größeren Teil der Einkäufe erledigen als auch zur Arbeit ins Büro gehen. Einkäufe erledigte ich dennoch manchmal mit dem Auto zum Supermarkt, einfach auch aus Gewohnheit. Getränke und so. Dazu kamen üblicherweise drei weitere Fahrten, einmal im Monat zu den Eltern, und zweimal im Monat nach Rothenburg ins Fablab (dem ich seit Jahren verbunden bin).

Mir wurde das irgendwann auch schon relativ zu Beginn bewusst, dass das Auto immer mehr zum Stehauto wurde (also noch weit über die eh schon üblichen 23h/Tag hinaus), … aber es war ein Euro 4 Diesel, 10 Jahre alt, gelber Farbklecks … muss man schon haben wollen … also im Endeffekt eh nicht mehr sonderlich viel wert. So kam der Gedanke, ach kannste jetzt auch behalten bis er gar nicht mehr fährt — bissl praktisch ist es ja doch. Das war so Sommer 2018.

Ein Jahr später stellte sich die Situation dann schon anders dar: abgesehen von den drei oben genannten Fahrten im Monat stand das Auto nur noch rum. Wenn ich es mal bewegt hatte, durfte ich ewig einen Parkplatz suchen. Das Auto musste zum Service. Dann zum TÜV. Nicht bestanden. Also Werkstatt, dann wieder TÜV. Im Herbst und Frühling Räder wechseln. Und über eine Stunde bei der Stadt für einen Anwohnerparkausweis anstehen, der immerhin dazu berechtigte, dass das Auto irgendwo in der Siedlung steht. Long story short: irgendwie hat das Verhältnis von „um’s Auto kümmern“-Fahrten und „ich will wo hin“-Fahrten nicht mehr gestimmt. Ich war nur noch genervt.

Inzwischen war es Mai 2019. In diesem Monat kam ich einerseits zur Verbraucher-Erzeuger-Gemeinschaft Würzburg (kurz VEG), andererseits wurde ich dadurch auf die Aktion Stadtradeln aufmerksam. Auf jeden Fall hatte ich mich an mein Gurkenrad erinnert, das zuvor schier jahrelang nur im Keller stand (hier erstmals im Blog ein Bild der Schönheit – ein ALDI-Rad aus dem Jahr 2013):

… so oder so, in dem dreiwöchtigen Aktionszeitraum „Stadtradeln“ bin ich sage und schreibe 70km Rad gefahren 🙂 … anyways, ein Zündfunke war da. Nachhaltigkeit wurde mir wichtiger — und das Auto hat immer mehr genervt.

Es ist weg!

Hat mich dann doch noch einige Wochen gekostet, … der nagende Gedanke das Auto weg zu geben und ob es ohne wohl klappen würde? Beruhigende Gedanken, dass im Zweifel ja das stationsgebundene car-sharing Auto regelmäßig sogar näher an der Haustür steht und unter’m Strich auf jeden Fall nicht teurer sein würde. Ein Stück Freiheit aufgeben, das man über viele Jahre lieb gewonnen hat? Und ist es in Wirklichkeit Freiheit?

Long story short, die ersten beiden Augustwochen 2019 hatte ich Urlaub, und am ersten Urlaubstag war es dann so weit. Das Auto kommt zum erstbesten Straßenaufkäufer — auf langwierig selbst zu Verkaufen habe ich so wirklich keine Lust. Weg damit. Kurz vor 16 Uhr ist es soweit. Kein Auto mehr — zu Fuß geht’s zurück nach Hause.
(das Angebot, dass mich der Käufer nach Hause fährt hatte ich ausgeschlagen)

Komisches Gefühl. Am 15.01.2003 hatte ich mein erstes Auto gekauft, … stolz ohne Ende … 16,5 Jahre später bin ich froh, dass es (also der Nachfolger) weg ist. Und (erstmal noch) auch irgendwie unsicher. War es die richtige Entscheidung? Behalten hatte ich nur noch die über die Jahre an’s Auto gesteckten Visitenkarten:

… habe ich inzwischen nicht mehr.

Übrigens habe ich sogar meine Sonnenbrille (mit Sehstärke) im Auto gelassen. Versehentlich 🙁

Gute zwei Wochen später ging es dann erstmals mit dem Leihwagen zu den Eltern. War irgendwie cool — und viele Gedanken „ob das auch ohne Auto geht?“ hatte ich mir da noch nicht gemacht.

Mate kaufen!?

… Club Mate gehört als Ansbacher irgendwie dazu, bzw. „Bronte“ wie es da halt auch heißt. Sucht ist Sucht. Kiste leer, neue kaufen. Hmm, Auto? Nee, kostenlos Lastenrad ausleihen:

… eine der Erfahrungen, die ich mit eigenem Auto sicherlich nie gemacht hätte. Und es war soooo geil — ich hatte Stunden später noch ein breites Grinsen im Gesicht 🙂

Auch wenn ihr (noch) ein Auto haben solltet, leiht euch mal ein Lastenrad. Es macht einfach nur Laune.

Mit dem Zug auf’s Land?

Irgendwie bin ich über Jom dann recht bald auf den Gedanken Faltrad gekommen — ich hatte ihn gegen Ende August besucht (mit Bahn und Gurkenrad die letzten Kilometer raus auf’s Land). Für die Fahrradmitnahme je 6,50€ extra gelatzt, … mit BahnCard 50 war die eigentliche Strecke vergleichsweise günstig. Und das Faltrad versprach, dass man es „für umme“ mitnehmen darf. Würde auch das „wie zu den Eltern kommen“-Problem lösen (gut, vom Bahnhof sind’s da 26km einfach, …). Cool ist es irgendwie auch. Nur welches? Jom meinte Brompton, hatte vorher aber selbst ein Tern. Bromptons sind schon cool, aber 3-Gang-Nabe, … für weitere Strecken? Das Tern hat immerhin 7 Gänge, … Dinge ausprobieren heißt die Devise: am 13. September hat der Postbote mein Tern Link d7i gebracht 🙂

(und ich hatte damals noch den Irrglauben, dass man ein Kompromiss-Rad für alle Zwecke haben könnte)

… dann ging es los. Im verbleibenden September ging’s immerhin schon 219km quer durch die Region, …

Am ersten Oktober-Wochenende ging’s zu den Eltern. Mit Klappi im Zug bis Ansbach, den Rest mit dem Rad. Und die Strecke bis zum Elternhaus inkl. Höhenmeter war da noch eine echte Herausforderung.

Vor allem weil ich ja auch wieder zurück muss 🙂

Hat aber gut funktioniert. Und die zweite Fahrt war auch cool. Die Dritte auch. Irgendwann hat’s mal ziemlich geregnet. Mit Regenklamotten war aber auch das eine tolle Erfahrung — und mit dem Gedanken an „hah, durchgebissen“ und „siehste, geht auch ohne Auto“ irgendwie auch cool. Zumindest im Anschluss…

Auto-zentriertes Denken

Spannend waren dann noch die Fahrten nach Rothenburg. Die letzte vernünftige Bahn nach Hause geht kurz nach 20 Uhr. Um 23 Uhr fährt auch noch eine, da sind die Anschlüsse aber so doof, dass man über eine Stunde in Steinach am Bahnhof steht. Laaangweilig.

Einmal habe ich das mit dem 23 Uhr Zug sogar gemacht, vielleicht zweimal… aber ist halt echt doof. Das Warten. Und man muss auch echt früh los.

Der nächste Versuch war dann wieder mit dem Car-Sharing-Auto. Das fährt halt auch nachts um drei nach Hause, … wenn’s nach dem Fablab wieder in die Liquid Corner ging. Zum Spezi-Trinken.

Nächster Versuch: weiter durch machen und nicht um drei nach Hause, sondern den ersten Zug morgens um fünf. Auch echt anstrengend.

Also doch Auto? Fast hätte ich vor lauter Auto-Zentriertheit „Ja“ gesagt. Irgendwann kam mir der Gedanke: für die 50€ für den Leihwagen bekommst auch locker ein (günstiges) Gästezimmer (nach der Liquid Corner eh egal, wie nobel das ist) und das Zugticket springt auch mit raus. (ist natürlich eine Milchmädchen-Rechnung, wenn man dann statt Spezi halt Rum oder Whiskey trinkt — aber das ist eine andere Geschichte). Also Gästezimmer und lang an der Bar hocken, statt in der gleichen Nacht mit dem Auto nach Hause quälen? Und einfach am nächsten morgen gechillt nach Hause? Autoverzicht kann so einfach sein 🙂 … man muss nur erst nach Wochen darauf kommen.

So kam es, dass ich am 10.10.2019 das letzte mal selbst am Steuer saß 🙂

… vermisst habe ich das Auto seither keinen Tag.

Kategorien
Allgemein

Zora 😍

… nachdem wir die Vokü im Cairo bekocht haben, habe ich mal wieder ein Lastenrad ausgeliehen. Und nachdem die Zora die Coolste der Truppe ist, und verfügbar war, war schnell klar, welches geliehen wird 🙂

Bei dieser Gelegenheit, danke Freies Lastenrad Würzburg, dass es euch gibt 🙂

Kategorien
Allgemein

Heatmaps im Eigenbau

Heute mal wieder ein Blick hinter die Kulissen: auch in der Vergangenheit hatte ich hier und hier schon darüber geschrieben, wie man Strava und Komoot verbinden kann um die Strava Heatmap bei der Routenplanung berücksichtigen zu können.

Für zahlende Strava-Kunden gibt es außerdem neben der „global heatmap“ noch eine personalisierte Variante, die also darstellt, wo man selbst schon alles gewesen ist (und dementsprechend, wo noch Strecken darauf warten entdeckt zu werden).

Nun ist es aber so, dass ich seit einer Weile um die großen, zentralisierten sozialen Medien (Twitter, Facebook) einen Bogen mache und letztlich nur noch Mastodon (bzw. konkret die wue.social Instanz von Ralf) nutze. In dieses Bild passt natürlich auch nicht der Routen-Upload auf Strava und Komoot — und so kam es letztlich zu diesem Blog als „sharing Alternative“ zu Komoot (und z.B. auch der Kilometerstatistik etc.).

Jetzt fand ich die personalisierte Heatmap von Strava aber schon toll — also habe ich mir meine dezentrale Variante selbst gebaut. So sieht das Ergebnis aus:

In leichtem rot die Strecken, auf denen ich bisher nur einmal war … wenn ich an der Stelle schon ein paar mal war, dann sattes dunkelblau.

Technisch gesehen sind das selbst gerenderte overlay tiles, die man auf beliebige OpenStreetMap Karten (und theoretisch auch Google) legen kann.

Ich hatte mich dann erstmal nach bestehenden OpenSource-Lösungen umgesehen, … und feststellen müssen, dass das eher eine Nische ist. Nach einer Weile bin ich auf das Projekt „gheat“ gestoßen, … letzte Version vom April 2008. Und das setzt auf einen ebenso alten Python Web-Server (Aspen), von dem ich zuvor noch nie gehört hatte. Dort verlinkt ist auch ein Fork, der das ganze als Python CGI Script umgesetzt hatte (wobei der Code ebenso ziemlich alt ist).

Der Fork setzt auf eine MongoDB als Backend, die 2009 erst rausgekommen ist. Das muss definitiv ein early adopter gewesen sein 🙂

So oder so, der Plan stand dann relativ fest. Den alten Python Code zum Laufen bekommen, einen fastcgi-wrapper drumrum und einen modernen nginx davor. Das ganze in Docker verpacken und eben eine MongoDB daneben. Gesagt, getan. Stellt sich raus, dass das original gheat relative fette Kleckse zeichnet (für jeden einzelnen Punkt des GPX Tracks) — also im Format eher so breit wie eine Siedlung statt einer Straße.

Hat eine Weile gedauert zu verstehen, wie das gheat intern arbeitet, … aber eigentlich ist der Ansatz cool: nämlich zweischrittig. Für jeden Punkt des gpx wird erstmal eine (halbtransparente) „dot.png“ (das Teil der Programmquellen ist) auf eine transparente Leinwand projeziert. Das führt dazu, dass dieses Zwischenbild um so dunkler wird, je mehr Punkte gezeichnet werden bzw. um so dunkler/opaker das dot.png ist.
Im zweiten Schritt wird der Alphakanal dieses „Bildes“ wieder ausgelesen und die eigentliche Heatmap unter Berücksichtigung des gewählten Farbverlaufs generiert.

Letztlich ein interessanter Ansatz — heißt nur, dass ich zum Lösen der Klecksproblematik nicht den Code anfassen muss, sondern meine (nicht vorhandenen) Gimp Skills auspacken muss.

Naja, hat dann schon irgendwie funktioniert 🙂

… und die Belohnung ist die oben gezeigte Heatmap. Die ausreichend flott für on-the-fly Generierung ist und seither mit auf dem Webserver lebt. Den aufgefrischten und modifizierten Code findet ihr (ebenso denzentral) hier auf meiner Gitlab Instanz.