Web & IM (was: Re: [ruby-it] Gtalk bot in Ruby?)

On 11/15/06, Paolo Donà [email protected] wrote:

Non fare il prezioso che sulla roba interessante non si è mai lamentato
nessuno di OT…

Va bene, /me gets rid of shame, il contesto è questo: qualche
settimana fa ho rilasciato una estensione per Firefox
(http://dev.hyperstruct.net/xmpp4moz) che mette la messaggistica
istantanea (protocollo XMPP, quello di GTalk insomma) alla pari
dell’HTTP nel browser.

La prima conseguenza è che si possono scrivere facilmente altre
estensioni basate su XMPP (c’è già il tradizionale chat client, e un
altro paio), la seconda è che si possono scrivere applicazioni web che
usano XMPP a fianco di HTTP.

Quella interessante è la seconda: se per avere un’applicazione
collaborativa (es. una lavagna) prima dovevi scrivere o modificare un
client e distribuirlo a tutte le parti in gioco, con XMPP integrato
nel browser ti limiti a scrivere l’applicazione nei soliti HTML,
Javascript, eventualmente Ruby/PHP/Java/etc., e piazzarla su un server
web. Le parti in gioco digitano la URL ed è fatta.

Cosa importante da tenere a mente: XMPP trasporta XML, non
semplicemente testo, quindi non storcere il naso se parlo di scrivere
“applicazioni”, la chat è solo una delle applicazioni possibili.

L’implementazione che ti immagini tu avrebbe quindi l’interfaccia XUL invece
che GTalk e dietro un bot simile a quello che ho fatto?

Spiegaci come affronteresti il problema…

Ci provo…

  • non essere interrotti da qualcuno che non sia strettamente
    definito come mio collaboratore

Se ho capito bene, hai risolto usando un account noto solo ai due
cialtroni (;-)) su GTalk (applicazione desktop) e l’account generico
su GMail. Probabilmente con un client tradizionale ti va anche meglio
perché quasi tutti supportano più account connessi contemporaneamente,
quindi puoi mettere quello normale su “busy” e quello di lavoro su
“available”.

  • non dovere fare alcun tipo di login manuale giornaliero (tipo
    creare la room ogni volta o simile)

Le room in XMPP possono essere nascoste, protette da password, solo
per utenti registrati, e persistenti (cioè ricordarsi tutte queste
cose e continuare a esistere anche quando l’ultimo partecipante va a
nanna). Se lato client aggiungiamo una funzione di bookmark e una di
autojoin, ci siamo.

  • tenere l’history dei messaggi

Questo si può fare in vari modi, il server può scrivere i log della
chat room su una pagina web (come gli irc log per intenderci) o si può
scaricare il barile ad un bot che magari le mandi pure ai partecipanti
via mail.

Non mi viene in mente altro…

Qualcosa tipo:

  • una lavagna/blocco degli appunti per tener traccia dei punti
    importanti toccati durante un brainstorming, piuttosto che
    rileggersi la conversazione intera (credits to kiaro, questa era sua
    :-));

  • navigazione sincronizzata, ovvero in un tab carichi una pagina e
    questa viene caricata anche nei browser delle persone che sono in
    chat con te; tu scrolli la pagina e la pagina scrolla anche da loro;
    tu evidenzi una parola e la parola viene evidenziata anche da
    loro…

  • file condivisi: scegli dei file e i contatti che decidi se li
    scaricano quando vogliono…

  • editor condivisi: tipo quello per CSS, con cui tu e il tuo web
    designer potete divertirvi a defacciare Google (tipo
    http://dev.hyperstruct.net/xmpp4moz/wiki/RemoteApplicationCssEditor#Screenshots),
    anche se for your eyes only. :slight_smile:

  • eccetera…

Capiamoci, sono cose che in buona parte si possono fare prendendo una
funzionalità da un sito, una da un altro… E’ un po’ come page
refresh vs. AJAX, alla fine la web mail la leggi anche col page
refresh, la differenza è che il page refresh è un punto di arrivo
(oltre non vai) e AJAX è un punto di partenza (ci fai quel che fai col
page refresh e di
più).


Massimiliano M.
code: http://dev.hyperstruct.net
blog: http://blog.hyperstruct.net