Le code PERL des statistiques de l'Alliance Francophone.

Bonjour,

Il me fait plaisir de rendre disponible le code utilisé depuis 2001 pour les statistiques de l'Alliance Francophone pour le calcul distribué de FoldingAtHome.  Je rends ce code disponible pour fin éducative (pour ceux qui aimeraient y trouver des trucs en PERL).  Je rends surtout ce code disponible, parce que s'il m'arrivait un malheur un jour, il n'y a malheureusement personne pour prendre la relève. De plus, dans ma famille, il y a personnes qui connaissent l'existence de l'Alliance Francophone. Il y a surtout personnes qui auraient des compétences techniques pour savoir quoi transmettre exactement aux membres de l'Alliance Francophone pour qu'un membre puisse continuer les statistiques.

J'aurais rendu public ce code, il y a bien longtemps, si ce n'était du désordre qu'il y avait dans le code.   J'avais dû programmer différentes façons d'accéder aux statistique, suite à des modifications chez Stanford. La version 4.00 a été épurée le plus possible, mais il est certain qu'il reste encore quelques petits bouts de code inutile. Seulement le "script" Alliance.pl comporte près de 2000 lignes de code et jouer dedans comporte plus de risque de créer des bogues. Par contre, il y a des parties dont je sais que j'aurais pu optimiser, comme la partie qui lit les fichiers de configuration des mini-teams, mais cela a toujours bien fonctionné. En contre partie, j'ai passé une cure de minceur aux codes qui sert à générer les graphiques (2 fois moins de lignes de code au minimum, si ce n'est pas plus).

Historique: En 2001, j'ai eu l'idée de faire des statistiques pour l'équipe des Nerdz du Québec, puisque personnes ne le faisaient. Par la suite, l'équipe HardWare.fr de France m'a demandé de faire aussi les statistiques pour eux, ce que j'ai accepté. Ces 2 équipes ont amorcé une fusion lors de la sortie de la version 2 de FoldingAtHome, 2 ans plus tard. Depuis janvier 2001, je fais évoluer le code selon mes connaissances en PERL et selon les découvertes que j'effectuais lors de mes recherches sur le WEB. Au fils du temps, j'ai rendu le code de plus en plus autonome et maintenant, il fait le travail seul, sans aucune assistance de ma part, à part quelques exceptions. Ce n'est pas du code parfait, mais j'en suis satisfait.

Court résumé du fonctionnement du code : Il consulte 3 pages du site web de Stanford pour sauvegarder ces 3 pages sur le disque dur. Il y a ensuite découpage du texte "parsing" de ces 3 pages, pour y extraire les informations pertinentes et les ajouter à une base de données Access. Par la suite, il y a construction des pages de statistiques et le tout est envoyé, via FTP, sur le site de toTOW et le résultat est disponible ici : http://folding.fleucorp.fr/

Procédure d'installation des statistiques de l'Alliance Francophone.

1)    Installer Perl 5.6.0, J'utilise le kit d'installation complet. Ce kit installe toutes les composantes disponibles au moment de la création du kit (comme la bibliothèque GD pour les graphiques) et cela inclus aussi l'installation d'Apache. Ce kit est disponible ici sur ce site web :

  ·    http://archive.apache.org/dist/perl/win32-bin/   (Je n'ai pas encore essayé le kit de 5.8.0)
  ·    http://archive.apache.org/dist/perl/win32-bin/perl-win32-bin.exe

2)    La deuxième étape est de prendre le contenu de statistique_alliance_francophone.zip et le mettre dans le répertoire de votre choix. Cela prends tout de même un disque dur ayant au moins 1Gig d'espace libre. En ce moment, en 6 mois, j'accumule facilement 500meg de données.

3)    Aller dans "Démarrer \ Paramètres \ Panneau de configuration \ Outils d'administration \ Sources de données (ODBC)".

4)    Aller dans la section "Sources de données système" et ajouter l'accès à BD1.mdb qui se retrouve dans le répertoire où vous avez placé le code perl. Donnez-lui comme nom folding2, sinon il faudra le changer dans tous les "scripts". (cette image représente le résultat final voulu)

   

5)    Faire la même chose pour BD1_backup.

6)    Liste et description de la majorité des fichiers :

Alliance.pl
bd1.mdb
bd1_backup.mdb
bd1_vide.mdb
doublon.txt
Envois_FTP2_toTOW.pl
Envois_FTP3_toTOW.pl
erreur.txt
erreurFTP_toTOW.log
go_Alliance.bat
go_FTP_toTOW.bat
graphique1.pl
graphique2.pl
graphique3.pl
graphique4.pl
graphique5.pl
insert_meilleur.pl
insert_score.pl
liste1_toTOW.txt
liste_toTOW.txt
meilleur.pl
message.pl
message.txt
message_score.txt
mess_jgp.txt
mini1.team
pos.txt
pos1.txt
pos2.txt
purge.pl
recherche_information.pl
score2.pl
score3.pl
score4.pl
url_team.team
/vieux
/message
/images
/DATA
    "Script" de création des pages de mini-teams et de alliance.htm.
Base de données principales.
Base de données pour le transfert de données plus vieux que 90 jours.
Base de données vide.
Fichier d'erreurs lors de l'exécution de alliance.pl.
"Script" d'envoi des fichiers via le FTP. (méthode 1)
"Script" d'envoi des fichiers via le FTP. (méthode 2)
Fichier d'erreurs lors de l'exécution de alliance.pl.
Fichier d'erreurs lors de l'exécution des "scripts" FTP.
Fichier de commandes des "scripts".
Fichier de commandes FTP. (au besoin)
"Script" de création de graphique1.png.
"Script" de création de graphique2.png et de graphique2a.png.
"Script" de création de graphique3.png et de graphique3a.png.
"Script" de création de graphique4.png.
"Script" de création de graphique5.png.
"Script" d'insersion des meilleurs producteurs chez Stanford.
"Script" d'insersion des meilleures équipes chez Stanford.
Liste des fichiers qui n'ont pas été transmis lors du premier essai.
Liste des fichiers à transmettre.
"Script" de création de la page meilleur.htm.
"Script" de création de la page message.htm.
Fichier comportant tous les messages de la journée.
Fichier comportant le ou les messages venant de score2.pl.
Fichier comportant le ou les messages écrit par JGP SOLDAT.
Fichier de configuration de la "mini-team" (Quebec).
Fichier de position dans la base de données.  (Membre)
Fichier de position dans la base de données.  (Meilleures équipes)
Fichier de position dans la base de données. (Meilleurs producteurs)
"Script" de transfert des données de bd1.mdb vers bd1_backup.mdb.
"Script" de téléchargement des 3 pages de Stanford et d'insertion des membres dans la BD.
"Script" de création de la page score2.htm.
"Script" de création de la page score3.htm.
"Script" de création de la page score4.htm.
Liste des noms d'équipe à remplacer par des URL.
Répertoire où une copie des statistiques est placée.
Répertoire où sont placés les messages dont message.pl se sert pour construire sa page.
Répertoire où sont placées toutes les images à l'exception des images de statistiques.
Répertoire où sont placées les copies des pages de Stanford.

7)    A partir de maintenant, les bases de données sont accessibles par mes "scripts" ou par d'autres programmes de consultation de base de données comme : "Query Tool" et bien attendu "Microsoft Access". Ce sont des bases de données Access 97 et je n'ai aucune idée de ce qui pourrait arriver si vous avez l'idées de les convertir en Access 2000. A vous de voir…

8)    Brève description du fichier de commandes "go_Alliance.bat" : Ce "batch file" lance tous les scripts un après l'autre. S'il n'y a pas d'erreurs en ce qui concerne l'exécution de "recherche_information.pl", il exécutera tous les autres "scripts". Par la suite, il y a exécution des "scripts" d'envois via FTP. Cette section possède une fonction qui permet d'afficher l'errorlevel. Cette section, je l'ai trouvé sur internet et c'est la seule partie de mon code que je ne suis pas certain de comprendre le fonctionnement, encore aujourd'hui. Le reste du code, c'est moi qui l'ai créé. Il faudra modifier ce fichier de commande en ce qui concerne le chemin de perl.exe qui sera sûrement différent.

9)    Brève description des fichiers "pos.txt", "pos1.txt" et "pos2.txt" : Ils servent à indiquer aux différents "scripts", la dernière position dans la base de données pour leurs exécutions. Ce sont les 3 "scripts" d'insertions de données qui incrémentent leurs valeurs. Bien attendu, avec une base de données vide, le nombre inscrit dans ces fichiers est 0. Au moment où j'écris ce texte, je suis rendu à 2050 dans pos.txt. (2050 / 365 = 5 ans et 224 jours.)

10)  Cela conclu ce texte. Je ne ferais pas plus de descriptions et malheureusement dans le code, il y a que très peu de commentaires. Pour terminer, c'est seulement pour préciser que je n'ai aucune idée comment le code actuel peut réagir avec peu de données dans la base de données. Je crois avoir mis des protections, mais il n'y a aucune garantie que cela va fonctionner correctement le premier jour.

© Restriction: Ce code est exclusivement pour l'équipe de "Alliance Francophone" et peut-être utilisé par des membres de l'Alliance Francophone pour l'Alliance Francophone. Une demande devra être faite au près des représentants de l'Alliance Francophone ou de JGP SOLDAT, pour qu'une autre équipe de Folding@home puisse utiliser ce code, pour leurs statistiques. Pour le reste, le code est libre de droit pour usage personnel. Vous pouvez en extraire des parties, pour vos besoins personnels en PERL. Par contre, il ne peut pas être vendu, ni publié, ni distribué sur des médias ou par d'autres méthodes sans autorisation de l'auteur ou de représentants de l'Alliance Francophone. Le seul ZIP qui est permis pour la distribution et qui comprends l'ensemble du code est celui sur le site où sont situées les statistiques de l'Alliance Francophone. En date du 15 juin 2007, le seul zip autorisé est celui situé ici : (http://folding.fleucorp.fr/statistique_alliance_francophone.zip).

© Copywrite: This code for the team of "Alliance Francophone" and perhaps is exclusively used by members of "Alliance Francophone" for "Alliance Francophone". A request will have to be made with close to the representatives of "Alliance Francophone" or JGP SOLDAT, so that another team of Folding@home can use this code, for their statistics. For the remainder, the code is free of right for personal use. You can extract some from the parts, for your personal requirements in Perl. On the other hand, it can be sold, neither published, nor distributed on media or by other methods without authorization of the author or representatives of "Alliance Francophone". The only ZIP which is allowed for the distribution and which include the whole of the code is that on the site where the statistics of "Alliance Francophone" are located. On June 15, 2007, only the zip authorized is that located here : (http://folding.fleucorp.fr/statistique_alliance_francophone.zip).

JGP SOLDAT
Le 15 juin 2007.