[CZ] Řazení zápisů v logu

Martin Persich shared this question 3 years ago
Answered

Rád bych se zeptal, jakým způsobem dochází k seřazení výpisů v logu pro danou keš v Geocaching4Locus. Jesli je to otázka API nebo nějakého jiného kritéria v programu. Všiml jsem si, že načtené pořadí v Locusu neodpovídá výpisu na webu ani výpisu v c:geo (ale ten, jak jsem vytušil, zřejmě vychází z parserování textu webu). Některé novější výpisy jsou i dodatečně zařazeny před starší v tomtéž dni. Zjistil jsem to dnes díky obrovské náhodě, kdy jsem si pod "tlakem" okolností odpoledne aktivoval PM a cca po 15 minutách od aktivace a konfigurace účtu mi přišel e-mail s novou keší cca 500 m od mého pracoviště. Tam se prostě nedalo nejít ... takže po dvaceti minutách coFTF. :-) Neskutečná "haluz", měl jsem raději vsadit sportku :-)

Martin

Comments (18)

photo
1

Zdravím Martine,


jen pro tvojí informaci - Geocaching4Locus add-on se stará o stahování dat. Zjednodušeně se dá říci jen o to. Veškerý další věci kolem, hlavně pak tedy preznetaci, zobrazení konečnému uživateli už je na straně Locusu. Tedy i řazení dat. Tedy na mě :).


Tak a řazená ... systém je celkem jednoduchý. Vždy podle data. Jeidná vyjímka je, pokud máš v nastavení Locusu nadefinované "kamarády", ti se pak řadí v sezunamu nazačátek bez ohledu na datum nálezu. Pokud se ti to tak neřadí, přidej prosím screenshot a kód keše a já to otestuju.

photo
1

To je rychlost ... :-) Jedná se o keš GC6911R, kterou jsem logoval hned po návratu od ní do práce a nějakou dobu tam byl pouze jediný záznam. Pak teprve přibyly další a díky tomu jsem si všiml změny pořadí. Ale je to prkotina. :-)

photo
1

Ahoj,

ještě doplňuji info - prvotní můj krátký záznam logu vznikl v Locusu, zbytek jsem doplňoval a odesílal přes FieldNotes Add-on. Přidávám ještě screenshoty, jestli není někde problém s přepočtem UTC na lokální čas. Všiml jsem si, že i v Locusu je čas zobrazován v jednom případě (UTC+0), podruhé v lokálním čase (viz "GC6911R_screenshot_3.jpg" a "GC6911R_screenshot_4.jpg").

Díky.

Martin

photo
1

Zdravím,

můžeš si udělat jednoduchou kontrolu sám ... stáhni si GPX u keše https://www.geocaching.com/geocache/GC6911R_zirafa-ve-meste a podívej se v nějakém textovém editoru na logy. Je tam totiž:

  1. <groundspeak:logs>
  2. <groundspeak:log id="567429821">
  3. <groundspeak:date>2016-01-08T20:00:00Z</groundspeak:date>
  4. <groundspeak:type>Found it</groundspeak:type>
  5. <groundspeak:finder id="14556221">lexovi</groundspeak:finder>
  6. <groundspeak:text encoded="False">Nase prvni umisteni..STF..co na to říct? jupiiiii :-) !!! Zrovna dnes jsem si posteskla, ze tím, ze nejsme místní a nemáme PM, tak nemáme nikdy šanci na umisteni a ejhle :-). Jeli jsme na nákup do FM, malý usl v autě, tak jsem mela hodku a pul na odlov keši, které bych s kočárkem nedala. Manžel me vozil po FM a já si říkala, kde chci pristavit. Vybehla jsem na náměstí pro maso a koukam do apky, co mi ještě chybí odlovit a v tom vidím novy otaznik a Říkám si, mysterka a já ji ještě nemám tady v tech místech?? Rychle otviram a utikam s telefonem v ruce 330m na výchozí souřadnice. No a dal už to znáte... Neznáte???? No přeci STF!!!! :-) dekuji</groundspeak:text>
  7. </groundspeak:log>
  8. <groundspeak:log id="567423034">
  9. <groundspeak:date>2016-01-08T20:00:00Z</groundspeak:date>
  10. <groundspeak:type>Found it</groundspeak:type>
  11. <groundspeak:finder id="7490307">team.roto</groundspeak:finder>
  12. <groundspeak:text encoded="False">*TTF* Musím log napsat znova, neb ho psala má dcera zatím co jsem řídil a vezl jsem ji do Paskova. :( Takže přidala i své invence. Keška pipla, když jsem opouštěl pracoviště v Ostravě. Koukám cca 100m od baráku. Pro tu zajdu, až přijedu domů a než pojedem do Paskova. Takže jsem zaúkoloval dceru ohledně cedulky a po příjezdu jen bleskově spočítal a rovněž bleskově odlovil. Provedení pěkné, místo (dcera byla kritičtější)...no ownerům se asi líbí-resektuji. Dík za keš</groundspeak:text>
  13. </groundspeak:log>
  14. <groundspeak:log id="567422145">
  15. <groundspeak:date>2016-01-08T20:00:00Z</groundspeak:date>
  16. <groundspeak:type>Found it</groundspeak:type>
  17. <groundspeak:finder id="8101024">Yoki5</groundspeak:finder>
  18. <groundspeak:text encoded="False">co***FTF*** s chisrep v 14:53
  19. Tato novinka mohla být kešulkou snů, co se loví v papučích. Mohla, kdyby pípla alespoň o čtvrt hodiny dříve - to by ji geomamča odlovila "v montérkách". Takhle už byla cca 200m od HC, když volá georobotek, že píply dvě keše od Tondy a jedna z nich u křížáku.
  20. Tož tak hezky čelem vzad a úprkem zpět.
  21. Na místě u žirafy už je "podezřelý" člověk, z kterého se vyklubal chisrep. Společně dopočítáváme a jdeme si pro krabičku, v které nás čeká čisťounký logbook. Než dologujeme, zjevujeme se samotný owner s gratulací.
  22. Děkujeme za keš i bodík a přejeme spoustu nálezců.
  23. Při cestě od keše ještě potkáváme STF lovce. Všechny ještě jednou zdravíme.</groundspeak:text>
  24. </groundspeak:log>
  25. <groundspeak:log id="567419189">
  26. <groundspeak:date>2016-01-08T22:50:55Z</groundspeak:date>
  27. <groundspeak:type>Found it</groundspeak:type>
  28. <groundspeak:finder id="8723610">chisrep</groundspeak:finder>
  29. <groundspeak:text encoded="False">Pod tlakem událostí jsem se dnes konečně rozhodl si zřídit PM. Provedl jsem platbu, nastavil upozornění na nové keše a po patnácti minutách dorazil první e-mail... jen cca 500 m daleko. To nešlo nezkusit... Rychle jsem proletěl listing a vyrazil. Po chvíli už jsem s Yoki5 logoval coFTF. Díky za keš.</groundspeak:text>
  30. </groundspeak:log>
  31. <groundspeak:log id="567412250">
  32. <groundspeak:date>2016-01-08T13:30:51Z</groundspeak:date>
  33. <groundspeak:type>Publish Listing</groundspeak:type>
  34. <groundspeak:finder id="6883994">Tobias Reviewer</groundspeak:finder>
  35. <groundspeak:text encoded="False">14:30 CET
  36. Published</groundspeak:text>
  37. </groundspeak:log>

A je vidět, že z pro mě neznámého důvodu, mají první tři logy stejné datum. S tímto jsem bohužel v Locusu nepočítal takže tyto tři logy jsou seřazeny víceméně náhodně.

photo
1

Tak na to zírám a jsem z toho jelen... Chápu, že při stejném časovém pdaji není podle čeho třídit a výsledek záleží na náhodě a třídicím algoritmu ... A odkud se ty časy proboha vzaly? Já jsem to fyzicky mohl odesílat cca kolem 15-16 SEČ. Formát vypadá korektně v UTC, ale ty hodnoty si asi vymyslel Groundspeak :-) A jak se tak dívám na hodiny, tam předběhli čas. :-) Vybavují se mi vzpomínky na "Sovětský svaz", kde "zítra již znamenalo včera". :-) Odhadoval bych to na nějakou chybu pánů za velkou louží ...

Ahoj. Martin

photo
1

Doporučuju časy na Groudspeaku raději moc neřešit. Doteď jsem příliš nepochopil systém jak časy fungují a díky lagorování je v Locusu mechanismus který +- funguje ale teda ruku do ohně bych za to nedal. A jak je vidět ani obyč logování ze stejného pásma nefunguje jak má. Takže bohužel, taky opravdu moc nesvedu ...


Dobrou noc

photo
1

Cvičně jsem si stáhl ještě mé dvě předchozí návštěvy GC68JWG.gpx a GC6440F.gpx ... a zírám ... :-(

Ten údaj "T20:00:00Z" je téměř u většiny záznamů ... (negeneruje to náhodou "nějak" c:geo ?). A pak tam figuruji já (chisrep) s reálným časovým posunem cca 7 hodin (mohl jsem tam být kolem 16 SEČ - není to náhodou posun k sídlu "Groundspeak" ?) a ještě tam je "brzda_z_kanovic" ("T15:16:24Z" a "T15:24:20Z"), což vypadá reálně, ale nemohu potvrdit, nepotkali jsme se. Nevkládají tam hoši při tom příjmu logování do toho nějakou svou "inteligenci" ? Případně - když to posílá Locus - posílá to ve formátu UTC (tzn. "Z" na konci) nebo "+00" ? Nemůže tam být nějaký problém, že nemají úplně zvládnutou konverzi času při příjmu logu? Chtělo by to asi cvičně něco zalogovat z počítače a podívat se ...

Martin

photo
1

Jestli T20 generuje c:geo, to netuším. Nicméně ... testuju


Teď Locus trošku čas modifikuje a posílá v podstatě nějaký nesmysl, který jsem ale dříve otestoval a ukazoval celkem korektní hodnoty. Tohle GPX je nicméně první místo kde se lze podívat na skutečné časy, takže díky za pomoc při objevení.


Když nastavím aby se logy posílaly opravdu v UTC+0, tak pak:

- čas logu: 2016-01-09, 8:07 (je to v UTC+1)

- čas který se pošle 2016-01-09, 7:07 (v UTC+0)

- čas v GPX: 2016-01-09T06:07:47Z

- čas který vidím přímo na webu mezi logy: 01/08/2016

- můj profil je nastaven na: UTC+1


A teď babo raď co posílat. Když jsem to dříve zkoumal, vycházel jsem z toho že potřebuju aby ten čas přímo na webu byl již 01/09/2016 takže jsem hledal jak posunout ten posílaný čas aby se to zde zobrazilo správně. A výsledkem byl nějaký nesmysl. V seznamu je to pak ok, v GPX nee.


@arcaoo: nemáš s tím zkušenost? Nějaký nápad? Není to nic až tak hrozného. Takhle to funguje již několik let, ale bordel v tom je.

photo
1

Ahoj,

vidím, že ti to také nedá spát. :-) Tak to je opravdu chaos. Ještě jsem si pozdě v noci uvědomil matoucí informaci, kterou jsem napsal: ten posun je v mém případě ne 7, ale vlastně 9 hodin. Logoval jsem včera "13:50 UTC", v gpx je uvedeno "22:50 UTC". Zkoušel jsi UTC čas ve tvaru "Z" i "+00" ? A večer (v noci :-) ) jsem ještě zkusil napsat message "brzda_z_kanovic" - jaké používá zařízení pro logování. Jeho časy vypadají "podezřele" věrohodně. :-) A také jsem si povšiml, že údaj "T20:00:00:Z" po odečtení 8 hodin je pravé poledne - pořád se mi tam motá těch 7-9 hodin nějakého rozdílu. Ale odkud ... ? Omlouvám se, že jsem "vyrobil" problém :-), je to opravdu prkotina.

hezký den. Martin

photo
1

No těch 8 hodin je pacifický čas který Groundspeak používá. Tomu bych se ani tolik nedivil. A jinak +00 a podobné kombinace jsem zkoušel, ale všechny mi to odmítalo jako neplatný dotaz.

photo
1

Ahoj,

Tak po pár testech je ten výpočet následující:


čas na webu = čas_UTC - 8h (převod do PDT) + časová_zóna_nastavená_v_profilu ( 1h = UTC+1)

VisitDate z API = čas_UTC - 8h (převod do PDT)

groundspeak:date v GPX = čas_UTC

Čas do API posílám jako: String.format(Locale.US, "/Date(%d)/", čas_UTC_v_ms);


Podle mě Groundpseak má z historických důvodů čas v databázi v PDT časové zóně, tak proto ta konverze o těch -8 hodin. Jo jinak si na letní čas nehrajou.

photo
1

Zdravíčko,

jsi si jist že to funguje?

Loguju poznámku na staging server:

- loguji v 9:13

- Locus ukazuje 08:13 (UTC+0) , ms: 1453101216900

- čas se pak tedy odesílá jako "UTCDateLogged" -> "/Date(1453101216900)/"

- na webu ale vidím u logu včerejší datum 01/17/2016

- po stažení GPX je pak u logu <groundspeak:date>2016-01-18T07:13:36Z</groundspeak:date>

- můj čas v nastavení Groundspeaku je UTC+1

To co jsi psal, jsi odvodil ty sám, nebo o tom někde psali?

EDIT: hmm ten včerejší čas viditelný na webu je dost nelogický, nicméně pokud zobrazují čas jako UTC-8h pro všechny, pak ok. Nicméně ten čas v GPX by měl pak tedy sedět na ten poslaný, což nesedí. Že by po přijetí ještě zredukovali čas o hodnotu UTC+x co máš na webu v profilu? ... Tak ne, po chvilce testování, nastavení v profilu na webu nemá žádný vliv na nahrávané časy. A teda to nastavení nemá zdá se ani vliv na viditelný den u logů na webu. Ať už tam dám TaiPei (+8) nebo Aljašku (-9), jsem stále o den pozadu.

photo
1

Taky sedí. Nevim, kdes udělal chybu, ale 1453101216 sekund je 2016-01-18T07:13:36+00:00 (UTC) (via http://www.unixtimestamp.com/).

Edit: Pokud si to pošleš jako FieldNote, tak tam uvidíš i krásně čas, který odpovídá mému výpočtu.

photo
1

No tak myslím že my dva jsme spolu skončili. Několik let (minimálně tak 3) si v Locusu krásně pěstuju chybné posílání časů a ty si jen tak přijdeš a ... :). Děkuji děkuji, měl jsem tam zdá se dvě chyby které se navzájem pokrátili (2x špatné formátování) a chyba na pozadí neviditelná v UI je na světě.


Nicméně odborníku, mám po poslední prekérku.


Jak píšeš - posílání logů jak FN - log vytvořený v 18.1. 2016 v 12:58 UTC+0 , mi po nahrání tentokrát již s korektním timestampem ( 1453121903169 ), skončí na webu na stránce geocaching.com/my/fieldnotes.aspx s časem "17 January 2016 18:58:23" (tedy o 18 hodin posunutý). Při logování mi to předvyplní datum "01/17/2016" a po potvrzení logu a stažení GPX dané keše se pak dostanu dokonce na zajímavý čas "2016-01-17T20:00:00Z".


Takže zdá se že tenhle způsob zcela ignoruje hodiny/minuty, vezme jen datum navíc posunuté o nějakých 18 hodin a log hodí do poledne toho dne (tedy to 12:00:00 UTC). No dost divný. Ještě nějaké moudro? Dekuji.

photo
1

Ahoj,

vidím, že jsem rozpoutal větší "akci". :-) Studoval jsem také v průběhu minulého týdne nějaké logy a příslušné GPX soubory a mám pocit, že bych prozatím "nejásal"... Je v tom podle mého opravdu hokej. Teď jsem zkusil např. kešku GC69G68 a v logu "Berseg", "brzda_z_kanovic", "bigfox76" je pěkný hokej ... Pořadí v GPX souboru je stejné jako v listingu na webu, ale "brzda_z_kanovic" má datum 13.1., záznamy před a po jen 12.1. Absolutně nechápu ... (snad se jen blbě nedívám ...) :-) Připadá mi to, že to někdy řadí jen podle "log id". :-( V Locusu jsem cvičně zkusil změnit "Použít časové pásmo" (zrušit zatržení), ale bez viditelného rozdílu ... A jejště mám jeden námět - nešlo by sjednotit zobrazení časového údaje při vytváření záznamu (je tam ve formátu UTC+1, tj. celkem logicky SEČ) a v sestavě "Základní info", kde se jako terénní poznámka zobrazuje údaj o hodinu menší ve tvaru (UTC+0). Je to sice náležitě označeno, ale přeci jen podle mého trošinku pro běžného uživatele matoucí. Myslím, že tam není důvod používat jiný formát (časové pásmo).

Díky. Martin

photo
1

Ahoj,

připojuji ještě jeden GPX GC4FHCZ, ze kterého je podle mého bohužel jasné, že jakékoliv pokusy o setřídění dat z GPX souboru stejně jako je na webu jsou asi marné. Já jsem zapisoval log v neděli 17.1. pozdě odpoledne <groundspeak:log id="569041150"> a je tam v GPX souboru s posunem 8 hodin již datum "2016-01-18T00:25:30Z", ale logicky je to ve výpisu zařazeno správně na den 17.1. Naproti tomu "Smejkalicek" fyzicky zapisoval log až dnes v noci (upozornění z "watch listu" na nový zápis dorazilo dnes 19.1. tuším v 0:35 SEČ), vysoká hodnota <groundspeak:log id="569291312"> tomu podle mého odpovídá a přesto je zápis v logu správně chronologicky zařazen ke dni nálezu na 17.1. Jediné, co prozatím vždy odpovídá je pořadí položek v GPX souboru, ale datum, které se zobrazuje na webové stránce z toho podle mého určit nejde. :-( Vidím tedy jediné řešení - v manuálu k Locusu uvést, že pořadí a datum záznamů v logu nemusí odpovídat skutečnému nálezu. :-)

Martin

photo
1

Martine, příliš mnoho informací ... :)


@Arcao, už mlčím. Vše vyřešeno. Našel jsem ještě další dvě chybky. Docela zamotané ... chjo. Takže upload logu přes API a export do Fn souboru, oboje v UTC+0. Pro upload FN na web je třeba přičíst PDF (8 hodin), aby se čas ukázal korektně. Vyřešeno, děkuji.


@Martine: prozatím tedy nech být, uvidíme co přinese další verze Locusu.

photo
1

Ahoj,

teď jsem narazil na FB stránkách progarmu GeoGet na informaci z 15.1., že od 18.1. nebude Groudspeak archivovat údaj o čase logu. Pokud je to pravda, tak je asi veškerá snaha zbytečná.

https://www.facebook.com/programgeoget/


Martin