Christophe Le Bot

  • Navigation rapide
Pratique de la conception numérique

Derniers commentaires

  • Une excellente thèse sur Simile Exhibit
    • Olivier Rossel | Bonjour. Malgre les annees, avez vous toujours en memoire vos usages d’Exhibit? Je serais ravi d’en discuter avec vous. Cordialement, Olivier Rossel.
  • Utiliser le planificateur de tâches OVH (crontab) avec PHP
    • Max | Bonjour, comme faire pour appeler une version de PHP qui n’est plus proposée par défaut dans le manager ? J’essaie de lancer un cron avec php 5.3 mais le log affiche No such file...
    • Christophe | @absolument Merci pour ces précisions. Je n’ai pas mis en place de tâches cron récemment, mais j’ai reçu quelques notifications étranges d’OVH il y a quelques...
  • Récupérer le dernier auto-incrément MySQL avec PHP
    • Thy | Sujet toujours *très* utile en 2015 ! Je réponds à Serge tsimba qui récupère un « Resource id ». (Et à tous ceux qui ont le même souci mais qui ne le disent pas) :)...
  • Régler l’heure de serveurs virtuels sous Debian
    • Ares_XL | Il semble que sur Débian la commande « tzconfig &ra quo; soit dépréciée et remplacée par : « dpkg-reconfigure tzdata » elle donne accès à une...
 

Simile Exhibit 2.0 officiellement en français

Logo Simile

Depuis aujourd’hui, Simile Exhibit 2.0 supporte officiellement le français.

Je remercie David Huynh, créateur talentueux de cet outil précurseur des nouveaux usages du web, d’avoir accepter d’intégrer ma modeste contribution au code source officiel. Je remercie également les french beta testers qui m’ont permis d’affiner la version française, suite à mes précédents articles (ici et ). Et une mention spéciale à Got pour m’avoir remis sur les rails.

Si vous avez quelques exemples d’utilisation d’Exhibit en français, n’hésitez pas à les ajouter dans les commentaires. Amusez-vous bien !

Simile Exhibit 2.0 en français

On sait tous que les rentrées de septembre sont difficiles, mais celle-ci est vraiment infernale ! Même plus le temps de bloguer…

J’ai quand même fini un projet qui me tenait à coeur : la version française de Simile Exhibit 2.0.

Je ne vais pas revenir sur la présentation de cet outil fabuleux, largement décrit dans mon précédent article [Simile Exhibit : la version française est (presque) disponible]. J’ajoute simplement que la version 2.0 est toute fraîche et qu’il était temps d’y apporter une touche « frenchie » !

La voici donc en démonstration sur mon site, avant d’être intégrée à l’API officielle. Si vous constatez un dysfonctionnement ou une erreur de traduction, un petit commentaire sera le bienvenu ! Bien entendu, seule l’interface d’Exhibit est en français, les données (reprises des exemples officielles) restent en anglais. Un jour, quand j’aurai cinq minutes, je donnerai un exemple français…

Liste des exemples à tester

Simile Exhibit : la version française est (presque) disponible

Logo Simile

Simile (Semantic Interoperability of Metadata and Information in unLike Environments), initié par le MIT (Massachusetts Institute of Technology), développe des outils open source robustes et efficaces pour manipuler des données, le tout reposant sur les technologies du web sémantique.

Parmi ces outils, le framework Exhibit est l’un des plus démonstratifs. Il offre une interface riche pour trier, filtrer et consulter des données complexes, via une page web. Sa classification à facettes rend la sélection et la consultation de données très rapides.

Seul petit défaut : Exhibit ne parle actuellement que l’anglais, l’espagnol et le suédois. Pas pour longtemps puisque je viens de terminer la french version ! Elle sera intégrée dans la version stable (v.1.0) et la version 2.0 (bientôt disponible).

Pour valider ce travail, je fais appel à votre bonne volonté afin de tester quelques exemples et me remonter les erreurs et bogues que vous pourriez y trouver (via les commentaires). Une fois corrigée, la version française sera mise à disposition de tous sur le serveur de Simile.

Pour le moment, les exemples reprennent ceux du site officiel. Je n’ai pas traduit les fichiers de données puisqu’ils ne font pas partie d’Exhibit. Par contre, les éléments d’interface (actions, sélections, tris, filtres, copies, messages, aide…) devraient tous être en français. J’ajouterai sans doute un exemple utilisant toutes les options d’Exhibit avec un fichier de données en français. Ce sera plus simple !

Si vous avez déjà mis en place Exhibit sur vos sites, vous pouvez également tester la version française en modifiant (temporairement, bien sûr) le lien de la version Exhibit officielle :

<script src="http://static.simile.mit.edu/exhibit/api/exhibit-api.js?views=timeline" type="text/javascript"></script>

doit être remplacé par

<script src="http://demo.christophelebot.fr/simile-exhibit-fr/api/exhibit-api.js?views=timeline&bundle=false" type="text/javascript"></script>

Votre lien peut ne pas comporter de paramètre views. Par contre, il ne faut pas oublier le paramètre bundle (utile pour ce test seulement) qui permettra de basculer en français. Petit détail, votre navigateur doit être configuré pour afficher en priorité les contenus en français.

Liste des exemples à tester

Merci d’avance pour votre participation à ce test !

Y a-t-il des spécialistes d’Exhibit dans la salle ?

Logo Simile

Cela fait un certain temps que je suis avec beaucoup d’intérêt les travaux du MIT (Massachusetts Institute of Technology) autour de Simile (Semantic Interoperability of Metadata and Information in unLike Environments). Ses intervenants défrichent le terrain du web sémantique avec beaucoup de talent et sans oublier de passer de la théorie à la pratique.

Le projet le plus connu est sans doute Timeline qui se veut le « Google Maps du temps ». J’avoue que le résultat est plutôt à la hauteur de la comparaison, d’autant que l’intégration de Timeline dans un site web est triviale !

Par contre, je suis un peu moins enthousiaste avec Exhibit. Ce framework permet de publier des données structurées et de les manipuler dans une interface web avec une déconcertante facilité. Le concept est génial mais je trouve certains choix techniques très discutables.

Pourquoi avoir créé des attributs HTML spécifiques à Exhibit ? Par exemple, pour réaliser un filtre à facettes, il faut écrire le code suivant :

<div id="exhibit-browse-panel" ex:facets=".discipline, .relationship, .shared, .deceased"></div>

Résultat, le code source n’est pas conforme et la page n’est pas accessible (au sens ergonomique). Des inconvénients qui vont à l’encontre du web sémantique ! Pourquoi ne pas avoir développé une syntaxe particulière pour les valeurs des attributs HTML officiels ? C’est le principe de diffusion adopté par les microformats.

Quant aux données, elles proviennent d’un objet Javascript (plus précisément d’un objet JSON). Adopter JSON est une excellente idée… sauf pour le référencement de la page web. En effet, pour un robot d’indexation, une page Exhibit est vide ! Il y a bien quelques pistes pour résoudre le problème, mais je suis loin d’être convaincu. Il me semblerait plus judicieux d’intégrer les données par défaut dans le code source HTML et de les manipuler via des méthodes non intrusives (unobstrusive Javascript) par le DOM du navigateur.

Et de votre côté, utilisez-vous Exhibit dans vos projets ? Avez-vous trouvé des réponses à ces contraintes ?

Exhibit a un tel potentiel que je ne voudrais pas être bloqué par ces deux défauts majeurs. Surtout qu’un autre projet va en décupler l’intérêt : Potluck (merci Christian pour cette découverte !).

“Web 2.0″, Ajax, interfaces riches et prospective

J’ai toujours détesté le terme « web 2.0 ». Il ne signifie rien. Il englobe ce que chacun veut y mettre et ne sert qu’à convaincre les clients crédules de la nécessité d’une refonte de leurs services en ligne.

Les acteurs du web n’ont pas attendu la vague du « web 2.0 » (à quand le ressac ?) pour créer des communautés ou des applications en ligne (on remarquera au passage que les web applications sont devenues des SaaS, softwares as a service, c’est plus « tendance »).

Et que dire du contenu généré par les utilisateurs (le fameux User Generated Content si cher au « web 2.0 ») ? N’est-ce pas la fonction première du web que de permettre la diffusion rapide, massive et économique de contenu ? Depuis 1990 (et la première page web), les utilisateurs mettent en ligne du contenu.

J’ai eu la chance de concevoir des services « à la sauce web 2.0 » dès 1998 : sites communautaires, applications en ligne, outils de travail collaboratif… Et je n’étais pas le seul ! Mais il faut bien avouer que deux choses ont freiné leur expansion : les connexions bas débit et l’inviolabilité de la sphère privée.

Tout le monde peut comprendre qu’avec un modem RTC qui charge une page web en 55 secondes, il est impossible d’avoir des services tels que YouTube. Quant à la sphère privée, il a fallu une bonne dizaine d’années pour que l’internaute s’habitue à publier (donc rendre public) quelques bribes de sa vie personnelle (avec les excès que l’on connait aujourd’hui…).

Finalement, pour moi, le « web 2.0 », c’est :

  • un coup marketing de maître !
  • la généralisation du haut débit
  • l’ouverture de la sphère privée

C’est tout. Enfin presque… J’ai oublié le seul point réellement nouveau dans le « web 2.0 » : Ajax (Asynchronous JavaScript and XML), rendu possible grâce à l’implémentation de XMLHttpRequest dans Internet Explorer (merci Microsoft !).

Ajax change tout, à commencer par la notion de page web. Comme le fait très souvent remarquer Frédéric Cavazza, peut-on encore utiliser le terme de page web, alors que le contenu et la forme évoluent par petites touches au sein d’une seule page ? Netvibes en est un bon exemple.

Nous en sommes à l’ère des single page applications (SPA). Ses effets révolutionnent notre manière de voir et de concevoir le web. Les ergonomes sont obligés de revoir toutes leurs préconisations. Ajax change nos méthodes de production, les éditeurs de code HTML (comme Dreamweaver) ont disparu et font place à des environnements de développement lourd. Ajax bouscule les habitudes chèrement acquises des internautes (on ne touche plus au bouton « Page précédente » du navigateur pourtant si pratique !). Ajax perturbe l’économie du web en faussant la mesure d’audience.

Ajax finira peut-être par tuer le web, en imitant toujours mieux le comportement des applications classiques. Il rendra inutile le navigateur web et favorisera l’émergence des RIA (Rich Internet Applications), puis des RDA (Rich Desktop Applications). Finalement, Ajax entraînera un retour aux sources de l’informatique grand public : un système d’exploitation, des applications locales, des interfaces riches.

A la différence que tous leurs éléments intrinsèques seront connectés à internet et dépendront de lui : WebOS, RDA, Widgets, SaaS. Le web sera, quelques temps encore, un protocole d’échanges de données entre machines, avant de disparaître…

Le SIREN devient obligatoire sur les sites web

Depuis le 9 mai 2007, les entreprises françaises ont pour obligation de préciser leur numéro SIREN dans les mentions légales de leurs sites web (décret n° 2007-750 du 9 mai 2007).

Pour rappel, certaines informations étaient déjà obligatoires (dénomination sociale, numéro RCS et ville d’inscription, coordonnées du responsable de la publication, coordonnées de l’hébergeur, numéro de TVA intracommunautaire pour les sites e-commerce, etc.).

Comparatif de 4 CMS PHP sur 190 critères

Stéphane Bordage nous propose une analyse complète de 4 solutions de gestion de contenu open source fonctionnant avec PHP :

A chacun de faire sa synthèse en fonction de ses besoins. Un très bon support de décision qui me fait découvrir encore une fois les vertus d’un Drupal que je sous-estimais.

Mise à jour : le dossier complet est disponible dans le numéro 720 du magazine Décision Informatique, paru le 21 mai 2007.

Mise à jour : suite aux réactions (étonnamment violentes) de la communauté Spip à propos des résultats, Stéphane Bordage a pris la sage décision de supprimer Spip de ce comparatif.

Utiliser les catégories pour gérer les tags sous WordPress

Logo WordPress

Incroyable mais vrai : WordPress ne gère pas les tags ! Ces petites étiquettes qui donnent du sens au contenu généré par les utilisateurs, sont dans tous les services estampillés « Web 2.0″… sauf dans WordPress. Les utilisateurs râlent depuis longtemps : c’est qu’ils les demandent, ces tags ! Et avec insistance ! Ils devaient être intégrés dans la prochaine version (la v.2.2 à paraître ces jours-ci) et ne le seront que dans la version 2.3. Les plus impatients ont déjà migré sur d’autres plates-formes…

Mais au fait, a-t-on vraiment besoin des tags dans WordPress ?

Non, car ce moteur de blog propose les catégories pour les gérer. Certains vont tout de suite me dire qu’il y a une grosse différence entre les deux et qu’il faut donc les deux. C’est vrai, il y a une telle différence que j’utilise les deux dans ce blog… en m’appuyant seulement sur les catégories.

Gérer les catégories comme un arbre sémantique

L’astuce consiste à utiliser la hiérarchie des catégories comme un arbre sémantique. Ensuite, il suffit de placer certains de ses noeuds dans l’interface. Pour illustrer le principe, je vais prendre l’exemple de ce blog qui utilise à la fois des thèmes et des tags.

Etape 1 : créer les racines

Pour commencer, je crée les catégories qui me serviront de racines :

  • Thèmes
    Pour gérer une classification hiérarchique.
  • Mots-clés
    Pour gérer les tags.

WordPress m’indique les identifiants des deux racines : 3 pour Thèmes et 4 pour Mot-clés. Ces identifiants sont importants pour placer les racines dans l’interface. Leur valeur dépend bien sûr de votre propre installation de WordPress. Mais n’allons pas trop vite…

Etape 2 : créer les thèmes

Mes thèmes sont hiérarchiques. Je crée donc les thèmes principaux (Concevoir, Développer, Exploiter, Imaginer, Savoir) en les plaçant sous la catégorie Thèmes. Puis, viennent les thèmes secondaires placés chacun sous un thème principal. Rien de très compliqué, c’est du WordPress basique !

Thèmes sous WordPress
La liste de mes thèmes dans l’interface de WordPress.

Etape 3 : afficher les thèmes

Maintenant, il faut mettre les mains dans le cambouis. Je vais modifier le thème WordPress de mon blog pour afficher mes thèmes dans la partie latérale de mon blog. Par défaut, WordPress gère la navigation par catégories dans un fichier nommé sidebar.php. J’y ajoute le code suivant :

<ul>
<?php
wp_list_categories('title_li=&orderby=name&show_count=0&use_desc_for_title=1&child_of=3');
?>
</ul>

wp_list_categories est une fonction standard de WordPress pour afficher la liste des catégories. Grâce à ses options, je vais pouvoir placer la racine de mon arbre sémantique :

  • title_li=
    Indique que je ne souhaite pas afficher de titre avant la liste.
  • orderby=name
    Ordonne les catégories par nom.
  • use_desc_for_title=1
    Affiche les catégories sous leur catégorie mère.
  • child_of=3
    Limite la liste aux catégories appartenant à la catégorie 3 (donc Thèmes).

Etape 4 : créer les mots-clés

Les mots-clés sont créés sur le même principe. Je les saisie donc dans le gestionnaire de catégories de WordPress, sous la catégorie Mots-clés.

Mots-clés sous WordPress
La liste de mes mots-clés dans l’interface de WordPress.

Etape 5 : afficher les mots-clés… dans un joli tag cloud

Pour afficher les mots-clés, j’aurais pu me simplifier la vie en reprenant le même principe que pour les thèmes. Dans ce cas, le code suivant suffit :

<ul>
<?php
wp_list_categories('title_li=&orderby=name&show_count=0&hierarchical=0&child_of=4');
?>
</ul>

Mais présenter les mots-clés sous forme d’un tag cloud est quand-même plus « tendance ». Un tag cloud met en valeur les mots-clés (tags) les plus utilisés. Pour cela, inutile de réinventer la roue, j’utilise une extension WordPress très simple et efficace : Category Tagging.

Une fois installée et activée, je n’ai plus qu’à générer le tag cloud dans l’interface :

<ul>
<?php
// Affichage du tag cloud (via plugin Category Tagging)
if (function_exists ('cattag_tagcloud') ) {
echo cattag_tagcloud(1,5,1,'NAME_ASC','1,2,3,4,5,6,7,8,9','','<li><a rel="tag" href="%link%" title="%description%" class="tag-cloud-%size%">%title%</a></li>','Aucun mot-clé trouvé');
}
// Affichage simple
else {
wp_list_categories('title_li=&orderby=name&show_count=0&hierarchical=0&child_of=4');
} ?>
</ul>

A chacun de spécifier ses paramètres (voir le détail sur le site de Category Tagging). Le plus important est sans doute le 5e paramètre qui exclut des catégories. Je l’utilise ici pour ne pas afficher les catégories racines (Thèmes et Mots-clés), ainsi que les thèmes de premier niveau qui sont déjà dans l’interface.

Reste à définir les styles CSS pour afficher les mots-clés en fonction de leur utilisation. Pour moi, c’est le code suivant :

a.tag-cloud-1 {
	font-size:1em;
	color:#9B907F;
}
a.tag-cloud-2 {
	font-size:1.2em;
	color:#7C6E59;
}
a.tag-cloud-3 {
	font-size:1.4em;
	color:#7C6E59;
}
a.tag-cloud-4 {
	font-size:1.6em;
	color:#666;
}
a.tag-cloud-5 {
	font-size:1.8em;
	color:#444;
}

Inconvénients

Comme toute astuce, la solution n’est pas idéale. Il y a aussi des inconvénients :

  • L’ajout d’un tag n’est pas possible pendant la saisie d’un article. En effet, WordPress propose l’ajout de catégorie pendant la rédaction, mais il semble impossible d’ajouter une sous-catégorie. Si quelqu’un connait le truc, je suis preneur !
  • Il faut modifier le code du thème WordPress pour gérer la liste des catégories à ne pas afficher dans le tag cloud. C’est le cas quand j’ajoute ou supprime un thème principal… ce qui est très rare.

Avantages

La solution n’est peut-être pas idéale, mais c’est un bon compromis :

  • On se passe d’un gestionnaire de tags. WordPress s’en trouve plus léger et plus stable.
  • Au niveau des articles, je peux afficher les thèmes et les mots-clés dans la même liste pour proposer un choix plus large aux lecteurs.
  • Si un mot-clé prend de l’importance, je peux le placer dans les thèmes sans toucher aux articles, ni aux outils de navigation. Pour faire la même chose avec un système de tags indépendant, il faut modifier chaque article…

Mise à jour. Thomas VdB voit deux autres avantages essentiels à utiliser les catégories comme arbre sémantique :

  • Les doublons disparaissent (comme Sémantique, sémantique et semantique qui sont habituellement considérés comme trois tags différents).
  • Le référencement est optimisé car l’adresse d’une page d’un tag décrit son contenu et facilite son indexation (par exemple, /category/mots-cles/web-semantique/).

Rue89 a choisi Drupal et explique pourquoi

Rue89

Dimanche 6 mai 2007, ce sera la fin du suspens : nous saurons tous à quoi ressemble… Rue89 ! Oui, c’est la date qu’a choisi cette équipe de journalistes passionnés et téméraires pour ouvrir un site d’information d’un nouveau genre. Rendez-vous donc dimanche à 18h (pas à 20h !).

Pour en diffuser le contenu, Rue89 a sélectionné Drupal, une plate-forme de gestion de contenu libre. Ce choix est argumenté dans un article du blog Rue89 :

Parce que nous avions pris la décision de démarrer le site au plus vite et de le faire évoluer au fur et à mesure des suggestions et critiques des utilisateurs, nous avons cherché une solution flexible et prête à l’emploi.

[…]

Nous avons opté pour la plateforme LAMP (Linux, Apache, MySQL, PHP) parce qu’elle est très largement répandue sur Internet, maîtrisée par de nombreux développeurs et qu’elle sert de base technologique à plusieurs outils de gestion de contenu Open Source performants et stables.

[…]

SPIP, bien que largement déployé, nous a paru dépassé et ne répondant pas à nos attentes en terme de fonctionnalités.

[…]

En matière de performance, Drupal apporte des résultats bien plus intéressants [que Joomla] à périmètre matériel constant.

Rue89 cite par ailleurs quelques études comparatives qui permettent d’y voir plus clair :

Les commentaires des lecteurs valent également de s’y attarder :

eZ Publish est bien une référence, mais une référence qui ne monte pas ! La faute a sa difficulté à monter en charge (cache PHP obligatoire) et à l’incapacité des développeurs à adapter le framework aux versions courantes de PHP/MySQL.

[…]

C’est un véritable plaisir que de développer sur ce framework [Drupal], notre équipe de dev est littéralement sous le charme !

Voilà beaucoup d’arguments solides en faveur de Drupal. Pour ma part, je l’avais testé sans être convaincu. C’était en 2001. La démonstration en ligne de la version actuelle m’a montré qu’il a beaucoup évolué depuis. Je le replace donc dans le peloton de tête des CMS LAMP (Content Management System sur plate-forme Linux, Apache, MySQL et PHP).

Il me reste à souhaiter bon vent à Rue89 qui aura déjà beaucoup à faire deux heures après son lancement !

Navicrawler transforme Firefox en fouine

Navicrawler

Depuis un certain temps, je cherche un outil qui assiste intelligemment ma navigation à travers le web. Il y a bien sûr les favoris, l’historique, les agrégateurs et autres services web 2.0, mais je n’ai encore rien trouvé d’idéal pour m’assister quand je navigue.

Enfin, je n’avais pas trouvé car je teste actuellement Navicrawler (une extension pour Firefox) et il se pourrait bien que ce soit la réponse à mes besoins. Dixit les auteurs de ce bijou, « le Navicrawler est un outil d’exploration du web qui analyse le contenu et la structure des pages et des liens hypertextes pour accompagner l’utilisateur au cours de sessions de navigation. »

La description sur le site officiel est très claire, mais j’en garde les meilleurs morceaux :

Il s’adresse en premier lieu à la recherche en Sciences Humaines et Sociales, mais il peut être utilisé à d’autres fins. Il permet notamment de mieux comprendre sa propre activité de navigation, de la contextualiser en indexant tous les liens hypertextes (même ceux qu’on n’a pas cliqués) et de constituer des prises pour interpréter le web. Le Navicrawler produit ainsi des graphes dans lesquels les sites sont les noeuds et les liens sont les arcs ; ces dessins à plat ou en trois dimensions manifestent le parcours web de la session de navigation, à condition de les visualiser dans un logiciel adapté (par exemple Guess ou Graphiltre). Les graphes produits par le Navicrawler sont enrichis de nombreuses données issues de la navigation, qui permettent une interprétation poussée du terrain-web qu’on a exploré.

[…]

Contrairement aux crawlers classiques qui produisent des graphes à interpréter dans un second temps hors du web, le Navicrawler fournit le graphe de l’exploration pendant laquelle l’utilisateur a essayé de comprendre quelque chose du web. Le Navicrawler accompagne l’utilisateur et capitalise sa navigation : toutes ses fonctionnalités sont pensées pour l’aider à s’orienter et à voir ce qui est caché.

[…]

Le Navicrawler permet d’enrichir les données à la main. L’utilisateur peut ainsi commenter et classer les sites dans des catégories qu’il crée d’après la compréhension qu’il a des sites sur lesquels il navigue. Petit à petit, il peut affiner cette couche de description pour construire une première interprétation du domaine web qui l’intéresse.

[…]

Il est possible d’exporter la session de navigation sous différents formats : Graphes en .gdf (Guess) ou .net (Pajek), ou encore données brutes au format .csv (tableurs comme Excel ou OpenOffice Calc).

Stop, n’en jetez plus ! Je craque ! Et je le garde !