Mes impressions sur le web, les standards et autres…


Samedi 11 mars 2006

Migration vers un nouveau serveur

Et voilà. Migration achevée en un temps record. Ne reste plus qu’à attendre que les DNS finissent de se propager joyeusement. Au menu :

  • Enfin MySQL 4.1 ! Enfin, mes données sont stockées dans des tables proprement déclarées comme contenant de l’utf-8, et je peux profiter de toutes les autres nouveautés qu’apporte cette version par rapport à la 4.0.
  • Adieu l’antique Webalizer, bonjour Awstats.
  • L’avantage quand on est sur un serveur privé, c’est qu’on peut installer à peu près ce qu’on veut (les limitations ne se trouvant qu’entre la chaise et le clavier). Je me suis donc installé les magnifiques outils que sont Subversion et Trac pour rendre public le développement de Wamailer 3.0. C’est par ici que ça se passe.
  • PHP 5.1.2 à la place de PHP 5.0.5. C’est toujours ça de pris, surtout au vu des nouveautés apportées par la branche 5.1.x
  • Apache 2.x à la place d’Apache 1.3.x. C’est toujours ça de pris également. La version 2 est de toute évidence plus puissante, plus rapide, toussa.
Publié à 6h32

Catégorie :

Vendredi 7 octobre 2005

Passage à PHP5

Les perturbations survenues durant l’heure précédente sont dùes au passage du serveur à php5. Je vais pouvoir faire joujou avec les extensions DOM, XSLT, SQLite, et autres joyeusetés ailleurs que sur mon serveur local :¬)

Publié à 17h59

Catégorie :

Mercredi 31 août 2005

Dotclear, rétroliens et UTF-8

Comme indiqué dans mon précédent billet, j’ai implémenté un système de rétroliens sur mon blog, suivant les informations données dans la spécification existante et regardant le code source de Dotclear pour bien comprendre le fonctionnement de ce mécanisme.

Justement, il y a un petit problème avec Dotclear. Lorsqu’un blog dotclear réglé pour utiliser l’UTF-8 pingue l’URL qui va bien, il commence d’abord par envoyer une requète HTTP avec le paramètre __info et s’attend à recevoir une réponse sous forme d’XML et précisant l’encodage acceptable par le blog récepteur.

Le problème est que si le blog récepteur ignore la requète avec le paramètre __info (ou répond qu’il veut du latin1), Dotclear passe les données à envoyer dans la fonction PHP utf8_decode(), or cette fonction est destructrice. Si un caractère présent dans les données n’a pas de code assigné dans le jeu de caractère latin1, il est purement et simplement remplacé par un point d’interrogation. Il y a donc perte de données.

Dotclear n’est pas vraiment en cause, c’est le mécanisme de rétroliens qui n’a pas été pensé à la base pour tenir compte des problèmatiques d’encodage (latin1 ou pire, us-ascii, sinon rien). Néanmoins, il y a ici une perte de données et ce n’est jamais une solution acceptable.

Une solution serait donc de transformer les caractères non présents dans le jeu latin1 en en entités XML avant de passer les données dans la fonction utf8_decode(). Ce n’est pas très propre étant donné que c’est du texte brut urlencodé qui est envoyé et non du XML, c’est néanmoins cette solution qui a été retenue par la plupart des navigateurs pour gérer cette même problèmatique avec les formulaires HTML.

J’ai soumis cette suggestion sur le forum de Dotclear (sans réponse de l’équipe de développement au moment où je rédige ce billet). Au début, j’étais assez réticent quant à l’obligation pour moi d’implémenter le mécanisme du paramètre __info, mais après mùre réflexion, c’est probablement la moins mauvaise solution.

L’autre grief que j’ai à l’encontre de Dotclear est qu’il nécessite la présence du paramètre utf8=1 à la réception d’un ping, sans quoi, les données sont considérées comme du latin1 et, si le blog récepteur utilise l’UTF-8, passées dans la fonction utf8_encode() (donc affichage dégueulasse sur le blog récepteur). Là, l’alternative existe clairement et se trouve dans le protocole HTTP. Elle est d’ailleurs également indiquée dans la spécification sur les rétroliens :

POST http://www.example.com/trackback/5
Content-Type: application/x-www-form-urlencoded; charset=utf-8

title=Foo+Bar&url=http://www.bar.com/&excerpt=My+Excerpt&blog_name=Foo

Les prochaines versions semblent se tourner vers la détection de l’UTF-8 pour le traitement des données reçues, mais toujours pas de prise en compte du paramètre charset.

Pour ma part, je me restreindrai pour l’instant à ne pinguer que les blogs Dotclear en UTF-8. Pour les blogs en latin1, il me faudrait passer mes données en latin1 avant envoi, ce qui signifierait une perte de données (donc là, pareil, affichage dégueulasse sur le blog en face puisque certains caractères seront remplacés par un point d’interrogation).

Publié à 23h09

Catégorie :

Lundi 29 août 2005

Nouvelle structure en place

Et voilà, la nouvelle structure du blog est en place. Extérieurement, vous ne constaterez pas de grands changements au niveau fonctionnalité, par contre, sous le capot, ça a bien évolué. Les données restent désormais en UTF-8 d’un bout à l’autre de la chaîne de traitement (MySQL 4.0.x derrière, mais la version 4.1.x devrait être installée dans le courant de l’automne). Le code est également plus propre et plus lisible à mon goût (c’est à dire jamais assez). Mais parlons plutôt de ce qui est le plus visible pour vous :

Nouveau design

Évidemment, c’est le changement le plus flagrant. L’inspiration a mis du temps à me venir et le résultat n’est bien sùr pas du niveau des œuvres de Dave Shea. L’association des couleurs me semble toutefois correcte et l’ensemble agréable à l’œil. Tout commentaire ou critique est bien entendu le bienvenu :¬)

Pour les personnes utilisant Firefox ou un autre navigateur basé sur un Gecko relativement récent, si les choix de couleurs de la sélection de texte ne vous satisfont pas ou vous gènent, vous pouvez annuler ces styles avec le bloc CSS suivant dans votre feuille utilisateur userContent.css (testé avec succés) :

@-moz-document url-prefix(http://blog.webnaute.net/)
{
	*::-moz-selection { background-color: Highlight; color: HighlightText; }
}

Pour les nostalgiques où ceux qui n’aiment pas le nouveau design, le précédent design est toujours disponible dans le sélecteur de style et porte maintenant le nom Bleu hivernal (il a quand même dù subir quelques adaptations).

Changement d’adresse

Autre changement d’importance, le passage du blog de l’adresse http://webnaute.net/Journal/ à http://blog.webnaute.net/. En effet, le blog suivant désormais son propre chemin au niveau du design vis à vis du reste du site, et constituant un sous-ensemble particulier du site, j’ai jugé que ce changement d’adresse s’imposait pour bien refléter cet aspect.

Bien entendu, toutes les dispositions ont été prises pour que les liens ne soient pas cassés (mise en place de redirections HTTP). J’ai fait le test avec Liferea, la redirection est bien suivie et l’adresse du fil RSS mise à jour automatiquement. N’hésitez pas à vérifier que votre propre aggrégateur, si vous en utilisez un, a fait de même.

L’erreur étant humaine, il est tout à fait possible, malgré les vérifications que j’ai faites, que des liens soient cassés. N’hésitez pas dans ce cas à me faire part de cette erreur.

Système de rétroliens

Webnaute dispose désormais de son système de rétroliens (de son appellation d’origine, Trackback, mais j’aime bien la version francisée). Je vous renvoie vers cette page du petit dotclear illustré pour des explications pratiques.

J’ai d’ailleurs un billet en réserve concernant dotclear et sa gestion des trackback, ayant dù me résoudre à certaines adaptations pour être compatible avec 98 % de la blogosphère francophone.

Pages d’erreur 404 moins obscures

Ceci ne s’applique que lors de l’appel d’une URL de la forme /YYYY/MM/DD/Billet-name/ renvoyant une erreur HTTP 404 Not Found. Le moteur du blog recherche alors les billets ayant un nom proche de celui demandé et les propose en tant que possibilités.

Ça devrait être pratique dans le cas d’une faute de frappe dans l’URL (par l’internaute ou par une personne ayant fait un lien vers un billet depuis une page externe).

Un "bug" de certains agents utilisateurs devrait être également esquivé grâce à ce système. En effet, il arrive qu’un UA, suivant une URL contenant des caractères non-ascii non urlencodés sous la forme %XX, encode la-dite URL sous une forme un peu bizzare (exemple : /Journal/2005/06/19/En_vrac_jeux_de_caract\xc3\xa8res/).

Cependant, je ne suis pas sùr du tout que les URLs contenant des caractères non-ascii soient autorisées dans les pages (X)HTML. La recommandation HTML indique que de tels URLs sont illégales, cependant, la notion d’IRI a depuis fait son apparition (Oups, mais je viens de voir que c’est méchamment récent, janvier 2005; Bobe trop en avance sur son temps ?). Bref, cela fait partie des billets en cours de réflexion.

Autres changements

Un système anti-spam de commentaires/trackback très sommaire et basé sur l’IP a été mis en place. Jusqu’à maintenant, je n’ai pas eu à me plaindre de telles pratiques à l’encontre de webnaute.net mais mieux vaut prévenir que guérir.

Pour les personnes utilisant des navigateurs gérant les liens relationnels (avec <link>), deux nouveau liens relationnels sont maintenant présents dans les pages de billet et menant aux billets précédents et suivants.

Le fil RSS a été légèrement remanié pour utiliser les modules Creative Commons et Content (contenu des billets en entier avec content:encoded). De plus, deux nouvelles URLs sont disponibles :

Je constate d’ailleurs à l’instant que les deux nouveaux modules utilisés semblent spécifiques à RSS 1.0. Bon tant pis, je verrai ça plus tard…

Et en vrac : un seul cookie (+ un autre éventuel pour le style css choisi) au lieu d’une rafale (moi qui râle après les sites qui font ça, c’était un comble); favicon.ico vide à la racine pour éviter les erreurs 404 et l’envoi d’octets superflus (page d’erreur 404).

Dans les cartons

Il me reste encore quelques ajouts à faire ultérieurement :

  • Mécanisme pour mettre en avant les derniers billets actifs au niveau des commentaires
  • Possibilités de mise en forme pour les commentaires (syntaxe wiki, HTML ou autre). Ce n’est toujours pas fait :¬(
  • L’utilitaire d’aide à la composition des billets et commentaires (pour insérer des caractères rarement utilisés/difficiles d’accés au clavier) dont je parlais il y a quelques temps
  • Mécanisme pour pouvoir suivre l’ajout de commentaires sur un billet sans devoir systématiquement passer sur le site
  • Pour mon admin, le module me permettant de dialoguer avec les système de trackback des autres blogs (je l’avais complètement zappé)

Voilà, j’espère que toutes ces nouveautés vous plaisent autant qu’à moi. Je tiens à remercier une nouvelle fois J.J Solari pour son aide précieuse pour les tests du design sur les navigateurs Mac ainsi que pour ses conseils, ainsi que toutes les personnes m’ayant donné leurs avis ou critiques sur ce nouveau design.

Pour les curieux, deux impressions d’écran de ma très sommaire interface d’administration :

Publié à 15h53

Catégorie :



Site créé et maintenu par Aurélien Maille aka Bobe. Toutes les heures sont au format CEST.
Revenir à l’accueil – Zone de développement – Informations et accessibilité – CC licensed CC Licensed