wtorek, lutego 27, 2018

Dodawanie i usuwanie metod i pól z klas Java w locie ;-)

Praca z Javą jest zwykle dość fajna i ciekawa, ale czasem bywa dziwnie.

Jak masz fajne środowisko gdzie można mieć uruchomioną aplikację i zmieniać ją w locie to wszystko jest wygodne, ale raz na jakiś czas jest amba bo dodaje się lub kasuje metodę czy pole w klasie i przeładowanie klasy nie działa....

No i trzeba restartować aplikację...

Chociaż okazuje się, że nie zawsze ;-)
Tak koło 2010 roku ktoś wpadł na pomysł by może spróbować zmienić JVM tak by można było jednak przeładowywać klasy w locie ;-) wpadł na pomysł i stworzył DCEVM, czyli Dynamic Code Evolution VM.

DCEVM to nic innego jak zestaw patchy na JVM z OpenJDK.

Patche te po pierwsze ustawiają JVM w taki sposób by zawsze używała tego samego GC, a następnie zmieniają kod tego GC tak by w trakcie uruchamiania sprawdzał czy aby nie ma nowszej definicji klas, a jeśli są to by probował przepisać instancje tak by korzystały z nowego kodu...
Do tego w momencie gdy IDE przesyła do JVM nową wersję klasy to DCEVM zaznacza sobie, że ma tą nową wersję i wywołuje GC ;-)...

No i teraz jest tak, że developując "przeciwko" DCEVMowej JVM można swobodnie dodawać i odejmować metody i pola w klasach :-)

W najgorszym przypadku, gdy to GC połączone ze zmianą definicji klasy wykona się w trakcie wykonywania metody, która woła metodę którą skasowaliśmy właśnie w updacie tej klasy to poleci nam MethodNotFoundException ;-)

Do tego DCEVMa można zainstalować jako alternatywną JVM i mówić tylko IDE by uruchamiało debugowaną apkę w DCEVM... co robimy używając opcji dla JVM +XXaltjvm=dcevm :-)

Czemu o tym piszę? Bo lekko grzebię w DCEVMie ostatnio ;-) [firmowo :-)]
Fakt, moje grzebanie to na razie zaaplikowanie poprawek kolegi, kompilacja i wrzucenie wersji pre-release ;-)
Na moim GitHubie zrobiłem też wersję dla najnowszej Java'y 8 (Jdk8u161/162) :-)
Ale projekt mi się wydaje bardzo ciekawy, stąd się dzielę :-)


Podobne postybeta
Jak wykryć, że ktoś nam zmienia klasy w JVM?
Jak masz doła to nawet rozwiązanie problemu niezbyt cieszy ;-)
finalize() - do czego służy, a do czego nie i z czym to się je.
Nieznane skarby JDK - JConsole :-)
Defragmentacja SSD - o tym dlaczego nie należy jej robić

poniedziałek, lutego 26, 2018

Dół

Wystarczył tydzień w Polsce żebym znów złapał doła....
Nie wiem czy to pogoda, czy kontakt z tym co tu się dzieje, ale mam doła.

Chociaż miałem też profetyczną wizję w piątek rano po przebudzeniu, 2018 to rok w którym PiS walnie o grunt.

Źle mi było w tej Kalifornii?


Podobne postybeta
Czytanie w śnie - to nie działa ;-)
Chromebook - filmy już działają :-)
Gwiezdne Wojny - czemu one są coraz bardziej anaukowe?
Jak masz doła to nawet rozwiązanie problemu niezbyt cieszy ;-)
Wycieczka

niedziela, lutego 25, 2018

"Czy uważasz, że powinien zarabiać tyle co Ty?" ;-)

"Czy uważasz, że powinien zarabiać tyle co Ty?"

To jest pytanie, które świetnie uruchamia w ludziach heurystykę pozwalającą na rozwikłanie problemu czy kogoś przyjąć czy nie.

Zwykle po tym jak jako interviewer odbędzie się już rozmowę z kandydatem pozostaje napisanie ewaluacji.

Powinna być obiektywna, ale też powinna też mieć subiektywny fragment. Bo z jednej strony obiektywnie powinniśmy ocenić kandydata lub kandydatkę, czy pasują technicznie, ale subiektywnie powinniśmy ocenić czy pasuje nam jako ktoś z kim chcemy pracować.

Zwykle powinno to działać tak, że jeśli nie odrzuca nas wizja pracy z kimś to trzeba powiedzieć czy spełnia nasze wymagania techniczne*.

Ale ludzie nie lubią tego pierwszego kawałka i często stosują wybiegi w stylu "technicznie nie jest źle, ale nie do naszego teamu" albo podobnie.

Wtedy działa heurystyka oparta o pytanie "Czy uważasz, że powinien zarabiać tyle co Ty?" ;-)
Wtedy jakoś nagle ludzie potrafią dość szybko powiedzieć "tak" lub "nie".
Bo w końcu nie muszą się posługiwać jakaś abstrakcyjną skalą, ale mają konkretny problem, który o wiele prościej rozwiązać ;-)



* - OK, uważam, że jak zdarzy się ktoś naprawdę świetny technicznie, kto jest straszny kulturowo, niemiły i agresywny to warto się zastanowić, chociaż to działa tak, że musi być wtedy naprawdę świetny. W końcu dla geniusza można zrobić wyjątek i zawsze można taką osobę zamknąć w piwnicy ;-)


Podobne postybeta
Przyśpieszanie backtrackingu
2 wymiarowa teoria kariery w IT ;-)
Czemu oglądam filmy i seriale po angielsku z napisami po angielsku
Czas = uwaga = zainteresowanie ;-)
Firefox 3.0 - trochę narzekań

sobota, lutego 17, 2018

Algorytmy Ubera są niezłe

Jakiś czas temu zachwycałem się tutaj algorytmami, które muszą stać za UberPool.
Teraz widziałem ich kolejne wcielenie, czyli UberPool Express :-)
Idea jest taka jak w UberPool ale posunięta dalej, za jakieś 60% ceny UberPoola można pojechać, ale trzeba pójść do punktu "zbornego".
Normalnie to Ty wyznaczasz gdzie chcesz wsiąść, ale w UberPool Express to aplikacja Ci mówi gdzie będziesz wsiadać.

Gdzie będzie to wsiadanie to loteria ;-)

Raz musiałem wejść między jakieś dziwne domki w Mountain View, za to w Palo Alto jak chciałem jechać spod garażu HP to kazała mi po prostu przejść na drugą stronę ulicy ;-)

Nie do końca rozumiem jak działa wyszukiwanie pary pasażer-kierowca.
Bo kierowca musi się zgodzić na odebranie człowieka, czyli pewnie muszą patrząc gdzie jest pasażer przejrzeć wszystkie trasy które są wykonywane w okolicy i znaleźć punkt "pobrania" pasażera...
Jak będzie kilka to musi zgłosić kierowcom tak by w razie któryś zaakceptuje podesłać namiary na pickup point.

Ciekawie to musi działać...

Chociaż może przez to, że działa to tylko w paru miejscach to mają więcej danych niż tylko wyszukiwanie aktywne, może proaktywnie routują samochody przez punkty gdzie jest największa szansa na pasażerów?


Podobne postybeta
Uber - jaka za tym musi stać fajna matematyka
Czemu nie korzystam z hulajnog elektrycznych?
Co lubię
Ulotny twór - software ;-)
Jednak lubię United ;-)

środa, lutego 14, 2018

Chytra klamka

Gdy byłem w USA pół roku temu mój ówczesny product manager pokazał mi chytry trick możliwy z amerykańskimi klamkami.

Można je otwierać do góry...



Na pierwszy rzut oka nic szczególnego, ale jak zauważyłem o wiele łatwiej tak otwierać drzwi :-)
Gdy się pcha drzwi do otwarcia, można pchnąć drzwi i wtedy ciężarek ciała pchamy klamkę w dół i drzwi do przodu, za to w sytuacji gdy mamy drzwi otwierane w naszą stronę taka chytra klamka pozwala pociągnąć klamkę w górę i drzwi w naszą stronę...
Takie to ergonomiczne :-)

posted from Bloggeroid




Podobne postybeta
HeapSort, a MergeSort i QuickSort :-) - od strony "chytrości" ;-)
Jechałem Teslą 3 :-)
OOo2GD 1.8.2
Patrol katechetyczny do walki z ateizmem ;-)
Gdy masz w ręku młotek wszystko wygląda jak gwóźdź, gdy pod ręką masz Eclipse'a.... ;-)

wtorek, lutego 13, 2018

Zegarkowy lifehack

Podłapałem ostatnio niezłego lifehacka zegarkowego od koleżanki.
Sam go nie będę stosował bo jednak na męskiej ręce wygląda dziwnie ;-)

Odwróć zegarek :-) tak by tarcza była od wewnętrznej strony ręki:


O wiele prościej sprawdzić wtedy czas :-)
Nie trzeba jakoś dziwnie wykręcać ręki, można się też niby to podrapać po nosie, a tak naprawdę sprawdzić czas :-)


Podobne postybeta
Moja następna poprawka do konstytucji ;-)
Powiedz dziś "Część!" swojej wewnętrznej małpie ;-)
Wesołego Dnia Darwina - daj pohasać dziś swojej wewnętrznej małpie :-)
Matematyczne podstawy zakupu skarpetek ;-)
Taiga 16x80 daje po oczach :-)

poniedziałek, lutego 12, 2018

Raport z emigracji ;-)

I zacząłem kilka dni temu 3 tydzień w Kalifornii.
A nawet (prawie) w Dolinie Krzemowej.

Potrzebny mi był ten wyjazd. Tutejsza pogoda zdecydowanie dobrze na mnie wpływa :-)

Widziałem już chyba prawie wszystko w miarę oczywiste tutaj i pozostało mi jeszcze trochę nieoczywistych.

Na Alcatraz byłem 2 razy ;-) raz z koleżanką, drugi raz sam na "nocnej" wyprawie, w czasie której widziałem zwykle zamknięty blok A i dopiero teraz zdałem sobie sprawę, że budynek więzienia jest zbudowany na 2 poziomach starej cytadeli.




Jadłem naleśniki z truskawkami :-) [sam bym nie zauważył, ale jako typ który uważa jedzenie za kłopotliwy dodatek do życia nigdy nie zwracam szczególnej uwagi na miejsca z jedzeniem ;-)] na Pier 39:


Widziałem (prawie) zachód słońca nad Golden Gate:


Byłem u NASA ;-)


I w Stanford:



Widziałem białego aligatora (podobno obrzydliwy jest.... ale się nie zgadzam ;-) chociaż przyznam, że brzydki jest ;-))


Jak zwykle przytuliłem też jakiegoś Androida (tak naprawdę wszystkie ;-)):


Widziałem wieczorem Painted Ladies i spotkałem tam dziwnego kierowcę Lyfta, który jak już wsiedliśmy stwierdził, że on nie wyjedzie z San Francisco i mi zrobił Cancel... co by mnie kosztowało 5 USD, ale zażyczyłem sobie zwrotu od Lyfta i zwrócili ;-)


Dowiedziałem się, że niektóre budynki mogą świecić....


Byłem w sztucznym lesie na górze stucznej góry, która jest na sztucznej wyspie na sztucznym jeziorze w stucznym parku ;-)


Widziałem amerykańską sztukę. Starszą:


i nowszą:


I taką najstarszą (acz ta jest z obecnego Meksyku):


Najbardziej czaderską budowlę, która od pierwszej wizyty w SF mnie pociągała:



jak zwykle Lombard Street:


Cable cara (ale nadal nim nie jechałem...):


Statek z serii Liberty (ich zbudowano koło 3 tysięcy sztuk i w pewnym momencie wypuszczano jeden co 3 dni!, to dzięki nim USA mogły zaopatrywać Wielką Brytanię i Rosję w trakcie II Wojny Światowej):


Jak zwykle Port San Francisco:


Ten drugi most ;-) (Bay Bridge jest DŁUŻSZY od Golden Gate i widać go z miasta):


Gigantyczną katedrę (na wzgórzy katedralnym ;-)):


Sztukę w oparach trawy (wtedy tego dymu było tak dużo, że go przez całą drogę z Castro i Mission czułem):


Widziałem Banksy'ego... ale tylko jednego z kilku bo kilka zamalowano :-(


Byłem w Exploratorium i widziałem tam takie coś zrobione z zapałek...


Znów widziałem genialny znak :-)


No i zaćmienie Księżyca:


Stan mnie znów chciał zeżreć....


Byłem na łodzi podwodnej (to już druga w której byłem :-))



U lwów morskich :-)


Widziałem też dziwną roślinną ośmiornicę...


I w Muzeum Komputerów jak zwykle zrobiłem zdjęcie klawiaturze z logo jednego z moich ekspracodawców :-)


Tak myślę, że wyjazd mogę zaliczyć do w miarę udanych ;-)



Podobne postybeta
Raport z emigracji
Gotówka jest już niepotrzebna (prawie)
Zapiski z 29 piętra....
Konwerter, Nexus One i Bayes ;-) czyli co mi głowę zawracało w ciągu ostatnich paru dni ;-)
Dwa tygodnie z Linuksem - na razie na 4-