czwartek, 21 września 2006

Przed Wieniawskim

Dziś postanowiłem się nieco ukulturalnić i skoczyć na jeden z koncertów należących do cyklu "Przed Wieniawskim", będącymi małą wprawką uczestników zakwalifikowanych do konkursu Wieniawskiego, który odbędzie się w dniach 14-29 października. Dziś występowała Marta Pawłowska przy akompaniamencie Joanny Zathey.

Przyznać muszę, że był to mój pierwszy w życiu solowy koncert skrzypcowy, mimo że na skrzypcach grałem już niedługo po tym, jak się nauczyłem czytać. Oficjalną karierę skrzypka zakończyłem praktycznie w siódmej klasie szkoły podstawowej, ale miałem jeszcze sporo czasu i okazji, by sobie pójście na taki koncert zafundować. I co? I ... pstro!

Marty umiejętności techniczne i interpretacyjne faktycznie są imponujące, ale zdziwiło mnie, że nie zrobiły na mnie sporego wrażenia, a takiego się spodziewałem po pierwszym doświadczonym na żywo koncercie. Całą drogę powrotną do Koziegłów mi to po głowie chodziło, ale do żadnego wniosku dojść nie pomogło. Słuchało się bardzo dobrze, repertuar bogaty i ambitny, ale... brakowało mi czegoś. Być może brakowało czegoś, czego jest nieco więcej na koncertach muzyki "okołojazzowej" - luźniejszej atmosfery i większej muzycznej swobody. A może powodował to niedokalafoniowany smyczek czy coś, z czym także miewałem problem - struna wchodząca w irytujące piszczenie przy nie do końca zdecydowanym przejściu na nią (może brak rozgrzania?). ;)

Mimo tego podobało mi się, nawet bardzo i idę we wtorek na następny, tym razem pokaże co potrafi Anna Maria Staśkiewicz przy akompaniamencie Marcina Sikorskiego. Sprawdzę czy moje malkontenckie nastroje znowu wezmą górę nad chęcią skonsumowania dobrego kawałka sztuki.

wtorek, 19 września 2006

Priorytety

Są ludzie, którzy potrafią sobie postawić właściwe priorytety, gdy chodzi o przywiązanie do rzeczy materialnych:

Hi Katie, someone has stolen my car in Bratislava (a beautiful BMW X3)! Thats not the real problem but: My CD "piece by piece" was in the car!!! As I love this CD I say to the thief: Send it back to me, my address you find in the car. And to you Katie: Great musician - stay as you are and keep on making your music

:]

Z księgi gości na oficjalnej stronie mojej ulubionej artystki.

poniedziałek, 4 września 2006

Słodkie ptaszyny w Sopocie

Kto ostatnie dni spędził w jaskini lub go to po prostu nie obchodzi, nie wie, że w sobotę w Operze Leśnej wystąpiła Katie Melua i jakiś tam mało znaczący artysta, bodajże Elton John, nieistotne. ;)

Katie jak zwykle pokazała, że nie jest krótkotrwałą gwiazdką jednego hiciora, gdyż asów w rękawie ma znacznie więcej i część z nich wyciągnęła na koncercie. Średni, ale niesamowicie popularny "Nine Million Bicycles", świetny "Shy Boy", równie znakomity "Spider's Web" (coś dla informatyków ;) ), poruszający "Piece by Piece" i okręt flagowy, główny przyczynek jej oszałamiającego sukcesu - "Closest Thing to Crazy", kokieteryjny "My Aphrodisiac is You", to tylko niektóre z efektów jej i Mike'a Batt'a znakomitej roboty. Odpuściła sobie genialny "Call Off the Search" czy śliczny cover Cure, "Just Like Heaven", uroczy "Thank You, Stars", "Belfast (Penguins and Cats)", "I Cried for You", "Blame It on the Moon", "Crawling up a Hill", tradycyjnie nie zagrała "I Do Believe in Love" (nie grała go od czasu nagrania do albumu - shame on you, Ketevan), (pre)historyczny "Faraway voice" (dzięki niemu praktycznie zaczęła współpracę z Battem) czy własną, bardzo udaną interpretację "Anniversary Song" Evy Cassidy, nie wspominając o uroczym utworku napisanym przez nią przy prasowaniu, "Shirt of the Ghost". Występ zakończyła jednak w dość wybuchowym stylu - "On the Road Again". Nice.

Oczywiście sukces występu to nie tylko jej głos, ale i świetne wsparcie muzyków - szczególnie mnie porwał skrzypek i pianista. Koncercik najwyraźniej bardzo się podobał recenzentom

Piosenkom z jej płyt nie można odmówić uroku, wdzięku i delikatności. Ale słuchając młodziutkiej Gruzinki na żywo, przekonałem się, że realizatorzy studyjnych nagrań nie wyeksponowali jej wszystkich możliwości. Spodziewałem się kruchej i dziewczęcej piosenkarki, a usłyszałem artystkę obdarzoną wielkim i mocnym głosem. [...] Jej atutem są niezwykle udane kompozycje. To wielki talent, który będzie się rozwijać - Rzeczpospolita

W sobotę przed Eltonem wystąpiła zmysłowa Katie Melua, która swoją delikatnością potrafi ukoić nerwicę każdego słuchacza i widza - Gazeta Wyborcza

Ku uciesze fanów, psycholi i zauroczonych i ciekawskich, nagrałem koncert, zakodowałem do XViD z MP3 i udostępniłem przez BitTorrent oraz QuickSharing.

p.s. Czy wspominałem, że lubię jej muzykę? :]

Z persystencją rozterki

Mój frejmłork webowy, zastosowany w pdaclub działa sposób nieco odmienny od MVC, ale gdyby się tam spróbować tej metodyki doszukać, to pewnie by się dało. Nie mam jednak jednego, wspólnego kontrolera frontowego. Różnymi funkcjami frameworka zajmują się różne skrypty, odseparowałem do osobnego katalogu skrypty akcji typu cynk, kontakt, wysyłanie komentarza.

Konsola administracyjna z kolei to nieco inny twór - te kwestie rozwiązuje na swój sposób, chyba bardziej zbliżony do MVC, gdyż wszystkim zajmuje się jeden skrypt, który zależnie od modułu i akcji wywołuje odpowiedzialne za nie skrypty, wykorzystując też podane parametry.

Wszędzie mam przynajmniej dobrą separację logiki od prezentacji, jednak dopiero porządnie jest to wykonane w nowej wersji Content Managera, który zadebiutuje najpierw jako intranet Urzędu Gminy Granowo, później rozbuduję o stronę internetową dla interesantów, która pozwoli załatwiać różnorakie sprawy urzędowe, sprawdzać ich stan, poczytać najnowsze wpisy do BIPu, jak i ponarzekać na gminę na forum.

Otóż kwestia samej prezentacji jest rozwiązana na zasadzie javowych resourców. Mam osobne pliczki językowe, które zawierają klucze i wartości różnych elementów interfejsu użytkownika. W szablonach stron wywołuję je tagami a'la {@zmienna}, gdzie owa zmienna jest wyszukiwana w zasobach i wybierana z pliku odpowiedniego dla aktualnego wybranego w przeglądarce. Jeśli chodzi o kwestię kontrolera i akcji, nadal występują różne skrypty dla różnych stron, jest jeden skrypt zajmujący się wywoływaniem odpowiednich metod modyfikujących informacje w portalu. Ponieważ zazwyczaj takie informacje modyfikuje się przez POST lub GET, zestaw tych klas to form-processors. Każda akcja obsługiwana jest przez osobny skrypcik, rozszerzający podstawową klasę, zawierającą metody odbierania z formularza/urla informacje, których się skrypt spodziewa, oczyszczenia ich z niebezpiecznych treści (XSS), udostępniającą też możliwość stworzenia redirecta http w razie potrzeby (akcja wymaga zalogowania lub wyższych uprawnień). Całość napisana jest w pełni obiektowo, choć muszę jeszcze wszystko dostosować do obiektowości PHP5, gdzie widać już oznaki cywilizacji.

Widok, kontroler – ok. A co z modelem? A tutaj są na razie dwie, właściwie trzy warstwy. Pierwsza to konkretne funkcje obsługi baz danych w PHP. Druga to warstwa abstrakcji - wspólny interfejs dla poszczególnych baz danych. Klasy dają możliwość zabezpieczania zapytań przez stosowne dla danej bazy ocytowywanie (quotowanie ;) ) wartości, dobierają też do zapytań ograniczanych albo LIMIT, albo TOP, zależnie czy to baza ANSI, czy MS. Nie wiem czy jednak pomysłu Microsoftu nie zbojkotować i zupełnie porzucić obsługe SQL Servera. Bo niby jak wygodnie wybrać z bazy dane stronicowane, np. drugie 20 najnowszych newsów? A jeśli chcę 20 od końca wybrać? A jak takie coś dla tabel łączonych zrobić? W MySQL czy od niedawna w PostgreSQL to jest prawie zawsze po prostu tak:

SELECT

 * FROM news ORDER BY date DESC LIMIT 10 OFFSET 10

Aż boję się próbować wymyślić, jak to zrobić w bazach bardziej "czystych", zgodnych z ANSI SQL, szczególnie z joinami. Może ktoś ma pomysły? Brzydactw typu zagnieżdżone SELECTy w zagnieżdżonych SELECTach nie akceptuję. ;)

Trzecia warstwa to coś a'la DAO. Są obiekty reprezentujące odpowiednie tabele w bazie i obiekty zajmujące się manipulacją na bazie za ich pomocą. Obawiałem się tutaj pewnego problemu od początku, ale chciałem sprawdzić, czy może da się to rozwiązać jakoś cywilizowanie. Co z joinami? Co jeśli dane o użytkowniku w systemie mam podzielonego między różne tabele, zawierające różne szczegóły? W jednej te podstawowe, jak login, data rejestracji, hasło, email. W drugiej szczegóły, jak nazwisko, data urodzenia, płeć. W trzeciej dane obywatela, tj. miejsce urodzenia, pesel, adres pocztowy, adres zameldowania stałego, tymczasowego, a w innej tabeli dane pracownika urzędu - biuro, telefon, stanowisko, fotka, wymiary (no, tu się zapędziłem). Do tego tabela z różnego typu własnościami uzytkownika - strona WWW, dodatkowe adresy email, komunikatory, preferencje w portalu, forum, połączona ze słownikiem wiele-do-wielu (można mieć np. kilka komunikatorów). I co teraz? Otóż to.

Postanowiłem zmienić nieco podejście i uczynić dla takiego zestawu tabel jeden obiekt, reprezentujący użytkownika. Zawierałby on dane na temat tabel "uczestniczących", byłby świadomy takich zagadnień jak klucze obce, klucze główne, a pobieranie informacji by polegało na deklarowaniu, które pola zechcę otrzymać i w zależności od tego generowałby odpowiednie zapytanie, razem z tworzeniem joinów i uwzględnianiem istnienia wielokolumnowych kluczy głównych. Do tego dochodziłaby możliwość keszowania słowników w pamięci lub w plikach na dysku, co by pozwoliło nieco zapytania odchudzić w czasie pracy systemu. Taka klasa zawierałaby zatem także informacje, która tabela to słownik, czy ów słownik może być przechowywany w pamięci podręcznej. Zbędne by było sprawdzanie w bazie daty modyfikacji słownika, bo już sama modyfikacja by przechodziła przez klasę. Co na to jury?

Tour de Bornholm - czwartek

Noc spędzona na zapobieganiu dobrania się kreta do naszych zapasów, w drugim namiocie natomiast straszył skarpetkowy potwór. Ale udało się wyspać. Przy śniadaniu dowiedzieliśmy się, że choć obecnie pogoda jest całkiem znośna, to późniejszy rozwój wydarzeń może być już nieciekawy. Postanowiliśmy ruszyć już dziś i dotrzeć do Ronne, gdzie sobie już do soboty przenocujemy, by nie trafić z pełnym oprzyrządowaniem pod strugi deszczu. Musieliśmy załatwić formalności z mało sympatycznym kierownikiem do południa, inaczej by z nas próbował ściągnąć za kolejną dobę.

Ruszyliśmy zatem w najdłuższą jednorazową trasę tych wakacji, a tym samym najciekawszą i choć nie wyczerpującą, to jednak z wielką satysfakcją mijaliśmy tablicę Ronne. Droga nie kryła żadnych niespodzianek, za to wysiłek poświęcany podróży był nam wielokrotnie wynagrodzany przepięknymi pejzażami oraz niezapomnianymi zjazdami. Na niektórych z nich niemal plątały mi się nogi na pedałach, nawet na najwyższym przełożeniu, a do tego potrzeba co najmniej 50km/h. Mniam. Wygięte koło Magdy i zdrowy rozsądek nie pozwalał całej grupie poruszać się z takimi prędkościami, więc w pewnym momencie nieco odstawiłem grupę. Gdy zorientowałem się, że dookoła żywej duszy, przystanąłem na przydrożnym parkingu, który prowadził do "okna" z prześlicznym widokiem na morze i zejściem po skarpie na plażę. Nie chciałem z kolei przegapić przejazdu peletonu, więc cupnąłem tylko na ławeczce, czerpiąc łyka wody. Po chwili już byłem gotów do dalszej jazdy, a tutaj wciąż współpodróżników nie ma! Po paru minutach zaczęli się jednak powoli pojawiać. Okazało się że zrobili postój z kilometr ode mnie. Wszystko wróciło do normy, pełną, silną grupą zmierzaliśmy do celu, odległego już tylko 8 kilometrów. Po drodze prześcignęła nas polska grupa rowerzystów-wyczynowców. Tomek podczepił się pod peleton i sunął z nimi kolejne parę kilometrów. Ostatni z ich grupy spoglądał raz po raz niepewnie za siebie, nie mogąc się najpewniej nadziwić, jak ich tempo może utrzymać facet na góralu z 25-kilogramową przyczepką.

Niedługo potem pojawiła się już dość znajoma granica Ronne. Miałem ochotę zsiąść z roweru i ucałować tabliczkę. Zatrzymaliśmy się oczywiście przypadkiem w pobliskim Netto na małych zakupach. Wkrótce jednak zebraliśmy się w sobie by dotrzeć już do znanego z minionego weekendu noclegu. Chwila odpoczynku, rozbicie namiotów i ... dłuższa chwila odpoczynku. ;) Niektórym się jeszcze chciało przejechać na plażę, która się okazała być całkiem niedaleko pola. Pojedliśmy, myju myju, ja i Tomek walnęliśmy się na ławkach oglądając wreszcie w większości czyste niebo, przysypiając od czasu do czasu. Udało się dojrzeć kilku spóźnionych uczestników wycieczki zwanej Perseidami, zaobserwować kilka przemykających przez kopułę nieba satelitów. ISS prawdopodobnie tego wieczora nad nami nie przelatywała, ale już nie mieliśmy ochoty tego sprawdzać.

sobota, 2 września 2006

Ktoś kogoś chyba bardzo nie lubił

Albo cały filmik to wkręt wykonany przez "ofiarę", albo to ją nieźle "koledzy" wrobili. :>