URL: https://linuxfr.org/users/octplane/journaux/realisation-d-un-site-de-paste-web-2-0 Title: Réalisation d'un site de Paste web 2.0 Authors: Octplane Date: 2012年07月06日T16:30:40+02:00 License: CC By-SA Tags: ruby, sinatra et paste Score: 12 Haha, le web 2.0, ca attire toujours les foules, hein ? Bienvenue ici, cher journal, La semaine dernière, ou était-ce celle d'avant, je t'ai parlé de la [détection de la syntaxe d'un langage informatique via un analyseur statistique naïf de type Bayésien](https://linuxfr.org/users/octplane/journaux/detection-de-la-syntaxe-d-un-langage-informatique-via-un-analyseur-statistique-naif-de-type-bayesien), qui était mon article d'introduction sur mon pet-project actuel. J'ai un peu avancé et j'ai désormais un prototype à te faire essayer, si tu veux. Autant dire que comme j'ai découvert que `Github` avait publié dans la lib `linguist` du code qui faisait exactement ce que je voulais faire, j'ai jeté mon prototype en `Go` pour me mettre à faire du ruby. Evidemment, c'est un peu facile de pas coder soi-même et d'utiliser un truc que des gens ont fait avant, mais comme j'ai un réel objectif et que mon code donnait des résultats assez médiocre, j'ai préféré basculer sur la solution `linguist`: * Leur parseur bayesien utilise, tel que décrit dans les commentaires de ma précédente note, uniquement des "mot-clés" et c'est pas mal * Ca "juste marche" et ça ne consomme pas 200Mo de ram pour charger le parseur Bon évidemment, c'est du `ruby`, donc ça consomme un peu de cpu, de la RAM et c'est pas spécialement rapide. Le prototype est testable sur [uu.zoy.org](http://uu.zoy.org/) (appréciez le sombre jeu de mot). Pour le moment, le code est tout pourrave et ne fait que faire la glue entre un petit site web en Sinatra et la lib Linguist. Le code source de ce truc est accessible sur [github/ruby-clever-pastie](https://github.com/octplane/ruby-clever-pastie). Vous pouvez coller tout ce que vous voulez dedans, c'est pas loggé, et ca ne paste pas encore. Par contre, ca essaye de deviner ce que vous avez collé. Vous verrez que de manière générale, c'est bien (mais pas top). Ca me suffit. Ce qui est chouette, c'est la liste de ce que je voudrais faire ensuite avec ! En vrac : * Permettre le paste de n'importe quoi avec une colorisation suivant le langage détecté/choisi * Sauver le couple (ou l'objet) paste-langage dans une base noSQL (possiblement sur le fs) * Permettre de changer le langage depuis un paste au cas ou le détecteur a faux (et sauver le changement sur le fs) * Rajouter une api qui permet d'uploader uniquement les tokens d'un "fichier" et qui retourne le langage detecté * Rajouter du javascript pour permettre de faire des paste cryptés dont la clef est stockée chez le client dans un # auquel le serveur n'a pas accès * Rajouter des critères d'expiration du paste * Ecrire un client OSX qui permet l'upload via un raccourci système (en fait, y a dejà [github/cloudBoard](https://github.com/octplane/cloudBoard) que j'ai écris y a un bout de temps, mais il paste sur un site pas terrible). * Ecrire de quoi le rendre compatible avec Pastoob * Faire du SSL un jour (ou peut être une nuit)

AltStyle によって変換されたページ (->オリジナル) /