Smultron + DropBox = text editor collaborativo (quasi)

Vi è mai capitato di dover lavorare in gruppo su un unico file di testo (ad esempio un listato C, HTML, Nastran, Matlab o qualsiasi altro progetto) contemporaneamente ma ognuno sul proprio computer? A me sì, troppo spesso ultimamente. Per facilitare questo compito esistono alcuni text editor “collaborativi” che permettono di gestire le modifiche allo stesso documento in tempo reale, ma hanno lo svantaggio di essere spesso e volentieri monopiattaforma e a pagamento1.
Il metodo che sto per descrivervi, invece, ha il vantaggio di essere potenzialmente multipiattaforma e gratuito.
L’idea di base
Il procedimento è molto semplice:

  • Si carica il file da modificare in modo collaborativo su DropBox, direttamente o utilizzando la tecnica del symlink.
  • Si lavora sul file utilizzando un editor di testo in grado di controllare se il file aperto è stato modificato da altre applicazioni e, in tal caso, ricaricarlo nella versione aggiornata
  • Ogni spesso si salva il documento, così da caricare il file su DropBox ad intervalli regolari

Perché DropBox?
DropBox è particolarmente utile se si lavora non solo su computer diversi, ma anche in uffici, locali, città, nazioni e continenti diversi, purché si abbia a disposizione una connessione internet. Il fatto di utilizzare DropBox ha il vantaggio di avere un

sistema integrato di risoluzione dei conflitti, poiché DropBox si occupa di creare delle copie di sicurezza nel caso in cui i file vengano salvati nel medesimo istante. Inoltre si avrà a disposizione un backup storico delle versioni già salvate, così da poter recuperare velocemente il lavoro in caso di problemi. DropBox è gratuito e multipiattaforma, funziona su Mac OS X, Linux e Windows.Quale editor?
Per quanto riguarda l’editor, questo dipenderà dalla piattaforma.
Per Windows, ad esempio, c’è Notepad++, mentre per Mac c’è Smultron, gratuito ed opensource. Funziona benissimo, va solo aggiustata qualche preferenza!
In alternativa, invece di utilizzare un text editor nativo per la vostra piattaforma, potete utilizzare l’editor gratuito, opensource e multipiattaforma jEdit. Purtroppo la “j” di jEdit sta per Java, e voi sapete tutti cosa questo comporti… peggio ancora, jEdit ha menù e scorciatoie da tastiera spesso diversi dalle altre applicazioni di OS X.

Impostare Smultron
Smultron ha già tutto ciò che ci serve, basta solo attivare qualche opzione, e modificare alcuni valori delle preferenze non raggiungibili dall’interfaccia grafica, ma modificabili direttamente nel file “plist” (per fare questo useremo il comando default write da Terminale).

Nelle preferenze di Smultron andate in Avanzate>Molto Avanzate e spuntate l’opzione “Controlla se il documento è stato modificato da un’altra applicazione”:

Ora ogni volta che qualcuno modificherà quel file comparirà una finestra di dialogo che chiederà se volete ricaricare il file appena modificato. Questo continuo avviso può essere disabilitato, così da consentire a Smultron di ricaricare il file senza avvisare (a vostro rischio), e per farlo è necessario dare il seguente comando da Terminale:

defaults write org.smultron.Smultron UpdateDocumentAutomaticallyWithoutWarning -bool YES

se scrivete YES l’avviso è disabilitato, con NO invece viene riabilitato (sì, come nei referendum ‘-_- ).

Normalmente Smultron controlla l’esistenza di una nuova versione ogni 15 secondi. Questo intervallo di tempo può essere cambiato modificando le preferenze tramite questo comando da Terminale:

defaults write org.smultron.Smultron TimeBetweenDocumentUpdateChecks 15

al posto di 15 potete scrivere un qualsiasi valore a partire da 1 e questo indicherà l’intervallo in secondi che deve intercorrere tra un controllo e l’altro.

Alcune considerazioni
Ecco fatto, ora avrete la vostra suite per il “text editing collaborativo” completamente gratuita!
Purtroppo questa mancherà di alcune importanti funzioni:

  • non sarà possibile tenere traccia delle modifiche fatte da qualcun altro, ad esempio utilizzando una colorazione delle righe diversa per i vari utenti
  • non si avrà neppure un aggiornamento in tempo reale di ciò che gli altri stanno facendo, ma sarà disponibile solo al prossimo salvataggio, il che può portare a conflitti nel caso in cui due o più persone stiano lavorando sulla stessa riga
  • non è possibile vedere le modifiche senza salvare, il che significa che spesso e volentieri vi mangerete le mani per aver salvato una cosa che non dovevate salvare! A questo, però, pone rimedio DropBox con le sue copie di backup

Per quanto riguarda il salvataggio ad intervalli regolari, Smultron non dispone di un auto salvataggio. Per sopperire a questa “carenza”, potete usare (con cautela) EverSave (gratuito) che consente di salvare ad intervalli regolari i file delle più disparate applicazioni.

Per quanto detto finora, è ovvio che il risultato ottenuto è abbastanza approssimativo e non sarà mai al livello di (ad esempio) SubEthaEdit o altri software simili che nascono col preciso intento di essere text editor collaborativi. Però è gratuito e creativo 🙂 e inoltre

è più che sufficiente in molti casi.1In realtà esiste qualche software multipiattaforma e gratuito che fa tutto ciò, come ad esempio Gobby, che però non è nativo per OS X e quindi presenta una serie di scomodità in più, sia in fase di installazione (che avviene tramite MacPorts), sia nell’utilizzo quotidiano rispetto ad un editor nativo. Esempio simile per ACE, che ha il vantaggio di essere fornito in formato binario, ma solo per PPC, anche perché l’ultimo aggiornamento è del 2006… ‘-_-
Infine esistono suite online, la più famosa di tutte è Google Docs, che consente il text editing collaborativo, ma che, come pure altri text editor collaborativi, ha lo svantaggio di essere decisamente inutile per programmatori, webdesigner ecc.. che necessitano di un software che presenti almeno la colorazione della sintassi.

’nuff said

  • Lenny

    Complimenti.
    Metodo semplice e ingegnoso.
    E poi io sono un Dropbox-addicted 😛

    Comunque, se servisse una certa scalabilità, si potrebbe passare a SVN, anche se installare un server SVN non è una cosa banale.

    Bisogna dire però che quelli di bitnami hanno facilitato la vita, creando anche lo stack SVN.
    Così il tutto si riduce a un banale installer 🙂

  • Fly

    Lui sa sempre tante cose avanzate, molto avanzate!!!

  • GiMo

    L’idea non è niente male, c’è solo forse la rottura del “ehi questo file è stato aggiornato! vuoi davvero ricaricarlo???”, a cui segue la domanda esistenziale del: mi perdo le modifiche che ho fatto dopo aver salvato o mi perdo l’aggiornamento che mi stanno mandando? oppure faccio una “conflicted copy” e dopo mergio i risultati? O forse queste cose succedono solo a me 😀

    Da fanatico di Dropbox non posso però che crucciarmi un po’ del fatto che non supporti per benino gli “hardlink” o le “junction” in uindoz (stesse cose presumo dei symlink per file oppure per cartelle intere, supportate da NTFS ma pesantemente nascoste da mr. Cancello nel suo oesse), che mi porta a dover chiudere e riaprire dropbox ogni aggiornamento dei file “nella cartella esterna”.
    Tra parentesi, solo in uindoz la cartella Cache di dropbox occupa dimensioni esorbitanti (qualche gb!!)?