Rockbox 3.14

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

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

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

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

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.