Menu

Pomiędzy bitami

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

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.

Czytanie aktualnego routingu

rozieblox

Dodałem czytanie aktualnego routingu. Żadnej magii - wywołanie ip route i parsowanie regexpem tylko tych, które mają via. Raczej PoC i będą wymagane testy. I poprawki. Na pewno przydałoby się sprawdzanie, czy dana trasa jest zdefiniowana dokładnie raz. Zastanawiam się, czy słusznie używam check_output. W sumie bezpieczniej chyba przyjąć cokolwiek i najwyżej nie mieć dopasowania już po stronie skryptu, niż dostać wyjątek. Do przemyślenia później, na razie jest z czym iść do przodu.

PS Stacji chwilowo nie robię - naszło mnie na kodzenie.

Wybór najlepszego interfejsu

rozieblox

Dodana kolejna funkcja, zwracająca trasy i odpowiednie dla nich najlepsze interfejsy. Napisane na szybko rano, przetestowane i poprawione przed chwilą, bo nie wiem jakim cudem napisałem rano taki bezsens. Plan był znacznie bardziej ambitny, dzień zapowiadał się pięknie i nawet zaryzykowaliśmy bonusowy wypad do centrum handlowego Posnania celem nabycia oświetlania, ale...

Zanim przejdziemy do ale dygresja nt. owego centrum. Nie wiem co jest zrobione źle. Albo nie jest skończone i nie działają wentylatory, albo jakaś awaria czujników, albo... broken by design. W każdym razie efekt jest taki, że na dość luźnym parkingu, przy braku jeżdżących aut jest duszno i mocno śmierdzi spalinami. Pierwszą rzeczą po wyjeździe było gruntowne przewietrzenie auta, nie chcę myśleć co będzie przy większym ruchu...

Inne wtopa - oprogramowanie do znajdowania trasy na tabletach (oj, można się zgubić, można...) działa w oszczędnej (Poznań, prawda? ;-)) wersji demo, zachęcającej klientów do zakupu licencji. Albo poczekania. Profesjonalnie. Niestety, fotki nie zrobiłem, bo napis zdążył zniknąć, a trochę mi się spieszyło, więc nie uruchamiałem drugi raz.

Wracając do ale: brak czasu, sponsoruje bieg Wings for Life World Run (ciekawa formuła, swoją drogą, może kiedyś się skuszę?). Nie wiedziałem, że się odbywa, więc nie sprawdziłem trasy i na powrocie utknąłem w korkach. Pewnie nie wkurzałoby, gdyby nie fakt, że bieg najpierw blokował główną ulicę z jednej strony centrum, a potem... inną ulicę z drugiej strony centrum. Jak doczytałem później, w międzyczasie jeszcze trzecią ulicę. Generalnie wjazd do centrum w praktyce wyłączony na ponad godzinę (stawka mocno rozciągnięta...), miasto totalnie zablokowane, bo korki się skumulowały, podobno 800 aut stało na rondzie Śródka.

Nie wiem co za umysł wytyczył tak trasę, ale jeśli chce w ten sposób zniechęcić ludzi do biegów czy też tej konkretnej imprezy, to jest na doskonałej drodze. Bo rozumiem start w centrum, przebiegnięcie przez centrum i jakieś utrudnienia w ruchu, żeby biegacze "byli widoczni", ale totalna blokada centrum i pałętanie się biegaczy przez godzinę? Noż wyraz.

W każdym razie po godzinie stania w korku cała energia i chęć pisania czegokolwiek poszły się paść, więc tylko poprawki, ten wpis i tyle. Sondy dziś nie będzie.

PS Oświetlenie kupiłem.

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