2008-09-17

Pourlopowo: dogrywka

Łagodnie, wypoczęty choć niestety trochę przeziębiony, dałem się wprzęgnąć w kieracik codzienności. Ważne, żeby nie wystartować za szybko. Trochę wspominając wciąż wakacje, chcę krótko napisać o lekturach summer'2008.

Jest teoria, która zaleca taktykę zabierania na urlop jakiegoś wielkiego objętościowo dzieła literatury światowej. W zasadzie po opuszczeniu szkoły a przed emeryturą nie ma szans na zmierzenie się z takim potworem jak równy z równym poza okresem urlopowym. Aby więc nadrobić braki w oczytaniu okazja to znakomita. W tym roku padło u mnie na "Nędzników" Wiktora Hugo. I muszę powiedzieć, że jestem ukontentowany. Tak się dzisiaj już nie pisze, ba pomału zdaje się przestawano tak pisać w czasach kiedy książka powstawała. Ale wciąż tak jak i dawniej, tak się czyta, bo pewne narracje wciągają, bo pewne wizje zapierają dech w piersiach, bo są słowa które poruszają.
Z punktu widzenia czysto fabularnego, historię opowiedzianą w "Nędznikach" możnaby zamknąć w jednej trzeciej objętości. Z punktu widzenia dzisiejszych standardów literackich fabuła ociera się nieco o kicz (albo o za przeproszeniem o telenowelę) w nagromadzeniu mniejszych i większych nieprawdopodobieństw i zbiegów okoliczności. Ale w takim wydaniu, ja przynajmniej, kupuję to na pniu. Zresztą fabuła jest tu, co jest dystynktywną cechą książek wielkich, jedynie nośnikiem głębszych myśli. Czym jest bowiem owa historia, której początek sięga (oczywiście to interpretacja) rewolucji francuskiej kiedy to promień światła i dobra wdziera się w Historię, przemieniając najpierw biskupa Digne a za jego sprawą Jeana Valjean i omiata innych tak złych jak i dobrych bohaterów? To historiozoficzna (a może teozoficzna) wizja stawania się dziejów wedle woli Boga, dla której ludzkie postacie i są tylko nośnikiem i tworzywem. To opowieść o dobrze i złu, o nihiliźmie i wierze w ideały, o winie i i braku jej poczucia, o duchowej nędzy i bogactwie, upadku i powstawaniu. Porusza się w świecie wruszeń i uczuć prostych i czytelnych. I nawet nie podzielając wielu zapatrywań autora, robi wrażenie jego karmiona doświadczeniem wiara, że w tym co złe i co dobre realizuje się jakiś wielki plan. Wiara, która pozwala bez zacietrzewienia z łagodnością patrzeć na wielkie widowisko historii.
Poza wątkiem fabularnym książka jest gęsto przetykana samodzielnymi esejami, gdzie poglądy wyłożone są już wprost wspaniałym językiem. Kolejne genialne fragmenty to obrazki obyczajowe, charakterystyki postaci typowych dla epoki, topograficznie dokładne opisy starego Paryża. Wielki, zapewne stylizowany, zbiorowy portret narodu i kraju w który zamieszkuje. I w końcu doskonałe fragmenty erudycyjne, jak ten o kanałach paryskich, czy o bitwie pod Waterloo.
Stanowczo, choć powieść to niedziesiejsza i choć wymaga zawieszenia na moment zwykłego naszym czasom cynizmu i sarkazmu, polecam gorąco.

Jest też teoria, która mówi, że aby dać wytchnąć nie tylko ciału (które za biurkiem ma raczej szansę zesztywnieć i obrosnąć tluszczem niż porządnie się zmęczyć), ale przede wszystkim głowie, należy przed urlopem udać się do EMPIK-u na półkę z sensacją, znaleźć jakąś książkę w cenie ok. 29.90 PLN, wykazać sporo naiwności i dać się przekonać napisowi z tylnej okładki, zapakować a następnie w miejscu X które wybraliśmy na wypoczynek oddawać się odprężającej lekturze. Jest to teoria tyleż błędna co szkodliwa. 29.90 PLN nie jest może sumą zawrotną, ale jest sumą, której nie warto dawać za pewne substancje kojarzone na ogół z wydalaniem, a niezależnie od zapewnień wydawcy i cytatów z zagranicznych recenzji, istnieje wielkie prawdopodobieństwo, że postępując zgodnie z opisaną procedurą na literacką formę istnienia owej substancji natrafimy. Niżej podpisany, mimo wiedzy w tym zakresie, po raz kolejny wypróbował to na sobie i zmęczył z wielkim bólem książkę "Ostatni papież" niejakiego Luisa Miguela Rocha - Portugalczyka jak się okazuje. Inteligencja niżej podpisanego, choć może nie tak znowu wielka, została wielokrotnie znieważona przez Portugalczyka Rocha przy pomocy nagłych, nieprawdopodobnych, nielogicznych i głupich zwrotów akcji, debilnego sztafarzu i tandetnych rekwizytów. 29.90 PLN znalazłoby lepsze zastosowanie zamienione na słowackie korony i wydane na kilka kufli jednego z tamtejszych pysznych piw. Tfu, precz, apages...

W końcu, istnieje teoria trzecia, że wakacje to dobry czas by zmierzyć się z jakąś lekturą bardziej naukową. Ja w tym roku, wypróbowałem z niejakim powodzeniem również ową trzecią taktyke, zabierając napoczętą już wcześniej, ale jakoś niemrawo mi idącą książeczkę "The Haskell Road to Logic, Math and Programming". To połączenie niezłego wstępu do matematyki na poziomie bliskim uniwersyteckiemu wykładowi przedmiotu na studiach niematematycznych z wprowadzeniem do programowania w języku Haskell. Trkatowana z osobna, każda z funkcji tej książki wypadłaby znacznie gorzej niż ich połączenie. Książka omawia następujące tematy matematyczne: podstawy logiki tj. rachunek zdań i teorię kwantyfikatorów wraz z łopatologicznym wręcz przedstawieniem metod dowodzenia, podstawy teorii zbiorów wraz z teorią relacji i funkcji ujętych oczywiście tak jak się to robić powinno, tj. jako podzbiory iloczynu kartezjańskiego, arytmetykę Peano, zagadnienia rekursji i w jej ramach teorią relacji ufundowanych, konstrukcję liczb całkowitych, wymiernych, teorię wielomianów, szeregow formalnych i funckji tworzących z zastosowaniem w kombinatoryce, zagadnienia korekursji i rachunku strumieni, wstęp do teorii mocy zbiorów. Wszystko to ilustrowane świetnie dobranymi i napisanymi konstrukcjami w języku Haskell, które umożliwiają szybkie przejście od abstrakcyjnego materiału do konkretu. Dla osób potrzebujących pomocy w walce z matematyczną abstrakcją podstaw - świetna lektura. Dla zainteresowanych programowaniem, omówione są podstawowe pojęcia i konstrukcje Haskella: typy, "pattern matching", wywołania rekurencyjne, funkcje wyższego rzedu w rodzaju "fold", podstawowe klasy jak Num, Ord etc., "lazy evaluation" i typy danych o nieskończonym rozmiarze. Sporo elegancko rozpracowanych algorytmów, spora dawka ćwiczeń. Nie jest to jednak podręcznik języka - za to daje pojęcie o nietrywialnym sposobie użycia owego języka i jego bliskim pokrewieństwie z notacją i pojęciowym światem matematyki. Brakuje mi tam nieco odwołania do trochę bardziej ezoterycznych konstruktów Haskell'a ze szczególnym uwzględnieniem monad. Ale to co jest wystarczy, żeby zrobić świetne wrażenie. Idealna lektura uzupełniająca do przedmiotu "Wstęp do matematyki" na kierunku informatycznym na przykład. Przeczytałem z wielką przyjemnością.

2008-09-13

Wypracowanie: jak spędziłem wakacje

Kiedy nastawał wrzesień, kolor sanockiego parku powoli dryfował w cieplejszym kierunku i przyszło wracać do szkoły, wszystko zaczynało się - sądzę, że i dziś tak jest - od wypracowania o wakacjach. Nieśmiertelny wrześniowy temat. I ja zacznę od krótkiego wypracowania (choć wiem, ze przez lata wyszedłem z wprawy). A więc...
Skończyliśmy właśnie nasze trzytygodniowe wakacje.Całe, poza dwudniowym interludium, spędzone poza naszym pięknym, smutnym i wiecznie beznadziejnie skłóconym krajem. Zaczęliśmy od dwóch tygodni w Egipcie. Tydzień, śladem Agaty Christie podróżując statkiem w górę Nilu od Luksoru (starożytnych Teb, przez Arabów, którzy zastali tu na wpół zasypane światynie nazwanym "al Aksar", czyli "pałace" - stąd dzisiejsza zeuropeizowana nazwa miasta) do Assuanu, powyżej którego Nil staje się Jeziorem Nassera. To ciekawa wycieczka - całą masa starożytności, wymienię skrótowo po kolei, według klucz geograficznego.
Luksor - świątynia w Karnaku i łacząca się z nią słynną a zdegenerowaną już dziś aleją sfinksów świątynia w samym Luksorze. Na drugim brzegu Nilu, niemal na wprost Karnaku światynia Hatchepsut (kiedyś może coś więcej o niej napiszę - ciekawe wątki feministyczne), przy okazji okryte niesławą miejsce zamachu islamistów w 1997 roku. Na tym samym brzegu Dolina Królów - miejsce pochówku Faraonów z szczególnie godnym polecenia grobowcem Ramzesa VI. W końcu zniszczone, ale słynne z starożytnych opisów Egiptu kolosy Memnona.
Potem Edfu, biedne prowincjonalne miasto ze wspaniałą świątynia Horusa pochodzącą z czasów o wiele późniejszych bo zbudowane w okresie hellenistycznym przez eklektyczną w kwestiach religijnych i bardzo pragmatyczną politycznie dynastię Ptolemeuszy.
Następnie Comombo, które jako pierwsze chyba pozwoliło nam poczuć smak Afryki i podwójna (znowu ptolemejska) świątynia poświęcona Horusowi i Sobekowi. Sobek - bóg Nilu przedstawiany z głową krokodyla nie miał może takiej dobrej opinii w oczach starożytnych, ale zasada "Panu Bogu świeczkę a diabłu ogarek" okazuje się nie być wynalazkiem nowożytnym...
W końcu Assuan - wielkie miasto ulokowane w stratogicznym w starożytności i w dniu dzisiejszym miejscu przy pierwszej katarakcie na Nilu. Tu zabytków może trochę mniej, za to więcej wrażeń etnograficznych. Tu znać, że to inny kontynent - w żywioł arabski wkradł się pierwiastek rdzenny: skóra jest czarniejsza, nubijczycy stanowią tu znaczny procent ludności i konfidencjonalnym tonem wyjaśniają, że nie należy mylić ich z Arabami. Assuan to miejsce gdzie łaczy się woda, pustynia i łaskawie udzielona przez Nil zieloność pasa nadbrzeżnego.
Stąd jeszcze mały wypad (bagatela 280 km) autokarem na południe, za Zwrotnik Raka i jesteśmy w Abu Simbel, wielkiej światyni zbudowanej przez wielkiego władcę Egiptu Ramzesa II na pamiątkę zwycięstwa nad Hetytami (będącego co prawda bardziej łutem szczęścia niż wynikiem myśli strategicznej) i ku przestrodze i onieśmieleniu południowych sąsaidów Egiptu. To znowu właściwie dwie światynie, bo posiadający znaczną ilość żon Ramzes II jedną - Nefretare - wyróżnił osobną, mniejszą ale równie wspaniałą.
Abu Simbel to trochę oszutwo, świątynie pierwotnie leżały kilkaset metrów od miejsca, gdzie można je dziś oglądać. Uratowano je przed zalaniem wodami Jeziora Nassera za pomocą małego cudu inżynieryjnego (całkiem niemały dodatek do geniuszu budowniczych świątyni). Po prostu pocięto je na kawałki i wklejono w dwie trochę podrasowane, by przypominały oryginalne, góry. Niecodzienne zjawisko - obiekt mający delikatny posmak falsyfikatu - zyskuje dzięki temu jaki kunszt musiano włożyć w jego przygotowanie.
Assuan dał nam rzeczywiście poczuć Afrykę. Dwa dni błąkania się po mieście, knajpa którą mylnie zidentyfikowaliśmy jako tą, kórą poleca nam biuro podróży, a która okazała się po prostu popularnym wśród tubylców miejscem. To będzie jedno z jaśniejszych wspomnień.
Kolejny tydzień w Egipcie to już klasyczna oferta turystyczno wypoczynkowa. Niezły hotel, dużo słońca i Morze Czerwone. Tu warto polecić przyjemności jakich dostarcza samodzielne obcowanie z rafą koralową - jeśli kiedykolwiek wrócimy do Egiptu to głównie z tego powodu.
To jasne strony - o ciemniejszych nie będę się rozpisywał, no może skrótowo. Egipt pozbawia złudzeń. Nawet, jeżeli założyć, że podróżując z biurem turystycznym stykamy się ze szczególnie zdemoralizowaną grupą ludzi w jaką obrasta tego typu przemysł, nie sposób nie zauważyć, że wśród Arabów istnieje podwójna moralność i ich stosunek do przybyszów z Europy jest mieszanką źle skrywanej pogardy i polukrowanej fałszywą grzecznością chciwości. Chciwości, której przejawy w stosunku do swoich pobratymców byłyby z pewnością uznane za formę grzechu. Poza tym wschodnia natarczywość, którą mieliśmy już okazję poznać osiąga tam monstrualne rozmiary i, przynajmniej u mnie, wywołuje potworną irytację. Wiele gorzkich uwag mógłbym dorzucić, ale zamilczę.
Ten aspekt będzie zawsze małą (mam bowiem nadzieję, że prawdą jest to co powiadają psycholodzy jakoby złe wspomnienia zacierały się szybciej niż dobre) skazą na moim obrazie tego dziwnego i egzotycznego kraju.
W końcu wyrwaliśmy się ze świata ekstremsalnych temperatur i bezchmurnego nieba i po krótkim pobycie w Krakowie wybraliśmy się w krainę bliskich naszemu sercu krajobrazów, bliskich naszemu podniebieniu smaków, w świat gór i wody: na Słowację. Od kiedy mieszkańcy Orawy do swojego skarbu jakim są piękne krajobrazy dorzucili bogactwo wód termalnych wokół których pobudowali wzorowe ośrodki wypoczynku to jeden z naszych ulubionych kierunków. Nie zawiedliśmy się i tym razem. Pięć dni słońca, chmur, pływania i relaksu. Sporo czasu na lekturę. Idealne miejsce na druga część długiego urlopu.
Na tym z wolna kończę, Podróżnicy piszą książki, podróżujący służbowo raporty i sprawozdania. Turystom zostają wypracowania...

2008-07-25

Nowy gadżet

Na prawym marginesie - nowy gadżet. Z grubsza jest to zabawka (niedoskonała mocno) związana z L-systemami. Napiszę o niej i o nich coś więcej wkrótce. Zaby uruchomić: Najpierw kliknąć na link :"Gdy wyrasta kwiat ze ziemi ..." Potem na "Niech wyrasta ...". Można modyfikować reguły i dodawać nowe. Na własną odpowiedzialność oczywiście...
Działa w Firefoxie. W IE, przynajmniej moim, nie.
Miłej (ewentualnie) zabawy...
Aha! Frazeologia zaczerpnięta z wierszyka, który kiedyś popularyzował mój kolega z akademika:

"Gdy wyrasta kwiat ze ziemi, wszyscy są zadowoleni, lecz gdy rośnie trawa: to już inna sprawa..."

2008-07-15

Haskell i Pell

Jak mówiłem tak zrobiłem, tj. sprawdziłem algorytm Wildbergera w praniu. Poniżej kod funkcji rozwiązującej równanie Pella w oparciu o ów algorytm w Haskellu. Poza rekurencją i "pattern matching" nie demonstruje on pazura Haskella, ale mam nadzieję, że jest równie przyjemny w czytaniu jak był w pisaniu...



solvePell :: Integer -> (Integer, Integer)

solvePell d = (b11, b21) where
(b11, b12, b21, b22) = searchFixedPointMtr (1, 1, 0, 1) where
searchFixedPointMtr p | (o11, o12, o21, o22) == (1, 0, 0 , -d) = r
| o11 > 0 && o22 < 0 = searchFixedPointMtr r
|otherwise = searchFixedPointMtr tr where
r = mult p (1, 1, 0, 1)
tr = mult p (1, 0, 1, 1)
(o11, o12, o21, o22) = mult( mult (transpose r) (1,0,0,-d) ) r
transpose (a11 ,a12, a21, a22) = (a11, a21, a12, a22)
mult (a11, a12, a21, a22) (b11, b12, b21, b22)=
(a11*b11+a12*b21, a11*b12+a12*b22,
a21*b11+a22*b21, a21*b12+a22*b22)


Funkcja solvePell, bierze d z rówania Pella jako argument i zwraca parę liczb będąca pewnym rozwiązaniem równiania. Trzeba pamiętać, by d nie było kwadratem - tego funkcja nie sprawdza. Na kwadratach wchodzi zwykle w nieskończoną rekurencję ... Niestety, są i smutniejsze wieści. Algorym nie zawsze znajduje rozwiązanie fundamentalne. Np. dla d = 13, rozwiązaniem fundamentalnym jest x=18 y=5, podczas gdy zaimplementowany algorytm daje rozwiązanie: x=649 y=180, które jest następnym z kolei (bo 649=18^2+13*5^2 i 180 = 2*5*18). Tym samym zrozumiałe staje się, dlaczego w pracy Wildbergera nie było stosownego dowodu ;). Warto pomyśleć, czy nie da się tej metody jakoś zmodyfikować (nie zmieniając jednak jej ducha) by algorytm zwracał zawsze rozwiazanie fundamentalne.


Do badań porównawczych użyłem sprawdzonej już w bojach, on-linowej maszyny do poszukiwania fundamentalnych rozwiązań równania Pella którą niniejszym polecam: Diophantus Quadraticus. Dla miłośników numerologii, przykładowe wynik działania funkcji (pod Hugsem):


Main> solvePell 12
(7,2)
Main> solvePell 123
(122,11)
Main> solvePell 1234
(586327869067265,16691023073856)
Main> solvePell 12345
(1196823028442576899590849641,10771703481902106796084652)
Main> solvePell 123456
(32153667637494049,91511235212695)
Main> solvePell 1234567
(20371567825887579087969922203933358793493846332810110697
4127231916998110712447355624,1833441773536251588833840127
75408990796176026949965279326746283914164614149841725)
Main> solvePell 12345678
(84798178834254206501069091776063801828858638442491294173
283622693331157941169053721682146500840778040795681426799
746373774600679194577190578795925022609963251697702932038
103575417349220734335472506700750376403558084067176117304
353961009320426319261060613871588088528284393528998330022
695959115757272835324559892633223467646161202348129574120
811322088113694783,24133985779040703487042001168546778233
886602226457226201732495439539842758227586390869258263482
721919445559004333460853375915877499010684711766338764074
438034949056494509471323897949013056855661657290867499070
288510685596491236418010367399292614822499208206228574471
914923864025707862772212062023636759525773725225355147035
172813431107542245055578655655064)