Blogi żyją

Pierwotnie ten wpis miał być komentarzem do wpisu o agonii blogów, jednak z racji rozmiaru i uporządkowania ew. dyskusji stwierdziłem, że bardziej pasuje jako samodzielny wpis.

Zamykanie kolejnych polskich platform blogowych nie jest koniec blogosfery. To zaledwie koniec platform blogowych jako takich. IMO je spotyka los podobny do shared hostingu, odkąd pojawiły się VPSy. Platformy tracą sens, bo:

  • i własny hosting, i domeny drastycznie potaniały,
  • platformy nakładają ograniczenia i/lub kosztują relatywnie dużo,
  • pojawiły się międzyplatformowe narzędzia do dzielenia się komentarzami dot. wpisów na blogach – FB, Disqus, itp.

Tego wszystkiego kiedyś nie było. Porównując z telefonami – nadal z nich korzystamy, ale kto ostatnio korzystał z telefonu stacjonarnego (i w dodatku nie VoIP), o budkach telefonicznych nie wspominając?

Wiele blogów ma się jednak dobrze. Niektóre mają się wręcz świetnie. Z polskiego podwórka na myśl przychodzą mi tu – tak od ręki zaufanatrzeciastrona.pl, sekurak.pl, niebezpiecznik.pl, majsterkowo.pl, jakoszczedzacpieniadze.pl czy subiektywnieofinansach.pl. Od strony technicznej te portale(?) to są blogi. I myślę, że zasięgiem biją na głowę najlepsze blogi sprzed lat dziesięciu lub więcej. A może i całe platformy…

Prawdą jest, że bariera wejścia w blogowanie wzrosła, jeśli porównać ją z innymi formami komunikacji, ale tak naprawdę jest łatwiej, niż kiedyś. Narzędzia są bardziej dopracowane, takiego WordPressa można postawić z tutoriala z wiedzą nie większą, niż potrzebna kiedyś do modyfikacji szablonu. To samo zjawisko dotyczy innych rodzajów twórczości – amatorskie zespoły muzyczne mają często dziś do dyspozycji rozwiązania, które kiedyś były dostępne wyłącznie profesjonalistom. Bardziej mam tu na myśli obróbkę dźwięku, niż instrumenty. Łatwiej jest stworzyć zdatną do wydania muzykę i ją wydać, niż kiedyś.

Zgadzam się, że konkurencja innych platform powoduje, że może nie być sensu pisać własnego bloga lub trudniej będzie się wybić. Jeśli nie będzie dobry, to nie będzie czytany, bo przegra konkurencję z innymi formami. To trochę jak z filmami – spróbujcie dziś obejrzeć jakieś arcydzieło sprzed 60 lub więcej lat. Albo serial sprzed 30-40 lat. To nie są złe filmy! Ale w bezpośrednim starciu ze współczesnymi, czy nawet nowszymi produkcjami na większą skalę nie mają szans. Treści do konsumpcji jest coraz więcej, doba ma nadal 24h, długość życia aż tak nie wzrosła. Trzeba wybierać, a warunki selekcji są coraz ostrzejsze.

Zresztą blogi same wspomagały Facebooka w dominacji rynku. Wielu blogerów założyło fanpage bloga, licząc na promocję, ale tak naprawdę dostarczali tylko dodatkowej treści FB i powodowali, że zaglądanie gdzie indziej miało jeszcze mniej sensu. Zresztą miałem o tym notkę – Facebook przejął rolę wielu serwisów, nie tylko blogów.

Nie upatrywałbym problemu blogosfery w próbach monetyzacji. Tak, też widziałem blogi, które poszły w komercję i straciły przy tym cały urok, ale – patrząc z perspektywy – wygląda mi to bardziej na odcinanie kuponów od czegoś, co było fajne, ale do czego straciło się serce i można albo zakończyć, albo zarobić przy okazji parę złotych. Sam bawiłem się w różne formy zarabiania na blogu, a nawet miałem o tym notkę. IMO nie dało się na blogu bezpośrednio zarabiać. Nawet biorąc poprawkę na specyficzną tematykę i potencjalnie większą niechęć odbiorców do wyświetlanych reklam uważam, że to wszystko na orzeszki. Mi nie udało się nigdy osiągnąć z reklam itp. form osiągnąć pułapu pozwalającego na opłacenie abonamentu za dostęp do internetu. Takie sobie kiedyś kryterium sukcesu wybrałem. 😉 Więc nawet rząd wielkości większe dochody to są orzeszki, jeśli mówimy o pracy na jakąś nieułamkową część etatu.
Podkreślam jednak – chodzi o zarobek bezpośredni. Jak zerkniecie na blogi z jednego z pierwszych akapitów, to jak najbardziej pomagają one autorom zarabiać pieniądze. Ale nie na samych blogach. Mądrze na to mówią budowa marki. W praktyce chodzi o jakąś tam rozpoznawalność.

Jeśli mnie ktoś zapyta, czy warto pisać bloga, bez wahania odpowiem, że tak, ale wyłącznie na własnej platformie i z własną domeną. W przeciwieństwie do dowolnej platformy współdzielonej to jedyna powszechnie dostępna forma publikacji, nad którą mamy pełną kontrolę i która daje pełną niezależność. Możemy – i inni ludzie – łatwo wyszukać stare wpisy, podlinkować do nich i… ktoś to przeczyta (spróbujcie tego na FB…). Możemy bez problemu przenieść się z całą zawartością w inne miejsce i właściciel platformy nie będzie nam dyktował, czy możemy to zrobić, w jakiej formie, zakresie i kiedy. FB jest równie wieczny, jak nk.pl. 😉
A zabawa z bebechami okołoblogowymi jest IMO podobną okazją do nauki, jak niegdyś zabawa z tworzeniem szablonów blogów.

Wtyczki do WordPressa

Przesiadka na WordPressa była dobrym posunięciem, jednak ku mojemu zdziwieniu goły WordPress nie ma możliwości zrobienia – przynajmniej w prosty, cywilizowany sposób – wielu podstawowych rzeczy. Musiałem doinstalować pewne wtyczki, a po bliższym zapoznaniu się z tematem okazało się, że trafiają się tam naprawdę rewelacyjne narzędzia.

Wtyczki podzieliłem – bardzo subiektywnie – na dwie grupy – trzeba mieć oraz warto mieć. Zwykle będą to najniezbędniejsze narzędzia do podstawowych funkcjonalności, zdrowego SEO oraz narzędzia do optymalizacji bloga, zwł. czasu ładowania strony. Pora na grupę pierwszą, czyli pluginy IMO niezbędne:

BackWPup
Niezależnie od tego, czy masz własny serwer, korzystasz z hostingu który „robi backupy” czy kupujesz gotowca, warto mieć własną kopię zapasową. BackWPup robi robotę, ma sporo opcji konfiguracyjnych co backupować i gdzie przesyłać backup (tu akurat średnio jestem przekonany, lepiej zaciągać backup, niż go wysyłać z backupowanej maszyny). Potrafi działać cyklicznie, bez ingerencji, umie zrobić pełną kopię, wraz ze zdjęciami. Przypadł mi do gustu, więc nie testowałem alternatyw.

Advanced noCaptcha & invisible Captcha
Że spam na blogu może się zdarzyć – wiadomo. Miałem włączoną moderację, więc nic się nie prześlizgnęło, ale spamu wpadała cała masa. W przeciwieństwie do mniej popularnych platform blogowych, blogi oparte o WordPress są narażone na automatyczne znajdowanie przez boty, a wtedy… przychodzi nawet po kilka spamów dziennie. Moderowanie szybko mi się znudziło, różnego rodzaju rozwiązania antyspamowe mnie nie do końca przekonywały, postawiłem na standardowe rozwiązanie od Google. Ujęło mnie tym, że potrafi zabezpieczyć nie tylko formularz komentarzy, ale także logowanie, co znacznie utrudnia atak brute force (chociaż nie powstrzyma zdesperowanego atakującego, są rozwiązania do łamania CAPTCHA od Google). Prosta, standardowa konfiguracja, do wyboru różne warianty captcha, w tym wersja niewidoczna. Spam niemal zniknął, pojedyncze sztuki w miesiącu to raczej robota ludzi.

Download External Images In Posts
Znalazłem go poszukując sposobu na zaimportowanie obrazków podczas migracji z Blox i w sumie zrobił mi dzień. Działa w ten sposób, że pobiera zdalne obrazki i zapisuje je lokalnie, następnie serwuje z naszego serwera. Dzięki temu blog ładuje się szybciej (brak odwołań do wielu domen), mamy pełną kontrolę nad treścią i gwarancję jej niezmienności. Warto tu przypomnieć, że należy podawać źródło, skąd pochodzi dany obrazek na naszym blogu. Jeśli mamy ten plugin to odwiedzający nie może nawet „po prostu” zajrzeć w źródło, żeby to sprawdzić. Drobną wadą jest to, że nasz blog zajmuje nieco więcej miejsca – w końcu wszystkie zasoby są przechowywane u nas, ale przy dzisiejszych pojemnościach i cenach hostingu nie powinien być to żaden problem.

Najważniejsze wtyczki za nami, pora na mniej istotne.

Insert Headers and Footers
Potrzebowałem dodać statystyki Matomo (dawniej Piwik) i… okazało się, że w gołym WordPressie nie bardzo można to zrobić. Oczywiście do wszystkiego są dedykowane pluginy, ale jeśli ktoś – podobnie jak ja – przywykł do tego, że sam robi odpowiednie wklejki w stopce, to jest to plugin w sam raz dla niego. Nie szukałem alternatyw.

Cache Enabler
Z tym pluginem jest śmieszna historia. Tak naprawdę nie chodziło mi o cache czy różnego rodzaju funkcje optymalizacyjne (to już miałem zrobione, czy to natywnie w serwerze WWW, czy ręcznie), tylko o funkcję ukrytą pod nazwą create an additional cached version for WebP image support. Okazało się, że jest to – a przynajmniej był – najprostszy sposób, by zmusić WordPressa do serwowania grafik w formacie WebP przeglądarkom, które ten format umieją.

EWWW Image Optimizer
Narzędzie do optymalizacji grafik przechowywanych lokalnie. Mocno konfigurowalne, klikalne, potrafi bezstratnie (oraz stratnie, jeśli ktoś woli i wybierze taką opcję) optymalizować rozmiar zdjęć, dzięki czemu blog zajmuje mniej miejsca i wczytuje się szybciej. Potrafi też dokonywać przeskalowania grafik, dzięki czemu wysyłana jest nie tylko zoptymalizowana, ale najbliższa danemu rozmiarowi ekranu wersja. Domyślnie korzysta z zainstalowanych dodatkowych programów, więc nie jestem przekonany, czy będzie działał na shared hostingach. Jeśli ktoś ma swój VPS – polecam.

Google XML Sitemaps
Goły WordPress posiadał szczątkową sitemapę, albo wręcz jej nie posiadał. Plugin załatwia sprawę generowania sitemapy, która ułatwia poprawne zaindeksowanie treści. Jest sporo alternatyw w różnych wtyczkach do SEO, ten plugin spodobał mi się, bo nie jest kombajnem, robi tylko sitemapę.

Subscribe to Comments Reloaded
Chciałem dać czytelnikom często spotykaną na innych blogach i często przeze mnie wykorzystywaną możliwość subskrypcji komentarzy do danego wpisu, stąd jego obecność. Zachwalana funkcjonalność nie spotkała się z szerszym zainteresowaniem, ale samo rozwiązanie wydaje się działać OK. Na niedziałanie nikt się nie skarżył, alternatyw nie szukałem.

Tyle o pluginach, jeśli znasz inne ciekawe, podziel się nimi w komentarzach. Jeśli potrzebujesz pomocy z konfiguracją WordPressa – zapraszam do działu kontakt.

Kalkulator okresu zwrotu wymiany urządzeń elektrycznych

Jakoś rok czy dwa temu wdałem się w dość bezsensowną dyskusję, czy warto przechodzić z żarówek zwykłych na LED, albo – szerzej – czy pobór prądu przez urządzenie (np. router) może być przesłanką do jego wymiany. Oczywiście stałem na stanowisku, że może, bo zdarzyło mi się to już policzyć i choćby router między innymi z tego powodu wymienić. Argumenty drugiej strony były, że ludzi nie stać na żarówki LED, że to inwestycja i że zwraca się długo. Tu nie ma co dyskutować i gdybać, to można zwyczajnie zmierzyć i policzyć.

Wpadłem wtedy na pomysł, że warto zrobić kalkulator ułatwiający tego typu szacunki[1], bo to pięć minut roboty, a będzie można łatwo porównać i żarówki, i router, i dowolne inne urządzenie. A także łatwo sprawdzić przed zakupem, czy bardziej opłaca się w określonym horyzoncie czasowym kupić tańszy sprzęt AGD klasy A czy droższy A++, co również zdarzało mi się liczyć, zgrubnie[2].

Okazało się, że roboty jest znacznie więcej, niż pięć minut, jeśli się nie zna JavaScriptu. Całość działała, ale wyglądała bardzo koślawo i… zapomniałem o tym mini projekcie. Dziś, korzystając z zapowiedzianych podwyżek cen energii, które nie spowodują wzrostu wydatków na energię (haha) uznałem, że kalkulator opłacalności wymiany urządzeń elektrycznych warto odświeżyć, czyli doprowadzić do stanu pozwalającego na jego publikację. Nadal nie jest to zgrabne, ale da się używać bez bólu oczu. Pewnie będą drobne aktualizacje.

Jednocześnie chciałem, żeby wpis o kalkulatorze oszczędności energii i zaletach LED pojawił się chronologicznie wcześniej, niż nadchodzący wielkimi krokami wpis o różnicach między deklarowanymi wartościami poboru prądu żarówek LED, a zużyciem rzeczywistym.

Użycie jest proste – podajemy ile średnio godzin dziennie używane jest urządzenie, podajemy aktualną cenę 1 kWh (wraz z przesyłem), cenę zakupu urządzeń (jeśli już posiadamy, podajemy zero). W odpowiedzi otrzymujemy miesięczny koszt użytkowania urządzeń oraz okres zwrotu. W przypadku wartości ułamkowych należy użyć kropki jako separatora dziesiętnego.

W przykładzie, po otwarciu strony jest żarówka zwykła 60W za 1 zł oraz 6W LED za 10 zł. Przy użyciu 2h dziennie i cenie 55gr/kWh (jakoś tak teraz jest) zwraca się w 5 m-cy. Ogólnie jeśli ktoś chce oszczędzać pieniądze, to warto wymienić wszystkie istniejące żarówki starego typu, zupełnie nie przejmując się częstotliwością zapalania i gaszenia…

Korzystając z okazji przypomnę adres mojego nieco zapuszczonego bloga dotyczącego realnego poboru prądu przez różne urządzenia.

[1] Oczywiście działający po stronie przeglądarki, napisany w JavaScript – nie pobieram żadnych danych na serwer. Mocno poza strefą komfortu, jeśli chodzi o język. Totalnie zmarnowane szanse na produktyzację. Ale uważam, że tak się powinno robić tego typu kalkulatory.

[2] Wtedy wyszło mi, że w perspektywie pięciu lat, bo na tyle szacowałem żywotność sprzętu, nie ma sensu dopłacać kilkuset zł za urządzenie bardziej energooszczędne.

Szybkość polskich stron internetowych cz. 2

Opisywany w poprzednim wpisie nt. badania szybkości polskich stron internetowych system trochę okrzepł, skończył się miesiąc, więc pora na konkrety. Co prawda listę badanych serwisów było widać na zrzucie ekranu, ale nie było dostępu do danych , więc teraz to naprawiam.

Zdecydowałem, że nie będę się bawił w wyciąganie średnich miesięcznych itp.  Jeśli ktoś jest zaintersowany, to w historii są linki do danych źródłowych (CSV), można sobie wyciągnąć samodzielnie. O ile ktoś będzie potrzebował, bo to, co domyślnie daje GTmetrix, z ładną wizualizacją, jest IMO w zupełności wystarczające.

Tak więc badanie wywoływane jest dla 10 wybranych serwisów (najpopularniejsze polskie oraz ecommerce, przy czym znaczenie miała domena) co 12h,  wykonywane z Londynu, przy pomocy Chrome, bez AdBlocka i na nielimitowanym paśmie.

Oto serwisy, po kliknięciu linka dostęp do wszelkich zebranych danych:

Jest jeszcze pomysł na uruchomienie testów za pośrednictwem innego serwisu, ale pozostaje to w sferze pomysłów, póki co bez planów na implementację.

UPDATE: Pomysł wyglądał fajnie, ale tylko przez miesiąc. Po pierwsze, okazało się, że dostępne są dane tylko z miesiąca, mimo obiecujących wartości „1y” i „all” w historii. Po drugie, skrypt wymaga poprawki – przez parę dni dane się nie zbierały, potem samoistnie zaczęły. Pewnie do poprawy obsługa wyjątków plus dodanie wysłania powiadomienia, choć założenie, że mógłbym coś zrobić i że by mi się chciało jest mocno optymistyczne. Po trzecie i najważniejsze, zmieniły się linki do raportów, powyższe już nie działają, co oznacza, że nawet wersja miesięczna jest średnio używalna dla kogokolwiek poza mną. Pomyślę jak to wszystko rozwiązać, pewnie skończy się na powrocie do oryginalnego pomysłu i zbierania danych samodzielnie.

Pomiar szybkości polskich stron internetowych

Podczas pewnej dyskusji nt. kondycji stron internetowych powołane zostało jako argument badanie szybkości stron internetowych robione przez firmę Hostersi. Jest to ciekawe badanie, prowadzone od lat ale… ma wady.

Pomiarów niby jest dużo, ale są one przeprowadzane przy pomocy autorskiego narzędzia uruchamianego ad hoc, przez tydzień, samo badanie publikowane raz na rok. Wszystko to powoduje, że wyniki trudno jest weryfikować samodzielnie, a jakaś zmiana na stronie obecna w danym tygodniu, czy chwilowe problemy wydajnościowe serwisu mogą zaburzać wyniki dla całego roku. Co widać nawet w raporcie po niektórych dziwnych danych.

Dla jasności – szanuję wykonaną pracę, ale gdyby to zależało ode mnie, wolałbym mieć dane częściej, choć może rzadziej zbierane. I tak narodził się pomysł, żeby zbierać i publikować w miarę na bieżąco dane dotyczące szybkości działania polskich stron internetowych samodzielnie, hobbystycznie, w sposób umożliwiający każdemu chętnemu samodzielną weryfikację wyników pomiarów.

Stawianie własnej infrastruktury oczywiście odpadło w przedbiegach. Zbyt zasobochłonne, zarówno jeśli chodzi o koszt, jak i o samą czasochłonność utrzymania. Poza tym, odpadnie możliwość peer review. Jednak serwis GTmetrix daje ciekawe możliwości badania szybkości ładowania stron i daje API, postanowiłem z niego skorzystać, co sprowadza pracę do napisania prostych skryptów w Pythonie. Dodatkowo pozwala dzielić się zebranymi danymi przy pomocy udostępniania unikatowych URLi.

Niestety, w wersji darmowej można robić tylko 20 zapytań po API dziennie, co wymusiło ograniczenie się do jednej lokalizacji (Londyn, jako najbliższy Polsce), jednej przeglądarki (Chrome bez AdBlocka), okrojenia liczby badanych serwisów do 10 (wybrane na podstawie raportu Hostersi z najpopularniejszych i ecommerce) i wykonywania dla każdego 2 testów dziennie. Wybrałem okolice godziny 8 rano oraz 20. Z doświadczenia o 8 jest już jakiś – choć niewielki – ruch w sieci, a 20 to szczyt. Wyniki planuję publikować co miesiąc, jako średnie wartości z danego miesiąca.

Badane strony w GTmetrix

Póki co, uruchomiłem skrypt, który przy pomocy crona robi „taktowanie”, czyli zleca uruchomienie testów. Dane zbierają się od paru dni. Pomyślę jeszcze, czy zamieszczać jakieś statystyki co miesiąc, czy po prostu ograniczyć się do zbierania. Raczej stanie na tym drugim… Stay tuned!

Nazwa.pl kupiła webhostingtalk.pl i zmienia swoją ocenę

Serwis webhostingtalk.pl traktujący o polskim hostingu został kupiony przez Nazwa.pl. Więcej można przeczytać na Wykopie i na samym forum. Nie pisałbym o tym, ale mam przeczucie, że na skutek intensywnego zamiatania pod dywan różnymi sposobami link może zniknąć, więc w ramach mirrora będzie wpis.

Forum było jakie było, ranking też. Wiadomo, że przy swobodnej wypowiedzi ludzie zamieszczają różne opinie i że są to tylko opinie pojedynczych osób. Do których jak najbardziej mają prawo. Wiadomo też, że człowiek, żeby coś zrobić, potrzebuje bodźca. Niemniej, część firm posiadała wysokie oceny, a samo forum było neutralne i funkcjonujące na przejrzystych zasadach.

Tymczasem po kupnie, oceny Nazwa.pl zostały zmodyfikowane. Oczywiście na korzyść firmy. Z 49 opinii o Nazwa.pl istniejących we wrześniu 2016 zostało 31. Średnia ocena zmieniła się z 2,27 na 4,07. Co ciekawe, było 18 osób poleca i  31 nie poleca. Teraz jest 26 poleca, 5 nie poleca. Oczywiście nie sposób wykluczyć, że naturalnie pojawiło się w tym czasie 8 pozytywnych opinii, ale biorąc pod uwagę dotychczasowe ilości, jest to bardzo mało prawdopodobne. Bardzo prawdopodobna jest za to manipulacja, mająca na celu wybielenie Nazwa.pl.

Pojawił się też wątek wzrostu liczby domen, który powoduje, że Nazwa.pl wskoczyła na pierwsze miejsce w rankingu, ale to trochę bardziej skomplikowane, więc z braku czasu pomijam.

Linki, screeny, źródła:
Web Archive opinie o firmie Nazwa.pl wrzesień 2016


Opinie o Nazwa.pl wrzesień 2016

Powyżej screenshot z WebArchive

 

 

Opinie o Nazwa.pl 06.09.2017

Powyżej screenshot wykonany dziś, podczas pisania wpisu

Bez reklam na przeglądarkach mobilnych (Chrome, Focus)

Wygląda, że szykuje się lekka rewolucja w mobilnej części internetu. Wersja testowa (canary) Chrome w wersji mobilnej wyposażona jest przez producenta w blokowanie inwazyjnych reklam. Zobaczymy jak to w praktyce wyjdzie, ale wygląda, że szykuje się zmiana zasad gry – de facto oznacza to kontrolowanie rynku reklam przez dostawcę przeglądarki, będącego przy okazji jednym z większych (o ile nie największym) graczy na rynku reklamy w sieci. Podobna zmiana jest zapowiedziana dla wersji desktopowej na początek roku.

Firefox Focus już w tej chwili ma podobne rozwiązanie – wbudowana blokada reklam i ochrona prywatności. Przy okazji, przetestowałem Focusa i wygląda on bardzo zachęcająco. W przeciwieństwie do Firefoksa jest lekki (~2 MB do pobrania) i działa żwawo. Czego o Firefoksie (no dobrze, rok temu, nie wiem jak teraz) powiedzieć się nie dało, więc na smartfonie korzystałem z Chrome. W każdym razie Focus domyślnie blokuje reklamy, nie ładuje zbędnych części strony i czyści historię, co czyni tradycyjne ad-trackery bezużytecznymi. Chwilę poklikałem – jest szybko, jest wygodnie, strony wyświetlały się OK. Polecam, jeśli ktoś nie potrzebuje na smartfonie tabów w przeglądarce. Niestety nie widzę wersji dla desktopa ani kodu źródłowego.

Mam mieszane uczucia jeśli chodzi o korzyści dla użytkowników. Z jednej strony strony mają być szansę lżejsze, nie zamulać urządzeń zbędnymi javascriptami czy animacjami i ładować się szybciej, zużywając mniej transferu. Z drugiej strony, szczególnie w przypadku Google, nie mam złudzeń. Natura nie znosi próżni, więc reklamy nadal będą. Ale od Google (lub za ich zgodą). A Google i tak ma śmieci w reklamach AdSense. Podobnie ze śledzeniem – może strony nie będą w stanie tego robić, ale przeglądarka jak najbardziej… No i może historia zatoczy koło – albo płatna przeglądarka, albo wyświetlanie reklam? To już oczywiście było, w czasach płatnej wersji Opery.

W każdym razie właściciele stron stracą (znowu) trochę wolności.

Nginx z automatycznym odnawianiem certyfikatu SSL, HTTP/2 i A+

Artykuł na z3s o automatycznym odnawianiu darmowego certyfikatu SSL od Let’s Encrypt przypomniał mi, że nie skończyłem sprawy z nginx i certyfikatami SSL. Po pierwsze, brakowało mi wpisu w cronie. Trzy miesiące to jednak kawał czasu, a na serwer i tak się logowałem, więc certyfikaty były odświeżane ręcznie. No ale jak robić to porządnie, czyli w pełni automatycznie.

Wpis do crontab, którego używam to:

43 3 * * 2 /usr/bin/certbot renew --post-hook "service nginx reload" >> /var/log/certbot.log

Nie jest idealny – przede wszystkim restart nginx będzie wykonywany przy każdej próbie przeładowania, czyli raz na tydzień. Wydaje mi się, że przedładowanie konfiguracji nie będzie stanowiło problemu, ale jeśli komuś przeszkadza, to polecam zainteresowanie się opcją –renew-hook, zamiast –post-hook, która wykonuje się tylko przy odświeżeniu certyfikatu (czyli raz na kwartał). Z tym, że mam kilka certyfikatów i nie jestem przekonany, że restart nginx podczas odświeżania certyfikatu to jest to, co chcę robić, a testować mi się nie chce, tym bardziej, że na sucho średnio jest jak.

Rozwiązałem sprawę nie do końca działającego HTTP/2 (problemy z Firefox) opisaną w poprzednim wpisie. Przyczyna wskazana w komentarzach była trafna, żeby było ciekawiej, korzystałem dokładnie z

ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH:!aNULL';

tyle, że zapewne podczas zabaw ze zwiększaniem kompatybilności z przeglądarkami zmieniłem to na wersję z gotowca, a potem odkręciłem ale… nie wszędzie. Poza tym, dopisanie http2 w każdej linii listen zawierajacej ssl i jest HTTP/2. Trochę sztuka dla sztuki, jak pokazały testy szybkości, ale wynika to głównie z tego, że same strony są małe i lekkie. Albo, jak Planeta Joggera, korzystają głównie z zasobów zewnętrznych, więc zmiany na moim serwerze nic nie dają.

W każdym razie powyższe szyfry i włącznie HSTS wystarczają do uzyskania oceny A+ na teście SSL, czego w nadchodzącym 2017 wszystkim życzę, korzystając z tego, że wpis przeleżał w szkicach nieco dłużej, niż planowałem.

Goodbye lighttpd

Do niedawna korzystałem na prywatnych gratach z lighttpd jako serwera WWW. Lekki, fajny, składnia pliku konfiguracyjnego powiedzmy perlowa, działał. Niby wszystko OK, ale… raczej nie jest wykorzystywany w różnych nowych projektach, jeśli ktoś daje narzędzia czy instrukcje, to raczej można się nie spodziewać znalezienia wersji dla lighttpd.

W międzyczasie troche bliżej miałem okazję zetknąć się z nginx i zrobił na mnie bardzo dobre wrażenie – dla kilku vhostów bardziej przejrzysty konfig, nieźle wspierany w dokumentacji różnych projektów (apache to to nie jest, ale jest dobrze). Gwoździem do trumny dla lighttpd okazał się brak wsparcia dla HTTP/2, a nawet brak planów w tym zakresie. I łatwość włączenia obsługi HTTP/2 na nginx – wystarczy jedna dyrektywa w pliku konfiguracyjnym (przy odpowiednio nowej wersji nginx – jest w backportach debianowych). Trochę na zasadzie „wykorzystać, nie wykorzystać, możliwość mieć można”.

Nic dziwnego, że pojawił się pomysł przesiadki na prywatnych gratach z lighttpd na nginx. Brakowało motywacji, bo po pierwsze istniejąca wersja działała, po drugie konfiguracja była lekko zakręcona, po trzecie brak czasu. Ostatecznie któregoś razu zebrałem się, wymyśliłem, że uruchomię oba serwery WWW równolegle, na różnych portach i zrobię szybki benchmark lighttpd vs nginx. Który to benchmark oczywiście wykaże, że nginx jest szybszy i potwierdzi słuszność przesiadki[1]. 😉

Jak już się zebrałem, to okazało się, że w sumie nie ma aż tak wielu rzeczy skonfigurowanych, a z wielu można/wypadałoby zrezygnować. Głównym wyzwaniem okazało się skonfigurowanie nginx tak, żeby HTTP słuchało na niestandardowym porcie i jednocześnie przekierowywało na HTTPS, również na niestandardowym porcie. Znalazłem rozwiązanie, ale machnąłem ręką – dziwne, nieprzystające do normalnego konfiga, a przydatne tylko na moment, przy benchmarku. Za to przydać się może ładny gotowiec do przekierowań z wersji z www na bez www i odwrotnie.

Przy okazji instalacji SSL dowiedziałem się, że w końcu istnieje oficjalna paczka z klientem Certbot dla certyfikatów SSL od Let’s Encrypt w Jessie (trzeba skorzystać z backportów). Plus, strona daje gotowe instrukcje instalacji dla popularnego oprogramowania (znowu: nginx jest, lighttpd nie ma). Czyli w certyfikatach też został zrobiony porządek. Dla pamięci: znalazłem stronkę z gotowcem, jak uzyskać A+ na popularnym teście SSL. Nieco przestarzała, ale nadal przydatna.

W zasadzie poszło zaskakująco dobrze, najwięcej niespodzianek wyszło na rzeczach najprostszych – a to serwer nie kompresował treści (tu jest o włączaniu kompresji), a to był problem z przetwarzaniem skryptów PHP. W końcu jest sensowna obsługa haseł na dostęp do stron (ew. miałem to wcześniej zrobione słabo).

Z rzeczy, które powinny działać, a nie działają – HTTP/2. Nie wiem, czy bardziej kwestia konfiguracji, wersji nginx, czy Firefoksa, ale wg testu HTTP/2 działało, a w Firefoksie (i na niektórych testach, zapewne korzystają z Firefoksa) strona się nie otwierała. Na innych przeglądarkach działało OK, ale do czasu rozwiązania problemu wyłączam HTTP/2.

Ponieważ wygląda, że publiczne motywatory działają: następna w kolejce jest przesiadka z chronicle na pelican na Wattmeter. Robi dobre wrażenie i jest w Pythonie. 😉

[1] Na przykładzie strony nextbike.tk i prostego testu przy pomocy ab -n 2000 -c 20 okazało się jednak, że różnicy większej niż błąd pomiaru nie ma. Być może kwestia wielkości małej wielkości pliku i narzutu na transmisję, być może kwestia obciążenia serwera, konfigi serwerów też nie były ani identyczne, ani optymalizowane. W każdym razie dla mnie szybciej nie będzie.

Debian over Tor

Z lekkim opóźnieniem, ale nadal news godny uwagi: Debian jest dostępny po sieci Tor. Najwidoczniej pozazdrościli Facebookowi, o którym wspominałem opisując uruchomienie strony w sieci Tor. 😉 Uzasadnienie uruchomienia jest następujące (i ładne):

The freedom to use open source software may be compromised when access to that software is monitored, logged, limited, prevented, or prohibited. As a community, we acknowledge that users should not feel that their every action is trackable or observable by others.

Dodatkowo, Tor zapewnia niezależne od zewnętrznych źródeł, „wbudowane” uwierzytelnianie i szyfrowanie treści – powiedzmy, że taki wbudowany HTTPS. Pełen katalog serwisów Debiana dostępnych via Tor dostępny jest tutaj, ale najważniejsze są chyba repozytoria pakietów.

Tor logoŹródło: https://media.torproject.org/image/official-images/2011-tor-logo-flat.svg

Przy okazji dowiedziałem się o load balancerze dla serwisów Tor.

Wpis jest pokłosiem dodania do czytnika RSS nowego serwisu Debiana, czyli micronews, który swoją drogą też wygląda ciekawie i być może pod względem technicznym będzie cegiełką do uruchomienia kolejnego projekciku…

Jak zenbox.pl z domen klientów korzystał

Niedawno na blogu sprawnymarketing.pl pojawił się wpis o tym, jak rzekomo Zenbox stosował black hat SEO. Sprawa okazała się znacznie głębsza, szersza i ciekawa, niż na pierwszy rzut oka wyglądał. W różnych wymiarach, od technicznych, po prawne.

Przede wszystkim, niezaprzeczalnym faktem jest, że niektóre strony (raczej: większość) hostowane na zenbox.pl, pokazywały co innego przy wejściu przez HTTP, a co innego przez HTTPS. Jak pokazują zamieszczone w ww. wpisie zrzuty ekranu, narzędzia do badania SEO zauważały te linki. Raczej słusznie, bo wbrew temu, co twierdzi zenbox.pl, strony te nie zostały zignorowane przez Google, lecz normalnie zaindeksowane, co pokazuje poniższy zrzut ekranu:

Zenbox.pl SEO HTTPS

Szybko okazało się, że zenbox.pl nie jest jedynym hostingiem, który działa w ten sposób, a winny jest prawdopodobnie panel DirectAdmin, którego domyślna konfiguracja powoduje pokazywanie „zaślepki” przy braku podpiętego certyfikatu SSL. Potem było już tylko weselej, bo w dyskusji na Wykopie niektórzy sugerowali, że w zaślepkach powinien być w linkach atrybut nofollow. Uważam, że akurat brak nofollow świadczy w tym przypadku na korzyść zenbox.pl i braku celowego działania – gdyby ktoś zawracał sobie głowę atrybutami czy anchor text (a są i tacy), to znaczy, że pomyślał o pozycjonowaniu.

Jeszcze bardziej dziwi mnie skupienie się na SEO i ominięcie sedna sprawy: nie chodzi o – celowe lub nie – wprowadzenie w błąd Google. Przede wszystkim mamy do czynienia z podmianą treści na stronie zamieszczonej w określonej domenie. Wątpię, by właściciele domen mieli wiedzę, że taka podmiana miała miejsce. Jeszcze bardziej wątpię w ich zgodę na takie działanie.

HTTPS zamiast HTTP niewiele tu zmienia – oczywiście jest możliwość serwowania różnych treści w zależności od protokołu, podobnie jak strona z przedrostkiem www (de facto subdomena) z technicznego punktu widzenia może kierować zupełnie gdzie indziej, niż domena bez takiego przedrostka, ale przyjęte jest, że kierują w to samo miejsca. W przypadku HTTPS jest to IMO wręcz oczywiste.

Pamiętajmy też, że strony WWW, zwłaszcza popularniejsze blogi, potrafią po prostu sprzedawać miejsce na reklamę na stronie. Wydaje mi się, że w przypadku takich blogów wykazanie szkody w sądzie byłoby trywialne. Dlatego podejście zenbox.pl do sprawy mnie dziwi. Jak widać w komentarzach na blogu, mamy kolejno:

  1. straszenie „na takie działania godzić się nie można i zrobimy wszystko aby takie akcje miały konsekwencje”
  2. negacja, najpierw problemu w ogóle (screenshot w ww. wpisie), potem wpływu „działania nie mają wpływu na pozycję stron klientów ani wpływu na pozycję witryny zenbox.pl”
  3. przyznanie istnienia problemu „wspomnianego problemu nie doświadczyli” i w końcu podjęcie działań (zmiana konfiguracji, mailingi)

Wydaje mi się, że znacznie bardziej na miejscu byłaby analiza sytuacji, podziękowanie za zwrócenie uwagi, naprawienie problemu (poprawa konfiguracji) i przeproszenie klientów.

Cała sprawa ma jeszcze jeden ciekawy aspekt. Wydaje mi się, że największy błąd popełniło… Google, które podmienioną treść na stronie jak widać łyka jak pelikan. Mimo ewidentnych błędów HTTPS (certyfikat nie pasuje do domeny), które m.in. przed taką podmianą miały chronić. W czasach, gdy każda domena może mieć rozpoznawany przez przeglądarki certyfikat SSL za darmo (oczywiście chodzi o projekt Let’s Encrypt) strony za niepasującymi, wygasłymi i self signed certyfikatami powinny po prostu być ignorowane.

Prawidłowa konfiguracja to IMHO ta sama treść dostępna po HTTP i HTTPS. Czy to za sprawą odpowiedniego przekierowania (to sensownie uda się tylko z HTTP na HTTPS…), czy też – zwł. na shared hostingu – pod certyfikatem hostingodawcy, jeśli domena nie ma własnego.

Przeglądarka Vivaldi

Parę dni temu do przeglądarek dostępnych na rynku dołączył nowy gracz – Vivaldi. A w zasadzie nie tyle dołączył, co ukazała się wersja 1.0. Oczywiście zainstalowałem i się pobawiłem. Jest parę ciekawych ficzerów, które przypadły mi do gustu, ale nie wszystko mi się podoba.

Pierwszą rzeczą, którą widzimy po instalacji i uruchomieniu przeglądarki, jest tzw. wizard. Można wybrać schemat kolorów, rozmieszczenie belki z tabami i… obrazek, który będzie służył za tło przy speed dial. Wszystko oczywiście można zmienić później w ustawieniach, ale uważam, że taka szybka i łatwo dostępna personalizacja to miła rzecz. Poza nieszczęsną tapetą dla speed dial – po co tam komu tapeta? Przecież to potrzebne jak tapeta w systemie – widzę ją przez parę sekund po uruchomieniu i tyle.

Kolejną rzeczą, która zwróciła moją uwagę, jest pasek postępu – pokazuje ilość pobranych danych, postęp ładowania w postaci przesuwającego się paska i chyba ilość obrazków na stronie. W każdym razie kiedyś któraś przeglądarka już tak miała i uważam to za lepsze rozwiązanie, niż niewiele mówiące kręcące się kółeczko.

Vivaldi ma chyba pewne ambicje do zastąpienia systemu operacyjnego. Jest i wspomniana tapeta, jest wbudowany w przeglądarkę klient poczty, jest możliwość tworzenia notatek, no i w końcu są panele, czyli tak naprawdę funkcjonalność kafelkowego managera okien. O ile do pierwszych dwóch podchodzę zdecydowanie negatywnie, to do tworzenia notatek mam mieszane uczucia. Za to panele nawet mi się podobają – jest to coś w stylu mini strony WWW, domyślnie w wersji mobilnej, dostępna na każdej zakładce. Po prostu podział powierzchni okna na dwie części. Przy obecnych szerokich monitorach może zdawać egzamin, a w panelach można umieścić np. social media, które i tak nie wymagają wiele miejsca.

OgólnieVivaldi bardzo przypomina mi Operę. Jak się okazało, słusznie, bo projekt tworzą ludzie, którzy kiedyś pisali Operę. Jest parę różnic, przede wszystkim większy nacisk na prezentację. Jest parę innowacji, więc przypuszczam, że – podobnie jak niegdyś OperaVivaldi zdobędzie pewne grono gorących zwolenników. Wielkiej popularności nie wróżę, ale zdecydowanie warto spróbować. Ja planuję od czasu do czasu używać, być może Vivaldi zostanie moją przeglądarką do social mediów.

Na koniec słowo o obsługiwanych systemach operacyjnych – Vivaldi dostępna jest dla Maców, Windows (wersje 32 i 64 bit) oraz Linuksa (pakiety deb i rpm w wersjach 32 i 64 bit). Twórcy nie chwalą się adresami repozytoriów, ale są one dostępne i dodawane automatycznie po instalacji (bez ostrzeżenia, nie lubię). Dla porządku, dla gałęzi stabilnej przeglądarki i Debiana wpis dla sources.list  to:

deb http://repo.vivaldi.com/stable/deb/ stable main


Letsencrypt i lighttpd – HOWTO

Czym jest Let’s Encrypt wie już chyba każdy, kogo interesują certyfikaty SSL, ale wypada jakieś wprowadzenie napisać, więc: to prosty sposób na odnawialne automatycznie, rozpoznawane przez przeglądarki, bezpłatne certyfikaty SSL dla każdego. Projekt jest w fazie public beta, więc przystąpić może każdy, stoją za nim duzi (przykładowi, bardziej znani sponsorzy: Mozilla, EFF, Cisco, OVH, Google Chrome, Facebook), więc raczej coś z tego będzie i jest krokiem w kierunku zwiększania bezpieczeństwa w sieci pod hasłem wszystko po HTTPS (które to rozwiązanie ma wady, ale o tym już było).

Let's Encrypt logo

Źródło: https://letsencrypt.org/trademarks/

Ponieważ właśnie dostałem maila od Let’s Encrypt, że wygenerowany przez nich, darmowy certyfikat SSL dla mojej domeny wygasa, postanowiłem skorzystać z największego dobrodziejstwa, czyli zautomatyzować całość. Prosty skrypt, który zadziała dla lighttpd i jednej domeny:

#!/bin/bash LECMD="/opt/bin/letsencrypt/letsencrypt-auto"DOMAIN="mojadomena.com"WEBROOT="/var/www/mojadomena.com/html/"EMAIL="adres@email"$LECMD --renew-by-default -a webroot --webroot-path $WEBROOT --server https://acme-v01.api.letsencrypt.org/directory --email $EMAIL --text --agree-tos -d $DOMAIN authcat /etc/letsencrypt/live/$DOMAIN/privkey.pem /etc/letsencrypt/live/$DOMAIN/cert.pem > /etc/letsencrypt/live/$DOMAIN/ssl.pemservice lighttpd restart

Zakładam oczywiście, że skrypt letsencrypt jest pobrany z gita, masz dostęp do roota, lighttpd jest skonfigurowane i ma podpięty certyfikat SSL. Plus, że w konfiguracji lighttpd jest linia w stylu:

ssl.pemfile = "/etc/letsencrypt/live/mojadomena.com/ssl.pem"

To co wyżej to sama esencja, brakuje choćby kontroli błędów/statusu wykonania poleceń, ale wywołane z ręki działa i pewnie dodam do crona wykonywanie raz w miesiącu (wzmocnione przez && w ramach „kontroli błędów”). Opisuję, by mi nie zginęło, poza tym, widziałem albo skrypty automatyzujące, albo opisy uruchomienia letsencrypt z lighttpd, więc liczę, że zebrane do kupy się komuś przyda.

UPDATE Wpis się lekko zdezaktualizował o czym więcej w tym wpisie. A krótko: jest gotowiec od EFF o nazwie Certbot do automatycznego zarządzania darmowymi certyfikatami SSL Let’s Encrypt, z opisami dla różnych serwerów.

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, ale ponieważ to jednorazowe było, postanowiłem podejść do sprawy bardziej systematycznie, tym bardziej, że wartości były raczej niskie.

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, generowana raz na godzinę, 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, ale zastanawiam się, czy przypadkiem nie dzieli z nim (części) kodu źródłowego?