La journée commence avec la conférence sur la rapidité de chargement des pages dans drupal. Ce sujet a donné lieu à une thèse de Wim Leers, le présentateur de la conférence, qui maitrisait donc bien son sujet. Il a commencé par annoncer qu’optimiser l’HTML était désormais dépassé : charger le HTML représente 10% du temps total de chargement de la page alors que 90% était représenté par le CSS, les images, les animations flash, etc… ce qu’il appelle « composants ». Pour mesurer le temps de chargement d’une page, il a cité 4 outils : Cuzillion, Hammerhead, YSlow (ces deux derniers sont des extensions de Firebug, lui-même extension de firefox) et Jiffy. Le plus efficace semble être ce dernier pour un certain nombre de raisons dont la possibilité d’utiliser réellement un navigateur plutôt qu’un outil qui en simule un, mais c’est aussi le plus difficile à manier car il necessite l’écriture de petits scripts en javascript. Wim a continué sa présentation sur YSlow qui vérifie qu’un certain nombre de règles sont implémentées sur une page web de façon à améliorer son chargement. Dans le cas d’un site créé avec drupal, peu de règles sont du ressort du créateur du site, mais plutôt du framework drupal et un certain nombre des règles présentées seront présentes dans drupal 7 (la prochaine version). Parmi les autres choses que l’on peut faire pour réduire le temps de chargement, j’en retiens aussi deux : l’utilisation d’un CDN (répartir le site web sur plusieurs serveurs en réseau dans le monde) et, si le site utilise google analytics, cacher locament sur le serveur ses composants.
J’ai essayé cet outil sur www.mandrivafr.org qui indique clairement que l’intégration des gravatars ralentit considérablement le chargement du site, c’est un point qu’il va falloir discuter. L’autre point que je retiens est le nombre de composants à charger qui est très grand : la page d’acceuil comprend trop de cadres.
Je suis ensuite parti sur le stand Mandriva. Là, j’ai pu y rencontrer notamment Per Øyvind Karlsen (dont l’interview va paraître dans le prochain MagNum), Anne Nicolas et Frédéric Crozat (d’autres étaient présents, mais je n’ai pas retenu les noms… désolé). J’ai pu y poser mes questions techniques et pratiques et regarder en détail le Gdium, l’ultra-portable made-in Emtec+Mandriva :).
Pour la distribution Mandriva, sans conteste, la vedette est l’ultra-portable. 5 modèles étaient présentés (l’Eeepc n’étant pas présent) avec toutes les variantes de la distribution Mandriva disponibles actuellement : la Mandriva Mini, la Mandriva 2009.0, la Mandriva Cooker et le bureau à base de LXDEtrès customisé) pour le Gdium. L’interface du Gdium est assez séduisante au premier abord : un fond d’écran surmonté de 5 cadres présentant la météo et l’heure, ses derniers mails, les dernières nouvelles via flux RSS, les photos que l’on a sauvegardé à un emplacement particulier et le cadre permettant de lancer les applications (bien sûr tout cela est modifiable). Il est constitué d’une architecture MIPS, assez novatrice car seul linux supporte le microprocesseur du Gdium. De plus, il ne possède pas de disque dur car tout est géré via la G-Key : une clé USB contenant le système et les données, interchangeable entre tous les Gdium. J’avoue que j’ai été intrigué par cet OVNI qui comporte un grand nombre de concepts novateurs mais aussi un peu déçu. En effet, ces concepts novateurs auraient pu être poussés plus en avant et on aurait pu tirer partie de tout cela. Par exemple, le gain de place dû à l’absence de disque dur aurait pu être utilisé pour placer d’autres composants, ou augmenter la taille du clavier, … ; la G-Key aurait pu, plutôt, être un vrai petit disque SSD, plus véloce et plus résistant aux lectures/écritures ; les applications utilisées auraient pu être optimisées pour l’architecture MIPS. Peut-être qu’un Gdium 2 pourra résoudre ces petites erreurs. Le prix annoncé est d’environ 300€. Pour le même prix, on peut se doter d’un ultra-portable basé sur un Intel Atom sur lequel on peut installer une Mandriva Powerpack qui donnera le même (voire un meilleur) niveau de support et se retrouver certainement avec de meilleures performances (l’AFUL a édité un tableau comparatif des ultra-portables : à consulter d’urgence !). En tout cas, sur tous ces modèles, la dsitribution Mandriva se comportait remarquablement bien gérait l’architecture à 100%, webcam, entrées/sorties et wifi compris.
J’ai aussi discuté avec Anne de la Mandriva Assembly. Des retours de 4 ou 5 communautés nationales ont déjà été reçues, concernant leurs représentants dans cette assemblée (dont j’ai déjà parlé dans un post précédent). La difficulté pour chaque MUG (Mandriva User Group) est bel et bien de s’organiser et la date limite fixée à début Mars est très courte (confirmé par Anne : c’est voulu, car de toute façon les communautés se seraient organisées au dernier moment… :D). Je pense, et j’en ai fait part à Anne, que la plus grosse difficulté sera l’organisation et la structuration du vote pour cooker. Cooker n’a jamais été réellement une communauté, c’est juste une mailing list, au contraire de plusieurs autres distributions (comme Debian) qui ont un réel système de vote et une organisation (à mon goût, un peu trop bureaucratique, mais bon…). Il est bien sûr hors de question que les employés de Mandriva ou les représentants des MUGs fassent parti des élus cooker, ce qui laisse finalement peu de personnes… L’autre difficulté pour Cooker sera la représentativité, voire la légitimité, des élus : comment est-ce qu’1 ou même 5 développeurs pourront influencer ce que feront les autres ? Bon, ceci dit, je suis quand même très positivement conquit par l’idée d’une organisation minimum permettant un échange entre les communautés et les développeurs, c’est un pont qui n’a jamais existé auparavant dans Mandriva et qui était comblé ça et là par certaines personnes (suivez mon reg… lien :)) qui faisaient des aller-retours dans les mailing-list et les forums, mais ce n’était jamais vraiment formalisé. Il faut de toute façon mettre le concept en route avant d’éventuellement prévoir des améliorations / des modifications. Mettre toutes les têtes pensantes dans une seule assemblée pour qu’ils réflêchissent enfin ensemble et aillent vers la même direction ne peut que donner du bon. De toute façon, quels que soient les courants, un but commun les unis : faire de Mandriva Linux la meilleure distribution Linux, ce n’est que la manière qui change.
J’en termine avec le stand Mandriva en indiquant à Per Øyvind que son interview sera publié au plus tard dans le Magnum mi-mars… J’ai pris un engagement (certes, raisonnable), alors je vais faire en sorte qu’on le publie ce super magazine… (Stéphane, Raphaël, faudrait qu’on s’y mette…) !
Je pars ensuite vers la discussion éclair sur puppet, dont j’ai raté les 90%. Bref, j’ai pas compris grand-chose sachant que je ne connais déjà pas trop le principe de fonctionnement au départ, mais cfengine m’a toujours paru trop compliqué pour gérer un parc et j’attendais d’y voir une alternative viable. Bon, il ne me reste plus qu’à me rabattre sur le site web…
J’assiste ensuite à la présentation de Fusil the fuzzer. C’est un outil dont le but est de tester les bugs et les vulnérabilité dans les programmes en injectant des données aléatoires. Ça semble tout bête comme principe, mais c’est diablement efficace. Bien sûr, tout l’art consiste à ne pas générer n’importe quelle donnée aléatoire : par exemple, si un programme s’attend à avoir un jpg en entrée, l’idéal consiste à prendre une image jpg valide, mais modifier cette dernière, de façon à ce que la plupart des vérifications de première ligne soient passées. Une petite vidéo a montré comment l’auteur a pu trouver une vulnérabilité dans le compilateur python en moins de 10 secondes. Le logiciel est modulaire et le but est de rajouter de plus en plus de « fuzzer » (injecteurs de données) qui vont essayer de faire planter une application ou un protocole spécifique. La présentation était assez moyenne, mais le potentiel de cet outil est énorme et ce dimanche, il est devenu un peu plus populaire et pourra donc être amélioré par des gens qui s’intéressent au projet, c’est ça aussi l’avantage du FOSDEM…
Une petite frite et un peu de surf plus tard, j’assiste à la présentation de Hans Peter Anvin, sur Syslinux. Syslinux est très populaire pour démarrer un OS sur CD-ROM ou DVD (il est alors appelé isolinux), mais le projet va bien au-délà. Il s’agit en fait d’une suite d’outil pour démarrer n’importe quel OS à partir de n’importe quel support. Malgré un petit coeur en assembleur (pour des raisons de taille, il est impossible de changer cela), l’outil se veut très modulaire et multi-plate forme. Dans ses dernières versions, il peut très bien concurrencer et même dépasser Grub et Lilo en terme de fonctionalités. PXElinux est aussi un outil du projet syslinux qui permet de démarrer un OS grâce au protocole réseau PXE : pour ceux qui ne connaissent pas, ça permet d’installer un ordinateur complètement dépourvu d’OS à distance (la carte réseau reçoit quelques instructions via PXE, puis va chercher les données sur un partage TFTP). C’est extrèmement utile dans un grand parc informatique où il faut installer / réinstaller des ordinateurs tous les jours. H Peter Anvin a développé une extension de PXELinux (gPXELinux) qui permet même d’installer un ordinateur en utilisant le protocole HTTP au lieu de TFTP, ce qui permet d’utiliser l’internet pour l’installation ! Néanmoins, il faut remarquer que cela peut poser des problèmes de sécurité (ce fut l’objet d’une question à la fin de la présentation) : il est impossible d’utiliser le protocole, plus sécurisé, HTTPS car ce dernier est extrèmement lourd à implémenter dans un système qui n’est même pas encore démarré (HTTPS nécessite notamment une source de données aléatoires, impossible à trouver au stade où se situe syslinux).
Je reste dans l’amphithéatre Janson et j’assiste à la prochaine présentation sur Ext4. Remarquant que Anne Nicolas et Frédéric Crozat étaient là aussi, je n’ai pas manqué l’occasion de poser quelques questions à la fin de la présentation à Frédéric. Ext4 est un système qui repousse la plupart des limites de Ext3, mais surtout, offrira un gain de performance par le biais d’un nouveau système d’extents. Ce nouveau système offrira deux avantages : le système de fichier gèrera beaucoup mieux l’allocation des iNodes en évitant de créer des blocs qui référencent d’autres blocs, ce qui augmente les performances du système de fichier dans le cas de gros fichiers (ISO de CD ou de DVD). De plus, le système sera très résistant à la fragmentation en retardant au maximum l’écriture des blocs d’allocation et en les « groupants » lors de l’écriture. Les fichiers seront donc beaucoup plus contigus qu’auparavant, ce qui améliore grandement les performances en lecture. Il faut aussi savoir que tout ce qui est présent dans ext4 est optionnel : on peut activer les fonctionalités une par une, à n’importe quel moment et il est possible de migrer un système de fichier ext2 vers ext4 (attention néanmoins : certaines options, une fois activées ne peuvent pas être désactivées). Théodore Ts’o terminera sa présentation par un avertissement sur les comparatifs de performances (benchmarks) qu’on peut lire sur le web : avoir un comparatif reproductible et représentant une charge réaliste du système de fichier est extrèmement difficile. Quant à Mandriva, ext4 est déjà supporté dans Cooker, c’est à dire qu’il sera supporté dans la 2009.1, mais il ne sera vraisemblablement pas utilisé par défaut.
Ma journée s’est arrêté là, et je garde une excellente impression de ces deux jours : la variété des présentations et leur qualité générale fait du FOSDEM un évènement incontournable pour tous les acteurs du Libre. Venez nombreux au FOSDEM 2010, je suis sûr qu’il apportera pleins de surprises…
(Les vidéos ne sont pas encore disponible au moment où j’écris, mais cela devrait arriver dans le courant du mois de février).