Dual Blog : DeFr's Weblog

Status update | dimanche 29 juin 2008, 18h15

Mood: Neutral

Bon, il semblerait que définitivement, j'ai du mal à blogger quand j'ai en parallèle une activité à temps plein. Essayons de corriger ça, en résumant a minima les choses importantes qui se sont passées depuis ce fatidique 20 mars, date du dernier billet. :-)

Côté vie professionnelle tout d'abord, la bonne nouvelle, c'est que depuis le 1er avril, je suis travaille pour OWS, en télé-travail depuis Nantes. Globalement, j'y exerce mes modestes talents liés aux technologies de l'information et de la communication en concevant avec les clients, puis réalisant les sites de leurs rêves. Pour être un peu plus précis, OWS tend à se spécialiser dans l'intégration de solutions basées sur le système de gestion de contenu Drupal, que je connais bien pour m'en être servi notamment comme base lors de la réalisation de CoolEtude, en 2006 et que j'ai chaudement recommandé depuis (Benoît pourra confirmer ;-)). Depuis j'exerce mes activités dans une ambiance particulièrement agréable et avec des clients comme on en rêve, donc, difficile de demander mieux :-) Plus de détails au fil de l'eau, et après que j'ai mis au clair les clients ayant acceptés ou non d'être cités en référence.

Côté administrateur système, Méga-Poudlard avait réellement de plus en plus de mal à être utilisable sur un serveur mutualisé, j'ai donc franchi le pas et investi dans un serveur dédié: je ne le regrette pas, la différence est réellement sensible :-) Le processus de migration de mes divers sites est toutefois loin d'être terminé, defr.org est par exemple encore chez DreamHost pour le moment. J'ai aussi quelques billets sur l'utilisation de Mercurial en attente, de façon à aider les personnes qui souhaiterait pouvoir s'y mettre d'une part, mais aussi à démystifier un peu la prétendue complexité des systèmes distribués de gestions de versions d'autre part. Accessoirement, je trouve qu'on en parle relativement peu, c'est donc l'occasion de réparer ça :-)

Enfin, côté vie personnelle, soleil au beau fixe. La première rencontre organisée entre famille et belle-famille c'est bien déroulé, première étape vers une officialisation plus que probable de la relation que j'entretiens avec ma tendre moitié. Et pour finir, j'ai déjà battu sans mal le nombre de baignades de l'année dernière (pour référence, 0, ce qui est une honte lorsqu'on habite à moins d'une heure de l'eau): déja 3 baignades cette année, et 4 sorties en bateau.

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 ;-)

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...

DeFr.org - La reconversion | lundi 11 juillet 2005, 21h58

Mood: Goggle

Je me rends compte que, même si le changement a été fait depuis un certain temps, je n'ai toujours pas bloggé dessus ; il est donc temps de réparer cette erreur. Certains l'auront peut-être remarqué, d'autres vontn le découvrir : j'ai totalement modifié DeFr.org. Enfin, entendons nous bien, fidèle à mes principes de séparation des niveaux contenu et présentationel, l'apparence du site en elle-même n'a pas énormement évolué, le tout ressemblant encore à la charte graphique qu'à gentiment réalisé Reaktif. Cependant, c'est au niveau du système de gestion que tout à considérablement évoluer.

Les lecteurs reguliers de ce blog savent qu'au milieu de l'année dernière, je me suis essayé à installer un wiki sur DeFr.org, dont le but premier était de permettre à différentes personnes de Centrale Nantes de mettre en commun leur résultat, histoire de faciliter de façon notable le travail en groupe. Pour une raison encore un peu indéterminée, cet objectif là n'a pas été completement atteint ( je compte bien essayé d'y remedier l'année prochaine, entre autre en rajoutant un article Pourquoi utiliser un wiki ? ou un truc du genre, histoire d'en rendre l'utilité tangible pour tous ), toutefois, cela m'a permis de me rendre compte d'un fait essentiel : le wiki permet d'avoir un contenu dynamique très facilement, éditable en quelques secondes... Tout le contraire du système très peu flexible que j'avais initiallement mis en place sur DeFr.org

Les vacances venues, je me suis donc décidé à faire une petite migration. J'avoue en cela m'être inspirer de ce qu'à fait Circeus sur Cest-Pas-Pareil.net, qui m'a amené à réaliser qu'au lieu d'un simple collectif rassemblant des liens vers les différents sites hébergés, je pouvais très bien transformer defr.org en une base de connaissance personelle, ou je pourrais stocker, des connaissances diverses et variées.

Je vous avouerais que cette partie là du plan n'est encore présente qu'à l'état d'ébauche : les seules sections possédant réellement un peu de contenu sur le wiki sont celles concernant Centrale Nantes, qui contiennent une partie du travail effectué pendant l'année, et celle reprenant les anciennes parties du collectif, avec toutefois une nuance : la liste des sites est cette fois-ci à jour, et un des objectifs, la réalisation de fiche technique pour chacun des sites en ligne, est en cours. En très clair, ca commence à prendre forme, mais je compte rajouter des réferences vers quelques-uns de mes projets dans la rubrique Experimentation et recherche, avec l'écriture probable de quelques tutoriaux...

J'ai pas mal de projets pour ce collectif. Le problème, c'est qu'écrire tous les articles que j'ai en tête prend du temps, dont je ne dispose pas réellement... Comme l'atteste la page des statistiques, qui clame que je n'ai que 14 articles ( bon, c'est pas tout à fait vrai, parce que personnellement, j'trouve que les articles ayant pour prefixe DeFr.org: sont de vrai articles aussi, m'enfin... ).

Finalement, je vais vous faire part de deux points sur MediaWiki que l'experience de la conversion de DeFr.org m'a appris. Tout d'abord, la création de skins de facon propre est assez aisée, du moins pour un programmeur possédant au moins quelques notions de bases en programmation orientée objet. Il suffit d'étendre une classe de base pour pouvoir ensuite paramétrer tout ce que l'on veut ^^; D'autre part, j'ai pour le moment interdit les edits anonymes, ce qui permet de se débarasser de plus ou moins tous les problèmes liés aux robots défigurant les wikis. Toutefois, je ne sais pas dans quelle mesure cela va affecter la volonté des membres de mon groupe de TD de l'année prochaine à participer : vont-ils se preter de bonne grâce à l'étape de création d'un compte, très rapide ? A voir...

Sites visités