Placer la barre plus haut avec le TDD

Histoire de jouer un peu plus avec les outils que j’ai essayé pour Yapsy et aussi pour expérimenter avec le TDD, je me suis lancé dans un mini projet, entièrement hébergé sur github et pour lequel j’ai essayé de respecter les principes du TDD dans les grandes lignes (plus ci-dessous).

iconLe projet en lui même s’appelle baciphacs et n’est rien d’autre qu’un re-développement d’un petit bout de code que j’ai l’impression d’écrire à chaque poste où je suis passé: générer du code HTML (avec un peu de CSS dans les tags en plus) représentant un diagramme en barre. Ce genre « d’astuce » est rarement la « meilleure solution » mais permet de générer des visualisations à peu de frais et sans se soucier d’éventuels problèmes de réseaux ou de licences.

Concernant le TDD, baciphacs en est sans doute un très mauvais exemple vu que ce n’est qu’un premier essai mais ça m’a permis de confirmer l’impression que j’avais sur cette méthode: elle est effectivement (et c’est connu je crois) complètement contre-intuitive mais elle met en avant des principes de design qui me semblent importants et vont bien plus loin que le fait de tester un logiciel.

Continue reading

Amélioration continue pour Yapsy

yapsy

Difficile de parler de kaizen pour un projet aussi petit et qui finalement n’avance que par à coup, deux fois par an, mais pour tenir compte des retours utilisateurs j’ai été amené à tester quelques nouveaux outils pour améliorer la qualité de Yapsy et les interactions avec les utilisateurs qui contribuent des modifications:

  • depuis quelques mois les sources (dans un dépôt mercurial sur sourceforge) sont synchronisées avec un répertoire git sur github, ce qui devrait simplifier la vie des contributeurs dont une bonne partie semble fan de github et qui pourront cloner et faire des pull requests à loisir.
  • depuis sa dernière sortie yapsy est lié au serveur d’intégration continue Travis CI pour qu’à chaque commit la batterie de test soit lancée.

Ci-après mes impressions sur ces deux outils.

Continue reading

Subtilités du packaging en Python

Récemment pour le développement de ma librairie Yapsy, je suis tombé sur quelques subtilités liés à la création de « paquets » pour des librairies Python.

J’utilise distutils bien sûr et je place les paquets générés sur http://pypi.python.org, mais j’avais les problèmes suivants:

  • les fichiers de données utilisés par mes tests unitaires n’étaient pas packagés
  • je n’arrivais pas à faire comprendre à pypi que l’un des paquets « sources » ne pouvait être récupéré que par les utilisateurs de Python2 alors que l’autre devait l’être par les utilisateurs de Python3, bien qu’ils correspondent tous les deux à la même version du logiciel (typiquement je n’arrivais pas à avoir ces deux paquets sur la même page de pypi.python.org)

Les solutions étaient relativement simples mais étrangement peu documentées sur internet…

Continue reading

Sortie de Yapsy-1.10

Encore une nouvelle version de yapsy, ma petite librairie de plugin qui sort in-extremis avant la fin de l’année, et peut-être aussi avant la fin du monde pour le coup ;)

L’année a été encore plus faste que la précédente avec de nouvelles interactions sur stackoverflow, et d’importantes contributions.

Le détail des changements (et il y en a d’importants !) est dans la release note sur sourceforge mais je tiens surtout ici à remercier encore une fois les principaux contribueurs pour cette année:

  • Mathieu Havel
  • Mathieu Clabaut
  • Mark Fickett

Et à noter aussi l’utilisation nouvelle de yapsy dans deux projets ayant eux-même un certain succès:

  • Nikola le générateur de blog statique dont j’ai entendu parler sur la planète Python avant que son auteur ne me contacte
  • err le chatbot « intelligent » qui a eu droit à son émission sur FLOSS weekly

La liste des projets dont j’ai connaissance et où est utilisé yapsy est consultable sur la documentation en ligne.

Voir ce petit morceau de code être adopté dans d’autres projets ces dernières années est une bonne motivation pour continuer à le maintenir et s’assurer qu’il reste pertinent !

ShiVaSmiles 1.0: première version stable !

Ce week-end un de mes petits projets logiciels a enfin atteint une version stable.

ShiVaSmiles (c’est son nom et si vous le trouvez pourri vous n’avez qu’à jeter un coup d’œil au logo ;) ) est un visualiseur d’image aux fonctionnalités volontaires limitées afin de permettre à l’utilisateur de jouer facilement avec les notions de « motif » et d’échelles sur une image.

Dans cette version 1.0 ShiVaSmiles permet d’expérimenter avec les outils mathématiques construits sur la transformée de Fourier (corrélation et filtrage par fenêtre de Tukey) et des outils provenant de la morphologie mathématique (ouvertures et granulométries).

Il est actuellement disponible pour Linux (en particulier Ubuntu 12.04 32 et 64 bit) et Windows (grâce aux contributions de Thomas Retornaz, merci !).

Pour plus d’information:

Et si vous voulez vous rafraîchir la mémoire sur les outils mathématiques mis en œuvre, vous trouverez quelques éléments et quelques liens additionnels sur ce site:

(Photo de la statue de Shiva par Indianhilbilly: Bangalore Shiva)