Friday, May 28, 2010

Magiczny Koncert Walt Disnay - uwagi

Właśnie wróciłem z Magicznego Koncertu Walt Disnay, który odbył się w Gdyńskiej Hali. Zabawa była przednia! Na spektakl przyszło znaczne grono rodziców wraz z pociechami, które beztrosko szalały tańcząc i skacząc po płycie Gdyńskiego Ośrodka Sportowego w takt disnayowskiej muzyki.
Tak jak się spodziewałem nie był to zwykły koncert, ale fantastyczne widowisko. Połączono tutaj światło, muzykę i obraz. Efekt był oszałamiający. Byłem pod ogromnym wrażeniem dyrygenta, który fantastycznie nawiązywał kontakt z najtrudniejszą publicznością - dziećmi, oraz dwoma reklamami, które zapoczątkowały spektakl: bajkowej - aby uspokoić dzieci :) i motorycznej aby uspokoić Panów :] (duże dzieci) :]
Widowisko charakteryzowało fantastycznie dobrane zmienne tępo, które nie pozwalało się nudzić nawet najmłodszym.
Osobiście, z szacunku do orkiestry, oraz z tego powodu, że rzadko mam okazję ubrać się elegancko, a tym razem miałem, założyłem garnitur. Panowały generalnie koszule i nieoficjalne marynarki. Tutaj poczułem pewien zgrzyt. Hala Sportowa rzeczywiście nie narzuca swoim stylem jakiegoś wieczorowego wyglądu, z drugiej strony wydarzenie, muzyka - owszem. Ten dysonans dał się odczuć dwojako. Dla mnie - ponieważ nie wiedziałem czy ubrać się pod koncert czy pod miejsce, dla orkiestry tym, że, nie zaczekano nawet aż zejdzie ze sceny - ludzie po prostu zaczęli wychodzić.
Osobiście zrobiłbym dwa koncerty. Hala była świetnym rozwiązaniem dla dzieci, które tańczyły, biegały i skakały radośnie wyrażając całym swoim ciałem radość :) w filharmonii dzieciaki by się wynudziły. Mi osobiście brakowało tej atmosfery uroczystości - więc sam poszedłbym chętniej na koncert do filharmonii. Tak czy owak :] było świetnie i chętnie wybiorę się na ten koncert ponownie :] Może z moimi pociechami? :) Jak Bóg da :]

Thursday, May 27, 2010

Czy ogarniemy HTML5?

Dzisiaj przeglądając webhosting.pl trafiłem na artykuł "HTML5: czy wiecie co mówicie?". Ktoś się zżyma, że HTML 5 oznacza dzisiaj już wszystko a przez to równocześnie nic. Po zajrzeniu na stronę wiki zrozumiałem dlaczego. Wiele znaczników ma podpięte API do JavaScript (np. canvas, audio, video) i tylko w użyciu z tym API potrafią coś więcej, do tego wiele rzeczy wiąże się z DOM. Wszystkie elementy obejmujące JavaScript wchodzą w specyfikacji HTML5 tylko dlatego, że brak wolontariuszy, którzy zajęliby się ich rozwojem w oddzielnym projekcie. HTML5 to jest w rzeczywistości wszystko bo choć poszczególne technologie posiadają własne nazwy wchodzą pod szyldem piątki. Przytaczanie przykładu pracodawcy to po prostu śmiech na sali bo każdy wie, że marketingowcy są gotowi wszystko pokręcić byle by tylko wyjść na nowoczesnych - też mi autorytety. Autor wpisu - Michaela Mullany - ewidentnie pomylił dwóch adresatów: klientów i developerów. Bez odróżnienia tych dwóch grup i tego co dla każdej z nich znaczy HTML5 nie ma sensu w ogóle o nim mówić.
HTML5 obecnie wydaje mi się tak wielki, że jest moim zdaniem technologią do wszystkie. Wierzę, że już nie długo będziemy widzieć specjalistów dziedzinowych HTML5. HTML5 - inżynier wideo, HTML5 - inżynier WebGL, HTML5 - inżynier 2D, HTML 5 - inżynier baz danych itd... Chyba ciężko będzie ogarnąć wszystko na bardzo wysokim poziomie. Będziemy iść ogólnikami, tworzenie stron HTML5 będzie podobne do tych z 4, ale dedykowane aplikacje webowe będą tworzyć już specjaliści w konkretnej dziedzinie.

Tuesday, May 25, 2010

MVC retro

Po powrocie z PHPCon nie mam już wątpliwości. Dla mnie MVC odeszło w zapomnienie. Przygotowana przez mnie prezentacja "Drupal Application Framework - metoda na aplikację sieciową" nie pozostawiła mi żadnych złudzeń - MVC jest dobre, ale moduł wtyczkowy jest genialny. Nigdy więcej standardowej witryny pisanej we frameworku - hook module rulez.
Już jakiś czas temu przeczuwałem, że model w jakim rozwija się wtyczki w Drupalu zrewolucjonizuje mój sposób patrzenia na development w PHP. Nie spodziewałem się jednak, że moje podejście zmieni się aż tak radykalnie. Dzięki "Wprowadzenie do implementacji architektur plug-in w PHP" Damiana Tylczyńskiego utwierdziłem się w przekonaniu, że MVC to za mało, a pisanie we frameworkach jest dobry wyłącznie dla bardzo customowych rozwiązań.
Wszystkim więc z tego miejsca polecam swoją Szkołę Developerów Drupala i zapoznanie się z korzyściami płynącymi z takiego modelu tworzenia oprogramowania!

Sunday, May 16, 2010

Fabric - Pythonowe Capistrano

Wczoraj trafiłem na Fabric - Pythonowy odpowiednik Capistrano. Już czuję, że je polubię :] Zapowiada się naprawdę świetnie! Na znalezisko natknąłem się buszując po Rubo-wych narzędziach do pracy z kodem równocześnie porównując z Jarkiem Zabiłłą Ruby Python. Ruby: Rack, Python: WSGI, Ruby: Sinatra, Python: WerkZeug, Ruby: Rubinius(wyszła wersja 1.0), Python: PyPy, Ruby: Merb(byłem w szoku, że nadal jest rozwijany), Python: Pylons(jest wersja 1.0 beta 1!), Ruby: Capistrano ... Python? Tak jest Fabric!
Narzędzie jest bardzo młode (takiego wrażenie sprawia) i nie trafiłem w nim na żadne opcje związane z konkretnym systemem wersjonowania (jak w Capistrano), ale to nic :) bo może być to kwestią czasu a jeżeli nie to konwencji - wszak można użyć poleceń systemowych :]
Co do kolejności - tutaj było różnie. Rack powstał bo Rubowcy pozazdrościli Pythonowi WSGI, Fabric bo nie było odpowiednika Capistrano w Pythonie. Nie ma to jednak większego znaczenia :) Dobrze, że oba języki programowania dobrze radzą sobie w szerokim spektrum zagadnień i udostępniają wygodne narzędzia :] Ja się cieszę.

Moje życie z Google Chrome

Dzisiaj zainstalowałem na VirtualBox Ubuntu 10.04. Pierwsze po zainstalowaniu Guest Additions było wyszukanie jakiegoś Google Chrome. Na początku trafiłem na wiekowe Chromium w repozytorium. Potem w jakiś komentarzach trafiłem na informację, że można ściągnąć paczuszkę ze strony Google.
Fajnie to zrobili bo dodaje się do systemu repozytorium z którego pobierane są aktualizacje.
Właściwie uświadomiłem sobie, że o ile na codzień pracuję na Windows 7 to Ubuntu było mi potrzebne tylko po to aby zainstalować sobie Google Chrome i to było wszystko co mi do szczęścia było potrzebne. Doświadczenia związane z korzystaniem z Google Chrome są dla mnie tak pozytywne że wręcz chciałbym aby stało się dla mnie podstawowym środowiskiem pracy.
To wygląda tak, jakby Chromium OS było dla mnie idealnym systemem. Ciekawe czy tak rzeczywiście będzie.

Friday, May 14, 2010

Kiedy technologia Microsoftu jest włączana do CSS3

Ile razy czytam o nowych standardach webowych tylko wciąż na mojej twarzy pojawia się grymas gdy zadaję sobie pytanie "Czy to będzie działać w IE" albo "Jak to będzie działać w IE". Dzisiaj trafiłem na chlubny wyjątek, który potwierdza regułę.
Ostatnio jestem na etapie próby skonstruowania czcionki i użycia jej na stronie. Jest taki fajny programik FontForge, któremu można używając opcji import zassać kształty z jakiś plików grafiki wektorowej i sobie z tego zrobić czcionkę. W CSS3 pojawiła się fajna opcja @font-face, która pozwala używać na stronie czcionki, zuplodowanej wcześniej na serwer, czyli każdej :] Fajne szalenie.
Jaki byłem zszokowany, gdy okazało się, że Internet Explorer obsługuje to od wersji 4. Po prostu 110% szoku. To już kolejny raz kiedy doznaję czegoś równie wstrząsającego! Pierwszy raz nie mogłem uwierzyć, że Webforms2 działają w IE6, a w wielu innych przeglądarkach trzeba sobie oszukiwać specjalną biblioteką napisaną w Javascripcie. Po prostu szok.
Jak to więc jest kiedy to technologia, wcześniej zaimplementowana w przeglądarce Microsoftu zostaje włączona do portfolio nowoczesnych przeglądarek? Fajnie :) Miło :) i szalenie sympatycznie, gdy człowiek czuje się tak MIŁO ZASKOCZONY. Wystarczy, że fani darmowych przeglądarek używają ich w najnowszych wersjach i możemy spokojnie bez obaw używać sobie dowolnych czcionek na stronach :] Czad!

NOnsenSQL i zalety MongoDB

W serii wpisów dotyczącej pisanej przeze mnie wyszukiwarki chciałem podzielić się jeszcze swoimi wrażeniami z wyborem silnika baz danych. Realizując projekt tak nietypowy, ciekawy, fajny starałem się uczynić go okazją do poznania nowych ciekawych narzędzi na każdym szczeblu. Jednym z nich był wybór silnika baz danych.
Miałem do skatalogowania bardzo proste informacje. Listę tysiąca czterystu nazw, do każdej przypisany kod numeryczny. Banał. Najpierw przyszedł mi do głowy memcache, ale kiedyś gadałem z kolegą (dzięki Viciu), który opowiedział mi o tym, że istnieje coś tak fajnego jak Redis, który, w porzeciwieństwie do memcache, w którym traci się wszystko jak zamknie się serwer (restart/pad serwera), potrafi przy zamykaniu zrzucić dane do pliku i załadować je przy kolejnym starcie. To było fajne. Do tego pisane przez ludzi pracujących w Ruby więc generalnie :) w tym deseniu, w którym projektowałem aplikacje - jak znalazł. W Redis fajnie się projektuje listy, kolejki, stos, ale nie fajnie się wyszukuje. Można błyskawicznie pobrać wartość przypisaną do jakiegoś klucza, ale nie ma opcji "pobierz wszystkie dane, które zawierają w sobie wyraz Włocławska" no i kiszka. Kolega, do którego dzwoniłem nakierował mnie CauchDB. Jednak i tam nie znalazłem w dokumentacji nic o tego rodzaju zapytaniu do "bazy" (mówię, że nie znalazłem, nie znaczy, że nie ma). Swoją drogą dokumentacja do CauchDB to jakiś koszmar. Dawno nie widziałem czegoś tak ... nieintuicyjnego i .... ehh ... szkoda słów.
Po drodze wpadłem sobie na pomysł - a może B-drzewo. Na temat b-drzew w Redis nic nie znalazłem a to na co trafiłem w ramach narzędzia Tokyo Cabinet było jeszcze cięższe niż dokumentacja CauchDB. Poza tym nie byłem przekonany do b-drzewa w tym przypadku. To byłby bardziej workaround niż dobre rozwiązanie.
Te poszukiwania uświadomiły mi, że chociaż istnieje cały ruch NOSQL, który w niektórych wypowiedziach tak bardzo zdaje się krytykować SQL to nic nie mówi o tym, że "ich" bazy danych możesz zapytać o jedną wartość (albo ich listę), ale nie ma mowy o zapytaniach. Generalnie jak chcesz zrobić coś ala "LIKE %nazwa%" to w bazie danych NOSQL to jest ... niespotykane.
Jarek Zabiełło (wielkie dzięki) pokazał mi w końcu MongoDB (i odradził Sphinxa, który byłby wytaczaniem armaty na muchę). To brakujące ogniwo w tej całej przepaści, które z jednej strony trzyma dane jak CauchDB - w postaci hierarchicznych dokumentów, używa składni JSONowej obiektów i jest fajne :] a z drugiej posiada funkcję find, która może przyjąć wyrażenie regularne, jako parametr do odfiltrowania danych. Ba - posiada nawet indeksy :] Kurcze, to było to. Obiektowo, hierarchiczne, JSONowo, nie SQLowo, ale z możliwością robienia zapytań - miodzio. Biblioteka do Rubego była, podpięcie do sinatry banał - działa super :] Naprawdę!
Generalnie cała ta kampania NOSQL to jest mydlenie oczu bo co innego jak chcesz trzymać dane i nie musisz robić do nich skomplikowanych zapytań - a co innego jak jesteś do tego zmuszony. Jasne. Wiele aplikacji sieciowy jak Digg, który wyświetla "wszystko" albo "nic" może sobie na to spokojnie pozwolić, ale generalnie SQL to nie jest jakieś zło jak niektórzy przedstawiają ruch NOSQL, tylko czasem aplikacja ma taki model użycia danych, że istnieją lepsze rozwiązania niż *SQL. To wszystko :) Tak było z moją wyszukiwarką.
Generalnie było fajnie :] Wsio.