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.
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!
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ą ;-)
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!
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ą ;-)
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.
Witaj na EpicWEB.pl
Witaj. Nazywam się Szczeciński Bartosz, ale częściej posługuję się pseudonimem BTM. Pracuję jako webdeveloper w firmie ARTEVIA. Czasem w łapki wpadnie mi też jakieś zlecenie dla freelancera.
Strona, którą przeglądasz to mój osobisty blog, na którym poruszam tematy związane z tworzeniem stron WWW. Trochę front-end (XHTML, CSS, JavaScript, AS3) oraz wejście od strony kuchni (PHP, MySQL).
Jeżeli żaden zapis nie określa inaczej możesz wykorzystać znalezione tu teksty dla zastosowań zarówno prywatnych jak i komercyjnych. Jedyne o co proszę - wspomnij mnie gdzieś w kodzie i umieść odnośnik do strony, choćby w komentarzu ;-)
Kontakt
Jeżeli masz jakieś pytania dotyczące mojej strony, informacji na niej zawartych albo w jakiejkolwiek innej sprawie - możesz napisać do mnie na adres btm@anfo.pl lub złapać na Jabberze - btm@jabster.pl