Affichage des articles dont le libellé est Perl. Afficher tous les articles
Affichage des articles dont le libellé est Perl. Afficher tous les articles

6/03/2008

Installation de Wikicalc : le plus beau des tableurs OpenSource

Comme je l'ai indiqué dans mon dernier poste : WikiCalc est un tableur collaboratif fonctionnant sur le principe du wiki. Il est complètement écrit en perl. Pour l'installer, rien de plus simple, il suffit de commencer par installer les outils nécessaires sur sa bonne vieille Debian :
apt-get install apache2 libapache2-mod-perl2
Puis de télécharger les sources : wikicalc-1-0.tar.gz. Ensuite peut commencer l'installation proprement dite :
cd /var/www
tar xvzf wikicalc-1-0.tar.gz
ln -s wikicalc-1-0 wikicalc

Reste encore à rendre Wikicalc accessible depuis votre serveur Web : par rapport à la configurationi par défaut, il suffit d'y ajouter :



NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost

DocumentRoot /var/www/wikicalc/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/wikicalc/>
Options Indexes FollowSymLinks MultiViews ExecCGI
AddHandler cgi-script .cgi .pl
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>



On charge le module perl :
a2enmod perl
/etc/init.d/apache2 restart

Pour finir l'installation, rendez-vous sur http://wikicalc.monsite.com/wikicalccgi.pl et suivez les instructions....

Maintenant à vous de jouer

5/25/2008

Connaissez-vous cet homme ?

Cet homme s'appelle Dan Bricklin, il a écrit le programme Visicalc. Comment ça vous ne connaissez pas Visicalc ??? Eh bien, c'est l'ancêtre d'Excel ou de Calc (OpenOffice)... Mais contrairement à Bill, Dan a préféré ne pas copyrighter son oeuvre... Merci Dan ;-)

Pourquoi vous parler de Dan Bricklin ? Simplement parce qu'il est en train de développer un super outil, toujours dans la même optique : un tableur collaboratif nommé Wikicalc. Je l'utilise pour les notes de nos élèves et y reporter les notes avec mes collègues... Adieu les tableaux Excels qu'on ne peut ouvrir qu'en lecture seule parce que votre collègue l'a modifié le matin mais a oublié de le fermer... En plus cet outil a le bon goût d'être Open Source et de reposer sur Perl (un langage que j'adore donc je le souligne ;-) J'espère que beaucoup d'autres personnes vont participer au développement de cet outil, qui je l'espère va concurrencer et peut être remplacer Google Docs... Révons d'un monde totalement Open Source ;-) Amusez-vous bien avec ce nouvel outil promis je l'espère à un grand avenir

12/09/2007

Perl et le CPAN

Perl est un langage exceptionnel pour sa richesse et ses fonctionnalités. Ce qui fait le gros plus de ce langage ce sont tous les modules que vous pouvez trouver sur le site du CPAN, qui vous permettront de créer des robots pour le web, des scripts pour gérer vos messages et autres... Pour l'instant je ne faisais mes installation qu'à partir de ma distribution préférée par l'intermédiaire d'un apt-get install ... Mais cette solution n'est pas optimale ;-) au détour d'une page web, j'ai trouvé cette astuce que je m'empresse de partager avec vous :

sudo perl -MCPAN -eshell


Maintenant amusez-vous avec Perl et surtout publiez vos modules sur CPAN pour que toute la communauté puisse en profiter ;-)


9/22/2006

Linux:: Comment comparer deux listes en Perl

Je classe ce petit howto dans ma catégorie Linux, parce que c'est le seul véritable envirronnement pour développer du code. Quand Windows n'est fourni par défaut qu'avec Wordpad ou Notepad, Linux vient déjà avec des éditeurs de textes puissant en ligne de commande pour développer (Vim par exemple). Donc revenons à nos moutons: Je développe en ce moment un petit programme où il me faut comparer deux listes et trouver et identifier les éléments en commun (c'est le genre de trucs qu'on fait tous les jours en bioinformatiques :-) . Comme je manipule des chaines de caractères, j'ai fini par me tourner vers Perl. Perl est LE LANGAGE de script pour gérer les lignes de caractère. Une implémentation naïve de ce problème est quadratique. Mais si vous utilisez une table de hachage... alors ça devient linéaire YOUPI YOUPI YA: votre liste de 100000 éléments va pouvoir enfin être analysé. Voici la commande à utiliser:


my %seen;
my @common = grep {$seen{$_}++} @list_1 , @list_2;



Par contre cela nécessite que les listes une et deux ne comporte pas de doublé. Voyons un peu comment ça marche. J'utilise la fonction grep pour créer un filtre et je lis à la suite les deux listes. J'initialise d'abord ma petite table de hash en une table nulle. Lorsque je parcours les listes avec $_, lorsque je rencontre pour la première fois je rencontre un élément je le mets dans la table, mais comme la table est initialisée à faux à 0 au début, l'élément est filtré! Mais par post incrémentation je garde une trace de l'élément (le fameux ++). Lorsque l'élément apparait pour la seconde fois:
$seen{$_} est non nul et donc le filtre est passif. Vous récupérer enfin ce beau résultat dans votre table @common. Si je ne me trompe pas cette comparaison des deux tables est bien linéaire.