Planeta – reaktywacja

Po nieco ponad kwartale od zatrzymania Planety Joggera, dojrzałem do jej przywrócenia. Nie jest to ta sama planeta, co wcześniej. Główna zmiana to silnik. Skręciłem w stronę o której pisałem czyli prosta planeta, gdzie będą tylko tytuły i daty wpisów. Może tekstowy fragment opisu, bez formatowania HTML.

Zmiana silnika spowodowała też parę zmian. Jest też kilka niedoróbek:

  • Lista blogów w stopce jest generowana dynamicznie. Tylko jeśli uda się pobrać feed, to blog się pojawi na liście źródeł. Wynika z pewnego uproszczenia działania po stronie silnika, może kiedyś zmienię. Albo może i nie zmienię, bo po co oszukiwać, że wpisy z danego źródła są pobierane, skoro nie są?
  • W przeciwieństwie do poprzedniej wersji nie są prezentowane pełne wpisy, a jedynie zajawki. Czyli wykorzystuję pole description z feedu. Powodów jest wiele, ale w sumie przy poprzedniej wersji była sugestia, żeby właśnie tylko zajawkę dawać i… wg mnie jest OK.
  • Nie będą pojawiały się obrazki/zdjęcia. Trochę jest to pokłosie punktu wyżej, a trochę ze względu na bezpieczeństwo.
  • Nie działa feed planety (choć jest linkowany). Nie zrobiłem na razie, ale będzie.

Z niewidocznych zmian: wylatuje kontener LXC, nie ma całego Planet Venus. Nie ma cache. Całość to obecnie jest jeden plik konfiguracyjny (YAML), dwa pliki template i jeden plik z kodem (Python). Uruchomić z crona, najlepiej z wykorzystaniem venv i… to wszystko. Działa szybciej. KISS

Jeśli chodzi o jak to jest zrobione, to silnik – albo raczej: silniczek – opublikuję wkrótce. Na razie przetestowałem działanie ręcznie, teraz uruchomiłem automatyczne odświeżanie z crona. Jeśli zauważycie błędy liczę na informację. Gdy wszystko będzie działało i dorobię generowanie feedu planety, wtedy publikacja kodu. Repo nanoplanet – chwilowo puste – już linkuję, żeby nie musieć aktualizować wpisu.

Dajcie znać jak się podoba i czy widzicie jakieś usterki.

PKP ewakuacja

W związku z drobną zmianą planów na firmowej integracji[1] okazało się, że raczej można wrócić wcześniejszym pociągiem. Trzy godziny różnicy to z jednej strony żaden dramat, szczególnie, jeśli pójdzie się coś zjeść, ale z drugiej strony po co lądować w domu po nocy[2]. Gdyby ktoś nie wiedział, to bilety IC można zmienić na inny termin, bezkosztowo. Wyzwaniem okazało się znalezienie miejsca i w zasadzie już odpuściłem, ale przy kolejnym sprawdzeniu jakieś jedno się pojawiło. Przebookowałem bilet i pojechaliśmy.

W pewnym momencie, raczej pod koniec podróży, bo w Jarocinie, pociąg stanął, a kumpel napisał, o 21:45 na komunikatorze[3], że chyba potrąciliśmy człowieka. Trochę pospekulowaliśmy czy może jednak awaria, bo pierwszy komunikat był dość enigmatyczny, a staliśmy dość blisko stacji. W końcu, po kwadransie podano informację, że miał miejsce wypadek z udziałem człowieka.

Czyli minimum trzy godziny opóźnienia. No ale jechał w moim wagonie terytorials. Gdzieś zniknął, a potem wrócił i obwieścił, że straż pożarna nas będzie ewakuować. Oczywiście skojarzyło mi się ze znaną pastą o Borach Tucholskich i terytorlialsach. No i wizja, że przyjeżdżają strażacy, w wozach, i kilkaset osób z pociągu przewożą na stację jakoś mi się nie kleiła. Nawet wykorzystanie ciężarówki wojskowej oznaczało wg mnie kilka-kilkanaście kursów. W międzyczasie sprawdziliśmy lokalny portal. Mieli artykuł o wypadku już pół godziny po fakcie.

Jednak strażacy przyjechali i zaczęli ewakuację pociągu. Przy drzwiach z przodu składu ustawili jakąś platformę i poinstruowano nas, żeby wychodzić, i że ze stacji pojedziemy innym pociągiem. Platforma składała się z solidnej podstawy, chybocącej się poręczy oraz ni to schodków, ni to drabinki na końcu. Nie było to dla nas wielkie wyzwanie, bo jak wspominam, wracaliśmy z gór. Rodziny z małymi dziećmi, starsi ludzie, posiadacze dużych walizek mogli być innego zdania, ale ponieważ wychodziliśmy jako jedni z ostatnich, nie dane mi było zaobserwować. Chyba nie było większych problemów, bo opuszczanie pociągu poszło sprawnie.

Obawy, że nie zmieścimy się w pojazdach okazały się bezpodstawne. Choć może w inny sposób niż myślałem. Nie było żadnych pojazdów. Po prostu wysłano nas kilkaset metrów[4] wzdłuż nieoświetlonych torów, po tłuczniu i podkładach. Górskie buty się przydały. Jak szli inni, z walizkami i dziećmi? No cóż… Po drodze pomogliśmy nieść wielką walizkę starszej parze(?), bo pani taszczyła ją na plecach. Niestety nie było z nami nikogo na wózku inwalidzkim, więc nie dowiedzieliśmy się jak w praktyce zostałaby potraktowana taka osoba.

W pewnym momencie zbliżyliśmy się na tyle do stacji, że tory były oświetlone, a w końcu dotarliśmy do początku peronu . Tam znowu czekali na nas strażacy, nieco oślepiając nadchodzących latarkami. I pomagali wejść na peron – nieco wysoko było. Starszy pan od walizki wydawał pewne okrzyki gdy go windowali do góry. Ciężko stwierdzić, czy bardziej ból czy strach, ale szczęśliwie dotarł na górę. Na pocieszenie usłyszał, że super mu poszło.

W tym momencie przyszło nam docenić fakt, że nie pada i jest przyjemny, dość ciepły wieczór. Mogło być gorzej. Po chwili pracownik kolei zapowiedział, że za 20-25 min przyjedzie po nas pociąg z Poznania. Z jednej strony peronu, na który nas wysłano był pusty tor, po drugiej stronie zatrzymał się pociąg IC jadący w przeciwnym kierunku. Czemu na stacji, czemu drzwi były otwarte i czemu ludzie palili w drzwiach i tuż przy nich, co powodowało załączanie czujek dymu i interwencje konduktorki, żeby nie palili w drzwiach – nie wiem.

Mogłem za to zaobserwować przekazanie pisemnego rozkazu odjazdu dla tego pociągu. Co prawda prawie udało się niektórym pasażerom nie wsiąść, mimo zapowiedzi i działań drużyny konduktorskiej[5], ale w końcu wsiedli i odjechali. I tu zaczęliśmy spekulować, że ten pociąg odjechał, żeby nasz mógł wjechać. Bo zapowiadane 25 minut minęło dobre pół godziny temu…

I faktycznie po dłuższej chwili przyjechał! Dla ułatwienia został podstawiony na peronie obok, więc zapraszamy schodkami do tunelu i schodkami na peron w ramach dodatkowych atrakcji. Dodam, że od wypadku minęły ponad dwie godziny, było po północy.

Wsiedliśmy do podstawionego pociągu, dostaliśmy wodę i wafelka (tak, dopiero teraz…) i bez przeszkód dotarliśmy do Poznania, już o 1:10 byliśmy na miejscu. Pocieszający był tylko fakt, że pociąg, którym pierwotnie mieliśmy jechać też miał dotrzeć z godzinnym opóźnieniem (może ulec zmianie).

Aktualizuję listę potencjalnych trudności przy podróży koleją o konieczność posiadania zapasów jedzenia i picia na 2-3h, przygotowanie na nocne marsze po torach i wyposażenie na okoliczność oczekiwania 2h na zewnątrz. Wydawać by się mogło, że na kolei powinni mieć jakieś sensowne procedury na takie okoliczności, ale jednak komuś wysłanie ludzi z walizkami i dziećmi, torami, z wygodnego pociągu na otwarty peron, żeby tam czekali na pociąg wydało się dobrym pomysłem…

UPDATE: Dla jasności, z mojej strony to po prostu drobna niedogodność, przygoda i trochę rozrywki w stylu filmów Barei. Nawet przeszło mi przez myśl umieszczenie wpisu w kategorii rozrywka. Finalnie nikomu z pociągu nic się nie stało. Ale mam wrażenie, że całość można zorganizować znacznie lepiej, z punktu widzenia podróżnych.

[1] Łażenie po górach. Co dość istotne, mieliśmy plecaki i buty do łażenia po górach, więc byliśmy mobilni.
[2] Pierwotny planowy przyjazd na miejsce jakoś 1:20, wcześniejszy jakoś 22:30..
[3] Jechaliśmy w kilka osób, ale siedząc osobno – uroki kupna biletów w różnych terminach i na ostatnią chwilę.
[4] Stawiam na jakieś 300 m.
[5] Bez ironii, dobrze robili robotę, natomiast ludzie… chyba prościej byłoby ogarnąć grupę przedszkolaków nawet gdyby na peronie za darmo rozdawali lody.

abcc3.py

Wieki po projekciku, który robiłem w ramach projektu DSP2017, po którym chyba już nic w sieci nie zostało, doznałem natchnienia. Stwierdziłem, że teraz jest łatwo, można popytać LLMa, więc może łatwiej będzie znaleźć bibliotekę do ping pod Pythonem. Ostatnio opornie to szło…

Nie zawiodłem się, podał od ręki, wraz z kodem. Oczywiście przerobiłem, by bardziej pasowało. Przy okazji przy testowaniu (w zasadzie: testach uruchamiania) wynikło trochę błędów, które poprawiłem.

Po co to zrobiłem? Nie wiem. Chyba dla porządku. Drażnił mnie ten Python 2 w wymaganiach. A wyrzucić szkoda było. Chociaż raczej nikt nie używa. Choć IIRC ktoś się przymierzał, ale nie chciał poświęcić czasu, tylko „zrób mi”. Oczywiście za darmo. Trochę nie miałem czasu, weny i… to tak nie działa.

Warto po latach przypomnieć czym jest abcc? Na dzień dzisiejszy to rzeźbiarstwo figurowe – program do wybierania najlepszego łącza z kilku dostępny z wykorzystaniem zadanych wag, na podstawie strat i opóźnień. W sumie kiedyś, w czasach routerów na Linuksie miało to sens. Chociaż nic nie stoi na przeszkodzie by i dziś podpiąć dowolny skrypt i sterować np. przy pomocy SNMP routerem operatorskim. Istniało komercyjne rozwiązanie, które mniej więcej robiło to samo. Oczywiście z ładnym inferfejsem i opakowaniem.

Albo można użyć na jakimś OpenWrt do balansowania łącza czy też raczej wyboru lepszej ścieżki do danej sieci. Bez BGP, na podstawie wyżej wspomnianych metryk. Przy LTE itp. może być użyteczne.