Pod domeną (mam nadzieję, że chwilową) http://simple-crm.co.uk/ppb/ znajduje się zaczątek serwera statystyk naszej drużyny. Choć strona nie jest jeszcze gotowa, to potrzebuję chętnych do rejestracji i "grzebania" w dostępnych (nielicznych na razie) opcjach - potrzebuję chętnych do testowania :).
Na tę chwilę strona umożliwia założenie konta w serwisie oraz scalenie konta z odpowiednim rekordem w bazie danych statystyk, założenie "sub-teamów" i przyłączanie się do nich.
Po niedzieli będą wyświetlani nowi liczydłowi w drużynie.
Szukam także chętnych do pomocy z przygotowaniem co bardziej skomplikowanych zapytań do bazy danych (oczywiście chętnym przekażę zrzuta bazy/strukturę tabel), osób potrafiących oskryptować tworzenie wykresów, tabel, itd.
Wszelkie uwagi mile widziane :)
Rejestracja jest kiepska przez nazwy- nie wiem w które miejsce wpisać nazwę z projektów BOINC, a gdzie nazwę pod jaką chciałbym występować.
Przez co, bojąc się że coś wpiszę źle, wpisałem we wszystko maila. Co mnie słabo satysfakcjonuje, bo nie chcę by moje konto było tak widoczne.
"Poprzez wpisanie swojego CPID z konta BOINC możesz połączyć w systemie Twoje statystyki z systemem logowania."
A skąd mam wziąć CPID ? Ja może sobie znajdę - ale inni ?
Dzisiejsze punkty
3272854764.14
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '))' at line 1: SELECT SUM(tblScores.Score)AS score, tblScores.Date FROM tblScores WHERE (tblScores.Date = (CURDATE(), INTERVAL -1 DAY));
Mam coś takiego na wszystkich stronach.
Możesz już podawać dowolną nazwę użytkownika, dlatego zrobiłem scalanie po CPID. Jak chcesz, to zmienię dane Twojego konta lub je skasuję i założysz nowe.
Błąd wynikał z pracy nad jednym z modułów - już zrobione, ale będzie się czasem zdarzać - praca wre :)
Jak inaczej scalać konta niż po CPID? Nie mam bladego pojęcia...
Daj tam linka do
http://www.boincatpoland.org/wiki/CPID
nazwę mojego konta zmień na PMG.
Na stronie gdzie jest CPID powinna się zjawić informacja "Twoje konto zostało już zsynchronizowane". Bo w tej chwili tego nie ma i gdy wszedłem tam drugi raz to nic się nie pokazuje.
A tak szczerze to co ten serwis teraz robi ? Bo ja na razie to widzę tylko opcję rejestracji i opcję tworzenia/oglądania subteamów.
Może ranking województw dodać ?
Bo w tej chwili użyteczność jest ... no rejestrować się to mogę na innych serwisach też, a jak na razie to jedyna rzecz która się wybija na tle innych setek opcji :)
Nazwa Twojego konta jest już zmieniona.
Ranking województw jak najbardziej jest w planach, jak również inne statystyki - po to ten serwis powstał.
Dla dodania statystyk województw musiałbym mieć dostęp do bazy Piga, lub chociaż do skryptu, który to ściąga w PHP lub VB.
Subteamy są pomyślane (jak nazwa wskazuje) - do tworzenia wewnętrznych grup w naszym teamie, co pozwoli nam np. personalizować stronę/forum B@P.
Link do wiki zaraz dołożę...
Cały problem z CPID to fakt, że często są podawane dwa (lub więcej) różne przez niektóre projekty - to jest przyczyną braku synchronizacji kont na boincstats, pracuję nad tym, aby automatycznie scalać takie konta, ale jest to dość trudne zadanie - niemniej musi być zrobione...
Ps. Twoje konto jest już scalone, brak info o tym poprawię...
Chciałem wykorzystać w 100 % funkcjonalność strony i chciałem dołączyć do subteamu Boinc@Poland
Dostałem coś takiego
Dołączyłeś do drużyny
Zapytanie: UPDATE tblUsers SET SubTeam = 5 WHERE JoomlaID = 65Dołączenie udane!
Poprawiony: sobota, 13 listopada 2010 11:45
Czyli dołączyłeś poprawnie :)
Wyświetlam niektóre zapytania, aby wychwycić ewentualne błędy, taka sytuacja może mieć miejsce i w innych stronach - to nie jest błąd.
Cały problem z CPID to fakt, że często są podawane dwa (lub więcej) różne przez niektóre projekty - to jest przyczyną braku synchronizacji kont na boincstats, pracuję nad tym, aby automatycznie scalać takie konta, ale jest to dość trudne zadanie - niemniej musi być zrobione...
fakt. Na stronie u ciebie mam
pmgpmg zgromadził 224548.34 punktów
a na BOINCStats mam
http://pl.boincstats.com/search/all_projects.php?cpid=21df29504d560f3517ceb5a9f3f287a4
343,084
Jest też inny problem (też nad nim pracujemy).
Mianowicie nie mam jeszcze dostępu do plików statystyk projektów zakończonych/nieczynnych, Troll pisał w tej sprawie do Williego z boincstats, może on nam udostępni archiwalne.
Jestem też w trakcie wymiany maili z adminami WCG, gdyż oni też nie udostępniają plików statystyk, a tylko gotowe strony...
Właśnie miałem pytać skąd ta różnica :)
Przydałby się podgląd na wszystkie projekty, z których pobierane są statystyki dla danego użytkownika.
Ależ jest, po prawej stronie jest lista wspieranych projektów.
Oczywiście, ale tam są wszystkie wspierane przez serwis, a fajnie byłoby aby po zalogowaniu każdy mógł mieć również podgląd tylko na swoje.
Ok, za 15-20 minut będzie :)
Edit:
Jest :)
:)
Opcja "Połącz konta" pozostaje bez zmian po wprowadzeniu CPID, co prawda jest informacja o dacie poprawienia ale słabo widoczna, poza tym wg mnie niejednoznaczna. Można by dodać info typu "Twój aktualny CPID :....................................."
Taka sama sytuacja przy opcji "Przyłącz się do sub-teamu" - po przyłączeniu nie ma informacji do którego się należy. Można by dodać np. "Aktualnie należysz do ..................."
Cytat: eclipse99 w 13 Listopad 2010, 16:52
Taka sama sytuacja przy opcji "Przyłącz się do sub-teamu" - po przyłączeniu nie ma informacji do którego się należy. Można by dodać np. "Aktualnie należysz do ..................."
Dodam info o aktualnym sub-teamie dla zalogowanego użytkownika po informacją o jego aktualnych projektach...
Nie mogę znać CPID użytkownika przed scaleniem konta, dlatego musi je podać na stronie sam przy operacji scalania kont.
Cytat: krzyszp w 13 Listopad 2010, 17:01
Nie mogę znać CPID użytkownika przed scaleniem konta, dlatego musi je podać na stronie sam przy operacji scalania kont.
Jasne, chodzi mi o to aby już po podaniu CPID był dla użytkownika widoczny.
Czy przewidziana jest możliwość przynależenia do kilku sub-teamów równocześnie?
Np. do sub-teamów: AGH, Woj. małopolskie, PC, 30-35 lat.
Cytat: eclipse99 w 13 Listopad 2010, 17:05
Czy przewidziana jest możliwość przynależenia do kilku sub-teamów równocześnie?
Np. do sub-teamów: AGH, Woj. małopolskie, PC, 30-35 lat.
No, to zabiłeś mi klina...
To wymagałoby zmiany struktury bazy danych (proste), ale dość mocno skomplikowało by tworzenie zapytań do bazy...
Myślę, że jak już zaimplementujemy trochę innych możliwości, zajmę się i tym...
Po zalogowaniu...
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1: SELECT * FROM tblSubTeams WHERE TeamID =
Nie pomogę od strony technicznej bo nie mam o tym bladego pojęcia, ale nadal mogę rzucać pomysłami.
Aby nie być gołosłownym:
1. Sądzę, że większość z tych, którzy zadadzą sobie trud założenia konta, będzie chciała sprawdzić poprawność swoich statystyk względem boincstats czy allprojectstats.
Ułatwieniem byłaby alfabetyczna kolejność projektów do których się należy.
2. Proponuję ujednolicić nomenklaturę sub-team/drużyna. W Menu jest opcja "Stwórz drużynę", która faktycznie daje możliwość stworzenia sub-teamu.
Podobnie poniżej - "lista drużyn" oznacza w rzeczywistości listę sub-teamów.
3. Odnośnie przynależności do kilku sub-teamów - sub-teamy mogłyby być podzielone na kategorie (miejsce zamieszkania, wiek, sprzęt itd), przy tworzeniu sub-teamu powinna być opcja wyboru kategorii, jak również opcja dodawania kategorii. Aby nie popaść w chaos wszelkie zmiany musiałyby być zaakceptowane przez administratora (aby uniknąć sytuacji istnienia dwóch sub-temów odnoszących się do tego samego województwa lub sub-teamów niejednoznacznie określających przedziały wiekowe np 30-35 i 30-40 itd.)
Ad. 1. Zaraz to zrobię. - Nie tak prosto. Aktualnie najpierw pobieram ID projektów dla danego użytkownika z tabeli wyników, i dopiero w pętli pobieram nazwy tych projektów... Muszę przerobić całość tak, żeby zapisywało do tablicy, sortować i dopiero wyświetlać... Trochę to potrwa (może użyję tabeli tymczasowej w bazie?).
Ad. 2. Problem nazewnictwa zauważyłem od początku prac nad tym projektem, jaką formę powinniśmy przyjąć? "Subteam" brzmi do kitu, "poddrużyna" również... Może coś "pirackiego"? :)
Ad.3. Na tą chwilę jest niemożliwe (a przynajmniej powinno być) założenie dwóch takich samych teamów. Ta zasada jest łatwa do zachowania później, w przypadku wprowadzenia "wielokrotnych" drużyn.
Ad. 2. Pododdział, Bandera?
Ad. 3. To tak na przyszłość.
4. Nazwy projektów jako odnośniki do ich stron.
Taki krótki offtop - szacun! :respect:
Kawałek kodu:
$query="SELECT UserID FROM tblUsers WHERE JoomlaID = ".$usr_id.";";
$qresults = mysql_query($query, $link) or die(mysql_error().": $query");
while ($qresult = mysql_fetch_array($qresults))
{
$usr=$qresult['UserID'];
}
$query="SELECT DISTINCT ProjectID FROM tblScores WHERE UserID=".$usr.";";
$qresults = mysql_query($query, $link) or die(mysql_error().": $query");
while ($qresult = mysql_fetch_array($qresults))
{
$projectid=$qresult['ProjectID'];
$query2="SELECT * FROM tblProjects WHERE ProjectID=".$projectid.";";
$qresults2 = mysql_query($query2, $link) or die(mysql_error().": $query2");
while ($qresult2 = mysql_fetch_array($qresults2))
{
$projectid=$qresult2['ProjectName'];
$adres=rtrim($qresults2['ProjectStatsURL'], "/stats/");
echo '<a href="'.$adres.'" target="_blank">'.$projectid.'</a><br>';
}
}
Zwraca mi prawidłowo nazwy projektów, ale linki prowadzą do... strony macierzystej |-?
Ma ktoś jakieś pojęcie dlaczego tak się dzieje??? Nazwy pól są ok...
Edit:
Błąd znaleziony... literówka :)
W ramach ćwiczeń dla Was - kto pierwszy znajdzie ten błąd?
po zalogowaniu:
CytatYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1: SELECT * FROM tblSubTeams WHERE TeamID =
:respect:
- literówka w adresie do projektu DNETC@HOME http://www.dnetc.ne/ -> http://www.dnetc.net/
W bazie danych adres zapisany jest w formacie dnetc.net/stats/ dla wszystkich projektów, to musi być błąd w działaniu funkcji wycinającej "/stats/" w adresie...
bardzo prawdopodobne ;)
- podobny błąd w projekcie NFS i Enigma i kilku innych
http://escatter11.fullerton.edu/nf -> http://escatter11.fullerton.edu/nfs/
http://www.enigmaathome.ne/ -> http://www.enigmaathome.net/
- w wspieranych projektach brak projektu WCG dane są pod adresami
https://secure.worldcommunitygrid.org/boinc/stats/
lub
http://www.worldcommunitygrid.org/boinc/stats/
pewnie wymagane warunkowe "wycinanie"
a tak na marginesie w niektórych projektach bywają różne nazwy plików z danymi
o ile pamiętam to Einstein@Home ma taki feler
user.gz != user_id.gz
oraz po odcięciu "/stats/" adres nie zawsze wskaże stronę główną projektu: Climate lub WCG
W momencie scalania konta według CPID pojawia się komunikat:
Poprzez wpisanie swojego CPID z konta BOINC możesz połączyć w systemie Twoje statystyki z systemem logowania.
Byłoby fajnie, jakby to CPID było jakoś bardziej wskazane, że to jest odnośnik/pomoc, bo gdybym o tym nie wiedział, to bym się nie zorientował, że tam jest odnośnik do pomocy :)
Zaraz troszkę poprawię tą stronkę na Wiki - jakieś obrazki wrzucę :)
Cytat: RAD-Poland w 14 Listopad 2010, 15:16
- w wspieranych projektach brak projektu WCG dane są pod adresami
https://secure.worldcommunitygrid.org/boinc/stats/
Dzięki! Tego nie mogłem znaleźć :)
Cytat: RAD-Poland w 14 Listopad 2010, 15:16
a tak na marginesie w niektórych projektach bywają różne nazwy plików z danymi
o ile pamiętam to Einstein@Home ma taki feler
user.gz != user_id.gz
O tym wiem, sprawdzałem każdy projekt "ręcznie" - jest ich (z pamięci piszę - system się instaluje) chyba osiem...
Cytat: RAD-Poland w 14 Listopad 2010, 15:16
oraz po odcięciu "/stats/" adres nie zawsze wskaże stronę główną projektu: Climate lub WCG
Muszę dodatkowe pole przygotować na "normalny" adres strony... zapisane - do zrobienia.
artykuł http://www.boincatpoland.org/wiki/CPID poprawiony - może być?
do czego mają prowadzić te linki w menu: "Lista drużyn" ?
@Cyfron
nie każdy ma konto na serwisie dlatego propozycja zmiany w akapicie Gdzie znaleźć
- dodać screen'a z zaznaczonym CPID po wejściu na swoje statystyki bez logowania
Nadal nie mogę wejść - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1: SELECT * FROM tblSubTeams WHERE TeamID =
Czas wyczyścić cache przeglądarki i spróbować ponownie...
Cytat: RAD-Poland w 14 Listopad 2010, 15:52
@Cyfron
nie każdy ma konto na serwisie dlatego propozycja zmiany w akapicie Gdzie znaleźć
- dodać screen'a z zaznaczonym CPID po wejściu na swoje statystyki bez logowania
A teraz?
:parrrty:
instrukcje obrazkowe bywają najbardziej czytelne
Cytat: Szopler w 14 Listopad 2010, 16:13
Nadal nie mogę wejść
również mimo czyszczenia i prób z różnych przeglądarek nie mogę się zalogować
taka bywa faza testów
kamraci - jak to połączyć pod pigu.pl? potrzebuję z bazy zrobić tabelkę html :book:
Potwierdzam po potwierdzeniu meilowym konta, FF i IE pomimo czyszczenia cache caly czas:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1: SELECT * FROM tblSubTeams WHERE TeamID =
Przepraszam, nie było mnie jakiś czas...
Teraz piszę z maszyny z Mintem i jeszcze nie mam softu (i haseł, username, itd) poprzerzucanych tutaj, więc praca trochę zwolniła :(
Linki w liście drużyn pokazują link do strony "pod-teamu" podawany podczas zakładania takiej drużyny, Może to być dowolny adres strony WWW.
CytatPotwierdzam po potwierdzeniu meilowym konta, FF i IE pomimo czyszczenia cache caly czas:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1: SELECT * FROM tblSubTeams WHERE TeamID =
Szczerze mówiąc, to jeszcze tego nie rozumiem, zwłaszcza, że jak dotąd ten błąd tylko u Ciebie występuje... Wygląda na to, że jesteś podłączony do teamu, który został skasowany w bazie. Podejrzewam, że program aktualizujący statystyki ma błąd i czyści jakieś dane - sprawdzę to i poprawię ręcznie, ale problem wystąpi jeszcze jutro (app do ściągania danych chodzi na kompie w pracy, więc w nocy jeszcze coś "spieprzy" zanim poprawię...
Cytatkamraci - jak to połączyć pod pigu.pl? potrzebuję z bazy zrobić tabelkę html
Przekieruj subdomenę np. "stats.pigu.pl" na adres serwera statystyk, lub zrobimy głębszą integrację, ale to bym potrzebował dostępu do Twojego PHPMyAdmina i FTP...
Cytat: krzyszp w 14 Listopad 2010, 17:54
CytatPotwierdzam po potwierdzeniu meilowym konta, FF i IE pomimo czyszczenia cache caly czas:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1: SELECT * FROM tblSubTeams WHERE TeamID =
Szczerze mówiąc, to jeszcze tego nie rozumiem, zwłaszcza, że jak dotąd ten błąd tylko u Ciebie występuje... Wygląda na to, że jesteś podłączony do teamu, który został skasowany w bazie. Podejrzewam, że program aktualizujący statystyki ma błąd i czyści jakieś dane - sprawdzę to i poprawię ręcznie, ale problem wystąpi jeszcze jutro (app do ściągania danych chodzi na kompie w pracy, więc w nocy jeszcze coś "spieprzy" zanim poprawię...
u mnie identyczny komunikat
Cytat: emik w 14 Listopad 2010, 14:22
po zalogowaniu:
CytatYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1: SELECT * FROM tblSubTeams WHERE TeamID =
Spróbujcie teraz? Chyba wiem, gdzie jest błąd...
Teraz mam tak:
Twoje projekty:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1: SELECT DISTINCT ProjectID FROM tblScores WHERE UserID=;
Cytat: mimeq w 14 Listopad 2010, 18:21
Teraz mam tak:
Twoje projekty:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1: SELECT DISTINCT ProjectID FROM tblScores WHERE UserID=;
Ok, czyli posypało się odczytywanie ID usera z tabeli z joomli, a to dlatego, że... nie masz scalonego konta.
Koniecznie muszę
wymusić scalanie konta podczas rejestracji bo to tutaj jest błąd. Spróbuj najpierw scalić konto i napisz mi jaki jest efekt, ok?
mam również ten komunikat
CytatTwoje projekty:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1: SELECT DISTINCT ProjectID FROM tblScores WHERE UserID=;
- wczoraj: zalogowałem się, przyłączyłem do B@P, ale nie zdążyłem podać swojego CPID
- konto mam scalone, więc to inny problem
błąd powstał prawdopodobnie z tego że nie przewidziano wykonywania pewnych czynności na raty
jeśli wymagane jest jednoczesny wybór subteam'u i podanie CPID to może przydałby się jakiś formularz (wymuszający to)
EDIT: jeśli nie można tego obejść to
mój CPID = 3a045e428e45f087f7cc832bdb4791ffEDIT2: po poniższej interwencji, logowanie przebiegło poprawnie :)
Wymagane jest tylko scalenie konta i jest to mój błąd - nie przewidziałem opcji, że to faktycznie nie jest konieczne :)
Muszę napisać include'a, który będzie to sprawdzał i w przypadku braku scalenia przekierowywał na odpowiednią stronę. Kilka minut roboty, ale jeszcze na kompie w domu nie mam środowiska przygotowanego (ale jeszcze dziś będzie).
Dodatkowo, w przypadku niektórych użytkowników zeruje się w pewnych okolicznościach ID joomli w bazie statystyk... To jest pilne, muszę to poprawić, zamierzam także dodać opcję dodawania projektów przez każdego usera do bazy danych i poprawiania linków do istniejących projektów - to pozwoli szybko reagować na powstanie nowych projektów.
Ps. Scaliłem Twoje konto w bazie. Nie jest Twój CPID mi potrzebny - to skrypt go wymaga, ja Cię znalazłem przez administrację Joomli :)
No i sprawa załatwiona Panowie i Panie ;D ;D ;D
Teraz chyba nie ma już takich rażących błędów???
w Sub-teamy:
CytatNasze "subteamy"
sobota, 13 listopada 2010 13:24 Administrator
Email Drukuj PDF
Lista subteamów drużyny BOINC@Poland:
AGH
CyFRoN zgromadził punktów
BOINC@Poland
[BOINC@Poland]emik zgromadził punktów
[BOINC@Poland] Szopler zgromadził punktów
eclipse99 zgromadził punktów
mimeq zgromadził punktów
RAD-Poland zgromadził punktów
JaRa zgromadził punktów
J. Gdak zgromadził punktów
emik zgromadził punktów
pmgpmg zgromadził punktów
krzysztof piszczek - wspieram polski projekt boinc zgromadził punktów
Nie ma żadnych punktów itd - tak ma być?
Zmieniłbym też kolejność linków w "Twoje menu" - na samą górę bym dał "połącz konta" a potem stwórz/przyłącz
Tak jak było gdzieś już wcześniej mówione - fajnie by było, jakby projekty, które wyświetla, że do nich należę, były wyświetlane w kolejności alfabetycznej, albo w kolejności wg punktów (ale wtedy np z pokazaniem punktacji) no i lepiej chbya by wyglądało, jakby te projekty były jeden po drugim, a nie jeden za drugim (większa czytelność).
no i oczywiście wielki szacun za tą wielką robotę jaką tutaj wykonałeś! :respect:
Ode mnie na pewno masz piwo !
Tak, brak punktów wynika z tego, że właśnie grzebię w kodzie, co powoduje błędy, więc chwilowo wyłączyłem, kłania się też konieczność poprawienia udate'u dat w bazie programem, który napisałem, ale to musi poczekać do jutra (soft chodzi na windzie, może dziś w nocy spróbuję to zrobić na laptopie).
Kolejność linków to akurat łatwa sprawa, zaraz to zmienię (podobnie trzeba "popracować" nad terminologią).
Natomiast kolejność wyświetlania projektów, to trochę bardziej skomplikowana sprawa i musi poczekać, aż uporam się z innymi problemami "wywalającymi stronę"...
Natomiast wyświetlanie ich "jeden pod drugim" powoduje, że strona mocno się "rozjeżdża" przy większej ilości projektów...
Dodałem możliwość wybrania województwa dla którego się liczy, wkrótce dodam stronę ze statystykami poszczególnych województw...
Za kilka minut też zrobię listę brakujących danych dla statystyk, mam nadzieję, że pomożecie znaleźć te informacje...
pomożemy
a jak z bezpieczeństwem haseł trzymanych u ciebie na serwerku?
http://climateprediction.net/stats/team.xml.gz
CytatXML Parsing Error: not well-formed
Location: http://climateapps2.oucs.ox.ac.uk/cpdnboinc/stats/user.xml.gz
Line Number 1, Column 1:)>�L
Ktoś coś wie, co jest grane?
kodowanie?
http://social.msdn.microsoft.com/Forums/en/xmlandnetfx/thread/47f6eb6a-b062-4f4d-8b7f-b4afb1b2725d
Nie, w ogóle nie dają się ściągnąć pliki ze statystykami mimo, że je widać...
po dekompresji otwiera się normalnie
Cytat: krzyszp w 16 Listopad 2010, 14:46
Nie, w ogóle nie dają się ściągnąć pliki ze statystykami mimo, że je widać...
Cytatpo dekompresji otwiera się normalnie
Tylko, że ja go ściągnąć nie mogę...
Ani przez FF, ani używając
Public Sub DownloadFile(ByVal uri As String, ByVal destFile As String, Optional ByVal username As String = Nothing, Optional ByVal pwd As String = Nothing)
Dim wc As New System.Net.WebClient
If Not username Is Nothing AndAlso Not pwd Is Nothing Then
wc.Credentials = New System.Net.NetworkCredential(username, pwd)
End If
On Error GoTo blad
Debug.Print(uri)
wc.DownloadFile(uri, destFile)
Exit Sub
blad:
Resume Next
End Sub
z VB
Cytat: krzyszp w 16 Listopad 2010, 14:46
Nie, w ogóle nie dają się ściągnąć pliki ze statystykami mimo, że je widać...
http://climateapps2.oucs.ox.ac.uk/cpdnboinc/stats/team.xml.gz (http://climateapps2.oucs.ox.ac.uk/cpdnboinc/stats/team.xml.gz)
Ściągałem tego urla przez wget i poszło bez problemów. FF ściąga i otwiera ten plik skompresowany i dlatego jest ten błąd 'linia 1; kolumna 1 cośtam', ale jak dałem pokaż źródło (ctrl+u), to od razu było widać że nie rozpakował. Daj w FF zapisz link jako i się ściągnie.
Ok, już działa :)
Tak przy okazji, udało mi się w firmie załatwić przekierowanie portów, dzięki czemu nie muszę się już bać o rozrost bazy (ponad 1,2MB dziennie). Co prawda, stronka będzie trochę wolniej działać, ale chyba warto...
W weekend przeniosę dane.
a jak dyskusja z Pigulcem?
Na razie zamarła... Kombinuję teraz na dwie strony (zależnie od wyników jakie da się osiągnąć) - albo napiszę kod generujący tabele z wynikami do wklejenia przez Piga, albo samodzielnie przeliczę statystyki, potrzebowałbym tylko info kto jest w jakim województwie...
Generalnie, mając już wygenerowane tabele mogę je też wkleić, a właściwie, to łatwiej jest mi je generować "w locie" na stronie... Tylko, że w takim wypadku Pigu nie ma jak ich zaimportować...
Znalazłem też w miarę prosty instruktaż, jak generować wykresy, teraz tylko muszę się nauczyć dostosować to do specyfiki Joomli i strony, a to może zająć mi trochę czasu... Pomoc mile widziana.
Najbardziej palącym problemem jest brak niektórych statystyk oraz "rozjeżdżanie" się CPID, nadal z tym walczę, ale nie bardzo mogę znaleźć inny sposób na jednoznaczną identyfikację usera w plikach statystyk...
przypisanie do województw mają chyba Sergeant i Apohawk :D
Można też to na stronie samodzielnie zrobić :)
a nie prościej byłoby zrobić pełną samoobsługę? Użytkownik po zarejestrowaniu podawałby swoje ID w poszczególnych projektach i wybierał sobie subteamy?
A masz ochotę lecieć przez 96 projektów i wyszykiwać swoje ID? :)
Ps. W międzyczasie przeniosłem bazę danych :)
Cytat: Troll81 w 16 Listopad 2010, 17:26
a nie prościej byłoby zrobić pełną samoobsługę? Użytkownik po zarejestrowaniu podawałby swoje ID w poszczególnych projektach i wybierał sobie subteamy?
1000x XD
Szczególnie nowych to zachęci...
pełen automat to rozumiem %)
Przy wyborze województwa, w tej liście rozwijanej, zamiast polskich znaków mam "?"
krzyszp, podaj maila na pw, to podeślę ci dump bazy.
Cytat: Cyfron w 16 Listopad 2010, 20:15
Przy wyborze województwa, w tej liście rozwijanej, zamiast polskich znaków mam "?"
Muszę to poprawić... Jest jakiś problem z kodowaniem pomiędzy serwerem mysql i silnikiem strony (mimo, że na obu ustawiłem utf-8) i w związku z tym województwa z pl-znakami są źle wyświetlane i nie zapisywane w bazie...
@apohawk - PM-ka poszła.
Cytat: krzyszp w 16 Listopad 2010, 21:25
Muszę to poprawić... Jest jakiś problem z kodowaniem pomiędzy serwerem mysql i silnikiem strony (mimo, że na obu ustawiłem utf-8)
Problem domyślnego połączenia zapewne. Nie wiem jak się łączysz (php,python,???), ale ogólnie albo możesz zmienić w ustawieniach serwera albo jako pierwsze zapytanie (zaraz po połączeniu) daj:
SET NAMES utf8
PHP...
I tu wkradł się mój błąd...
Ze względu na to, że piszę te krypty tak jak piszę (czyli jako "wklejki" w artykuły), nie bawiłem się w include'owanie połączenia (z powodów, jakie "robiący" w Joomli znają). Dlatego definicje połączenia mam powrzucane w różne dziwne miejsca.
Chwilowo wywaliłem krzaczki z bazy, czyli zamieniłem Łódzkie na Ludzkie, a w wolnym czasie poprawię to na porządnie i sprawdzę jak SET NAMES się sprawdzi.
CytatProblem domyślnego połączenia zapewne.
Sprawdziłem, na 100%. Jutro mnie nie ma w firmie, ale pojutrze rano zmienie ustawienia MySQL'a na serwerze.
baza wysłana... mam nadzieję 8)
Tak dla przypomnienia...
Dodałem tabelę z wynikami województw (bazując na tabeli dostarczonej mi przez apohawk'a) i tu ciekawostka... Nie wiem jakim cudem, ale byłem podłączony pod "dolnośląskie" |-?
Poprawiłem na Lubuskie :)
Oczywiście, każdy może się zarejestrować i zmienić województwo w każdej chwili...
Z postępu prac:
Nadal nie jest na 100% dograna synchronizacja wyników z serwerami... Chyba zacznę planować przeniesienie tej funkcji na serwer linuksowy w firmie bazując albo na skrypcie PHP albo na PERL'u (ale nie mam z nim żadnego doświadczenia - pomoc więc wskazana).
Statystyki nadal nie są mocno rozbudowane, ale do większej rozbudowy przystąpię dopiero jak opanuję rysowanie wykresów (albo ktoś z Was to zrobi i podeśle mi przykładowe kody źródłowe generujące statystyki z bazy) - do użycia w sygnaturkach.
Z dodatkowych pomysłów - wymyśliłem sobie, że skoro jest możliwość pobierania statystyk wyścigów, dlaczego by i ich nie zaimplementować na stronie? Wszak raczej nie ogranicza nas teraz wielkość bazy danych (do 200GB :) ).
W tym wypadku można by dopisywać wyścigi bazując na formularzu wypełnionym przez kogokolwiek z zarejestrowanych użytkowników. Co o tym myślicie?
mimeq zgromadził 2154775.14 punktów
Troche mi sie zle patrzy na tak "wyswietlany" wynik, moga byc np przecinki, spacje lub inny wymysl ? ;D
2 154 775.14 punktów
2,154,775.14 punktów
Juz prawie pokazuje tyle co boincstats ;) :
2,246,305.72
Cytat: mimeq w 19 Listopad 2010, 16:30
mimeq zgromadził 2154775.14 punktów
Troche mi sie zle patrzy na tak "wyswietlany" wynik, moga byc np przecinki, spacje lub inny wymysl ? ;D
Postaram się :)
Edit:
Zrobione :)
Cytat: krzyszp w 19 Listopad 2010, 16:24
Dodałem tabelę z wynikami województw (bazując na tabeli dostarczonej mi przez apohawk'a) i tu ciekawostka... Nie wiem jakim cudem, ale byłem podłączony pod "dolnośląskie" |-?
Poprawiłem na Lubuskie :)
Kurde, też nie wiem. Nie było cię w żadnym csv, którymi karmiłem bazę, a w bazie "dolnośląskie" XD
shit happens
Super pomysł krzyszp i szacunek za realizację :respect:
Cytat: Bober w 19 Listopad 2010, 20:55
Super pomysł krzyszp i szacunek za realizację :respect:
Szacunek się nie należy - na stronie właściwie jeszcze nie ma nic, co nie było by łatwe do uzyskania (i pokazania) :)
Niestety, wciąż nie ma pełnych danych i nie są generowane grafiki dla sygnaturek... Wciąż też trzeba dograć sprawę jednoznacznego identyfikowania userów oraz wyświetlanie indywidualnych statystyk. Chciałbym też zautomatyzować statystyki dla wyścigów. Niestety, nie wiem, czy czasowo dam radę ogarnąć to wszystko poprawiając jednocześnie skrypty - jest z tym trochę roboty zanim zacznie to naprawdę niezawodnie działać...
Dobrze, to na zachętę było :D
Cytat: krzyszp w 19 Listopad 2010, 16:50
Cytat: mimeq w 19 Listopad 2010, 16:30
mimeq zgromadził 2154775.14 punktów
Troche mi sie zle patrzy na tak "wyswietlany" wynik, moga byc np przecinki, spacje lub inny wymysl ? ;D
Postaram się :)
Edit:
Zrobione :)
Oddzialy wewnetrzne B@P:
mimeq zgromadził 2154775.14 punktów
RAD-Poland zgromadził 4991832.73 punktów
JaRa zgromadził 4043481.78 punktów
J. Gdak zgromadził 2230095.05 punktów
emik zgromadził 113.00 punktów
Tu nie widze "apostrofów", reszta wyglada ok :respect:
Cytat: mimeq w 19 Listopad 2010, 21:32
Tu nie widze "apostrofów", reszta wyglada ok
Zrobione :)
:respect: :respect: :respect:
Co widać w podpisie, pierwsze wykresy się generują.
Statystyka województw gotowa do zamieszczenia, jeszcze tylko sformatować liczby :)
Edit:
Czy tylko mi tak powoli przeładowują się strony w dziale statystyk?
U mnie ok, nie ma wiekszej roznicy w porownaniu do reszty.
"przyczepie" sie znow:
1. Top10 grup i Top10 liczydlowych moglyby byc znow separatory w liczbach jak juz pisalem ;) Najlepiej wyglada wedlug mnie to tu:
Razem punktów
3 088 513 054,27
Poprzednia aktualizacja punkty
3 450 929 797,41
2.Oddzialy wewnetrzne B@P:
Krzysztof Piszczek - wspieram Stowarzyszenie Polski Projekt Boinc zgromadził 4'817'534.30 punktów
Ta grupa zdobyła: 123'150'510.02 punktów.
1 osoba w grupie majaca 4mln pkt. skad w sumie grupy 123mln ?
EDIT:
Jesli to tylko podgrupa BOINC@Poland to chyba nie powina byc w Top10 nad B@P
Cytat: mimeq w 20 Listopad 2010, 19:34
U mnie ok, nie ma wiekszej roznicy w porownaniu do reszty.
"przyczepie" sie znow:
1. Top10 grup i Top10 liczydlowych moglyby byc znow separatory w liczbach jak juz pisalem ;) Najlepiej wyglada wedlug mnie to tu:
Razem punktów
3 088 513 054,27
Poprzednia aktualizacja punkty
3 450 929 797,41
2.Oddzialy wewnetrzne B@P:
Krzysztof Piszczek - wspieram Stowarzyszenie Polski Projekt Boinc zgromadził 4'817'534.30 punktów
Ta grupa zdobyła: 123'150'510.02 punktów.
1 osoba w grupie majaca 4mln pkt. skad w sumie grupy 123mln ?
EDIT:
Jesli to tylko podgrupa BOINC@Poland to chyba nie powina byc w Top10 nad B@P
Generalnie poprawiłem błędy z formatowaniem liczb, wynikały z cache joomli...
Natomiast, co do wyników grupy Emigrancji, to miałem błąd w jednej pętli i punktacja tej grupy była sumą punktów dwóch pozostałych :) To też powodowało takie, a nie inne umiejscowienie jej w tabeli ;)
:parrrty:
Jest sobie tabela z wynikami zawierająca kolumny:
ScoreID|UserID|ProjectID|Date|Score
Potrzebuję dla konkretnego UserID uzyskać listę wyników oraz projektów (ProjectID) za ostatnie siedem dni. Ktoś ma ochotę napisać zapytanie? :)
SELECT ProjectID, Score FROM tabela WHERE UserID=:x AND Date>DATE_ADD(NOW(), INTERVAL -7 DAY)
Chyba, że masz bardziej skomplikowane wymagania albo ja nie zrozumiałem jak jest zbudowana tabela (w sensie co zawiera).
Generalnie o to chodziło, a ja miałem zaćmienie (czytaj: kac mnie dziś męczy)...
Fajnie by było stworzyć też zapytanie, które zwróci wyniki tylko dla projektów w których zmieniły się wyniki od dnia poprzedniego, to da nam wykresy dla projektów w których liczymy.
SELECT dzis.projectid, dzis.score FROM tabela AS dzis, tabela AS wczoraj WHERE dzis.projectid = wczoraj.projectid AND dzis.userid = wczoraj.userid AND dzisiaj.date = "dzisiaj" AND wczoraj.date = "wczoraj" AND NOT dzisiaj.score = wczoraj.score;
"dzisiaj" i "wczoraj" sobie jakoś wylicz. Dla konkretnego użytkownika zamień dzisiaj.userid=wczoraj.userid na dzisiaj.userid = stefan.
Tylko to trochę masakratorskie chyba będzie.
Może lepiej pobrać część wyników, a potem obrobić w kodzie. Będzie prościej i mniej użerania się z datą.
SELECT projectid, score, date FROM tabela WHERE userid = stefan AND date > "wczoraj";
Wczoraj podać bez godziny, to chyba 00:00:00 będzie i się timestamp porówna bez problemu. A potem to sobie do jakiejś tablicy asocjacyjnej wrzucić i porównać. Chyba będzie sprawniej.
Pierwsze zapytanie nie bardzo mogę zrozumieć, co masz namyśli pisząc dzis.projectid i dzis.score?
Problem z drugim jest taki, że serwery podają w plikach aktualne punkty, a nie tylko przyrost i ja tak samo zapisuję je w bazie, np.:
Budowa tabeli:
CREATE TABLE `tblScores` (
`ScoreID` int(10) NOT NULL AUTO_INCREMENT,
`UserID` int(10) NOT NULL,
`ProjectID` int(11) NOT NULL,
`Date` date NOT NULL,
`Score` double(15,2) DEFAULT NULL,
PRIMARY KEY (`ScoreID`),
KEY `ProjectID` (`ProjectID`)
) ENGINE=InnoDB AUTO_INCREMENT=135412 DEFAULT CHARSET=latin1
Przykładowa zawartość:
'ScoreID', 'UserID', 'ProjectID', 'Date', 'Score'
118007, 1, 96, '2010-11-20', 237907.69
10828, 1, 96, '2010-11-11', 236457.63
114322, 1, 99, '2010-11-20', 100127.41
58176, 1, 99, '2010-11-15', 100127.41
86649, 1, 99, '2010-11-18', 100127.41
Jak widzisz, dla usera o id=1 i projektu o id = 96 wyniki były za każdym razem inne (rosnąco), ale już przy projekcie o id = 99 się nie zmieniają, co oznacza, że user go nie liczy lub projekt już nie jest aktywny... Te wyniki właśnie chcę odsiać i budować wykres z aktywnych projektów czyli w tym wypadku tych, które user liczy (dostaje punkty). Te wyniki chciałbym dostać dla ostatnich siedmiu dni, gdyż chcę załatwić także wykres z wynikami/punktami usera za ostatnie 7 dni. Całość odpaliłbym w pętli dla wszystkich 6400 userów i wygenerował sygnaturki :)
Jeszcze jedno - wolałbym jak najwięcej roboty zrzucić na serwer z bazą danych (stoi u mnie w biurze) zmniejszając tym samym obciążenie na serwerze...
SELECT dzis.projectid, dzis.score FROM tblScores AS dzis, tblScores AS wczoraj WHERE dzis.projectid = wczoraj.projectid AND dzis.userid = wczoraj.userid AND dzisiaj.date = "dzisiaj" AND wczoraj.date = "wczoraj" AND NOT dzisiaj.score = wczoraj.score;
Masz poprawione, wcześniej nie znałem nazwy tej tabeli. Chyba, że mysql nie wspiera "AS" i nie poradzi sobie z takim joinem, iloczynem kartezjańskim w zasadzie.
Zrobi się O(n^2) na całej tabeli i pewnie będzie masakra. Może query scheduler coś wykombinuje, ale po co go przemęczać.
A odsiać po indeksie z date, a potem na mocno przesianym zbiorze porównać parę rzeczy, to już w PHP czy w czym tam piszesz powinno być szybciutko, bo w pamięci.
np. tablica asocjacyjna tablica[(projectid,userid)]=(dzisiaj.score,wczoraj.score), kluczem jest krotka i wartością też krotka, a uzupełniasz ją liniowo przeglądając rezultat z bazy z drugiego query.
Albo inaczej, też jednym przebiegiem przeglądasz ten rezultat, ale dla daty wczorajszej robisz tablica[(projectid,userid)]-=score, a dla dzisiejszej tablica[(projectid,userid)]+=score, o ile czytasz dane w integerach. Potem jeszcze jeden przebieg filtrujący zera po tej tablicy i gotowe.
To zapytanie niestety nie przejdzie. Nie ma możliwości zrobić zapytanie używając formy "dzis.projectid" (czy też za "dziś" wstawiając datę)...
Ok, zrozumiałem :) Podstawić tblScore zamiast dzis.
Oczywiście MySQL obsługuje "AS", z tym nie ma problemu, ale dane dla score są typem double, chyba, że na potrzeby obliczeń przemnożę je przez 100 a potem podzielę (są zawsze dwa miejsca po przecinku).
Ps. Ostatnie zdanie z poprzedniego postu, zabrakło wyrazu "hostowanym"... :)
Edit:
Popracowałem trochę nad zapytaniem:
SELECT ProjectID, Score FROM tblScores AS dzis, tblScores AS wczoraj WHERE ProjectID = ProjectID AND UserID = UserID AND tblScores.Date = '2010-11-20' AND Date = '2010-11-19' AND NOT Score = Score;
Niestety "Column 'ProjectID' in field list is ambiguous"... Dziś jestem już padnięty, jutro nad tym poprcuję...
Cytat: apohawk w 21 Listopad 2010, 23:35
SELECT dzis.projectid, dzis.score FROM tblScores AS dzis, tblScores AS wczoraj WHERE dzis.projectid = wczoraj.projectid AND dzis.userid = wczoraj.userid AND dzisiaj.date = "dzisiaj" AND wczoraj.date = "wczoraj" AND NOT dzisiaj.score = wczoraj.score;
Zrobi się O(n^2) na całej tabeli i pewnie będzie masakra. Może query scheduler coś wykombinuje, ale po co go przemęczać.
A odsiać po indeksie z date, a potem na mocno przesianym zbiorze porównać parę rzeczy, to już w PHP czy w czym tam piszesz powinno być szybciutko, bo w pamięci.
A może tak jawnym joinem:
SELECT dzis.projectid, dzis.score FROM tblScores AS dzis
JOIN tblScores AS wczoraj ON (
dzis.projektid = wczoraj.projectid
AND dzis.userid = wczoraj.userid
AND NOT dzisiaj.score = wczoraj.score --wg Twojego zapisu, osobiście wolę znak nierówności ;)
) WHERE dzisiaj.date = "dzisiaj" AND wczoraj.date = "wczoraj"
Nie wnikałem w dokumentację, ale powinien w tym wypadku nie tworzyć pełnej tablicy n^2, więc mocno zaoszczędzi się na pamięci (i siłą rzeczy lekko przyspieszy). Zaznaczam, że nie testowałem tego rozwiązania, więc może nie działać. Dodatkowo można dodać jeden warunek datowy do JOINa (na zasadzie wczoraj.date ma być o ileś mniejsze od dzis.date i wywalić wczoraj.date="wczoraj"). Co nie zmienia faktu, że to cały czas jest O(n^2). Można ew. kombinować z subquery.
Co zaś do powyższego błędu to krzyszp: używasz nazwy kolumny (pola), ale nie podajesz z której tablicy, więc się nie dziw, że nie chce działać.
Tak trochę się nudząc, wygenerowałem jeszcze jeden wykresik:
(http://simple-crm.co.uk/ppb/php/images/stats/77.png)
Kawałek kodu generuje go automatycznie dla wszystkich, którzy się zarejestrowali w serwisie i scalili swoje konto, wystarczy na końcu adresu (nazwa pliku) wpisać swoje ID z bazy danych serwisu (widoczne w prawym dolnym rogu po zalogowaniu) plus cyfrę 7. Np. dla mnie id=320 więc nazwa pliku będzie 3207.png
Wykres korzysta z nowej tabeli, tak więc na razie są tam tylko dwa dni, później będzie 7 :)
Ten przyrost na tym wykresie to tak nie bardzo widać XP
Cytat: apohawk w 22 Listopad 2010, 16:02
Ten przyrost na tym wykresie to tak nie bardzo widać XP
Jak ktoś zrobi sobie 50% punktów więcej codziennie to będzie widać XD
Cytat: krzyszp w 22 Listopad 2010, 15:57
Wykres korzysta z nowej tabeli, tak więc na razie są tam tylko dwa dni, później będzie 7 :)
Mam nadzieję, że nie dublujesz sobie danych. Nie wiem jak z wydajnością, bo może faktycznie to jedyne rozwiązanie, ale polecałbym zainteresować się widokami (tymczasowymi, automatycznie generowanymi tabelami - tak w uproszczeniu).
Część danych faktycznie się dubluje (ok. 10%), ale w tej chwili to nie problem, te dane są u mnie na serwerze, więc miejsca jest sporo.
Widoki w tej chwili nie są konieczne, raczej staram się używać tabel tymczasowych (aktualnie 2) z zawartością generowaną raz dziennie (ale jak opracujemy lepszą metodę aktualizacji bazy z projektów, to będzie np. co godzinę).
Pobawiłem się chwilę - może się przyda:
$UserName = '"[BOINC@Poland] Szopler"';
$Score = 10000;
$query = ("SELECT `UserID` FROM `tblusers` where `UserName`=".$UserName);
$result = mysql_query($query);
$wektor = mysql_fetch_array($result);
echo '<p>'.'UserID: '.$wektor['UserID'].'</p>';
//$UserID = $wektor['UserID'];
$query = ("SELECT `ProjectID`,`Score` FROM `tblscores` WHERE `UserID`=".$wektor['UserID']." and `Score` >".$Score." ORDER BY `Score` DESC");
$result = mysql_query($query);
@$num_results = mysql_num_rows($result);
$il_projektow = $num_results;
echo '<p>'.'Ilość ProjectIDs dla: KREDYTY>'.$Score.' : '.$il_projektow.'</p>';
for ($i=1;$i<=$il_projektow;$i++)
{
$tablica = mysql_fetch_array($result);
$project_id[$i] = $tablica[0];
$query1 = ("SELECT `ProjectName` FROM `tblprojects` WHERE `ProjectID`=".$project_id[$i]);
$result1 = mysql_query($query1);
$tablica1 = mysql_fetch_array($result1);
echo '<br>'.$tablica1[0].' - '.$tablica[1];
}
Tekstowa wersja sygnaturki.
Wyświetla nazwę projektu i ilość punktów w projekcie.
Posortowane po ilości punktów (malejąco). Dodatkowo można wpisać ilość punktów powyżej której ma wypisywać projekty.
Dzięki :)
Jutro to wrzucę na serwer, z userami w pętli (wszystkimi) i w formie graficznej... A przynajmniej spróbuję (chyba nie będzie problemu)...
Ps. Różnica między MySQL na Win X P i Linuksie jest taka, że na windzie nie jest rozróżniana wielkość liter. Musisz trochę na to uważać, bo potem dłuuugo można szukać błędu ;)
Edit:
Niestety, masz ten sam błąd, który i ja popełniałem... wyniki zwracane przez Twój skrypt też podają projekty, w których punktacja się nie zmieniła... Wiem, że można to ogarnąć programowo z poziomu PHP, ale bardziej elegancko było by to zrobić z poziomu SQL'a :)
Dla chętnych do zabawy, dzisiejszy zrzut bazy jest pod adresem http://krzyszp.info/KP/web115-kpbbb.sql.zip
Cytat: Szopler w 22 Listopad 2010, 21:28
for ($i=1;$i<=$il_projektow;$i++)
{
$query1 = ("SELECT `ProjectName` FROM `tblprojects` WHERE `ProjectID`=".$project_id[$i]);
(...)
}
Wysoce odradzam takie zagrywki, tym bardziej, że piszesz niskopoziomowo (używając frameworków czasem trudno to obejść). Pobierz z bazy RAZ i przetwórz w PHP. Szczególnie ważne to jest jeżeli masz mysql na innym serwerze niż php, ograniczasz liczbę potrzebnym połączeń/przesyłanych informacji.
To właśnie jeden z powodów dla których proszę o pomoc we właściwym sformułowaniu zapytań.
Oczywiście, wyjątkiem jest pętla, w której muszę to powtórzyć dla każdego usera osobno (choć i to dałoby się obejść), jednak sam mam ograniczony czas i umiejętności do robienia takich konstrukcji zwłaszcza, że do stronki siadam zwykle po zakończeniu normalnej pracy...
Cytat: krzyszp w 22 Listopad 2010, 19:17
[...]ale jak opracujemy lepszą metodę aktualizacji bazy z projektów, to będzie np. co godzinę.
Tak jak pisałem na priv ze skryptami w shellu nie mam do czynienia i zupełnie nie znam zasad ich poprawnego pisania. Możesz spróbować skorzystać z tego łamańca. Wydaje się, że działa. Po licznych poprawkach może uda się go wykorzystać.
#!/bin/sh
KAT=/mnt/hdd2/Temp/stats
DANE=/tmp/users
echo > $DANE/log.wget
if [ -f $DANE/newfile ]; then
rm -f $DANE/newfile
fi
inotifywait -m -r -q -o $DANE/newfile -e close_write $KAT >/dev/null &
pid=$!
cut -f2 $DANE/linki | while read f
do
wget -t 1 -T 30 -a $DANE/log.wget -N -P $KAT/$(echo $f | sed 's|^http://\([^/]*\)/.*|\1|') $f
done
kill -3 $pid
sed 's/ CLOSE_WRITE,CLOSE //' $DANE/newfile | while read line
do
TEAMID=$(cgrep "$(echo $line | cut -d/ -f6)" $DANE/linki | cut -f3)
gzip -cd $line | cgrep -D -w '<user>' +w '<\/user>' "^[\t ]*<teamid>$TEAMID</teamid>$" | sed -e '1i<users>' -e '$a<\/users>' | xsltproc -o $KAT/$(echo $line | cut -d/ -f6)/last.txt $DANE/users.xsl -
done
sed 's/ CLOSE_WRITE,CLOSE user.*gz/last\.txt/' $DANE/newfile | while read last
do
PROJECTID=$(cgrep "$(echo $last | cut -d/ -f6)" $DANE/linki | cut -f1)
PROJEKTKAT=$(echo $last | cut -d/ -f6)
:
if [ -e "$KAT/$PROJEKTKAT/first.txt" ]; then
diff -a $KAT/$PROJEKTKAT/first.txt $last | sed -e '/^> /!d;s/^> //' -e "s,^,$PROJECTID|,g" >> $DANE/inserts
else
cp $last $KAT/$PROJEKTKAT/first.txt
sed "s,^,$PROJECTID|,g" $last >> $DANE/inserts
fi
done
#mysql -c "LOAD DATA LOCAL INFILE '$DANE/inserts' INTO TABLE users LINES TERMINATED BY '|';"
cp $DANE/inserts $DANE/inserts.prev
Do prawidłowego działania potrzebny jest cgrep
http://downloads.sourceforge.net/cgrep/cgrep-8.15.tar.gz (http://downloads.sourceforge.net/cgrep/cgrep-8.15.tar.gz)
i z repozytorium
-inotifywait z pakietu inotify-tools,
-xsltproc (u mnie paczka libxslt-progs, szukać pod libxslt)
Można również zainstalować xmlstarlet.
1. Z bazy zrzucić do pliku "linki" w katalogu (DANE)
PROJECTID, pełny link do pliku user.gz, TEAMID
Wszystkie pola rozdzielone tabulatorem. Oczywiście mowa o projektach aktywnych w których nasz team uczestniczy.
Cytat1 http://abcathome.com/stats/user.gz 45
2 http://boinc.almeregrid.nl/stats/user.gz 89
...
Do katalogu wrzucić plik users.xsl z taką zawartością
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="no" method="text"/>
<xsl:param name="inputFile">-</xsl:param>
<xsl:template match="/">
<xsl:for-each select="/users/user">
<xsl:value-of select="concat(id,'|',name,'|',country,'|',create_time,'|',total_credit,'|',expavg_credit,'|',e
xpavg_time,'|',cpid,'|',url,'|',teamid)"/>
<xsl:value-of select="' '"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
2. W katalogu (KAT) w którym będziesz gromadził pliki, tworzysz wszystkie podkatalogi. Nazwa po domenie.
cd $KAT
cut -f2 linki | sed 's|^http://\([^/]*\)/.*|\1|' | while read f; do mkdir $f; done
3. W skrypcie zmienić KAT i DANE na właściwe.
Ustawić poprawne podstawienie dla PROJECTKAT, PROJECTID, TEAMID. Jest tam
Cytatcut -d/ -f6
który w tym skrypcie pobiera nazwę katalogu, pole 6 "boinc.gorlaeus.net", separatorem jest "/"
/mnt/hdd2/Temp/stats/boinc.gorlaeus.net/
Jeśli wszystko jest zainstalowane można testowo uruchomić.
Oczywiście zrezygnować z pól niechcianych - url, itp. Ta linijka z mysql to tak na odczepnego ;). Nie mam zainstalowanego nie importowałem do bazy.
Wget sprawdza timestamp pliku i pobiera tylko nowsze. Zaletą tego skryptu jest szybkość. Perl, python czy cóś innego nie zapewni tego co cgrep.
Ostatecznie wywoływać z crona, z tym że może będziesz musiał podać pełne ścieżki do programów.
Na moim złomie dla 59 plików user.gz (192MB) przekształcenie trwa ~90s. Na 2 rdzeniowcu >= 2GHz nie powinno zająć
dłużej jak 20s. Zamiast gzipa możesz skorzystać z pigz w celu wykorzystania dodatkowych rdzeni.
http://www.zlib.net/pigz/ (http://www.zlib.net/pigz/)
Swoją drogą sposób dystrybucji tych dumpów jest absurdalny. Można by w cyklu dwutygodniowych checkpointów robić diffy z bazy lub nawet delty na gzipach.
Wtedy zamiast 1GB dziennie, pobierałoby się 40 MB.
EDIT:
Pojawił się błąd. Projekt gerasim korzysta z windowsowego znaku końca linii. We wzorze wyszukiwania dodałem [^M]*$
Wow. Poprzednia wersja nie mogła działać porprawnie, ponieważ zawierała kardynalny błąd.
W tej dodałem, diffa aby nie dublować danych. Na brudno działa.
Pozostał problem z polskimi znakami. Nie ogarniam tego.
Można też (to moje coś) zrobić tak - w sumie tylko 3 zapytania do bazy :).
mysql_pconnect ('localhost', 'boincstats', 'si#83') or die ('Nie można uzyskać połączenia z serwerem baz danych!');
mysql_select_db('boinc') or die ('Brak bazy danych "boinc"!');
$UserName = '"[BOINC@Poland] Szopler"';
$Score = 0;
$query = ("SELECT `UserID` FROM `tblusers` where `UserName`=".$UserName);
$result = mysql_query($query);
$wektor = mysql_fetch_array($result);
echo '<p>'.'UserID: '.$wektor['UserID'].'</p>';
//$UserID = $tablica['UserID'];
$query = ("SELECT `ProjectID`,`ProjectName` FROM `tblprojects`");
$result = mysql_query($query);
$ilosc = mysql_num_rows($result);
for ($i=0;$i<=$ilosc;$i++)
{
$line = mysql_fetch_row($result);
$tbl_project[$i] = Array($line[0],$line[1]);
//echo '<br>'.$tbl_project[$i][0].' - '.$tbl_project[$i][1];
}
$query = ("SELECT `ProjectID`,`Score` FROM `tblscores` WHERE `UserID`=".$wektor['UserID']." and `Score` >".$Score." and ***data*** order by `Score` desc");
$result = mysql_query($query);
for ($i=0;$i<=$ilosc;$i++)
{
$line = mysql_fetch_row($result);
$tbl_points[$i] = Array($line[0],$line[1]);
//echo '<br>'.$tbl_points[$i][0].' - '.$tbl_points[$i][1];
}
//echo '<br>+++ '.$tbl_project[1][0].' - '.$tbl_project[1][1];
$licznik=0;
while ($licznik<$ilosc)
{
for ($i=0;$i<=$ilosc;$i++)
{
if (($tbl_project[$i][0]) == ($tbl_points[$licznik][0]))
{
echo '<br>'.($tbl_project[$i][1]).' - '.($tbl_points[$licznik][1]);
$licznik++;
}
}
}
W miejscu *** trzeba wstawić do zapytania warunek z datą, żeby pobrało tylko aktualne dane z tabeli tblscores.
Tyle że ten warunek jest kłopotliwy bo jak wstawię proste - ... and `Date`='2010-11-22'
to ... wypisze mi punkty w projektach a którymi tego dnia udało się połączyć.
Wszystko dlatego że w tabeli tblscores ilość punktów przypisana do daty istnieje tylko dla projektów z którymi danego dnia udało się połączyć.
Gdyby w przypadku braku połączenia przepisywać wynik z ... to wyświetlało by punkty dla wszystkich projektów usera.
Projektów w bazie: 96
Projektów z dnia 2010-11-22: 50
Projektów nieaktywnych wg bazy: 30
Zostaje: 16 do ustalenia co z nimi nie tak...
Hint do daty: "Max"
UserID z bazy jest widoczny (przechowany w sesji, nie trzeba osobno pytać).
Tak w ogóle, to przetestuję skrypty dopiero w sobotę, bo do piątku mnie nie ma niestety...
inotifywait -m -r -q -o $DANE/newfile -e close_write $KAT >/dev/null &
pid=$!
inotifywait: invalid option -- 'o'
kill: 16: No such process
inotifywait -m -r -q -e close_write $KAT >$DANE/newfile 2>&1&
Masz starszą wersję.
Ok, na tę chwilę, skrypt ściąga mi pliki user.gz do katalogów nazwanych tak jak ProjectID (1,2,itd)...
Wykonanie komendy:
cut -f2 linki | sed 's|^http://\([^/]*\)/.*|\1|' | while read f; do mkdir $f; done
Powoduje utworzenie katalogów o nazwach takich jak teamid z pliku linki, czyli tutaj jest błąd przy seedowaniu nazw projektów...
Edit: Poprawione, plik "linki" miałem źle sformatowany...
Pliki inserts, newfile mają długość zerową.
Struktura katalogów u mnie:
Katalog główny (ze skryptem) - /media/Składowisko/Temp/Boinc
Katalog z danymi - /media/Składowisko/Temp/Boinc/Dane
Katalog z plikami (w podkatalogach jak opisałem wyżej) user.gz - /media/Składowisko/Temp/Boinc/KAT, np. /media/Składowisko/Temp/Boinc/KAT/1, /media/Składowisko/Temp/Boinc/Kat/2 itd
Punkt wyjścia.
1. Z bazy zrzucić do pliku "linki" w katalogu (DANE)
PROJECTID, pełny link do pliku user.gz, TEAMID
Wszystkie pola rozdzielone znakiem tabulacji. Oczywiście mowa o projektach aktywnych w których nasz team uczestniczy.
Cytat1 http://abcathome.com/stats/user.gz 45
2 http://boinc.almeregrid.nl/stats/user.gz 89
...
Jeśli zmieniasz strukturę tego pliku (kolejność pól), to wtedy musisz poprawić skrypt.2. Zamienić w skrypcie wszystkie "cut -d/ -f6" na takie pole, które prawidłowo wskazuje katalog z zawartością user.gz
/media/Składowisko/Temp/Boinc/boinc.bakerlab.org
czyli
echo "/media/Składowisko/Temp/Boinc/boinc.bakerlab.org" | cut -d/ -f6
boinc.bakerlab.org
lub
echo "/bla/blabla/blablabla/boinc.bakerlab.org" | cut -d/ -f5
Skrypt jest mało przejrzysty.
po wywołaniu skryptu mam:
krzyszp@Ubuntu64:/media/Składowisko/Temp/Boinc$ sh dow.sh
wget: brakujący URL
Składnia: wget [OPCJE]... [URL]...
Polecenie `wget --help' wyświetli więcej opcji.
-:1: parser error : Document is empty
^
-:1: parser error : Start tag expected, '<' not found
^
I/O error : Invalid seek
unable to parse -
-:1: parser error : Document is empty
^
-:1: parser error : Start tag expected, '<' not found
^
I/O error : Invalid seek
unable to parse -
-:1: parser error : Document is empty
^
-:1: parser error : Start tag expected, '<' not found
^
I/O error : Invalid seek
unable to parse -
cp: nie można wykonać stat na `/media/Składowisko/Temp/Boinc/KAT/boinc.bakerlab.org/last.txt': No such file or directory
sed: nie można odczytać /media/Składowisko/Temp/Boinc/KAT/boinc.bakerlab.org/last.txt: No such file or directory
cp: nie można wykonać stat na `/media/Składowisko/Temp/Boinc/KAT/burp.renderfarming.net/last.txt': No such file or directory
sed: nie można odczytać /media/Składowisko/Temp/Boinc/KAT/burp.renderfarming.net/last.txt: No such file or directory
cp: nie można wykonać stat na `/media/Składowisko/Temp/Boinc/KAT/www.distributeddatamining.org/last.txt': No such file or directory
sed: nie można odczytać /media/Składowisko/Temp/Boinc/KAT/www.distributeddatamining.org/last.txt: No such file or directory
Myślę, że za błąd odpowiada część:
do
TEAMID=$(cgrep "$(echo $line | cut -d/ -f6)" $DANE/linki | cut -f3)
gzip -cd $line | cgrep -D -w '<user>' +w '<\/user>' "^[\t ]*<teamid>$TEAMID</teamid>$" | sed -e '1i<users>' -e '$a<\/users>' | xsltproc -o $KAT/$(echo $line | cut -d/ -f6)/last.txt $DANE/users.xsl -
done
Dla jasności, wklejam cały skrypt:
#!/bin/sh
KAT=/media/Składowisko/Temp/Boinc/KAT
DANE=/media/Składowisko/Temp/Boinc/Dane
echo > $DANE/log.wget
if [ -f $DANE/newfile ]; then
rm -f $DANE/newfile
fi
inotifywait -m -r -q -e close_write $KAT >$DANE/newfile 2>&1&
pid=$!
cut -f2 $DANE/linki | while read f
do
wget -t 1 -T 30 -a $DANE/log.wget -N -P $KAT/$(echo $f | sed 's|^http://\([^/]*\)/.*|\1|') $f
done
kill -3 $pid
sed 's/ CLOSE_WRITE,CLOSE //' $DANE/newfile | while read line
do
TEAMID=$(cgrep "$(echo $line | cut -d/ -f6)" $DANE/linki | cut -f3)
gzip -cd $line | cgrep -D -w '<user>' +w '<\/user>' "^[\t ]*<teamid>$TEAMID</teamid>$" | sed -e '1i<users>' -e '$a<\/users>' | xsltproc -o $KAT/$(echo $line | cut -d/ -f6)/last.txt $DANE/users.xsl -
done
sed 's/ CLOSE_WRITE,CLOSE user.*gz/last\.txt/' $DANE/newfile | while read last
do
PROJECTID=$(cgrep "$(echo $last | cut -d/ -f6)" $DANE/linki | cut -f1)
PROJEKTKAT=$(echo $last | cut -d/ -f6)
:
if [ -e "$KAT/$PROJEKTKAT/first.txt" ]; then
diff -a $KAT/$PROJEKTKAT/first.txt $last | sed -e '/^> /!d;s/^> //' -e "s,^,$PROJECTID|,g" >> $DANE/inserts
else
cp $last $KAT/$PROJEKTKAT/first.txt
sed "s,^,$PROJECTID|,g" $last >> $DANE/inserts
fi
done
#mysql -c "LOAD DATA LOCAL INFILE '$DANE/inserts' INTO TABLE users LINES TERMINATED BY '|';"
cp $DANE/inserts $DANE/inserts.prev
Zapytanie SQL nie ruszam, zajmiemy się tym, jak już zobaczę jak wyglądają gotowe pliki insertów :)
W skrypcie dodaj set -x
#!/bin/sh
set -x
pozwoli to prześledzić, błędy.
Wyświetl zawartość katalogu /media/Składowisko/Temp/Boinc/KAT
ls -1 /media/Składowisko/Temp/Boinc/KAT
Powinnenneś mieć tam utworzone podkatalogi (nazwy katalogów pod domenie)
Cytatabcathome.com
aqua.dwavesys.com
bearnol.is-a-geek.com
boinc.almeregrid.nl
boinc.bakerlab.org
boinc.bio.wzw.tum.de
boinc.cs.uct.ac.za
boinc.drugdiscoveryathome.com
boinc.freerainbowtables.com
Prosiłem o zamianę "cut -d/ -f6" - pola f6 na takie jaki wskazuje wybrany przez ciebie katalog.
czyli powinno być wszędzie
cut -d/ -f7. Utworzyłeś podkatalogi?????????
man cut
separatorem jest "/", liczymy
1/2/3/4/5/6/
/media/Składowisko/Temp/Boinc/KAT/boinc.bakerlab.org
Zachęcam jeszcze raz do
zastosowania się do wskazówek podanych w poście ze skryptem.
Nie jestem programistą. Moja umiejętność pisania skryptów w shellu, sprowadza się do jedno-dwu linijkowców, usprawniających codzienne korzystanie z kompa. Ewentualnie do adaptacji na własne potrzeby gotowców.
Nie potrafię napisać tak uniwersalnego skryptu, który uruchomi go osoba nie mająca pojęcia o shellu.
EDIT:
Zachęcam do większej samodzielności, czytaj rozłożenia skryptu na czynniki pierwsze.
Co robi tu inotifywait?! Jake zadanie spełnia.
Sprawdź co jak działa, wklep w terminalu
KAT=/tmp/moj_katalog
echo $KAT
inotifywait -m -r -q -e close_write /tmp
echo "test" > /tmp/test.txt
wget -O /tmp/user_id.gz http://burp.renderfarming.net/stats/user_id.gz
gzip -cd /tmp/user_id.gz | cgrep -D -w '<user>' +w '<\/user>' "^[\t ]*<teamid>26</teamid>$" > /tmp/renderfarmi_BP.txt
sed -e '1i<?xml version="1.0" encoding="iso-8859-1"?>' -e '1i<users>' -e '$a<\/users>' /tmp/renderfarmi_BP.txt > /tmp/renderfarmi_BP.xml
xsltproc --encoding iso-8859-1 -o /tmp/dane_do_mysql.txt /tmp/stylesheet.xsl /tmp/renderfarmi_BP.xml
Potestuj troszkę. Wpisz
man inotifywait
man cut
man wget
Zobacz co jakie opcje powodują.
ls -1 /media/Składowisko/Temp/Boinc/KAT
abcathome.com
allprojectstats.com
aqua.dwavesys.com
bearnol.is-a-geek.com
boinc.almeregrid.nl
boinc.bakerlab.org
boinc.bio.wzw.tum.de
boinc.drugdiscoveryathome.com
boinc.fzk.de
boinc.gorlaeus.net
boinc.thesonntags.com
boinc.umiacs.umd.edu
boinc.unsads.com
boinc.vanderbilt.edu
burp.renderfarming.net
casathome.ihep.ac.cn
cbl-boinc-server2.cs.technion.ac.il
climateapps2.oucs.ox.ac.uk
dnetc.net
docking.cis.udel.edu
einstein.phys.uwm.edu
eon.ices.utexas.edu
escatter11.fullerton.edu
falua.cesfelipesegundo.com
gerasim.boinc.ru
home.edges-grid.eu
hydrogenathome.org
isaac.ssl.berkeley.edu
lhcathome.cern.ch
milkyway.cs.rpi.edu
mindmodeling.org
orbit.psi.edu
qah.uni-muenster.de
qcn.stanford.edu
ralph.bakerlab.org
registro.ibercivis.es
setiathome.berkeley.edu
setiweb.ssl.berkeley.edu
spin.fh-bielefeld.de
sudoku.nctu.edu.tw
szdg.lpds.sztaki.hu
vcsc.cs.uh.edu
wuprop.boinc-af.org
www.chess960athome.org
www.cosmologyathome.org
www.depspid.net
www.distributeddatamining.org
www.enigmaathome.net
www.freehal.net
www.fti.dn.ua
www.gpugrid.net
www.luxrenderfarm.de
www.malariacontrol.net
www.primaboinca.com
www.primegrid.com
www.rechenkraft.net
www.renderfarm.fi
www.rnaworld.de
www.ufluids.net
www.worldcommunitygrid.org
xw01.lri.fr:4320
Ta część jest ok.
Przepraszam, wcześniej źle zrozumiałem uwagę odnośnie separatora...
Dodałem set -x do skryptu.
Jak na razie wygląda, że plik inserts się tworzy :)
Zaraz przyjdzie czas na pytanie, jak to ugryźć...
Ze względu na moje (nikłe) umiejętności pod linuksem, pierwszy pomysł jest taki, aby to wyeksportować do katalogu dostępnego dla mnie spod windy, ale to proteza.
Drugie wyjście, to użyć naszego skryptu i komend eksportować wszystko do bazy lokalnie (tzn, skrypt jest lokalny - jestem w domu, a serwer w pracy) - i tak chyba zrobimy. Jeszcze tylko jeden szczegół - mamy teraz więcej danych w krótszym czasie, więc chyba warto by było przebudować bazę danych i przygotować ją "solidnie" do pracy...
Potem tylko całość wrzucić do cron'a i mamy serwer statystyk w wersji produkcyjnej :)
Jeszcze tylko potrzebuję dokładnej informacji o zawartości poszczególnych pól w pliku inserts:
http://simple-crm.co.uk/ppb/inserts
Jest taka jaką sobie ustalisz w stylesheet (users.xsl) + PROJECTID. Pisałem w pierwszym poście - wybierz tylko te, które uważasz za niezbędne.
PROJECTID|id|name|country|create_time|total_credit|expavg_credit|expavg_time|cpid|url|teamid
Dzięki.
Teraz drobiazgi (mogę dojść do tego sam, powolutku, ale trochę szkoda czasu):
Użyteczne kolumny, to projectid, name, country, total_credit, cpid, url, temid (z punktu widzenia naszego serwera), teraz trzeba powiązać kolumny z tego pliku z kolumnami (i tabelami) w bazie danych. Może rozbić plik "insert" na pliki z nazwami (lub id) projektów z BD?
Myślę, że poważnie też trzeba się zastanowić nad strukturą bazy danych naszego serwera, to co ja przygotowałem, niestety nie zda raczej egzaminu w dłuższej perspektywie...
Macie jakieś propozycje?
sed 's/ CLOSE_WRITE,CLOSE user.*gz/last\.txt/' $DANE/newfile | while read last
do
PROJECTID=$(cgrep "$(echo $last | cut -d/ -f6)" $DANE/linki | cut -f1)
PROJEKTKAT=$(echo $last | cut -d/ -f6)
PROJECTTABLENAME=$(cgrep "$(echo $last | cut -d/ -f6)" $DANE/linki | cut -f4)
:
if [ -e "$KAT/$PROJEKTKAT/first.txt" ]; then
diff -a $KAT/$PROJEKTKAT/first.txt $last | sed -e '/^> /!d;s/^> //' -e "s,^,$PROJECTID|,g" > $KAT/$PROJEKTKAT/insert.txt
mysql -c "LOAD DATA LOCAL INFILE '$KAT/$PROJEKTKAT/insert.txt' INTO TABLE $PROJECTTABLENAME LINES TERMINATED BY '|';"
else
cp $last $KAT/$PROJEKTKAT/first.txt
sed "s,^,$PROJECTID|,g" $last > $KAT/$PROJEKTKAT/insert.txt
mysql -c "LOAD DATA LOCAL INFILE '$KAT/$PROJEKTKAT/insert.txt' INTO TABLE $PROJECTTABLENAME LINES TERMINATED BY '|';"
fi
done
W takim układzie bazy, trzeba dodać do pliku linki - 4 kolumnę, PROJECTTABLENAME. Popraw, cut -d/ -f6.
Zrób takie zmiany. Ilość "cut-ów" i "sed-ów" robi się obrzydliwie wielka ;D Trzeba by wszystko od nowa po ludzku napisać :closedeyes:
Dwa, nie jestem pewien czy to podstawienie w linii z mysql zadziała '$KAT/$PROJEKTKAT/insert.txt'.
Trzy. Proponowałem analizę działania, ponieważ ten skrypt nie jest odporny na błędy. Jak coś będzie nie działać, dobrze wiedzieć w czym rzecz.
Proponuję się z nim przespać :D
EDIT:
Pozostaje nadal nie rozwiązana kwestia polskich znaków. W tym momencie xsltproc zamienia na UTF-8, zgodnie z tym
http://en.wikipedia.org/wiki/List%5Fof%5FXML%5Fand%5FHTML%5Fcharacter%5Fentity%5Freferences (http://en.wikipedia.org/wiki/List%5Fof%5FXML%5Fand%5FHTML%5Fcharacter%5Fentity%5Freferences)
W linii z cgrep dodaj [^M]*$, wymagane dla projektu Gerasim.
cgrep -D -w '<user>' +w '<\/user>' "^[\t ]*<teamid>$TEAMID</teamid>[^M]*$"
Nie masz statystyk projektu Pirates@Home.
Łączność z bazą danych przywrócona. W tej chwili aktualizują się wyniki, dodana tabela dla liczb pierwszych...
Muszę jeszcze uaktualnić województwa naszych liczydłowynch...
Czy ktoś może mi powiedzieć, dlaczego zapytnie:
$sql = "LOAD DATA LOCAL INFILE '/var/www/inserts' INTO TABLE tblUpload FIELDS TERMINATED BY '|'";
działa z poziomu PHPMyAdmin'a ale już z poziomu skryptu wywala błąd "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''tblUpload'' at line 1: "???
Średnik przed cudzysłowem.
Znak '|' rozdzielający pola jest niebezpieczny jeśli się go nie eskejpuje. Ktoś może w nicku wykorzystać.
Może lepiej będzie użyć tabulacji.
LOAD DATA LOCAL INFILE \'/var/www/inserts\' INTO TABLE tblUpload FIELDS TERMINATED BY \'|\';
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''tblUpload'' at line
Escapowanie i średnik nic nie dało...
Tabulator, hmmm, może jakiś inny znak nie używany, albo kombinacja kilku znaków?
Alt+0181 µ lub Alt+0176 ° ;)
No dobra...
Mamy tabelę 'tblUpload' z taką strukturą:
-- phpMyAdmin SQL Dump
-- version 3.3.2deb1
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Czas wygenerowania: 04 Gru 2010, 18:12
-- Wersja serwera: 5.1.41
-- Wersja PHP: 5.3.2-1ubuntu4.5
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- Baza danych: `web115-kpbbb`
--
-- --------------------------------------------------------
--
-- Struktura tabeli dla `tblUpload`
--
CREATE TABLE IF NOT EXISTS `tblUpload` (
`ProjectID` int(6) NOT NULL,
`Id` int(6) NOT NULL,
`Name` varchar(150) COLLATE utf8_unicode_ci NOT NULL,
`Country` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
`CreateTime` int(12) NOT NULL,
`TotalCredit` double(16,2) NOT NULL,
`ExpAvgCredit` double(10,2) NOT NULL,
`ExpAvgTime` double(20,2) NOT NULL,
`CpID` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
`Url` varchar(150) COLLATE utf8_unicode_ci NOT NULL,
`TeamID` int(6) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
A tam co godzinę updatowane statystyki.
Oczekuję propozycję skryptów na serwer statystyk z wykorzystaniem tej tabeli (mamy dane praktycznie w czasie rzeczywistym)...
Edit:
Bardzo ciekawa sprawa.
Sprawdziłem swoje statystyki, z serwerów (a mamy tylko czynne serwery) dla mnie zwraca wyniki kompletnie inne niż boincstats!
Na dzień dzisiejszy serwery podają, że mam 7838725.07 punktów, czyli znacznie więcej niż podaje boincstats???
Zainstalowałem mysql i w takiej postaci działa u mnie bez zarzutu.
mysql --user="user" --password="hasło" -D baza -e "LOAD DATA INFILE '/var/www/inserts' INTO TABLE tblUpload FIELDS TERMINATED BY '|';"
Problemem stawarzał LOAD DATA LOCAL INFILE.
Sprawę chwilowo załatwia taki skrypt:
<?php
session_start();
$dane = fread(fopen("/var/www/dump.sql", "r"), filesize("/var/www/dump.sql"));
$link = mysql_connect('ipserwera','username','haslo') or die ("Can't connect with database server!");
mysql_select_db('web115-kpbbb') or die ("Can't select database!");
$sql="TRUNCATE TABLE tblUpload";
$qresults = mysql_query($sql, $link) or die(mysql_error().": $sql");
$tekst="LOAD DATA LOCAL INFILE '/var/www/inserts' INTO TABLE tblUpload FIELDS TERMINATED BY '|'";
$qresults = mysql_query($tekst, $link) or die(mysql_error()."<br /><br />Blad: $tekst");
?>
Głównie z tego powodu, że rzeźbię na kompie domowym (weekend), więc wysyłam dane na serwer w pracy.
Wszystko leci z crona, o pełnej godzinie leci skrypt ściągający dane z netu, 5 minut później powyższy skrypt php.
W poniedziałek lub wtorek przeniosę skrypt do ściągania danych na serwer, to upload będzie w nim zawarty, będzie sprawniej.
Teraz tylko stopniowo pozmieniać wszystkie moduły na stronie do korzystania z nowej tabeli... Przydałby się też widok z zsumowanymi punktami liczydłowych, oraz naszymi punktami w rozbiciu na projekty.
Generalnie mamy świetną podstawę do rozbudowy całości.
Edit:
Pigu - masz zapisaną tabelkę w pliku http://statystyki.boincatpoland.org/php/lp.html ze spisem "naszych" liczb pierwszych bazującą na danych z bazy...
jak postępy serwera statystyk?
Nie wiem też co z tym programem, co go niby odpalać miałem, bo on mi nie działa :(
Kiedy będzie można krążyć po forach zespołów BOINC i zapraszać do nas? :arrr:
Więc tak:
Działa zapisywanie się do grup i podliczanie punktów dla nich (metoda podliczania jeszcze jest zawodna, ale patrz niżej).
Działają wykresy województw.
Można zapisać się samodzielnie do swojego województwa.
Mam cogodzinną aktualizację naszych wyników do jednej tabeli w bazie, muszę to jeszcze powiązać jakoś mądrze z userami, jak tylko to zrobię, będziemy mieć statystyki aktualizowane co godzinę. Na razie jeszcze muszę dograć wyliczanie wyników bieżących...
Sygnalizowałem rozbieżności w wynikach podawanych przez boincstats i projekty - najlepiej to widać w module po lewej stronie na dole - wg raportu z projektu, 24h temu mieliśmy ok 28 476 068 473.82 punktów - nijak to ma się do wyników z boincstats, a przecież ciągniemy wyniki bezpośrednio z plików z danymi poszczególnych projektów...
Najważniejsze, czyli "subteamy" działają, a także możliwość dopisywania się do swojego województwa. Na wykonanie większych zmian i udogodnień muszę poczekać, aż pojawi się chętny do pomocy z dobrą znajomością PHP i MySQL'a - na życzenie dam pełny dostęp do bazy i administracji strony...
Edit:
Cyfron - ten program chodzi u mnie, jednak odpalany ręcznie na laptopie... Niestety, przy tak słabym procku zajmuje mu zbyt dużo czasu przeszukiwanie plików user.gz, w związku z czym metoda jest zawodna... Jednak jest już odpalany cogodzinny skrypt o którym pisałem wyżej, wysyłający tylko zmienione wyniki na serwer.
a jak jakieś sygnaturki albo jakieś wykresy, żeby można było sensownie się "ścigać" pomiędzy subteam'ami ?
Cytat: Cyfron w 12 Grudzień 2010, 20:14
a jak jakieś sygnaturki albo jakieś wykresy, żeby można było sensownie się "ścigać" pomiędzy subteam'ami ?
Mogę przygotować takie wykresy jak dla województw... Na więcej brak mi umiejętności...
No, i spory problem - nasz skrypt do update'u statystyk nie działa poprawnie.
Za cholerę nie mogłem wyciągnąć prawidłowych wyników z bazy danych dla aktualnie liczonych projektów, więc zacząłem kombinować i dostałem np. takie kwiatki:
ProjectID Id Rosnąco Name Country CreateTime TotalCredit ExpAvgCredit ExpAvgTime CpID TeamID Time
110 196 AL ADIM Poland 1245248205 460272.82 11416.55 1292169187.63 3f7981f62bda2e1e316d82f279625796 99 2010-12-14 19:13:52
110 196 AL ADIM Poland 1245248205 460272.82 11416.55 1292169187.63 3f7981f62bda2e1e316d82f279625796 99 2010-12-14 19:13:52
110 196 AL ADIM Poland 1245248205 463420.38 10604.92 1292259116.94 3f7981f62bda2e1e316d82f279625796 99 2010-12-14 19:13:52
110 196 AL ADIM Poland 1245248205 463420.38 10604.92 1292259116.94 3f7981f62bda2e1e316d82f279625796 99 2010-12-14 19:13:52
110 196 AL ADIM Poland 1245248205 471853.26 10818.68 1292310740.41 3f7981f62bda2e1e316d82f279625796 99 2010-12-14 19:13:52
110 196 AL ADIM Poland 1245248205 474888.47 10840.59 1292333056.48 3f7981f62bda2e1e316d82f279625796 99 2010-12-14 19:13:52
110 650 Aleksander Parkitny Poland 1247396467 5026662.39 4376.41 1292223902.70 ae3e011045221629462f1935c994aaaa 99 2010-12-14 19:13:52
110 650 Aleksander Parkitny Poland 1247396467 5026662.39 4376.41 1292223902.70 ae3e011045221629462f1935c994aaaa 99 2010-12-14 19:13:52
110 650 Aleksander Parkitny Poland 1247396467 5026662.39 4376.41 1292223902.70 ae3e011045221629462f1935c994aaaa 99 2010-12-14 19:13:52
110 650 Aleksander Parkitny Poland 1247396467 5026662.39 4376.41 1292223902.70 ae3e011045221629462f1935c994aaaa 99 2010-12-14 19:13:52
110 650 Aleksander Parkitny Poland 1247396467 5026662.39 4376.41 1292223902.70 ae3e011045221629462f1935c994aaaa 99 2010-12-14 19:13:52
110 650 Aleksander Parkitny Poland 1247396467 5026662.39 4376.41 1292223902.70 ae3e011045221629462f1935c994aaaa 99 2010-12-14 19:13:52
110 655 [BOINC@Poland]emik Poland 1247397590 361001.75 6023.91 1292179250.76 907b25bab01203e063240153b7658ef7 99 2010-12-14 19:13:52
110 655 [BOINC@Poland]emik Poland 1247397590 361001.75 6023.91 1292179250.76 907b25bab01203e063240153b7658ef7 99 2010-12-14 19:13:52
itd
Czyli skrypt wrzuca (za każdym razem jak się zmienią dane) wszystkie kolejne wyniki usera w danym projekcie...
No i teraz mam kłopot z wyłuskaniem danych z ostatniej aktualizacji i np z ostatniego dnia...
Póki co, wymyśliłem takie pętle:
$query="SELECT DISTINCT ProjectID FROM tblUpload";
$qresults = mysql_query($query, $link) or die(mysql_error().": $query");
while ($qresult = mysql_fetch_array($qresults))
{
$id = $qresult['ProjectID'];
$query2 = "SELECT DISTINCT TotalCredit AS score FROM `tblUpload` WHERE ProjectID =$id AND Time = (SELECT max(Time) FROM tblUpload WHERE ProjectID =$id) AND TotalCredit = (SELECT MAX(TotalCredit));";
$qresults2 = mysql_query($query2, $link) or die(mysql_error().": $query2");
while ($qresult2 = mysql_fetch_array($qresults2))
{
$teraz=floatval($qresult2['score']) + $teraz;
}
//$teraz = $teraz / 3;
// Wczorajsze punkty
$query3 = "SELECT DISTINCT CreateTime FROM tblUpload WHERE ProjectID = $id ORDER BY CreateTime DESC Limit 2";
$qresults3 = mysql_query($query3, $link) or die(mysql_error().": $query3");
while ($qresult3 = mysql_fetch_array($qresults3))
{
$in=$qresult3['CreateTime'];
}
$query3 = "SELECT DISTINCT `Id`, `Name`, `TotalCredit`, `CpID` FROM `tblUpload` WHERE `CreateTime` = $in AND ProjectID = $id;";
$qresults3 = mysql_query($query3, $link) or die(mysql_error().": $query3");
while ($qresult3 = mysql_fetch_array($qresults3))
{
$wczoraj=floatval($qresult3['TotalCredit']) + $wczoraj;
}
}
Wykonuje się toto niemiłosiernie długo i w dodatku zwraca bzdury...
Jakieś sugestie?
eeekhm...
może by spróbować coś w ten deseń:
WHERE `Date` >= DATE_SUB(curdate(),INTERVAL 1 day) limit 1
Ale to mi właściwie nic nie daje... Problem w tym, że wszystkie wyniki są w bazie zapisywane ponownie za każdą aktualizacją, a czas zapisu w polu ("Time") jest time stampem...
Logiczne dla mnie jest, że powinien być wybrany najwyższy wynik dla danego projektu, usera i daty (ostatnia aktualizacja), ale jak to zabudować w zapytaniu i o ile to możliwe nie robić tego w pętli dla każdego usera i/lub projektu...
Ps. Przybył nam nowy wykresik:
(http://simple-crm.co.uk/ppb/images/stats/subt.png)
Podrzuć mi zapytanie które to załatwia. Spróbuję zrobić analogiczny wykres w atrakcyjniejszym wizualnie jpgraph.
$chart = new VerticalBarChart(800,500);
$dataSet = new XYDataSet();
$query3="SELECT * FROM tmpTop WHERE f1=f2";
$qresults3 = mysql_query($query3, $link) or die(mysql_error().": $query");
while ($qresult3 = mysql_fetch_array($qresults3))
{
$n=number_format(($qresult3['score']/1000000), 2, '.', '\'');
$dataSet->addPoint(new Point($qresult3['f1'], $n));
}
$chart->setDataSet($dataSet);
$chart->setTitle("Wyniki subteamów (mln punktów)");
$chart->render("./ppb/images/stats/subt.png");
echo "<p><img src=\"/ppb/images/stats/subt.png\"></p>";
Dane pobierane z tabeli tymczasowej, wcześniej wypełnianej wynikami dla subteamów. Samo zapytanie ma postać "SELECT * FROM tmpTop WHERE f1=f2". W tym wypadku, pola f1 i f2 zawierają nazwę sub-teamu.
Całość odpalam ręcznie po uploadowaniu wyników uzyskanych moim programem. Na stronie statystyk dodałem też kilka innych wykresów.
co do wykresów, to jeszcze pomarudzę, że fajnei by było, jakby subteamy były uszeregowane od najlepszego do najgorszego :)
To akurat nie problem, wystarczy do zapytania dodać ORDER BY i po sprawie. Załatwię to przy okazji.
Edit:
Zrobione :)
pracuję nad jednym zapytaniem które załatwi wyciąganie z bazy nazwy projektu i ilości punktów z ostatniej aktualizacji. potem może sygnaturka z pirrratem ;)
I chwała Ci za to :) :parrrty:
Pierwszy mały sukces ;)
SELECT prj.ProjectName, scr.Score
FROM tblScores scr
LEFT JOIN
(SELECT `ProjectID`,`ProjectName` FROM tblProjects) prj
on (scr.ProjectID = prj.ProjectID)
where scr.Date>=DATE_SUB((select max(`Date`) from `tblScores`), interval 0 day) and scr.UserID=9
order by Score desc
daje (mam dość starą bazę):
projectname score
DNETC@HOME 25002446.85
MilkyWay@home 15675584.00
Collatz Conjecture 1727732.35
AQUA@home 1001847.39
PrimeGrid 250002.49
RNA World 228376.81
Enigma@Home 213491.08
FreeHAL 200001.30
Rosetta@Home 178995.91
SIMAP 160618.72
GPUGRID 147509.56
ABC@home 100127.36
NFS@Home 100040.60
yoyo@home 100026.69
Primaboinca 100006.29
POEM@HOME 92152.20
World Community Grid 69407.35
Climateprediction.net Beta 55109.96
QMC@Home 50031.76
Malaria Control 50010.88
Virtual Prairie 50007.56
SETI@Home Beta 49916.07
Cosmology@Home 38400.00
Orbit@Home 29901.52
Magnetism@home 26709.13
Spinhenge@home 25361.00
WEP-M+2 Project 23955.28
RALPH@Home 23869.49
DistributedDataMining 16428.14
WUProp@Home 15255.73
eOn 11254.79
LHC@Home 7851.99
DrugDiscovery@Home 6564.27
Hydrogen@Home 5220.93
uFluids 4079.12
Superlink@Technion 3401.44
RSA Lattice Siever (2.0) 2856.15
The Lattice Project 2839.12
AlmereGrid Boinc Grid 2679.14
CAS@HOME 1658.49
DistrRTgen 1500.00
SZTAKI Desktop Grid 1027.90
IBERCIVIS 742.52
Virus Respiratorio Sincitial 580.82
EDGeS@Home 466.95
Biochemical Library 354.98
sudoku@vtaiwan 24.33
Luxrenderfarm@home 15.38
MindModeling@Home 5.58
Renderfarm.fi 0.19
O co chodzi ze statystykami dla grup w teamie? Można to dowolnie zakładać? Jeśli tak to prosiłbym o dodanie grupy Kołobrzeg, a jako liczydłowych w niej basia, genek, tito. Czy też trzeba założyć tam konto i samemu stworzyć/dołączyć?
Uwagi co do strony:
-lewa strona - nie wiem, czy jest potrzebna ilość punktów z "poprzednia aktualizacja strony" bieżący wynik i ilość punktów z ostatniego dnia chybaby wystarczyły
-nasze liczby pierwsze kolumna odkrywca/potwierdzający - 0 -1 ? Co to ma być?
-statystyki województw, może zamiast sortowania po prostu walnąć dwie tabele? jedna alfabetyczna, druga pod względem ilości zdobytych punktów? / lub wyszczególnić kolorami, lub gwiazdkami 3 pierwsze miejsca / lub wykres województw (ten kołowy) przenieść koło tabeli
Puki co to tyle - proszę bez bicia... XP
Grupy można zakładać samodzielnie, procedura wygląda mniej więcej tak:
1. Zakładamy konto na stronie.
2. Wykonujemy operację "Scal konto", potrzebny jest CPID np z Boincstats lub jakiegoś projektu.
3. Zakładamy grupę, lub zapisujemy się do już istniejącej. Mogę to zrobić ja (grzebiąc w bazie) lub po prostu każdy chętny ;)
W tabeli liczb pierwszych cyfry 0 i 1 oznaczają odpowiednio potwierdzającego i odkrywcę danej liczby. W wolnym czasie zmienię to na opis słowny.
Statystyki województw pod względem graficznym będą dopracowywane, obecnie bardziej się koncentruję (w miarę wolnego czasu) nad dodawaniem nowych statystyk, później zrobimy je bardziej "różnorodne". W zasadzie kwestie takie jak sortowanie, to kwestia przeklejenia takiego samego kodu, z niewielką zmianą zapytania. Trochę klepania i to wszystko.
Statystyki województw umieściłem w artykule tylko w celu poinformowaniu o ich istnieniu i możliwości skopiowania URL'a, po każdej aktualizacji adres jest ten sam, co oznacza, że można go dowolnie wklejać i sam będzie się aktualizować.
Cytat: Szopler w 15 Grudzień 2010, 13:18
Pierwszy mały sukces ;)
SELECT prj.projectname, scr.score
FROM tblscores scr
LEFT JOIN
(SELECT `projectid`,`projectname` FROM tblprojects) prj
on (scr.projectid = prj.projectid)
where scr.date>=DATE_SUB((select max(`Date`) from `tblscores`), interval 0 day) and scr.userid= 9
order by score desc
daje (mam dość starą bazę):
projectname score
DNETC@HOME 25002446.85
MilkyWay@home 15675584.00
Collatz Conjecture 1727732.35
AQUA@home 1001847.39
PrimeGrid 250002.49
RNA World 228376.81
Enigma@Home 213491.08
FreeHAL 200001.30
Rosetta@Home 178995.91
SIMAP 160618.72
GPUGRID 147509.56
ABC@home 100127.36
NFS@Home 100040.60
yoyo@home 100026.69
Primaboinca 100006.29
POEM@HOME 92152.20
World Community Grid 69407.35
Climateprediction.net Beta 55109.96
QMC@Home 50031.76
Malaria Control 50010.88
Virtual Prairie 50007.56
SETI@Home Beta 49916.07
Cosmology@Home 38400.00
Orbit@Home 29901.52
Magnetism@home 26709.13
Spinhenge@home 25361.00
WEP-M+2 Project 23955.28
RALPH@Home 23869.49
DistributedDataMining 16428.14
WUProp@Home 15255.73
eOn 11254.79
LHC@Home 7851.99
DrugDiscovery@Home 6564.27
Hydrogen@Home 5220.93
uFluids 4079.12
Superlink@Technion 3401.44
RSA Lattice Siever (2.0) 2856.15
The Lattice Project 2839.12
AlmereGrid Boinc Grid 2679.14
CAS@HOME 1658.49
DistrRTgen 1500.00
SZTAKI Desktop Grid 1027.90
IBERCIVIS 742.52
Virus Respiratorio Sincitial 580.82
EDGeS@Home 466.95
Biochemical Library 354.98
sudoku@vtaiwan 24.33
Luxrenderfarm@home 15.38
MindModeling@Home 5.58
Renderfarm.fi 0.19
U mnie wywala błędy...
Idzie PW do Ciebie...
Wszystko przez to, że uwzględniłem wielkości znaków - pod micro$hit'em wszystko jedno, a linuch się burzy (i słusznie).
Na szybko:
(http://szopler.dyndns.info/boinc/boinc.php?uname=%5BBOINC@Poland%5D%20Szopler&limit=1)
jak dla mnie BOSKIE!
Dla mnie nie. Za długie, więc z definicji już zablokowałem ten obrazek w podpisie. Ustawienie poziome byłoby lepsze, albo wywalenie projektów poniżej jakiegoś poziomu punktowego.
Że tak powiem to jest faza pre alpha ;) - pierwszy poprawnie działający skrypt.
Pobiera dane z serwera Krzyśka i wyświetla je dla podanej nazwy użytkownika. Można też ustawić od ilu punktów ma wyświetlać...
Może jutro uda się przygotować to na tyle, żeby można było opublikować na serwerze do użytku dla każdego z nas.
no to ja powoli zaczynam szukać czasu na podróże po forach polskich zespołów z informowaniem o naszym serwerze statystyk :arrr:
Cyfron: moze warto byloby w wiadomym miejscu ustalic oficjalna tresc tej informacji :)
Cytat: Szopler w 15 Grudzień 2010, 14:41
Na szybko:
(http://szopler.dyndns.info/boinc.php)
:parrrty: :respect: :parrrty:
Ps. Można prosić o kod?
Jasne - masz PW.
a moze by u nas generowac takowe sygnaturki? np dla całego subteamu "dolnośląskie" :D
bioinfo URL http://140.110.240.195/bioinfo/
ABC@home URL http://abcathome.com/
abcbeta URL http://abctest.math.leidenuniv.nl/abcbeta/
AQUA@home URL http://aqua.dwavesys.com/
RND@home URL http://arcoboinc.unex.es/rnd/
wanless2 URL http://bearnol.is-a-geek.com/wanless2/
proteins@home URL http://biology.polytechnique.fr/proteinsathome/
AlmereGrid Boinc Grid URL http://boinc.almeregrid.nl/
rosetta@home URL http://boinc.bakerlab.org/rosetta/
boincsimap URL http://boinc.bio.wzw.tum.de/boincsimap/
malaria URL http://boinc.cs.uct.ac.za/malaria/
DrugDiscovery URL http://boinc.drugdiscoveryathome.com/
DistrRTgen URL http://boinc.freerainbowtables.com/distrrtgen/
Poem@Home URL http://boinc.fzk.de/poem/
Leiden Classical URL http://boinc.gorlaeus.net/
SHA-1 Collision Search Graz URL http://boinc.iaik.tugraz.at/sha1_coll_search/
picevolvr URL http://boinc.picevolvr.com/
picevolvr URL http://boinc.picevolvr.com/picevolvr/
Collatz Conjecture URL http://boinc.thesonntags.com/collatz/
The Lattice Project URL http://boinc.umiacs.umd.edu/
RSA Lattice Sieving URL http://boinc.unsads.com/rsals/
Biochemical Library URL http://boinc.vanderbilt.edu/bcl/
BCL@Home URL http://boinc.vanderbilt.edu/CSB/
vtu@home URL http://boinc.vgtu.lt/vtuathome/
BURP URL http://burp.renderfarming.net/
QuantumFIRE alpha URL http://cah.tcm.phy.cam.ac.uk/
anansi URL http://canis.csc.ncsu.edu:8005/anansi/
CAS@home URL http://casathome.ihep.ac.cn/
superlinkattechnion URL http://cbl-boinc-server2.cs.technion.ac.il/superlinkattechnion/
Cels@Home Second Test Project URL http://cels-at-home-dev.dyndns.org/test2/
Harvard Clean Energy Project URL http://cleanenergy.harvard.edu/go/
climateprediction.net URL http://climateprediction.net/
CPDN Beta URL http://cpdnbeta.oerc.ox.ac.uk/
test1 URL http://dawn.ynet.sk/test1/
Rectilinear Crossing Number URL http://dist.ist.tugraz.at/cape5/
DNA@Home URL http://dnahome.cs.rpi.edu/dna/
DNETC@HOME URL http://dnetc.net/
Docking URL http://docking.cis.udel.edu/
DynaPing URL http://dynaping.com/
Edges DSP Production URL http://edges-ext-dg.ceta-ciemat.es/DSP/
Red Tecnologica Educativa DG URL http://edges-ext-dg.ceta-ciemat.es/rtedg/
3g Bridge Project URL http://edges-local-devbnc-srv.ceta-ciemat.es/3gbp/
Einstein@Home URL http://einstein.phys.uwm.edu/
eon2 URL http://eon.ices.utexas.edu/eon2/
EON2v1@clusters URL http://eon.raunvis.hi.is/EON2v1/
NFS@Home URL http://escatter11.fullerton.edu/nfs/
DECS URL http://evil.podzone.org/decs/
VRS: Virus Respiratorio Sincitial URL http://falua.cesfelipesegundo.com/VRS/
geneticlife@home URL http://genlife.is-a-geek.org/genlife/
gerasim@home URL http://gerasim.boinc.ru/gerasim/
Goldbach's Conjecture Project URL http://goldbach.pl/
EDGeS@Home URL http://home.edges-grid.eu/home/
Hydrogen@Home URL http://hydrogenathome.org/
vgtu@home URL http://inga.vtu.lt/boincproject/
BOINC alpha test URL http://isaac.ssl.berkeley.edu/alpha/
Magnetism at home URL http://kinetic.dnsalias.org/magnetism/
lhcathome URL http://lhcathome.cern.ch/lhcathome/
Milkyway@home URL http://milkyway.cs.rpi.edu/milkyway/
Milkyway@Home_for_GPU URL http://milkyway.cs.rpi.edu/milkyway_gpu/
MindModeling@Beta URL http://MindModeling.org/beta/
mopac7 URL http://mopac.cadaster.eu/
NQueens@Home Project URL http://nqueens.ing.udec.cl/
orbit@home URL http://orbit.psi.edu/oah/
Pirates@Home URL http://pirates.spy-hill.net/
cplan URL http://project.czechnationalteam.cz/cplan/
QMC@HOME URL http://qah.uni-muenster.de/
Quake-Catcher Network URL http://qcn.stanford.edu/sensor/
ralph@home URL http://ralph.bakerlab.org/
ibercivis URL http://registro.ibercivis.es/
Satisfaction @ Home URL http://sat.math.umu.se/sat/
AlmereGrid TestGrid - Boinc URL http://server1.almeregrid.nl/testgrid/
SETI@home URL http://setiathome.berkeley.edu/
SETI@home Beta Test URL http://setiweb.ssl.berkeley.edu/beta/
Spinhenge@home URL http://spin.fh-bielefeld.de/
Silly Pi Calculation URL http://stuff.povaddict.com.ar:8080/boinctest/
sudoku URL http://sudoku.nctu.edu.tw/
SZTAKI Desktop Grid URL http://szdg.lpds.sztaki.hu/szdg/
UH Second Computing URL http://vcsc.cs.uh.edu/second-computing/
Virtual Prairie URL http://vcsc.cs.uh.edu/virtual-prairie/
WUProp@Home URL http://wuprop.boinc-af.org/
APS@Home URL http://www.apsathome.org/
chess960@home alpha URL http://www.chess960athome.org/alpha/
Cosmology@Home URL http://www.cosmologyathome.org/
DistributedDataMining URL http://www.distributeddatamining.org/DistributedDataMining/
Enigma@Home URL http://www.enigmaathome.net/
FreeHAL@home URL http://www.freehal.net/freehal_at_home/
GPUGRID URL http://www.gpugrid.net/
Luxrenderfarm@home URL http://www.luxrenderfarm.de/luxfarm/
malariacontrol.net URL http://www.malariacontrol.net/
primaboinca URL http://www.primaboinca.com/
PrimeGrid URL http://www.primegrid.com/
ramsey URL http://www.ramseyathome.com/ramsey/
yoyo@home URL http://www.rechenkraft.net/yoyo/
Renderfarm.fi URL http://www.renderfarm.fi/
RNA World URL http://www.rnaworld.de/rnaworld/
uFluids URL http://www.ufluids.net/
World Community Grid URL http://www.worldcommunitygrid.org/
Sygnaturki dla pirat-szkodników ;) (wersja alpha-długa) będą dostępne jeszcze dziś :).
Pracuję nad tym...
:parrrty:
:parrrty:
Zalogujcie się na naszym serwerze (http://statystyki.boincatpoland.org) i sprawdźcie czy coś widać...
Hint: prawa strona, dół
w przeglądarce na stronie obcina mi ten obrazek
ogólnie - jestem pod wrażeniem!
w jakim sensie obcina?
Możesz wrzucić screena?
(http://naforum.zapodaj.net/thumbs/d675a971a0ba.jpg) (http://naforum.zapodaj.net/d675a971a0ba.jpg.html)
Serwer ma dziś spore opóźnienie, bo padł ups...
Najbliższe dwa tygodnie będą trudne, bo ja jadę do kraju i nie ma kto w razie potrzeby odpalić serwera, więc nie bijcie jak coś :)
Faktycznie... kwestia rozdzielczości ekranu i skalowania strony.
Powinno być tak:
(http://szopler.dyndns.info/boinc/boinc.php?uname=cyfron&limit=1)
krzyszp - jak tam ten programik dla mnie do statystyk?
Czy już nie jestem potrzebny ? ???
Przepraszam Cyfron, mam wielkie problemy z wyrobieniem się i przez to daję ciała na całej linii... Odezwę się, jak się już ogarnę, ok?
:parrrty:
ja się tylko grzecznie pytam:)
"Miłego" odrabiania się.
(http://szopler.dyndns.info/boinc/boinc.php?uname=mimeq&limit=1)
Troche mi brakuje pkt. %) z tego co widze nie mam w sygnaturce:
SETI (700k)
rosetta (110k)
CPDN (90k)
einstein (47k)
Jakies pomysly ? :P
Z CPDN krzyszp nie może się dobić do plików ze statsami na serwerze, a resztę zaraz sprawdzę...
Twoje UserID = 44 w bazie danych (innych mimeq'ów itp. nie znalazłem) - trzeba by sprawdzić po CPID ;)
Dla tego usera są tylko takie dane:
Enigma@Home 142.16
sudoku@vtaiwan 288.04
Cosmology@Home 420.00
Biochemical Library 483.12
WUProp@Home 786.98
Spinhenge@home 874.77
Malaria Control 1104.79
Orbit@Home 8050.00
World Community Grid 12719.48
POEM@HOME 17680.59
FreeHAL 22173.00
SIMAP 25542.14
NFS@Home 37954.00
yoyo@home 38429.69
RNA World 67643.28
eOn 73367.08
Primaboinca 100659.22
AQUA@home 112324.71
Collatz Conjecture 509647.18
MilkyWay@home 710530.23
DNETC@HOME 1779653.75
PrimeGrid 2271975.11
Sprawdzę więc po CPID... i wynika z tego, że serwer uploaduje dane z projektu (sprawdzałem dla Einsteina) ale z jakiegoś powodu nie ma ich w tabeli wyników... z w miarę świeżą ;) datą (jest 22-12-2010).
Natomiast dla innych projektów jest aktualna data i jest OK.
W ogóle to trzeba popracować nad zapytaniami do bazy i nad tworzeniem samej bazy bo narazie jest delikatnie mówiąc niezła sieczka %)
Hehe, luzik. Zapytalem raczej z ciekawosci, bo nawet zmienilbym na "nasza" zamiast boincstat`owej - podoba mi sie "slaskie" :respect:
Czyli czekam na jakas wersje "finalna" :P
Skrypt sumujący punkty nie "odpalił" :(
Odpalam ręcznie, jutro update dopiero ok. 10 rano i przerwa na dwa dni...
Najlepszego Wam Panie i Panowie :)
wzajemnie i szacun wielki dla cię :D
(http://szopler.dyndns.info/boinc/boinc.php?uname=al_adim&limit=1)(http://boinc.mundayweb.com/one/stats.php?userID=6074&trans=off)
U mnie też co nieco brakuje - ale za to bardzo ładnie wygląda (imho Śląsk i Podbeskidzie :attack:).
Po prawej mam praktycznie wszystko - ale za to wygląda tak se (choć można to tuningować wizualnie)
Festung Breslau
Aleksander Parkitny zgromadził 20'615'494.60 punktów
patyczak zgromadził 9'666'407.47 punktów
apohawk zgromadził 26'578'402.99 punktów
Ta grupa zdobyła: 26'878'688.13 punktów.
??
Aktualizacja w trakcie.
jak tam nasze statsy?
Obecnie statystyki się aktualizują automatycznie pomiędzy 12 i 1 w nocy (mojego czasu).
Jakikolwiek chętny do tworzenia czegokolwiek w PHP na serwer mile widziany :)
wow, nie wiedziałem, ze mamy taki fajny serwis :) już się dopisałem! mam jednak pytanie, tylko mi on tak zamula? nie wiem, dziwnie to jakoś mi działa :/
Cytat: krzyszp w 08 Luty 2011, 14:46Jakikolwiek chętny do tworzenia czegokolwiek w PHP na serwer mile widziany :)
hm..ja coś bym chętnie porobił, bo php za mną chodzi od dawna..a nigdy nie miałem okazji do niego przysiąść żeby się naumieć :-[
tylko z czasem u mnie teraz słabo..więc jak się z robotą ogarnę i będę miał więcej trochę czasu (i umiejętności) to wspomogę jak będzie szansa :)
w międzyczasie mam pomysł (o którym już gdzieś w wątku o nagrodach wspomniałem) że można by zrobić takie "osiągnięcia" jak są często w projektach (WCG, PrimeGrid itp) za wkład punktowy w wynik drużynowy :) i chętnie to podłubię sobie nockami ;)
no i prosze :D a temat był wałkowanych od dawna i jeszcze się znalazła osoba która nawet o tym nie słyszała :D
hm.... a czy dałoby się stworzyć taki wykres z informacją ilu userów danego dnia dołączyło do zespołu?
pozwoliłoby to oceniac skuteczność naszych działań marketingowych.
http://allprojectstats.com/tc0-119693-1000x.png
tu udało mi sie wyciągnąc dane od 6 grudnia ale allprojectstats miał pad bazy i wcześniejszych danych nie ma już :( moze z BOINCstats takie cuś wyciągnąć?
Nie bardzo (przynajmniej ja nie wiem, jak to zrobić dobrze) - problem w tym, że dane nie są konkretne - często występuje problem z CPID, a co za tym idzie, zapytania do bazy zwracają "bzdury"...
Gdyby gdzieś była dostępna baza danych drużyn, userów i ich CPID aktualizowana na bieżąco, to co innego...
po zalogowaniu serwer twierdzi że jestem w subteamie festung breslau ale na sygnaturce pokazuje mi 0 punktów i twierdzi że nie jestem w zadnym województwie ani w żadnym subteamie. wybrałem scalanie z moim CPID i wybrałem drużynę oraz województwo.
poza tym projekty w sekcji "Twoje aktualne projekty" sa wyswietlane jeden po drugim a lepiej by to wygladało jeden pod drugim. Tak samo sekcja "Aktualnie wspierane projekty".
w liście drużyn jak klikam festung breslau to przenosi mnie na stronę http://simple-crm.co.uk/ppb/ czyli właściwie przeładowuje stronę. Może by coś z tym zrobić?
(http://szopler.dyndns.info/boinc/boinc.php?uname=Aleksander%20Parkitny&limit=1)
ale na serwerze mam nazwę użytkownika Troll81 i tak sie loguję.
Cytat: Troll81 w 11 Luty 2011, 16:00w liście drużyn jak klikam festung breslau to przenosi mnie na stronę http://simple-crm.co.uk/ppb/ czyli właściwie przeładowuje stronę. Może by coś z tym zrobić?
Oczywiście - przy zakładaniu drużyny podać jej stronę ;)
Chyba trzeba panel kontrolny do drużyn dorobić :(
(http://allprojectstats.com/usergraph.php?mode=4&projekt=0&team=119693)
czy dałoby rade dorobić takie cus do naszego serwera statsów? Bo ten z allprojectstats generuje tylko dla bardzo krótkiego interwału, a mnie interesowałoby coś o znacznie dłuższej historii....