Noworoczne porządki

Postanowień noworocznych brak, ale zmiana roku na 2022 to dobry moment na porządki informatyczne z jednej strony, a na ich zapowiedź – w roli motywatora – z drugiej.

PUM

Zaczęło się od informacji na IRCu, że PUM przestał działać[1]. Przyczyną okazała się cicha zmiana API przez Uptime Robot. API v2 to większe zmiany, niż sądziłem – część danych przekazywana jest teraz w payload w POST, pojawił się limit zapytań w czasie, lekkie zmiany formatu danych. Nie wiem, czy pierwsza wersja umiała zwracać dane w JSON, v2 potrafi. Rzut oka na Perla i wiedziałem, że raczej do przepisania na Pythona[2], przy okazji parę zmian i… trochę utknąłem. Mam „większą połowę” zrobioną, obecnie jestem rozdarty między chęcią zachowania dokładnej starej funkcjonalności, a napisaniem tego bardziej elegancko. W ogóle trochę uderza mnie oglądana z perspektywy zwięzłość Perla.

Zrobiłem. Nie jestem w 100% zadowolony, ale pum.pl is dead, long live pum.py!

Nextbike

Monitoring ilości rowerów Nextbike na stacjach zacząłem w roku 2013. W roku 2017 skrypt został przepisany na zgrabniejszego Pythona. O ile na początku zaglądałem regularnie, to obecnie praktycznie nie korzystam. Powód jest prosty: rzadko kiedy korzystam z rowerów na stacjach. Odkąd pojawiły się rowery z odbiornikiem GPS, niemal zawsze w praktyce biorę rower „z ulicy”, nie ze stacji. I tak go zostawiam. Po prostu niemal zawsze bliżej mam jakiś rower luzem. No i rzadko moja trasa kończy się na stacji Nextbike.

Co się udało w tym projekciku? Całkiem sporo: działał i był użyteczny, przynajmniej dla mnie, przynajmniej przez pewien czas. Pozwoliły poćwiczyć Pythona i zapoznałem się w praktyce z jinja2. Nauczyłem się, ile (nie)warte są „darmowe” domeny (tu: .tk).

Co się nie udało? Liczyłem, że stanie się popularniejszy. Nie udał się eksperyment z automatycznym SEO. Liczyłem, że dobrze otagowane strony z konkretnymi informacjami trafią wysoko w pozycje w wyszukiwarce Google. Nie było całkiem źle, ale gorzej, niż liczyłem, biorąc pod uwagę otagowanie metadanymi. Chęć zachowania maksymalnej prostoty i automatyzacji spowodowały, że nie dodawałem dodatkowej treści, mogącej pozytywnie wpłynąć na pozycjonowanie.

Wkrótce projekt przestanie istnieć – skrypt zostanie wyłączony i zapewne trafi na GH.

Hosting

Szykuje się zmiana platformy, na której utrzymuję hosting. VPS w Aruba Cloud podrożał jakiś czas temu i od tamtego czasu rozglądałem się niespiesznie za czymś innym. W zasadzie decyzja już zapadła i była pierwsza próba, niestety, weryfikacja kart w nowym miejscu jest lekko przesadzona. Ma szansę być szybciej, bo znacznie większe zasoby, ma szansę być wesoło, bo szykuje się przesiadka na architekturę ARM. Nie rozwijam tematu, bo zapewne zasłuży na osobny wpis.

Tyle z większych planowanych zmian. Od dawna wisi temat lekko przestarzałego softu do tworzenia Planety Joggera, ale na razie się nie pali – póki co system posiada jeszcze wsparcie.

[1] Tak, jest pomysł na drobną modyfikację we wszystkich skryptach tak, by przy błędzie wykonana powiadamiały np. mailem. Bo nie jest to pierwszy raz, kiedy o padzie czegoś z powodu zmian po stronie źródła dowiaduję się po długim czasie. Inna sprawa, że to nic krytycznego.
[2] Nazwa zostanie bo Perl Uptime Monitor -> Python Uptime Monitor.

Smogly – miernik poziomu smogu

Dużo ostatnio mówi się w mediach o smogu i zanieczyszczeniu powietrza, widzę też, że pomału wśród znajomych popularne stają się różnego rodzaju, mniej lub bardziej DIY, mierniki poziomu zanieczyszczeń powietrza. Niezależnie od tego, co słychać w mediach, istnieją oddolne obywatelskie inicjatywy, mające na celu monitorowanie zanieczyszczenia powietrza w miastach. Przykładem jest Smogly AKA EnviroMonitor.

Czym jest Smogly?

Celem projektu jest stworzenie otwartego, zarówno sprzętowo, jak i programowo, przystępnego cenowo rozwiązania do monitoringu zanieczyszczenia powietrza, zbudowanie społeczności zainteresowanej jakością powietrza i finalnie zbieranie danych z wielu punktów pomiarowych w celu tworzenia pełnego obrazu jakości powietrza, nie tylko w Polsce, choć większość twórców – o ile nie wszyscy – pochodzi z Polski.

Istnieją co prawda podobne rozwiązania, ale brakuje im przekrojowości. Przykładowo w Poznaniu są dwa czujniki zanieczyszczeń dostępne online – jeden na obrzeżach miasta, drugi w okolicach centrum, ale zanieczyszczenia potrafią się różnić znacząco między poszczególnymi rejonami miasta, nawet między sąsiednimi dzielnicami.

Projekt Smogly składa się z kilku części. Zasadniczą jest sam miernik jakości powietrza. Potrafi on mierzyć ciśnienie, wilgotność, temperaturę oraz zanieczyszczenie pyłami PM 2.5 oraz PM 10. Czujnik przeznaczony jest do samodzielnego montażu (DIY) i wysyła dane do serwera łącząc się z internetem przy pomocy WiFi. Można skorzystać z własnego serwera lub – co jest lepszym rozwiązaniem – wysyłać dane do serwera utrzymywanego przez twórców projektu.

Koszt części (bez obudowy) szacowany jest na ok. 150-200 zł. Nie jest to dużo, biorąc pod uwagę, że – jak
zapewniają twórcy – pomiary były konfrontowane z wykonywanymi przez WIOŚ i różnice w przypadku wersji z grzałką, zapewniającą osuszenie powietrza przed pomiarem zanieczyszczeń, są na poziomie kilku procent.

Kolejne elementy układanki to wspomniany serwer, odbierający dane z sensorów, frontend, prezentujący dane w
przeglądarce oraz obudowa. Sonda badająca jakość powietrza musi być zamontowana na zewnątrz, do zasilania wystarcza zasilacz o prądzie 1A.

Czemu Smogly?

Wyróżniki Smogly na tle „konkurencji” są następujące:

  • montaż zewnętrzny, zapewniający realne dane nt. stanu powietrza w okolicy
  • grzałka, zapewniająca poprawne działanie także w warunkach zwiększonej wilgotności
  • usieciowienie, czyli zbieranie danych z różnych punktów do wspólnej bazy, możliwość odczytu wyników za pomocą np. smartfona
  • otwarty projekt, pozwalający na swobodne ulepszanie i dający nadzieję na utrzymanie i rozwój

Jak pomóc?

W tej chwili najpotrzebniejszą rzeczą są ochotnicy, którzy zbudują i zamontują czujki. Ambicją twórców projektu są 2-3 sensory w każdej dzielnicy, żeby zapewnić miarodajne wyniki. Na pewno projektowi przyda się nagłośnienie, więc jeśli macie znajomych interesujących się ochroną środowiska albo geeków interesujących się Arduino, to dajcie im znać. Podobnie dajcie znać znajomych zainteresowanych kupnem gotowego miernika – prawdopodobnie taniej mogą mieć urządzenie dokładniejsze, o większych możliwościach i bardziej użyteczne społecznie.

Przyłączyć się można za pośrednictwem GitHuba – standardowy flow pracy, czyli zgłaszanie issues,
forkowanie i pull requesty. Projekt korzysta również ze Slacka, dostępnego na zaproszenie – automat zapraszający dostępny jest tutaj.

Na koniec garść linków na temat pyłów smogu, mierzenia jakości powietrza PM10 i PM2.5:

  1. O pyłach PM2.5 i PM10 https://airnow.gov/index.cfm?action=aqibasics.particle
  2. Artykuł na Wikipedii https://en.wikipedia.org/wiki/Particulates
  3. Strona projektu Smogly https://github.com/EnviroMonitor
  4. Wpływ zanieczyszczeń na zdrowie http://smog.imgw.pl/content/health
  5. Dopuszczalne normy zanieczyszczeń powietrza http://smog.imgw.pl/content/norm
  6. Poziomy zanieczyszczeń PM2.5 i PM10 online: http://aqicn.org/

Statystyki hitów Wykopu

Przy okazji startu Vagli do Senatu w pewnym momencie pojawiły się spekulacje nt. zasięgu Wykopu. Tzn. do ilu ludzi można dotrzeć przy pomocy tego serwisu, jeśli doda się ciekawe znalezisko. W pewnym momencie popełniłem analizę zasięgu Wykopu,. Ponieważ było to działanie jednorazowe, postanowiłem podejść do sprawy bardziej systematycznie, tym bardziej, że wartości były raczej niskie.

Postanowiłem zrobić automat, które będzie liczył statystyki Wykopu. Prosty skrypt w Perlu zbiera dane o wszystkich znaleziskach, które są na stronie Hity (czyli, zakładam, że są najlepsze). Następnie pobiera bezpośrednio z nich interesujące dane (wykopy, zakopy, wyświetlenia) i pakuje do bazy danych. Dzięki temu miałem nie tylko dane maksymalne, ale także dynamikę zmian w czasie. I w sumie na moje potrzeby to wystarczało, ale ponieważ rozmawiałem ostatnio z ludźmi, to stwierdziłem, że warto się podzielić.

Efekt można zobaczyć tutaj. Strona zawierająca statystyki Wykopu generowana jest raz na godzinę i jest bardzo uproszczona. Sortowanie malejąco po ilości wejść. Nie ma informacji o zakopach (żaden problem dodać, ale po co zaciemniać?), nie ma żadnych danych nt. dynamiki. Robiłem przymiarkę do prezentacji tych danych, ale wygląda brzydko i mało czytelnie, więc na razie odpuszczę.

Z ciekawostek – patrzyłem na Wykop i w pewnym momencie przy sortowaniu pojawia się słowo diggs. Doczytałem w Wikipedii, że Wykop jest/był klonem serwisu digg.com. Zastanawiam się, czy przypadkiem nie dzieli z nim (części) kodu źródłowego?