La storia di r/place 2022 dal punto di vista italiano (e dei bot)

Giorno 01/04/2022, Ore 15:00, luogo Reddit.com/r/place, sbarco dei redditor

Nel mondo informatico il primo aprile è il giorno degli scherzi, escono notizie assurde o funzionalità da WTF. Ad esempio StackOverflow quest’anno ha messo i filtri sulle sue pagine come su Instagram.

Reddit dopo 5 anni ha rimesso su Place, ovvero una “tela” digitale dove tutti facevano la parte con un pixel ogni 5 minuti.

Non si hanno i numeri di quanta gente abbia partecipato ma è stato divertente. Ricordo il primo giorno che si doveva conquistare un spazio per la nostra bandiera, ero nel gruppo di r/italy, e si doveva lottare per il territorio.

Il discord del gruppo italico era una bolgia che le file per i nuovi iphone scansatevi.Si notò subito il problema del canale generale che aveva qualche centinaio di utenti attivi in contemporanea. Quindi i propri messaggi scomparivano come le pizzette in un flusso infinito. Diventava possibile coordinarsi e i mod erano pochi per gestire tutto quindi sono nati altri canali tipo quello per la lingua inglese per coordinarsi con gli alleati.

Praticamente si cercavano paesi con fuso orario diverso per coprire i propri territori quando si andava a dormire e si facevano accordi non invasione con quelle vicine, se notate infatti (qui la versione definitiva, al click diventa 2000×2000, ma ci arriviamo) potete trovare dei cuoricini che indicavano che non ci si dava fastidio ma una mano.

La versione r/finalclean

Io ricordo vagamente l’edizione del 2017, mi ricordo che c’era un bot e che forse partecipai. Ero su Reddit da un anno quindi non avevo molta dimestichezza, avrei fatto un AMA solo mesi dopo su ItalyInformatica ma quest’anno volevo saperne di più.

Quindi provai come gli altri venerdì a conquistare la bandiera italiana e combattere i vandali.

Giorno 02/04/2022, luogo Reddit.com/r/place, difesa e conquista dei redditor

Il secondo giorno durante la mattinata decisi di guardare se nel frattempo erano usciti dei bot. Su GitHub ce ne era uno più affidabile degli altri ma non aveva una gestione del tipo verifica se il pixel è sbagliato e allora mettilo, non faceva altro che disegnare 5 minuti per 5 minuti in base alle coordinate e il disegno.

Durante il pomeriggio salta fuori che lo stesso bot è migliorato pesantemente e quindi lo studio un attimo. In serata verso le 22 decido di fare un lanciatore del bot per le nostre necessità.

Ricordatevi che era una bolgia quindi farsi notare dai pochi mod era difficile quindi si facevano tag in canali meno affollati e realizzai il lanciatore del bot che scaricava in automatico l’ultima versione del nostro disegno e che quindi riavviava il bot se trovava aggiornamenti. Questo per evitare di passare il tempo a stare dietro a tutte le proposte per dei disegni dentro la bandiera, il primo fu il Dante.

Con questo caos di gente il lanciatore era l’unica soluzione per fare in modo che gli utenti che volessero usare il bot fossero sempre aggiornati. Altrimenti dovevano aggiornare manualmente il file a ogni nuovo design che avvenivano in fretta, come le varie correzioni o semplificazioni.

Vi posso assicurare che non ho mai visto così tanta gente in chat in contemporanea che discuteva, e uso Telegram da anni anche durante agli eventi dal vivo in gruppi da un migliaio di persone.
Cioè onestamente mi giravano perché provai a proporre un bel Bud Spencer sul bianco della bandiera facendo anche la griglia con le coordinate. Perché era qualcosa che ci avrebbe assicurato il supporto di altri paesi tipo l’Ungheria, la Germania e la Spagna visto che è molto famoso in quei paesi. Alla fine si fece il David ma era difficile farsi notare con le proposte in quel casino.

Specialmente perché in serata aprirono un altra tela da 1000×1000 sulla sinistra con altri colori utilizzabili. Quindi si scatenarono a conquistare un nuovo pezzo sulla destra, oggi si vede il risultato di avere tutti quei territori che non ce se la faceva a gestirli. Infatti quella bandiera è sparita il giorno dopo.

Comunque verso le 22:20 vengo notato dai mod per il mio lanciatore e mi ritrovo in call con altri dev che stavano modificando il bot.

Il bot in questione è quello che poi è stato utilizzato da tutti. Il bot è in Python e permetteva di gestire account multipli ma funzionava con un file di configurazione.
Questi sviluppatori nel frattempo avevano anche lanciato il sistema di overlay.

I dev avevano cominciato modificando il bot cosa che io avevo evitato perché poi sarebbe stato difficile aggiornarlo e rimanere al passo. In ambito informatico si chiama fork, ovvero una versione derivata che poi va tenuta aggiornata e che ha delle modifiche.
La modifica fatta includeva, nel codice, direttamente di usare il file immagine saltando il file di configurazione per questo parametro, per evitare che gli utenti ci facessero dei magheggi e una richiesta web verso il repository per avere le coordinate.

Quindi al tutto poi venne aggiunto il mio codice che ha subito delle migliore che scaricava anche l’immagine e verificava se c’erano novità. Il bot con le varie modifiche verso le 02:00 era pronto per essere utilizzato con un readme.

A quel punto ero nel gruppo “direttivo” del server e avevo accesso per scrivere annunci e altro. Sono andato a dormire con il bot in funzione.

Prima di passare al giorno successivo, vediamo di spiegare un po come funzionava il tutto. Il sistema overlay scaricava l’immagine sul repository GitHub che era come anche per il bot a misura pixel per pixel, l’overlay era generato dalla stessa immagine del bot così con un colpo si aggiornava tutto in automatico. Con il bot che aggiornava i dati si stava praticamente a posto, certo il bot subiva aggiornamenti continui però questo è un altro discorso.

Giorno 03/04/2022, luogo Reddit.com/r/place, espansionismo

Il giorno dopo salta fuori che il bot verso le 3 è morto a causa di Reddit che era andato in 500 (il server non rispondeva) ma io dormivo il sonno del bisognoso. Siccome durante la notte nessuno ha rilasciato aggiornamenti all’immagine il bot non si è riavviato.

Comunque durante il giorno il bot riceve molte correzioni dal repo originale, tra cui il supporto anche alla nuova canvas e anche a quella che salterà fuori durante il pomeriggio (sotto).
Divento anche “colui che gestisce il bot e risponde all’assistenza” ma è gestibile.

Il readme si popola di FAQ e salta fuori il mio incubo, facendo il supporto, Windows!
Si, su Linux non c’erano problemi a farlo andare ma su Windows c’era sempre qualcuno che non sapeva perché non funzionasse ecc. Il mio lavoro era popolare il readme con le domande più comuni e minacciare la gente di leggerlo, perché naturalmente c’era chi scaricava il bot e neanche installava Python.
Per il bot ho messo delle correzioni specifiche per windows per l’installazione e alcune cose nel readme, apposta per documentare tutto.

Oppure poi risolvevano ma c’era scritto tutto nel readme. Fortunatamente sono stato aiutato da altri utenti nel supporto perché non usando windows non è che ero di molto aiuto…

Nel mentre saliva il torcicollo in poltrona e si dava una mano come mod. Il server arriverà a 4100 utenti, tra italiani e non, si aggiungono molti altri mod.
Salta fuori che una buona parte sono studenti delle superiori o che lavorano ma principalmente informatici (i mod).

Inoltre si riesce a comunicare meglio ai giocatori quello che c’è da fare con più annunci e non più silenzio come prima, si risponde alle richieste se si invocavano i mod, chi seguiva altri discord come ambasciatore, chi era in call perenne con altri e così via. In poche parole servono una 20 di persone nel direttivo per non dover impazzire con un flusso del genere tra grafici, chi informa/risponde, chi sviluppa ecc. Non siamo arrivati a quella cifra ma sono quelli che servono e se hanno esperienza sui programmi è anche meglio per essere più rapidi. Sicuramente avere tutto su Github ha semplificato molto la vita, permettendoci di centralizzare il tutto.

Verso la sera si crea un gruppo di persone per definire i ruoli cosicché i mod in vocale e gli altri ci si divida il fatto di aggiornare gli overlay o correggerle il più rapidamente possibile.

Anche perché se i bot agivano su una immagine non aggiornata si cancellava il lavoro di altri. Succedeva infatti che degli alleati ridisegnavano cose che noi avevamo tolto perché non avevano le immagini aggiornate. Fortunatamente era possibile sapere chi disegnava perché con il mouse al click appariva un piccolo tooltip con il nome dell’account quindi si riusciva poi a risalire la comunità.

Per domenica sera riesco a fare la guida per modificare il bot per coprire anche la nuova parte conquistata con l’ultima cena. In poche parole il readme includeva di tutto fino a che uno dei nostri dev salta fuori con uno script per generare in automatico account per Reddit.

Apriamo un altro capitolo quello degli account multipli. Il bot essendo multithread poteva gestire più account e ognuno richiedeva di creare un app (dentro Reddit) quindi c’era chi usava il bot anche con 10 in contemporanea. Con il tempo poi Reddit li bannava ma non da Reddit ma solo da r/place. Si potevano anche configurare dei proxy per evitare di essere beccati e specificare anche sezioni diverse della immagine da disegnare di cui occuparsi.

In poche parole il bot lavorava al posto vostro e serviva per difendere il terreno, le stime con i vari conteggi sono sui 50 bot ma aggiungerei un 20/30% per gli account multipli in funzione.

Giorno 04/04/2022, luogo Reddit.com/r/place, di punto in bianco

L’evento è finito di lunedì, nel mentre erano arrivate varie proposte per fare il conteggio dei bot e altre cose ma il mio commento era semplice. Vale la pena per una cosa che finisce domani?

Comunque stavolta era un giorno lavorativo quindi ci sono stati meno aggiornamenti del bot anche perché non servivano se non qualche correzione. Anche perché questa terza notte i bot erano schiattati ma non tutti per via di alcune correzioni sempre per colpa di Reddit.

Mi rendo conto poi che nell’assistenza incominciavo a diventare un pelino antipatico perché con le richieste ricevute erano utili quanto il centesimo di resto in edicola. Il bot viene modificato anche per aggiungere un po di casualità nelle richieste per evitare i ban ma non si è mai capito come funzionassero.

Ci sono state varie ipotesi, da quanto esisteva l’account, dai karma, se dallo stesso IP ma non c’era qualcosa di fisso come schema.

Comunque l’evento finisce all’improvviso verso alle 1 di notte con io che mi ero appena buttato a letto al che ho spento il bot come tanti altri.
L’evento è finito all’improvviso perché i colori disponibili d’improvviso che erano aumentati a dismisura sono diventati improvvisamente solo uno e il bianco.

Questo ha comportato che tutti i bot anche se specificavano il colore da disegnare venissero sostituiti da un pixel bianco. Questo ha reso evidente subito chi utilizzasse i bot dimostrando il potere di trollata di Reddit stesso. Dopo giorni di meme e battaglie per lo spazio, sbam gli utenti cancellano da soli la loro opera.

Chi dice che i francesi (in basso a sinistra) non usassero bot si sbagliano, eravamo noi a usarne poco in confronto a tanti altri.

Un altra premessa è che il bot verificava pixel per pixel se fosse uguale a quello della immagine quindi i nostri che erano così pochi non potevano disegnare ma difendere principalmente la parte sopra. Il sistema faceva riga per riga e colonna per colonna quindi prima di arrivare verso la fine avrebbe trovato qualcosa specialmente se interagiva ogni 5 minuti.

Quando c’è stato questo cambio dei pixel era normale che i bot andassero di matto perché l’immagine diventava diversa da quello che disegnava prima quindi in questo screen avvenuto al cambio si notano subito chi usasse molto i bot.

Per avere quell’effetto probabilmente si tratta di qualche 100aio di bot con account multipli e non i nostri pochi.

Conclusione

Per un evento del genere cosa serve:

  • Un gruppo di mod disponibile o che almeno si turni per gestire i giocatori e fornire le istruzioni
  • In questo gruppo alcuni programmatori con esperienza per fornire le cose più affidabili possibili, considerando che avere un programma stabile in 2/3 giorni non esiste
  • Che gli streamer sono delle brutte persone, ci sono stati casi in cui con centinaia di bot aiutati dal loro pubblico obliteravano letteralmente spazi gestiti da altri per metterci la loro faccia. Successo anche da noi lunedì con uno streamer polacco che stava rimuovendo Falcone e Borsellino.
  • L’easter egg degli Among Us era incredibile, praticamente li inserivano nei disegni degli altri e non si notavano, a fine evento ne sono stati contati quasi 3000. Capitavano nella pizza o nel David
  • Ci serve un unico centro di coordinamento, avere delle persone che passano il tempo a correggere ma non ricevono gli ultimi aggiornamenti ci ha creato dei problemi nei primi giorni perché ci impediva di fare dei disegni. Forse un sub apposito o un canale telegram con i soli annunci al di fuori di Reddit era utile per questa cosa e fare anche un conteggio.
  • Ad oggi è impossibile quanti sul server fossero italiani e non, ma per la regola del 20/30% sui 4100 fate voi i vostri numeri
  • Un bot automatico che scarichi le ultime modifiche è fondamentale come anche il flusso di aggiornamenti delle immagini, altrimenti la gente si impazientisce e comincia a fare altro.
  • Conquistare territori senza difesa è inutile è solo perdita di tempo, infatti io onestamente sugli altri canvas non ho partecipato.
  • Decidere democraticamente è importante e veniva fatto per i disegni ma quanto avrei voluto un Bud o un Terence (l’ultimo giorno erano in votazione)
  • Coordinarsi come alcune comunità tra disegni e altro richiede persone motivate e con competenze almeno di grafica. Fare un disegno e poi ricorreggerlo perché l’immagine aveva degli errori era veramente limitante.
  • Le persone non sanno leggere le istruzioni, a parte il discorso del readme ignorato del bot (che oramai è un testamento) le persone non sapevano installare estensioni o trovare i riferimenti nei messaggi pinnati ad esempio. Quindi bisogna essere preparati a fare messaggi documentati e anche un po minacciosi. Lo standard mio era minacce fisiche a chi non leggeva il readme prima di chiedere l’assistenza, peccato che fossimo online.
  • I bot sono utili se si ha una potenza di fuoco dell’ordine di 4/500, con un intervallo di 5 minuti è necessario un numero del genere per tenere sotto controllo spazi grandi o piccoli che siano
  • Reddit aveva la funzionalità per scaricare l’immagine in base allo zoom ma in tanti usavano gli screenshot…
  • Il lanciatore e configuratore sono ottimali per semplificare la vita di setup che si è rilevata complicata per tanti, figuriamoci senza
Organizzazione della comunità tedesca
Organizzazione della comunità tedesca

Un fine settimana alternativo sicuramente ma da dosare ogni tot anni.

Ringrazio tutti i mod per la disponibilità ma non so associare i nomi di discord agli account su Reddit o Github perché a quanto pare sono l’unico vecchio che usa lo stesso ovunque.

  • d-beezee autore del generatore degli account e del sistema di overlay

PS: mi trovate sul server Discord dei Redditor Italiani. Per la spiegazione del disegno fate riferimento qui.

Qualche altro dettaglio tecnico

Così chi non è programmatore può saltare.

  • Il sistema sfruttava i websocket quindi era un flusso continuo
  • Il bot prendeva le tile del disegno e faceva una ricerca tra quella da disegnare e l’originale con un match di colori simili in caso di errori, quindi l’immagine originale non poteva coprire spazi oltre i 1000px altrimenti ci metteva molto tempo per trovare pixel (compreso a ignorare i trasparenti che facevano da maschera) e andava in crash (ho fatto la prova provata)
  • L’autenticazione 2FA creava problemi per il login però si poteva aggirare disattivandola o con un parametro ma non lo ho mai detto per non dover fare supporto anche per questo
  • Il bot originale alla fine è diverso dal nostro che aveva meno cose tra cui codice più pulito e il supporto a Tor, ho evitato per non dover spiegare anche questo cose
  • Su windows serviva PIP e spesso non veniva messo l’alias per Python e quindi i programmi non andavano e i file bat aprivano e chiudevano la finestra
  • Alcune volte sembrava che il bot si piantasse ma probabilmente era la coda nel websocket o altro che dava questa impressione
  • Da bot i dati erano più aggiornati perché si evitava la cache del browser e non tutti capivano che dovevano aspettare per vedere il pixel piazzato. Internet non significa in tempo reale al millisecondo specialmente con un flusso del genere
  • Da quello che ho visto Reddit scaricava le varie tile in PNG e poi si disegnava sopra con i vari pixel e poi dopo un le aggiornava facendo un SVG interattivo
  • L’overlay faceva più o meno la stessa cosa ma con una immagine 4000×4000 alla fine, il bot invece aveva sezioni più piccole
  • Il lanciatore aveva un setup con un prompt (non mio) che compilava il JSON e poi il sistema di aggiornamento della png che uccideva il processo e lo riavviava se vedeva novità, quindi l’utente doveva solo lanciarlo dopo aver messo le varie dipendenze
  • Se fosse fatto solo per windows non avrei mai toccato il bot ma oramai non ci si fa più caso a queste cose fortunatamente
Liked it? Take a second to support Mte90 on Patreon!
Become a patron at Patreon!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *