Sedím si v zimě. Skoro jako ve své jamce, tedy kéž by. Kočička líně leží v křesle a její očka jsou jako dva unavené korálky štěstí. Takové barevné kamínky. Když vstane a zahledí se z okna, má pohled rázem tak majestátní, že by mohla kandidovat a volby z fleku vyhrát. Naposledy takhle vyhrál Kocíček. V různých vesmírech probíhá zkrátka volební den jinak a já chci podpořit kočičí rodinu a na malý, maličkatý okamžik třeba i usnout. Zní to krásně.
Opravdu bych byl nerad, kdyby se tu říkalo zanedbánku, nebo kdyby celý měsíc rázem začal ovládat nějaký budulínek. Přesto netuším, jak správně na to; taky mi přijde nefér se vrátit k praktikám, kdy všechno bylo v pomlčkách. Byl to, pravda, taky jinačí vesmír, ale ten současná se nebývale rozpadá a hodně dnů je podobných jako tenkrát, zatímco v rámci úpadku běží i nějaká ta absolutní progrese, o kterou nikdo neprojeví zájem. Nemůžu se nadechnout nebo skotačit. Někde měla Zuzana svoje zamyšlení, když si nade dveře pověsila cedulku Make a life you don't need a vacation from. Pak odešla zbyla z ní jen šmouha – teď jsem to já, kdo musí setrvat, zatímco všichni ostatní už znovu šli do Betléma zvolit si svého spasitele.
Volby jsou připravené, kočíku. I před čtrnácti dny to šlo všechno poměrně slušně a s klidem, i když si všechny tiskárny zase vyžádaly reinstalaci. Teď už jen dvě, což je pořád super, ale i tak nad tím zůstává rozum stát. Vlastně nepochopím, proč všude musejí všichni cpát Windows a odmítají si život zjednodušit. Je tam stejný argument, jakým se můžu z legrace občas ohánět taky – jsou placení za hodiny. Přesto si budou komisníci zase stěžovat, že se nemají jak připojit, ač na to ze zákona nemají žádný nárok. To protože by to někdo musel zapnout. A to tak, že by to mělo jít zapnout, což samozřejmě s uříznutou větví pod nohou nejde, že.
V dalším bodě bych se rád zmínil o vesmíru našeho Minecraftu. Ono je pořád co zlepšovat, pořád je co se učit. Tak například dalším geniálním tahem byl přesun webové části dynamické mapy a MySQL na separátní disk. Samo o sobě má tohle ohromný dopad na výkon, protože se uvolní I/O pro periodické zápisy do souborů regionů světa, a tam je důležité, aby se to stihlo do určitého limitu. Pokud disk bude přetížený jinými asynchronními operacemi, nemusí k tomu dojít, pak ale watchdog celý server shodí. Tento přesun také umožní daleko lépe využívat žurnály a CoW, čímž by se mělo ještě o něco zjednodušit zálohování a obnovování. Samozřejmě databáze a webové soubory jsou víceméně postradatelné položky, jen jich je prostě hrozně moc. Tam má jednak smysl mít CoW a kontrolní součty vypnuté, ale ještě vyššího výkonu by se asi dalo dosáhnout plným přechodem z flatfiles webu na MySQL a celou MySQL provozovat přímo na disku jako raw, hezky bez souborového systému. Taky ještě dodám, že se nevyplatí troškařit, takže celá legrace je teď zmigrovaná na Intel Optane SSD a pokud si někdo myslí, že mít na Minec enterprise disk za 40k je overkill, pak má asi pravdu. Jde ale o ten vývin.
S webovou mapou se pojí další navazující příhoda o vývinu. Není to tak dávno, co se na ní povedlo experimentálně (tedy i prakticky) rozjet ultramoderní HTTP/3. V současné chvíli stále není moc možností, jak tohle provozovat, nejdotaženější z hlediska integrace do stávajícího prostředí je Nginx, který to umí. Primární reverzní proxy pro HTTP 1 a H2 běží na Apache a taky se stará o ukládaní a obnovování LetsEncrypt certifikátů. Kupodivu není komplikované vedle Apache nechat Nginx běžet pouze na HTTP/3 (UDP 443) a v Apache jen uvést hlavičku s alternativní službou – browsery si to zapamatují a pak už komunikují opravdu rychle. Zatím nevyluštěný zádrhel je v možnosti provozu více virtualhostů (resp. reverzních proxy) na HTTP/3, protože konfigurace Nginx tak nějak vyžaduje volbu reuseport
pro správný provoz jednoho jména, takže pak není možné otevřít na stejném portu jméno jiné. Třeba se to časem někam posune, zatím to musíme odložit na později a nechat si o tom jen zdát.
Co je tím snem, to je Mastodon na HTTP/3. Ještě v minulé úvaze padlo pár stížností, že nefunguje správně federování, kdy sloníci v různých vesmírech nemohli na sebe navzájem tůtat. Ukázalo se, že je to jen konfigurační problém, protože vzdálené servery nemohly správně používat WebFinger. Ten je poměrně jednoduchým protokolem, přes který se jako JSON pošlou všechny důležité informace, ale chce to správně číst si dokumentaci, neboť běží v cestě /.well-known
a kdo konfiguruje ACME v Apache právě pro certifikáty LetsEncrypt, musí jeho cestu chirurgicky vyříznout a vše ostatní správně poslat instanci Mastodonu. Bylo to jupijej, když se zadařilo – hlavně protože vyšel klient Ivory pro iOS a doufám, že co nevidět bude i pro macOS, takže celý vesmír, tedy minimálně ten můj v tom šíleném meta-fedi-versu, bude zase v pařátku kuru.
Konfigurace Apache je taky věc sama pro sebe. Protože H2 vyžaduje jeho provoz v událostmi řízeném zpracování, chce to občas koukat, co si Debian sám od sebe aktualizuje, neboť není schopen při přechodu na novou verzi PHP (teď konkrétně z 8.1 na 8.2) přehodit konfiguraci pro fpm modul. Netuším, proč to nejde buď zautomatizovat, nebo nechat jako nějaký defaultní, nečíslovaný – třeba pomocí update-alternatives. Tak jsem se u nechtěně leaknutých hesel poměrně zasmál a jako další na řadě byla oprava chybného, nebo spíš žádného zobrazování SVGz, pokud je načítaný přes PHP. Vlastně to bylo jen opomenutí, dá se říct, zkráceně jde o to, že hlavička content-length
onoho .svgz souboru musí předcházet nastavení content-disposition
a pak už je vše v klidu.
Nevím, jestli závěrem, ale zase se vrátím k Minecraftu. Hodně dlouho jsme čekali na 1.19.3, která přinesla poměrně značené změny pod kapotou, třeba v podobě rychlejší matemagie a podobně. Každopádně citelnou změnou je práce s balíčky zdrojů, které teď mimo výchozí cesty musí mít specifikovaný altas textur. To je na jednu stranu velmi super věc, na tu druhou je poměrně složité takový balíček udržovat. Asi by to chtělo vymyslet nějaký integrační mechanismus, který by tohle dělal za člověky. A řeč je zase smozřejmě pouze o serverových balíčcích, protože na straně klienta se prostě všechno rozpadne do několika malých a není důvod to dál zkoumat. Nu, to necháme třeba na víkend.
Nuže, volební den je v různých vesmírech různý a neplatí, že by byl nudný. Pořád tu je vývin, pořád je tu kočení. Musíme si jen zvolit správně.