Lubię od czasu do czasu zasiąść za klawiaturą i pobawić się w generowanie losowych spacerów, o czym starsi Czytelnicy zresztą dobrze wiedzą i już zaczynają ziewać (chociaż jeszcze porządnie nie zacząłem).
Tym razem zamiast produkować pierdylion obrazków, zrobiłem sobie skrypt, który generuje jeden obrazek dziennie i zapisuje go w folderze Apacza. Apacz z kolei, za pomocą prostego widżetu HTML, łapie ów obrazek i prezentuje go na marginesie blogu. Et voila!
Generowanie obrazka jest wołane ze skryptu w bash
, który aktywuje właściwe środowisko wirtualne Pythona, następnie uruchamia skrypt w Pythonie, który wylicza trasę i produkuje plik .png
w lokalnym folderze. Następnie plik ów jest kopiowany do folderu www Apacza i w ostatnim kroku zmieniamy mu właściciela ze mnie na www-data
, żeby się go dało wyświetlić na wuwuwu.
Środowisko wirtualne jest potrzebne, bo skrypt Pythona używa kilku bibliotek, nieistniejących w instancji systemowej:
matplotlib
do narysowania spacerunumpy
iscipy
do "wygładzenia" trasy spacerusympy
do sprawdzenia pierwszości numeru bieżącego kroku (żeby zmienić kierunek zakręcania na przeciwny - bez tego wszystkie spacery zakręcają cały czas w prawo i jest nudno)
Ponadto, wyłącznie dla sportu, pokazuję na wykresie długość całej trasy, a także odległość między początkiem a końcem.
Któraś z pierwszych wersji skryptu podróżowała po torusie (pionowe krawędzie "sklejone", podobnie jak poziome), ale dla niektórych dat generowało to strasznie nieczytelne trasy, więc teraz wykres jest po prostu przeskalowany tak, żeby się zawsze zmieścił w całości, bez zawijania.
Po co to wszystko?
Bo się da!
Szczegółami technicznymi być może podzielę się w innym wpisie, jak mnie wena najdzie. Póki co - proszę po prostu podziwiać.
(Pana w ostatnim rzędzie uprasza się o zasłanianie ust przy ziewaniu!)
Jeżeli chcesz do komentarza wstawić kod, użyj składni:
[code]
tutaj wstaw swój kod
[/code]
Jeżeli zrobisz literówkę lub zmienisz zdanie, możesz edytować komentarz po jego zatwierdzeniu.