ś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 ;-)

Po co nowy telefon skoro trzeba się namęczyć z przenoszeniem aplikacji?

Jedna z rzeczy które mnie wkurzają w komórkach, poza daremnym interfejsem nastawionym tylko na konsumpcję treści (spróbuj zrobić coś twórczego...) i to takich niezbyt ambitnych, a do tego na małym ekranie, jest fakt że soft dla nich jest słaby.
Wymiana telefonu to jest mordęga.
Niektóre aplikacje są napisane fajnie i przenoszą swoje dane bez żadnego problemu dzięki trzymaniu ich w chmurze, ale inne ssą kompletnie.
Zadziwia mnie zawsze, że do wielu aplikacji muszę po zmianie komórki wprowadzać hasła i użytkownika, bo bez tego nie da rady.
Android od dawna wspiera tutaj mechanizmy do przechowywania danych logowania w chmurze, trzeba tego tylko użyć.
Gorzej jak autorzy apki wiedzą lepiej... Taka aplikacja PKO BP... Długo nie było wersji dla Androida 10... Ale nie w tym dziś problem....
Próbowałem aktywować i w trakcie aktywacji stwierdziła aplikacja, że sorry ale nie można aktywować bo już jest na tym urządzeniu aktywowana.... Nie jest, ale oni wiedzą lepiej.
Oczywiście ta nieudana aktywacja sprawiła, że apka na poprzednim urządzeniu też nie działa...
A Google Authenricqtor? Też zero synchronizacji....
Do tego na 100% nie wszystkie miejsca gdzie go używam obsługują tak skomplikowaną operację jak zmiana urządzenia do autoryzacji czy autentykacji....

Btw jetlag ssie, choć nie ma nic wspólnego z akurat tym o czym pisze ;-)

posted from Bloggeroid




Podobne postybeta
Pożytki z niedosypiania?
Koszmarna muzyka infolinii.. mam teorię
Mój pomysł na sprzedaż tabletów ;-)
Mini bug w Google Analytics?
Błee

niedziela, stycznia 19, 2020

Jednak lubię United ;-)

Zawsze jak ognia starałem się unikać latania United, zaczęło się moim lotem w USA z Los Angeles do Dallas, gdzie samolot sprawiał wrażenie starego autobusu PKS ;-)
Gdy mogłem wybierałem Lufthansę albo KLM.

Ale któryś raz zdarzyło mi się wracać United i jak na starym B747, który zresztą wtedy gdy leciał kończył loty i został powitany we Frankfurcie salutem z armatek wodnych, nie było to najmilsze przeżycie, to teraz wracałem B787 i było super.
Chodzi o to, że nawet z tego lotu B747 zapamiętałem załogę. Teraz w tym B787 załoga była super, żartowali z pasażerami (np. poprosiłem o swoje standardowe "Coke and Tea", na co pan akurat obsługiwant pyta "With suagar and lemon?" na co ja "Sugar pleasa" a on "Do you called me Sugar? How flattering" ;-), albo chwilę wcześniej komuś kto poprosił o kawę odpowiedział, że nie ma, ale dla tego kogoś specjalnie ze swojego zapasu da tą kawę).
Może to chodzi o kulturę, i amerykanie są bardziej tacy ekstrawertyczni?
W samolotach Lufthansy mam wrażenie, że załoga jest po prostu znudzona. Wczoraj np. pani pokazująca safety features była tak znudzona, że aż się na to patrzeć nie chciało (a ja po obejrzeniu jakiegoś video pilota, który podkreślał, że to jest ważne i zawsze dobrze posłuchać i upewnić się gdzie co jest, zawsze zdejmuję słuchawki i oglądam prezentację).

Stąd teraz chyba moje preferencje na trasach między Europą i USA będą (jak jeszcze będę latał):
United z B787
KLM z B787
Lufthansa z Airbusami innymi niż 380
Lufthansa z A380
United z B777 ;-) [fotele w B777 są straszne w economy...]

W USA bardzo fajnie latało się z Virgin America, ale ich już nie ma, więc Alaska Air bo kupili Virgin America i zachowali "styl" (czyli np. żartowanie w trakcie boradingu).

Zresztą zdziwieniem dla mnie było, że wolę B787 od A380. Chodzi pewnie o to, że jednak B787 są nowsze we flocie, ale też o to, że w B787 jest po prostu mniej ludzi.
W całym B787 United czy KLMa jest 252 (w United) i 294 (w KLM) pasażerów, w A380 od Lufthansy w samej Economy jest 371 pasażerów.... a łącznie jest ich 509....
Ścigaj się z 509 osobami do kontroli granicznej w USA ;-)


Podobne postybeta
Autobus ze skrzydłami...
Taki trochę niezwykły lot Queen of the Skies.
Co się dzieje gdy mój pierwszy samolot się spóźnia i mam mało czasu na przesiadkę?
No i teraz Dallas
Algorytmy Ubera są niezłe

piątek, stycznia 17, 2020

Google zachorowało na księgowych...

Kocham Google, jestem fanboyem Google.
Google I/O to była dla mnie przez wiele lat gwiazdka.

Ale...

Od jakiegoś czasu mam wrażenie, że Google zachorowało na księgowych.

Co było od początku wyróżnikiem Pixeli jako telefonów?
Że miały najszybciej updaty i nielimitowany storage zdjęć.
Ostatnio Samsung pobił Google w szybkości dostarczeniu updaty bezpieczeństwa, a z nielimitowanym storagem to najpierw okazało się, że jednak nielimitowany, ale kończy się po 3 latach od zakupu, a teraz okazuje się, że Pixel 4 i Pixel 4 XL nie mają nawet tego...

Google I/O z roku na rok staje się nudniejsze. Pokazują coś niby rewolucyjnego, np Duo po czym nie umieją tego wykorzystać... Jak jest najczęściej używana ta technologia? W paru miejscach na Ziemi możesz spuścić rozmowę na asystenta, ważne by była po angielsku.

Zabili Google+.

Próbowali współpracować z Chinami.

YouTube dla kasy pokaże wszystko.

Android Wear najwyraźniej umarło i jak ktoś chce mieć dobry smart zegarek to pozostaje mu lub jej tylko Apple Watch + iPhone.

Z chmurą się nie umieją przebić, YouTube Premium z Originals to kpina.

No co się dzieje?

posted from Bloggeroid




Podobne postybeta
Google Music zachorowało :-(
0:00 - godzina updatów ;-)
Czego nie lubię w Kalifornii?
Pixel 4 XL czy iPhone 11 Pro
Konferencje są przereklamowane

czwartek, stycznia 16, 2020

"Żarówki" Philips Hue są tańsze od klasycznych ;-)

Gdy człowiek pomyśli o zabawie ze smart żarówkami to zwykle ogląda Hue i mina mu lub jej rzednie gdy widzi cenę Hue.
Np. ~350 PLN za 3 "żarówki" 9W, które dają 806lm, i odpowiadają tak mniej więcej 3x 60W.
Cena 1 takiej żarówki to ~117 PLN.

Szczerze nie wiem ile kosztuje zwykła żarówka żarowa 60W, powiedzmy, że 0 PLN dla łatwego rachunku
.
W takim przypadku te początkowe 117 PLN kosztu Hue to 3545 godzin pracy zwykłej żarówki.
W tym czasie Hue spaliłaby dodatkowe 58 PLN...
Mamy więc takie równanie:

117 + x*9/1000*0.55 = x*60/1000*0.55
x*51/1000*0.55=117
x=117/(51/1000*0.55)
x=~4171 h

Mówiąc inaczej po 4172 godzinach użytkowania Hue staje się tańsze.

Czas pracy Hue jest wg producenta szacowany na 25 tysięcy godzin, czas pracy żarówki żarowej to około 15 tysięcy godzin.

W takim przypadku łączny koszt "życia" Hue to 240.75 PLN, co daje trochę mniej niż 1 grosz za godzinę świecenia.
Założyliśmy, że żarówka żarowa nic nie kosztuje, wtedy 15 tysięcy godzin pracy to 495 PLN, czyli 0.033 PLN za godzinę.
Żeby nie było gadania, koszt godziny świecenia przez żarówkę żarową w naszym modelu jest zawsze taki sam, niezależnie od tego czy świeci 15 tysięcy godzin, godzinę czy miliard godzin.

Jakby nie liczy Hue wychodzi ponad 3 razy taniej od zwykłej żarówki żarowej :-)


Podobne postybeta
Lampka ;-)
Nie wyłączysz światła jak padnie WiFi....
Żarówki kolekcjonerskie ;-)
A Pi ciągle działa....
Tydzień z Google Home

wtorek, stycznia 14, 2020

Programowanie z uśmiechem?

Będąc w piątek na występie Cirque du Soleil w San Francisco zauważyłem, że część występujących się uśmiecha gdy robią swoje sztuczki, a część nie.
Czasem nawet 2 osoby robiąc podobne rzeczy rośnie reagują.
I to mnie zawiodło do tego jak ja programuje.
Zwykle się nie uśmiecham gdy programuje, wydaje mi się że ogólnie ludzie w koło też się nie uśmiechają.
Częściej lecą wiązki przekleństw, a później radość pomieszana ze zdziwieniem, że coś działa.
I tak się zastanawiam, czy można by spróbować programować z uśmiechem na twarzy? ;-)

posted from Bloggeroid




Podobne postybeta
Quidam - Cirque du Soleil
Papierowy GMAIL i Internet z tualety ;-)
Moje "odkrycia" 2014 roku :-)
Był wrzesień, jest październik
Bad, bad server. No donut for you.

poniedziałek, stycznia 13, 2020

Utah Teapot

Byłem dziś w Computer History Museum (w końcu skoro jestem w Dolinie Krzemowej to chyba wypada ;-)) i zrobiłem zdjęcie Utah Tepot ;-)


Jest on o tyle ważny, że od 1975 roku jest używany jako jeden z podstawowych modeli dla grafiki 3D ;-)

Sam go używałem :-)

Ostatnio nawet wróciłem do niego i umiem go animować w JavaScript'cie ;-)


To jest zresztą przykład czegoś co przeszło ze mną chyba najdłuższą drogę w kodowaniu ;-) Najpierw napisałem to w C i assemblerze, później przeniosłem do Java'y, a w końcu do JavaScript'u ;-)


Podobne postybeta
Ulotny twór - software ;-)
Kto się zna na obróbce grafiki?
Chcę do Ameryki ;-)
Power banki są dziwne
Dinozaur na UJ ;-)

niedziela, stycznia 12, 2020

Oceny w Uberze

Właśnie jadę Uberem z Foster City do Mountain View.
Samochód jest taki sobie i zastanawiam się czy to jest powód by dać 4 gwiazdki zamiast zwyczajowych 5?
Cześć kierowców się bardzo stara, mają ładowarki dla klientów, do tego są w stanie nawet puścić Ci muzykę jakiej chcesz i w ogóle są mili. Do tego mają odpicowane auta, inni podchodzą do tego tak, że idą programem minimum.
I nie wiem czy jak ktoś się nie stara do wypada takiemu komuś dać 4 gwiazdki?
W końcu to jest człowiek i takie coś może wynikać nie z bycia gorszym człowiekiem, a po prostu z kłopotów w tym zakresie.
Czy danie komuś 4 gwiazdek za to, że go i jego samochodu po prostu nie lubię jest OK?
Ta cała gig economy jest trudna....

posted from Bloggeroid




Podobne postybeta
Brudny sekret ;-) czyli jak podnieść oceny aplikacji w Google Play ;-)
Gotówka jest już niepotrzebna (prawie)
Nie takie złe API ;-)
Czemu nie korzystam z hulajnog elektrycznych?
Hodowla Piratów,

niedziela, stycznia 05, 2020

Java Profiler jak to działa?

W życiu każdego człowieka który programuje (zwiemy ich programistami i programistkami) nadchodzi taki dzień, że trzeba coś przyspieszyć, bo coś wolno działa i nie do końca wiadomo dlaczego.
Wtedy wzrok takiego kogoś pada na profiler.
Który to profiler obiecuje, że wskaże nam miejsca gdzie nasz kod spędza najwięcej czasu.

Oczywiście zwykle wyniki z profilera nie są tym czego byśmy oczekiwali ;-) bo my byśmy chcieli jasnej informacji, że problem jest w danej linii, a zamiast tego dostajemy informację, że 90% czasu spędzono w metodzie doSth() ;-)

Ale nie o tym tutaj, a o czymś innym.
Zastanawialiście się kiedyś jak działa profiler? :-)

Ja zawsze myślałem, że używa jakichś sprytnych mechanizmów JVM, które mówią ile czasu trwało wykonanie danej metody i że tak naprawdę profiler robi tylko za interfejs do JVM.
Albo, że profiler modyfikuje kod i dodaje swój bytecode do mierzenia czasu...

W tym drugim miałem nawet trochę racji ;-)

A jak jest naprawdę? ;-)

Okazuje się, że profiler zwykle wcale nie wie ile czasu spędzono w metodzie czy metodach, ale używa sprytnej sztuczki by ten czas estymować.

Wiemy, że w Java'ie mamy wątki zwane też Thread'ami.
Mamy też Stack Trace, w którym każda ramka opisuje "linię" kodu w której jest JVM w danej metodzie. Ze Stack Trace'a możemy dowiedzieć się która metoda woła którą.
Zwykle Stack Trace'a widzimy w momencie gdy leci jakiś wyjątek i Stack Trace pozwala nam wyśledzić to miejsce.

Mamy też coś takiego jak Thread Dump, czyli zrzut stanu w postaci StackTrace + stan aktywności dla każdego z wątków.

I właśnie Thread Dump jest kluczowym elementem działania Profilerów ;-)

Profiler "po prostu" prosi z zadanym interwałem JVM o Thread Dump'y i zapisuje je sobie.
Dzięki temu dostaje "historię" tego gdzie dany wątek był w zadanym czasie.

Profiler używając Thread Dump'a próbkuje stan JVM i dzięki tym próbką może pokazać nam gorące fragmenty kodu, w których spędzamy najwięcej czasu*.

Ponieważ Thread Dump jest dość ciężką operacją to w trakcie profilowania prędkość całej aplikacji nam maleje, ale oznacza to też, że istnieje pewna "graniczna" częstotliwość próbkowania, a więc i to, że dokładność/rozdzielczość profilera jest ograniczona.
Stąd profiler może gubić pewne bardzo krótkie metody, albo mocno niedoszacowywać ilość ich wywołań. Co zwykle nie powinno być problemem, bo jeśli robimy 100 zrzutów na sekundę, a metodę wołamy milion razy i ani razu z wciągu tych 100 zrzutów nie byliśmy w tej metodzie to raczej nie ona stanowi nasz problem (ten fragment jest bardziej pisany w oparciu o intuicję niż fakty).

Tu istnieje teoretyczna metoda na poprawienie rozdzielczości, choć szczerze nie wiem czy jest stosowana (tzn. wiem, że jest stosowana np. w AppDynamics, więc pewnie DynaTrace i podobne narzędzia do monitorowania aplikacji też to mogą zrobić, ale w AppDynamics to jest robione "ręcznie" i raczej jest pomyślane jako mechanizm do zbierania metryk biznesowych czy technicznych z aplikacji, a nie metoda na profilowanie per se).
Otóż JVM pozwala na dodanie agenta, który w trakcie ładowania klas może dodać do tych klas swój kod. Jednym ze sposobów jest dodanie kodu na początku i na końcu metody. Ten kod może np. zapisywać informacje o czasie wykonania metody, albo o ilości wykonań metody.
Oczywiście technika ta ma też swoje wady. Bo trudno powiedzieć wtedy jaki procent czasu wykonania danej metody to wykonanie samej metody, a jaki to czas wykonania kodu mierzącego czas i zbierającego statystyki ;-)

Przyznam, że gdy w końcu dowiedziałem się jak działają profilery to trochę spadła mi wiara w ich skuteczność ;-) Nadal są świetnymi narzędziami, ale jednak nie magicznymi.
Wydaje mi się jednak, że teraz jakoś lepiej umiem korzystać z ich wyników.

A i jak potrzebujecie w normalnym życiu programisty czy programistki zajrzeć aplikacji w bebechy to fajnie jest użyć Java Mission Control. Fakt, sam używałem w celach "profilowych" Java Mission Control tylko w Java 8 i nie wiem do końca jak jest z licencją na JCM i jej dostępnością w Java 11...
Ale dzielę się tutaj przydatnymi opcjami do uruchamiania Java'y które w razie obecności JCM zapiszą nam śliczne pliki, które możemy obejrzeć w JCM**.

Poniższy zestaw opcji dla Java'y zapisuje FlightRecord do pliku rec.jfr
-XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:FlightRecorderOptions=dumponexit=true,dumponexitpath=rec.jfr -XX:StartFlightRecording=defaultrecording=true


(to wyżej to kopia z moich notatek z Notion (wcześniej z Evernote))

* - OK, tak naprawdę może pokazać nam też punkty, które nie są gorące, ale np. wątek tam na coś czeka, np. na sieć.
** - uwaga, Oracle coś spaprało i na Java 8 UI do JCM nie działa na macOS, stąd dobrze mieć jest do oglądania zapisów z JCM gdzieś 1.8.0_96 czy podobną.


Podobne postybeta
Sztuczki tropiciela błędów, part 2 ;-)
Zinwigiluj się sam ;-)
wait() i notify()/notifyAll() - najbardziej nierozumiane metody klasy Object ;-)
Raport z emigracji ;-)
Inercja i koło wielokrotnego wynajdywania, czyli radosne macki piekieł w kodzie [alem pojechał w tytule ;-)]