Animint

  Anime & manga

 
 

Réflexions de webmestre (3/4): Faire du single sign on à partir de phpBB3

Publié par Pazu le 13 avril 2008 20:04 dans Webmastering :: Aucun commentaire »

Il est habituel de trouver des ponts avec phpBB pour différentes applications open source en PHP, qui utilisent ainsi la base utilisateurs des forumeurs comme unique référence pour les noms d'utilisateurs et les mots de passe. Cela évite de dupliquer les comptes mais ne règle pas le problème de devoir s'authentifier deux fois, une fois sur l'application et une deuxième fois sur l'application, la session n'étant pas conservée entre les pages des deux produits.

Pour avoir une phase unique d'authentification et être reconnu sur toutes les pages, il faut un peu plus d'éléments. Quand vous utilisez des outils clef en main, il est difficile de faire cohabiter des systèmes différents de gestion de sessions. Certes vous pouvez installer un produit tiers qui s'en charge mais ce n'est pas sans incidence sur les autres applications. En revanche, si vous avez plus de liberté et que vous pouvez adopter pleinement le système de gestion de sessions de phpBB, l'affaire est plus aisée.

La solution bateau consiste à insérer, dans toutes les entêtes de vos pages PHP personnelles, un  certains nombre d'appels et d'inclusions de fichiers PHP du forum. Vous gérez ainsi la session au format particulier phpBB avec le même niveau de complexité, les mêmes fonctionnalités et les mêmes exigences de sécurité.

La méthode a aussi comme avantage de suivre les modifications de phpBB, de façon transparente, à moins que les auteurs de phpBB révolutionnent leur code. Votre code à vous hérite automatiquement des modifications apportées dans celui du forum et vous n'avez pas à connaître comment cela fonctionne en détails à l'intérieur des fichiers phpBB. Vous utilisez juste quelques méthodes pour vérifier si un utilisateur est authentifié ou pas, et pour voir qui il est.

La contrainte est quand même de devoir utiliser le pseudo framework lié avec phpBB, si vous voulez en tirer tous les bénéfices, tels que les écrans de login et les redirections automatiques. Si vous voulez lancer des fonctions séparément, vous restez prisonnier de l'enchaînement choisi par phpBB, qui ne vous convient pas forcément. De plus, les fichiers insérés comportent beaucoup de code inutile, si vous voulez seulement gérer les sessions utilisateurs.

L'autre grand inconvénient est que le code de phpBB est linéaire et qu'il se situe au même niveau que celui de vos pages, avec en plus des appels abusifs à des variables globales. Ainsi, si vous avez des références à une base de données via une variable $db, elle a de forte chance d'entrer en conflit avec la variable éponyme avec laquelle travaillent les fichiers phpBB.

Cela peut rapidement devenir un sac de noeuds, à moins que vous choisissiez de transformer votre code en tant que véritable module de phpBB. Là, les instructions devraient être plus cohérentes mais vous devenez liés très fortement au forum, qui devient l'armature de votre site et non plus un élément parmi d'autres.

Pour Animint et la mise en place des profils du site, la solution choisie a été de construire une bibliothèque objet pour gérer les sessions, en extrayant et en adoptant un minimum de code depuis les fichiers phpBB. Si la façon de faire de phpBB change, seul cet objet est à corriger.

Par rapport à la version phpBB 2, un forum en phpBB3 passe par des fonctions plus sécurisées pour gérer les authentifications des personnes. Le mot de passe est non seulement chiffré dans la base mais il est relié à une information temporelle pour empêcher son hackage. Cela se traduit par un code plus complexe et l'essentiel de la reprise du code original dans notre bibliothèque, concerne cette partie.

La gestion des sessions est plus classique même si phpBB ne fait pas  appel à la variable $_SESSION et a son propre système de bas niveau à coup d'identifiant passé dans l'url ou dans les cookies. Après une authentification réussie d'un utilisateur, il créée une session et enregistre son entrée dans la table phpbb_sessions de la base forum et il vérifie régulièrement dans le temps, la cohérence entre cette entrée stockée et l'identifiant de session qui est véhiculé de page en page.

Au niveau des cookies, cela se traduit par une trace de l'identifiant de session ainsi que de l'identifiant utilisateur.  Si vous avez choisi d'être reconnu par le forum à chaque visite, sans avoir à vous reconnecter, vos cookies comportent également une clef qui sert à vous revalider automatiquement. Cette clef correspond également à une entrée dans la base du forum, dans la table phpbb_sessions_keys, cette fois-ci.

Dans notre cas, il a donc fallu reprendre la mécanique d'authentification, la méthode de création de session, puis de gérer la transmission de l'identifiant entre les pages, le tout devant fonctionner que l'on se connecte sur le forum ou à partir d'une page du site.


S.S.O. phpbb3

Discuter de ce billet sur le forum - Laisser votre commentaire »

Réflexions de webmestre (2/4): Smarty

Publié par Pazu le 04 avril 2008 22:04 dans Webmastering :: Aucun commentaire »

Il est maintenant habituel de voir les développeurs PHP concevoir leurs applications en suivant l'architecture Modèle Vue Contrôleur (ou M.V.C.), qui est la règle dans le monde Java. Vous faîtes abstraction de vos données et des traitements de fond dans la partie modèle, tandis que les affichages sont gérés par les vues et que le contrôleur joue le chef d'orchestre.

Un framework relativement mûr comme CakePHP impose l'utilisation de ce modèle et même sans cela, c'est une façon de programmer qui devient relativement naturelle. Bien entendu, si vous une malheureuse page à afficher, avec un simple message du style Hello World, se préoccuper du code n'est pas votre priorité.

Pour l'informaticien en herbe, la réflexion survient lorsque sa page de code devient un imbroglio où se mélangent code HTML et appels PHP, sans oublier quelques lignes de Javascript. Il en vient à voir s'il ne pourrait pas séparer la partie présentation, statique, du code de programmation, qui rend sa page dynamique. Cela permet de faciliter la maintenance, notamment de changer le look and feel de ses pages, plus facilement sans toucher à la partie logique.

Le cas extrême mais classique est de passer par la génération de code de données pures comme le XML puis une transformation XSLT pour aboutir à un résultat XHTML et notamment un rendu pour de multiple plateformes : le même flux XML servant de source pour une version imprimable, une version web classique ou une version optimisée pour les i-Phone.

Le processus est cependant coûteux en terme de ressources et il est un peu en porte à faux avec le choix d'une solution PHP, souvent synonyme d'application à moindre coût sur une plateforme de faible puissance. L'option au dessus est certainement le développement d'une solution Java/JSP répartie sur des fermes de machines multicores, en fail over, à coups de serveurs applicatifs dont les prix des licences dépassent les dix mille euros par processeur.

Un choix moins élégant pour l'esprit est d'utiliser un système de templates où se situe tout le code statique d'affichage et de gérer l'insertion des résultats dynamiques via des variables. Dans PHP, les bibliothèques d'outils sont apparues très tôt, avant même le recourt systématique au modèle M.V.C.

Rapidement, les gestionnaires de templates ont dérivé avec l'apparition de pseudo code pour avoir plus de fonctionnalités telle que la gestion de boucles pour afficher toutes les lignes d'un tableau, à partir d'une seule variable, sans que ce soit à gérer dans le code classique PHP. Là, les détracteurs ont été nombreux, en mettant en avant que les systèmes de templates entraîne un coût supplémentaire en calcul et qu'il est complètement absurde d'en utiliser au dessus de PHP, car PHP est déjà un système de templates.

La consommation de ressources est amortie avec le recours aux bibliothèques de cache qui conservent les pages générées et servent rapidement les sauvegardes. La gymnastique du programmeur est de trouver un juste milieu entre une fréquence de rafraîchissement raisonnable, si le contenu évolue au cours du temps, et une minimisation des calculs à faire lorsqu'un visiteur arrive.

C'est jouable quand vous avez des pages communes à tout le monde dont l'information est relativement statique. Cela l'est moins si votre page est personnalisée pour chaque visiteur, avec un contenu qui évolue vite au cours du temps. La page en cache est toujours obsolète et vous devez la régénérer à chaque visite et en plus vous consommez de l'espace disque et vous traitez du code supplémentaire pour des prunes.

CakePHP ne donne aucune contrainte quant à l'utilisation de templates pour la vue et vous pouvez tout à fait coder cette partie en PHP, tout en vous focalisant sur de la gestion d'affichage. En pratique, ce n'est pas aisé. D'une part à cause du mélange code de présentation, style CSS, Javascript et XHTML avec votre code PHP au milieu, un problème que j'ai déjà mentionné. L'autre travers est la tendance de mettre trop d'intelligence dans le contrôleur et de restreindre la vue à une simple impression, du coup votre contrôleur devient massif.

L'utilisation d'un système de templates comme Smarty introduit un meta langage particulièrement riche, qui vous permet à la fois de séparer la présentation du code et d'insérer juste ce qu'il faut comme intelligence dans votre couche d'affichage. La valeur ajoutée de Smarty est de retranscrire son langage propre sous forme PHP et ces fichiers sont physiquement générés. Vous avez une pseudo compilation. Votre code fait appel aux fichiers PHP sans passer par une interprétation systématique des fichiers templates. Même si le code généré peut comporter quelques lacunes en terme d'optimisation, le gain est appréciable et rejoint les performances d'un codage direct en PHP, avec la clarté et le bon dosage d'intelligence en plus.

A mes yeux, l'autre grande valeur ajoutée de Smarty est sa gestion avancée du cache. La gestion de cache proposée par Smarty est un peu lourdingue pour les cas simples. Des bibliothèques plus pauvres se contentent de photographier les pages et se basent sur leur adresse web pour les retrouver dans leurs indexes. C'est peut être simpliste mais c'est efficace et c'est d'ailleurs ce que je préfère utiliser sur certaines parties du site.

Smarty dévoile surtout sa puissance dans des situations plus élaborées, où vous avez besoin d'avoir une partie dynamique sur votre page tandis que le reste ne bouge pas. C'est le cas par exemple sur notre page d'accueil, où les utilisateurs sont différenciés par l'affichage de leur nom. L'accueil passe par de nombreuses requêtes à la base de données pour être fabriqué et le générer complètement, à chaque visite, met à mal le serveur. D'un autre côté, la page du visiteur A ne peut pas être servie au visiteur B car elle affiche le nom d'utilisateur de A.

Smarty propose une alternative très simple avec l'insertion de tags spécifiques dans les templates pour signaler qu'une partie doit être systématiquement calculée, alors que le reste peut être stocké en mémoire et resservi. Il s'agit cependant d'une fonction avancée et il faut que le module tokenizer soit activé sur votre moteur PHP. Il l'est normalement par défaut.


Système de templates Smarty

Discuter de ce billet sur le forum - Laisser votre commentaire »

Réflexions de webmestre (1/4): Coder ou ne pas coder

Publié par Pazu le 31 mars 2008 23:03 dans Webmastering :: 2 commentaires »

Il est très loin le temps où les sites se faisaient uniquement avec de la simple page HTML de statique de chez statique, où le seul élément dynamique est l'affreux blink qui provoquait des crises d'épilepsie chez vos visiteurs.

Au jour d'aujourd'hui, il est difficile d'imaginer une page sans son lot de javascript et ses effets de style pour les puristes. Sans oublier la possibilité maintenant d'avoir son site dynamique avec son moteur php et sa base MySQL, qui repoussent les limites des possibilités à ce que vous offre votre hébergement en terme de puissance de traitement et de place.

De nombreuses questions doivent vous venir à l'esprit quand vous vous lancer dans un site et l'une d'entre elles concerne la partie technique, à savoir si vous vous en charger ou si vous vous reposez sur des solutions clefs en main.

Le problème ne se pose pas si vous êtes une burne en informatique et que vous n'avez pas le choix de toute manière.

Cela dépend aussi de ce que vous souhaitez concevoir comme site web. S'il s'agit d'un simple blog et que vous n'avez pas de contraintes techniques bizarroïdes, il est quasi certain que vous trouvez votre bonheur parmi les multiples plateforme qui existent et qui vous laisse une très grande liberté pour fabriquer votre template personnalisé, pour vous démarquer des autres auteurs qui auraient pris le style par défaut.

Le template n'est pas forcément simple à construire mais vous vous affranchissez de la conception et de la maintenance de votre moteur de blog. Il existe d'autres produits style Joomla ou Drupal qui vous procure carrément un site complet clef en main et qui vous permettent de vous focaliser sur la partie look and feel, au lieu de vous battre pour pouvoir enregistrer et afficher votre texte suivant qu'il est en brouillon ou publié.

Le principal service rendu par ces outils est de vous fournir un tas de fonctionnalités sympathiques qui enrichissent les services rendus par votre site et qui vous permettent surtout de vous concentrer sur votre valeur ajoutée, à savoir le contenu que vous souhaitez communiquer à vos lecteurs, au lieu de perdre votre temps à réinventer la roue.

La maîtrise des outils est parfois délicate, même en se limitant à un aspect fonctionnel, mais le temps passé l'est à bon escient. Les concepteurs ont essayé en général d'allier une simplicité relative avec une liberté de construction de site, même s'il reste certaines contraintes. En revanche plus vous souhaitez avoir une application simple à l'usage, plus elle semble limitée dans ses possibilités et plus elle est contraignante. C'est un peu aussi le succès des blogs dont le système de publication est quand même très léger par rapport à un système de gestion de contenu complet. Pas besoin de penser navigation de pages, les billets s'enchaînent les uns après les autres, avec des tags pour faciliter la recherche.

Les outils sont suffisamment riches pour répondre à divers besoins, avec souvent des modules et des extensions si vous avez  besoin d'une galerie d'images ou d'un forum. En revanche, l'association des différents modules n'est pas forcément possible. Si vous mettez un système de gestion de photos et un forum, vous vous retrouvez assez souvent avec deux bases d'utilisateurs qui n'ont rien à voir.

Des systèmes permettent d'avoir des ponts de l'un à l'autre pour partager les mots de passe mais cela présente plusieurs limitations. D'abord il est rare que le branchement fasse intégralement partie du package de base. Il vous faut entrer dans le code et des fichiers de configuration pour changer certaines valeurs et certains branchements. Votre code devient ainsi personnalisé et vous ne pouvez plus effectuer vos mises à jour de code à l'aveuglette.

D'autre part, plus souvent qu'on ne le croit, le produit A évolue mais pas forcément le pont qui relie le produit B au produit A. Pour continuer à faire fonctionner les deux, vous devez attendre que le pont devienne compatible avec la nouvelle version de A et pendant ce temps là, vous êtes bloqué.

Enfin, qui dit base commune d'utilisateur et de mot de passe, ne veut pas dire que vos visiteurs ne soient pas obligés de s'authentifier deux fois, une fois sur chaque outil.

Un autre danger, si vous vous placez dans le long terme, est de choisir la mauvaise application et que celui-ci disparaisse relativement rapidement de la circulation. Vous vous retrouvez à devoir migrer vos textes et autres données dans un autre produit. Dans le meilleur des cas, c'est possible de façon native et c'est relativement fréquent en ce qui concerne les différents forums.  Assez souvent, vous devez vous débrouillez autrement et si les structures sont trop complexes, vous devez vous palucher beaucoup de travail à la main.

La richesse des produits clefs en main est à la fois attractif tout en étant source de défaut. Si vous avez quelque chose qui fait papa maman, vous avez quelque chose de relativement complexe derrière et forcément quelques soucis à me maîtriser dès que vous souhaiter personnaliser quelque chose au niveau du code ou que vous avez une migration à faire. Sans oublier que des traitements complexes entraînent forcément une consommation plus grande des ressources.

Un produit comme PunBB joue d'ailleurs très bien sur ce registre en affichant une simplicité exemplaire avec un minimum de fonctions vitales. Après les performances se gâtent sérieusement lorsque vous commencez à ajouter des modules pour mettre une fonction que vous considérez vitale mais pas PunBB.

La côté modulaire à la carte est également très présent dans certains système de gestion de contenu comme Drupal mais vous êtes toujours prisonnier du comportement standard des modules.

Etant donnée la panoplie d'outils et d'intégration possible entre eux, la question du codage maison se pose surtout si vous avez des fonctions vraiment spécifiques et qu'aucun produit ne réponde à votre attente. Là, vous pouvez aussi faire dans la demi mesure, en sortant un module à votre sauce qui s'adapte à un programme père que vous utilisez un peu comme framework. Pour prendre un mauvais exemple, vous pouvez inclure des fichiers de code de phpbb dans toutes vos pages pour gérer des sessions utilisateurs. Pour ma part, si je me base sur les sessions phpbb3 pour Animint, j'ai procédé un peu différemment mais je reviendrai dessus dans un autre billet, ultérieurement.

Les puristes peuvent toujours se lancer dans le codage complet. Cela se justifie amplement si c'est pour proposer des services originaux et pour assurer une osmose entre les différentes rubriques de votre site. C'est plus un boulet à traîner qu'autre chose s'il n'y a rien de plus. Certes, vous avez toujours le gain de n'avoir que les fonctionnalités vitales, sans surplus inutiles mais vous vous privez des apports d'un outil conçu par une communauté sans omettre le temps que vous pouvez passer dessus, au détriment du contenu.

Après, cela dépend aussi de la philosophie que vous suivez quant à votre site, à l'image du bricoleur qui passe son temps à s'occuper de sa maison et à apprendre sur le tas, au lieu de régler tout ça en faisant appel à un professionnel.  C'est sûr qu'en baver un peu pour coder vous permet certainement d'avoir un oeil critique sur les différents produits par la suite.


Coder ou ne pas coder

Discuter de ce billet sur le forum - Laisser votre commentaire »

La killer application manga sur Facebook

Publié par Pazu le 23 février 2008 11:02 dans Webmastering :: 6 commentaires »

Facebook est un site web de réseau social, où vous pouvez ouvrir votre profile et constituer un cercle d’amis et de connaissances. Le site a défrayé la chronique suite à ses légèretés prises avec les informations privées laissées par ses utilisateurs et même maintenant, il faut penser à imposer une vue limitée entre les informations personnelles et publiques, si vous ne souhaitez pas qu’un inconnu, ami d’un ami, arrivé par le biais d’un de vos réseaux, ne découvrent vos penchants olé-olé.

Le deal est d’accepter de livrer des informations plus personnelles afin d’obtenir des fonctionnalités plus fines, mais l’échange ne se fait pas forcément en votre faveur. Certes, mon sujet n’est pas d’entrer dans ce débat autour du big brother business, mais soyez en un minimum conscient, quand même. Vous trouverez suffisamment d’articles dessus, en fouinant par ailleurs.

Le concept américain a fait des émules dans le monde entier mais Facebook revendique plusieurs dizaines de millions d’utilisateurs en tout, alors que plusieurs freins subsistent dont la langue de l’interface, qu’en anglais à l’origine. L’espagnol vient tout juste d’arriver et le français et l’allemand devraient bientôt suivre. Pour ma part, je vois affluer de plus en plus de mes contacts dessus et la francisation de l’interface devrait logiquement attirer plus de francophones.

Cependant, même si des buzz font augmenter la fréquentation du site, cela ne signifie pas que tous les gens restent forcément dessus. Ils peuvent tout à fait s’en lasser s’ils n’ont finalement rien à y faire. La controverse intellectuelle se résumera ensuite à savoir s’il s’agit d’un feu de paille ou d’une traînée de poudre.

Je m’intéresse à Facebook pour la partie technique qui permet d’intégrer des applications dans le site. C’est un exemple d’utilisation de REST à grande échelle, sachant que les briques de base des logiciels client sont disponibles dans leur section pour les développeurs. Là encore, vous avez une question philosophique parce que si Facebook fait en sorte de pouvoir intégrer votre programme à ses couleurs et dans ses pages, l’inverse est impossible – toujours ce concept de l’échange mono sens.

Pourquoi procéder à une telle intégration? S’il s’agit de reprendre l’application et d’auréoler le tout dans le style Facebook, l’intérêt est minime. En revanche, nous passons un cran au-dessus en intégrant les fonctions natives de gestion des utilisateurs du site, telles que le travail sur les profiles, la recherche d’amis et les notifications.

La gestion évoluée de profiles des personnes est tout à fait possible de faire sur son propre site en ayant un système adéquat mais c’est plus rapide à implémenter via un site tiers quand vous n’avez rien. Puis, cela permet de toucher potentiellement beaucoup plus de monde mais pour cela, il faut trouver la killer application qui attirera les foules.

Vous pouvez jeter un coup d’oeil sur l’essai d’intégration de la base encyclopédique d’Animint, à l’adresse

http://apps.facebook.com/anime-manga/

Facebook manga

Discuter de ce billet sur le forum - Laisser votre commentaire »

Voilà pourquoi vous allez ouvrir un blog pourri sur Naruto

Publié par Pazu le 10 février 2008 16:02 dans Webmastering :: 8 commentaires »

Nous pouvons dénoncer l'hégémonie de Google, qui accapare plus de quatre vingt dix pourcents des recherches sur la France – chiffres de janvier 2008 sortis par Xiti – mais l'avantage est de pouvoir cerner les comportements de l'ensemble des internautes français, en consultant les outils de prospection fournis par la société californienne.

L'un d'entre eux, Google Trends,  fournit une vision relative du volume des recherches pour un mot clé, par zone géographique et sur une période donnée. Vous pouvez remonter que jusqu'en 2004 et ajuster votre zoom au niveau d'une région française, si vous ne voulez pas être parasité dans votre analyse par les requêtes émises par d'autres pays. L'outil sert à affiner le choix des mots clés sur lesquels vous voulez positionner votre site, à supposer que vous ayez une cible de population particulière et que vous  ayez une marge de manoeuvre.

Les graphiques dans le temps reflètent parfaitement les buzz internet, avec des pics de recherche sur certains mots, suivant l'actualité en cours. Pour la Wii, vous avez ainsi une courbe à zéro tant qu'elle était inconnue, puis une grosse poussée de fièvre le mois de sa sortie en 2006, puis une période de calme avant un nouveau pic à la fin de l'année dernière, juste avant les fêtes.

Comparatif Naruto Wii

Nous n'avons pas les volumes absolus mais il est possible de choisir plusieurs mots à la fois, afin d'effectuer des comparaisons. Dans l'exemple précédent, j'ai pris wii et naruto. Résultats, en rythme de croisière – hors période de fêtes de fin d‘année - vous avez deux fois plus de requêtes sur le ninja de Konoha que sur la console de salon…

Dans le match suivant, vous avez naruto avec dragon ball – les gens font rarement des requêtes complètes dragon ball z – avec en courbe témoin manga. Dès début 2005, vous voyez une inversion des deux courbes rouge et bleu, tandis que le nombre de requêtes manga a tendance à baisser malgré l'explosion du phénomène. Là encore, il n'y a pas photo.

Comparatif Naruto Dragon Ball

Si vous voulez booster votre nombre de visites, faire un site sur Dragon Ball, c'est has been et si vous ciblez le manga en général, vous tapez potentiellement deux fois moins haut, dès le départ, que si vous ouvrez le nième blog pourri sur Naruto. CQFD.

Discuter de ce billet sur le forum - Laisser votre commentaire »

Une migration de phpbb2 à phpbb3

Publié par Pazu le 03 janvier 2008 12:01 dans Webmastering :: 1 commentaire »

Voici un témoignage technique concernant une migration de forum de phpbb2 vers phpbb3, dans un cadre un peu particulier, car nous utilisons PostgreSQL comme base de données.

Un administrateur m'a indiqué que les instructions d'upgrade étaient très succinctes mais elles m'ont paru suffisantes. Le premier impact technique est de travailler en UTF-8 au lieu d'un encodage traditionnel latin. Du côté PostSQL, cela signifie de travailler sur une nouvelle base de données, si l'ancienne n'était pas au format. Il est d'ailleurs conseillé de laisser la base d'origine intacte et de travailler sur une base cible.

La mise en place de phpbb3 est similaire à celle de la version précédente. Une fois placés les fichiers dans un répertoire avec les bons droits d'écriture, on appelle la page de l'assistant d'installation qui s'effectue pas à pas. Pour la migration, la première étape consiste à procéder à une installation depuis zéro de phpbb3.

Une fois la première phase terminée, un nouvel onglet est actif dans l'assistant, onglet qui permet de lancer la migration. Il faut indiquer la base et le répertoire de l'ancien forum. A partir de là, les données sont converties automatiquement en UTF-8 et recopiées dans la base cible. Quant aux fichiers récupérés depuis l'ancien répertoire, il s'agit principalement des images, à savoir les avatars et les smileys.

Pour Animint, la mise à jour automatique a été relativement longue et a dépassé l'heure sur le serveur de production. En test, en local, sur une machine moins puissante, avec les mêmes données pourtant, c'était beaucoup plus rapide. Deux ou trois profiles d'utilisateurs avec des urls d'avatars en File:///C : ne sont pas passés mais le reste n'a pas généré d'alerte et a l'air d'avoir été repris dans la nouvelle base.

Pour activer le moteur de recherche, il faut réindexer une première fois toutes les messages. Là, c'est une heure de plus et une augmentation de la taille de la base de trente pourcents. Sous MySQL, cela devrait être plus optimisée grâce à l'indexation full text. 

Une fois la migration de données effectuées, il reste quelques réglages à faire. D'abord placer correctement les droits, suivant la catégorie d'utilisateur et interdire ou autoriser les nouvelles fonctions, telles que les fichiers joints ou l'affichage des anniversaires par exemple. La maîtrise n'est pas évidente car vous avez des autorisations possibles fonction par fonction, au niveau global, et suivant l'utilisateur et le forum.

La difficulté réside dans le fait que certaines tâches sont paramétrable qu'au niveau global et non pas au niveau utilisateur et forum, et vice versa. Et bien entendu, les paramètres ne s'affichent du tout au même endroit suivant que vous voulez régler la plate forme ou seulement un forum, ou bien un groupe d'utilisateurs.

Après vous avez toute la partie personnalisation. D'abord le template, dont le format est similaire à phpbb2 mais incompatible d'abord à cause des nouvelles fonctionnalités et des nouveaux écrans, mais aussi à cause du code d'appel en lui-même, bien que celui-ci n'ait quasiment pas changé et que le principe reste grosso modo identique à phpbb2.

Des styles ont été migrés depuis phpbb2 mais restent avec une mise en page à l'aide de tableaux. Le skin prosilver officiel est techniquement plus élégant avec uniquement des div et une compatibilité XHTML strict. Le ton est cependant plus froid et il change beaucoup par rapport au subsilver phpbb2, avec notamment les profils qui s'affichent à droite dans les messages. Le subsilver existe aussi en version phpbb3 mais je trouve qu'il passe assez mal comme il a du quand même être visuellement adapté, d'où le choix de partir sur le prosilver.

Après, quelques changements dans le XHTML et les feuilles CSS permettent d'insérer votre look and feel. Au niveau CSS du prosilver, c'est un peu le bazar avec des éléments dupliqués dans plusieurs feuilles donc il faut savoir lequel est prioritaire.

Quand on parle de personnalisation, on pense surtout aux modules qui changent le code. Phpbb3 intègre une fonction native plus ou moins équivalente au Easy mod mais je n'ai pas approfondi plus que cela. Les Mod pour phpbb2 sont loin d'avoir été convertis au nouveau format et l'adaptation est pénible car le code source a changé, sans pour autant être meilleur en terme de clarté.

La dernière version intègre des balises bbcode personnalisables. Ainsi le tag spoiler n'est pas un mod à rajouter mais une balise à configurer. Même chose pour basculer du style Animint vers Shinmanga, via un paramètre passé dans l'url. J'ai juste eu à traiter le cas du visiteur anonyme mais cela fonctionne en natif pour les utilisateurs avec suffisamment de droits.

En revanche, la création d'un message à partir du lien « discuter de ce billet dans le forum » que vous pouvez voir ci-dessous, a été plus coton à recoder. A l'heure actuelle, il me reste aussi un bogue dans les discussions similaires.

Techniquement, les pages mettent moins de temps à se charger grâce au système de cache. Idem pour les recherches et la taille de la base est moindre par rapport à la version précédente, malgré l'index de recherche. Le confort supplémentaire concerne surtout les modérateurs et les administrateurs, et tout ce qui touche aux fonctions natives anti-spam.

L'utilisateur ne doit pas être trop dépaysé en ce qui concerne le forum public. En revanche, il peut être désorienté dans son panneau, qui regroupe à la fois son profile et ses messages privés. Les nouvelles fonctionnalités de base ne provoquent pas de révolution, surtout si vous les interdisez comme nous pour économiser de la place et des ressources CPU ;o).


Phpbb3

Discuter de ce billet sur le forum - Laisser votre commentaire »

L'éditeur idéal de manga, vu du webmestre

Publié par Pazu le 24 décembre 2007 11:12 dans Webmastering :: 1 commentaire »

Après le portrait de la vendeuse idéale, intéressons nous aux éditeurs de manga. Je pourrai embrayer sur les caractéristiques qu'en attendent les clients et les passer en revu en suivant divers critères, de la richesse de leur catalogue, au soin apporté aux traductions en passant par la qualité des reproductions. Vous pouvez faire l'exercice vous-même et vous êtes d'ailleurs invités à vous exprimer à ce sujet sur le forum.

Là, j'aborde un point de vue bien particulier, celui du webmestre, qui tient ses visiteurs informés des nombreuses parutions sur le marché français, quelque soit l'éditeur. L'intérêt du site est de proposer des actualités régulièrement, qui sont susceptibles d'intéresser ses lecteurs, sans avoir à trop se casser la tête, étant donné que les communiqués proviennent directement des éditeurs. En terme de contenu, cela se traduit chez certains par de multiples brèves, ou aussi par un planning de sorties, agrémenté d'un résumé pour chaque titre, voir déjà d'une critique.

J'ai toujours considéré qu'une rubrique de brèves des sorties était très dure à maintenir sur le long terme, sachant que d'autres sites se sont spécialisés sur le créneau. Par tradition, Animint comporte un planning avec une mise à jour mensuelle et le blog permet de relayer des critiques manga.

Pour le webmestre, l'éditeur idéal est celui qui va lui faciliter la tâche. La première condition est que l'éditeur lui donne accès aux informations. En terme de planning, le site web de l'éditeur peut très bien suffire s'il est maintenu à jour. Généralement, des attachés de presse maintiennent des listes de diffusions vers qui ils envoient leurs communiqués de presse, plus ou moins volumineux suivant le nombre nouveautés. En parallèle, ils se chargent d'assurer l'envoi des services de presse et c'est essentiel pour découvrir des titres de qualité mais complètement méconnus. Pour ma part, sans avoir eu les mangas sous les yeux, jamais je n'aurai mis en avant les ouvrages de Kita Konno. D'un autre côté, cela donne aussi un aperçu de certaines bouses infâmes proposées mais nous ne sommes pas obligés de les lire, dieu merci.

Cependant, les attachés de presse ne restent pas forcément longtemps et régulièrement, à presque chaque changement, le lien est complètement rompu, avec les aléas des successions et des restructurations. La démarche de contact est à reprendre depuis zéro, ô joie.

Pour tout le monde, l'éditeur idéal est celui qui respecte ses plannings. Pour notre webmestre, le changement de date se traduit par une mise à jour en plus à faire s'il est un tant soit peu respectueux de son public et s'il veut éviter de diffuser de informations erronées. Pour les manga, les dates sont mieux tenues que pour les sorties vidéos, où les décalages d'une semaine à quinze jours sont légions.

En revanche, certains éditeurs manga ont un véritable travers, à un point où j'en suis arrivé à attendre, pour l'un d'entre eux, la sortie effective du premier tome de la série avant de l'inscrire effectivement dans la liste. En trois mois, il est arrivé à enchaîner trois annonces de sortie en reportant systématiquement la date d'un mois à l'autre.

Le pied serait que tous les éditeurs mettent leur liste de parutions à disposition à l'aide de services web. Cela va plus loin que les flux RSS mais la technique permettrait de récupérer et de corriger automatiquement toutes les informations de base, quasiment en temps réel. Les éditeurs seraient assurés de ne pas avoir de mauvaises annonces sur les sources qu'ils cautionnent. D'autre part, au lieu de perdre du temps à consolider les différentes dates des uns et d'autres, les webmestres pourront se concentrer sur les critiques par exemple et apporter leur valeur ajoutée.


Editeur de manga ideal

Discuter de ce billet sur le forum - Laisser votre commentaire »

Sama, six mois après

Publié par Pazu le 15 décembre 2007 14:12 dans Webmastering :: 5 commentaires »

Pendant que j'y pense, cela fait quasiment six mois que le lancement officiel d'Aggregator Sama a eu lieu et qu'il est temps de faire un petit point à son sujet.

Le premier constat est que l'outil n'a pas changé d'un pouce depuis sa création. Les seules améliorations techniques concernent le filtrage des catégories, qui s'adaptent au format bâtard de certains flux estampillés RSS 2 mais qui n'ont rien à voir avec les pseudo standards du RSS 2. Un jour, espérons que la plateforme utilisée chez overblog pensera à intégrer les rubriques dans son flux. Faute de pouvoir filtrer les articles, cela exclut d'office des blogs meilleurs que la moyenne, mais trop généralistes par rapport au thème principal de Sama, les anime manga. 

Au niveau des fonctionnalités, il est sûr que le flux RSS de Sama est le plus utilisé et il tourne très modestement à deux cents utilisateurs différents, par jour. Par comparaison, le flux principal d'Animint.com fait plus en une journée que Sama en un mois. J'ai une vision assez empirique de la fréquentation sur le flux de Sama mais pour obtenir plus de détails, il faudrait passer par un outil du style Feedburner.

Au niveau des pages web, l'utilisation est encore plus succincte avec presque dix fois moins de visiteurs que pour le flux. Ceci n'est pas étonnant car les habitués utilisent de préférence leur lecteur de flux et que ne devraient passer par le web que les nouveaux venus et les robots. La page de statistiques des clicks en ligne reflète bien l'encéphalogramme plat des visites par ce biais.

A ce que je vois, quelques inconnus prennent cependant le temps de cliquer pour donner des notes aux billets – sans que cela devienne pour autant des vagues de notations systématique par le responsable de tel ou tel blog qui passait par là pour "booster" ses articles.

Sinon la page des sources a vraiment le mérite d'isoler les sites plus vivants que d'autres, même si les points ne sont pas une notion vraiment qualitative. En tout cas, le système fait disparaître de l'affichage les blogs qui n'ont rien publié depuis plus d'un mois et ne montre que les vraies sources actives, dont la liste reste finalement concise. Voir le nombre d'entrées diminuer est une bonne alerte pour songer à trouver de nouveaux candidats pour remplacer les sites endormis.

Je reconnais que la sélection est inégale en terme  de qualité d'articles et surtout d'intérêts – c'est sûr que le fan japonisant appréciera mieux un panorama des conventions japonaises qu'une énième présentation d'anime – mais avoir de nouveaux articles permet de maintenir le fil vivant et ne pas avoir à attendre deux mois un article sensationnel. Puis chacun conserve une patte personnelle, qui a su captiver mon attention un moment donné, pour que son blog soit inscrit.

Exceptés des sites qui ont disparu brusquement, parfois suite à une sombre histoire, il n'y a véritablement qu'un seul blog que j'ai fini par effacer de la base, à force de se contenter de pondre un billet pour chaque sortie de fansub. Je ne désespère toujours pas de trouver un blog intéressant sur Naruto – même si obtenir le triplet ("intéressant", "blog", "Naruto") est peut être plus ardu que tenter la quête du Graal...

Le côté positif de Sama, de mon point de vue, est le minimum d'effort qu'il nécessite dans sa gestion. La seule véritable inscription a été celle du Raton, qui a du chercher le lien pour savoir comment proposer son site, faire la démarche complète pour ouvrir un compte dans le forum, pour avoir le droit de nous contacter, et tout ceci pour apprendre que son blog est désormais référencé mais que tous ses articles non taggés japanim passent à la trappe... Les autres webmestres ont découvert leur inscription au fil de l'eau comme ils en témoignent ici et , ou encore là-bas


Aggregator Sama


Post Scriptum qui n'a rien à voir:

Puisque je suis dans un billet d'autopromotion gratuite, je vous rappelle qu'un concours pour gagner des DVDs Jin Roh est en ligne jusqu'au 27 décembre 2007, sur Animint, comme il y en a sur beaucoup d'autres sites web, en ce moment. Si vous y participez, prenez garde à ce que vous répondez. Je suis vraiment surpris par le taux de mauvaises réponses.

Discuter de ce billet sur le forum - Laisser votre commentaire »

Google est-il l'ami des sites web manga?

Publié par Pazu le 08 décembre 2007 13:12 dans Webmastering :: 8 commentaires »

Lorsque vous souhaitez un nouveau visiteur à moindre coût, le nombre d'options est réduit et la voie la plus courante est de le voir arriver sur votre site via les moteurs de recherche internet. En France, j'utiliserai plutôt le terme moteur de recherche au singulier, sachant que Google vampirise tout le créneau chez nous, laissant les autres Yahoo et consort loin derrière. Pire, son utilisation est tellement bien rentrée dans les moeurs que beaucoup ignorent l'utilisation de la barre d'adresse et rentrent directement les urls dans le formulaire de recherche du moteur.

Quel intérêt me direz-vous d'avoir de nouveaux visiteurs? Pour en avoir tout court déjà, surtout dans un domaine anime manga, où les gens peuvent se lasser et passer à autre chose, tous blasés qu'ils sont. Puis, si vous tenez un site, c'est logique de vouloir des visiteurs - après, il y a toujours la question du "pourquoi faire un site?" J'éviterai d'émettre un avis dessus sinon mon propos risque de s'égarer violemment en annonçant que quatre vingt dix pourcents des sites auraient mieux fait de ne pas voir le jour.

Après, vous pouvez vous demander pourquoi vouloir beaucoup de visiteurs? Là, nous avons surtout l'aspect économique qui transparaît. Animint n'a pas - jusqu'à quand? - de bannières publicitaires qui s'affichent à tout bout de champ mais le nombre de lecteurs a évidemment son importance de ce point de vue là, si vous êtes liés à une régie. Je doute également que les éditeurs ne s'attardent pour organiser des concours ou même nous envoyer un simple service de presse, si le site ne faisait que deux visites par jour.

Il existe donc une certaine importance à être positionné en bonne place sur les pages de résultats de l'ami Google, notamment sur les requêtes concernant la thématique du site. Un féru de vins de Bourgogne peut arriver par erreur sur cette page du site mais il repartira aussitôt car ce n'est pas le genre de boutiques qu'il cherchait. Cela l'est moins pour quelqu'un qui cherche les dernières sorties manga ou plus d'informations sur Kamichu!

La méthode onéreuse pour tenter de booster sa visibilité sur la planète Google est de s'acheter des espaces publicitaires soit sur le moteur lui-même, soit sur les milliards de pages qui relaient ses annonces. Bien entendu, il faut choisir avec soin les thématiques qui feront apparaître le lien sponsorisé. J'ai encore en mémoire, le message relayé par une entreprise du CAC 40, qui vantait auprès de ses soixante mille employés d'avoir mené une grande campagne d'achat publicitaire sur le moteur et d'avoir capté X millions de clics sur leur lien sponsorisé, lorsque les internautes tapaient le nom de la société…

A moins d'être une cruche dans le choix de son nom de domaine ou de pouvoir être confondu avec un nom commun, un site apparaît toujours en tête des recherches sur la requête du nom de domaine, surtout quand le site est important. Cela ne me viendrait jamais à l'esprit d'acheter un lien sponsorisé lorsque quelqu'un tape "Animint" mais si certains ont des sous à dépenser par la fenêtre, tant mieux pour eux. Un achat sur "manga" ou "dessin animé japonais" serait plus pertinent, en ce qui me concerne.

Outre les dépenses marketing, les webmasters ont dans leur besace, des techniques de référencement pour améliorer "gratuitement" leur visibilité, sur le moteur de recherche numéro un en France. Cela va du simple bon sens pour faciliter l'indexation du site par les outils du moteur, à des manoeuvres beaucoup plus sophistiquées pour lui faire croire que votre site est plus pertinent que les autres.

Cela explique techniquement une partie de mes réticences pour transformer la page d'accueil d'Animint en une version dynamique, alors qu'actuellement la version classique apparaît par défaut. Le site perdrait forcément en lisibilité du point de vue des robots indexeurs. Cependant, ce n'est la raison principale, car j'ai cru comprendre que les habitués sont attachés à la version statique de la page d'accueil. 

L'algorithme précis qui détermine la pertinence des pages selon Google est tenu secret pour décourager les tricheries liées à une optimisation abusive. Cependant, quelques règles empiriques se dégagent avec notamment une importance donnée aux liens qui pointent sur votre site et au texte utilisé pour le décrire. Ainsi, se targuer d'être le meilleurs site manga de l'univers est toujours mieux que d'être décrit comme une page web nulle à chier. Le panel complet pour référencer son site est loin d'être simple à maîtriser et les efforts à fournir pour améliorer son classement ne sont pas anodins. Il s'agit d'un véritable métier pour certains et toujours d'un travail de longue haleine.

Pour ne rien arranger, le fameux algorithme est en perpétuelle évolution chez Google et la formule miracle pour booster son rang peut devenir obsolète au bout de six mois, voire être considérée comme une tricherie et passible d'un bannissement du moteur de recherche. Dernièrement, des annuaires se sont pris deux paires de claques et ils ont sombré dans les méandres du classement à trop vouloir être bien référencés. Economiquement, les conséquences peuvent être catastrophiques pour un site qui table sur des visiteurs qui proviennent essentiellement  du moteur de recherche. Rétorsions justifiées pour certains, abus de position dominante de Google pour d'autres, le débat fait son bonhomme de chemin.

Dans l'absolu, comparer un site avec quatre cent mille visites par mois à un autre qui n'en a que cent mille n'a pas grand sens, si vous ignorez le taux de rebonds des sites. Ce taux de rebonds traduit la part d'utilisateurs qui ont vu une seule page du site puis s'en sont allés. C'est le comportement habituel des usagers qui arrivent via un moteur de recherche, car ils sont plus focalisés sur leur requête que sur votre site.

Un tel visiteur a beaucoup moins de valeur que celui qui revient régulièrement, qui est réceptif à tous vos messages et qui se sent concerné par la vie du site. Ce dernier est également un bon client pour participer au forum, laisser des commentaires et participer à l'animation en général.

Ainsi, tout en maintenant un nombre de visiteurs conséquent, un palier de qualité est franchi lorsque vous vous affranchissez des butineurs issus de Google. Les moyens ne manquent pas pour fidéliser votre lectorat avec les lettres d'information par mail, les flux RSS et diverses animations. D'où l'importance que j'accorde aussi aux communautés et populations de lecteurs, aussi  modestes qu'elles soient, style blogchan ou sama.

De mon point de vue, le référencement pur a une importance toute relative et elle ne justifie ni toutes les dépenses d'énergie ni toute l'obsession à son sujet. Je suis lassé par ces sites qui envoient des mails pour réclamer des échanges de liens à tout va en page d'accueil, en voulant me persuader que le net ne peut pas vivre sans eux. Quand j'apprécie un site, je fais un lien naturellement vers lui à l'occasion, sans me prendre la tête – ou bien le site trouve bien le moyen de nous soudoyer d'une façon ou d'une autre – D'ailleurs, il faudrait que je pense un jour à placer un lien "envoyez vos dons" pour financer ma prochaine PS3… euh… l'hébergement du site – n'y voyez aucune coïncidence si le montant demandé est le prix d'une PS3 hein…

Un peu plus sérieusement, un bon référencement arrive aussi de façon naturelle, du moment que vous tenez correctement votre site en suivant les règles du b.a. ba, à savoir soigner son accessibilité et tenir à jour son contenu en proposant régulièrement de nouveaux articles. Ignorez Google, pensez à vos lecteurs.
 
Référencement


Post scriptum:
Et vous, comment avez-vous découvert Animint? Pas en recherchant "petite culotte manga", j'espère...

Discuter de ce billet sur le forum - Laisser votre commentaire »

Les marronniers d'Animint

Publié par Pazu le 19 novembre 2007 23:11 dans Webmastering :: 4 commentaires »

Amorçons le sujet avec une petite définition glanée sur Wikipédia : "Un marronnier est un article d'information de faible importance meublant une période creuse, consacré à un événement récurrent et prévisible. Tout comme le marronnier qui invariablement, tous les ans, produit ses fruits, le marronnier journalistique reproduit les même sujets avec plus ou moins d'originalité."

Le principe s'applique de fort belle manière sur les sujets concernant la japanimation et j'en use abondamment sur ce blog comme d'autres le font par ailleurs. J'éviterai cependant de citer d'autres sites en exemple pour illustrer le côté simpliste et mièvre du marronnier.

Le premier grand classique concerne les rapports de conventions, avec notamment le sacro saint reportage sur la dernière Japan Expo en date, avec quatre photos au minimum : En premier, la foule devant la porte d'entrée, synonyme de bain initiatique; En deuxième, les stands; En troisième, la photo d'un invité histoire de dire que c'était culturel comme rendez-vous et enfin en quatre, ne pas oublier une photo de cosplay pour souligner le côté dépaysant des rencontres dans les allées.

L'article qui va avec reprend plus ou moins les mêmes thèmes et pour un minimum de copier coller, modulo le "c'était mieux" ou "c'était moins bien que l'année dernière", vous avez un billet bateau à pondre. Un par an, ce n'est pas énorme mais vous pouvez reproduire l'exercice pour toutes les conventions. Ainsi, je dois avoir trois éditions de l'Harakuju sur ce blog... en trois ans d'existence. Je vous fais quand même grâce pour l'instant de rétrospectives style "ma première convention Harakuju/ Japan / Epitanime / etc.", qui permetteraient de pondre dix articles, facile.

Les conventions demandent quand même à se déplacer et toutes sont loin de valoir le déplacement. Un sujet choisi, plus récurrent et plus facile est la notification des sorties du magazine mensuel Animage. Si l'article a la senteur et la texture du marronnier, au moins est-il un peu original par le choix du sujet. J'ai évité le coup du voyons voir le sommaire du dernier Animeland que vous avez déjà sous les yeux – Animeland présentant l'avantage d'être pérenne contrairement à d'autres journaux français, peut être pleins d'ambitions mais qui disparaissent au bout de six mois.

Enfin, la grande saison des marronniers revient au moins deux fois par an, avec un fameux panorama des sorties massives d'anime au Japon, au printemps et à l'automne. Je qualifierai  ce marronnier de général au regard de ce que vous pouvez voir sur les autres blogs pendant ces périodes. En deux phrases furtives, nous vous dressons le portrait d'une nouvelle série en l'encensant ou en la descendant en flèche, après avoir peut être visionné deux secondes du générique de début – vous savez, l'écran avec la liste des sponsors…  - oué j'exagère,  je sais...

Là, vous touchez du doigt une des grandes propriétés du marronnier, qui apparaît comme une corvée pour le rédacteur mais qui est attendu par le lecteur. Ne serait-il pas frustrant de ne pas voir apparaître les avis des uns et des autres sur les nouvelles séries pour prendre la température et aider à faire son choix parmi les nombreuses sorties. Pourtant, les articles catalogue de ce style ne sont pas des critiques détaillées et passent parfois complètement à côté de certains titres, en ayant produit un avis définitif dès le premier épisode.

Sur le net, je suis en revanche surpris par le vide d'articles récurrents par rapport à la presse écrite spécialisée, des articles du genre "les préjugés sur le manga ont la vie dure" ou "le boom des mangas en France". Nous échappons pour l'instant au "cours du manga à Paris et dans cinquante villes française", ou encore au "palmarès des éditeurs manga", sans oublier "le classement national 2007 des boutiques manga, établissement par établissement".


Marronniers

Discuter de ce billet sur le forum - Laisser votre commentaire »

Animint

anime & manga