J'ai eu l'occasion de faire pas mal de Python ces derniers temps, toujours à mon grand plaisir.
pTFTPd. Toutes ces Pythoneries ont commencées par la relecture, correction et l'intégration de patchs de Maxime Ripard pour pTFTPd. La suite pTFTPd dispose donc maintenant également d'un serveur BOOTP (RFC951 et RFC1497).
Sous l'impulsion de Maxime toujours, un système de logging plus évolué a été développé et mis en place dans pTFTPd. Toujours basé sur le module logging de Python, il est maintenant possible d'avoir des notifications plus modulaires pour les débuts, fin ou échecs de transfert, permettant ainsi l'intégration du serveur ou du client TFTP dans un contexte plus large comme une interface graphique par exemple. L'intégration de ce nouveau système de notification est en cours, mais est déjà en place dans le serveur TFTP ptftpd.py.
Je m'intéresse de plus en plus au packaging the pTFTPd, mais Debian dispose déjà de python-tftpy, même si ce dernier semble beaucoup moins complet que pTFTPd. Mais bon, si un jour un motivé veut faire des paquets pour pTFTPd, je ferai tout pour aider. Avis aux amateurs :)
ldapquery. Continuant dans mes Pythoneries, j'ai également écrit ldapquery.py, un script Python utilisant python-ldap pour faire des recherches LDAP, retournant les résultant dans le format attendu par Mutt pour son query_command. Ceci me permet d'utiliser le LDAP de l'entreprise depuis mon client mail pour auto-compléter les adresses email des destinataires (email volontairement masquée):
$ ./ldapquery.py maxime Found 1 matching entries (t: 0:00:00.642836): mpetazz...@mvista.com Maxime Petazzoni France, (+33) 9 50 38 .. ..
Il me suffit de rajouter, dans ma configuration Mutt:
set query_command="~/src/python/ldapquery.py %s"
Et je peux ensuite, depuis n'importe quel champ ou Mutt attends une email, utiliser ^T pour qu'il fasse une recherche sur ce que j'ai commencer à taper, et me propose la liste des résultats.
Notez qu'il vous faudra modifier les valeurs de server et base à la fin du script pour les faire correspondre à votre environnement.
Zwe3. Oui, enfin ! J'ai commencé le développement de la prochaine version de Zwe. C'est complètement pas secret du tout, vu que la timeline de Zwe s'excite comme un folle depuis quelques semaines au fur et à mesure que je commite. Le companion process a bien avancé, et sait déjà recevoir et enregistrer des messages en format simple et en format complexe. Je n'ai pas encore défini si le HTML ou une autre syntaxe serait exploitée et/ou autorisée dans les messages, mais c'est fort probable. En tout cas, ce n'est pas encore implémenté.
L'interface web au dessus de tout ça a également commencé à voir le jour et est codée avec le framework Django. Elle permet pour l'instant la (très) simple visualisation de ce qui a été posté, mais dispose déjà des capacités d'identification par JID/password.
La roadmap n'est pas du tout déterminée pour l'instant, je code selon mes envies et quand mon cerveau se décide à trouver des implémentations qui me conviennent. La suite du programme contient notamment la gestion de l'inscription à la plateforme, et donc la gestion au niveau du companion de son roster XMPP, avec l'autorisation bi-directionnelle au niveau des contact-lists. Puis j'attaquerai le support des réponses (déjà entamé par état de fait avec ce qui est implémenté), et enfin la fédération. Je pourrais ensuite me concentrer un peu plus sur la partie web, qui est véritablement la partie émergée de l'iceberg.
En parallèle, j'étudie les spécifications Open MicroBlogging et les autres APIs du genre, ce qui facilitera l'utilisation de Zwe3 depuis des clients lourds existants comme Gwibber.
# · 2 commentairesEncore quelques développements dans Zwe. J'ai abandonné le format RSS 2.0 pour les flux et je suis passé à Atom. Depuis une dizaine de jours, j'ai donc apporté quelques touches ici et là pour peaufiner le support des flux Atom pour Zwe, qui est maintenant terminé.
Les adresses des flux ont changé, les adresses en .../rss n'étant plus vraiment cohérentes. Elles sont donc maintenant en .../feed comme vous pouvez le voir sur la page Syndication. Rassurez-vous, les adresses en .../rss marchent encore jusqu'à la prochaine version et émettent un 301 Moved Permanently adéquat.
Les modules impactés sont ceux qui offraient des flux RSS, à savoir le module Blog et le module Fortunes. Ils ont tous les deux été mis à jour et la révision 2007 dans le dépôt Subversion (trunk/) contient tous ces changements.
Tous ces récents changements dans Zwe vont peut-être me faire sortir en avance (ou très très en retard, question de point de vue) la version 2.6 de Zwe, et enchaîner sur une 2.7 un peu plus tard dans l'année.
# · Aucun commentaireIl était temps, n'est-ce pas ? Depuis le temps que les utilisateurs de Zwe me le demandent, j'ai fini par prendre un peu de temps ce matin pour passer Zwe en UTF-8 et fournir un petit script de conversion de base. Le changeset est assez gros, mais la conversion est simple et devrait être relativement sans douleur pour tout le monde grâce au script (et si vous n'avez rien fait de bizarre avec votre Zwe par le passé).
En plus du support de l'UTF-8, j'ai fait quelques améliorations et petits changements récemment ici et là dans le code de Zwe, avec notamment l'apparition d'un gestionnaire de médias rudimentaire, mais permettant la gestion d'un dossier pub/ pour vos besoins d'upload de fichiers pour vos billets. Il est aussi maintenant possible d'intégrer des vidéos YouTube, DailyMotion et Vimeo, ainsi que d'afficher le DewPlayer pour lire un fichier MP3 dans les billets, pages et commentaires.
Le tout est disponible toujours au même endroit : dans le dépôt Svn, révision 1982. N'oubliez pas de consulter la page des mises à jour à effectuer après votre mise à jour !
# · Aucun commentaireDécidément, ce moteur de blog a une lourde histoire de procrastination productive. Je vous laisse apprécier l'oxymore, mais cela n'en reste pas moins vrai. Dès que ma vie se remplit, avec des trucs à finir faire dans tous les sens (specs du projet de RE56, le système de fichiers pour NxOS, l'organisation du UTBM/Google Code Camp, ...), je me remets à hacker quelques trucs sur Zwe. Un jour peut-être arrivera-t-il à conquérir le monde, qui sait !
Bref, aux dernières nouvelles, j'ai rendu obsolète l'usage de mod_rewrite pour utiliser PATH_INFO. Bien sûr, il est toujours possible d'utiliser des règles de réécriture d'adresse si votre serveur web ne supporte pas PATH_INFO (comme IIS, bien que cela fasse partie de la spec CGI), et cela sera documenté sur le site de Zwe au cas où. Ce petit changement a donc bien sûr entraîné des corrections dans la procédure d'installation.
J'ai aussi enfin pris le temps de terminer la feuille de style officielle pour la version 2.6, que vous pouvez d'ores et déja contempler ici même (View > Page style... > Zwe v2.6). Au menu des nouveautés, on retrouve également l'intégration d'un patch d'Ayolo qui permet de récupérer toutes les fortunes au format de fichier fortunes (\n%\n).
Je vais également travailler sur ce fameux module de gestionnaire de médias, pour uploader et gérer les fichiers directement depuis Zwe, vraisemblablement dans un sous-répertoire media. Je n'ai par contre pas encore réfléchi à un système de migration :) Quoi qu'il en soit, je suis prêt à entendre vos doléances sur ce module !
Je voudrais cependant profiter de ce post sur Zwe pour lancer un appel aux traducteurs bénévoles. La traduction allemande, du fait des récents changements, à besoin d'être mise à jour (Sarah, je peux toujours compter sur toi?), et j'aimerai beaucoup qu'une traduction espagnole voie le jour. N'hésitez pas à vous manifester, la tâche n'est pas encore trop vaste :
-public_html/zwe> misc/i18nstats.py trunk/ General stats per language: fr: 655 lines, 0 missing, 0 orphan de: 637 lines, 40 missing, 22 orphan es: 0 lines, 655 missing, 0 orphan
Merci d'avance, et probablement à bientôt pour la sortie de Zwe v2.6-angela !
# · 2 commentairesZwe had a long-running issue of RSS feed items duplication when a blog post was edited. I finally took a bit of time this morning to hunt this bug down. Turns out it was simply due to the lack of compliance to the RSS 2.0 specification : the guid tag was missing for the feed items, thus preventing aggregator software to uniquely identify blog posts. A fix has been committed to the SVN, and update is encouraged (the change is already propagated to all Zwe instances hosted here at Bulix.org).
I'd like to take this opportunity to take the lesson of this bug fix. I am, myself, deeply convinced of this, but in case you missed it, what we can learn here is that standard compliance is a very important part of web development, and of software development in general. Standard compliance (and even better, open standards compliance), allows interoperability, between different software, and thus between users. In the end, it's only a matter of mutual respect.
And just to see it working, here's an edit. And by the way, sorry for the multiple duplication triggered here, the appearance of the guids made aggregators believe all items were new again.
# · Aucun commentaire
Comme toujours avant un examen important (en l'occurrence, ma soutenance de stage), je passe mes nerfs sur Zwe. Au menu des nouveautés de ce matin : des améliorations dans les flux RSS de Zwe.
Zwe propose maintenant un flux RSS 2.0, plus simple et un peu plus cohérent au niveau du titre du flux, de sa description, etc. Chaque billet possède aussi maintenant un flux RSS pour ses commentaires (en plus du flux global des commentaires), accessible par /rss/ID/comments, ce qui permet également l'utilisation d'une balise bien pratique du namespace wfw (WellFormedWeb), <wfw:commentRss> qui permet de spécifier l'emplacement du flux Rss des commentaires d'une entrée donnée. Du coup, si votre agrégateur le supporte (Liferea le fait, par exemple), vous aurez les commentaires du billet juste en dessous, sans avoir à passer par un flux différent !
# · 2 commentairesAyolo vient de passer une nuit fort productive. Après un nombre certain d'heures de prises de tête sur le thème de son blog, Ayolo nous livre la nouvelle mouture du design de son Zwe et je n'ai qu'une seule chose à dire : c'est sublime !
Bravo à Ayolo, qui me montre une fois de plus qu'on peut encore faire des choses qui ont de la gueule avec un Zwe ! Je sais que le développement est pas vraiment à son plus haut ce semestre, mais je n'oublie pas mes promesses d'une version 3 pour l'année 2007 :)
J'espère que cette initiative motivera les autres possesseurs de sites Zwe à mettre en branle leur folie créative !
edit : j'en profite pour signaler un renouveau de couleur sur le Bleh-Blog de Pedrov avec un thème baptisé Blehgoland !
# · Un commentaireDans un précédent billet, j'expliquais le petit système mis en place pour contrer le spam touchant Zwe ces derniers temps. C'était pas vraiment peaufiné, un peu brut de décoffrage, de quoi bloquer le spam en attendant une solution plus fine.
D'après les conseils et les idées de Dave, j'ai profité de la pose du midi pour améliorer tout ça. La protection antispam est toujours présente sous la même forme (une addition mathématique simple) lorsque vous n'êtes pas identifié. Si vous avez un compte, elle ne sera présente qu'a votre premier commentaire et disparaîtra ensuite (vous avez en quelque sorte confirmé votre statut d'humain viable). L'administrateur peut également à tout moment décider de réinitialiser le statut de tous les utilisateurs, pour "revalidation".
Voilà, tout ça c'est dans la révision 1793 de Zwe, avec quelques petits tweaks ici et là pour améliorer l'interface côté administration (rien de bien important, des détails de placement de titre).
La mise à jour est bien sûr conseillée, le snaphost est à jour.
# · 3 commentairesZwe ne semble finalement pas épargné. Depuis quelques jours, du spam a répétition sur les blogs Zwe. Bien que seulement présents sur des anciens billets, ces spams sont suffisamment réguliers pour être agaçant (surtout avec la notification par mail des commentaires).
J'ai donc mis en place une solution qui j'espère sera efficace : un antispam mathématique. Pour poster un commentaire, il faut réaliser une addition toute bête. Ce système est bien sûr débrayable dans la configuration de Zwe.
Pensez donc à mettre à jour (révision 1792), sans oublier d'effectuer les changements nécessaires dans la base de données (cf la page des changements annexes) !
# · 4 commentairesL'été semble être la grande période pour les nouveautés côté moteurs de blog franco-français. Petit retour sur les derniers évenements.
À la fin du mois de juin, c'est l'équipe de DotClear qui a ouvert le bal avec la sortie de la première beta publique de DotClear 2, nom de code Aoraki. Gandi en profite pour lancer Gandiblog, service qui peut combiner votre nom de domaine et l'ouverture d'un blog DC2 facilement. Tout bon pour Dotclear, son équipe et ses utilisateurs !
De l'autre côté de la barrière de la notoriété, Oxbee, un moteur de blog basé sur les technologies PHP5/XML/XSL est sorti dans sa première version publique 1.0 offrant une flexibilité théoriquement infinie côté design et surtout intégration !
Toris nous fait la surprise, hier, pour le jour de son anniversaire et nous présente la seconde version de Tootem, son moteur de blog. C'est encore en très gros développement car il est en train d'apprendre le PHP/MySQL, mais c'est déjà en bonne voie. Souvenez-vous, il y a trois ans, les débuts de ce blog ... En tout cas, je lui souhaite beaucoup de courage et de fun aux commandes de son moteur, c'est toujours, aussi longue soit elle, une expérience enrichissante.
Enfin, comme annoncé le week-end dernier, Zwe est sorti dans sa version 2.5-nieve et dont je ne suis pas peu fier ! Même si il manque encore beaucoup de choses pour en faire un vrai moteur de site et de blog (en vrac : templates, abstraction de base de données, gestionnaire de médias, trackbacks), je trouve que ça tourne plutôt pas mal cette bête la !
Il semblerait également que Da3 (bon anniversaire à lui!) aie également un projet en cours de concretisation sous le coude, j'espère qu'on verra ça apparaître bientôt !
Avec tout ça, peut-être que dans un futur pas si lointain, il existera des alternatives francophones sympathiques et valables à DotClear qui, pour l'instant, semble voler dans un monde bien plus haut que le nôtre :)
# · 5 commentaires
Da-tadadadam, tadadadam, tadada-dadadam ...
La voilà enfin ! Après plus d'un an de développement (pas actif, rassurez-vous, c'est juste que je suis lent), Zwe revient dans une nouvelle version, encore plus fort, encore plus beau. Cette nouvelle version de Zwe, la v2.5-nieve, marque d'une pierre le calendrier de développement de Zwe. En effet, elle fête cette année les 3 ans de Zwe ! Trois ans déjà que je développe ce petit bout de code PHP devenu grand ... Mais ça veut aussi dire que ça fait 3 ans que je développe en PHP/MySQL, et trois ans que je tiens ce blog !
Bref, revenons à Zwe, c'est quand même la grande vedette de la soirée. Au menu de cette nouvelle version de Zwe : trois langues disponibles (Français, Allemand et Anglais), un ChangeLog long comme le bras avec à retenir la gestion complète des feuilles de style, le contrôle d'accès sur les modules, une meilleure gestion des utilisateurs, avec des profils et le support des gravatars et globalement une interface plus lissée, plus humaine quoi !
Le prochain objectif est bien sûr la version 3.0, avec en vue un rewrite complet avec abstraction de la base de données et utilisation de templates (bref, un MVC qui tient la route quoi). Mais en attendant, il y aura surement d'autres versions dans la branche 2.x pour satisfaire vos demandes toujours plus nombreuses !
Je tiens au passage à remercier toute la petite équipe de Zwe qui s'est progressivement montée (cette année en particulier) : Head & Quarby, Gemegik, Dave et bien sûr tous les utilisateurs de Zwe !
Les liens, pour la route :
· Zwe, le site officiel
· Zwe, le site de développement
· La version 2.5 de Zwe : zwe-v2.5-nieve.tar.gz (133k)
Grbml. Bon, après que Firefox aie gentillement planté, emportant mon billet quasiment terminé avec lui, reprenons. Il est maintenant presque 6h du matin, et je ne suis toujours pas couché. Pas vraiment sérieux pour un lundi matin me direz-vous. En effet, surtout que j'ai TD d'AG41, un truc potentiellement assez violent niveau neuronnal dans un peu moins de 4h. Mais si je suis encore debout à cette heure, c'est parce qu'il faut bien bosser un minimum les projets ... histoire d'être en mesure de présenter un truc complet, sinon qui marche, le jour de la soutenance.
Voilà où on en arrive, à force de procrastination. Mais d'un autre côté, travailler dans l'urgence ça peut être très intéressant, ... Quoi qu'il en soit, c'est précisément ça que j'attendais du GI : des projets, le stress de la fin de semestre et surtout, des trucs à coder. Au moins, ça donne une raison presque valable de geeker toute la nuit :)
# · Lire toute l'histoire · Aucun commentaireLe petit (mais vieux ;p) Ayolo semble avoir quelques soucis à "harmoniser" son thème pour Zwe. D'autres me font honneur en adoptant le thème Orange de Zwe sur leur blog (un DotClear, personne n'est parfait :P).
J'en profite pour donner quelques nouvelles de Zwe. La version 2.5 va bientôt sortir, il ne reste que deux petits détails à régler (#104 et #98) qui ne devraient pas demander trop de temps. Il n'y aura pas de changement majeur dans cette version mais il y a quand même quelques petites choses importantes, j'aurai de toutes façon l'occasion d'en reparler !
# · 2 commentairesC'est fou ce que le temps passe vite quand on doit travailler. La version 2.4 de Zwe a déja plus de 8 mois (Souviens-toi l'été dernier) et la version actuellement en développement traine lamentablement des pieds. Heureusement, j'ai pu cette nuit prendre un peu de temps pour travailler sur Zwe et notamment implémenter deux choses qui trainait depuis quelques temps.
Tout d'abord, l'intégration du dernier patch de Xavier qui permet aux utilisateurs de spécifier une URL dans leur profil ou lorsqu'ils postent un commentaire. Un système de cookie permet également maintenant de se souvenir de ces informations pour les visiteurs non enregistrés. J'en ai profité pour modifier un peu le formulaire de saisie de commentaire, je vous laisse regarder par vous même.
Enfin, j'ai terminé la gestion du contrôle d'accès niveau noyau (qui agit sur l'accès à un module donné). Vous pouvez donc maintenant définir quel utilisateur ou groupe ou combinaison des deux a accès à tel ou tel module. Il reste encore deux trois bricoles à faire de ce côté-ci (notamment corriger ce qui concerne le groupe d'administration, notion qui devient de plus en plus superflue avec ces ACLs) mais dans l'ensemble, c'est fonctionnel.
La version 2.5 qui devait initialement sortir pour noël et donc nommé à juste terme nieve devrait je l'espère sortir avant la fin du mois de mai avec un nom plus vraiment adapté ... quoique, il a bien neigé au mois de mai à Belfort l'an passé :)
En attendant, il reste deux trois petits bugs, notamment celui-ci qui ne concerne que Konqueror : #99. Si il a une solution autre que de rendre les URLs des page d'édition et de sauvegarde différentes je suis preneur (vous pouvez tester sur http://test.bulix.org, login/pass : test/test).
Je suis également toujours à la recherche de nouveaux designs pour Zwe. Si vous avez des talents de graphiste, n'hésitez pas à m'en proposer, ils seront livrés avec Zwe si je les aime bien !
A bientôt pour la v2.5, et bonne (fin de) nuit à toi, blogosphère!
# · 3 commentairesEt pendant ce temps là, à Vera Cruz^W^W^Wdans le développement de Zwe, ça bouge un peu. De la même façon qu'hier je me suis détendu les neurones avec gmpc-lyrics, ce soir je me suis mis en jambe avec quelques retouches sur Zwe ainsi que sur le Css que j'utilise ici. Je vous laisse découvrir tout ça.
D'après les commitlogs que je vois passer sur la timeline, il semblerait que la traduction allemande avance plutôt bien. Si vous avez envie de traduire Zwe ou d'aider à le traduire, n'hésitez pas, ce n'est pas les langues qui manquent. Je pense à l'espagnol, l'espéranto, l'italien, le Niluge ou le Bleh (pour Dave, celles là).
J'espère que les vacances me laisseront un peu de temps pour travailler sur les ACL et enfin sortir une nouvelle version de Zwe ! Stay tuned, comme on dit.
# · Un commentaire