HADOPI - Le symbole du vite fait mal fait

 

Cela faisait longtemps que je n'avais pas posté un billet. Pourtant, je ne cesse de m'exprimer sur cette foutue loi qu'est l'HADOPI. Voici un billet plus posé, bénéficiant des éléments extérieurs que j'ai pu lire ces derniers temps.

Nicolas Sarkozi a payé jeudi dernier sa politique de réforme vite fait mal faite. On (chez les geeks) parlent beaucoup de l'HADOPI. En fait, le problème est plus général.

J'avais été frappé par cet article paru dans Challenges.fr. Qui révèle combien la politique actuelle c'est du vite fait mal fait.

Après l'épisode "Christine baisée par 21 gus dans une assemblée", on repousse une loi sur l'inceste pour faire passer de force cette loi sur l'HADOPI. Je crois que cette loi sera le symbole du régime du vite fait mal fait tant cette loi est absurde et inapplicable (+7000 résultats dans google). On sait déjà que cette loi ne résoudra pas le problème. Le gouvernement en est conscient, et l'admet. C'est totalement aberrant.

Le pire je crois, c'est la duperie qu'on nous a fait sur les parachutes dorés. Nous, citoyens, prenons la crise en plein face. Même les fonctionnaires, dont certains sont, il faut bien le dire, pauvres ! Et que fait nôtre président ? Rien de bien concret pour les citoyens Ni même pour les fonctionnaires. Certes, on redresse les banques. Ce n'est pas pour autant que les taux vont baisser... vous imaginez bien. Mais cette loi sur les parachutes dorés, on la remets à plus tard, en espérant probablement que, de toute façon, le soleil aidant, le peuple oubliera. Alors, quelle est l'urgence ? Lutter contre la crise, l'inceste ou faire des citoyens des pirates ?

Et maintenant, rions un peu. Que va-t-il se passer quand des gens mal intentionnés enverrons des mails signé HADOPI ? On sait combien la RFC 2821 (norme des serveurs de mail) est faible et combien il est simple d'envoyer des mails avec un mail que l'on ne détiens pas. L'HADOPI devra-t-elle aussi encaisser les réponses à ces innombrable mails... ? C'est peu-être un point positif, après tout. Cela créera des emplois... Quelques centaines de fonctionnaires nouveaux pauvres !

Bref, on risque de vivre des épisodes très comique ou des députés seront accusés par l'HADOPI d'avoir télécharger illégalement depuis l'assemblée. Ou des citoyens innocent se verront menacés par l'HADOPI (ou pas) de voir leur connexion disparaître. Pour moi, c'est tout bonnement pitoyable tant cette loi frise le ridicule. Espérons que la France ne soit pas dupe bien longtemps...

A bon entendeur !

Pascal Negre est fier de Spotify mais les hackers aussi

 

Lors d'un débat sur LCI, Pascal Nègre était bien content de pouvoir vanter les mérites de Spotify. La nouvelle génération de streaming de musique sur internet. Ce qu'il ignore, c'est que, alors même que Spotify est encore en béta et que les inscriptions ne se font que sur invitations (en fait il suffit de se rendre ici) des hackers se le sont déjà approprié. C'est le cas de despotify, un client pour Spotify open source utilisant ncurse. Ce client tourne sous un majorité de système unix, contrairement au client officiel. Ceci est une chose, mais cela veut aussi dire qu'il est possible de ré-implémenté le protocole de Spotify pour en sauvegarde le flux, et donc, en faire des copies.

C'est d'ailleurs ce que propose SpotSave, un petit logiciel disponible uniquement sous windows qui vous permettra lui de télécharger tout ce que vous écoutez sur le client officiel. Spotify est donc voué à devenir le nouveau emule. Mais un emule qui aura le soutiens des majors !

Alors monsieur Nègre ? Toujours convaincu du bien fondé de ce site ? Même une fois payant, il sera possible de télécharger n'importe quel morceaux de musique pour 10euros par mois. Pourquoi donc ne pas inclure ces frais directement dans l'abonnement de tout internaute ? C'est tout de même plus convivial que de ce faire braquer à chaque téléchargement.

C'est ce que propose la quadrature du net que nôtre gouvernement semble ignorer totalement. Pourtant, il faudra bien l'admettre un jour, ces gens on un discours bien plus censé, réaliste et cohérent par rapport à vos balbutiements.

Une fois de plus, vous qui me lisez, je ne peux que vous inviter à écrire à votre député pour qu'il contribue à mettre un terme à cette mascarade qu'est L'HADOPI. L'april viens aussi récemment de lancer un appel à la mobilisation à la suite d'un rapport rendu par le rapporteur. Lui aussi probablement un vendu à la solde des majors, comme Christine Albanel.

Downloader sur deezer. Ou comment dénoncer l'hypocrisie.

 

Les événements de ces derniers temps concernant l'HADOPI m'avaient depuis longtemps donné envie de m'exprimer. Seulement... la politique et moi, ça ne fait pas forcément deux. Il y a des gens comme bluetouff qui parlent bien mieux que moi de bécassine et de ses compères.

Mais j'ai enfin trouvé. Il suffisait de faire ce que je sais faire: du scripting. J'ai donc chercher le moyen de télécharger de la musique sur deezer.

En fait, le principe est très simple. Lorsque vous écoutez un morceaux sur deezer, il est stocké dans un fichier temporaire. Il suffit de ré-encoder ce fichier flash en mp3. Qui y a t'il d'illégal à utiliser un fichier que l'on met sur mon disque sans me demander mon avis ? Je me le demande bien... Et pourtant, ça l'est.

Voici le principe. Allez sur deezer y écouter votre morceau favori. Une fois la barre de progression du téléchargement arrivée à 100%, lancez la commande suivante:

ffmpeg -i $(lsof | grep -i firefox | grep -i flash | grep private | sed 's/.* \(\/.*\)/\1/g') titre.mp3

Ceci est testé à partir de mon OSX en utilisant ffmpegx mais doit fonctionner sous n'importe quel unix en modifiant un peu la commande.

Ce billet n'a pas pour but d'inciter au téléchargement illégal. Personnellement je ne télécharge plus illégalement depuis que beaucoup de sites proposent d'écouter (Last.fm, deezer, ...) voir de télécharger (jamendo, dogmazic, ...) de la musique gratuitement. Mais malgré cela, je tenais à démontrer la débilité de cette loi. Il y aura toujours un moyen de télécharger de la musique illégalement, même à partir de site légaux... Au lieu de tout baser sur la répression, il serait judicieux de trouver un moyen de légaliser ce type de téléchargement. Bref, l'HADOPI ne passera pas par moi. Faites vous aussi savoir à votre député que vous n'approuvez pas cette loi, écrivez-lui.

Tiens, à ce propos, en changeant de Mac j'ai retrouvé de la musique qu'un pote m'avait déposé depuis son disque dur externe (et oui, il n'y a pas qu'Internet pour faire de la copie illégale...). Je crois que c'est l'occasion de (re)découvrir ce charmant morceau datant de l'époque où nôtre président était encore ministre.

Monter un buildbot en 2mn avec collective.buildbot

 

Au Plone 3 Paris Sprint en début d'année j'avais bossé avec Kaï et JF sur collective.buildbot. Du coup j'ai profité du Paris Bobün Sprint pour continuer.

J'ai ajouté une template Paste à collective.buildbot:

buildbot@cecilia:~$ paster create --list-template
Available templates:
  basic_package:  A basic setuptools-enabled package
  buildbot:       A template for collective.buildbot
  ...

C'est assez pratique pour monter un buildbot rapidement et pas se prendre la tête en passant des heures à lire la doc.

C'est relativement simple. On utilise la template qui pose quelques questions:

buildbot@cecilia:~$ paster create -t buildbot gawel.org
Selected and implied templates:
  collective.buildbot#buildbot  A template for collective.buildbot

Variables:
  egg:      gawel.org
  package:  gawelorg
  project:  gawel.org
Enter port (the port to use for internal communication) ['9050']: 6050
Enter wport (the port to use for web interface) ['9080']: 6080
Enter vcs (the vcs type. hg, bzr and git are supported.) ['svn']:
Enter vcs_url (the url to checkout from) ['']: https://svn.gawel.org/gp.fileupload/trunk
Creating template buildbot
Creating directory ./gawel.org
blabla...

Et voilà... On lance 2/3 commandes histoire d'avoir quand même un truc à faire. Sinon c'est un coup à devenir feignant:

buildbot@cecilia:~$ cd gawel.org/
buildbot@cecilia:~/gawel.org$ python bootstrap.py
Downloading http://pypi.python.org/packages/2.4/s/setuptools/setuptools-0.6c9-py2.4.egg
blabla...

buildbot@cecilia:~/gawel.org$ ./bin/buildout -U
Creating directory '/home/buildbot/gawel.org/eggs'.
blabla...
Generated script '/home/buildbot/gawel.org/bin/master'.
blabla...
Generated script '/home/buildbot/gawel.org/bin/cecilia'.

On a maintenant deux script qui correspondent au master et au slave. Si vous ignorez ce qu'est un master et un slave, reporté vous à la documentation buildbot.

Y a plus qu'a les lancer:

buildbot@cecilia:~/gawel.org$ ./bin/master start
blabla...

buildbot@cecilia:~/gawel.org$ ./bin/cecilia start
blabla...

Le tout doit pas prendre plus de deux minutes. Et ça marche. Comme quoi des fois un titre à une signification.

Bien sur, on peut affiner la configuration, utiliser Mercurial ou git, etc. Mais il faut lire la doc.

Upload de fichiers et WSGI

 

Je viens de releaser gp.fileupload 0.5 qui fournis un ensemble de middlewares WSGI pour gérer l'upload de fichiers.

Première utilité: afficher une barre de progression

Et ceci de manière quasi transparente. On colle le gp.fileupload.FileUpload dans sa pile d'application et zou; les formulaire pourvu d'un enctype=multipart/form-data sont attraper au vol par du javascript et une barre de progression s'affiche à la soumission du formulaire. Il y a une petite démo (et une belle doc Sphinx) disponible pour les curieux.

Deuxième utilité: limiter le temps des transactions

En général, on ouvre une transaction, on attends 3 heures qu'un fichier de 300Mo arrive, on se choppe 40 conflits au vol, et avec un peu de chance, la transaction aboutit.

gp.fileupload.Storage catch les requêtes POST et attends d'avoir lu tout son contenu.

Le contenu de la requête est parsé pour en extraire les fichiers qui sont écrit sur le système de fichier dans un répertoire défini.

La requête originale est récrite en remplaçant le contenu original de chaque fichier trouvé par son chemin sur le système de fichier.

C'est seulement ensuite que l'application à la main, avec un POST qui ne dépassera pas le kilo octet. Ainsi le fichier est déjà stocké et la durée de la transaction minimale.

Une option encore pas trop testée permet de desservir toutes les requêtes non text/html depuis le middleware. Une fois que j'aurais un peu mieux testé ce machin, l'utilisation de ce middleware pourra devenir totalement transparente pour l'application.

Je n'ai rien inventé. C'est un système similaire à tramline. Peut être moins optimal car tramline utilise mod_python et est donc totalement indépendant du processus de l'application. Mais bon, je penses que c'est à la fois plus simple d'utilisation (car cela ne nécessite pas Apache et mod_python, justement) et plus transparent pour l'application.