poniedziałek, marca 28, 2016

Kto ustala datę świąt wielkanocnych?

Niby jest algorytm (który ma wskazać pierwszą niedzielę po pierwszej pełni wiosennej), ale kto wykonuje obliczenia? ;-)
Podobno w trakcie soboru w Nicei stabelaryzowano daty Wielkanocy, ale raczej nie zrobiono tego na kilka tysięcy lat do przodu.

Czy może robi to Obserwatorium Watykańskie? Ale to by wtedy dotyczyło tylko katolików.

No bo mamy tak, mamy kilka kościołów które starają się obchodzić Wielkanoc w tym samym czasie (czyli w pierwszą niedzielę po pierwszej pełni wiosennej), do tego mamy całe multum krajów w których Wielkanoc łączy się z dniami wolnymi od pracy.

Ale jak poszczególne kraje i kościoły określają tą datę?
I kto to robi?

W Polsce pierwszy i drugi dzień Wielkiej Nocy jest dniem ustawowo wolnym od pracy dzięki ustawie z 1951 roku, która wygląda tak:
Szukałem jakichś przepisów wykonawczych, które precyzowałyby sposób wyliczania daty i nic... nie znalazłem (co nie świadczy, że nie istnieją, mogłem źle szukać).

Taką sekundę przestępną reguluje w Polsce to, że przystąpiliśmy do Konwencji Metrycznej, a daty święta nie reguluje nic....
Tak btw. nie umiem też znaleźć przepisów mówiących o tym jaki w Polsce stosuje się kalendarz ;-)

Jaka jest gwarancja, że ktoś się nie rąbnie i się data nie rozjedzie? ;-)


Podobne postybeta
Terminy
Wojna ze świętam, czyli o wyższości Świąt Bożegonarodzenia nad Wielkanocą ;-)
I po urlopie ;-)
Kocham "eurosceptyków" ;-)
Chorować to trzeba umieć ;-)

niedziela, marca 20, 2016

Hypertext rozprasza

Tak mnie dziś uderzyło, że hypertext, czy ogólnie hypercontent*, który jest podstawą Internetu jest też źródłem ciągłego rozproszenia ;-)

Czytamy sobie artykuł i widzimy linkę do czegoś ciekawego związanego z tym o czym czytamy.... klikamy, lądujemy w równie ciekawym artykule, czytamy i tam znów jest link, podążamy za nim... i znów jest ciekawy artykuł.
Nawet jak na którymś etapie nie będzie już ciekawego artykułu, albo nie będzie linków to powrót do treści artykułu bazowego jest mocno ograniczony...
Podejście z bibliografią na końcu tekstu jest chyba lepsze.
W ostateczności lepiej użyć didaskaliów/przypisów, albo wstawek w tekście.
Chociaż przypisy do przypisów byłyby ciekawe (u PTerry'ego można znaleźć ;-)), albo ramka z przypisami, które mają własną ramkę...

Przydałoby się mieć w przeglądarkach opcję "add link do queue" ;-) niby "Zapisz w aplikacji Pocket" też działa, ale nie wszystko się uda dodać do Pocketa (a już przeczytać jest rzeczą niemożliwą).



* - umownie nazwijmy sobie tak wszelką treść, która ma w sobie linki do innej treści.


Podobne postybeta
Jak automatycznie zmienić słowo "laka" w "łąka"? :-)
Nudno
Noc
Spryciarz z Londynu i kilka uwag o tłumaczeniu
Sekrety klasy String ;-)

sobota, marca 19, 2016

Prosty test obiektywności dla zwolenników PiS/PO/whatever

New York Times pisze krytyczny artykuł o tym co wyprawia rząd PiS w Polsce.
Reakcja fanów PiS?
Piszą, że wiadomo, że to artykuł sponsorowany i że NYT nie wolno ufać bo pisuje doń żona Sikorskiego.
Senatorowie z USA piszą do premier Beaty Szydło żeby przestrzegała Konstytucję, znów jest "nie znają się".

Dlatego proponuje prosty test.

Gdy przeczytasz zwolenniku PiS gdzieś, że organizacja/gazeta/osoba X powiedziała o PiS źle to wstaw w miejsce PiS inną partię, PO, .Nowoczesną, PSL czy cokolwiek czego nie lubisz.
Czy zgodzisz się z oceną X w takim przypadku?

Jeśli tak, to sorry Twoja ocena nie jest obiektywna.


Podobne postybeta
Rycerz na białym koniu? ;-)
Opowieść o "zmotywatorach" ;-)
I po urlopie ;-)
Deklaracja wyborcza ;-)
"Wpadka" Radka

poniedziałek, marca 14, 2016

1.3 σ w kierunku średniej ;-), czyli wcześniej wstaję

Od blisko miesiąca prowadzę eksperyment.
Wcześniej wstaję ;-)

Pytałem tutaj ponad miesiąc temu o której wstajecie i o której chodzicie spać.

Odpowiedziało 17 osób, i okazało się, że średnio wstajecie o 7:00 (najwcześniej o 5:45, najpóźniej o 9:00), a spać chodzicie średnio o 0:30 (najwcześniej o 23:00, najpóźniej o 3:00).

Patrząc na te dane uznałem, że zdecydowanie plasuję się w późniejszym fragmencie i to nawet miejscami go przekraczam ;-)

Dlatego w ramach zbliżania się do średniej postanowiłem wstawać o 7:45. W tygodniu.

Początkowo było to bardzo fajne, pozwalało cieszyć się tym, że mało kto jeszcze jest w biurze.
Później zaczęło łączyć się z byciem niewyspanym.
Pójście spać o 1:15 jest trudne.... i zwykle mi się nie udaje ;-)

Inni też zaczęli wcześniej przychodzić i bonus z mniejszej gęstości fajnych ludzi na 1 m2 zaczął zanikać.

Oczekiwania przed eksperymentem były takie, że uda mi się ustabilizować czas chodzenia spać.
Nie do końca się to potwierdziło.
Liczyłem również na to, że zyskam trochę czasu po pracy by móc się uczyć. Tutaj początkowo było nieźle, ale szybko ten czas udało mi się zgubić.

Zamierzam jeszcze eksperyment kontynuować i zobaczyć jakie z niego wyjdą efekty, oczekiwane na razie nie zostały osiągnięte ;-)

Podobne postybeta
Stand desk w walce z jetlagiem... albo byciem niewyspanym ;-)
Trochę dziś przesadziłem ;-)
Się mnie poprzestawiało....
Notka miraż
Inwazja kostki klinkierowej

π day ;-)

Albo inaczej: 3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011949129833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405132000568127145263560827785771342757789609173637178721468440901224953430146549585371050792279689258923542019956112129021960864034418159813629774771309960518707211349999998372978049951059731732816096318595024459455346908302642522308253344685035261931188171010003137838752886587533208381420617177669147303598253490428755468731159562863882353787593751957781857780532171226806613001927876611195909216420198938095257201065485863278865936153381827968230301952035301852968995773622599413891249721775283479131515574857242454150695950829533116861727855889075098381754637464939319255060400927701671139009848824012858361603563707660104710181942955596198946767837449448255379774726847104047534646208046684259069491293313677028989152104752162056966024058038150193511253382430035587640247496473263914199272604269922796782354781636009341721641219924586315030286182974555706749838505494588586926995690927210797509302955321165344987202755960236480665499119881834797753566369807426542527862551818417574672890977772793800081647060016145249192173217214772350141441973568548161361157352552133475741849468438523323907394143334547762416862518983569485562099219222184272550254256887671790494601653466804988627232791786085784383827967976681454100953883..

Reszta tutaj http://www.piday.org/million/ ;-)


Podobne postybeta
Multisystemowość ;-)
Hack Day - task completed ;-)
Hack of the day ;-) oszczędzamy gniazdka.
Przygotowania do Hack Day'a
Electron + Airly = wskaźnik jakości powietrza w pasku ;-) - part 2, źródła ;-)

sobota, marca 12, 2016

Post-samochody ja

No i stało się, od czwartku nie mam samochodu.
Mój pojazd, który kupiłem blisko 10 lat temu już nie stoi na moim miejscu parkingowym, a wszystko wskazuje, że nic tam przez długo nie stanie ;-) (stąd pewnie wynajmę miejsce parkingowe, choć zniechęca mnie do tego wizja wypełniania jakichś specjalnych PITów).

De facto bez samochodu jestem od historii, która zaczęła się od pewnego dzika i w tym czasie potrzebowałem samochodu dokładnie raz.

Jeszcze jakiś czas temu, gdy więcej jeździłem myślałem o kupnie nowego samochodu, np. Kia Sportage, albo Nissana Qashqai, ale za każdym razem gdy próbowałem to policzyć wychodziło mi, że to się nie opłaca.
Policzyłem ile czasu spędzam w samochodzie, wtedy to było średnio około 3 godzin tygodniowo (potrzebnych na pokonanie 300 km).
Okazało się, że to mniej niż 3% "świadomego" tygodnia.
A trochę głupio wydawać większość oszczędności na coś gdzie spędzi się tylko 3% czasu ;-)

Do pracy jeżdżę tramwajem, albo rowerem, wracam zwykle na piechotę (za wyjątkiem sytuacji gdy jechałem tam rowerem ;-)), do rodziny jeżdżę pociągiem (a jazda samochodem trwałaby dłużej niż jazda pociągiem), większe zakupy w sklepie spożywczym robię przez Internet ;-)
Auto jest mi niepotrzebne...

Ale trochę szkoda, fajnie było mieć pojazd mechaniczny ;-)

Dodatkowy plus, poza brakiem wydatków na ubezpieczenia, paliwo, przeglądy i mechaników to fakt, że jak najbardziej zaliczam auto (i rzeczy w nim!) do mojego programu wyrzucania 1 rzeczy dziennie ;-)

Podobne postybeta
Update na statusie ;-)
Czego nie lubię w Kalifornii?
Post pierwszy - czy wiesz o czym wie, lub może wiedzieć Twój telefon? ;-)
Cena benzyny w górę, wydatki na paliwo w dół ;-)
Zamienił stryjek siekierkę na kijek ;-)

Spisek ClassLoader'ów ;-)

Mam taką sytuację.
Jest sobie interfejs Job, który implementuje wiele klas, klasy te są ładowane przez refleksję.

Normalnie wyglądałoby to jakoś tak:

Job job = (Job)classToLoad.newInstance();

I później można by już było pracować z job tak jak z każdą uczciwą klasą ;-)

Problemy zaczynają się wtedy gdy program, który ładuje kod ma swój ClassLoader i tworzy nowe ClassLoader'y dla ładowanych przez siebie "programów".

Wtedy ClassLoader programu głównego ładuje sobie interfejs Job, robi to też każdy z ClassLoader'ów wykonujących te Job'y....
Niestety ponieważ nie ma związku "rodzic-dziecko" między ClassLoader'ami to każdy z ClassLoader'ów ładując Job ładuje swoją własną kopię i nie da się zrzutować na Job w programie główym......

Niestety będę musiał używać nadal ohydnego wołania metod przez odbicia....

Sposoby na obejście tego problemu (sam mechanizm działania ClassLoader'ów ma sens, problemem jest raczej to jak są tutaj używane ClassLoader'y) są bardzo hacky i tricky ;-)

Można stworzyć ClassLoader, który załaduje tylko Job, i później będzie robił za rodzica dla ClassLoader'ów aplikacji głównej i reszty JAR'ów....
Można spróbować użyć serializacji... chociaż nie, bo wtedy zdeserializowany program po stronie programu głównego nie widziałby swoich klas ;-)


Podobne postybeta
Szkoła, a ja zaczynam rozumieć ClassLoader'a
Nieznane ścieżki ClassLoader'a ;-)
2.6 drzewa na telefon komórkowy ;-)
Nie znoszę programowania "funkcyjnego" :-)
Ulotny twór - software ;-)

piątek, marca 04, 2016

Jak walczyć z gigantycznym kodem w Java'ie, część 1.6 - podłe metody prywatne ;-)

Metody prywatne są wredne.

Jednym z narzędzi, które napisałem do analizy naszego codebase'a (kilka milionów linii kodu w Java'ie) jest narzędzie, które pilnie analizuje programy i znajduje w nich miejsca gdzie tworzymy i wysyłamy message JMS i takie gdzie je odbieramy.
Przy 500 różnych rodzajach JMSów to pomaga.

Przygotowanie do analiza wygląda tak (powtarzamy dla wszystkich projektów):
- pobierz kod z repozytorium,
- skompiluj,
- zdekompiluj do "assemblera" JVM,
- zapisz cały zdekompilowany kod do pliku.

Kolejny tool analizuje tak zdekompilowany kod i znajduje wszystkie ciekawe miejsca (patrzy na wszystkie new, cast check i wszystkie invoke, wcześniej jeszcze patrzy na wszystkie extends i implements).

Sęk w tym, że wczoraj kolega zgłosił mi, że właśnie ma 1 miejsce gdzie JMS jest obsługiwany a UI tego nie pokazuje.....

Zrobiłem śledztwo i wyszła moja niewiedza.

Gdy dekompiluje się kod z .class to domyślnie dekompilowane są tylko metody publiczne, protected i domyślne.... nie ma dekompilacji metod prywatnych.....

Trzeba dodać -p w linii poleceń gdy używa się javap....

Z innych obserwacji, różne wersje Java'y mają inne formatowanie wyników javap'a.


Podobne postybeta
Jak walczyć z gigantycznym kodem w Java'ie, część 1 ;-)
Nie ufajcie mergerowi z Mercuriala...
DVD BtVS sezon 2
Me hacker - debuger dobry
Sztuczki tropiciela błędów, part 4