Dual Blog : DeFr's Weblog

Annonce de service | mardi 29 janvier 2008, 15h15

Mood: Angry

Juste au cas où, une petite annonce pour vous prévenir que le serveur hébergeant l'ensemble des services du domaine defr.org (et Mega-Poudlard.com) va être déménagé par mon hébergeur, pendant la nuit de vendredi à samedi pour eux, mais en journée pour toute personne située dans le fuseau horaire de Paris.

Dreamhost prévient que la plage qu'ils ont réservés pour ce déménagement va (en heure française) de 7h à 15h, le samedi 9 février 2008. Je suppose que je pourrais, d'un point de vue technique, basculer les différents services de defr.org sur Hermes le temps de la maintenance pour assurer une continuité de service, toutefois je ne suis pas entièrement sur que ce domaine héberge des données dont le monde ne puisse se passer pendant quelques heures. A l'inverse, j'aurais bien aimé évité la coupure de service pour Mega-Poudlard, mais je ne suis pas sur que le petit Duron 900Mhz, les 256Mo de RAM et surtout la connexion ADSL derrière laquelle se trouve le serveur tiennent la charge...

Je suppose que la morale de l'histoire, c'est qu'il va falloir que je me décide à passer à un hébergement dédié dans un datacenter, par opposition à mon serveur dédié derrière une ligne ADSL :-)

PS: Morgan, si le premier billet de la journée t'avait provoqué une crise cardiaque, j'espère que celui-là ne va pas t'achever.

Les flux de syndication sur ce blog | samedi 10 novembre 2007, 17h28

Mood: Goggle

Quelques changements en profondeur sont intervenus sur les différents moyens de syndications présents sur ce blog, voici en conséquence un petit billet sur ce qu'il s'est passé dans les coulisses, incluant notamment le pourquoi et le comment des différents changements ^^;

Des excuses

Tout d'abord, je m'excuse pour les différentes personnes qui suivaient éventuellement le flux RSS des posts de ce blog, cette dernière a disparu dans le courant de la semaine... J'ai fait en sorte que l'adresse du flux RSS retourne désormais le flux Atom, mais en conséquence, il est probable qu'il se produise l'une des deux choses suivantes:

J'aurais tendance à considérer que la deuxième solution reste la plus favorable, mais dans les deux cas, je suis désolé de l'inconvénient que cela a provoqué. Les lecteurs qui utilisaient le flux Atom n'ont, a priori, subi aucune perturbation lié au changement profond qui s'est opéré.

Ce qu'il s'est passé

Justement, que c'est-il-passé ? Je me suis tout simplement décidé à tester la flexibilité de ce que j'avais en place, en faisant en sorte que les flux de syndication présent sur ce blog soit généré avec exactement le même code que la version XHTML, en utilisant des fichiers de templates (donc, XML dans mon cas, les curieux peuvent aller jeter un coup d'oeil ). Ce mécanisme n'a pas posé de problème particulier pour pouvoir se conformer à la spécification Atom, grâce au large choix possibles pour le contenu des entrées: chacun de mes billets étant formé de XHTML valide, j'ai simplement choisi le type xhtml, et l'affaire était réglée. J'en ai profité pour ajouter la même possibilité aux pages de commentaires, permettant ainsi d'avoir un flux par billet...

L'affaire s'est corsée lorsque j'ai voulu migrer le flux RSS. Historiquement, j'avais souhaité implémenté les deux pour satisfaire le plus grand nombre, d'autant qu'Atom était encore un standard en cours de développement, mais aussi parce que dans la version précédente mélangeant logique et présentation, l'implémentation de l'un ou de l'autre était à peu près aussi triviale (une soixantaine de lignes en PHP...) J'ai commencé par gaiement reprendre les modèles d'Atom en les adaptant aux différentes spécifités de RSS (quelques changements de noms dans les balises, quelques champs en plus ou en moins), arrive rapidement à un résultat qui semble probant, et là, problème: le lecteur de flux détecte le titre, mais pas le contenu des billets.

Après un peu de recherche, je me rends compte que j'avais fait en sorte, dans la version précédente, d'entourer mes billets dans le flux RSS entre un <[CDATA[ et un ]]>, indiquant d'un point de vue conceptuel pour XML qu'il pouvait y avoir à peu près tout et n'importe quoi dans ces billets, valide ou non, voir du binaire du moment que les octets correspondant aux caractères ]]> n'y figurent pas. Je fronce alors les sourcils: avec un tel balisage, normalement l'ensemble des lecteurs de flux devraient en conséquence afficher les différents posts comme du texte brut... et ce n'est pourtant pas le cas.

Je décide alors de chercher un peu sur Internet pour voir ce que dit la norme, et je découvre dans l'article sur Wikipedia que ça ne va pas être aussi simple que cela, vu qu'il n'en existe pas une, mais plusieurs. Le résumé, cependant, est que le contenu de la balise <entry /> de RSS devrait contenir du texte ou du contenu HTML (mais pas XHTML). J'ai donc du récupérer "l'astuce" concernant le CDATA sur un des flux que j'avais visité. Cependant, si ajouter les balises correspondantes dans un modèle basé sur des echo ne présente pas de difficultés particulières, ce n'est pas exactement la même chose lorsque l'on sépare la logique de la présentation: pour faire simple, aller remplacer quelque chose située dans une balise CDATA à l'aide du DOM, de façon générique, ce n'est pas particulièrement amusant, et généralement pas très utile.

La décision

C'est alors que je me suis posé la question: pourquoi donc avais-je besoin d'Atom et de RSS, dans un monde où désormais tous les lecteurs de flux lisent les deux. N'ayant pas trouvé de réponse satisfaisante à cette question, j'ai pris la décision qui s'imposait: ne fournir un flux que d'un seul type sur ce blog... Je n'ai a priori pas vu de grands cris à la disparition du flux RSS, je suppose qu'en conséquence le raisonnement était fondé et qu'il s'agissait de la bonne décision ^^;

Et maintenant ?

Et bien, l'ensemble des pages de ce blog disposent d'un équivalent Atom. Je ne vois pourtant que le flux concernant les billets? me direz-vous, et vous aurez bien raison, pour une raison simple: je n'ai pas encore décidé de la façon dont je souhaitais présenter que soit construite l'url propre vers les flux atoms des différents billets... Inquiétude purement geek s'il en est, certes, mais que je prends à coeur ;-) Je pense que ce sera un /atom à la fin de l'adresse classique, mais ce n'est pas encore décidé... En attendant, si vous souhaitez sans plus attendre pouvoir accéder au flux Atom d'un billet ou d'un tag par exemple, il vous suffit d'ajouter ?outputType=atom à la fin de l'adresse.

Repartir sur des bases saines | mardi 30 octobre 2007, 22h50

Mood: Tongue

Reprendre en main les différents sites de mon domaine, defr.org, l'envie me taraudait depuis un bon moment. J'étais toutefois confronté à deux problèmes majeurs: le manque de temps d'une part, assez chronique chez moi, et une certaine démoralisation d'autre part au chargement de mes différents sites: ces derniers se retrouvaient attaquer par un grand nombre de spammeurs... Au final, le temps que j'aurais souhaité passer à ajouter du contenu étaient entièrement passé à me débarasser des traces de tous les indésirables passés par là, me laissant un goût amer dans la bouche qui me tenait éloigner de tout cela pendant un bon moment.

Le problème de temps c'est plus ou moins solutionné de lui-même lorsque je me suis retrouvé en repos forcé, suite à un léger problème par rapport au stage à l'étranger que je me dois d'effectuer pour valider mon diplôme de l'Ecole Centrale de Nantes : alors qu'il était initialement prévu que je le fasse dans la même société que mon TFE, je me suis retrouvé fin Septembre à la fin de mon TFE, mais sans le stage à l'étranger... J'ai donc eu du temps libre depuis lors, en parallèle de ce fameux stage-Graal (que j'ai finalement trouvé, dans un laboratoire en Espagne, pour y faire un peu d'infographie)

Pour le deuxième point, cela s'est fait par étape. J'ai tout d'abord totalement changé defr.org: ce dernier fonctionnait sur une version 1.5 de MediaWiki, non maintenue, disposant de failles rendues publiques, et qui s'était retrouvé relativement spammé malgrès les quelques filtres mis en place (principalement la necessité de crée un compte avant de pouvoir éditer une page). Je m'en suis particulièrement rendu compte lorsque Benoît m'a fait remarqué que la page concernant mes sites c'était vu totalement défiguré, et indiquait désormais que j'étais l'heureux possesseur d'un grand nombre de sites sur les thèmes du viagra, de la pornographie et bien d'autres joyeusetés encore. En conséquence, j'ai réagit: j'ai changé de moteur, passant sur Dokuwiki et intégrant au passage une nouvelle skin que m'avait gentiment réalisée Reaktif (qui semble ne plus avoir de site ?) il y a bien deux ans... Je suis aussi passé en mode fermé, à mon grand regret: cela signifie que je suis le seul à pouvoir créer des comptes, et que seuls les possesseurs de compte peuvent éditer leurs pages. Cela détourne fondamentalement le wiki de sa volonté première, mais semble être l'une des seules solutions viables pour lutter contre le spam. J'en ai profité pour stocker mon template sous version de contrôle via Mercurial, auquel je suis devenu assez accro (j'ai d'ailleurs quelques référentiels que je publie).

Une fois le wiki géré, j'ai décidé de m'attaquer à ce blog, qui recevait lui aussi son lot de spam via les commentaires. J'ai mis en place il y a un certain temps l'excellent plug-in SpamClear pour DotClear sur le blog de ma chère et tendre, qui m'a permi de me rendre compte de la redoutable efficacité d'un filtrage des commentaires par un algorithme bayesien, j'ai par conséquent décidé d'appliquer le même principe içi. L'avantage majeur, c'est que cela ne réduit en rien l'accessibilité du formulaire, l'inconvénient c'est bien entendu le risque de faux positifs... Pour le moment, j'ai mis en place un filtre analogue, et pour limiter la casse en cas de problème, l'ensemble des commentaires sont enregistrés, le filtre ne pilote que leur visibilité. Combiné à une notification automatique par mail des différents commentaires, cela devrait au final permettre, avec un peu de chances, d'avoir un blog qui ne soit pas encombré de commentaires de spam.

Toutefois, pour implémenter ça, il a fallu se relancer dans le code, pour se rendre compte que finalement, c'était quand même pas très joliment écrit, avec notamment l'ensemble de la logique et de la présentation intimement meler, en utilisant joyeusement des echo par-ci par-là. Ayant commencé à developper une petite bibliothèque justement destiné à l'utilisation de template (disponible ici, et librement inspiré des concepts implémentés ), je me suis dit que c'était une parfaite opportunité pour la tester en situation réelle, et voir ce qui pourrait éventuellement manqué... Comme on peut le constater dans l'historique du projet que l'on peut consulter dans le lien précédement mentionné, cette utilisation a effectivement conduit à quelques modifications ^^; La modification s'est relativement bien passé, et le code découple désormais complètement la logique de l'affichage. Idéalement et pour pousser jusqu'au bout le concept, des flux atoms et rss seront disponibles pour l'ensemble des ressources de ce blog: désormais, cela ne représente plus qu'un petit travail, le développement de templates alternatif, et cela pourra être une réalité :-)

L'ensemble de Dual Blog est fort logiquement sous Mercurial aussi, mais le référentiel n'est pas encore public. Il est assez envisageable que ca puisse rapidement le devenir s'il y a une demande pour ça, toutefois je souhaitais auparavant régler leurs comptes aux différents flux. Je ne pense pas non plus pouvoir réellement redistribuer les skins telles quelles, notamment Somatic, affichée par défaut et qui utilises de magnifiques icones de David Lanham. Il ne s'agit cependant que d'un fichier CSS et des icones, ce qui devrait relativement faciliter leur suppression de l'archive, et un éventuel remplacement par des icones du projet Tango (s'il existe d'autres icones, plus proches de celles actuellement présentes et sous license libre, je suis preneur, parce que personnellement je n'ai pas trouvé...)

PS: Merci à Morgan de m'avoir traqué jusque sur Facebook pour me motiver à écrire ce post ;-)

Reprenons les choses en main | mercredi 15 novembre 2006, 15h21

Mood: Goggle

Indéniablement, il faut le reconnaitre, ce blog a été laissé à l'abandon : des tonnes de commentaires de spam sont restés présent pendant des lustres, les posts sortent à une fréquence incroyablement basse... Il semble par conséquent grandement temps de se reprendre. D'autant que, mine de rien, j'y tiens, à ce blog avec sa petite interface d'administration évoluée réalisée à un moment ou le marketing n'avait pas encore émis l'idée du Web 2.0

J'ai commencé à reprendre tout ca en main ; en priorité, les commentaires de spam ont été supprimés, les ips des spammeurs sur lesquels j'ai pu mettre la main banni de l'ensemble du domaine via un brutal .htaccess... Bien évidement, je ne vais pas aller jusqu'à esperer que cela sera suffisant pour tenir éloigner à vie les robots indélicats de Dual Blog, mais il semblerait qu'il s'agise pour le moment d'une solution efficace... ( oui, oui, je touche avec beaucoup d'attention la table en bois situé sous le portable en ce moment ^^; )

Il serait bien entendu possible de mettre en place des solutions plus agressive pour lutter contre le spam, entre autre connecter ce blog à quelques listes noires bien connues ou mettre en place des mécanismes servant à vérifier l'humanité de la personne soumettant le commentaire ( merci les tests de Turing ), mais je prefererais éviter autant que possible le recours à ce genre de méthode, pour deux raisons :

Pour ce qui est des posts, je vais m'y remettre aussi. Je pense que pour cela réussisse réellement, une refonte partielle du concept va être necessaire, mais, je suis bien décidé m'y mettre. En effet, ca commence à devenir frustrant, d'être en option Informatique à Centrale Nantes, de coder tout plein, mais absolument pas sur des projets qui me tiennent à coeur...

J'ai d'ailleurs commencé à me remettre serieusement à réparer des bugs sur MP pendant les dernières vacances histoire de me faire un peu plaisir, et j'envisage de faire quelques choses avec mes hébergements... Pour le moment, j'ai un compte chez DeadSerious que je n'utilise pratiquement pas et un compte chez DreamHost sur lequel sont situé la quasi-totalité des sites important. Concrètement, il reste à migrer WeasleysWheezes.net et les différents sous-domaines qui lui sont afférents.

Accessoirement, un certain nombre de posts devraient sortir sur ce blog, les sujets ne manquant pas : les projets à Centrale, la sortie de Neverwinter Nights 2... Attendez-vous prochainement à une serieuse mise à jour de la bloggroll également, et probablement des différentes autres sections aussi, le tout ayant quand même quelque peu evolués depuis la dernière mise à jour :-/

Je suis toujours là | samedi 15 avril 2006, 22h02

Mood: Oohh

Certaines personnes m'ont fait remarquer, probablement à juste titre, que ce blog souffrait réellement et dramatiquement d'un manque de mise à jour... Erm, disons qu'avec un dernier post datant d'aout 2005, je peux difficilement dire le contraire.

Le pire, c'est que je n'ai pas vraiiiment de raison à ce long silence, pas de grande justification. D'un point de vue matériel, c'est même étrange puisqu'avec mon déménagement de Nantes, je me suis retrouvé avec une connexion bien à moi, stable et performante ( j'dois avouer que - et je touche du bois - j'ai toujours eu des connexions tops chez Free ), et surtout, contrairement à l'année dernière, accessible en permanence, plus seulement à partir de 18h.

Il ne s'agit pas, non plus, d'un dés-interet pour le web en général, puisque j'ai continuer d'y être relativement actif, même si j'ai relativement moins développer mes talents de webmastering qu'au cours de l'année passée. Ou du moins, plus de la même facon : bizarrement, je me suis retrouvé à faire moins de XHTML/CSS et beaucoup plus de PHP, majoritairement pour MP où j'ai developpé un certain nombre de notions qui m'plaisent assez, et que j'aurais bien envie de pousser plus loin... Pour la diminution de la quantité de XHTML/CSS, j'aurais tendance à penser que ce n'est pas sans rapport avec un certain monsieur, et le fait qu'il n'y ait pas réellement tellement d'occasion pour m'amuser à debugger ses designs etc ^^;

Un facteur, probablement, c'est le fait que je me sois nettement plus plongé dans l'IRC depuis que MP dispose de son propre serveur que j'héberge sur home.defr.org, et sur lequel j'ai donc du passer du temps pour prendre en charge un certain nombre de taches dont je m'étais déchargé auparavant. Je dois dire que cette activité à pris pas mal de temps, et modifier même mon usage d'autres outils comme la messagerie instantanée...

Autre facteur, d'importance, le fait que je sois désormais en quasi-permanence en conversation via Skype - à défaut de pouvoir être physiquement à côté d'elle - avec ma douce Sylvie, ce qui a tendance, et c'est tant mieux, à monopoliser mon attention, et du coup me faire oublier un peu le reste, ce qui inclue mais sans s'y limiter ce blog. Ce n'est absolument pas une mauvaise chose, mais une réalité à prendre en compte ^^;

Toutefois, j'ai une bonne nouvelle pour les eventuels lecteurs restants de ce blog : j'ai décidé de remédier à la carence de posts. Bon, je ne vais pas essayer de promettre la lune, avec des choses que je ne tiendrais pas, comme un post par jour. En effet, j'ai déja essayé ce genre de choses, et ca ne convient pas à la facon dont j'écris ces posts. Mais, j'espere obtenir quelque chose de décent au final, et qui ne laissera plus un an entre deux posts. Pour ca, différents trucs sont envisagés, entre autres une modification relativement profonde de la facon dont ce blog est orgagnisé... Stay tuned

Dual Blog : Nouveautés arrivées et à venir | mardi 09 août 2005, 21h04

Mood: Clop

Mon stage chez Open Web Solutions m'ayant réellement donné le goût de l'orientation objet en PHP, je ne pouvais laisser mon weblog dans son état actuel ^^; En effet, comme les lecteurs réguliers le savent, le code de mon weblog était un mélange étrange de code d'origine variées, avec des fonctionnalités se rajoutant au fur et à mesure. Ainsi, il était possible de trouver des lignes de code révélant un portage direct de l'ASP vers le PHP, et autres joyeusetés. Je ne pouvais pas laisser cela en l'état, et j'ai donc décider de reprendre le tout en main en utilisant une joli syntaxe orientée objet en PHP5.

Cependant, si je n'avais que cela, je n'aurais probablement pas bloggé dessus, puisque l'interet aurait été relativement minime : si le code change, je compte bien encore une fois montrer toutes les vertues de la séparation apparence / contenu en faisant en sorte que le changement soit invisible à l'utilisateur final. Cependan, quitte à me replonger dans le code, j'en ai profité pour rajouter quelques fonctionnalités qui manquaient à ce weblog, trouver au fil de mes pérégrinations sur le web et qui ont retenues mon attention.

Tout d'abord, changement qui n'est pas directement visible pour vous, mais qui aura un impact indirect sympathique : j'ai modifié mon administration, pour qu'elle gère les émoticones que je mets en mood sur ces posts. J'avais fait quelque chose de très basique auparavant, qui s'est retrouvé écrasé lors d'une édition malheureuse du fichier, j'ai donc décidé de tout recommencer à zéro... pour un résultat nettement meilleur ^^ J'ai d'ailleurs à cette occasion découvert que l'on pouvait mettre des img dans des option, du moins dans Firefox, ce qui me permet dans le cas présent d'obtenir un menu déroulant très sympathique :

Un select, avec une image en face de chacune des options

Concretement, cela devrait se traduire par la présence d'une emot sur chacun des posts à venir, et en plus me permettra d'augmenter la variété, en me rappellant à chaque fois ce que j'peux choisir ^^

Nettement plus interessant pour vous, l'implémentation de tags à la façon Flickr ou Technorati, qui permette d'associer différents mots-clés à un post, et de lister par la suite les posts associés à un mot clé donné. C'est nettement plus pratique que les catégories habituellement présentes sur les systèmes de weblogs, puisque l'on est pas obligé d'attribuer un et un seul mot clé à un post. On peut associer aux posts associer à un mot clé par l'utilisation de http://defr.org/blog/tags/Nom_du_tag. A terme, http://defr.org/blog/tags/ devrait contenir la liste des tags utilisés, avec une indication des plus utilisés.

Evidement, dans le cas idéal, je repasserais sur l'ensemble de mes anciens posts pour leur associer les tags qu'ils méritent. Cependant, si cette tâche n'est pas totalement herculéenne, elle prendrait un tems non négligeable, et je dois bien avouer que j'ai des tonnes d'idées plus agréables de passer ces moments de vacances. Mais ca fait partie des choses que je vais faire un jour.

Je compte aussi passer la feed ATOM de ce blog de la version 0.3 à ce qui devrait devenir la 1.0, puisque les évolutions sont assez positives... Et que ma feed 0.3 actuelle n'est même pas valide. Accessoirement, je vais peut-être mettre aussi une feed sur les commentaires, pour pouvoir les récuperer eux-aussi de facon externe. Le niveau de complexité devrait être presque nul, et je suppose que ca pourrait au moins me servir à moi. ^^;

Déménagement de site | dimanche 24 juillet 2005, 22h01

Mood: Tongue

Je l'envisageais depuis un certain temps, c'est maintenant fait : defr.org - le reste des sites que j'héberge devrait suivre - est passé de DeadSerious, hébergeur que j'aime énormement, à DreamHost, hébergeur dont j'ai entendu beaucoup de bien, et qui semble effectivement tout à fait correct, même si mon expérience avec eux est bien trop courte ( trois jours ) pour que je puisse réellement fournir un avis objectif et éclairé sur la question. La suite de ce post va vous expliquer les raisons m'ayant poussé à faire ce choix.

Tout d'abord, une part de responsabilité non négligeable dans cette migration est à attribuer à mon stage chez Open Web Solutions. En effet, le projet que j'y developpe est en PHP 5, l'une des idées étant de produire un projet orientée vers l'avenir, et utilisant les différents fonctions apportées par la nouvelle version du langage. Le problème, c'est qu'à force de programmer en PHP 5 à longueur de journée - depuis tout de même 4 semaines - j'ai pris réellement goût aux avantages subtils mais néanmoins particulierement agréable à utiliser apporter par la nouvelle version. A un point tel que le retour en PHP 4 s'avère penible... L'absence de support de PHP 5, sans date claire permettant de savoir quand il arriverait sur DeadSerious est la raison qui m'a finalement fait basculer vers DreamHost.

Toutefois, DreamHost présente aussi d'autres avantages sympathiques. Notamment, la capacité d'avoir un accès en ssh sur la machine s'avère très pratique pour pouvoir transferer des archives compressées et ne les décompresser qu'une fois sur le serveur, pour créer des liens symboliques, pour éventuellement y compiler des binaires. Si ces fonctionnalités sont probablement inutile à un utilisateur Windows classique, pour une personne dont le système d'exploitation est Linux, habituée à interagir en ligne de commande avec son environnement, un accès en ssh s'avère d'une aide précieuse. Je pense d'ailleurs ne pas avoir encore songer à toutes les possibilités que cela m'offre.

Moins déterminante, mais toutefois agréable aussi, pour un cout similaire, DreamHost fournit à la fois un espace disque et un quota de transfert mensuel nettement supérieur à ce qui se fait sur DeadSerious. Je ne suis pas réellement sur que ca me soit complétement inutile, étant donné que j'étais déja très loin d'atteindre la taille limite disponbile sur mon compte, mais, je suppose qu'il vaut toujours mieux avoir plus d'espace que pas assez.

DreamHost offre aussi d'autres fonctions potentiellement utiles, mais dont je ne suis pas sur de me servir un jour. Il est ainsi possible d'utiliser Python comme un langage cgi au niveau du serveur, ce qui permet d'écrire facilement et rapidement des programmes de relativement haut niveau. Toutefois, je ne suis pas convaincu que cela soit réellement plus rapide et/ou efficace pour un developpeur habitué à travailler avec PHP. De même, il est aussi possible de faire tourner un serveur Jabber sur ses différents comptes : là encore, c'est sympathique d'un point de vue technique, mais probablement peu utile en pratique.

Bien evidement, DreamHost fourni aussi des choses nettement plus classiques auquel j'avais déja accès chez DeadSerious, comme la possibilité de créer un nombre important de base de données MySQL avec des utilisateurs distincts, la possibilité de créer des utilisateurs FTP avec des droits bien précis, la possibilité d'éditer les dns records de mes domaines - ce qui me permet par exemple de faire en sorte que home.defr.org pointe chez moi.

Un post avec mes impressions après un peu d'utilisation de DreamHost devrait suivre, probablement après la migration de MP vers DreamHost, histoire d'avoir une idée de ce que ca donne lorsque la charge monte sur le compte...

Sites visités