GGZ – das Programm

Hui, die Zugriffszahlen auf den GGZ-Artikel haben mich wirklich überrascht, scheint ein Thema zu sein dass erstaunlich viele interessiert! Und das obwohl es, wie in den Kommentarten zu lesen ja schon seit 2015 oder so eine Lösung gibt die wohl auch gut funktionieren soll. Die Lösung hatte ich vorher zwar gesehen, aber dank Phyton und Comand-Line war die für mich nicht so interessant. Nichts gegen die Comand-Line, aber die ist mir dann doch zu händisch. Außerdem ging es mir weniger um eine wirkliche Lösung als eher um so eine Art Fingerübung, mal was anderes Programmieren als ich es sonst auf der Arbeit mache. Gehupft wie gesprungen, jetzt ist was fertig. Einiges an der Programmierung wirkt vielleicht auf den ersten Blick befremdlich. Das ist zwei Dingen geschuldet. Zum einen hat Groundspeak ein zum Teil wirklich seltsames Vorgehen in ihrem Datenforma, zum anderen ist es halt auf die schnelle zusammen geschustert.

Eins mal vorab, wer was Ausgereiftes sucht dass er problemlos sofort einsetzen kann und mit wenig Fehlern rechnen muß, dann nehmt was ggzgen!! Ich habe hier in Visual Studio (VB) was zusammen geschraddelt das funktioniert, aber keine Fehlerabfang-Routinen oder irgendwas integriert hat. Es ist ein wenig getestet, zum Glück scheint der liebe Markus Gründel damit was anfangen zu können, daher hatte ich sozusagen einen Tester mit echten Daten. Ehrlich gesagt bin ich mir nicht mal sicher dass ich mir ohne den einen Anwender der damit was anfangen kann überhaupt so viel Arbeit gemacht hätte 😎

Aber lange Rede, kurzer Sinn, es ist jetzt eine einfache Programm-Version fertig geworden und mehr Zeit möchte ich auch gar nicht versenken. Sie funktionert bei mir und dem Markus, ist also wohl nicht so ganz verkehrt. Und damit, wer immer möchte, damit rumexperimentiert werden kann stelle ich die hier mal zur Verfügung. Und zwar mit Source-Code. Vielleicht möchte ja einer mit Programmierung beginnen oder irgendwas für sich selber anpassen oder was auch immer. Das Visual-Studio gibt es ja auch in einer kostenfreien Version für Hobby-Programmierer. Irgendwelche Rechte habe ich nicht und will ich nicht haben. Wer also das Tool für viele Millionen auf den Markt bringt dem sei das Geld gegönnt 😎

Zur Nutzung braucht ihr diese ZIp-Datei. Entpacken und in ein Verzeichis. Programmierer waren schon immer zu faul um wirklich zu dokumentieren 😉 Und wer eben mag kann sich hier die Quellen runterladen. Viel Spaß damit.

Das GGZ-Format von Garmin

Mit dem GGZ-Format von Garmin kam es ja endlich dazu mal Caches ohne Ende auf einige der Garmin-Geräte laden zu können und die dennoch schnell aufrufen zu können. Das beschreiben sie hier. Wobei beschreiben ja mal wieder eher geprahlt ist 😎 Hinzu kommt dass die Beschreibung wohl uralt ist wenn man sich die genannten Gerät dort anschaut.

Mich interessierte das Format dennoch und so hörte ich mich mal um ob es eine Dokumentation gibt, finden konnte ich leider nichts. Wie das so auf Facebook nicht ganz unüblich ist kamen durchaus Antworten, mit der Frage hatten sie leider meist nichts zu tun. Ist aber gar nicht böse gemeint, bemüht waren alle zu helfen! Und immerhin kam ein Tipp mit der Info dass es eigentlich nur eine Zip-Datei ist. Das hatte ich zwar schon selber ermittelt, war anhand der spärlichen Beschreibung von Garmin nicht so schwer zu erraten, aber immerhin ein hilfreicher Tipp falls dies nicht so gewesen wäre.

Garmin schwurbelt da von speziell komprimierten Zip-Dateien, mir hat sich bisher „speziell“ nicht erschlossen, ist eigentlich eine völlig normale Zip-Datei. Wenn ihr mal schauen wollt schnappt ihr euch eine GGZ und benennt die in ZIP um. Dümmliche Windows-Nachfragen einfach mit JA beantworten

Nun mit 7-Zip oder was auch immer für einem Entpacker auspacken lassen, es entstehen zwei Hauptordner.

In meiner 7 MB Datei waren rund 4000 Caches. Daraus macht er dann in „data“ 8 GPX-Dateien die alle rund 4400 KB groß sind. Genau hier hätte ich halt gern eine Doku, denn so ist unklar ob er das nach Anzahl Caches oder Dateigröße trennt und wenn nach welcher Größe?! Ok, könnte man natürlich mal auf 4400 KB begrenzen und schauen, wissen wäre aber schöner.

Im anderen Strang unter index ist nur ganz unten in v0 etwas. Warum der Strang dann denoch so aufgeblasen wurde ist unklar. Da wird es schon einen Sinn geben, aber ohne Dokumentation wäre das wieder raten. Ich vermute es hat was von Androids Aufbau, dort sehen Verzeichniss-Stränge ähnlich aus, aber wie gesagt, geraten. Ist auch Wurst, in v0 findet man eine index.xml.

Die macht jetzt nicht anderes als auf die GPX-Datein zu verweisen. D.h. der obige Cache liegt in Geocaches_1.gpx, Kurzinfo für das GPS und von wo bis wo er dort liegt. CRC ist nur einmal ganz oben und dürfte eine Prüfsumme sein die sich auf die ZIP-Datei bezieht, da muß ich noch mal genauer hinschauen. Warum hier File-Pos und File-Len angegeben sind ist mir ebenfalls nicht völlig klar, könnte aber performanter sein als von hier auf die GPX zu springen und dort suchen zu müssen. Wird wohl auch seinen Sinn haben. Macht übrigens beim Programmieren viel Freude 😉 Falls da einer was rumprobieren möchte und sich wundert dass seine mitgerechneten File-Positionen nicht stimmen, Stichworte: Carriage LineFeed und Encoding. Programmierer werden wissen was gemeint ist.

Was Garmin da als neues Format aufführt ist also eigentlich nichts anderes als die normalen GPX-Dateien erweitert um eine Index-Datei. Und weil das GPS jetzt nicht mehr alle Daten des Caches lesen muß sondern alles in der Index-Datei hat was angezeigt wird geht das alles erheblich schneller. Die anderen Daten werden nicht mehr komplett eingelesen sondern erst wenn man auf einen Cache klickt. Oh Wunder, oh Wunder, eigentlich ganz einfach.

Ich schreibe mir gerade ein Programm um aus GPX-Dateien GGZ-Dateien machen zu können. Warum? Einfach mal so 😎 Oder weil GSAK irgendwann nicht mehr da ist und ich dann dennoch z.B. auch die Wandernadeln (Harz) auf das Gerät bekommen möchte und das GGZ für mich einen guten Eindruck macht. Einen ersten Rohentwurf der Index-Datei habe ich mit einem zusammen geschusterten Progrämmchen hin bekommen, werde ich demnächst mal auf Funktionalität testen.

GC-Project und die Ignore-Liste – Workaround mit oder ohne GSAK

Wahrscheinlich kennen die meisten den Trick schon, aber sicherlich gibt es immer mal wieder Einsteiger oder Wieder-Einsteiger wie mich bei GC-Project.

Nun kann man dort ja viele schöne Dinge mit den Geocaching-Daten basteln und sich Listen ohne Ende bauen. Und damit die genau auf einen zugeschnitten sind ist es natürlich entscheidend umfangreich filtern zu können. Das bietet GC-Project in wirklich großem Umfang!

Was leider nicht geht, die Ignore-Liste einzubeziehen. Wenn man etwas sucht stösst man auf einen Eintrag in dem erklärt wird das dies wohl an der API von Groundspeak liegen würde. Und die Aussage dass es danach auch kaum Nachfrage geben würde. Nun gut, das mit der API mag sein, fehlende Nachfrage hört sich für mich schon weniger glaubwürdig an. Wobei ich die Antwort eh gefühlt etwas arrogant empfinde. Aber gehupft wie gesprungen, Project-GC kann die Ignore-Liste nicht einbeziehen was ärgerlich für Cacher mit großer Liste ist. Und ich weiß wovon ich rede, bei mir sind es bald 700 Caches die sich dort tummeln. Da gibt es vielfältige Gründe, T5er die für mich nicht machbar sind oder ich nicht machen möchte, Rätsel die ich nicht mag, Earthcaches die ein Studium verlangen, zu urban, oder was auch immer, eigentlich auch nicht entscheidend. Was also tun?

Es gibt einen Workaround den ich hier mal vorstellen möchte. Zuerst einmal holt man sich seine ignorierten Caches in GSAK. Dazu geht ihr im Web auf eure Ignore-List bei Groundspeak. Dort ist oben eine Zeile mit den Möglichkeiten die man hat. Und oben rechts neben dem Zahnrad im graunen Kasten ist das viereckige Symbol mit zwei runden Pfeilen drin, darüber kann man aus der Ignore-List eine PQ machen. Wenn man schon hier ist legt man auch unter Listen eine neue Liste an die man nennt wie man mag und möglichst auf Privat eingestellt lässt um Ärger mit beleidigten Owner zu vermeiden 😉

Diese PQ liest man sich dann in GSAK ein, am besten eine eigene DB, dann wirft man nichts durcheinander.

bitte kein Genöle, die Caches sind aus verschiedensten Gründen auf der Ignore-Liste, das hat noch nichts mit einer Bewertung zu tun!

Nun gibt es den Menüpunkt „Geocaching.com access“ – „List Manager“, den benötigen wir.

Hier wählt man nun die neu angelegte Liste aus, bei mir wäre es in dem Fall GCProjectIgnore. Dazu dann den Punkt aus der Auswahl-Box „Add Geocaches to list“. Weiter unten sollte dann „All in current filter“ markiert sein und mit „+ Add“ werden nun über die API die Caches in die neue Liste kopiert. Das kann je nach Menge schon eine ganze Weile dauern! Im Prinzip haben wir damit über GSAK die Cache der Ignore-List auf die GCProjectIgnore-Liste kopiert.

Das bedeutet für die Zukunft natürlich einen gewissen Mehraufwand. D.h. Cache die ich auf Ignore schiebe muß ich gleichzeitig auf auf GCProjektIgnore schieben. Aber nun ja, die Mehrarbeit hält sich wirklich in Grenzen 😎

Bin ich nun auf GC-Project kann ich hier jetzt einen Filtereintrag hinzuführen „Bookmark-Liste ignorieren“ und da steht mir jetzt die neue Liste zur Verfügung. Und es funktioniert!

Und das wars, das Leben kann so einfach sein 😉

Und jetzt, raus cachen!

P.S.: wie Michael Drewes mir gerade auf Twitter schrieb:

Das geht seit ? (irgendeinem Update bei GS) übrigens auch ohne Umweg über GSAK. Man kann in der Ignore-List alle auswählen und in eine separate Bookmark-Liste kopieren. Die widerum kann man dann wie beschrieben bei Project GC nutzen.

Hätte ich auch drauf kommen können 😎

GSAK 9 – wie geht es weiter

Eine neue Version von GSAK ist vor einiger Zeit auf den Markt gekommen, Version 9. Der Programmierer hatte wohl einen Schlaganfall und ordnet nun sein Leben neu, verständlich. Für GSAK bedeutet es u.a. dass die Software Freeware wird. Das macht er wohl hauptsächlich weil er einfach nicht mehr die Zeit hat GSAK so weiter zu pflegen wie man es von einer Bezahl-Software erwarten würde. Ich fand den Preis von GSAK eigentlich immer ok, man bekam dafür enorm langen und guten Support und das ist mir wichtiger als ewig neue Features oder GUIs die eigentlich eh kein Mensch benötigt. Man muss wohl abwarten wie und ob es mit der Software weiter geht. Eigentlich reichte mir die Version 8 schon völlig, aber wie sich nun zeigte ist die API dort nicht mehr lauffähig. D.h. wer die Groundspeak-API nutzen will muss auf Version 9 umsteigen. Da gehöre ich leider dazu.

Warum leider? Weil Version 9 bei mir nicht so richtig gut anlief. Alle Funktionen liefen deutlich merkbar langsamer, ebenso die Makros. Erst ein Reparatur- / Defragmentierungs-Lauf der Datenbank, der auch Fehler fand, schaffte Abhilfe. Dennoch ist es bei immer noch merklich etwas langsamer als die Vorgänger-Version. Ich hatte dann erst wieder die 8.7 installiert, aber dort ging halt nach kurzer Zeit die API nicht mehr, so bin ich jetzt also wieder bei 9.0. Wem es also ähnlich geht, ruhig mal die Datenbank durch GSAK prüfen lassen, kann zumindest etwas helfen.

Tja, die neue API ist dann wohl das hauptsächlich Neue in GSAK 9 und die verhält sich bei mir doch etwas anders. So hatte ich mir einen API-Aufruf auf einen Button gelegt und schwupps, plötzlich holte er mir nicht mehr alle offenen, findbaren Caches in meinem Umkreis sonder plötzlich auch die gefundenen und deaktivierten Caches, warum auch immer… Leider habe ich bisher keine Möglichkeit gefunden das Holen der deaktivierten Caches zu unterdrücken, die gefundenen Caches kann man aber unterdrücken in dem man nun auf Seite 2 der Einstellungen den eigenen Cacher-Namen bei „not found by“ eingibt, das war vorher nicht nötig.

Wie es mit GSAK weiter geht ist wohl unklar. Open Source ist unwahrscheinlich, dann würde es zumindest Probleme mit der Groundspeak-API geben und die ist schon recht wichtig für GSAK denke ich. Ob vielleicht jemand anders die Software weiter pflegt? Ich bin da skeptisch. Da ich selber Programmierer bin weiß ich durchaus was es bedeutet fremden Code zu pflegen, speziell wenn er so lange „historisch gewachsen“ ist. Aber wer weiß, vielleicht findet sich ja noch ein Enthusiast. Schade dass es GAPP nicht mehr gibt, das war so um 2013 mal eine echte Alternative die durchaus mit dem damaligen GSAK mithalten konnte.

Gammelcaches in GSAK filtern

Hier mal ein kleiner Tipp für GSAK-Nutzer. Ich hole mir die Caches so ca. einmal die Woche über die Groundspeak-API. Danach laufen dann diverse Routinen. D.h. es wird z.B. geprüft was mit den Caches ist die nicht in der neuen Abfrage waren wie bei mir z.B. Mysteries. Die hole ich mir nicht mehr, habe aber noch alte gelöste in GSAK. Dann markiere ich mir diverse Caches mit anderen Icons, z.B. Nachtcaches, Wasser- und Klettercaches. Und noch so das eine oder andere.

Bevor ich mir das Ergebnis dann irgendwann in die Cloud schiebe aus der ich die Daten auf das Handy lade schaue ich noch mit einem bestimmten Filter drauf, dessen Name lautet bei mir „Gammelcaches“.

Irgendwann war ich es einfach leid vor ungepflegten Caches zu stehen die gar nicht mehr da sind. Klar, kann man auch einzeln schauen. Aber wenn ich los fahre schaue ich mir die Cachen nie vorher im einzelnen an sondern lasse mich viel lieber überraschen. D.h. ich plane tatsächlich nur nach Google Maps und schaue dort wo eine schöne gründe Gegend zum Wandern und Cachen einlädt.

Und um zumindest den größten Teil dieser Gammelcaches auszusortieren habe ich mir irgendwann diesen Filter gebaut und vielleicht kann ihn ja auch jemand anderes nutzen um einen gewissen Anteil an kaputten Caches auszusortieren.

Bei mir hat sich, wie im Bild zu sehen, die Einstellung:

  • Didn’t find it
  • Needs Archived
  • Needs Maintenance

mehr als 3 mal in den Logs als sinnvoll eingependelt. Wobei ich die API die letzten 6 Logs holen lasse.