./blog.sh

Záchrana blogu, který zemřel v roce 2013

Každý importér tady čte exportní soubor. To funguje přesně do chvíle, kdy platforma zmizí – a pak není o jaký export žádat, kam se přihlásit ani jaký účet obnovit. Posterous skončil v roce 2013. Blog.cz je pryč. Tvůj hosting je na řadě, časem.

Pro tyhle blogy je dvacátým zdrojem importu Internet Archive.

Režim feedu: co si crawler nechal

Archiv udělal užitečnou věc, aniž to zamýšlel. Léta procházel RSS feedy blogů – znovu a znovu, každých pár týdnů, kdykoli šel crawler kolem. Každý záchyt je snímek posledních deseti nebo dvaceti příspěvků v tu chvíli. Seřaď je od nejstaršího a překryvy zrekonstruují historii, kterou nikdo neuložil.

To dělá importér: přečte index CDX pro adresu feedu, odstraní duplicity podle digestu, aby sto shodných záchytů stálo jedno stažení, vytáhne původní bajty přes koncový bod id_, aby ti do příspěvků nikdy nepřistála vlastní lišta Archivu, a překrývající se okna sloučí stejně, jako nový import slučuje cokoli jiného.

Obrázky se vracejí týmž strojem času.

Číst dál

Tvůj fotoaparát si zapisuje, kde jsi byl

Vyfoť něco telefonem a zaznamená místo, kde jsi stál. Ne jako odhad – jako souřadnice, přesné na pár metrů, v bloku metadat, který cestuje se souborem, kamkoli jde.

Sociální sítě to při nahrání odstraňují. Dělají to léta, dost potichu na to, aby na to většina lidí přestala myslet. Statický web nemá nikoho, kdo by to udělal: blog.sh zkopíroval tvou fotku do archivu bajt po bajtu a nic v enginu se na metadata nikdy nepodívalo. Takže fotka kočky na parapetu zveřejnila parapet.

Od 1.2.1 ne. Fotka přijde o polohu na cestě do archivu – když ji přidáš do příspěvku, a stejně tak když vstoupí kterýmkoli z dvaadvaceti importérů, protože všechny končí v témže zápisu.

Jen poloha

Fotoaparát, objektiv, expozice, okamžik otevření závěrky: ty zůstávají. Jsou to tvoje vlastní záznamy o tvé vlastní fotografii a archiv, který by je potichu zahodil, by odpovídal na otázku, kterou nikdo nepoložil.

Číst dál

./blog.sh 1.2.1

./blog.sh 1.2.1 je venku.

Telefon do každé fotky, kterou pořídí, zaznamená, kde jsi stál. Sociální sítě to při nahrání odstraňují; statický web nemá nikoho, kdo by to udělal. Teď to dělá engine, na cestě do archivu – a doctor vyčistí ty, které jsi uložil dřív.

Bio, patička a claim banneru jsou teď Markdown. Byly to jediné texty na markdownovém blogu, které musely být HTML.

Nastavení je teď rozhovor

Až do tohoto vydání znamenala instalace ./blog.sh zkopírovat dva soubory a upravit 277 řádků komentovaného YAML, než proběhlo první sestavení. Všechno bylo zdokumentované. To není totéž jako snadné.

./setup.sh se místo toho ptá a každou odpověď kontroluje, jakmile přijde.

Otázky, které byly potichu nebezpečné

Tři nastavení šlo napsat špatně způsobem, o kterém by ti nikdy nic neřeklo.

Časové pásmo. Překlep tady neselže – Ruby spadne na UTC a nic neřekne – jen datuje každý příspěvek o dvě hodiny vedle, navždy. Průvodce nabídne pásmo z vlastní databáze stroje, ledaže stroj sedí na UTC, což je fakt o datacentru, ne o člověku, který odpovídá; pak navrhne podle jazyka, ve kterém se tě ptá. A odmítne cokoli, co není skutečné pásmo.

Adresa. Bydlí na dvou místech a env.sh přebíjí config/site.yml. Dodávaný příklad ji má namířenou na example.com, takže vyplnit jen konfiguraci nechá tvůj web říkat si example.com ve feedu, v sitemapě a v každém náhledu při sdílení. Průvodce zapíše obojí.

Číst dál

./blog.sh 1.2

./blog.sh 1.2 je venku – importní vydání.

Z osmi zdrojů importu je dvaadvacet: každá sociální síť, na kterou jsi pravděpodobně kdy něco psal, blogovací platformy a Wayback Machine pro blogy, jejichž platforma už neexistuje.

Nastavení webu je teď rozhovor. Stejně tak jeho vzhled, s kandidátskou paletou vykreslenou na tvém vlastním webu, než si ji necháš.

A obrazovka pro procházení archivu, který se stal příliš velkým na rolování.

Blogovací engine, ze kterého se stal archiv

První příspěvek na tomto webu je o fotce, kterou jsem v roce 2012 dal na Instagram. Odkaz pořád funguje. Fotka ne.

Ten příspěvek byl o jednom archivu – mém – a o jednom pravidle: média se vracejí domů. Tenhle je o tom, co se stalo, když se to pravidlo použilo na každou platformu, ke které jsem našel export.

Seznam je uzavřený

Importuje se teď dvaadvacet zdrojů, ve třech skupinách.

Sociální sítě: Bluesky, Facebook, Instagram, Mastodon, Pixelfed, Threads, Twitter/X.

Blogy a publikační platformy: beehiiv, Blogger, Ghost, Jekyll/Hugo a jakákoli složka s markdownem, LiveJournal, Medium, Movable Type a TypePad, podcasty (jakýkoli feed se zvukem), Squarespace, Substack, Tumblr, Wix, WordPress a jakýkoli feed RSS nebo Atom.

A mrtvé weby: Wayback Machine, pro blogy, jejichž platforma už vůbec neexistuje.

Číst dál

Pojistka, která se sama vypnula

Nasazení tohoto webu má dvě pojistky. Když má sestavení náhle mnohem méně souborů, než je naživo, nebo mnohem méně bajtů, nasazení se zastaví. Existují proto, že rozbité sestavení vypadá pro rsync --delete přesně jako záměrné, a statický web je vždy jen jednu sebejistou synchronizaci od vymazání.

V 1.0 se uměly samy vypnout. Trvale. Potichu. Tady je jak, protože tvar téhle chyby je užitečnější než oprava.

Reference byla špatná věc

Pojistky porovnávaly nové sestavení s manifestem nasazení – záznamem toho, co je na cíli. Rozumné, dokud nahrání neselže. Neúspěšné nahrání nechá manifest mimo skutečnost a pojistka měřící proti záznamu, o kterém ví, že je špatně, by spustila poplach při každém dalším běhu.

Takže tam byla značka: po neúspěšném běhu pojistky odvolat, dokud nepřijde čistý běh a referenci neobnoví.

Číst dál

Menu se zkrátilo

Průvodce dřív vypisoval deset věcí, které můžeš udělat. Teď jich vypisuje pět a engine umí víc než dřív.

To není paradox, to je přiznání: osm z těch deseti nebyly činnosti. Byly to operace s příspěvkem v kostýmu položky menu.

Všechno o příspěvku na jednom místě

./blog.sh props <slug> – nebo v průvodci vyber příspěvek a stiskni v – ukáže, co se o něm dá vědět. Stav, typ, štítky, jestli je připnutý, jestli byl oznámen a kde. Když je naplánovaný, celou publikační frontu.

A akce bydlí tam také, vedle skutečností, na které působí. Koncept nabízí publikovat a naplánovat. Publikovaný příspěvek nabízí stáhnout, znovu oznámit, připnout nebo odepnout, přejmenovat, smazat.

Už nejdeš do menu, nezvolíš „stáhnout" a pak nehledáš příspěvek. Jdeš k příspěvku a vidíš, že stažení je jedna z věcí, které právě teď umí.

Co zůstalo, kde bylo

Číst dál

Starý odkaz pořád zná cestu

První příspěvek na tomto webu je o fotce, která zmizela z blogového zápisu z roku 2012, zatímco odkaz na ni fungoval dál. Rozpad odkazů je důvod, proč tento engine existuje, takže engine, který by si potichu rozbíjel vlastní adresy, by byl špatný vtip.

Přejmenování příspěvku mění jeho adresu. To je nevyhnutelné – slug je adresa. Co je odvratitelné, je to, aby se ze staré adresy stala 404.

Co přejmenování dělá teď

Přejmenuj příspěvek – r v dialogu vlastností – a příspěvek si svou starou adresu zaznamená do sebe. Sestavení pak na každé adrese, kterou příspěvek kdy měl, drží jednostránkové přesměrování.

Odkaz v dva roky starém tootu se dál překládá. Odkaz, který někdo dal do vlastního blogového příspěvku, se dál překládá. Můžeš opravit slug, kterého lituješ, aniž tě oprava stojí každý odkaz na něj, který už ve světě existuje.

Přesměrování patří příspěvku

Číst dál

Fotka, kterou tvůj iPhone nikomu neukáže

iPhone fotí ve výchozím nastavení do HEIC. Safari ho vykreslí. Chrome ne. Firefox ne. Takže fotka rovnou z telefonu, připojená k příspěvku a publikovaná, je fotka, kterou většina tvých čtenářů nikdy neuvidí.

Staré chování bylo to nejhorší možné: soubor vstoupil, sestavení ho nedokázalo změřit a obrázek ze stránky potichu zmizel – i s popiskem. Žádná chyba. Jen příspěvek s dírou tam, kde byla fotka.

Odmítnuto, s příkazem, který potřebuješ

Připojení HEIC teď uložení zastaví a vypíše přesný převodní příkaz pro stroj, u kterého stojíš:

sips -s format jpeg photo.heic --out photo.jpg      # macOS
heif-convert photo.heic photo.jpg                    # Linux

Tvůj soubor zůstane přesně tam, kde byl, v incoming/. Nic se nemaže, nic se nehádá. Převedeš ho a pokračuješ.

Nebo převedeno, když si řekneš

Číst dál