mardi 4 mai 2010

Bespin

Mozilla Labs est un lieu de trouvailles fort intéressantes. Mozilla y met à l'essai différents projets qui gravitent autour de ses solutions actuelles. L'un d'eux est Bespin, un éditeur avancé qui s'intègre dans votre site web.

Vous pouvez l'essayer dès maintenant en créant un compte sur le site de démonstration du projet :

https://bespin.mozillalabs.com/

Bespin est composé de deux parties. L'une, en HTML5 et Python, s'intègre dans votre page web (embedded). L'autre, en Python avec des composantes WSGI et l'utilisation de SproutCore, agit comme serveur. Si vous voulez controller l'entièreté de l'implantation, vous devrez avoir les deux composantes. Ce qui vous permettra de réaliser quelque chose comme Sketch Processing, l'environnement Processing maintenant dans votre navigateur.

Donc, Bespin est un éditeur de code à l'heure de l'infonualgique.

Regardons le tout de plus près.

Vous pouvez obtenir la dernière version du code du serveur sur le dépôt mercurial de Mozilla, tout comme la version client. Comme à l'habitude, le README est votre ami. Généralement, le code de Mozilla est touffu, mais bien fait. Il ne faut pas hésiter à y plonger, surtout pour des projets du lab, afin de compléter la documentation. Si vous ne désirez que regarder le code, vous pouvez télécharger la version zippée ou le tarball de la dernière version. Sinon, il vous faudra Mercurial. Vous devez également avoir Python 2.5 ou 2.6.

L'installation suivante est effectuée sur Mac OS X. Elle devrait être similaire sur un bon système d'exploitation (Linux, BSD, *nix). Assurez-vous d'être connecté à internet avant de lancer le tout, car certains fichiers seront téléchargés du web. Vous pouvez nommer le répertoire comme bon vous semble, mais n'utilisez ni espace, ni caractère étendu. C'est de toute façon une mauvaise idée en général et l'initialisation de Bespin va planter si vous le faites dans ce cas particulier.

mkdir -p ~/src/mozilla
cd ~/src/mozilla
hg clone http://hg.mozilla.org/labs/bespinclient/
hg clone http://hg.mozilla.org/labs/bespinserver/
cd bespinclient

Vous avez maintenant le code source sur votre ordinateur. Il faut initialiser l'environnement la première fois. Pour ce faire :

python bootstrap.py --no-site-packages
source bin/activate
paver install_server
paver create_db

Si aucune erreur ne s'est produite, vous avez maintenant un serveur de développement fonctionnel. Pour le démarrer :

paver start

Ouvrez un navigateur décent (Chrome, Firefox, Safari) et dirigez-le vers :

http://127.0.0.1:4020/editor

Vous devriez avoir quelque chose de similaire à l'écran suivant :



Voilà, il ne reste plus qu'à écrire un plugiciel afin de supporter le langage que vous désirez utiliser. Bespin contient quelques plugiciels en développement. Il est également possible d'adapter du code afin d'en créer un. C'est que Sketch Processing a fait : le langage Processing avait déjà été porté en JavaScript.

Notez également que le code contient également certains bonificateurs de syntaxe dans :

bespinclient/src/bespin-supported/lib/bespin/syntax/simple

Bonne découverte!