Avec ou sans bruits parasites

"Un réseau de plus en plus serré de distractions et d’occupations vaines"

Page 2 of 16

Chat au court-bouillon ?

facebooktwittergoogle_plusredditpinterestlinkedintumblrmail

Je viens de découvrir le billet que Frédéric de Villamil consacre à répondre à un billet de Francis Pisani intitulé « Google se tire une balle dans le pied », dont j’ai, par la même occasion, parcouru les commentaires (qui sont, comme souvent sur Transnets, très nombreux et, disons-le entre nous, pour la plupart très agressifs). Je suis sidéré de la naïveté avec laquelle toutes ces réponses accusent Francis d’être naïf… Il a sans doute prêté le flanc à un tel reproche en parlant de « contrat moral » et son titre est peut-être un peu excessif, mais il me semble qu’il a raison sur le fond.

En effet, Google a rigoureusement le droit de mettre un terme aux services qu’il propose gratuitement, tout comme un supermarché a rigoureusement le droit de cesser de commercialiser un produit particulier (c’est d’ailleurs ce que font régulièrement les grandes surfaces de l’agglomération paloise en ne proposant plus de nouilles udon, soba et ramen crues dès la période du « Nouvel an chinois » passée ; mais je parlerai de ce scandale une autre fois 😉 ). Néanmoins, en faisant ce choix, le supermarché prend le risque que les clients intéressés par ce produit décident d’aller faire leurs courses ailleurs… et n’achètent plus le produit en question (forcément) mais plus non plus d’autres produits « rentables ».

Dans le cas de Google, bien sûr il est inconsidéré de mettre toutes ses données sur un service en ligne, sans avoir de sauvegarde, bien sûr il n’est pas raisonnable d’être dépendant d’un service quelconque, mais, comme le rappelle un commentaire de Transnets, dans le choix d’un outil et de l’utilisation qu’on en fait, il y a toujours à faire des compromis, à accepter certains risques (ou à faire des efforts supplémentaires pour les éviter). Le fonds de commerce de Google (devrais-je dire son business model ?) est, si j’ai bien compris, de proposer des services gratuits à ses utilisateurs et d’en profiter pour leur montrer de la publicité. Or si je suis utilisateur régulier d’un service et que ce service vient à disparaître, je vais y réfléchir à deux fois avant de m’engager dans l’utilisation d’un nouveau service que le même prestataire me proposera et donc je serai moins enclin à accepter d’être exposé à ses publicités dans le cas qui nous concerne.

Il ne s’agit pas de « contrat moral », de « dû », de « syndrôme très français », de « gratuité systématique des applications », mais simplement de pavlovisme, ce que la fatidique sagesse populaire résume en disant « chat échaudé craint l’eau froide ».

Du côté de Google, il ne s’agit pas plus de « contrat moral », d’engagement ou de je ne sais quoi, mais simplement de communication et d’image de marque : le signal qui est donné aux utilisateurs est « Investissez du temps et de l’énergie à mettre vos données dans mes applications, mais il se peut que ce soit perdu du jour au lendemain » et dans le cas de Google et de sa façon de gagner de l’argent, je ne suis pas sûr que ce soit un excellent signal (même si, bien sûr, les services dont il est question ne sont pas purement et simplement arrêtés pour le moment). Et je pense donc que le raisonnement de Francis est juste sur le fond.

Cependant, on ne louera jamais assez Dieu pour cela (et c’est en cela que je pense que Francis Pisani exagère), on peut rester confiant dans la capacité de Google à évaluer l’impact de cette décision sur ses affaires. J’imagine que les applications concernées n’ont pas beaucoup d’utilisateurs réguliers (je dois avouer que je ne connaissais parmi elles que Google Notebook et Google Video) et que les effets de bord du mécontentement de ces utilisateurs (comme Francis) ne menacent pas sérieusement la situation de l’entreprise. A ce titre, il ne s’agit probablement pas d' »une balle dans le pied ». D’un ongle cassé, peut-être ?

Remarque : Si vous êtes, comme moi, utilisateurs de Google Notebook, vous serez peut-être intéressés par les billets de Benoit Descary :

facebooktwittergoogle_plusredditpinterestlinkedintumblrmail

Productivité ?

facebooktwittergoogle_plusredditpinterestlinkedintumblrmail

Mogore attire notre attention sur le changement de ton du blog 43folders . Ces réflexions me rappellent ce que je pense à chaque fois que je vois la liste interminable des blogs taggés ‘productivity’ dans mon agrégateur RSS (dont 43f fit partie, naturellement) et ces moments où je lis des blogs sur la productivité pour ne pas faire ce que je devrais faire…

Elles me font aussi penser à mes débuts avec la méthode GTD : confiant dans mon système et excité par la nouveauté de la méthode, je consignais toutes mes tâches à faire et ne faisais rien… à part des ‘reviews’ et des améliorations à ce système… C’est sans doute une réaction naturelle face à la nouveauté : quand j’ai un nouveau téléphone, je passe beaucoup de temps à lire la documentation, à changer des options… avant de recommencer à ne plus savoir faire les opérations élémentaires qui font son originalité et à me contenter de téléphoner bêtement…

facebooktwittergoogle_plusredditpinterestlinkedintumblrmail

L’âge du péta-octet…

facebooktwittergoogle_plusredditpinterestlinkedintumblrmail

Mon fils de bientôt cinq ans, qui, comme beaucoup de ses semblables, n’est pas chiche d’hyperboles, m’a demandé pendant l’été ce qu’il y a après « méga » (parce que mieux que superbien, c’est mégabien), puis ce qu’il y a après « giga »… Lorsque, quelques jours plus tard, il m’a demandé ce qu’il y a après « téra », je dois avouer que j’ai séché et ce n’est qu’après une recherche sur le web que j’ai pu lui répondre « péta » (mais en tant que parent responsable, j’ai néanmoins pris la peine de lui expliquer que le terme « pétabien » risquait de ne pas être intelligible pour tous).

Aussi ai-je particulièrement prêté l’oreille (devrais-je dire l’oeil ?) quand j’ai découvert, par l’intermédiaire d’Olivier Ertzscheid, l’article de Chris Anderson traitant de l’impact de l’Age du Pétaoctet sur la méthode scientifique. Depuis, Hubert Guillaud a écrit un article de synthèse très intéressant sur la fin de la science, dans lequel il évoque cet article : Est-ce que le déluge de données va rendre la méthode scientifique obsolète ?. Mais ce n’est pas de cet impact sur la science que je veux parler ici ; cet article m’a inspiré quelques réflexions, qui rencontrent des préoccupations que j’ai depuis longtemps.

D’abord cette idée d’un déluge de données dans lequel des logiciels pourraient trouver un sens automatiquement (l’exemple le plus saisissant est celui de la traduction : « à corpus de données égal, Google peut traduire du klingon en persan aussi facilement qu’il peut traduire du français en allemand », dit Anderson) me semble mettre en évidence une tendance importante et durable de l’internet actuel : la domination d’un système fonctionnant avec des données peu structurées, au détriment d’un système plus rigoureux et plus structuré. En somme, il s’agit d’une victoire du web 2.0 (ou 3.0, je ne compte plus) sur le web sémantique. C’est ce principe qui s’applique pour le moteur de recherche de Google ou les sites de signets collaboratifs comme del.icio.us : on ne demande pas au fournisseur de contenu (pages web ou liens dans ces exemples) de faire une description exhaustive de son contenu ; à la rigueur, on lui demande quelques mots clés (tags), mais cela ne va guère au-delà. Il me semble que cette tendance se confirme d’une façon très nette et que la mise en place d’un formalisme imposant de taxinomies et d’ontologies qu’on nous promet parfois n’aura pas lieu, en tout cas pas dans les dix ans qui viennent. A la place, le web continuera à être une sorte de vrac dans lequel les ordinateurs devront se débrouiller pour trouver un sens (quel qu’il soit), et non un objet bien propre spécialement fabriqué pour qu’ils le comprennent.

A cet égard, le billet de Jean Véronis sur la nouvelle fonctionnalité de Google de détection de pièce jointes oubliées, dans lequel il explique la méthode qu’il utiliserait pour implémenter cette fonction est un témoignage éloquent. Cette méthode donne véritablement le vertige : il s’agit d’ « extraire à l’aide d’outils statistiques les n-grammes qui apparaissent fréquemment dans les mails avec attachement et pas dans les mails sans attachement », puis « pour chaque nouveau mail, regarder si un de ces n-grammes magiques est présent dans le texte, et si oui déclencher une alerte ».

D’ailleurs, je crois que l’époque est au refus d’un formalisme excessif. Le succès d’une méthode comme GTD n’est sans doute pas étranger à ce refus : un projet, tel que le décrit David Allen, n’est pas un ensemble complexe de systèmes et de sous-systèmes, qui peut être représenté de diverses façons (diagramme de Gantt, de PERT…) ; c’est plutôt un ensemble d’actions qui peut être consigné sur le dos d’une enveloppe et dont la représentation essentielle est la Next action, c’est-à-dire « Et maintenant qu’est-ce qu’on fait ? »

En somme, le principe directeur, connu depuis toujours, est que « le Mieux est l’ennemi du Bien » et plutôt que d’avoir un modèle qui prévoit tout, il vaut mieux avoir un modèle facile à adapter quand on aura besoin de lui faire faire quelque chose d’imprévu… Les méthodes de programmation dites « agiles » ne reposent pas sur autre chose.

Mais aussi cette situation a un impact sur l’informatique en général : d’abord parce qu’elle peut contribuer à populariser l’idée qu’un ordinateur doit travailler à la place d’un humain et non lui donner du travail… Truisme… mais qui ne paraît pas si évident pour tous nos semblables : l’ami qui m’a dit il y a quelques années « Pourquoi as-tu 2 (ou 3 ou 6…) ordinateurs, tu ne peux pas être assis devant tous en même temps ? », sans savoir qu’un bon ordinateur est précisément celui que j’utilise sans être assis devant lui, ou bien ceux qui ne veulent pas utiliser l’informatique parce qu’ils n’ont pas le temps…

Je crois que cette tendance a aussi une conséquence sur le métier d’informaticien. En effet, de nos jours, il est possible de programmer facilement, sans avoir de compétences théoriques importantes. C’est un raisonnement que je me fais depuis longtemps à mon propre sujet : je passe une partie importante de mon temps de travail à écrire du code et pourtant, je n’ai jamais étudié l’informatique et je n’ai pas de connaissances approfondies en algorithmique. Un exemple parmi beaucoup d’autres : tout ce que j’ai pu apprendre sur les algorithmes de tri (que je n’ai appris que par curiosité et jamais par besoin) ne m’a jamais été directement utile, parce que toutes les fois où j’ai eu à trier des données, il était plus simple et plus efficace d’utiliser une fonction native ou fournie par une bibliothèque du langage que j’utilisais (le plus souvent python).

J’ai longtemps pensé que cette approche était caractéristique d’un autodidacte de la programmation, professeur de lettres de formation, mais j’ai constaté au contact de ‘vrais’ informaticiens, ou de stagiaires qui finissaient des études (de type BTS ou DUT) en programmation que beaucoup n’ont pas de notions théoriques plus approfondies et que ces connaissances ne sont guère utiles dans la pratique quotidienne de beaucoup de programmeurs.

Or l’âge du péta-octet exige une vraie réflexion sur les algorithmes : le volume gigantesque de données nécessite des traitements optimisés pour être réalisables dans des conditions acceptables, les opérations à mettre en oeuvre impliquent des notions sur les statistiques que tous ne possèdent pas. La conséquence de cela va être l’élargissement du fossé entre l’élite des programmeurs, très compétents, détenteurs de connaissances très pointues dans des disciplines scientifiques, et la piétaille des scripteurs, qui sera de moins en moins distincte des power users, de plus en plus nombreuse. Bien sûr, cette fracture existe déjà, mais il y a fort à parier qu’elle va aller en s’accentuant.

facebooktwittergoogle_plusredditpinterestlinkedintumblrmail

Convertir des fichiers ogg ou speex en mp3

facebooktwittergoogle_plusredditpinterestlinkedintumblrmail

Je me suis trouvé souvent dans le situation de vouloir écouter des fichiers audio sur un appareil qui ne connaissait pas le format utilisé (le plus souvent Ogg ou Speex). Tous les appareils lisent le MP3 en revanche. J’ai donc voulu trouver un utilitaire pour faire la conversion.

Pour convertir des fichiers ogg en mp3, tout est expliqué ici. Pour les speex (extension .spx), le principe est le même, mais en utilisant la commande speexdec au lieu de oggdec afin de convertir le fichier en wav (la syntaxe est un tout petit peu différente).

Note : Je suis sous Linux, mais on doit pouvoir faire fonctionner ce script sous Windows avec Cygwin.

facebooktwittergoogle_plusredditpinterestlinkedintumblrmail

Une visio avec Montaigne ?

facebooktwittergoogle_plusredditpinterestlinkedintumblrmail

Un nouveau blog… Il y a un petit moment que je songe à ce changement, surtout pour ne plus avoir à me préoccuper des mises à jour (ou plutôt de leur absence…) , du spam (plusieurs centaines de commentaires indésirables par jour, qui ne permettent pas de voir celui qui pourrait être intéressant)… C’est donc décidé, j’emménage ici, avec un blog tout neuf (mais dans lequel j’ai tout de même importé tous mes anciens billets), un blogroll vide, que je peuplerai petit à petit (je me suis rendu compte que certains des liens que je donnais n’avaient pas été mis à jour depuis plus de trois ans).

Surtout, pour bien marquer ce nouveau départ, j’ai voulu changer le titre de mon blog-notes et pour ce faire, il m’a semblé judicieux de me placer sous l’illustre patronage de Hermann Hesse qui écrivait dans Le Loup des steppes (en 1927) :

[Le narrateur est engagé dans une conversation avec sa logeuse.]

Nous parlâmes également de son neveu et elle me montra, dans une pièce attenante, le dernier objet qu’il avait réalisé pendant ses moments de loisir. Il s’agissait d’une TSF. Le jeune homme, assidu à la tâche, passait ici ses soirées à fignoler cet appareil. Il était enthousiasmé par le principe de la transmission sans fil et s’agenouillait pieusement devant le dieu de la technique qu’il révérait. Au bout de milliers d’années, ce dieu était parvenu à découvrir et à représenter de manière extrêmement imparfaite, des choses que chaque penseur connaissait depuis toujours et utilisait avec plus d’intelligence. Nous évoquâmes ce sujet car la tante se montrait légèrement encline à la piété et ne détestait pas les discussions de nature religieuse. Je lui déclarai que l’omniprésence de toutes les forces et de tous les actes accomplis dans le monde était déjà parfaitement connu des anciens hindous. En construisant un appareil encore terriblement imparfait, capable de recevoir et de diffuser les ondes sonores, la technique avait simplement porté à la conscience universelle un petit fragment de ce savoir. Quant à l’élément essentiel de cette vérité ancienne, la non existence du temps, la technique continuait de l’ignorer aujourd’hui. Au bout du compte, cependant, cet élément serait naturellement « découvert » lui aussi et tomberait entre les mains des ingénieurs affairés. On s’apercevrait peut-être très prochainement que, de même que nous pouvons entendre à Francfort ou à Zurich des concerts joués à Paris et à Berlin, nous baignons dans le flot permanent des images et des événements présents, immédiats. Mais ce n’était pas tout. On comprendrait également que l’ensemble des événements survenus depuis la nuit des temps sont enregistrés et présents de la même manière que le reste et qu’un jour, sans doute, nous entendrions parler le roi Salomon et Walter von der Vogelweide, avec ou sans fil de transmission, avec ou sans bruits parasites. Pour finir, je déclarai que, tout comme les débuts actuels de la radio, cela permettrait uniquement à l’humanité de fuir face à elle-même, face à ses buts ultimes, et de s’environner d’un réseau de plus en plus serré de distractions et d’occupations vaines.

« Un réseau de plus en plus serré de distractions et d’occupations vaines », dites-vous ? Comment ne pas reconnaître dans ces lignes une réalité qui nous est si proche ? Et si nous acceptons cette lecture prophétique, poussons-la encore avant et reconnaissons qu’un jour nous pourrons entendre la voix d’Apollonius de Tyane ou de Chrétien de Troyes. Cette perspective peut sembler absurde, mais songeons aux reconstitutions du passé que permettent les techniques de modélisation 3D, songeons à ce qu’auraient dit nos ancêtres pas si lointains de la possibilité qu’un message écrit ou sonore, qu’une image, arrivent à l’autre bout du monde en une seconde.

Bien plus : je me plais à musarder sur les sites comme « Copains d’avant » ou Facebook. J’y croise, bien sûr, des personnes que j’ai connues il y a quelques années, mais aussi, des personnes que je ne connaissais pas : ce garçon qui faisait du rugby avec moi, mais dont je ne connaissais que le prénom, cette fille que je connaissais de vue parce qu’elle fréquentait le même collège que moi, mais à qui je n’ai jamais parlé et dont je ne savais pas même le nom. Et ces gens dont je ne savais rien, non parce que je les ai oubliés, mais parce que je n’ai jamais rien su à leur sujet, je me retrouve à connaître leurs noms, à savoir des choses sur les études qu’ils ont poursuivies etc. En somme, j’apprends des choses sur mon passé.

Tout cela me rend fort enclin à croire, à espérer du moins, qu’un jour je pourrai entendre des voix que nous croyons perdues pour toujours, que je pourrai dialoguer avec des personnes mortes depuis longtemps.

Quant à la dimension pessimiste de cette citation, je préfère, comme le narrateur le fait dans le roman, « adopt[er] plutôt le ton de la plaisanterie, de l’amusement qui fit sourire la tante ».

Blogué avec le Navigateur Flock

Tags: ,,,,,

facebooktwittergoogle_plusredditpinterestlinkedintumblrmail

Merci à l’Internet Archive

facebooktwittergoogle_plusredditpinterestlinkedintumblrmail

Il y a quelques jours, j’ai voulu donner à quelqu’un un lien vers un billet que j’avais écrit il y a quelques années sur la méthode GTD. Ce billet était sur mon ancien blog, hébergé chez Free. En le cherchant, j’ai découvert que ce blog n’existe plus : il a disparu corps et biens… (mes lecteurs sceptiques pourront vérifier par eux-mêmes : http://blacherez.free.fr)

Bien sûr, il y a trois ans que j’ai changé de lieu d’hébergement, mais je restais attaché à cet ancien blog et surtout à quelques uns des billets que j’y avais écrits…

J’ai donc essayé de trouver des traces que ce site aurait pu laisser dans le cache de Google… en vain. C’est alors que j’ai pensé à l’Internet Archive qui conserve l’histoire du web. Bien sûr, je savais que mon blog n’est pas la principale ressource à conserver sur internet, mais j’ai tenté ma chance et retrouvé une bonne partie de cet ancien blog. J’ai donc entrepris de migrer une partie de ces billets sur ce blog-ci, en essayant (comme WordPress le permet) de conserver la date originale.

tags technorati: , ,
facebooktwittergoogle_plusredditpinterestlinkedintumblrmail

Numérisation de documents

facebooktwittergoogle_plusredditpinterestlinkedintumblrmail

Je viens de commencer à numériser mon mémoire de maîtrise. C’était une idée que j’avais depuis longtemps, que je suis en train de mettre en oeuvre ; il y a des périodes dans la vie où l’on est plus enclin aux comportements néoténiques…

J’ai d’abord longuement séparé les feuilles d’un exemplaire de mon mémoire. Je suppose qu’il est possible d’utiliser un gros massicot pour faire un tel travail, mais n’en disposant pas, je me suis résolu à employer une règle plate en guise de coupe-papier.

L’étape suivante consistait à numériser les pages ainsi séparées. A ce point, j’ai été surpris : je m’attendais à un travail difficile, fastidieux et il n’en a rien été. Je pensais que le chargeur du scanner allait mal fonctionner, provoquer des bourrages sans nombre etc. mais cela ne s’est pas produit ; seule une page, que j’avais malencontreusement froissée pendant le transport, n’a pas pu passer automatiquement. En outre, ce traitement a été très rapide : il ne m’a guère fallu plus d’une demi-heure (en plusieurs fois) pour numériser l’ensemble des 240 pages du document.

Le “pilotage” du scanner était assuré par le logiciel XnView qui possède une fonction “Acquérir dans…” qui permet de scanner un ensemble de pages, en les numérotant et en les enregistrant automatiquement.

Cette rapidité de la numérisation a perturbé le processus de travail que j’avais envisagé : je pensais ne pouvoir numériser que 10 ou 15 pages par jour (je précise que je ne travaille pas à temps plein sur ce projet… j’exerce également une activité salariée ;-) Mon plan était donc de passer 15-20 minutes entre midi et 14 h pour numériser le document et 1 h ou 1 h 30 le soir pour faire la reconnaissance de caractères) que je pourrais, dans la soirée du même jour, transformer en texte (OCR et corrections manuelles). En réalité, au bout de deux jours l’ensemble était numérisé, mais il faut plus d’1 h 30 pour corriger 10-15 pages…

J’ai fait différents tests pour trouver le logiciel d’OCR le plus adapté et je dois dire que j’ai été déçu. Ma première idée était d’utiliser une ancienne version d’Omnipage Pro que j’avais eu jadis avec un scanner, mais comme l’ordinateur que j’utilise le plus est désormais sous Linux et que ce système m’est plus familier, j’ai cherché s’il n’y avait pas moyen de faire plutôt la reconnaissance de caractères avec lui. J’ai découvert cette page et ai testé plusieurs des logiciels qui y sont mentionnés. Ceux qui m’ont donné le plus de satisfaction sont Tesseract et Ocropus (qui dans son état actuel est une sorte de surcouche de Tesseract). Toutefois, aucun des deux n’est capable de restituer les caractères accentués, ce qui peut être rapidement fastidieux pour un texte en français. Au final, j’ai pris la résolution d’utiliser Omnipage, qui est celui qui donne les meilleurs résultats et j’ai ainsi “OCRisé” une vingtaine de pages, en utilisant la vérification interactive du logiciel, puis en reprenant les documents ainsi créés, en les regroupant logiquement et en les corrigeant dans OpenOffice.

Comme on peut s’y attendre, certains passages sont mal ou pas du tout reconnus par l’OCR, c’est le cas des passages en grec, c’est aussi le cas des chiffres (numéros de pages dans les références par exemple).

Pour fluidifier le processus et ne pas m’obliger à ne travailler à ce projet que quand je suis sur l’ordinateur sur lequel Omnipage est installé, j’ai “OCRisé” l’ensemble des pages et je vérifierai plus tard.

Je suis donc au tout début du travail d’édition de ce document. J’envisage de mettre en ligne une première version “image”, mais je ne sais pas si ça peut avoir un intérêt. En tout cas, je vous tiendrai au courant de l’évolution de ce projet et des raisons qui m’ont poussé à m’y lancer.

tags technorati: , ,
facebooktwittergoogle_plusredditpinterestlinkedintumblrmail

Transférer des mots de passe d’une base de données MySQL/PHP vers un annuaire LDAP

facebooktwittergoogle_plusredditpinterestlinkedintumblrmail

J’ai récemment voulu récupérer des mots de passe depuis une base de donnée MySQL (alimentée par PHP) pour les mettre dans un annuaire LDAP, et comme je n’ai pas trouvé immédiatement la solution à ce problème, je consigne ici la procédure que j’ai suivie, pour qu’elle puisse être utile à un autre (cet autre pouvant être celui que je serai dans un an ou deux).

Les données du problème

  • J’ai une base de données MySQL, associée à une application en PHP, Ilias Open Source, qui contient des mots de passe. Naturellement, ces mots de passe ne sont pas stockés en clair dans la base de données, ils sont hachés en utilisant MD5.
  • J’ai un annuaire openLDAP qui contient des données utilisateurs et notamment des mots de passe. LDAP n’est pas très exigent en ce qui concerne les mots de passe : il lui suffit que la chaîne correspondant au mot de passe commence par le nom de l’algorithme de hachage utilisé pour produire la chaîne qui suit. Bien sûr, il faut que l’algorithme choisi soit connu d’openLDAP (il est possible d’ajouter des modules à la compilation pour le faire fonctionner avec tous les algorithmes couramment utilisés pour hacher les mots de passe).
  • Je veux que les mots de passe des utilisateurs présents dans l’annuaire soient ceux qu’ils ont dans la base de données relationnelle.

Le problème

A première vue, il n’y a pas de problème : je prends le mot de passe haché dans ma base de données et je le mets dans l’annuaire en le faisant précéder de {MD5}. C’est d’ailleurs ce que j’ai essayé de faire tout d’abord et cela ne fonctionne pas.

En cherchant un peu, on trouve rapidement l’explication de cela et elle est assez simple : l’algorithme MD5 produit une empreinte sous la forme d’une séquence de 128 bits, soit 16 octets. Naturellement, une telle suite de 16 octets ne peut pas être représentée en texte “normal” (ascii), il faut donc lui faire subir un traitement pour pouvoir l’imprimer ou même simplement l’afficher sur un écran.

C’est là que le problème se pose : la fonction MD5 de php crée, par défaut, une représentation de cette séquence sous la forme d’une suite de 32 chiffres hexadécimaux (en Python un tel résultat est obtenu avec la fonction hexdigest() du module md5 (ce module est déconseillé dans les versions de Python supérieures à la 2.5, mais le programme que j’ai écrit était en Python 2.3) ), openLDAP (je suppose que c’est le fonctionnement standard de toutes les implémentations du protocole LDAP), en revanche, prend directement la séquence d’octets (équivalent de la fonction Python digest() du module md5) et l’encode en base64, un algorithme destiné à représenter des données binaires en texte, utilisé, par exemple, pour encoder les pièces jointes des messages électroniques.

La solution

Après beaucoup de tâtonnements et (trop) de recherches, j’ai réussi à trouver la formule qui me donne satisfaction. La voici (en Python) :

En supposant que pw_php est le mot de passe que j’ai obtenu de la base MySQL et pw_ldap le mot de passe que je vais inscrire dans l’annuaire LDAP.

pw_ldap = "{MD5}" + base64.encodestring(pw_php.decode("hex"))

La méthode decode() de l’objet chaîne, avec le paramètre “hex” décode l’empreinte encodée en caractères hexadécimaux, pour obtenir à nouveau la séquence de 16 octets. Cette séquence est alors encodée en base64 grâce à la fonction encodestring() du module base64. Comme je l’ai indiqué plus haut, le début de la chaîne de caractères du mot de passe indique l’algorithme utilisé pour hacher le mot de passe (ici MD5), entre accolades.

Blogged with Flock

Tags: , , ,

facebooktwittergoogle_plusredditpinterestlinkedintumblrmail

Le catalogue de ma bibliothèque…

facebooktwittergoogle_plusredditpinterestlinkedintumblrmail

J’adore les livres, les vrais livres, ceux en papier. J’ai envie d’en lire, j’ai envie d’en posséder, j’ai envie d’en toucher et j’ai envie de passer du temps dans ma bibliothèque, en particulier en ce moment.

Cela m’amène à fréquenter beaucoup le site d’Amazon, à lire des dizaines de blogs qui parlent de livres, de bibliophilie ou de lecture, mais aussi à vouloir faire un catalogue de mes livres. J’avais, naguère, évoqué sur ce blog le site LibraryThing pour cela, sans suffisamment prêter attention au fait que le compte gratuit ne permet pas d’insérer plus de 200 livres, autant dire rien…

[Entre le moment où ce billet a été écrit sur mon moleskine et le moment où il est dactylographié (n’est-ce pas un mot exquis ?), il s’est écoulé plusieurs semaines le contenu de ce billet a changé. Dans sa première version, il continuait ainsi : “et pour le dire comme je le pense, je ne suis pas disposé, au moins pour le moment, à payer ce service (je ne conteste pas qu’il soit légitime pour le créateur de ce site d’être rémunéré, je dis simplement que s’il n’est pas possible de profiter gratuitement d’un tel service, je préfère m’en passer, dans l’état actuel des choses”.

La nouvelle version est la suivante :]

J’expliquais dans ce billet pourquoi je n’étais pas disposé à payer pour ce service et comment j’en étais venu à tester d’autres services, dont la plupart ne m’avaient pas satisfait, et à choisir d’utiliser Listal. Je détaillais ensuite la procédure que j’envisageais d’adopter pour cataloguer mes livres avec Listal, que je peux résumer ainsi :

– Lecture des codes barres des livres ;

– Recherche du livre dans la base d’Amazon ;

– Importation des informations concernant le livre dans Listal.

Le code barre des livres (pour ceux qui en ont un) correspond à leur ISBN et permet donc de les identifier de façon assez précise.

J’ai fait quelques tests avec une petite application en Flash qui permet de lire des codes barres avec une webcam, avec l’API d’Amazon (ces derniers tests m’ont permis de comprendre pourquoi Listal ne recherche des livres que sur amazon.com et amazon.co.uk : la recherche par ISBN n’est pas possible, dans la version actuelle de l’API, sur les autres sites d’Amazon et notamment sur amazon.fr, même si cette possibilité existe avec des versions plus anciennes), avec les fonctionnalités d’importation de Listal…

Au final, ces tests ont révélé que cette solution serait trop compliquée : la lecture des codes barres, outre quelques petits bugs qui se sont révélés, est difficile et longue. L’utilisation de l’API d’Amazon ne permet pas de rechercher les ISBN sur le site français et l’importation dans Listal est malaisée (il n’est possible d’importer que des fichiers XML produits par l’application Mac de gestion de bibliothèque personnelle Delicious library, format qui n’est documenté nulle part).

Je suis donc retourné voir LibraryThing (d’ailleurs en partie pour préciser le nombre maximal de livres qu’on peut ajouter avec le compte gratuit) et, sur un coup de tête, j’ai pris un abonnement payant pour ce service (25 $ pour un abonnement à vie et, je l’ignorais, 25 $ représentent beaucoup moins que 25 € par les temps qui courent). Ici, l’importation est beaucoup plus simple : je peux téléverser un fichier texte contenant des ISBN, qui sont ajoutés automatiquement à ma bibliothèque (en utilisant amazon.fr qui reste une base à peu près inépuisable pour les livres en français).

J’avais aussi envisagé d’écrire quelques lignes de PHP pour saisir rapidement les ISBN et les inscrire dans un fichier texte, mais j’ai soudain songé que l’application qui permet de saisir un ISBN, puis de presser la touche “Entrée” avant d’en saisir un autre et finalement d’enregistrer tout cela dans un fichier texte, cette application, dis-je, existe déjà et elle s’appelle un éditeur de textes…

Je vais donc occuper une partie de mes congés (qui commencent demain soir) à saisir les livres de ma bibliothèque dans Notepad++ avant de les embougler dans LibraryThing… ce qui est assez différent du scénario initial. Je ne donne pas, pour le moment, l’adresse de ma bibliothèque sur LT, j’attends qu’elle soit plus à jour, mais les petits malins réussiront bien à la trouver.

En outre, je viens de découvrir chez Virginie Clayssen un autre service du même genre qui s’appelle Babelio et qui est nativement francophone, semble-t-il (LT est traduit en français, entre autres langues). Cependant, comme ce service repose sur le même business model que LT, je n’ai pas l’intention de reprendre un autre abonnement à vie (surtout que sur Babelio, il est à 30 €, soit presque le double de ce qu’il est sur LT). Cependant, je le testerai et, toujours fidèle à ma mission d’information de mes lecteurs, je vous dirai ce que j’en pense. ;-)

tags technorati: , , , ,
facebooktwittergoogle_plusredditpinterestlinkedintumblrmail

Mes autres blogs

facebooktwittergoogle_plusredditpinterestlinkedintumblrmail

Non, je ne cultive pas de jardins secrets pendant que celui-ci est envahi d’herbes folles et je n’ai pas d’autres blogs ailleurs que je vous aurais cachés.

Cependant, je voudrais rappeler à tous ceux qui s’intéressent aux mêmes sujets que moi, et je suppose que les lecteurs de ce blog en font partie, qu’il y a d’autres endroits où je ‘publie’ des notes ou au moins où je consigne des liens intéressants:

Même au plus fort de mon inactivité sur ce blog, il est rare qu’il se passe une semaine sans que j’ajoute au moins une entrée dans une de ces pages et je recommande donc vivement à mes lecteurs de s’y reporter. Naturellement, chacune de ces pages peut être suivie en RSS.

facebooktwittergoogle_plusredditpinterestlinkedintumblrmail
« Older posts Newer posts »