Zend Framework : un nouveau site pour la communauté française des utilisateurs.

Bonjour,
De retour de vacances, je mets au propre quelques notes informatiques glanées tout au long de l’été. Utilisateur du Zend Framework depuis quelques semaines (pour une application en test pour le moment), j’ai découvert dernièrement que la communauté française des utilisateurs du Zend Framework s’organisait autour d’un nouveau site web, très bien fait et plein d’informations. Un très bon forum, très professionnel, permet de poser des questions simples ou complexes suivant son niveau de pratique du Zend Framework.
Le Zend Framework (ZF) est un projet PHP créé par la société Zend, grande prêtresse du langage PHP dans le monde. Le ZF est un ensemble de librairies permettant d’accélérer le développement d’applications PHP professionnel. Il permet aux entreprises d’appuyer leurs outils sur une infrastructure robuste orienté MVC (modèle, vue, contrôleur). En terme de sécurité, l’utilisation du ZF entraine des gains importants, notamment au niveau des injections SQL. Comme tous les frameworks, ZF n’est cependant pas très simple au début, il faut bien comprendre le système MVC avant tout.
Mais un signe ne trompe pas, la communauté ZF augmente et en mai 2007, l’association française des utilisateurs de PHP, a organisé une présentation ZF dont la vidéo (amateur ?) est en ligne sur http://php.developpez.tv. Certaines applications « grand public » utilisent ZF et un premier CMS vient de voir le jour : http://zfcms.tebe.ch (démonstration de l’outil de gestion : http://zfcms.tebe.ch/admin/ avec identifiant/mot de passe : admin/admin).
ZF est un framework à suivre dans l’environnement PHP.

Stéphane.
PS : un tutoriel plutôt bien fait existe sur le site : developpez.com

Un moteur de recherche de codes source ?

Bonjour,
Le moteur de recherche Krugle annonce pour septembre 2007 une version entreprise de son moteur de recherche. Il s’agit donc d’un moteur de recherche qui indexe le contenu des codes sources déposés dans un forum ou dans des pages web (il y en aurait 20 millions de fichiers de code source sur le web selon Krugle, source : 01net). Il existe aussi Google Code Search (version en français) issu du « Labs » Californien de Google. Encore en développement il pourrait s’agir d’une sources non négligeable pour les développeurs. Si l’on veut recherche des bouts de code sur la commande addslashes en PHP, il suffit de taper lang:php addslashes. Dans les résultats de recherche, le type de licence du source trouvé est indiqué (GPL, LGPL, BSD, etc.). A vos codes…et bonne fin de semaine. Stéphane.

Un peu de javascript

Bonjour,
Il est important, parfois, de revenir à la programmation directe : dans le « coeur du code » (utilisez Zend, PDO…, c’est super mais bon l’assemblage au bout d’un moment…). Au cours d’un développement ou plutôt d’un patchage d’ICEberg, j’ai du surmonter le problème du document.getSelection(); en javascript qui ne fonctionne qu’avec les navigateurs Mozilliesque (Firefox, Netscape, Mozilla). document.getSelection(); n’est donc pas compatible avec IE. Je suis dans une application en PHP et j’ai besoin du document.getSelection(); pour transmettre via des variables une selection de texte éffectuée par l’internaute sur la page consultée pour l’injecter ensuite dans un formulaire. Si IE n’existait pas, nous pourrions nous contenter de :

location.href='formAK.php/user?action=add& description='+encodeURIComponent(document.getSelection())+';

Seulement voilà, il y a IE et document.getSelection(); renvoit une belle erreur javascript. Mais il y a une petite solution très simple qui permet de rendre cette action compatible quelque soit votre navigateur préféré (sous MacOS X, cela fonctionne aussi). Plutôt que de détecter le navigateur (son nom via : navigator.appName), il plus intéressant de détecter la méthode (ou l’objet) dont le fonctionement avec les navigateurs n’est pas possible (ou mal gérée). Ainsi, avec un système conditionnel classique et une nouvelle variable « methodeselection » :


if (document.getSelection) methodeselection = document.getSelection();
else if (document.selection) methodeselection = document.selection.createRange().text;
else return;

Préparé pour une page web, nous pouvons écrire :

function envoyer_une_selection_quelquepart() {
if (document.getSelection) sel = document.getSelection();
else if (document.selection) sel = document.selection.createRange().text;
else return;
location.href='http://www.monsite.fr/?action=ajouteramonforumulaire&
description='+encodeURIComponent(sel)+';
}

Bonne fin de semaine,
Stéphane.

Les mains dans Tomcat, Cocoon, SDX, etc.

Bonsoir,
Il est des jours qui sont trop courts… Je suis depuis deux jours dans l’installation d’un serveur pour le pôle HSTL et le CN2SV sous Apache/Tomcat6 faisant tourner en parallèle SDX, Cocoon, METS Navigator. Sous Tomcat 6.0.10 et JVM 1.5 ces briques semblent bien tenir la route. Cependant, chez moi, Cocoon n’est pas encore très stable, mais cela viendra (désolé Got).
L’idée principale est de proposer une plate-forme applicative simple, offrant à nos producteurs la consultation d’AIP stockés soit en EAD soit en METS (voir MODS que j’expérimente en diffusion via un outil OAI-PMH, mais là c’est une autre histoire, et c’est très neuf). Je suis encore septique sur la pérennité à long terme des frameworks java tant l’empilement des couches (ou briques) technologiques semble fragile. Je compare cela à une application « classique » MySQL+PHP tournant sous LA »mp ». L’avenir nous le dira…
Stéphane.

De la pérennité des applications web : les 10 ans de DBMAN

Bonjour,

Dans les métiers du Web et des bases de données, il y a parfois des petits miracles ! Je veux dire que les logiciels clients et les applications Web sont souvent considérés comme extrêmement fragiles et que l’évolution technologique les condamnent très rapidement. Cette impression est accentuée par le « vieillissement » de leurs interfaces dû aux modes successives que nous avons traversé (j’entends par là, le Web 1.0, le tout Javascript, le Web 2.0, etc.). Au milieu de tout ça, et du grand « plongeon » vers plus d’interaction entre l’internaute et les sites Web (je préfère d’ailleurs l’expression de plateformes Web, tant « sites web » paraît ancien, cf. le Web 1.0), il est des applications Web qui restent en place, elle évoluent peu, et s’appuient – encore aujourd’hui – sur des langages de programmation et des infrastructures simples. Il en est une qui me tient particulièrement à coeur car elle fut pour moi l’une des briques qui m’a permis de comprendre qu’il était important de mélanger les langages, de tordre les technologies : il s’agit de DBMAN ou Database Administrator.

DBMAN est un système de base de données écrit en langage Perl et qui utilise un simple fichier texte pour le stockage des données. En cette année 2007, DBMAN a 10 ans ! Oui, 10 ans. N’est-ce pas impressionnant tout de même ? J’ai découvert DBMAN grâce à O. Mougel dans le cadre de la réalisation du site du GIS Réseau Aquitain Formation et Information pour le Développement RAFID. Puis j’ai utilisé DBMAN pour plein de choses : Mon DEA d’histoire et d’archéologie médiévale, les bases de données de la filière documentation d’entreprise de l’IUT de Bordeaux où j’étais moniteur puis chargé de cours, Pour la bibliothèque d’Ausonius, pour le GIS Réseau Amérique Latine qui va être l’un des piliers de l’Institut des Amériques, etc. J’ai décliné cette application sous toutes ces formes, j’ai même écrit un plugin en Perl pour faire afficher des objets VRML à la place des notices classiques d’une base de données. Vous le voyez, DBMAN est pierre importante dans mon parcours, puis le couple PHP+MySQL est arrivé est la suite est connue. Mais aujourd’hui, certains DBMAN mis en place en 1997 fonctionnent toujours, ceux utilisés pour mon travail de Maîtrise/DEA par exemple autour de la restitution de la maison forte du Boisset.

Le 12 septembre 2007, DBMAN aura 10 ans. Je tenais, dans un billet de ce blog, tirer mon chapeau à A. Krohn de Gossamer Threads Inc. qui a créé DBMAN et souhaiter longue vie à cette application toute simple mais particulièrement géniale de gestion de bases de données. A l’heure d’AJAX, PHP6, XSTL et Ruby on Rail et des outils web 2.0, j’ai aussi envie de dire : vive le Perl !

MathML et reconnaissance optique de formules mathématiques

Bonjour,
Après une semaine passée à installer le DataCenter du pôle HSTL de mon labo, J’ai travaillé hier sur l’OCéRisation de formules de mathématiques. Après un peu de veille, j’ai vu que cela n’était pas très facile et que les logiciels commerciaux classiques ne le permettait pas.

J’ai cependant trouvé une suite d’outil : Infty Project for Mathematical Document Recognition and Analysis, User Interface,Accessibility of Scientific Documents. Il s’agit d’une suite d’outils créé par Masakazu Suzuki (Kyushu University, Japon). J’ai testé InftyEditor et à première vue c’est très puissant. Cependant le module d’acquisition depuis un scanner ne fonctionne pas sur mon poste (j’ai pourtant un très bon scanner). Il faut donc scanner les documents indépendement du proscessus d’ORC. Autre limite, les formats possibles en entrée de chaîne : seul le TIFF binaire non compressé est possible. C’est un peu dommage car il semble que d’autres formats soient acceptés (PNG, JPEG, GIF), mais il s’agit peut-être un problème local venant de mes images.

L’intérêt principal reste la puissance de l’ORC et les formats de sortie : XML pour InftyEditor, LaTeX, MathML, PDF, etc. Mais le GROS problème c’est que les accents français ne sont pas gérés. C’est bien dommage. Mais c’est un outil à suivre…

Stéphane.

OAI-PMH v2.0 et XSLT Style Sheet

Bonjour,

J’explore en ce moment le monde de l’OAI-PMH. J’ai développé pour mon équipe un entrepôt OAI-PMH en m’appuyant sur l’outil – très pratique et simple – de H. Stamerjohanns : phpoai2 Data Provider. Cet outil utilise la brique PEAR et PostgreSQL ou MySQL pour le stockage des références (mais grâce à PEAR il est facile de le lier à autre chose).

L’entrepôt de mon laboratoire diffuse des références et donc donne accès à des sources historiques : ouvrages rares, manuscrits, documents scientifiques, carnets de notes de savants, etc. Le protocole OAI-PMH, finalement très simple, intéresse un très grand nombre d’institution de recherche de part le monde (je ne me lancerai pas là dans un inventaire à la Prévert) et il semble être le meilleur protocole de diffusion de références et de données grâce à XML. L’XMLisation de ce protocole permet la répartition des charges entre entrepôts et fournisseurs de services.

Il est possible de donner un regard plus « humain » au flux OAI à l’aide la feuille de style XSL développée par nos amis du GNU EPrints project. Elle est très pratique cette feuille XSL car elle permet de transformer en XHTML les flux issus des verbes OAI. Cela permet de créer une visualisation du flux XML dans un simple navigateur, les moteurs de recherche s’en régaleront, un seul entrepôt, un flux de données, le moissonnage classique par OAIster et en plus, la consultation web classique, voir l’indexation par des moteurs de recherche « standards » ou très locaux (htdig par exemple).

Stéphane.

MathML

Bonjour,
Mes activités sont très « 2.0 » (et complexes) en ce moment : je suis pris entre le temps de rédaction du bilan d’activité du CN2SV et par la mise en place d’entrepôt OAI pour le CRHST mais aussi, par la vie des plateformes web du pôle HSTL, je n’ai plus une minute pour ce blog depuis 8 jours. De plus, les deux derniers billets sortent un peu du thème original de se blog (racontrer, au jour le jour, les aventures d’un ingénieur d’études qui fait du web depuis 1995). Je reviens vers le coeur du métier avec un court (trop court) billet sur une grammaire XML que j’utilise pour la publication de sources comportant des formules mathématiques : le MathML.

1) Le MathML 2.0 : Qu’est-ce ?

Il s’agit langage dérivé du XML permettant d’afficher et d’assurer le traitement de formules de mathématique sur le web. Depuis le 21 février 2001, MathML est devenu une recommandation du W3C.

2) Comment lire le MathML ?

L’un des stagiaires passé au CRHST en 2005 a résumé les solutions de lecture dans une page très bien faite. J’en reprends ici les points principaux.

Certaines pages de ce site requièrent l’affichage d’expressions scientifiques (équations, fractions, symboles mathématiques…).
Utiliser à cet effet des images montre des limites : elles ne sont pas forcément bien dimensionnées ni bien ajustées par rapport au texte. De plus, cela est très lourd à gérer de devoir insérer une image dès la moindre fraction.
La solution est d’utiliser le langage MathML, langage dérivé du XML et recommandé par le W3C. Les navigateurs compatibles devraient comprendre ce langage. Pour Internet Explorer, des plug-in existent (un plug-in est un programme qui apporte de nouvelles fonctionnalités à un logiciel existant).
Le tableau ci-dessous présente la compatibilité des navigateurs les plus utilisés.

  Internet Explorer Netscape Navigator Mozilla / Firefox Opéra Safari Amaya
Windows 5.0 & Techexplorer
5.5 & MathPlayer | Techexplorer
6.0 & MathPlayer | Techexplorer
6.1 & Techexplorer
7.0 ou +
0.9.9 ou + / toute version 7.2 NON pas de support Voir ci-
dessous
Mac OS 5.0 & Techexplorer 6.1 & Techexplorer
7.1 ou +
0.9.9 ou + / toute version 7.2 NON NON
Linux pas de support 6.1 & Techexplorer
7.0 ou +
0.9.9 ou + / toute version 6.0 NON pas de support

Quelques précisions :
1. MathPlayer compense utilement la défaillance d’Internet Explorer ; il est diffusé gratuitement par Design Science.
2. Techexplorer est un plug-in qui s’ajoute à la plupart des navigateurs, sur Windows, Mac et Linux ; anciennement développé par IBM, il est désormais distribué gratuitement par Integre pour un usage personnel. Voir ici pour plus d’informations.
3. Amaya est l’éditeur et navigateur Web officiel du W3C qui permet d’éditer très simplement des pages contenant du texte, des graphiques et des expressions mathématiques (en MathML). Il est disponible pour Windows 98, NT/2000/XP, Unix, Linux et MacOSX. Pour plus d’informations, aller sur le site officiel d’Amaya ou sur une page en français.

Concernant Internet Explorer,vous pouvez télécharger MathPlayer pour Windows.
Bien que nous ne vous le recommandions vraiment pas (risques d’erreurs à l’affichage du MathML), vous pouvez aussi télécharger Techexplorer pour Windows, ou Techexplorer pour Mac OS 8.6 à 9.2 et Mac OS X. Mais découvrir Mozilla demeure encore la meilleure solution !

Polices scientifiques pour Mozilla/Netscape

Afin que les navigateurs compatibles MathML affichent correctement les expressions mathématiques, vous devez éventuellement installer sur votre poste quelques polices de caractères scientifiques.
N.B : Si vous utilisez Internet Explorer avec MathPlayer sous Windows, l’installation de polices supplémentaires n’est pas nécessaire.

Pour plus de détails, voir la page dédiée aux polices pour MathML sur le site de Mozilla.

3) Ca ressemble à quoi ?

Je viens de terminer la relecture de la théorie mathématique d’André-Marie Ampère qui est encodée en MathML et en ligne sur le site @.ampère.

Joyeuses fêtes de fin d’année !

Stéphane.

Utilisation massive de la librairie GD pour PHP : les lettres de Stephen Gray dans le site @.ampere

Bonjour,
Dans le site @.ampere (direction ; C. Blondel, CNRS) dont je suis le webmaster, j’ai placé des lettres de Stephen Gray (voir dans Wikipedia), pour le zoom j’utilise la GD de PHP, cette librairie est connue mais elle rend bien des services quoiqu’un peu lente. Je l’utilise pour le zoom 100% 75% 50% 25% mais aussi dans le site du CN2SV pour le génération d’images « vignettes » à la volée. La GD a été intégré à PHP depuis la version 4.3 et commence à faire du JPEG2000. En complément, il y a surtout la fonction « iptcparse » qui permet de lire les méta-données IPTC et même de les mettre à jour avec « iptcembed ».
Stéphane.

Diffusion de sources historiques via le protocole OAI-PMH (partie 2)

Bonjour,
Après avoir testé en interne mon serveur OAI-PMH je me suis lancé !
Je l’ai soumis à OAIster qui semble être le plus grand portail d’accès à des ressources OAI…. Réactivité maximale, 24h après la soumission, me voila délivrant des ressources issues des sites du Centre de Recherche en Histoire des Sciences et des Techniques via de l’OAI-PMH.

Mon serveur OAI-PMH est développé en PHP et utilise DOM, plus une petite base de données très simple tournant sous PostgreSQL qui reprend les informations issues de mon outil ICEberg. L’idée est d’avoir une « web-application » minimale à maintenir dans le futur (l’un des clés de la pérennisation des données par ailleurs).

Diffusion de sources historiques via le protocole OAI-PMH (partie 1)

Bonsoir,
La mise au point du serveur OAI-PMH du CRHST est presque terminée. Il me manque la mise en place du ResumptionToken qui n’est d’ailleurs pas très simple a réaliser. J’ai utilisé PHP, mon langage préféré, pour le monter. En s’appuyant sur DOM XML, c’est très facile… donc il est en ligne : http://www.crhst.cnrs.fr/esources/
Moissonnez !
Stéphane.

ICEberg 4 sur les rails.

Bonsoir,

Je profite des vacances pour avancer la mise en place d’ICEberg 4 ! Les tests avancent plutôt bien : il est sûr que préparer la nouvelle version de mon gestionnaire de corpus numériques au bord d’une piscine c’est assez génial : un plouf entre deux class php. Mes deux compagnons de programmation de cette nouvelle version : Romain et Frédéric ont maintenant terminé leur travail, j’ai pris la suite pour assembler les blocs, débuguer, relire, reprendre, améliorer le tout. ICEberg 4 s’appuyera sur MySQL et PHP 4 ou PHP 5 (nous avons prévu les deux versions au cas ou…la version « tout XML » : ICEbergXML reste toujours disponible…). La partie « berg » est nettement plus opérationnelle : les chercheurs maitrisant l’informatisation de leurs propres corpus vont être contents ! la partie ICE reste dans la même idée que celle de la version 3 : nous n’avons changé que de petites choses sur le plan de l’interface. Cependant, le code a été totalement ré-écrit par Frédéric avec des class en PHP 5.

L’autre jour, un chercheur me demandait pourquoi j’avais fait un outil « propre » alors qu’il en existe plein sur le web tel que PLEADE, ARCANE, etc. Je lui est dit qu’il arrive un moment ou il faut développer un outil dédié pour répondre à une demande forte qui apparaît. Il existe Photoshop, pourtant des programmeurs ont développé GIMP ! ICEberg répond à un besoin : la mise en ligne et la gestion de paquets de documents numériques (d’archives, issus de documents actuels, des photos, bref tout type de documents numérisés) en utilisant un gestionnaire de base de données « libre » ou du XML, rien de plus. J’ajoutais qu’il n’y a pas de moteur recherche puissant dans ICEberg, j’en prépare un avec l’aide du CNRS mais il ne sera pas dans ICEberg, mais il fonctionnera au-dessus ; balayant ainsi l’ensemble des corpus numériques, même chose pour le module OAI d’ICEberg.
Ainsi, ICEberg tend toujours vers le plus simple : des modules y sont ajoutés, mais toujours de façon annexe, sans toucher au noyau. Mais de temps en temps, nous réécrivons une nouvelle version de la partie « dure » d’ICEberg : nous y sommes.

Je m’en retour à mon code :-). Bonne soirée, Stéphane.

ICEberg 4 béta.

Bonjour, Nous allons sortir ICEberg 4.0.1 en version béta avec une démo sur le serveur du CRHST (http://www.crhst.cnrs.fr). ICEberg, le produit phare qui permet à nos corpus numériques de tourner a été totalement re-programmé par notre équipe (Frédéric Costantini, Romain Mindchella, sous ma direction et avec l’aide et les conseils de Lucie Secchiaroli, Delphine Usal, Christine Blondel, Marie-Hélene Wronesky et Françoise Cornière). Il est compatible avec PHP 5 et MySQL 4. D’un simple ensemble de scripts écrit en PHP, ICEberg est devenu un CMS ou plutôt un CM2S : Content Management System for Science.

Cette refonte d’ICEberg va d’ailleurs aller plus loin, ICEberg 4.0 changera de nom en octobre 2006 et il sera diffusé sous licence CeCILL. Car le concept de l’outil a évolué.

Stéphane.

Schéma XMP / IPTC parseur

Bonsoir,

Dans le développement du CN2SV, j’ai programmé un parser XMP, IPTC à partir de la librairie « PHP JPEG Metadata Toolkit » de E. Hunter. Le schéma XMP est prometteur même s’il est lié à Adobe. Mais la programmation d’un programme en php lisant les méta-données IPTC est facile et la technologie est mure aujourd’hui. L’IPTC a adopté XMP comme schéma de la toute dernière version de son standard de description des photographies : IPTC Core (http://www.iptc.org/IPTC4XMP/). Avec l’utilisation massive des appareils photos numériques, qui truffent leurs images de méta-données, il est temps d’offrir aux utilisateurs d’intergiciel (middlewares) en php, jsp, java, asp, la possibilité de lire ces données et de les enrichir.

Un simple parseur IPTC en PHP (PHP 3 >= 3.0.6, PHP 4, PHP 5) :

 function output_iptc_data( $image_path ) { 
   $size = getimagesize ( $image_path, $info);      
    if(is_array($info)) {        
     $iptc = iptcparse($info["APP13"]);        
     foreach (array_keys($iptc) as $s) {            
     $c = count ($iptc[$s]);            
      for ($i=0; $i <$c; $i++) {            
       echo $s.' = '.$iptc[$s][$i].' - ';           
      }        
     }    
    } 
  }

(source : site www.php.net)

Nous allons intégrer un lecteur/editeur IPTC/XMP à Iceberg. Je tiens d’ailleurs à remercier Romain et Frédéric, les deux développeurs contractuels du CN2SV qui font un travail formidable.

A bientôt,
Stéphane.

« IPTC Core » est la propriété intellectuelle de IPTC. XMP, Photoshop and Creative Suite (CS) sont des marques commerciales de la société Adobe Systems Inc.

Notes scientifiques électroniques. Comment anoter des textes électroniques sur le web. (volet technique n°1)

bonjour, Tout le monde développe son outil de publication en ligne (à base de CMS le plus souvant, d’XML plus rarement). La question des notes de bas de pages ou de fin de documents et récurente : tout les webmestres, développeurs IT, chefs de projet web se sont vu poser LA question : « Et pour mes notes ? je fais comment ? »

Dans le cadre de la boite à outils ICEberg, que j’ai développé pour le CNRS au CRHST, nous proposons maintenant des notes dans le texte intégral (pour les textes au format « mots ») sous la forme d’un sous-bloc de texte entouré de BBcode. S’il faut un jour nettoyer le texte numérique des notes c’est ainsi très facile (un petit programme Perl ou Php avec un ereg_replace et le tour est joué). Cette fonction est disponible dans la nouvelle version d’ICEberg. Elle est en court de test et sera présentée en janvier 2007 et déployée sur les sites fonctionnant déjà sous la version 3.0 BD et 1.5 XML (qui changera de nom pour l’occasion afin d’unifier les outils et les versions).

Il s’agit de faire très simple une fois encore. J’ai vu tellement de système de notes complexe que finalement, nous nous sommes orienté sur le plus simple : du BBcode pour ne pas effrayer le chercheur/client, du parsage pour la numérotation automatique, des bullets pour la consultation et le tour est joué. Le tout dans le respect des standards du W3C.
Notement-votre,
Stéphane.

ICEberg : présentation générale

ICEberg est un outil de gestion de corpus scientifiques en ligne. Il permet la mise sur internet de collections de documents numériques en séparant la nature du document de son traitement scientifique (qui peut-être réalisé par d’autres outils). Ce n’est pas un CMS (tel que SPIP, Plone, etc.) ni un outil de publication ou d’édition en ligne (avec une charte éditoriale et des styles par exemple), c’est un gestionnaire simple de données textes ou images (jpg, png ou gif), mais il est composé de deux blocs : ICE (partie de navigation) et berg (partie de gestion). Il est programmé en PHP et fonctionnant avec MySQL. Cet outil a une histoire qui est liée à mon parcours professionnel. Vous pouvez en savoir plus avec le powerpoint suivant sur les dernières infos d’ICEberg : http://halshs.ccsd.cnrs.fr/halshs-00006568.

1) L’histoire d’ICEberg : histoire de l’outil et parcours de fin d’étudiant

En 1997, au cours de ma maîtrise d’histoire (UMR Ausonius – Service Informatique de Recherche en Archéologie dépendant de l’Université de Bordeaux 3 et du CNRS), j’ai été confronté à la question de la mise en ligne de mes sources historiques. Très rapidement et sous la direction de Robert Vergnieux et de Gérard Louise, j’ai du trouver un outil simple de gestion de base de données en ligne (voir : http://www-sira.u-bordeaux3.fr/boisset/). Dans mon travail de maîtrise et de DEA j’ai travaillé avec le logiciel DBMAN créé par Gossamer Threads Inc. DBMAN est outil de gestion de fichier .txt écrit en perl. DBMAN est un shareware. Il est cependant limité car il ne permet pas de faire du relationnel entre les bases de données. J’ai donc commencé à concevoir un outil propre s’appuyant sur un modèle de table très simple dont le but fut de séparer le contenant du contenu. Travaillant sous la direction de Robert Vergnieux et avec Jacques Perconte sur ce sujet nous avons créer le tabloïde (là aussi du perl et des fichiers .txt pour les tables : permettant un stockage pérenne des données). Le tabloïde permet la gestion simple de galerie d’images en ouvrant un lien vers une gestion du contenu scientifique de façon ad hoc.

Lors de mon DEA d’histoire à Bordeaux 3, j’ai créé un autre outil à l’aide de DBMAN qui permet de gérer du VRML de façon dynamique : c’est le SIHA3D qui est d’ailleurs de précurseur d’ICEberg (voir : http://www-sira.montaigne.u-bordeaux.fr/boisset/cgi/vrml/db.cgi?db=default&uid=default) et surtout ce résumé du process : http://www.technart.net/metamorph/mem/STEPHANE/.

Je passe mon DEA…puis vint le PHP et MySQL…:-)

Entre 1999 et 2001 j’ai commencé à développer en PHP et avec MySQL des outils proches du SIHA3D à destination d’autres disciplines la géographie, l’histoire, la documentation (voir RAFID www.rafid.u-bordeaux.fr. C’est la période ou ICEberg est né. J’avais du temps – j’étais encore étudiant :-) – et PHP+MySQL m’ont permis de développer un outil simple (des scripts en PHP) et sur un modèle de tables relationnelles sous MySQL (nommé « la triplette ») qui permet de faire fonctionner le tout.

En 2002…Je rentre sur concours au CNRS en tant qu’IE !

Je suis affecté dans l’UMR 2139 (aujourd’hui regroupée avec le Centre Koyré – UMR 8560). Je suis le webmestre de l’équipe et je travaille sur le site www.lamarck.net créé par Pietro Corsi (Professeur à l’Université de Paris 1 et à l’EHESS et aujourd’hui professeur à Oxford). Le site Lamarck fonctionne en ASP+ACCESS avec l’outil PINAKES développé par Andrea Scotti en Italie (Florence). Le serveur est installé à l’ENS sur une machine windows. Très rapidement le développement du site nécessite un changement de technologie : l’ASP est peu fiable en terme de sécurité (c’est un mystère pour personne) et ACCESS est limite pour gérer les 10.000 pages de manuscrits + les 19.000 planches d’herbier que Pietro Corsi souhaite ajouter au site. Personnellement je connais bien mieux le PHP que l’ASP que je trouve lourd en terme de développement et gourmant en ressources. Sortant ICEberg de mes tiroirs, nous avons donc mis ICEberg en production pour le site Lamarck. Le basculement ACCESS vers MySQL n’a pas été simple. Nous avons tout re-modélisé en utilisant la triplette plutôt que les 40 tables ACCESS (je ne me souviens plus du chiffre exact en fait, mais c’était pas « migrable » en tout cas !).

En 2002, je réalise pour le Lamarck un ICEberg V0.1 qui fonctionne toujours sur le serveur. Nous créons avec cette version le site Lavoisier avec association avec Marco Beretta (Panopticon Lavoisier) et le site Science 1800 (créé par Pietro Corsi).

En 2003, Je sort la version 0.7 : première version ayant la forme actuelle (avec les menus en haut). Le site Lamarck bascule dans cette version. Bien entendu les version 0.1 et 0.7 sont compatibles…

En 2004-2005 : Nous montons les sites www.ampere.cnrs.fr, www.buffon.cnrs.fr, www.histmap.net, www.hstl.crhst.cnrs.fr/criminocorpus avec la version ICEberg 0.7 puis 1.0.

En juillet 2005, je réalise la version ICEberg-XML (expérimentale et n’utilisant plus MySQL, juste des fichiers XML). Nous avons donc aujourd’hui deux outils :

  • ICEberg-DB : PHP+MySQL
  • ICEberg-XML : PHP5+XML

ICEberg est le fruit d’un travail commencé en 1997 lors de ma maîtrise d’histoire et il n’aurait pas vu le jour sans le soutien de Robert Vergnieux (IR CNRS), Gérard Louise (Professeur des Universités) aujourd’hui décédé, Michel Bochaca (Professeur des Universités), Jean-Michel Roddaz (alors directeur d’Ausonius). Mais également de Daniel Pouyllau (IR CNRS), Marie-France Pouyllau et mon épouse Jannick.

Ainsi que Gwenaëlle Boulissière, Anne Dubois, Jacques Personte, Marie Péres, Pietro Corsi, Dominique Pestre (Directeur d’Etudes à l’EHESS), Vincent Leguy, Delphine Usal, Lucie Secchiaroli, Olivier Bertoncello.

2) Caractéristiques

ICEberg est un outil au sens ou il rend un service entre un serveur Apache et un chercheur : c’est donc un service web développé en PHP 4.3 et fonctionnant sous MySQL 4.0.x dans sa version actuelle. Il permet la diffusion de documents structurée. Il est un élément (une brique!) de base dans la construction d’un site web de recherche. Il est programmé en fonctions PHP. Il est compatible avec Verity via XVgateway.

3 ) Développement

J’assure le développement d’ICEberg. Le rythme n’est pas régulier pour le moment car je suis seul à y travailler en tant que codeur. Un jour, je monterai une équipe CNRS peut être ;-). J’ai en ce moment une petite équipe de bénévole qui travaille avec moi.

4) Mini-FAQ

ICEberg est-il libre ou open source ? :

Non, son code n’est pas encore ouvert et sa diffusion n’est pas encore possible car l’outil n’est pas terminé pour une exploitation par des tiers. Je pense mettre un jour ICEberg sous licence CeCILL.

Est-il gratuit ?

Quand il sera diffusable, il sera gratuit (sous licence CeCCIL).