niedziela, lutego 23, 2020

W klocki ;-)

Bawiłem się dziś w klocki ;-)
Tak trochę na początku do tego podszedłem, że to odbębnię i będę miał z głowy.
Okazało się, że nie było tak źle ;-)

Na początku było pudełko, po 3 godzinach (4, ale z przerwami na Telegram'a i "gotowanie") pojawił się lądownik księżycowy ;-)



W drugim ujęciu w swojej "gablotce" w towarzystwie kawałków soli z Wieliczki i kamienia z nad morza, albo znad Pacyfiku.... nie pomnę ;-)

Ogólnie nie było to takie straszne.
Nie jest to może coś co jest jakoś szczególnie ekscytujące, ale miło patrzeć jak to wszystko rośnie :-)


Podobne postybeta
A może by tak w klocki Lego? ;-)
Wycieczka po LA ;-)
Prawicowa logika ;-)
clickBaitDetector - wiem czemu nie działa ;-)
Nexus 10 - no i się skusiłem ;-)

piątek, lutego 21, 2020

Czemu trzeba pomagać Jacksonowi? ;-)

Jeśli używasz w swoim projekcie Jacksona to pewnie zdarzyło Ci się zrobić pewien błąd.
Najpierw stworzyłeś lub stworzyłaś klasę z polami publicznymi, bo to przecież taki tylko obiekt do zmiany w JSONa i z powrotem.
I wszystko działało.
Aż tu nagle, dodajesz konstruktor i zmieniasz widoczność pól i nagle choć serializacja nadal działa to deserializacja przestaje.

Patrzysz na kod i w końcu dociera do Ciebie, że trzeba opisać konstruktor annotacją @JsonCreator.

I czasem kod działa :-)

A czasem jednak nie. I znów dociera do Ciebie, że trzeba dodać do parametrów annotacje @JsonProperty z nazwą.

Tu możesz się zacząć zastanawiać czemu jak pole było publiczne to nic nie trzeba było annotować, a jak jest prywatne i dostarczasz konstruktor to nagle trzeba już dodać annotację z nazwą...

Reflejske się tu kłaniają ;-)

Jackson używa do serializacji i deserializacji mechanizmu refleksji.

Pola sobie może odczytać bez problemu, robi na naszym serializowanym obiekcie obj.getClass().getDeclaredFields() i obj.getClass().getFields() i ma listę pól z ich nazwami i typem.

Ale jak jest konstruktor to sprawa się komplikuje.... bo co prawda przy pomocy refleksji można zdobyć info o konstruktorach, a nawet o ich parametrach.... to ich nazwy są tracone w trakcie kompilacji ;-)

Można to zobaczyć uruchamiając poniższy program:

import java.lang.reflect.Constructor;
import java.lang.reflect.Parameter;

public class ReflectionTest {

ReflectionTest(String id, String name) {
System.out.println(id);
System.out.println(name);
}

public static void main(String[] args) {
Constructor<?>[] constructors = ReflectionTest.class.getDeclaredConstructors();
for (Constructor<?> constructor:constructors) {
Parameter[] parameters = constructor.getParameters();
for (Parameter parameter:parameters) {
System.out.println(parameter.getName());
}
}
}
}

Co wypisze? ;-)

Spodziewalibyśmy się, że:
id
name

a tak naprawdę wypisuje:
arg0
arg1

 ;-)


Podobne postybeta
Refleksje i serializacja w Java'ie - podstawy i obalanie mitów ;-)
Niecne wykorzystanie refleksji... czyli jak poszukać tekstu w drzewie obiektów? ;-)
Sztuczki tropiciela błędów, part 4
Serializacja w Java'ie - revisited ;-)
Konstruktory

środa, lutego 19, 2020

Lubię mieć wybór, ale nie lubię wybierać ;-)

Pewnie jestem dziwny, ale zauważam, że o wiele fajniej jest mieć otwarte pewne opcje, które może nie są pewna, ale jest ich kilka, niż mieć dwie, które są ostateczne w jakimś horyzoncie czasowym ;-)

Bo takie mgliste opcje dają pewną swobodę czy nadzieję, a konkretne wybory zmuszają do podjęcia decyzji.

Chociaż może jeszcze inaczej. Bardzo mi się podoba analogia z podejmowaniem decyzji, którą podobno lubi posługiwać się Jeff Bezos (ten od Amazona), że są 2 rodzaje decyzji, takie które można wyobrazić sobie jako drzwi przez które można tylko raz przejść i takie przez które w razie czego można wrócić.
Ja zdecydowanie przoduję w używaniu tych drugich ;-)

Pewnie przez to lubię np. w kodowaniu używać metod gdzie mam dużą swobodę w zmianie podejścia. Nie lubię się betonować i stąd zamiast wybrać "jakąś technologię" wolę często zostać przy czymś bardziej podstawowym.
Mogę użyć Springa jak mi wyjdzie, że mi jest potrzebny, a może użyję Guice, a może na początku w ogóle nie potrzebuję niczego takiego.
To samo z bazą danych, jak długo mogę to będę zapisywał dane do pliku tekstowego czy serializował jakąś strukturę na dysk.

Chociaż to się chyba bierze z tego, że w przypadku tych decyzji odwracalnych, czy tych decyzji gdzie brak decyzji nie powoduje zamknięcia dróg, a może czyni je trudniejszymi, koszt jest mniejszy.
Gdy wybiera się opcję a zamiast b, to traci się możliwość wyboru opcji b. To jest chyba przypadek problemu kosztów alternatywnych ;-)
Gdy nie umiemy określić zysków z a i b to podejmowanie decyzji jest oparte na intuicji, która ma chyba tendencje do trzymania się tego co znane.
Niby można zrobić research, ale ten jest zwykle dość powierzchowny. Siłą rzeczy, jeśli decyzja dotyczy czegoś co ma potencjalnie duże koszty to jest to zwykle decyzja trudna i prosty research może dać nam tylko ułudę posiadania opinii.
Dlatego zresztą choć sam piszę bloga, to zbytnio żadnych nie czytam ;-) tzn. czytam by poznać jakieś sposoby myślenia, ale raczej nie wierze w zachwyty nad nową technologią czy czymś podobnym.

W ogólności, lubię mieć wybór, nie lubię wybierać ;-)


Podobne postybeta
O wyższości podejmowania decyzji partiami zamiast per sztuka ;-)
Ja długo przygotowywać się do rozmowy? (kwalifikacyjnej w IT ;-))
Jak walczyć z gigantycznym kodem w Java'ie, część 1.5 ;-) - czyli jak je się słonie ;-)
Chmurka prawdopodobieństwa
Patenty

czwartek, lutego 13, 2020

A może by tak w klocki Lego? ;-)

Ostatnio mi się potrafi nudzić w weekendy między 14 a 18 ;-) i nie mam wtedy pomysłu co robić.

Ale mam 2 IronMan'ów do zbudowania z Lego, może tym by się zająć?
A wtedy może np. ISS z Lego? ;-)
A dwaj IronMan'owie wyglądaja tak ;-)




Podobne postybeta
W klocki ;-)
SUVy ;-)
Dziwne ;-)
Sprawdzanie zdjęcia ;-)
Linia poleceń rządzi!

niedziela, lutego 09, 2020

Pensje w IT są trudne

Zarobki w IT są trudne.

Wysokie też, ale nie o wysokości teraz będzie mowa ;-)

Będzie o tym, że pensje w IT są skomplikowane.

Jeśli pracujesz na umowę o pracę to kilka lat temu było prosto.
Była pensja zasadnicza, czasem premia i premia roczna.

Oczywiście wszystko to było znane w wersji brutto... ale ile to było "na rękę"?

Wystarczyło policzyć 2/3 i było mniej więcej to co się dostaje "na rękę".

Jednak pensje w IT poszły w górę i nagle zaczęło się wpadać w II próg i jednocześnie przekraczać 30x co oznacza koniec płacenia składek emerytalnych.

Dowolny kalkulator podatkowy potrafił to jednak policzyć.

Wejście autorskich kosztów uzyskania przychodu zaczęło komplikować sprawę...

Gdy "masz szczęście" i pracujesz dla którejś z firm, które nie płacą żadnej premii to są w sieci kalkulatory, które Ci pozwolą policzyć ile zarobisz "na rękę". (inna sprawa, że jak nie płacą premii to też pewnie nie ma w nich autorskich kosztów uzyskania przychodu...)

Problemy zaczynają się jak Twoja pensja to nie tylko baza, ale też premia, lub premie, a do tego akcje lub LTI.

Wtedy część kwoty, zwykle procent bazy liczy się do autorskich kosztów uzyskania przychodów, premie i LTI, czy signing bonusy się nie liczą.

Tego nie ogarniają już on-line'owe kalkulatory....

Poza moim ;-)


Który potrafi policzyć pensję "na rękę", do tego brutto i jeszcze informacje o tym ile zapłacimy składki zdrowotnej i emerytalnej ;-)

Do tego liczy to w 2 wariantach, z 30x limitem na płacenie składki emerytalnej i bez tego limitu (bądźmy szczerzy wcześniejsza wersja tego kalkulatora już była kiedyś linkowana ;-))
Każdy z wariantów można sobie pobrać też jako CSV ;-)

Kalkulator wszystko liczy w przeglądarce i nic nie wysyła do serwera.
Jeśli chcesz mieć pewność to możesz sobie pobrać kalkulator, obejrzeć kod, albo uruchomić lokalnie na komputerze bez Internetu :-)


Podobne postybeta
Bonusy, koszty autorskie i limit 30 krotności...
Kiedy tablet zmieni się w dobry kalkulator?
Emerytura? Jaka emerytura?
IT - Jaka kasa w zależności od skilla? ;-)
Płatnik czy beneficjent?

czwartek, lutego 06, 2020

AirPods Pro rządzą

Dziś mi przyszły i wracałem w nich z pracy.
Podpięte do mojego Pixela działają nieziemsko. Nic w okolicy nie słychać :-)

Sparowanie z Androidem było proste, nawet nie podpinałem ich do mojego Macbooka Pro czy iPada Pro, bo po co? (btw. Pro w przypadku produktów Apple takich jak laptopy znaczy "zdatny do użycia" ;-) w przypadku iPadów używać się da też tych nie Pro ;-))

Mam niemal wrażenie, że ten noise cancelling działa lepiej niż w moich dużych Sony. Może nawet działa za dobrze ;-)
Bo jak założyłem lewą słuchawkę tylko, a prawej jeszcze nie to wydawało mi się, że "straciłem lewą stronę".

Ogólnie dobry produkt.

(tak, to pewnie moja droga w kierunku iPhone'a, choć przyznam, że jestem zachwycony Pixelem 4 XL)


Podobne postybeta
Zaskakujący killer feature....
Projektowane dla Kalifornii ;-)
Macbook - chyba chcę (prywatnie)
Pixel 4 XL czy iPhone 11 Pro
Katowany "łomot" ;-)

niedziela, lutego 02, 2020

Dziwne skojarzenia

Jak rozumiem mózg jest dziwny ;-) ale czasem niektóre skojarzenia mnie dziwią.

Np. ostatnio nauczyłem się układać kostkę Rubika i często jak układam kostkę Rubika to mi się przypomina iście obok Hali Oliwy w Gdańsku (a szedłem tam łącznie 6 razy ;-) zawsze w związku z interview w Amazonie (miałem 2, i dostawałem zawsze ofertę, ale nie taką jak chciałem ;-)).



Albo jak robiłem kurs z Machine Learning to mi się często przypominało właśnie w trakcie tego kursu jak rok wcześniej czy coś szliśmy z kolegą przez Mountain View od Googlepleksu i źle skręciliśmy do stacji Caltraina.

Jest jeszcze parę rzeczy, które mi się podobnie kojarzą, coś mi się kojarzy z chodzeniem nad zatoką San Francisco, albo z moim spacerem przez Chorzów gdy byłem na koncercie Rammstein'a.

Ale to są takie dziwne skojarzenia, że te rzeczy do siebie nie pasują.
Szczególnie ta kostka do Hali Oliwy ;-)

Aż sobie może będę próbował zapisywać takie skojarzenia ;-)


Podobne postybeta
Przemek w krainie Stefanów ;-)
Mój pierwszy polski Subway ;-)
W przemyśle filmowym muszą pracować idioci...
Amerykański zegarek jest trudny ;-)
Fotografowanie

piątek, stycznia 31, 2020

MFA jako sposób na zmniejszenie pracoholizmu, albo uzależnienia od FB? ;-)

Tak się składa, że coraz częściej firmy każą pracownikom używać MFA w trakcie logowania do różnych systemów.
Najpierw VPNa, później poczty i wewnętrznych tooli, później komunikatora i tak dalej i tak dalej.
I zauważam, że przynajmniej jak mnie się to gdzieś zdarza to powstanie tej kolejnej bariery w dostępie do danego systemu sprawia, że w domu jej zwykle nie przekraczam.

I tak się zastanawiam czy jak takie coś dodam do Facebook'a to też będę rzadziej korzystał? ;-)


Podobne postybeta
Firefox 3.0 - trochę narzekań
Wykrywanie kłamstw
Web 2.0, czyżby opowieść o tym jak oddaliśmy Internet idiotom?
Prawdopodobieństwem w quote'e ;-)
1.3 σ w kierunku średniej ;-), czyli wcześniej wstaję

środa, stycznia 22, 2020

Co by zrobić żeby więcej czytać w tramwaju?

Tak sobie czytam Atomic Habits (jetlag...) i uznałem, że spróbuję użyć jedną z taktyk, czyli make it easy do tego by jednak więcej czytać w tramwaju książek niż czegoś innego (czyli zamiast sprawdzać maila, czy Hacker News).
Przeniósł sobie więc Kindle w miejsce, które jest najłatwiejsze do kliknięcia, a inne złodzieje czasu włożyłem do folderów (może będę je musiał jeszcze przenieść na drugi ekran?)
Wygląda to tak:

Zobaczymy czy podziała ;-)
posted from Bloggeroid



Podobne postybeta
Me Hacker ;-)
Kto mi ukradł weekend??
Czyżby Google przygotowywało Google Translate dla języka polskiego?
Szybkoholizm ;-)
Zegarek trudny

poniedziałek, stycznia 20, 2020

Koszmarna muzyka infolinii.. mam teorię

Chciałem przenieść aplikację IKO (do bankowości mobilnej i autoryzacji od PKO BP) na inny telefon.
Zainstalowałem apkę na innym telefonie, poprosiła by ją aktywować i tak zablokowała stary telefon, a na tym nie aktywowała.
Konieczne było dzwonienie do PKO BP na infolinię.

No i po wybraniu, że jestem klientem, że to jest mój numer klienta, a to mój kod dostępu dostałem info, że żaden rachunek nie jest połączony z tym numerem w serwisie telefonicznym więc muszę pogadać z konsultantem...

I włączyła się "muzyka", w "" bo to kiedyś wśród przodków mogło mieć muzykę, ale muzyka potrzebuje tych chociaż 14 kHz żeby brzmieć, a telefon ma od 300 Hz do 3.4 kHz i po prostu strasznie tnie te dźwięki.
Tego się słuchać nie da.

I moja teoria jest taka, że to tam jest po to żebyśmy mieli dość i po prostu się rozłączali.
Porzucona rozmowa nie uderza w statystyki i nie trzeba nowych ludzi dodawać do puli.

Tak jak ktoś będzie czekał 20 minut, czy godzinę to tylko źle statystyki będą wyglądały, a jak porzuci to się go w statystykach nie uwzględni i będzie można w raportach się chwalić, że np. 90% klientów nie czeka dłużej niż X minut. Bez dodawania, że 400% liczby obsłużonych klientów porzuciło czekanie dzięki "muzyce" ;-)


Podobne postybeta
To PKO BP....
N niefartów ;-)
Drugi numer telefonu
Kryzysowy, pokręcony algorytm? ;-)
Jak utrudnić życie złodziejom kart ;-)