Blog questions challenge 2025

W moim bąbelku zaczął Bobiko, ale o akcji dowiedziałem się z tego wpisu. Zastanawiałem się, czy brać w ogóle udział, bo w sumie na większość pytań już gdzieś kiedyś odpowiedziałem, ale niech tam! Do pytań!

Pytania są następujące:

  1. Dlaczego w ogóle zacząłeś blogować?
  2. Z jakiej platformy korzystasz do zarządzania swoim blogiem i dlaczego ją wybrałeś?
  3. Czy prowadziłeś już bloga na innych platformach?
  4. Jak piszesz swoje posty?
  5. Kiedy czujesz największą inspirację do pisania?
  6. Czy publikujesz natychmiast po napisaniu, czy też zostawiasz wersję roboczą jako wersję roboczą?
  7. Jaki jest Twój ulubiony post na Twoim blogu?
  8. Jakieś plany na przyszłość dotyczące Twojego bloga?

Dlaczego w ogóle zacząłeś blogować?

Nie pamiętam dokładnie. Z pierwszego wpisu widzę, że namówili mnie ludzie ze SzLUUG czyli Szczecin Linux Unix Users Group. Wiele osób tam miało wtedy blogi. Nie wiem czemu to miało dokładnie służyć. Wymianie wiedzy? Porządkowaniu jej? Tworzeniu społeczności?

Z jakiej platformy korzystasz do zarządzania swoim blogiem i dlaczego ją wybrałeś?

Aktualnie WordPress na własnym VPS. Czemu tak? Najtaniej, przy moich umiejętnościach i największa kontrola, bo żadna gotowa platforma, a zwłaszcza połączona z brakiem własnej domeny nie daje pełni własności treści/kontroli nad nią. Z drugiej strony WordPress jest bardzo popularny, dość dopracowany i pozwala na dynamiczne komentarze. Ale statyczne generatory bloga kuszą (od lat), tym bardziej, że w okolicach WordPressa nie dzieje się dobrze, ale to temat na inny wpis.

Czy prowadziłeś już bloga na innych platformach?

Tak. Pierwszy był Jogger.pl. Potem Blox.pl. Teraz jest WordPress. Jest pewna ciągłość, bo cała treść jest nadal dostępna online. Poza tym, na pobocznych projektach były/są jeszcze Pelican oraz Tumblr. O mikroblogach nawet nie wspominam.

Jak piszesz swoje posty?

Z tym było różnie, kiedyś często były zapisane jakieś myśli, fragmenty czy szkice w edytorze tekstu w terminalu i potem tworzyłem z tego wpis. Teraz coraz częściej piszę w edytorze WordPressa i albo publikuję od razu, albo zapisuję jako szkic. Zawsze jednak jest to komputer i klawiatura, żadnych smartfonów ani innych metod wprowadzania tekstu.

Kiedy czujesz największą inspirację do pisania?

Nie ma reguły.

Czy publikujesz natychmiast po napisaniu, czy też zostawiasz wersję roboczą jako wersję roboczą?

Zależy od wielu czynników. Od tego, ile mam czasu, od tego, czy chcę coś jeszcze dodatkowego znaleźć i umieścić wpisie, od tego, jak duży jest wpis. Procentowo nie liczyłem i nie mam pomysłu jak to szybko sprawdzić, ale stawiałbym okolice 50/50. O zalegających szkicach szykuje się wpis.

Jaki jest Twój ulubiony post na Twoim blogu?

Nie mam takiego. Zdarzało mi się wrócić po czasie do wielu z nich, z różnych powodów, i każdy z nich cieszył lub był przydatny.

Jakieś plany na przyszłość dotyczące Twojego bloga?

Brak planów. Cały czas chodzi mi po głowie przejście na statyczny generator, ale wiązałoby się to prawdopodobnie albo z wyłączeniem komentarzy, albo z kolejnym genialnym rozwiązaniem naklepanym na kolanie[1]. A ja lubię komentarze.

[1] Jestem prawie pewien, że aktualnie poszedłbym w stronę formularza, który wyśle maila, którego odbiorę, przeczytam i dodam (lub nie) jako komentarz. Tylko to już nie będzie statyczny blog, bo coś musi wysłać treść mailem… Skoro obecne rozwiązanie działa, a tamto spowoduje wiele problemów do rozwiązania, takich jak zabezpieczenia przed spamem to… nie widzę sensu.

Optymalizacja strony

Kolejny wpis, który przeleżał wiele czasu jako szkic. Nie znalazłem na niego czasu, a teraz sprawdziłem i dobrze się zestarzał, więc opublikuję to, co mam, choć nie pociągnąłem do końca tematu, którym jest optymalizacja stron WWW, tym razem bardziej od strony serwera, niż WordPressa, o którym wtedy napisałem.

Na początek polecam wpis Yzoji o optymalizacji bloga. I komentarze do niego. Tak, wpis jest sprzed trzech lat. Tak, jest aktualny, a wszystko co tu znajdziesz powstało właśnie wtedy. Raczej postaram się napisać uzupełnienie, niż powtarzać rady z tamtego wpisu.

Efekty

Nie mam niestety porównania sprzed wprowadzania zmian, ale żeby było wiadomo o czym rozmawiamy. Efekty optymalizacji strony bloga, wg PageSpeed Insights, przedstawiają się następująco:

Wynik optymalizacji strony wg PageSpeed dla desktop - performance 100%
Wynik dla desktop
Wynik optymalizacji strony wg PageSpeed wynik dla mobile - performance 9%
Wynik dla mobile

Kompresja

Na przyspieszenie działania bloga pomogło zmniejszenie poziomu kompresji w nginx. Tak, dobrze czytacie, zmniejszenie, nie zwiększenie. Dlaczego? Otóż tekst kompresuje się dobrze tak czy inaczej. A różnice w szybkości działania kompresji gzip są znaczne. Czyli mamy mininalnie większą ilość przesyłanych danych, ale odpowiedź jest wysyłana znacznie szybciej! Być może to kwestia relatywnie słabego VPSa, ale skoro nie widać różnicy, po co przepłacać? W każdym razie w konfiguracji nginx mam:

gzip_comp_level 1;

Lazy loading

Kolejną rzeczą, która przyspieszyła działanie tego bloga było wyłączenie lazy loading. Było o tym u Yzoji, ale warto powtórzyć, bo znowu, jest to nieintuicyjne. W dodatku wszyscy mantrują, że włączenie lazy loadingu jest dobre dla szybkości ładowania. No i teoretycznie mają rację. Ale nie jest to prawdą na stronach, gdzie ilość załączanych grafik jest niewielka. Więc jak mam jedną czy w porywach dwie skromne grafiki na wpis, to lazy loading tylko spowolni ładowanie. Gdyby grafik było więcej lub były większe – pewnie włączenie lazy loadingu mógłoby pomagać.

Google

Wyłączenie zabawek Google. Firma ta prezentuje pewną dwumyślność. Z jednej strony chce, by strona działała szybko. Z drugiej strony, sama dostarcza rozwiązania, które fatalnie wpływają na wydajność strony i stwarzają problemy w ich własnym scoringu! Google Analytics – wydajnościowe zło. Fonty Google – kolejne wydajnościowe zło. Google AdSense też drastycznie pogorszy szybkość działania strony.

Rozwiązanie, jeśli nie chcemy całkiem pozbywać się Google? W przypadku AdSense można zrezygnować z wyświetlania reklam wszędzie i ograniczyć ich obecność do wpisów, na których jest największy ruch. Taki kompromis – strony z reklamami będą ładować się dłużej, ale większość stron będzie działać szybko. Oczywiście wiąże się to z rezygnacją z reklam na głównej. Nieco upierdliwe, bo oznacza to ręczne zarządzanie kodem JS odpowiedzialnym za wyświetlanie reklam na poziomie konkretnych wpisów, ale dla mnie OK. Zamiast Google Analytics polecam Matomo. Z fontów Google zrezygnowałem, zamiast tego pewnie można serwować je lokalnie.

Klucz RSA

Kolejna nieoczywista sprawa – rozmiar klucza wykorzystywanego przy SSL/TLS. Miałem podejście security is our priority i klucz RSA o długości 4096 bitów. Tyle tylko, że póki co 2048 bity są także uznawane za bezpieczne. No i na tym blogu nie ma nic wrażliwego. Najbardziej wrażliwe jest hasło, które przesyłam przy logowaniu, więc zmniejszyłem rozmiar klucza i… Pomogło to skrócić czas nawiązywania połączenia z serwerem. Znowu, może kwestia stosunkowo słabego VPSa. Przy tej okazji polecę jeszcze wpis o tym jak zrobić sobie certyfikat SSL/TLS z oceną A+ na nginx.

Jak widać, optymalizacja stron WWW nie jest oczywista i warto do tematu podejść kompleksowo.

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.