Paweł Goleń, blog

Przez długi czas „broniłem” się przed modą na smart home, ale czas płynie, technologia (i dostępne opcje) się zmieniają i w pewnej chwili nawet nie myśląc o urządzeniach „smart” w pewnej chwili okazuje się, że jest ich kilka w domu, więc czemu nie spróbować. Na stanie mam:

  • klimatyzatory zarządzalne przez WiFi (Gree);
  • lampę Philips HUE;
  • termometry Xiaomi (BLE).

W ramach eksperymentów nabyłem do tego Raspberry Pi 3 B+ plus koordynator ZigBee. Na tym uruchomiłem OpenHab 3.0, Zigbee2mqtt i własny skrypt odpytujące termometry BLE (w zasięgu są 3 z 5). Do tego InfluxDB i Grafana.

Jak wspomniałem 3 z 5 termometrów jest w zasięgu BLE. Z drugiej strony w tych pomieszczeniach, gdzie zasięgu nie mam, mam klimatyzatory, które również podają bieżącą temperaturę, choć z mniejszą rozdzielczością. Aktualnie jestem na etapie ustawiania offsetu temperatury, bo raportowana temperatura jest mniej więcej o 1 do 2 stopni za wysoka. Tutaj na odmianę napisałem skrypt do pobierania historii temperatury z termometrów (temperatura minimalna i maksymalna z rozdzielczością godzinową) po to, by porównać wskazania termometrów z klimatyzatorami.

Największym problemem było znalezienie jakiegoś w miarę działającego modułu dla Pythona obsługującego Bluetooth pod Windows. Ostatecznie skończyłem na bleak, który mniej więcej działa. Tak, wiem, jest pybluez, ale kompilować modułu mi się po prostu nie chce.

Efekty? Po pierwsze mam nieco mądrzej ustawioną lampę (temperatura plus jasność) dzięki czemu lepiej pracuje mi się przy komputerze. Po drugie zbieram dane (temperatura), by nieco mądrzej ustawić ogrzewanie (piec dwufunkcyjny + kaloryfery). Przy okazji – zawziąłem się w końcu i zrozumiałem kilka rzeczy o ogrzewaniu:

  • moc grzejników w poszczególnych pomieszczeniach przy różnych temperaturach zasilania;
  • krzywe grzewcze pieca;
  • ustawienie temperatury CWU.

Moim największym sukcesem do tej pory jest osiągnięcie sytuacji, w której temperatura wody pod prysznicem jest stała, bez wahań ciepła/zimna (mimo termostatu). Powód okazał się nieco inny niż ustawienie pieca – zbyt wysokie ciśnienie wody. Cóż, człowiek uczy się całe życie.

Oryginał tego wpisu dostępny jest pod adresem Smart(er) Home

Autor: Paweł Goleń

Duża. To jest tak piękne, że aż podejrzane: CyRC analysis: Authentication bypass vulnerability in Bouncy Castle.

Nieodmiennie coś takiego kojarzy mi się z tym:

if ((options == (WCLONE|WALL)) && (current->uid = 0)) retval = -EINVAL;

W jednym i drugim przypadku można długo dyskutować, czy wprowadzona podatność jest wynikiem niezamierzonego błędu (niekompetencji), czy wprost przeciwnie. Plausible deniability wiecznie żywe!

I tak, jeśli znajdujesz swój ulubiony kawałek kodu w artykule The Linux Backdoor Attempt of 2003 to znaczy, że:

  1. jesteś stary;
  2. jeszcze coś pamiętasz.

Oryginał tego wpisu dostępny jest pod adresem indexOf, charAt, co za różnica?

Autor: Paweł Goleń

Kawały o teściowych nie wzięły się z niczego. To jest denerwujące, gdy ktoś po prostu “wie lepiej” (albo tylko mu się tak wydaje), ale... (...). No właśnie, nieco inna perspektywa – dostaję raport, czytam go i mam więcej pytań niż odpowiedzi. I nie tylko pytań, bardzo często również mam to wewnętrzne przeświadczenie, że zrobiłbym to lepiej. Dlaczego?

Czytaj dalej...

Okazuje się, że z KeePass korzystam już 12 lat. Przez ten czas zebrało się tam prawie 400 rekordów, różnych. Nie wszystkie do usług online, ale i tych zebrało się sporo. Ostatecznie zebrałem się w sobie i zrobiłem drobne czyszczenie efektywnie redukując ilość rekordów o połowę.

Przy okazji – z uwagi na dobrą promocję zdecydowałem się w końcu na zakup klucza U2F/FIDO2 (Security Key by Yubico). Dlaczego dopiero teraz (poza promocją)? Bo w końcu adopcja jest wystarczająco szeroka.

Na koniec dodam, że koncepcyjnie podoba mi się pomysł Sign in with Apple, choć wiem, że z wykonaniem były problemy – ‘Sign in with Apple’ vulnerability find earns $100k bug bounty. Niemniej jednak gdy widzę, że aplikacja oferuje tę opcję – zwykle z niej korzystam.

Oryginał tego wpisu dostępny jest pod adresem Korzystam z KeePass już 12 lat

Autor: Paweł Goleń

Tak, Endomondo kończy działalność. Trochę szkoda, choć dla mnie najbardziej irytujące jest to, że decyzja zostaje podjęta po tym, jak w końcu zebrałem się w sobie by przenieść stare aktywności ze Sports Tracker do Endomondo. W efekcie musiałem znowu zebrać się w sobie i przenieść:

  • wszystkie aktywności do Polar Flow;
  • (dodatkowo) aktywności, gdzie GPS ma sens do Strava.

Dlaczego tak? Bo Polar Flow nie pozwala (albo ja tego nie widzę) zaimportować treningu, można stworzyć informację o treningu z jego bazowymi parametrami, ale bez trasy. Strava, w porównaniu z Endomondo czy Polar Flow, ma ograniczony katalog aktywności, które można zarejestrować. Zresztą i tak korzystam ze sprzętu Polar, więc aktywności domyślnie idą do Flow, a następnie synchronizują się do Strava.

To, czego nie wiem w tej chwili to czy pozostanę przy darmowej wersji Strava, czy jednak zdecyduję się na subskrypcję. Śledzenie postępów, porównywanie rezultatów czy wreszcie segmenty są fajne, ale nie jestem przekonany, że to coś, co jest mi niezbędne. Podobało mi się to, co dawało Endomondo – najlepsze rezultaty (w historii) oraz najlepsze odcinki w danym treningu.

W ramach eksperymentów wrzuciłem eksport z Endomondo do MongoDB, dane wymagały drobnej transformacji. Przy okazji – fajnie działa MongoDB w Ubuntu zainstalowanym w WSLv2 z dostępem ze skryptu w Python z Windows przez localhost.

Oryginał tego wpisu dostępny jest pod adresem Koniec Endomondo

Autor: Paweł Goleń

Bateria w moim XPS spuchła, w związku z czym podjąłem próbę jej wymiany (w serwisie oczywiście). Sprawa prosta, przecież będą zamienniki, prawda? No właśnie nie do końca, zamienniki są, ale nie zawsze działają:

(...) W przypadku, niektórych laptopów od producenta Dell zdarza się, że baterie nie są poprawnie wykrywane. Jest to spowodowane zabezpieczeniami po stronie Della uniemożliwiającymi poprawne korzystanie z baterii. Niestety w takich przypadkach zazwyczaj jedynym rozwiązaniem jest zwrot produktu i kupno oryginalnej baterii. (...)

Niestety, oryginalnych baterii nie ma, ponieważ model 9333 ma już swoje lata. Efekt? Mam całkiem fajny sprzęt, ale bez baterii. Cóż, kolejna rzecz do sprawdzenia przed kupnem nowego laptopa. Nie nastąpi to za szybko, bo E7450, którego teraz używam, daje radę. Swoją drogą pod względem wydajności stary XPS (z i7) jest porównywalny z nowszym E7450 (z i5) i to nawet mimo tego, że i7 w XPS jest ze starszej generacji niż i5 w E7450. I właśnie dlatego trochę go szkoda.

Czytaj dalej...

Jakiś czas temu mój mAP Lite odmówił posłuszeństwa. Doszedłem do wniosku, że najnormalniej na świecie dożył swoich dni, jak to z elektroniką bywa, i pora wymienić na nowy (taki sam). Kilka dni temu nowy odmówił posłuszeństwa w dokładnie ten sam sposób, a tego już było za dużo.

Co się okazało? W obu przypadkach problem był spowodowany nie do końca udaną aktualizacją wersji systemu. Różnica była taka, że w pierwszym wypadku między pobraniem nowej wersji i restartem routera (by się nowa wersja zainstalowała) minęło na tyle dużo czasu, iż nie powiązałem tego faktu bezpośrednio. W drugim przypadku problem ewidentnie wystąpił po instalacji aktualizacji. W obu przypadkach próbowałem wykonać netinstall i w obu przypadkach początkowo skończyło się niepowodzeniem. Tym razem jednak wyciągnąłem kolejny stary, ale działający router (RB751G-2HnD) i kiedy netinstall również zakończył się niepowodzeniem miałem mocną przesłankę, że problemem nie jest sprzęt, ale netinstall właśnie.

Ostatecznie problem udało mi się rozwiązać. Okazało się, że trzeba było skonfigurować wyjątek firewall dla netinstall.exe. Co prawda system przy pierwszym uruchomieniu pytał, czy zezwolić na komunikację, ale domyślna reguła nie działała. A nie działała z bardzo prostego powodu, domyślne ustawienia pozwalały na komunikację w profilu “private” a nie “public” a w trakcie instalacji system (słusznie zresztą) ustawiał typ sieci na “public”. Więcej o profilach: Windows Firewall Profiles.

Oryginał tego wpisu dostępny jest pod adresem Nieumarły router

Autor: Paweł Goleń

Jak być może ktoś zauważył – przez pewien czas zwracany był błąd 403. Powód? Ciekawy. Po pierwsze nagle uprawnienia na plikach okazały się zbyt restrykcyjne dla serwera i to pomimo tego, że były tak ustawione przez kilka ostatnich lat.

Do tego w dziwny sposób zaczął zachowywać się CloudFlare – dla kilku URLi generalnie zwracał błąd 522, który magicznie znikał po wyłączeniu cache.

Oryginał tego wpisu dostępny jest pod adresem Jaka piękna katastrofa

Autor: Paweł Goleń

Dzisiaj przypadkiem natrafiłem na materiał opisujący “zaawansowane funkcje bezpieczeństwa” pewnego programu. Przeczytałem tam o takich rzeczach jak szyfry 40 bitowe oraz certyfikaty wspierające mocne szyfrowanie 128 bitowe. Algorytmy 3DES, RC4, IDEA, MD5... Całość tak na oko (i po metadanych) z okolic 2004 roku i od tego czasu nikt nie poświęcił czasu na aktualizację opisu.

I teraz, uwaga:

  • (ciągle) pamiętam tamte czasy,
  • pracowałem już wtedy w szeroko pojętej działce “security”, choć jeszcze nie do końca w application security,
  • pamiętam, że tak rzeczywiście wtedy wyglądały kwestie bezpieczeństwa i kryptografii; pamiętacie jeszcze Microsoft Internet Explorer High Encryption Pack?
  • mój rower, który wczoraj oddałem do serwisu, jest tylko o rok młodszy (Corratec X-Vert Deore).

Z wymienionych tutaj rzeczy najlepiej upływowi czasu oparł się chyba mój rower, choć IDEA radzi sobie też całkiem nieźle.

Oryginał tego wpisu dostępny jest pod adresem Bardzo dawne czasy co były niedawno

Autor: Paweł Goleń

The Origin of Stuff: Fork. Skandal! Ani słowa o tym kto kogo uczył jeść widelcem!

Oryginał tego wpisu dostępny jest pod adresem Fork

Autor: Paweł Goleń