Po koncercie…

Dzisiaj wybrałem się z żonką na koncert, na Łzy, w Wiatraku.
Wyszalałem się nieźle. Mimo, że popularny zespół, to zagrali kawał niezłego
rocka. Było super, ale rzeczywiście, troszkę za głośno.

A teraz trochę pomarudzę…

Niestety, żonka się tak dobrze nie bawiła. Właściwie, w ogóle się nie
bawiła, mimo, że tak na to liczyłem… No cóż… wygląda na to, że jestem skazany
na jeżdżenie na koncerty samemu. :-( W sumie prawie zawsze tak było.
Ma to też swoje zalety, ale trochę smutno zawsze jest, szczególnie gdy się
widzi bawiące się razem pary, czy chociaż grupki przyjaciół… Jednak na dobrym
koncercie zwykle przychodzi taki moment, gdy mijają smutki, zostaję tylko ja i muzyka.
I wbrew wszystkiemu znakomicie się bawię… tyle, że koncert zwykle szybko się
kończy… Podobnie było tym razem.

Ale żonka jest kochana. Nawet dzielnie zniosła dzisiaj moje marudzenie. Dziękuję!

Po powrocie do domu humor prawie mi się poprawił… a tu jeszcze kolejna
nowina… wrrr… nie dość że łapie mnie jesienna depresja i żadnych, powodów
do zmartwień nie potrzebuję, to jeszcze kaczki dorwały się do władzy…

Swoją drogą, jeśli ta jesienna depresja mi nie odpuści, to nienajlepiej
się Jesień Linuksowa zapowiada…

Mail do admina

From: artur <xxx@xxx.xxx.xxx>
Subject: Re: Poczta zablokowana z powodu wirusa lub spamu

niewiem ja nic nie wsylalem jedynie co to do was i tak nie odpowiadacie
zaniedlugo tam przyjade i sobie z wami porozmawiam a poczte prosze mi
odblokowac bo ja z poczty kozysatam a co do jakis meili to ja nic onich nie
wiem ale mam program antywirusowy program do trojanow do spamowania i jakos
nic nie wysylalem chyba ze faktycznie wczoraj to bylo wieczorem albo przed
wchdzoaj to pamietam ze cos mi sie stalo z kompem jakas dziwna tapeta sie
ustawila i wogule bledy wyskakiwaly ruch w sieci ciagle byl a ja nic nie
robilem niewiem wiem ze potem sformatowlaem dysk i wszystko gralo dowidzenia
----- Original Message -----
[...]

Ortografia, interpunkcja i formatowanie oryginalne.

Pythonowe frameworki…

(wpis z wczoraj)

Pierwszy Pythonowy framework dla aplikacji webowych jaki poznałem to był Zope 2. Potrzebne mi było coś takiego do
stworzenia interfejsu użytkownika dla naszego systemu zarządzania siecią. W PHP
babrać się nie miałem zamiaru, a robienie całości jako CGI to byłaby mordęga.
Padło na Zope’a, nic innego nie było, a przynajmniej nic na tyle popularnego,
żeby obiło mi się o uszy. Zope, z jednej strony potężna maszyna, z drugiej
wkurzające monstrum. W szczególności, że źle się za niego zabrałem. Wszystkie
szablony robiłem w DTML (bo wyczytałem w ZopeBook, że równie dobrze jak ZPT,
a dla programistów nawet lepsze), a cały kod rozwijałem through the web,
a więc to było bardziej skryptowanie a’la PHP, niż poważne tworzenie aplikacji.
W końcu przekonałem się do ZPT (bardzo porządny język szablonów, pozwalający
w miarę dobrze oddzielać logikę od prezentacji i utrudniający tworzenie
niepoprawnego XHTML), ale kod dalej rozwijany jest TTW, bo zmiana tego, to byłoby pisanie aplikacji (sporej już) od
zera.

Widząc słabości Zope zacząłem się rozglądać za alternatywami. Żeby
alternatywę poznać to trzeba spróbować, postanowiłem więc pobawić się czymś
innym. Po wstępnym rozpoznaniu tego co jest na rynku, postanowiłem spróbować od
CherryPy. Próba polegała na
przeportowania mojego generatora i przeglądarki statystyk dla Joggera (ta
czerwona kropa poniżej) na ten framework. Wcześniej to było zrealizowane
w postaci skryptów CGI z prymitywnymi printami. Zrezygnowałem
z języka szablonów wbudowanego w CherryPy, bo znając ZPT nie chciałem się
babrać w czymś nie opartym o XML (nie pilnującym składni generowanego kodu),
użyłem więc SimpleTAL. Sportowałem tak dużą część tego generatora statystyk,
z błędami i dałem sobie spokój (zająłem się innymi rzeczami). CherryPy na
początku zrobiło niezłe wrażenie jak prosto się w tym aplikację WWW
buduje
, a potem okazało się raczej prymitywne. Architektura CherryPy wręcz
wymuszała bałagan, zamiast porządkować kod (to IMHO jedna z funkcji
frameworków) — na dłuższą metę reprezentacja hierarchii URL poprzez
atrybuty obiektów to niezbyt dobry pomysł. Do tego stan aplikacji (aktualne
żądanie, odpowiedź, etc.) trzymany w zmiennej globalnej (i dostępny przez tę
zmienną)… wiem że to działa, ale wydaje się niezbyt eleganckie. Krótko mówiąc
CherryPy mnie nie zachwycił.

Kolejny był Nevow, oparty o Twisteda. Od początku wydawał się
bardziej skomplikowany niż CherryPy. Ale po doświadczeniach z prostotą
(prymitywizmem) CherryPy to mnie nie zrażało. Nevow intensywnie korzysta
z interfejsów i adapterów (jak się później okazało, zapożyczonych od Zope3), ma
własny, ciekawy język szablonów — oparty o XML i jeszcze bardziej niż ZPT
oddzielający prezentację od logiki (w szablonach nie ma nawet pętli).
Portowanie prostego CGI do Nevowa to była droga przez mękę, bo trzeba było się
nauczyć nowego, skomplikowanego narzędzia. Niektóre rzeczy w tym frameworku
okazywały się ostatecznie proste i logiczne, przy innych trzeba było się
nakombinować. Doprowadziłem conieco (prezentację listy wejść) do działania, ale
nie rozwiązałem wszystkich problemów i walka z Nevow mi się znudziła.
Ostateczne wrażenie raczej pozytywne, chociaż miejscami było pod górkę.
Doceniłem też wsparcie na IRCu.

Jakiś czas temu na grupie pl.comp.lang.python przeczytałem
sporo dobrego o Zope3. Wtedy to było
jeszcze eksperymentalne Zope-X3. Framework przepisany od zera, docelowo mający
zapewniać częściową kompatybilność wstecz (czy raczej wsparcie dla portowania
starych aplikacji) z Zope2. Co do tego że Zope należało przepisać od zera, nie
miałem wątpliwości. W to, że w Zope krył się potencjał też. Więc, gdy pojawiły
się release candidate Zope 3.1, postanowiłem spróbować.
Poczytałem dokumentację, zacząłem łapać o co w tych interfejsach i adapterach
(dużo intensywniej używanych niż w Nevow) chodzi i zabrałem się za portowanie
statystyk. Znowu początki były ciężkie, ale prawie na każdy problem Zope
oferował jakieś fajne rozwiązanie. Wszystko w postaci przejrzystego obiektowego
podejścia. W przeciwieństwie do takiego CherryPy Zope3 zachęca do porządku
i przemyślenia co jest obiektem, co jego prezentacją. Daje potężne mechanizmy
kontroli dostępu, bezpieczeństwa kodu, i18n, skórkowania, tworzenia i walidacji
formularzy i wielu innych rzeczy które w aplikacji są potrzebne. Jest to
architektura i zestaw narzędzi, czyli to czym framework powinien być. I się
sprawdza. Dzisiaj skończyłem portowanie statystyk i efekt jest lepszy niż
oryginał, a ewentualny dalszy rozwój będzie banalnie prosty (prostszy niż
w przypadku CGI).

Już po rozpoczęciu swojej zabawy z Zope3 stwierdziłem, że warto to
zastosować w firmie zamiast Zope2. Większość systemu (interfejs administratora,
serwisu, BOKu) zostanie na starym Zope’ie, bo przepisanie tego to znowu byłoby
wiele miesięcy, ale już interfejs użytkownika końcowego robię na Zope3. Tego
jest niewiele i i tak muszę to przepisać od zera. Obie części komunikują się
przez bazę danych i chodzą na różnych maszynach, więc zastosowanie dwóch
Zope’ów nie jest problemem. Mam nadzieję, że tej decyzji nie będę za jakiś czas
żałował, jak tego, że wpakowałem się z Zope2 i aplikację rozwijaną
TTW. No i to, że w ogóle wpakowałem się w kodowanie zamiast
adminowania…

Jest jeszcze wiele innych frameworków i, do tego, ciągle powstają nowe.
Części w ogóle nie znam, o części poczytałem w sieci i zrezygnowałem, bo ich
założenia mi nie pasowały. Niektóry zdawały się zbytnio iść w kierunku PHP,
którego przecież celowo unikam, inne miały jakąś dziwną architekturę, np.
Webware składające się z iluś komponentów, w których nie udało mi się ujrzeć
spójnej całości. Ciekawe co wygra — na świecie i wśród moich narzędzi.

Oj, dawno się tak dobrze nie bawiłem

Wczoraj wieczorem zajrzałem na stronę Urzędu Miejskiego w Gliwicach, żeby
zobaczyć czy na weekend się coś ciekawego nie szykuje. Wczoraj nic, ale na
dzisiaj w planie był koncert Pożegnanie lata z Voo Voo. Ostatnio
stanowczo za dużo siedzę w domu, więc warto by się było gdzieś wyrwać, a na
jakiś fajny koncert, to już byłoby super. Voo Voo nie mogło zawieść. Bałem się
tylko, że może już nie być biletów.

Dzisiaj z samego rana (czyt.: ok. 10:00) zadzwoniłem do kasy Teatru
Miejskiego, gdzie miał się odbyć koncert, zapytać czy są jeszcze bilety.
Dowiedziałem się, że oczywiście są i że za jakiś czas też nie powinno
być problemu. Nie mogłem się tam udać od razu, bo najpierw wypadało przyłożyć
się trochę do sobotnich porządków, a poza tym samochód był niesprawny
i musiałem czekać aż żonka włoży akumulator. W końcu, w południe, gdy dziecko
było wyprowadzone na spacer, samochód został uruchomiony i pojechałem po
bilety. Rzeczywiście były. I kosztowały jedyne 25zł.
Zapłaciłbym i sporo więcej. Do dzisiaj nie mogę sobie wybaczyć, że kiedyś nie
poszedłem na koncert Republiki, tylko dlatego, że cena biletu (o ile pamiętam,
to 70zł) mnie zniechęciła. Teraz już nie ma Republiki, a ja ich nigdy nie
słyszałem na żywo.

Wracając jednak do dzisiejszego koncertu… Voo Voo było główną gwiazdą
wieczoru, a przedtem miało zagrać Tworzywo Sztuczne (w którym grają synowie
Wojtka Waglewskiego) i Wagla z synami. Tworzywa Sztucznego wcześniej nie
znałem, więc nie wiedziałem czego się spodziewać…

Najpierw wpadł jakiś gościu, włączył automat i zaczął się kiwać nad
elektroniką. Co to k..wa jest – pomyślałem – jakiś hip-hop, czy
techno? Ale gdy się włączyła perkusja (żywa) zaczęło brzmieć nieźle. Potem
wokalista zaczął ryczeć przez megafon do mikrofonu (punk?) i włączyła się
reszta zespołu. Grali nieźle, instrumentalnie nawet mi się to bardzo podobało,
rapujący wokalista mniej (no cóż nie lubię hip-hopu). Całość brzmiała jak
hip-hop (w sensie tego co mnie się kojarzy z tym pojęciem – tego co
serwują nam rodzime media w IMHO stanowczo nadmiernej ilości), połączony
z jazzem (kiwający się klawiszowiec kilka razy podniósł się znad elektroniki
i zagrał solo na trąbce, solo gitarzysty też było niezłe) i jakimś
alternatywnym rockiem.

Później Tworzywo Sztucznie zmieniło się w Wagle – najpierw dołączył
Wojtek Waglewscy, a potem reszta zespołu zeszła ze sceny, zostawiając go
z synami. To już bardziej odpowiadoło moim upodobaniom. Zagrali tak z dwa
kawałki, potem jeszcze raz zagrało Tworzywo Sztuczne i była 17 minutowa
(w rzeczywistości chyba sporo dłuższa) przerwa. Po przerwie Voo Voo.

Do tego momentu było fajnie, ale najlepsze się dopiero zaczynało. Nie będę
się wdawał w szczegóły, bo żeby zrozumieć, to Voo Voo każdy powinien sobie
posłuchać na żywo. Gdy zaczęli grać Nim stanie się tak, to
stwierdziłem, że mam w nosie swoją operację i bolące gardło – przy tym
musze się wyszaleć. I się wyszalałem. I z tej jednej piosenki Voo Voo zrobiło
kawał koncertu, ze wspaniałym pojedynkiem perkusistów w środku. A niezłych
utworów było więcej – w sumie jakieś dwie godziny przy samym Voo Voo.

Zespół wyglądał trochę inaczej niż w czasach gdy ostatni byłem na ich
koncercie. Mateo już nie ma ulizanych do tyłu włosów i wygląda bardziej jak
Sting niż jak go pamiętam. No i nie grał już Jan Pospieszalski. Widać wybrał
karierę w telewizji, co może mniej zaszkodziło Voo Voo (dalej są świetni),
a bardziej telewizji ;-).

P.S. przejrzałem co napisałem i stwierdzam że to bez sensu. W końcu,
pisać o muzyce to jak tańczyć o architekturze, szczególnie jak się nie
jest w temacie. Ale jakoś nie mogłem zostawić tego bez notki – od lat się
tak dobrze nie bawiłem.

Upgrade

Wczoraj ejabberd zaczął mi
szaleć. Nic z serwera nie przychodziło, to co się pisało szło efektywnie do
/dev/null, a nowe połączenia były odrzucane. Po restarcie zaczęło
działać, ale po godzinie znowu się zepsuło, tak samo.

Na serwerze miałem zainstalowanego dość starego Erlanga
(R9C-2) jak i samego ejabberd (0.7.5). Skoro działało, to po
co zmieniać. Jednak, gdy zaczęły się problemy, to aż głupio byłoby szukać
supportu do takich wykopalisk. Postanowiłem więc zrobić upgrade, ale bałem się.
Skok o kilka wersji przecież nie może przejść bezboleśnie.

Wczoraj wieczorem przygotowałem paczki PLD z najnowszym
Erlangiem i ejabberd. Poszło gładko, tylko
jeden mały patch był potrzebny. Ostatnim razem gdy próbowałem było gorzej,
w szczególności wychodziły jakieś problemy na AMD64. Dzisiaj postanowiłem te
nowe paczki zainstalować na serwerze. Przy okazji postanowiłem wypróbować
opcję --repackage RPMa, żeby mieć do czego wrócić, jak coś
pójdzie nie tak.

[root@serwus RPMS]# /etc/rc.d/init.d/ejabberd stop
Stopping ejabberd service..........................................[ DONE ]
[root@serwus RPMS]# rpm --repackage -Uvh erlang-R10B_7-0.1.amd64.rpm ejabberd-0.9.8-1.amd64.rpm
Preparing...                ########################################### [100%]
Repackaging...
   1:erlang                 ########################################### [ 50%]
   2:ejabberd               ########################################### [100%]
Upgrading...
   1:erlang                 ########################################### [ 50%]
   2:ejabberd               warning: /etc/jabber/ejabberd.cfg created as /etc/jabber/ejabberd.cfg.rpmnew
########################################### [100%]
Updating component authentication secret in ejabberd config file...
Generating erl authentication cookie...
Run "/etc/rc.d/init.d/ejabberd start" to start ejabberd server.
[root@serwus RPMS]# /etc/rc.d/init.d/ejabberd start
Starting ejabberd service..........................................[ DONE ]

Niemożliwe. To nie mogło być takie proste. A jednak, wygląda na to, że działa. Hmmm…

Last.fm?

Bawię się właśnie Last.fm. Idea ciekawa,
wykonianie takie sobie. Ale może się to jakoś rozwinie.

Na razie bywa zabawnie. W końcu udało mi się odpalić kanał blues
(wczoraj próbowałem kilka razy, bez efektu). Pierwsze poleciało Tears in
Heaven
Erica Claptona. To można jeszcze za bluesa uznać. Kolejny utwór był
większym zaskoczeniem… Last.fm zaserwowało mi… Slayera. ;-)
Inna sprawa, że utwór i tak mi się spodobał.

Firefox 1.0.7? Tylko dla wybranych?

I znowu pojawiła się nowa wersja Firefoksa, z krytycznymi poprawkami
security. I znowu tylko w amerykańskiej wersji (chociaż podobno po
1.0.6 już więcej nie miało się tak zdarzać). Czyżby użytkownicy lokalizowanych
wersji nie byli zagrożeni? A może im się bezpieczeństwo nie należy? A może
wybór wersji innej niż American English to ma być świadomy kompromis lub
oznacza głupotę/naiwność użytkownika?

Wszystko wskazuje na to ostatnie. Niestety, nie łatwo tą błędną decyzję
poprawić. Już dwa razy próbowałem zmienić wersję językową i zawsze kończyło
się to niedziałającym profilem. Nie chcę tracić ustawień i zainstalowanych
rozszerzeń, więc pozostaje mi trzymanie się dziurawej wersji… A może jeszcze
raz zaryzykuję zmianę, tym razem robiąc backup profilu?

Na Operę się na razie nie przesiadam, bo co Open Source, to Open Source,
nawet w wydaniu Mozilli (zmieniaj co chcesz, ale nie będziemy ci tego
ułatwiać, a wydając nawet nie sugeruj, że to Firefox). Z drugiej strony…
i tak w tym Fx mam zamknięte pluginy i rozszerzenia… może więc jednak Opera?

Bez plasterka

No to dzisiaj zdjąłem sobie opatrunek. Wygląda na to, że rana bardzo
ładnie się goi, ale jeszcze będzie trzeba na nią uważać. W szczególności, będę
musiał walczyć z moim zamiłowaniem do zdrapywania strupków
;-). Jeśli chodzi o szczegóły, to rana ma długość 10cm i widać
ślady po ośmiu (może szesnastu, bo coś mi się zdaje, że były podwójne) szwach.
Będę miał ładną bliznę do szpanowania. ;-)