Weblog Tomasza Przechlewskiego [Zdjęcie T. Przechlewskiego]


scrum
random image [Photo gallery]
Zestawienie tagów
1-wire | 18b20 | 1wire | 2140 | 3rz | alsamixer | amazon | anniversary | antypis | apache | api | applebaum | arm | armenia | astronomy | asus | atom.xml | awk | aws | bachotek | bakłażan | balcerowicz | balta | bash | berlin | bibtex | bieszczady | biznes | blogger | blogging | blosxom | borne-sulinowo | breugel | bt747 | budapeszt | canon | cedewu | chello | chiller | chillerpl | chown | chujowetaśmy | ciasto | cmentarz | contour | cron | css | csv | curl | d54250wykh | dbi | debian | dejavu | dhcp | dht22 | dia | docbook | dom | ds18b20 | dyndns | dynia | ebay | economy | ekonomia | elka | elm | emacs | emacs23 | english | ess | eu | excel | exif | exiftool | f11 | fc | fc11 | fc15 | fc5 | fc8 | fedora | fedora21 | fenix | ffmpeg | finepix | firefox | flickr | fontforge | fontspec | fonty | food | fop | foto | france | francja | fripp | fuczki | fuji | fuse | gammu | garmin | gawk | gazwyb | gdańsk | gdynia | gender | geo | georgia | gft | git | github | gmail | gnokii | gnus | google | googlecl | googleearth | googlemaps | gotowanie | gphoto | gphoto2 | gps | gpsbabel | gpsphoto | gpx | gpx-viewer | greasemonkey | gruzja | grzyby | haldaemon | handbrake | historia | history | hitler | holocaust | holokaust | hpmini | humour | iblue747 | ical | iiyama | ikea | imap | inkscape | inne | internet | j10i2 | javascript | jhead | k800i | kajak | kamera | kleinertest | kml | kmobiletools | knuth | kod | kolibki | komorowski | konwersja | krutynia | kuchnia | kurski | latex | latex2rtf | latex3 | lcd | legend | lenny | lesund | lewactwo | liberation | linksys | linux | lisp | lisrel | litwa | lizbona | logika | ltr | lubowla | lwp | m2wś | mapsource | marvell | math | mathjax | mazury | mbank | mediolan | mencoder | mh17 | michalak | michlmayr | microsoft | monitor | mp4box | mplayer | ms | msc | mssql | msw | mtkbabel | museum | muzyka | mymaps | mysql | nanopi | natbib | navin | nekrolog | neo | neopi | netbook | niemcy | niemieckie zbrodnie | nikon | nmea | nowazelandia | nuc | nxml | oauth | oauth2 | obituary | okular | olympus | ooffice | ooxml | opera | otf | otftotfm | other | overclocking | panoramio | pdf | pdfpages | pdftex | pdftk | perl | photo | photography | picasa | picasaweb | pim | pine | pis | pit | plotly | pls | plugin | po | politics | polityka | polsat | portugalia | postęp | powerpoint | prelink | problem | propaganda | pstoedit | putin | python | r | radio | random | raspberry pi | refugees | relaxng | ridley | router | rower | rowery | rpi | rsync | rtf | ruby | rugby | russia | rwc | rwc2007 | rwc2011 | rzym | samba | sem | sernik | sheevaplug | sienkiewicz | signature | sks | skype | skytraq | smoleńsk | sqlite | srtm | ssl | staszek wawrykiewicz | statistics | stats | statystyka | stix | stretch | suwałki | svg | svn | swornegacie | szwajcaria | słowacja | tbilisi | terrorism | tex | texgyre | texlive | thunderbird | tomato | totalnaopozycja | tourism | tramp | trang | truetype | ttf | turystyka | tusk | tv | tv5monde | twitter | typetools | ubuntu | uchodźcy | udev | ue | umap | unix | upc | updmap | ups | utf8 | varia | video | vienna | virb edit | vostro | wammu | wdc | wdfs | webcam | webdav | wh2080 | wiedeń | wikicommons | wilno | windows | windows8 | wine | wioślarstwo | word | wordpress | wrt54gl | ws1080 | wtyczka | ww2 | www | wybory | wybory2015 | włochy | węgry | xemex | xetex | xft | xhtml | xine | xml | xmllint | xsd | xslt | xvidtune | youtube | yum | zakopane | zakupy | zdf | zdrowie | łeba | świdnica | żywność
Archiwum
O stronie
wykorzystywany jest blosxom plus następujące wtyczki: tagging, flatarchives, rss10, lastbuilddatexhtmlmime. Niektóre musiałem dopasować nieco do swoich potrzeb. Więcej o blosxom jest tutaj
Subskrypcja
RSS 1.0
Posokowiec bawarski

UWAGA: Będzie długie i o jeleniu (na zwłoki którego najechałem w sobotę)

Znajomy (korposzczur -- jego własne określenie więc się nie obrazi) się przejął (bardziej niż ja) i mnie mobilizuje do alarmowania świata w temacie: ,,czy etyczne jest, że ktoś dopuścił do tego, że zwłoki jelenia leżą na polu.'' Przypuszczalnie zwierzę zostało postrzelone, uciekło i padło, że tak powiem w pewnym oddaleniu od strzelca. Takie rzeczy się zdarzają oczywiście. Skoro się zdarzają to pewnie są jakoś regulowane choćby zwyczajowo (etycznie/nieetycznie)

No to sru... piszemy w google i mamy (UWAGA: Postrzałek = postrzelone zwierzę; moje komentarze wewnątrz [[ .. ]]):

Rozporządzenie ministra środowiska z dnia 23 marca 2005 r. w sprawie szczegółowych warunków wykonywania polowania i znakowania tusz Dz.U. z dnia 15 kwietnia 2005 r.; Zmieniona wersja (2011-12-14) Dz.U.2011.257.1548. Albo www.lowiecki.pl/gdansk/lowiec/regpol.html Albo Poszukiwanie postrzałka przy użyciu psa.

Art5/8: polowanie na zwierzynę grubą może odbywać się pod warunkiem zapewnienia udziału w poszukiwaniach postrzałka, ułożonego w tym celu psa.

[[Jeżeli nie miał psa to naruszył prawo. To jest zapis chyba obowiązujący od 2010 r.]]

[[To teoria, a teraz praktyka:]]

Udział psa w polowaniu -- czy na co dzień respektujemy przepisy prawa łowieckiego?/Zbigniew Ciemniewski. Ciekawe też tutaj: http://www.bowhunting.pl/pies-dla-mysliwego-z-lukiem/b/34

[[polowanie z łukiem. Ja pierdziu... BTW ale: ]]

Nie każdy myśliwy ma możliwość posiadania własnego psa. Charakter pracy, trudne warunki lokalowe, powodują, że trzymanie psa w domu często staje się niemożliwe. Nie zwalnia to jednak myśliwego z obowiązku szukania postrzałka z pomocą psa. Nie znam koła czy obwodu, w których nie ma przynajmniej jednego psiarza, do którego można zadzwonić po pomoc. Przy niektórych zarządach okręgowych PZŁ istnieją nawet tzw. pogotowia postrzałkowe zrzeszające właścicieli psów ułożonych do poszukiwania postrzałków. Zapisanie numerów telefonów do kolegów posiadających psy i korzystanie z ich pomocy pomoże wypełnić regulaminowy obowiązek każdego myśliwego, który mówi że polowanie na zwierzynę grubą może odbywać się pod warunkiem zapewnienia w poszukiwaniach postrzałka udziału ułożonego w tym celu psa (Art 5. 1. 8 regulaminu polowań).

[[czyli jakaś tam small-afera mogłaby być. Ale niekoniecznie (klubposokowca.org.pl/?page_id=87):]]

Co prawda rozporządzenie ministra środowiska w sprawie szczegółowych warunków wykonywania polowania, zobowiązuje myśliwych do zapewnienia udziału w poszukiwaniach postrzałka ułożonego w tym celu psa, jednak interpretacja pojęcia ,,ułożonego psa'' nie jest podana i w związku z tym jest bardzo dowolna.

[..]

Oczywiście mistrzami w tej dziedzinie pracy myśliwskiej są posokowce.

:-) Oczywiście. Kurde nawet nie wiedziałem że coś takiego istnieje podróże kształcą :-) Do dziś jakby mi ktoś powiedział POSOKOWIEC to bym to z owadem kojarzył prędzej, które to mają bombastic nazwy często.

Więc na koniec: https://www.olx.pl/zwierzeta/psy/q-posokowiec-bawarski/.

A na finalny-koniec: jeżeli ktoś doczytał aż tu i ma wśród znajomych myśliwego, który by się ustosunkował, to będę wdzięczny za komentarz.

url | Tue, 22/05/2018 04:32 | tagi:
Pętla: Skarszewy-Starogard-Pelplin-Tczew

Pojechałem sobie w niedzielę (19.05) właśnie taką trasą

Mieszkając w środku 3Miasta ma się problem z wyjechaniem z miasta w kierunku wschód/zachód. Na północ się nie pojedzie, bo morze. Pozostaje południe, tyle że się nudzi te ciągłe jeżdżenie na kierunku Osowa-Chwaszczyno-Kielno.

Weekend jest zatem dobrym momentem przejechania przez duże miasto w miarę sprawnie (światła/ruch/skrzyżowania), a zwłaszcza w godzinach porannych. Tak do 6:00--7:00 Gdynia to prawdziwe #GhostTown. W Gdańsku jest już wtedy większy ruch, ale też bez porównania z tym co się dzieje później, o ruchu w normalne dni/godziny nie wspominając.

No to pojechałem na Kociewie, rozpoczynając o 7:10. Wg planu przejechałem Gdańsk swoją trasą optymalną (dłuższą niż wzdłuż al. Zwycięstwa ale minimalizującą liczbę świateł, na których trzeba stawać i czekać na zmianę): Czyżewskiego-Polanki-Partyzantów-Matejki-Do Studzienki. Potem Końskim Traktem aż do Ronda Ofiar Katynia (lepiej znanym pod nazwą Plac Zebrań Ludowych). Teraz 3 Maja-Armii Krajowej i myk już jestem na #DK91. Ruch znikomy więc komfortowo pomykam na Pruszcz. DK91 generalnie jest bezpieczna, bo szeroka, tyle że jak jest duży ruch to hałas jest. Tą ścieżką na wale nie jeżdżę--nawierzchnia słaba/dużo przeszkód typu wysokie krawężniki. Nie mam obowiązku używania tej ścieżki zresztą więc działam też zgodnie z kodeksem.

Wylot (albo wlot) na Starogard (#DK222) jest zamknięty -- bo remont -- więc jadę dalej do Pruszcza z zamiarem wjechania na #DK226 albo #DK222. Skręcam od razu w ul. Raciborskiego, czyli decyduję się na DK222. Bym jechał dalej to mógłbym skręcić w ul. Zastawną (pierwszy skręt w prawo za Radunią). O tyle ten wariant jest nie-ten-teges, że ileś świateł jest po drodze i to takiej pryncypialnej, że trochę głupio na czerwonym wjeżdżać (a nawet bardzo głupio). Się zresztą okazało, że DK222 jest remontowana nie tylko na odcinku ulicy Starogardzkiej, ale później też. Co jakiś czas ruch jest tylko jednym pasem. Światła na krańcach takich odcinków skutecznie zniechęcają potencjalnych użytkowników, więc droga jest praktycznie pusta. Hurraaa! Do tego wiatr w plecy więc podjeżdżanie na odcinku Pruszcz--skrzyżowanie DK222/DK226, gdzie generalnie jest pod górę, idzie w warunkach komfortowych.

Dalej też zgodnie z planem DK226 do Mierzeszyna, a tutaj wątpliwość co dalej z uwagi na niejasny drogowskaz. Pytam się miejscowego, ale on nie wie, która to 226 (co za ciemniak), i że jak na Nową Karczmę to prosto. Na szczęście się go nie słucham i skręcam w lewo. Droga robi się jakościowo mocno średnia: dziur nie ma, ale nawierzchnia jest wyboista więc trzęsie. Sucha Huta--odludna wieś na skraju dużego lasu. Jeszcze parę kilometrów i skręt na Skarszewy. Do tej pory miałem wrażenie, że wjeżdżam z prawym bocznym przeciwnym wiatrem pod górę. Teraz będzie z wiatrem w plecy. No i dużo w dół, bo generalnie mam się finalnie znaleźć na poziomie Wisły.

W Skarszewach kilka fotek w tym malownicze rozlewisko Wierzycy i dalej jadę na Starogard. Przed Starogardem w Linowcu natykam się, prawie na poboczu na zastrzelonego jelenia. Dziwna sprawa, bo jest około 10:00 a zwierzę leży. Jeżeli to efekt polowania (o czym by świadczyłaby ogromna dziura z boku klatki piersiowej), to pewnie straciło życie wcześnie rano więc upłynęło już wystarczająco dużo czasu żeby go zabrać. Anyway pierwszy raz w życiu widzę coś takiego.

Starogard bez historii--nie planują się tutaj zatrzymywać. Jadę na Pelplin drogą #DK222/#DK229. Wzdłuż obu zbudowali ścieżkę, a na drodze non stop zakaz jazdy rowerem. Zakaz to zakaz--nie jadę. Ścieżka jest bardzo dobrej jakości. Da się jechać szybko, prowadzi jedną stroną drogi więc nie ma tak uciążliwych w przypadku wielu innych ścieżek miedzymiastowych zmian prawa/lewa strona drogi co kilka kilometrów.

Mijam A1 (aka autostrada Bursztynowa), wjeżdżam do Pelplina. To tak w ogóle ciekawe miasteczko jest i godne zwiedzania: muzeum diecezjalne/katedra, ale ja zwiedzałem i jedno i drugie niedawno, więc tylko zdjęcie katedry na dowód, że byłem i jadę dalej kierując się na Rajowy-Maniowo-Radostowo.

Droga znowu robi się wyboista (ale nie dziurawa). Tempo spada wiatr przestał wiać w plecy, jest teraz boczny, często niesprzyjający. W Rajkowach widzę kościół i skręcam. Dobra decyzja: przy kościele stary cmentarz z grobami z końca 19 wieku. Polskie nazwiska i inskrypcje. Jeden kuty krzyż o interesującym wyglądzie oraz jeden żeliwny odlewany. Ha, jeden skalp więcej (mowa o tym żeliwnym odlewanym--których geotagowane zdjęcia kolekcjonuję). Następny przystanek jest już planowany: gospodarstwo pn. Radostowskie Rarytasy. Z daleka widać napis sprzedaż serów czy jakoś tak.

Radostowskie Rarytasy wypatrzyłem na Facebooku. Spodobało mi się, że się fajnie promują. Teraz mam okazję zobaczyć sklep w realu i też mi się podoba. Kupuję kilka małych kawałków różnych serów. Każdy elegancko opakowany w firmowy papier. Do tego masło dla Elki. Pani proponuje jeszcze twaróg i mleko, no ale ja nie mam już miejsca w plecaku, no i do Sopotu jeszcze trochę zostało więc plecak za ciężki to też nie powinien być. Pani sprzedawczyni robi mi zdjęcie przed sklepem i jadę dalej.

Wjeżdżam na DK91 w Subkowach, skręcam na Tczew.

Oczywiście Tczew też warto zwiedzić tak w ogóle, ale ja tu już byłem milion razy więc nie wjeżdżam do miasta tylko DK91 na Gdańsk.

NB chciałem wracać przez Żuławy, ale zmieniam zdanie. Na liczniku już circa 120 km, do domu jeszcze trochę zostało. Szacuję że jak pojadę DK91 to wyjdzie circa 170. Przez Żuławy byłoby dalej. Jadę DK91. Wbrew pozorom jazda tą drogą jest całkiem OK--ruch jest mały, bo większość aut jeździ po A1. Teraz jest pod wiatr, ale ponieważ jest ciepło, to jest OK, tyle że jadę wolniej niż gdyby wiało w plecy.

W Gdańsku mógłbym wracać z grubsza tą samą trasą co jechałem rano, ale decyduję się na inny wariant: DK91 do Huciska (tunelem pod DK501/Armii Krajowej w szczególności)-- Podwale Staromiejskie--Podmłyńska/Rajska (albo Stolarska/Łagiewniki). Jeżeli Podwale Staromiejskie to do skrzyżowania przy Zieleniaku no i dalej standard czyli ścieżka rowerowa wzdłuż al. Zwycięstwa. Jeżeli zaś Stolarska/Łagiewniki, to bardziej skomplikowana trasa: Marynarki Polskiej--Uczniowska--Czarny Dwór itp. Dziś wybieram wariant #1 Podmłyńska/Rajska--al. Zwycięstwa.

W domu jest tuż przed 15:00, na liczniku (prawie) 170km.

Niedziela

Zaczynam godzinę później tj. 8:10. Miasto puste (niehandlowa niedziela BTW). Trasa znana i już raz objechana w całości, a wielu fragmentach, to nawet wielokrotnie: Gdynia-Pierwoszyno-Mrzezino-Puck-Łebcz-Władysławowo. W Pucku ciekawostkowe muzeum jest BTW eksponujące modele wodnosamolotów Lublin R-XIII (nie zwiedzałem, podobno ciekawe). Inna atrakcja w drodze do Pucka to Rzucewo gdzie jest pałac/hotel oraz zejście na plażę z minimolem. Tyle, że droga do Rzucewa (3km) koszmarnie dziurawa

We Władysławowie powrót drogą główną, tj. DK216 (mały ruch) do Widlina, tam skręt na Mrzezino. Stąd praktycznie tą samą trasą co rano tyle, że w przeciwną stronę.

Wycieczka bez historii. W Połchowie są groty (trzeba skręcić przy sklepie w prawo na Gdynię), na które tak w ogóle warto rzucić okiem (google:grota połchowo), ale ja już rzucałem więc nie skręcam. Poza tym, przed Połchowem dogania mnie i śmiało wyprzedza facet na niebieskim Fuji. No to ja mu na koło i jedziemy. Odnoszę wrażenie że gość chce mnie urwać. Zagina się i rantuje. W końcu odpuszcza--się zorientował, że wprawdzie gość (czyli ja) wolno jechał sam, ale teraz to magicznie ożył i nie-da-rady go zgubić. Typ mruka o silnych nogach. Nie odzywa się, ani cześć ani pocałuj-wójta... Za Mrzezinem facet zaczyna się denerwować, widać że moja jazda za nim nie podoba mu się, w końcu macha rękami, zwalnia i zjeżdża w lewo. No to daję zmianę, ale gość nie korzysta z koła--jedzie 10m za mną. Amatorka totalna. Tak dojeżdżamy do skrzyżowania z DK100, gdzie znowu mnie wyprzedza. Tym razem daję mu spokój. A niech jedzie. Niedziela jest, co go będę stresował:-)

W domu jest tuż przed 12:45, na liczniku (prawie) 110km.

Do pobrania ślady kml ze zdjęciami; zdjęcia (flickr); ślad gpx; ślad kml.

url | Mon, 21/05/2018 12:54 | tagi: , ,
Bardzo długi weekend (podsumowanie)

W tym roku długi weekend był naprawdę długi bo trwał 10 dni. Zaczął się w piątek 27 kwietnia a skończył dziś 6 maja. Do tego wyjątkowo dopisała pogoda. Nie padało, było słonecznie ale nie upalnie. No może noce/ranki były trochę zimnawe, ale przecież to przełom kwietnia/maja więc jakby tak ma być.

Plan był taki: do Bachotka (na TeX-konferencję) w piątek, tam posiedzieć do 29 kwietnia do południa. Z Bachotka pojechać na Warmię, konkretnie na jej część wokół Braniewa. Zwiedzanie tej części Warmii miałem od dawna w planach. Zatem 29 kwietnia Bachotek-Nowa Pasłęka, potem 30 kwietnia pętla przez Pieniężno/Górowo i drugie nocowanie w Nowej Pasłęce. Wreszcie 1 maja powrót do Sopotu. Tyle było w planach, pozostałe rowerowanie w dniach 2--6 maja to już było spontanicznie i wokół Sopotu. Szczegóły przedstawia zestawienie:

Dzień27.0428.0429.0430.041.052.053.054.055.056.05
Dystans1854020018515570802519075

Zawartość sakw/plecaka/kieszeni koszulek

Razem dystans przejechany 1205 km w tym 765 km na żółtym z bagażem oraz 435 km na czarnym. Pierwszy raz w życiu jeździłem na rowerze z sakwami. Do tej pory jeździłem do Bachotka bez bagażu, który podrzucałem znajomym do przewiezienia. W tym roku było inaczej i w tym celu wyposażyłem rower w dużą torbę na kierownicę Ortlieb Ultimate oraz bagażnik Authora na rurę podsiodłową. Obie rzeczy kupiłem dawno temu, ale niespecjalnie z nich korzystałem.

Ponieważ z dawnych czasów kiedy parę razy go założyłem pamiętałem, że bagażnik Authora na szybkozamykacz miał tendencję do przekręcania się w czasie jazdy, zmieniłem szybkozamykacz na normalną śrubę z imbusem. Ponadto przypadkowo zupełnie da się wstawić ten bagażnik w tylne widełki ramy mojego roweru przełajowego i zamocować go na rurze ramy a nie na rurze podsiodłowej. W tej pozycji bagażnik znajduje się niżej co obniża środek ciężkości i lepiej wygląda. Bagażnik wyposażony był w niewielką sakwę, na którą dołożyłem miękką sakwę podsiodłową. Tę miękką też kupiłem kiedyś a nie teraz i nawet wykorzystuję ją od czasu do czasu, ale uważałem ją za średnio wygodną i mało pakowną. Teraz zyskała na wygodzie i pakowności bo zamiast wisieć, leży na bagażniku. Całość jest owinięta gumowymi ściągaczami.


Rower gotowy do wycieczki

No więc koncepcja się sprawdziła: nie nie odpadało, nic się nie luzowało. Pewien problem był z przodu, bo torba powodowała, że zdjęcie obu rąk z kierownicy wprowadzało rower w silne drgania. W rezultacie nie dało się jechać bez trzymanki, a lubię tak robić co jakiś czas celem rozprostowania pleców. Próbowałem problem rozwiązać, przepakowując maksimum lekkich rzeczy do torby na kierownicę, ale to tylko go zmniejszyło ale nie zlikwidowało całkowicie (drgania pojawiały się później i były mniejsze).

Torba na kierownicy powoduje zresztą inny kłopot: nie da się zamontować kamery (well by się dało ale trzeba pogłówkować). W rezultacie zamiast kamery 4K Xaomi przeprosiłem się z Contourem i zamocowałem go uniwersalnym uchwytem do rur na goleniu widelca. 1/3 obrazu zajmuje wtedy kręcące się koło ale lepsze to niż nic. Trudny wybór: można by zrezygnować z tej torby (na moje dałoby upchnąć wszystko z tyłu) ale z drugiej strony, to co jest w Ortliebie jest bajecznie łatwo dostępne (nawet bez zatrzymywania się, w czasie jazdy, da się otworzyć/zamknąć tę torbę.)

Co zabrałem? Trochę odzieży żeby nie chodzić w kolarskich (spodnie, bluza, bielizna cywilna no i ekstra skarpety. Do tego bluza/spodnie termoaktywne plus kurtka ROADR 900 B'Twin na wypadek zimnych nocy/deszczu), trochę jedzenia na wszelki wypadek (jak zjadłem miałem lżej). Mały ręcznik + pasta i szczoteczka. Nie miałem cywilnych butów. Dużo elektroniki: 2 aparaty fotograficzne, bardzo mały komputer (0,5kg), smartfona, kamerę sportową. Różne kable i zasilacze (i tak jednego zapomniałem). Kamera jechała na rowerze, smartfon i aparat kompaktowy (Sony RX100) były w kieszeniach koszulek a drugi większy aparat (Olympus E-M10 + obiektyw Panasonica 12--32mm) w plecaku (albo w Ortliebie, no ale wtedy drgania większe:-)) celem łatwego dostępu. Nie zabrałem powerbanku--co było błędem. Koniecznie trzeba. Generalnie dużo to ja nie wziąłem,ale i tak rower był odczuwalnie cięższy. Bagaż było ustawiony raczej pod dobrą pogodę, ale gdyby padało to też nie byłoby problemu tyle, że musiałbym błotniki zamontować (a mam takowe do tego roweru pn. SKS XRaceblade -- bardzo dobre, mimo że połówkowe).

Czy mój wybór bagażu jest OK, no to by wymagało weryfikacji także w gorszych warunkach pogodowych. Na moje odzież nie stanowi wielkiego problemu--zawsze można coś kupić w sklepach z tanią odzieżą. BTW takie sklepy są powszechne na prowincji, a już zakup brakujących kabli/ładowarek może być problematyczny, albo zbędnie-kosztowny.

Uprzedzając pytanie nigdy nie byłem fanem nocowania w namiocie. Więc w czasach gdy znalezienie agroturystyki jest bajecznie proste i tanie raczej nikt mnie na wożenie namiotu/śpiwora nie namówi.

W planach następne wojaże--stay tuned.

url | Sun, 06/05/2018 17:47 | tagi: ,
Wyjazd w długi weekend (Bachotek 2018)

27 kwietnia: Sopot--Bachotek (185km) z przystankiem w Nowym Mieście Lubawskim. Źle policzyłem czas/dystans i będąc w niedoczasie pojechałem najkrótszą drogą: Tczew-Malbork-Pasłęk-Susz-Iława. W sumie bez historii dotarłem do NM Lubawskiego, gdzie byłem umówiony z koleżeństwem ADD (jeszcze z liceum się znamy), które tam mieszka. Mile spędziliśmy 2 godziny, po czym pojechałem dalej do Bachotka. Na miejscu byłem około 21:30.

28 kwietnia: dzień wolny (miał być), ale jednak pojechałem dwa razy do Brodnicy po zakupy (4x10km = 40km). Drugi wyjazd po produkty na grila, się bowiem nagle okazało, że ogniska nie będzie 28. kwietnia tylko dzień później. Zamiast na ognisko zaprosiłem ADD na grila. Fajnie było...


Cmentarz hrabiów zu-Dohna-Lauck (mój ślad obok)

29 kwietnia: odwrót z Bachotka, ale nie do domu tylko do Nowej Pasłęki. Znowu wyjechałem za późno do tego zapomniałem naładować smartfona (błędem było także niezabranie powerbanku). W rezultacie mocno nadłożyłem drogę i przyjechałem na kwaterę znowu ciemną nocą (200km). Do tego uparłem się zobaczyć płyty nagrobne w Markowie koło Morąga. Na szczęście: ostatni fragment trasy był dość nieskomplikowany, droga równa i bez dziur a księżyc w pełni. Dotarwszy do Nowej Pasłęki pytam się pierwszej osoby gdzie jest pensjonat `U Rybaka', w którym miałem zarezerwowany nocleg. Pan do mnie przyjechał to tutaj. Się okazało, że `U Rybaka' jest blisko wjazdu/wyjazdu na Braniewo. BTW fajna i godna polecenia agroturystyka.

Co do płyt z Markowa, to i tak ich nie zobaczyłem. Pod presją czasu nie zdecydowałem się na ich szukanie. Wyjeżdżając z Bachotka nie odrobiłem pracy domowej, zakładając że jakoś trafię. Pytałem się miejscowych, ale dupa-zbita--nie było to takie proste. Teraz widzę, że nawet za pomocą Google nie jest to proste--większość stron nie podaje gdzie to dokładnie jest. W końcu znalazłem (http://www.ciekawemazury.pl/info.htm#1856/pl/i/pseudomegalityczny_cmentarz_dohnow) i wydaje się że informacja jest poprawna (pałac Dohnów jest oznaczony poprawnie, to pewnie cmentarz też). Byłem blisko, co wiadać na zrzucie z googleMaps.

30 kwietnia: objazd Warmii (północnej). Pojechałem przez Pieniężno do Górowa-Iławieckiego. W obu miastach już kiedyś byłem, ale krótko i przelotem. Tym razem chciałem zwiedzić muzeum Księży Werblistów (Pieniężno) oraz muzeum gazownictwa (Górowo). Miało być 160 km, a wyszło 180.

Muzeum Weblistów bardzo fajne i godne polecenia. Urządzone pomysłowo i ze smakiem. Dużo strojów/masek oraz kilkadziesiąt egzotycznych instrumentów muzycznych (coś dla Elki). Nie wiem czy to standard jest w każdym przypadku, ale zostałem wpuszczony do środka i pozostawiony samym-sobie (jak pan będzie wychodził, to pan drzwi zatrzaśnie). Za to muzeum gazownictwa okazało się totalną porażką. Słabo z informacją -- na mieście nie ma drogowskazów, co jest jakby standardem w przypadku tego typu placówek. Po odszukaniu stosownego adresu za pomocą googleMaps nie bardzo wiadomo jak wejść. Się okazuje, że muzeum jest bezobsługowe -- żeby zwiedzać, to trzeba zadzwonić do miejscowej Informacji Turystycznej. Ja miałem pecha, telefon nawet ktoś odebrał ale zostałem poinformowany, że dzisiaj nieczynne. Podany powód był dziwaczny i raczej dla mnie był jeszcze jednym dowodem na to, że muzeum niespecjalnie jest warte uwagi.

Górowo jako atrakcję reklamuje też: Żywkowo często nazywane [...] Stolicą Bocianów. Do tej składającej się z dziewięciu gospodarstw i zamieszkanej przez 25 osób wsi co roku przylatuje około 100 bocianów. Odlatuje z niej około 200. Pojechałem, bez rewelacji. Gdybym nie pojechał to bym wiele nie stracił. Droga do Żywkowa dziurawa...

1 maja: powrót do domu przez Żuławy. Wystartowałem o 5. coś tam rano... Jadę do Fromborka, tam już byłem więc nie zatrzymuję się, zresztą nie ma po co. Jest 6 rano i miasto jest całkowicie wymarłe. Następne miasteczko--Tolkmicko zwiedzam pobieżnie. W Suchaczu na plaży jem śniadanie. Cała plaża to 100x30m piasku pośrodku ogromnych trzcinowisk. Omijam S7/E28 i jadę do domu przez Żuławy--super malownicza trasa wzdłuż Nogatu. Setki wędkarzy na brzegu i na łodziach. Nogat przekraczam na moście w Kępkach/Bielniku Drugim (oryginalna nazwa!) Droga jest całkiem dobrej jakości.

W Kępkach kieruję się na Stegnę, ale za Rybiną z drogi 502 skręcam na Sztutowo (jest drogowskaz). W rezultacie wyjeżdżam tuż obok obozu Stuthoff. Z rowerem nie wpuszczają, ale odwiedzam księgarnię, sprzedającą m.in. publikacje wydane przez Muzeum Stuthoff. Miła pogawędka z ochroniarzem, który mnie opierdolił bezceremonialnie w zeszłym roku:-) za próbę wjechania rowerem, przy czym od razu wyjaśniam że zrobiłem to nieumyślnie. W KL Stuthoff są bowiem co najmniej dwie bramy, pierwsza przy drodze i jak na moje to nie wiadomo po co jest, bo można nią swobodnie wchodzić/wychodzić (ale nie wjeżdżać--szlaban jest) i przy tej bramie nie ma żadnych kas itp instalacji. Do drugiej położonej ze 100m od pierwszej nie dotarłem -- pewnie są tam kasy i kontrola biletów przy wejściu. Mi się wydawało, że zakaz jazdy--całkowicie zrozumiały, bo przecież jest to jeden wielki cmentarz -- jest od kas/wejścia za biletem. No nie jest--faktycznie jest znak zakazu jazdy rowerem już przy pierwszej bramie, na który nie zwróciłem uwagi zakładając, że i tak nie wjadę do obozu, ale do kas jeszcze mogę...

Chcę sobie skrócić/urozmaicić drogę więc jadę na Mikoszewo gdzie za 5 PLN przekraczam Wisłę promem. Full luda, w obie strony. Od Przejazdowa droga na Gdańsk pusta. Przed Gdańskiem policja mnie molestuje że nie-ścieżką-to-tamto. W końcu puszczają bez mandatu. Generalnie pełno policji chuj-wi-po co (bo ruchu nie ma), to szukają pretekstu, żeby kumendant ich nie opierdolił po powrocie, że w krzakach spali zamiast patrolować. Oczywiście standardowe pierdolenie jak to oni dbają o moje bezpieczeństwo swoją (w oczywisty sposób zbędną) działalnością. Ciekawe czy sami wierzą w te brednie? Jeżeli zamiast mózgu nie mają gówna, to pewnie tak -- niełatwo jest żyć ze świadomością bycia pasożytem. NB. 3-go maja jeszcze mniejszy ruch i jeszcze więcej policji. Pierwszy samochód jaki zobaczyłem zaczynając wycieczkę do Rewy o 5:30 rano to był radiowóz. Normalnie państwo policyjne.

No ale summa sumarum udana wycieczka nie skończyła się mandatem więc nastrój tylko trochę mi popsuli. Do domu przyjeżdżam jakoś tak koło 14:00. Na liczniku 155km. Łącznie przejechałem +750km. Warmia to fajnie miejsce do rowerowania: mały ruch i drogi generalnie dobrej jakości (są wyjątki oczywiście z odcinkiem Markowo--Klekotki--Godkowo na czele, który jest tak dramatycznie kiepski, że nawet na GoogleMaps to wyraźnie widać.).

Do pobrania ślady kml ze zdjęciami; zdjęcia (flickr); ślad gpx; ślad kml.

url | Fri, 04/05/2018 17:48 | tagi: , ,
Uwagi na temat pozycji na rowerze

Moim zdaniem na problem w plecach generalnie pomaga skrócenie zasiegu, tj odległości od siodła do kierownicy. Ja (192cm/względnie krótkie nogi/długi tułów) mam tą odległość równa 55--6cm, liczone od czubka siodła do środka kierownicy. Różnica siodlo--kierownica circa 7 cm.

Żeby skrócić pozycję można:

1. Zmienić mostek na krótszy i o większym wzniosie i/lub zamontować go w pozycji odwrotnej. Mostki mają typowo wznios plus/minus 8--10° (stopni). Zakłada się je w pozycji minus, ale ponieważ rura sterowa ma nachylenie 73 stopnie, to 90° - 73° - 8° = 9° stopni wzniosu. Jeżeli mostek się przekręci to będzie 90° - 73° + 8° = 25° (czyli dużo więcej).

Subtelny problem: czy lepiej zmienić np 12cm na 8cm bez odwrócenia mostka czy 12cm odwrócić? Oczywiście krótszy mostek będzie bliżej siodła ale kierownica będzie niżej, dłuższy oddala kierownicę ale będzie ona wyżej. Moje doświadczenia są takie że lepiej mieć mniejszą różnicę siodło-kiera czyli lepszy będzie 12cm odwrócony

2. Zmienić kierownicę na kompaktową. Kierownice mają różne gięcie, które charakteryzują dwa parametry zasięg (reach) oraz głębokość (depth). Im większy zasięg tym większa odległość do klamek, im większa głębokość tym trzeba się bardziej zgiąć w dolnym chwycie.


Rys. 2. Kompakt jest po lewej jak się łatwo domyśleć

3. Podsunąć siodło maksymalnie w stronę kierownicy bez przejmowania się o pozycję wzg pedałów (ja tak zrobiłem w swoim rowerze).

4. Zmienić sztycę (wspornik siodła) na zero offsetową. Większość sztycę ma offset w stronę tylnego koła:


Rys. 3. Zero offetowa sztyca jest po prawej jak się łatwo domyśleć (na sztycy po lewej strzałką zaznaczono offset)

Ja mam mostek 12cm odwrócony (10°) + zero offsetową sztycę i kierownicę FSA compact (reach: 80mm/depth): 125 mm). FSA to nazwa firmy produkującej BTW.

url | Mon, 23/04/2018 10:08 | tagi: ,
Syrop z podbiału

Wpis na Twitterze pani rzecznik Lasów Państwowych mnie zainspirował żeby też zrobić syrop z podbiału.

Z grubsza wiem jak wygląda podbiał. Pojechałem go szukać. W środę taka trasa: DolinaRadości--Droga Węglowa--Owczarnia--Lotnisko--Rębiechowo--Barniewice--Borowiec--Osowa. Słabo z podbiałem--tu i ówdzie trochę. W zasadzie przyjechałem z niczym. W czwartek znalazłem większą miejscówkę w Koleczkowie (skręt w lewo w ul. Kamieńską, jazda aż do końca asfaltu) i uzbierałem 1,5małego słoika. W piątek jeszcze raz do DolinyRadości żeby dozbierać do drugiego słoika. Się okazało, że wzdłuż Drogi Węglowej rośnie tego bardzo dużo--po prostu w środę jeszcze się większość nie rozwinęła, za wcześnie byłem. Dozbierałem do drugiego i z rozpędu uzbierałem na trzeci słoik.

Na razie może starczy, zobaczymy co z tego wyjdzie. Wykonałem zgodnie z opisem z Internetu: przesypałem warstwy kwiatostanów cukrem, umieściłem słoiki na parapecie. Po tygodniu, tj. w przyszły piątek zamierzam to zlać i pewnie jednak dla bezpieczeństwa wsadzę do lodówki.

Film nawet poklatkowy robię, ale z problemami. Chyba źlę ustawiłem słoik (za blisko) bo wiele zdjęć jest nieostrych. Podbiału jak mówiłem starczy, ale być może poświęcę się dla sztuki (filmowej) i jednak się kopsnę po czwarty słoik, wyłącznie po to, żeby wykonać lepszy film. To co wyszło do tej pory jest do obejrzenia tutaj.

Zdjęcia do całej historii są zaś tutaj

url | Mon, 16/04/2018 07:51 | tagi: , , ,
Sernik z koziego sera


Sernik to moje ulubione ciasto. Wreszcie się odważyłem i zrobiłem sam na podstawie https://aniagotuje.pl/przepis/sernik-z-koziego-sera, ale ogólny schemat postępowania jest prosty i wygląda następująco: utrzeć żółtka z twarogiem, dodać ubite białka. Wylać na (jakiś) spód i upiec. Reszta to detale.

Składniki: 400 g sera koziego; 4 jajka rozmiar M; 40 g masła; łyżka mąki ziemniaczanej; 60 g cukru pudru; 6 okrągłych biszkoptów. Ja dałem 300 g sera koziego kanapkowego Danmis + resztę uzupełniłem twarogiem łowickim na sernik w opakowaniu 1 kg. Że na sernik to nie trzeba nic mielić. Moim zdaniem zamiast ww. można użyć spokojnie inne. Jak ktoś chce mielić to też nie ma problemu i może kupić nie zmielony.

Oddziel żółtka od białek. Białka odłóż. Żółtka utrzyj z cukrem. Dodaj masło i twaróg/ser. Dodaj mąkę i wymieszaj masę łyżką (ja mikserem). Ubij białka i wmieszaj delikatnie z masą serową.

Dno tortownicy wyłóż papierem do pieczenia. Od środka wysmaruj tortownicę resztkami masła (nie zrobiłem tego).

Biszkopty zetrzyj na tarce. Wysyp mąkę z biszkoptów na dno tortownicy i rozprowadź równomiernie. Wylej masę sernikową na starte biszkopty.

Na dno piekarnika połóż naczynie wypełnione wodą. Dzięki temu sernik nie będzie pękał w czasie pieczenia. Sernik piecz na środkowej półce 50 minut w temperaturze 170 C. Sernik bardzo urośnie. Po wyłączeniu piekarnika opadnie, zachowując bardzo aksamitną i puszystą konsystencję. Po upieczeniu, sernik zostaw na 30 minut w piekarniku przy uchylonych drzwiczkach. Ja nakryłem tortownicę dla pewności folią aluminiową żeby mi się góra nie spaliła.

Po upieczeniu posypałem ekstra cukrem pudrem. Można oczywiści nic nie kombinować albo polać jakąś polewą.

Ciasto zrobiłem 3 razy i zawsze wyszło za wyjątkiem pierwszego razu, kiedy nie nakryłem folią i wierzch się mocno brązowy zrobił. Dalej było dobre, ale wyglądało tak sobie.

Zdjęcia pokazujące kluczowe fazy wykonania są tutaj

url | Mon, 02/04/2018 01:00 | tagi: , , ,
MS SQL, Perl i DBI

Kolega L. mi zadanie zlecił, w którym wykorzystywaną bazą musi być MS SQL. Podchodziłem do tego jak do jeża, ale wreszcie się przełamałem, usiadłem i działa (aż dziwne). W skład zadania wchodzi też baza danych pn. GraphiPlus, która zawiera m.in. tabele o nazwach dbo.FACTURES oraz dbo.SOCIETES:

#!/usr/bin/perl
use strict;
use utf8;
use DBI; 
require DBD::ODBC;
my $serverN = 'E5410-KOMPUTER\\SQLEXPRESS';
my $baseN = 'GraphiPlus';
my $dsN = "GraphiPlus";
## Obie formy działają (pierwsza przez DSN = Data Source Name/Źródło danych)
## Definiowanie DSN: Panel_Sterowania→Wszystkie_Elementy→
##    Narzędzia_Administracyjne→Źródła_danych_(ODBC)
# my $dbh = DBI->connect("dbi:$dsN", '<UID>', '<PASSWD>',
#   { RaiseError => 1 } ) or die DBI->errstr;
# Albo
my $dbh = DBI->connect("dbi:ODBC:driver={SQL Server};Server=$serverN;database=$baseN;uid=<UID>;pwd=<PASSWD;",
   {RaiseError => 1, } ) or die DBI->errstr;

print "*** Połączono z $baseN ***\n";

## małe litery do.TABELA są istotne!
my $sth = $dbh->prepare("SELECT * FROM dbo.FACTURES ") || die "ERROR" . $dbh->errstr ;  
$sth ->execute();

print "**** Tabela FACTURES:\n";
while ( my @invoiceRecord = $sth->fetchrow_array() ) {
   print (join(";", @invoiceRecord) . "\n");
}

## musi być (w mySQL niekoniecznie)
$sth->finish();

print "**** Tabela SOCIETESS:\n";
my $sth = $dbh->prepare("SELECT * FROM dbo.SOCIETES ") || die "ERROR" . $dbh->errstr ;  
$sth ->execute();

while ( my @invoiceRecord = $sth->fetchrow_array() ) {
   print (join(";", @invoiceRecord) . "\n");
}

$sth->finish();

$dbh->disconnect();

###

Gdybym nie znał nazw tabel to można je ustalić albo za pomocą SQL Server Management Studio, albo wykonując polecenie SELECT na systemowej tabeli pn. sys.tables:

my $sts = $dbh->prepare("SELECT name FROM sys.tables ") || die "ERROR" . $dbh->errstr ;
url | Tue, 20/03/2018 17:43 | tagi: , ,
Jak zacząłem pracę z TeXem

Przypadek wielokrotny zadecydował.

Studia skończyłem w roku 1987r. W tym czasie po studiach szło się do wojska na 1 rok. Mając do wyboru pobór we wrześniu 1987 albo w styczniu 1988 albo w maju 1988 zdecydowałem się na maj. Kombinowałem oczywiście żeby nie iść, ale słabo i się nie wykręciłem. Tym bardziej że tuż przed końcem PRLu przykręcono śrubę na odcinku obronności i brano bez litości wszystkich, nawet tych z kategorią C i papierami o depresji czy dyskopatii (z tymi to był kabaret zresztą na przykład na strzelnicę taki dyskopatyk jechał a nie szedł -- ciężarów nie mógł przecież dźwigać, a karabin jest ciężki). Wracając do TeXa -- wygrałem los po raz pierwszy: bym poszedł w styczniu/wrześniu (lub wcale) nie poznałbym TeXa (raczej)...

Wróciłem do pracy na Uniwersytecie w maju 1989 (dla przypomnienia w czerwcu 1989 był okrągły stół). Kompletna zmiana sytuacji, jeszcze w sierpniu 1988 jak rozpoczął się strajk w Stoczni (22 sierpnia), a ja udawałem Marine (aka niebieskiego bereta) w czymś co się nazywało 7 Pomorska Brygada Obrony Wybrzeża (35 pułk desantowy, Gdańsk-Wrzeszcz, ul. Słowackiego -- teraz osiedle Garnizon), to ktoś wpadł na pomysł wysyłania patroli wojskowych na miasto z bronią, ale bez amunicji, w składzie żołnierze służby zasadniczej + dowódca podchorąży (czyli m.in. ja). Oficer dyżurny: Tylko k#rwa podchorąży pamiętajcie, jak tylko coś się zacznie, to wy od razu macie spierdalać z powrotem do koszar... Wychodzi na to, że los po raz drugi się uśmiechnął, że to poszło w tą stronę co poszło, bo były obawy, że my w tym 35 pułku (desantowym) posiedzimy dłużej.

Jakoś tak po roku, czyli w 1990, ktoś mi powiedział, że dla pracowników Uniwersytetu organizuje kursy języka angielskiego firmowane przez British Council. No to się zapisałem.

Kursy to (dla wygody kursantów?) były tak organizowane, że grupy tworzono ,,według wydziałów'', tj. zapisywano wszystkich z wydziału do jednej grupy. Oczywiście ktoś tam zawsze był nadmiarowy. Ja trafiłem do grupy ,,nadmiarowej''. Wygrałem los po raz trzeci -- bym trafił do grupy ,,wydziałowej'', to bym się kisił w starym sosie, w towarzystwie znanym z wydziału (dlatego ten system tworzenia grup był moim zdaniem mało sensowny). Nb wygrałem też tam inny los: poznałem przyszłą małżonkę (z Akademii Muzycznej)

Oprócz małżonki poznałem też Tomasz Janowskiego (dalej TJ) z wydziału Mat-Fiz. Ja pracowałem w katedrze statystyki (tyle, że nie na matematyce tylko na zarządzaniu) a wspólnym problemem był skład wzorów matematycznych, do czego używało się wtedy edytora pn. Chi-Writer. Nie tylko Chi-Writera miał polskie znaczki, ale ktoś dorobił także w miarę obszerny zestaw symboli matematycznych. Wzory się tworzyło za pomocą prymitywnego bo prymitywnego ale edytora równań byśmy to dziś nazwali. Wynik niewiele się różnił od tego co dawała maszyna do pisania, tyle że przynajmniej nie trzeba było używać długopisu do dopisywania. A znasz taki program TeX? -- pyta TJ Pierwsze słyszę -- odpowiadam. Ten TeX to ma czcionki jak z drukarni (to było wtedy ważne) -- zareklamował go TJ.

Potem się okazało, że TJ poznał TeXa od Włodka Bzyla. Ale to było potem. Na razie dał mi TeXbooka, którego skserowałem. Szybko się okazało, że coś jest z tym TeXem nie-halo. Jak w nim składać polskie teksty? TJ -- no z tym jest problem, my tu używamy ogonek.sty (czy jakoś tak--zestaw makr doklejających grecką jotę pod `a' i `e'). Gdzieś w tych okolicach czasowych dowiedziałem się też co to jest LaTeX oraz zdobyłem kopię podręcznika Lamporta.

Jakiego pierwszego TeXa dostałem od TJ to już nie pamiętam. Była to o tyle niekompletna dystrybucja, że nie miała MetaFonta. Tylko TeX, program do drukowania/oglądania na ekranie i zestaw fontów na jakąś tam typową drukarkę. Używałem go dość krótko, bo szybko zmieniłem na emTeXa. EmTeX był o tyle lepszy, że był kompletny, -- miał MetaFonta. Można było w szczególności generować fonty bitmapowe na różne rozdzielczości, a nie tylko drukować tym co się dostało `z fabryki'. To wszystko działało na komputerze PC-AT (w pracy, swojego PC-TA jeszcze się nie dorobiłem) wyposażonym w DOSa w wersji 3.3 zapewne. To że w ogóle na wydziale był taki nowoczesny komputer było nawiasem mówiąc w dużym stopniu zasługą dr. Mirosława Gronickiego (późniejszego ministra finansów) a wtedy (i pewnie później) entuzjastę nowych rozwiązań, tak to nazwijmy. Z tego co mi się wydaje 3 komputery w katedrze statystyki z PC-AT na czele, to była cała flota PC-towa na wydziale (nie licząc czegoś tam co mieli w (,,specjalistycznej'') katedrze OPD (Organizacji Przetwarzania Danych jakby ktoś się pytał-- później przemianowanej na Katedrę Informatyki Ekonomicznej).) Inni liczyli na kalkulatorach albo w ostateczności korzystali z wątpliwej jakości usług Ośrodka Obliczeniowego (Odra coś-tam-coś tam). Oczywiście uruchomienie TeXa na nie swojej Odrze nie wchodziło w grę.

W tym czasie w prasie pojawiały się ogłoszenia firmy pn Polski TeX spółka z o.o. sprzedającej polskiego TeXa pn. MeX/LaMeX (polski LaTeX) za dość znaczną kwotę. Ten TeX miał mieć dobrej jakości polskie znaki. Kwota było jednak na tyle znacząca, że na kupno się nie zdecydowałem, ale też nie skopiowałem go nielegalnie (naprawdę). TJ przyznał się, że w instytucie matematyki mają licencjonowaną kopię tego `komercyjnego' TeXa. Doczytałem w TeXbooku o MetaFoncie, więc skserowałem MFbooka od TJ. Dorobiłem kulfoniaste ogonki sam, a nawet w ramach samorozwoju znaki do diagramów szachowych.

W końcu, jak już coś tam wiedziałem, no i miałem te diagramy, a dzięki temu nadzieję, że nie wyjdę na naciągacza-żebraka co to przyszedł dupę zawracać, to się odważyłem i poszedłem rozpoznawczo do tego Polskiego TeXa z o.o (Sopot, 3 Maja ileś tam -- w biurze Polskich Młynów, teraz są tam apartamenty). W firmie siedział Piotr Pianowski. Pogadaliśmy. Ja się pochwaliłem diagramami--Piotr wyraził zainteresowanie. Powiedział, że dałby mi tego TeXa, ale wkrótce go upublicznią więc radzi żebym się wstrzymał z bólami parę dni/tygodni. Potem przyszedł jeszcze Staszek Wawrykiewicz. Bogusława Jackowskiego -- chyba wtedy w firmie nie było. Poznałem go później...

Wizyta w Polskim TeXu musiała być jakoś tak jesienią 1991. Następnego roku w czerwcu odbyło się walne zebranie GUSTu w Warszawie, na które pojechałem. Nikogo tam prawie nie znałem i niewiele z tego zebrania pamiętam, oprócz tego że pierwszy i jedyny raz zobaczyłem Romana Tomaszewskiego (reklamowanego m.in. jako konsultant ds diakrytyków w projekcie Polski TeX/MeX). TeX mnie wciągnął, w roku 1993 pojechałem do Bachotka na pierwszą konferencję GUSTu, a już rok później z kolegą Bzylem współorganizowaliśmy konferencję Europejską w Gdańsku, a konkretnie na wyspie Sobieszewskiej. Ponieważ konferencja była za miastem tośmy wymyślili, że oznaczymy drogę do ośrodka Orle (istnieje do dziś) za pomocą kilku porządnie namalowanych na desce drogowskazów. I tu wpadka, bo się okazało że drogowskaz jest albo w prawo albo w lewo, a myśmy o tym nie pomyśleli. Nasze były tylko w prawo, więc wszystkie próby powieszenia go tak aby wskazywał skręt w lewo okazały się daremne. Ostatecznie powiesiliśmy go do góry nogami, żeby chociaż strzałka wskazywała prawidłowy kierunek. Expirience is the best teacher -- ten incydent pamiętam od dziś!

url | Mon, 19/03/2018 18:26 | tagi: ,
Nowy router




Wpis pro memoria, bo ruter (kultowy) WRT54GL, który został kupiony w listopadzie 2007r (za 215 PLN) się popsuł. Działała bezawaryjnie aż do zeszłego piątku (tj. 9 marca 2018). Dziesięć lat.

Więc router się popsuł w piątek późnym wieczorem (o czym nie wiedziałem, bo poszedłem wcześnie spać) a w sobotę od rana walka z Internetem, którego nie było. Oczywiście podejrzenia dlaczego nie ma obracały się wokół dostawcy to znaczy wokół UPC. Kilka resetów modemu nic nie dało, do tego objawy były mocno dziwne. Ping z PCta 100% loss, ping z routera 0% loss. Ping na router 0% loss. Coś mi nie pasuje (cache? ale kto catchuje pinga? tyle, że ja się nie znam na tym za bardzo/prawie wcale)

Dzwonię do pomocy technicznej 3x813 (potem 1 -- klient, 2 -- zgłoszenie awarii, 2 -- internet, 9 -- konsultant).

Pani inżynier z poziomu #2 wsparcia (poziom #1 mnie połączył po usłyszeniu historii o pingach) chce mi wcisnąć ConnectBoksa z montażem w poniedziałek, bo pan ma taki stary modem i dlatego nie działa. -- To państwo zmieniają parametry sieci z piątku na sobotę? Pani inżynier się rozłącza abruptly. Poza tym nie chcę tego ConnectBoksa, bo to urządzenie bardziej prymitywne niż modem + dedykowany router. Oczywiście tańsze, bo router już w zestawie, a ja musiałem sobie router dokupić -- no ale jak kupiłem, to jakby mi zwisa ta konkretna/jedyna zaleta. Niefajnie jest, że oni mogą manipulować tym ConnectBoxem zdalnie a modemem jakby nie w szczególności.

Ten 1-szy telefon do UPC zżera mi wszystkie pieniądze z karty prepaidowej. Teraz nie mam ani Internetu ani telefonu. Do tego dzwonią z roboty czemu mnie nie ma? Kurcze pokićkało mi się -- miałem mieć zajęcia. Na szczęście nie robią wielkich problemów, ale stress większy...

Robię reset routera. Teraz przynajmniej zawsze ping nie łączy tj. 100% loss... Coś się klaruje, wygląda na modem

Jadę na miasto do 2 różnych serwisów na konsultacje -- oba closed (sobota).

Wracam (rowerem) a pod bramą mijam o milimetry otwierane bez upewnienia się drzwi taksówki -- sąsiadka. No punkt dla mnie--tym razem nie zaliczyłem drzwi, zagajam o Internet. Dobra moja -- w tej sytuacji (że przed chwilą mnie nie trzepła drzwiami) pani będzie trudno odmówić a jest zaa ściany. Daje swoje hasło... No to już coś. Mogę działać z jej ConnectBoxem.

Doładowuję telefon (Nju). Dzwonię 2x do UPC. Teraz jakby ich wina. (Inny) Facet mówi, że wyśle technika jeszcze dziś. OK, umawiamy się na 18:00. Problem solved.

Coś mnie jednak tknęło. Robię reset jeszcze raz. Router przestał się świecić. Popsuł się na amen. Szukam godzinę drugiego--jest wprawdzie inny niż ten którego szukałem ale jak ktoś jest 200% bałaganiarzem to i tak się cieszy:-) Zresztą to jest dobry router -- Asus RT-N66U aka #MrocznyRycerz (lubię takie nazwy -- Dark Night w oryginale, kupiony na OLX jakiś czas temu)

Działa.

Kolejne 2x telefony do UPC żeby odwołać technika (50 pln za nieuzasadnione wezwanie--niby nie majątek, ale nie chcę też tracić czasu). Jest 17:00. Dokładną konfigurację/odtworzenie tego co było na tym co się zepsuł zostawiam na jutro. O tyle jest to nietrywialne, że ten router ma inny firmware oczywiście...

Jutro

Się okazało, że w zasadzie nie ma wiele do konfigurowania za wyjątkiem DDNS. W starym to działało ciut inaczej niż w nowym. Oczywiście mam świadomość że można tę usługę uruchomić na komputerze ale ja wolę na routerze.

Wybieram zatem www.dyndns.org(custom), wpisują swoje serwery (oddzielona przecinkami lista). No i tu klops (mały). Okienko na nazwę hosta ma znaczne ograniczenie na liczbę znaków. Nie mogę wpisać wszystkich trzech, bo się nie mieszczą. O tyle ten klops jest mały, że ten trzeci serwer to taki testowo-tymczasowy jest więc po prostu zmieniam mu nazwę na krótszą i gitara.

Teraz trzeba wypełnić tabelkę definiującą przekierowanie portów, co jest w miarę oczywiste. I wszystko -- odtworzyłem stan sprzed awarii...

url | Mon, 19/03/2018 08:08 | tagi: , , ,
Krój Chiller

Plakat studentka do koncertu małżonki zrobiła wykorzystując do tego font pn Chiller. Font typu pisanka, wyróżnia się oryginalnym kształtem `I', do pobrania z fontzone.net (legalności nie badałem). Font nie ma polskich znaków co skutkowało m.in że w literze `ł' na przecięciu `l' oraz dostawionej kreski ukośnej się zrobiło czarno (być może da się zrobić w PhotoShopie `ł' lepiej, bo tak jak zostało zrobione, to ewidentnie wygląda, że jak dwa razy machniesz na brązowo, to masz bardziej brązowo niż jak machniesz raz). No a inne diakrytki a zwłaszcza `ą' czy `ę', to już w ogóle słabo... chociaż ogonek w zestawie gotowy jest.

No więc dorobiłem polskie diakrytyki (bo to pisanka to się odważyłem), a nawet kilkadziesiąt innych diakrytyków oraz cyfry nautyczne (bo je lubię używać). Polskie i litewskie są zrobione szczególnie starannie w tym sensie że nie nakładałem krzywych, tylko usunąłem nachodzące na siebie obszary, tworząc jedną obwiednię.

Wszystko to za pomocą fontforge. Super program muszę przyznać. ChillerPL jest tutaj.

url | Fri, 16/03/2018 08:31 | tagi: , ,
Królowa Polski

Kto z kim przestaje takim się staje (ludowe). Wydawało się parę lat temu że Ann Applebaum to mądra babka (kiedyś Pulitzer), która wprawdzie popełniła mezalias, zauroczona tym swoim Radkiem, no ale takie rzeczy się przecież zdarzają a miłość potrafi być ślepa (znowu ludowe). No niestety do czasu:

Polacy nie rozumieją, jak wielką frustrację w Brukseli budzi Polska -- mówi Anne Applebaum w programie 'Świat, którym żyjemy'. Dodaje, że był moment, kiedy wydawało się, że Warszawa będzie jednym z liderów Unii, a teraz jest poczucie, że to była gra i że może PiS jest autentyczną twarzą Polski. Publicystka Washington Post uważa, że pozycja Polski w strukturach międzynarodowych będzie w dużej mierze zależała od wyniku następnych wyborów. 'Nie wiem, jak długo Polska będzie w Unii Europejskiej i w NATO; jeżeli Polacy w kolejnych wyborach znów zagłosują na PiS, to Zachód zapyta, czy w Europie jest nadal miejsce dla Polski' -- przewiduje laureatka nagrody Pulitzera.

Problemem "Polaków" wszakże nie jest PiS, ale co zamiast PiSu. Tzn. żeby nie wygrał PiS musi być alternatywa, a partia pana Schetyny jest taka sprawna/wiarygodna/ jak jest sprawny/wiarygodny inaczej jej przewodniczący. A to jest zdecydowanie największa partia opozycyjna i jedyny teoretyczny kandydat na odebranie władzy w demokratycznych wyborach PiSowi.

Zatem jeżeli p. Applebaum chce ocalić Polskę, to musi postąpić jak Bolec-Legenda-Wałęsa: nie chcem ale muszę.

Co muszę to jest w tytule...

url | Mon, 05/03/2018 09:53 | tagi: , , , ,
Wybory parlamentarne z 2015 w woj pomorskim

Po latach wykonałem analizę (z rozpędu, zmotywowany analizowaniem wyników Danuty Hojarskiej). W województwie pomorskim są dwa okręgi wyborcze: 25 (Gdańsk) oraz 26 Gdynia. Zbiorcze wyniki z protokołów, które w swoim czasie pobrałem ze strony PKW są następujące:

  Komisje obwodowe wg ROZKŁADU głosów ważnych
  ** Okręg 26 126707 ważne głosy **
Kandydat    Komitet    Głosy Komisje Max      %  Średnia   Me 
-------------------------------------------------------------
Gromadzki   Stonoga     1521  795     12   1.20    1,9    1.0
Furgo       Petru      14239  795    224  11.23   17,9  10.00
Zwiercan    Kukiz      11801  795     65   9.31   14.8   13.0
Miller      Zlew       11524  795     72   9.09   14.5   10.0
Lewna       Psl         4644  795    213   3.66    5.8    2.0
Wysocki     Korwin      9491  795     54   7.49   11.9   10.0
Biernacki   Po         42535  795    312  33.56   53.5   38.0
Szczypińska PiS        30952  795    150  24.42   38.9   35.0

** Okręg 25 130348 ważne głosy **
Kandydat    Komitet    Głosy Komisje Max      %  Średnia   Me
-------------------------------------------------------------
Hojarska    Stonoga     1668  656    152   1.27    2.5    1.0
Lieder      Petru      23155  656    256  35.76   35.3   22.0
Błeńska     Kukiz       9410  656     45   7.21   14.3   14.0
Senyszyn    Zlew       13143  656     75  10.08   20.3   17.0
Sarnowski   Psl         3457  656    134   2.65    5.3    2.0
Rabenda     Korwin      8903  656     65   6.83   13.6   11.0
Krotowska   Razem       6995  656     45   5.36   10.7    9.0
Korol       PiS        28657  656    252  21.98   43.7   30.0
Sellin      PiS        34960  656    213  26.82   53.3   40.0

Te wyniki mogą (ale nie muszą) się ciut-niewiele różnić od oficjalnych--nie porównywałem

Czyli na przykład pani Hojarska dostała 1668 głosów w 656 komisjach co daje średnio 2,5 głosa/komisję (Mediana 1 głos). Rozkłady liczby głosów przedstawione w postaci wykresów słupkowych wyglądają następująco (pierwsze trzy rysunki to okręg 25, następne trzy to okręg 26):

No i wreszcie przedstawienie wyników na mapie z wykorzystanie Google Fusion Tables link do GFT:

Link do danych jest tutaj.

url | Tue, 27/02/2018 10:01 | tagi: , , ,
W prawe ucho lewą ręką przez poręcz

Doszedłem do punktu, w którym tylko tak mogę się podrapać:-)

Mianowicie do pisania bloga używam ciągle kodowania ISO8859-2. Chciałem zmienić na UTF-8, ale wymagałoby to pewnych zabiegów związanych z późniejszym publikowaniem. Nie wchodząc w szczegóły nie chce mi się poświęcać temu czas.

Z drugiej strony czasami ISO-8859-2 ogranicza. Na tę okoliczność wymyśliłem sprytny trick: teksty zawierająca nieincydentalne znaki spoza ISO8859-2 będę pisał w UTF-8 a potem zamienię znaki spoza zakresu ISO8859-2 na character entities typu &cośtam; a resztę przekoduję do ISO. Dało się:

  ## zmienia UTF na encje (http://billposer.org/Software/uni2ascii.html)
  uni2ascii -e -a D ekstremalna_skosnosc.bl8 > ekstremalna_skosnosc.enc
  ## zmienia encje na znaki iso8859-2 (tylko polskie znaki): 
  perl entutf2iso88592.pl ekstremalna_skosnosc.enc > ekstremalna_skosnosc.blx

Śmiesznie, ale działa. Programu uni2ascii nie było w archiwach Fedory, ale bez problemu się skompilował ze źródła.

url | Sun, 25/02/2018 18:18 | tagi:
Hojarskiej ekstremalnie skośny rozkład głosów

Uczono mnie, że współczynnik skośności aczkolwiek może przyjąć wartości większe od 3, to w praktyce taka sytuacja się nie zdarza. Dlatego z rezerwą podszedłem do obliczeń, z których wynikało, że dla pewnego zbioru danych wynosi on 14:

library(moments)
# Wynik 1-ki z listy komitetu Z.Stonogi (D.Hojarska, wybory 2015)
s <- read.csv("hojarska.csv", sep = ';', header=T, na.string="NA");
skewness(s$glosy)
[1] 14.08602

nrow(s)
[1] 657

sum(s$glosy)
[1] 1671

Pierwsza hipoteza jest taka, że formuła liczenia współczynnika może być egzotyczna. Ustalmy zatem jak toto jest liczone:

?skewness
Description:  
This function computes skewness of given data

Wiele to się nie dowiedziałem. Po ściągnięciu źródła można ustalić, że to współczynnik klasyczny czyli iloraz trzeciego momentu centralnego przez odchylenie standardowe do trzeciej potęgi. Zatem jak najbardziej klasyczny a nie egzotyczny. Sprawdźmy co wyliczy Perl dla pewności:

#!/usr/bin/perl

print STDERR "** Użycie: $0 plik numer-kolumny (pierwszy wiersz jest pomijany)\n";
print STDERR "** Domyślnie: wyniki kandydata nr1 na liście komitetu Z.Stonoga (okr.25 / D.Hojarska)\n";

$file = "hojarska.csv"; ## default file
$column = 1; ## first column = 0

if ( $#ARGV >= 0 ) { $file=$ARGV[0]; } 
if ( $#ARGV >= 1 ) { $column=$ARGV[1]; } 

open (S, "$file") || die "Cannot open $file\n";

print "\nDane z pliku $file (kolumna: $column):\n"; 
$hdr = <S> ; # wczytaj i pomin naglowek ($n będzie prawidłowe)
while (<S>) { chomp();
  @tmp = split (/;/, $_); 
  $v = $tmp[$column];
   push(@L, $v) ; 
   $sum += $v; 
   $Counts{"$v"}++;
   $n++;
}

# Wyznaczenie średniej:
$mean = $sum /$n; 

## Wyznaczenie dominanty:
## przy okazji wydrukowanie danych pogrupowanych
print "+--------+---------+--------+--------+--------+\n";
print "| Głosy  | Obwody  |  cumGł | cumGł% |  cumN% |\n";
print "+--------+---------+--------+--------+--------+\n";
$maxc = -1;
for $c (sort {$a <=> $b } keys %Counts ) { 
  $sumCum += $Counts{"$c"} * $c; 
  $nCum += $Counts{"$c"}; 
  if ($maxc_pos < $Counts{$c} ) { 
    $maxc_pos = $Counts{$c} ; $maxc_val = $c
  }
  printf "| %6d |  %6d | %6d | %6.2f | %6.2f |\n", 
    $c,  $Counts{$c}, $sumCum, $sumCum/$sum *100, $nCum/$n *100;
}
print "+--------+---------+--------+--------+--------+\n\n";

$mode = $maxc_val; # dominanta

## Wyznaczenie mediany:
$half = int(($#L +1)/2 );
@L = sort ({ $a <=> $b } @L) ; #numerycznie
##print "$half of @L\n";
$median = $L[$half];

printf "Średnie: x̄ = %.3f (N=%d) Me =%.3f D = %.3f\n", $mean, $n, $median, $mode;

## Odchylenia od średniej:
for my $l (@L) {##
  $sd1 = ($l - $mean) ; 
  $sd2 = $sd1 * $sd1; # ^2 
  $sd3 = $sd2 * $sd1; # ^3

  $sum_sd1 += $sd1; $sum_sd2 += $sd2;
  $sum_sd3 += $sd3;
}

# odchylenie std./3-ci moment:
$sd = sqrt(($sum_sd2 / $n)); 
$u3 = $sum_sd3/$n;

printf "Sumy (x-x̄): %.2f(¹) %.2f(²) %.2f(³)\n", 
   $sum_sd1, $sum_sd2, $sum_sd3;
printf "Rozproszenie: σ = %.3f µ³ = %.3f\n", $sd, $u3;

printf "Skośność: (x̄-D)/σ = %.2f", ($mean -$mode)/$sd;
printf " 3(x̄-Me)/σ) = %.2f", 3 * ($mean - $median)/$sd;
printf " (µ³/σ³) = %.2f\n", $u3/($sd*$sd*$sd);
##//

Uruchomienie powyższego skryptu daje w wyniku to samo. Moja pewność, że wszystko jest OK jest teraz (prawie że) stuprocentowa.

Wracając do R:

library(ggplot2);
p <-  ggplot(data = s, aes(x = glosy)) + geom_histogram(binwidth = 4)
p
breaks <- ggplot_build(p)$data
breaks

[[1]]
     y count   x xmin xmax      density      ncount    ndensity PANEL group
1  482   482   0   -2    2 0.1834094368 1.000000000 2628.000000     1    -1
2  140   140   4    2    6 0.0532724505 0.290456432  763.319502     1    -1
...

Pierwszy przedział jest definiowany jako (-2;2], ale z uwagi na wartość danych de facto liczy głosy w komisjach, w których Hojarska dostała 0--2 głosów (drugi to (2;6], itd) i ni cholery nie da się tego zmienić na coś bardziej zbliżonego do prawdy. Bo tak jak jest to faktycznie pierwszy przedział jest dwa razy węższy niż każdy pozostały. W szczególności prawdziwa średnia, w tym przedziale wynosi 1,259 głosa, zaś liczona jako środek przedziału przez liczebność wynosi 1.0 (482 *1/482). Wg formuły ggplota środek przedziału to zero zatem średnia też wyjdzie 0, tj. wartość jest wyznaczona z dużym/nieokreślonym błędem.

Dzieje się tak ponieważ: the histogram is centered at 0, and the first bars xlimits are at 0.5*binwidth and -0.5*binwidth. Dopiero gdy dane są dodatnie, to ggplot zaczyna od zera. No ale nasz zbiór zawiera zera i klops. Zmiana tego jest nietrywialna.

Zamiast ggplota moża użyć po prostu polecenia hist:

h <- hist(s$glosy, breaks=seq(0,max(s$glosy), by=4) )
h

$breaks
 [1]   0   4   8  12  16  20  24  28  32  36  40  44  48  52  56  60  64  68  72
[20]  76  80  84  88  92  96 100 104 108 112 116 120 124 128 132 136 140 144 148
[39] 152

$counts
 [1] 592  42   6   4   2   2   2   1   2   1   2   0   0   0   0   0   0   0   0
[20]   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   1

$density
 [1] 0.2252663623 0.0159817352 0.0022831050 0.0015220700 0.0007610350
 [6] 0.0007610350 0.0007610350 0.0003805175 0.0007610350 0.0003805175
[11] 0.0007610350 0.0000000000 0.0000000000 0.0000000000 0.0000000000
[16] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
[21] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
[26] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
[31] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
[36] 0.0000000000 0.0000000000 0.0003805175

$mids
 [1]   2   6  10  14  18  22  26  30  34  38  42  46  50  54  58  62  66  70  74
[20]  78  82  86  90  94  98 102 106 110 114 118 122 126 130 134 138 142 146 150

No teraz liczy (prawie) jak trzeba pierwszy przedział [0;4], drugi (4;8] itd. Prawie bo na upartego pierwszy przedział jest szeroki na 5 wartości a kolejne na 4. Eh te detale i te upierdliwe zero:-)

Przy okazji się zadumałem, a cóż to jest to density. W pierwszym podejściu, że to są częstości, ale nie, bo ewidentnie nie sumują się do 1:

  ?hist
  density: values f^(x[i]), as estimated density values. If
          `all(diff(breaks) == 1)', they are the relative frequencies
          `counts/n' and in general satisfy sum[i; f^(x[i])
          (b[i+1]-b[i])] = 1, where b[i] = `breaks[i]

No dość kryptycznie, ale można się domyśleć, że nie $\sum_i d_i =1$, ale $\sum_i d_i * w_i$, gdzie $w_i$, to szerokość przedziału $i$ (a $d_i$ oznacza gęstość w przedziale $i$ oczywiście). Pole pod krzywą będzie zatem równe 1, jak tego należy się spodziewać po gęstości.

Wprawdzie już to padło mimochodem wyżej, ale analizowany zbiór danych to liczba oddanych głosów na numer jeden na liście komitetu wyborczego Zbigniewa Stonogi w okręgu wyborczym 25 w wyborach do Sejmu w 2015 roku. Tym numerem jeden była Danuta Hojarska, która faktycznie dostała 152 głosy w jednej komisji (we wsi, w której mieszka) oraz 0--4 głosów w 90% pozostałych komisjach (w tym 0 głosów w 191/657.0 = 29% komisjach).

Analiza przestrzenna

Ze starych zapasów odgrzebałem plik CSV ze współrzędnymi obwodowych komisji wyborczych i połączyłem go z wynikami uzyskanymi przez Hojarską z zamiarem wyświetlenia tego na mapie za pomocą Google Fusion Tables (GFT):

obwod;coordexact;glosy;icon
101884;54.2701205 18.6317438;3;measle_white
101885;54.260714 18.6282809;0;measle_white
101886;54.262187 18.632082;2;measle_white
101887;54.257501 18.63147;1;measle_white
101888;54.25786 18.6306574;7;measle_grey
...

Kolumna icon zawiera nazwę ikony, która jest definiowana wg schematu: 0--3 głosy biala (measle_white); 4--9 głosów szara (measle_grey) 9-19 głosów żółta (small_yellow) 20--99 głosów czerwona (small_red) 100 i więcej głosów purpurowa (small_purple). Zestawienie dostępnych w GFT ikon można znaleźć tutaj. Konfigurowanie GFT aby korzystała z kolumny z nazwami ikon sprowadza się do wyklikania stosownej pozycji (Configure map →Feature map →Change feature styles →Use icon specified in a column.)

Przy okazji odkurzyłem zasób skryptów/zasobów używanych do geokodowania i/lub przygotowywania danych pod potrzeby GFT, w szczególności: joincvs.pl (łączy dwa pliki csv w oparciu o wartości n-tej kolumny w pierwszym pliku oraz m-tej kolumny w drugim); geocodeCoder0.pl (uruchamia geokodera Google). Oba skrypty i jeszcze parę rzeczy można znaleźć: tutaj.

url | Sun, 25/02/2018 17:38 | tagi: ,
time plot tygodniowej liczby twitów

Załóżmy, że plik CSV zawiera liczbę opublikowanych twitów (dane tygodniowe). Problem: przedstawić szereg w postaci przebiegu czasowego (time plot). Taki skrypt R wymyśliłem do zrealizowania tego zadania:

require(ggplot2)

args <- commandArgs(TRUE)
ttname <- args[1];
file <- paste(ttname, ".csv", sep="")
filePDF <- paste(ttname, ".pdf", sep="")

d <- read.csv(file, sep = ';',  header=T, na.string="NA", );
## Plik CSV jest postaci:

##str(d)

## wiersze 1,2 + ostatni są nietypowe (usuwamy)
rows2remove <- c(1, 2, nrow(d));
d <- d[ -rows2remove, ];

## szacujemy prosty model trendu
lm <- lm(data=d, posts ~ no ); summary(lm)
posts.stats <- fivenum(d$posts);
posts.mean <- mean(d$posts);
sumCs <- summary(d$posts);

otherc <- coef(lm);
# W tytule średnia/mediana i równanie trendu
title <- sprintf ("Weekly for %s # me/av = %.1f/%.1f (y = %.2f x + %.1f)", 
  ttname, sumCs["Median"], sumCs["Mean"], otherc[2], otherc[1] );

##str(d$no)
## Oś x-ów jest czasowa
## Skróć yyyy-mm-dd do yy/mmdd
d$date <- sub("-", "/", d$date) ## zmienia tylko pierwszy rr-mm-dd
d$date <- sub("-", "", d$date) ## usuwa mm-dd
d$date <- gsub("^20", "", d$date) ## usuwa 20 z numeru roku 2018 -> 18
weeks <- length(d$no);
## https://stackoverflow.com/questions/5237557/extract-every-nth-element-of-a-vector
## Na skali pokaż do 20 element /dodaj ostatni `na pałę' (najwyżej zajdą na siebie)
## możnaby to zrobić bardziej inteligentnie ale nie mam czasu
scaleBreaks <- d$no[c(seq(1, weeks, 20), weeks)];
scaleLabs <- d$date[c(seq(1, weeks, 20), weeks)];

ggplot(d, aes(x = no, y = posts)) +
  geom_line() +
  ggtitle(title) +
  ylab(label="#") +
  xlab(label=sprintf("time (yy/mmdd) n=%d", weeks )) +
  scale_x_continuous(breaks=scaleBreaks, labels=scaleLabs) +
  geom_smooth(method = "lm")

ggsave(file=filePDF)  

url | Wed, 21/02/2018 13:56 | tagi: , ,
Wycieczka do Lizbony 2018

Fatima

Dorsz czyli Bacalhau

Ciastka

Słynna Pasteis de Belem

GDP Pocket

Szóstego lutego pojechaliśmy do Portugalii. Wizzair lata konkretnie z GDA do Lizbony.

Nasza kwatera była w centrum: 25 Rua do Cardal de S. José (25 to numer domu). Pod numerem 23 jest restauracja i tam urzęduje współwłaściciel. Z metra to 200m faktycznie:

You can also come with the underground. The access is nearby the exit of the airport. Line red til the end. Change for the blue line direction santa Apolonia, stop Avenida station. The apartment is located at some 200 metros.

Pobyt wyglądał tak, że #1 dzień: stare miasto, zamek św Jerzego oraz muzeum kafli ceramicznych (azulejos). Dzień #2: Fatima. Dzień #3: Sintra a konkretnie zwiedzanie dwóch pałaców tj. Palácio Nacional de SintraQuinta_da_Regaleira + wejście pod pałac Pena. Do pałacu Pena nie weszliśmy, bo była kiepska pogoda/gęsta mgła, więc i tak by było kiepsko widać z zewnątrz, a w środku to tam za dużo nie ma do oglądania. Poza tym byliśmy już zmęczeni. Za to po powrocie do Lizbony weszliśmy do muzeum pieniądza -- ale nie było warto (wstęp jest za darmo więc jak komuś się nudzi...) Dzień #4: Belem a konkretnie klasztor Hieronimitów (grobowiec v.d. Gammy) oraz Muzeum Morskie. W Belem była też czasowa wystawa grafik Eschera, ale się okazało, że wstęp za 11EUR więc nam przeszła chęć oglądania Eschera.

Wracając do dnia #2 czyli do Fatimy, to w szczególności ciekaw byłem konfrontacji opowieści W. Cejrowskiego z cyklu Boso przez świat z rzeczywistością. Ja przynajmniej po obejrzeniu Cejrowskiego odniosłem wrażenie niesłychanego skrzywienia w stronę komercji i dziwnych zabobonów, tj. że są tutaj jakieś gigantyczne wielkopowierzchniowe sklepy z dewocjonaliami, na których sprzedaje się masowo bardzo dziwne rzeczy typu woskowe organy ludzkie, które potem płoną na ogromnych stosach... Rzeczywistość nie potwierdziła tej wizji, nawet bym powiedział, że WC mocno przesadził. Owszem są sklepy, owszem sprzedaje się świece w kształcie organów, ale zarówno te sklepy nie są wcale gigantyczne jak i te dziwne dewocjonalia są marginesem. Jest też jeden całkiem mały budynek przeznaczony na spalenie świec ofiarnych (por. zdjęcie obok). Sklepy są wielkości tych z Częstochowy a dziwne świece stanowią margines -- dominują tradycyjne przedmioty, takie jak figura Matki Boskiej. Uwaga na koniec: podczas naszego pobytu Fatima była prawie pusta -- być może wrażenie jest inne podczas popularnych uroczystości kościelnych.

Co do kosztów to wydaliśmy 2700PLN na dwie osoby w tym 890 na bilety lotnicze + 520 PLN na kwaterę (4 noce x 2 osoby via AirBnB). W Sintrze wydaliśmy 40 EUR (2x pałac, tj. 4 bilety + dojazd) a w Fatimie 50 EUR (4x bilet autobusowy 2 x tam + 2 x stamtąd po 12,50 EUR). Bilet do muzeum morskiego 6.50EUR (warto), Azulejos 5.00 (też warto) Klasztor i zamek po circa 10EUR.

Rzucało się w oczy dla przybysza z kraju Biedronki tysiąca małych biznesów, a sklepów wielko- czy średnio powierzchniowych jak na lekarstwo. Wśród sklepów #1 jest cukiernia/cukiernio-kawiarnia. Oni muszą pochłaniać ogromne ilości ciastek, które są mocno słodzone i zwykle nadziewane budyniem. Z zazdrością zauważyłem, że tego po miejscowych nie widać (że tyle cukru jedzą). W centrum Lizbony można też było spotkać małe-rodzinne sklepy spożywcze, sklepy AGD, księgarnie. Wygląda że wszystko to ma klientów i jakoś tam prosperuje...

W aspekcie sportowo-rekreacyjnym odniosłem za to wrażenie, że na rowerach to oni tu nie jeżdżą--być może wynika to z ukształtowania terenu. Na pewno w centrum Lizbony jeżdżenie na rowerze przy tamtejszych nachyleniach i wąskich ulicach to dla niewyczynowca mordęga. Trochę ludzi za to biega (po bruku--brrrr), nawet wcześnie rano widziałem takich zapaleńców. O tyle bieganie rano ma sens (w centrum), że nie ma ruchu (no i oczywiście zdaję sobie sprawę, że wielu biega rano bo potem leci do roboty.)

Przed wycieczką (z myślą o minimalizacji bagażu, ale także z planami wykorzystania w pracy) nabyłem najmniejszy laptop świata czyli GDP Pocket. Mało to on nie kosztował, ale sprawdził się. W wolnych chwilach doinstalowałem zresztą na nim prawie wszystko co mam na normalnym laptopie (bo zresztą na normalnym mam taki sam dysk jak na GP -- 120Gb), łącznie z TeXem, R oraz Pythonem i Perlem.

BTW na GDP Pocket jest dostępne Ubuntu i może bym i go zainstalował, gdyby nie plany używania tego urządzenia także w pracy -- Windows jednak jest bardziej kompatybilne ze wszystkim.

Samolot do GDA mieliśmy o 22.00, ale na lotnisko żeśmy się zwinęli już o 18:30, bo Elka była padnięta, a poza zwiedzaniem nie mieliśmy koncepcji co robić. W GDA byliśmy 02:30 nad ranem, przywitani zimą i -4C. W tamtą stronę podróż była mocno niekomfortowa, a to dlatego że było ciasno (rząd 28) a dwa rzędy przed nami rozkoszne Ruskie zresztą dziecię grało (bez słuchawek) w jakąś durną grę na konsoli. Powrotna za to była super komfortowa--mieliśmy miejsca w 4-tym rzędzie i wydaje mi się, że tam fotele są rzadziej rozstawione. No i nie było żadnego wkurwiającego ruskiego rebionka z konsolą.

Do pobrania ślady kml ze zdjęciami; zdjęcia; ślady gpx/kml.

url | Wed, 14/02/2018 17:00 | tagi: , , ,
Staszek Wawrykiewicz

Staszek Wawrykiewicz zginął 7 lutego 2018 roku w dziwacznych okolicznościach (cytat z Dziennika Bałtyckiego):

W środę 7 lutego wyszedł na spacer by w marinie dojrzeć wschód słońca. Kamery miejskiego monitoringu zarejestrowały jak stoi na oblodzonym pomoście. Za chwilę obiektyw rejestrował inne miejsce, a kiedy zwrócił się ponownie na pomost, Stanisława już na nim nie było. Mężczyzna poślizgnął się i wpadł do wody. Niestety, drabinki, które umożliwiają wyjście z wody, rozmieszczone są w znacznych odległościach od siebie. Biorąc pod uwagę temperaturę wody, ubranie, które mężczyzna miał na sobie i szok termiczny, którego doznał, nie był w stanie wydostać się o własnych siłach z wody. Przyjmujemy, że doszło do nieszczęśliwego wypadku. -- informuje asp. szt. Tomasz Frąckowiak, naczelnik wydziału prewencji Komendy Miejskiej Policji w Sopocie.

Staszek był znany z udzielania się na dwóch polach: piosenki turystycznej (BAZUNA etc) oraz systemu składu tekstów TeX. Ja go znałem od circa 1990 roku bo obaj byliśmy użytkownikami TeXa, aktywnymi członkami GUSTu. Staszek mieszkał w Sopocie (tak jak ja), w odległości mniej niż 1km od mojego bloku.

url | Wed, 14/02/2018 09:31 | tagi: , ,
Migracja do Debian Stretch na jupiterze (svn)

Się poprzedni wpis kończył jakoby odtworzenie repozytorium svn było prostą sprawą, ale w praniu się okazało, że nie do końca:

# zapisanie starego
svnadmin dump svnrepo > svnR.out
# odtworzenie
svnadmin create svnrepo
svnadmin load svnrepo < svnR.out

Próba zapisu skutkuje komunikatami o błędach. No tak zachciało mi się zmienić port na niestandardowy. Żeby svn wiedział jak się połączyć trzeba dopisać (na koncie komputera klienta, w sekcji [tunnels]):

vi ~/.subversion/config
ssh = $SVN_SSH ssh -q -p PORTNUMBER
# addgroup svn
Adding group `svn' (GID 1002) ...
# gpasswd -a "tomek" svn
##Adding user tomek to group svn
# chgrp -R svn path-to-svnrepo

Teraz

svn info
Ścieżka: .
Working Copy Root Path: /home/tomek/orgfiles
URL: svn+ssh://tomek@umbriel/media/usbstick/svnrepo/tp/orgfiles
...

## Zmień svn+ssh://tomek@umbriel/path-to-repo na nowe:
svn relocate svn+ssh://tomek@umbriel/path-to-repo/path-to-project

url | Wed, 14/02/2018 09:14 | tagi: , , ,
Migracja do Debian Stretch na jupiterze

Jupiter to mój niepubliczny serwer. Podłączona do niego jest stacja pogody, termometry DS18B20, wykonywane są kopie zapasowe oraz założone repozytorium CSV. No i to powodowało że zabierałem się do aktualizacji systemu jak do jeża. Wszystko było tak stare, że już zapomniałem jak działa--a że działało, to teoretycznie nie było potrzeby wymiany.

Z drugiej strony jednak: system był już tak wiekowy, że niepielęgnowany. Nic nie można było ani doinstalować ani uaktualnić. Ponadto na drugiej szewie była inna wersja -- uruchamiany z karty SDHC Debian Lenny. Uruchamianie z karty (zamiast tego co jest wbudowane w komputerek) wydaje mi się bardziej eleganckie after all. No więc sytuacja dojrzała...

Obejrzałem sobie pliki crontab (roota i jedynego użytkownika tomek) i ustaliłem co trzeba uruchomić: rsync do robienia kopii zapasowych (nie pamiętam jak); pywwws do pobierania danych ze stacji pogodowej i wysyłania na wundergroud oraz jakieś skrypty Perla do prezentowania danych pogodowych na stronie pinkaccordions.blogspot.org (nie pamiętam jak to było konfigurowane); wreszcie odtworzenie repozytorium svn, którego używam na potrzeby wewnętrzne.

  ## Pobranie instalacja:
  root@umbriel:/home/tomek# pip install pywws
  Collecting pywws
  Downloading pywws-17.11.0.tar.gz (465kB) ....

  ## Testowania czy działa:
  root@umbriel:/home/tomek# pywws-testweatherstation
  10:52:45:pywws.Logger:pywws version 17.11.0, build 1380 (b01d94a)
  0000 55 aa 80 10...
  
  ## pakiet został umieszczony tutaj:
  /usr/local/lib/python2.7/dist-packages/pywws
  
  ## Inicjalizacja (/media/usbstick/Logs/weather/ to katalg z danymi)
  python -m pywws.LogData -vvv /media/usbstick/Logs/weather/
  ## Tutaj jest plik konfigurujący
  vi /media/usbstick/Logs/weather/weather.ini

  ## musiałem dodać typ stacji: ws type = 1080
  ## Wpis do Crontaba
  ## Dane pogodowe z WS1080
  ## 9 * * * *  /usr/local/bin/pywws-hourly -v /media/usbstick/Logs/weather >> \
  ##   /media/usbstick/Logs/root/weather/Hourly.log 2>&1

Wszystko działa but the wundergound. Trzeba dokonfigurować plik weather.ini, żeby pywwws wysyłało tam stosowne dane.

[underground]
station = IPOMORSK8
password = <PASSWORD>
template = default

[hourly]
services = ['underground']
text = []
plot = []

Dokładnie ma być jak wyżej underground a nie wunderground, bo tak się nazywa plik (/usr/local/lib/python2.7/dist-packages/pywws/services/).

Ponieważ mam dwie stacje (druga kupiona w projekcie, który nie został w końcu zrealizowany), to podłączyłem to drugą, do komputera z Debian Lenny (tego uaktualnię za czas jakiś, żeby mieć to samo na obu). Z tym drugim był większy problem bo w systemie nie ma pipa (pipy?)

#http://pywws.readthedocs.io/en/latest/guides/getstarted.html#test-weather-station
# stacja #2 ::

wget --no-check-certificate https://pypi.python.org/packages/49/ed/cd05eff0177b569c60230db5c13aded51355aada59f7f9d441d2d1353c4f/pywws-17.11.0.tar.gz
tar -zxvf pywws-17.11.0.tar.gz 
cd pywws-17.11.0
python setup.py build
python setup.py install

wget --no-check-certificate https://pypi.python.org/packages/fc/38/026f001aa0cf2656a3e52556be73cb2a84fc7f6f40ae1bf75099cb6fa3ea/libusb-1.0.21b1.zip
unzip libusb-1.0.21b1.zip 
cd libusb-1.0.21b1
python setup.py build
python setup.py install

wget --no-check-certificate https://pypi.python.org/packages/ec/5d/4fdac6c53525786fe35cff035c3345452e24e2bee5627893be65d12555cb/libusb1-1.6.4.tar.gz
tar -zxvf libusb1-1.6.4.tar.gz 
cd libusb1-1.6.4
python setup.py build
python setup.py install

neptune:/home/tomek# mkdir /media/patriot/Logs
neptune:/home/tomek# mkdir /media/patriot/Logs/weather
neptune:/home/tomek#  python -m pywws.LogData -vvv /media/patriot/Logs/weather/
09:27:28:pywws.Logger:pywws version 17.11.0, build 1380 (b01d94a)
09:27:28:pywws.Logger:Python...

## Na stronie wunderground dodałem drugą stację, po czym
## dopisałem co trzeba do weather.ini
vi /media/patriot/Logs/weather/weather.ini

[underground]
station = ISOPOT14
password = <PASSWORD>
template = default

Obie działają

Kopie zapasowe

No robię kopie, chociaż nie były mi potrzebne przez 6 lat eksploatacji moich komputerków. Strategia jest taka, że co tydzień robię kopię całego systemu a co 24h wybranych katalogów. Wszystko w sumie prosto ale problem pojawił się w przypadku tworzenia kopii na innym komputrze:

#!/bin/bash
# Kopią jest cały system na innym komputerze (neptune):
SOURCE=neptune::wholefs/
ROOTLOG=/media/usbstick/Logs/root/RSync/rsync-neptune.log

EXCLUDE=/root/.rsync/backup_exclude_neptune.lst
DESTDIR=/public/sheeva/backup/neptune/rootfs
COPYDIR=/public/sheeva/backup/neptune
rsync -av --bwlimit=500 --exclude-from=${EXCLUDE} --delete ${SOURCE} ${DESTDIR}

## Edytujemy /etc/rsyncd.conf
max connections = 2
log file = /var/log/rsync.log
timeout = 300

[share]
comment = Public Share
path = /home/share
read only = no
list = yes
uid = nobody
gid = nogroup
auth users = tomek
secrets file = /etc/rsyncd.secrets

##  Zawartość rsyncd.secrets

/etc/rsyncd.secrets
user:<PASSWORD>

## /etc/hosts
#Dopisane
192.168.1.142   neptune.pinaccordions.org       neptune
     
## na neptune konfiguracja demona
/etc/rsyncd.conf
hosts allow = 192.168.1.121

Sprawdzenie czy działa

rsync neptune::wholefs/

Svn

Prosta sprawa

# zapisanie starego
svnadmin dump svnrepo > svnR.out
# odtworzenie
svnadmin create svnrepo
svnadmin load svnrepo < svnR.out

Ponieważ mam trzy sheevy, miałem ten komfort że uruchomiłem zapasową, na której wszystko dokonfigurowałem. Ta nowa którą nazwałem umbriel przejęła zadania starej, którą po 6 latach wyłączyłem. Zamiast jupitera jest zatem umbriel (księżyc Urana), bo jupiter się mi już znudził.

url | Sat, 03/02/2018 17:31 | tagi: , ,
Protest przeciwko zachowaniu

Kuriozum goni kuriozum. Robiący wiatr od 2 lat debile (KOD, i inni) protestowali 17.01.2018 przeciw (zachowaniu się :-) opozycji. Czemu debile?

Bo działają jak debile. Większość parlamentarna nie uchwali ustawy zgłoszonej przez mniejszość, to jest oczywiste. Że nie przyjmie ustawy sprzecznej ze swoim programem -- podwójnie oczywiste. Po cóż więc tracić czas na projekt mający dokładnie 0 (zero) szans powodzenia na realizację, i z tego powodu wszczynać kryzys?

Jeżeli z powodów czysto wizerunkowo-propagandowych, to kto-kogo bardziej oszukał? Biernacki przecinający PR-owy balon od razu, czy ci co chcieli gonić zajączka dalej? No i wreszcie z punktu widzenia elementarnych zasad demokracji parlamentarnej: oszukali was?, to głosujcie na innych. To takie proste. Ale tych innych-ni-ma, i tu jest problem. Stąd pewnie ,,protest przeciwko zachowaniu'' (domagamy się zmiany ,,zachowania''). Arbitrzy elegancji się kurna znaleźli...

It is better to keep your mouth closed and let people think you are a fool than to open it and remove all doubt.

url | Tue, 23/01/2018 03:52 | tagi: , , ,