sobota, grudnia 31, 2016

Co na moim telefonie...

Mój telefon to Nexus 6.
Jego ekran wygląda tak:



System to Android 7.0 (będzie 7.1) z amerykańskim angielskim bo dzięki temu więcej rzeczy od Google działa.

Jako launchera używam Google Now Launcher'a.
Jest w miarę prosty i szybki, a to rzeczy które cenię :-)
Klawiaturą której używam jest Gboard od Google.

Od góry mamy widget pogodowy z Beautiful Widgets Pro, pod nim od lewej widget ze stanem baterii, jest to Battery Widget Reborn.
Dalej mamy sekcję read me, która służy do czytania ;-), są tam wszelkie "czytalne" rzeczy jakie mam na telefonie, są tu:

  • Pocket - z którym mam związek love/hate ;-) ubóstwiam drania, ale głównie dodaję doń artykułu...,
  • Quora - uwielbiam odpowiedzi na dziwne pytania,
  • Flipboard - jest ładne, ale prawie nie używam, jak odpalę raz na 2-3 miesiące to jest dobrze,
  • Feedly - używam dość często wersji webowej, ta na Adroidzie prawie nie jest używana,
  • Amazon Kindle - do czytania książek, chociaż głównie na tablecie używam, albo czytam na samym Kindle,
  • Hacker News - jeden z wielu klientów dla najlepszeg źródła informacji "kompoterowo-kodersko-hackerskich" czyli Hacker News ;-),
  • Play Books - jest głównie by być, prawie nie używam,
  • Play Newsstand - jest tylko przez to, że przychodzi z Androidem,
  • News & Weather - nie używam, ogólnie aplikacja siedząca w Androidzie, która pokazuje pogodę i newsy...,
  • Newsweek wPunkt - raczej nieużywam,
  • Newsweek - zainstalowałem po kupnie prenumeraty, acz przyznam, że nie korzystam zbyt namiętnie,
  • Gazeta Wyborcza - codziennie przeglądam w tramwaju, do niedawna przeglądałem tylko wersję webową, ale jak jest aplikacja to wolę aplikację.
Sekcja "Utwórz", to ogólnie miejsce gdzie są aplikacje które pozwalają mi coś tworzyć/pisać:
  • Docs - Google Docs, szczerze prawie nie używam na komórce, głównie na PC, a wtedy dostęp do plików mam przez Google Drive,
  • Narrate - próbowałem w tym dziennik tworzyć... ostatni wpis z lutego ;-),
  • Sheets - Arkusze od Google, też prawie nie używam na komórce, za mały telewiozr ma, używam namiętnie na PC,
  • Slides - Prezentacje od Google, to samo co z Docs i Sheets ;-),
  • Diary - napisałem sobie aplikację do prowadzenia dziennika, to ona ;-), acz ostatni wpis jest z listopada ;-),
  • SimpleMind - program do rysowania mind-map, mind-mapy są dla mnie wspaniałym narzędziem decyzyjnym, o wiele łatwiej mi podjąć decyzję, albo dostrzec źródło jakiegoś problemu gdy sobie zrobię mind-mapę i poprzesuwam węzły tak by "podobne" były blisko siebie, tak np. kiedyś doszedłem do tego jak kupić mieszkanie ;-),
  • iA Writter - wstyd przyznać, jedynym powodem dla którego mam tę aplikację jest to, że podobno jest dobra i wygodna... ale nie mam powodów do używania ;-),
  • CamScanner - odkrycie 2016 roku, "skaner" w komórce,
  • Bloggeroid - moja własna prywatna aplikacja do blogowania na Blogger'ze ;-)
Sekcja "Czas", wszystko co ma cokolwiek wspólnego z czasem:
  • Clock - zwykły Androidowy zegar z alarmami,
  • SleepAdvisor - moja aplikacyjka, która patrzy na ustawione alarmy i mówi mi kiedy iść spać by spać "okrągłą" liczbę cykli REM, pozwala też stworzyć alarm za "okrągłą" liczbę cykli REM od teraz, 
  • Calendar - Google Calendar ;-) w którym najbardziej używam funkcji "Celów"
Sekcja "Moje", ogólnie moje aplikacje i skróty:
  • HeartBeatMonitor - moja aplikacja, która zapisuje mój puls co miutę, do tego w razie gdy 2 razy pod rząd odchylenie standardowe przekroczy 3.0 to pyta czy jestem zdenerwowany,
  • Dice - kostka ;-), prosta "aplikacja" w HTML/JavaScript, która pozwala mi rzucić kostką,
  • Agile poker - webowa "aplikacja", która pozwala brać udział w estymacjach z użyciem Agile pokera... od dawna nie używałem,
  • Timer - "aplikacja" która miała mi pomóc rejestrować różne rzczy w ciągu dnia, ale mi się znudziła ;-) [to był MVP i jakoś mnie nie przekonał],
  • Save geopoints - gdy przygotowywałem prezentację o Polymerze to stworzyłem sobie aplikację do testowania tego czego się dowiedziałem, pozwala na zapisywanie geopointów w których jesteśmy...,
  • Bayes inference - pomocnik do wnioskowania bayesowskiego, używam bardzi rzadko, ale się zdarza,
  • Calendar based ToDo - kolejne "MVP" ;-) sprawdzające czy uda mi się przerobić eventy z ToDo w eventy w kalendarzu, da się, ale trzeba trochę nad tym spędzić czasu,
  • Random Entry - losowy rzeczownik ;-), jak się ma jakiś "zastój" twórczy, albo problem co do którego nie wiadomo jak go rozwiązać to 2-3 takie rzeczowniki i próba stworzenia zdania czy historyjki z nich może (ale nie musi) odblokować, taki czasem pomocny "odtykacz",
  • Sun set/rise - "aplikacja" webowa, która na podstawie aktualnej lokalizacji mówi kiedy był/będzie wschód i zachód słońca, podaje też te godziny dla następnego dnia
Sekcja "Auth", wszystko co "bezpieczne" musi być:
  • Google Authenticator - narzędzie do 2 stopniowej autentykacji od Google, 
  • mBank - mam kredyt w mBanku, mam więc konto w mBanku ;-),
  • iPKO - mam też konto w PKO BP, przez to potrzebuję tokena,
  • IKO - IKO czyli Blik od PKO BP.
Widget "przypomnienia" z Inboxa, tworzy Remindery.

Sekcja "Google", a w niej aplikacje od Google które może nie zawsze pasują gdzie indziej:
  • Google Now - Google Now, czyli hmm... niezbyt już kochany przez Google pomysł na to jak można pokazyać informacje i pomagać userowi bez jego akcji,
  • Fit - Google Fit, czyli aplikacja, która rejestruje jak wiele chodzimy, ćwiczymy, etc,
  • Photos - Google Photos,
  • News & Weather - jak pisałem wyżej, nie używam ;-),
  • YouTube - klient YouTube'a ;-),
  • Drive -  klient Google Drive, moje główne narzędzie kontaktowania się z chmurą Google,
  • Calendar - Google Calendar,
Sekcja "Music", czyli wszystko co związane jest ze "słuchaniem":
  • Spotify - muzyka ;-),
  • Google Play Music - muzyka od Google, zacząłem bardziej używać od momentu zakupu Google Home bo jakoś teraz bardziej podchodzi mi słuchanie synthwave niż "zwykłej" muzyki,
  • Pocket Casts - chyba najlepsza aplikacja do podcastów jaką znam, ma też wersję webową :-)
Sekcja "Notatki", czyli miejsce do tworzenia notatek:
  • Google Keep - moje listy Todo, pomysły, zakupy,
  • Evernote - głównie miejsce do trzymania #cookbooka'a czyli spisu różnych dziwnych, a ciekawych rzeczy, które znalazłem w Internecie, albo sam odkryłem i wiem, że raczej do nich jeszcze będę wracał, mogą się tam też kiedyś znaleźć rzeczywiste przepisy kucharskie, jak mnie to zacznie interesować ;-)
Sekcja "Weather", ogólnie pogoda i to co się dzieje na zewnątrz:
  • Jakość powietrza w Polsce - aplikacja Inspekcji Ochrony Środowiska, która pokazuje wyniki odczytów jakości powietrza z najbliższej stacji,
  • Meteo ICM - wykresy pogodowe od ICMu,
  • SmokSmog - jeszcze inna aplikacja do podawania informacji o jakości powietrza, przez to, że przez pewien czas miała problemy z GPSem to nie używam jej zbyt często,
  • Weather - pogoda od Google :-)
Google+... ja lubię Google+ :-)

Inbox - chyba najbardziej "minimalistyczny" klient dla GMAILa.

Sekcja "TV", a w niej wszystko co jakoś wiąże się z telewizorem:
  • Google Play Movies - filmy od Google, jeśli używam na telefonie to głównie do tego by sterować Chromecastem,
  • YouTube - filmy, ale darmowe ;-) od Google, jeśli używam na telefonie to głównie do sterowania Chromecastem,
  • HBO GO - HBO GO, głównie do Chromecasta, ale i tak wolę używać wbudowanego w TV klienta, albo klienta z dekodera... choć wszystkie są daremne,
  • Netflix - prawie nie używam na komórce, czasem żeby coś póścić przez Chromecasta, preferuję o wiele wygodniejszego klienta na TV,
  • Spotify - czasem zdarza mi się castować muzykę ze Spotify na TV, albo Chromecasta Audio, albo Google Home,
  • Play Music - to samo co ze Spotify ;-)
  • Horizon Go - rzadko używana aplikacja, która pozwala mi sterować dekoderem, podobno da się z tego też oglądać TV, ale nie próbowałem ;-),
  • Home - aplikacja do zarządzania i sterowania Google Home i Chromecastami
Sekcja "Photo", czyli zdjęcia, wszystkie apki są od Google:
  • Camera - standardowa aplikacja aparatu z Androida,
  • PhotoScan - genialna aplikacja od Google, która pozwala "skanować" papierowe zdjęcia,
  • Cardboard Camera - aplikacja która pozwala na robienie "panoram" do Google Cardboard,
  • Photos - interfejs do Google Photos :-)
Play Store, Dialer.
Sekcja "Przydatne aplikacje":
  • RealCalc - całkiem fajny kalkulator naukowy dla Androida,
  • Shazam - rozpoznawnie muzyki przez "słuchanie",
  • Calendar - Google Calendar,
  • Keep - Google Keep,
  • Hangouts - Hangoutsy od Google, jedna z naprawdę wielu aplikacji do komunikacji od Google,
  • Drive - Google Drive,
  • Gmail - GMAIL :-), acz tej aplikacji prawie nigdy nie używam,
  • Barcode Scanner - aplikacja do skanowania kodów paskowych,
  • Messenger - kolejna aplikacja do kounikacjo od Google, tym razem klient SMSów,
  • Inbox - znów INBOX dla GMAILa,
  • Meditation Helper - programik, który odlicza czas medytacji, przydatny głównie przez to, że używa "spokojnego" dźwięku gongu, a nie piskania jak robią to zwykłe alarmy,
  • Duo - genialna, ale i kolejna plikacja od Google do komunikacji, rozmowy video nigdy nie były tak proste i fajne, ma funkcję "puk,puk", która sprawia, że nasz rozmówca widzi nas przed odebraniem połączenia,
  • Allo - jeszcze jedna aplikacja od Google do komunikacji ;-), ma wbudowanego Google Assistanta i to jest chyba jej główna zaleta...,
  • Hangouts Dialer - dialer, który pozwala z Hangouts dzwonić na telefony, przydatny w momencie wyjazdu za granicę gdy chcemy zadzwonić na jakiś telefon w Polsce
Chrome jako przeglądarka :-)

Sekcja "Podróże":
  • Jakdojade - najlpesze narzędzie do ustalenia kiedy i skąd pojedzie tramwaj do miejsca do którego chcę jechać ;-),
  • Google Maps - mapy od Google,
  • Wikimapia - mobilna wersja Wikimapii, czyli mapy z zaznaczonymi różnymi obiektami,
  • Fit - Google Fit, który mierzy ile się przeszło,
  • Mobilet - umożliwia zakup biletu na tramwaj, ja używam jak mi się zdarzy w Częstochowie,
  • IC Mobile Navigator - pozwala sprawdzić ile spóźniony jest Twój pociąg

I to byłby ekran pierwszy ;-)

Honorable Mentions z reszty to:
OpenVPN - klient VPNa, służy mi do podpinania się do mojego własnego, prywatnego VPNa,
Fing - program, który skanuje sieć lokalną i pokazuje nam informację o znalezionych urządzeniach... tak można namierzyć np. "zagubione Raspberry Pi", pisałem o nim we wrześniu,
Speedtest - narzędzie do mierzenia prędkości sieci,
SmartTools - zestaw różnych dziwnych narzędzi, a to kompas, a to narzędzie do pomiaru odległości przy użyciu kamery, a to w końcu "włącznik" latarki czy poziomica ;-)




Podobne postybeta
Po paru dniach z iPad’em Pro - mój Dock ;-)
Spokój=Nuda
Ice Cream Sandwich na Naxus S :-) ciąg dalszy ;-)
Najkrótsza droga do przyszłości - Polymer ;-)
Daj się zastąpić automatom... przynajmniej tam gdzie się to opłaci ;-)

czwartek, grudnia 29, 2016

assertEquals > assertThat ;-)

Przyznam, że zawsze wolałem używać w testach assertEquals, assertTrue, assertFalse i podobnych, niż assertThat().isEqualTo(), assertThat().isTrue() i tak dalej.

Zawsze mi się wydawało assertThat().isEqualTo() mniej czytelne, bo jednak więcej ma literek i trzeba skoczyć do końca linii by zobaczyć co my w ogóle sprawdzamy.

Dziś "odkryłem" poważniejszy problem ;-)

assertThat(actual).isEqualTo(expected) można w trakcie pisania łatwo pomylić z assertThat(actual).equals(expected)...

A to znaczy, że test nam przejdzie nawet gdy actual i expected będą różne ;-)
W końcu czemu test ma się jakoś szczególnie przejąć tym, że wykonaliśmy equals i olaliśmy jego wynik?

Dlatego jednak wolę assertEquals() ;-) Nadal można pomylić kolejność, ale chociaż test nam nie będzie przechodził przez to, że czegoś nie testujemy ;-)


Podobne postybeta
Lepszy test mniejszy i dokładniejszy, niż większy i ogólniejszy ;-)
TDD [Test Driven Development] - genialne, ale trudne :-)
Środek tygodnia
Nie jestem pewien czy zadania koderskie/algorytmiczne są dobrym elementem rekrutacji
Android + Google Docs OCR = zestaw dla szpiega? ;-)

wtorek, grudnia 27, 2016

Code review - najfajniejszy kawałek procesu ;-)

Lubię code review.
Jako reviewer i jako autor. Choć to drugie mniej ;-)

Czemu lubię?

Największa zaletą code review jest to, że mamy kogoś kto patrzy na kod z boku, bez skazy wynikłej z godzin spędzonych nad zrozumieniem jak to wszystko działa.
Widzi wydestylowaną zmianę, bez wcześniejszych nieudanych prób.
To świeże* spojrzenie pozwala dostrzec miejsca gdzie coś jest niejasne, albo te miejsca gdzie coś można poprawić.

Bo gdy coś jest niejasne "to wiedz, że coś się dzieje...."

Czemu coś jest protected? Albo czemu coś zmieniło się na public?
A czy to dziedziczenie jest potrzebne?
O! A tutaj można by było użyć buildera, albo strategii i byłoby jaśniej.

Autor po godzinach dotykania się z danym kawałkiem kodu ma jakiś mentalny model zmiany, ale przez to może nie dostrzegać w nim dziur, albo miejsc gdzie można by go było uprościć.

Dodatkowy bonus to to, że code review pozwala się uczyć.
O tym jak wygląda kod, ale poznawać różne sztuczki** z przybornika innych developerów.

Jest jeszcze ta rzecz, że podchodząc do kodu trzeba chcieć go pokonać, nie tą osobę która kod napisała, ale sam kod, trzeba próbować na nim "ataków" przez przekazywanie null'a, pustych list, wartości spoza zakresu, albo wołania w kilku wątkach.
Gdy robi się review testów dobrze najpierw spojrzeć czy dany test w ogóle coś testuje.
Tutaj przydaje się IDE i zmienienie czegoś w kodzie tak by sprawdzić czy jakiś test na tym wyleci...

Jak coś znajdziemy autor może nas przez jakiś czas nienawidzić ;-) ale jeśli dzięki temu kod będzie mniej zaskakujący tym lepiej...

Na co uważać?
Na code smellsy, na nadmierne używanie abstrakcji, na zbyt luźne poczynanie sobie z dostępem do danych i metod, na premature optimatization i na to czy kod robi daną rzecz najprościej jak się da (z zastrzeżeniem, że nie jest to kawałek, który specjalnie był pisany by być szybkim i wiemy, że musi taki być (bo np. prosty algorytm to O(N2), a bardziej skomplikowany to O(log N))).
Nazwy zmiennych i metod też są ważne, ale mniej, ważne by nie myliły, nie muszą wcale być zbyt opisowe, część ludzi gubi się przy nazwach składających się z kilku słów, szczególnie gdy wiele z nich jest podobnych.


* - dlatego wg mnie zawsze powinno być kilkoro reviewerów i nie powinno być tak, że znaczące jest tylko słowo kogoś kto zna dany fragment kodu.
** - jak brudne to jeszcze lepiej ;-)


Podobne postybeta
SCRUM i ogólnie Agile to często taka zakamuflowana forma premature optimization
Może mi ktoś wytłumaczyć po co istnieją GWT i GWTP?
Promptem w ToDo ;-)
Statyczna analiza kodu, czy to ma sens?
4 dniowy tydzień pracy - idea piękna... ale obawiam się, że tylko zwiększy rozwarstwienie

poniedziałek, grudnia 26, 2016

Zagadka oświatowo-wychowawcza

Jak to jest jak problemem była duperela, czyli posyłanie do szkół 6 latków to udało się parze napaleńców zbudować ruch oporu przeciwko tej niezbyt znaczącej zmianie?

Z drugiej strony gdy teraz mamy plan totalnego rozwalenia szkolnictwa to jakoś nie widać reakcji?
A przecież dotknie ona zdecydowanie większej liczby dzieci, bo wszystkich "zagrożonych" pójściem do szkoły w wieku 6 lat, ale też tych, które już chodzą do szkoły.

Chociaż może do ludzi jeszcze nie dociera info o tym co znaczą zmiany w szkole?


Podobne postybeta
Gdyby przez kolejne 5 lat wszystko mi się udawało to za 5 lat.....
Java 8 + lambdy = wolno ;-)
Początki życia wg. Shapiro ;-)
Mój Robot - podejście pierwsze ;-)
Religia w szkole

niedziela, grudnia 25, 2016

Wojna ze świętam, czyli o wyższości Świąt Bożegonarodzenia nad Wielkanocą ;-)

Podobno złe antychrześcijańskie siły walczą z Bożym Narodzeniem.
Bo np. w USA wg wielu istnieje "terror" nakazywania zmiany nazwy świąt z Christmas na Holliday.
Ale jakby narysować sobie na wykresie, w który jedną osią jest znaczenie religijne święta (religijność), a na drugiej będzie jego komercyjne znaczenie, to będzie wyglądać mniej więcej tak:


Skoro "wrogowie" bożegonarodzenia (Christmas) atakują je tak mocno, a zostawiają spokojnie Wielkanoc (Happy Easters jest nadal dozwolone ;-)), to może hmm.... walczą bardziej z komercyjnością świąt, a nie ich religijnością? ;-)
Bo przecież Wielkanoc jest najważniejszym świętem religijnym dla chrześcijan, Boże Narodzenie to coś co chrześcijaństwo przejęło dużo póżniej....


Podobne postybeta
Kto ustala datę świąt wielkanocnych?
Krzyżowcy
Windows....
Zostawmy 12 listopada jako dzień wolny na zawsze, jako święto ku czci "jakoś to będzie" ;-)
Noblowisko

piątek, grudnia 23, 2016

Granica

Gdzie jest granica po przekroczeniu której powiemy PiSowi "nie"?
A może nie ma takiej?
Może metodą małych kroczków PiS rozmontuje cały liberalno-demokratyczny porządek?
Chodzę na demonstracje, ale to PiSu nie boli.
Mam jednak skończoną wytrzymałość i w pewnym momencie mogę powiedzieć "a w nosie to wszystko mam" i wyjechać.
Strata będzie wymierna, dokładnie tyle ile płacą podatków... Roczne 500+ dla kilku rodzin to jest.
Nie będzie też mojej składki na NFZ czy ZUS.
A jeżeli ja tak zrobię, zrobi to też wielu innych mi podobnych.
Nasze podatki będziemy płacili gdzie indziej.
W PRL zabezpieczono się przed tym w taki sposób, że wyjazd z kraju był skomplikowany...
Teraz nie jest.
Ktoś może powiedzieć "nie masz dzieci, to Ci łatwiej". Niby tak, z drugiej jednak strony gdybym miał takie w wieku szkolnym to jeszcze bardziej myślałbym o wyjeździe.
Po szkole pani Zalewskiej zmywak nie będzie krokiem w karierze zawodowej, a co najwyżej celem...
Ja jeszcze nie mam ustalonej granicy. Ale mam liczbę określającą prawdopodobieństwo (wg mojego chciejstwa) tego, że wyjadę na stałe...
Na Węgrzech po 4-5 latach od zwycięstwa Fideszu wzrosła gwałtownie liczba osób z wyższym wykształceniem, które postanowiły wyemigrować na stałe.

posted from Bloggeroid




Podobne postybeta
Chmurka prawdopodobieństwa
O wojsku
Wymarzone miejsce do życia i pracy ;-)
Dziwne prawo ;-)
Disconnect, Facebook, PayPal i wykop, czyli 1 plus i 3 minusy ;-)

środa, grudnia 21, 2016

Moc wykresu.... Czyli jak wieść szczęśliwsze życie ;-)

Różne rzeczy nas wkurzają, nie każdą jednak należy się przejmować, a przy niektórych czasem trzeba dać za wygraną i poszukać innego wyjścia.

Żeby się głupio nie rzucać dobrze sobie takie wkurzające rzeczy rozrysować na wykresie XY, gdzie np. X będzie jak coś nas boli, a na Y jaki mamy to wpływ.

Taka np. głupia muzyka w radiu może nas średnio boleć, ale mamy dość duży wpływ na to, bo choć stacji repertuaru nie zmienimy to możemy zmienić stację.



Wszystko co nas trochę boli, ale nie mamy zbyt dużego wpływu na to trzeba wrzucić do przegródki "pogódź się z tym". W tej przegródce są np. podatki, wizyty u dentysty czy fryzjera i im podobne.

Wszystko co nas boli, ale mamy na to wpływ to rzeczy na które warto tracić czas i energię. To te u góry. Im są bardziej bolesne tym bardziej warto się nimi zajmować.
Trafiają tam irytujący telemarketerzy (dość mocno boli, ale wystarczy zainstalować odpowiednią aplikację, dodawać ich do kontaktu, który jest spuszczany na pocztę głosową, albo w końcu zmienić numer), wspomniana już muzyka w radiu, wyskakujące powiadomienia w aplikacjach i takie tam.
Tu mamy kontrolę i warto z niej korzystać tak by wyrzucać rzeczy z tej kategorii.

Gorzej jest z kategorią w której są rzeczy, które już nas dość mocno bolą, ale mamy małą kontrolę nad tymi rzeczami.
Jedyną radą jest tutaj próba przesunięcia tych rzeczy w górę lub w lewo.
W górę przez zwiększenie naszego wpływu, albo w lewo przez zmniejszenie bólu. Najlepiej obie te rzeczy naraz ;-) , np. gdy nie rozumiemy tekstów w filmie oglądanym po angielsku, to douczając się sprawiamy, że nasz wpływ na sprawę rośnie, a jednocześnie maleje ból.

Ostatni kawałek to ten gdzie są rzeczy, które nas bardzo bolą, ale nie mamy na nie wpływu.
Tutaj jedyną radą jest wyjście z pudełka i podjęcie radykalnych kroków. Celem jest to by problem przestał być Twoim problemem.
Miałem w pracy on-call'a, od razu mi się nie spodobał. Próbowałem z nim przez chwilę walczyć, nie miałem na to jednak żadnego wpływu - zmieniłem pracę ;-)
W przypadku rozwalania kraju przez PiS na razie próbuję protestować, jak to nic nie da to trudno, chyba będę musiał zmienić kraj.


Podobne postybeta
HashMap - Z klawiaturą wśród struktur danych
Statyczna analiza kodu, czy to ma sens?
Google Maps 5.0 na Androidzie 1.6 wcale nie używa wektorowych map :-(
W normalnym kraju....
Universal Studios i Hollywood ;-)

wtorek, grudnia 20, 2016

Code smellsy ;-) protected i abstract

Im dłużej piszę w Java'ie i okolicach tym bardziej przekonuję się, że abstract i protected to code smellsy ;-)

Gdy widzę protected to macha ono do mnie wielką czerwoną flagą.
Głębsze spojrzenie często wskazuje, że dev potrzebował dostępu do czegoś prywatnego.
Jeśli protected oznaczone jest pole w klasie to prawie zawsze mamy ten przypadek.

Prawie zawsze przy chwili spojrzenia na klasę okazuje się, że to protected nie jest potrzebne, że jest sposobem na przykrycie jakiejś większej wtopy w projekcie API.

Podobnie jest z abstract.
Jak widzę to często jest użyte "żeby nie pisać 2 razy tego samego kodu"...
Dziedziczenie jednak nie jest po to by nie duplikować kodu.
Tak unikanie duplikacji kodu jest jednym z zysków dziedziczenia, ale nie jest celem dziedziczenia.

Jak się żenimy to dostajemy teściową, raczej nie żenimy się po to by zyskać teściową.

Zwykle okazuje się w końcu, że można by uniknąć w ogóle dziedziczenia i użyć kompozycji.

Drugim częstym przypadkiem z abstract jest zwykłe przekombinowanie i pisanie na przyszłość.
Autor uznał, że za jakiś czas przyda się możliwość stworzenia jeszcze jednego potomka i od razu zrobił klasę abstrakcyjną.
I znów to nie tak, najpierw kod powinien być w 1 klasie, dopiero gdy pojawia się potrzeba stworzenia nowej "obok" to ma sens rozważenie hierarchii.


Podobne postybeta
Patrzajcie w kod a znajdziecie ;)
Code review - najfajniejszy kawałek procesu ;-)
protected - powinni tego zakazać...
Paradoks Java'y - domyślny poziom widoczności jest stosowany najrzadziej ;-)
Branche i Scrum to taki security blanket dla programistów

niedziela, grudnia 18, 2016

Selfhacking ;-)

Mam chyba naturę hackera.
Lubię wszystko automatyzować i "poprawiać"*.

Chciałbym też móc hackować siebie ;-)

Np. zakładające, że prawdą jest iż gdy jesteśmy zdenerwowani/przestraszeni to akcja serca nam wariuje, a to powoduje, że mózg "odcina" płat czołowy przez co zachowujemy się głupiej i znów zakładając, że można tą akcję serca uspokoić miarowym oddechem.

To chciałbym by możliwe było "zhackowanie" człowieka** tak by jakieś urządzenie monitorowało akcję serca, gdy serce zaczyna "wariować" to by w jakiś sposób urządzenie informowało o tym człowieka, a ten dzięki treningowi zaczynałby stosowanie równego oddechu jako techniki relaksacyjnej....

Podobno można do tego dojść po latach medytacji, ale może da się to zrobić prościej? ;-)

Idea może być oparta na całkowicie nienaukowych podstawach. Nie posiadam wiedzy, która pozwoliłaby mi to zweryfikować.
Mechanizm wydaje mi się prawdopodobny, ale to tylko moja ocena.

Do tego nie wiem czy można nauczyć się tego by po jakimś sygnale oddychać równo i miarowo i czy można to uczynić odruchem.

Dlatego przeprowadzam eksperyment ;-)

Moje apki (na zegarku, komórce i RPi) od dawna rejestrują moje tętno.
Od dziś dodatkowo gdy wykryją, że odchylenie standardowe z 20 pomiarów (co sekundę) będzie wyższe niż 4.0 to będą wyświetlać mi na telefonie/zegarku notyfikację z informacją o tym.

Cel jest taki by "na czuja" sprawdzić:

  • czy odchylenie standardowe pomiarów rośnie gdy jestem zdenerwowany/przestraszony,
  • jak często jest false positive,
  • czy wartość odchylenia standardowego 4.0 jest odpowiednio wysoka/niska,
  • czy umiem równo i miarowo oddychać "na zamówienie",
  • czy to pomaga.
Zobaczymy czy coś z tego wyjdzie ;-)
Jak na razie mam uczucie, że mam ciągły mikrozawał, ale tak zawsze reaguję na to jak za często zwracam uwagę na pracę swojego serca*** ;-)


* - nie twierdzę, że skutecznie ;-)
** - mnie ;-)
*** - to się chyba hipochondria nazywa ;-)



Podobne postybeta
Post drugie - bądź na tak ;-)
Walka z null'em - pozwólmy działać IntelliJ'owi ;-)
Pandemia snowi nie służy ;-)
Do chudości przez szantaż
Reality Check

Wybory w USA a fake news - IMHO nie ma związku

Często teraz słychać, że Donald Trump wygrał wybory w 2016 roku dzięki fake news....
Też mi się tak wydawało, ale jak popatrzy się na dane pokazujące wyniki wyborów to już nie jest takie oczywiste...

Narracja przebiega zwykle tak:
Ktoś wpuszcza fake news, ten trafia do przekonań pewnej grupy, która go promuje i przez to algorytmy FB czy Google uznają daną rzecz za godną polecenia, polecają fake news kolejnym ludziom, a oni nakręcają spiralę, w końcu ludzie kończą z przekonaniami wynikłymi z fake newsa i przez to Trump dostał dużo więcej głosów niż Clinton.

I wszystko do momentu "i przez to Trump dostał dużo więcej głosów niż Clinton" jest w mojej ocenie prawdziwe, ale ostatni kawałek nie jest.

Trump nie dostał dużo więcej głosów niż Clinton.

Clinton dostała blisko 3 mln głosów więcej w głosowaniu bezpośrednim.

Blisko 3 mln amerykanów więcej chciało Hillary Clinton jako Prezydenta.

Czemu wygrał Trump?

Bo w kluczowych* stanach, które zapewniły mu wygraną zdobył łącznie jakieś 108 tysięcy głosów więcej niż Clinton.

Gdyby w Pensylwanii, Wisconsin i Michigan 108 tysięcy osób zagłosowało inaczej, a te 108 tysięcy osób stanowi poniżej 1% osób, które głosowały w tych stanach to Clinton zdobyłaby prezydenturę w Kolegium Elektorskim.

Takie są zasady w USA. Takiego sobie wybrali Prezydenta.

Ale nie został on wybrany dzięki fake newsom, czy też dzięki temu, że zyskał dużą przewagę nad Hillary Clinton.

To nie jest klęska Demokratów wynikła z tego, że wybrali złego** kandydata.
Wynik wyborów nie pokazuje też by Amerykanie stali się bardziej prawicowi, rasistowscy czy co tam jeszcze.
Wynik wyborów w USA nie pokazuje by doszło do jakiegoś przejścia fazowego w społeczeństwie.

Gdyby porównać wyniki tych wyborów z wyborami w 2012 czy 2008 roku to liczby w poszczególnych stanach niewiele się zmieniły, kandydat Republikanów dostał ciut więcej w niektórych swing states. Ale nie jakoś gigantycznie dużo.

Wynik wyborów w 2016 roku w USA pokazują, że tak naprawdę te wybory nie były szczególnie różne od poprzednich.

Od 16 lat w USA 4 na 5 razy w wyborach prezydenckich kandydat Demokratów uzyskuje więcej głosów niż kandydat Republikanów.
Przekłada się to jednak tylko na 2 wygrane wybory przez Demokratów i 3 wygrane przez Republikanów.

Wynik wyborów w USA nie wynika z tego jacy byli kandydaci, a po prostu z tego, że obecna ordynacja od lat promuje kandydatów wysuwanych przez Republikanów.
I to raczej nie przez to, że Republikanie shackowlai system i zrobili go pod siebie.

Tak naprawdę przyczyny wygranej Trumpa należy szukać nie w tym co się zdarzyło w ciągu ostatnich kilku lat, ale w tym co się w USA dzieje od 30 czy nawet więcej lat.


* - kluczowym stanem, czy bardziej swing state jest stan w którym różnica wyborcza między obiema partiami jest bardzo mała i wystarczy kilka tysięcy głosów by wygrać.
** - tzn. jest możliwe, że gdyby wybrali kandydata który byłby mniej nie lubiany niż Hillary Clinton to ta różnica 108 tysięcy głosów w tych 3 swing states byłaby na korzyść Hillary Clinton, ale byłaby to minimalna różnica głosów, nie jakaś wielka.


Podobne postybeta
Kto ile zyska?
Płatny Android Market.... czy mi się to w ogóle przyda?
Kontrrewolucja?
Wybory i ordynacje
Zbiegi okoliczności

piątek, grudnia 16, 2016

Jak zwiększyć swoje IQ?

Tutaj 3 sposoby, które podobno działają ;-)

1) medytacja - podobno dzięki medytacji zwiększa się grubość połączenia między półkulami mózgu, co sprawia że mamy lepszą samokontrolę, co przekładać się może na lepsze wykorzystanie inteligencji którą już mamy, a do tego niektórzy twierdzą, że IQ wtedy rośnie nawet o 23%,

2) gry video - ale nie jakieś gry pamięciowe, ale uczciwe FPSy, w stylu Dooma ;-) pisał o tym lipcowy Świat Nauki, a efekt wynikać ma z tego, że w grach FPS musimy przetwarzać duże ilości informacji w krótkim czasie i na podstawie tych informacji zmieniać/tworzyć w locie plany dotyczące tego jak poruszać się w świecie gry,

3) równe oddychanie - podobno nierówny oddech, oznacza nierówną pracę serca, a to prowadzi do "odcięcia" płata czołowego i mamy taką samoróbkę lobotomi

Są jeszcze smart drugs, a przy wszystkim mamy jeszcze efekt Flynna.

Z drugiej strony, skoro to wszystko jest dostępne i podobno działa to ja się pytam gdzie te produkty tego wyższego IQ? ;-)

Mój sceptycyzm jednak nie zmianie faktu, że czasem stosuję 1, ostatnio dość często 2 i próbuję czasem 3 ;-) raczej nie powinny zaszkodzić ;-)


Podobne postybeta
Czemu nie boję się imigrantów/uchodźców?
Dziwne linki w iGoogle ;-)
Triada spokoju, albo triada antychaosowa ;-)
Android 5.0 pierwsze wrażenia
Studia wyższe

czwartek, grudnia 15, 2016

Nie, to brak HDCP 2.2, a nie backdrop nie służy Chromecastowi Ultra ;-)

Mój Chromecast Ultra działał świetnie i nagle przestał odtwarzać niektóre filmy, szczególnie te w 4K, ale też w HD...
Co gorsza stary Chromecast 2nd gen był w stanie odtwarzać te materiały, z tym że te w 4K odtwarzał w HD.
Robiłem resetu, factory reset i nic...
Ale wyłącznie backdrop, czyli wyświetlanie zdjęć i pogody sprawiło, że Chromecast Ultra znowu działa :-)
Ciekawe jak długo ;-)
Nie długo się okazało ;-)

Problem był jednak w TV, a nie w Chromecast'cie ;-)

Chromecast Ultra do pokazywania materiałów 4K potrzebuje portu HDMI zgodnego z HDCP 2.2.
HDCP 2.2 to kolejny coś, który ma chronić materiały video przed nielegalnym kopiowaniem.

Mam wrażenie, że YouTube wcześniej odtwarzał wszystko na porcie HDMI bez HDCP 2.2, ale nie mam tu pewności, później przestał ;-)

Jednak po tym jak zadałem pytanie na stronie supportu i trochę poszukałem to dotarło do mnie, że HDCP 2.2 może być źródłem problemu.
Sprawdziłem w sieci i okazało się, że mój telewizor ma wsparcie dla HDCP 2.2, ale tylko w HDMI 1, nie w pozostałych 2 portach...
Po przełączeniu Chromecasta Ultra do portu HDMI 1 z HDCP 2.2 wszystko zaczęło działać :-)

posted from Bloggeroid



Podobne postybeta
Chromecast
Chromebook - filmy już działają :-)
Nexus 7 i Chromecast... nie wiem czy kupię, ale mi się podobają :-)
Instalowanie SkyShowtime na Androidzie i Chromecast with Google TV to mordęga
Magia....

niedziela, grudnia 11, 2016

Rozszerzenia Chrome - Content Script nie wszystko może...

Popełniłem ostatnio w pracy małe rozszerzenie do Chrome, które ma pomagać w pisaniu smoke testów*.
Robić to powinno w taki sposób, że obserwuje co robi user na stronie i pisze skrypt w Gosu, który powinien to symulować.

No i odkryłem w trakcie pisania tego rozszerzenia, że dokumentacja Chrome trochę kłamie.
Sugeruje, że można swobodnie wysyłać i odbierać komunikaty w każdej części rozszerzenia (czyli w background script, popup'ach i w content script), a okazuje się, że content script nie może odbierać komunikatów....

Może tylko wysyłać ;-)

Stąd w planie było by user klikał na guzik Record w popupie rozszerzenia i by to wysyłało komunikat do content script'u (czyli tego co jest wstrzykiwane w treść strony).

Tak się nie da. Trzeba było zrobić tak, że i popup i content script wysyłają komunikaty do background script'u, ten ma prostą maszynę stanów i razie popup wyśle komunikat to przełącza się w tryb "nagrywania" i rejestruje to co wysyła content script.

Stąd trzeba jednak podchodzić sceptycznie do dokumentacji ;-)

* - nie lubię smoke testów, a rozszerzenie wynika z tego, że wydaje mi się, że jednym z istotnych kawałków mojej filozofii życiowej jest, że należy zautomatyzować wszystko co się da ;-)


Podobne postybeta
Wtyczka na pamięć - brniemy dalej ;-)
Zaskakujący killer feature....
Tunel... ciąg dalszy ;-)
Chrome2ChromeV2 na GitHub :-)
Piszemy rozszerzenie dla Chrome ;-)

Czemu uważam, że 500+ jest złe

Po pierwsze oficjalne cele jego wdrożenia raczej nie zostaną osiągnięte.
Po drugie uzależnia ludzi od pomocy państwa.
Po trzecie wyrzuca kobiety z rynku pracy.
Po czwarte oducza odpowiedzialności.

Celem jest sprawienia by rodziło się więcej dzieci. Dokładniej by urodziło się dodatkowe 278 tysięcy dzieci w ciągu 10 lat.
Już ty kiedyś liczyłem, że jeśli założyć, że program się powiedzieć i rzeczywiście przybędzie 278 tysięcy dzieci w ciągu kolejnych 10 lat to i tak nie jest to żaden interes jeśli popatrzy się na pieniądze, które na to pójdą.

Program uzależnia ludzi od pomocy państwa.
Na pewno ekstra 500 PLN pomaga.
Wszystko super do momentu gdy dzieci nie mają 18 lat. Im rodzina biedniejsza, czyli im bardziej pomaga jej te dodatkowe 500 PLN tym większy spadek dochodu zanotuje gdy któreś z dzieci osiągnie 18 rok życia.
Do tego będzie to następowało wtedy gdy mogą pojawić się dodatkowe koszty, jeśli dziecko np. będzie chciało rozpocząć studia.
Co roku w takiej sytuacji będzie znajdowało się ~300 tysięcy rodzin, którym dochód z dnia na dzień będzie malał o ~10%.
To pewnie będzie znaczyło więcej osób starających się jakieś formy pomocy społecznej.
Firmy pożyczkowe też pewnie będą na tym korzystały.

Kobiety porzucają rynek pracy.
Już w tym roku mówi się o 150 tysiącach kobiet, które zdecydowały się na opuszczenie rynku pracy.
Można je zrozumieć, zwykle rzucają słabo płatne stanowiska całkiem rozsądnie licząc, że z kosztami dojazdu i podobnymi pensje zwykle dodają do domowego budżetu mniej niż 500+, a możliwe też jest wpadnięcie w niższy dochód na osobę w rodzinie co oznacza 500+ na pierwsze dziecko.
Rzucanie pracy przez niektóre kobiety jest tutaj zachowaniem racjonalnym.
Problem w tym, że ma to też swoje wady, które będą widoczne dopiero za kilka czy kilkadziesiąt lat.
Zwiększa się ryzyko utraty dochodu dla rodziny, przy 2 osobach pracujących prawdopodobieństwo utraty dochodu przez rodzinę możliwe jest tylko gdy oboje stracą pracę, tak wystarczy tylko by mężczyzna ją stracił. To się pewnie przełoży też na większy stres i większą ilość chorób związanych ze stresem.
Zwiększa zależność kobiet od mężczyzn.
Zmniejsza bogactwo narodu (na razie wydaje się, że drogą do wzbogacenia się większości krajów jest wprowadzenie wszystkich na rynek pracy).
Jeszcze bardziej dociśnie to system emerytalny. Te 150 tysięcy kobiet zarabiało słabo, ale płaciły jakiekolwiek składki emerytalne. Ich emerytury i tak byłyby dofinansowane przez państwo, ale w mniejszym stopniu. Bo chociaż nie dostaną emerytur to jednak później mają duże szanse na renty rodzinne po mężu.

Do tego wszystkiego 500+ oducza odpowiedzialności.
Nikt inny jak rodzice sprowadzając dzieci na ten świat nie bierze odpowiedzialności za ich przyszły los. To sprowadza się zaś do stwierdzenia, że dzieci powinno się mieć tyle na ile kogo stać.
Wielu się oburzy na takie stwierdzenie, ale jakby nie patrzeć głównym celem życia jest posiadanie potomstwa i danie mu szans na to by samo miało to potomstwo.

Żeby nie było jestem za tym by pomagać rodzinom, ale wydaje mi się, że z powodów jakie opisałem wyżej 500+ jest bardzo złą formą pomocy.
Te ponad 20 mld PLN rocznie lepiej byłoby wydać na mechanizmy, które promowałyby zatrudnianie ludzi na umowach o pracę, zamiast na śmieciówkach (np. przez zdjęcie części obowiązków składkowych z niższych pensji i pokrywanie ich z budżetu, tak by wrednym kapitalistom bardziej opłacało się zatrudniać ludzi na umowach o pracę), na darmowe przedszkola, na podniesienie kwoty wolnej od podatku (niechby nawet na podobnej zasadzie jak ma być teraz liczona, czyli z progami dochodowymi) i np. na polepszenie transportu zbiorowego w małych miejscowościach (tak by łatwiej było dojechać do pracy).


Podobne postybeta
"Analiza" zysków i strat dla 500+... nie wygląda to różowo
A takie tam absurdy
Płatnik czy beneficjent?
Żarówki kolekcjonerskie ;-)
Dziura

środa, grudnia 07, 2016

Pixel C - dobry

Jakiś czas temu zamieniłem leciwego już Nexusa 10 na Pixel C.
Trochę się tej zmiany obawiałem, zastanawiałem się czy może nie pójść w Nexusa 9.
Jednak wybrałem Pixela C i nie żałuję.

Co prawda świat wydaje się mówić, że tablety to przeżytek i teraz wszędzie zastępują je duże telefony, to ja jednak jako posiadacz dużego telefonu nadal lubię mieć tablet.
Łatwiej mi się na tablecie czyta i pisze. Do tego fajnie się gra...

A to nadal jest moja ulubiona gra na tablecie:

Na XBOX One też mam jej wersje, ale nie ma trybu ciągłej gry i nie jest tak fajna.

Pocket na dużym tablecie wymiata:


Do tego mój Pixel ma 64 GB pojemności... Co znaczy, że w razie czego mogę sobie nań zapisać kilka filmów i obejrzeć w podróży ;-)

Stąd jakby ktoś jednak rozważał kupno tablet 10 celowego z Androidem to polecam Pixel C ;-)

posted from Bloggeroid




Podobne postybeta
Chorować to trzeba umieć ;-)
OS X, ładny cholernik jest.... ale nie idealny ;-)
Nexus 7 wymiata
Nexus 7 sprzedaje się jak świeże bułeczki :-)
Weekend i będzie krótki tydzień.