Dual Blog : DeFr's Weblog

Tout marche encore ? | mardi 20 novembre 2018, 01h12

Mood: Oohh

Un petit test, histoire de s'assurer que tout fonctionne encore et de savoir si il y a encore quelqu'un par ici ;-)

Je ne sais pas pourquoi, mais j'ai été pris d'un élan de nostalgie soudain, me faisant me demander si tout marchait encore sur ce blog. Ce n'était évidemment pas le cas…

Cela nous fait du coup un petit lot de commit sur le dépôt Mercurial, qui n'avait pas vu d'activité depuis 8 ans.

Visiblement, il reste un problème avec les commentaires. Bizarrement l'API d'Akismet semble avoir bouger…

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.

Dual Blog libéré | jeudi 20 mars 2008, 15h07

Mood: Goggle

Utilisateur de logiciels libres depuis de longues années déja, programmeur, je n'avais pourtant, jusqu'à présent, rien réellement sorti sous une license libre qui puisse être particulièrement utile à d'autres... Probablement pour plusieurs raisons, notamment un certain perfectionnisme (vouloir publier du beau code, essayer d'optimiser un certains nombres de choses, ...) et un relatif manque de confiance dans l'utilité que mes divers utilitaires pourraient avoir pour d'autres. Cela a, d'un point de vue technique, changer lorsque j'ai commencé à mettre en ligne, par exemple, les codes pour les différents projets que j'ai effectué à l'ECN, une instance de Trac ayant même été crée pour le projet de groupe, mais cela est resté relativement marginal, d'une part due à l'absence de publicité faites à ces divers référentiels, et d'autres part à la spécificité de ces projets, qui présentent relativement peu d'interet pour les personnes étrangères à Centrale Nantes.

Cela a commencé à changer lorsque j'ai commencé, l'année passé, à travailler sur une classe en PHP de templates, basé sur XML, XPath et DOM, librement inspiré des principes de XML::Template. Je cherchais une solution de ce genre depuis un certain temps, et j'avais envie d'un projet pour tester Mercurial, le petit système distribué de controle de version (DVCS pour les intimes) qui a mes faveurs depuis plus d'un an déja. J'ai donc profité de l'occasion pour combiné les deux, et de publier le référentiel. Je me suis assez rapidement convaincu du potentiel de cette solution pour avoir une séparation propre des couches de présentations et de logique du code, en envoyant l'ensemble du XHTML dans les divers fichiers XML de templates, mais j'avoue qu'il devait être relativement difficile de juger du potentiel réel de la solution en se basant uniquement sur les quelques exemples que j'avais inclu dans le référentiel afin de servir de tests unitaires me permettant d'éviter les régressions.

En conséquence, j'ai décidé de l'appliquer sur quelques choses de plus gros. La cible évidente aurait été Méga-Poudlard, mais deux facteurs importants m'ont fait lui préférer Dual Blog, du moins dans un premier temps:

  1. Je pensais qu'il s'agissait de la bonne solution, mais j'avoue que je conservais quelques doutes sur la flexibilité du système, et notamment sur la possibilité de s'adapter à plus ou moins n'importe quelle structure XHTML. J'ai donc préféré commencer par un projet de nettement moins grande envergure:-)
  2. Je souhaitais l'utiliser dans un projet qu'il me serait possible de libérer ensuite. En l'état, c'était parfaitement envisageable pour Dual Blog, nettement moins pour Méga-Poudlard.

J'ai donc commencé à ré-écrire Dual Blog, en utilisant au maximum ces templates: cet effort s'est conclu en novembre dernier, moment où j'ai mis en ligne la nouvelle version, présentant une caractéristique fort plaisante: la possibilité d'utiliser exactement le même code pour la génération de la page en xhtml ou du flux de syndication Atom, au moyen d'un simple chargement de modèles différents. J'aurais probablement pu rendre public le code à ce moment là, toutefois, l'utilité en aurait été réduite: le code comportait en effet un certain nombre de présupposé sur l'adresse ou il résidait (sous-répertoire /blog par endroit, adresse complète dans d'autres, comme il est possible de le voir ), présupposait que les tables correctes soient crée en base de données... Quelques problèmes somme toutes embettant pour qui aurait voulu tester le tout ^^... La bonne nouvelle, c'est que je les ai récement régler, notamment en ajoutant un installeur.

Je voulais aussi faire un petit audit de sécurité du code avant de le publier, puisque ce dernier fonctionne en direct sur ce serveur, et qu'il m'aurait ennuyer de me retrouver avec une faille exploitée. L'interface d'administration repose entièrement sur l'authenfication de l'utilisateur via le serveur web, donc si le serveur web possède lui même une faille a ce niveau, le code est vulnérable... Mais il est probable que de plus grosses proies tombent avant ce weblog :-) D'autre part, le code valide les données qu'il recoit (notamment via l'utilisation d'une classe Requete fort pratique crée lors de mon premier stage chez OWS), donc ça devrait aller. Si toutefois vous trouver un problème manifeste, un petit mail à webmaster AT defr DOT org serait fortement apprécié ^^;

SSH: Authentification par clé, sous Linux | lundi 10 mars 2008, 12h57

Mood: Neutral

Voila un petit billet inspiré des instructions que Kévin a posté pour pouvoir se connecter par paire de clé sous Windows en utilisant Putty. Ce billet a en fait deux buts distincts:

  1. Fournir une documentation en français sur la façon de faire ça, car si les sources anglophones sont abondantes, il me semble qu'on ne peut pas en dire de même pour le web francophone.
  2. Montrer que c'est plus simple à mettre en oeuvre sous Linux ;-)

Commencons par satisfaire les gens pressés qui pourraient tomber sur ce post par Google: ce que vous souhaitez savoir se résume à quatres commandes

ssh-keygen eval `ssh-agent -s` ssh-add ssh-copy-id hostname

Maintenant que les gens pressés sont partis, rentrons dans le détail de ces différentes opérations ^^

Génération d'une paire de clé

Avant toute chose, pour pouvoir s'identifier sur un serveur avec une paire de clé (le même principe cryptographique que celui qui est utilisé pour pouvoir signer ses courriels, ou dans certains protocoles sécurisés comme HTTPS), il est necessaire de générer la-dites paire de clé, c'est-à-dire une clé publique, que l'on insérera sur l'ensemble des serveurs sur lesquels on veut pouvoir se connecter, et une clé privé qu'il est indispensable de conserver en lieu sur, et qui nous permettra de nous identifier.

Pour cela, on dispose d'une commande particulièrement utile, ssh-keygen, qui se charge de cette tâche. Il est possible de lui préciser le type de clé et la taille de cette dernière, ce qui donnerait quelque chose du genre ssh-keygen -t rsa -b 1024. L'emplacement par défaut nous conviendra dans 99% des cas, il est donc possible de simplement appuyer sur entrée pour répondre à la première question que la commande va alors poser. Il s'agit ensuite de choisir une phrase de passe, permettant de sécuriser la clé: je vous laisse seul juge, mais le champ s'appelle phrase de passe et non pas mot de passe pour une bonne raison ;-). Une fois cette formalité accomplie, ca y est, vous avez votre paire de clé

Une session en terminal typique générant cette paire de clé ressemble donc à :

defr_test@Albus> ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/defr_test/.ssh/id_rsa): Created directory '/home/defr_test/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/defr_test/.ssh/id_rsa. Your public key has been saved in /home/defr_test/.ssh/id_rsa.pub. The key fingerprint is: e8:f9:37:dc:3b:e0:c4:6c:00:c1:fb:c7:c3:f8:2d:28 defr_test@Albus

Lancement de votre agent d'identification

On entre désormais dans les opérations qui devront s'effectué à chaque fois que l'on souhaitera se connecter. Il est tout d'abord necessaire de lancer ssh-agent, via eval `ssh-agent -s`. Je vous conseille d'ajouter cela au lancement de votre session, donc à la fin de votre fichier .bashrc, .zshrc, ...

Validation de votre identité

Une fois l'agent lancé, potentiellement automatiquement si vous avez suivi le conseil de le lancer automatiquement lorsque vous ouvrez une session sur le système, il est necessaire de lui ajouter votre clé privé. Pour cela, il suffit d'utiliser ssh-add, qui vous demandera la phrase de passe qui a été utilisé lors de la création de la clé. Il est à noter que pour les personnes réfractaires au terminal, il est tout à fait possible d'utiliser gtk2-ssh-askpass, qui vous créera une jolie interface dans laquelle vous devrez taper la phrase de passe, mais je n'ai pas trop exploré cette option.

Une session comportant le lancement de ssh-agent et ssh-add ressemble à cela:

defr_test@Albus> eval `ssh-agent -s` Agent pid 12883 defr_test@Albus> ssh-add Enter passphrase for /home/defr_test/.ssh/id_rsa: Identity added: /home/defr_test/.ssh/id_rsa (/home/defr_test/.ssh/id_rsa)

Copie de votre clé publique sur un serveur distant

Il reste désormais une dernière étape, faire connaitre au serveur sur lequel vous souhaitez vous connectez la clé publique. Là encore, ssh fournit gentiment un utilitaire pour faire cela, ssh-copy-id. En supposant que vous souhaitiez ainsi pouvoir vous connecter par clé à l'hôte example.com, il vous suffit donc de taper dans votre gentil terminal ssh-copy-id example.com. Comme d'habitude, on vous demandera à cette connexion un mot de passe... et fera tout le reste tout seul ^^ Vous commencerez à voir la différence à partir de votre prochaine connexion en SSH à ce serveur: votre agent s'identifiera, et vous serez par conséquent automatiquement connecté, sans mot de passe supplémentaire à fournir.

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.

Diplômé | mardi 29 janvier 2008, 11h10

Mood: Yes

Note préliminaire: ce billet aurait du être publié le mercredi 22 janvier 2008, mais suite à une faille temporelle il semble qu'il n'ait été finalisé qu'aujourd'hui... Il s'agit vraisemblablement d'un problème étrange mais connu de la version 1.0 du DeFr, qui avait bien commencé ce billet le mercredi en question, mais qui s'est laissé distraire par la recherche d'un dictionnaire Français pour sa pré-version de Firefox Beta 3.

Ca y est, c'est fait... Me voila officiellement récompensé de mes 5 années d'étude post-bac: j'ai reçu aujourd'hui les différents papiers attestant du fait que je suis désormais un ingénieur diplômé de l'Ecole Centrale de Nantes, mention Bien. Et je dois dire que ça fait bizarre, de ce dire que l'on a enfin obtenu ce fameux sésame.

Toutefois, tout d'abord, quelques précisions. Ces papiers, je les ai un peu plus tard que la majorité des élèves de ma promotion, à cause de mon obligation de mobilité à l'étranger que je n'avais pas accompli en temps et en heure. Après avoir passé quelques temps en Espagne (malheureusement très loin de ma dulcinée, ce qui n'a pas rendu le séjour très agréable, peut-être bloggerais-je là dessus mais je n'avais pas envie de le faire à chaud, car les choses que j'en aurais eu à dire n'aurais vraiment pas été très agréables...), c'est maintenant chose faite.

Techniquement, mes condisciples se sont eux vu attribués ce petit papier début décembre, je n'ai donc tout de même pas un retard si considérable... D'autant que ce ne sont que les diplômes provisoires: les diplômes définitifs ne seront imprimés qu'au printemps. C'est d'ailleurs une bonne chose, car cela a permi à l'administration de réalisé que sur tous les diplômes des personnes nées dans une ville possédant plusieurs arrondissements (Paris, Lyon...), l'arrondissement était assez probablement faussé à cause d'une mise à jour effectué sur leur référentiel des communes m'a-t-on dit. Le petit délai entre les certificats provisoires et l'impression définitive devrait dont leur permettre de corriger tout cela...

Maintenant que ces préliminaires ont été exposés, passons à une confidence un peu plus personnelle: ce que ça m'a fait, de recevoir ce diplôme. J'avoue que je n'en attendais pas grand chose à la base, car très objectivement, ce n'est pas la possession de ce bout de papier en lui-même qui allait fondamentalement changé les différentes connaissances que je possède, notamment dans le domaine de l'informatique, ni magiquement me transformer. Et pourtant, je dois bien reconnaitre que lorsque j'ai eu ce certificat entre les mains, pourtant formulé en termes tout simples, cela m'a fait quelque chose. Je pense que c'est notamment parce que c'est à ce moment précis que j'ai réalisé que j'avais terminé ma formation, et que j'avais finalement obtenu ce pourquoi j'avais étudié pendant 5 années à la suite de mon baccalauréat: une reconnaissance officielle et académique de mes connaissances, de mes aptitudes en informatique...

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

Une nuit en Corail Lunéa | lundi 19 mars 2007, 00h37

Mood: Weird

Bon bon, j'ai un retard conséquent dans les posts que je voulais faire, mais comme ce n'est pas en les laissant s'entasser que la situation s'améliorera, on va commencer à vider un peu la file d'attente. Le post actuel aurait donc théoriquement du être posté vers mi-février. Après tout, ca ne fait donc qu'un gros mois de retard... Nettement moins qu'un bon nombre d'autres posts qui devraient arriver ;-)

Ainsi donc, février, les élèves ingénieurs de l'ECN ont une petite semaine de vacances... qui sera passé dans la belle famille, ma tendre moitié n'étant pas retourné dans son Sud natal depuis début Septembre (ce changement de statut fait aussi parti de ce qui aurait nettement mérité un post, et qui devrait être réparé prochainement). Ne sachant pas à l'avance si nous pouvions partir dans la journée de samedi ou si des formalités nous retiendrait à Nantes, il a été décidé de partir le samedi soir pour ne pas perdre trop de journées de cette courte semaine de vacances. Toutefois, Nantes <-> Toulon, c'est tout de même au minimum 7h, souvent plus. La solution a été vite trouvée grâce à Voyages SNCF : le train de nuit, qui en plus de nous permettre a priori de dormir et donc, de voyager en temps masqué coutait nettement moins cher qu'un voyage de jour. A l'occasion, j'appris qu'en réalité, ces trains de nuits s'appelaient des Corail Lunéa.

Aucun problème, si ce n'est qu'à une semaine du départ, nous commençons à nous poser des questions pratiques sur le déroulement de ce trajet : savoir qu'on est dans un wagon-lit, ça permet de supposer qu'on disposera d'une couchette, mais en y réfléchissant bien, c'est tout de même un peu court quand on veut se préparer (psychologiquement et physiquement) à ce genre de voyage : faut-il prévoir une couverture ? un oreiller ? doit-on se préparer à avoir chaud ou froid ? et finalement, il y aura combien de personnes dans notre compartiment ? Sommes toute, aucune question réellement métaphysique, mais, des détails qui permettent de se préparer un peu.

Normalement, à cet instant entre en jeu Google, on obtient les renseignements souhaités et on vaque sainement à d'autres occupations... Sauf que dans le cas présent, les informations sont des plus spartiates; le site officiel de la SNCF fournit quelques détails mais peu, Wikipedia est particulièrement aride sur le sujet (mise à part une information particulièrement rassurante sur d'éventuels problèmes sanitaires...). En conséquence, je poste, et j'espère que ces expériences pourront peut-être servir à d'autres ;-) Voici donc un petit compte rendu des différents évènements et émotions qu'ils ont engendrés, dans un ordre aussi chronologique que possible.

20h10, on arrive à la gare de Nantes; le train part à 20h46 d'après nos billets, tout va donc bien. Nous avons de la chance, la voie de départ est déjà affichée, nous nous y rendons donc, curieux de voir à quelle sauce nous allions être mangé pour le transport. Et en montant dans le train, il faut bien avouer que la première impression n'est pas particulièrement positive; le couloir est particulièrement étroit et l'arrivée dans le compartiment renforce cette impression, me faisant me féliciter de ne pas être claustrophobe : en seconde classe, chaque compartiment comporte 6 couchettes (bas, milieu et haut et à gauche ou à droite) pour une surface au sol qui approximative de 6m², on a réellement l'impression d'être tassé. Fort heureusement, le train n'était pas entièrement rempli, nous n'étions que 4 dans le compartiment, atténuant un peu la sensation d'entassement.

Bon, avoir observé le compartiment, c'est bien, mais des gens attendent derrière et ça commence à sérieusement bouchonner vu la taille du couloir : il nous faut donc y entrer et trouver où caser nos valises. Etant les premiers arrivés, nous avons pu les placer sous l'une des couchettes du bas. Nos billets nous indique que nous occuperons les couchettes du haut, ce qui personnellement me convient, je préfère généralement dormir aussi haut que possible dans des lits superposés, au moins j'ai la garantie que personne ne me tombera dessus ;-)

Après avoir bataillé avec l'échelle pour monter dans le lit, je m'y installe, et découvre ce qui sera mon chez moi pour la nuit. Un genre de duvet nous attend, ainsi qu'un oreiller emballé sous plastique : ca ne tiendra pas très chaud, mais vu la température dans le wagon, ce n'est pas un problème. Plutôt positif, assez pour rattraper la couchette qui a du être très confortable il y a un temps certain. Par contre, il ne faut pas espérer pouvoir s'assoir pour lire ou se servir de son ordinateur portable, la hauteur sous plafond est réellement réduire au minimum... Ca a le mérite d'être clair, les compartiments ont été conçus pour transporter des gens allongés, ils devront par conséquent voyager allonger. Le petit problème, c'est qu'étonnament, à 20h46, les gens ne tombent pas forcement de sommeil ;-).

Coup de chance, le couple avec qui on partage le compartiment pour le voyage est assez sympathique, et ils vont jusqu'à Nice : ce n'est pas eux qui vont nous reveiller en pleine nuit en descendant du train ^^;

Après moults essais, j'arrive enfin à trouver une position allongée à peu près confortable et permettant de lire, et c'est à ce moment que le train part de la gare de Nantes pour entamer son long périple. C'est une sensation un peu étrange, même si je suis pourtant coutumier du train, l'ayant pris pour faire l'aller retour Paris-Nantes tous les week-end depuis deux ans; une grande partie de ce sentiment d'étrangeté vient de la position allongée. A vitesse constante, le mouvement du train peut presque s'assimiler à un doux bercement (à mon sens, même si Sylvie était d'un avis assez différent...), mais les accélérations et décélérations sont assez perturbantes, donnant dans un premier temps l'impression qu'on risque de se retrouver à tomber dans l'allée centrale.

Au programme, lecture jusqu'à 23h30 (ca tombe bien, j'ai reçu à Noël une grande quantité de livres de Terry Pratchett ^^;), puis extinction de la lumière d'un commun accord des 4 habitants pour la nuit de notre compartiment (enfin, de ceux ne s'étant pas déjà assoupis :p).

Les sensations sont étranges mais, la fatigue aidant, on arrive à peu près à s'endormir. Comme il est possible pour un compartiment de couper les annonces de service, on n'est pas dérangé par les annonces de services à l'arrivée dans les différentes gares, ce qui est quand même un très bon point... Même si les arrêts parfois un peu brutaux dans certaines gares ont de fortes chances de réveiller. Au global, le voyage s'est fait sans encombre, même si le sommeil n'a pas forcement été d'une grande qualité.

Après un arrêt relativement long à Marseille (a priori, en attente des pompiers qui ont pris en charge un des passagers), il est temps de se préparer pour être prêt à sortir du Corail à l'arrivée à Toulon, où il fera un arrêt annoncé de 3 minutes (on aurait pu sauter du train en marche s'il était si pressé ;-)). A 8h20, nous nous retrouvons donc sur le quai de la gare de Toulon, prêt à affronter une nouvelle journée... Et la première de nos vacances ^^.

Idéalement, nous aurions été bien reposé par cette longue nuit, et aurions pu faire tout plein de chose, mais j'avoue que j'ai du faire une sieste dans l'après-midi pour rester à peu près d'attaque.

Au global, le train de nuit, c'est une bonne idée, mais la réalisation n'est quand même pas idéale... Toutefois, c'est quand même une façon de voyager qui peut vous faire gagner un peu de temps, à condition de ne pas vous attendre à sortir en pleine forme de votre nuit :-)

P.S. : merci à Morgan et Sylvie de m'avoir pousser à relancer un peu ce blog, j'espère réellement que ce poste amorce la pompe me permettant de vider la pile de posts en attente :-)

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 :-/

Sites visités