thomaskekeisen.de

Aus dem Leben eines Bildschirmarbyters

Vorwort

Laut meinem Trello-Board für Ideen hatte ich mir schon im Januar notiert, dass ich es spannend fände, zu jedem Commit- also dem Abspeichern von Softwarecode - auch den Ort zu dokumentieren, an dem ich mich gerade befinde.
Screenshot: am 6. Januar habe ich mir diese Idee notiert
Nach einer kurzen Recherche bin ich damals auf diesen Blog-Artikel gestoßen und dachte, ohne ihn wirklich zu lesen, dass sich schon jemand diesem Problem angenommen hat und ich das ganze nur noch installieren muss.

Kein aktives Projekt

Als ich mich dann anfang Mai daran gemacht hatte, die im Artikel beschriebene Lösung "geocommit" zu testen musste ich schnell feststellen, dass das Projekt nicht mehr aktiv ist. Die Webseite hinter geocommit.com ist nicht aufrufbar und die letzte Änderung im GitHub-Repository ist aus dem Jahre 2013. Schade. Ich musste also weitersuchen.

Mein nächster Treffer war dann dieser Blog-Post, der immerhin im Februar 2016 entstanden ist und darum noch aktueller war. Ich habe also die Geomit Chrome-Erweiterung installiert und auch den "pre-commit hook", also das benutzerdefinierte Script, das vor meinem Commit ausgeführt wird, installiert. Leider trat auch hier nach einigen Minuten Ernüchterung ein: die Chrome-Erweiterung lädt einfach endlos und auch das nicht-versteckbare Fenster hätte mich auf Dauer sowieso zu sehr genervt.

Einzig das Tool LocateMe hat auf Anhieb funktioniert und mir verlässlich meine GPS-Position in meiner Konsole ausgegeben. LocateMe ist speziell für macOS entwickelt und setzt auf das interne CoreLocation-Framework. Es darf also von einer möglichst guten und genauen Positionierung trotz fehlendem GPS-Empfänger ausgegangen werden, da das Framework direkt von Apple entwickelt wird und darum sehr gut auf die Hardware eines Macs abgestimmt sein sollte. Eine Positionierung ist auch durch das Messen der Signalstärke zu umliegenden W-Lan-Netzwerken möglich.

Screenshot: Das Programm LocateMe im Terminal

Selbermachen

Ich habe mich dann entschieden, mein Problem einfach selbst zu lösen. Da ich ohnehin mehr über Git-Hooks lernen wollte, war das eine gute Gelegenheit, mich tiefer einzulesen. Als ich dann verstanden hatte, dass ein "Hook" in diesem Kontext einfach eine ausführbare Datei, also beispielsweise ein Bash- oder Ruby-Script ist, und quasi ohne Parameter aufgerufen wird, konnte ich loslegen.

Den commit-Hook selbst wollte ich in Bash-Script schreiben. Für das Konvertieren der Daten in das GeoJSON-Format wollte ich eine Lösung implementieren, die auf node.js basiert.

Dank dem Entwickler-Portal stackoverflow.com konnte ich mein Bash-Script quasi zusammenkopieren und das Modifizieren von JSON-Objekten in der Programmiersprache JavaScript sind sowieso mein täglich Brot. Schon am ersten Abend war das Projekt fertig und hat funktioniert. Das geo-commit getaufte Projekt sowie eine Installations- und Benutzungsanleitung habe ich natürlich auf GitHub veröffentlicht.

Ergebnis

Ich hatte geo-commit für einige Tage im Einsatz und habe meine GPS-Position bei jedem meiner kommerziellen sowie unkommerziellen Projekte dokumentiert. Die erzeugten Daten auf geojson.io visualisiert zeigen beispielsweise schön auf, dass ich öfters als Beifahrer zur Toolbox Bodensee e.V. unterwegs bin - meine Freundin fährt meistens - und auf dem Weg sowie vor Ort durchaus den ein oder anderen Commit erstelle.

Screensho 2t: geo-commit-Daten auf geojson.io visualisiert

Wenn ich näher an Weingarten heranzoome sieht man natürlich, dass ich die größte Zeit in meinem Home-Office sitze, während ich an meinen Projekten arbeite. Dabei steht mein MacBook mal im Büro, mal auf der Couch und ein anderes Mal auf dem Esstisch. Alle anderen, etwas entfernteren Pins, sind schlichtweg Messungenauigkeiten.

Screenshot 1: geo-commit-Daten auf geojson.io visualisiert

Teilen

Kommentare