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 ;-)
Chcę MBP15, ale z klawiaturą ;-)
Chromebook - filmy już działają :-)
Gwiezdne Wojny - czemu one są coraz bardziej anaukowe?
Jak masz doła to nawet rozwiązanie problemu niezbyt cieszy ;-)

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
Sudoku - atak pierwszy ;-)
Firefox 3.0 - trochę narzekań
Czemu Sejm i Senat nie korzystają z żadnego systemu kontroli wersji?
Medytacja

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
Co lubię
Co się dzieje gdy mój pierwszy samolot się spóźnia i mam mało czasu na przesiadkę?
Czemu filmowe AI jest prawie zawsze tak bardzo tępe?
Przemek w krainie Stefanów ;-)

ś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" ;-)
Patrol katechetyczny do walki z ateizmem ;-)
Moto 360 i Android Wear po paru godzinach używania....
Nowy Total Commander
OOo2GD 1.8.2

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 ;-)
Zły samochód i PKP, czyli koncert narzekania;-)

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
Konwerter, Nexus One i Bayes ;-) czyli co mi głowę zawracało w ciągu ostatnich paru dni ;-)
Uber - jaka za tym musi stać fajna matematyka
Taki trochę niezwykły lot Queen of the Skies.
Plusy dodatkie i plusy ujemne, czyli co może być złego, a co dobrego w AppInventorze :-)