Teamové statistiky - více nicků dohromady (GSAK ?)
#21
Publikováno 09 březen 2009 - 14:04
#22
Publikováno 09 březen 2009 - 14:06
Otázka 2: Máte podobný tým ? ANO
Od jakého data je založený ? Sunday, November 11, 2007
Kolik má členů ? 17 členů
Otázka 1: Statistiky máme, ale nemáme makro do GSAKu. Spousta lidí z našeho teamu nejsou PM a ani s tvorbou statistik nechtějí trávit čas.
Takže jsme (hlavně díky Destilovi) udělali teamové stránky thc.geoteam.info. Statistiky jsou načítány a parsovány z GC.com (noflame, jinak to fakt udělat nejde), najdete je na našich stránkách. Dokonce máme i teamový statusbar: http://thc.geoteam.i...tatimage.phpTHC geoteam[/img]
BTW: kdybyste někdo měl zájem o poddoménu na geoteam.info, není to problém, ozvěte se mě a nebo lépe Fabianovi.
#23
Publikováno 09 březen 2009 - 14:15
--
I always use ROT13 twice for extra security
#24
Publikováno 09 březen 2009 - 15:11
#25
Publikováno 09 březen 2009 - 15:39
Numira napsal/a:
Zároveň si troufnu přidat svůj odhad: 15% pro přítomnost všech členů BM
Jelikož je teď mezičas Mitákových pokusů s poskytnutými nápady (za mě smekám před Pabou a Mimonem, že jsou schopni to makro napsat a ono to funguje), tak jsou ty odhady dobrou mezihrou. Výsledky zatím nevím a tipuju pro nález keše úplně všemi členy BM n=0 tak na 8% a min. 5 členy, tzn n=max 4 (nadpoloviční zastoupení) tak na 28%.
Bylo by fajn, kdyby výsledkem byl nějaký obecný univerzální snadný postup vytvoření teamých statistik pro všechny a vznikl odkaz z gc.cz na stránku s nicky týmů a odkazy na jejich profily se statistikou.
#26
Publikováno 09 březen 2009 - 15:39
#27
Publikováno 09 březen 2009 - 15:49
Pak následujícím příkazem spustit skript (samozřejmě je potřeba upravit cestu, vstupy a výstupy, "pq_myfinds_merge" je název souboru, ve kterém mám uložen skript)
perl pq_myfinds_merge c:\temp\mitak.gpx c:\temp\marekl.gpx >c:\temp\bm.gpx
A tady je samotný skript, který jsem zatím zkoušel pro slučování mých ("mitak") a Mareklových ("marekl") statistik, pod účet "Brno Mafia" (ID "969055"). Všechno toto je potřeba v textu upravit a přepsat na vaše údaje. Makro sbírá údaje typu "found it, attended a webcam photo taken", teď mě nenapadá, jestli jsou ještě další, ale při porovnání s manuálně vytvořenou kombinací se žádné logy neztratily a myslím, že mám zalogované všechny typy keší kromě Locationless a Benchmarků.
#!/usr/bin/perl
use strict;
use utf8;
use Fatal qw(open close);
use Data::Dumper;
our @clenove = ('mitak', 'marekl');
our $virtual_finder = "Brno Mafia";
binmode (STDOUT, ":utf8");
our %cache_by_wp = ();
my $prvni = 1;
foreach my $fname (map {glob} @ARGV) {
open (F, "<$fname");
binmode(F, ":utf8");
my $in_header = 1;
my $in_wpt = 0;
my @cur_wpt = ();
while (<F>) {
$in_header = 0 if /<wpt/;
# zahlavi vezmu z prvniho souboru:
print $_ if $prvni && $in_header;
if (!$in_header) {
$in_wpt = 1 if /<wpt/;
if ($in_wpt) {
s/[\r\n]+$//;
push @cur_wpt, $_;
};
if (/<\/wpt/) {
zpracuj_wpt(\@cur_wpt);
$in_wpt = 0;
@cur_wpt = ();
};
};
};
close F;
$prvni = 0;
};
# Ted u kazdeho waypointu seradim logy podle data:
foreach my $id (sort keys %cache_by_wp) {
my $logy = $cache_by_wp{$id}->{logs};
my @serazene = sort {$a->{datecmp} cmp $b->{datecmp}} @{$logy};
$cache_by_wp{$id}->{logs} = \@serazene;
};
# a vygeneruji novy seznam:
foreach my $id (sort {
# prednostne podle data nalezu:
($cache_by_wp{$a}->{logs}->[0]->{datecmp} cmp $cache_by_wp{$b}->{logs}->[0]->{datecmp})
||
# pak podle ID cache:
($a cmp $b)
} keys %cache_by_wp) {
#print STDERR "$id nalezeno " . join(' ', map {$_->{datecmp}} @{$cache_by_wp{$id}->{logs}}) . "\n";
print join('', map {"$_\n"} @{$cache_by_wp{$id}->{pred}});
print " <groundspeak:logs>\n";
# jen prvni log u kazde cache:
print join('', map {"$_\n"} @{$cache_by_wp{$id}->{logs}->[0]->{newlog}});
print " </groundspeak:logs>\n";
print join('', map {"$_\n"} @{$cache_by_wp{$id}->{po}});
};
print "</gpx>\n";
exit;
############################################################################################33
sub zpracuj_wpt {
my ($wp) = @_;
my $ok = 0;
my ($id); # GCabcdef
my (@pred, @po); # radky pred a po tagu <groundspeak:logs>
my $in_logs = 0;
# <groundspeak:logs>
foreach (@{$wp}) {
if (m#<name>(.+)</name>#) {
$id = $1;
};
if (/<groundspeak:logs>/) {
$in_logs = 1;
next;
};
if (/<\/groundspeak:logs>/) {
$in_logs = 2;
next;
};
if ($in_logs == 0) {
push @pred, $_;
} elsif ($in_logs == 2) {
push @po, $_;
};
};
my $in_log = 0;
my @log = ();
foreach (@{$wp}) {
$in_log = 1 if m#<groundspeak:log #;
if ($in_log) {
push @log, $_;
if (m#</groundspeak:log>#) {
if (my $i = log_je_ok(\@log)) {
$cache_by_wp{$id} = {pred => \@pred, po => \@po, logs => []} if !exists $cache_by_wp{$id};
push @{$cache_by_wp{$id}->{logs}}, $i;
};
$in_log = 0;
@log = ();
};
};
};
};
sub log_je_ok {
my ($log) = @_;
foreach my $clen (@clenove) {
if (grep m#<groundspeak:finder.*>\Q$clen\E</groundspeak:finder>#, @{$log}) {
# je to tymovy log
if (grep m#<groundspeak:type>(Found it|Attended|Webcam Photo Taken)</groundspeak:type>#, @{$log}) {
# a neni to DNF / Write notice / ...
my ($datum) = ((grep m#<groundspeak:date>#, @{$log})[0] =~ />(.+)</);
foreach (@{$log}) {
if (/<groundspeak:finder/) {
$_ = "\t\t<groundspeak:finder id=\"969055\">${virtual_finder}</groundspeak:finder>";
};
};
# datum je v GPX formatu: 2006-06-11T07:00:00
# (takze se da snadno porovnavat primo jako text)
return {
datecmp => $datum,
newlog => [@{$log}] # kopie
}
};
};
};
return;
};
#28
Publikováno 09 březen 2009 - 16:31
--
I always use ROT13 twice for extra security
#29
Publikováno 09 březen 2009 - 17:04
#30
Publikováno 09 březen 2009 - 17:36
#31
Publikováno 09 březen 2009 - 17:49
No, cele zrychleni spociva v tom, ze jsem tam pridal radky transaction action=begin a transaction action=end . Souvisi to s tim, jak pracuje GSAK 7.5 s databazi (bez techto radku to aktualizuje na disku pri kazdem zapisu, takhle az na konci). Vzpomnel jsem si na to, az kdyz jsem videl, jak je to zoufale pomaly....mitak napsal/a:
Zrychlení je parádní, chválím, před tím bych rozhodně favorizoval Mimoně na "vítěze" i přesto, že je potřeba instalovat Perl, ale takhle bych asi pracoval dál radši s PaBovým makrem, u kterého stačí jen GSAK.
Zkusim se nad tim jeste zamyslet, ale ted je to docela elegantni tim, ze tam ten log zustava a ze tam zadny dalsi nepribyvaji (a pri natazeni PQ se nemusi mazat, ma zachovan i log-id (funguje tedy spravne i trideni a podobne). Mozna by stacilo ulozit jmeno tohoto prvniho nalezce do nejake user promenne - odtamtud by se dalo kdykoli pozdeji vytahnout a pak by s nim slo pracovat i dale... Co myslite?mitak napsal/a:
Jen mám ještě jednu prosbu: Z důvodu dalšího vývoje a možností tvorby dalších maker pro podrobnější zpracování bych chtěl poprosit, jestli by to nešlo upravit tak, aby nebyl nejstarší log z databáze vytvořené z jednotlivých MFPQ (více logů členů u jednoho waypointu) nebyl přepisem logu člena, který našel jako první, ale jeho kopie ? Tj. vzít nejstarší log a zkopírovat pod nick "Brno Mafia". Jde mi o to, že by se pak dalo z GPX zjistit, kdo z týmu keš našel a kdo ještě ne.
--
I always use ROT13 twice for extra security
#32
Publikováno 09 březen 2009 - 18:55
#34
Publikováno 22 březen 2009 - 12:30
#35
Publikováno 23 březen 2009 - 9:20
#36
Publikováno 23 březen 2009 - 11:26
mitak napsal/a:
Všichni jsme zatvrzelí GSAKáci a to že tu zrovna nic neřešíme znamená to, že jsme problém víceméně úspěšně vyřešili a statistiky máme v cajku. I když připouštím, že ještě drobné požadavky jako přesnější statistiky mezi jednotlivými členy jsou zajímavá nabídka, tak pokud jde o jakékoliv statistiky mimo GSAK, tak je považuju za bezcenné a osobně se tímto programem zabývat dál nebudu.
Myslim, ze by to slo napsat i bez toho neprijemneho tonu. Doufam, ze jsem te svymi dotazy prilis neobtezoval.
Ps: Predpokladam, ze GSAK umi statistiky generovat tak, aby vsichni clenove tymu nemuseli furt dokola posilat sve GPX jednomu, ktery je bude sestavovat a pak je zase posilat sestavene zpet.
#37
Publikováno 23 březen 2009 - 13:31
Nevím, jak si představuješ, že každý z členů týmu bude moci aktualizovat nálezy všech ostatních?davem napsal/a:
Ps: Predpokladam, ze GSAK umi statistiky generovat tak, aby vsichni clenove tymu nemuseli furt dokola posilat sve GPX jednomu, ktery je bude sestavovat a pak je zase posilat sestavene zpet.
#38
Publikováno 23 březen 2009 - 13:47
Sorry za ten tón, prostě jsem byl jen líný všude psát smajlíky Statistiky vždy potřebují nějaký vstup a tímto vstupem je MyFinds Pocket Query od jednotlivých lidí.davem napsal/a:
mitak napsal/a:
Všichni jsme zatvrzelí GSAKáci a to že tu zrovna nic neřešíme znamená to, že jsme problém víceméně úspěšně vyřešili a statistiky máme v cajku. I když připouštím, že ještě drobné požadavky jako přesnější statistiky mezi jednotlivými členy jsou zajímavá nabídka, tak pokud jde o jakékoliv statistiky mimo GSAK, tak je považuju za bezcenné a osobně se tímto programem zabývat dál nebudu.
Myslim, ze by to slo napsat i bez toho neprijemneho tonu. Doufam, ze jsem te svymi dotazy prilis neobtezoval.
Ps: Predpokladam, ze GSAK umi statistiky generovat tak, aby vsichni clenove tymu nemuseli furt dokola posilat sve GPX jednomu, ktery je bude sestavovat a pak je zase posilat sestavene zpet.
#39
Publikováno 23 březen 2009 - 14:58
PLAJ family napsal/a:
Nevím, jak si představuješ, že každý z členů týmu bude moci aktualizovat nálezy všech ostatních?
Ale ja jo. V GSAKu vsak tezko.
mitak napsal/a:
Sorry za ten tón, prostě jsem byl jen líný všude psát smajlíky Statistiky vždy potřebují nějaký vstup a tímto vstupem je MyFinds Pocket Query od jednotlivých lidí.
Ok Na to, ze jsi liny, tak jsi napsal docela dlouhy prispevek
1 uživatel(ů) prochází toto téma
0 uživatelů, 1 návštěvníků 0 anonymních uživatelů