Chat au court-bouillon ?

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 :

L’âge du péta-octet…

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.

Merci à l’Internet Archive

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: , ,

Le catalogue de ma bibliothèque…

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: , , , ,

Cheatsheet Symfony

Créer un projet

– Créer répertoire

– Dans le répertoire, lancer :

symfony init-project nom_projet

– Dans ce répertoire, créer un fichier .htaccess :

php_value magic_quotes_gpc 0

– Donner au serveur apache la permission d’écrire dans le répertoire cache

– Il faut créer une application :

symfony init-app nom_app

– Création de la bdd

– Modifier fichier config/databases.yml en mettant les bonnes données pour la bdd :

dsn: mysql://symfony_user:symfony_password@localhost/symfony

et en enlevant les # en début de lignes.

– Modifier config/propel.ini

– Création du schéma de la base

symfony propel-build-schema

– Génération du modèle :

symfony propel-build-model

Faire en sorte que des noms signifiants apparaissent pour les objets correspondant à des clés externes

Il faut que la méthode toString() soit implémentée pour les classes concernées

Google reader

Tags: , , ,

Avertissement préalable : ce billet, avec celui sur Writely (devenu depuis Google Docs), pourrait laisser penser à mes lecteurs que j’arrondis mes fins de mois grâce au soutien généreux de Google… Hélas, il n’en est rien…

Avertissement préalable 2 (à l’attention du service marketing de Google) : je suis disposé à étudier toutes les propositions… ;-)

Mes lecteurs fidèles et attentifs auront remarqué que depuis quelques jours, j’ai fait apparaître un encadré “Quelques articles intéressants” dans le menu de droite de ce blog.

Il s’agit d’un affichage des articles que j’ai choisi de partager dans les fils RSS que je lis avec Google Reader. En effet, j’utilise cet outil avec beaucoup de satisfaction depuis quelques semaines maintenant.

J’ai longtemps cherché un agrégateur RSS qui puisse me satisfaire, en ligne ou hors-ligne, mais finalement, j’ai dû me rendre à l’évidence que seul un outil en ligne me convenait : je peux ainsi lire mes fils de nouvelles de n’importe où, dès que j’ai un instant, et je n’ai pas à me préoccuper d’une synchronisation fastidieuse et chronophage.

Surtout, il y a dans cet outil une fonctionnalité dont je rêvais depuis longtemps, sans être capable de la décrire. En effet, j’ai toujours tendance, lorsque je lis mes fils RSS à vouloir éliminer les articles qui ne m’intéressent pas avant de lire ceux qui m’intéressent. Ce qui se passe en général c’est que quand j’ai ainsi éliminé l’inutile, je n’ai plus de temps à consacrer au reste. En effet, les innombrables clics et petites manipulations pour voir si un article est intéressant et pour le marquer comme lu devient vite long, quand ces opérations se cumulent sur plusieurs dizaines d’objets. Dans Google reader, il suffit de passer sur un objet, avec la molette de la souris ou avec les flèches du clavier, pour que cet objet soit marqué comme lu, ce qui n’empêche naturellement pas de changer manuellement son statut par la suite en cas de besoin. Je gagne ainsi un temps considérable !

Pourquoi tous les enseignants devraient utiliser Writely

Comme beaucoup de ceux qui s’intéressent au web 2.0, je suis avec curiosité l’actualité de la société 37signals, connue entre autres choses pour avoir créé le framework Ruby On Rails ou l’application en ligne de gestion de projet Basecamp. Je n’ai pas toujours l’usage pour les applications qu’ils diffusent, mais elles montrent souven des concepts ou des méthodologies à la pointe dans le domaine de la création d’applications web. Surtout, cette équipe insiste sur la simplicité et le dépouillement des interfaces et des fonctionnalités, qui paraît être une tendance essentielle de la société actuelle (disons de la société de l’information).

J’ai ainsi été amené à essayer le programme Writeboard pour travailler à plusieurs sur des documents. L’interface est très simple, permettant de faire toutes les manipulations indispensables sur un texte. L’intérêt essentiel, pour moi, était qu’ainsi il est possible de comparer différentes versions du texte, mais aussi qu’il est accessible de n’importe quel ordinateur connecté à internet. Je me trompais sur ce dernier point : l’authentification pour l’accès à ce service se fait une URL compliquée, associée à un mot de passe (partagé par tous les utilisateurs qui ont accès à ce document). Cette méthode relève de la même approche de simplification des interfaces utilisateurs.

La réalité est que lorsque je veux accéder à un document depuis un autre ordinateur que le mien, je ne me souviens pas de l’URL, que je n’ai que dans un mail dans Thunderbird… Bien sûr, je peux transmettre ce message sur mon Gmail… mais je n’y pense pas toujours et l’adresse est différente pour chaque document… Au final, j’ai purement et simplement renoncé à utiliser ce service.

Ensuite, je me suis tourné vers Writely dont l’ambition n’est pas exactement la même (Writely se veut un traitement de texte en ligne). Pour ce qui concerne l’accès, tout est beaucoup plus conventionnel : je vais sur www.writely.com, j’ouvre une session avec un login et un mot de passe, et là je vois une liste de tous mes documents. Comme je me souviens du nom « writely » et que je me souviens assez bien du mien, je suis en mesure d’accéder à n’importe lequel de mes documents de n’importe où ; ce qui est un avantage important (c’est cette fonctionnalité que je recherchais surtout).

Ensuite, je me suis rendu compte que cette application répond à un certain nombre de besoins que j’ai pu avoir ou qu’avaient des collègues que j’ai rencontrés ici ou là.

La première fonctionnalité importante à cet égard est l’import/export depuis et vers la plupart des formats de traitements de texte courants. C’est très utile lorsqu’on reçoit un fichier qu’on ne peut pas ouvrir. Contrairement à ce que l’on dit souvent dans la communauté du logiciel libre, ce problème ne se pose que rarement avec les fichiers Word, quand on n’a qu’Open Office, puisqu’OOo ouvre bien les fichiers .doc ; en revanche, lorsqu’on a un fichier OO sur laquelle seul MS Word est installé (voire, horresco referens, MS Works), le problème est insoluble : on peut naturellement installer OOo, mais il n’est guère possible de télécharger la petite centaine de mégaoctets qu’il représente avec une connexion RTC (qui sont encore courantes dans beaucoup d’écoles primaires) ou même quand on n’a que quelques minutes devant soi. Avec Writely, il suffit de téléverser le fichier et de l’exporter vers un format utilisable !

Une autre utilisation, dans le même ordre d’idées : les enseignants sont souvent soucieux de donner à leurs élèves des documents dans un format standard : le PDF est bien adapté pour cela. Bien sûr OOo permet de créer des PDF, mais il ne faut pas sous-estimer le fait que certains collègues ne savent simplement pas installer un logiciel sur leur ordinateur personnel, sans même parler des politiques de sécurité locales qui n’autorisent pas forcément l’installation de nouvelles applications sur les machines d’un établissement. Writely est là pour eux ! Parmi les formats disponibles pour l’exportation figure le PDF. Il faut préciser que cette fonctionnalité va sans doute devenir payante quand l’application ne sera plus en bêta (c’est du moins ce qui était indiqué il y a quelque temps, avant le rachat de Writely par Google… Est-ce un changement de stratégie ?).

Si l’on ajoute à tout cela la possibilité de travailler à plusieurs (avec notamment une fonctionnalité qui permet d’être informé en temps réel lorsqu’un autre utilisateur modifie le même document en même temps), évidemment la gestion simple des différentes versions et les nombreuses (toujours trop) possibilités de mise en forme de texte, la possibilité de générer une page web et même d’écrire directement sur un blog, je crois que tous les enseignants devraient au poins se poser la question de l’utilisation de ce service.

Si les créateurs de cet outil ne changent pas leur plans dans l’avenir, leur intention est de fournir gratuitement un ensemble assez conséquent de services de base et de permettre aux utilisateurs d’accéder à des fonctionnalités avancées moyennant un abonnement. Ce projet devrait assurer une assez bonne pérennité.