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 | banan | bash | batumi | berlin | bibtex | bieszczady | biznes | blogger | blogging | blosxom | bono | borne-sulinowo | breugel | bt747 | budapeszt | bursztyn | canon | cedewu | chello | chiller | chillerpl | chown | chujowetaśmy | ciasto | cmentarz | contour | cron | css | csv | curl | cycling | d54250wykh | dbi | debian | dejavu | dhcp | dht22 | dia | docbook | dom | ds18b20 | dulkiewicz | dyndns | dynia | ebay | economy | ekonomia | elka | elm | emacs | emacs23 | english | ep | erasmus | erasmusplus | ess | eu | excel | exif | exiftool | f11 | fc | fc11 | fc15 | fc29 | fc5 | fc8 | fedora | fedora21 | fenix | ffmpeg | finepix | firefox | flickr | folau | fontforge | fontspec | fonty | food | fop | foto | france | francja | fripp | fuczki | fuji | fuse | gammu | garmin | gawk | gazwyb | gdańsk | gdynia | gender | geo | geocoding | georgia | gft | git | github | gmail | gmaps | gnokii | gnus | google | googlecl | googleearth | googlemaps | gotowanie | gphoto | gphoto2 | gps | gpsbabel | gpsphoto | gpx | gpx-viewer | greasemonkey | gruzja | grzyby | haldaemon | handbrake | hhi | 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 | kociewie kołem | kod | kolibki | komorowski | konwersja | krutynia | kuchnia | kurski | latex | latex2rtf | latex3 | lcd | legend | lenny | lesund | lewactwo | lgbt-folly | liberation | linksys | linux | lisp | lisrel | litwa | lizbona | logika | ltr | lubowla | lwp | lwów | m2wś | malta | mapquest | mapsource | marchew | marvell | math | mathjax | mazury | mbank | mediolan | mencoder | mevo | mh17 | michalak | michlmayr | microsoft | monitor | mp4box | mplayer | ms | msc | mssql | msw | mswindows | mtkbabel | museum | muzyka | mymaps | mysql | nafisa | nanopi | natbib | navin | nekrolog | neo | neopi | netbook | niemcy | niemieckie zbrodnie | nikon | nmea | nowazelandia | nuc | nxml | oauth | oauth2 | obituary | odessa | okular | olympus | ooffice | ooxml | opera | osm | otf | otftotfm | other | overclocking | ozbekiston | panoramio | pdf | pdfpages | pdftex | pdftk | pedophilia | perl | photo | photography | picasa | picasaweb | pim | pine | pis | pit | plotly | pls | plugin | po | podróże | politics | polityka | polsat | portugalia | postęp | powerpoint | połtawa | prelink | problem | propaganda | pstoedit | putin | python | pywws | r | radio | random | raspberry | raspberry pi | raspberrypi | refugees | relaxng | ridley | router | rower | rowery | rpi | rsync | rtf | ruby | rugby | rumunia | russia | rwc | rwc2007 | rwc2011 | rwc2019 | rzym | samba | selenium | sem | sernik | sheevaplug | sienkiewicz | signature | sks | skype | skytraq | smoleńsk | sqlite | srtm | sshfs | ssl | staszek wawrykiewicz | statistics | stats | statystyka | stix | stretch | suwałki | svg | svn | swanetia | swornegacie | szwajcaria | słowacja | tbilisi | terrorism | tex | texgyre | texlive | thunderbird | tomato | totalnaopozycja | tourism | tramp | trang | transylwania | truetype | ttf | turcja | turkey | turystyka | tusk | tv | tv5monde | twitter | typetools | ubuntu | uchodźcy | udev | ue | ukraina | umap | unix | upc | updmap | ups | utf8 | uzbekistan | varia | video | vienna | virb edit | vostro | wammu | wdc | wdfs | weathercloud | webcam | webdav | webscrapping | wh2080 | wiedeń | wikicommons | wilno | win10 | windows | windows8 | wine | wioślarstwo | word | wordpress | wrt54gl | ws1080 | wtyczka | wunderground | 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
Banany w cieście

Banany w cieście serwują w restauracji Lotos w Kwidzynie. Podają je na gorąco obłożone bitą śmietaną. Ponieważ nie wydaje się to specjalnie skomplikowana potrawa postanowiłem sam coś takiego wykonać.

Składniki (cf. https://www.domowe-wypieki.pl/przepisy/desery/125-smazone-banany-w-ciescie): 50 g mąki pszennej; 20 g wiórków kokosowych (= 3 łyżki); 100 ml mleka; 2 jajka; 2 łyżeczki cukru waniliowego; 1/2 łyżeczki proszku do pieczenia; szczypta soli; olej do smażenia; cukier puder do posypania

Powyższe zmodyfikowałem: nie dałem wiórków i zamiast 2 łyżeczek cukru waniliowego, 1 łyżeczkę zwykłego pudru.

Wykonanie: Składniki zmiksować. (Ciasto powinno być dość gęste, aby utrzymywało się na bananie). Banany przekroić wzdłuż na pół. Kawałki bananów zanurzać w cieście. Smażyć na głębokim oleju, z dwóch stron, do zarumienienia. Usmażone banany wykładać na ręczniki papierowe, aby ociekły z tłuszczu. Gotowe posypać cukrem pudrem.

Nie miksowałem ale widelcem i też masa wyszła całkiem gładka. Nie przekroiłem też wzdłuż -- następnym razem spróbuję. Ale i tak wyszły bardzo dobre. Zamiast cukru pudru polewam jogurtem albo dodaję trochę serka waniliowego i trochę suszonych owoców (żurawin na przykład)

url | Sun, 24/11/2019 21:15 | tagi: , ,
Odessa -- ostatnia wycieczka w roku

Tour de Ost 2019 odcinek ostatni (szósty). Byłem już w Uzbekistanie, Turcji, Ukrainie, Gruzji i Rumunii (to też trochę na wschód). Teraz jeszcze raz na Ukrainie, w Odessie konkretnie. Ryanair otworzył połączenie GDN-Odessa od 2 listopada 2019. My (ja z Elką) tym pierwszym lecimy licząc, że będzie coś w rodzaju przywitania pierwego pasażyra Rusfłota (z filmu Machulskiego Deja Vu, w którym Stuhr gra zawodowego mordercę wysłanego do Odessy z Chicago); ale nie było żadnego przywitania.

Po wylądowaniu jedziemy trolejbusem z lotniska pod dworzec kolejowy. Stamtąd piechotą na kwaterę, która jest jakie 200 m w linii prostej od schodów Potiomkina-Eisensteina. Docieramy na miejsce już po zmroku. Zostawimy bambetle i idziemy na miasto. Zwiedzamy słynną ulicę Deribasowską i oglądamy Operę. To wszystko jest blisko siebie zresztą...

Rano rozpoczynamy zwiedzanie od portu i schodów. Potem znowu Opera za dnia. Idziemy do muzeum sztuki nowoczesnej (bez szału i dość małe, ale parę ciekawych rzeczy jest z czołgiem z tektury na czele), a potem schodzimy na plażę (bo to blisko jest). Wracamy do domu i idziemy na obiad do (podobno #1) lokalu pn. Kumanets na barszcz ukraiński i pierogi. Tanio nie wyszło... Jemy obiad w trójkę bo umówiliśmy się ze znajomym Ukraińcem JS (poznany w Bachotku), z którym pójdziemy też do Opery. Grają Romeo i Julię Prokofiewa. Opera zresztą jest imponująca a wśród widzów jest wielu Polaków... No proszę tak źle z kulturą wysoką nie jest w PL się okazuje...

Następnego dnia jedziemy oglądać twierdzę Akerman. Pociągiem ponad 2 godziny, powrót trochę krótszy bo jakieś 1,5h, ale za to trzęsie. Że pociąg regionalny, to nie musimy paszportów pokazywać przy kupnie biletów (poprzednio jak jechałem dwa razy pociągiem na Ukrainie to bez paszportu nie wpuszczali do wagonu). Po drodze na kwaterę idziemy do tatarskiej restauracji oczywiście na czebureki, które w życiu może jadłem ze dwa razy. Da się zjeść, ale żeby to jakiś miał być przysmak to też nie. Lokal BTW elegancki i oprócz czebureków dużo innych specjałów.

Ostatni dzień rozpoczynamy od zwiedzania bazaru koło dworca kolejowego. Wrażenie robi dział rybny. Mięsny to też egzotyka, ale podobny już widziałem w Gruzji czy w Uzbekistanie. NB znajdujemy na bazarze uzbecką piekarnię i kupujemy dwa uzbeckie chleby Non świeżo upieczone i gorące... Wracamy na kwaterę, zabieramy plecaki, idziemy na Uniwersytet odwiedzić JS. Potem już w stronę dworca... Robi się ciemno więc jedziemy na lotnisko. Koniec wycieczki. Bilety lotnicze w dwie strony były po 300 PLN, kwatera za 250 PLN, a bilety do Opery po 50 PLN (najlepsze miejsca).

Do pobrania ślady kml ze zdjęciami; album ze zdjęciami.

url | Tue, 19/11/2019 08:56 | tagi: , , ,
Taśmy Neumana czyli chujowe taśmy season 2019

Czemu chujowe taśmy to tutaj jest objaśnienie.

Tych z 2019 (tamtych sprzed 5 lat też zresztą) nie słuchałem w całości. Zresztą nie wiadomo co to jest całość.

Z tego co słyszałem (rzygam Tczewem/Tczewiacy to pojeby) taka specyficzna mobilizacja lokalnych działaczy. Że łudząco podobno do stosowanej w mafii to już inna sprawa (Naucz się tego, jak będziesz o czymkolwiek rozmawiał. Jak będziesz w Platformie, będę cię bronił, kurwa, jak niepodległości. Jak wyjdziesz z Platformy, to masz problem), albo inaczej cosaNostra (literalnie: wspólna sprawa) to Platforma w tym przypadku.

Ponadto ci niektórzy którym się wydaje, że popierają lepszą stronę mocy (nowoczesną/europejską/wykształconą itd) gdyby myśleli (a już dawno tego nie robią), to powinni być mocno zdziwieni co robi u boku p. Neumana wdowa po P. Adamowiczu. W oficjalnej wersji przecież św Paweł to niewinna ofiara PiSoskiego hejtu, a wg pana Neumna, no mówiąc oględnie średnio uczciwy typ żeby nie powiedzieć przestępca (Jedynym gościem jest Adamowicz, który ma absolutnie mega twarde rzeczy, które mogłyby go wyprowadzić w kajdankach). Zresztą wdowa Magdalena PecuniaNonOlet Adamowicz bezczelnie indagowana nt. ww. fragmentu zaapelowała o zmianę języka debaty oczywiście.

No i słusznie bo: Nasz elektorat, ten antypisowski, uzna, że to jest kurwa, atak PiS-u, żeby go zabić. I pójdą jeszcze bardziej na niego.

W tym przypadku na nią oczywiście.

Nb. pan SIENKIEWICZ Bartłomiej Henryk startuje do Sejmu z ramienia Koalicji Obywatelskiej w okręgu 33 (Kielce). Ma numer 1 na liście więc w zasadzie wejdzie na 100%.

url | Sun, 06/10/2019 06:56 | tagi: , ,
Stół Bidulkiewicz czyli inna Polska w praktyce

Będziemy jeździć z tym okrągłym stołem po Polsce. Jest w częściach, całego pewnie nie damy rady wozić, ale ma różne konfiguracje, instalacje. Już o tym rozmawialiśmy z organizacjami społecznymi i z samorządowcami -- powiedziała Dulkiewicz w porannej audycji w TOK FM. Będziemy jeździć po Polsce i rozmawiać, przekonywać, że inna Polska jest możliwa -- dodała.

Powyższe było w czerwcu. W międzyczasie o ile mi wiadomo nigdzie ze stołem nie byli. We wrześniu natomiast:

0. Agitując za udziałem w tzw. Budżecie Obywatelskim twierdziła, że sama już zagłosowała.

1. Dziennikarz z lokalnego trojmiasto.pl zagłosował za nią udowadniając, że internetowy system do głosowania jest do dupy (i/lub nieprawdą jest że zagłosowała)

2. Rzecznik prasowy Bidulkiewicz -- realizując program innej Polski zapewne -- groził dziennikarzowi zawiadomieniem o popełnieniu przestępstwa

3. Szef trojmiasto.pl pokajał się publicznie (wolne media to te które przepraszają władzę przynajmniej w innej Polsce)

4. Sama Bidulkiewicz wycofała się z zawiadomienia (a miała inne wyjście?) wydając głupi i pompatyczny manifest (czyli zachowując się normalnie i w swoim stylu z naciskiem na głupio):

Moje zdanie na temat roli wolnych i niezależnych mediów w demokratycznym państwie prawa i współuczestniczenia w budowie społeczeństwa obywatelskiego jest powszechnie znane. [...] Dziennikarze patrzą nam, samorządowcom, urzędnikom, politykom na ręce. Jest to słuszne i potrzebne. Dziękuję panu redaktorowi naczelnemu Michałowi Kaczorowskiemu za refleksję na temat granicy tego, co jest konieczne, i tego, co jest naruszeniem prawa. To publiczne uznanie, że nie powinno się nadużywać prawa jest ważne. W moim odczuciu jest to wystarczające, by z powodów opisanych powyżej nie wchodzić na drogę prawną w związku z bezprawnym użyciem moich danych osobowych.

Więc jakby nie było przeproszenia to co by było? No i co z tą rolą wolnych mediów w innej Polsce w takim przypadku?

url | Fri, 27/09/2019 06:58 | tagi: , ,
Bodrum/Adana 2019

Ostatni odcinek moich wiosennych wojaży. Byłem w Uzbekistanie, potem w Turcji, Gruzji i na koniec w Połtawie (Ukraina). Wszystko już opisałem za wyjątkiem Turcji...

Przylot do Bodrum z opóźnieniem o 1 w nocy. Cały samolot jest upychany do autobusów, które zawiozą nas do różnych hoteli. Nasz hotel jest najdalej od lotniska więc zanim dojechaliśmy i zanim nas odprawili w recepcji jest już 3 rano. Można iść spać, ale my idziemy na śniadanie o 4 rano. Tak w ogóle mamy tu wykupiony pobyt pn all-inclusive-ultra czyli 6 posiłków na dobę w cenie, w tym jedzenie o północy i o czwartej nad ranem (poza tym śniadanie, późne śniadanie, obiad, kolacja). Są jeszcze opcje płatne, ale te w większości jeszcze niedziałające (przed sezonem jest?) Pierwszy raz biorę udział w czymś takim (człowiek uczy się całe życie)

Pobyt zaczyna się od spotkania z rezydentką z biura, które nas tutaj ściągnęło że tak powiem. Sympatyczna pani przedstawia wykaz atrakcji, w tym wycieczek po okolicy, z których możemy (za opłatą) skorzystać, z czego nas interesuje wyspa Kos i Pamukkale. Na Kos jest stąd o rzut beretem i pojedziemy jutro za 27 EUR. Z Pamukkale jest natomiast problem. Po pierwsze daleko, po drugie zorganizowane wycieczki tam są tylko w poniedziałki, My w poniedziałek jedziemy do Adany.

Po spotkaniu idę na śniadanie. Ale śniadania już nima. Spóźniłem się. Sześć posiłków w podanych terminach, ale pomiędzy kuchnia nie działa. He trudno...Na szczęście wszędzie są stoły z ciastkami więc zamiast śniadania jem te ciastka. Potem idę do Bodrum. Jest niby autobus, ale wolę się przejść. W Bodrum idę na dworzec autobusowy i się pytam o to Pamukkale. Jest normalny rejsowy autobus o 9:00 za 43 PLN w jedną stronę. Pięć godzin i się jest na miejscu (prawie). Mówię do kasjera, że słabo to widzę, a on że wcale nie, że na miejscu się jest około 14:00 a ostatni autobus powrotny jest o 19:00 więc spokojnie się wszystko obejrzy. No niby tak, tyle że 10h w autobusie brzmi przerażająco...

Oglądam Bodrum, wracam też piechotą (18.0 km razem wyszło wte-i-we-wte). Spotykam po drodze rezydentów z polskich biur podróży, których widziałem rano w hotelu. Mówią, że śmiało można jechać. Autobus będzie wygodny.

Spóźniam się na obiad też, więc zamiast obiadu znowu ciastka, bo wszędzie są stoły z ciastkami. Potem się okazuje, że to jakaś turecka konferencja była i to były ich ciastka a nie hotelowe (nigdy więcej nie było ciastek wystawionych non-stop). Jedzenie co do zasady tylko w godzinach wydawania posiłków. Pomiędzy posiłkami tylko napoje (w tym wyskokowe).

W sobotę (27.04) jedziemy na Kos wodolotem. Wysiadamy z wodolotu i pierwsze co robię to pożyczam za 5EUR rower. Objeżdżam Kos do połowy (65 km mi wyszło), wracam około 16:00. Nigdzie śladu słynnych uchodźców, nawet smrodu po ich nie ma...

W niedzielę (28.04) z kol. Karolem rano jedziemy na autobus do Pamukkale. Nie mamy kupionego biletu to się umawiamy na 7:00 na śniadaniu z zamiarem dojechania pierwszym autobusem o 7:30 do Bodrum. Kupujemy bilety bez problemu, jedzie z nami dosłownie kilka osób. Po drodze trzy razy dostajemy batony/herbatę i wodę. Autobus jest klimatyzowany. Standard lepszy niż w Wizzair. Dojeżdżamy do Denizli. Potem mikrobusem do Pamukkale (blisko 15km). Wszystko idzie jak po maśle: wchodzimy na górę, oglądamy wszystko co trzeba. Idziemy na obiad. Wracamy do Denizli, potem autobusem o 19:00 do Bodrum. Tym razem jest komplet i bardzo ciasno, ale na szczęście w Yatagan połowa wysiada. Robi się luźniej i nawet zasypiam. Kurcze od 6:00 na nogach...

Ktoś mnie budzi. Policja. Kontrola dokumentów na rogatkach Bodrum, do którego dojeżdżamy zgodnie z planem przed północą. Chcemy jechać taksówką do hotelu, ale się okazuje, że jest autobus. Po 24:00 jesteśmy z powrotem, cała wycieczka trwała 17h z czego jakieś 12h w autobusach. Żebym się nie dopytał to byśmy nawet nie wiedzieli, że można pojechać do Pamukkale nie tylko w poniedziałek i za pół ceny (ale się nie dziwię przewodnikom/rezydentom, ostatecznie oni są od sprzedawania a nie od darmowej akwizycji na rzecz konkurencji.)

Następnego dnia (29.04) jedziemy po śniadaniu na lotnisko i jeszcze przed południem jesteśmy w Adanie. Oficjalna część pobytu: Adana University. Wiozą nas autobusem do hotelu, potem zwiedzanie miasta i na koniec kolacja (kebap). Kolejny dzień zwiedzanie Uniwersytetu. Nowoczesna szkoła, robi dobre wrażenie. Tylko studentów dziwnie mało. Mówią, że 2 tys. U nas w PL by wlazło 20 tys...

Po zwiedzaniu Uniwersytetu obiad (znowu kebap). Współtowarzysze wyjazdu sobie życzą pojechać na zakupy do sklepów, więc jedziemy na przedmieścia. Wielkie galerie jak w PL... Eeee nic tu po mnie myślę, wrócę piechotą do hotelu. No i wracam. Galerie światowe, potem nowoczesne osiedla (często jeszcze niezasiedlone) no a potem slamsy aż do centrum. Kilometry slamsów...

Powrót do Bodrum. Idę znowu na miasto. Kupuję parę suwenirów i wracam. Przebojem jest torba z Kamlem Ataturkiem. Turcy są zachwyceni, że coś takiego noszę...

Rano na lotnisko (02.05). Trochę jakby wcześniej niż trzeba, ale szybko się okazuje dlaczego: autobus jeździ w odwrotnej kolejności po hotelach, a że my najdalej od lotniska to zaczął od nas. Wylot do tego się dramatycznie opóźnił. Nawet nam rozdali jedzenie na koszt firmy. Przed północą w GDA (zamiast 19). Potem pół godziny czekania na walizę (bagażowi sobie poszli?) Wreszcie jestem w domu. O północy, ale warto było....

Spisane 16.8.2019 w samolocie do Cluj. Ciekawy wyjazd, ale jakoś nie mogłem się zebrać i go podsumować. Pierwszy raz w Turcji byłem zresztą.

Zdjęcia z wyjazdu są tutaj; ślad (ze zdjęciami) jest zaś tutaj (albo do pobrania (bez zdjęć) w formacie GPX.)

url | Thu, 05/09/2019 19:49 | tagi: , ,
Powrót z Cluj-Napoki

W zeszłą środę (28/08) wróciliśmy z Elką z wycieczki po Transylwanii. Bombardierem Q400 z Cluj-Napoki do Warszawy. Potem tym samym z Warszawy do Gdańska. Pierwszy raz leciałem Bombardierem BTW.

Z Cluj do W-wy obyło się bez większych przygód. W Warszawie komunikat że będzie opóźnienie. Najpierw że 10 minut, ostatecznie wyszło 40. Do tego jak już byliśmy w autobusie czekając na odjazd wkroczył pan z LOTu i odczytał 5 nazwisk (w tym dwa ewidentnie rosyjsko brzmiące). Nikt nie zareagował... Zamknęli drzwi i pojechaliśmy do samolotu. Wśród pasażerów extra załoga w pełnym rynsztunku, do tego kapitanem tej załogi Murzyn. Ciekawostka...

Wreszcie start o 20.25 (zamiast 19:40). Do Warszawy lot jest krótki, więc ledwo dali Grześka już zapowiadają lądowanie. Z nudów włączyłem GPSa w smartfonie, żeby sprawdzić czy będzie działał w Bombardierze (w Airbusach mi nie działa). Działa, więc widzę gdzie lecimy, na jakiej wysokości i z jaką prędkością. Mijamy Tczew. Tak nad Pruszczem zachrobotało: Cabin crew 4 minutes, ale zaraz potem wciągnął podwozie i minął GDN Rębiechowo na 900mnpm. Poleciał na Kartuzy.

No fear, skręci w lewo, okrąży Żukowo i spróbuje jeszcze raz (tak sobie myślę). Ale ten nie skręcił w lewo tylko w prawo, na Wejherowo i nabiera wysokości. 1600 mnpm. Do Szwecji kurna lecimy, bo molo w Sopocie widać i statki... Tylko po co?

Eeee rozmyślił się, wraca do PL, nawet podwozie znowu wysunął mimo, że do lotniska to jeszcze ładny kawałek (póki co nie w tą stronę leci w ogóle.) Nad stałym lądem jesteśmy z powrotem na wysokości Portu Północnego. Stąd już blisko i lecimy coraz niżej, ale ciągle całkiem wysoko (900m)

Cabin crew 4 minutes

No to już było 13 minut temu... Lecimy nad centrum Gdańska prosto na GDN w Rębiechowie. Wysokość taka jakby OK też, może tym razem się uda:-) No i się udało, tyle że captain taki mało wylewny był. Życzył udanego pobytu i goodbye...

W sumie nic się nie stało oczywiście. Coś chyba z podwoziem było nie ten teges, ale to moje przypuszczenie. Jak się wpisze Bombardier+podwozie do Google to jest tego trochę (nawet filmy:-))...

url | Thu, 05/09/2019 17:42 | tagi: , ,
Mevo na umbrielu








Umbriel to mój serwer. W pliku crontab są następujące nastawy:

## co 120s
*/2 * * * * /home/tomek/bin/mevo_get.sh
## Codziennie 2:33 po północy
33  2 * * * /home/tomek/bin/mevo_process_yesterday.sh
## Raz w miesiącu 2:43 (musi być po mevo_process_yesterday.sh)
43  3 1 * * /home/tomek/bin/mevo_process_lastmonth.sh

Uruchamiany co 2 minuty mevo_get.sh pobiera (mevo_get_store.pl) ze strony plik locations.js, wyciąga z niego najważniesze dane, które dopisuje do pliku YYYYMMDD_log.csv

Uruchamiany raz dziennie mevo_process_yesterday.sh agreguje (robi to skrypt mevo_yesterday_f.pl) dane z pliku YYYYMMDD_log.csv, które zapisuje do pliku MEVO_DAILY_BIKES.csv.

Zawartość MEVO_DAILY_BIKES.csv jest następująca:

day;bikes;zb;dist.total;ga;gd;sop;tczew;rumia;s10111;s10111d;s10112;s10112d;zstat;sstat;\
gd0p;ga0p;sop0p;tczew0p;rumia0p;gd1p;ga1p;sop1p;tczew1p;rumia1p;slope3;\
slope5;stage2;stage4;stage6;stage8;stage10;stage12;stage14;stage16;stage18;stage20;stage99

gdzie:

bikes -- łączna liczba rowerów dostępnych/wykazanych w ciągu dnia w plikach locations.js;

zb -- łączna liczba rowerów wykazanych, które nie były używane (zero-bikes);

dist.total -- dystans łącznie (liczony po prostej);

ga/gd/sop/tczew/rumia -- dystans łącznie (liczony po prostej dla miast; jeżeli rower przejechał z miasta do miasta to każde miasto dostaje połowę);

s10111/s10112 --przeciętna liczba rowerów na stacjach s10111/s10112 liczona jako $\sum_{i=1}^N r_i / N$ (N -- liczba pobrań pliku locations.js, jeżeli pobrano wszystkie to $24 \times 30 = 720$);

s10111d/s10112d -- przeciętna liczba rowerów na stacjach s10111/s10112 w godzinach 5--23;

zstat -- przeciętny odsetek stacji bez rowerów (zero-stations), liczony jako $\sum_{i=1}^N s_i / (S \times N)$ (N -- liczba pobrań pliku locations.js, $S$ -- liczba stacji w systemie);

sstat -- przeciętny odsetek stacji z maksimum jednym rowerem (single-stations), liczony jako $\sum_{i=1}^N s_i / (S \times N)$;

gd0p/ga0p/sop0p/tczew0p/rumia0p -- przeciętny odsetek stacji bez rowerów (zero-stations) dla miast (gd/ga/sop/tczew/rumia). Liczony jak zstat tylko $S$ -- liczba stacji w danym mieście oczywiście;

gd1p/ga1p/sop1p/tczew1p/rumia1p -- przeciętny odsetek stacji z maksimum jednym rowerem (single-stations) dla miast (gd/ga/sop/tczew/rumia). Liczony jak sstat tylko $S$ to liczba stacji w danym mieście oczywiście a nie ogółem;

slope3/slope5 -- łączny dystans przejechanych odcinków o nachyleniu przeciętnym 3%/5%;

stage2/stage4 itd -- łączny dystans przejechanych odcinków o dlugości 0--2km, 2--4km itd...

Następnie uruchamia skrypt mevo_daily_report.pl, który z pliku MEVO_DAILY_BIKES.csv wyciąga ostatni i przedostatni dzień; kompiluje raport dzienny tj. oblicza podstawowe statystyki, tworzy raport tekstowy (ograniczony do 280 znaków bo Twitter więcej nie potrafi) tworzy bardziej obszerny raport w formacie TeXa, konwertowany później do obrazka (za pomocą XeTeXa/converta) Publikuje na twitterze (twitter_post.py) obrazek i ww raport tekstowy.

Następnie uruchamia skrypt mevo_yesterday_hr_f.pl, który agreguje dane z pliku YYYYMMDD_log.csv w ujęciu godzinowym. Zapisuje wynik do pliku MEVO_STAT_BIKES_HRS_YYYYMM.csv (plik przechowuje zagregowane dane godzinowe dla miesiąca). Ten skrypt niczego nie publikuje na twitterze

Plik MEVO_STAT_BIKES_HRS_YYYYMM.csv ma następującą zawartość:

day;hr;bikes;nzstations;bikesGD;bikesGA;bikesSP;nzsGD;nzsGA;nzsSP

day/hr -- dzień i godzina;

bikes -- przeciętna liczba rowerów na wszystkich stacjach (definiowana jako suma rowerów/suma pomiarów);

nzstations -- przeciętna liczba stacji z minimum jednym rowerem (non-zero stations);

bikesGD/bikesGA/bikesSP -- przeciętna liczba rowerów na stacjach w mieście

nzsGD/nzsGA/nzsSP -- przeciętna liczba stacji z minimum jednym rowerem w mieście

Wykonywany raz w miesiąc mevo_process_lastmonth.sh uruchamia mevo_monthly_report.pl, który agreguje w skali miesiąca dane z pliku MEVO_DAILY_BIKES.csv; kompiluje raport miesięczny tj. oblicza podstawowe statystyki, tworzy raport tekstowy i obrazek (w sposób analogiczny jak raport dzienny) publikuje na Twitterze (twitter_post.py) obrazek i raport tekstowy.

Następnie uruchamia skrypt mevo_stat_bikes_hrs.pl, który konwertuje/łączy MEVO_DAILY_BIKES.csvMEVO_STAT_BIKES_HRS_YYYYMM.csv do pliku MEVO_HRS.csv. Na podstawie danych z pliku MEVO_HRS.csv tworzone są wykresy, do czego wykorzystywany jest R.

Plik MEVO_HRS.csv ma następującą zawartość:

dow;dowNN;hr;bikes;bikesGd;bikesGa;bikesSp;stats;statsGd;statsGa;statsSp;\
pbikes;pbikesGd;pbikesGa;pbikesSp;pstats;pstatsGd;pstatsGa;pstatsSp

gdzie:

dow -- dzień tygodnia (0 -- powszedni; 1 -- święta, soboty i niedziele)

dowNN -- liczba dni powszednich i niepowszednich (w miesiącu)

hr -- godzina

bikes/bikesGd/bikesGa/bikesSp -- przeciętna liczba rowerów na wszystkich stacjach i na stacjach w mieście;

stats/statsGd/statsGa/statsS -- przeciętna liczba stacji z minimum jednym rowerem ogółem i w mieście;

pbikes/pbikesGd/pbikesGa/pbikesSp -- przeciętna % rowerów na stacjach ogółem i w mieście (% średniej dobowej);

pstats/pstatsGd/pstatsGa/pstatsSp -- przeciętny % stacji z minimum jednym rowerem ogółem i w mieście (% średniej dobowej);

Konkretnie zaś uruchamiany jest R ze skryptem mevo_hrly.R, który generuje wykresy do pliku Mevo_hrly_YYYYMM.pdf. Następnie Mevo_hrly_YYYYMM.pdf jest konwertowane (convert) do formatu JPG (Mevo_hrly_YYYYMM-0.jpg, Mevo_hrly_YYYYMM-1.jpgMevo_hrly_YYYYMM-2.jpg).

Publikuje na twitterze (twitter_post.py) Mevo_hrly_YYYYMM-*.jpg

Uruchamia R ze skryptem mevo_daily_bikes.R. Uruchamia R ze skryptem mevo_daily_zstats.R. Skrypty generują wykresy do plików mevo_daily_bikes.pdfmevo_daily_zstats.pdf. Pliku mevo_daily_bikes.pdf/mevo_daily_zstats.pdf są zamieniane na format JPG. Publikuje na twitterze (twitter_post.py) mevo_daily_bikes.jpg/mevo_daily_zstats.jpg.

Reasumując tworzone/wykorzystywane są następujące pliki danych: YYYYMMDD_log.csv (dzienny log dopisywany co 2min); MEVO_DAILY_BIKES.csv (dzienny log aktualizowany co 24h (o 2:33)); MEVO_STAT_BIKES_HRS_YYYYMM.csv (dzienny log godzinowy aktualizowany co 24h (o 2:33)) MEVO_HRS.csv (plik tymczasowy z MEVO_DAILY_BIKES.csv/MEVO_STAT_BIKES_HRS_YYYYMM.csv (raz w m-cu))

Przy okazji się okazało że XeTeX na Debiana 4.9.51-1 (chyba Stretch) w wersji Armel jest epicko spieprzony. Konkretnie nie może znaleźć fontów systemowych, bo szuka jakiś dziwnych obciętych nazw. Przykładowo Iwona-Reg.otf nie znajduje, bo szuka Iwona-Reg.. Dziwaczny błąd. Zrobiłem link ln -s Iwona-Reg. Iwona-Reg.otf i działa bo mi się nie chciało tracić czasu na poprawienie tego lepiej.

Anyway za 4 ostatnie miesiące zbiorcza statystyka wygląda następująco (dystanse w tys km za wyjątkiem Dist/r -- miesięczny średni przebieg roweru w km):

YYMM Days   Dist %Change Dist/r   GD %Change    GA %Change   SOP %Change
------------------------------------------------------------------------
201905 31  569.8  241.1  531.5  359.5  235.6  126.6  267.3   42.9  244.3
201906 30  856.9  150.4  677.4  501.4  139.5  220.5  174.2   76.2  177.7
201907 31  751.4   87.7  570.9  438.8   87.5  187.9   85.2   69.0   90.5
201908 31  781.0  103.9  592.3  466.5  106.3  180.3   96.0   73.3  106.3
------------------------------------------------------------------------

Czyli najlepiej było w Czerwcu, bo jeżdżą wcale nie przyjezdni tylko miejscowi do roboty. Potwierdza to też zmienność tygodniowa (mniej się jeździ w soboty i niedziele). Połowa odcinków ma mniej niż 4km (liczone w linii prostej przypominam). Długość odcinków o nachyleniu 3% jest śladowa (a 5% to już ślad w śladzie). Resztę na wykresach widać...

url | Wed, 04/09/2019 19:05 | tagi: , ,
Dulkiewicz upomina Kuchcińskiego

Lotna inaczej p. Dulkiewicz, znana z tego, że usiłuje zaistnieć (bo o jakiś namacalnych że tak powiem osiągnięciach trudno na razie mówić, chociażby z tego powodu, że ostatecznie dopiero mija pół roku jak się świat dowiedział, że ktoś taki wybitny w ogóle istnieje) poucza marszałka Kuchcińskiego, że zamiast samolotem to powinien rowerem jak ona...

Chciała błysnąć a wyszło jak zwykle dotąd średnio (mówiąc oględnie), bo niby zamiast trwonić grosz publiczny latając ona jeździ rowerem więc wstydź się rozrzutny marszałku z PiSa. No ale kurcze nie swoim rowerem, tylko kupionym za publiczne, do tego cały projekt to modelowy przykład klapy (za cudze pieniądze). Więc zamiast siedzieć cicho (jak Szczurek czy inny Karnowski) przypomniała jaką to klapą/kompromitacją jest słynne MEVO.

Miało być 4000 rowerów jest 1500... O reszcie należy zapomnieć, bo bądźmy szczerzy: w czym leży nie-do-rozwiązania-od-miesięcy problem pt kupić i udostępnić te marne 2500 brakujących bajków, jak nie w braku kasy w NextBike czy jak oni się tam nazywają? Operatorowi oczywiście naliczają za niewywiązanie się z umowy kary, ale skoro on nie ma na rowery, to i na kary nie będzie miał (więc pewnie w stosownym czasie się wszystko się anuluje albo się ogłosi upadłość operatora i będzie po sprawie, i po pieniądzach wpompowanych w Misia pn. MEVO też)...

url | Mon, 12/08/2019 17:34 | tagi: , , , ,
Mevo: koncentracja rowerów na stacjach

29 czerwca był upał i pierwszy raz w życiu zobaczyłem stację MEVO literalnie zawaloną rowerami. Była 13:00. Po dojechaniu do domu sprawdziłem, że rowerów było tam aż 24. To mnie zainspirowało do sprawdzenia jak wygląda koncentracja rowerów na stacjach. Na szybko zmajstrowałem skrypt wypisujący ile jest rowerów na stacjach (rowery), udział w całości zaparkowanych w danym momencie (udzial) oraz udział w całości zaparkowanych w danym momencie w tym konkretnym mieście (ludzial): Dla 29 czerwca 2019, godz 13:00 okazało się że:

stacja;wspolrzedne;miasto;rowery;udzial;ludzial
S11358;18.57196808,54.40258423;Gdańsk;55;6.782;16.566
S11069;18.59038998,54.42794681;Gdańsk;24;2.959;7.229
S10100;18.57092997,54.44534256;Sopot;24;2.959;35.294
S11357;18.63640600,54.38637008;Gdańsk;18;2.219;5.422
S12007;18.53351997,54.49663118;Gdynia;16;1.973;7.843
S11186;18.57639103,54.39859534;Gdańsk;15;1.850;4.518
S10121;18.56255831,54.45392821;Sopot;13;1.603;19.118
S12126;18.47267507,54.54728035;Gdynia;13;1.603;6.373
S12053;18.54832346,54.51633152;Gdynia;13;1.603;6.373
S12054;18.54687652,54.51960321;Gdynia;12;1.480;5.882
S12033;18.56357898,54.48005340;Gdynia;10;1.233;4.902

Czyli na stacji 11358 było 55 rowerów co stanowiło 6,782% wszystkich zaparkowanych w systemie MEVO albo 16,566% zaparkowanych w Gdańsku. Dla Sopotu było nawet jeszcze lepiej bo na stacjach 10100/10121 było 24+13 (37 rowerów) ale było to 35,294 + 19.118, tj. prawie 55% wszystkich zaparkowanych w Sopocie (o godzinie 13:00). Dokładnie było 68 rowerów w 28 miejscach wtedy (27 stacji i jeden luźny bajk). Na 11 stacjach nie było nic a na 10 jeden rower.

Jest taka prosta miara koncentracji, co się nazywa w języku HH-Index, albo po polsku Wskaźnik Herfindahla-Hirschmana. Jest on nawet stosowany w USA do mierzenia koncentracji na rynku. Formuła jest banalnie prosta: dla $N$ wartości $x_i$ ($i=1...N$) sumujących się do 100 (czyli udziałów w całości), HHI liczy się jako: $\sum_{i=1}^N x_i^2$. Łatwo sprawdzić że HHI < 10000. Interpretacja jest taka, że HHI < 1000 wskazuje na słabą koncentrację, 1000 < HHI < 1800 umiarkowaną, a wartości większe od 1800 na dużą. BTW HHI da Sopotu o 13:00 (29/7/2019) wynosiło około 1850...

No to ja policzyłem HHI dla MEVO. Udziały były chwilowe, tj. $x_i = r_i/r_t$, dzie $r_t$ łączna liczba zaparkowanych rowerów na wszystkich stacjach w mieście $M$ (w danym momencie); no a $x_i$ to oczywiście liczba rowerów na stacji $i$. Potem uśredniłem, tj. wszystkie $HHI_i$ z godziny $h$ zsumowałem i podzieliłem przez liczbę pomiarów w tej godzinie (zwykle przez 30, bo pomiar jest co 2 minuty). Policzyłem oddzielnie dla GD/GA/Sopot/Tczew dla dni pracujących oraz dla świąt, sobót i niedziel osobno...

Wyniki dla maj--lipiec na wykresie (obok). Ciekawostkowo koncentracja w GD jest zaskakująco inna niż w GA. Teoretycznie im więcej stacji tym wartość HHI powinna być mniejsza, a tak nie jest: w GD wartość HHI wynosi w szczycie około 500, a w GA tylko 300. Szczyt wypada tak 9--11 zresztą. Można sobie wyobrazić, że użytkownicy jadą do pracy i zostawiając rowery przez biurami ogołacają stacje poza centrum a zapełniają te w rodzaju stacji o numerze 11358 (Gdańsk/Oliva Business Centre). W niedziele i święta do pracy nie jeżdżą to koncentracja jest mniejsza. Ma sens, ale nie w GA gdzie akurat w święta jest większa, wprawdzie chwilowo (w znaczeniu, że szybko rośnie ale potem równie szybko spada), ale jednak. Jakby w GA masowo jeździli gdzieś koło południa, a potem wracali z powrotem prawie że od razu... Mniejsza liczba stacji/rowerów w GA niż GD może powodować że wartość HHI ,,łatwiej'' rośnie...

W Sopocie i Tczewie jest znacząco mniej rowerów niż w GD/GA więc nic dziwnego że wartość HHI jest też dużo większa. BTW przeciętne dzienne wartości HHI są następujące (GD/GA/Sopot/Tczew): 170/222/1255/1143 (pon-piątek) oraz 93/225/1169/1200 (niedziele-soboty-święta). W Sopocie (poniedziałek--piątek) zmiany HHI są jeszcze inne niż w GD/GA. Amplituda jest mniejsza, a jedyny wyraźny dół jest rano około 5 a nie w godzinach 21--5 jak na przykład w GD. W niedziele i święta jest tradycyjnie jeden szczyt koło południa, a oprócz tego około 19--20 oraz 2--3 rano.

Skrypty i plik CSV z danymi jest tradycyjnie w archiwum GitHub

Na koniec przypomnienie, że prezes obiecał na 18.08 +4000 rowerów w systemie. Na koniec lipca wykazywane jest póki co: +1500 (niektóre w Warszawie albo w Cedrach Wlk.). Z tej puli bajków (numerów bajków?) codziennie pojawia się w pliku locations.js +1350, jeździ zaś mniej, około 1200 (reszta stoi). Na 100 procent wszyscy już wiedzą, że ni-chu-chu nie będzie 4000 rowerów nawet na 31 września, ale media zachowują w tej sprawie zgodne milczenie. Nikt nikogo nie pyta, a zwłaszcza prezesa. Nie ma sprawy...

url | Thu, 01/08/2019 12:38 | tagi: , , , ,
Połtawa 2019

W Połtawie byłem z kolegą AP w końcu maja. Mówiąc konkretnie 20--24 maja, ale jakoś nie mogłem się zebrać więc raport dopiero teraz...

Odlot z Gdańska 15:10, w Charkowie jesteśmy 18:20. Jedziemy trolejbusem na dworzec autobusowy. Jest autobus do Połtawy, ale za trzy godziny. Idziemy do restauracji gdzie zamawiamy po barszczu ukraińskim i naleśnikach i siedzimy do 21:00. BTW taki barszcz ukraiński to trochę inaczej wygląda niż u nas. Do barszczu obowiązkowo zagrycha w  postaci pieczywa, słoniny i surowego, grubo krojonego czosnku. No i śmietana.

Autobus jedzie aż do Gdyni, a Połtawa to pierwszy przystanek. Jest po północy, taksówek nie ma ale są wszędzie informacje z numerami telefonów. Dzwonimy, przyjeżdża, jedziemy do hostelu.

Następnego dnia, stawiamy się na uniwersytecie. Okazuje się że zamknięty, wynajęty na czas matur jako miejsce do egzaminowania. Przychodzi nasz gospodarz Julia i prowadzi nas do innego budynku na konferencję studencką. Na konferencji jest rektor--siedzimy do obiadu i słuchamy studentów. Po obiedzie wycieczka po Połtawie, potem spotkanie ze kadrą uczelni. Rozmowa po rosyjsku więc coś tam rozumiem, ale wiele rzeczy nie rozumiem.

Po spotkaniu idziemy na kolację. Rekomendują nam lokal gruziński pn. Old Tiflis. Idziemy we trzech, z poznanym tutaj Łotyszem, który także przyjechał na ErasmusMobility. Łotysz okazuje się niezłym balowiczem; dzięki niemu wydajemy kupę kasy na kolację, z której wracamy około 22:00.

W środę zwiedzanie uczelni zaczyna się o 10:00. To zwiedzanie okazuje się najciekawszą częścią pobytu. Dociera do nas, że szkoła wcale nie jest państwowa, co nam się do tej pory wydawało tylko prywatna. To szkoła zawodowa, kształcąca ekonomistów. Studiuje na niej ponad 6000 studentów w tym wielu (kilkuset) z zagranicy, w szczególności z Afryki i z Indii (widzieliśmy). Są też studenci z Turcji, Gruzji i Azerbejdżanu. A propos Gruzji to w mieście żyje ich podobno 1600...

Budynek uczelni jest stary i przez to robi kiepskie wrażenie--jak się chodzi korytarzami, ale to pozory: szkoła jest doskonale wyposażona. Ma wdrożony imponujący system nauczania na odległość. W systemie tym kształcą nawet 300 studentów w trybie pure-distance oraz 3000 w trybie mieszanym (blended jak mawiają w branży DL). W trybie mieszanym studiują na przykład studenci służący w wojsku. Mogą się uczyć a nawet zdawać egzaminy bez opuszczania posterunków na linii frontu z DRL/Rosją. Uczelnia ma też sieć oddziałów zamiejscowych, na potrzeby których możliwe jest organizowanie zajęć w trybie telekonferencji. Mają do tego stosowną infrastrukturę--widzieliśmy. W pełni wyposażone studia do przygotowywania wideo-treści oraz dziesięć kabin dla wykładowców na potrzeby zajęć w trybie telekonferencji. Do tego biblioteka multimedialna z tak na oko 40 stanowiskami dla czytelników.

Początkiem szkoły była placówka kształcąca kadry na potrzeby spółdzielczości (cf. PUET. Ten związek ze spółdzielczością jest (chyba) ciągle obecny i ważny, bo widzieliśmy parokrotnie w szkole w różnych miejscach loga COOP. Organizacji, która w Polsce to ja nie wiem czy w ogóle działa. Jedyne COOP jakie widziałem w życiu, to sklepy o tej nazwie w Szwajcarii...

Na potrzeby wewnętrzne szkoła współpracuje z siecią koledżów, czyli szkół średnich (ale to akurat jest wbudowane w system, w tym sensie, że szkoły średnie są w pewnym stopniu częścią szkół wyższych). Z zagranicy zaś rekrutuje studentów głównie poprzez sieć zaufanych pośredników działających na prowizji.

Całość działa, co o tyle jest godne podziwu, że działa można powiedzieć w warunkach przyfrontowych. Z Połtawy do DRL jest niedaleko (na przykład do miejsca gdzie spadł słynny MH-17 400km raptem). Szkoła nawet straciła dwa oddziały--Donieck i Semferopol, które są teraz za granicą.

Po obejrzeniu szkoły pojechaliśmy z kolei na wycieczkę po okolicy--najpierw na miejsce słynnej bitwy z 1709r pomiędzy wojskami Carstwa Moskiewskiego a Królestwem Szwecji. Potem do muzeum piwa i bimbrownictwa. To pierwsze ciekawe to drugie niekoniecznie. Muzeum bitwy jest ciekawe, bo ukazuje ją z szerszej perspektywy, tj. z punktu widzenia Ukrainy (która nie była stroną w bitwie przecież). Pewnie ciut na siłę ale co z tego? Muzeum bimbrownictwa z kolei to typowo komercyjna placówka przy restauracji. Dwa pokoje wypełnione dość przypadkowym sprzętem związanym z produkcją piwa i samogonu.

W czwartek w sumie nie było nic ciekawego. Dość dużo czasu zajęło nam ustalenie jak się wydostać z Połtawy--pojechaliśmy na dworzec kolejowy i kupiliśmy bilety na rano następnego dnia.

Rano w piątek taksówką do dworca. Potem pociągiem do Charkowa, do którego docieramy o 10:00. Tutaj drobna komplikacja: patrol milicji nas zatrzymuje i kontroluje: każą wyjąć wszystko z kieszeni i plecaków. Incydent kończy się na niczym, może myśleli że mamy jakąś kontrbandę i coś tam da się od nas wyciągnąć? Nie wiem... Milicjanci są regulaminowi i uprzejmi wszakże.

Potem zostawiamy bagaż w przechowalni i idziemy na 3 godziny na miasto. Bez sensacji w sumie. O 14:00 zwijamy żagle: metrem dostajemy się na prospekt Gagarina a stąd autobusem na lotnisko. O 18:38 cabin crew take off. Lądujemy sensacyjnie 25 minut przed czasem...

Zdjęć i śladów GPX póki co nie ma ale będą...

url | Fri, 26/07/2019 11:34 | tagi: , , ,
MEVO: rozkminianie systemu (odcinek trzy)

Miało nie być o MEVO do września, ale najechałem na stojący w zasadzie w polu rower przed Chwaszczynem. Zrobiłem zdjęcie i się okazało że figuruje on w bazie. Przypomnę, że w poprzednim odcinku trylogii o MEVO założyłem że plik locations.js zawiera informacje nt stacji oraz informacje o luźnych-rowerach-w-dziwnych-miejscach (np w Warszawie), które postanowiłem pomijać. Że przypomnę:

[luźne-rowery] mają dziwną nazwę a w atrybucie bike mają true (albo jeden), a w atrybucie spot mają zero (czyli false). Z tego wychodzi, że te stacje to nie są stacje tylko jakieś luźne rowery pozasystemowe. Taką mam koncepcję...

Znalezisko spod Chwaszczyna podkopało moją wiarę w koncepcję. No bo jeżeli baza zawiera także rowery normalnie eksploatowane, ale nie parkowane na stacjach, to pomijam -- być może istotną -- część ruchu w systemie MEVO. Żeby ustalić w miarę szybko stan rzeczy wymyśliłem, że podsumuję pozycje wszystkich rowerów -- zarówno tych na stacjach i tych luźnych -- i zobaczę co wyjdzie. Konkretnie czy parkowanie poza stacjami to incydent, który można pominąć czy niekoniecznie oraz czy dzikie parkingi się skupiają w pewnych lokalizacjach, a jak się skupiają, to gdzie?

Plik locations.js zawiera zmienną NEXTBIKE_PLACES_DB, która wygląda jakoś tak:

  var NEXTBIKE_PLACES_DB = '[{"places":[
  {"uid":14242676,
   "lat":52.281631111111,
   "lng":21.011891111111,
   "bike":true,
   "name":"Jagiellońska 88A",
   "address":null,
   "spot":false,
   "number":0,
   "bikes":1,
   "booked_bikes":0,
   "bike_racks":0,
   "free_racks":0,
   "special_racks":0,
   "free_special_racks":0,
   "maintenance":false,
   "terminal_type":"","
   bike_list":[{"number":"600262","bike_type":114,
      "lock_types":["frame_lock"],
      "active":true,
      "state":"ok",
      "electric_lock":true,
      "boardcomputer":7551015898,
      "pedelec_battery":62,
      "battery_pack":{"percentage":62}}],
 "bike_numbers":["600262"],
 "bike_types":{"114":1},
 "place_type":"12",
 "rack_locks":false,
 "city":"Gdańsk-Wawa"}]}]';

Pole places zawiera listę elementów, z których każdy to opis miejsca, tj. stacji lub pozycji luźnego roweru (dalej LB od luźnego-bajka). Czy jest to stacja czy rower można wykoncypować na podstawie wartości pola bike (jeżeli true/1 to luźny rower). Są ponadto współrzędne miejsca (lat, lng); numer miejsca (number, lub zero dla LB) liczba rowerów zaparkowanych w miejscu (bikes); lista numerów rowerów w miejscu (bike_numbers); nazwa miejscowości (city). Pole uid to moim zdaniem unique id miejsca. Zatem stacja ma numer, LB nie ma numeru. Każda para współrzędnych ma ten sam uid.

W zasadzie jeżeli bike = true, to bikes=1 ale niekoniecznie i nie potrafię wykoncypować co znaczy taki rekord:

{"uid":14302318,
 "lat":54.350404444444,"lng":18.586652222222,
 "bike":true,
 "name":"BIKE 99170",
  ...
 "bikes":0,
 ...
 city":"Gdańsk"}

Takich wpisów jest circa pięć więc pomijam wyjaśnienie tego fenomenu. Robię skrypt parsujący apiać wszystkie pliki locations.js pobrane w okresie maj--lipiec (ostatni miesiąc niekompletny). Skrypt zapisuje: uid, numer, pozycję, miasto, typ miejsca (stacja albo LB) oraz liczbę powtórzeń (liczba wpisów dotyczących miejsca o współrzędnych lat/lng; każda stacja w tym okresie ma 53 tysiące wpisów. LB ma mniej oczywiście.) Dla czerwca wychodzi 20 tysięcy różnych zarejestrowanych miejsc. Dla całego okresu 60 tysięcy (różnych).

Wyświetlenie 60 tys kropek na mapie nie będzie proste więc wymyśliłem sobie, że rozpocznę od zagregowania liczby ,,parkingów'' do rozsądnej wielkości rzędu kilku tysięcy. W pierwszym podejściu założyłem, że duża liczba miejsc parkowania to rezultat błędów w ustalaniu pozycji GPS i że pozycji będzie mniej jak się zmniejszy dokładność pomiaru. Konkretnie zamiast 8 cyfr spróbować zastosować 4 (tj. przykładowo 54.12345678 obciąć do 54.1234) i zobaczyć co wyjdzie.

Wyszło 40 tysięcy czyli redukcja taka sobie, ale ujawniły się dziwne miejsca koncentracji: w Gdańsku na ul. Pokoleń Lechii/Amber Expo, w Warszawie na ulicy Jagiellońskiej w okolicach numeru 88 oraz w Cedrach Wlk! W Cedrach na ul. Pionierów Żuław 42 (gdzie na Google Maps jest firma UEGZ). Wygląda, że wszystkie wymienione miejsca to stacje, tyle że serwisowe rowerów.

Ponieważ oprócz Warszawy LB sporadycznie są raportowane także, w różnych innych dziwnych miejscach, to wymyśliłem, że będę pomijał miejsca znajdujące się poza prostokątem o współrzędnych wierzchołków równych: 53.8/17.4 (dolny lewy) i 55.0/19.5 (górny prawy).

Na okoliczność LB z Pokoleń Lechii/Amber Expo dodałem warunek, że pomijane są także miejsca znajdujące się wewnątrz prostokąta o współrzędnych wierzchołków równych: 54.387395/18.630779 (górny lewy) i 54.385733,18.635221 (dolny prawy). Cedry zostawiłem w spokoju za to policzyłem kwantyle tych 40 tysięcy miejsc (bez 650 oficjalnych stacji):

kwantyl 25%   50%   75%   90%   95%  100%
------------------------------------------
wpisy     2    9     29  121    246 32760

Dwa wpisy to 4 minuty skoro każdy wpis jest co 2 minuty średnio. 50% miejsc było zajmowanych przez około 20 minut, a 5% wszystkich miejsc to parkingi na 8 godzin i dłużej (w ciągu 2,5 miesiąca przypominam) czyli dalej niewiele. Zamiast kombinować z dokładnością pomiaru można pominąć te miejsca które pojawiają się sporadycznie. Jeżeli za typowe przyjmiemy takie, które występują minimum 250 razy (około 5% największych wartości), to miejsc jest 2232 (w tym 650 stacji). Co ważniejsze udział wpisów dotyczących LB w całości wpisów to 5,6%. Spokojnie można tego nie analizować bo przecież i tak moje szacunki są przybliżone. A pominięcie LB ma tą zaletę że upraszcza rachunki. Na mapie te 5% najczęściej powtarzających się miejsc wygląda następująco:

Zostało osiem miejsc z liczbą wpisów większą od 5000, w tym 5 w Cedrach (gdzie jak już ustaliłem coś serwisują niechybnie). Te 3 duże dzikie parkingi to: Stężyca (2) oraz Sierakowice.

Reasumując: znalezisko spod Chwaszczyna niewiele zmienia. Nie będę uwzględniał w statystykach wykorzystania MEVO rowerów parkowanych poza stacjami.

url | Tue, 16/07/2019 15:57 | tagi: , ,
MEVO po trzech miesiącach

Rowery/dystanse

Rowery na stacjach 10111/12

Obiecuję ostatni wpis n/t Mevo. Następny po wakacjach, czyli po mitycznym 18 sierpnia (czemu mitycznym poniżej).

Obszerny wywiad z prezesem się ukazał 19 maja, ale ja go przeczytałem dopiero przedwczoraj (cały wywiad w repo na githubie, link poniżej). Prezes pisze, że:

26 marca na ulice wyjechały 1224 rowery [...] [Potem] liczba rowerów zaczęła spadać. Trafiały do serwisu, mieliśmy problem z ładowaniem. Zainteresowanie systemem w pierwszych dniach nas zaskoczyło [...] Zwiększyliśmy zatrudnienie do około 40 osób, przenieśliśmy serwis do większej hali w MTG. Codziennie wyjeżdża stąd około 250 rowerów. Przygotowujemy się do obsługi pełnej floty docelowych 4 tysięcy rowerów [...] Kolejne rowery planujemy dostarczać stopniowo, po 100-200-300 tygodniowo. Ostatnią partię dostarczymy 18 sierpnia.

Mój komentarz. Po pierwsze: czy wyjechało 1224 to ja nie wiem -- pewnie tak, ale w kwietniu średnio jeździło niecałe 800, a raczej jeździło 624 a 163 nie jeździło tylko było (wykazywane że są, ale nie przejechały nic). W tym kontekście twierdzenie prezesa, że przyczyną (wielokrotnie podkreślaną) problemów jest nadzwyczajne zainteresowanie rowerami jest cokolwiek niezborne ze stanem przygotowań. System jest sprawny na 800/4000 = 20%, a on jest zaskoczony, że rowerów brakuje. Nie wiem co prezes kończył za szkoły, ale z logiką na bakier jest... No i pytanie pomocnicze: gdyby wyjechało na przykład 2000 rowerów (w sensie wyjechało i jeździło) czyli 250% tego co jeździło (w kwietniu), to dalej byłaby klapa czy jednak nie? A te 2000 to 50% tego co miało jeździć. Albo inaczej po co system na 4000 rowerów skoro miało wystarczyć 1220?

Dwa: zatrudniają 40 ludzi do obsługi około 1000 rowerów (dane za maj). Ile musi być zatrudnionych do obsługi 4000 (czyli o 300% więcej niż mają) i to do 18 sierpnia (w trzy miesiące licząc od daty wywiadu).

Trzy: 250 wyjeżdżających rowerów z MTG to jak rozumiem rowery niesprawne, serwisowane i włączane z powrotem do ruchu. Hmmm... czy to oznacza, że z grubsza jest codziennie 250 serwisowanych (czyli wyłączonych z ruchu)? Że rower się psuje, to normalne więc nie ma w tym nic dziwnego, że są rowery popsute i trzeba je naprawiać. Wychodzi, że tych rowerów jest 250 z 1250 czyli około 20%. Albo i nie, bo dziennikarz nie dopytuje... Ale jeżeli tak, to na 4000 będzie 800 popsutych przy założeniu 20%. No może mniej będzie, bo obciążenie/rower będzie mniejsze, a rowery będą usprawniane pod kątem słabych punktów, ale nawet jak będzie to 10% to dalej jest 400 rowerów do naprawy codziennie czyli o 60% więcej niż teraz (40 ludzi:-) może nie wystarczyć.)

Cztery: jeżeli planują dostarczyć stopniowo po 100--300 tygodniowo a mają do dostarczenia 2800, to dostarczając 100/tydzień przez 3 miesiące dostarczą 2400. He, he... Gorzej że na dziś system wykazuje około i zaledwie 1500 rowerów. Pozostało 2500 do dodania, a tygodni do 18 sierpnia zostało 5. Wychodzi po 500/tydzień, starting from now...

+--------------------------------------------------+
|           |         średnio dzienne              |
| Miesiąc   +--------------------------------------+
|           |     NZB |      ZB | NZB+ZB  | NZB%   |
| ----------+---------+---------+---------+------- +
| kwietnia  |  624.93 |  163.87 |  788.81 | 79.09  |
| maja      |  893.13 |  179.03 | 1072.16 | 83.18  |
| czerwca   | 1094.97 |  172.07 | 1267.03 | 86.45  |
| lipca     | 1089.00 |  248.25 | 1337.25 | 81.58  |
+-----------+---------+---------+---------+--------+

NZB -- rowery ruszające się; ZB -- rowery które nie jeździły, ale były wykazywane. Porównaj też wykresy. Drugi wykres pokazuje dostępność rowerów na stacjach 10111/10112 (Sopot Mickiewicza/Armii Krajowej), które są najbliżej mojego domu. Dostępność liczona jako prosta średnia (liczba rowerów)/(liczba pomiarów)...

Generalnie trend jest OK tylko to ślimacze tempo. Załamanie lipcowe spowodowane jest przypuszczalnie (fatalną) pogodą (lipiec liczony dla tylko dla pierwszych 8 dni). Dane są przypominam tutaj.

url | Tue, 09/07/2019 10:08 | tagi: , ,
Mevo w czerwcu 2019

Zestawienie wybranych parametrów pomorskiego roweru miejskiego MEVO (maj--czerwiec 2019). Dystanse i średnie są w kilometrach. Zapis Łącznie x% nach. oznacza łączną długość odcinków z przeciętnym nachylenie x% oraz większym. Odcinki z nachylenie 5% i więcej stanowiły odpowiednio 0,06% (maj) oraz 0,05% (czerwiec) łącznego przejechanego dystansu (ŁPD) a z nachyleniem 3% i więcej odpowiednio 0,72% oraz 0,66% ŁPD. To tyle odnośnie potrzeby instalowania silników elektrycznych w każdym rowerze ponieważ Trójmiasto pełne jest stromych podjazdów. Chyba chodziło o coś innego z tymi silnikami...

Wyszczególnienie Maj Czerwiec Zmiana
Liczba rowerów 1333 1518 13.9%
Łącznie odcinki 235455 330074 40.2%
Dystans łącznie (km) 649904.3 974943.1 50.0%
Średnio na rower/dzień (km) 15.7 21.4 36.3%
Średnio na rower/miesiąc (km) 487.6 642.3 31.7%
Łącznie 5% nach. (km) 393.9 491.5 24.7%
Łącznie 3% nach. (km) 4687.1 6440.4 37.4%
Łącznie 2% nach. (km) 16722.7 23386.0 39.8%

Przypominam, że powyższe policzono w taki oto sposób iż: ze strony https://rowermevo.pl/ co 120 sekund jest pobierany plik locations.js który zawiera listę rowerów zaparkowanych na stacjach w systemie roweru miejskiego Mevo. Długość/szerokość geograficzna stacji jest w pliku locations.js. Wysokość npm. stacji (SRTM) dodałem korzystając z programu gpsprune.

Mapa najczęściej używanych odcinków:

Dane, że tak powiem źródłowe dotyczące ruchu rowerów MEVO maj/czerwiec 2019 są dostępne tutaj.

url | Mon, 01/07/2019 15:42 | tagi: , ,
Koreańska sałatka z marchwii

Fajną sałatkę z marchwi, co ją pierwszy raz widziałem/próbowałem w Uzbekistanie, miałem okazję znowu spróbować przy okazji wycieczki do Elbląga. Bo w Elblągu jest restauracja uzbecka pn Nafisa (imię żeńskie). Nie było wielkim wyczynem po powrocie z Elbląga ustalenie jak toto się robi.

Sałatka nazywa się koreańska, bo wymyślili ją Koreańczycy. Jak się wpisze do google Морковь по-корейски to przepisów będzie multum (po rosyjsku) łącznie z filmami instruktażowymi. Ja znalazłem po polsku na stronie przepisy-julii.pl:

Składniki: Marchew -- 0,5kg, 1 cebula, olej -- 50g, czosnek -- 4 ząbki, papryka słodka, papryka ostra, pieprz czarny, kolendra mielona, sól -- 1 łyżeczka, cukier -- 1 łyżka, ocet 3% -- 3 łyżki.

Marchew trzeba obrać i zetrzeć na tarce w długie słupki. UWAGA: stosowną tarkę można na Allegro kupić (wpisać tarka/szatkownica słupki). Ja kupiłem prosty model firmy Julienne (numer ASIN: B01LZWFKP0; dostępny na Allegro) krojący na 2mm słupki i się sprawdza, jedyna uwaga to taka, że nie całą marchew da się pociąć no i trzeba uważać na palce. Być może droższe modele byłyby jeszcze lepsze.

Pokroić cebulę i smażyć na oleju do lekkiego zbrązowienia. Cebulę wyrzucić do marchewki. Dodać do octu cukier, sól, przyprawy i zalać marchewkę. Dodać sprasowany czosnek i wymieszać. Wstawić do lodówki na kilka godzin. UWAGA: do mojej sałatki nie dodaję papryki, tylko pieprz, sól i kolendrę.

Przepis nieco inny z ciekawymi komentarzami (dlaczego koreańska) jest tutaj.

url | Fri, 21/06/2019 07:58 | tagi: , ,
MEVO: rozkminianie systemu (odcinek dwa)

Numery stacji w systemie MEVO są pięciocyfrowe i zaczynają się od 10, 11 oraz 12. Takich stacji jest 654 (albo 653 zależy jak liczył). Oprócz tego jest stacja 999993 o współrzędnych w Wawie(52.261177495785/20.968099236488), która zapewne omyłkowo jest wykazywana w zestawie (https://rowermevo.pl/mapa-stacji/). Jak się naciśnie guziczek Pobierz bieżące lokalizacje, to się dostanie plik CSV o nazwie locations_YYYY-MM-DD_HH-MM-SS.csv. Plik ten ma 704 stacje czyli o 50 więcej niż wykazywana na stronie. Te pomijane stacje mają numer zero.

Z tych 654 stacji 363 jest w Gdańsku 55,56%; Gdynia 145 (22,17%); Tczew 28 (4,28%); Sopot 27 (4,13%); Rumia 23 (3,52%); Reda 17 (2,60%); Puck 14 (2,14%); Inni 18 (Władysławowo, Kartuzy, Sierakowice, Somonino, Stężyca, Żukowo.)

Te 50 coś stacji-niestacji wygląda jakoś tak:

uid;number;name;city;latlng;bikes;bike;spot;bikeSpot;terminal;address
13915356;0;BIKE 99127;Tczew;54.08056000 18.79086222;1;1;0;;;

Mają dziwną nazwę a w atrybucie bike mają true (albo jeden) a w atrybucie spot mają zero (czyli false). Z tego wychodzi, że te stacje to nie są stacje tylko jakieś luźne rowery pozasystemowe. Taką mam koncepcję...

url | Mon, 17/06/2019 14:25 | tagi: , ,
Mevo w maju

Ze strony https://rowermevo.pl/ co 120 sekund jest pobierany plik locations.js który zawiera (jak mniemam) listę rowerów zaparkowanych na stacjach w systemie roweru miejskiego Mevo. Jak rower zmienił stację to znaczy, że ktoś się nim przejechał (lub go przewieziono dla jakiś celów.)

Pobrane dane są dostępne tutaj. Konkretnie plik MEVO_bikes_ROKMIESIĄC.csv to plik CSV, którego każdy wiersz zawiera czas, idRoweru, stanBaterii oraz współrzędne geograficzne. Rejestrowane są tylko przemieszczenia, tj. na przykład jeżeli rower jest wykazywany przez 10 kolejnych pobrań jako zaparkowany w tym samym miejscu, to tylko pierwszy wpis jest zapisywany. Z kolei MEVO_tracks_ROKMIESIĄC.csv zawiera idRoweru, liczbę przemieszczeń oraz kompletny ślad w postaci par współrzędnych.

Plik MEVO_bikes_201905.csv (czyli za maj) zawiera 265 tys wierszy, plik MEVO_tracks_201905.csv zawiera 1550 wierszy (czyli zarejstrowanych rowerów w systemie). Tutaj uwaga: część wpisów/rowerów jest dziwna: są rowery jeżdżące po Warszawie, po Bałtyku a nawet w księstwie Monako. Szczegóły tutaj.

Na podstawie pliku MEVO_tracks_ROKMIESIĄC.csv obliczyłem łączny i średni dystans pokonany przez rowery w maju, pomijając „dziwne” wpisy. Za kryterium dziwności przyjęto punkt znajdujący się na zewnątrz prostokąta 53.8--55.0/17.4--19.5 (długość/szerokość). W ten sposób zostało 1370 rowerów a odpadło 180 „dziwnych”. Konkretnie policzyłem poniższym skryptem:

#!/usr/bin/perl
use Geo::Distance;
my $geo = new Geo::Distance;

my $distGrandTotal;
my $distTotal;

while (<>) {  chomp();
  ($bike, $nodes, $track) = split /;/, $_;
  $track =~ s/[ \t]+$//;
  @trkpts =  split / /, $track;

  $distTotal=0;  $skipBike = 0;

  foreach $t (@trkpts) {
     ($lon, $lat) = split /,/, $t;
     if ($lat < 53.8 || $lat > 55.0 || $lon < 17.4 || $lon > 19.5 ) {##
        $skipBike = 1;
        print STDERR "SKIPPED $bike: lat = '$lat' / lon = '$lon'\n";
     } 
     else { 
        if ($latPrev > 54.0 ) {
           $dist = $geo->distance( "meter", $lonPrev, $latPrev => $lon, $lat );
           $distTotal += $dist;
        }
        $lonPrev =  $lon; $latPrev = $lat;
     }
  }

  unless ($skipBike) {
    $mean = $distTotal / 31;
    printf "%s;%.2f;%.2f\n", $bike, $distTotal, $mean;
    $distGrandTotal += $distTotal;
    $validBikes++;
  }
}

$grandMean =  $distGrandTotal / (31 * $validBikes);
print STDERR "Średnio: $grandMean ($validBikes)\n";

Wyniki i analiza

Minimum przejechane 0km, pierwszy kwartyl 12,8km, mediana 17,8km trzeci kwartyl 21,2km. Maksimum 30,7km. Przypominam, że są to średnie dzienne dla 31 dni maja. Oczywiście nie są to wielkości prawdziwe: po pierwsze dystans jest liczony jako proste pomiędzy punktami (rejestrowanymi co 120s); po drugie nie wszystkie przemieszczenia polegają na pedałowaniu--czasami rower jest wieziony. Arbitralnie przyjmijmy że prawdziwa wartość to 200% zarejestrowanej (to chyba dużo mimo wszystko). Dalej załóżmy że gdyby z roweru korzystało się 6 godzin na dobę (można by policzyć ile się korzysta ale tego jeszcze nie zrobiłem)--co dalej nie wydaje się czymś nadmiernie wyśrubowanym (połowa czasu od 8 rano do 20 wieczorem). Wreszcie przyjmijmy 12km/h jako prędkość przemieszczania się (jak na pojazd z silnikiem -- moim zdaniem -- już mniej się nie da). Wychodzi 6 x 12 = 72km. A jest 30km czyli nawet nie połowa...

Rozkład średnich przedstawia histogram poniżej

url | Mon, 03/06/2019 08:42 | tagi: ,
Ozbekiston 2019

Kolega AP z przewodnikiem

Ja (z przewodnikiem)

Plow (przed podaniem/Chust)

Z jednego talerza smaczniejszy/Chust

Chałwa (znakomita/Samarkanda)

Nasz (gapowaty) kierowca

W drodze do Namanganu

Tkalnia w Margilan

Jedwabny dywan (Margilan)

Koło do odwijania kokonów (Margilan)

Słowo klucz: IKAT (Margilan)

Właśnie O'zbekiston a nie Uzbekistan (tak piszą miejscowi)...

Pierwszy dzień dojazdowy. Najpierw Pendolino 6:10--9:35 do Warszawy. Z Warszawy 13:10 Aerofłotem na Szeremietewo. Aerofłot stara szkoła -- podają całkiem fajny posiłek w cenie biletu, za to nic nie sprzedają (ale bilet kosztuje 2400 PLN). Ku swojemu przerażaniu konstatuję, że jedyne buty jakie wziąłem się literanie rozpadają (w Taszkiencie nie będzie 60% podeszwy)--pierwszy raz coś takiego mi się stało. Złośliwość przedmiotów martwych--akurat jak jadę do Uzbekistanu. to mi się buty rozpadły. Jedyne pocieszenie to takie, że mi je Elka wynalazła w szafie i to był jej pomysł...

Zbliżamy się do Moskwy. Pilot ogłasza że za ileś-tam minut będziemy lądować w gorod-gieroj-Moskwa. Najpierw myślałem, że brakuje końca (gieroj-SSSR), ale nie dobrze jest--gieroj-SSSR to był tytuł dla ludzi a dla miast tylko gieroj. Tak czy siak tytuł ustanowiony w ZSRR, a Moskwa dotała go w 1965r. także więc ten-tego...

Szeremietiewo, wysiadamy. Kontrola bagażu--widać nie mają zaufania do wszystkich linii, które obsługują, bo teoretycznie po co ta kontrola. Już byliśmy kontrolowani w W-wie i nie wychodzimy ze strefy zamkniętej. Po kontroli idziemy na nasz drugi terminal. Szeremietewo jest ogromne. Tutaj przesiadka jak jest zaplanowana na godzinę to jest to minimum, jeżeli nie za mało (kontrola bagażu).

My mamy trzy godziny więc spokojnie, oglądamy sobie terminal nic nie kupując (kawa 500 Rubli = 20 PLN czyli dużo). Do Taszkientu polecimy AirBusem 330, samolot większy od standardowych, trzy rzędy foteli 2+2+4 = 8 pasażerów w jednym rzędzie. Każdy ma ekran przed sobą, wyświetlają się tam różne rzeczy, w tym dane dotyczące lotu czy obraz z kamer zewnętrznych... Pierwszy raz czymś takim leciałem

W Taszkiencie jesteśmy planowo o 2 nad ranem (4 godziny różnicy czasu). Wsiadamy w umówioną wcześniej taksówkę do Samarkandy. Podróż po ciemku przebiega bez wrażeń. W połowie przerwa na tankowanie gazu w tank-station w pobliżu placu targowego. Paru handlarzy ciągle na posterunku: siedzą i handlują. Butów nie mają niestety ale można kupić chleb i ryby wędzone sprzedawana w dość, że tak powiem, oryginalnej pozycji (rybie to zwisa w sumie, jak ją ułożą po śmierci BTW) Ryb nie kupujemy, ale chleb na próbę tak. Kierowca za kurs bierze 40USD (jak było ustalone)

Tutaj cały kraj zresztą jeździ (Chevroletami) na gazie, ale nie na propan-butanie tylko ma metanie. Ruch jest ogromniasty a drogi szerokie jak pasy startowe na lotniskach, cztery pasy wte i następne cztery we-wte to częsty widok. Jeżeli nam się coś nie popierniczyło w obliczeniach to 100km kosztuje tyle co 5 PLN, czyli żeby w PL było tak samo tanio jak tu to samochód powinien palić 1 litr. W bagażniku centralnie miejsce zajmuje bańka na gaz--100l a nie 45 jak w PL. Nasz bagaż się w związku z tym zwykle nie mieścił w bagażniku.

Hotel jest 100 metrów od mauzoleum emira Timura. No to się nam trafiło. Standard jak najbardziej. O 10:30 jemy śniadanie i potem od razu idziemy zwiedzać miasto za pomocą wynajętego w hotelu przewodnika (40USD). Jak ktoś sam ustali co i gdzie zwiedzać to pewnie przewodnik zbędny, bo to nie jest jakieś specjalnie rozległe miejsce do zwiedzania, ale my nie ustaliliśmy. Oprócz zwiedzania chcemy kupić: buty, karty SiM i bilety na pociąg do Taszkientu na jutro.

W ramach zwiedzania zabytków robimy skok w bok na bazar. Imponujący wybór warzyw i owoców oraz orzechów i innych bakalii. Ale w temacie butów słabo--chińskie plastikowe. W rezultacie kupujemy jakieś tenisowki. Ciekawe że po ulicy ludzie chodzą w normalnych butach--gdzie oni je kupują? W temacie karty falstart: wg sprzedawcy można kupić ile się chce kart (na osobę) tyle, że chcą paszportu, który nam zabrali w hotelu. Kolega ma kilka paszportów to daje im drugi. Nie z nami te numery Brunner--sprzedawca kartkuje i się pyta gdzie stempel kontroli granicznej. Nie potrzebuje jakiegoś paszportu tylko tego kontretnego--bo musi zeskanować stronę kontroli. Pierwszy strzał pudło zatem.

Po południu idziemy kupić bilet i podjąć drugą próbę zakupu karty. Najpierw bilet. Też trzeba paszport, bilet jest imienny. Pani zakochana -- sprzedaje nam do Buchary za 130tys a my chcemy do Taszkientu przecież. Na szczęście mówi nam co nam sprzedała więc od razu omyłka się wyjaśnia. W temacie karty SIM natomiast kicha. Tym razem też się nie da, bo za późno już jest czy coś...

Rano śniadanie i taksówką na dworzec kolejowy. Dworzec jest ogrodzony a wejście za okazaniem biletu+paszportu. Wejście do budynku dworca tylko po przejściu kontroli bagażu, zakończonej przybiciem stempla na bilecie. Na peron już bez kontroli, ale do pociągu też wpuszczają po pokazaniu biletu. W pociągu kontrola nr 4 (nas nie kontrolują). Facet po cywilu + facet w mundurze ale kazachskim (bo pociąg międzynarodowy).

Taszkiencie planowo o 14:00 jesteśmy, tyle że wysiadamy nie na tym dworcu co trzeba, bo na Taszkient Sewiernyj a kierowca czeka na Taszkient-Jużnyj (o czym na razie nie wiemy). O tyle jesteśmy usprawiedliwieni że na stacji było napisane `Taszkient', jak kupowaliśmy bilet, to do Taszkientu i nikt się nie pytał jakiego. Kierowca również nie uściślał o jaki Taszkient mu konkretnie chodzi. No ale nic sie stalo. Sytuacja się wyjaśniła, kierowca podjechał na Sewiernyj i z dwugodzinnym prawie opóźnienim jedziemy do doliny Fergańskiej gdzie jest Namangan.

Podróż mija bez niespodzianek, ale ponieważ droga wiedzie przez góry (2000mnpm najwyższy punkt który osiągamy), to dwa razy stajmy na sesje zdjęciowe. Po drodze mijamy ludzi sprzedających naręcza dzikich tulipanów, zbieranych dla bieda-zarobku, tak jak u nas dajmy na to jagody. Po drodze kolega AP pyta kierowcę co on na to żebyśmy się zatrzymali na kolację na słynny plow. On na to jak najbardziej i skręcamy na plow w mieście Chust tuż przed Namanganem zresztą. Kolacja jest we wschodnim stylu, co między innymi oznacza siedzenie na dywanie przy niskim stole + konsumcję plowa z jednego talerza--taki jest smaczniejszy. Pierwszy plow w życiu zaliczony...

BTW Chust podobnie jest znany z handlarzy, którzy mają dobre kotakty z Polską i stamtąd ściągają dobry towar w tym używane samochody. Widzieliśmy naczepę do TiRa w polskim malowaniu jeszcze zresztą...

Dwa kolejne dni wypełniły obowiązki służbowe że tak powiem. Gospodarz odbierał nas z hotelu, jechaliśmy na uniwersyet gdzie produkowaliśmy się przed studentami. Pierwszego dnia do wieczora, drugiego do obiadu. Wyszło chyba nieźle, aczkolwiek było mocno to improwizowane w tym sensie na przykład że nigdy mi się nie udało mojej prezentacji dociągnąć do końca (z uwagi na zbyt mało czasu).

Pokazuję gospodarzowi książkę którą przeczytałem przed przyjazdem do jego kraju. Kartkuje w kilka minut: He tells we don't like homosexuals and indeed we do not like them... A ja właśnie tuż przed wyjazdem wyczytałem z mediówm, że opertkowi "przywódcy" w stylu moczymordy Drunckera pajaca Tuska, czy tej idiotki Mogherini obwieścili światu, iż i jakoby priorytetem UE będzie walka z Islamofobią (po zamachu w Churchchrist). Czy oni wierzą w to co oni mówią czy tylko są cynicznymi manipulantami? 90% Islamistów (albo i lepiej) ma w dupie Europę z jej wartościami, które są dla nich pseudowartościami i w zw z tym czy Europa lubi Islamistów czy nie lubi absolutnie im zwisa...

Po obiedzie drugiego dnia koniec i powrót do Taszkietu, ale przez Margilan, gdzie jest manufaktura produkująca różne rzeczy z jedwabiu. Dzięki naszemu gospodarzowi oprowadzono nas po fabryce, w której przetwarza się jedwab od kokona do różnych rzeczy (tkaniny, dywany; słowo klucz google:uzbek+ikat). No więc dla przykładu z 1kg kokonów powstaje 30 dkg nici jedwabnych. Nawinięcie tych 30dkg nici na standardowy motek zajmuje 1 godzinę, wymaga odwinięcia około 30 kokonów (jeden kokon -- 3000 m nici -- co 2 minuty). Dywan jedwabny w formacie 2x0,6m (bodajże) tka się (ręcznie) osiem miesięcy a kosztuje 3000 USD (za m2 nie za dywan). Technika ręczna jak za emira Timura.

Po zwiedzniu fabryki kupiliśmy parę rzeczy w przyfabrycznym sklepie. Ja konkretnie kupiłem dwa szale i kilka tradycyjnych czapek ale wszystko to było z jedwabiu więc wyszło nietanio.

Wyjechaliśmy do Margilan około 15 ale szło nam dość opornie żeby tam dojechać więc zurik jesteśmy w Namanganie około 19 i nie skręcając ani zatrzymując się jedziemy prosto do Taszkientu do którego dociermy grubo po 24:00 czyli już w zasadzie w sobotę.

W sobotę idziemy na bazar Chorsu. Kupujemy różne suweniry i trochę żarcia na obiad, w tym wędzoną rybę którą widzieliśmy pierwszej nocy naszego pobytu tutaj. Ryba efektownie wygląda, w smaku taka sobie. BTW handlarze `stacjonarni' nie są namolini, a `obnośnych' prawie nie ma. Wyjątek: kilkunastu gości wciskających szfran i `herbatę górską' oraz także kilkanaście? żebrzących Cyganek. Te ostatnie szczególnie wkurwiające w tym miejscu, w którym tysiące ludzi cieżko pracuje na groszowy zarobek a te p@zdy nie potrafią inaczej tylko muszą żebrać do tego wykorzystując dzieci (modus opertandi stare jak świat -- Juras O. nie wymyślił niczego oryginalnego) . Nic nie dajemy oczywiście Cyganom, kolega AP kupuje demonstracyjnie herbatę górską na stoisku a nie od obnośnego...

Po obiedzie okazuje się że została nam kupa forsy. Idziemy na Chorsu jeszcze raz, tym razem kupujemy talerze, bo inaczej wrócimy z kupą ichniej forsy do PL. Kupujemy też folię, ale nie do owinięcia żywności tylko naszych walizek nadawanych na bagaż rejestrowy.

I mamy nadzieję że będziemy umieli się ze wszystkim spakować...

W sklepie z talerzami jebłem że tak powiem czołem o (niski) strop z takim oto efektem że krew się leje, klienci przerażeni. Sprzedawcy pytają jak mi mogą pomóc:

-- rugby players do not break

tłumaczę (rugbystą nigdy nie byłem ale ubrany jestem w koszulkę Leicester Tigers, więc co szkodzi poudawać). Po 5 minutach po kryzysie: krew wysycha, zmywamy co trzeba, płacimy za zakupy i idziemy do domu.

Wszystko już tu było: pot i krew:-) Jeszcze tylko łzy nam zostały ale już chyba na nie nie starczy czasu...

W niedzielę pobudka 1:45 (w Wa-wie jest 21:45 czyli jeszcze sobota). Jedziemy na lotnisko, Kierowca nerwowo się pyta o coś, ale w języku. Potem się okazuje że chyba się zorientował, że przyjdzie mu zapłacić 3000 SUM za parking, jak nas podwiezie pod terminal, za co dostanie 7200 SUM, bo tyle mu się należy za kurs. Dajemu mu 10000 żeby nie miał krzywdy (well no trochę miał ale niewielką--200 SUM = 20 gr). Przechodzimy trzy kontrole bagażu (dwie zgrubne, jedna standardowa, taka jak na każdym innym lotnisku). Odprawa: waliza kolegi AP waży 26kg (limit 23kg) ale miła pani z Aerofłotu nie proszona od razu do mnie:

-- wy w miestie? Da?

-- No my w miejstie, konieszno

Dwie walizy 47kg czyli prawie dobrze. Nic nie płacimy za nadbagaż i o 4:30 odlatujemy do Moskwy (ciekawe BTW co znaczy `w miestie' i czy `w miestie' może być np. pół samolotu żeby średnia wyszła 23kg :-)). Około 5:30 stewardessy Aerofłotu zaczynają rozwozić użyn (czyli kolację). W Wa-wie jest jak łatwo wyliczyć 1:30--w sumie się zgadza. Późna kolacja o wpół do drugiej... Lądowanie na Szeremietiewo o 7:05 czasu lokalnego... Lecim galopem z terminala F na terminal D. Start 7:45 do Warszawy, dla odmiany jakimś liliputem 20 rzędowym. Lądowanie jak najbardziej planowe o 9:02 w Wawie. Niestety nasza radość przedwczesna--walizy zostały w Moskwie. Jadą następnym samolotem. Mamy do wyboru albo pojechać bez waliz albo czekać. Wybieramy drugie i faktycznie walizy przylatują. O 12:30 możemy się zwijać do Wawy Centralnej...

Parafrazując Robocopa (z filmu o tej samej nazwie): We will be back...

Do pobrania ślady kml ze zdjęciami (na razie tylko Samarkanda); zdjęcia. BTW GPS (Garmin Legend) się popsuł w dziwny sposób: jak się go podłącza do komputera to się wyłącza. W rezultacie nie mogę zgrać śladów. Dałem do serwisu i może da się odzyskać dane (stąd na razie tylko Samarkanda + zdjęcia ze smartfona).

url | Mon, 08/04/2019 05:04 | tagi: , ,
Trzy dni na Malcie

Kraj gdzie przed prawie każdym domem jest święta figura a przed każdym kościołem armata.

Podobno najwyższy wskaźnik ukościołowienia w UE liczony jako K/M gdzie K -- liczba kościołów, N -- liczba Maltańczyków. Gdyby go liczyć jako $m^2$ na maltańczyka to pewnie różnica pomiędzy Maltą a resztą byłaby jeszcze większa, bo tu każdy kościół to nie popierdółka jak za przeproszeniem na Podhalu albo na Suwalszczyźnie -- takiego poniżej kilkuset $m^2$ to my nie widzieliśmy.

Przylecieliśmy tutaj w niedzielę tuż przed północą. Taksówką dotarliśmy do naszej kwatery w dzielnicy Il-Hamrun (H jest tak dziwnie pisane BTW) już w poniedziałek, jakoś tak przed północą. Teoretycznie można było jechać autobusem, ale o tej porze woleliśmy zapłacić 20 EUR i być szybciej niż kombinować i dotrzeć o drugiej czy coś takiego. Nasza kwatera tym razem to nie było samodzielnie mieszkanie tylko samodzielny pokój, więc gospodarze byli na miejscu i nie trzeba było ani dzwonić ani czekać.

Rano śniadanie (w cenie kwatery) o godzinie 8:00 i idziemy oglądać stare miasto w LaValletta. Pogoda jest dobra. Słońce i nie pada, ale prognozy nie są najlepsze. Jeżeli chodzi o przemieszczanie się to pani mówi, że najlepiej kupić bilet tygodniowy na wszystko i jeździć autobusami. Jakoś nie bardzo wiemy gdzie te bilety kupić, a ponadto do starego miasta jest w miarę blisko, więc idziemy piechotą. Dochodzimy do fontanny Neptuna i pętli autobusowej. Elka leci kupić bilety. Się okazuje że są po 21 EUR, tj. za dwa nasz bank skasował nas na prawie 200 PLN. Ela mówi, że bilety jednorazowe są za 1,5 EUR i 3 EUR w zależności od trasy. Jeżeli to prawda, to uprzedzając wydarzenia my przejechaliśmy za 9 EUR pierwszego dnia, za 21 EUR drugiego dnia oraz 15 EUR trzeciego. Razem 45 EUR czyli więcej byśmy zapłacili kupując bilety jednorazowe. Do tego jeszcze 3 EUR za autobus na lotnisko w czwartek rano. Kupno czasowego się widać opłaca, nawet jak byliśmy zaledwie 3 dni a nie tydzień. Od pętli do twierdzy św. Elma jest blisko, idziemy zygzakiem. Bilet do muzeum to 10 EUR, ale warto wejść. Nie ma tam wiele eksponatów, ale sam fort jest godny zwiedzenia. Zaczyna padać, momentami całkiem mocno, o tyle mamy szczęście, że pada a my zwiedzamy. Po obejrzeniu fortu idziemy zwiedzać katedrę św. Jana. Imponująca budowla. Za wejście trzeba płacić (7 EUR jeżeli dobrze pamiętam). Potem zygzakiem najpierw w stronę Castille Place/Il-Barrakka ta Fuq (po drodze natykamy się na budynek maltańskiej giełdy--w warszawskiej nigdy nie byłem a w maltańskiej jak najbardziej), a potem idziemy na drugą stronę głównej ulicy (Triq ir-Repubblika). Jakiś stadion piłkarski--chyba ten co kamieniami polaków obrzucali wieki temu... Elka wreszcie padła--wracamy na główną ulicę i jedziemy autobusem na kwaterę. Docieramy około 16:00, jemy to co przywieźliśmy z domu (zabraliśmy żeby się nie zmarnowało) i o 18:00 wracamy na stare miasto--nocna runda tym razem. Powrót finalny 20:00...

Pierwszy dzień kończymy rozważaniami co robić jutro. Prognozy są nienajlepsze a na pojutrze lepsze. Decyzja jest zatem taka, że jutro do Ir-Rabat, pojutrze na Gozo jeżeli pogoda się poprawi. A jak się nie poprawi to nie pojedziemy na Gozo, bo po co?

Dzień drugi zaczynamy jak pierwszy: śniadanie (w cenie noclegu) z naleśnikami w roli głównej (pani się pytała co chcemy btw, nie to, że nas karmiła na siłę tymi naleśnikami). Potem jedziemy do Ir-Rabat. Tam na pętli autobusowej odkrywam fajny bar. W środku tłok ale obsługa sprawna i tanio. Potem idziemy zwiedzać stare miasto, a po stary mieście idziemy oglądać grotę św Pawła, katakumby i muzeum. Bilet jest jeden za 7 EUR. Grota jak grota, ale muzeum naprawdę warto zwiedzić. Różne rzeczy tam są: malarstwo, akcesoria kościelne w tym a zwłaszcza pamiątki po rycerzach maltańskich. Jest nawet kolekcja Durera, taka bym powiedział nie robiąca wielkiego wrażenie ale zawsze Durer to Durer, a poza tym ja widziałem wystawę Durerików w Norymberdze to jestem rozpuszczony, bo tam były rzeczy imponujące po prostu. Na stronach Google recenzje od rodaków tego miejsca mieszane tyle że mało kto wspomina muzeum. Większość jest rozczarowana grotami... Nie dogodzisz...

Po obejrzeniu miasta jedziemy autobusem na klify. Wysiadamy, po 10 min tak mniej więcej uświadamiamy sobie że w autobusie został nasz plecak. Lekka panika i wracamy na przystanek. Akurat jedzie inny autobus, objaśniam kierowcy co zaszło. A on na to I don't know English. No masz. Ale po włosku mówi, a Elka też. Gonimy ten nasz poprzedni autobus, który zresztą stoi przystanek dalej, bo to koniec trasy jest i widocznie przerwa. Plecak jest i czeka. Cała afera trwała może 30 minut. Wracamy nad morze. Na klifie, jak to na klifie--wieje. Do tego zaczyna padać. Oglądamy co trzeba i autobusem wrcamy do Ir-Rabt.

Czas taki ni-w-5-ni-w-10, ani wracać ani gdzieś jechać dalej. Zwiedzając miasto widzieliśmy efektowne wyroby ze szkła w sklepie pamiątkarskim. Elka mówi że tu jest blisko manufaktura szkła i że być może można to zwiedzać. Jedziemy zatem do czegoś co się nazywa Malta-Craft-Village bo to blisko i po drodze do naszego Hamrun. Tzn. jedziemy w kierunku La Valletta i wysiadamy zaraz za Ir-Rabat na przystanku Quali. Wioskę widać po lewej. Dalej perpedes, ale to blisko. Na miejscu się okazuje, że nazwa wprawdzie bombastyczna, ale w realu jest to po prostu byśmy powiedzieli galeria sklepów pamiątkarskich, tyle że mieszczących się w dość oryginalnych budynkach. Chyba starych hangarach po lotnisku.

Nic ciekawego anyway, do tego ceny z kosmosu. Jakieś muszle po 50 EUR. Ciekawe ile za taką muszlę bierze ten co ją wyłowił BTW. Już chcemy wracać, ale natykamy się na drogowskaz Aviation Museum. Żeby tam dojść to idziemy przez jakąś budowę--generalnie baza ludzi umarłych ale sprawdzić trzeba skoro zaszliśmy aż tak daleko. Trzy hangary, bilet 7 EUR. Zbiory 5razy lepsze niż te w 8 kondygnacyjnym klocu pn. Muzeum 2 Wojny Światowej w Gda. Kilkanaście oryginalnych samolotów i śmigłowców w tym Spitfire, Hurricane i Dakota C-47 w jednym kawałku... Muzeum jest ewidentnie inicjatywą low-budget, eksponaty są w różnym stanie kompletności i sprawności. Ciekawy czy gdyby wysłannicy z Budyniogrodu dotarli tutaj w swoim czasie ze swoimi 500 mln to Maltańczycy by się nie złamali i nie sprzedali np. tego Hurricana do Gdańska. No ale to rozważania teoretyczne: 500 mln już wsiąkło w piasek (a raczej poszło na prawie pustego kloca aka magazyn prawie pustych gablot).

BTW na Gozo też widzieliśmy coś co się nazywało Craft-Village. Może to jest Maltański sposób na wyrwanie kasy z UE? My mamy akwaparki i latarnie na wiatraczki i fotoogniwa czy też muzea bezeksponatowe, a oni pewnie inne patenty jak się wzbogacić łatwo i szybko na koszt podatnika (unijnego).

Ciągle leje i że się zrobiło późno to i zimniej się zrobiło. Ja już chcę do domu. Wracamy z pewnymi komplikacjami około 20:00. Aha obok muzeum był narodowy stadion piłki nożnej. Gdyby to był narodowy stadion rugby to byśmy zwiedzali...

Prognozy na jutro lepsze niż były rano więc jest szansa na Gozo.

Dzień trzeci zaczynam o 6:00 bo chcę zobaczyć jak wygląda Valletta wcześnie rano. No więc ruch jest duży, ludzi na ulicach dużo, wiele sklepów już otwartych. Większość pieszych i czekających na przystankach to czarni. BTW około 8:00 na przystankach sami biali. Miało być równo a wyszło jak zwykle :-) mówiąc zaś poważnie widzieliśmy tysiące czarnych młodych mężczyzn rano jak szli pewnie do pracy nie widzieliśmy czarnych żebraków czy sprzedawców okularów czy kijów do selfie (jak we Włoszech na przykład), z czego by wynikało, że ci nowi przybysze znaleźli tu normalną pracę i nie potrzebny im do szczęścia żaden tow. Timmermans ani towarzyszka Merkel z nowym GeneralPlanOst/przymusowym przesiedleniem. Czyli można...

Dzień się zapowiada ślicznie. W Castille Place/Il-Barrakka ta Fuq Japończycy ze statywami czekają na wschód słońca. To i ja poczekam. Pykami kilka fotek i idę do domu. Po drodze kupuję kawę i (mało dietetyczne) canali. Te ich cukiernie pełne są mało dietetycznych rzeczy a smacznych zresztą, co widać na ulicach: dużo młodych ludzi o znacznej otyłości (Amerykanin by się nie powstydził). Nie wiem czy to faktycznie jest problem, nie wiem czy to jest problem związany z dietą. Ot taka obserwacja uliczna...

Na śniadanie tym razem nie naleśniki tylko zapiekanka: makaron z kozim serem, polany jajkiem. Z początku myślałem że to omlet. Bardzo dobre. Po śniadaniu jedziemy na Gozo. Z naszej kwatery jest to prosta sprawa: autobusem 42 na przystań promową, potem promem na Gozo (5 EUR za bilet w dwie strony). Potem autobusem do Ir-Rabat (aka Victoria) na Gozo. Zwiedzanie zaczynamy od twierdzy, potem kręcimy się trochę po mieście. Przypadkiem natykamy się na filię Radia Maryja. Akurat Biedroń w PL ogłosił program partii Wiosna: nie ma w nim uchodźców ale jest rozdział od KK. Robert ty cienki Bolku, nie ta kategoria wagowa:-) Żeby ojciec T. ciebie nie rozdzielił (na pół na przykład).

Ostatni punkt pobytu: jedziemy autobusem 311 na klify do Id-Dwejra. Serwis trochę słaby jest (off season może) więc trzeba czekać na autobus. Dojeżdżamy i faktycznie warto było. Mamy godzinę do autobusu powrotnego, ale oblatujemy wszystko w 45 minut i dla pewności lecimy 15 minut wcześniej na przystanek. Tym razem niepotrzebnie. Tłoku nie ma, autobus przyjeżdża zgodnie z rozkładem. Około 16:00 jesteśmy na przystani promowej. Prom odpływa za 10 minut. Wszystko idzie jak po maśle, ale do czasu. Po drugiej stronie kupa luda i nic nie jedzie, wreszcie o 17:30 jedziemy do La Valletta ale nie autobusem 42, który by nam bardziej pasował tylko 41, który tak nam pasuje nie do końca. Numer 42 będzie jechał za 15 minut, ale wolimy nie czekać, a nóż przypłynie następny prom i albo będzie problem pn nie wszystkich weźmie (tak było jak jechaliśmy rano z przystani do Ir-Rabat), albo jechanie w ścisku.

Autobusem 41 podjeżdżamy do Birkirkary. Tutaj wysiadamy ponieważ dalsza trasa 41 omija Hamrun. Przyjeżdża 42, bo zresztą się okazuje, że innego pasującego nie ma. Byśmy poczekali na 42 to by pewnie wyszło na to samo...

Dzień ostatni. Że odlot mamy o 8:30 to pobudka jest o 5:00. Pani jest tak miła że nam robi śniadanie i odwozi na przystanek autobusu X1/X4, którym docieramy do lotniska. Elka tradycyjnie się opiera ale kupujemy butelkę maltańskiego czerwonego wina za 10 EUR w sklepie bezcłowym. Musimy na tą Maltę wrócicić bo parę rzeczy zostało do obejrzenia.

Ten tekst napisałem w samolocie wracając z Malty do Gda. Trochę trwało zanim go ostatecznie obrobiłem. Zdjęcia z wycieczki są tutaj: flickr.com albo na mapie.

url | Wed, 13/02/2019 19:14 | tagi: , ,
Spóźnione podsumowanie 2018

Dystans wg dni tygodnia

Średni dystans wg dni tygodnia

Dystans wg tygodni w roku

Średnio rocznie wg tygodni

To był rekordowy rok w wielu kategoriach:-)

Zacznijmy od pogody, którą mierzę od 2010 roku przypominam. U mnie średnia wyszła 9,56 C, do tej pory rekord to było 9,44 C w 2015 r. Szczegółowo to tak wygląda:

rok     : 2010  2011  2012  2013  2014  2015  2016  2017  2018
--------------------------------------------------------------
średnia : 8.65  8.94  8.17  8.63  9.33  9.44  9.18  8.75  9.56

Rekordowo niska była też suma opadów: 447.9mm (148 dni opadowych); dla porównania w 2017 roku spadło 763,8mm deszczu (194 dni). Rekord do tej pory to 2014 rok: 450,6 (148 dni) czyli w zasadzie tyle samo (z dokładnością do błędu).

Na rowerze przejechałem 19,100 km (302 razy, co nie oznacza dni, bo czasami były dwa razy dziennie). Poprzedni rekord z 2017 r wynosił 17,855 km. Z tej okazji podsumowałem swoje życiowe wyczyny, a mam statystykę szczegółową od 1993 r. Kurcze 26 lat pykło, w których to latach przejechałem prawie 210 tys km. Do tego w latach 1990--1992 przejechałem ponad 20 tys km, ale nie zachowała się niestety dokładna rozpiska. Z okazji tych wszystkich wyczynów podsumowanie zrobiłem wg dni tygodnia i wg. tygodni w roku (wg. miesięcy to liczę na bieżąco). Konkretnie to podsumowanie jest zestawem 7 wykresów słupkowych rysowanych w R. Dane do skryptu i sam skrypt jest z kolei generowany przez prosty program w Perlu:

  #!/usr/bin/perl -w
use Date::Calc qw(Week_Number Day_of_Week);

##my $RRcmd = 'R CMD BATCH'; ## see below

my $color= 'pink';
my $current_yr = 2019;

my %Miesiac = (1 => 'styczeń', 2 => 'luty', 3 => 'marzec', 4 => 'kwiecień',
        5 => 'maj', 6 => 'czerwiec', 7 => 'lipiec', 8 => 'sierpień',
        9 => 'wrzesień', 10 => 'październik', 11 => 'listopad', 12 => 'grudzień',);
my %DoWName = ( 1 => 'pon', 2 => 'wto', 3=> 'sro', 4 => 'czw', 5 => 'pia', 6 => 'sob', 7 => 'nie' );


open(O, ">dow.R") || die "Cannot open!\n";
open(P, 'LANG=C grep "dist\|date" c*.xml|' ) || die "Cannot open!\n";

while (<P>) { 
  chomp();
  ##print ">>$_;";
  if (/date[^'"]+["']([0-9\/]+)["']/) {$date = "$1";}
  if (/dist[^'"]+["']([0-9\/]+)["']/) {$D{$date} += $1;}
}

close(P) || die "Cannot close!\n";

for $d (sort keys %D ) {    
  ($dyy, $dmm, $ddd) = split '/', $d;
  if ($dyy == $current_yr ) { next } ### skip as incomplete

  my $dow = Day_of_Week($dyy,$dmm,$ddd);
  $DoWs{$dow} += $D{$d}; $DoWNums{$dow}++;

  my $woy = Week_Number($dyy,$dmm,$ddd);
  $WoYs{$woy} += $D{$d}; $WoYNums{$woy}++;
  $RdT++;
  $Years{$dyy}=1;
}

@YNo = sort(keys (%Years));
$YNo = $#YNo +1;

print O "##Generated content == do not edit\n";
print O "##By Day of Week\n";
#
for $d (sort keys %DoWs) { 
  $mean = sprintf "%.1f", $DoWs{$d} / $DoWNums{$d}; 
  $t += $DoWs{$d}; 
  $days_totals .= "$DoWs{$d}, ";
  $days_means .= "$mean, ";
  $days_ns .= "$DoWNums{$d}, ";
  $days_labels .= "'" . $DoWName{$d} . "', ";
  ##printf "%-12.12s %7i %.1f (%i)\n", $DoWName{$d}, $DoWs{$d}, $mean, $DoWNums{$d};
  ;
}
$days_totals =~ s/, $//; $days_means =~ s/, $//;
##$days_ymeans =~ s/, $//;
$days_ns =~ s/, $//; $days_labels =~ s/, $//;

print O "days_totals <- c($days_totals);
  days_means <- c($days_means);
  days_ns <- c($days_ns);
  days_labels <- c($days_labels);\n";

print O "barplot(days_totals, 
 main='Distance (total $YNo[0]--$YNo[$#YNo]): $t kms', horiz=F,  
 names.arg=days_labels, col=c('$color'));
barplot(days_means, main='Day means ($YNo[0]--$YNo[$#YNo])', 
 horiz=F,  names.arg=days_labels, col=c('$color'));
barplot(days_ns, main='RideDays (total): $RdT', horiz=F,
 names.arg=days_labels, col=c('$color'));\n";

print STDERR "##Razem: $t\n";

##print "====\n";

print O "\n\n##By Week of Year\n";

for $w (sort {$a <=> $b } keys %WoYs) { 
  $mean = sprintf "%.1f", $WoYs{$w} / $WoYNums{$w}; 

  $vals_totals .= "$WoYs{$w}, ";
  $vals_ymeans .= sprintf "%.1f, ", $WoYs{$w}/$YNo;
  $vals_means .= "$mean, ";
  $vals_ns .= "$WoYNums{$w}, ";
  $vals_labels .= "$w, ";
}

$vals_totals =~ s/, $//; $vals_means =~ s/, $//;
$vals_ymeans =~ s/, $//;
$vals_ns =~ s/, $//; $vals_labels =~ s/, $//;

print O "vals_totals <- c($vals_totals);
  vals_ymeans <- c($vals_ymeans);
  vals_means <- c($vals_means);
  vals_ns <- c($vals_ns);
  vals_labels <- c($vals_labels);\n";

print O "barplot(vals_totals, main='Distance (total $YNo[0]--$YNo[$#YNo]): $t kms', 
  horiz=F,  names.arg=vals_labels, col=c('$color'));
barplot(vals_ymeans, main='Weak means ($YNo[0]--$YNo[$#YNo])', 
  horiz=F,  names.arg=vals_labels, col=c('$color'));
barplot(vals_means, main='Day means ($YNo[0]--$YNo[$#YNo])',
  horiz=F,  names.arg=vals_labels, col=c('$color'));
barplot(vals_ns, main='RideDays (total): $RdT', 
  horiz=F,  names.arg=vals_labels, col=c('$color'));\n";

print O "### ENDE!\n";

close(O);

print STDERR "##R dow.R\n";

system ("R", "CMD", "BATCH", "dow.R");
print STDERR "##xpdf Rplots.pdf\n";

print STDERR "##convert -density 300 Rplots.pdf opus_by_dow.jpg\n";
system ("convert", "-density", "300", "Rplots.pdf", "opus_by_dow.jpg");

Na koniec przyznam że mam mieszane uczucia co do zeszłorocznego wyczynu, w sensie że za dużo wyszło. Oprócz roweru też jest życie...

Tak więc w przyszłym roku raczej rekordu nie będzie.

url | Thu, 24/01/2019 20:19 | tagi: , ,
Szkocka tragedia (po gdańsku)

Budyń-Adamowicz: ofiara. 36 rachunków bankowych i 7--9 mieszkań. Rada Nadzorcza GPEC (przewodniczący). Rada Nadzorcza Zarządu Morskiego Portu Gdańsk (od 2005r.)

Adamowiczowa: żona Makbeta.

Abramowiczowa Janina: teściowa Makbeta.

Stefan Wilmont: morderca. Zamieszkały w Oliwie. Skazany za 4 napady na placówki bankowe w Gdańsku (łącznie zrabował 13 tys PLN) na 5,5 roku pozbawienia wolności.

Dariusz Sokołowski: niepełnosprawny szef agencji ochrony Tajfun (z prokuratorskimi zarzutami za pobicie i bodjże porwanie) wynajętej do ochrony koncertu WOŚP w Gdańsku. BTW kiedyś był taki ktoś: Podinspektor Tadeusz Sokołowski, zastępca komendanta miejskiego policji w Gdańsku (2001).

Hieny (zamiast czarownic): setki nie będziemy wyliczać.

url | Thu, 24/01/2019 09:39 | tagi: ,
Ogrzewane rękawiczki na rower

Zasilane z USB i zakupione na Allegro za 60 PLN. Drogo, ale spieszyło mi się. Wiem że z Chin via Ebay (na przykład) by było za 20 PLN. Rękawiczki przekombinowane: mają włącznik + trzy poziomy grzania przy czym różnic istotnych między poziomami nie odczuwam (słabo grzeją ale jak ręce nie będą zamarzać to bez znaczenia). Do tego są odłączalne, bo jakiś 30 cm od rękawiczki jest złącze typu jack. Kable są zresztą za krótkie z punktu widzenia moich potrzeb. No i jack się wysuwa łatwo...

Dolutowałem przedłużkę wypierniczając złącze. Pro memoria: czarny na wejściu jacka to biały na wyjściu, tj. od rękawiczki/czerwony na wejściu to szary na wyjściu.

Pro memoria, bo przelutowałem jeden, a drugi okręciłem na razie taśmą izolacyjną (żeby nie wypadał). Jak będzie mi się chciało to kiedyś przelutuję drugi więc warto wiedzieć, który z którym polutować bez rozcinania po raz drugi wtyczek. Dziś byłem w rękawiczkach i było OK. Ciekawe jak długo pociągną bo wyglądają dość delikatnie...

url | Fri, 11/01/2019 09:04 | tagi: ,