Il contrario di buonista e' pezzo di merda.
This action will delete this post on this instance and on all federated instances, and it cannot be undone. Are you certain you want to delete this post?
This action will delete this post on this instance and on all federated instances, and it cannot be undone. Are you certain you want to delete this post?
This action will block this actor and hide all of their past and future posts. Are you certain you want to block this actor?
This action will block this object. Are you certain you want to block this object?
Are you sure you want to delete the OAuth client [Client Name]? This action cannot be undone and will revoke all access tokens for this client.
Are you sure you want to revoke the OAuth token [Token ID]? This action cannot be undone and will immediately revoke access for this token.
Il contrario di buonista e' pezzo di merda.

A neutrino walks through a bar.


Si fa un gran parlare di banche italiane, MPS, Banco BPM, Mediobanca, Generali, Intesa, UniCredit, BPER, Unipol, Crédit Agricole, governo, golden power e “interesse nazionale”. Ma spesso il racconto si ferma alla superficie: l’Italia ha passato decenni a celebrare il piccolo, le microimprese, le banche del territorio, il credito relazionale, il capitalismo di provincia. Ora scopre che, nel capitalismo finanziario contemporaneo, piccolo non significa più libero: significa comprabile.
Questo è vero. Ma non spiega la domanda più importante: perché proprio oggi?
Perché non dieci anni fa? Perché non venti? Perché la vecchia banca territoriale, con tutti i suoi limiti, ha retto così a lungo e ora improvvisamente sembra un animale fuori habitat?
La risposta, a mio avviso, non è prima di tutto politica. E non è nemmeno soltanto finanziaria. È tecnologica.
E no, non sto parlando di intelligenza artificiale. Sto parlando di fintech.
Una volta molta parte della vita economica delle persone comuni girava in contanti. Lo stipendio poteva arrivare in contanti, piccoli pagamenti si facevano in contanti, l’affitto poteva essere pagato in contanti, i risparmi stavano in casa, nel libretto postale, nel salvadanaio, nelle Poste. La banca, per molte famiglie normali, non era ancora una protesi obbligatoria dell’esistenza. Era una cosa da aziende, professionisti, benestanti, commercianti, gente “che aveva soldi da gestire”.
Poi, lentamente, è cambiato tutto.
Avere un conto corrente è diventato prima normale, poi comodo, poi necessario, poi praticamente obbligatorio. A un certo punto non era più solo “tengo i soldi in banca”. Era: ricevo lo stipendio, pago l’affitto, faccio bonifici, pago bollette, ricevo pagamenti, emetto fatture, gestisco Ri.Ba., domiciliazioni, mutui, carte, POS, tasse, contributi.
Quindi la banca ha fatto un salto di funzione. Non era più solo il posto dove depositavi il denaro. È diventata l’interfaccia obbligatoria tra il cittadino e la finanza, se non l'economia.
La banca non era più un salvadanaio. Era diventata il sistema operativo della vita economica.
Il problema è che questo strato di servizi, nel tempo, si è digitalizzato. I pochi pezzi di carta rimasti — ricordate gli assegni? — sono scomparsi davanti alle carte di credito, ai bonifici online, ai sistemi di pagamento elettronico e alla fatturazione digitale.
Per il cittadino comune, diciamo il non imprenditore, questa trasformazione ha cambiato tutto. Diciamolo pure: se la vostra carta di credito fosse acquistabile da sola, magari online, e poi ci poteste attaccare un IBAN, probabilmente non avreste davvero bisogno di un conto corrente tradizionale. Perché, alla fine, che cosa vi serve davvero?
Un modo per ricevere i soldi: l’IBAN.
Un modo per spenderli o prelevarli: la carta.
Cos’altro?
La banca moderna nasce ancora dentro un mondo prevalentemente cartaceo. Ricordate gli estratti conto nella cassetta della posta, ogni tre mesi? Ricordate gli assegni, i moduli, le firme, le file allo sportello? Tutto questo dava senso alla filiale. La banca era anche un luogo fisico: ci si andava, si parlava con qualcuno, si firmavano fogli, si ritiravano documenti, si facevano operazioni.
Ma ora che quasi tutto diventa elettronico, viene spontaneo chiedersi che cosa ci stia ancora a fare la filiale. E, facendo un passo in più, viene spontaneo chiedersi che cosa ci stia ancora a fare la banca tradizionale, almeno per molte funzioni quotidiane.
Perché se alcune carte e servizi online — Revolut, N26, Wise e simili — vi danno una carta, una app e anche un IBAN, allora la domanda diventa inevitabile: a che cosa serve ancora tutta la struttura della banca classica?
Da qui arriva la conseguenza logica: il cliente comune, cioè il possessore di conto corrente per mera necessità, non è più così interessante.
Non è che non serva più. Serve ancora, naturalmente. Porta depositi, usa carte, riceve stipendi, paga bollette, fa bonifici. Ma come cliente, da solo, non giustifica più l’intera struttura della banca tradizionale: filiali, sportelli, personale, ATM, immobili, costi amministrativi, burocrazia locale.
E infatti le banche si ritirano dal territorio. Chiudono filiali, riducono sportelli, spengono ATM, spostano operazioni sull’online, costringono il cliente a usare app, call center e procedure digitali. Il cliente retail resta dentro il sistema bancario, ma sempre meno come persona da servire allo sportello e sempre più come flusso numerico da gestire in piattaforma.
A quel punto la banca deve concentrarsi su altro.
E, nel mondo della finanza, gli “altro” non sono infiniti. Se il conto corrente del cittadino comune diventa un servizio povero, standardizzato e sempre più digitale, allora bisogna cercare margini dove i margini ci sono ancora: merchant banking, gestione patrimoniale, assicurazioni, fondi, credito alle imprese, finanza assicurativa, risparmio gestito.
È per questo che il risiko bancario non riguarda davvero gli sportelli. Gli sportelli sono il passato, o al massimo il costo da tagliare. Il presente e il futuro stanno altrove: nelle masse amministrate, nei prodotti finanziari, nelle polizze, nella distribuzione del risparmio, nelle partecipazioni strategiche.
La banca non vuole più soltanto tenervi il conto corrente. Vuole vendervi il fondo, la polizza, il mutuo, la pensione integrativa, la consulenza, il pacchetto completo. Vuole smettere di essere il cassiere della vostra vita quotidiana e diventare l’intermediario del vostro patrimonio.
Per questo Mediobanca, Generali, Anima e Unipol contano molto più delle filiali sotto casa. Perché lì ci sono margini, controllo, distribuzione e potere. Il cliente che tiene il conto perché deve ricevere lo stipendio è diventato commodity.
In altre parole: quando la banca perde valore come luogo, deve aumentare valore come piattaforma finanziaria. E quando il conto corrente diventa banale, la vera partita si sposta su tutto ciò che gli gira intorno.
Su questo equilibrio impossibile, nel quale la banca di sportello viene progressivamente stritolata dal fintech, parte la mossa azzardata del governo: MPS compra Mediobanca.
A prima vista può sembrare una normale operazione bancaria. Non lo è. Mediobanca non è soltanto una banca: è merchant banking, finanza d’affari, relazioni industriali, partecipazioni, potere di indirizzo. In altre parole, rappresenta proprio una delle possibili vie di fuga dalla tenaglia del fintech. Se il conto corrente retail rende sempre meno e lo sportello perde centralità, allora la banca deve salire di livello: meno cassiere, più finanza.
Ma Mediobanca porta con sé anche un altro pezzo decisivo: una quota importante in Generali. E Generali significa assicurazioni, risparmio, previdenza, polizze, gestione di masse enormi. Cioè esattamente quell’area dove le banche sperano ancora di trovare margini, controllo e futuro.
Chiaramente, una mossa del genere scompagina tutta la scacchiera. Perché non si tratta più solo di chi controlla MPS, o di chi controlla Mediobanca. Si tratta di capire chi riuscirà a riposizionarsi nei settori che sembrano ancora remunerativi: merchant banking, assicurazioni, risparmio gestito, finanza assicurativa.
E allora tutti si muovono.
Non perché improvvisamente abbiano riscoperto l’amore per le fusioni bancarie. Ma perché hanno capito che la vecchia banca di sportello è sempre meno centrale, mentre il valore si sta spostando verso ciò che le sta intorno: patrimonio, assicurazioni, fondi, consulenza, partecipazioni, distribuzione finanziaria.
La partita non è più “quante filiali hai”.
La partita è: quanti clienti puoi trasformare in patrimonio gestito, quante polizze puoi distribuire, quante partecipazioni puoi controllare, quanto potere finanziario puoi concentrare prima che lo faccia qualcun altro.
Questa traversata del Mar Rosso funzionerà?
La risposta, temo, è no.
Manca qualcosa al quadro. Qualcosa di importante.
Sul piano finanziario e “strategico” sembra sensata. Ma sembra sensata solo perché ci si ostina a tenere fuori dal discorso la parte tecnologica. Se fingiamo che le banche di sportello non siano stritolate dal fintech, e immaginiamo soltanto che stiano cercando di spostarsi verso i cugini più grandi — merchant banking, assicurazioni, risparmio gestito, finanza assicurativa — allora il ragionamento fila.
O almeno sembra filare.
Il problema è che le banche tradizionali sono abituate a non considerare davvero la tecnologia come fattore strategico. Per anni l’hanno trattata come una seccatura operativa, un costo, un reparto IT, qualcosa da tenere sotto controllo. E finché hanno potuto, l’hanno tenuta sotto controllo rallentandola: obsolescenza felice, procedure lente, vincoli regolatori, attrito burocratico, sicurezza usata anche come freno, compliance trasformata in fossato.
In altre parole, hanno scambiato il ritardo per stabilità.
Per molto tempo ha funzionato. Se il sistema si muove lentamente, chi è già dentro può continuare a sembrare solido. Se ogni innovazione deve passare attraverso autorizzazioni, moduli, standard, comitati, controlli, certificazioni e apparati regolatori, allora la banca tradizionale guadagna tempo. E il tempo, per chi occupa una posizione dominante, è spesso la forma più elegante di rendita.
Ma ora il problema è diverso. Le banche di sportello non stanno semplicemente cercando nuovi margini. Stanno scappando da un assedio. E questo assedio è prima di tutto tecnologico.
Se ne fossero pienamente consapevoli, prima di correre verso merchant banking, assicurazioni e risparmio gestito, si sarebbero poste la domanda davvero importante:
nei paradisi nei quali cerchiamo rifugio, come siamo messi a fintech?
Perché se il fintech ha eroso il conto corrente, le carte, i pagamenti, le operazioni quotidiane e il rapporto fisico col cliente, nulla garantisce che non possa erodere anche il resto. Anzi: è già lì che guarda.
Il risparmio gestito può essere attaccato da piattaforme digitali di investimento, robo-advisor, ETF a basso costo, app che semplificano l’accesso ai mercati. Le assicurazioni possono essere attaccate dall’insurtech, da comparatori, polizze istantanee, underwriting algoritmico, distribuzione diretta. Il credito alle imprese può essere attaccato da piattaforme di lending, factoring digitale, scoring alternativo, servizi embedded dentro software gestionali e marketplace.
Cioè: la banca tradizionale sta cercando rifugio proprio nei settori dove la stessa logica tecnologica sta già preparando il prossimo assedio.
Ed è qui che la traversata del Mar Rosso rischia di trasformarsi in una fuga verso un’altra spiaggia già occupata.
Perché la domanda non è: “dove ci sono ancora margini?”
La domanda è: quanto a lungo quei margini resteranno protetti dalla tecnologia?
Se la risposta è “non molto”, allora comprare Mediobanca, mettere le mani su Generali, rafforzarsi nel risparmio gestito o nella finanza assicurativa può dare potere, dimensione e tempo. Ma non risolve il problema di fondo. Lo sposta soltanto più avanti.
È una ritirata ordinata, non una vittoria strategica.
La banca di sportello dice: il conto corrente è diventato banale, allora vado verso assicurazioni, fondi, finanza d’affari. Ma se anche assicurazioni, fondi e finanza d’affari diventano piattaforme digitali, allora il problema si ripresenta. Solo con nomi più eleganti, stanze più belle e consulenti meglio vestiti.
Il punto è questo: non puoi risolvere una crisi tecnologica con una mossa puramente finanziaria.
Puoi comprare tempo. Puoi comprare massa. Puoi comprare partecipazioni. Puoi comprare accesso a Generali, Mediobanca, Anima, Unipol. Ma se non capisci che il nemico non è soltanto la banca concorrente, bensì la trasformazione tecnologica del servizio finanziario, allora stai semplicemente spostando le sedie sul ponte di una nave che ha già preso acqua.
E magari, per qualche anno, sembrerà anche una bella nave.
Se la loro strategia fosse stata pensata davvero in termini tecnologici, non avremmo visto le banche correre a comprare merchant bank e assicurazioni. Avremmo visto, che so, MPS tentare di comprare Revolut. Oppure, restando in Italia, Satispay, Scalapay, Nexi, BANCOMAT Pay, o qualche altra infrastruttura capace di darle un posto nel futuro dei pagamenti digitali.
Invece no.
MPS compra Mediobanca.
Cioè compra una cosa rispettabile, potente, importante, certo. Ma compra una cosa che viene dal passato. Compra legacy.
Ed è proprio questo il punto. Se il problema è che la banca tradizionale viene stritolata dal fintech, allora la risposta non può essere comprare un pezzo ancora più nobile della banca tradizionale. È come se un produttore di carrozze, vedendo arrivare l’automobile, decidesse di salvarsi comprando il miglior allevamento di cavalli d’Europa.
Elegante. Prestigioso. Forse persino redditizio per qualche anno. Ma non esattamente una strategia per il secolo successivo.
Comprare il passato anziché comprare il futuro, da parte della banca che continua a vantarsi di essere la più antica d’Italia, è esattamente l’errore che mi aspetto. Non perché sia sorprendente, ma proprio perché è coerente.
Quando la parte più importante del tuo curriculum è la data di nascita, del resto, che altro puoi fare?
Il problema di tutto questo comprare altre banche, consolidando qualcosa che è morente — per quanto ancora sufficientemente polposo — è proprio quello che potete immaginare: un riassestamento del settore bancario, assicurativo e merchant che lascia fuori i principali protagonisti della finanza tecnologica è preoccupante.
Mi preoccupa proprio questo segnale, che sa di ritirata. In un gigantesco balletto di “io compro te”, restano sostanzialmente intoccati gli unicorni, le scaleup e le infrastrutture del fintech: Satispay, Nexi, Revolut, Scalapay, e tutto il mondo che sta ridisegnando il modo in cui il denaro si muove. E questo non succede solo nel balletto italiano: succede anche in quello europeo.
Si fa la gara per comprare Commerzbank, una carcassa in decomposizione avanzata, ma non si vede nessuna vera battaglia per assicurarsi gli attori della finanza del futuro, cioè della banca del futuro.
Ed è questo il punto inquietante: le banche sembrano voler consolidare il passato, non conquistare il futuro. Comprano sportelli, merchant bank, assicurazioni, partecipazioni, salotti buoni, vecchie glorie, vecchie reti di potere. Ma lasciano lì, quasi sullo sfondo, quelli che stanno cambiando la sostanza tecnologica del mestiere bancario.
È come se un esercito in ritirata, invece di mettere le mani sulle fabbriche di droni, si accaparrasse gli ultimi allevamenti di cavalli da cavalleria. Elegante, nostalgico, forse anche utile per una parata. Ma non esattamente rassicurante.
Se proprio MPS voleva comprarsi un pezzo di finanza d’impresa, avrebbe potuto guardare ad Azimut Direct: non una merchant bank col busto in bronzo nell’atrio, ma una piattaforma hi-tech che porta PMI e mid-cap verso direct lending, minibond, private equity e investitori professionali. Cioè una versione tecnologica, scalabile e meno novecentesca di una parte del mestiere che Mediobanca rappresenta in forma nobile, storica e legacy.
Quello che vedo, cioè, non è un balletto di acquisti e strategie pensate per affrontare il futuro. Vedo soltanto una serie di ritirate strategiche nel tentativo di evitarlo, il futuro.
Vedo banche che comprano tempo.
Vedo banche che consolidano il legacy, invece di rivolgere la propria attenzione al nuovo.
Vedo istituzioni che, davanti alla trasformazione tecnologica del denaro, reagiscono comprando altri pezzi del vecchio mondo finanziario.
Il problema non è che queste operazioni siano prive di logica. Una logica ce l’hanno. Sono sensate dentro il perimetro mentale di chi pensa ancora che la partita si giochi tra banche, assicurazioni, merchant bank, fondazioni, partecipazioni e ministeri. Dentro quel mondo, comprare Mediobanca, mettere le mani su Generali, fondersi con Banco BPM o inseguire Commerzbank può anche sembrare una strategia.
Ma è una strategia di sopravvivenza, non di conquista.
È il tentativo di diventare più grossi dentro un settore che sta diventando piccolo. È il tentativo di mettere insieme più sportelli, più clienti, più masse, più partecipazioni, più rendite, nella speranza che la dimensione basti a compensare il fatto che il mestiere stesso della banca sta venendo smontato pezzo per pezzo dalla tecnologia.
Stanno consolidando il passato, non conquistando il futuro.
E questo è il segnale più preoccupante. Perché una banca che avesse davvero capito la natura tecnologica dell’assedio non si limiterebbe a comprare altre banche, altre assicurazioni, altre istituzioni del vecchio capitalismo finanziario. Cercherebbe di comprare, costruire o controllare le infrastrutture della finanza futura: pagamenti digitali, e-payment, fintech, embedded finance, piattaforme di investimento, scoring, credito digitale, insurtech, sistemi di identità finanziaria.
Invece il movimento sembra un altro: stringersi tra simili, diventare più grandi, chiudersi a testuggine, sperare che la regolazione, la politica e la dimensione rallentino abbastanza il cambiamento.
È qualcosa che posso anche aspettarmi da una pletora di vecchi manager, il cui unico obiettivo sembra essere finire la cena sul Titanic prima di andare in pensione, lasciando che dell’iceberg si occupi qualcun altro.
Dal loro punto di vista, la strategia funziona persino. Se compri tempo abbastanza a lungo, magari arrivi al bonus, alla buonuscita, alla fondazione, al consiglio d’amministrazione successivo, alla pensione dorata. Il problema diventerà di qualcun altro: del successore, del regolatore, dello Stato, dei contribuenti, dei clienti, dei dipendenti, del sistema.
E allora tutto torna.
Non serve preparare la banca al futuro. Basta renderla abbastanza grande, abbastanza opaca, abbastanza “strategica” e abbastanza intrecciata col potere da non poter essere lasciata fallire facilmente. Non è innovazione: è blindatura.
È la logica del Titanic amministrato da gente che non vuole cambiare rotta. Vuole soltanto assicurarsi che la cena sia servita fino al dolce.

Ogni cosa che funziona per un particolare compito verrà utilizzata per compiti sempre più difficili, fino a che non si romperà.
─ Formulazione generale del principio di Peter

Mentre scrivo — dovrei arrivare a una versione stabile tra poco, sarà la v1.0.1 — il mio server ActivityPub, trasformando la fork in qualcosa di diverso, mi sono imbattuto in un pezzo di codice che descrive il comportamento della funzione block.
La fork la trovate qui: https://git.keinpfusch.net/loweel/Aktor-2.
Nota di servizio: non usatelo sullo stesso database della versione precedente, cioe' GoToSocial. Non funzionerebbe. Il database è cambiato. Ho aggiunto e tolto troppe cose. Aktor non e' piu' GotoSocial.
Dicevo: mi sono imbattuto in questo pezzo di vecchio codice, e il modo in cui la funzione block viene implementata — e, per quanto vedo, la implementano così tutti i server che conosco — non mi piace per nulla.
Facciamo un esempio semplice.
Bob e Alice sono coinvolti in un thread. Il thread è stato aperto da Bob, e ci partecipano altre dieci persone. Bob e Alice non sono d’accordo. Succede. A un certo punto, in un impeto di democrazia pratica, Bob decide di bloccare Alice.
La domanda è: che cosa sta facendo Bob, esattamente?
Ci sono due possibili risposte.
E sono due cose molto diverse.
Nel primo caso, siamo davanti a una scelta perfettamente legittima. Bob dice al proprio server: “ehi, ricordati di non mostrarmi più quello che scrive Alice”. Ha senso. È una scelta ottima, se l’obiettivo è la famosa peace of mind. Bob si protegge dal contenuto che non vuole vedere, e finisce lì. Alice continua a parlare, gli altri continuano a leggerla, Bob non la vede più. Tutti felici, o almeno tutti meno infelici.
La seconda scelta implementativa, invece, è quella che di fatto zittisce Alice.
Magari gli altri dieci partecipanti al thread erano interessati a sapere cosa dice Alice. Magari la discussione non era più davvero “tra Bob e Alice”. Magari, come spesso succede, il thread si era evoluto, aveva preso una direzione diversa, e Bob era ormai soltanto quello che aveva acceso il cerino iniziale. Però, siccome il creatore del thread blocca Alice, in tutte le implementazioni che vedo in giro Alice non può più scrivere nel thread.
E questo succede perché tutte le implementazioni che vedo usano il campo in_reply_to per identificare un thread. Quindi, quando qualcuno ti blocca, il tentativo di rispondere viene trattato come se fosse una risposta al primo post, cioè al post di Bob. E siccome Bob ti ha bloccato, la tua risposta non passa.
La scelta è stupida.
È stupida perché confonde due concetti che dovrebbero rimanere separati: “non voglio vedere Alice” e “Alice non deve più parlare”. La prima è moderazione personale. La seconda è controllo della conversazione.
Ed è ancora più stupida se pensiamo al modo in cui funzionano davvero le discussioni online. Un thread non è necessariamente proprietà morale di chi lo ha aperto. Lo ha aperto, certo. Ha scritto il primo messaggio, certo. Ma se poi arrivano dieci persone, e quelle dieci persone cominciano a discutere tra loro, il thread non è più soltanto “la cosa di Bob”. È diventato una conversazione collettiva.
Se Bob non vuole più leggere Alice, benissimo: il suo server non gliela mostra. Ma non si capisce perché il blocco di Bob debba impedire agli altri dieci di leggere Alice. Non si capisce perché il fastidio personale di Bob debba trasformarsi in un silenziamento tecnico valido per tutti.
Perché magari Alice sta rispondendo a Carol. O a Dave. O a una delle altre persone coinvolte. Magari Bob non c’entra più nulla, se non per il fatto storico di avere scritto il primo messaggio. Ma il software, invece, continua a trattare tutto come se ogni risposta fosse ancora, in ultima analisi, una risposta a Bob.
E qui il problema non è morale. È architetturale.
Il software sta prendendo una scorciatoia concettuale: usa in_reply_to come se bastasse a definire il controllo del thread. Ma così facendo assegna al creatore del primo post un potere che, socialmente, non è affatto ovvio che debba avere. Gli dà una specie di diritto feudale sulla conversazione: hai aperto tu il thread, quindi puoi decidere chi può ancora parlare dentro quel territorio.
È una visione molto comoda da implementare. Ma non è detto che sia una buona visione del comportamento sociale che vogliamo modellare.
Perché una cosa è dire: “Bob non riceve più le attività di Alice”. Un’altra cosa è dire: “Alice non può più produrre attività che gli altri vedranno in quel contesto”. Nel primo caso stiamo filtrando la vista di Bob. Nel secondo stiamo cambiando la realtà per tutti gli altri.
E questa differenza, nei software federati, conta parecchio.
Perché se la federazione deve servire a distribuire potere, non ha molto senso ricostruire, dentro ogni thread, un piccolo principato assoluto del primo che ha parlato. Bob apre il thread, Bob si irrita, Bob blocca Alice, Alice sparisce dalla conversazione per tutti. Molto federato, certo. Sembra più che altro il Sacro Romano Impero dei malumori personali.
Secondo me il comportamento corretto dovrebbe essere più vicino alla prima interpretazione: il blocco serve a proteggere chi blocca, non a zittire chi viene bloccato davanti agli altri.
Se Bob blocca Alice, Bob non deve più vedere Alice. Punto. Ma se Alice risponde a Carol, e Carol non ha bloccato Alice, Carol dovrebbe poter leggere quella risposta. E anche gli altri partecipanti che non hanno bloccato Alice dovrebbero poterla leggere. Il blocco di Bob dovrebbe modificare la timeline di Bob, non la geometria dell’universo.
Poi, certo, ci sono casi più complicati. Ci sono thread abusivi, molestie coordinate, conversazioni che diventano ingestibili. Ma quelli sono problemi di moderazione, non dovrebbero essere risolti facendo finta che il primo autore del thread sia il proprietario ontologico di ogni messaggio successivo.
In altre parole: bloccare qualcuno dovrebbe voler dire “non mostrarmelo più”, non “impediscigli di parlare con chiunque altro, purché tutto sia nato sotto un mio post”.
E invece molte implementazioni finiscono proprio lì. Per semplicità tecnica, per eredità del modello, per pigrizia, o perché nessuno ha davvero separato i due casi.
Ma sono due casi diversi.
E quando un software confonde “io non voglio ascoltare” con “tu non devi parlare”, il problema non è più solo nel codice. È nella visione sociale che quel codice sta imponendo.
Perché tutto il Fediverso ha fatto questa scelta, cioè quella di zittire Alice?
Erano tutti dei feticisti dello stupro? No. Non credo che la spiegazione sia questa, e non credo nemmeno che serva ricorrere a psicopatologie assortite per capirlo. Ma se andiamo a vedere le origini culturali del Fediverso, o almeno di una parte molto rumorosa e molto influente del Fediverso delle origini, il quadro diventa più chiaro.
Chi c’era, all’inizio?
Paticamente, un centro sociale occupato.
Ora, capiamoci: non sto dicendo che queste categorie siano automaticamente identiche, né che ogni istanza fosse uguale all’altra. Sto dicendo che il brodo culturale nel quale sono nate certe implementazioni non era esattamente quello del liberalismo classico da salotto, dove Alice partecipa al dibattito, dice qualcosa che non piace a Bob, Bob storce il naso, e tutti concludono che il diritto di Alice a parlare vada comunque conservato.
No.
Il principio culturale dominante, in molti di quegli ambienti, era un altro. Era più vicino a: “Alice partecipa al dibattito e dice qualcosa di contrario all’ortodossia? Bene. Allora picchiamola, stupriamola (a parole o nei fatti) , mettiamola a tacere e cacciamola a calci, quella puttana fascista.”
Che poi, naturalmente, nella versione educata diventa “safety”, “community standards”, “protezione degli spazi”, “non dare piattaforma ai fascisti”, “difendere le persone vulnerabili”, "safe space" , e tutta la liturgia del caso. Ma il meccanismo sociale rimane quello: chi devia dall’ortodossia non viene contraddetto o ignorato, viene ostracizzato. E prima ancora di essere espulso, viene silenziato.
E questo, secondo me, è lo spirito con cui si è implementato il comportamento attuale delle istanze. Non perché qualcuno si sia seduto a un tavolo dicendo: “oggi inventiamo un sistema per dare al creatore del thread il potere di cancellare la voce altrui”. Sarebbe persino troppo razionale. Più banalmente, quando si è trattato di decidere cosa dovesse fare un blocco, nessuno ha avuto troppi dubbi: se Bob blocca Alice, Alice deve sparire. Non solo dagli occhi di Bob, ma dalla conversazione.
Da lì nasce la scelta tecnica.
Se il creatore del thread ti blocca, non ti sta semplicemente dicendo: “io non voglio più leggerti”. Ti sta dicendo: “tu qui non parli più”. E il software, invece di distinguere tra queste due cose, gli dà ragione.
Quindi Alice non viene soltanto filtrata dalla timeline di Bob. Alice viene zittita dentro quel contesto. Anche se gli altri partecipanti alla discussione non l’hanno bloccata. Anche se volevano leggerla. Anche se la risposta era diretta a qualcun altro. Anche se Bob, ormai, nella conversazione non c’entrava più nulla se non per il fatto di avere scritto il primo post.
Ma non importa.
Il thread è nato sotto Bob, Bob blocca Alice, e quindi Alice deve sparire. E vaffanculo quella fascista di Alice.
Questa è la logica. Non necessariamente dichiarata, non necessariamente formalizzata, magari nemmeno consapevole. Ma è la logica sociale che il codice finisce per incarnare.
E quando una scelta tecnica nasce dentro una cultura che considerava il dissenso come contaminazione, poi non bisogna stupirsi se il software non implementa il dissenso come parte della conversazione. Implementa la bonifica.
Ovviamente, oggi non è più possibile continuare in questo modo.
La procedura del canceling non può funzionare se, per esempio, nel gioco entra l’intera società. Finché il Fediverso resta una nicchia popolata da gruppi relativamente omogenei, tutti convinti più o meno della stessa ortodossia, il meccanismo del “zittiamo Alice” può anche sembrare sostenibile. Ma se la UE continua davvero a promuovere il Fediverso sempre di più, esiste il rischio concreto — o, a seconda dei punti di vista, la possibilità concreta — che questo ambiente diventi, come si dice, mainstream.
E quando una piattaforma diventa mainstream, cioè quando dentro ci finisce tutta la società con tutte le sue divergenze, idiosincrasie, maggioranze, minoranze, rancori e abitudini tribali, chi vince in un sistema fondato sullo zittire l’altro?
Vince la fazione più numerosa.
E siccome femministe, comunisti, anarchici, lesbiche, GLBT, non sono la fazione più numerosa, questo modo di fare finirà molto presto per ritorcersi contro di loro. È inevitabile. La cultura del silenziamento non resta mai proprietà privata di chi l’ha inventata o sdoganata: appena il campo si allarga, diventa un’arma della maggioranza del momento. E a quel punto quelli che ieri applaudivano perché Alice veniva zittita, domani scopriranno che a essere zittiti sono loro.
Per questa ragione, credo che la scelta migliore sia lasciare parlare Alice.
Poi spetterà al moderatore decidere che cosa fare. Ma, nella stragrande maggioranza dei casi, il moderatore non è Bob. E soprattutto, non dovrebbe esserlo per diritto dinastico solo perché Bob ha scritto il primo post del thread. Una discussione pubblica non può essere trasformata in un feudo personale nel quale chi apre il cancello decide chi ha diritto di parola e chi no.
Ed è esattamente questo che ho implementato.
C’è chi dice — partendo, ovviamente, dall’ipotesi che Alice dica solo cazzate — che tutto questo contribuisca alla cosiddetta enshittification del Fediverso. Ma diciamolo apertamente: lo stato attuale, nel quale Bob chiude la discussione insultando Alice e poi le impedisce di replicare semplicemente bloccandola, è davvero il modello sociale che vorreste vedere riprodotto in scala?
Davvero pensate che, portato a dimensione di massa, questo meccanismo produca una società migliore?
Perché a me sembra il contrario. Mi sembra il modo perfetto per trasformare una conversazione in un piccolo abuso di potere automatizzato. E francamente, se il futuro del Fediverso deve essere questo, allora non stiamo costruendo un luogo di discussione: stiamo solo distribuendo a più persone il pulsante per tappare la bocca ad Alice.

As I write this — I should reach a stable version shortly, it will be v1.0.1 — I am working on my ActivityPub server, turning the fork into something different, and I came across a piece of code that describes the behaviour of the block function.
You can find the fork here: https://git.keinpfusch.net/loweel/Aktor-2.
Service note: do not use it on the same database as the previous version, namely GoToSocial. It would not work. The database has changed. I have added and removed too many things.
As I was saying: I came across this piece of old code, and the way the block function is implemented — and, as far as I can see, the way all the servers I know implement it — I do not like it at all.
Let us take a simple example.
Bob and Alice are involved in a thread. The thread was started by Bob, and ten other people are taking part in it. Bob and Alice disagree. It happens. At a certain point, in a fit of practical democracy, Bob decides to block Alice.
The question is: what exactly is Bob doing?
There are two possible answers.
And these are two very different things.
In the first case, we are dealing with a perfectly legitimate choice. Bob says to his own server: “hey, remember not to show me anything Alice writes anymore”. That makes sense. It is an excellent choice, if the goal is the famous peace of mind. Bob protects himself from content he does not want to see, and that is where it ends. Alice keeps speaking, the others keep reading her, Bob no longer sees her. Everyone is happy, or at least everyone is slightly less unhappy.
The second implementation choice, instead, is the one that effectively silences Alice.
Perhaps the other ten participants in the thread were interested in knowing what Alice had to say. Perhaps the discussion was no longer really “between Bob and Alice”. Perhaps, as often happens, the thread had evolved, had taken a different direction, and Bob was by then merely the person who had lit the initial match. And yet, because the creator of the thread blocks Alice, in all the implementations I see around, Alice can no longer write in the thread.
And this happens because all the implementations I see use the in_reply_to field to identify a thread. So, when someone blocks you, your attempt to reply is treated as if it were a reply to the first post, that is, to Bob’s post. And since Bob has blocked you, your reply does not go through.
The choice is stupid.
It is stupid because it confuses two concepts that should remain separate: “I do not want to see Alice” and “Alice must no longer speak”. The first is personal moderation. The second is control over the conversation.
And it is even more stupid if we think about how online discussions actually work. A thread is not necessarily the moral property of the person who opened it. They opened it, certainly. They wrote the first message, certainly. But if ten people then arrive, and those ten people start discussing things among themselves, the thread is no longer simply “Bob’s thing”. It has become a collective conversation.
If Bob no longer wants to read Alice, fine: his server does not show her to him. But it is not clear why Bob’s block should prevent the other ten people from reading Alice. It is not clear why Bob’s personal irritation should turn into a technical silencing that applies to everyone.
Because perhaps Alice is replying to Carol. Or to Dave. Or to one of the other people involved. Perhaps Bob no longer has anything to do with it, except for the historical fact that he wrote the first message. But the software, instead, continues to treat everything as if every reply were still, in the final analysis, a reply to Bob.
And here the problem is not moral. It is architectural.
The software is taking a conceptual shortcut: it uses in_reply_to as if that were enough to define control over the thread. But by doing so, it gives the author of the first post a power that, socially speaking, is by no means obviously theirs to have. It grants them a kind of feudal right over the conversation: you opened the thread, therefore you get to decide who may still speak within that territory.
It is a very convenient vision to implement. But that does not mean it is a good vision of the social behaviour we want to model.
Because one thing is to say: “Bob no longer receives Alice’s activities”. Another thing is to say: “Alice can no longer produce activities that others will see in that context”. In the first case, we are filtering Bob’s view. In the second, we are changing reality for everyone else.
And in federated software, that difference matters quite a lot.
Because if federation is supposed to distribute power, it makes very little sense to rebuild, inside every thread, a tiny absolute principality belonging to the first person who spoke. Bob opens the thread, Bob gets annoyed, Bob blocks Alice, Alice disappears from the conversation for everyone. Very federated, certainly. It looks more like the Holy Roman Empire of personal bad moods.
In my opinion, the correct behaviour should be closer to the first interpretation: blocking exists to protect the person who blocks, not to silence the person being blocked in front of everyone else.
If Bob blocks Alice, Bob must no longer see Alice. Full stop. But if Alice replies to Carol, and Carol has not blocked Alice, Carol should be able to read that reply. And the other participants who have not blocked Alice should be able to read it as well. Bob’s block should modify Bob’s timeline, not the geometry of the universe.
Then, of course, there are more complicated cases. There are abusive threads, coordinated harassment, conversations that become unmanageable. But those are moderation problems; they should not be solved by pretending that the first author of the thread is the ontological owner of every subsequent message.
In other words: blocking someone should mean “do not show them to me anymore”, not “prevent them from speaking to anyone else, provided everything began under one of my posts”.
And yet many implementations end up exactly there. Out of technical simplicity, inherited design, laziness, or because nobody really separated the two cases.
But they are two different cases.
And when software confuses “I do not want to listen” with “you must not speak”, the problem is no longer only in the code. It lies in the social vision that the code is imposing.
Why did the entire Fediverse make this choice, namely the choice to silence Alice?
Were they all rape fetishists? No. I do not think that is the explanation, and I do not think we need to invoke an assortment of psychopathologies to understand it. But if we look at the cultural origins of the Fediverse, or at least of a very loud and very influential part of the early Fediverse, the picture becomes clearer.
Who was there, at the beginning?
Basically, a squatted social centre.
Now, let us be clear: I am not saying that these categories are automatically identical, nor that every instance was the same as every other. I am saying that the cultural broth in which certain implementations were born was not exactly that of drawing-room classical liberalism, where Alice takes part in the debate, says something Bob does not like, Bob wrinkles his nose, and everyone concludes that Alice’s right to speak should nevertheless be preserved.
No.
The dominant cultural principle, in many of those environments, was something else. It was closer to: “Alice takes part in the debate and says something contrary to orthodoxy? Good. Then let us beat her, rape her — verbally or in practice — shut her up and kick her out, that fascist whore.”
Which, of course, in the polite version becomes “safety”, “community standards”, “protecting spaces”, “not giving a platform to fascists”, “defending vulnerable people”, “safe space”, and all the required liturgy. But the social mechanism remains the same: whoever deviates from orthodoxy is not contradicted or ignored; they are ostracised. And before they are even expelled, they are silenced.
And this, in my opinion, is the spirit in which the current behaviour of instances was implemented. Not because someone sat down at a table and said: “today we shall invent a system that gives the creator of a thread the power to erase someone else’s voice”. That would almost be too rational. More simply, when it came to deciding what a block should do, nobody had many doubts: if Bob blocks Alice, Alice must disappear. Not only from Bob’s eyes, but from the conversation.
That is where the technical choice comes from.
If the creator of the thread blocks you, he is not simply saying: “I no longer want to read you”. He is saying: “you no longer speak here”. And the software, instead of distinguishing between these two things, agrees with him.
So Alice is not merely filtered out of Bob’s timeline. Alice is silenced inside that context. Even if the other participants in the discussion have not blocked her. Even if they wanted to read her. Even if the reply was directed at someone else. Even if Bob, by then, no longer had anything to do with the conversation except for the fact that he had written the first post.
But that does not matter.
The thread was born under Bob, Bob blocks Alice, and therefore Alice must disappear. And fuck Alice, the fascist bitch.
That is the logic. Not necessarily declared, not necessarily formalised, perhaps not even conscious. But it is the social logic that the code ends up embodying.
And when a technical choice is born inside a culture that regarded dissent as contamination, one should not be surprised if the software does not implement dissent as part of the conversation. It implements decontamination.
Obviously, today it is no longer possible to continue this way.
The procedure of cancelling cannot work if, for example, the whole of society enters the game. As long as the Fediverse remains a niche populated by relatively homogeneous groups, all more or less convinced of the same orthodoxy, the mechanism of “let us silence Alice” may even look sustainable. But if the EU really continues to promote the Fediverse more and more, there is a concrete risk — or, depending on one’s point of view, a concrete possibility — that this environment will become, as they say, mainstream.
And when a platform becomes mainstream, that is, when the whole of society ends up inside it, with all its divergences, idiosyncrasies, majorities, minorities, grudges and tribal habits, who wins in a system based on silencing the other?
The largest faction wins.
And since feminists, communists, anarchists, lesbians, GLBT people, are not the largest faction, this way of doing things will very soon turn against them. It is inevitable. The culture of silencing never remains the private property of those who invented it or legitimised it: as soon as the field expands, it becomes a weapon in the hands of the majority of the moment. And at that point, those who yesterday applauded because Alice was being silenced will discover tomorrow that they are the ones being silenced.
For this reason, I believe the best choice is to let Alice speak.
Then it will be up to the moderator to decide what to do. But in the overwhelming majority of cases, the moderator is not Bob. And above all, he should not be Bob by dynastic right merely because Bob wrote the first post in the thread. A public discussion cannot be turned into a personal fiefdom in which whoever opens the gate decides who has the right to speak and who does not.
And this is exactly what I implemented.
Some people say — starting, obviously, from the assumption that Alice only says bullshit — that all this contributes to the so-called enshittification of the Fediverse. But let us say it openly: the current state of affairs, in which Bob closes the discussion by insulting Alice and then prevents her from replying simply by blocking her, is that really the social model you would like to see reproduced at scale?
Do you really think that, once brought to mass scale, this mechanism will produce a better society?
Because to me it seems the opposite. It seems like the perfect way to turn a conversation into a small automated abuse of power. And frankly, if this is to be the future of the Fediverse, then we are not building a place for discussion: we are merely distributing to more people the button for shutting Alice’s mouth.






In his first 150 days, Mayor Mamdani has:
- closed a $12B deficit
- collected $9M in unpaid fines from Bezos
- recovered $5M in stolen wages for gig workers
- raised minimum wage to $30/hr
- drove violent crime to record lows
- marched for trans rights
I don't ever want to hear an excuse from a single Democrat ever again. Turns out the "radical leftist agenda" is just competent representation.

## Release notes for beta-0.990
This release covers the work after beta-0.920 and marks the last beta line before the project moves from "large fork cleanup" into a more regular Aktor development rhythm.
### Human-readable highlights
- The big result of this beta is that Aktor now feels like its own server instead of a lightly reskinned GoToSocial fork. The public UI, Settings UI, moderation surfaces, runtime artefacts, documentation, and smoke coverage now consistently present Aktor as the active product while keeping the inherited Mastodon and ActivityPub API contracts intact.
- Administrator-managed Lua filters are the largest moderation feature in this line. Filters are stored in the database, edited from Settings, and evaluated with status metadata exposed to the Lua runtime. This gives an instance operator a precise programmable policy layer without changing the C2S or S2S API shape.
- Moderation work also became more practical in the UI. Timeline cards expose report, block, and mute actions for remote content. Settings reports are easier to inspect and resolve. Domain-block management was simplified, and the public /about page now shows instance statistics, federation counts, report counts, and banned instances in separate, readable cards. The Settings People list now combines followers, following, and mutual relationships, provides direct account actions, and opens remote profiles from account avatars.
- Posting and reading workflows also improved. The composer can enrich link posts with SEO metadata while avoiding referrer leaks, pasted images can be turned into photo posts, timelines can load older pages, and timeline cards gained a direct "Show thread" action. Follow counts are now refreshed from database state instead of drifting through stale cache entries.
- The IPFS work from the previous beta was hardened: Aktor keeps IPFS scoped to local media while remote media and emoji remain origin-owned. This keeps the operator-facing CDN experiment useful without pretending remote media belongs to the local instance.
### Deployment list since beta-0.920
- Rebranded runtime artefacts to Aktor, including the default build version for this line: 0.9.990-beta.
- Added administrator-managed Lua content filters stored in the database.
- Exposed status metadata to Lua filters and documented the Lua runtime variables available to filter code.
- Removed deleted example Lua filters from the active runtime set.
- Added Settings UI support to list, create, edit, rename, and delete Lua filters through the admin API.
-Added timeline moderation actions for reporting, blocking, and muting remote accounts and statuses.
- Improved Settings report handling, including focused report loading and report resolution from the Aktor UI.
- Simplified admin domain moderation UI and fixed contrast for domain block and custom emoji action buttons.
- Added link composer SEO enrichment and omitted referrers when fetching link metadata.
- Added pasted-image handling for the photo composer.
- Added web push alerts for unfollow notifications.
- Preserved remote profile media fallbacks and kept remote post media and remote emoji media owned by their origin instances.
- Kept IPFS scoped to locally uploaded media.
- Counted follow statistics directly from the database and fixed follow-count cache invalidation.
- Stabilized follow counts in the UI after relationship changes.
- Added timeline "Show thread" and older-page loading.
- Moved thread navigation out of the timeline actions menu for quicker access.
- Removed the unused interaction-requests Settings UI.
- Completed the public /about page with description, registration/contact details, local user/post statistics, federated instance count, moderation report counts, and a separate banned-instances card.
- Added People avatar links to canonical remote profile URLs for faster moderation review.
- Updated INSTALL.md with the public /about page, Lua filters, Settings People behavior, and related deployment notes.
- Added and updated smoke test coverage for the public About page, Lua filters, timeline moderation, link enrichment, photo paste handling, report handling, People actions, People avatar profile links, federation identity, and the container build path.

