Blogrys

Czym chata bogata

Bezimiennemu Murzynowi u Nolana musiało wystarczyć jedno słowo: „Tenet”. Ja miałem trudniej. Moje hasło nie było palindromem i budziło niejasne skojarzenia z twórczością Poego. „Jekyll”. Gdybym w maju wiedział, jak głęboka okaże się królicza nora, nigdy nie odważyłbym się podjąć informatycznego tropu.

WordPress i inne systemy napisane w PHP zasilają ponad połowę internetu. Co drugie oko w Sieci Świata Szerokiego generuje więc strony na żądanie, wyciągając potrzebne dane ze zwartej bazy. Oznacza to pozornie większą wygodę zarządzania treścią dla autorów, ale powoduje zarazem liczone w sekundach opóźnienia u internautów. Co gorsza, WWW jest niemiłosiernie glajchszaltowany. Jeżeli zastanawiałeś się, dlaczego od dobrych dziesięciu lat portale, witryny i blogi upodobniają się do siebie, oto odpowiedź: Wszyscy korzystają z tych samych silników, szablonów, szkieletów, bibliotek!

Skłamałbym, gdybym powiedział, że to właśnie WordPressowa estetyka zredukowała częstotliwość mojego blogowania do zera. Owszem, irytowało mnie, że nie mogę dopasować wyglądu Blogrysa do swojego minimalistycznego gustu; do szewskiej pasji doprowadzał mnie też przeładowany funkcjami, ślamazarny edytor. Przede wszystkim chodziło jednak o brak czasu. Mimo to, dowiedziawszy się o Jekyllu, narzędziu służącym do tworzenia statycznych blogów, zastrzygłem uszami.

Cóż to za zwierzę, blog statyczny? Nic ponad staroświecki model, w którym witryna składa się z dowolnej ilości plików HTML wrzuconych uprzednio na serwer. Rola Jekylla sprowadza się z grubsza do automatycznego generowania spisów treści i do dodawania pewnych stałych elementów, np. nawigacji i stopek. Podkreślmy, że ani „generowania”, ani „dodawania” nie należy tu rozumieć w sensie bazodanowym. Żadnej bazy nie ma. Kończę pisać notkę, odpalam lokalnie Jekylla, Jekyll tworzy nowy plik HTML i dodaje nowe linijki do spisów treści, a ja ładuję nowe/uaktualnione dokumenty na serwer.

Skuszony nowym schematem publikacji zatarłem w maju ręce i zabrałem się do roboty. Plask. Wyłożyłem się na samym starcie, ponieważ Jekyll nie chciał odpalić się pod Windowsem. Uruchomiłem go więc w emulatorze Linuksa. Początkowa przeszkoda przekształciła się natychmiast w miłe wspomnienie. Po ponad dziesięcioletniej przerwie znów poczułem pod palcami potęgę linuksowych komend.

W emulatorze Jekyll zadziałał zgodnie z instrukcją. Wyeksportowałem wszystkie 834 notki z WordPressa z nadzieją na łatwe zintegrowanie ich nowym narzędziem. Nadzieja matką głupich. Notki oklejone były pokracznymi WordPressowymi tagami przywodzącymi na myśl najgorsze praktyki edytorów graficznych do stron WWW z lat 90 (ktoś tu jeszcze pamięta Pajączka?). Nagłówki wyglądały jak skserowane z Lovecrafta. Format komentarzy? Bagienny.

Zagryzłem zęby. Miałem już przecież do dyspozycji całego emulowanego Linuksa i pamiętałem, że specjalnością Pingwina Tuksa są programiki służących do masowej, chirurgicznej edycji tekstu. Rozpocząłem mozolne oksrobywanie Blogrysa z siedemnastu lat znacznikowego brudu pokrywającego go w trzech warstwach (My Opera, Blogspot, Wordpress).

W trakcie procesu wykonywałem częste kopie zapasowe, dzięki czemu mogę teraz pokazać światu kolejne żmudne etapy na poniższym screenshocie. Zwracam uwagę na ver11; opisy są po angielsku, bo tak mi z rozpędu wyszło.

Podkreślam, że każda iteracja obejmowała ponad 800 plików tekstowych. Za każdym razem musiałem pilnować, żeby naprawiając coś w pierwszych pięciuset, nie popsuć ostatnich trzystu. Wysiłek został mi wynagrodzony w walucie sentymentu; wertując kilobajty tekstu przeczytałem znów wiele komentarzy sprzed 10-15 latach. Ech, gdzie się podziały tamte dyskusje?

Praca przy blogu wrzała. W międzyczasie Windows zaktualizował się bez mojej zgody i spowolnił jeszcze bardziej. Pomyślałem, że skoro już i tak korzystam z emulatora, równie dobrze mogę po prostu przesiąść się na Linuksa. Zaparkowałem Windę na najniższym piętrze twardego dysku i zainstalowałem Xubuntu.

We wrześniu nowe wcielenie Blogrysa było niemalże gotowe. Wykupiłem własny hosting – najwyższa pora, po siedemnastu latach – a po chwili wahania dodałem do zestawu także domenę. Ogłoszenie blogrysa peel światu mocno się jednak opóźniło, ponieważ zależało mi na pozostawieniu przy życiu komentarzy. Nie chciałem korzystać z zewnętrznych systemów pokroju Disqusa (podkradającego dane użytkowników) albo Staticmana (zmuszającego do połączenia bloga z GitHubem). Cóż mi pozostało? Zagryzłem zęby po raz kolejny, poduczyłem się JavaScriptu oraz PHP-u, i napisałem własny system komentowania – z captchą, powiadomieniami i prostym parserem do Markdowna włącznie!

Na finiszu okazało się, że Google i DuckDuckGo uparcie odmawiały zindeksowania nowego Blogrysa. Pal je licho. Napisałem własną (wewnętrzną) wyszukiwarkę. Możecie przetestować, jej okienko znajduje się na samym dole.

Mawia się, że najlepszym sposobem na udoskonalenie zdolności obsługiwania komputera jest wymyślenie sobie i zrealizowanie projektu informatycznego, do którego czujemy autentyczną motywację. Trudno o lepsze potwierdzenie słuszności tej rady niż droga, którą przebyłem od maja do listopada bieżącego roku (z długą wakacyjną przerwą):

  • Opanowałem Jekylla i jekyllowe szablony pisane w Liquidzie (języku stworzonym w Ruby). Ta akurat wiedza szerszych zastosowań raczej nie posiada, ale niewykluczone, że w przyszłości przyjdzie mi postawić inną statyczną witrynę.
  • Powróciwszy do (X)ubuntu, sięgnąłem po parę książek o wierszu poleceń i poznałem z nich mnóstwo pożytecznych skrótów i sztuczek.
  • Zostałem vimiarzem! Korzystam teraz na co dzień z legendarnego edytora tekstu, którego obsługa jest równie skomplikowana i odprężająca, co latanie Cessną.
  • Opanowałem regeksy, czyli wyrażenia regularne i stałem się magikiem edytora strumieniowego sed, linuksowego szwajcarskiego scyzoryka do przetwarzania tekstu – bez wyświetlania go.
  • Nauczyłem się JavaScriptu oraz PHP w stopniu wystarczającym do napisania nieprymitywnego systemu komentowania. Czyli: Liznąłem podstawy, ale tak konkretnie.
  • Nauczyłem się także pisać skrypty w Bashu. Nowe notki rozpoczynam od komendy newblogpost.sh, a kończę updateblog.sh. Cała reszta (kopiowanie pliku do właściwego katalogu, uzupełnienia nagłówka z datą i liczbą słów, dodanie notki do wewnętrznej wyszukiwarki, uaktualnienie spisów treści, załadowanie nowości na serwer, rozesłanie powiadomień do subskrybentów mailowych) odbywa się w stu procentach automatycznie. Nie muszę nawet otwierać przeglądarki. Prościej blogować się nie da, serio.
  • Poznałem dobrodziejstwa korzystania z prawdziwego, opłaconego hostingu. Wspaniała odmiana po latach siedzenia na serwerach spod szyldu Za Darmo Ale Powoli I Z Reklamami A Tamtego Nie Ruszaj Bo To Premium.

W najbliższej przyszłości zamierzam wyeliminować z Blogrysa JS-a i publikować nowe komentarze wyłącznie przy pomocy PHP-u (stare są już zagnieżdżone na twardo w HTML-u). Dzięki temu witryna stanie się szybsza i całkowicie kompatybilna z lekkimi przeglądarkami starszej ery. Na sam koniec spróbuję zoptymalizować CSS i podkręcić prędkość do maksimum. Jak się bawić, to się bawić.

Podziękowania dla Sebasisty i Sejiego, którzy zerknęli na wersję beta i wsparli mnie kilkoma poradami. Sebasista przypomniał mi, że less is more, zaś Seji fachowym okiem redaktora wyłapał parę drobnych błędów w layoucie.

Czy w nowych szatach będę blogował częściej? Oby. Jeżeli gruntowna rewitalizacja nie pomoże, to nic naprawdę nic nie pomoże, jeśli Ty nie pomożesz komentarzem.

Wpisujcie miasta.






Komentarze

Borys (2023-11-13 15:48:15)

Oslo!

M.F. (2023-11-13 17:02:35)

Może poszukam kursów o tworzeniu bloga... bo jak na razie nie rozumiem połowy z tego, co opisałeś :) Liznałem Ruby, a i mam kupiony kurs Ruby na Udemy ale nie mam "weny". Gratuluje, że ci się chciało to wszystko. Pozdrowienia z wycieczki Theseusa-em :) Spokojnie, wracam na Ziemię w sidequel-u :)

Misiołak (2023-11-13 20:20:01)

Piękne świadectwo prokrastynacji :D

Seji (2023-11-13 23:10:06)

Kraków! ;)

Cichy (2023-11-14 18:19:13)

Kraków! (jaki ten świat mały)

Michał Stanek (2023-11-15 10:40:16)

Pamiętam Pajączka. RSS uaktualnię. Podziwiam samozaparcie. Gratulacje i powodzenia na nowej drodze ;)

Arek (2023-11-20 11:55:53)

No wreszcie coś się dzieje.

Boni (2023-11-25 16:52:07)

Tullamore! oraz gratulacje samozaparcia i witam w moim świecie! ;) Tzn. podobne przyczyny i zaszłości spowodowały, że jakoś tak 11 lat temu przeniosłem się z blox.pl na swoje, tylko, że byłem już wtedy na tyle doświadczony, żeby od razu ominąć etap pt. wordpress i wydłubałem na kolanie własny engine bloga... Oczywiście metody, szczegóły, narzędzia były i są inne, ale jakże wiele podobieństw w sednie (panowanie nad layoutem i kątętem, żadnych baz danych, niech to działa błyskawicznie, przyzerowy JS itd). I nawet kapcza jakaś taka znajoma! ;D

Co do samego blogowania, u mnie chyba technikalia od zaplecza nie mają większego związku z częstością czy jakością moich notek/komentarzy, ale dwie rzeczy są pewne - po 11 latach te moje mikro-wypociny w PHPie nadal mogę spoko maintainować (akurat dziś coś zmieniałem) oraz jestem durno-dumny, że mój kuchenny CMS-engine waliduje się od strony wynikowego HTML, kiedy praktycznie już nic nigdzie w sieci nie waliduje się...

Borys (2023-11-27 15:09:49)

M. F.: Ruby jest (podobno) bardzo przyjemny, ale Python to chyba jednak najlepszy wybór dla początkującego programisty. Ewentualnie PHP w kontekście HTML-u, bo prosta funkcjonalna strona da prawdopodobnie więcej radości niż pętla licząca liczby pierwsze.

Misiołak: Raczej odpowiedź na pytanie: „Jak doświadczony pedagog spożytkowuje nadwyżkę wolnego czasu w trakcie matur?”.

Boni: Nie będę ukrywał, że Twoja kapcza stanowiła dla mnie inspirację. A rzeźbienie własnego bloga w prostych narzędziach to istne przeciwieństwo „humbling experience”: Człowiek zaczyna odczuwać lekką pogardę dla większości współczesnych witryn internetowych, które obrastają w kod udając, że są aplikacjami webowymi.

SpeX (2024-03-06 20:09:31)

Masz coś nie tak, z feedem po (chyba) edycji wpisów. Bo wpis na rss do ostatniego postu kieruje do https://blogrys.pl/2024/03/05/operacja-sweter/ (brakuje ek)

Borys (2024-03-07 10:31:30)

Tak, wiem, trochę pomieszałem, bo zmieniłem w ostatniej chwili tytuł notki, przez co rozjechały mi się linki. Wszystko jest pod kontrolą, muszę tylko pamiętać, żeby nie zmieniać tytułu notki po jej publikacji. :) Dzięki za feedback!

SpeX (2024-03-08 20:55:42)

O dziwo nie dostałem feedbacku o tym, iż odpowiadasz na komentarz. A wcześniej taki (chyba?) dostałem.

Borys (2024-03-14 15:38:26)

Twojego adresu mailowego nie ma w ogóle w pliku subskrybentów komentarzy do tego wpisu (jest natomiast w innym, gdzie również komentowałeś). Prawdopodobnie zapomniałeś go tutaj dodać – albo nieopatrznie kliknąłeś na link w mailu usuwający subskrybcję. Rozsyłanie powiadomień działa, dodawanie subskrybcji też. Przed chwilą wszystko sprawdziłem. Niemniej, dzięki za zachętę do sprawdzenia, czy komsystem dalej hula tak jak powinien. :)

SpeX (2024-03-29 09:54:56)

Kuknij proszę na SSL, bo u mnie wychodzą z nim jakieś problemy.

Borys (2024-03-30 23:37:12)

Ufff, SSL, czyli coś, na czym ani trochę się nie znam. Zerknąłem i faktycznie coś się nie zgadza, wygasł „intermediate certificate”, cokolwiek to oznacza. Wysłałem zapytanie do firmy hostingującej. Ponownie dzięki za feedback techniczny.

SpeX (2024-03-31 08:14:22)

Akurat wyszło mi to w logach czytnika RSS, gdyż nie chciał mi pobierać twojego feeda.

SpeX (2024-04-02 01:07:07)

Coś odpisali o tym SSL?

Borys (2024-04-02 15:43:18)

Już powinno działać. W każdym razie u mnie przestało pokazywać błąd pośredniego certyfikatu.