Samozřejmě rád pomůžu, zdatný programátor ale moc nejsem
Předně bych potřeboval vědět jakým způsobem to má řešené, předpokládám že úplně jinak
V mém případě je to tak že v dávce (ano .bat soubor
) přes wget nejprve stáhnu všechny "user.gz" z jednotlivých projektů (tj. jiné než originální neřeší), ty pak v další části rozbalím gzipem a tyto zdrojové XML soubory přeparsuji malým 8 kB prográmkem, který pro mě napsal kamarád v C# a dá se říci že je přímo uzpůsobený mému zázemí, tj. je v .NET 2.0 a aspoň na můj vkus je velmi rychlý za cenu někdy až ohromné spotřeby paměti (kamarád v tu chvíli netušil jak velké soubory s tím budu zpracovávat a když jsem mu to pak řekl tak se zděsil
)
Nejlépe je to vidět na zpracování uživatelských statistik pro SETI@home, kdy v jednu krátkou chvíli ten program obsadí až 1,25GB RAM (což mi nevadí, na mém kompu na hraní mám ramky dost) kdy pak vyplivne už jen maličké SQL souborky všech (a pouze) členů CNT na daném projektu, které pak v další části dávky naimportuji do db... na dnes už velmi archaickém a stále něčím dalším vytěžovaném Duronu 1.3GHz je samotné zpracování zhruba 600MB XML dat za nějakou minutu a půl, což mi přijde u tak zaměstnaného dědka jako poměrně slušné skóre
Tabulka databáze strukturou de facto kopíruje strukturu uživatelských XML a počítá s tím že si bude moci pamatovat předem nedefinovaný počet předchozích aktualizací, není pro mne problém třeba poskytnout do ní vzdálený přístup na kopírování (třeba záložních) dat, jsem na 100mbit lince s testem viz podpis. Jinak nevím jestli jsem něco přehlédl, ale zdá se mi že s daty od WCG problémy nemám (pravda mrtvé projekty jsem zatím neřešil a v dávce je přeskakuji)
Osobně bych měl několik námětů kterými jsem se chtěl původně zabývat sám a zároveň k tomu přidám vkliberovo otázky
- využití všech dostupných informací, tedy datem registrace na projektu počínaje, přes poslední přidělený kredit, a odkazem na uživatelovo URL v nicku konče (jednotlivé Nick1 | Nick2 | Nick3 by mohly odkazovat na stránky definované uživatelem v profilu)
- zaokrouhlování na celá čísla, ty desetinky jsou nepodstatné, přehlednosti zrovna nepřidávají a jen pak zabírají místo (jak v db tak na stránce)
- osobně bych byl pro statistiky (také) zcela vydělené z layoutu CNT stránek, aspoň co do šířky, bude tam pak více místa pro více informací a také mi to přijde pak přehlednější, něco ve stylu starých statistik, časem třeba rozšířené o "UI" kdy si uživatel bude moci vyhrát s tím co chce zobrazit, tedy např. odfiltrovat neaktivní uživatele, výběr zobrazených projektů, apod.
- velmi by mne upoutalo zobrazení "skutečného" přírůstku kreditů a to ať už celkem nebo u jednotlivých projektů
- jako programátor-laik bych byl pro to, aby veškerá data byla už předzpracovaná a stránky by pouze dané informace vypisovaly, nic by samy nepočítaly apod.
- změna pozice by v základu mohla být zobrazena za poslední den (tak jako u starých statistik), ale tomuto údaji bych jinak věnoval i svůj vlastní koutek, tedy jakýsi vývoj apod.
- historie sedmi dnů nazpět je podle mne dostatečná, pokud by sis chtěl hodně vyhrát, mohly by se s koncem měsíce dělat "uzávěrky" s tím že všechny předchozí pak půjdou zobrazit v jakémsi "archivu", statistiky jsou přecejen pro ty co se jimi rádi prohrabávají a čím více možností a informací, tím podle mne budou lepším lákadlem
- změna pozice stačí malá zelená šipka (trojúhelníček) vzhůru, červená dolu a vedle toho číslo +X nebo -X ve stejné barvě
- přimlouval bych se za větší font (ten na starých statistikách mi přišel ideální), 500 řádků na stránku mi přijde ideální
- hodně bych se soustředil na přehlednost, která by aspoň podle mého názoru byla nejlepší při nějakém kompromisu mezi rozdělením jednotlivých "sekcí" informací a zároveň dostatečným zásobení těch obecných dalšími detaily, jako celkem vhodná představa mi připadá jakási "bublina" dynamicky vykreslená po najetí myší nad řádkou (je celkem dost míst "kam se dá kliknout", do extrému dovedeno by mohl být URL v profilu jako odkaz u nicku, kliknutí na skóre u projektu vyvolá jeho maximální detaily, kdekoli jinde na řádce jen zobrazení bubliny s nějakými omezenějšími informacemi než plné detaily)
- velmi mne upoutal generátor "milníků" na webu, podle mne by stálo za to ho také více rozpracovat, popř. zapracovat do celého tohoto díla, sledovat se dá leccos, od kulatin kreditů na jednotlivých projektech nebo celkem, výročí připojení se k projektu, překonání kulatých pozic v CNT, totéž pak pro minitýmy, atd...
- měnit barvu řádku při najetí myší by pomohlo přehlednosti, ale přimlouval bych se jen na decentní změně barvy, ostatně jako pozadí bych zvolil jinou než bílou, nějaký "odstín", třeba i s tím že by se (opět jen lehce) střídal odstín u sudých a lichých řádků
- minitýmy budou muset být tak jako tak aktualizovány ručně, pokud se chceme vyhnout vtipálků přehazující jiné uživatele, majitele lze identifikovat leda pouze podle e-mailu, který ověřit může ale asi jen ten s přístupem ke správě týmů v projektu, asi by to chtělo autora starých statistik uhnat ať dodá databázi, protože přepisovat to by byl masakr a podle mne zbytečný
-vzhledem k dostupnosti všech CPID bych navrhoval generovat podpisy automaticky bez nutnosti registrace (nebo jsem aspoň nepochopil proč by tomu /teď/ tak nemohlo být) jak jsem psal výše, bylo by dobré ty obrázky předžvýkat do souborů-png aby se pak s nimi nemusely skripty dřít v reálném čase
...tak jsem ze sebe vysypal asi všechno co jsem měl na srdci tak jak to tam bylo, snad to je aspoň trochu srozumitelné a někdo si z toho něco vybere