Archive for octobre, 2010

Bug Flattr et WordPress

mercredi, octobre 20th, 2010

Problème

Flattr était en carafe cette nuit… et donc mon blog WordPress ne marchait plus !

Une fois trouvée l’origine du problème, il était temps d’y remédier : j’allais donc logiquement désactiver le plugin Flattr de mon blog. Oui mais voilà, pour le désactiver encore fallait-il que j’ai accès à… mon blog ! puisque l’administration se fait par une interface web intégrée.

Ne pouvant donc appliquer cette méthode, je me connectais à mon serveur par SSH, à la recherche de l’option du fichier de configuration me permettant de désactiver un plugin. Option introuvable puisque n’existant pas, l’état d’activité d’un plugin étant en fait stocké dans la base de données MySQL du blog.

Solution

Il existe donc deux manières de s’en sortir :

  1. Le hack rapide et efficace : supprimer le répertoire « flattr » du répertoire « wp-content/plugins » (ou plutôt le copier ailleurs).
  2. La méthode canonique : faire les requêtes adéquates dans la base de données du blog, ce qui est beaucoup plus compliqué, mais aussi beaucoup plus propre.

Bilan d’ingénierie logicielle

Le plugin de Flattr pour WordPress est merdique, car il n’est pas capable de vérifier ce qu’il faut pour ne pas bloquer un blog en cas de problème sur les serveurs de Flattr. Ceci n’est pas si grave, dans le sens où ce n’est qu’un plugin, et où les modifications nécessaires sont sûrement faciles à faire.

WordPress est mal conçu, car il ne permet pas de configurer simplement une chose aussi fondamentale que l’activation ou la désactivation d’un plugin. C’est beaucoup plus grave car WordPress est actuellement une plateforme structurante du web et l’un des plus importants logiciels libres.

La première chose à faire est d’arrêter de stocker tout et n’importe quoi dans des bases de données. Les base de données sont là pour stocker les contenus, et les fichiers de configurations en texte pur, quel qu’en soit le format, sont le seul endroit légitime où stocker les données de configuration.

C’est le concept même d’Unix, le texte comme garant de simplicité et d’interopérabilité. La mode récente d’utiliser SQLite pour la configuration d’applications est donc bien une hérésie. Pour WordPress cela signifie qu’il faudrait se réarchitecturer proprement sur ce point, ce qui est techniquement facile, mais pose des problèmes de compatibilité énormes.

Une autre solution intéressante pourrait être d’avoir une interface de configuration de secours très minimaliste, moins intégrée dans le reste du blog, mais beaucoup plus résistante à toutes sortes de bugs collatéraux !

Boot sur clé USB

mardi, octobre 12th, 2010

Comme la majorité des utilisateurs de distributions GNU/Linux, j’utilise aujourd’hui la possibilité d’installer mon système directement d’une clé USB bootable. Cela est très avantageux par rapport à l’ancienne méthode standard, qui consiste à graver un CD, puisque cela dispense d’avoir un graveur, de payer des CDs, et surtout depuis trois ans et la déferlante des Netbooks, beaucoup de machines n’ont tout simplement plus de lecteur optique.

Tips Ubuntu 10.10

Or, pour l’iso de la dernière version d’Ubuntu, Maverick Meerkat, quand vous créez la clé USB bootable avec usb-creator, vous obtenez par la suite le magnifique message :

SYSLINUX 3.63 Debian-2008-07-15 EBIOS Copyright (C) 1994-2008 H. Peter Anvin
Unknown keyword in configuration file.
boot:

En fait, le problème est que les anciennes versions d’usb-creator ne sont pas compatibles avec la nouvelle iso Ubuntu. Il existe trois manières de régler le problème :

  1. Faire une upgrade de votre Ubuntu à Maverick Meerkat.
  2. Installer le .deb de la dernière version d’usb-creator.
  3. Plus simplement, éditer le fichier « syslinux/syslinux.cfg » de votre clé USB, et à la dernière ligne, remplacer « ui gfxboot bootlogo » par « gfxboot bootlogo ».

Tout cela m’amène à faire un point global de la situation de ce type d’installation pour les différentes distributions GNU/Linux que j’utilise.

Ancienne méthode

En plus des traditionnelles images en « .iso » pour graver un CD, Arch Linux jusqu’à son installeur 2009.08, et Ubuntu jusqu’à la version 9.04 de son édition pour netbook, ont fourni des images en « .img ». Avec la simple commande :

sudo dd if=image.img of=/dev/sdX

on obtenait immédiatement une clé USB bootable. Cette méthode rapide et efficace présentait deux petits inconveignants :

  1. Elle nécessite de fournir deux fois plus d’images différentes de la distribution, les « .img » en plus des « .iso », ce qui vu le nombre d’images déjà important d’une distribution GNU/Linux (différentes architectures, différents modes d’installation, etc.), peut finir par amener une certaine confusion.
  2. Elle formate toute la clé USB, empêchant de continuer à l’utiliser aussi comme périphérique de stockage.

Nouvelles méthodes

C’est pour cela que de nouvelles méthodes ont été développées. Arch Linux propose depuis son installeur 2010.05 des images « .iso » hybrides, générées grâce au programme isohybrid. Ces dernières sont utilisables directement aussi bien pour graver un CD que pour créer une clé USB bootable. Cela règle parfaitement le premier problème, mais pas le second.

C’est pour cela que depuis sa version 8.10, Ubuntu fournit le programme usb-creator évoqué ci-avant, qui copie les fichiers nécessaires de l’iso Ubuntu sur la clé et la rend bootable, mais sans la formater et en préservant la possibilité de l’utiliser comme périphérique de stockage.

Et chez Debian ?

La situation chez Debian était jusqu’à présent très problématique, puisque l’installation d’une clé USB était beaucoup plus complexe que les autres installations, et de plus très mal documentée. C’est le 9 septembre 2010 que Tanguy Ortolo lève ce lièvre dans son mail Complicated installation from USB, et comme souvent chez Debian en ce moment c’est Joey Hess qui s’y est collé, et qui dès le 13 septembre annonce avoir réussi à faire fonctionner le debian installer avec isohybrid.

Le 1er octobre, Joey Hess publie sur son blog Debian USB install from hybrid iso, informant que toutes les netboot mini.iso des daily builds sont maintenant des iso hybrides. Cependant, les autres images Debian ne sont pas encore des iso hybrides à cause d’un problème avec jigdo. Or jigdo, pour Jigsaw Download, a été développé pour et par Debian, pour répondre au problème de la surcharge de la bande passante des serveurs lors des downloads des isos. Problème qui a été brillamment résolu depuis par BitTorrent. Il serait donc grand temps de dire « merci et au revoir » à jigdo, dont le développement a été arrêté et qui est en « maintenance mode », et de générer au plus vite toutes les isos avec isohybrid.

Sintel mon amour

lundi, octobre 4th, 2010

Depuis le 30 septembre, Sintel, le dernier court métrage d’animation en 3D de la Fondation Blender, peut être librement vu en ligne ou téléchargé en différents formats et résolutions. De plus, vous ne risquez rien de la Hadopi, puisque Sintel est sous licence Creative Commons BY.

Sintel est le troisième court métrage de la Fondation Blender, après Elephants Dream en 2006 et Big Buck Bunny en 2008. Et disons le tout net, c’est de loin mon préféré ! Une héroïne aussi forte qu’Ellen Ripley, déambulant dans un monde proche de celui de Conan le Barbare à la recherche d’un dragon ressemblant à s’y méprendre à Nemrod, la recette de base est alléchante.

Quand en plus la réalisation fait des étincelles, le résultat est formidable. D’autant qu’en très peu de temps, on a le droit à une vraie belle histoire, avec une vraie surprise et un vrai questionnement philosophique. Moins de 13 minutes qui passent vraiment beaucoup trop vite. Si vite qu’on se dépêche de revoir le film, et qu’à chaque fois on l’apprécie encore plus, ayant le temps de profiter de la beauté des détails qui nous avaient échappé.

Ce grand résultat artistique graphique et d’animation a été authentiquement obtenu grâce à un pipeline de production complet composé exclusivement de logiciels libres (la bande-sonore a elle été sous-traitée et ne rentre pas dans ce cadre). Si vous êtes artiste, vous pouvez télécharger et utiliser ces logiciels gratuitement. Si vous êtes développeur, vous pouvez en plus les améliorer selon vos besoins, ou ceux d’autres utilisateurs.

LogicielLangageLicence
BlenderC, C++ et PythonGPL
GIMPCGPL (application)
LGPL (librairies)
InkscapeC++GPL (application)
LGPL (librairies)
MyPaintPython (application)
Python et C++ (librairies)
GPL (application et librairies)
LGPL (brushlib)
AlchemyJavaGPL

J’aimerais ici lancer un appel particulier en direction des écoles de graphisme/animation/3D, qui au lieu d’obliger leurs élèves à utiliser des logiciels propriétaires piratés, pourraient commencer à regarder enfin du côté des logiciels libres. Il est un fait qu’après plusieurs années, et des milliers d’heures d’utilisation d’un logiciel, il est très difficile d’en changer par la suite, et il serait donc beaucoup plus intelligent de faire les bons choix dès le début.

De plus, pour ce qui est d’apprendre, Sintel fait encore plus fort, car ce n’est pas seulement le film en tant que produit final qui est sous licence Creative Commons BY, c’est aussi le cas de l’ensemble des fichiers .blend, des modèles 3D et des textures créés pour l’occasion ! Ainsi vous pouvez modifier et redistribuer, y compris commercialement, toutes ces données qui sont fournies sur le DVD. La seule condition est de respecter la clause de Paternité, puisque cette licence N‘utilise PAS le Copyleft :

En l’espèce, la manière indiquée par l’auteur original est la suivante :

The attribution is:

a) If you redistribute or screen or broadcast the movie itself: include the entire credits scroll.

b) In all other cases, attribute it as:

(c) copyright Blender Foundation | durian.blender.org

En français cela veut dire que si l’on diffuse le film, il faut aller jusqu’au bout du générique de fin, qui donne crédit à l’ensemble des personnes ayant participé au projet, ainsi qu’aux sponsors et aux logiciels utilisés. Dans les autres cas, par exemple la publication d’une simple image du film, ou l’utilisation d’une texture ou d’un modèle dans un travail artistique dérivé, la mention « (c) copyright Blender Foundation | durian.blender.org » est suffisante.

J’espère avoir donné l’envie de voir Sintel à ceux qui ne l’avaient pas encore vu, et je suis convaincu que ce film donnera envie à beaucoup d’artistes d’utiliser des logiciels libres, et de mettre leurs travaux sous licences Creative Commons !