środa, stycznia 24, 2018

Jak masz doła to nawet rozwiązanie problemu niezbyt cieszy ;-)

W okolicach stycznie i lutego zawsze mam załamanie samopoczucia, jak się jeszcze złoży tak, że w tym czasie nie mam nic fajnego do roboty to jest już źle.

Np. teraz pracuję nad narzędziem, które zmienia JVM tak że dodaje JVMowi zdolności do podmienia klas tak, że można np. dodawać lub odejmować metody i tak dalej.
Zowie się to DCEVM.
Większość roboty z przenoszeniem na nowszą Java’ę 8 zrobił kolega, on się bawił kodem ja muszę walczyć z głupimi środowiskami.
Na Linuksie wszystko mi się kompiluje i testy przechodzą, na Windows wszystko się kompilowało, ale testy nie przechodziły...
Gorsza sprawa, że nie przechodziły też na obocenie kompilowanej poprzedniej wersji...

W końcu uznałem, że sprawdzę czy w ogóle wykonuje się kod który dodajemy... to był dobry trop, ale nie do końca.
Przygotowałem sobie VMkę z Linuksem, na niej zestawiłem środowisko, wszystko ładnie działało, zainstalowałem IDE i zacząłem zmieniać kod w C++ dodając swoje logi.
No i testując robi się ciągle java -XXaltjvm=dcevm -version żeby sprawdzić czy jest dobra wersja.
I dziś wpadłem na pomysł, że na Windowsie gdzie mi to nie działa (maszyna jest w USA) też to zrobię, ale skopiuję jvm.dll z poprzedniej wersji z oficjalnych buildów... i okazało się, że JVM meldował się inaczej przy czystym buildzie, przy moim buildzie i przy oficjalnym...
To mnie doprowadziło do tego, że po prostu Mercurial (JVM jest na Merurcialu) w wersji na tym Windows nie wspomaga rozszerzenia mq... i przez to tylko ostatni patch się zainstalował...
Rozwiązałe problem z mq i od razu build zaczął działać i testy przechodzić...

Okazało się poraz kolejny, że problemy zwykle rozwiązuje się nie tyle je atakując wprost, ale atakując z wielu kierunków i zdobywając za każdym razem trochę więcej informacji.
Co najlpesze teraz wiem, że pewne symptomy które były wcześniej sugerowały mi ten problem.
I dzięki temu w przyszłości będąc w okolicy podobnych problemów będę lepiej umiał je rozwiązać.
To mi przypomina, że na rozmowie kiedyś Pani rekruterka spytała mnie jak rozwiązuję trudne problemy na co jej szczerze odpowiedziałem, że tak naprawdę to jest tak, że jak już rozwiązuje jakiś problem to on wcale nie jest trudny bo go wtedy rozumiem, a więc nie jest wcale trudny.
Bolesny jest tylko proces przejścia z sytuacji gdy nie rozumiem problemu do momentu gdy problem nie jest już trudny...
Czasem trwa to parę tygodni, czasem minuty.

Zwykle po czymś takim mam wyrzut endorfin i czuję się jak młody bóg ;-) ale że mam doła to moja reakcja była raczej „o f... na to zmarnowałem tyle czasu”?.

Jeszcze builda na OSX trzeba zrobić, włączyć CI i będe może mógł zacząć się zajmować Java’ą 9, ale tym rezem zażyczę sobie jednak CLiona.
Może się w końcu tego C++ nauczę...


Podobne postybeta
Trudne problemy
Zły dzień programisty
"Ochidna" Echidna ;-) czyli jak się mają prace nad RDrive.
Hackowanie teorii umysłu ;-)
Dodawanie i usuwanie metod i pól z klas Java w locie ;-)

Brak komentarzy:

Prześlij komentarz