Saturday, December 21, 2019

Sony Xperia xz1 keeps restarting

My Sony Xperia XZ1 keeps restarting. And I know the reason: internal storage is full. This leads to restart of a working system. And restart-loop.
I'm pretty disappointed with software that came from Sony.
I'll try to use sony xperia companion to reset the device. Sad it works that way.
I was using it for banking, mail, authentication, payments. For that reason the device was not modified in any way (not rooted or so).

Monday, December 2, 2019

Mi Band, AmazFit Bip, etc.

I've been asked many times which is better: AmazFit Bip, Mi Band , samsung gear, ...
There is no simple answer as each product has its target. And so:

Amazfit Bip. My favorit.
Charge once per 1+ month (thus it is easy to lost the charger).
Has always-on screen (just look at it and check time/date).
Has bluetooth and vibrations.
Has GPS.
Waterproof.
Large screen.
Gorillaglass screen (but you still should use screen protection / frame).
Has alternative firmware (based on original).
Has alternative software.
Has physical button.

Closed protocol.
Chinese manufacturer.
Cannot track swimming.

Mi band 4.
Color OLED screen.
Charge once per 1+ month (thus it is easy to lost the charger).
Has bluetooth and vibrations.
Waterproof.
Gorillaglass screen (but you still should use screen protection / frame).
Round screen - looks fancy.

Must touch screen (or rise hand) to see time.
Touch-button will activate under shower.
Closed protocol.
Chinese manufacturer.
Cannot track swimming.
NFC only for chineese market.

Mi band 3.
Similar to Mi band 3 but worse screen and a bit smaller.
Has flat display.
NFC only for chineese market.

Mi band 2.
Similar to Mi band 3 but worse screen and a bit smaller.

Mi band 1.
No display (only 3 LEDs: color or white depending on version).
Pulse detection only in HR versions.

Amazfit surge and other.
Nice models. Some might have saphire glass (much stronger).
I would probably buy a polar/garmin instead for the price.

Apple watch.
Has many versions.
Need to charge every day.
A phone on your wrist.
NFC and apple pay support.
Physical button (more complex).

(Other) android wear watches.
Might support NFC (or not).
Need to charge frequently.
Getting a replacement charger might be an issue.
Might have a microphone - if you like to talk with your hand.
Some might have nice physical buttons.

Pebble.
Good, solid, old. Outdated.

Garmin / Polar.
Good for sport tracking
Depending on version - might last long on battery.

Cheap "smart band".
This is usually a crap. Usually needs to be charged frequently. No support. No updates. Bad quality screen. Glass will break eventually. Bad quality of measurements.
Meant to count steps and watch your sleep. Neither works well and you cannot track both (as you need to charge it).
Usually cost is similar to Mi band - so I wouldn't even bother looking at alternatives and would choose at elast Mi band.

Cheap "smart watch".
Needs to be charged frequently.
Glass will break eventually. Can be dangerous.
Often allows other to track you.
No support. No updates.
Avoid.


At the end some examples I have seen (and/or own).
Samsung gear. Costs a lot. You will use it for 2 weeks - then it will stay on the shelf.
Huawei whatever band. Might work for some time... until you see alternatives.
Anything with NFC... you might use it for NFC only.
Cheap OLED bands... that last up to 5 days on battery (and battery capacity drops to less than 20% after few months).
Go clever and its alternatives... is really nice but has too poor hardware (with 3k RAM you cannot do anything).

Wednesday, November 27, 2019

Konto firmowe listopad 2019

Prowadzę własną jednoosobową działalność gospodarczą w Polsce i mamy końcówkę roku 2019. Nasz rząd próbuje zrobić co tylko może aby ubić małe i średnie przedsiębiorstwa :( Jednym z przykładów jest wymuszenie kont firmowych. A dokładniej to wymusza je na firmach współpracujących (przelew kwoty >15k zł jest problematyczny; przelew pieniędzy na rachunek niefirmowy ma uniemożliwiać możliwość odliczenia tej kwoty od podatku wysyłającemu płatność).
Wobec powyższego zmusza się mnie (pośrednio) do założenia konta firmowego. A te zazwyczaj są płatne... W moim przypadku na koncie nie dzieje się wiele. Więc założę teraz konto "proxy" na które pieniądze będą wlatywać by zaraz przeskoczyć na konto właściwe.
Zastanawiam się nad kilkoma bankami... obecnie w czołówce są 3 "większe" banki: alior, nest i ing. Alior odpada - słyszałem zbyt wielu negatywnych opinii o obsłudze klienta i nie ma możliwości kontaktu online. ING wypada dobrze - możliwośc np. czatu online jest super. Nest szału nie robi ale być może będzie wystarczający dla moich potrzeb. Obecnie się zastanawiam gdzie....

Update.
Otworzyłem konto w nest banku.
Zalety:
  • darmowe
  • proste
  • bez udziwnień
  • na stronie brak nachalnych reklam
  • to nie jest produkt marketingowy
Wady:
  • prawdopodobnie poziom bezpieczeństwa oraz jakość systemów informatycznych może być niższa niż "wielkich banków"
  • brak nowoczesnej obsługi klienta on-line (czat, video, audio)
Rozpatrywałem też alior bank:
Zalety:
  • zdaje się, że ofarta nie jest zła
Wady:
  • kiepska obsługa klienta
  • brak nowoczesnej obsługi klienta on-line (czat, video, audio)
  • produkt marketingowy
oraz w ing:
Zalety:
  • duży i chyba dość dopracowany produkt
  • obsługa klienta online (czat, audio i video... chociaż dwa ostatnie mogą być często niedostępne)
Wady:
  • produkt marketingowy
  • reklamy produktów na stronie
  • firma stosuje dość agresywny marketing swoich usług/produktów
No i patrząc na jeszcze 3 banki:
  • PKO BP
    • Wady:
      • reklamy na stronie
      • produkt komercyjny
      • wysokie koszty (bardzo wysokie)
      • trochę za duży kontakt z rządem
  • M-Bank
    • Zalety:
      • dość dobra oferta
    • Wady:
      • częste zmiany regulaminu
      • problemy z ich systemem
  • BZWBK / Santander 
    • Wady:
      • produkt komercyjny
      • nachalne reklamy
      • reklamy
      • marketing
      • bardzo częste zmiany regulaminu
      • mnogość dokumentów
      • skomplikowane dokumenty prawnicze
      • spam wysyłany przez bank
      • wysokie ceny
Jeszcze jakieś opcje?
Na razie mam nest bank. Jako jeden z banków. Ten z kontem firmowym.
Z całą pewnością unikać będę:
  • banków z nachalnym marketingiem
  • banków ze stronami kipiącymi reklamami
  • banków z nieintuicyjnym interfejsem web/app
  • banków z wysokimi (bez usprawiedliwienia) cenami

Thursday, November 21, 2019

go lang, html/template and sort...

I have created a simple page that prints running local docker images with their metadata. Using simple go lang and html/template. Then things went complicated: I couldn't sort a slice.

Quick introduction to go lang

Go language is a language created (and released) by google. It is based on many existing "things" that got compiled to a target environment, where really many environments are available. Code is executed in some kind of a sandbox (similar to java runtime environment). You could also run the code without storing compiled binary using `go run whatever.go` or compile and run using `go build whatever.go && ./whatever`.
Pros: supports multiple environments, is "managed" (garbage collector), has good support, is simple, has built-in testing framework, is compiled into a binary, can be compiled on runtime
Cons: different from most languages, extensible only to some extend (at some point you need to get into low level sources), has "different" source management/versioning, testing package is pretty "raw",large binary footprint (simple "hello world" app would be probably 10MB large or 5MB after stripping)

Source code before

Note the error handling is omitted.
package main
import (
        "html/template"
        "net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
        data := []map[string]string{{"k": "2", "v": "a"}, {"k": "1", "v": "b"}}
        t, _ := template.ParseFiles("template.tmpl")
        t.Execute(w, data)
}
func main() {
        http.HandleFunc("/", handler)
        http.ListenAndServe(":8081", nil)
}


<html><body>
{{range .}}
        {{.v}},
{{end}}

</body></html>
 
Output: a,b,

Quick solution

Source code after

Note the error handling is omitted.
package main
import (
        "html/template"
        "net/http"
)
func mySort(s []map[string]string) map[string]map[string]string{
        m := make(map[string]map[string]string, len(s))
        for i:=0; i
                m[s[i]["k"]] = s[i]
        }
        return m 
} 
func handler(w http.ResponseWriter, r *http.Request) {
        data := []map[string]string{{"k": "2", "v": "a"}, {"k": "1", "v": "b"}}
        t, _ := template.New("template.tmpl").Funcs(template.FuncMap{"mySort":mySort}).ParseFiles("template.tmpl")
        // Note that I cannot simply use ParseFiles as it calls New() inside 
        t.Execute(w, data)
}
func main() {
        http.HandleFunc("/", handler)
        http.ListenAndServe(":8081", nil)
}
 
<html><body>
{{range .|mySort}}
        {{.v}},
{{end}}

</body></html> 
 
Output: b,a,

Final comments

Please let me know what you think about it. And leave a comment if you find it useful (just to let me know it is used by anyone and it has any value to the community).

Monday, July 8, 2019

Kubernetes dashboard pagination - number of rows per page without logging in

Recently I am working with kubernetes dashboard on both minicube and a cluster.
While kuberneted dashboard can be started as an image (and some configuration can be inserted), its settings are not available per user as they should. I mean - we are using kubernetes (k8s) dashboard without logging in so the settings are not even accessible.

But when you open list of pods, deployments or similar - you are forced to use 10 rows per page. When you apply any change (ex. edit item or scale a deployment) then pagination information is lost - so you start always from the first page.

Yesterday I spent quite a lot of time to get a workaround for the issue.
3 possible solutions I found:

  1. Press F12 in your web browser to access developer's console. Enter the following command:

    window.angular.element(document.querySelector(".ng-scope")).scope().$root.$$childHead.$ctrl.c.a.itemsPerPage=2;
    (You might be disallowed to paste into the window for the first time - as the developer console can be very dangerous)
  2. Use greasemonkey/tampermonkey/violentmonkey and add script like this bellow

    // ==UserScript==
    // @name         k8s dashboard pagination
    // @namespace    k8s
    // @version      0.1
    // @description  Set pagination to 40 elements per page
    // @author       adderek
    // @match        http://yourserver:yourport/*
    // @grant        none
    // ==/UserScript==

    (function() {
        'use strict';
        window.angular
            .element(document.querySelector(".ng-scope")).scope()
            .$root.$$childHead
            .$ctrl.c.a
            .itemsPerPage=40;
    })();
  3. Add a bookmarklet and click on it every time you wish to change number of rows per page

Saturday, June 1, 2019

Sobota, dzień dziecka

Dziś jest sobota, pierwszy dzień miesiąca czerwca, dzień dziecka.
Jak najlepiej spędzić ten dzień?
Z rana niepogoda. Mycie naczyń z tygodnia, przygotowanie śniadania, porządki. Niestety sam muszę to ogarnąć bo syna rozpieściłem i (jak ja teraz) siedzi na komórce zamiast się dołączyć. Młodszy ogląda bajki (też niedobrze) a żona na komórce obok niego siedzi i na niego spogląda.
Później ma być ciepło i ładnie - na pewno z chłopakami gdzieś pojedziemy.
Fajny plan chyba... Najbardziej mi się z tego podoba posprzątanie domu, ponieważ to się wszystkim przysłuży a wyjazd gdzieśtam to tylko chwila przyjemności.

Wednesday, March 20, 2019

Windows 10 is a pain

Once again Microsoft fucked up things.
My mom has several computers. And she is forced to use windows - as some apps she is forced to use for her work require windows.
Every couple of months windows 10 will force upgrade to new build. And it will remove much of the configuration - and some things stop working (scanners, printers, network drives, etc.).
In addition some features become broken (ex. avatars for local accounts) or replaced by new tools (so user nor admin can never find what they are looking for).
When combined with whole drive encryption requirement (for security) we have only one practical choice - bitlocker. And from time to time... upgrade would remove all the user data, corrupt disk drive or even decrypt crypted drive and corrupt it (so overwriting encrypted data with crap data) or leaving them decrypted but not accessible.
And it will force upgrade and restart.
Windows 10 is a closed source so in case of problems... best solution is to reinstall OS.

As a result :
- windows 10 is not secure (encryption issues)
- windows 10 is not stable (upgrade could come any time corrupting data or features)
- windows 10 is not reliable (at any time it can stop working)
- windows 10 cannot guarantee it would have uptime longer than 4h... In fact it says that if it wants an update then it won't have uptime longer than 4h
- windows 10 is difficult to maintain (need to configure many things after an update)
- windows 10 is difficult to use - the usability "improvements" make interface changing too often and users would encounter issues just too often (often without enough knowledge to solve them on their own)

Only solution seems to be... An external drive to keep the data, frequent backups onto local versioned cloud, own data encryption (Linux?) and hope that this awful system (windows) will die soon.

By the way... what happened most recently to a computer of my mother was: OS partition encrypted with bitlocker become corrupted (showing as RAW instead of NTFS) so I can neither recover the data nor recover (fresh install) OS. In fact what I will do is to make a backup of the corrupted partition and then to clean it, format it and make a fresh install of the OS.

Tuesday, February 5, 2019

Nowy telefon?

Mój stary telefon Samsung Galaxy Note 4 GT-n910c zdycha. Niestety nie jestem w stanie ustalić przyczyny - prawdopodobnie wymiany wymaga płyta główna. Pewnie jakieś zwarcie.
No i zerkam na rynek. I wielki zawód, ponieważ rynek jest zapchany urządzeniami z niskiej półki bądź drogim badziewiem z niepotrzebnymi funkcjami:

EKRAN

  • Zaokrąglony ekran "edge" - niepotrzebny
    • Funkcja (wywodząca się z samsungów), której się nie używa
    • Analizy wykazały, że jak ktoś kupuje telefon za kilka tysi to wyda troszkę więcej na takie niepotrzebne badziewie
    • W praktyce - zupełnie nieprzydatne i mocno problematyczne
    • Problem z naklejeniem szyby/folii ochronnej
  • Ekran 2.5D
    • Nieprzydatne
    • Ekran jest płąski ale z zaokrąglonymi brzegami
    • Możliwy problem z naklejeniem szyby/folii ochronnej
  • Bezramkowy wyświetlacz - niepotrzebny
    • Fajny chwyt marketingowy - sugeruje że telefon ma więcej miejsca gdzie widać obraz
    • Większe ryzyko uszkodzenia wyświetlacza przy upadku
    • Nie ma jak złapać telefonu
  • Wycięcie w ekranie (nodge czy jak to się tam zwie) - nieprzydatne
    • Kolejny chwyt marketingowy
    • Więcej miejsca na wyświetlacz... ale przy tym masa problemów i część wyświetlacza nieużywana
    • Zasłonięcie części ekranu...
    • Jeśli mamy opcję aby część ekranu olać i użyć wyświetlacza tylko na części powierzchni to jest OK
  • Rozdzielczość (standard to 1280 x 720)
    • Wyższa rozdzielczość potrzebna jeśli chcemy wykorzystać telefon jako okulary VR
    • 1280x720 w zupełności wystarczy jeśli chcemy używać tylko jako telefonu/smartfona
    • Mniejsza rozdzielczość to "szybsze działanie" (mniej pracy potrzeba do wyświeltenia obrazu)
  • Typ ekranu
    • LCD TFT TN
      • Najprostszy
      • Możliwa słaba jakość obrazu (najtańsze)
      • Jakość obrazu może by świetna (lepsze, droższe, nowe technologie)
      • Istnieje kilkadziesiąt odmian - generalnie nowsze są lepsze
      • Wyświetlanie obrazu zużywa dużo energii
      • Zazwyczaj minimalnie jaśniejszy obraz na brzegu lub w rogach
      • Telewizory TFT mają często jasność w kratkę
    • LCD IPS
      • Lepsze kolory niż TFT/TN
      • Nadal duże zużycie energii
      • Nadal nierówna jasność
    • E-INK
      • Słońce świecące na ekran nie stanowi problemu - w zasadzie nawet pomaga
      • Wolny - nie nadaje się np. do oglądania filmów
      • Może być zawsze włączony (nawet bez baterii)
      • Nierówna jasność ekranu
    • OLED
      • Może przez cały czas wyświetlać np. godzinę i nie zużywa przy tym dużo energii
      • zwykle ładne kolory i dość równomierna jasność ekranu
      • Zużywa więcej energii wyświetlając jasne kolory (np. biały) a mniej gdy jest ciemny (np. czarny)
    • AMOLED (TFT)
      • OLED na sterydach
      • Lepsze kolory niż w OLED
    • S-AMOLED
      • AMOLED na sterydach
      • Bardziej energooszczędny niż AMOLED

CZUJNIKI

  • Czytnik linii papilarnch - jest dla mnie bardzo potrzebny
    • Stanowi niski poziom zabezpieczenia
    • W połączeniu z czujnikiem odległości (np. smart-band) już jest bezpieczniej (niestety gotowca na to nie ma)
    • Wystarczająco zabezpiecza telefon przed dzieckiem
  • Przyciski dotykowe - masakra
    • Lubię przyciski, które można przyciskać świadomie trzymając cały czas palec na nich
    • Przycisk powinien dawać wyczuwalną odpowiedź na przyciśnięcie
    • Często stosowane dla obniżenia kosztów
  • Przyciski fizyczne - dla mnie mus
    • Droższe rozwiązanie (różnica nieznaczna ale dla producenta znacząca jeśli produkcja idzi w miliony egzemplarzy)

OBUDOWA

  • OGS czyli cały telefon ze szkła
    • Inaczej mówiąc - nie jest ważne jak telefon upadnie bo i tak się stłucze
    • Odciski widoczne w każdym miejscu
    • Utrudniona naprawa
    • Częściej wodoszczelne

ŁĄCZNOŚĆ

  • 2G, 3G, 4G, 5G, ...
    • Bez dużej różnicy... teraz to już jest bez znaczenia
    • Za jakiś czas 5G będzie standardem
    • Fajnie jak telefon obsługuje wiele standardów
  • WiFi
    • Bez większego znaczenia - zazwyczaj wystarczy nawet stary standard "b" do oglądania filmów np. na youtube
    • Standard AC jest szybszy... ale to zbyteczne
    • Jeśli chcemy używać telefonu do VR to warto mieć szybki procesor i WiFI ac z MIMO
  • Bluetooth
    • Minimum 4.1
      • BT4 to BLE (energooszczędny bluetooth) i zwykły
      • W 4.1 BLE obsługuje ulepszenia dla oszczędzania energii
  • Lokalizacja
    • GPS - bardzo użyteczny
    • A-GPS... w zasadzie każdy telefon z GPS to obecnie A-GPS
    • GLONASS i BEIDOU - lepszy zasięg ale to drobna różnica
  • IR blaster
    • Przydatna funkcja aby wyłączyć TV i inne nieprzydatne urządzenia, które ktoś w domu może wykorzystywać zasypiając przed nimi i nie wyłączając ich
    • Często brak sterowników

PROCESOR

  • Kyrin
    • Stosowany w huawei'ach
    • Zamknięte wszystko, zablokowany bootloader... odradzam
  • MediaTek (MT*, MTK*)
    • Raczej mało wydajne, prądożerne procesory
    • Zamknięte oprogramowanie - ale popularny sprzęt i czasem coś jest nawet troszkę otwarte
  • MediaTek Helio
    • To nadal mediatek
  • Qualcomm snapdragon
    • Chyba najbardziej otwarte oprogramowanie
    • Wydajne
    • Wysoki standard (w porównaniu z konkurencją)
    • Polecam
  • Intel
    • Spoko ale też nie wszystko otwarte i prądożerne procesory
I kolejna kategoryzacja
  • ARM.... to tak na prawdę architektura bardziej niż procesor - jest wykorzystana w większości komórek więc jeśli to podano za model/markę procesora to coś jest nie tak
Szukam teraz na rynku telefonu:
- z czytnikiem linii papilarnych
- z fizycznymi przyciskami
- z WiFi (przynajmniej standard n) i Bluetooth 4.1 lub nowszym
- rozdzielczość 1920x1080 mile widziana ale nie niezbędna
- procesor qualcomma
- dostęp do źródeł sterowników
- bootloader nie może być zablokowany
- musi mieć jakikolwiek aparat - coś powyżej 10 Mpix mile widziane
- aparat z "f" o wartości 2.0 lub mniejszej (to ciut skomplikowane ale w skrócie i olbrzymim uproszczeniu taki powinien dawać radę przy kiepskim oświetleniu)
- NFC mile widziane ale nie niezbędne