Django Simple Captcha et tout devient si simple

Comme d’habitude le mois d’aout fut une vraie folie. Et qui dit mois de folie dit, billet qui prennent du retard. Heureusement que j’ai pu tricher en publiant la première interview. (ben oui c’est beaucoup plus rapide de poser des questions que d’y répondre, enfin beaucoup plus rapide d’écrire les questions dans un mails quoi).

Du coup, je suis presque en retard pour la django app du mois. Et pour ne pas être en retard, j’ai choisi pour ce mois ci, une django app simple, mais très utile, django simple captcha (pour la petite histoire j’ai découverte cette app en testant django-tellafriend, une application dont il faudra que je vous parle également).

1- Où on le trouve, comment on l’installe, tout ça quoi (et la doc) ?

Alors on le trouve, tout simplement, sur la page google code qui lui est consacré. Pour l’installation,   c’est comme toujours du classique (ha ce que j’aimerais un jour, avoir une surprise à ce niveau là, pouvoir gouter à un peu de nouveauté… mais non, c’est toujours pareil.

Vous avez donc le choix entre :

  • easy_install
  • un tar.gz de la dernière release
  • un checkout de SVN

Dans tout les cas, il vous suffira une fois votre petite application installée, de la rajouter dans les INSTALLED_APP, de lancer un petit syncdb et magie… ça fonctionnera.

Enfin, si vous avez pensé à installer PIL, bien entendu.

La doc elle, est minimaliste mais plutôt claire et bien faite.

2- Mais au fait, à quoi ça sert ?

He ben mon cher ami, c’est indiqué dans le titre. C’est une application de captcha. Elle permet dans sa version de base de proposer trois méthodes de tests de l’utilisateur :
le très classique lettre dans le désordre
l’opération mathématique (toi aussi répond à 4+2)
le choix d’un mot, au hasard, dans un dictionnaire.

Et là, ou c’est vraiment le top avec cette petite app, c’est que si vous avez installé Flite, vous pourrez même avoir votre captcha en Text-so-speech, et vive l’accessibilité !!

3- Comment ça marche ?

En fait rien de plus simple, l’app fourni tout simplement un noueau type de Field a utiliser dans un formulaire.

Et oui, rien de plus simple.

On crée son formulaire, on rajouter un champ Captcha et quand le formulaire a été posté, on fait un joli is_valid() pour savoir si c’est bon.
Et au niveau de la configuration, les possibilités sont très complètes. On peut configurer le taux de bruit appliqué à l’image, les inclinaisons maximums appliqués aux lettres et aux chiffres, la font à utiliser ainsi que sa taille, les différentes couleurs, etc etc,

4- Mais encore

Ce qui est de bien avec cette app, c’est qu’en plus de penser à tout ce qui accessibilité, elle est bien pensé. Elle vous permet en effet de rajouter vos propres générateurs de tests. Il suffit de coder une petite fonction qui renverra un tuple contenant la question et sa réponse dans un tuple. Et le tour est joué.

Et ça c’est plutôt très sympa.

Dernière précision, la page google code contient un bouton flattr, si vous avez un compte flattr (cet excellent nouveau système de rétribution dont il faudra que je parle un jour, mais google est votre ami), n’hésitez pas à cliquer sur le bouton.

Mad-Interview de Genma

J’en avais déjà parlé, voici donc l’inauguration d’une nouvelle section de ce blog, la partie interview. Et pour inaugurer cette section, quoi de plus logique que l’interview de celui qui est en grande partie responsable de la naissance de la dite section, c’est à dire Genma. C’est en effet le fait de gagner une interview sur son blog, il y a quelque temps qui m’a donné envie de moi même proposer des interviews. Je me lance donc maintenant avec cette première, les suivantes arriveront assez vite, si je trouve des candidats qui acceptent de répondre à mon feu nourri de questions.(Et encore merci pour tes réponses Genma).

Si tu devais te présenter en trois phrases, que dirais tu ?

Je m’appelle “Genma” (c’est mon pseudo) et je suis l’auteur du blog Genma.free.fr. J’ai 31 ans
et je me qualifie de geek au sens où j’aime bien les nouvelles technologies, le logiciel libre, l’informatique et le high-tech, les comics, la science-fiction, Internet et le web 2.0… Pour le reste de la présentation, je pense que mon blog et surtout les réponses à cette interview en diront plus sur moi.

== ta cyber life ==

— Pourquoi avoir commencé un blog ?

Commencer il y a 6 ans, à cette époque, c’était plus un site foure-tout. J’ai cherché pendant environ 3 ans ce que j’allais en faire. Puis est venu la mode des blogs dans la presse, la création de la blogosphère et j’ai décidé de publier régulièrement. J’ai fait alors des articles sur différents sujets, je me suis cherché et j’ai, je pense, trouver un style d’écriture et une sorte de ligne éditoriale. J’ai toujours aimé écrire et j’ai toujours eu envie de partager mes écrits. Le blog est donc quelque chose de naturel pour moi, une extension de moi sur Internet.

— Genma.free.fr, c’est quoi ?

Un blog! Plus sérieusement,c’est dur à dire. Faut y aller, le suivre sur plusieurs jours pour comprendre. C’est mon jardin pas secret, c’est mon monde, mon univers que je partage avec mes lecteurs et le web.

— Tu as d’autres blogs ?

Un blog avec mon CV sous mon vrai nom, qui reprend quelques articles de mon blog perso (Genma.free.fr), mais sans plus. Je ne m’investis quasiment pas dessus, j’aimerai bien faire plein d’articles sérieux sur les nouvelles technologies, sous mon vrai nom, mais je manque de temps.

— Plutot twitter(identi.ca) ou facebook ? quelles utilisations as tu des deux ?

  • Twitter : pour de la veille technologique et pour publier des liens, en découvrir, pour partager. Pour “Twitter” (ceux qui twittent comprendront). J’adore le concept et la puissance de Twitter.
  • Facebook : toutes mes mises à jour sont faîtes depuis Twitter, via un service dédié. Je ne fais pas de quizz ou de jeu. Je l’utilise pour voir un peu ce que je les gens que je connais/ai pu connaître ont à dire, pour des reprise de contact avec des gens perdus de vue. Un peu le “Copain d’avant” moderne.

— Es tu addict au Net ? Si oui tu as une ou deux anecdotes sur le sujet ?

Beaucoup moins que je n’ai pu l’être. J’ai écrit des articles sur ma cyberdépendance sur mon blog, je me suis remis en question. Je n’ai pas de Smartphone avec la 3G à cause de ça. J’ai Internet chez moi et au boulot, ça suffit. Je me suis peu à peu détacher d’Internet. Avant je lisais mes fils RSS dès le petit déjeuner.

— Sur le net on peut te trouver où ?

J’ai fait un article sur le sujet 😉
Je dirais trois adresses :

Sur le forum d’Ubuntu-fr, parfois.

== ta vrai life ==

— Ton bureau chez toi il ressemble à quoi ? (si tu as une photo …)

Mon ancien bureau, chez mes parents, avant que je déménage : http://genma.free.fr/spip.php?article762 Mon nouveau bureau, je n’ai pas de photo. C’est un canapé devant une télé avec un ordinateur portable. Un bloc notes et un stylo pour noter des idées d’articles. Et mon cerveau. Depuis que j’ai déménagé et vie en couple, je n’ai plus de bureau de blogeur par manque de place.

— Tu as quoi comme passion ?

J’aime beaucoup de choses, mais pas quelque chose plus qu’une autre. Le logiciel libre, Internet (Twitter, les Meme, 4Chan, les Podcast), la veille technologique, les comics, le cinéma… Mais si je ne devais retenir qu’une chose, ce serait mon blog.

— Tu t’investis dans des trucs précis ? projet divers / art / asso ?

Mon blog occupe le peu de temps libre qu’il me reste dans ma vie personnelle “compliquée”. Je fais un peu de judo dans un tout petit club une à deux fois par semaine.

— Et niveau boulot ?

Je travaille depuis presque 5 ans comme Consultant dans une SSII assez importante. Je suis biologiste de formation (Maîtrise) avec un Diplôme Universitaire d’Informatique (c’est là que j’ai découvert Linux et suis devenu passionné d’informatique en général) et un DESS de Bioinformatique… Donc pas vraiment informaticien. C’est par hasard que j’ai trouvé du travail dans cette SSII et j’y suis encore. (Si avec ça, on ne trouve pas qui se cache derrière mon pseudo de Genma…) Actuellement, c’est du développement JAVA J2EE que je fais. Ce n’est pas forcément ce que je voudrais faire, mais j’ai un boulot en attendant de savoir ce que je veux vraiment faire dans la vie.

— Si tu devais choisir un événement que tu as vécu, un seul, pour te definir, tu choisirais lequel ?

Je peux tricher en répondant deux fois? Pour mon côté

  • otaku : le show case de X-Japan à Japan Expo. Un rêve s’est réalisé pour moi. Faire le X avec mes bras au son de la voix de Toshi et du piano de Yoshiki, c’est un rêve que je n’aurai jamais cru possible.
  • geek : ma découverte de l’existence du logiciel libre. Ca a changé ma vision de l’informatique à jamais. Après des années de galère avec Windows 98 et XP, j’ai trouvé une informatique différente, qui évolue rapidement. J’ai vu naître Ubuntu, Firefox…

Sinon, un seul évènement pour définir Genma : la création du blog.

== Question pour me faire mousser ==

— Est ce que tu lis le Mad Blog ? Pourquoi ? (que ça soit oui ou non)

Oui depuis que j’ai demandé l’interview suite à un RT sur Twitter. Je me suis abonné au fil RSS
J’aime le style, la diversités des articles techniques. Pour moi c’est ça un vrai blog : de bons articles, un partage de connaissance, de quoi lire (pas une ligne et une simple vidéo pour faire le buzz).

== Allez, on a presque fini, quelques dernières questions pour vraiment te connaitre ==

— Tu es plus Van Damne ou Steven Seagal ? pourquoi ?

Van Damne. J’ai quasiment vu tous ses films de la grande époque, je les avais en VHS. Steven Seagal, j’ai moins vu de films, j’aime moins le style de combat. J’aime moins le personnage. Jean-Claude, c’est Jean-Claude. Bloodsport, Kickboxer, TimeCop et surtout Double Impact. Le meilleur film qu’il ait fait. Deux Van Damne pour le prix d’un.

— Si tu devais choisir un bouquin, un bon film, une série cool, une série pourrie , un nanard, tu choisirais quoi ?

  • un bouquin : La Trilogie des Tripodes de John Christopher. J’en ai fait un article rapide sur mon blog sans en faire la critique. Faudrait.
  • un bon film : In the Mood For Love de Wong Kar Wai. Parce que j’en ai la musique en tête au moment où je rédige ma réponse à cette interview. Parce que j’ai vu ce film trois fois et que je le reverrai encore. Parce que ça fait moins geek que de répondre Ghostbuster ou Back to the future…
  • une série cool : Fringe. C’est ce que je regarde en ce moment et j’adore. Bien sympathique comme série. Ou alors Sarah Connor Chronicles. La fin de la saison 2 (et fin de la série), terrible. Ca s’ancre bien dans un univers parallèle à Terminator les films (ça suit le 2, occultant les 3 et 4), j’ai adoré.
  • une série pourrie : Power Rangers. Quand j’étais jeune, j’ai regardé, par nostalgie pour les sentai (Bioman et co). Il faut savoir qu’à l’époque les Américains rachetaient chaque nouvelle série et fesaient rejouer les scènes “humaines” par des acteurs américains (le petit américain moyen ne comprendrait pas pourquoi il n’y avait que des héros asiatiques) : on avait alors des jeunes lycées avec le noir et l’asiatique de service. Le tout en ajoutant de l’humour de m… avec un duo comique de gros débile.
  • un nanard : Alien versus Predator 2. Le premier est renié par les fans des deux monstres, le deux est encore pire pour eux. Moi, j’ai les deux en DVD collector, j’adore. Je dois rédiger un article pour défendre ces deux films. Ah le Predalien face au Predator…

— Ton pire souvenir scolaire ?

La majorité du temps de mes années lycées. Ce sont les années que j’ai zappé de ma vie. Pas de moments précis, c’est un tout. Pas sportif, pas premier de la classe, pas d’amis. Un peu le nerd. Je n’avais pas d’ordinateur, je jouais pas aux échecs mais j’étais un rat de bibliothèque.

— Quand je dis chaussette, tu penses à quoi en premier ?

A la blague de “C’est un garçon qui pue des pieds qui rencontre une jeune femme qui pue de la bouche. Un jour, amoureux fous, ils décident de s’avouer l’un l’autre leur plus grand secret. La jeune femme commence à parler : j’ai quelque chose à avouer… Et l’autre lui répond : “chut, ne dis rien, je sais. Tu as mangé mes chaussettes”. Tu l’auras bien cherché, vu la question 😉

— Tu es plus choucroute ou cassoulet ?

Il y a 4 ans, j’ai travaillé pendant 4 mois sur Toulouse, j’étais en mission. Je mangeais au resto le soir et je n’ai jamais mangé un seul cassoulet sur place. Par contre, j’ai du manger deux fois de la choucroute au resto. Donc choucroute. Avec une bonne bière.

— Ton livre de chevet actuel ? Pourquoi ?

Bernard Werber – Paradis sur mesure. Parce que je l’ai acheté récemment et parce que je lis tous les Bernard Werber, qui est un geek. J’adore ses livres, je les ai tous. Ce n’est pas vraiment mon livre de chevet, vu qu’il est dans mon sac pour le lire dans le RER. Et je n’ai pas de chevet, et je ne lis pas le soir.

— Le livre que tu as détesté lire et que pourtant, tu as fini ?

Cela ne m’est jamais arrivé. Du moins je ne me rappelle pas. Je choisis généralement assez bien mes livres. Il y a peut-être la Première Nuit de Marc Levy, la suite du Première jour, pour lequel j’ai eu un moment de doute mais je quand même fini. Je ne peux pas dire que j’ai détesté mais j’ai eu un moment où j’ai pensé arrêté de lire le livre. Là aussi (autopromotion une fois de plus), la critique est sur mon blog.

— Le mot de la fin, en 17 mots ? (ce qui fait les 17 mots de la fin … )

Venez lire mon blog. La vie est courte alors vivez vos passions à fond. Et à bientôt.

Diablo 3, des infos en direct de la gamescom 2010, sans y être

Hé ben non, je n’ai pas pu aller à la Gamescom 2010 qui se tient à Cologne. Et pourtant j’aurais bien aimé, surtout pour avoir des infos sur Diablo 3.

Mais heureusement, nous sommes en 2010 et twitter est là. Du coup, j’ai pu suivre par livetweet interposé la conférence Blizzard.

Qu’est ce que j’ai donc appris ?

Qu’il y aura un mode hardcore, à nouveau. J’avoue que je n’imaginais même pas qu’il puisse ne pas être présent ce mode de jeux mais bon, là c’est confirmer.

Le prêtre des runes sera bien une des classes jouables, pourquoi pas. De toute façon moi mes classes préférées ont toujours été le nécromancien et l’assassin (à les griffes …)

Il va y avoir un système de Craft, basé sur des artisans. Les artisans seront des NPC qui suivront le héros. Vous pourrez leur demander de crafter des trucs, partir tabasser du démons et quand vous reviendrez, votre équipement vous attendra, tout propre, tout neuf. Les artisans auront leurs propres quêtes et leur propre niveau. Si le joueur fait les quêtes des artisans, ceux-ci pourront gagner des niveaux et devenir plus puissants. Les recettes bien entendu pourront être droppées. Si j’ai bien compris il y aura un grand nombre de ‘qualités’ d’objet possible (j’ai cru voir passer le chiffre de 14 pour les gemmes).

Le forgeron pourra réparer les items, leur ajouter des emplacements d’enchantements, en plus de faire des armures.

On pourra, apparemment, utiliser des gemmes pour enchanter des items et les rendre encore plus puissants. Les sets d’item seront bien entendu présent eux aussi.

Si j’ai bien compris, il n’y aura plus de système de Town Portal, faudra utiliser ses petites jambes musclées pour aller d’un point à un autre.

Tout les items pourront être détruit pour récupérer des composants élémentaires nécessaires aux craft.

Bon allez, pour le plaisir, je vous met quelques petits screens tirés du presskit de blizzard.

Résultat du concours pour les deux clés de test sc2

Bon voilà, 22h vient de sonner il y a peu c’est donc le moment de départager les 4 participants pour savoir qui aura la chance de tester Starcraft 2.

Les deux gagnants (random.org a tranché de ses jets de dés random) qui vont recevoir leur clés par mail sont :

  • vincnet500
  • Infornographie

Désolé pour les deux autres…

Amusez vous bien !!

Choqok 1.0 beta 2 est sorti

Choqok est sans aucun doute, le meilleur des clients twitter sous Linux (et j’en ai testé une palanqué, moi qui vous le dit). Alors effectivement il est un peu moche (enfin ça dépend beaucoup du thème KDE choisi), mais ça vaut franchement le coup.

Parmi les fonctionnalités intéressantes, dont certaines n’apparaissent qu’avec la béta 2 :

  • multi compte twitter et status.net (vive identi.ca)
  • gestion des thumbnail pour un certain nombre de service d’hébergement d’image
  • preview sur les vidéos
  • gestion des lus/non lus
  • upload des documents/images directement à travers choqok (en utilisant le billet rapide)
  • gestion des RT ‘manuels’ et des RT ‘à la sauce twitter’
  • gestion de Oauth
  • url shortener sélectionnable
  • unshortening d’url et affichage des urls longues dans des tooltips
  • autocomplétion des username twitter (ça c’est cool)
  • sauvegarde des onglets de recherche.
  • Un affichage possible en mode conversation
  • Et encore tout plein de truc.

Ces deux défauts sont :

  • il est un peu moche, mais bon ça sérieusement… c’est pas non plus un critère très important
  • il est un peu long à se lancer…

Donc la béta 2 est sortie aujourd’hui. (ici le billet sur le blog de choqok) Donc forcément, elle n’est pas dans les repo Ubuntu, ni Debian d’ailleurs. (les repos Ubuntu ont la beta 1)

Comment donc l’installer ? Simple, comme d’hab, avec les sources. Il y a pourtant quelques petites subtilités à suivre.

Tout d’abord les dépendances. Presque toutes sont installables par gestionnaire de paquet il s’agit de :

  • libqca2-dev
  • libqca2-plugin-ossl
  • libqjson-dev
  • libqjson0

Ensuite, choqok a une dépendance vers QOauth qui elle va être un peu plus chiante à installer. En effet il n’y a pas de package dans les repos Ubuntu. Heureusement, pensez vous, il y a des packages debian et ubuntu fourni par les devs de QOauth, sauf que, en tout cas pour moi, les packages ne fonctionnaient pas du tout. En fait ils s’installaient bien mais à la compilation de choqok, j’avais une sale erreur de compil. Du coup, je vous encourage à installer  QOauth à partir des sources. Et c’est plutôt facile. Un simple et c’est fini :

$ qmake
$ make
$ sudo make instal

Concernant choqok maintenant, le README vous dira de faire :

cd choqok
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` ..
make
sudo make install OR su -c 'make install'

j’ai perso dû remplacer la ligne cmake par celle-ci :

cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` ../

Pour que cela fonctionne (oui un simple / en plus à la fin pour avoir un path relatif correct)

Et, c’est tout. Ensuite à vous les joies de choqok …

Vous voulez découvrir starcraft 2 ?

Bon, je suis donc l’heureux possesseur d’une boite starcraft 2. Et comme tout ceux qui ont une boîte de starcraft 2, j’ai deux clés de test pour sc2. Sauf que je ne sais pas quoi en faire moi, de mes clés de test. Les affreux que je croise IRL qui pourraient être intéressés ont déjà tous leurs boites SC2, les autres ne veulent même pas entendre parler de ce jeux. Donc, plutôt que de les laisser pourrir petit à petit dans ma boite, je me suis dit que j’allais les offrir.

Et comment faire pour avoir le bonheur d’avoir un passe invité de test ? Tout simple, laisser juste un petit commentaire sur ce billet (avec votre vrai mail) avant demain soir 22h. J’en choisirais ensuite deux au hasard (vive random.org) qui auront le plaisir de recevoir une clé sc2 par mail.

Aussi simple que ça.

Mais qu’est ce que c’est qu’une clé de test me demanderez vous ? C’est une clé qui si vous vous connectez sur www.starcraft2.com/guest, vous permettra de disposer d’un crédit de 7h de jeux à dépenser en 14 jours (le début des 14 jours étant le jour d’activation).

Bien entendu il vous faut un compte battlenet (vous pourrez le créer en allant sur l’url donné au dessus) et il vous faudra télécharger le client d’essai gratuit (mais bon quelques petits giga de dl, pas de quoi vous faire peur non ?)

TC 2000

Allez op, cherchant à offrir un peu de légèreté et de fraicheur à mon blog en ce beau vendredi 13, je me suis dit que parler d’un film, si possible ringard, serait une excellente idée. Aussitôt dit, Aussitôt fait et donc voici la critique de TC 2000, un film avec des vrais …. dedans.

J’ai eu l’occasion de tomber sur ce magnifique nanard de 1993 il y a peu. C’est comment dire, un sous NewYork 1997 ou Los Angeles 2001.

L’histoire est très classique. A la suite de multiple catastrophe écologique du à la pollution, la surface de la Terre est devenue quasiment inhabitable. Les riches ont donc fait ce que font tout les riches, ils se sont réfugiés dans des complexes souterrains ‘tout confort’ laissant, comme toujours, la surface aux pauvres qui eux font ce que font tout les pauvres, tentés de survivre, se battre entre eux et tenter d’entrer dans les repaires de ces salauds de riches.

Dans cet univers impitoyable, les trackers sont ceux qui protègent les gentils (les riches quoi) des méchants. Méchants qui d’ailleurs sont en plus dotés d’un goût des plus … ridicules. (comme par exemple le gang des Picassos qui se croient obligé d’arborer des maquillages à la Kiss du dimanche). Bon quand vous aurez vu l’accoutrement des gentils, vous me direz que cette propension au mauvais goût est partagée …

Mais revenons aux trackers. Parce que les deux héros du films, Jason et Zoey sont des trackers. Leur métier n’est déjà pas facile, mais quand en plus, il y a un traitre très haut placé dans la hiérarchie souterraine, ça devient carrément mortel… Mais ‘heureusement’ pour Zoey, il y a une espèce de scientifique geek ridiculous dans les labos souterrains. Et elle sera ressuscité en TC 2000, (Tracker Cybernétique, faut suivre) destiné à défendre et protéger les refuges souterrains. Et puis c’est surtout l’occasion pour les  préposés aux fringues du film de sortir leur assortiment de costume cuir/clous moulant parce que forcément un cyborg policier féminin doit forcément être accoutrer comme une dominatrice de bas étage.

Notre TC 2000 devrait donc, logiquement, aider les trackers humains a mettre une fessée aux vilains méchants pauvres de la surface. Sauf que.. sauf que le vilain traitre à d’autres plans….

Mais je ne vous en dirais pas plus, je ne voudrais pas déflorer un peu plus le scénario recherché de ce splendide film.

Juste deux dernières petites précisions :
Les décors d’usine désaffectées sont fascinant de carton-patismes.
Il semblerait que la pollution en plus de détruire la surface est détruite presque toutes les armes à feu. Il ne reste donc plus qu’une seule façon de terrasser les ennemis, la baston. Et des bastons, il y en a souvent, toutes les cinq minutes, et pour n’importe quel prétexte y compris le fameux prétexte ‘il n’y a pas de prétexte c’est comme ça’.

Bon allez, je vous ai tellement donné envie de le voir ce film, que je vous met le trailer.

Allez op, cherchant à offrir un peu de légèreté et de fraicheur à mon blog en ce beau vendredi 13, je me suis dit que parler d’un film, si possible ringard, serait une excellente idée. Aussitôt dit, Aussitôt fait et donc voici la critique de TC 2000, un film avec des vrais …. dedans.

J’ai eu l’occasion de tomber sur ce magnifique nanard de 1993 il y a peu. C’est comment dire, un sous NewYork 1997 ou Los Angeles 2001.

L’histoire est très classique. A la suite de multiple catastrophe écologique du à la pollution, la surface de la Terre est devenue quasiment inhabitable. Les riches ont donc fait ce que font tout les riches, ils se sont réfugiés dans des complexes souterrains ‘tout confort’ laissant, comme toujours, la surface aux pauvres qui eux font ce que font tout les pauvres, tentés de survivre, se battre entre eux et tenter d’entrer dans les repaires de ces salauds de riches.

Dans cet univers impitoyable, les trackers sont ceux qui protègent les gentils (les riches quoi) des méchants. Méchants qui d’ailleurs sont en plus dotés d’un goût des plus … ridicules. (comme par exemple le gang des Picassos qui se croient obligé d’arborer des maquillages à la Kiss du dimanche). Bon quand vous aurez vu l’accoutrement des gentils, vous me direz que cette propension au mauvais goût est partagée …

Mais revenons aux trackers. Parce que les deux héros du films, Jason et Zoey sont des trackers. Leur métier n’est déjà pas facile, mais quand en plus, il y a un traitre très haut placé dans la hiérarchie souterraine, ça devient carrément mortel… Mais ‘heureusement’ pour Zoey, il y a une espèce de scientifique geek ridiculous dans les labos souterrains. Et elle sera ressuscité en TC 2000, (Tracker Cybernétique, faut suivre) destiné à défendre et protéger les refuges souterrains. Et puis c’est surtout l’occasion pour les préposés aux fringues du film de sortir leur assortiment de costume cuir/clous moulant parce que forcément un cyborg policier féminin doit forcément être accoutrer comme une dominatrice de bas étage.

Notre TC 2000 devrait donc, logiquement, aider les trackers humains a mettre une fessée aux vilains méchants pauvres de la surface. Sauf que.. sauf que le vilain traitre à d’autres plans….

Mais je ne vous en dirais pas plus, je ne voudrais pas déflorer un peu plus le scénario recherché de ce splendide film.

Juste deux dernières petites précisions :

Les décors d’usine désaffectées sont fascinant de carton-patismes.

Il semblerait que la pollution en plus de détruire la surface est détruite presque toutes les armes à feu. Il ne reste donc plus qu’une seule façon de terrasser les ennemis, la baston. Et des bastons, il y en a souvent, toutes les cinq minutes, et pour n’importe quel prétexte y compris le fameux prétexte ‘il n’y a pas de prétexte c’est comme ça’.

Bon allez, je vous ai tellement donné envie de le voir ce film, que je vous met le trailer.

Petit tour du coté des itertools, billet sans nucléaire dedans, promis

Le module itertools est un module bien pratique auquel on ne pense pas assez souvent. En tout cas auquel, moi, je ne pense pas assez souvent. Et pourtant, il peut grandement simplifier pas mal de ligne de code, dans un bon nombre de situation. Il faut juste savoir que les fonctions qu’il propose existe.

Ce billet a donc 2 objectifs, vous faire découvrir les itertools (je ne vais pas lister toutes les fonctions juste celles dont je devrais me servir plus souvent et que j’oublie) et me permettre de ne pas oublier que je pourrais les utiliser.

Point important : Un certain nombre des itertools permettent de gérer les iterateur infinis, ce que ne permettent pas les fonctions ‘normales’ comme map par exemple (qui renvoie une sortie complétement calculée, ce qui est par définition impossible avec un iterateur infini).

Précision : les exemples de code sont ceux fournis par la doc officielle des itertools

itertools.chain (*iterables)

permet d’avoir un iterateur qui retourne tout les éléments du premier iterable passé en paramètre, puis du second, puis du troisième, etc etc… Bien pratique pour aérer son code.

def chain(*iterables):
# chain('ABC', 'DEF') --> A B C D E F
for it in iterables:
for element in it:
yield element

Depuis python 2.6, il existe une classmethod de chain, from_iterable(iterable) qui ne prend qu’un argument, un iterable contenant tout les iterables.

@classmethod
def from_iterable(iterables):
# chain.from_iterable(['ABC', 'DEF']) --> A B C D E F
for it in iterables:
for element in it:
yield element

itertools.compress(data, selectors)

compress n’est disponible qu’en python 2.7. Cette fonction retourne un iterateur contenant que uniquement les valeurs de data auxquelles correspondent un élément évalué à True dans le selectors. Compress s’arrête dès que data ou selectors est vide.

def compress(data, selectors):
# compress('ABCDEF', [1,0,1,0,1,1]) --> A C E F
return (d for d, s in izip(data, selectors) if s)

itertools.count(start=0, step=1)

Cette fonction bien que présente depuis longtemps a droit à quelques modifications dans python 2.7. Count gagne en effet l’argument step et la possibilité d’itérer sur des arguments non integer.

def count(start=0, step=1):
# count(10) --> 10 11 12 13 14 ...
# count(2.5, 0.5) -> 3.5 3.0 4.5 ...
n = start
while True:
yield n
n += step

itertools.dropwhile(predicate, iterable)

Construit un iterateur qui ne renvoie aucun élément de l’iterable tant que le prédicat est vrai, ensuite, tout les éléments de l’iterable sont renvoyés

def dropwhile(predicate, iterable):
# dropwhile(lambda x: x<5, [1,4,6,4,1]) --> 6 4 1
iterable = iter(iterable)
for x in iterable:
if not predicate(x):
yield x
break
for x in iterable:
yield x

itertools.takewhile(predicate, iterable)

Construit un iterateur qui, tant que le prédicat est vrai, renvoie les éléments de l’iterable.

def takewhile(predicate, iterable):
# takewhile(lambda x: x<5, [1,4,6,4,1]) --> 1 4
for x in iterable:
if predicate(x):
yield x
else:
break

itertools.ifilter(predicate, iterable) et itertools.ifilterfalse(predicate, iterable)

Construit un iterateur qui ne renvoie que les éléments pour lesquels le prédicat est respectivement True ou False. Si predicate est à None, l’iterateur renvoie les éléments respectivement True ou False.

def ifilter(predicate, iterable):
# ifilter(lambda x: x%2, range(10)) --> 1 3 5 7 9
if predicate is None:
predicate = bool
for x in iterable:
if predicate(x):
yield x

itertools.imap(function, *iterables)

Renvoie un iterateur qui applique function en utilisant les iterables comme argument. Si function est None, les arguments sont retournés sous la forme d’un tuple. Imap s’arrête lorsqu’elle atteint la fin du plus petit des iterables. Imap est utile lorsque l’on utilise des iterateur infinie qui provoque une erreur avec map.

def imap(function, *iterables):
# imap(pow, (2,3,10), (5,2,3)) --> 32 9 1000
iterables = map(iter, iterables)
while True:
args = [next(it) for it in iterables]
if function is None:
yield tuple(args)
else:
yield function(*args)

les autres i-versions des fonctions classiques.

Comme l’on trouve imap, il existe aussi izip, izip_longest et islice,

Parmi les autres fonctions il y a des fonctions de combinaisons, de calcul, de cycle, de groupby, mais celles là, vous les trouverez sur la doc officielle.

Billet d’anniversaire du blog en retard

En fait, mon blog a 1 an depuis le 21 juillet… Mais forcément, bon, voilà, je fais mon post anniversaire 3 semaines après. Oui, on a fait plus crédible, je sais. Mais c’était soit le billet de django-app du mois de juillet, soit le billet anniversaire.

Honnêtement, vous n’avez pas perdu au change non ?

Et puis, ce n’est pas très important un billet pour marquer l’anniversaire d’un blog . Mais c’est aussi un peu un passage obligé. Alors aujourd’hui que j’ai un peu de temps, j’en profite pour m’y coller.

En fait, c’est quand même assez crétin les billets anniversaire, parce que je ne sais pas quoi écrire dedans. Parlons donc un peu chiffre. Avec 98 billets en un an, j’ai largement atteint mon objectif de : ‘un billet par semaine ou alors je suis vraiment une quenelle’.

Par contre il y a des catégories de billet que j’ai un peu laissé sur le coté, honte à moi, comme ceux contre la procrastination ou les critiques de séries / films nuls. Manque de temps, quand tu nous tiens…

De même dans les choses pas faites, j’avais quelques idées de nouvelles catégories comme la catégories interview que j’avais prévu de lancer et qui sont pour l’instant toujours à l’état d’idées.

A si, une nouvelle quand même, mon petit blog va bientôt déménager et sera sous peu (quand j’aurais eu le temps de m’en occuper, mais avant début septembre ça serait pas mal) hébergé par alwaysdata. Pourquoi un tel déménagement ?
Deux raisons :

  • j’ai déjà pas beaucoup de temps et le temps que je passe à administrer le serveur dédié qui héberge mon blog et les autres blogs de mes camarades de boulot, je pourrais le passer à faire autre chose.
  • Les gens d’alwaysdata sont compétents (histoires de rôlistes est hébergé par eux et je n’ai rien à redire, au contraire), sympathiques et comme ils viennent aux djangocongs, je les aime bien :).

Bon normalement vous ne devriez vous rendre compte de rien, si tout se passe bien, mais fallait bien que je meuble un peu mon billet anniversaire.