Communauté

Parler Drupal à Paris

DrupalCon Paris 2009Patrick Fournier, mon associé chez Whisky Echo Bravo, et moi-même seront présents à la prochaine conférence Drupal, qui se tiendra à Paris du 1er au 5 septembre prochain.

En plus d'être une occasion idéale pour renforcer nos liens avec plusieurs collaborateurs virtuels et apprendre des pratiques d'autres développeurs, l'évènement DrupalCon permet de prendre le pouls de la communauté Drupal, de découvrir les dernières tendances et d'obtenir une vision claire des stratégies préconisées par les leaders de la communauté pour améliorer la plateforme dans les mois à venir. En effet, lors de la conférence DrupalCon tenue à Boston l'an dernier, j'ai été surpris par la richesse des échanges et la quantité de décisions importantes prises sur place. Même dans une communauté à ce point virtuellement connectée, tout ne se joue donc pas dans le cyberespace! Pour Whisky Echo Bravo, l'implication dans le développement de Drupal et la participation à cette conférence contribuent à la prise de décisions judicieuses pour nos clients, notamment pour assurer la viabilité de leur plateforme Web à plus long terme.

Il y a fort à parier que nous nous intéresserons de près aux activités liées à la diffusion vidéo et aux moteurs de recherche (dont les projets ApacheSolr et Faceted Search), des sujets au coeur de notre travail. Ceci dit, les conférences passées n'ont jamais manqué de matière intéressante et nous tenterons d'en toucher le plus possible!

En marge de la conférence, nous espérons aussi rencontrer quelques-uns de nos clients et partenaires Français. D'où que vous soyez, si Drupal vous intéresse et que vous êtes à Paris début septembre, n'hésitez-pas à nous contacter afin qu'on programme une rencontre!

DrupalCamp Montréal 1.0

Le premier DrupalCamp à voir le jour à Montréal aura lieu vendredi et samedi, les 3-4 octobre 2008. Tous sont les bienvenus, les novices comme les experts! Le seul pré-requis: désirer en apprendre plus sur Drupal.

Le détail de la programmation sera défini collectivement le vendredi matin. On prévoit surtout des séances informelles en petits groupes thématiques.

Une occasion à ne pas manquer, inscrivez-vous! L'évènement gratuit est organisé par Koubmit et commandité par plusieurs organisations, dont Whisky Echo Bravo.

Mise à jour (2008-10-02): Le DrupalCamp montréalais a maintenant un site!

Drupal au CodeFest 2.1 de PHP Québec

En fin de semaine, PHP Québec organise CodeFest 2.1, un évènement où programmeurs de tous horizons et de tous niveaux seront accueillis pour participer au développement de leur logiciel libre préféré. Une très belle occasion de découvrir les techniques employées par différents projets, de rencontrer d'autres programmeurs et, d'une manière générale, de simplement se motiver à se jeter à l'eau avec un projet!

L'un des thèmes de l'évènement concerne l'implémentation de test automatisés, un thème qui tombe à point compte tenu de la récente intégration de la plateforme de tests automatisés SimpleTest dans le noyau du futur Drupal 7.

CodeFest 2.1 arrive alors que je n'ai même pas encore eu le temps de conclure sur le récent sprint de recherche auquel j'ai eu la chance de participer, mais je compte bien utiliser ce nouvel évènement comme prétexte pour compléter quelques tests en rapport avec le moteur de recherche de Drupal.

Je serai donc présent samedi et heureux d'aider quiconque souhaiterait mettre la main à la pâte avec Drupal 7! Patrick Fournier, mon associé à Whisky Echo Bravo, sera aussi sur place.

L'évènement est tenu simultanément à Montréal et Sherbrooke. Même si j'aime beaucoup la ville où j'ai étudié, pour des raisons pratique c'est bien sûr à Montréal que je serai. ;)

Si l'évènement vous intéresse, n'hésitez pas à vous inscrire sur la fiche Drupal de l'événement!

En direct du Minnesota

North Star Blankets

Ces jours-ci, la mention «live from the Minnesota Search Sprint» (en direct du sprint de recherche du Minnesota) apparaît régulièrement en en-tête des soumissions de modifications apportées au moteur de recherche de Drupal.

En effet, tel que je l'avais annoncé récemment, une petite équipe de programmeurs (Earnest Berry, Robert Douglass, Chad Fennell, Doug Green, Djun Kim, Blake Lucchesi et moi-même) se trouve maintenant en plein «sprint» de programmation pour enrichir le module search de Drupal. Notre centre d'opérations se trouve sur l'immense campus de l'Université du Minnesota à Minneapolis, où Chad Fennell a gentiment pris soin de la logistique.

Notre principal défi consiste à atteindre un bon équilibre entre les réalisations concrètes et la vision globale du projet. Établir une feuille de route pour l'avenir est important, mais dans l'univers du logiciel libre, la seule chose vraie c'est le code! Les plans à long terme sont particulièrement difficiles à tenir dans cet univers, puisque Drupal évolue avec les disponibilités des contributeurs et les priorités des projets qui financent leur travail. La vélocité même du développement de Drupal en fait une cible particulièrement mouvante.

Par conséquent, ces deux derniers jours nous avons alterné entre la réalisation de tâches simples (pour les résultats concrets) et les remue-méninges (pour les enjeux de plus grande envergure), avec un souci d'aligner même les tâches mineures sur les objectifs plus importants, histoire d'aller dans la bonne direction, petit pas par petit pas. Il s'agit d'un réel puzzle; des pièces insignifiantes en elles-mêmes prendront, une fois accolées aux autres, tout leur sens.

Quelques pistes...

Voici quelques-unes des pistes que nous explorons dans ce sprint :

  • Unification du processus d'analyse lexicale appliqué à l'indexage et lors de la recherche.
  • Analyse lexicale au moyen d'une chaîne de traitements personnalisable, basée sur la même architecture que les filtres d'entrée de Drupal.
  • Varier l'analyse lexicale en fonction de paramètres tels la langue ou le format du contenu. Par exemple, des algorithmes de lexémisation distincts s'appliqueraient en fonction de la langue.
  • Calcul de classement des résultats extensible. Hormis les facteurs de base déjà prévus pour établir le classement des résultats, de nouveaux facteurs pourront être programmés dans des modules tiers et activés à la demande par l'administrateur d'un site. Par exemple, un site de commerce électronique pourrait rehausser le classement d'un produit en fonction de son volume de ventes.
  • Possibilité d'activer ou de désactiver différents modules de recherche séparément. Dans Drupal 5 et 6, activer le module search active toutes les fonctions de recherche, sur les noeuds et les utilisateurs, même si toutes ne sont pas pertinentes au site.
  • Abstraire la représentation des résultats pour éventuellement permettre la construction de facettes à partir d'un ensemble arbitraire de noeuds, qu'ils proviennent, par exemple, d'une recherche ou d'une vue.
  • Utiliser un objet plus «intelligent» qu'une chaîne de caractères pour représenter la requête, tout au long du processus de recherche. Cet objet pourrait être construit via une interface de programmation (accessible à n'importe quel module) ou via une chaîne de caractères. Il pourrait également produire la chaîne de caractères qui lui correspond en sortie, pour génération d'hyperliens. Présentement, les modules Faceted Search et ApacheSolr ont tous deux des éléments qui s'approchent de ceci. Ultimement, si cet objet pouvait représenter une requête du module Views, un grand pas serait accompli pour que des facettes puissent se rattacher directement à une vue...
  • Scinder la logique d'indexation de la logique de recherche. Les fonctions de recherche de base sont un fardeau inutile pour les site utilisant Faceted Search ou les filtres de recherche de Views 2 — ces modules utilisent l'index de base, mais implémentent leur propre logique de recherche.
  • Unifier la recherche d'éléments hétérogènes dans une seule page de résultats. Ceci pourrait rendre particulièrement utile l'éventuelle indexation d'éléments comme les blocs, les vues (du module Views) et les panneaux (du module Panels).
  • Indexer des données qui sont présentement omises de l'index afin d'augmenter la pertinence des résultats : Chemin (URL) du contenu, nom de l'élément de menu associé au contenu, etc.
  • Abstraire le système d'indexation des contenus afin de pouvoir lui substituer l'indexation par un moteur externe, par exemple Solr ou Sphinx.

Participer, en savoir plus...

Que vous soyez sur place ou non, il est facile de participer à ces travaux ou de les suivre de plus près! Il suffit d'examiner les propositions, les réviser, les tester, les commenter!

Demain sera, déjà, la dernière journée du sprint. En plus de poursuivre certaines des pistes présentées ci-haut, nous comptons examiner les questions de performance d'exécution. À suivre!

Doter Drupal d'un moteur de recherche plus performant

Drupal possède un excellent moteur de recherche par mots-clés, le module search qui est fourni à la base avec Drupal. On peut employer plusieurs opérateurs de recherche, l'intersection de mots-clés (ET), l'union (OU), la négation (NON) de même que la recherche de phrases complètes. L'algorithme de classement tiens compte de plusieurs facteurs tels la fréquence du mot, son balisage HTML, la popularité et la date de publication du contenu. En étant détaché de la mise à jour des contenus via la commande cron, le processus d'indexation ne nuit pas au fonctionnement rapide du site. Par-dessus tout, le moteur est très facile à utiliser puisqu'il suffit de deux clics pour activer le module!

Par conséquent, le module search sert les besoins de milliers de sites. Cette popularité extrême en fait aussi un module fréquemment critiqué. On voudrait plus facilement personnaliser l'interface de recherche et les pages de résultats, accroître la vitesse sur les sites très lourdement chargés de contenus, brancher d'autres algorithmes de calcul du classement, rechercher des mots partiels, rechercher du texte dans des champs spécifiques, rechercher des plages de valeurs, se faire suggérer des termes similaires, rechercher dans les fichiers joints, etc. Bâtir un moteur de recherche qui répond à toutes les demandes n'est pas une mince affaire!

Plusieurs modules additionnels visent à répondre à certaines de ces demandes, notamment Faceted Search (je dois le mentionner :)), Views Fast Search, Apache Solr, Fuzzy Search et Swish-E.

À chaque nouvelle version de Drupal, le module search connaît son lot d'améliorations. Dans Drupal 6, les améliorations ont surtout concerné la vitesse d'exécution des requêtes de recherche. Pour le futur Drupal 7, la course aux améliorations est lancée et, à l'occasion d'un sprint inédit qui aura lieu du 9 au 11 mai prochain à l'Université du Minnesota, atteindra une vitesse folle! En effet, c'est à cette date que sera tenu le Search Sprint, une rencontre de plusieurs développeurs chevronnés impliqués dans le développement de Drupal et d'outils de recherche. J'aurai la chance d'y prendre part moi-même, avec l'appui du Laboratoire NT2 de l'UQAM — qui utilise mon moteur de recherche à facette dans de nombreux projets et qui souhaite poursuivre le développement d'outils de recherche avancés pour Drupal — et de Acquia. Les autres participants ayant confirmé leur présence jusqu'à présent : Earnest Berry, Robert Douglass, Chad Fennell, Doug Green, Michael Hess, Djun Kim, Blake Lucchesi.

Lors de la dernière conférence Drupalcon à Boston, j'ai pu constater à quel point réunir au même endroit des développeurs intéressés pouvait créer des synergies et orienter les efforts autour de directions communes. Semblable au Search Sprint, un sprint s'est tenu à Paris et vient de se terminer avec la mise en place d'un système de tests unitaires automatisés pour Drupal, un gain énorme qui permettra d'accélérer le développement de la plateforme sans risquer d'en compromettre la qualité. Bref, ce genre d'évènement a fait ses preuves et, malgré la nature décentralisée et géographiquement dispersée à laquelle nous sommes habitués dans l'univers Drupal, tout le monde s'entend sur les bénéfices de ces sprints!

Nous ne règlerons pas tous les enjeux de la recherche sous Drupal lors d'un sprint de 3 jours, mais on pourra s'attendre à des résultats plus qu'intéressants.

Photos de Drupalcon Boston 2008

J'avais quatre journées pour immortaliser en images cette singulière congrégation de plus de 800 geeks à Drupalcon! Mais je me suis plutôt affairé à courir les présentations et les groupes de discussion... Heureusement, de nombreuses autres personnes se sont chargées de la chasse photographique, comme en témoignent les milliers de photos de Drupalcon Boston 2008 sur Flickr.

RSS feed