A bonus na závěr: proč často nevidíme správný počet boostů, a ještě méně často správný počet favů u statusů, přicházejících z jiné instance?

Stručná odpověď je, že Fediverse nemá ambici tvořit blockchain, na rozdíl od kryptoměn. Neexistuje žádná záruka, že cacheovaná verze statusu obsahuje všechna metadata přesně v takové podobě, v jaké jsou momentálně nastavena na domovské instanci statusu. Konkrétně u počtu boostů a favů mi to vrtalo hlavou dlouho, ale nakonec jsem dospěl k logickému vysvětlení:

Nový followovaný status se na každé instanci objeví v podstatě naklonovaný tak, jak vypadal v momentě svého vzniku. Dobře, možná u něj bude pár místních interakcí (místních z hlediska domovské instance statusu), protože instance si nepovídají nonstop.

Lidé se u nově zobrazeného statusu v timeline rozhodují, jestli ho boostnou nebo favnou. Pokud favují, nedozvíte se to. Pokud boostují, jejich boost se přičte - a teprve potom status uvidíte vy. Se zvýšeným počtem boostů, nikoliv favů :-)

#tipy 6/6

Shrnutí:

Interakce dávají smysl! A to nejen boostování (které jak se ukazuje, spoustu lidí štve a hrozí vám, že si u vás potlačí zobrazování boostovaných statusů...), ale i dříve silně nepochopené favování.

Pokud favnete nějaký status, není to jen vzkaz autorovi, že se vám to líbí, ale je to především vzkaz softwaru místní instance: nemaž tento status v budoucnu, zaujal mi! Je to příznak, že má zůstat v databázi místní instance už na věčné časy.

Pokud se vám líbí diskuze pod nějakým statusem, ale odpovědi pocházejí z jiných instancí, tak rozhodně favujte všechny statusy v diskuzním vlákně. Jinak totiž po čase hrozí vymazání z místní cache.

(Pravda, relativně nedávno se objevilo vylepšení Mastodonu: ten se nově snaží před zobrazením komentářů o aktualizaci statusu, načtení a zobrazení všech odpovědí bez ohledu na instanci. To ale může selhat podobným způsobem, jako načítání médií, které už nejsou cacheované..)

Podotýkám, že jsem pro jistotu úplně vynechal instituci followování hashtagů a to z poměrně jednoduchého důvodu: nemám to zatím do hloubky nastudované. Minimálně jsou ale hashtagy v Mastodonu implementované jinak (lépe!), než v některých jiných ActivityPub kompatibilních CMS (např. v Hubzille). Každopádně, hashtagy jsou minimálně stejně důležité, jako ALT text, ale všimněte si, že nikdo (zatím!) neprodává trička se sloganem #používámhashtagy :-)

Hashtagy trochu mění pravidla hry, kdy váš status může vidět na nějaké jiné instanci někdo, kdo vás nefollowuje. Hashtagy tvoří decentralizovaný algoritmus pod společnou kontrolou jak autorů, tak moderátorů: málokdo tuší, že moderační rozhraní Mastodonu umožňuje blokovat trendování konkrétních hashtagů!

Netuším, jestli životnost statusu, který se do cache dostal skrze followování hashtagu, odpovídá životnosti statusu od followovaného uživatele, nebo životnosti náhodně zatoulaného statusu. Věřím, že nástupce Mastodonu bude metadata tohoto typu v maximální možné míře zpřístupňovat :-)

#tipy 5/6

Kromě expirace mediální cache, která je vcelku srozumitelná a kromě speciálního případu, kdy vzdálená instance mezitím předstane existovat a nebo je zrovna mimo provoz či přetížená, vlastně nepředstavuje zásadní problém, je tu ale ještě otázka cacheování samotných textových statusů z jiných instancí.

Zabírají daleko méně místa, než média, ale současně: databáze fungují nejlíp a nejrychleji, pokud se jednotlivé tabulky nebo alespoň jejich indexy vejdou do paměti RAM. Té bývá na většině systémů už tradičně k dispozici daleko méně, než místa na disku, a současná AI bublina rozhodně dostupnost paměti RAM nezlepšila. Proto je součástí Mastodonu i poněkud mlhavě zdokumentovaný backend nástroj pro správu a úklid databáze, který z ní dokáže vystrnadit všechno možné. A to zejména statusy, se kterými nikdo na místní instanci neinteragoval. Místní interakcí se rozumí boost, fav, odpověď nebo bookmarkování (vše jen od místních uživatelů).

Statusy bez interakcí se dále dělí na dvě hlavní skupiny: ty, které někdo na instanci followuje, a ty, které nikdo nefollowuje (to znamená, že se k nám dostaly buď jako boost, nebo jako odpověď na jiný status, a nebo přímým načtením jejich URL přes okénko vyhledávání). Na naší instanci je životnost první skupiny bez interakcí omezena na 365 dnů, druhé skupiny na 90 dnů. Ale protože databáze neustále roste (místní statusy musíme archivovat všechny a trvale!), tak je možné, že tyto lhůty bude nutné časem zkrátit.

Tím se dostáváme do finále:

* Kdy uživatelé na jiných instancích mohou vidět můj obsah?

Volejte vašemu věštci! Ptejte se tarotových karet a špionážních služeb!

Podstatné parametry, které jsem zde zmínil, tedy životnost mediální cache, a životnost dvou druhů statusů bez interakcí, instance Mastodonu nezveřejňují přes API.

Pokud mezi instancemi není vyhlášen ani z jedné strany ban na úrovni celých domén, měl by vaše statusy, zveřejněné od momentu follownutí, po nějakou dobu vidět kdokoliv, kdo vás followuje.

#tipy 4/6

.... a zde se dostáváme k zásadní nevýhodě tzv. vláken, tedy že na začítku nevíte, kolik toho napíšete, situace je tedy podobná, jako u příslovečné třetí poloviny.

#tipy 5/4

Shrnutí:

Interakce dávají smysl! A to nejen boostování (které jak se ukazuje, spoustu lidí štve a hrozí vám, že si u vás potlačí zobrazování boostovaných statusů...), ale i dříve silně nepochopené favování.

Pokud favnete nějaký status, není to jen vzkaz autorovi, že se vám to líbí, ale je to především vzkaz softwaru místní instance: nemaž tento status v budoucnu, zaujal mi! Je to příznak, že má zůstat v databázi místní instance už na věčné časy.

Pokud se vám líbí diskuze pod nějakým statusem, ale odpovědi pocházejí z jiných instancí, tak rozhodně favujte všechny statusy v diskuzním vlákně. Jinak totiž po čase hrozí vymazání z místní cache.

(Pravda, relativně nedávno se objevilo vylepšení Mastodonu: ten se nově snaží před zobrazením komentářů o aktualizaci statusu, načtení a zobrazení všech odpovědí bez ohledu na instanci. To ale může selhat podobným způsobem, jako načítání médií, které už nejsou cacheované..)

A bonus na závěr: proč často nevidíme správný počet boostů, a ještě méně často správný počet favů u statusů, přicházejících z jiné instance?

Kromě expirace mediální cache, která je vcelku srozumitelná a kromě speciálního případu, kdy vzdálená instance mezitím předstane existovat a nebo je zrovna mimo provoz či přetížená, vlastně nepředstavuje zásadní problém, je tu ale ještě otázka cacheování samotných textových statusů z jiných instancí.

Zabírají daleko méně místa, než média, ale současně: databáze fungují nejlíp a nejrychleji, pokud se jednotlivé tabulky nebo alespoň jejich indexy vejdou do paměti RAM. Té bývá na většině systémů už tradičně k dispozici daleko méně, než místa na disku, a současná AI bublina rozhodně dostupnost paměti RAM nezlepšila. Proto je součástí Mastodonu i poněkud mlhavě zdokumentovaný nástroj backend nástroj pro správu a úklid databáze, který z ní dokáže vystrnadit všechno možné. A to zejména statusy, se kterými nikdo na místní instanci neinteragoval. Místní interakcí se rozumí boost, fav, odpověď nebo bookmarkování (vše jen od místních uživatelů).

Statusy bez interakcí se dále dělí na dvě hlavní skupiny: ty, které někdo na instanci followuje, a ty, které nikdo nefollowuje (to znamená, že se k nám dostaly buď jako boost, nebo jako odpověď na jiný status, a nebo přímým načtením jejich URL přes okénko vyhledávání). Na naší instanci je životnost první skupiny bez interakcí omezena na 365 dnů, druhé skupiny na 90 dnů. Ale protože databáze neustále roste (místní statusy musíme archivovat všechny a trvale!), tak je možné, že tyto lhůty bude nutné časem zkrátit.

Tím se dostáváme do finále:

* Kdy uživatelé na jiných instancích mohou vidět můj obsah?

Volejte vašemu věštci! Ptejte se tarotových karet a špionážních služeb!

Podstatné parametry, které jsem zde zmínil, tedy životnost mediální cache, a životnost dvou druhů statusů bez interakcí, instance Mastodonu nezveřejňují přes API.

Pokud mezi instancemi není vyhlášen ani z jedné strany ban na úrovni celých domén, měl by vaše statusy, zveřejněné od momentu follownutí, po nějakou dobu vidět kdokoliv, kdo vás followuje.

#tipy 4/4

Nyní se postupně od jednoduché otázky existence a dostupnosti obsahu na jedné instance pro všechny uživatele dané instance, která se principiálně neliší od jakéhokoliv webového diskuzního fóra, jakých se za posledních zhruba 30 let existence webu vyrojily po světě miliony, dostáváme k těm situacím, které i celkem pokročilé uživatele často matou.

* Kdy já můžu vidět obsah od uživatele z jiné instance?

Především: v řadě triviálních případů. Třeba pokud je v daném statusu (zprávě) zmíněno moje Fediverse uživatelské jméno, a to bez ohledu na úroveň soukromí (veřejná odpověď nebo soukromá zpráva).

Samozřejmě, jakýkoliv status odkudkoliv uvidím, pokud uživatele followuju. A to zejména, pokud jsem ho follownul PŘEDTÍM, než zprávu zveřejnil. Pokud chci vidět přímo ze své instance, ke které jsem přihlášený, jeho starší zprávy, tak je situace složitější.

Naprostou jistotu mám, pokud znám identifikátor zprávy na původní instanci (URL): nakopírováním URL do vyhledávacího okénka zprávu natáhnu do místní cache.

Pokud si prohlížím profil uživatele, kterého na instanci zatím nikdo nefollowuje, tak je to, jaké statusy uvidím, poměrně nedefinované. Samozřejmě, nejdřív bych měl vidět připnuté statusy. Novější verze Mastodonu se tuším u nově objevených profilů snaží vždy o nějaké stažení aktuálních statusů. Historicky se ale profily dosud neznámých uživatelů ukazovaly prázdné, což v éře Mastodon migrace odradilo spoustu začátečníků, protože se to nepodobalo chování centralizovaných služeb, na které byli zvyklí.

Máme tedy status z jiné instance nějakým způsobem natažený do cache naší instance. I s médii. Je to záruka, že ho na instanci uvidíme i kdykoliv v budoucnu? Bohužel ne!

Především, životnost mediální cache, kde se uchovávají média z jiných instancí, je omezená. U nás jsou to cca 3 týdny, a i tak to představuje většinu zabraného místa na disku - stovky GB. Pokud si status otevřete později, pokusí se instance média načíst znovu, ale nemusí se jít to povést.

#tipy 3/6

Řekněme si hned na začátek, že protokol ActivityPub, na kterém je Fediverse postavena, má svojí filosofií blíže k těm historickým koncepcím, jako byl Usenet na bázi protokolu NNTP nebo amatérská síť Fidonet, se svým členěním na nody a pointy a absencí šifrování.

Šifrování se v případě Fediverse omezuje na připojení vašeho browseru nebo klientské aplikace k serveru, což dnes představuje samozřejmý standard a chrání vás to např. před odposlednutím hesla např. ze strany uživatelů stejné Wi-Fi sítě, správce sítě nebo ze strany poskytovatele Internetu - ale tím to končí.

Na serverech se obsah nachází v nešifrované podobě - ovšem, na rozdíl od těch 90tých let, kdy bylo v podstatě velmi snadné vydávat se za kohokoliv jiného, jsou zprávy ve Fediverse digitálně podepsané. Privátní klíče jsou uložené na instancích, tedy serverech, a z toho začíná být zřejmý zásadní význam vztahu mezi uživatelem a provozovatelem instance. Opravdu nároční uživatelé, kteří neradi důvěrují službám poskytovaným třetí stranou, nakonec skončí u self-hostingu vlastní instance na vlastní doméně.

Takže když už jsme si řekli, že administrátoři instanci vidí tak nějak automaticky všechno, což u sítě, navržené v první řadě za účelem publikace, není velká katastrofa a (čistě technicky) se mohou vydávat v podstatě za kteréhokoliv uživatele instance, což je už trochu horší, tak se vraťme k původnímu tématu: jaký obsah může kdo, kde a kdy vidět - a nejen vidět, ale vůbec alespoň teoreticky dohledat?

Nejjednodušší situace nastává u uživatelů na stejné instanci. Pokud nedojde k omezení životnosti vlastních statusů (to je volitelné, ale naštěstí ne výchozí nastavení), pokud někdo status lokálně nesmaže a pokud není nastavená některá ze zvýšených úrovní soukromí, tak na místní instanci vidí všichni text statusů i připojená média neomezeně dlouho. Z toho vyplývá, že výše případného příspěvku na provoz instance se může odvíjet od místa zabraného mediálními přílohami. Třeba u mě je to 3.1 GB...

#tipy 2/6

Včerejší vlákno o "syndromu prázdné timeline", který postihuje totální nezkušené začátečníky, navyklé na algoritmické krmení obsahem, mělo vcelku odezvu.

V dalším pokračování se zaměřím na středně pokročilé uživatele informačních technologií, kteří sice základní nástrahy překonali, ale pořád jim není vzhledem k decentralizované povaze Fediverse úplně jasné kdo, kde a kdy může vidět jaký obsah. A trápí je otázky trvanlivosti či bezpečnosti.

Pro začátek si řekněme, že Fediverse je jen dalším pokračováním dlouhé řady projektů decentralizovaného sdílení obsahu na Internetu. Jde o síť typu peer2peer, ovšem na úrovni celých instancí - nikoliv na úrovni koncových uživatelů.

Pokud jde o starší peer2peer sítě, většina z vás se setkala buď s bittorrentem nebo s kryptoměnami a i pokud ne, tak možná tušíte, o co jde. V principu každý, kdo z těchto sítí čerpá obsah, ho současně může šířit dál. V případě bittorrentu je cílem získat mnoha různými cestami po malých částech přesně identickou kopii existujícího obsahu, např. nasdíleného filmu, a to přesto, že šířka pásma by v případě přímého stahování rozhodně nestačila pro všechny zájemce. V případě kryptoměn je základní princip podobný, ale sdíleným souborem je distribuovaná databáze typu blockchain, kde se kombinuje důraz na to, aby všichni uživatelé disponovali identickou kopií s velmi přísnými pravidly pro přidávání dalších záznamů.

Tyto dvě technologie, které se objevily po roce 2000, představovaly výrazný odklon od předchozích trendů v decentralizaci.

Základem raného Internetu byly dodnes existující e-mail a zapomenutý Usenet. Amatérskou paralelou akademického Internetu byla na vytáčeném připojení a modemech postavená síť Fidonet, která nabízela obdobné služby Netmail a Echomail.

Jak raný Internet, tak Fidonet předpokládaly nepříliš strmou hierarchii, kdy peer2peer povahu měla síť serverů (nodů), ale architektura připojení koncových uživatelů měla spíše charakter klient-server.

#tipy 1/6

Pro všechny, kdo jsou ve Fediverse obecně a na Mastodonu zvláště noví, nebo kteří to tady zatím neprokoukli:

Jak řešit "syndrom prázdné timeline"? Tedy to, že nevíte, koho máte followovat, takže se tu zdánlivě "nic neděje"?

Jistě, můžete se snažit aktivně hledat obsah, který by vás zabavil: ten ale často bude pocházet pouze od různých botů, kteří jen kopírují obsah z jiných sítí nebo přehazují lopatou upoutávky na články v médiích. Můžete také samozřejmě follownout účty, které už mají hodně followerů - to ale není žádná záruka, že budou ty účty pravidelně aktivní, nebo že budou mít zájem s vámi interagovat.

Lepší mi přijde jít na to z druhé strany.

Zkuste nejdřív ze všeho nějaký obsah nabídnout sami. Zkuste vkládat jakýkoliv zajímavý obsah, fotky a videa - ať už vlastní, nebo převzaté odjinud. A zkuste obsah opatřit vhodnými hashtagy - ty na Mastodonu hrají opravdu velkou roli.

A uvidíte, že si vás časem najdou první followeři a vy jim budete moci případně jejich zájem opětovat a followovat je taky. A timeline se vám začne zaplňovat...

Jděte na to zkrátka z druhé strany: místo abyste se ptali, jak může Mastodon pobavit vás, zkuste se nejdřív zamyslet, čím můžete vy zabavit Mastodon. Je to výměnný obchod - ne jenom pasivní spotřeba obsahu, za který akorát nemusíte platit a nemusíte u toho sledovat hloupé reklamy.

První týdny to nejspíš bude spíš takový váš soukromý blog - ale v podstatě čím méně budete přemýšlet o tom, jak se přizpůsobit vkusu ostatních, tím spíše si vás najdou právě takoví followeři, kterým se ani nebudete muset přizůsobovat.

Mastodon není příliš vhodný pro pasivní konzumenty. Jistě, dají se najít způsoby, jak ho použít jako svého druhu RSS čtečku. Ale to není jeho hlavní smysl.

#tipy

Moderační tip pro provozovatele instancí s otevřenými registracemi: přidat name.ng na seznam blokovaných mailových domén se rozhodně vyplatí...

#tipy