Vai al contenuto principale

Una casa per i plugin

3 minuti di lettura

Sei pezzi di puzzle nei colori dell'arcobaleno, uno accanto all'altro su una superficie bianca

BeeBEEP è sempre stato un modo per far parlare le persone sulla propria rete. Il nuovo BeeBEEP sta diventando anche un luogo in cui altri programmi possono unirsi alla conversazione: una partita a scacchi con un collega, una mano a briscola, una telefonata, un giorno un sondaggio o una lavagna condivisa. Tutti come plugin, costruiti sulla stessa connessione che porta i tuoi messaggi.

Niente dentro, di proposito

Anni fa BeeBEEP portava con sé un piccolo gioco, uno di quelli con i blocchi che cadono. Alcune aziende lo tolsero dal pacchetto, e poi bastava un file in più nella cartella perché il loro reparto informatico rifiutasse l'intero programma. La lezione è rimasta: il BeeBEEP che installi non contiene nessun gioco. Un plugin si scarica a parte e vive in una cartella sua. Con la cartella vuota BeeBEEP non mostra nulla e non annuncia nulla.

Un amministratore decide cosa è permesso: plugin attivi o no, un'intera categoria (per esempio i giochi) spenta, e se quelli non firmati possono girare. Prima che parta una sola riga di un plugin, BeeBEEP ne legge la descrizione e la confronta con la copia firmata dentro la libreria: se non coincidono, il codice non parte mai.

Un solo modo di giocare insieme

Qualunque cosa sia un plugin, comincia sempre allo stesso modo, e somiglia a qualcosa che conosci già: un invito è un messaggio di chat, e la risposta è firmata, come negli inviti ai gruppi. Puoi accettare, rifiutare o dire che sei occupato. Una sessione sopravvive a un riavvio: si può sospendere e riprendere, e viene ricordata finché non finisce. Il plugin non deve costruire nulla di tutto questo, solo il gioco o lo strumento.

Tre modi di essere un plugin

  • Una libreria che BeeBEEP carica, per i plugin che fanno parte di BeeBEEP stesso, sul desktop.
  • Un'applicazione a sé, in qualsiasi linguaggio. BeeBEEP la avvia per la sessione e ci parla attraverso un canale locale, una riga di JSON alla volta, come con la console. Vede le stesse cose che vede una libreria: le persone della sessione, i messaggi, il percorso di rete. Scacchi e briscola girano già così, con quattro BeeBEEP intorno a un tavolo.
  • Una piccola pagina web, servita solo al computer su cui gira e mostrata nella web view del telefono, che parla gli stessi comandi dell'applicazione: un solo vocabolario, due mezzi di trasporto. La pagina è chiusa in un recinto: non può scaricare nulla da internet e può raggiungere solo la propria sessione.

Perché una pagina web per i telefoni

Un iPhone non carica codice che non sia stato distribuito con l'app, e Apple non permette di scaricare programmi. Quindi su un telefono un gioco non può essere "un file in una cartella". Una pagina web è la risposta con cui possono convivere sia l'App Store sia BeeBEEP: i giochi viaggiano come pacchetti firmati, e la stessa pagina gira su un computer e su un telefono.

Veloce quando serve

Una telefonata o uno schermo condiviso non possono aspettare la conferma di ogni messaggio. Per loro BeeBEEP offre un canale dal vivo: datagrammi cifrati diretti all'altra persona, che scartano ciò che arriva troppo tardi e ripiegano sulla connessione normale quando la rete non li lascia passare. La telefonata, il primo plugin previsto, ne è il primo utente.

Cosa manca

Le fondamenta sono costruite e provate: il protocollo, le sessioni, il caricamento, il ponte, il canale dal vivo. Mancano ancora il pacchetto della pagina web (la sua firma, la consegna a un collega che non lo ha) e la visualizzazione sui telefoni. Il kit che permette a chi sta fuori da BeeBEEP di scrivere un plugin non è ancora pubblicato, ma è previsto, perché l'obiettivo è una piattaforma in cui altri sviluppatori possano costruire qualcosa di proprio, e tenersi ciò che guadagnano.