Bloody Marie

Cela faisait quelques temps que je n’avais plus mis les pieds dans une FNAC, pour le bonheur de mon portefeuille. Mais là, après midi shopping (et starbuck coffeeeee ouaiissss) oblige, il n’était pas imaginable de ne pas passer quelques minutes à la FNAC. Et pendant que ma chérie et ma fille exploraient le rayon livre pour bébé moi je me pâmais dans le rayon SF / Fantasy.

Et forcément j’en suis reparti avec deux bouquins

  • Bloody Marie de Jacques MARTEL
  • une nouvelle traduction du vagabond de l’espace d’Heinlein (je l’ai déjà lu quand j’étais jeune et innocent, mais dans une vieille trad et je ne l’avais pas dans ma collection d’Heinlein)

Et pourtant j’ai lutté pour ne pas craquer et ne pas acheter Bloody Marie (un bouquin à 19 euros).

Mais plusieurs raisons ont fait que j’étais obligé de l’acheter :

  • le titre : le bloody mary étant mon cocktail préféré avec le martini dry.
  • La couverture juste splendide
  • l’éditeur blackbooks édition que je connais pour leur jdr (et leur défunt magazine) et que j’aime beaucoup
  • le fait que ça soit un bouquin de pirates, qui plus est pirates de l’espace et que je sois complètement fan (un de mes plus vieux souvenirs de lecture c’est Robots d’Asimov et juste après c’est l’île au trésor que j’ai du lire 2 ou 3 fois)
  • le nom de la collection A dé couvert dont le jeu de mot m’a fait rire.

Je l’ai donc acheté.

Et dévoré. (Vu que je l’ai fini ce matin avant de partir au boulot)

Et il y a pas à dire, c’est du grand roman de pirates. Avec les références obligées mais avouées et assumés à l’île au trésor (le bâtiment de Bloody Marie s’appelle le Long John et les personnages savent que cela vient du bouquin de Stevenson).

Avec des personnages haut en couleur, plein de colère ou de fougue. Avec des insultes, des combats,de la douleur, du sang et cette fuite en avant éperdue qui constitue la vie des pirates. Avec des trahisons, des pieds tendres et de vieux loups de mer.

Mais il ne faut pas croire qu’on est dans du roman de pirate de gare. L’univers est très fouillé, les personnages pas forcément tous aussi manichéens qu’on pourrait le penser et il n’y a pas à dire l’auteur a potassé son histoire de la piraterie avant d’écrire.

Le style d’écriture quand à lui est très bien trouvé, un vieux loups de mer qui s’assoit dans un rade miteux et qui se met à raconter une histoire pour qu’on lui paie à boire, chaque chapitre de l’histoire étant entrecoupé par une petite description du conteur qui demande à ce que son auditoire lui paie à boire ou y va de son petit commentaire.

En fait, si vous aimez les pirates, n’hésitez juste pas, vous allez adorer.

…..

‘Nous étions quinze sur le coffre à l’homme mort.’
‘ Yo-ho-ho! Et une bouteille de rhum!’
…..

Changement de méthode de classement d’email

J’utilise depuis de nombreuses années thunderbird pour gérer mes mails. Je gère un volume de mail assez important qui viennent de sources aussi diverses que variées. Pour situer un peu, je pense avoir facilement entre 300 et 400 dossiers de mails. Parce qu’entre les clients, les prospects, les contacts réseaux, les fournisseurs boulot ou perso (ben oui free ou amazon c’est mes fournisseurs persos), la famille, les amis, les mailings… Ca en fait rapidement des petits dossiers mails…

Avec un tel volume de mail, même en classant avec un système de profondeur 3 ou 4, il m’est rapidement devenu impossible d’utiliser la vue tout les dossiers pour aller d’un dossier à un autre.

J’avais donc trouvé un stratagème. Laisser des mails non lus dans les répertoire que je voulais avoir accessible rapidement. Et utiliser la vue dossiers non lus. Au lieu d’avoir 400 dossiers arborescent je me retrouvais donc avec une petite centaine de dossier. Mais difficile après de savoir si un dossier contenait des mails non lus ayant déjà étaient lu mais restant en non lus parce que non traités ou des mails non lus parce que vraiment non lus. Surtout que mon thunderbird aimant me faire des farces, la petite étoile jaune qui normalement apparaît en haut à gauche pour indiquer de nouveaux mails disparaissait parfois mystérieusement.

Si on rajoute à cela un système de filtre très poussés qui me classait quasiment tout mes mails à peine reçu..

Autant dire que c’est il y a quelques semaines devenus le bordel. Avec des mails non lus et non traités pendant 4 ou 5 jours parce que tout simplement, je ne les avais pas vu passé.

Il fallait donc que je change de méthode d’organisation au niveau de mon classement des emails.

Et c’est ce que j’ai pu faire en utilisant une extension géniale, que j’avais installé depuis plusieurs mois mais que je n’utilisais pas à son plein potentiel, Quicker Filer

Quicker Filer  permet deux choses. La première c’est de pouvoir avoir un outil de recherche un peu plus sympa que celui fourni de base.

La seconde ajoute des raccourcis clavier qui changent juste tout :
aller à un dossier
déplacer les emails sélectionné dans un dossier
instant move
instant copy.

Les deux premiers raccourcis quand vous les utilisez vous ouvre une popup qui vous permet de choisir le dossier où vous voulez aller (ou celui où vous voulez déplacer votre email). Et là ou c’est magique c’est que ca fonctionne en auto complétion. Tapez un bout du nom du dossier et il vous propose juste les dossiers qui valident les caractères que vous avez tapé.

Quand aux deux derniers raccourcis, ils vous permettent de copier ou déplacer les emails dans deux dossiers préconfigurés.

Cette petite extension m’a permis de définir un noveau worflow de gestion d’email qui depuis 3 semaines maintenant fait totalement ses preuves.

En fait c’est tout simple, j’ai désactivé complètement tout mes filtres d’emails. Tout mes emails arrivent donc dans les inbox de chacun de mes comptes.

A ce niveau là, je les traite de deux façon :
Soit Je peux les traiter au moment ou je les lis. Je le fais et je les déplace tout de suite, manuellement (avec le raccourcis déplacer vers de  Quicker Filer) dans le répertoires qui va bien (donc soit le dossier du client, soit le dossier Fnac si c’est un mailing Fnac, etc etc)
Soit je ne peux pas et j’utilise l’instant move pour les déplacer dans un  dossier A traiter. Qui contient donc tout mes mails à traiter (et une fois que je les aurais traiter, un coup de déplacer et ils sont rangés).

Et comme Quicker Filer me permet avec le raccourcis aller à, d’aller super rapidement dans tout les dossiers dont je connais une partie du nom, je n’ai plus besoin d’imaginer des solutions bâtardes pour avoir une sous partie de mes dossiers en accès rapide.

Ce qui est rigolo, c’est que pendant de très nombreuses années, j’ai été un défenseur absolu de l’utilisation de filtres de classement automatique. Mais en fait, je me rend compte que lorsque l’on a un nombre important de dossier, les filtres ça devient contre productif…. (en tout cas pour moi)

Et vous, comment vous gérer vos emails et le traitement de ceux-ci ?

CSS3 pour les Web Designers

Chose promise, chose du, voici donc ma petite bafouille sur ce joli petit bouquin. Que dire. C’est un bouquin très agréable à lire, qui se laisse découvrir, sans avoir à se forcer.

Et comme il est plutôt court (ce qui peut générer le vieux réflexe du ‘quoi un bouquin si peu épais pour 12 euros, il est doré à l’or fin ou quoi ?’), il se lit même relativement vite. Quelques heures et c’est finit. D’ailleurs je vous conseille de ne pas le lire d’une traite, mais de le lire en plusieurs petites séquences, histoire de vous laisser le temps d’y penser.

Mais peut-être faudrait-il que je parle un peu du fond, au lieu de pinailler sur le nombre de page. Donc, le fond. Alors déjà, attention. Si vous pensez que ce bouquin est un mémento CSS, un précis, sorte d’antisèche géante du CSS3, alors surtout passez votre chemin. Parce que vous serez déçus. Et pas qu’un peu.

Non, ce bouquin c’est plutôt un bouquin d’initiation, mieux de vulgarisation. Mais dans le sens le plus noble du terme. Et si comme moi vous ne connaissez de CSS3 que deux choses :

  • les border radius ou border shadow
  • que ça à l’air trop bien, top moumoute qui roxe des ours

Alors ce bouquin est fait pour vous. Parce qu’il vous prendra par la main, vous ferra découvrir quelques (un bon nombre quand même) des propriétés CSS3, vous expliquera combien bien les utiliser pour maximiser le nombre de navigateur qui pourront les comprendre et vous donnera des conseils sympa.

Pour presque finir, je mentionnerais un dernier point fort du bouquin. Les notes de bas de page. Qui vous donneront une tripoté de liens pour approfondir vos réflexions, vos connaissances. A elles seules les notes de bas de page double la valeur de ce bouquin …

Donc, en conclusion, je ne regrette vraiment pas du tout mon achat. Au contraire même. Et si c’était à refaire, je ferrais encore chauffer ma CB, les yeux fermés. Et je ne peux que vous le conseiller, chaudement. (Mais encore une fois, attention ce livre n’est pas pour toutes les mains. Si vous êtes déjà familliés des CSS3, vous allez vous ennuyer à le lire)

Django-urlcrypt, après les contes c’est l’url de la crypte.

Voila, comme dit dans le billet précédent, je vais donc faire deux billets de django app de mai, ça m’apprendra à être en retard.

Donc la deuxième django app du mois sera django-urlcrypt. Une petite précision avant d’aller plus loin, c’est une des toutes premières fois où je vais parler d’une app sans avoir fait plus que la tester sur un projet de test, sans avoir d’idée précise de où ni comment je vais l’utiliser ‘en vrai’.

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

Alors on le trouve soit sur sa page pypi soit sur sa page github.

Pour l’installation là encore, les trois moyens habituels :

  • par easy_install
  • pip
  • un petit git clone des familles

La doc, là c’est comme l’app précédente, elle est limitée au contenu de la page de pypi ou au fichier Readme.rst.

Bon alors c’est vrai que la doc est suffisante pour comprendre comment l’app marche, mais sur une app qui est aussi ‘sensible’, une bonne lecture du code ne fait pas de mal (c’est d’ailleurs ce que j’ai fait quand j’ai commencé à faire joujou avec).

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

En fait l’app a deux utilité même si une seule est vraiment mise en avant sur la doc de l’app. La première c’est de fournir aux utilisateurs une url ressemblant à ça :  http://www.mydomain.com/r/TkNJBkNFAghDWkdFGPUAQEfcDUJfEBIREgEUFl1BQ18IQkdDUUcPSh4ADAYAWhYKHh8KHBsHEw qui les authentifiera automatiquement et qui en plus les redirigera vers l’url que vous aurez voulu.  (genre le renvoyer sur /profil ou /inbox)

L’autre fonctionnalité moins mise en avant, c’est que l’on peut encoder des infos dans l’url, dans un message qui se trouve être un dictionnaire. Alors honnêtement je ne sais pas trop encore à quoi cela peut servir, mais je trouve l’idée coolos.

3- Comment ça marche ?

C’est tout simple.

Dans une vue, on peut utiliser la fonction urlcrypt.generate_login_token qui prend en param l’utilisateur et l’url de redirect et qui génére le token qui encode le tout. Ensuite il suffit de créer l’url complète qui va bien.

Dans un template, on utilise le template tags encoded_url qui prend comme argument un user et une url de redirect.

Enfin on peut utiliser les fonctions urlcrypt.encode_token et urlcrypt.decode_token
qui permettront de crypter / décrypter un message contenu dans un dictionnaire (voir l’aide pour plus d’infos).

Au niveau des configurations possibles, on peut configurer :

  • à combien de requêtes à droit un visiteur
  • l’url de fallblack si l’authentification contenu dans l’url echoue
  • un path vers une clé privée RSA qui permettra d’ajouter un cryptage RSA lorsque l’on génère le token.  L’utilisation de ce paramètre est très très fortement recommandé (pour rappel pour généré le clé : ssh-keygen -t rsa -f )

4- conclusion

Le mécanisme de login par url cryptée me séduit beaucoup. Mais d’un autre coté je me pose des questions au niveau sécurité. Parce que l’url, l’utilisateur il va devoir la stocker. Et qu’autant mémoriser un mot de passe, on peut le faire, autant apprendre une url…, qu’en pensez vous ?

La question de la durée de vie de l’url me semble aussi importante. J’aurais aimé avoir dans l’app un système qui permette de rendre des url obsolètes parce que trop vieilles..

Enfin concernant la deuxième méthode d’utilisation, à savoir encoder des messages dans l’url, je trouve l’idée ravissante, j’ai envie de l’utiliser mais je ne sais pas à quoi elle pourrait bien me servir. A réfléchir donc.

 

UPDATE:

on vient de me pointer quelques problèmes qui existent avec cette app (discussion visible ici) Apparement un des problèmes a été réglé en utilisant RSA (mais son utilisation n’est toujours pas obligatoire) mais il me semble que le hash du password est toujours utilisé dans certain cas. Ce qui n’est vraiment pas une bonne idée. En l’état l’app n’est donc pas forcément à utiliser, mais plutôt à étudier pour imaginer son propre système.

 

Django-countries ,l’app garantie sans cowboy ni rodéo. djangoApp de mai 1 sur 2

Il va falloir que je me surveille .. parce qu’encore une fois je publie ma django app du mois un peu en retard. Pas grand chose, juste 4 jours.. Mais ça commence comme ça et après on finit par ne plus tenir de rythme du tout.

Du coup, pour marquer, le coup, je publierais deux django app du mois de mai, même si je les publie en juin.

Et pour commencer, django-countries. C’est d’ailleurs assez rigolo parce que je parlais il y a peu de moyen de gérer les pays, avec une liste de choix existantes, etc.. et op, je tombe sur django-countries.

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

Vous trouverez django-countries soit sur sa page pypi soit sur sa page bitbucket.

Pour l’installation, vous avez les trois moyens désormais classique :

  • un easy_install
  • un pip install
  • un bon vieux hg clone

La doc elle se limite à :

  • la page pypi
  • le readme du repository

Sachant que dans les deux cas, le contenu est le même. Mais vu la simplicité de l’app, cela suffit amplement.

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

L’app rajoute tout simplement un nouveau type de field, le CountryField. Ce CountryField vous permettra de gérer les codes à 2 lettres internationaux qui modélisent les pays mais aussi d’afficher un petit gif du drapeau qui va bien.

Et oui, comme dans les vrais sites et tout quoi.

3- Comment ça marche ?

C’est donc vraiment tout couillon. Un field CountryField. Et des instances de fiels qui ont les données membre :

  • code (le code à deux lettres)
  • name (le vrai nom du pays)
  • flag (le chemin vers le drapeau)

Rien de bien compliqué.