czwartek, października 14, 2021

A może by tak potrząsnąć drzewem zależności? ;-)

Jest tak, mam microservice który został zbudowany w oparciu o coś co trzeba by było updatować, ale to coś przepisuje masę kodu, który też jest ręcznie zmieniany więc z tym się nie da żyć, więc tego nie updatuję.

Poprawki bezpieczeństwa w postaci updatów bibliotek załatwiam "obok", co zabawne większość bibliotek które musiałem updatować (bo jeden albo drugi skaner stwierdziły, że dana wersja jest be) to rzeczy, których nie używam...

I mnie tak kusi by puścić analizę taką, popatrzeć na skompilowany kod i wszystkie klasy które woła, później przejść przez wszystkie JARy które mam na ClassPath (ClassPath długo nie umrze ;-)) i spróbować namierzyć te JARy, których kodu nie używam :-)

To może być ciut zbyt entuzjastyczne przez te głupie pomysły jak to co robi JDBC (akurat nie mam ;-)), czy implementacje SLF4J, bo tam jest ten brzydki sposób z rejestrowaniem się, które momentami odwraca to co kto woła (w SLF4J jest chyba tak, że skanuje w poszukiwaniu implementacji? Nie pomnę, ale problemy robiło)
Do tego jakieś straszne miejsca gdzie są używane refleksje... 

Ale mnie kusi, tylko jeszcze by się przydało mieć z 2-3 dni takiego luzu by się w to pobawić... a o to będzie trudniej ;-) 




Podobne postybeta
Gradle - narzędzie do artystycznego odstrzeliwania sobie stopy ;-)
To Update or not to update? ;-)
Chciałbym Chromebooka
GCJ mnie przerosło ;-)
Mysaifu JVM - Java dla PocketPC

poniedziałek, października 11, 2021

Komputer na korbę ;-)

Widziałem wideo o OLPC (One Laptop Per Child) które niby było wielką wtopą... ale tak naprawdę chyba trochę pokazało firmom, że jest nisza której nie dotykały i teraz tam są telefony, Chromebooki i podobne.

Ale nie o tym tutaj ;-)

OLPC miał korbkę :-) tzn było akcesorium, które pozwalało go "ładować" korbką i próbowałem tak oszacować ile by trzeba było kręcić by np mojego MBP15 z 2018 roku przez godzinę móc używać ;-)

Próbowałem szacować ile mocy jest w takiej korbie, ale jakoś mi nie wychodziło bo moje szacunki były między ~0.7 W, a 10 W. 

Internet mówi, że to jest między 5 a 15 W, czyli nie byłem aż tak daleko :-)

Godzina kręcenia taką korbą to między 5 a 15 Wh ;-) czyli między 0.005-0.015 kWh ;-)

Pojemność baterii w moim MBP15 z 2018 to na dziś 6710 mAh (co by znaczyło, że już nie ma pełnej pojemności ;-)), przeliczenie na Wh wymagałoby znajomości napięcia z baterii ;-)

Na szczęście Internet też zna odpowiedź na pojemność baterii w Wh.... ~84 Wh.

Co by znaczyło, że do "napompowania" baterii na full (załóżmy 100% skuteczność) trzeba by było kręcić korbką od 5:36 do 16:48 ;-) 
Powiedzmy, że laptop działa na baterii 5h (OK, podobno 11 czy jakoś tak, ale ja chyba inaczej używam ;-)).
Czyli by mieć mniej więcej 1h pracy trzeba by było kręcić korbą od ~1:08 do ~3:21 ;-)

Nie jest to jednak interes życia ;-)

A i tak istnieje szansa, że się gdzieś w obliczeniach walnąłem o jeden albo dwa rzędy ;-)




Podobne postybeta
2.6 drzewa na telefon komórkowy ;-)
ISS poraz kolejny :-) tym razem poprzedzona HTV :-)
Chcę MBP15, ale z klawiaturą ;-)
15354.976 ;-)
Głupie użycie twierdzenia Bayesa.....

piątek, października 08, 2021

Struktury danych vs algorytmy

Gdy te 12 lat temu uczyłem się po raz pierwszy algorytmów i struktur danych z Introduction to Algorithms zauważyłem, że jakoś lepiej mi idą struktury danych niż algorytmy.

I tak jest do teraz ;-)

Łatwiej mi jest zaprojektować strukturę danych niż algo.

Może chodzi o to, że często i gęsto to jest po prostu składanie z prostszych klocków? 

A może chodzi też o to, że ze strukturami danych mamy tak naprawdę tylko interfejs i łatwiej jest mapować ten interfejs do skończonej liczby struktur? ;-)

W sensie, że jak się myśli o strukturze danych to można ją wyspecyfikować od strony tego jak będzie zasilana danymi, jak będzie odpytywana i teraz to już tylko zwykle zastanawianie się jakie klocki do tego pasują? 

Z algo jest tak, że też jest zwykle skończona liczba podobnych przypadków do tego, który się robi, ale jakoś łatwiej głupieję, a i tak w końcu się okazuje, że Dynamic Programming było odpowiedzią, a ja i DP jakoś nie jesteśmy w pełni kompatybilni ;-) tzn umiem użyć w wielu momentach, w wielu widzę, że "O! przecież to liczę wiele razy to DP by było jak znalazł" ale często mi brakuje tego "klucza" po którym będę szukał.

No ciekawe. Widać po prostu struktury danych są prostsze :-)




Podobne postybeta
Dziś programista ma być teoretycznym algorytmistą, a praktycznym kleistą ;-)
Przeżycie artystyczne ;-)
Dodawanie i usuwanie metod i pól z klas Java w locie ;-)
Telewizyjne zastanawianie
Ksiązki - nieksiążki ;-)

czwartek, października 07, 2021

Kod jako insight w umysł ;-)

Ponad rok temu zacząłem z kimś robić zadania z książek, głównie z Cracking the Coding Interview i Elements of Programming Interviews in Java.

Były momenty robienia po 3 zadania dziennie i miesiące bez robienia zadań.

I tak czasem sprawdzam po zrobieniu zadania poprzednie rozwiązania swoje i tej osoby i ciekawa sprawa.

Jak często mamy inne rozwiązania, to zwykle nasze rozwiązania z teraz i np. sprzed roku są bardzo podobno lub identyczne... czasem nawet co do nazw zmiennych :-)

I zastanawiam się czy to wynik tego, że przy pierwszym kontakcie z zadaniem się znalazło sposób na rozwiązanie i teraz mniej lub bardziej świadomie się "jedzie z pamięci", czy może za każdym razem to jest oryginalny twór umysły i wynika z okablowania mózgu?

Czy może chodzi o mieszankę?

Wiem, że sam od momentu gdy zacząłem uprawiać blindfold programming dzielę sobie kod w głowie na chunki i możliwe jest, że pamiętam "chunka". Co by pasowało bo ja jestem zwykle bardziej "wierny" w kodzie temu co napisałem rok czy dwa lata temu.

Czasem też pamiętam fizyczną analogię problemu, czy to sam ją wymyśliłem czy ktoś mi opisał.

Mam jednak wrażenie, że patrzenie na czyjś kod (w tym swój ;-)) to taka forma insightu w umysł ;-)




Podobne postybeta
Czas wrócić do blindfold programming
Jakie by tu zadanie zrobić? ;-)
Znowu dyskusja....
Ulotny twór - software ;-)
Czy można śnić 2 lub więcej snów w tym samym momencie? ;-)