Menu

Pomiędzy bitami

Techno, porno i duszno. Blog niezupełnie technologiczny.

Bez reklam na przeglądarkach mobilnych (Chrome, Focus)

rozieblox

Wygląda, że szykuje się lekka rewolucja w mobilnej części internetu. Wersja testowa (canary) Chrome w wersji mobilnej wyposażona jest przez producenta w blokowanie inwazyjnych reklam. Zobaczymy jak to w praktyce wyjdzie, ale wygląda, że szykuje się zmiana zasad gry - de facto oznacza to kontrolowanie rynku reklam przez dostawcę przeglądarki, będącego przy okazji jednym z większych (o ile nie największym) graczy na rynku reklamy w sieci. Podobna zmiana jest zapowiedziana dla wersji desktopowej na początek roku.

Firefox Focus już w tej chwili ma podobne rozwiązanie - wbudowana blokada reklam i ochrona prywatności. Przy okazji, przetestowałem Focusa i wygląda on bardzo zachęcająco. W przeciwieństwie do Firefoksa jest lekki (~2 MB do pobrania) i działa żwawo. Czego o Firefoksie (no dobrze, rok temu, nie wiem jak teraz) powiedzieć się nie dało, więc na smartfonie korzystałem z Chrome. W każdym razie Focus domyślnie blokuje reklamy, nie ładuje zbędnych części strony i czyści historię, co czyni tradycyjne ad-trackery bezużytecznymi. Chwilę poklikałem - jest szybko, jest wygodnie, strony wyświetlały się OK. Polecam, jeśli ktoś nie potrzebuje na smartfonie tabów w przeglądarce. Niestety nie widzę wersji dla desktopa ani kodu źródłowego.

Mam mieszane uczucia jeśli chodzi o korzyści dla użytkowników. Z jednej strony strony mają być szansę lżejsze, nie zamulać urządzeń zbędnymi javascriptami czy animacjami i ładować się szybciej, zużywając mniej transferu. Z drugiej strony, szczególnie w przypadku Google, nie mam złudzeń. Natura nie znosi próżni, więc reklamy nadal będą. Ale od Google (lub za ich zgodą). A Google i tak ma śmieci w reklamach AdSense. Podobnie ze śledzeniem - może strony nie będą w stanie tego robić, ale przeglądarka jak najbardziej... No i może historia zatoczy koło - albo płatna przeglądarka, albo wyświetlanie reklam? To już oczywiście było, w czasach płatnej wersji Opery.

W każdym razie właściciele stron stracą (znowu) trochę wolności.

Zasilaczowe perypetie cz. 1 - zasilacz do laptopa Dell

rozieblox

Na urlopie któregoś wieczora włączyłem laptopa (Dell Vostro 1440), a ten powitał mnie przy starcie komunikatem, że nie rozpoznał zasilacza. Dałem kontynuuj i myślałem, że na tym się skończy, ale szybko stwierdziłem, że to za mało. Laptop działał, ale bateria się nie ładowała. Dodatkowo, procesor działał z najniższym możliwym taktowaniem, czyli odpowiednik trybu powersave. Niezbyt komfortowe, delikatnie mówiąc. Sprzęt ma swoje lata (dokładnie pięć) i choć nie był zbyt intensywnie używany, to na urlopie po prostu wrzucałem zasilacz do plecaka, więc stwierdziłem, że może gdzieś się kabel złamał.

Próbowałem poruszać kablem w co bardziej newralgicznych miejscach, ale bez rezultatu. Ponieważ wiedziałem, że zasilacz jest sprawny, postanowiłem poczytać o wewnętrznej żyle, służącej do sygnalizacji. Z innych zabaw z zasilaczami do laptopów wiedziałem, że jest tam obecne napięcie. Liczyłem, że to tylko prosty dodatek i jest zmostkowane z plusem. Postanowiłem zapytać znajomych, czy tak jest faktycznie. Gdyby tak było, to plan był następujący - wziąć wtyczkę i gniazdo i zrobić przedłużacz, który jednocześnie będzie mostkował plus z tą wewnętrzną żyłą.

Niestety, szybkie rozpytanie i rzut oka w wyszukiwarkę ujawniły, że jest to nieco bardziej skomplikowane: wewnętrzna żyła służy do komunikacji 1-wire zasilacza z laptopem. Natomiast sama usterka faktycznie jest popularna. Na tyle, że można kupić gotowe kable do przylutowania w zasilaczu. Tyle, że wspomniana przejściówka byłaby wielokrotnego użytku i prostsza w montażu...

Postanowiłem zmodyfikować podejście i zobaczyć, czy da się tani zrobić oszusta, czyli przedłużacz jak wyżej, ale udający zasilacz. Czyli trzeba by doczytać o komunikacji 1-wire na linii zasilacz-laptop i układach, które ją realizują. Już rozmyślałem, kto ze znajomych ma oscyloskop, ale sprawa okazała się o wiele prostsza. Ktoś już sprawdził komunikację, opisał format, a nawet zamieścił kod źródłowy i schematy. Tutaj znajdziecie cykl bardzo interesujących wpisów nt. komunikacji laptopów Dell z zasilaczami (oczywiście po angielsku) oraz repo GitHub. Jak widać autor również wpadł na pomysł przejściówki, tyle, że motywowany nieco inną potrzebą.

A jak się sprawa zakończyła u mnie? Nie zależy mi na debugu i zabawie, więc powyższe rozwiązanie nie bardzo ma sens ekonomiczny. Stosowne chipy do komunikacji 1-wire co prawda nie są drogie, bo - jeśli dobrze pamiętam - wychodziło ok. 2 zł za sztukę, ale w paczkach po 5-10 sztuk i przy sprowadzaniu z Chin. Dodatkowo trzeba jeszcze je zaprogramować, programator jest dość drogi, a nikt posiadający takie urządzenie nie przychodził mi do głowy.

Ponieważ korzystanie z laptopa na najniższym taktowaniu było zauważalnie męczące, nie bylem pewny, czy uda mi się otworzyć zasilacz w taki sposób, że złożę go z powrotem, a także nie miałem pewności, czy faktycznie chodzi o kabel, czy też może o uszkodzony układ do komunikacji, szybko kupiłem zastępczy zasilacz oraz... dwa kable. Planuję spróbować zreanimować stary zasilacz przez wymianę kabla - przy odrobinie szczęścia na parę lat starczy, a przejściówka... może innym razem. Kable dwa, bo od sprzedawcy zasilacza, więc wysyłka gratis, a kosztowały niecałe 5 zł za sztukę.

Przy okazji: otworzyć zasilacz do laptopa można wkładając nóż w szczelinę i delikatnie pukając w niego młotkiem. Sposób jest niestety inwazyjny, bo są one klejone - po naprawie trzeba albo skleić klejem (wersja trwała/ładna), albo złożyć i brzydko skleić taśmą z wierzchu.

Dokładność zegarków kwarcowych

rozieblox

Jakiś czas temu w komentarzach pod wpisem u Boniego zeszło na dokładność zegarków kwarcowych. Było o tym, że są znacznie dokładniejsze od mechanicznych. Poszperałem w sieci i znalazłem informacje[1], że chronometry (certyfikowane) mechaniczne, to dokładność -4/+6 sekund dziennie, natomiast kwarc (dowolny) to -15/+20 sekund miesięcznie.

Spostrzeżenie organoleptyczne było takie, że zarówno budzik Casio, naręczny MQ-24 oraz p zegarek naręczny reguluję dwa razy do roku - przy zmianie czasu. I żadnych niedokładności nie widzę, więc musi być jeszcze dokładniej w praktyce. Co prawda na sekundnik nie patrzę w żadnym z przypadków, ale różnicę rzędu minut czy też minuty mógłbym zauważyć.

Postanowiłem zrobić amatorski test dokładności mojego Casio naręcznego. Zsynchronizowałem czas na komputerze przy pomocy NTP[2], zatrzymałem zegarek z sekundnikiem rozpoczynającym minutę. W momencie zmiany minuty włączyłem zegarek naręczny. Czyli powiedzmy dokładność do jednej sekundy. Dla pewności zapisałem datę: 21 czerwca.

W trakcie testu zegarek był użytkowany - zaliczył wyjazd na wakacje, więc i trochę leżenia, i trochę noszenia, i trochę podgrzania na słońcu, chociaż kwarcom niespecjalnie takie rzeczy powinny robić różnicę.

Przedwczoraj, czyli 24 lipca, nadszedł czas na podsumowanie testu. Ponownie sprawdziłem synchronizację czasu na komputerze i sprawdziłem różnicę czasu. Wyniosła +5 sekund w ciągu 35 dni, czyli równo 1 sekunda tygodniowo. Poniżej minuty rocznie. Nic dziwnego, że mogłem nie zauważyć różnic pomiędzy regulacjami czasu.

[1] W wielu miejscach, generalnie zbieżne, niekiedy różniące się pojedynczymi sekundami. Nie zanotowałem niestety linków.

[2] Znaczy sprawdziłem, czy lokalny pokrywa się z czasem podawanym przez serwery NTP, bo zsynchronizowany jest cały czas - to chyba już domyślne na większości systemów, z komórkami włącznie.

UPDATE 28.09.2017 sprawdziłem ponownie. +15 sekund różnicy w 99 dni. Daje sekundę w 6,6 dnia, czyli odchylenie bez zmian.

5 porad na lepszy internet u wirtualnego operatora komórkowego

rozieblox

Od jakiegoś czasu korzystam w telefonie z wirtualnego operatora komórkowego (Virgin Mobile). Wcześniej korzystałem już z Aero2, który jest miksem operatora tradycyjnego i wirtualnego, a który z powodzeniem funkcjonuje jako podstawowy internet u rodziców. W stosunku do tradycyjnego operatora GSM jest trochę zmian o których warto wiedzieć bo wpływają na działanie internetu przez komórkę.

Główna zmiana to nadajniki. O ile w przypadku tradycyjnego operatora sprawa jest prosta - korzystamy z jego nadajników i zmieniać możemy najwyżej tryb - to w przypadku operatora wirtualnego możliwości i opcji po stronie sprzętu jest więcej. Poniżej kilka rad, które mogą pomóc uzyskać lepszy internet mobilny. Nic specjalnego i niezwykłego, ale chciałbym, żeby mi to wszystko ktoś rok czy dwa temu powiedział...

  1. Sprawdź, z jakich trybów i nadajników pozwala korzystać operator wirtualny. Zwykle jest to opisane w FAQ, jeśli będzie problem ze znalezieniem, można zapytać w BOK. Przyda się już za chwilę, w punkcie trzecim.
  2. Sprawdź w urządzeniach (w każdym z osobna), czy jest dozwolony roaming dla danych. Niektóre urządzenia zezwalają osobno na roaming krajowy (ten nas interesuje) i zagraniczny, w innych jest to proste włącz/wyłącz. Poza szczególnymi przypadkami, włączenie roamingu poprawia działanie internetu, a przynajmniej jego zasięg.
  3. Wymuś ręcznie połączenie z sieciami operatorów znalezionymi w pierwszym punkcie. Mój telefon uparcie twierdził, że T-Mobile jest forbidden i nie przełączał się automatycznie, mimo włączonego roamingu dla danych. Dopiero po ręcznym podłączeniu do nadajnika T-Mobile zapamiętał (na szczęście na stałe), że może się na nie przełączać.
  4. Jeśli planujesz przebywać w danym miejscu dłużej i potrzebujesz szybkiego lub stabilnego dostępu do internetu, również warto ręcznie przełączyć się między dostępnymi nadajnikami i sprawdzić w praktyce jak działa internet. Niestety nie ma prostej reguły - w jednym miejscu działa lepiej za pośrednictwem nadajników jednego operatora, w innym za pośrednictwem innego.
  5. Jeśli obserwujesz okresowe zrywanie połączenia z internetem, pomóc może tymczasowe wyłączenie roamingu dla danych i wybór operatora ręcznie.

Jeśli mamy lub planujemy kupić lepszy sprzęt i zależy nam na prędkości, można orientacyjnie zerknąć na mapę zasięgu LTE, jednak prawdę powie nam dopiero sprawdzenie empiryczne, niestety. Przy czym trzeba pamiętać, że sytuacja się zmienia, operatorzy planują wprowadzić (albo już wprowadzili) ograniczenia prędkości internetu przy dostępie w roamingu.

Bonus: jeśli ktoś korzysta z lokalnego proxy DNS i miewa problemy z dostępem do sieci to polecam lekturę tego wpisu na mikroblogu. Użycie DNS Google zamiast odpytywania bezpośrednio zdecydowanie poprawia sprawę. Zostawiam jako plotkę/ciekawostkę, bo nie drążyłem tematu póki co.

Koniec projektu Bananian

rozieblox

Twórcy dystrybucji Bananian, czyli modyfikacji Debiana dedykowanej dla Banana Pi, którą opisywałem, ogłosili blisko kwartał temu, że kończą działalność projektu. Powody standardowe - brak czasu, wynikający z tego brak supportu dla nowszych wersji sprzętu, konieczność przesiadki na wydanego niedawno Debiana 9 (nie, nie przegapiłem, ale czekam z notką na wrażenia z upgrade) i... lepsze wsparcie dla płytek w wersji 4.x kernela Linuksa.

Jako sugerowanego następcę wskazują dystrybucję Armbian, która wspiera wiele płytek opartych o ARM (m.in. Banana Pi, Orange Pi, Odroid) i którą już wcześniej zachwalali znajomi, ale... skoro byłem zadowolony z Bananiana, to nie było potrzeby korzystać. Armbian występuje w dwóch wersjach - opartej na Ubuntu, dedykowanej na desktop oraz opartej na Debianie, dedykowanej na serwery.

Bananian nie jest całkowicie porzucany, wersja 16.04 nadal będzie otrzymywać, do kwietnia 2018 aktualizacje bezpieczeństwa. Przesiadka jest zatem zalecana, ale nie ma pośpiechu.

Ilość rowerów Nextbike na stacjach - reaktywacja

rozieblox

Dawno temu pisałem o monitoringu rowerów Nextbike na stacjach. Moja strona podająca aktualną ilość rowerów miejskich na stacjach Nextbike działała do kwietnia tego roku, po czym przestała odświeżać dane. Jest to o tyle niefajne dla mnie, że appka androidowa Nextbike i jej wyszukiwanie rowerów to jakaś kpina i zdecydowanie łatwiej i szybciej znajdowałem potrzebne dane u siebie. Albo po prostu I don't like the bugs but the bugs like me, czyli znowu mam pecha i u mnie nie działa. W ogóle o appkach na Androida, zwłaszcza polskich wypadałoby już popełnić osobny wpis...

Poczyniłem szybki debug i okazało się, że Nextbike zapytany o konkretne miasto zwraca od niedawna błędny XML, zawierający zawsze także dane dla Indii. Zgłosiłem błąd mailem, co wiązało się z zabawną sytuacją, bo po pierwsze zostałem przez centralę wzięty za pracownika (chyba raczej stażystę) firmy Nextbike i odesłany do innego pracownika, który może założyć ticket w systemie. Padło też pytanie, a skądże to ja mam namiar na ten URL (przypominam, mający official w nazwie). No cóż, URL lata w wielu miejscach w sieci...

W każdym razie błąd został zgłoszony, a dane się nie pokazywały. Próbowałem na szybko zreanimować skrypt w Perlu, ale albo zmian było więcej, albo nie do końca umiem korzystać z tej biblioteki. W każdym razie poległem, a na dłuższe grzebanie w Perlu nie miałem ochoty. Przy okazji niegdyś poukładany kod wydał mi się już nie taki fajny i w sumie można by go przepisać...

Wczoraj zrobiłem przymiarkę do napisania tego w Pythonie. Okazało się, że bez problemu jestem w stanie parsować XML. Przy okazji zrezygnowałem z pobierania danych dla każdego miasta oddzielnie - miast jest na tyle dużo, że szybciej jest pobrać plik XML raz. Skoro zapowiadało się tak fajnie, to od razu postanowiłem przerzucić konfigurację z hasha w programie do pliku YAML. A skoro szło tak fajnie, to zmieniłem "template", zaszyty w printach w skrypcie, na Jinja2, przy okazji mając pierwszy praktyczny kontakt z tym rozwiązaniem, bo wcześniej "korzystałem" z niego tylko w template'ach dla bloga opartego o Pelican. Bardzo fajne, rozbudowane bardziej, niż przypuszczałem i jednak rządzące się swoimi prawami. W każdym razie mniej oczywiste niż mi się wydawało do tej pory.

Skoro szło tak dobrze, to dorzuciłem pięć kolejnych miast (Pszczyna, Zgierz, Kędzierzyn-Koźle, Kołobrzeg i Tychy), bo tyle pojawiło się od kwietnia. Oczywiście już nie do skryptu, tylko do prostego w utrzymaniu pliku z konfiguracją. :-) Całość zapakowana w virtualenv oczywiście, dla przenośności.

Ze skryptu nie jestem w 100% zadowolony - pewnie można go jeszcze uprościć, ale... może kiedy indziej, tym bardziej, że mógłbym jeszcze uzupełnić dane o geolokalizacji i pewnie gdzieniegdzie zostało błędne kodowanie znaków. Póki co, strona z ilością rowerów znowu działa. Ciekawostka - wszystkie pliki (skrypt, konfig, dane o wymaganych modułach) mają tyle samo linii co oryginalny Perl (TBH żadne nie było specjalnie sprzątane czy optymalizowane pod kątem wielkości), a jest o niebo czytelniej i prościej.

Internet bez kabla

rozieblox

Raspberry Pi radzi sobie w połączeniu z modemem Huawei 3131 (stara wersja) zaskakująco dobrze jako router do Aero2 (wariant płatny). Przesiadka z Banana Pi nie była całkiem bezproblemowa - internet w domu co prawda działał, ale straciłem zdalny dostęp przy pomocy autossh. Diagnostyka była prosta - okazało się, że nie wystarczy skopiować skrypty i crony, warto jeszcze sprawdzić, czy autossh jest w ogóle zainstalowane...

Prawdopodobnie przez brak nawiązanego połączenia SSH zmienia się IP i przesyłanych (a w zasadzie zliczanych) jest więcej danych podczas okresowego (co 5 minut) wywoływania wget w ramach namiastki dyndns. Znaczy zamiast jednego pakietu 3GB po 5 zł sztuka miesięcznie schodzą dwa. Można kupić więcej od razu, więc żaden problem, zresztą i tak raczej się zdziwiłem, że na początku mieścili się w jednym.

Internet z GSM działa przyzwoicie. Nie zauważyłem ani specjalnych lagów, ani spowolnienia. Co prawda może to być kwestia porównywania ze starym pakietem, ale póki co skłaniam się ku teorii, że jestem w stanie przesiąść się w domu całkowicie na internet bezprzewodowy, po GSM. Przynajmniej technologicznie, bo ceny wyższych pakietów jeszcze nie zachwycają. Poza tym, LTE działa podobno jeszcze lepiej...

Pozostało dołożenie drugiego modemu z internetem od innego operatora, uruchomienie abcc do wybierania aktualnie lepszego (i działającego) łącza i... tyle. No, muszę przerobić jeszcze wywoływanie autossh, bo zrobiłem proste @reboot w cronie, co słabo się sprawdza w przypadku zerwania sesji - raz się jednak pakiet Aero2 skończył i trzeba było doładować, a jak się nie zrobi tego od razu, to się zapomina.

Oczywiście można kombinować jeszcze z wyniesieniem modemów GSM w lepsze miejsce, podpięciem anten itp. ale... po co komplikować, skoro działa? Z drugiej strony byłby pretekst do zabawy z antenami i potestowania wpływu siły sygnału GSM na prędkość działania internetu.

Podsumowanie DSP2017

rozieblox

No i po pierwszej rundzie DSP2017. Zgodnie z przewidywaniami nie dostałem się do rundy drugiej. Cieszy mnie, że dostało się tam dwóch z trzech kandydatów, na których głosowałem. Szkoda tylko, że nie było opublikowanych pełnych wyników pierwszej tury, a jedynie wyniki top25, czyli przechodzących do tury drugiej. Chętnie bym zobaczył rozkład ilości głosów.

Zadowolenie z konkursu? 75% - zmotywował mnie do urzeczywistnienia abcc, którego będę używał, nauczyłem się paru rzeczy związanych z Pythonem, poprawiłem środowisko do kodowania w domu (czytaj: pluginy do Atoma). Na mój gust nieco za dużo obowiązkowego blogowania jednak. No i projekt nie otrzymał zamierzonej formy. To ostatnie jest poniekąd spowodowane wymogiem pisania postów - parę razy było tak, że wybierałem między obowiązkową notką a napisaniem kawałka kodu...

Czy wezmę udział w kolejnej edycji (o ile będzie)? To zależy od trzech czynników. Pierwszy, to czy będę miał jakiś pomysł. Drugi, czy będzie wymagane aż tyle wpisów. Ostatni - termin. Jest wiosna, ciepło, nie ma sensu siedzieć w domu przy kompie, lepiej wyjść na zewnątrz i poruszać się trochę.

DSP2017 - głosowanie

rozieblox

W trakcie konkursu pisałem o projektach, które przykuły moją uwagę. Niestety, przyznaję, że nie udało mi się siąść i uczciwie przejrzeć wszystkich projektów, stąd brak kolejnych części. Dlatego, choć część z powyższych projektów znajduje się w gronie finalistów, postanowiłem zagłosować inaczej.

Bezpośrednim motywatorem były statystyki stworzone przez Cezarego. Metoda wyboru kandydatów do głosowania była prosta - sortowanie po ilości gwiazdek projektu na GitHubie i szukam czegoś ciekawego. Czemu tak? Głównie, żeby docenić przydatne projekty i zminimalizować wpływ części związanej z blogowaniem. Ostatecznie GitHub to social network, DSP2017 minie, a GH zostanie. Dlatego zachęcam do interakcji tamże.

Aktualizacja Androida

rozieblox

Na wstępie uprzedzam - to nie poradnik, to marudnik. Z uwagi na drastyczne sceny nie polecam lektury ludziom o słabych nerwach.

Zaczęło się od tego, że zaczęło ginąć miejsce w telefonie. Wyglądało to nieco podobnie jak w przypadku opisanym kiedyś - zajęta niby połowa miejsca, a niczego zainstalować nie sposób. Poza tym, niedawno ukazała się aktualizacja systemu, którą spróbowałem zainstalować. Dotychczas przebiegało to bezproblemowo z poziomu telefonu, tym razem jednak aktualizację pobrał, zaczął rozpakowywać i... zdechł w trakcie. Prawdopodobnie na skutek skończenia się miejsca w trakcie aktualizacji, bo przecież sprawdzenie ilości wolnego miejsca, ze stosownym zapasem przed rozpoczęciem aktualizacji to trudna sprawa jest.

Byłem pewien, że zdechł całkiem, ale nie - uruchomił się w zgrabnym trybie wyglądającym miło i przyjaźnie - zupełnie jak konsola Linuksa. Z miejsca mi się spodobało. Sprawdziłem integralność instalacji (failed), mimo ostrzeżeń uruchomiłem normalnie i... wszystko działało, tylko w starej wersji. Zwolniłem znacznie więcej miejsca i spróbowałem jeszcze parę razy. Z tym samym skutkiem, więc może jednak nie o miejsce chodziło? Zapomniałem o sprawie na parę tygodni.

System pozwala na aktualizację na kilka sposobów. Pierwszy, z którego korzystałem, to pobranie aktualizacji z sieci. Drugi, to umieszczenie aktualizacji na karcie SD i wybranie odpowiedniej opcji. Tyle, że tryby działania karty są dwa, mocno rozłączne i związane z formatowaniem karty. Pierwszy, to zwykła karta do przenoszenia zdjęć, drugi, to pamięć wewnętrzna. Oczywiście, żeby zrobić aktualizację w tym trybie, karta musi być w trybie zwykłej karty SD, a ja miałem w trybie pamięci wewnętrznej. Zresztą, gwoździem do trumny dla tej opcji okazał się problem ze znalezieniem na stronie producenta aktualizacji do umieszczenia jej na karcie.

Z uwagi na problemy z integralnością instalacji i podejrzeniem uszkodzenia systemu plików, zacząłem rozważać pełen reinstall systemu, zamiast aktualizacji, która w ww. przypadku niekoniecznie musiała się udać. Co prawda na stronie producenta nie widziałem pełnych wersji do instalacji, ale stwierdziłem, że w sumie goły Android to nawet lepsza opcja może być. Zacząłem szukać wersji waniliowej albo jakiegoś CyanogenMod.

I tu zaczyna się horror show. Jakieś pliki wrzucone w jakieś miejsca, przez jakieś skracacze linków. Autor nieznany, treść niepodpisana cyfrowo. GPG jest przecież takie trudne, a malware'u dołożyć nie sposób. Do tego dziwne rozczłonkowanie i po modelach telefonów (pół biedy, jeśli oznaczenie jest dokładnie to samo), i po plikach. Totalne puzzle.

Dla pewności sprawdziłem jeszcze raz stronę producenta, czy aby nie przegapiłem gdzieś obrazu czy czegoś w ten deseń. No jednak nie. Postanowiłem zatem uznać wyższość Windows i skorzystać z aplikacji do aktualizacji dostarczanej przez producenta. Instalacja bez problemu, ale po podłączeniu telefonu system... zapragnął sterownika. W trakcie instalacji "się przerwało" i musiałem odczynić jakiś cyrk, żeby ponownie go wykrył. Oczywiście logów czy sensownych komunikatów brak.

Po wykryciu telefonu i instalacji sterowników pozostało już tylko wybranie modelu (nie żeby przed chwilą nie był wykryty, prawda?) i zaczął się pobierać system. A potem zaczął się wgrywać na telefon. Radosny komunikat na ekranie głosił, że gdyby rozłączył się w trakcie, to należy wyjąć z niego baterię i podłączyć ponownie. Chyba nie do końca umiem korzystać z Windows, bo za nic nie potrafiłem stwierdzić czy jest podłączony, czy nie. Możliwe, że nie dość uważnie wpatrywałem się w diodę dysku czy wsłuchiwałem w szum wentylatora. W każdym razie po kilkunastu minutach bez postępu stwierdziłem, że chyba nastąpiło rozłączenie. Oczywiście logów czy jasnego komunikatu na ekranie nie ma, bo po co?

Słusznie stwierdziłem! Wyjąłem baterię podłączyłem ponownie i... cały proces zaczął się od początku. No dobrze chociaż, że wykrył pobrany już plik. Tym razem flashowanie dotarło do szczęśliwego finału. Restart telefonu i... Zamiast wersji najnowszej, jest ta, którą miałem wcześniej. Ale system czysty, więc połączyłem się z siecią WiFi i tym razem aktualizacja do naprawdę najnowszej dostępnej wersji przebiegła już bez problemu.

Cel został osiągnięty. W jedyne dwie godziny. Czy tam dwie i pół.

Rockbox 3.14

rozieblox

Nie sądziłem, że kiedykolwiek napiszę jeszcze coś w tym temacie, bo projekt Rockbox wyglądał na martwy, ale wczoraj dowiedziałem się, że blisko miesiąc temu, po ponad czterech latach od ostatniego wydania, ukazała się kolejna stabilna wersja alternatywnego oprogramowania dla odtwarzaczy mp3. Pełna lista zmian w Rockbox 3.14 dostępna jest tutaj, z ciekawszych IMO rzeczy: poprawki wydajności systemu plików i bazy danych, dostępna gra 2048 jako plugin oraz niemal podwojona(!) długość pracy na baterii dla AMS v2 devices (Sansa Clip v2, Clip+, Clip Zip, and Fuze v2).

Już zaktualizowałem urządzenia. :-)

MVP

rozieblox

Wygląda, że projekt abcc mający za zadanie automatyczny wybór najlepszego łącza pod Linuksem właśnie stał się MVP. Znaczy można zdefiniować konfigurację, wrzucić do crona (na razie to skrypt, nie demon) i... powinno działać wg konfiguracji. Czyli można testować. :-)

Jak pisałem w poprzednim wpisie, nie jest to wersja w 100% zgodna z założeniami, czyli nie jest skończona, ale... działa. Przynajmniej teoretycznie. Poza tym, co jest w issues.

W poprzednim wpisie celowo nie poruszyłem tematu stacji testowej. Doszedłem do wniosku, że to overkill. Jest za to mocne postanowienie uruchomienia tego na produkcji. Tak zwyczajnie i po prostu, tylko muszę najpierw poprawić konfigurację routera u rodziców, by mieć do niego zdalny dostęp.

W najbliższym czasie jeśli będą zmiany, to raczej dotyczące stylu, niż funkcjonalności. A z wpisów na blogu w tej kategorii - chyba już tylko podsumowanie DSP2017.

W zasadzie koniec

rozieblox

DSP2017 kończy się w najbliższą środę. W moim projekcie zastój i marazm - trochę bardziej zmęczony z pracy przychodzę w tygodniu, trochę za dobra pogoda w pozostałym czasie, trochę co innego zaprząta głowę, kupiłem też trochę książek...

Ostatnio został dorobiony licznik postów i... pojawił się mały motywator, bo okazało się, że na liczniku jest 19 postów. Znaczy być powinno, bo okazało się, że są problemy ze zliczaniem. Pojawiła się prośba o zwiększenie ilości postów w feedzie ale oczywiście Blox na takie fanaberie nie pozwala. Z kolei mój skrypt do tworzenia feeda dla pojedynczej kategorii[1] nie został niestety wyposażony w logowanie wyjścia. Co po namyśle uznałem za średnio roztropne, ale trudno, mleko się rozlało. Gdybym miał teraz koniecznie wygenerować pełny feed to albo muszę napisać generator, albo tymczasowo wyeksportować bloga z Blox na WordPressa (ma się sposoby ;-)). No ale wygląda, że nie jest to konieczne - wystarczyło zgłosić.

Tak czy inaczej, zakładając, że pozostałe posty spełniają wymogi konkursu (a powinny, bo tylko takie powinny być w kategorii), to ten wpis zamyka wymagane minimalne dwadzieścia wpisów.

Co się zmieniło? Skrypt nadal nie jest skończony, nawet w wariancie minimalnym, ale dowiedziałem się, że nieprawidłowo korzystałem z logowania. Pozbyłem się też tymczasowych printów na rzecz logowania, dodałem krótkie opcje, wygodniejsze w użyciu.

Co dalej? Na pewno chciałbym w ten weekend osiągnąć wersję minimalną, używalną z crona i aktualizacja opisu i dokumentacji. Kolejnym planowanym krokiem jest doczytanie o docstringach, dokonfigurowanie domowego Atoma i systemu tak, żeby działało sprawdzanie składni (włączyłem to w pracy - kosmos) i poprawki pod tym kątem. Raczej nie planuję skończyć przed wakacjami projektu w pierwotnie zakładanej formie - zwykle na urlopie mam dużo wolnego czasu wieczorami, więc może wtedy...

[1] Swoją drogą już niepotrzebny, bo opcja feeda dla pojedynczej kategorii wróciła na Blox.

Porównywanie tras

rozieblox

Dodałem porównywanie tras i poprawiłem logowanie, by było bardziej zgodne z założeniami. Nie jest to fragment kodu, który mi się szczególnie podoba i nawet nie testowałem go w praktyce (ech, przydałaby się stacja testowa...), ale oznacza to, że w zasadzie całość jest gotowa - zostało przełączenie routingu dla danej trasy, jeśli jest taka potrzeba i zrobienie demona. W zasadzie przełączenie może być analogiczne jak przy tymczasowej zmianie routingu dla pojedynczego IP - jeszcze przemyślę, czy na pewno tak jest.

© Pomiędzy bitami
Blox.pl najciekawsze blogi w sieci