Halucynacje Antispam Bee

Uważni czytelnicy mogą pamiętać, że na blogu stosuję kilka metod zwalczania spamu w komentarzach. W kolejności od najbardziej ręcznych do najbardziej automatycznych będą to: ręczna moderacja, wtyczka Antispam Bee, hCaptcha oraz wycinanie IP znanych z nadużyć na poziomie iptables. Dziś będzie o wtyczce.

Wtyczka Antispam Bee radziła sobie nieźle. Wśród sporej ilości opcji, dotyczących tego jak rozpoznawać spam i co z nim dalej robić, posiada ona też możliwość generowania statystyk blokad spamu widocznych w dashboardzie WordPressa. Oczywiście korzystam, bo dzięki temu czytelnemu zestawieniu widzę, co w spamie piszczy bez konieczności wchodzenia w komentarze.

Do tej pory wyglądało to tak, że zerkałem na statystyki na wykresie, jeśli pojawiał się wzrost, to wchodziłem w komentarze i patrzyłem na IP z którego przyszedł spam i ogólnie zastanawiałem się, czy może trzeba coś ulepszyć. Oczywiście jeśli miałem wenę, bo blokady przez iptables, captchę czy wtyczkę Antispam Bee są totalnie bezobsługowe. Znaczy normalnie nie muszę w ogóle dotykać spamu, jedyne co robię, to zatwierdzam prawdziwe komentarze[1]. No i było tak, że jak wtyczka zgłosiła 2 zablokowane, to te 2 były w spamie w komentarzach. W każdym razie tak mi się wydawało – nie zauważyłem rozbieżności.

Problem

Po niedawnych zmianach w blokadach IP na poziomie iptables, ilość blokowanych spamów była stabilna i rekordowo niska – 1-2 próby dziennie. Jednak w pewnym momencie zobaczyłem coś takiego:

Statysytki Antispam Bee 22.03 – 06.05

Wzrost zaczął się 22 kwietnia i jest całkiem spory. Największa ilość widoczna na wykresie to 15 spamów. Postanowiłem poszukać, cóż to za IP i… spotkała mnie niespodzianka. Ostatni spam widoczny w komentarzach jest właśnie z 22 kwietnia. Po tej dacie nie mam żadnego komentarza uznanego za spam w bazie. A wtyczka Antispam Bee radośnie zgłasza.

Szukałem bezpośrednio w bazie, ale nie udało mi się znaleźć ani komentarzy uznanych za spam, ani miejsca przechowywania statystyk. Ostatecznie w ramach testu wyłączyłem wtyczkę na kilka dni i… przyszedł jeden spam do ręcznej moderacji. Przez kilka dni.

Rozwiązanie

Zastanawiałem się, co tu się stało i… chyba znalazłem rozwiązanie. Wszystko wskazuje na to, że wtyczka Antispam Bee jednak nie pozazdrościła AI i nie halucynuje. Ani nie próbuje pokazać, jaka jest przydatna uciekając się do przedstawiania fałszywych wartości. Chodzi o kolejność działania blokad. Antispam Bee działa przed czy też obok hCaptcha. Komenatrz, aby trafił do bazy WordPressa, musi mieć poprawnie rozwiązaną captchę. Jej brak nie przeszkadza jednak Antispam Bee w rozpoznaniu spamu i uwzględnieniu go w statystykach. Czyli ten wzrost to faktycznie próby wysyłki spamu z IP, które nie są na listach, ale nieudolne, nie uwzględniające tego, że na blogu jest captcha.

Wygląda, że trzeba się będzie przeprosić z wierszem poleceń przy wyszukiwaniu IP do blokowania, przynajmniej chwilowo. Stosowne polecenie:

egrep "POST.*wp-comments-post.php" access.log | grep " 400 " | awk '{print $1}' | sort | uniq -c | sort -n

Wtyczkę Antispam Bee polecam nadal. Jeśli ktoś jest ciekaw, czemu nie korzystam z Akismet, to odpowiedź znajdzie w tym wpisie.

[1] Tak się teraz zastanawiam, że działa to tak dobrze, że w zasadzie mógłbym wyłączyć moderację w ogóle. Z drugiej strony już przywykłem, a komentarzy nie ma zbyt wiele, więc żaden problem.

Ostatni odczyt

Byłby to ładny tytuł dla opowiadania powiedzmy science-fiction, ale tym razem chodzi o statystyki dotacji na Patronite dla Radio Nowy Świat oraz Radio 357. Blisko trzy i pół roku temu zacząłem zbierać statystyki dotacji. Tak zupełnie bez napinki i w prymitywny sposób – parsując HTML. Idea była prosta, parę dni później[1] wystartowało Radio 357 z regularnym nadawaniem, obie stacje zbierały dotacje na Patronite, chciałem zobaczyć jaką które radio ma dynamikę.

Zdechło

Dziś zajrzałem do wyników i okazało się, że zdechło. Podwójnie. Po pierwsze, skrypt przestał prawidłowo zbierać dane. I to dość dawno temu, ale ponieważ nie zaglądałem, to zorientowałem się dopiero teraz. Było do przewidzenia, żadnego powiadamiania na wyjątek przy parsowaniu nie miałem przecież. Tym bardziej na błędne dane. Ot, zabawka. Poprawka okazała się trywialna trywialna, wdrożyłem, ale… Niestety, drugi powód jest taki, że Radio 357 przestało publikować na Patronite dane o zbiórkach.

Dlaczego nie widzę już liczników na Waszym profilu Patronite?
Licznik ten pokazywał tylko Patronów z Patronite. W momencie, gdy można opłacić patronat na więcej sposobów, ten licznik przestał oddawać stan faktyczny. Jeśli chcesz dowiedzieć się ilu Patronów wspiera radio, to tę liczbę znajdziesz na naszej stronie internetowej.

Tak informują na stronie zbiórki na Patronite.

Jestem nieco zaskoczony, że to nie Patronite decyduje o tym, czy dane są widoczne, ale w sumie nie ma to znaczenia – danych nie ma i tyle.

Ostatni wiarygodny odczyt miał miejsce w grudniu:

2023-12-17 12:00:03, radio357, 50075, 933463
2023-12-17 12:00:03, rns, 35061, 756537

Podsumowanie statystyk

Dla RNŚ był jeszcze jeden poprawny odczyt w lutym 2024. Niewiele się różnił. No bo właśnie, RNŚ w zasadzie stoi w miejscu zarówno pod względem ilości patronów, jak i dochodu. Dla przypomnienia, zaczęło się od 31 tys. i 690 tys.

Co innego Radio 357, tu były zmiany. Wg strony mają obecnie łącznie 50 tys. wspierających. Czyli tyle, ile było widocznych na Patronite w ostatnim odczycie. W zasadzie również nie ma wielkich zmian od roku, choć pamiętam, że w trakcie jakieś istotne wzrosty były.

Teoretycznie, skoro jest taka roczna już stabilizacja, to można by przyjąć, że takie są ostateczne wyniki i zamknąć temat. Takie rozwiązanie jednak mi się nie podoba, chętnie bym obserwował dalej. No ale nie ma jak.

Co dalej?

Poprawiony skrypt zbiera dane dla RNŚ. Publikacji statystyk w dotychczasowej formie już nie przewiduję. Może najwyżej raz do roku, jak mi się przypomni. Pewnie wkrótce wystawię plik CSV z zebranymi danymi – waham się jeszcze, czy wystawić go jednorazowo, czy live. Pewnie uzupełnię ten wpis o wykres z dynamiką dla obu stacji.

Tak w ogóle, to nie pamiętam kiedy słuchałem którejkolwiek z tych stacji[2]. Okolice Sylwestra, jednorazowo? To znaczy dziś włączyłem testowo na jakieś dwie godziny. Ale wrażenia miałem podobne jak ponad rok temu, gdy przestały mi się podobać – coś mi zgrzyta, coś mi nie pasuje. Wolę samą muzykę ze streamingu, niż audycje, szczególnie, że nie wszystkie są stricte muzyczne. Może była to dla mnie tylko rozrywka w okresie pandemii? A może spróbuję wrócić, ale już tylko do wybranych audycji? Zobaczymy.

Jednocześnie jest to prawdopodobnie koniec mikrobloga na Diasporze. Nie likwiduję, ale skoro znika jedyny temat, który się tam jako tako regularnie pojawiał to będzie on w zasadzie martwy. Można powiedzieć, że wytrzymał 9 lat.

[1] Wikipedia podaje, że stała ramówka od 5 stycznia 2021. I wierzę jej, ale wiem, że słuchałem już pierwszego stycznia, a przecież nie była to pierwsza audycja.
[2] Taka ciekawostka, mam krótki szkic notki z października 2020 dotyczący RNŚ, którego nie opublikuję. Radio 357 doczekało się wpisu.

Szczepienia Covid-19 – statystyki

Niedawno dowiedziałem się, że istnieje strona ze szczegółowymi, oficjalnymi danymi dotyczącymi zakażeń koronawirusem w Polsce i zgonów tym spowodowanych. Nie tylko dostępne są dane, ale widget umożliwia łatwe ich filtrowanie i tworzenie statystyk. Pokusiłem się więc o samodzielną analizę danych. Przedstawiam tylko najciekawsze i najważniejsze IMO statystyki. Spoiler: prawdopodobnie ani twardzi pro-, ani antyszczepionkowcy nie będą z nich zadowoleni. Zachęcam do samodzielnej zabawy z danymi.

Oczywiście nie mam złudzeń, że te dane i oparta na nich analiza przekonają sceptyków. Zawsze znajdzie się wymówka, by nie wierzyć danym. A to, że nie wszystkie przypadki są rejestrowane, a to, że zgony z innego powodu, a to, że dopisywali, a to, że jako zaszczepieni figurują ludzie fikcyjnie zaszczepieni. W zależności od skrętu anty- lub proszczepionkowego. Niemniej, są to jedyne twarde dane, którymi dysponujemy. Wszystko inne to albo gdybanie, albo opieranie się na własnym doświadczeniu, albo głębokie przekonanie.

Dane uważam za cenne z jeszcze jednego powodu – dotyczą Polski. Czyli miejsca, gdzie statystyczny czytelnik bloga ma największe szanse zachorować i być leczonym. Gdyby istniała jakaś lokalna mutacja czy to DNA ludzi, czy koronawirusa, to te dane powinny ją odzwierciedlać, w przeciwieństwie do danych z innego kraju. Podobnie sposób leczenia i jakość służby medycznej liczy się dla nas ta lokalna.

Analiza będzie w dwóch okresach czasowych. Od początku stycznia 2021, czyli wprowadzenia pierwszych szczepionek, oraz od początku grudnia 2021, czyli pojawienia się wariantu omikron. IMO jego charakterystyka jest na tyle odmienna, że zasługiwałby na osobną jednostkę chorobową, ale tak się nie stało i wszystkie warianty koronawirusa trafiły do jednego worka. W obu przypadkach datą końcową jest 01.03.2022.

Zakażenia
od stycznia 2021:
zaszczepieni 1518162 śr. wiek 46
niezaszczepieni 3003421 śr. wiek 41
od grudnia 2021
zaszczepieni 1241371 45
niezaszczepieni 1009335 33

Zgony
od stycznia 2021:
zaszczepieni 11094 śr. wiek 77
niezaszczepieni 71711 śr. wiek 75
od grudnia 2021:
zaszczepieni 7990 77
niezaszczepieni 19725 76

Ilość zakażeń w wartościach bezwzględnych od początku pandemii wydaje się nie mieć znaczenia. Po prostu w początkowym okresie praktycznie nie było dostępnej szczepionki, więc i nie było zaszczepionych. Zatem zarażali się niezaszczepieni. Podobnie jest ze zgonami – nie można przywiązywać się do wartości bezwzględnych, choć tu różnica jest o wiele większa, co daje do myślenia. Można zatem policzyć stosunek ilości zgonów do zakażeń w grupach to widać, że wynosi on 0,73% wśród zaszczepionych oraz 2,39% wśród niezaszczepionych. Czyli szczepienie ponad trzykrotnie zmniejsza ryzyko zgonu po zakażeniu.

W zasadzie tu można by postawić kropkę, niemniej jest jeszcze jeden ważny aspekt: wiek. Patrząc od stycznia 2021, średni wiek umierających to 77 lat dla zaszczepionych i 75 lat dla niezaszczepionych.

Natomiast z danych od grudnia 2021 widać, że ilości zakażeń są praktycznie równe wśród zaszczepionych i niezaszczepionych. Tak się fajnie składa, że zaszczepionych jest nieco ponad połowa Polaków, więc można porównywać te wartości jako bezwzględne. Nawet nieco więcej zakażeń jest wśród zaszczepionych, co można łatwo tłumaczyć nieco większą ilością. Natomiast z danych tych wynika, że szczepionka nie chroni przed zarażeniem[1].

Patrząc na zgony od grudnia 2021 – 0,64% wśród zaszczepionych, 1,95% wśród niezaszczepionych. Czyli jest łagodniej – w obu przypadkach, ale różnica nadal ponad trzykrotna. Bardziej obrazowo: gdyby zaszczepionych było 100% Polaków, to statystycznie rzecz biorąc od grudnia mielibyśmy ponad 12 tys. zgonów mniej. Zaskoczony jestem niewielkim spadkiem śmiertelności w stosunku do całości okresu, można to próbować tłumaczyć późniejszym dotarciem wariantu omikron do Polski[2]. Średni wiek umierających to odpowiednio 77 oraz 76 lat.

Pierwotnie planowałem bardziej szczegółową analizę, np. w rozbiciu na przedziały wiekowe. Tak się jednak stało, że wpis był w przygotowaniu, a temat pandemii koronawirusa skończył się w międzyczasie za sprawą agresji Rosji na Ukrainę. Nie wykluczam wpisu w przyszłości, jeśli znajdę coś ciekawego. Skoro jednak każdy może pobawić się analizami sam, to nie widzę sensu.

[1] Tu zapewne pojawi się argumentacja zwolenników szczepień, że „ale chroni przed hospitalizacją/ciężkim przebiegiem/odciąża służbę zdrowia”. I zapewne jest to prawda, tylko przypominam – opieram się wyłącznie o dostępne dane. Zaś w nich po prostu tej informacji nie znajdziemy.
[2] Znowu nie ma tej informacji w dostępnych danych, niemniej spotkałem się z taką opinią. Z kolei jakieś dwa tygodnie temu w radio podawali, że obecnie 97% zakażeń w Polsce to obecnie omikron.