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.
