EpicWEB.pl

webdesign, programowanie, phat lewt!

Ostatni projekt

ddrpl.com

Ostatnie wiadomości

Pump It Up!

Od paru lat dosyć intensywnie interesuję się grami sportowymi z kraju Kwitnącej Wiśni - a dokładniej chodzi o serię Dance Dance Revolution. Z DDR-em poznałem się ponad 5 lat temu, uruchomiłem jeden z pierwszych w Polsce serwisów poświęconych grom muzycznym, który niestety z braku wolnego czasu oraz zaangażowania padł i teraz wisi jako Zombie.

Po pierwszej fascynacji DDR-em przyszedł czas na inne gry tj. Dance ManiaX (kracz musi machać rękoma tak by przecinać wiązkę laserów nad / pod dwoma czujnikami w rytm muzyki), trochę Para Para Paradise (podobnie, ale 5 czujników rozłożonych na ziemi) - tu nawet mam kontroler dla PS2 przywieziony z Japonii.

DDR jak wspaniały by nie był jednak od paru lat nie jest praktycznie rozwijany. Jasne, są kawałki tworzone przez fanów, ale to nie to samo. Alternatywą - w moim mniemaniu dużo lepszą - jest Pump It Up! któremu to poświęcam ten wpis.

Pump It Up NX

W PiU celem gracza jest uderzanie za pomocą nóg i/lub rąk w odpowiednie panele na ziemi - w który panel należy uderzyć sygnalizują nam strzałki sunące w górę po ekranie - kiedy strzałka wejdzie w pasujący jej obrys należy przycisnąć odpowiedni klawisz. W zależności od tego jak dokładnie celujemy otrzymujemy lub tracimy kawałek "paska życia" - jeżeli nie idzie nam najlepiej - Game Over i Try Again!

Automat do PIU

Sama idea dla niektórych może wydawać się prosta, ale uwierzcie mi - dużo osób tak myśli i na początek wybiera kawałki w których nie jest w stanie za strzałkami nadążyć oczyma. Jeżeli mimo wszystko uważasz, że wymiatał byś na takim automacie przejdź do końca notki i obejrzyj filmy ;-)

Poza oczywistym faktem czerpania radości z gry, rozrywki pokroju PiU mają też niewątpliwie pozytywny wpływ na kondycję. W Łodzi mamy do dyspozycji dwa automaty - jednym z nich jest Pump It Up! NX w Jazda Park (kino Silver Screen) - automat po każdej rozgrywce pokazuje ile tlenu wdychaliśmy i ile spaliliśmy kalorii. Średnio piosenki które gram z żoną mają po 18-20 kcal więc po serii 4 jest ~80. A po 5 seriach jest to już ~400kcal. Po co chodzić na siłownię? :D

Słowo przestrogi dla tych, którzy chcieli by zacząć - nie zrażać się. Nie zrażać się, że nie idzie, nie zrażać się, że innym idzie lepiej (to niestety częsty problem - nie jednokrotnie w Silverze parę osób chciało wejść, ale widząc grupę ludzi wywijającą na wyższych poziomach traciła zapał). A kiedy już załapiecie o co chodzi - przynoście ręczniki - pot leje się z człowieka strumieniami. Ostatnio zainwestowaliśmy w koszulki termoaktywne i frotki na ręce / głowę i jest lepiej ;-)

Jeżeli ktoś z Łodzi chciałby spróbować sił, dajcie znać - jesteśmy na PiU w Silverze praktycznie co drugi dzień w okolicach 18:00 - będziemy na pewno we wtorek, czwartek i może sobotę. A potem jedziemy do Łeby. Tak, w Łebie są automaty do PiU i Dance ManiaX. Tak, to był główny powód ;-)

No i na koniec obiecany filmik. I nie, nie tylko dziewczyny na tym tańczą ;-)

Backup serwera, restore serwera VPS z poziomu Virtuozzo Power Panels.

Na wypadek gdyby ktoś miał konto na www.hosteurope.de lub u ich resellerów (np. hosting w eHost.pl.

Traf chciał, że przypadkiem skasowałem, zamiast przesunąć ważny folder - mały, bo mały, 300mb z 15gb serwera. Po pierwszych sekundach paniki przyszło opamiętanie - mam backup! Backup z przed 10 dni, akurat nic nie było zmieniane!

Niestety, backup zrobiłem z poziomu Virtuozzo i jak się okazuje, jest to obraz dysku. Po konsultacji z eHost, dowiedziałem się, że uprzejmi panowie z Niemiec jasne, że są w stanie odzyskać ten jeden folder za mnie. Za jedyne 25EUR za każde rozpoczęte 15 min pracy.

Zostaje jeszcze druga opcja - backup z teraz, restore starej kopii, zgranie plików, restore nowej kopii. Zgadnijcie, którą opcję wybrałem. Podpowiedzią może być godzina dodania notki ;-)

Małe podsumowanie:

  • zrobienie backupu 15gb - 1:20h
  • restore starego backupu - 1:13h
  • zgranie plików - 0:15h
  • restore nowego backupu - 1:13h

Czyli jestem jakieś4 godziny w plecy, ale jeżeli panowie w Niemczech mieli by to robić, to zakładam, że zajęło by to im z 2 godziny, czyli 200EUR. Odeśpię kiedy indziej ;-)

Notka nie ku przestrodze (F6! F6! To zawsze jest F6 w mc, nie F8!) i dla potomnych, bo niestety Virtuozzo nie ma informacji ile jeszcze zajmie operacja, a Google nie pomogło. Uwaga - podczas restore w panelu będzie pokazana zajętość dysku - skacze od 0% do 10% (1% co ~10 minut) a potem już skacze na tyle, ile de-facto zajmuje i trzeba ponownie uruchomić VPS!

Kolorowe przekreślenie - text-decoration: line-through

Po raz kolejny w pracy padło ciekawe pytanie - czy da się zrobić tak, by kolor przekreślenia tekstu był inny niż sam tekst - była to cena w sklepie i tak lepiej wyglądało grafikowi. Dać się da, ale jeden haczyk - wszystko powinno dać się edytować za pomocą edytora WYSIWYG i klient nie ma nigdzie widzieć HTML. Oczywiście im mniej roboty dla Java Script / preg_replace tym lepiej.

Pierwszy pomysł jaki przyszedł mi do głowy ("Podejście 2") to zmniejszenie wysokości kontenera tekstu i zastosowanie overflow: visible. Oczywiście, o ile problem rozwiązany w 5 sekund w Firefox i innych nowych przeglądarkach, o tyle w Internet Explorer 6 dalej nic. Postanowiłem pójść dalej tym tropem - kilka expression w CSS później i rozwiązanie działa też w IE6. Niestety - poza zwiększeniem wykorzystania CPU przez przeglądarkę - ma też inne błędy (opisane w przykładach).

Kolejne rozwiązanie ("Podejście 1") - mogło by wydawać się oczywiste - to osadzenie w tagu <del> dodatkowego <span>, nadanie odpowiednich kolorów odpowiednim znacznikom i gotowe. Niestety, jak już wspomniałem, klient nie będzie oglądał HTML a jedynie wprowadzał go poprzez FCK Editor - więc zostaje albo JS (który można wyłączyć) albo przepisywanie HTML przed wyświetleniem (a wtedy w czasie edycji nie będzie widać przekreślenia).

W ten sposób doszliśmy do kolejnego podejścia ("Podejście 3") - tym razem satysfakcjonującego moje potrzeby - mały GIF w tle. Proste? Można jeszcze prościej - zamiast GIFa w tle dajmy obrazek 1 pixelowy w CSS za pomocą zapisu data (ok, ok - nie działa pod IE6 więc zastajemy przy GIFie ;-))

Tok myślenia oraz ostateczne rozwiązanie można podejrzeć tutaj. Starałem się sprawdzić pod wszystkim co mam pod ręką (IE6, IE8, FF3, Opera 9, Chrome 2 i Safari 4) i wygląda, że działa poprawnie. Czego to Ci graficy nie wymyślą ;-)

cValidate 1.1 - sprawdzanie formularzy za pomocą Java Script

Kilka lat temu z potrzeby chwili napisałem skrypt do sprawdzania formularzy HTML za pomocą JavaScript przed ich wysłaniem - miał on z założenia być prosty i służyć do weryfikowania formularzy kontaktowych, składających się głównie z pól tekstowych tj. "imię i nazwisko", "adres e-mail" oraz "treść wiadomości".

Z czasem skrypt ewoluował, został dodany do firmowego CMSu i zaczął być szerzej używany. Postanowiłem nieco odświeżyć kod - wzbogacić go o parę opcji i przerobić na obiektowy. W ten sposób vForm przekształcił się w cValidate i dorobił numerka 1.1

Sam skrypt można zobaczyć w akcji i przetestować on-line. Będę wdzięczny za uwagi, jeżeli komuś coś nie działa lub działa nie poprawnie.

Instalacja skryptu jest banalnie prosta - wystarczy dołączyć do strony bibliotekę, do pól, które chcemy sprawdzić dodać odpowiednie klasy (więcej na ten temat na stronie demonstracyjnej oraz w samym źródle skryptu) i przed wysłaniem formularza wywołać metodę cValidate.validate(obj) (gdzie obj to Obiekt formularza do sprawdzenia).

P.S. Proszę wziąć pod uwagę, że nie ma to być rozbudowany skrypt opierający się na rozbudowanych bibliotekach pokroju jQuery czy MooTools więc jego możliwości są ograniczone - przypominam, że ma służyć on raczej do weryfikacji prostych formularzy kontaktowych oraz być łatwy i szybki do implementacji.