Nextbike monitorowany

Rowery miejskie w Poznaniu, mimo swoich niedoskonałości, stały się na tyle popularne, że ich liczba na poszczególnych stacjach czasami spada w okolice zera. Jak tylko dowiedziałem się, że Nextbike udostępnia aktualizowane na żywo informacje dotyczące rowerów na poszczególnych stacjach (duże, naprawdę duże brawa i szacun), wpadłem na pomysł, że fajnie byłoby mieć dostęp do danych przez komórkę (stara Nokia 3110c, Opera mini) w lekkiej i wygodnej formie. Po prostu od razu łatwo sprawdzić, ile jest rowerów na której stacji Nextbike, czy jest sens iść na daną stację, czy lepiej na tramwaj, albo pieszo, bo roweru raczej nie znajdziemy.

Ponieważ oryginalny XML jest dość ciężki (~250 kB, szczegółowe dane o wszystkich krajach, miastach i stacjach), postanowiłem wyciągać z niego tylko najważniejsze dane i tylko dla Poznania, a następnie wrzucać do lekkiego HTML.

Aktualnie powstało coś takiego: dostępność rowerów Nextbike w Poznaniu.

Działa prosto: wget i mały skrypt perlowy z użyciem modułu XML::Simple (przyznaję, przez ułamek sekundy chciałem to opędzić grep + awk), wywołanie z crona co 5 minut (mógłbym częściej, ale póki co nie widzę sensu, szczególnie, że na razie tylko ja korzystam) i wyplucie wyniku do statycznego HTML. Jest data aktualizacji, są kolory. Nie jest piękne, pewnie się nie waliduje, ale jest b. lekkie (całość aktualnie waży ok. 500 bajtów, docelowo – pewnie dodam trochę tekstu – mniej, niż 1kB) i działa. Liczę na komentarze dot. funkcjonalności i wyglądu.

PS. Coś dawno nie wypożyczałem roweru…

UPDATE: Za sprawą Sternika nie zaciągam już 250 kB, tylko od razu dane dla danego miasta – częstotliwość zmieniona co minutę. I nieco inny URL wykorzystuję. I w ogóle polecam wpis Sternika o Nextbike (wersja live, wersja IVR i za moment być może wersja z Google maps).

Czy to naprawdę kod źródłowy tego programu?

Polecam cały artykuł Is that really the source code for this software? a dla niecierpliwych lub niespikających krótkie streszczenie. Wiele wolnego oprogramowania przychodzi w postaci binarnej. Dołączony jest do niej kod źródłowy w teorii odpowiadający dokładnie temu, z którego zostały zbudowane wersje binarne. Zagadnienie jest ważne zarówno z punktu widzenia wolności oprogramowania, jak i bezpieczeństwa.

Autor ww. artykułu postanowił sprawdzić, jak to wygląda w praktyce dla popularnych dystrybucji Linuksa (Debian, Fedora, OpenSUSE). Na przykładzie tak prostego oprogramowania jak tar. Wykorzystał do tego celu minimalne instalacje systemu, korzystał ze źródeł dostarczonych w dystrybucjach i metod budowania zalecanych przez dystrybucje.

Wyniki są dość zaskakujące: ani razu nie udało mu się uzyskać dokładnej (bit w bit) kopii tego prostego przecież pakietu wykorzystując kod źródłowy.

W przypadku Debiana różnice były minimalne (data i id buildu w plikach wykonywalnych), w przypadku OpenSUSE było gorzej. Powstałe pliki binarne były 5 razy większe od oryginału. Po wykonaniu strip na wersjach binarnych sytuacja wyglądała już podobnie jak w przypadku Debiana. Najgorzej wypadła Fedora – nie tylko różnic było najwięcej, ale autorowi artykułu nie udało się ustalić przyczyn wszystkich rozbieżności . Jak pisze „niełatwo stwierdzić, czy samodzielny build ze źródeł będzie funkcjonował identycznie, jak opublikowana wersja binarna z dystrybucji”.

W przypadku skomplikowanych pakietów i projektów luźniej podchodzących do kwestii wolności oprogramowania, niż dystrybucje Linuksowe (np. firmware routerów z wykorzystaniem wolnego oprogramowania – często zamieszczają kernel, ale zwykle jest to wersja waniliowa wzięta na żywca z kernel.org…) różnice będą jeszcze większe. Gdyby ktoś znalazł komentarz RMS do sprawy, proszę o linka – bardzo jestem ciekaw, co ma do powiedzenia w tej sprawie.

UPDATE: Problem czy to naprawdę kod źródłowy danej binarki został dostrzeżony i doceniony, idea reproducible builds stała się popularna.

Domena debian-multimedia.org przejęta.

Zespół Debiana donosi, że domena debian-multimedia.org, pod którą wcześniej było dostępne nieoficjalne, lecz popularne repozytorium pakietów, wygasła, a obecnie została przejęta przez osobę niezwiązaną z projektem.

W związku z tym, wszystkie repozytoria odwołujące się do niej powinny być usunięte z sources.list, gdyż zachodzi możliwość przedostania się w ten sposób do systemu złośliwego kodu.

Aby sprawdzić, czy w systemie są one aktualnie obecne, można wykonać polecenie:

grep debian-multimedia.org /etc/apt/sources.list /etc/apt/sources.list.d _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="https://zakr.es/piwik/"; _paq.push(['setTrackerUrl', u+'matomo.php']); _paq.push(['setSiteId', '10']); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript'; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); })();