SimpleDB 0.1.3

Maj 22, 2009

Stabilna wersja klasy SimpleDB wydana! Tumturum farara, wiwaty, oklaski, majonez!

Tak jest :) Możecie już ściągnąć wersję SimpleDB 0.1.3, chętnie zobacze jak radzą sobie jakies strony z tą klasą bo aktualnie nie mam czasu dodać jej do Otsoft.pl, chociaż kusi mnie to bardzo.

Oprócz zwykłych funkcji jak query, czy fetch dodałem optymalizację bazy, czyszczenie tabeli z rekordów, przełączanie użytkowników i pare różnych dupereli jak statystyki, przechowywanie składni zapytań etc. Więcej informacji na stronie projektu oraz w folderze z przykładami zastosowania.

Oprócz tego zabrałem się za Advanced Status Checkera, ten pozornie łatwy skrypt nastręczył trochę problemów, tak czy siak można juz na nim działać, jakby ktoś chciał przetestować to zapraszam TUTAJ. Mam nadzieje, że więcej błędów nie uświadczycie.

Właściwie to tyle, a zapomniałem dodać jeszcze że prace nad XML Validatorem zostają wstrzymane na jakiś czas.


SimpleDB – prosta klasa do połączeń z MySQL vol. 2

Maj 8, 2009

Zdecydowałem sie kontynuować prace nad SimpleDB, poszukując prostej klasy w sieci nie natknąłem się na nic ciekawego, oprócz klasy PMC.

Z założenia będzie to bardzo prosta klasa, wykorzystująca podstawowe funkcje mysql, z mozliwością głębokiego debuggowania (na liście TODO :) ). Jak narazie można pobrać wersję beta z Google Code. Na niej można spokojnie już działać bez problemów.

Następny krokiem będzie wykonanie klas dla:

  • PostrgreSQL
  • SQLite

Jeśli ktokolwiek chciałby dołączyć do projektu – czekam na maile: pavlus@otsoft.pl.


SimpleDB – prosta klasa do połączeń z MySQL

Maj 1, 2009

Patrze na zegarek w pokoju – 6:45, czas na dedyku 00:56, czas na kompie 01:57 i badz tu madry xD.

Ale nie o tym chciałem, leń mnie dopadł i jak to zwykle bywa robie wszystkie rzeczy dookoła byleby tylko nie robić tego co kazano, albo tego co trzeba ;] Dość popularne zjawisko u mnie ostatnio – trzeba się uczyć – sprzątam w szufladach, segrguje płyty i robie porządki na dysku :) Nie inaczej było dzisiaj. Fakt wziąłem się do roboty po południu, ale leń mnie przechytrzył i szybko wróciłem do zajęć które bardziej mnie interesują.

Zawsze myślałem o napisaniu dobrej klasy do połączeń z MySQL, dzisiaj zabrałem się do pisania i w 2 godziny wyszło coś, co nazwałem SimpleDB – no bo jak można inaczej nazwać klasę, która nic nowego nie wprowadza, zwykłe query, fetche i inne pierdy w bardzo prostej formie. Mimo wszystko ta klasa zawiera to co ma zawierać, raczej niczego w niej nie brakuje a na pewno jest wystarczająca dla początkującego programisty.

W wolnym czasie chętnie ją rozbuduję, chociaż i tak pewnie nikt nie będzie jej używał oprócz mnie ;)

W razie jakby ktoś jednak chciał potestować to tutaj jest LINK całe 2,6 KB :)

Przykład wykorzystania included.


Otsoft.pl (1.4) i PVP Challange

Kwiecień 14, 2009

Otsoft.pl po raz kolejny został updatowany. Wersja 1.4 nie jest przełomowa, ale wprowadza dodatkowe opcje serwisu oraz usprawnia pracę redaktorów i moją :)

Główne zmiany:

Status Checker – to już tradycja, że serwisy o Open Tibia dodają go do swojego contentu, nie inaczej jest na Otsofcie, pozwoliłem sobie jednak na dodanie przedrostka “Advanced” przed nazwą tego tworu, dlaczego? Ano dlatego że zwykły Status Checker sprawdzał tylko czy serwer jest online czy offline, nasz sprawdza:

  • liczbę graczy
  • nazwę serwera
  • lokalizację
  • uptime
  • założyciela serwera
  • URL serwera
  • liczbę mobów
  • MOTD

No dobra przesadziłem troche z tym advanced ;) Nic szczególnego w sumie, ale dobre podwaliny na liste są ;)

Hall Of Fame – pomysł ciekawy i warty rozwinięcia, na tą chwilę po prostu dane wyciągnięte z bazy, np liczba nieprzeczytanych pmek, albo czas spędzony na forum :) Czasami z nudów – można przejrzeć.

OTW - komentować raczej nie trzeba (?)

Raporty downloadu – do tej pory baardzo niużyteczne narzędzie, a to dlatego że wystarczyło kliknąć, żeby informacja o raporcie dostała się do bazy i tym sposobem boty od Googla, Yahoo czy nawet spam boty znajodowały sobie pole do popisu. A sprawdzanie tych raportów w panelu mijało się z celem.

Pewnie się spytacie czemu nie zastosowałem filtrowania ip botów, bo przecież są wszystkim znane, albo nawet prostszego zabiegu: <a rel=”no follow” .  Pierwszy sposób byłby dobry, ale nie zatrzymałby spam-botów, drugi natomiast sprawdzał się tylko dla botów Googla, reszta pustych robocików nie robiła sobie z tego wpisu nic, dziwne ale sprawdzone.

Najłatwiejsze rozwiązanie – dodać pole tekstowe w którym użytkownik będzie musiał wpisać uzasadnienie raportu a przy okazji można będzie się dowiedzieć w panelu, dlaczego jegomość kliknął: Raportuj. Boty indeksujące nie mają mozliwośći wypełniania form, natomiast spam boty tak :) Ale dodatkowe filtrowanie mam nadzieje nie przepuści już żadnego, albo chociaż większej ich ilości – jakoś nie mam zamiaru co chwila wrzucać captche i inny gówna nad którymi przeciętny internuta spędza mnóstwo czasu…

Parę słówn na temat PVP Challange, otóż nigdy w życiu nie miałem podobnej sytuacji, nie wychodziło mi dosłownie nic co chciałem zrobić – kompilacja serwera (umierała na ./configure), połączenie z bazą (z niewiadomych powodów nie dochodziło do sukcesu).

Co się okazało, jeśli chodzi o kompilację zawiniły biblioteki, a wspomogliśmy sobie updatem Debiana z Etch na Lenny, dodatkowo zaciągneliśmy libasio-dev i poszło.

Z połączeniem z bazą – brakowało extension PDO dla MySQL – dobrze że wrzasq ładnie komentuje swojego pota, bo ciężko byłoby dojść po samym kodzie do tego. A i phpinfo(); zyskało w moich oczach niezmiernie :) Po instalacji PDO, wsio zaczęło działać, no może niekoniecznie od razu, ale działa :>

ALE

Na Lenny nie chciał się kompilować Akademicki :D Na szczęście rozwiązanie wpadło mi szybko do głowy i w kilkanaście minut serwer pod 7.6 kompilował się jak dawniej. Wystarczyło użyc starszej wersji gcc do kompilacji, a mianowicie 4.1.

Wpis do Makefile: (dla potomnych ;D)

export CC=/usr/bin/gcc-4.1

Do usłyszenia.


XML Validator i Open Tibia Wiki

Marzec 29, 2009

(Ledwo żyje, ale w końcu napisać coś trzeba ;) )

Po sezonie ogórkowym czas było wziąć się do roboty, długiei żmudne prace nad Wiki opłaciły się i w końcu udało się doprowadzić most Vbulletin – Mediawiki do końca. Potem już było z górki, skin z forum dało się dość ładnie przekształcić i wrzucić do wiki a liczba edycji w wikipedii każdego usera widoczna pod avatarem to już pestka.

Dodałem też BBCode [wiki] fraza [/wiki] do forum, kierujący użytkownika do danej frazy w wikipedii, a to dzięki pomysłom załogi z Otsoft.pl, jeśli chodzi o to to są w tym niezrównani (masa pomysłow)

Jedyna rzecz jaka leży mi na sercu to domena, bo http://forum.otsoft.pl/w/ jakoś do mnie nie przemawia, ale to może jeszcze poczekać.

W każdym razie zapraszam wszystkich do edycji: Open Tibia Wiki

Druga rzecz, która dzisiaj ujrzała światło dzienne to XML Validator, zapowiadany przeze mnie od dawna. Przypomne ogólną zasadę działania tego skryptu, otóż założenie jest takie żeby skrypt wychwycił błędy w składni XML dla plików players i accounts, nie od dziś wiadomo że te błędy powodują crash silnika, albo chociaż debugi postaci, czy wszystkich dookoła.

Poza składnią, atrybuty też są brane pod uwagę, często zdarza się że skrypt acc jest dziurawy, albo w wyniku ataku ktoś kombinuje przy plikach postaci, najczęstszym symptomem są zmienione atrybuty sex oraz vocation, YurOTS nie radzi sobie z tym całkowicie (akademicki ma stosowną łatkę).

No więc o czym to ja….a no i Validator bada sobie atrybuty, sprawdza ilość dni premmium, looktype, pass, experience i jeśli napotka na nietypową wartość wyrzuca ją w raporcie, na przykład zamiast liczby jest string, albo liczba jest mniejsza od zera.

Przykładowy raport:

Raport

Na tą chwilę Validator usuwa (jeśli pozwolimy mu na to w configu):

  • pliki z błędem składni
  • pliki account bez postaci
  • pliki postaci bez odpowiedników w postaci pliku account
  • pliki account, których liczba cyfr przekracza ustawioną przez nasz stałą (np. 6)

Validator posiada też możliwość poprawiania błędnych wpisów, w tej chwili jest to tylko:

  • premDays (jeśli liczba przekracza ustawiony przez nas limit)
  • account type (standardowo zmieniane na “1″)

Poza tymi funkcjami możemy ustalić w jaki sposó Validator ma nam pokazać wynik, są 3 mozliwości:

  1. Wyświetlanie wyniku w przeglądarce + raport generowany do pliku .html
  2. Wyświetlanie wyniku tylko w preglądarce
  3. Tylko eksport do .html

Ostatnia opcja jest dobra, gdy zechcemy używać regularnie Validatora, tak jak jest on używany na Akademickim, czyli dodajemy wpis do crona, aby Validator o 3 nad ranem sprawdził konta, po czym wygenerował raport do pliku, nastepnego dnia budzimy się i przeglądamy co jest nie tak :) i ewentualnie ręcznie poprawiamy błędy.

Skrypt był testowany na Akademickim z $unlink = 1; oraz $change =1; i wszystko działa jak należy, trzeba jdnak pamiętać, że jeśli chcesz używać unlinka, musisz mieć mozliwość zmiany chmodów z poziomu php, chyba że masz wszystkie katalogi z chmodem 777 ;)

Aha, radze nie kombinować przy pliku validation.php jeśli nie znasz chociażby podstaw php, to może się skończyć baaardzo źle :)

Nie zostało mi nic innego jak podać link do downloadu:

Open Tibia XML Validator

Żegnam :>


Open Tibia Server XML Validator

Styczeń 16, 2009

Witam w nowym roku ;) Jako że czasu wolnego ubywa, zbliżają się terminy oddania projektów, sesja zbliża się wielkimi krokami to i już jakiś czas nie pisałem tutaj.

Do końca stycznia muszę uporać się z problemami na akademickim i dla niego też, specjalnie piszę Validatora XML, uwierzcie mi że wiele problemów w grze, debugi oraz crashe są wywołane błędami w składni albo atrybutach plików xml.

Dlatego też postanowiłem napisać mały aplet w php sprawdzający możliwe problemy. Narazie skrypt jest w wersji 0.0.4, jest to niestabilna wersja, połowicznie przygotowana do obsługi przez innych użytkowników, bo zamierzam opublikować ten kawałek kodu mimo że wiele ludzi już nie pamięta o XML, to niektórym może się to przydać.

Jak narazie aplet wyszukuje i wyświetla błędy i ich nie poprawia, zawsze pewniej jest samemu to zrobić, szczególnie że błędy w składni właśnie w takich sytuacjach powstają. Poza tymi prostymi funkcjami, aplt będzie miał dodatkowe możliwości. Wspierany przez bibliotekę jQuery powinien być bardziej przyjazny dla oka.

Następna wiadomość: otworzyłem repozytorium svn dla nowego projektu serwera Eternal World, oraz wykupiłem dlań domenę, jaka? Chyba łatwo się domyśleć.

Przydałoby się wrócić do oceny portali o Open Tibia, bo jak widać większość z nich albo się sprzedało ;) albo zapomniało o swoim istnieniu. Więc jak tylko znajdę wolny czas (taaa, jak ch*j…) to napiszę coś ciekawego.

Hej.


Otsoft 1.3

Grudzień 20, 2008

Ok, jednak zabrałem się do roboty, ale niestety nie udało mi się osiągnąć tego co zamierzałem, a to z powodu innych mniejszych niedoróbek, które pozostawiłem sobie podczas pisania panelu i kilku innych skryptów.

Więc w wersji 1.3 nie zauważycie żadnych większych zmian, większość z nich to optymalizacja i porządkowanie kodu + zautomatyzowanie niektórych akcji na stronie i w panelu, między innymi włączanie i wyłączanie strony z panelu.

Nadchodzą święta, więc do końca tego roku raczej żadnych aktualizacji nie będzie, szczególnie, że Akademicki też potrzebuje trochę pracy :)

Yup, to tyle – baj.


Wolne i grupa reanimacyjna.

Grudzień 19, 2008

Od środy mogę czuć się jak na feriach, w końcu wolne. Dwa tygodnie totalnej laby bez sprawozdań, kół i obrzyganych kibli w akademiku :)

Jak zawsze, jeśli mam tyle czasu w moich myślach kłębi się wiele pomysłów dotyczących Akademickiego i Otsoftu.

Jeśli chodiz o ten pierwszy to powołana została grupa reanimacyjna w składzie:

  • Elmo
  • Kalik
  • Last Esper
  • My fuckin self

Jakie są nasze zadania? W największym skrócie – pozbawanie ostatecznych błędów w serwerze, które mogą być określone jako krytyczne i trudn w wyeliminowaniu :) aczkolwiek nie niemożliwe do usunięcia o czym przekonają się gracze już niebawem, a dokładnie w nowy rok. W większości będą to poprawki do gry, ale nie zabraknie też nowych funkcji.

Więcej opowiem już w 2009.

Jeśli chodzi o Otsoft, a właściwie o skrypt strony głównej, to wersja 1.3 powinna przynieść pooprawiony system raportowania błędów w downloadzie + informacje o tym w panelu.

Sam panel też musi zostać zmieniony, niektóre funkcję są nadal nieaktywne, inne po prostu nie napisane mimo że mają swoje odzwierciedlenie w bazie ;]

O serwerze Otsoftu mam nadzieję że pisałem ;) Prawdę mowiąc wszystko zacznie się kręcić jeśli wyjdie stabilna wersja TFS 0.3, do której jeszcze trochę. Wtedy bierzemy się wszyscy ostro do roboty, acc maker można będzie bez problemu skończyć, najciężej będzie z mapą i skryptami. Jak wiadomo najbardizej pracochłone zajęcie.

Ok, dość już gadania. Niebawem święta, tym razem uciekam w góry, a dokładnie do Zawoi, jeśli ktoś nie słyszał -> http://pl.wikipedia.org/wiki/Zawoja

Wyciąg Mosorny Groń już na mnie czeka, to samo z gorącymi źródłami w Słowacji. Mam nadzieje że jeszcze będzie net, byłoby co najmniej wyśmienicie.

Ahoj!


Otsoft 1.2 Chmura tagów

Grudzień 3, 2008

Nareszcie znalazłem trochę czasu zeby zając się skryptem Chmury tagów, który zacząłem pisać już dobrych kilka tygodni temu, jednak nie został dokończony ze względu na problemową strukturę bazy danych :)

Chmurka tagów

Dzisiaj jednak trochę ją przebudowałe, tak aby tagi z newsów jak i z wyszukiwarki trafiały do jednej tabeli a z tamtąd już skrypt sobie dał radę dalej. Po przepuszczeniu wszystkich tagów przez strtolower sporo się wykruszyło jako zdublowane klucze, ale to nie był największy problem, jak zwykłe największym problemem był algorytm przetwarzania danych, tak aby wyświetlane tagi miały osobne wielkości. Nie byłem tutaj zbyt oryginalny, ale system działa bez zarzutów :)

Jedyną rzecza nad która się zastanawiam do tej pory jest to, czy pobierać rekordy z bazy losowo czy np w zależności od ilości wybrań/klinięc? Mimo wszystko raczej zostanę przy losowych – wiadomo że użytkownicy będą klikali w tagi, co tym sammym podniesie ich counter o jeden, więc jeśli chmura by się nei zmieniała, to podane frazy rosłyby w siłe, a przecież trzeba też dać szansę innym prawda? :)

Równocześnie wywaliłem losowe cytaty. Nie cieszył się zbytnią popularnością a i niewiele można było tam napisać, jedyny smród jaki pozostawiłem po sobie to panel admina w którym nadal można zarządzać cytatami i słowa nie ma o konfiguracji chmurki tagów, ale wszystko w swoim czasie.


Zęby w dupie i gówno w potoku

Listopad 26, 2008

Jurek Bożyk – człowiek grający na fortepianie niezwyczajne piosenki :) Jedną z nich jest “Zęby w dupie” która najbardziej zapada w pamięć i którą możecie zobaczyć np. Tutaj:

Poza tą warto posłuchać jeszcze:

-Ballada o rdzawym oku

-Swoleżerowie

-Leć satelita

Wracając do świata otsoftu – ostatnimi czasy nie miałem kiedy zająć się swoim skryptem – dużo pracy przy serwerze, studia itd. Niedawno zacząłem z przerażeniem otwierać kolejne pliki php otsoftu – jaki tam bałagan! Tego chyba niekt nie potrafi sobie wyobrazić :) Co nie znaczy, że skrypt nie został zabezpieczony, bo jak to w kawale:

Programista kładzie przed spaniem dwie szklanki, jedna napełnioną wodą, w razie jakby zachciało mu się pić, drugą pustą w razie gdyby mu sie nie chciało pić :)

I tak właśnie jest najlepiej pisać, myśląc o tym co by było gdyby użytkownik zrobił tak, albo tak.

A wracając do kodu, zostało mi do zoptymalizowania trochę zapytań sql, wiele z nich była pisana na szybko i mogą trochę czasu trwać :]  Dalej idąc muszę wprowadzić jakiś ciekawszy system sesji, bo aktualny nie daje mi zbyt wielu mozliwości, poprawić trochę skrypt edytowania plików w downloadzie i zabrać się za nowe funkcje serwisu, o których narazie nie napisze :)

Ah, zmieniłem lekko wygląd tańcbudy, bardziej estetyczny mi się wydaje, zresztą stary już trochę nudził oczy.

Do przeczytania.