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 (dead link, wersja live, wersja IVR i za moment być może wersja z Google maps).

Git for dummies, czyli kolejna ściągawka z gita.

Logo Git

Źródło: http://git-scm.com/downloads/logos

System kontroli wersji git nie jest taki trudny, jak się może wydawać, ale faktem jest, że trochę bardziej skomplikowany niż cvs czy svn. Ponieważ z gita korzystam na tyle rzadko, że zawsze było wymyślanie koła od nowa i szukanie ściągawek, to dla mej pamięci własna szybka ściągawka z gita.

git clone – tworzy lokalną kopię zdalnego repozytorium

git pull – aktualizuje zmiany ze zdalnego repozytorium

git branch rozie – tworzy gałąź o nazwie rozie

git checkout rozie – przechodzi do gałęzi rozie

git add plik – dodaje plik do systemu kontroli wersji w aktualnej gałęzi

git commit plik – zatwierdza (wprowadza do systemu kontroli wersji) zmiany w pliku

git merge rozie – łączy gałąź rozie z bieżącą gałęzią

git status – podaje jaki jest status, czyli co się zmieniło w danej gałęzi

git push – wysyła zatwierdzone lokalnie zmiany do zdalnego repozytorium

git branch -d – usuwa gałąź lokalnie

git branch – wyświetla wszystkie gałęzie

I w zasadzie powyższe polecenia wystarczają, by w podstawowym zakresie korzystać z git. W sumie średnio się to na wpis nadaje (nawet kategorii nie mogę znaleźć) i może kiedyś przeniosę w sensowniejsze miejsce…

Stare projekty.

Mam parę skryptów (oczywiście Perl), albo nawet raczej szkieletów skryptów, których nigdy nigdzie nie publikowałem, bo były w fazie „takie tam niedokończone”. Powodów niedokończenia jest sporo – poczynając od kłód rzucanych pod nogi (tak, patrzę na Blox), poprzez jakieś takie rozmycie mojego zapotrzebowania wewnętrznego, brak czasu[1], po zwykłą zmianę warunków zewnętrznych.

Czasem jest taki miły moment, że okazuje się, że to ma sens i w ogóle się przyda. Przynajmniej potencjalnie. To nic, że pewnie rok czy dwa później. Ogólnie miałem do tego skrypt! jest miłym momentem. Nawet jeśli ów skrypt wymaga lekkiego – albo nie tak lekkiego – tuningu.

Tak czy inaczej jest motywacja do ciągu dalszego zabaw ze słowami. Niestety, skrypt w tego typu wypadkach to tylko wisienka na tort, jest też spora praca do wykonania przez człowieka. Przypomina mi się liceum i konkurs w radio, polegający na tym, by z podanego czteroliterowego słowa utworzyć jak najdłuższy ciąg kolejnych słów w taki sposób, by słowa się nie powtarzały i różniły tylko jedną literą. I jeszcze chyba ograniczenie do rzeczowników było. Czyli lupa -> zupa -> kupa -> kopa… No ale wtedy nie było(?) tyle dobra w sieci. 😉

[1] Doba ma tylko 24h, a tydzień tylko 7 dni. Jakby to było 26 i 8, byłoby znacznie lepiej.