Date: 2025-10-25 18:41:28
From: rpt@desudoli.cz
Subject: Reboot 2025
To: dalnopis@desudoli.cz
Tags: internet, software, psaní, programování
Desc: Pár poznámek k aktuálnímu rebootu blogu.

Reboot 2025

Práce je hotova a laskavý čtenář právě zakouší novou formu tohoto blogu. Vizuálně se toho mnoho nezměnilo, neboť jsem se vzhledem poměrně spokojen. Barvy zůstaly, kaskádové styly doznaly změn, ale ty nejsou z uživatelského hlediska příliš patrné. Snažil jsem se o robustnost a využití doporučených postupů.

Poznámky pod čarou

Největší změnou prošly poznámky pod čarou. Program nyní umí 2 verze: skryté (po rozklinutí se objeví pod odstavcem s referencí) a marginálie.[1] Bohužel neexistuje spolehlivý způsob, jak pomocí HTML a CSS vytvořit marginálie. Při posledním rebootu jsem použi plovoucí text, který na těchto stránkách jakžtakž fungoval, ale nikoliv za všech okolností. Např. při zúžení obrazovky se poznámka objevila nad textem s odkazem, nikoli pod ním, což je logičtější. Možná hloupost, ale iritující. Také mít více poznámek v jednom odstavci byl problém, který jsem obcházel tím, že jsem poznámky sdružoval do jedné. Ostatní sice vypadaly jako poznámky, byly odsazené a měly vlastní číslo, ale to jen zakrývalo skutečnost, že sémanticky vlastně neexistují. Obětoval jsem sémantiku, abych zachoval vizuál. V psaní textů jsem se pak snažil poznámky pod čarou raději nepoužívat. Byl to kompromis, ke kterému se už nechci uchylovat.

V CSS za uspořádání stránky většinou zodpovídají metody Fluxbox a Grid. Ani jedna z nich nedokáže udržet poznámky ve vedlejším sloupci na úrovni odstavce s odkazem. Zkoušel jsem nashromáždit poznámky pod sebou v horní části webové stránky, ale připadá mi hloupé načíst si marginálie „do foroty“ a pak se v hlavním textu pročítat k odkazům na ně. Zkoušel jsem také vyskakovací okna, ale tam byl problém s velikostí, která je závislá na délce textu poznámky. Skryté poznámky pod odstavcem s odkazy chvíli vypadaly jako za daných okolností nejlepší, ale nikoliv ideální řešení. Proti předešlému řešení je poznámka v textu skutečně pod odstavcem, nikoliv nad ním. Jenže i skryté poznámky vyžadují javascript.

Takže jsem se ještě jednou vrátil k margináliím. Metoda grid a krátký javascript[2] vykonaly, co se zdálo být nemožné a fungující marginálie jsou na světě. Dokonce i omezeně reagují na změnu velikosti okna prohlížeče, ale úplně neprůstřelné to není.

Myslel jsem i na všechny, kdo nechtějí s javascriptem nic mít, např. na uživatele textových browserů, Netsurfu nebo Dillo. Kdo má javascript vypnutý nebo ho jeho prohlížeč ignoruje defaultně, všechny poznámky se zobrazí na konci textu. Mimochodem, Netsurf to zvládá o něco lépe, ale i Dillo se dá použít.[3] Links dělá, co umí, a dělá to téměř správně. Jen ignoruje CSS, takže číslo poznámky je vždy nad samotnou poznámkou, zatímco má být na stejné řádce. Alespoň se tím zdůrazňuje, že jde o poznámku, protože links jiné rozlišení nepodporuje.

Ostatní

Vše ostaní zůstalo víceméně zachováno. Stránky s tagy jsou nyní ve složce tags pro větší přehlednost, ale to uživatele moc nezajímá. Texty píšu stále v Gemtextu s přidanou kurzívou, monospacem a margináliemi, ačkoli první náčrt často vzniká na papíře. Věřím, že psaní, i tyto moje primitivní texty zde, má určitý umělecký či řemeslný rozměr. Nebo by mít mělo a ovládání editoru, vlastní generátor a konvertor a psaní perem na papír snad přidává něco, co by tam jinak chybělo.

Programování

Generátor blogu a konvertor v jednom byl napsán hlavně s ohledem na rychlost. Už mě nebavilo čekat, až perlovský skript na mém obstarožním laptopu přechroustá neustále rostoucí počet souborů. Proto jsem zvolil Go, avšak velmi brzy jsem narazil na háček spočívající v tom, že Go není v repozitářích OpenBSD. Když jsem to zjistil, měl jsem jistou část napsanou na notebooku, kde jsem zkoušel Alpine Linux a tam jsem proto také celou práci dokončil.

Jak jsem se zmínil posledně, Go je striktní a to považuju za výhodu. Perl, jehož mottem je více způsobů jak udělat jednu věc, mě vždycky trochu lezl na nervy. Bylo pro mne někdy obtížné program v Perlu číst. Kompilátor Go dokonce ohlídá nepoužité proměnné! Z rekurze, hlavně při konverzi gemtextových souborů, jsem byl také nadšený, používat stejnou funkci na celek i na jednotlivé části je velmi úsporné i uspokojující a v Go poměrně snadné. Určitě tu mám ještě rezervy. Další skvělá věc jsou HTML templaty, i když se dají do jisté míry nahradit jednoduchým prográmkem sed(1). Go je prostě vyspělý a všestranný nástroj. Přitom mi pořád připadal velmi jednoduchý.[4] V tom zřejmě spočívá příčina toho, proč je tak ukecaný. Nový generátor má ve finále mnohem víc řádků než původní perlovské skripty, ale to může mít i další příčiny. Např. nejde o kopii 1 ku 1. Proto jsem zvědav na programování v Haskelu, protože strukturu a funkcionalitu programu chci vystavět podobně jako v Go.

Umělá inteligence

Pár slov k AI. Přes všechny problémy s touto technologií (dnešní Youtube je plný videí o další IT bublině a o tom, jak developeři tráví víc času opravmi AI výtvorů, než kdyby je programovali sami) jsem nucen konstatovat, že bez AI bych tento projekt patrně nedokončil. Pomohla mi začít, zorientovat se v novém jazyce a jeho best practices. Bylo velmi snadné ptát se na věci, které bych musel složitě dohledávat a studovat. Je pravda, že čím víc jsem pronikal do programování v Go a čím více se přede mnou rýsovala struktura celého programu, tím více jsem pracoval sám, protože řešení nabízená AI do mé představy nepasovala. AI si občas také protiřečila, když obhajovala použitý postup, který jindy naopak zatracovala. Ale bez znalosti knihoven a základních postupů programování ve vybraném jazyce se vskutku obtížně začíná a pokud člověk nemá moře času, daleko se nedostane. Snad proto jsem dosud zůstával věčným začátečníkem, pokud jde o programovací jazyky. AI mi pomohla tuto překážku překlenout a to je potřeba uznat. Na druhou stranu si uvědomuju, že tato „snadnost“ brání hlubšímu pochopení.

Používám AI i v práci a mohu říci. že schopnost "vyplivnout" celé řešení dílčího a velmi konkrétního problému v několika vteřínách je fenomenální. Jenže komplexní problémy jsou úplně jiná káva a tady se často potýkám s tím, že musím AI pracně usměrňovat nebo její práci přepisovat, což skutečně zabere mnoho času. Ale v analýze již hotového kódu a jeho refactoringu opět exceluje. Testovací jednotky? Brnkačka. To vše se mi potvrdilo i při práci na tomto soukromém projektu.

Závěrem chci upozornit, že program bude volně k dispozici na GitHubu, jen co ho ještě maličko učešu, trochu víc otestuju v praxi a připravím manpage, což nejspíš ještě pár týdnů potrvá.

A abych nezapomněl, narazí-li někdo z mých 3,5 čtenáře na problém, nechť mi dá vědět.

EOF