środa, lipca 20, 2016

Jak nie zapomnieć kupić biletu miesięcznego - revised ;-)

Jakiś czas temu opisałem tu skrypt, który "lata" na jednej z moich Malinek i sprawdza czy aby nie zbliża się termin końca ważności mojego biletu miesięcznego.

Niestety kilka dni temu dostałem maila od skryptu, w którym skarżył mi się, że nie może znaleźć informacji o dacie i że podejrzewa, że spowodowane to jest zmianą struktury strony....

Miał rację.

MPK zmieniło stronę i zmieniły się adresy...

Od teraz by sprawdzić datę ważności biletu trzeba pójść pod adres:
http://www.mpk.krakow.pl/pl/sprawdz-waznosc-biletu/index,1.html?cityCardType=0&identityNumber=<id>&cityCardNumber=<cityCardNumber>

Dodatkowo normalny request z Pythona skończy się 403 Forbidden...
Chwila zabawy wyjaśniła, że pluje się z powodu nagłówków (podejrzewam, że chodzi o User-Agent).
Wystarczy jednak dodać kilka nagłówków i wszystko działa tak jak należy :-)

Skrypt teraz wygląda tak:

#!/usr/bin/python
import urllib2
import sendmail
import datetime
import os

id = "<numer legitymacji KMK>"
cityCardNumber = "<nr seryjny karty>"
cityCardType = "0"
SEND_TO="<mail na ktory ma przyjsc informacja>"
limits = [31,21,14,7,1]

def getUrl(id, cityCardType, cityCardNumber):
url = "http://www.mpk.krakow.pl/pl/sprawdz-waznosc-biletu/index,1.html?cityCardType=0&identityNumber="+id+"&cityCardNumber="+cityCardNumber
return url

def getDateFor(id, cityCardType, cityCardNumber):
MARKER = "Data ko"
url = getUrl(id, cityCardType, cityCardNumber)
hdr = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
'Accept-Encoding': 'none',
'Accept-Language': 'en-US,en;q=0.8',
'Connection': 'keep-alive'}
req=urllib2.Request(url,headers=hdr)
lines=urllib2.urlopen(req).readlines()
    str="".join(lines)
date=None
if str.count(MARKER):
idx=str.index(MARKER)+27
substr = str[idx:idx+20]
date = substr[:substr.index("<")]
return date

date = getDateFor(id, cityCardType, cityCardNumber)

if not date:
url = getUrl(id, cityCardType, cityCardNumber)
sendmail.sendEMail(SEND_TO,u"[KMK watchdog] lack of date",u"""Cannot find end of period date on """+url+"""
Page was changed?
Or you don't have KKM?""")
else:
d = datetime.datetime.strptime(date,"%Y-%m-%d")
daysTillDate = (d-datetime.datetime.now()).days
for limit in limits:
if daysTillDate<limit:
fName=date+"_"+str(limit)
if not os.path.exists("kmk_watchodg"):
os.mkdir("kmk_watchodg")
if not os.path.exists("kmk_watchodg/"+fName):
sendmail.sendEMail(SEND_TO,"[KMK watchdog] only "+str(limit)+" days till end of KMK","""Hi,
It seems that you have only """+str(limit)+""" days to end of your KMK card.
Go to http://www.kkm.krakow.pl to buy new ticket, or disable this alarm on Raspberry Pi.""")
f=open("kmk_watchodg/"+fName,"w+")
f.write(str(datetime.datetime.now()))
f.close()

I znów działa :-)
Dzięki czemu codziennie o 8:00 skrypt sprawdza czy aby nie zbliża się data końca ważności mojego biletu miesięcznego ;-)



Podobne postybeta
Jak nie zapomnieć kupić biletu miesięcznego ;-)
Jak się dowiedziałem o tym, że w Polsce rusza Google Play Movies ;-)
Polowanie na Nexus 4 - wersja automagiczna ;-)
SleepAdvisor - komórka pomaga w wyspaniu się ;-)
SSD a programowanie

czwartek, lipca 14, 2016

Raport z emigracji....

Tym razem "wyemigrowałem" do Irlandii, gdzie mój nowy pracodawca próbuje włożyć mi do głowy znajomość produktu, który będę pisał :-) [jak na razie nieźle im idzie, a do tego robi to na mnie wrażenie, jak to wszystko działa]

W moim odbiorze Irlandia to takie bardziej europejskie UK.
Też jeżdżą po złej stronie*, mają dziwne wtyczki i są mili.
Ale kierowcy nie wydają się mieć celu życia polegającego na tym, że Cię chcą przejechać ;-)
Lotnisko jest po prostu super (widziałem tylko kilka lotnisk, ale to w Dublinie przynajmniej w części przylotów jest najszybsze na jakim byłem. Od momentu wylądowania, do momentu gdy wsiadałem do taksówki minęło może 15 minut, a bardziej 10 i nigdzie nie musiałem czekać i stać w kolejce).
Do tego taksówkarze znają teren!
I mówią po angielsku!

W hotelu non-stop jest ktoś w recepcji, nawet w nocy. Nie ma konieczności robienia self check-in'a :-)

W autobusach jest WiFi :-) i to takie całkiem niezłe.
Do tego są tańsze niż w Londynie i okolicy.

Dublin jest mały. Muzeum Historii Naturalnej w Dublinie jest ładne, ale zaryzykuje stwierdzenie, że całe zmieściłoby się w holu głównym Muzeum Historii Naturalnej w Londynie ;-)




Dublin jest mały, ale ładny i taki "do ogarnięcia".

"Główna" ulica wzbogacona jest o najwyższe dzieło sztuki na świecie:


Które ma ~126 m...

Domki poza centrum są bardzo brytyjskie, też malutkie, ale raczej nie udają aż tak bardzo zamków.
Mniej tu pretensjonalności.

Całe centrum to jedno wielkie centrum handlowe ;-)
A kawałek dalej, za rzeką jedna wielka imprezowania....

Indeks zielonych włosów wypada słabo, widziałem na razie 1 osobę z takimi włosami.... słabo.

Do tego mają zamek:



Księgarnie.... nie ma tu czegoś takiego jak 6 piętrowe Foyles czy WHSmith z Londynu.

Ale trzeba przyznać, że w Chapters dział popularno-naukowy jest dużo większy niż w dowolnej polskiej księgarni (de facto, jest większy niż połączone pół czy ćwierć regału z Matrasu z Rynku w KRK, Matrasu na dworcu, EMPIKu w Galerii Krakowskiej i Kazimierz...).
Zauważyłem też, że jest tutaj też taki sam styl urządzania księgarni jak w UK.
Też z książek są jakby "pokoje" zbudowane.
Mają Sapkowskiego ;-)

Aż się zastanawiam i może w końcu sam przeczytam coś z Wiedźmina ;-)

Ale księgarnie nie są tu zbyt popularne.... w wielkim domu towarowym w centrum miasta (z genialnym dachem, który poniżej) nie ma w ogóle księgarni :-( [czy to był dworzec kiedyś???]


Polaków podejrzanie mało tu spotkałem. Niby są największą mniejszością w Irlandii i stanowią 2.7% populacji, ale o wiele mniej ich tu spotkałem niż w UK.

Mają genialną sprawę z rowerami.
Jak rozumiem firma może dołożyć się do roweru i nie będzie to liczone jako dochód. Jedynym warunkiem jest by rower był używany do jeżdżenia do pracy.

Ścieżek rowerowych to tu mają od cholery i jeszcze trochę.... Wszędzie są :-)

Jest też bardzo, ale to bardzo zielono i nie ma nieludzkich temperatur jak w Polsce....

Ale mimo wszystkich uroków... Londyn mi się jednak bardziej podobał... mam nadzieję, że mnie stąd nie deportują ;-) [no i dzięki Brexitowi Londyn za jakiś czas pewnie już taki fajny nie będzie, a Dublin będzie nadal :-)]

* - oni mogą uważać, że to u nas się jeździ po złej stronie ;-)


Podobne postybeta
Błeee
Raport z emigracji ;-)
Chromebook w praniu, czyli tam i z powrotem, Kraków - Londyn - Kraków w 30 godzin
Empik w Bonnarce ssie
Historia atakuje z każdej strony w Krakowie ;-)

czwartek, czerwca 30, 2016

Ostatni dzień

Dziś był mój ostatni dzień w starej pracy.
Jutro pierwszy w nowej ;-)

Zostałem zaskoczony kartką z Minionkiem (podejrzanie do mnie podobnym) ;-) i ogólnie było tak jak to przy zmienianiu pracy, z jednej strony radość, że coś nowego idzie, z drugiej smutek, że stare się kończy, z trzeciej u tych którzy zostają poczucie "no idź se już i nie przeszkadzaj" ;-)
Dostałem też prezent dzięki któremu mogę kupić mnóstwo książek na Kindle'a :-)

Zabrali mi Macbooka, nowego nowa praca da najwcześniej jutro ;-)
Zabrali dzwonek aka badge, przez co chwilowo jestem krówką programistyczną bez dzwonka... co jest dziwne.

Dzięki starej firmie porzuciłem Windowsa.
Najpierw w firmie zamiast Windowsa zacząłem używać Linuksa... by go później zamienić na OS X ;-)
A, że Linux w pracy działał fajnie to w momencie problemów z Windowsem i SSD spokojnie mogłem przejść na Linuksa w domu.

Zwiedziłem Londyn.
Nadal jest tam bardzo dużo do zobaczenia, ale teraz umiem się jako tako poruszać po Londynie i wiem jak pojechać do UK jako turysta :-)
Będąc w Londynie spełniłem swoje marzenie i mam zdjęcie z Darwinem ;-)


Zobaczyłem St. Albans i Hatfield.
Widziałem wielkie magazyny "od środka", sam nawet coś grzebałem przy tym by działały :-)

Przerzuciłem się na IntelliJ'a z Eclipse'a. Tak mi się spodobał, że mam swoją własną licencję ważną do kwietnia 2018 ;-)

Poznałem wielu ludzi z innych krajów, nie tylko Brytyjczyków czy Szkotów, ale ludzi ze Słowacji, Ukrainy, Rumunii, Hiszpanii czy Indii. Jacyś Rosjanie i chyba Nowozelandczycy też się nawinęli :-)

Przestałem się bać Unit Testów, a nawet je pokochałem.
Polubiłem metodę, którą stosowałem już wcześniej, ale jej nazwy nie znalem, czyli "produkowanie" MVP.

Teraz kolejny etap :-) wdrażanie się w nowej firmie, szkolenie, nowy język programowania. Podróże i takie tam ;-)

Jeden znaczny minus, PKO BP mi nie podniesie limitu karty, bo akurat jestem w momencie przed zaczęciem nowej pracy, ale już poza starą ;-)
So, muszę czekać koło miesiąca na pierwszą nową wypłatę.... ale wtedy większy limit mi już nie będzie tak potrzebny ;-)


Podobne postybeta
U mnie Linux vs Windows ma teraz wynik 5 do 4, a było 6 do 3 ;-)
Raport z emigracji ;-)
Windows 7 - łał :-)
Opowieść o "zmotywatorach" ;-)
Lubię enumy

poniedziałek, czerwca 27, 2016

Debile....

To, że Brytyjczycy zagłosowali za Brexitem mnie przeraża, ale sprawia też, że mam ataki dzikiego śmiechu....
Szczególnie gdy czytam o brexitowcach, którzy teraz zdają sobie sprawę z tego, że właściwie nie mieli bladego pojęcia za czym głosują (albo głosowali za czymś całkiem innym niż to co dostaną*), albo znowu gdy pomyślę, że jest duża szansa, że za jakiś czas ci którzy wymachiwali radośnie Union Jackiem nawołując do brexit'u będą musieli zmienić flagę bo Szkocja i Irlandia mogą się odłączyć.

Ludzie lubią krytykować demokrację i uzasadniać niechodzenie na wybory tym, że ich głos nie ma znaczenia....
No to mieszkańcy Wielkiej Brytanii właśnie się przekonują, że ma.

Ci którzy głosowali za brexit'em w ramach protestu "przeciw" (dowolnej rzeczy), albo ci którzy byli za zostaniem, ale nie poszli zagłosować.

Jak dla mnie głosowanie za brexit'em pokazuje nie tylko to, że każdy głos ma znaczenie, ale też to, że chorobą demokracji nie jest wcale brak reprezentacji (OK, poza UK gdzie mają debilne okręgi jednomandatowe, dzięki czemu ich obecny parlament jest jednym z najmniej reprezentatywnych w historii), czy brak polityków na których można głosować, ale przede wszystkim lenistwo intelektualne wyborców.

Łatwo jest uznać, że jest źle bo:
- imigranci,
- regulacje,
- wtrącanie się,
- zabierają kasę.

Niż zastanowić się czy w ogóle jest źle (bo ludzie są bardzo słabi w ocenianiu tego czy jest źle), a jeśli jest źle to co może być tego przyczyną i jak można by to było sprawdzić....
Do tego lubią wierzyć w swoje życzenia.
Myślą często tak "pozbędziemy się UE, nie będziemy musieli płacić!" ale nie dopuszczają nawet do siebie myśli "nie będziemy mieli dostępu do rynku UE, będziemy musieli płacić cła i inne opłaty, z których kraje w UE są zwolnione".

Jest jeszcze jedna nauka, politycy to często debile... W celu uzyskania małej przewagi stawiają jak widać na rzeczy, które niosą bardzo duże ryzyko, bo uznają, że ich punkt widzenia jest słuszny, nikt nie zaryzykuje, a jest szansa na kilka procent w wyborach.... Premier Cameron się przekonał....
Symulowany seks ze świnią, który odegrał kiedyś to pikuś przy tym jak teraz przeszarżował....


* -  ciekawy artykuł na Quorze o tym co może oznaczać Brexit (i to pisany jeszcze PRZED referendum)


Podobne postybeta
I po wyborach :-)
Atlas zbuntowany, ale na odwrót ;-)
To i ja planowałem zamach stanu?
Głupi nacjonalizm, głupi!
Cud Tuska i Kopacz, polska medycyna bardziej wydajna niż niemiecka

niedziela, czerwca 26, 2016

Indeks zielonych włosów ;-)

To jest mój prywatny, całkowicie nienaukowy, sposób pomiaru tego jak wiele dobrych startup'ów może powstać w danym mieście ;-)

"Uwierzyłem" w niego chodząc po Londynie. Bo zauważyłem, że tam jest stosunkowo dużo osób z zielonymi włosami (albo niebieskimi, ogólnie takimi niezwykłymi), a jest to też miejsce gdzie powstaje najwięcej startupów w Europie.

No i z dzisiejszych Wianków wnoszę, że przybywa nam osób z zielonymi włosami :-) Sam naliczyłem z 4-5 sztuk.

Jest nadzieja dla Krakowa :-)


Podobne postybeta
Raport z emigracji....
Liczymy książki ;-)
Przybywa userów :-)
Zakład MENu
Papierowy GMAIL i Internet z tualety ;-)

sobota, czerwca 25, 2016

Lepsze jest wrogiem dobrego

Zachciało mi się SQLa....
Miałem i mam nadal taki "zestaw".
Zegarek który co jakiś czas (teraz co 60 sekund) mierzy mi tętno, po czym przesyła je do telefonu, telefon co jakiś czas (teraz co 10 minut) próbuje przesłać dane do serwerka na Rasbperry Pi.
Serwerek jest w stanie wystawić po REST'cie dane.

Do niedawna i telefon i serwerek trzymały dane w plikach tekstowych...

Ale że to były dane już z ponad półtora roku to trochę się tego zrobiło i postanowiłem to wrzucić wszystko do bazy danych.... wybrałem SQLite....
Pierwsza amba była jak się okazało, że najnowsze biblioteki dla Java'y z SQLite nie działają na Raspberry Pi 2.... bo używają kodu natywnego... i przez błąd mają wersję dla CPU z Raspberry Pi 3....

Teraz zaś SQLite postanowił rozwalić integralność danych ;-)
Całe szczęście jak refaktorowałem kod do wersji w której zacząłem używać SQLite (i w serwerku i na Androidzie) to zrobiłem tak, że zapis jest nadal do pliku i do bazy, a odczyt tylko z bazy....
Ale i tak czeka mnie robota z naprawianiem tego wszystkiego......

Bo mi się SQLa zachciało....


Podobne postybeta
Malutki serwerek HTTP - dziełko, albo potworek ;-)
Gapa ;-)
Brakuje mi BuffyPedii....
A Pi ciągle działa....
Jak zmierzyć odległość przy pomocy telefonu? ;-)

piątek, czerwca 17, 2016

Czciciele słońca?

Co jakiś czas (znaczy często ;-)) zdarza mi się chodzić spać koło 3-4 w nocy.
A, że pora roku taka iż słonko wschodzi o 4:24 rano to zdarza mi się iść spać po wschodzie słońca.

I ciekawa sprawa, już któryś dzień z kolei słyszę jak ktoś o tej porze idzie na taras. Tak jakby szedł obejrzeć wschód słońca...

Jacyś czciciele słońca widać mieszkają w moim bloku ;-)


Podobne postybeta
Karciane dylematy
Tip of the day ;-) użyj Chrome2Chrome by nie kupować pod wpływem impulsu ;-)
Coraz więcej dnia :-)
Mgła
A może zarwać noc?

poniedziałek, czerwca 13, 2016

"Analiza" zysków i strat dla 500+... nie wygląda to różowo

Wg. rządu 500+ przełoży się na urodzenie dodatkowych 278 tysięcy dzieci w ciągu 10 lat.
Przyjmując prosty model to będzie dodatkowe 27.8 tysięcy dzieci rocznie, co daje jakieś 7-8% dzieci rocznie więcej.
Zależnie od szacunków jedno dodatkowe dziecko będzie kosztowało 800-900 tysięcy złotych.

Dzieci te mają się rodzić po to by więcej było ludzi i by system emerytalny podołał.

Zakładając, że takie dziecko gdy będzie dorosłe będzie zarabiało średnią krajową (teraz 4101 PLN) to przy obecnych składkach na ZUS wprowadzi do systemu emerytalnego przez całe swoje życie 600-620 tysięcy PLN (założyłem, że będzie pracowało 45 lat non-stop).

Wprowadzi więc do systemu  180-300 tysięcy PLN mniej niż będzie "kosztować".

Z tej strony program się nie domyka.

Wg. rządu Polska będzie się bogacić o jakiejś 3.5% rocznie.
Załóżmy dla prostoty modelu, że wszystkie te dodatkowe dzieci wejdą na rynek pracy za 25 lat i zamiast dzisiejszej średniej krajowej będą zarabiać 9050 PLN miesięcznie przez 45 lat każde.
Wtedy każde z nich wprowadzi do systemu przez 45 lat 1.35 mln PLN.
To już wygląda lepiej (ciągle zakładamy, że wydawać będziemy na dzieci 500 PLN miesięcznie i ta kwota nie będzie rosła), bo wkład tych dodatkowych dzieci będzie wyższy niż koszt wynikły z 500+.

W takiej sytuacji przez 45 lat liczone za 25 lat od teraz mielibyśmy dodatkowe 375.3 mld PLN na emerytury.
Co przekładałoby się rocznie na 8.34 mld PLN więcej.

Co gdybyśmy zamiast 500+ wkładali po 20 mld PLN rocznie na lokatę oprocentowaną 1% w skali roku?
Wtedy po 25 latach wpłacania mielibyśmy już 539 mld PLN na koncie. Od tego momentu moglibyśmy odbierać po ponad 14 mld PLN z tego konta rocznie (nadal przy 1% oprocentowania w skali roku dla reszty środków) na podtrzymanie systemu emerytalnego.

Tak patrząc też wychodzi na to, że 500+ się nie domyka.

Ktoś zna jakieś lepsze szacunki niż te moje?
Nie wiem, może w projekcie ustawy jest gdzieś analiza zysków i strat?


Podobne postybeta
Płatnik czy beneficjent?
The Giver - kolejny świat, który się nie domyka....
Jak można przegrać wybory gdy się je wygrywa?
Kupić bilet czy nie kupić? Oto jest pytanie....
Największy przekręt w Polsce?

Genetyczne włączniki

W ramach odrabianie zaległości czytam Światy Nauki numer po numerze (jestem na lutym 2016 ;-)).
Dziś przeczytałem artykuł o tym jak to firmy farmaceutyczne pracują nad genetycznymi przełącznikami, które miałyby być (i już są) "montowane" do genów wszczepianych do komórek w ramach terapii genowej.
Cała idea polega na tym, że wszczepiając gen byłoby bezpiecznie bo by nie działał.
Wtedy podawałoby się pacjentowi odpowiedni środek, który włączałby wcześniej wprowadzony gen.
Gdyby coś szło nie tak można by było przerwać podawanie tego środka i gen znów by się wyłączał.
Eksperymenty wykazały, że można nawet sterować tym jak wiele z kopii genu się włączy podając różne ilości substancji.

Pomysł genialny, acz już się spodziewam, że gdy powiedzmy za 20 czy 50 lat takie leki będą na porządku dziennym to w sieci znajdziemy masę stron o "spisku producentów leków", w którym ten mechanizm bezpieczeństwa będzie przestawiany jako coś co wprowadzono po to by ludzie ciągle musieli kupować pigułki od producenta leku ;-)


Podobne postybeta
No i gdzie jest Android@Home?
GeeCON 2015
Znowu czytam Samolubny gen.
Expressivo + OpenOffice.org
Samolubna Tajemnicza Wyspa Genów ;-)

sobota, czerwca 11, 2016

Skazany na urlop ;-)

Zostałem skazany na 2 tygodnie urlopu* ;-)
Wyrok będzie wykonywany od poniedziałku ;-)

Potrzebne mi to jest, ale tak trochę z zaskoczenia to na mnie spadło przez co nie mam żadnych planów.
Co innego w grudniu, wtedy by się przydało, ale z racji tego, że w grudniu to czym się opiekujemy odwala największy kawał roboty to de facto nie ma urlopów ;-) [a mnie by się wtedy przydał bo akurat na początku grudnia skończyłem wielki projekt]

Takie 2 tygodnie z zaskoczenia mają jednak swoje plusy :-)
Po pierwsze to są 2 tygodnie gdy nie trzeba wstawać by zdążyć na jakąś ludzką porę do pracy.
Po drugie (choć wynika to z pierwszego ;-)), nie ma przymusu chodzenia spać o jakiejś ludzkiej porze :-)
Po trzecie, to czas kiedy można kodzić i czytać ile dusza zapragnie :-)
I można jeździć na rowerze :-)

Jedyny minus, to to, że nie dostanę aż tyle piniądzów za urlop ile mogłem dostać przez co będę miał pewnie opory przed kupieniem Macbooka ;-) [pracowego znów dostanę, ale pracowy to pracowy]



* - mam 20 dni niewykorzystanego urlopu za 2015 rok, a że odchodzę z firmy to w interesie moim i firmy jest bym go jak najwięcej wykorzystał.


Podobne postybeta
Ekszperyment
OOo2GD 1.9.0 w kierunku bezszwowości ;-)
Pośpiech, BuffyPedia i Cool and Quiet
Czekam na MotoTab
IDE dla Go