Praca, dom, praca, dom, praca, piwo, rów obok domu
Swoja wiadomosc zaczne od tego, ze zaczalem prace w swoim zawodzie, od dwoch tygodni pracuje jako inzynier przygotowania produkcji w firmie pod nazwa VOSS Automotive.
Niestety, do tej pory nie mialem zbyt wiele czasu, ale w tym przypadku tego czasu praktycznie nie mam juz wogole. Zostaja weekendy w ktore nadrabiam zycie prywatne i rodzinne. Oczywiscie nie zamierzam calkowicie rzucic wszystko wpizdziec
Ale nie bedzie latwo, zeby dodac jeszcze do pieca to powiem ze oprocz codziennej pracy musze tez napisac prace mgr i ja obronic, wiec mam co robic.
I to na tyle, jak sie zaklimatyzuje w pracy – bede mial wiecej czasu dla siebie i dla serwera jak i dla Otsoftu, mam nadzieje.
jQuery na Otsoftcie i schemat elektryczny ;)
Z raportu Azora wynika, ze wiekszosc userow odwiedzajacych nasz Otsoftowy download nie potrafi znalezc odnosnika do sciagniecia pliku, tym samym spamujac panel admina wiadomosciami ze plik nie istnieje.
Nie wiem jak mozna nie dostrzec tej sporej ikonki, nad ktora widnieje (zazwyczaj) rozmiar pliku do pobrania, ale pal licho, statystyk co do wielkosci wady wzroku uzytkownikow google mi nie zbiera, a szkoda :/
Tak czy siak pomysl z napisem DOWNLOAD bylby troche za prosty
A po co uzytkownikom ulatwiac zycie?
Szperajac po sieci znalazlem ciekawy javascript wykorzystujacy jQuery.
Link -> http://www.gayadesign.com/scripts/sNotify/
Banalnie latwy do zastosowania. Efekt jest widoczny po wejsciu na jakikolwiek link prowadzacy do pliku na otsofcie.
Teraz kwestia czy lud to zobaczy i sie zastosuje.
Kolejna kwestia, ktora dreczyla mnie juz jakis czas – ladowanie strony glownej Otsoftu. Mimo iz strona laduje sie szybko, srednio w 0.086 sekundy, to czasami przez bledy/restart apache lub wolne ladowanie sie multimediow (grafika, flv) zabiera to troche wiecej czasu a na ekranie mozna zobaczyc kolejne etapy lamania sie layoutu, przechodzenie przez kolejne divy, rozciaganie i inne akcje ktore psuja ogolne wrazenie.
Rozwiazaniem byl preloader, skrypt ktory zaladuje cala zawartosc strony zanim ja wyswietli i znow pomocne zdalo sie byc jQuery.
Caly algorytm wyglada tak:
- Zaladowanie diva preloadera (minimalistycznie: czarne tlo, maly progress bar, tekst)
- Div “przykrywa” soba caly lay strony do czasu az zostanie zaladowany ostatni tag html.
- Nastepuje zwolnienie blokady
i jQuery usuwa div preloadera.
To co ujrzycie przed wyswietleniem sie strony wyglada tak:
Postanowilem to wykorzystac tylko i wylacznie dla strony glownej, podstrony beda sie ladowac tak jak poprzednio.
jQuery znalazlo tez zastosowanie na Akademickim, od teraz moge sobie podgladac to co sie dzieje w konsoli na biezaco przez strone z auto odswiezaniem co 3 sekundy, fajny bajer jak komus sie nie siedziec na ssh
Linka z oczywistych wzgledow nie podam
A na koniec cos z zycia domowego ;D Coby nie bylo ze gnije przed kompem 24h (kogo ty chce oszukac?
).
A wiec postanowilem zrobic mojemu tacie dokumentacje techniczna pieca opalowego, ktory ostatnio podlaczylismy – jak wiadomo gaz tani nie jest, a mysl o tym ze na drugim koncu europy siedzi taki Sasza z Miszą i sobie kreca kurkami, pala w piecu bankotami 100 dolarowymi i smieja sie z Polaczkow jakos nas nie cieszy, wiec czas byl zadzialac.
Piecor smiga az milo, dodatkowo pelna automatyka domowej roboty na zasadzie przekaznikow i czujnikow temperatury, a co!
Jakby ktos byl zainteresowany rozwiazaniem jak polaczyc ze soba piec gazowy i opalowy (plus wymiennik ciepla) to zapraszam do zajrzenia do tego schemaciku: LINK
Z tego miejsca poklony dla mojego taty projektanta i wykonawcy projektu.
Ok, dzien uwazam za bardoz udany, czas spac, salute!
Ja vs Sesja (9:0)
Dziewiata juz sesja na tej uczelni zakonczona! Tym razem obylo sie bez wiekszych hockow-klockow jak to zazwyczaj bywa.

W nagrode za ukonczenie sesji poprawilem formularz szukajki na otsoftcie i dodalem mala popierdolke z jquery coby milej ogladalo sie ilosc gosci online w serwisie
Jak ktos ma ochote niech sobie spojrzy.
Na forum jeszcze nie wracam, nie mam zamiaru sobie psuc humoru ;p Fajnie ze Azor dodal kilka nowych plikow do downloadu, ruch na stronie zawsze cieszy. Czas wrocic do serwera i listy. Do przeczytania.
Dni mijają jak godziny…
Dokładnie tak, a godziny jak minuty. Szczególnie ostatnio, kiedy to chciałem zapiąć update na serwerze na ostatni guzik.
Do kontroli zrodel stworzylem repozytorium, wiadoma sprawa, latwiej mi bedize cos odkrecic a wszystkie zmiany beda logowane, porzadek przede wszystkim.
Update zaczal sie tym, ze mielismy pomysl na usprawnienie blessow na serwerze. Stary system byl za prosty i powiedzmy sobie szczerze nie nadawal sie na dluzsza mete. Ot gracz majacy kase (tibiowa) szedl do NPC w celu kupienia amuletu, jak juz mial amulet to wlos mu z glowy nie spadal, ani zaden skill, exp czy inny magic level.
Sam pomysl byl juz dawno rzucony, ale z braku czasu, checi i umiejetnosci zostaw gdzies w zakamarkach forum. Ostatnio jednak, majac sporo do czynienia z kodem silnika, postanowilem wziac sie sam do pracy.
Na poczatku wzialem sie za wkurzajacy party system, ktory od 2 lat wywalal ciagle wiadomosc ze ktos dolaczyl do party i tym razem jakos mi to problemu juz nie stwarzalo, problem usuniety. Kolejna rzecz – yellow skulle. Po kilku dniach prob i testow wreszcie udalo sie osiagnac cel, banal.
Kilka dni pozniej zalogowalem sie w celu inwigilacji, co jeszcze moze byc nie tak w obecnych systemach. Na niewidce za graczem podarzajac dostalem hit z exori mas (jeden z lepszych czarow na naszym serwerze, jego zaleta jest to, ze moze laczyc sie w comba). Zdenerwowany tym, ze zostalem zdekonspirowany odpalilem zrodla w poszukiwaniu odpowiedzialnych linijek. Zwykly warunek wystarczyl, dodatkowo jeszcze maly fix zeby nie uderzac w gracza w pz i gra gitara. A dla graczy maly dodatek – liczenie combo z czaru.
Kolejna sprawa, viplista – sa chyba ze 2 funkcje w yurotsie, ktore warunki dodawania siebi lub osoby ktora juz jest na liscie neguja. Ale co z tego skoro nie sa wykorzystane w protocol76. W kadym razie, zrobione. Fajno, przydaloby sie zabrac za bless.
Dzialanie kodu jest banalnie proste. Sa dwie itemki blessowe i 5 leveli blessingu. Jedna itema dodaje +2, druga +1. Gracze PACC maja jeszcze gratis +2 do blessingu.
Prosta niby rzecz, tutaj fromSlot() i toSlot() wykorzystamy, przy logowaniu sprawdzimy czy gracz ma itemki blessowe, przy logoucie odbierzemy mu blessing z PACC, zeby przy relogu mu sie nie dodawalo, wszystko gra i buczy, nowe DIEPERCENTY zdefiniowane, dorzucam do config.lua.
Dziala. Super.
To co by tu jeszcze… a dodam ze jak gracz zalozy amulet to dostanie ladny message – zrobione. Wsio dziala.
Loguje sie kalik do testowania, rzuca amulet na ziemie, ja z ziemi do slota go wrzucam i crash… Co jest, przeciez dzialalo, hmm siedze w players.cpp. Cholera chyba wiem zamiast sendTextMessage zrobie this->sendTextMessage, moze z dwoma playerami ma problem jesli ten drugi tez ma taka itemke na sobie. Dupa to samo.
Godzina, jedna druga no nic chyba to zostawie i zajme sie dopieszczeniem blessa, bo widze ze diepercenty nie dzialaja jak trzeba przy zrzucaniu expa.
W koncu po wielu meczarniach udaje sie zrobic z expem jak i z messege dla graczy.
Ddam jeszcze przy deadzie ile gracz stracil % skilli i mgc levela, bedize ciekawiej, ok zrobione. Dalsze mniej znaczne poprawki, w stylu zjadanie itemek blesowych po smierci, jedna dziala jak aol, druga nie etc. To tam nic.
Przyszedl czas na wrzecenie tego na serwer. Skrypty lua poedytowane, wszystko ma chulac. Robie miliard rzeczy na minute, otwarte okienka nie mieszcza sie juz na pasku start, kompilacja trwa, restarter juz odlicza, pliki sie podmieniaja, za chwile jeszcze tylko backup i ruszamy.
I ruszylismy…
1. Zapomnialem podmienic skompilowana binarke
2. Jak gracz padnie z aolem – zabiera mu bp i czesc eq.
3. Wiadomosc: You were downgroaded, nie pokazuje wlasciwych danych.
4. Gracz z blessingiem na 4 stracil 5 leveli oO.
Ok zamykam serwer, notka na stronie i zaczynam poprawiac. Pierwsza mysl – jak do tego moglo dojsc, przeciez wszystko sprawdzalismy… Ale pol godziny i bedzie gotowe.
Minelo pol godziny, co jest ku***a z ta je***na funkcja getLostExperience()… Zasada jej dzialania jest prosta jak drut – od obecnego stanu experience odejmij obecny stan experience razy ilosc procent straty. Ustawiam zeby zwracalo zero przy pelny blessie. Napierdzielam std::coutami jak dziad wata cukrowa na festynie. Patrze i oczom nie wierze, ustawilem zero, w grze komunikat ze gracz spadl z 500 levelu na 1. W konsoli ujemna wartosc expa – no to jajca jakies.
Dopiero pozniej udalo mi sie ustalic ze to jednak nie w tym miejscu jest blad, tylko w Player::die() oraz Player::preSave(). Wczesniej praktycznie cala funkcje die() zmienilem, na potrzeby blessa i kilku poprawek, jest 3 w nocy a ja widze ze ta funkcja nie dziala wogole tak jak powinna. Meka… umysl juz nie ten sam, ale dzielnie walczyl ze snem – wypalilem przy tym pol paczki fajek, przy kazdej jednej mialem inny sposob na zalatwienie problemu.
Ale jednak o ok 4 nad ranem, blad poprawilem, posprawdzalem, diepercenty dzialaja pieknie, wiadomosc do gracza o downgradzie tez, mimo iz calkiem w innej funkcji tak jak i caly blok kodu zrzucajacy exp.
Noc do tylu, odpalam serwer, usuwam newsa o poprawkach i ide spac…
O 13 sie budze, wpadam na serwer i poprawiam jeszcze pare glitchy, ktore zostawilem w nocy. Reszta dziala jak marzenie. Wolne… W statusie.cpp na sam koniec tej mordegi zamiast wersji serwera ustawiam sobie wersje rewizji w repo. Zeby pamietac. Akurat wyszlo tak ze 100 rewizja zakonczyla wszystkie poprawki. Okragla liczba w sam raz na update.
Przez to uzmyslowilem sobie ile zycie przecieka mi przez palce ostatnio i jak niewiele czasu mam dla siebie i dziewczyny, dodatkowo sesja na studiach zbliza sie nieublaganie.
A wiec na ta chwile zegnam sie czesciowo z aka i otsoftem i biore urlop od neta – czas popchnac zycie i studia do przodu. Oczywiscie bede ale okazjonalnie. Do zobaczenia pod koniec stycznia.
Akademicki 7.6 – czas ruszyć do przodu!
Od razu notka do userow Otsoft.pl:
Bez obaw, nie umiem sie poswiecac na calego tylko jednej rzeczy, wiec nie zaniedbam tego serwisu
Gdybym to potrafil, lista serwerow bylaby juz dawno gotowa
Ok koniec tlumaczenia czas na fakty. A wiec po pierwsze – widok serwera ktory pracuje 16 godzin przy liczbie graczy od 50 – 140 to na prawde mily widok, szczegolnie jesli chodzi o yurotsa, bo to na nim oparty jest Aka (jakby jeszcze ktokolwiek tego nie widzial). W sumie nie moge powiedziec ze wszystkie crashe zostaly wyeliminowane, bo bym lekko sklamal, ale prawdopodobienstwo jego wystapienia zmalalo ogromnie, zeby nie powiedziec ze wlasciwie zostal juz tylko procent lub dwa szansy.
Co nie zmienia faktu ze nadal nad tym pracujemy.
Mysle ze jest to najlepszy prezent dla graczy na Aka jak i dla mnie. Chcialbym podziekowac wszystkim, ktorzy sie do tego przyczynili, a wiec alleluja i do przodu:
- Kiro (za mase pomyslow i poprawek, niestety skrzynka wodki musi poczekac
) - Yurez (za mase propozycji poprawek i kilka linijek kodu)
- Matt (za chec do pracy i dokonfigurowanie firewalla
) - BlizzarDavid (za pomysly, ktore moze kiedys zostana wykorzystane)
- Tajemniczy Pan Z (za ukazanie bledu, wielka pomoc i przyszla wspolprace)
Sobie dziekowac nie musze, wystarczy nieprzespanych nocy, nerwow i siwych wlosow, zeby wiedziec ze to przeprawa nie dla kazdego, ale bylo warto w 100%.
To wszystko spowodowalo ze swieta juz inaczej beda w tym roku wygladaly, a przynajmniej nie zepsuje mi ich wiadomosc ze serwer padl sryliard razy w ciagu tych wolnych dni.
No nic, pozostalo mi zyczyc Wam wszystkim Wesolych Swiat i do zobaczenia na serwerze / Otsofcie. Gud baj.
Lista serwerów – wykresy
Po kilkunastu dniach odpoczynku od listy serwerow, zajalem sie wykresami. Wlasciwie to narazie jednym – ilosci graczy online na serwerze w ciagu doby.
Tak prezentuje sie to w praktyce:

Jak to dziala?
Co godzine skrypt zapisuje ilosc graczy online w bazie, nastepnie generowany jest obiekt flash, ktory wysiwietla wykres na stronie
Dla kazdego serwera beda generowane takie wykresy, dlaczego jest slupkowy a nie punktowy polaczony jak na innych listach? Prawde mowiac – wykres punktowy polaczony linia nie jest poprawny z matematycznego punktu widzenia, gdyz nie wiadomo ile graczy bylo pomiedzy danymi godzinami. A wedlug takiego wykresu mozna to okreslic, co jest oczywiscie bledne, dlatego wybralem wykres slupkowy.
Moze i niepotrzebnie czepiam sie szczegolow, ale przeciez o to wlasnie chodzi
A przy okazji moze jakiemus gimnazjaliscie pomoze to w kartkowce z matmy (w co szczerze watpie
).
Dla kazdego serwera bedzie rowniez wykres kolowy ukazujacy uptime. Dodatkowo kilka wykresow, bedzie dla statystyk listy, ilosc ogolna graczy online zalezna od pory dnia, ilosc serwerow online vs offline, rozklad ilosci serwerow w porownaniu do panstwa itp.
Zastanawiam sie czy dac mozliwosc uzytkownikom wklejenia wykresow do swojego acc makera, ale nad tym pomysle pozniej
edit: Juz przemyslalem
Bedzie mozliwosc dodania wykresu, jako obiekt flash.
Ok, dzisiaj krotki wpis, ide dalej pisac liste, a w tygodniu standardowo, debugujemy akademicki. Pozdrowienia dla Kira i Yureza
Nie mam pomyslu :)
Taaa, nie mam pomyslu na temat, nic sie ciekawego nie wydarzylo, niewiele dzis zdzialalem z lista, ani z innymi rzeczami, ktorymi sie zajmuje, mimo wszystko czuje potrzebe napisania tutaj paru slow, blog przezywa druga mlodosc
W kwestii listy drobne porpawki w bazie danych, udoskonalenia skryptu, ktory pobiera dane z serwerow no i jedna zastanawiajaca mnie rzecz, czy pozwolic uzytkownikowi dodawac swoja nazwe serwera, czy wyswietlac ta pobrana z config.lua?
Z jednej strony nieciekawie wygladaja niektore nazwy, ktore wpisujecie do configa, ale z drugiej zapobiegnie to podszywaniu sie pod nie swoj serwer. Ot prosta sytuacja:
Ktos ma jakis noob serwerek, z expem razy 9miliardow, hostuje go na amidze w piwnicy, rozdaje itemki i kase znajomym, zabija sobie z usmiechem na mordzie szanownych graczy i nagle znajduje taka liste…
Wiec bierze sobie jakis serwer, gdzie gra ponad 400 osob, i dodaje go jako swoj, w nazwie zamieszcza “Moj mega fajny noob serwer” a ip i port jest z serwera calkiem inengo. W opisie zamieszcza link do swojego acc makera i włala.
Teraz przyszla mi na mysl, zeby uzytkownik musial potwierdzc ze to jego serwer, wpisujac mail jako MOTD, w innym wypadku serwer nie zostanie dodany. Z drugiej jednak manki dodatkowy ruch ze strony uzytkownika… No coz pozostaje sie zastanowic.
Jedno jest pewne, jesli ktos doda Twoj serwer, bedziesz mogl go usunac dopisujac specjalna fraze w MOTD, jaka? Tego jeszcze nie obmyslilem, ale bedzie cos prostego
W jakim jeszcze wypadku serwer zostanie usuniety? Oczywiscie podczas naruszenia regulaminu, oraz gdy jego uptime spadnie ponizej 30%.
Wszystkie akcje oczywiscie beda logowane do plikow, tak zeby w kazdej chwili mozna bylo podejrzec kiedy i jaki serwer zostal usuniety i z jakiego powodu.
No to tyle jesli chodzi o liste. Natomiast z akademickim walka jeszcze nie skonczona, oprocz gdb znalazlem inny debugger, dokladnie – Valgrind, ktory moze
pozwoli mi dociec czego jednak dotyczy blad ktory pokazalem w ktoryms tam poscie nizej.
Problem niestety lezy tez w innym aspekcie. Zeby dobrze zdebugowac kod, nalezy usunac flagi optymalizacyjne, a dokladniej zmienic je na -O0, a polaczenie tej i flagi -g czy -ggdb rozklada binarke na kolana :/ Dokladniej opisze to po rozwiazaniu problemu. W kazdym badz razie, w tej chwili moge debugowac tylko z flaga -O1, co przynosi niezbyt wymierne korzysci.
Czasami trace nadzieje, ze cokolwiek mozna poprawic, od 3 lat staram sie wylapywac i poprawiac bledy, jednak im wiecej ich poprawiam, tym wiecej ich znajduje, albo znajduja je osoby trzecie, ktore pozdrawiam za to ze ich nie raportuja
Odbiegajac od tego dziadowskiego kodu cpp – jest dobry pomysl w ekipie otsoftowej, stworzenie bloga newsowego dla swiatka Open Tibia o dumnej nazwie OTpress.
Jednak w tej chwili niewiele moge o tym powiedziec, jeno ze powstaje i tyle
A wiec jak cos bedzie wiadomo i bedzie co pokazac, to wpis zawiscie na blogu.
A tymczasem zegnam sie, na koniec dodaje ciekawa kocia hostorie, dla tych, ktorzy moga przyswoic sobie wiecej tekstu niz tylko 5 linijek ;]
edit: Aaa dodalem kilka nowych bajerow do WP, 3d chmura tagow, ocenianie wpisow i inne pierdoly, ktorych nie pamietam. Jakby tak sie szybko programowalo, jak sie dodaje te wtyczki, to … nie wiem co, ale byloby wysmienicie ;D

