BOINC@Poland

BOINC@Poland => Wizytówki => Wątek zaczęty przez: mindc w 05 Wrzesień 2008, 18:45

Tytuł: mindc
Wiadomość wysłana przez: mindc w 05 Wrzesień 2008, 18:45
nick: mindc / panther
imię: Paweł
urodzony: 30 marca 1978
skąd: Szczytno (warmińsko-mazurskie)
zawód wyuczony: radioelektronik
zawód wykonywany: administrator sieci
zainteresowania: ułatwianie sobie życia skryptami, grafika, szeroko pojęte dłubanie w kompach (hardware i software), sporadycznie AVR (asembler)
ulubione gry: DeusEx, Hitman 2, Diablo II, Quake III Arena, CS/CSS, saga Homeworld, Dragon Age, Cabal Online, BattleForge... a ostatnio EVE Online
www: http://mindc.net (http://mindc.net)

Swoją przygodę z liczeniem rozproszonym rozpocząłem w drugiej połowie 1999 roku.
Na ustach wszystkich było SETI, każdy chciał coś policzyć więc i ja.
Odkrycie, że przy wyłączeniu graficznego wygaszacza, próbki liczą się trzy razy szybciej, było porażające :D

W 2000 roku, moje liczenie wygasło śmiercią naturalną...

długo, długo nic.......................

W 2006 roku, szukałem czegoś, co mogłoby wygrzać kompa no i przypomniałem sobie o SETI. Po kilku latach
przerwy, odkryłem BOINC. Po testach, zapuściłem SETI na trzech trupowatych kompach. Szybko przestałem liczyć na domowym kompie, no bo już się wygrzał :D, a trupy liczyły sobie dalej.....

W kwietniu 2008, przypomniałem sobie o SETI, z dorobkiem 50000 punktów, ponownie zacząłem liczyć.
Tak sobie liczyłem, liczyłem, doszedłem do ok. 200000 punktów i zostałem zaproszony, właśnie do BOINC@Poland...

No i tak liczę do dzisiaj...

SETI - coraz mniej, stwierdziłem, że to projekt dla samego liczenia, ale sentyment pozostał...
POEM - zaczęło się od 'projektu miesiąca' w drużynie, dobiłem tak do 1M. Teraz liczę od czasu do czasu...
Cosmology - również zaczęło się od 'projektu miesiąca', jednak w tamtym okresie Cosmo zaczęło mieć problemy, i zacząłem szukać innych projektów...
PrimeGrid - lubię cyferki...
MilkyWay - odkryłem duży RAC, ale po nastaniu ery liczących GPU i zawirowaniach z optymalkami - odpuściłem sobie...

Obecnie liczę nasze AP26 (PrimeGrid) oraz Collatz Conjecture

AP26 znaleziono, więc teraz przyszła pora na SZTAKI, projekt w sam raz na moje kompy-trupy....

FreeHAL - dużo punktów za nic... - jak na razie "projekt" ma "przerwę" ;)

AQUA - chcę dobić do 1M...

Ostatnio zająłem się WEP-M+2 Project...

Resztę widać tu:
(http://stats.free-dc.org/cpidtagb.php?cpid=7b175147363959f6fd1ab47095338c20&cols=3)

W międzyczasie skrobnąłem tutorial o robieniu własnych statystyk BOINC z RRDTool (http://boinc.mindc.net)

Pozdrawiam

(http://sphotos-d.ak.fbcdn.net/hphotos-ak-snc7/431183_4679990604282_1477356508_n.jpg)

domowa radiówka:

(http://www.speedtest.net/result/5649979183.png) (http://www.speedtest.net)
Tytuł: Odp: mindc
Wiadomość wysłana przez: stasieks w 05 Wrzesień 2008, 21:24
Fajnie napisane. No i zdjecie jest !!

Pozdrawiam z Poznania.
Tytuł: Odp: mindc
Wiadomość wysłana przez: emik w 05 Wrzesień 2008, 21:50
w mojej wizytówce też jest zdjęcie ;D
Tytuł: Odp: mindc
Wiadomość wysłana przez: Pigu w 05 Wrzesień 2008, 22:50
witam serdecznie kamrrrata na pokładzie
Tytuł: Odp: mindc
Wiadomość wysłana przez: AiDec w 08 Wrzesień 2008, 07:34
Witam serdecznie kolege z podobnymi zainteresowaniami (znaczy sie zainteresowanego dobrym RAC`em  :P  ;D ). Punkciki, punkciki... ;D
Tytuł: Odp: mindc
Wiadomość wysłana przez: Troll81 w 08 Wrzesień 2008, 10:15
Witam :D
Tytuł: Odp: mindc
Wiadomość wysłana przez: mindc w 14 Wrzesień 2008, 12:20
Moje zabawy z RRDtool...
(http://zeus.mindc.net/~panther/avgrac_30d.png)
(http://zeus.mindc.net/~panther/total_720d.png)
Tytuł: Odp: mindc
Wiadomość wysłana przez: kempler w 14 Wrzesień 2008, 12:23
Ale fajne  :)
Tytuł: Odp: mindc
Wiadomość wysłana przez: emik w 14 Wrzesień 2008, 12:27
może byś zamieścił jakąś instrukcję jak wykonać sobie samemu takie ładne wykresiki ;D
Tytuł: Odp: mindc
Wiadomość wysłana przez: mindc w 20 Wrzesień 2008, 03:48
UWAGA: Informacje o RRDTool są przedawnione, odsyłam do aktualnej wersji (http://boinc.mindc.net)

Tutorial/gotowiec: własne wykresy BOINC RAC i Total Credits

Wykresy są generowane pod Linuxem, o porcie na Windows może kiedyś pomyślę :)
Służę pomocą, gdyby ktoś to chciał odpalić u siebie.

potrzebujemy:
- maszyny z Linuxem
- uruchomiony BOINC z podpiętymi projektami jakie chemy mieć na wykresach
- działającego RRDtoola
- Perl zawsze się znajdzie + moduł RRDs + XML::Simple

Projekty, których nie chcemy liczyć na tej maszynie, ustawiamy na 'no new tasks'.
BOINC robi za nas najważniejszą robotę, czyli pobiera aktualne dane o punktach i RAC bezpośrednio z
projektów i zapisuje sobie to wszystko w plikach xml. Podpinamy pod crona skrypt (u siebie ustawiłem co 26 minut),
który nam będzie wymuszał aktualizację projektów. Najprostszy skrypt do aktualizacji:


#!/bin/bash

BOINCDIR=/sciezka/do/BOINC
cd $BOINCDIR
for PROJECT in `command ls -1 $BOINCDIR/projects | tr _ /`;do
./boinc_cmd --project http://$PROJECT update
done


Gdy już mamy samoaktualizującego się BOINCa, wystarczy, że co pewien czas (u mnie cron, co 10 minut)
uruchomimy zamieszczony poniżej skrypt w Perlu.
(chciałbym dodać, że nie jestem z wykształcenia programistą i przepraszam za jakość kodu,
ja po prostu piszę sobie skrypty i np.: komentarze wstawiłem dopiero teraz :) )


#!/usr/bin/perl -w

use strict;
use warnings;
use XML::Simple;
use POSIX qw(strftime);
use lib qw( /ścieżka/do/katalogu/z/modułem/RRDs );
use RRDs;

my $BOINC_DIR = '/scieżka/do/BOINC';
my $BOINC_CMD = $BOINC_DIR.'/boinc_cmd';
my $WORKDIR = '/ściezka/do/katalogu/z/plikami/rrd';

chdir $BOINC_DIR;
opendir my $dh, 'projects';
my $dir = [ ];
@$dir = readdir($dh); # pobieramy listę projektów

my $timestamp = time;
my $ftime = strftime('%Y-%m-%d %H\:%M\:%S %Z',localtime($timestamp)); # stopka na wykresie

# ogólny wygląd wykresu
my @graph_defaults = (
"--slope",
"--font=DEFAULT:6:$WORKDIR/fleftex.ttf", # tu użyłem niestandardowej czcionki, więc w przypadku jej braku wykres rozjedzie się
"--width=269",
"--height=269",
"--lower-limit=0",
"--units=si",
"--rigid",
"--color=BACK#ffffff00",
"--color=CANVAS#ffffff00",
"--color=AXIS#000000",
"--color=FONT#000000",
"--color=MGRID#00000030",
"--color=GRID#00000020",
"--color=SHADEA#F5F5F500",
"--color=SHADEB#F0F0F000",
"--color=ARROW#000000",
);

my $projects = {};
my $totals = {};

foreach ( @$dir ) { # przetwarzamy każdy z projektów
    next if m'^\.';
    print "$_...\n";

    unless ( -r "$WORKDIR/$_.rrd" ) { # tworzymy jednorazowo bazę dla konkretnego projektu
        RRDs::create "$WORKDIR/$_.rrd","--start=now-30d",
            "--step=3600",
            "DS:user_total_credit:GAUGE:86400:0:U",
            "DS:user_expavg_credit:GAUGE:86400:0:U",
            "RRA:LAST:0.5:1:20000",
            ;
    }
   
    # czytamy dane z plików xml
    my $account = read_xml("$BOINC_DIR/account_${_}.xml");
    my $statistics = read_xml("$BOINC_DIR/statistics_${_}.xml");

    # wyciągamy interesujące nas dane
    $projects->{$_}{user_total_credit} = $statistics->{daily_statistics}[-1]{user_total_credit};
    $projects->{$_}{user_expavg_credit} = $statistics->{daily_statistics}[-1]{user_expavg_credit};

    $totals->{user_total_credit} += $projects->{$_}{user_total_credit};
    $totals->{user_expavg_credit} += $projects->{$_}{user_expavg_credit};
   
    # w którymś z projektów 'projekt_name' okazał się pusty przez jakiś czas
    # więc zatąpiłem go urlem
    $projects->{$_}{name} = $account->{project_name} || $account->{master_url};

    # aktualizujemy bazę
    RRDs::update ( "$WORKDIR/$_.rrd","$timestamp:$projects->{$_}{user_total_credit}:$projects->{$_}{user_expavg_credit}");
    if ( my $err = RRDs::error ) {print "update: $err\n"}
}

# tablica z kolorami dla projektów
# zawartoś tablicy to np.: [ 'FF0000' , 'FF9900' ... ] czyli mozna sobie ustawić kolory wedle upodobań
my @colors;
my $total = keys %$projects;
for ( my $i = 0;$i < $total;$i++ ) {
    push @colors,hsv2rgb($i/$total*360,1,1);
}

# sortujemy wykres po RAC
my @prosort = sort { $projects->{$b}{user_expavg_credit} <=> $projects->{$a}{user_expavg_credit} } keys %$projects;

# lub po nazwie projektu
#my @prosort = sort { uc($projects->{$a}{name}) cmp uc($projects->{$b}{name}) } keys %$projects;

# maksymalna wysokość wykresu
$totals->{user_total_credit} *= 1.05;
$totals->{user_expavg_credit} *= 1.05;

# tworzymy wykresy
foreach my $target ( qw (user_total_credit user_expavg_credit) ) {
    do_graph($target);
}

exit;

# wykres
sub do_graph {
    my $target = shift;
    my $i = 0;
    my $title;

    my @graphs;
    my @stack;

    foreach my $project ( @prosort ) {
        (my $project_name = $projects->{$project}{name}) =~ s/:/\\:/g; # gdy w nazie projektu pojawi się ':' musimy go 'poprawić'
        push @stack,"$target$i"; # ustawiamy odpowiednie nazwy zmiennych dla wyrażeń RPN

        if ( $target eq 'user_expavg_credit') {
            $title = 'boinc racs';
            push @graphs,
                "DEF:$target$i=$WORKDIR/$project.rrd:$target:LAST",
                "AREA:$target$i#$colors[$i]:$project_name ".'.' x (41 - length($projects->{$project}{name})).":STACK",
                "GPRINT:$target$i:LAST:%8.2lf\\n";
        }

        if ( $target eq 'user_total_credit' ) {
            $title = 'boinc totals';
            push @graphs,
                "DEF:$target$i=$WORKDIR/$project.rrd:$target:LAST",
                "AREA:$target$i#$colors[$i]:$project_name ".'.' x (36 - length($projects->{$project}{name})).":STACK",
                "GPRINT:$target$i:LAST:%11.2lf\\n";
        }
        $i++;
    }

    if ( $target eq 'user_expavg_credit' ) {
        push @graphs,
            "COMMENT: \\n",
            "--upper-limit=$totals->{user_expavg_credit}",
            "CDEF:total=".join(',', @stack).',+' x (@stack - 1),
            "GPRINT:total:LAST:TOTAL ".'.' x (43 - length('total'))." %9.2lf\\n";
    }

    if ( $target eq 'user_total_credit' ) {
        push @graphs,
            "COMMENT: \\n",
            "--upper-limit=$totals->{user_total_credit}",
            "CDEF:total=".join(',', @stack).',+' x (@stack - 1), # sumujemy dane z wszystkich projektów
            "GPRINT:total:LAST:TOTAL ".'.' x (38 - length('total'))."  %11.2lf\\n";
    }

    RRDs::graph "$WORKDIR/$target.png",
        "--title=$title",
        "--start=1215129600", # start wykresów
        @graph_defaults,
        @graphs,
        "COMMENT: \\n",
        "COMMENT:generated \@ $ftime\\r",
        ;
    if ( my $err = RRDs::error ) {print "graph:$target: $err\n"}
}

# czytanie plików xml
sub read_xml {
    my $path = shift;
    my $content = XMLin( $path, ForceArray => ['daily_statistics'],  SuppressEmpty => 1, NormalizeSpace => 2, KeyAttr => '', );
    return $content;
}

sub dec2hex {
    return sprintf "%02x",int shift;
}

# dla łatwego rysowania 'tęczy', wykorzystałem funkcję zamieniającą model kolorów HSV na RGB
# źródło: wiki :)
sub hsv2rgb {
    my ($h,$s,$v) = @_;
    my $hi = int($h/60) % 6;
    my $f = $h/60 - int($h/60);
    my $p = $v * (1 - $s);
    my $q = $v * (1 - $f * $s);
    my $t = $v * (1 - (1 - $f) * $s);

    for ($v,$t,$p,$q) {
        $_ *= 255;
        $_ = dec2hex($_);
    }

    return "$v$t$p" if $hi == 0;
    return "$q$v$p" if $hi == 1;
    return "$p$v$t" if $hi == 2;
    return "$p$q$v" if $hi == 3;
    return "$t$p$v" if $hi == 4;
    return "$v$p$q" if $hi == 5;
}


To chyba wszystko. Uwagi/sugestie mile widziane.

Pozdrawiam
Tytuł: Odp: mindc
Wiadomość wysłana przez: Mori w 20 Wrzesień 2008, 13:13
Gdybyś jednak przerobił to tak, by można było podawać własne XMLe z wartościami... Wtedy nie potrzeba było maszyny z BOINCem, a jedynie pobierać odpowiednie dane z HTTP, co nie jest trudne. Najchętniej widziałbym w ogóle oddzielenie modułu do pobierania danych i samego rysowania wykresu.

+ przerobienie tego na PHP i wykorzystanie czegokolwiek, co w PHP grafikę rysuje.

Uhm, i takie pytanie: nie wiem jak w Perlu, ale AFAIR w PHP readdir zwracał także . i .. - pozbywasz się ich gdzieś?

PS. Pokazałbyś gdzieś jakiś własny przykład danych z jednego projektu, jakie dostarczasz do RRD? Jak to wygląda?
Tytuł: Odp: mindc
Wiadomość wysłana przez: mindc w 20 Wrzesień 2008, 13:46
Cytat: Mori w 20 Wrzesień 2008, 13:13
Gdybyś jednak przerobił to tak, by można było podawać własne XMLe z wartościami... Wtedy nie potrzeba było maszyny z BOINCem, a jedynie pobierać odpowiednie dane z HTTP, co nie jest trudne. Najchętniej widziałbym w ogóle oddzielenie modułu do pobierania danych i samego rysowania wykresu.

hmmm... rzeczywiście, jak dojde do tego, jak odczytywać pewne dane bezpośrednio z serwera projektu, być może przerobie skrypt.
Z drugiej strony, wystarczy, że do maszyny dodam projekt i już niczym nie muszę się martwić, reszta robi się automatycznie

Cytat
+ przerobienie tego na PHP i wykorzystanie czegokolwiek, co w PHP grafikę rysuje.

PHP wykorzystuję do totalnie innych rzeczy, ale sie domyślam do czego bijesz. Nie każdy ma dostęp do powłoki
ale sporo osób do własnego www+php ma :)
A jesli chodzi o grafikę, to jest chyba moduł RRD pod PHP, rysowanie tego od zera, dla mnie mija się z celem.
Dlatego wybrałem RRD, zbieranie danych + reprezentacja graficzna w jednym.

Cytat
Uhm, i takie pytanie: nie wiem jak w Perlu, ale AFAIR w PHP readdir zwracał także . i .. - pozbywasz się ich gdzieś?

tak :) tutaj:
next if m'^\.';
nazwy projektów nie zaczynaja się od kropek, więc mogłem sobie to uprościć

Cytat
PS. Pokazałbyś gdzieś jakiś własny przykład danych z jednego projektu, jakie dostarczasz do RRD? Jak to wygląda?

nie wiem czy dokładnie o to Ci chodzi...
w pliku np.: statistics_boinc.fzk.de_poem.xml
mamy fragment

    <daily_statistics>
        <day>1221868800.000000</day>
        <user_total_credit>461808.409442</user_total_credit>
        <user_expavg_credit>3920.411788</user_expavg_credit>
        <host_total_credit>0.000000</host_total_credit>
        <host_expavg_credit>0.000000</host_expavg_credit>
    </daily_statistics>


wyciagam z tego dane, takie jakie są i wrzucam do RRD


RRDs::update ( '/home/panther/boinc/boinc.fzk.de_poem.rrd', '1221910380:461808.409442:3920.411788' );



Tytuł: Odp: mindc
Wiadomość wysłana przez: Mori w 20 Wrzesień 2008, 14:17
Cytat: mindc w 20 Wrzesień 2008, 13:46hmmm... rzeczywiście, jak dojde do tego, jak odczytywać pewne dane bezpośrednio z serwera projektu, być może przerobie skrypt.
Z drugiej strony, wystarczy, że do maszyny dodam projekt i już niczym nie muszę się martwić, reszta robi się automatycznie

Niby tak - ale dużo łatwiej byłoby podać tylko user/pass, a potem żeby skrypt sam łączył się po kolei z wszystkimi projektami, próbował się zalogować... Jak jest konto - dodaje je do bazy. Jak nie ma - to nie ma.

A potem by tylko z tych serwerów, gdzie konto jest, pobierał dane.

CytatPHP wykorzystuję do totalnie innych rzeczy, ale sie domyślam do czego bijesz. Nie każdy ma dostęp do powłoki ale sporo osób do własnego www+php ma :)

No więc właśnie. Poza tym chyba 'pijesz' ;) Chociaż ja abstynent akurat jestem.

CytatA jesli chodzi o grafikę, to jest chyba moduł RRD pod PHP, rysowanie tego od zera, dla mnie mija się z celem.
Dlatego wybrałem RRD, zbieranie danych + reprezentacja graficzna w jednym.

Są gotowe klasy do rysowania w PHPie. Poza tym żadne tam rysowanie od zera - dość podobne rzeczy, jakie robisz teraz, robić trzeba będzie w PHPie.

Cytattak :) tutaj:
next if m'^\.';
nazwy projektów nie zaczynaja się od kropek, więc mogłem sobie to uprościć

Ha, wiedziałem xD BTW. Dżizaz, co za składnia... Tragedia. Jak człowiek ma rozumieć to:
m' [tu regexp] '
:/ Chyba jednak najpierw się za Pythona wezmę, nie za Perla...

Cytatnie wiem czy dokładnie o to Ci chodzi...
w pliku np.: statistics_boinc.fzk.de_poem.xml
mamy fragment

    <daily_statistics>
        <day>1221868800.000000</day>
        <user_total_credit>461808.409442</user_total_credit>
        <user_expavg_credit>3920.411788</user_expavg_credit>
        <host_total_credit>0.000000</host_total_credit>
        <host_expavg_credit>0.000000</host_expavg_credit>
    </daily_statistics>


wyciagam z tego dane, takie jakie są i wrzucam do RRD


RRDs::update ( '/home/panther/boinc/boinc.fzk.de_poem.rrd', '1221910380:461808.409442:3920.411788' );


Tak, o to. W takim razie staty będą działać tylko od momentu rozpoczęcia pobierania danych i wszystko na tych aktualkach się będzie opierać... Szkoda. Myślałem, że można gdzieś dostać historię tego...

PS. Jak serwer nie wygenerował nowych statystyk za dany dzień to day i tak się update'uje? Poza tym co 10 minut to chyba jest jednak za często - nie lepiej robić to raz na 12/24h? Koniec końców day i tak pewnie raz tylko aktualizują, więc czy nie kończy się to tylko xxx wpisami z tym samym timestamp'em w pliku .rrd?

PS. Pokazałbyś jakiś plik .rrd, o ile to tekst.
Tytuł: Odp: mindc
Wiadomość wysłana przez: mindc w 20 Wrzesień 2008, 15:07
Cytat: Mori w 20 Wrzesień 2008, 14:17
(...) ale dużo łatwiej byłoby podać tylko user/pass, a potem żeby skrypt sam łączył się po kolei z wszystkimi projektami, próbował się zalogować... Jak jest konto - dodaje je do bazy. Jak nie ma - to nie ma.
A potem by tylko z tych serwerów, gdzie konto jest, pobierał dane.

jasne, próbowałem własnie wbić się na serwer POEM, wrzucając mu te same dane co wysyła BOINC ( kopiuj/wklej z tcpdumpa :) )
no i otrzymuję

<scheduler_reply>
<scheduler_version>603</scheduler_version>
<master_url>http://boinc.fzk.de/poem/</master_url>
<request_delay>7.000000</request_delay>
<message priority="low">Error in request message: no end tag </message>
<project_name>Poem@Home</project_name>
</scheduler_reply>


mimo że przejrzałem, czy gdzieś literówki nie ma w zapytaniu, niestety dalej to samo

CytatSą gotowe klasy do rysowania w PHPie. Poza tym żadne tam rysowanie od zera - dość podobne rzeczy, jakie robisz teraz, robić trzeba będzie w PHPie.
brrr... ;)

Cytat
Cytattak :) tutaj:
next if m'^\.';
Ha, wiedziałem xD BTW. Dżizaz, co za składnia... Tragedia. Jak człowiek ma rozumieć to:
m' [tu regexp] '
:/ Chyba jednak najpierw się za Pythona wezmę, nie za Perla...
ja to jeszcze piszę kulturalnie, częściej znajdziesz tak:
next if /^\./;

Cytat(...) W takim razie staty będą działać tylko od momentu rozpoczęcia pobierania danych i wszystko na tych aktualkach się będzie opierać... Szkoda. Myślałem, że można gdzieś dostać historię tego...
tak jak piszesz, ale historię mozna wyciągnąć (chyba) tylko z BOINCStats i pochodnych

Cytat
PS. Jak serwer nie wygenerował nowych statystyk za dany dzień to day i tak się update'uje? Poza tym co 10 minut to chyba jest jednak za często - nie lepiej robić to raz na 12/24h? Koniec końców day i tak pewnie raz tylko aktualizują, więc czy nie kończy się to tylko xxx wpisami z tym samym timestamp'em w pliku .rrd?

W teorii. Dane na dany dzień aktualizowane są na bierząco, jak tylko przydzielą kredyty za próbkę. Więc wpis dla danego dnia także się aktualizuje. Dopiero jak juz dzień się skończy, zostają dane z ostatniej aktualizacji w poprzednim dniu.

Cytat
PS. Pokazałbyś jakiś plik .rrd, o ile to tekst.

Niestety, to są binarki. Ale w samym pakiecie od RRD jest narzędzie do dump/restore w wyniku możemy zrzucić dane do pliku xml, podłubac w nich trochę i z powrotem zobić plik rrd.
Fragmenty pliku po dumpie:

<!-- Round Robin Database Dump --><rrd> <version> 0003 </version>
        <step> 3600 </step> <!-- Seconds -->
        <lastupdate> 1221400022 </lastupdate> <!-- 2008-09-14 15:47:02 CEST -->
        <ds>
                <name> user_total_credit </name>
                <type> GAUGE </type>
                <minimal_heartbeat> 86400 </minimal_heartbeat>
                <min> NaN </min>
                <max> NaN </max>
                <!-- PDP Status -->
                <last_ds> 438524.957450 </last_ds>
                <value> 1.2375169071e+09 </value>
                <unknown_sec> 0 </unknown_sec>
        </ds>

<!-- Round Robin Archives -->   <rra>
                <cf> LAST </cf>
                <pdp_per_row> 1 </pdp_per_row> <!-- 3600 seconds -->
                <params>
                <xff> 5.0000000000e-01 </xff>
                </params>
                <cdp_prep>
                        <ds>
                        <primary_value> 4.3826351904e+05 </primary_value>
                        <secondary_value> NaN </secondary_value>
                        <value> NaN </value>
                        <unknown_datapoints> 0 </unknown_datapoints>
                        </ds>
                        <ds>
                </cdp_prep>
                <database>
                        <!-- 2003-03-25 15:00:00 CET / 1048600800 --> <row><v> NaN </v><v> NaN </v><v> NaN </v></row>
                        <!-- 2003-03-25 16:00:00 CET / 1048604400 --> <row><v> NaN </v><v> NaN </v><v> NaN </v></row>

                        <!-- 2008-09-14 11:00:00 CEST / 1221382800 --> <row><v> 4.3789903405e+05 </v><v> 3.9287622463e+03 </v><v> NaN </v></row>
                        <!-- 2008-09-14 12:00:00 CEST / 1221386400 --> <row><v> 4.3804409243e+05 </v><v> 3.9327159951e+03 </v><v> NaN </v></row>
                        <!-- 2008-09-14 13:00:00 CEST / 1221390000 --> <row><v> 4.3816961994e+05 </v><v> 3.9232498000e+03 </v><v> NaN </v></row>
                        <!-- 2008-09-14 14:00:00 CEST / 1221393600 --> <row><v> 4.3817514456e+05 </v><v> 3.9120825319e+03 </v><v> NaN </v></row>
                        <!-- 2008-09-14 15:00:00 CEST / 1221397200 --> <row><v> 4.3826351904e+05 </v><v> 3.9002132229e+03 </v><v> NaN </v></row>
                </database>
        </rra>
</rrd>


Tytuł: Odp: mindc
Wiadomość wysłana przez: buninek w 20 Wrzesień 2008, 15:51
Cytat: mindc w 20 Wrzesień 2008, 15:07
jasne, próbowałem własnie wbić się na serwer POEM, wrzucając mu te same dane co wysyła BOINC ( kopiuj/wklej z tcpdumpa :) )

curl ewentualnie wget bez problemu pobiorą dane z serwera (o ile będzie on dostępny)

Swoją drogą i tak skrypt spełnia swoje podstawowe zadanie, prezentację za okres dłuźszy niż 60 dni.
Tytuł: Odp: mindc
Wiadomość wysłana przez: mindc w 20 Wrzesień 2008, 16:25
Cytat: buninek w 20 Wrzesień 2008, 15:51
Cytat: mindc w 20 Wrzesień 2008, 15:07
jasne, próbowałem własnie wbić się na serwer POEM, wrzucając mu te same dane co wysyła BOINC ( kopiuj/wklej z tcpdumpa :) )

curl ewentualnie wget bez problemu pobiorą dane z serwera (o ile będzie on dostępny)

tu nie chodzi o pytanie 'czym' (do testowania używam echo "<scheduler_request><tu testowe dane></scheduler_request>" | lynx --source --post_data http://boinc.fzk.de/poem_cgi/cgi), tylko 'jak skonstruować zapytanie do serwera, żeby zwrócił dane które potrzebuje.'
szukam dalej...
Tytuł: Odp: mindc
Wiadomość wysłana przez: buninek w 20 Wrzesień 2008, 20:18
curl -A "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" -d "email_addr=buninek%40gmail.com&passwd=moje_haslo" -s --cookie cookies -L --url http://www.cosmologyathome.org/login_action.php > cosmo_moje_konto.html
lub -o cosmo_moje_konto.html lub | sed | grep | awk ...

EDIT:
Wypadałoby się jeszcze wylogować ;)
curl to potężne narzędzie w rękach osób znających dobrze protokół http, php.
Ma multum zastosowań. Można nawet nim pobrać pocztę przez www.

Ciekawostka dla webasterów.
echo "scale=4;`curl -s -o /dev/null -w '%{time_starttransfer}-%{time_pretransfer}' http://www.boincatpoland.org/smf`"| sed 's/,/\./g' | bc
Mierzy czas reakcji strony od momentu połączenia do rozpoczęcia transferu

Czas reakcji http://www.boincatpoland.org/smf
u mnie wyszło 0.152s.
dla przykładu http://forum.pclab.pl
prawie 1s
Tytuł: Odp: mindc
Wiadomość wysłana przez: mindc w 21 Wrzesień 2008, 01:12
fajnie, u mnie
http://www.boincatpoland.org/smf : 0.054s
http://forum.pclab.pl : 0.174s

Tylko co mi z tego, że się zaloguję na stronę? Potrzebuję się wbić do schedulera.
Tytuł: Odp: mindc
Wiadomość wysłana przez: buninek w 21 Wrzesień 2008, 01:18
w czym problem?
nie znasz swojego userid?
Tytuł: Odp: mindc
Wiadomość wysłana przez: mindc w 21 Wrzesień 2008, 02:50
nawet jak mu wyślę to co sam BOINC wysyła, czyli np.: zawartość pliku sched_request_www.ps3grid.net.xml, to dostaję w odpowiedzi

<scheduler_reply>
<scheduler_version>603</scheduler_version>
<master_url>http://www.ps3grid.net/</master_url>
<request_delay>31.000000</request_delay>
<message priority="low">Error in request message: no end tag </message>
<project_name>PS3GRID</project_name>
</scheduler_reply>


a plik xml jest ok, nie wiem gdzie szukać haczyka
Tytuł: Odp: mindc
Wiadomość wysłana przez: mindc w 22 Wrzesień 2008, 13:10
ok, znalazłem ten haczyk :)
Całe oprogramowanie BOINC: klient, core i serwer nie korzystają z normalnego parsera xml, tylko z prostego wyszukiwania ciągu znaków i zapis:

<scheduler_request>
   <authenticator>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</authenticator>
</scheduler_request>

jest poprawny, ale

<scheduler_request><authenticator>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</authenticator></scheduler_request>

już nie  :o



na podstawie zebranych obserwacji, wyklepałem taki o to kod:

#!/usr/bin/perl -w

use strict;
use Digest::MD5 qw(md5_hex);
use XML::Simple;
use Data::Dumper;
use LWP::UserAgent;

# główne dane do kont
my $global_email = 'glowny@email';
my $global_passwd = 'glowne.haslo;

# lista projektów, z ktorych chcemy pobierać dane
my $projects = [
    ['http://milkyway.cs.rpi.edu/milkyway/','altrenatywny@email.com','alternatywne.haslo'],
    ['http://boinc.fzk.de/poem/'],
    ['http://www.ps3grid.net/'],
    ['http://www.primegrid.com'],
    ['http://setiweb.ssl.berkeley.edu/beta/'],
    ['http://setiathome.berkeley.edu/'],
];

my $ua = LWP::UserAgent->new;
$ua->timeout(10);

my $out = {};

# mielimy każdy projekt z osobna
foreach my $project ( @$projects ) {
    if (   (my $authenticator = lookup_account($project->[0],$project->[1],$project->[2]))
        && (my $scheduler_url = get_scheduler_url($project->[0]))) {

        # wysyłamy zapytanie do schedulera
        # w większości projektów nie trzeba podawać wersji klienta
        # ale POEM wymagał tego
        my $req = HTTP::Request->new(POST => $scheduler_url );
        $req->content_type('application/x-www-form-urlencoded');
        $req->content("<scheduler_request>\n<authenticator>$authenticator</authenticator>
            <core_client_major_version>6</core_client_major_version>
            <core_client_minor_version>2</core_client_minor_version>
            <core_client_release>18</core_client_release>
            </scheduler_request>
            ");
        my $res = $ua->request($req);

        my $schdres;
        if ( $res->is_success ) {
            $schdres = XMLin($res->content);
        } else {
            warn "error: $project->[0]: ",$res->status_line,"\n";
            next;
        }

        # agregacja wyników
        push @{$out->{projects}{project}},{
                        project_url => $schdres->{master_url},
                        project_name => $schdres->{project_name},
                        user_total_credit => $schdres->{user_total_credit},
                        user_expavg_credit => $schdres->{user_expavg_credit},
        };
    }
}

# wypluwamy na wyjście xmla
print XMLout($out,NoAttr => 1,KeepRoot => 1);
exit;

sub lookup_account {
    my ($url,$email,$passwd) = @_;

    # gdy nie podamy alternatywnych parametrów do konta
    # przyjmowane są globalne
    $email = $global_email unless $email;
    $passwd = $global_passwd unless $passwd;

    # pobieramy uid
    my $req = HTTP::Request->new( GET => "$url/lookup_account.php?email_addr=$email&passwd_hash=@{[md5_hex($passwd.$email)]}" );
    my $res = $ua->request($req);
    if ( $res->is_success ) {
        my $lookupres = $res->content;
        # sprawdzamy czy nie było jakiegoś błędu, lub po prostu brak konta
        if ( $lookupres =~ m'<error_msg>(.*)</error_msg>' ) {
            warn "error: $url: $1\n";
            return 0;
        } else {
            return XMLin($lookupres)->{authenticator};
        }
    } else {
        warn "error: $url: ",$res->status_line,"\n";
        return 0;
    }
}

sub get_scheduler_url {
    my $url = shift;
    my $scheduler_url;
    my $req = HTTP::Request->new( GET => $url );
    my $res = $ua->request($req);

    if ( $res->is_success ) {
        # szukanie na głównej stronie projektu adresu schedulera
        ($scheduler_url) = $res->content =~ m'<scheduler>\s*(.*?)\s*</scheduler>';
        return $scheduler_url if $scheduler_url;
        return 0;
    } else {
        warn "error: $url: ",$res->status_line,"\n";
        return 0
    }
}


po uruchomieniu otrzymujemy...


<projects>
  <project>
    <project_name>Milkyway@home</project_name>
    <project_url>http://milkyway.cs.rpi.edu/milkyway/</project_url>
    <user_expavg_credit>21331.856267</user_expavg_credit>
    <user_total_credit>1395576.115154</user_total_credit>
  </project>
  <project>
    <project_name>Poem@Home</project_name>
    <project_url>http://boinc.fzk.de/poem/</project_url>
    <user_expavg_credit>3855.326193</user_expavg_credit>
    <user_total_credit>468820.897871</user_total_credit>
  </project>
  <project>
    <project_name>PS3GRID</project_name>
    <project_url>http://www.ps3grid.net/</project_url>
    <user_expavg_credit>2519.313827</user_expavg_credit>
    <user_total_credit>54945.082169</user_total_credit>
  </project>
  <project>
    <project_name>PrimeGrid</project_name>
    <project_url>http://www.primegrid.com/</project_url>
    <user_expavg_credit>765.754475</user_expavg_credit>
    <user_total_credit>48781.400469</user_total_credit>
  </project>
  <project>
    <project_name>SETI@home Beta Test</project_name>
    <project_url>http://setiweb.ssl.berkeley.edu/beta/</project_url>
    <user_expavg_credit>0.117859</user_expavg_credit>
    <user_total_credit>3475.677871</user_total_credit>
  </project>
  <project>
    <project_name>SETI@home</project_name>
    <project_url>http://setiathome.berkeley.edu/</project_url>
    <user_expavg_credit>2117.077308</user_expavg_credit>
    <user_total_credit>619959.777887</user_total_credit>
  </project>
</projects>


...dane w xml, do łatwego przetwarzania  8)


EDIT:
gdyby ktoś próbował to odpalić, ostrzegam że kod ten generuje ogromne ilości hostów/duchów w bazach schedulera.
Najnowsza wersja bez tego buga znajduje się tutaj: http://boinc.mindc.net (http://boinc.mindc.net/)

Tytuł: Odp: mindc
Wiadomość wysłana przez: buninek w 22 Wrzesień 2008, 14:15
scheduler wyrzuca te same dane co po zalogowaniu się na konto
choć to zaproponowane jest dużo bardziej
eleganckie :P
sprawdziłem działa ;D


Tytuł: Odp: mindc
Wiadomość wysłana przez: AiDec w 24 Marzec 2009, 08:21
Niedlugo Twoje urodziny - wszystkiego najlepsiejszego juz teraz :parrrty: (naczelny cziterze i modyfikatorze :P ).
Tytuł: Odp: mindc
Wiadomość wysłana przez: Troll81 w 24 Marzec 2009, 09:04
no to  :parrrty:
Tytuł: Odp: mindc
Wiadomość wysłana przez: KrzychuP w 24 Marzec 2009, 09:10
spoookoojnie, jeszcze prawie tydzień  ;)
Tytuł: Odp: mindc
Wiadomość wysłana przez: AiDec w 24 Marzec 2009, 09:32
Wiem, wiem. Ale chcialem byc pierwszy :P
Tytuł: Odp: mindc
Wiadomość wysłana przez: KrzychuP w 24 Marzec 2009, 09:34
Nooo, jeśli chcesz tak długo świętować, to ja odpadam  :D
Tytuł: Odp: mindc
Wiadomość wysłana przez: emik w 24 Marzec 2009, 15:51
tygodniówka się szykuje ?? :parrrty:
Tytuł: Odp: mindc
Wiadomość wysłana przez: mindc w 05 Sierpień 2009, 19:19
lokalizacja kompów, które coś tam dla mnie liczą  :attack:

(http://zeus.mindc.net/~panther/mapa.jpg)
Tytuł: Odp: mindc
Wiadomość wysłana przez: mindc w 05 Sierpień 2009, 19:20
nudziłem się  ;D

(http://zeus.mindc.net/~panther/mindcnet.png)
Tytuł: Odp: mindc
Wiadomość wysłana przez: sesef w 05 Sierpień 2009, 19:22
Ile ty masz tych kompów?? Tyle ich jest i tylko po 30k/day w AP26.
Tytuł: Odp: mindc
Wiadomość wysłana przez: mindc w 05 Sierpień 2009, 19:25
Cytat: sesef w 05 Sierpień 2009, 19:22
Ile ty masz tych kompów?? Tyle ich jest i tylko po 30k/day w AP26.

ponad 170 sztuk  :attack:
ale to trupy, w stylu pentium III 500MHz  ;D
Tytuł: Odp: mindc
Wiadomość wysłana przez: X X X w 05 Sierpień 2009, 19:59
O! To może mi pomożesz. BOINC chodzi niby na wszystkim, nawet na W95, ale dziś próbowałem odpalić go na Celeronie 600 i Win98se. Niestety, BM wprawdzie chodził, ale co wybrałem jakiś projekt, to okazywało się, że wywala błędy. Klasyczne WCG wprawdzie chodziło, ale komp nigdy nie był w stanie zdążyć przed terminem...
Masz jakąś propozycję niedużych projektów dla słabych maszyn?
Tytuł: Odp: mindc
Wiadomość wysłana przez: Rysiu w 05 Sierpień 2009, 20:42
Leiden, FreeHAL.
Tytuł: Odp: mindc
Wiadomość wysłana przez: AiDec w 05 Sierpień 2009, 20:46
Ta lokalizacja setki kompow mindc - fantastyczna robota. Podziwiam i doceniam Twoja prace (ilosc kompow oczywiscie) :).
Tytuł: Odp: mindc
Wiadomość wysłana przez: Troll81 w 05 Sierpień 2009, 21:11
Jezusie jak żeś ty to zrobił?? szantażujesz ludzi teczkami z IPN żeby puszczali twojego boinca na swoich maszynach?? :D
Tytuł: Odp: mindc
Wiadomość wysłana przez: Rysiu w 05 Sierpień 2009, 21:29
I do tego w sumie niezależny RAC bo jak padnie jedna/dwie maszynki albo coś się gdzieś skiełbasi to na wynikach dziennych praktycznie to się nie odbija.

Ale jak On to zrobił... Nie mam pojęcia. Musi mieć jakąś robotę / znajomości itp.
Tytuł: Odp: mindc
Wiadomość wysłana przez: X X X w 05 Sierpień 2009, 21:31
Pewnie nic im nie mówi albo że to jakieś zabezpieczenie do kompa przeciw insektom...
XD

A tak poważniej - jak zainstalować BOINC pod Windows, aby klient nie widział tej intrygującej ikonki?  :book:
Tytuł: Odp: mindc
Wiadomość wysłana przez: Troll81 w 05 Sierpień 2009, 21:33
odpalać samego boinc client zamiast boinc managera :D do tego jako usługę systemową :D
Tytuł: Odp: mindc
Wiadomość wysłana przez: mindc w 06 Sierpień 2009, 11:04
a więc skąd tyle kompów?

- pracuje tam gdzie pracuje  :ph34r:
- 99% maszyn chodzą pod Linuxem
- na żadnym nie ma Xów i nikt przy nich nie siedzi na co dzień
- tylko 4 osoby (łącznie ze mną) mogą sprawdzić co tam się dzieje
- tylko 2 osoby (łącznie ze mną) mają wpływ na to co tam się dzieje
- tylko jedna osoba (czyli ja) BOINCa nazywa SkyNetem  ;D i nie pozwala nikomu go dotykać

:attack:

Cytat: 7NBI_Zarecki Robert w 05 Sierpień 2009, 19:59
Masz jakąś propozycję niedużych projektów dla słabych maszyn?

albo projekty które szybko się liczą (AP26 lub PSP Sieve z PrimeGrid)
albo które mają dłuuuuugi deadline
Tytuł: Odp: mindc
Wiadomość wysłana przez: X X X w 06 Sierpień 2009, 12:23
Skynet - zajebista nazwa! I jakie ma pozytywne konotacje. Przyjmuję do słownika.
XD
Tytuł: Odp: mindc
Wiadomość wysłana przez: buri w 06 Sierpień 2009, 18:50
"BOINCa nazywa SkyNetem"
to już wiemy kto jest odpowiedzialny za zagłade ludzkości w terminatorze  ;)
Tytuł: Odp: mindc
Wiadomość wysłana przez: mindc w 26 Lipiec 2010, 18:36
Dla wszystkich chętnych, skrobnąłem tutorial pt.: Statystyki BOINC z RRDTool (http://boinc.mindc.net)  ;D
Tytuł: Odp: mindc
Wiadomość wysłana przez: Szopler w 26 Lipiec 2010, 19:09
Chwala Ci ;) Jak tylko będę miał chwilkę to przeczytam i być może dokończę swoje statsy w końcu :ph34r:
Tytuł: Odp: mindc
Wiadomość wysłana przez: Troll81 w 26 Lipiec 2010, 20:39
hm.... a bez hasła nie dałoby rady?? Boincstats jakoś zbiera i bez tego....
Tytuł: Odp: mindc
Wiadomość wysłana przez: mindc w 26 Lipiec 2010, 23:07
Cytat: Troll81 w 26 Lipiec 2010, 20:39
hm.... a bez hasła nie dałoby rady?? Boincstats jakoś zbiera i bez tego....
no pewnie że zbiera bez hasła, bo ciągnie dane całego projektu...
np.: dla SETI http://setiathome.berkeley.edu/stats/ (http://setiathome.berkeley.edu/stats/)
no i teraz... sobie podciągnę pliczek user.gz, który waży 71M ( a ciągnie się to góra 8MBit/s), po rozpakowaniu ma ponad 300MB (plik xml) i teraz sobie znajdę swoje dane... taka sama procedura dla pozostałych, powiedzmy 30 projektów... i.... gotowe  %)
no i zapomniałem dodać... aktualizacja tych plików jest kilka razy na dobę...  %)

ale... zawsze można użyć Weak account key  XD

Tytuł: Odp: mindc
Wiadomość wysłana przez: Szopler w 26 Lipiec 2010, 23:48
Miałem zamiar zrobić takie cóś dla B@P. Ściąganie i rozpakowywanie plików, a nawet odfiltrowywanie userów z B@P udało mi się (prawie) zrobić, ale na resztę nie wystarczyło zapału :(
Tytuł: Odp: mindc
Wiadomość wysłana przez: buninek w 27 Lipiec 2010, 18:46
Dwa przykłady jak w shellu wyłuskać statystyki z dwóch serwisów.

Potrzebny xmlstarlet (http://xmlstar.sourceforge.net/),  dostępny w każdej dystrybucji i w drugim przypadku tidy (http://tidy.sourceforge.net/).

Nasz własne z http://boinc.netsoft-online.com (nie mam pojęcia jak często aktualizowane)

Cytatcurl -s "http://boinc.netsoft-online.com/get_user.php?cpid=bb8a87d8807031066659217fe69f88d2" |xml sel -t -m "/user/project" -v "concat(name,' - ',total_credit,'|',expavg_credit)" -n

i zespołu z boincstats.com posortowane po RAC, najlepsza setka :D

Cytatcurl -s -A "Mozilla/5.0 (X11; U; Linux; pl)" "http://pl.boincstats.com/stats/boinc_user_stats.php?pr=bo&st=0&or=16&teamid=11837c6ed7c2d089de4f2ac5a53ca6e0"|sed 's/\&nbsp;//g;s/\&amp;/\&/g'|tidy -q -w 0 -utf8 -asxml 2> /dev/null|xml sel -N x="http://www.w3.org/1999/xhtml" -t -m "/x:html/x:body/x:div/x:div/x:div/x:div/x:div/x:div/x:form/x:table/x:tr[x:td/x:a/@name]" -v "concat(x:td[4]/x:a[1],'|',x:td[5],'|',x:td[6]/x:div[1],'|',x:td[10]/x:div[1])" -n
Tytuł: Odp: mindc
Wiadomość wysłana przez: mindc w 30 Listopad 2010, 18:33
poza BOINCiem ;) raz do roku wracam do AVRów ;D
ostatnie wypociny: termometr na ATTiny2313 (assembler) + DS18B20 + RS232 + generowanie wykresu na serwerze:

kontrolny wyświetlacz:
(http://zeus.mindc.net/~panther/64934_1666567350584_1429296929_1726053_2820322_n.jpg)

...i wykresik generowany na bieżąco:
(http://zeus.mindc.net/~panther/28A82D7202000017-1d.png)

Tytuł: Odp: mindc
Wiadomość wysłana przez: Tomasz R. Gwiazda w 30 Listopad 2010, 18:47
super i jaki temat na czasie :)
Tytuł: Odp: mindc
Wiadomość wysłana przez: Troll81 w 30 Listopad 2010, 18:49
teraz jeszcze czujnik grubości pokrywy śniegowej :D
Tytuł: mindc
Wiadomość wysłana przez: mindc w 05 Październik 2012, 14:17
Dawno mnie tu nie było, ale liczę dalej i w końcu dobiłem do 200kk  :attack:
w międzyczasie też, urodziła mi się córka   :D
i znów co jakiś czas aktualizuję swoją stronę http://mindc.net (http://mindc.net)
Tytuł: mindc
Wiadomość wysłana przez: Tomasz R. Gwiazda w 05 Październik 2012, 14:29
wielkie gratki z okazji narodzin potomka :)
Tytuł: mindc
Wiadomość wysłana przez: Cyfron w 05 Październik 2012, 15:06
gratulacje !  :parrrty:
Tytuł: mindc
Wiadomość wysłana przez: tito w 05 Październik 2012, 15:08
To teraz "tylko" Ją dobrze wychować.
Oby zdrowa była.  :boing:
Tytuł: mindc
Wiadomość wysłana przez: krzyszp w 05 Październik 2012, 15:11
Dołączam się do gratulacji  :p_arr:
:parrrty:
Tytuł: mindc
Wiadomość wysłana przez: Troll81 w 05 Październik 2012, 16:06
Gratulacje dla szczęśliwej mamy.  :parrrty:
Tytuł: mindc
Wiadomość wysłana przez: Tobas w 05 Październik 2012, 16:59
Wszyscy gratulują to i ja się dołączę.
Współczuję z całego serca - czeka Cię (Was) najtrudniejszy okres w życiu. Będzie ciężko, bardzo ciężko  ;)
Tytuł: mindc
Wiadomość wysłana przez: mindc w 13 Marzec 2017, 15:09
Witam
Dawno wypadłem z życia forum, ale liczę cały czas dla Naszej drużyny :attack:
Możecie mi zaproponować jakiś projekt do liczenia na CPU, z klientem na linuxa, SZTAKI już mnie nudzić zaczyna  ;D
Chętnie wezmę projekt, którego mało osób w drużynie liczy, żeby podciągnąć staty

pozdrawiam
Tytuł: mindc
Wiadomość wysłana przez: tito w 13 Marzec 2017, 16:45
Z wyborem projektu na linuxa nie pomogę, ale widzę, że masz tutorial zrobienia własnych statystyk - mogę wrzucić info na główną z linkiem do tegoż?
Tytuł: mindc
Wiadomość wysłana przez: mindc w 13 Marzec 2017, 20:31
Jasne że tak, wrzucaj....
przy okazji, w wolnej chwili, go odświeżę bo już trąci myszką  ;D
Tytuł: mindc
Wiadomość wysłana przez: tito w 13 Marzec 2017, 20:42
Wrzucone, zaś za SZTAKI to Ci się należą ogromne brawa.  :parrrty:
Tytuł: mindc
Wiadomość wysłana przez: Troll81 w 14 Marzec 2017, 18:16
http://bearnol.is-a-geek.com/wanless2/ - ten projekt chyba tylko na linuchu biega :D
Tytuł: mindc
Wiadomość wysłana przez: mindc w 14 Marzec 2017, 19:26
Matematyczny, lubię takie, dzięki
podpinam właśnie

PS
Siema Troll81, kopę lat  ;D
Tytuł: mindc
Wiadomość wysłana przez: Troll81 w 14 Marzec 2017, 19:55
Siema :D ja tu obecny od tych kupy lat wciąż. dobijam do 30k postów :D ciekawe kiedy wyrobie norma że będą miał więcej postów niż wszyscy użytkownicy razem wzięci :D
Tytuł: mindc
Wiadomość wysłana przez: kva.pl w 14 Marzec 2017, 23:15
Moze zmien cel i postaraj sie miec wiecej punktow niz pozostali czlonkowie druzyny razem wzieci %)
Tytuł: mindc
Wiadomość wysłana przez: Troll81 w 16 Marzec 2017, 19:43
brak aż tylu pieniążków....
Tytuł: mindc
Wiadomość wysłana przez: Rysiu w 17 Marzec 2017, 17:01
Cytat: kva.pl w 14 Marzec 2017, 23:15
Moze zmien cel i postaraj sie miec wiecej punktow niz pozostali czlonkowie druzyny razem wzieci %)
:attack: :attack: :attack:
Tytuł: mindc
Wiadomość wysłana przez: Troll81 w 18 Marzec 2017, 19:16
 :p_arr: