Un petit bilan de ces trois jours de Plone Conference 2007 à Naples


Photo de groupe

Près de 400 personnes étaient réunies durant ces trois jours à Naples. L’atmosphère est resté très bon enfant malgré l’aspect professionnel de ce cycle de conférence. Cet événement reste avant tout le moment privilégié de la communauté pour se retrouver et nouer, ou renouer, des liens qui peuvent s’émousser avec la distance et le travail de chacun.

Maintenant vient le temps des sprints pour améliorer tel ou tel point de Plone ou d’un produit en particulier. C’est aussi le meilleur moyen d’échanger ses points de vues et de faire avancer la communauté. Pour ma part, je participerai à un sprint de documentation pour ArchGenXML dans le but de sortir la version 2.0 dimanche avec une documentation entièrement à jour.

Mais il y avait aussi des sprints avant les conférences, depuis dimanche dernier, et certains ont déjà portés leurs fruits. Voici le nouveau logo Plone: Plone réinvente la roue

Plone réinvente la roue

Publicités

Dites-nous ce que vous pensez de Plone.


Une partie du noyau de développeurs qui dirige le développement de Plone (Limi, Jon, Paul, Martin, Wichert) nous présente leur vue de Plone.

L’équipe a été crée pour permettre de pendre des décisions rapides lors des phases de développement entre les versions majeures, mais aussi pour être à l’écoute des besoin de la communauté. La communauté comprends les développeurs et les intégrateurs, mais aussi les utilisateurs finaux.

Actuellement, les retours se font principalement par les listes de diffusion et un peu par les trackers. Souvent les cas d’utilisation ne sont par clairement exposés (par exemple: j’ai besoin d’une url en bleue, mais mon pointeur reste vert), du coup l’équipe laisse passer certaines demandes plus que pertinentes. Il faut que nous essayons d’être explicite dans nos besoins lors de nos demandes de renseignement.

Il est aussi important de publier les retours que nous avons des utilisateurs finaux. Actuellement, seuls les développeurs et les intégrateurs remontent leurs avis, souvent par le biais de blogs. Il faut encourager les utilisateurs à dire ce qu’ils pensent de Plone en positif comme en négatif. C’est comme ça que la communauté aura le meilleur Plone jamais sorti.

Toutes nos félicitaions messieurs !

Le développement rapide d’applications avec Plone


C’est au tour de Richard Amermann de nous faire un état de l’art du développement agile pour Plone.

Le principe est de faire des produits Plone en utilisant les techniques officielles de développement. Pour Plone 2.1 et Plone 2.5 il est important que ces produits soit basés sur Archetypes.

Le meilleure moyen d’avoir un code propre et facilement maintenable est d’utiliser un générateur de code pour se concentrer sur la partie qui apporte vraiment de la valeur ajoutée au produit. Des outils existent déjà dans la communauté: ArchGenXML et genesis. ArchGenXML est le vieil éléphant lourd mais qui fait les choses bien. Genesys est le nouveau venu encore en développement.

Ces deux outils permettent de modéliser le produit en UML puis de générer le code directement à partir du fichier XMI résultant.

Il est possible de générer quasiment tous les composants d’un produits:

  • les types de contenu,
  • les champs et les widgets
  • les workflows
  • les classes en python pur
  • les interfaces Zope2 et Zope3
  • les tests (unitaire, fonctionnels, doctests)
  • profile generic setup

Tout cette environnement est parfaitement contrôlé par le générateur de code et réduit les coût de maintenance.

Les éditeur UML les plus utilisés sont ArgoUML et Poseidon UML.
Encore une fois je ne vais pas rentrer dans les détails de cette conférence, mais c’est une conférence à regarder en priorité.

Comment optimiser vos projets en Plone


Joel Burton nous présente un sujet qui lui est cher: comment optimiser les performances de Zope.

Je vous fait une revue rapide des points abordés sans vouloir faire un résumé.

Optimisation du code

Il ne faut pas optimiser le code prématurément !

Il est quasiment impossible de prévoir les goulots d’étranglement avant d’être en production.

Les outils de base pour évaluer les performances de votre site:

CallProfiler,PTProfiler, ZopeProfiler

Ces outils, couplés avec apache bench, vont identifier ces goulots d’étranglement à chaque niveau du framework:

  • CallProfiler identifie combien de fois chaque template/script est appelé par page
  • PTProfiler identifie le temps passé sur chaque appel à l’intérieur d’un page template
  • ZopeProfiler identifie de manière plus profonde le temps passé par zope sur chaque appel de fonction

La montée en puissance: Cluster ZEO

Il est très fortement conseillé de toujours avoir au moins un serveur ZEO avec un client. En cas de besoin il est facile de rajouter un 15 minutes au lieu d’avoir à créer l’environnement complet. De plus les clients ZEO peuvent être installés sur autant de serveurs/Core/CPU que nécessaire avec la règle d’avoir au moins un client par Core/CPU.

Par défaut Zope lance 4 processus, ce qui veut dire 4 requêtes servies en parallèle. Le but n’est pas de servir le plus de requêtes avec un seul serveur, mais de servir chaque requête dans de bonnes conditions. Dans ce cas, il est préférable de n’utiliser que 2 processus par client ZEO et de multiplier les clients ZEO sur chaque serveur. Le coût en RAM sera à peine plus élevé et les performances seront bien meilleures.

La gestion du Cache dans ZEO

La priorité va aux skins et aux objets en cours d’utilisation. Les clients utilisent un cache disque pour minimiser les appels aux serveurs ZEO stockant les données.

L’utilisation des RAMCache

Pour optimiser le chargement des éléments présent dans les skins il est possible d’utiliser un ou plusieurs RAM Cache Manager sur votre serveur Zope. Il est important de créer un RAM Cache Manager par scénario de cache (filtrage, durée, etc). Il est alors possible de choisir une stratégie de cache pour chaque élément de skin.

Les RAMCache stockent les valeurs passées en paramètres et sont capables d’intercepter les requêtes identiques pour éviter un nouveau calcul.

Pour ne pas cacher la même valeur AUTHENTICATED_USED comme clé de filtrage. en fait, il est possible d’utiliser n’importe quelle clé de la requête en cours pour filtrer les requêtes.

Le nouveau venu: memoize

C’est un système de cache uniquement disponible pour les vues venant de Zope3 (BrowserView).

Les stratégies qui fonctionnent: le micro-cache

Un cache de 5 à 10 secondes peut éviter 500 requêtes !

Le plus gros risque du cache est d’afficher une valeur invalide: il faut affiner la durée des caches au cas par cas.

Les proxysles plus courant:

  • Apache: très bon en redirection mais il est impossible d’invalider un cache.
  • Squid: moyen en redirection mais l’invalidation fonctionne
  • Varnish: très prometteur mais n’est pas supporté sous windows et manque de documentation

La configuration la plus courante est Apache <-> Squid <-> Zope. Le gros avantage est de gérer le cache proxy en dehors de Zope mais cela demande plus de connaissances.

CacheFu

Ce produit est disponible dans Plone 2.5 et Plone 3.0 mais n’est pas installé par défaut. Il faut copier les produits qu’il comprend dans votre répertoire Products pour les activer.

Il a été conçu pour gérer le besoin les plus courants dans plone (le cache utilisateur par exemple) et de déléguer une partie du cache au proxy web.

C’est le produit utilisé sur http://plone .org /products pour améliorer les performances.

Il est très complet donc sa configuration peut demander un affinage permanent.

Après ce temps dans les profondeurs des salles de conférences, il est temps d’aller profiter du soleil napolitain. 😉

Faites votre business avec Plone


C’est un thème très présent cette année.

La conférence de Francesco Ciriaci présente les ecueils qu’il faut éviter.

Plone est battery included

Plone possède plein de fonctionnalités, certes, mais il ne faut pas noyer les interlocuteurs avec des choses qui ne les intéresse pas. Ils ont un besoin, parlez leur uniquement des fonctionnalités qui correspondent et de quels sont les extensions existantes pour celles-ci.

Votre interlocuteur correspond a un profil

Pas la peine de parler de la puissance des tests unitaires à un responsable marketing, parlez-lui de ce qui l’intéresse: la flexibilité du design.

Parlez de Plone !

En dehors des interlocuteurs correspondant à au profil « innovateur », il n’est pas utile de présenter Zope 2 ou Zope 3. Cela ne les intéresse pas et cela peut même leur faire peur. Une courte introduction à Python peut être utile si elle est bien faite.

Je vais éviter de paraphraser Francesco et si vous voulez vendre du Plone, cette conférence est essentielle.

AJAX dans Plone


Les points importants:

  • La logique doit rester du coté serveur (problème de sécurité, maintenance)
  • Il faut toujours commencer par la version en XHTML
  • Ne pas utiliser Selenium pour les tests
  • Il faut tester le XHTML et le javascript séparément.

Il y aura un sprint sur KSS après les conférences, donc pas mal d’innovations en vue.

Comment vendre Plone à la façon du Web 2.0


blog, blog, BLOG !

Pour vendre il faut communiquer.

Il faut partir d’un site web communautaire qui regroupe de la documentation, des success stories… mais avant tout il faut aller au devant des autres communautés et engager la conversation. Le but n’étant pas d’aller agresser d’autres communautés le plus simple est de créer un blog et d’écrire des billets… Je ne rentrerai pas dans les détails ici, les slides de la conférence le feront mieux que moi.

L’important est ceci: La technologie nous met la video et le son à portée de main via les téléphones portables, les appareils numériques compact: il faut les utiliser. L’écrit reste ambigue alors que le son d’un voix ou une démonstration en vidéos apportent bien plus de retour qu’un simple billet. Par exemple, la video des bsdistes qui présente nmap avec une jolie blonde a fait plusieurs fois le tour du monde.

Si vous connaissez une jolie blonde en bikini, je suis sur que je trouverai des sujets à présenter pour Plone.

o:^)

Présentation de Plone 3.0 – Jon Stahl


Nous sommes arrivés pour les vingts dernières minutes de conférences… plus vingts minutes de questions.

Martin Aspelli et Wichert Akkerman étaient présents pour répondre aux questions sur quelques cas d’utilisation et sur le nouveau mécanisme de distribution des versions mineures: une version 3.0.x tous les 4 à 6 semaines.

Ce qu’il faut retenir avant tout lorsque vous créer un produit ‘générique’ il faut toujours laisser un champs en RichText en entête de vos types de document: les utilisateurs veulent personnaliser le produit mais ne veulent pas écrire de code.

PloneConf 2007 – Arrivée à Naples


Ce qui frappe le plusen arrivant à Naples, ce sont les transports.

Aujourd’hui ce nous à pris dex heures de notre hotel au site de conférence.

Peu ou pas de traduction en anglais et les renseignement données sont souvent erronées, même lorsque l’on fait l’effort de parler en italien. Le fait qu’il y ait 5 compagnies privées qui se partage les lignes complique le tout: il n’existe aucun plan global du réseau.

Le bon point: les plonistas s’entraident dès qu’ils se croisent.

La prochaine fois je prendrai un panneau: « I’m a plone geek, please help me »