Fedora-Fr - Communauté francophone Fedora - Linux

Planet de Fedora-Fr : la communauté francophone autour de la distribution Linux Fedora

A propos

Cette page est actualisée toutes les heures.

Cette page est une sélection de blogs autour de Fedora. Fedora-Fr.org décline toute responsabilité au sujet des propos tenus par les auteurs des blogs de ce planet. Leurs propos sont leur entière responsabilité.

Le contenu de ce planet appartient à leurs auteurs respectifs. Merci de consulter leur blogs pour obtenir les licences respectives.

Mot-clefs : jQuery

jQuery async Gravatar, chargez vos Gravatars de manière asynchrone

Guillaume Kulakowski

Jusqu'à présent, j'utilisais sur mon blog la librairie async-gravatars de Joseph Scott qui permettait de charger de manière asynchrone les Gravatars utilisés pour illustrer vos commentaires avec vos têtes. Je ne vais pas m'étendre sur cette méthode de chargement, d'autres l'on déjà (très bien) fait ici ou .

Le problème c'est que la dite librairie n'est plus disponible sur le compte GitHub de son auteur et que la sanction fut immédiate chez moi : ça m'a pété une erreur Bower et m'a donc fait planter la chaine de construction Grunt du thème de mon blog. Bref, j'ai contacté l'auteur, sans obtenir de réponse, pour savoir si je pouvais forker et maintenir la librairie. Sans réponse j'ai donc entrepris de la réécrire from scratch. J'y ai quand même rajouté des options de paramétrages (via data attributes) mais également des contrôles de qualité & une intégration continue :

  • Tests unitaires JavaScript avec QUnit,
  • Qualité de code JS via JSHint,
  • Code check style via JSCS,
  • et pour tous les nouveaux fichiers introduits : Markdown lint, JSON Lint, etc...
  • Le tout intégré via la Plateforme d'Intégration Continue Travis et une qualité de code contrôlée via Code Climate.

Bref, c'est actuellement la librairie qui tourne sur mon blog et vous pourrez la trouver sur GitHub ou la télécharger via Bower.

jQuery async Gravatar, chargez vos Gravatars de manière asynchrone

Guillaume Kulakowski

Jusqu'à présent, j'utilisais sur mon blog la librairie async-gravatars de Joseph Scott qui permettait de charger de manière asynchrone les Gravatars utilisés pour illustrer vos commentaires avec vos têtes. Je ne vais pas m'étendre sur cette méthode de chargement, d'autres l'on déjà (très bien) fait ici ou .

Le problème c'est que la dite librairie n'est plus disponible sur le compte GitHub de son auteur et que la sanction fut immédiate chez moi : ça m'a pété une erreur Bower et m'a donc fait planter la chaine de construction Grunt du thème de mon blog. Bref, j'ai contacté l'auteur, sans obtenir de réponse, pour savoir si je pouvais forker et maintenir la librairie. Sans réponse j'ai donc entrepris de la réécrire from scratch. J'y ai quand même rajouté des options de paramétrages (via data attributes) mais également des contrôles de qualité & une intégration continue :

  • Tests unitaires JavaScript avec QUnit,
  • Qualité de code JS via JSHint,
  • Code check style via JSCS,
  • et pour tous les nouveaux fichiers introduits : Markdown lint, JSON Lint, etc...
  • Le tout intégré via la Plateforme d'Intégration Continue Travis et une qualité de code contrôlée via Code Climate.

Bref, c'est actuellement la librairie qui tourne sur mon blog et vous pourrez la trouver sur GitHub ou la télécharger via Bower.

jQuery async Gravatar, chargez vos Gravatars de manière asynchrone

Guillaume Kulakowski

Jusqu'à présent, j'utilisais sur mon blog la librairie async-gravatars de Joseph Scott qui permettait de charger de manière asynchrone les Gravatars utilisés pour illustrer vos commentaires avec vos têtes. Je ne vais pas m'étendre sur cette méthode de chargement, d'autres l'on déjà (très bien) fait ici ou .

Le problème c'est que la dite librairie n'est plus disponible sur le compte GitHub de son auteur et que la sanction fut immédiate chez moi : ça m'a pété une erreur Bower et m'a donc fait planter la chaine de construction Grunt du thème de mon blog. Bref, j'ai contacté l'auteur, sans obtenir de réponse, pour savoir si je pouvais forker et maintenir la librairie. Sans réponse j'ai donc entrepris de la réécrire from scratch. J'y ai quand même rajouté des options de paramétrages (via data attributes) mais également des contrôles de qualité & une intégration continue :

  • Tests unitaires JavaScript avec QUnit,
  • Qualité de code JS via JSHint,
  • Code check style via JSCS,
  • et pour tous les nouveaux fichiers introduits : Markdown lint, JSON Lint, etc...
  • Le tout intégré via la Plateforme d'Intégration Continue Travis et une qualité de code contrôlée via Code Climate.

Bref, c'est actuellement la librairie qui tourne sur mon blog et vous pourrez la trouver sur GitHub ou la télécharger via Bower.

Migration de mon blog en HTML5

Guillaume Kulakowski

Ça fait un petit moment que je n'avais pas travaillé sur mon blog... Il faut dire que la v5 de Fedora-Fr m'a pris pas mal de temps. Mais maintenant que c'est à peu près fini, je me suis lancé dans le portage du thème de mon blog en HTML5.

Au programme :

  • utilisation des "role" : banner, main, complementary, etc...
  • utilisation des nouvelles balises : section, article, header, footer
  • Formulaire : aria, placeholder (le truc le plus visible), etc...

Pour moi les avantages de l'HTML5 sont :

  • La sémantique web grâce aux nouvelles balises et au rôles. Une meilleure sémantique est selon moi gage d'un meilleur référencement.
  • La mobilité, qui fera l'objet de mon prochain travail...

Pour réaliser ce portage, je me suis basé sur ces différentes ressources :

J'ai également profité de cette mise à jour pour :

  • Rajouter la validation des formulaires en JavaScript,
  • Passer les icônes de réseaux sociaux en CSS sprite,
  • Rajouter Linkedin,
  • Migrer sous jQuery 1.5 et utiliser le CDN de Google,
  • Améliorer l'interface d'administration du thème de ce blog (cf capture).

Configuration du thème Emplode HTML5

Fedora-Fr v5, étude de cas d'un site sous eZ Publish & eZ Flow

Guillaume Kulakowski

Rappelez-vous, il y a de cela 3 ans, Fedora-Fr passait sous eZ Publish pour les sous-domaines de portail et planet. Récemment nous avons entrepris une grosse refonte graphique de Fedora-Fr sous le nom de code "Fedora-Fr v5". L'occasion de revenir sur mon article précédent afin de converser sur les évolutions de notre implémentation du CMS eZ Publish.

eZFluxBB

La gestion des utilisateurs de Fedora-Fr est toujours confiée à FluxBB, notre logiciel de forums. C'est encore plus vrai que via notre application Gauffr, ce sont les informations issues de FluxBB qui sont utilisées par toutes les autres applications. eZ Publish utilise donc le connecteur eZFluxBB afin de récupérer les différentes informations (utilisateurs, statistiques, news, derniers topics, etc...) issues des forums.

Ce qui a le plus évolué c'est que le connecteur utilise à présent eZFlow et propose un ensemble de blocs pour cette extension portail d'eZ System.

Structure eZ mise en place sur Fedora-Fr

Les extensions

La structure a quelque peu évolué par rapport à mon précédent article.

On est toujours dans une architecture classique en eZ Publish, à savoir : 1 site = 1 extension. Mais en plus de l'extension dite socle (permettant de regrouper certains designs, les traductions et certains paramètres propres à tous les sites de Fedora-Fr), j'ai rajouté une extension de type socle_frontend regroupant l'ensemble des informations propres aux sites frontaux (notamment le fichier override.ini.append.php).

Structure des sites Fedora-Fr

Puisqu'on parle d'extensions, il est à noter que toutes les extensions créées pour les besoins de Fedora-Fr sont publiées sous licence GPLv2 :

  • eZFluxBB : connecteur eZ Publish / FluxBB.
  • eZGauffr : connecteur eZ Publish / Gauffr.
  • eZPlanet : gestion du planet avec notamment la tache planifiée qui va chercher les billets à partir des Flux renseignés dans le profil des membres.
  • eZTidy : implémentation de Tidy dans eZ Publish
  • leZRSS : amélioration de la fonction RSS native d'eZ Publish utilisant le système de template.
  • leZToolBox : ma boite à outils.

En plus de ces extensions, la plateforme utilise les composants officiels ci-dessous :

  • eZFlow : gestion des fonctionnalités de portail.
  • eZIE : éditeur d'image en ligne.
  • eZJSCore : framework JS/Ajax.
  • eZMultiIpload : upload multiple
  • eZOE : éditeur WYSIWYG.
  • eZWebin : dépendance d'eZFlow

Pour les extensions third party nous utilisons les suivantes :

  • admin2pp : amélioration de l'interface d'administration.
  • eZClassList : interface pour filtrer les objets eZ par type de contenu.
  • eZFeedParse : parseur de flux RSS.

Les classes

Les classes ont évolué avec le temps afin d'intégrer eZFlow et le datatype "page".

Les classes dans Fedora-Fr

Pour la petite histoire le système de "global layout" n'a été introduit qu'avec la version 5 de Fedora-Fr, avant il fallait à chaque fois se retaper toute la colonne pour chaque page...

Exemple de global layout

On notera également que pour la colonne de droite, celle-ci est facultative, si elle est vide alors c'est le "global layout" qui est utilisé.

Édition d'une classe avec eZFlow

Les différents sites de l'instance eZ Publish

Au www et planet dont javais parlé précédemment se sont rajoutés 2 nouveaux sous-domaines gérés par eZ Publish :

  • recherche.fedora-fr.org : Moteur de recherche globale sur tout le domaine Fedora-Fr
  • mon.fedora-fr.org : Système de page personnalisable

Le planet

Le planet a subit quelques évolutions avec la v5. J'ai notamment publié une nouvelle version de mon extension eZPlanet qui permet à présent de gérer les tags multiples. Une fois les billets tagués, il devenait évident de mettre en place un nuage de tags.

Le nuage de tags du planet de Fedora-Fr

La structure du planet a elle aussi beaucoup changé. Suite à une remarque de Damien, je suis passé d'une structure où tous les billets étaient dans un même nœud à une structure où tous les billets sont fils de l'auteur. Ce qui me permet de pouvoir rapidement supprimer tous les articles d'un même auteur simplement en masquant ce dernier.

La structure du planet de Fedora-Fr

Recherche globale

Le sous-domaine recherche n'est qu'une page eZFlow avec un bloc implémentant le service de Google : Google Custom Search engine. Actuellement en bêta, ce service a pour vocation de remplacer l'API Google Web Search, à présent dépréciée.

Google Custom Search Engine

Mon Fedora-Fr

Mon Fedora-Fr est une page d'accueil personnalisable reprenant les informations autours de Fedora et de Fedora-Fr. C'est une page inspirée des Netvibes ou iGoogle utilisant jQuery et jQueryUI dont notamment le composant sortable-portlets.

Ce site est actuellement en version alpha et devrait s'enrichir de fonctionnalités ainsi que de widgets. Il devrait également bientôt permettre de sauvegarder/charger ses préférences en base de données. Comme le site est assez lié au choix technologiques de Fedora-Fr, je ne pense pas en faire une extension eZ Publish. Cependant lorsque tout sera fini je ne manquerai pas de publier le code et d'expliquer le bouzin dans un billet dédié. Pour rappel les contraintes techniques sont :

  • Cache statique,
  • 0 requête MySQL,
  • Pas ou peu d'appel Ajax,
  • Base membres issue de FluxBB


Mon Fedora-Fr

Choix technologiques

Cache statique

Fedora-Fr utilise toujours massivement le cache statique. Je ne reviendrai donc pas dessus.

Bye bye Mootools

Depuis le passage à eZ Publish 4.3, j'ai dû me résoudre à migrer de MooTools vers jQuery, l'un des framework JavaScript retenu par eZ System et bien mieux intégré à eZ Publish via l'extension eZJSCore.

CSS Sprites

Fedora-Fr v5 a été l'occasion pour optimiser encore plus le site en adoptant notamment la technique du CSS Sprites. C'est un peu galère au début mais, en plus de diminuer le nombre de requêtes HTTP, ça évite de faire des preloads afin de contrer les effets de clipping sur les roll-over (les boutons du forum par exemple).

CSS Sprites Forums

CSS Sprites eZ Publish

Retour sur la journée eZ parisienne du mardi 21 septembre 2010

Guillaume Kulakowski

Mardi dernier se tenait à l'espace Kiron la journée eZ. L'occasion pour se rencontrer entre clients, experts et éditeurs. A travers ce billet, je vais tenter de vous en faire un rapide résumé pas forcément d'en l'ordre chronologique.

Présentation du nouveau modèle de distribution

Il n'est jamais aisé pour une société de scinder son unique produit en 2 :

  • une version communautaire (généralement appelée « projet »),
  • et une version enterprise (appelée produit).

Il y a de très bons exemples de réussite, je ne citerai que Fedora / Red Hat, mais aussi (et surtout) de moins bon. Bref les commerciaux/dirigeants se sont efforcés de nous dire que cette scission serait une bonne chose, que l'innovation serait portée par la version communautaire et que la version enterprise subirait plus de QA.

Pour faire simple :

  • Le projet communautaire portera l'innovation. C'est là que les développeurs d'eZ System ainsi que la communauté apporteront les nouvelles fonctionnalités.
  • Le produit enterprise quant à lui n'aura pas de développeur mais juste des équipes QA. Il portera la stabilité. C'est lui qui recevra les patchs correctifs.

Remarque intéressante, contrairement à Fedora / Red Hat, le cycle de vie d'eZ Publish community et enterprise sera le même : une version tous les 6 mois. Je trouve cela très ambitieux quand on voit que l'innovation de Fedora met 2 ans à être stabilisée dans Red Hat. eZ Publish n'est pas une distribution Linux mais je pense que 2 release communautaires pour 1 release enterprise serait plus raisonnable. Surtout que personnellement généralement je conseille à mes client de sauter une version et de ne faire qu'une mise à jour sur 2.

Personnellement, je suis curieux de voir comment les choses vont évoluer mais je pense que cette scission peut apporter de bonnes choses.

Lors de cette présentation des teasers sur la future homepage d'eZ.no nous ont été présentés. L'idée est de marquer encore plus la différence entre le site communautaire (share.ez.no) et le site plus pro (ez.no).

De SVN à Git

Autre point, le passage vers GitHub. Les sources d'eZ Publish ne seront plus disponible via leur SVN mais via GIT (un autre VCS) à partir de la forge GitHub. Pour ceux qui ne connaissent pas GitHub, il s'agit d'une plateforme de VCS décentralisé et social où l'un peu commenter les commits des autres, de forker rapidement un projet, etc... Bref une bonne nouvelle, le nombre de personne contribuant au kernel (committeurs) d'eZ devrait augmenter. L'assemblée semblait inquiète du nombre de commiteurs autorisés sur le projet. Pour moi c'est un faux procès, l'avantage des VCS décentralisés est de mettre fin à la dictature du commit et de favoriser le pull. Vous pouvez en effet forker eZ Publish, les développeurs en seront avertis et pourront par la suite puller vos modifications pour les intégrer au kernel.

Le projet communautaire

Afin de porter sérieusement le projet, la communauté d'eZ Publish devrait s'armer d'une instance décisionnelle (board) afin de fixer la direction prise par le projet. Ce point là est particulièrement intéressant. En effet, tous les projets Open Source d'ambition (Debian, Fedora, etc...) possèdent se genre de structure afin de driver les participations.

Présentation de la version 4.4 d'eZ Publish

La présentation de la 4.4 s'est un peu divisée en 2. Une première partie moins technique le matin devant les clients, et une partie plus techos lors du track communautaire.

  • L'admin2 s'enrichie encore de fonctionnalités AJAX afin de la rendre encore plus ergonomique
  • L'éditeur d'image en ligne qui permet notamment :
    • de cropper
    • de rajouter des watermarks
    • de flouter des visages
    • etc...
  • eZ Network : La version Enterprise possède une extension appelée eZ Network permettant de monitorer l'instance eZ et de gérer les tickets en cour chez eZ. L'identification au portail client se fera via un SSO basé sous oAuth.
  • Nouveau datatype vidéo avec support des vidéos HTML 5. La volonté affichée et de mettre plus de HTML5 dans eZ
  • Gestion des commentaires avec eZ Comment.
  • eZ Find le moteur de recherche évolué d'eZ se trouve enrichit d'une recherche avec autocompletion come pour Google Suggest
  • CJW Newsletter sera la solution de newsletter officielle d'eZ Publish enterprise. La version communautaire sera disponible sur project.ez.no.
  • Nouveau système de session. Actuellement les sessions sont portées par la base de données. C'est bien en mode cluster vu que nous pouvons partager une même session sur un ensemble de serveurs apache mais le problème c'est que c'est couteux en ressources. La solution est donc de revenir à une session en mode file system. Quid du partage de sessions entre les différentes machines d'un cluster d'apache ? Et bien ce partage passe par un serveur de session voir un cluster de serveur de session...
  • Le système de session est aussi simplifié puisque les utilisateurs anonymes ne génèreront plus une session automatiquement et inutilement. Du coup on gagne en performance (c'est fou comme ne pas faire de traitement inutile fait gagner en performance ;-)).
  • Toujours dans le gain de performance, les fichiers de configuration .php et .apend ne seront plus utilisés. Seul les .ini et les .ini.append.php seront utilisés. Du coup, 2 fois moins I/O pour la gestion des settings donc de meilleures performances.
  • Autre nouveauté le Toolkit d'archivage. Pourquoi un archivage ? Car à partir d'10.000.000 d'objets eZ Publish lague. L'idée de ce système et d'aller au delà de 10.000.000 d'objets en stockant les objets dans un moteur XML donc pas en objets ;-)... Les nouveaux objets archivés sont donc stockés en XML hors de l'arborescence eZ Publish On les requête non plus avec des fetch classiques mais avec eZ Find. On est donc purement dans une initiative noSQL donc de performances.
  • Autre nouveauté bien pratique, les sections auront des identifiants en plus des ids. Il est en effet plus facile de manipuler un string unique qu'un id numéraire.
  • eZ Publish 4.4 introduira en bêta la nouvelle API.L'idée est d'avoir un max de retours pour la stabiliser en 4.5. Son but est de faciliter la manipulation d'eZ par des non experts eZ. Cette nouvelle API comprendra aussi une API REST. Au final cette nouvelle API sera une couche de haut niveau entre l'API actuelle (qui demeurera) et le développeur.
  • Amélioration du module d'export XML introduit en 4.3
  • L'ezinfo.php laisse sa place à un fichier XML. Ce fichier, en plus de définir l'extension, en définit aussi les dépendances permettant alors de charger une extension après une autre.

Pour résumer, le but est de faire d'eZ Publih quelque chose :

  • de plus HTML 5
  • de plus simple pour les développeurs / intégrateurs
  • de plus communicant

Une petite remarque (troll) sur l'éditeur d'image. Ce dernier utilise à la fois les librairies jQuery et YUI. Une fois de plus eZ Publish a le cul assis entre ces 2 framework JS. Je trouve regrettable de ne pas trancher pour l'un deux (jQuery par exemple ;-)) et de dégager l'autre (YUI !).

Roadmap de la 4.5

La version 4.4 n'est même pas encore sortie que l'on parle déjà de la 4.5 attendue pour Mars 2011.

  • Extension mobile
  • Workflow avec support des objects states ! Enfin on va avoir 1 vrai workflow et non pas 2 bouts de workflow
  • Cosmétique sur eZ Flow avec notamment eZWT qui devrait avoir un look plus admin2. Du coup La toolbar devrait demander moins d'intégration.
  • Version finale de la nouvelle API
  • Gestion de souscriptions récurrentes (abonnement, etc..)
  • Support de sémantique Web
  • eZ Network permettra de livrer des patch !

eXtend

La forge projects.ez.no sera confortée dans son rôle de forge communautaire et une nouvelle forge devrait arriver pour les applications certifiées. Appelée eXtend, les applications y seront publiées sur le modèle de la version enterprise.

SQLiImport

Jérôme Vieilledent nous a fait une présentation très intéressante de SQLiImport disponible en licence GPL. Cette extension permet :

  • L'import de données on shoot
  • L'import de données scheduled
  • De suivre l'avancement d'un import
  • D'arrêter un import
  • D'importer facilement grâce à un API simplifié
  • etc...

Bref, j'ai hâte d'avoir de l'importation à faire dans un projet ;-).

Troll de l'après midi

Gille Guirant reponsable technique chez Kaliop (mon ancienne boite) nous a fait une keynote sous le signe des vérités qui dérangent : les points faibles d'eZ Publish et les axes d'améliorations qui pourraient s'en suivre avec une touche de fonctionnel :

  • L'export RSS qui ne passe pas par des système de templates
  • Les outils dangereux (RAD, activations des extension, édition de settings et de template depuis l'admin).
  • Les custom tg dont on se sert toujours et qui ne sont pas built-in (Youtube, etc..)
  • La gestion des workflows (toujours elle)
  • etc..

Bref, une journée riche et intéressante aussi bien dans les prise de contact que dans les aspects techniques.

Fedora-Fr, mise à jour sous eZ Publish 4.3 et migration vers eZ Flow

Guillaume Kulakowski

Avec un peu de retard, Fedora-Fr vient enfin de passer d'eZ Publish 4.2 vers la version 4.3. Une mise à jour sans encombre une fois de plus grâce au cache statique qui permet de "tout casser" sans que les visiteurs en soient pénalisés ou même ne s'en rendent compte. Les autres éléments mis à jour ou modifiés sont les suivants :

C'est ce dernier point qui a été le plus long à réaliser. Jusqu'à présent, les blocs de Fedora-Fr étaient directement inclus depuis l'éditeur de texte (eZOE). Cette solution, à l'époque, était pratique mais avec l'arrivée d'eZ Flow les astuces utilisées devenaient absurdes. A présent la gestion des différents layouts d'une page est déléguée non plus à des cases à cocher mais à eZ Flow tout comme la gestion des différents blocs.

Fedora-Fr et eZ Flow

Cette migration a été aussi l'occasion de mettre à jour eZFluxBB qui comprend à présent des blocs eZ Flow pour inclure directement les informations de votre forum FluxBB dans votre portail eZ Publish ! Une nouvelle version d'eZFluxBB devrait bientôt voir le jour juste le temps de faire des tests avec FluxBB 1.4.

En effet, la prochaine étape sur Fedora-Fr sera de mettre à jour le forum de PunBB ver FluxBB 1.4.

llaumgui.com sous jQuery

Guillaume Kulakowski

Après plusieurs années de résistance à vouloir faire tourner Dotclear avec MooTools, j'ai décidé de raccrocher les gants. Ce blog tourne à présent sous jQuery, la solution de framework Javascript officiellement retenue par Dotclear. Vraisemblablement, je ne devrais plus trop maintenir mon script dcRemember permettant de faire tourner les fonctions JS de bases de dotclear sous MooTools.

Mais pourquoi lâcher MooTools alors que c'est le meilleur framework JS au monde (si ça c'est pas un troll ;-)) ? La raison est simplement qu'avec l'intégration de jQuery de plus en plus forte dans eZ Publish, je risque d'utiliser de moins en moins MooTools. J'avais donc besoin d'un labo sous jQuery et l'un des buts premiers de ce blog est justement de servir de labo.