W PL był realny socjalizm a światowy postęp jest ewidentnie w fazie realnej tolerancji. Chodzącą oznaką tej tolerancji jest Israel Folau australijski rugbysta pochodzenia tongijskiego. Folau nie popełnił żadnego przestępstwa, ale stracił pracę, a teraz nawet nie może zbierać pieniędzy bo narusza. ,,As a company, we are absolutely committed to the fight for equality for LGBTIQ+ people and fostering an environment of inclusivity...''. Ciekawe czemu tego commitmentu nie idzie wpisać do kodeksu karnego skoro to takie ważne?
niedziela, 23 czerwca 2019
czwartek, 20 czerwca 2019
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.
poniedziałek, 17 czerwca 2019
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ę...
niedziela, 2 czerwca 2019
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
poniedziałek, 8 kwietnia 2019
Geotagowanie zdjęć z szumem losowym
Na okoliczność wielu zdjęć z jednego miejsca można dodać losowy szum (jitter). Czy to ma sens to już inna sprawa. Ja dodałem jitter (kołowy) do zdjęć zrobionych w fabryce jedwabiu w Margilan
#!/usr/bin/perl
### Add jitter to Geocoordinates
use Math::Complex;
use Math::Trig;
use Getopt::Long;
use Image::ExifTool;
use Geo::Distance;
##
my $sd =.002; ### max about 200m
print STDERR "USAGE $0 [-d] DIAMETER -c COORDINATES -f FILE (DIAMETER=0.002 is circa 200m!)\n";
GetOptions("d=i" => \$sd, "c=s" => \$coords, "f=s" => \$file );
my $factor = 0.00001;
my $init_shift = 0.00001;
my $pi = 4*atan2(1,1);
##$sd = sqrt($factor * $Skad{$skad});
my $r = $sd * sqrt(rand());
my $theta = rand() * 2 * $pi;
($lat, $lon) = split (/[:;,]/, $coords);
$rand_lat = $lat + $r * cos($theta);
$rand_lon = $lon + $r * sin($theta);
my $eT = new Image::ExifTool;
$eT->SetNewValue(GPSLatitudeRef => ($rand_lat > 0)?'N':'S', Group=>'GPS');
$eT->SetNewValue(GPSLongitudeRef => ($rand_lon > 0)?'E':"W", Group=>'GPS');
$eT->SetNewValue(GPSLatitude => abs($rand_lat), Group=>'GPS');
$eT->SetNewValue(GPSLongitude => abs($rand_lon), Group=>'GPS');
my $old_comment = $eT->GetValue('UserComment', 'ValueConv');
if ($old_comment) { $exif_comment = "$old_comment | GPS coordinates jigged"; }
else { $exif_comment = "GPS coordinates jigged"; }
$eT->SetNewValue(UserComment => "$exif_comment");
if (-f $file) {
$file_org = "${file}_orig";
if ( system("cp", "$file", "$file_org") == 0 ) {
$eT->WriteInfo("$file");
print STDERR "$file updated\n";
} else { print STDERR "*** $file update failed\n"; }
} else { print STDERR "*** ERROR with $file\n"; }
my $geo = new Geo::Distance;
$dist = $geo->distance( "meter", $lon, $lat => $rand_lon, $rand_lat );
print STDERR "Laat/Lon: $lat, $lon => $rand_lat, $rand_lon (Dist: $dist)\n";
Przykładowa mapa jest tutaj
niedziela, 7 kwietnia 2019
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).
środa, 20 lutego 2019
Alan Kurdi refugee boat named
My comment to the information which I have found recently that a (German) boat was named after Alan Kurdi: Refugee boat named in honour of Alan Kurdi more than three years after Syrian boy died at sea... (https://www.independent.co.uk/news/world/europe/alan-kurdi-refugee-rescue-boat-mediterranean-syria-sea-eye-a8773361.html)
Alan (Abdullah) Kurdi family tried to escape from Turkey but failed and his body was wash out in Turkey. There is a EU-Turkey `deal' on (stopping) migrants masterminded by Germany. The deal costs EU-taxpayer 6 billions EUR. If some Germans want more foreigners in their country they better will name a train (zug in German) from Stambul to Munich than a boat. They also should persuade their "mutter" to end the deal with president Erdogan. The train could for example be called Abdullah-Kurdi-Express (AKE).
The fact that Kurdi was a Turkish Kurd changes nothing. If Germany regards Turkish Kurds as war refugees-- as Turkish government in fact fights them--no problem to guarantee (all) of them appropriate status (before bording them to the above mentioned AKE Zug). BTW president Erdogan will be more than happy: he will get rid of Kurds (it is called ethic cleansing btw and is regarded as a sort of a war crime) with the hands of German plain fools (who regards themself of course as sensitive, tolerant etc...).
Aktualizacja systemu do wersji Fedora Core 29
Wreszcie się zdecydowałem na aktualizację fc21 na fc29. Czemu wreszcie? Bo u mnie aktualizacja to zawsze kilkudniowa PITA jest. Coś tam po aktualizacji nie działa i ogólne zamieszanie jest. Ale jak nie teraz to kiedy? Przy okazji to się pochwalę, że moim pierwszym linuksem była fedora w wersji RHL 5, zainstalowana w 1999 roku (albo coś koło tego roku, w Bachotku to na pewno, i na pewno przez Piotra Bolka.) Wychodzi że tym roku będzie rocznica 20 lat używania, tyle że przez pierwsze nie wiem ile lat (kilka) miałem dual boot. Poprzednia Fedora była zainstalowana circa 2015 roku czyli wcale nie aż tak dawno, a jeszcze bardziej poprzednia w 2011 (wersja 11). W sumie to ja tych wersji aż tak dużo nie miałem 5 (redhat), 8, 11, 21 teraz 29. Pewnie jeszcze coś było pomiędzy 5rhl a 8fl, ale co konkretnie to już nie pamiętam.
Tak poza tym to sobie wymyśliłem, że ponieważ mam dwa dyski w NUCu, to zainstaluję nową Fedorę na tym, z którego nie bootuję systemu, więc w razie emergency będę mógł się przełączyć. Nie do końca to działa--stary system się nie bootuje ale na razie nie jest to specjalnie potrzebne. Inny problem to był taki, że NUC po włączeniu w biosie opcji fastboot przestał reagować na F2, tj. niemożliwa była jakakolwiek zmiana ustawień tegoż biosa. Nie miałem pojęcia, że za niemożność przejścia do biosa odpowiada fastboot: Can't Access BIOS Setup with F2 Key for Intel NUC (Fast Boot in BIOS reduces computer boot time. With Fast Boot enabled: You can't press F2 to enter BIOS Setup. USB mice and keyboards are unavailable until after the operating system loads. Disable Fast Boot from the power button menu. Access the power button menu with this sequence: Make sure the system is off, and not in Hibernate or Sleep mode. Press the power button and hold it down for three seconds. Then, release it before the four-second shutdown override. The power button menu displays. Press F3 to disable Fast Boot.)
Powyższe znalazłem jak już problem rozwiązałem. A rozwiązałem go przez przypadek. Jak mi się zasilanie wyłączyło awaryjnie, to NUC zareagowł na f2. Jednym słowem odkryłem nieudokumentowany ficzer NUCa: wyciągnij kabel zasilający z gniazdka, a wtedy f2 też zadziała, mimo opcji fastboot. Sądząc z zawartości google (nuc fast boot enter bios), ta opcja nie tylko jest kłopotliwa dla mnie.
Po bezproblemowej aktualizacji sytemu, wykonałem co następuje:
## Post system update dnf update rpm -ivh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-29.noarch.rpm rpm -ivh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-29.noarch.rpm dnf -y install grip emacs mc vlc gpsbabel zip unarj dnf -y install gimp xsane ffmpeg dia ImageMagick wine dnf -y install texlive dnf -y install @xfce-desktop dnf -y install fuse-sshfs beep geeqie dnf -y install mariadb mariadb-server dnf -y install R dnf -y install system-config-printer dnf -y install aspell aspell-pl aspell-de aspell-es aspell-en ## pobrać trzeba google-chrome-stable_current_x86_64.rpm dnf -y install google-chrome-stable_current_x86_64.rpm ## wget 'https://download1.rstudio.org/rstudio-1.1.463-x86_64.rpm' dnf -y install rstudio-1.1.463-x86_64.rpm dnf -y install gretl
Dotąd wszystko działa. Do komunikowania się z blogspotem używam skryptu w Pythonie, który wymaga biblioteki oauth2client. Doinstalowałem z rozpędu także biblioteki Perlowe, które pamiętałem że używam (takie jak perl-Geo-Distance na przykład):
dnf install perl-Net-Twitter.noarch perl-Test-LWP-UserAgent.noarch \ perl-Flickr-Upload.noarch perl-Flickr-API perl-Geo-Distance \ perl-LWP-Protocol-https.noarch perl-Crypt-SSLeay.x86_64 ## dnf install python2-httplib2.noarch python3-httplib2.noarch pip install --upgrade oauth2client
Nie instaluję thunderbirda. Nie widzę potrzeb. Będę czytał pocztę w google-chrome.
Instaluję gtk-recordmydesktop
## zawartość mbriza-recordmydesktop-fedora-29.repo pobrana ze strony ## https://copr.fedorainfracloud.org/coprs/mbriza/ dnf config-manager --add-repo mbriza-recordmydesktop-fedora-29.repo dnf install recordmydesktop
Nie działa sprawdzanie słownika pod Emacs. Ale mój .emacs to bagno więc problem trzeba rozwiązać z tej strony. Podejrzewam w szczególności, że aspell nie działa bo używam kodowania iso w przypadku niektórych plików. Byłoby utf to by działał albo należy dokonfigurować aspella. Wybieram docelowo pierwszy wariant, ale na dziś dokonfiguruję emacsa pod iso-88592. Działa.
Kompilowanie i konfigurowanie ydpdic
Używam czegoś takiego jak ydpdic nieistniejącej już YDPoland. W fedorze trzeba w tym celu posłużyć się nakładką W. Kaniewskiego, a tym celu należy:
dnf install autoconf sysconftool automake libtool dnf install ncurses-devel gettext-devel gettext-common-devel # ściągamy libydpdict/ydpdict ze repozytorium na github # następnie kompilujemy najpierw bibliotekę potem nakładkę ./autogen.sh ./configure make && make install # u mnie z jakiś powodów trzeba to robić jako root
Skrypty obsługujące flickr.com
Wysyłanie zdjęć na flickr.com to u mnie bagno, bo używam śmiertelnie splecionych skryptów napisanych lata temu w Emacs Lispie i Perlu. Oczywiście te skrypty wywołują różne zewnętrzne programy. Całość to klasyczny, patologiczny monolit. Skrypt główny to flickr_upld.pl, który wywołuje flickr_xload.pl. Dane autoryzacji są umieszczone w flickr_utils.rc oraz login2flickr.rc. Te ostatnie są dodawane za pomocą require:
require 'flickr_utils.rc'; require 'login2flickr.rc';
Perl szuka plików-argumentów require w katalogach podanych na liście @INC. Standardowo są to różne katalogi systemowe (/usr/cośtam). Nie chcąc mnożyć bytów -- w sensie rozrzucać moich plików konfiguracyjnych po całym systemie -- modyfikuję @INC w pliku .bashrc:
export PERLLIB=$PERLLIB:/home/tomek/bin export PATH=~/opt/tex/bin:$PATH
Aby flickr_upld.pl zadziałał trzeba zainstalować Flickr::Upload/Flickr::API (to już zrobione, bo o tym pamiętałem). Się okazuje że trzeba doistalować także:
dnf -y perl-Text-Iconv perl-ExtUtils-MakeMaker perl-Test-Number-Delta perl-Image-ExifTool ## oraz ręcznie zainstalować (bo tego nie ma w rpmach): Geo::Coordinates::DecimalDegrees
Po tym wszystkich działa. Aha, nowy Emacs zgłosił błąd przy kompilowaniu funkcji:
(defun My-flickr-remove-all-thumbnails ;; usunięcie miniaturek ;; (shell-command "rm /tmp/*.thmb") )
Brak (). Winno być nazwa-funkcji(). Staremu Emacsowi pasowało bez nawiasów ale nowemu już nie. Dobrze wiedzieć i dobrze, że błąd dało się łatwo zdiagnozować (Malformed arglist).
TeX
Miła niespodzianka, że domyślną wersją TeXa jest TeXLive 2018 czyli nowszy niż ten którego sam do tej pory używałem. Niemiłą z kolei jest radykalna zmiana w formacie LaTeX: In current LaTeX release (2018 and later) You do not need to load inputenc as UTF-8 encoding, equivalent to \usepackage[utf8]{inputenc}.
Moje pliki kodowane w iso-88592. Muszę się zastanowić co z tym fantem zrobić. Na razie zastosuję rozwiązanie podane w FAQu: \usepackage[latin2]{inputenc}:
%& --translate-file=il2-pl %% usuń w TL2018
\documentclass[a4,portrait]{seminar}
\usepackage[latin2]{inputenc} %% dodaj TL2018
\usepackage[T1]{fontenc} %% dodaj TL2018
Działa.
R
dnf -y install R-reshape R-reshape2
dnf install R-ggplot2
Brak wyników dla parametru: R-ggplot2
Błąd: Brak wyników
##
install.packages("ggplot2", dependiencies=TRUE)
## błąd
dnf install R-scales
install.packages("ggplot2")
## Teraz działa ale
#> library("ggplot2");
#Komunikat ostrzegawczy:
#W poleceniu 'strsplit(.Internal(Sys.getenv(character(), "")), "=", fixed = TRUE)':
# niepoprawny łańcuch wejściowy 63 w lokalizacji
Pomimo tego działa, ale zobaczymy co z tego wyjdzie w dłuższej perspektywie, że tak powiem.
Podsumowanie
System generalnie działa jak działał. Mogę się łączyć z neptune/umbrielem za pomocą moich skryptów (sshfs). TeX działa -- będę testował granice kompatybilności TL2018. Skrypty do obsługi flickr.com działają. YDPdic też działa. Wygląda, że wyszedłem na prostą i zostały ewentualne drobiazgi.
niedziela, 17 lutego 2019
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.
czwartek, 24 stycznia 2019
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.
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ć.