Ci-contre: La Leçon d'anatomie, Rembrandt (détail).
Vous avez certainement déjà entendu parler des fans de Harry Potter, de ces mômes a priori normaux qui peuvent oublier de s'alimenter pendant plusieurs jours si on leur met entre les mains quelques tomes de l'oeuvre de J. K. Rowling. Il paraît qu'il sont ainsi des dizaines de millions à pouvoir vous expliquer en détail, avec passion et pendant des heures, ce que désignent les mots Dumbledore, Quidditch, Hogwarts, que sais-je. Grand bien leur fasse, mais on trouve aussi sur la planète des foules encore bien plus nombreuses (dont je fais d'ailleurs partie) qui n'y connaissent absolument rien et même s'en fichent complètement. Tragédie de l'incompréhension.
Eh bien, figurez-vous qu'il existe aussi (quoique en nombre nettement plus restreint) des gens que les documentations informatiques passionnent autant que Harry Potter enthousiasme les mômes. Certains sont tellement atteints qu'à leurs yeux, les noms mystérieux de GNU/Linux, C++, PostScript, Perl, AWK et Erlang sont évocateurs d'au moins autant de magie qu'Azkaban et Voldemort pour les gniards.
Depuis quelque temps, je suis en relations suivies avec un de ces phénomènes -- que nous appellerons ici le professeur Kufi Fukira. Il n'est pas plus japonais que moi, et si je lui attribue ce pseudonyme asiatique (élaboré à partir de son vrai nom par une ingénieuse bidouille informatique comme je les aime... mais dont je ne vous parlerai pas ici), c'est uniquement pour respecter un anonymat qu'il préfère conserver jusqu'à nouvel ordre.
Kufi (je vais l'appeler par son prénom fictif, puisque dans la vraie vie nous nous tutoyons) est sans l'ombre d'un doute un type très intelligent, un surdoué comme disent les psys, un bargeot comme disent les gens normaux (ceux qui n'ont rien d'exceptionnel, ne lisent pas Harry Potter et se fichent de savoir comment fonctionne un ordinateur). Comme tous les surdoués-bargeots (à commencer par moi, d'ailleurs), Kufi s'intéresse à des trucs et des machins très compliqués dont la planète entière se contrefout, avec une prédilection marquée pour les maths et l'informatique. À la surprise générale, le malheureux a bien rarement l'occasion de parler de ce qui l'intéresse avec quelqu'un qui consente seulement à l'écouter. Ce qui est vraiment fort injuste, car c'est un garçon sympathique et de bonne compagnie.
Je l'ai rencontré il y a déjà quelques années au Salon des jeux mathématiques (qui est pour ce genre de bargeots l'équivalent du rayon "Littérature jeunesse" de la Fnac pour nos chères têtes blondes). Moi, j'ai consenti à l'écouter. Honnêtement, sans comprendre beaucoup plus que des bribes de ce qu'il me racontait -- mais rien que comme ça, j'étais déjà très proche du confident idéal qu'il cherchait désespérément depuis des années, surtout en comparaison des neuf dixièmes et demi de la population qui meurent d'ennui dès que le malheureux Kufi essaie de transmettre sa science mathématique. Nous nous sommes découvert un intérêt commun pour l'informatique et la traduction en beaux listings imbitables de théories mathématiques -- même si, en ce qui me concerne, je me limite à celles qu'on m'a enseignées au collège. Du coup, Kufi s'est mis en tête de collaborer avec moi sur un projet mathématico-informatique, n'importe lequel du moment que j'y travaillerais aussi. Il a montré pour cela tellement d'enthousiasme qu'il m'a presque convaincu d'essayer: il y a peu d'honneurs que j'apprécie autant que ceux que je suis parfaitement conscient de ne pas mériter!
Au moins sur les plans mathématique et informatique, Kufi Fukira est beaucoup plus instruit, vif et compétent que moi. Même hors de ces domaines, je crains de lui devoir un compliment dont je suis particulièrement avare: je le soupçonne d'être carrément plus intelligent que moi -- ce qui me fait faire la grimace. En général, les gens plus intelligents que moi m'inspirent plus facilement l'exécration (j'en suis affreusement jaloux) que l'admiration. Hélas pour moi, Kufi est modeste et, comme je suis un gentleman, cela m'ôte la dernière possibilité que j'avais de le mépriser. Je ne peux donc pas l'envoyer promener: outre que ce serait injuste et impoli, ce serait vraiment du gâchis de ne rien faire d'un tel talent qui ne rêve que d'être employé, même pour pas un rond.
Je ne suis pas aussi branché maths que lui, très loin de là, mais je me souviens quand même assez bien de mes cours de trigo de quatrième et de troisième -- et Kufi partage avec moi l'idée qu'on peut déjà construire beaucoup de choses intéressantes sur ces bases relativement simples. Jusque là, ça va.
Côté informatique, ça paraissait démarrer assez bien aussi, du fait que nous utilisons l'un et l'autre des outils d'usage courant dans le petit monde des logiciels libres. Il m'est arrivé d'écrire des listings en langage C++ avec l'éditeur de texte emacs, puis de les transformer en programmes exécutables avec le compilateur GCC... Vous ne comprenez rien à ce galimatias, chers lecteurs inexistants, et je ne vous le reprocherai certes pas, sachez juste que ce sont les Voldemort et Azkaban du petit monde de Linux (ô ombre du grand Richard Stallman, ne me foudroie pas: je sais qu'il faut dire GNU/Linux; c'est mes lecteurs qui ne le savaient pas, ils viennent seulement de l'apprendre en lisant cette parenthèse -- et après l'avoir lue ils continuent de s'en moquer éperdument, mais c'est un autre problème). Vous ne connaissez rien à tout ça mais moi si, et c'est justement ce qui me différencie de vous aux yeux de l'éminent Kufi Fukira.
Donc, côté informatique, ça démarrait bien entre nous, mais ça s'est vite gâté car Kufi et moi avons nettement des personnalités informatiques aux antipodes l'une de l'autre. Mon anticonformisme cherche à exprimer ce que mon maigre talent algorithmique peut avoir de spécifique à l'aide d'outils aussi standard que possible (dans l'espoir toujours déçu que quelque autre informaticien plus compétent que moi perfectionne un jour ce que j'aurai grossièrement entamé). Dans une attitude rigoureusement symétrique, la modestie de Kufi l'amène à ne chercher aucune gloriole personnelle, mais au contraire à essayer d'utiliser à fond ce qu'a produit l'intelligence de parfaits inconnus dont il décrète par principe et à vrai dire sans aucun examen qu'ils ont certainement travaillé avec compétence et talent.
Dit comme ça, ça donne l'impression que nous sommes parfaitement complémentaires. Pas sûr. Moi, j'exècre les documentations informatiques, qui me tombent des mains (et Dieu sait pourtant si je m'en suis déjà enfilé des quantités); Kufi, lui, se jette dessus avec avidité, exactement comme les troupeaux de gniards sur la saga Harry Potter.
Moi, quand on me met en présence d'un bouquin informatique de six cents pages, je commence par vérifier qu'il est écrit en bon français, muni d'un index détaillé et d'une table des matières intelligible, et si c'est le cas mon seul souci devient de le lire en diagonale pour identifier dedans, en y passant aussi peu de temps que possible, les quinze ou vingt pages qui me permettront de faire un tout petit poil mieux des choses que j'ai déjà appris à faire il y a longtemps. Si je ne trouve pas assez vite, je laisse tomber en me disant que vu que j'ai atteint l'âge vénérable de cinquante-deux ans en me passant de ces bidouilles, c'est sans doute que je peux continuer.
Kufi, lui, scanne Internet comme s'il était Google à lui seul, dévore de A à Z les huit cents écrans anglophones de toutes les docs informatiques les plus rebutantes qu'il peut y rencontrer, et dès qu'il y trouve un truc un tant soit peu nouveau (c'est-à-dire dont la planète entière s'était très bien passée jusque là), aussitôt il considère comme une mission sacrée de le tester, de l'employer et de construire quelque chose dessus. Je suppose que Dieu a placé des gens comme Kufi Fukira dans l'écosystème informatique pour l'édification de la civilisation, mais je ne suis pas sûr que ce faisant il leur ait vraiment fait un cadeau.
Kufi est susceptible de s'intéresser aux techniques informatiques les plus absconses exactement pour les raisons qui me conduisent à les fuir. Alors que moi, je cherche d'abord dans toute technologie nouvelle ce qui ressemble à ce que je connais déjà par ailleurs, parce que ça m'aide à trouver mes repères, lui se jette avec avidité sur tout ce qu'il y a de plus inhabituel et de plus spécifique, et même ne s'intéresse qu'à ça. Cet esprit de pionnier et de défricheur est très utile aux anthropologues et aux explorateurs, mais en informatique c'est un excellent moyen pour perdre un temps infini dans le fin fond des impasses des incompatibilités et des projets sans lendemain.
Bien entendu, Kufi ne veut pas seulement utiliser ces bidouilles dans son coin comme il avait presque toujours été contraint de le faire jusqu'ici, il préférerait de loin faire ça avec moi. Pas tant, je pense, pour profiter de mon maigre talent que pour avoir au moins à ses côtés quelqu'un qui comprenne l'intérêt de son travail...
Il y a quand même un léger facteur d'optimisme dans cette histoire. Kufi ayant tendance à aller beaucoup plus loin que moi dans tous les domaines, ça lui donne paradoxalement une légère faiblesse par rapport à moi: celle d'être encore nettement plus barge (et pourtant, tous mes commensaux vous confirmeront que ce n'est déjà pas peu dire et que dans le genre "savant fou", j'ai moi-même quelques sérieuses prédispositions). Dans notre intérêt mutuel, je vais donc essayer de profiter du très léger surcroît de lucidité que cela me confère pour l'empêcher de nous embarquer tous deux dans un projet par trop irréalisable. Mais ça n'est pas gagné: si je ne nous trouve pas un projet excessivement difficile, jamais je ne le convaincrai de venir m'y prêter main forte... Résultat des courses, je nous crois bien partis pour employer des techniques auxquelles personne ne bite rien pour aboutir à des résultats dont personne ne comprendra l'intérêt.
Intelligence is a curse.
Affichage des articles dont le libellé est bidouille. Afficher tous les articles
Affichage des articles dont le libellé est bidouille. Afficher tous les articles
samedi 11 août 2012
lundi 15 mars 2010
Mon logiciel, c'est mon talent

Voilà ce que je sais faire quand on me laisse quinze jours.
Je ne crois pas que je vous aie beaucoup manqué, chers lecteurs inexistants, mais la raison pour laquelle j'ai disparu quelque temps de la toile, c'est que j'étais occupé à construire le joli site web représenté sur la vignette illustrant cette notule. Le site complet, intitulé Argent lucide, est d'ailleurs consultable en ligne pour que vous voyiez que je ne bluffe pas. Argent lucide est ce que l'on appelle dans les écoles de journalisme un "journal-école" (en l'occurrence, un "webzine-école"), c'est-à-dire une pseudo-publication imitant d'aussi près que possible un vrai journal, et créée à partir de rien en un temps record par une équipe d'étudiants journalistes, pour faire comprendre à ces derniers la puissance et les contraintes du travail en équipe.
Argent lucide a l'aspect d'un vrai webzine, le contenu d'un vrai webzine mais... ce n'est pas un vrai webzine, car il n'aura vraisemblablement jamais de numéro 2. Par ailleurs, il n'a pas de budget, pas de financement, son lectorat est purement fantasmé (en théorie, ce webzine est lu par des gens ayant à la fois de l'argent et une conscience, d'où son titre; mais inutile de dire que des zozos pareils, ça n'existe pas dans la vraie vie). Cela dit, ce canard fictif contient de vrais articles réalisés avec un vrai travail journalistique par la douzaine de stagiaires que je coordonne (je ne suis pas tout seul à le faire, soit dit en passant), lesquels n'ont certes pas encore beaucoup de bouteille mais sont déjà capables de recueillir et de mettre en forme des informations (en les agrémentant, il est vrai, d'un paquet de fautes d'orthographe).
Joli travail, non? Ca n'a-t-il pas un aspect professionnel en diable? Mais si mais si, absolument (je réponds à votre place, chers lecteurs, on gagnera du temps). C'est assurément dû en très grande partie au boulot journalistique de mes stagiaires, mais leur création était livrée sous forme d'une ribambelle de fichiers Word accompagnés de quelques photos numériques en bordel -- c'est-à-dire qu'avant que je m'en occupe ça ressemblait furieusement à un gros tas de boue informatique inexploitable. Quinze jours de boulot de votre serviteur dessus (boulot réalisé en même temps que la rédaction et non a posteriori, je le précise: ma date de bouclage était la même que celle des étudiants), et ça devient une trentaine de pages web d'aspect relativement sérieux tout de même, et interconnectées à mort comme vous pouvez le constater si vous y mettez votre nez: chaque article-page web est accompagné d'éléments de "zapping" honteusement accrocheurs, voire putassiers, dont la fonction est de retenir sur le site le plus longtemps possible ce crétin d'internaute dont le désir le plus cher est toujours d'aller voir ailleurs.
Joli travail, donc -- pas la peine d'essayer de me dire le contraire, je ne vous écouterai pas. Eh bien, que croyez-vous que j'obtiens comme réaction quand je montre ça à un quidam? Il a invariablement deux attitudes successives. La première consiste à s'extasier poliment: "Wow, pas maaal dis donc! T'as fait ça avec quoi? Dreamweaver? Wordpress?" Et la deuxième est de prendre un air déçu et consterné, genre soufflé qui retombe, quand je lui réponds la vérité vraie: que j'ai fait ça sans logiciel commercial, uniquement avec mes petits doigts et du code informatique tapé par iceux: ah, ce n'est que ça, tu bricoles en amateur, dire qu'un moment je t'avais pris pour un super-pro. Les plus gentils m'expliquent sur le ton qu'on prend pour parler aux grands débiles mentaux que je me fais vraiment bien chier pour pas grand-chose, et qu'on édite maintenant d'excellents logiciels faciles à pirater qui résolvent tous ces problèmes en deux coups de cuiller à pot sans avoir besoin de s'emmerder à manipuler des codes informatiques comme les moines copistes au Moyen-Age.
Et bien, voyez-vous... ça m'énerve!
JE SUIS un super-pro, bande de connards, et je le suis précisément parce que je sais qu'on n'a pas besoin d'outils coûteux pour aboutir à un résultat informatique; qu'on peut tout à fait obtenir ce qu'on veut d'un ordinateur pour peu qu'on le lui demande avec ce qu'il faut de compétence et de talent -- c'est-à-dire exactement tout ce dont vous êtes totalement dépourvus, bande de cuistres. Vous avez le droit d'être ignorants, d'autant plus que ce que je fais est effectivement assez sioux -- mais vous M'ENERVEZ en étant si visiblement convaincus que je vous suis inférieur PARCE QUE j'en sais cinquante fois plus long que vous en informatique. CA M'EXASPERE, cette sotte gloriole du mec qui connaît rien à rien et estime que c'est justement pour ça qu'il est parfaitement qualifié pour m'expliquer que je m'y prends comme un manche. Couillons, va.
Bon, je me calme un peu et je vous explique (encore que vous ne le méritiez pas, mais je suis foncièrement bon). La plupart des sites web, et en tout cas la quasi-totalité des webzines se donnant un aspect journalistique, sont constitués d'un savant mélange de textes rédigés, dont n'importe quel lecteur peut faire son miel si toutefois il a appris à lire, et par ailleurs de codes informatiques de mise en forme rigoureusement imbitables que personne ne voit jamais sauf l'informaticien qui les élabore. Ca va, jusque là vous suivez? Bon. Figurez-vous que les articles ont beau être tous différents, les codes informatiques, eux, sont toujours les mêmes (si on est pompeux, on peut même appeler ça une "formule de mise en page": plus c'est systématique, mieux c'est). Toujours les mêmes, vous pigez? Ca veut dire que c'est une perte de temps intégrale de prendre le super-logiciel clicodrome plein de menus déroulants dont vous connaissez la réputation, le truc qui moud le café et cire les pompes, mais que vous ne pourriez employer que pour refaire interminablement, article par article et numéro par numéro, rigoureusement le même boulot de mise en page à chaque fois.
Employer un logiciel de mise en page pour réaliser un webzine, c'est COUILLON. Quand on est un informaticien et non une brêle, on AUTOMATISE. Et cette automatisation, on la réalise avec de tout petits outils qu'on met au point pour des tâches extrêmement précises (du genre: mettre un fond de couleur derrière une phrase de relance, une seule). Ces bidouilles sont toutes petites et spécifiques, mais AUTOMATISEES, et non pas exécutées manuellement à chaque fois dans l'immense clicodrome-usine à gaz à 6000 euros dont vous préconisez l'usage, bande d'incompétents.
Une des choses que vous pouvez voir dans Argent lucide, c'est que chaque article est accompagné d'une demi-douzaine d'accroches publicitaires concernant d'autres articles disponibles sur le site. Une trentaine d'articles multipliée par une demi-douzaines d'accroches sur chaque page... Vous rendez-vous compte que ça vous ferait 180 occasions de faire les choses de travers si vous mettiez tous ces éléments en place par mise en page manuelle? Vous rendez-vous compte que ça vous demanderait au minimum cinq minutes de manipulation par page (et encore, je suis immensément optimiste), que 30 x 5 = 150 minutes, c'est-à-dire deux heures et demie de perdues sur le bouclage du canard? A titre informatif, le même boulot effectué par des automatismes requiert environ vingt-cinq secondes de traitement. Oui oui, pour les trente pages du site web. Et entre nous, si c'est aussi long, c'est bien parce que je n'ai pas eu le temps de fignoler: c'est au moins cinq fois plus que ce qu'il est possible de faire dans l'absolu.
Oui, ça sert, l'automatisation. Non, contrairement à ce que vous croyez, ça n'est pas un truc pour des frustrés de la vie qui n'atteignent l'orgasme qu'en manipulant du code informatique faute d'avoir les moyens de se payer des poupées gonflables. En plus d'être utile, c'est un exercice intellectuel valorisant: quand je regarde Argent lucide, je me dis que j'ai fait ça avec mon talent et pas avec mon carnet de chèques; j'en suis fier comme un petit banc, et j'ai raison! Certes, ce n'est pas à la portée de tout le monde (encore que ce soit beaucoup moins complexe que vous ne l'imaginez), mais ça a à voir avec la civilisation et non avec le cash-flow. Moi, j'aime.
La civilisation, vous savez? Un truc qui a été entamé par nos ancêtres, que nous enrichissons et qui sera encore utile à nos arrière-petits-enfants... Pour réaliser ce webzine, j'ai mis au point des bidouilles à toute berzingue pendant ces quinze jours, mais j'en ai aussi réutilisé que j'avais mises au point huit ans avant (eh oui, c'est ça aussi la compétence: ça permet d'exploiter ses propres archives), et je me suis fait aider de tout petits utilitaires Unix qui ont été conçus dans les années 70 du siècle dernier et qui fonctionneront encore très longtemps avant même d'avoir besoin qu'on les perfectionne.
Quant à mes bidouilles à moi, elles auront un avenir ou pas, je l'ignore, mais ce que je vous garantis, c'est que je ne vais pas les jeter. Car ça peut s'adapter, ces petites bêtes. Je ne sais pas si vous le croirez, mais l'utilitaire le plus utile pour la fabrication de ce site web est une adaptation d'une moulinette que j'ai mise au point en 1996 pour réaliser... une maquette en 3D de la cathédrale de Cochabamba (Bolivie). Le jour où vous arriverez à construire une maquette en 3D avec votre Dreamweaver à 3000 euros, je vous autorise à revenir me dire que je travaille comme un manche. Mais en attendant, z'êtes priés de vous écraser devant les vrais professionnels. Non mais.
lundi 8 février 2010
A l'assaut du trio infernal

Pratiquement depuis qu'il y a assez de linuxiens pour acheter des journaux spécialisés, on entend parler dans ces derniers d'un "trio infernal". Ce bel exemple de cliché et de langue de bois journalistique désigne un ensemble de trois logiciels: Apache, MySQL, PHP. Chacun de ces trois bazars pris individuellement ne peut intéresser que quelques informaticiens spécialisés, mais l'assemblage des trois engendre une merveille dont vous avez probablement entendu parler, chers lecteurs: le web, pas moinsse.
Bon, tout ce qui se trouve sur le web n'est pas fait avec le trio infernal au grand complet. Moi-même, qui ai pondu au fil des ans une grosse demi-douzaine de sites web, je n'ai jusqu'ici eu recours à aucun des trois pour y arriver. Mais le web n'aurait assurément pas l'importance qu'il a aujourd'hui s'il n'était organisé autour de ces trois larrons. Ils méritent donc bien une présentation.
Apache, symbolisé dans l'image ci-dessus par l'espèce de plume rouge (en fait, je crois qu'elle est multicolore, mais comme je suis daltonien, je simplifie), c'est le logiciel qui permet à un ordinateur de réagir aux sollicitations qu'il reçoit au travers du web. Quand vous consultez un site quelconque et que vous cliquez sur un lien quelconque, boum, voilà-t-il pas que de l'information apparaît sur votre écran alors qu'elle n'est pas enregistrée sur votre machine. Eh bien, le bazar qui a reçu votre demande d'accéder à cette information et qui vous l'a aussitôt expédiée, c'est presque toujours Apache. Ce nom d'indien est un jeu de mots à deux balles comme les geeks les aiment: ça se prononce "apatchi", donc "Apache software" se prononce "a patchy software" et se traduit par "un logiciel fait avec du sparadrap". Entendez que c'est un bazar fait de pièces et de morceaux qu'on a rassemblés à la va-vite et sans élégance. Etonnante appellation, non? C'est qu'Apache est un logiciel libre, sans but lucratif, initié au départ par des informaticiens bénévoles qui voulaient juste que ça marche le plus vite possible et tant pis si c'était moche. Or, ça a tellement marché que ça a permis l'existence du web, mais oui. Chaque informaticien de la planète a recours aux services d'Apache des dizaines de fois par jour. Quand ça marche (et la plupart du temps, ça marche), ça s'appelle du surf sur le web et personne n'a conscience de l'existence d'Apache. Quand ça débloque, généralement pas à cause d'Apache mais plutôt parce qu'un site web a été mal conçu, c'est encore Apache qui vous signale des erreurs, dont la fameuse page "404 Not found" qui vous signale que le document que vous avez demandé n'existe pas sur le serveur que vous consultez, en tout cas pas sous le nom sous lequel il a été réclamé. La prochaine fois que vous vous prendrez un 404 Not found dans la figure, au lieu de vous contenter de pester "saleté d'ordinateur" comme d'habitude (alors que pour une fois, votre ordinateur n'y est pour rien), lisez donc ce qui est écrit en tout petit en bas de la page: vous pourrez vraisemblablement y lire le mot "Apache" et vérifier par là-même que je ne vous raconte pas d'âneries.
MySQL, dont le logo représente un zoli dauphin, c'est un système de gestion de base de données très puissant et gratuit. Une très forte proportion des administrateurs système de la planète utilisent donc ce bazar pour stocker tout et n'importe quoi (principalement du texte, mais en trichant un peu on peut y mettre beaucoup d'autres cochonneries) et le retrouver très vite à la moindre sollicitation. Comme le web sert à diffuser tout et n'importe quoi, MySQL y est extrêmement utilisé.
Quant à PHP, dont le logo d'une consternante laideur représente... les trois lettres PHP (les graphistes ne se sont pas foulés, cela étant probablement dû au fait qu'en place de graphiste on a dû demander à l'informaticien le moins débordé de l'équipe de pondre un logo en cinq minutes pour faire taire ceux qui le réclamaient), eh bien PHP est le bazar qui fait le lien entre Apache et MySQL, et transforme le boulot de ces deux gentils messieurs en des pages web plus ou moins esthétiques, plus ou moins lisibles. C'est un langage de programmation informatique dont la principale fonction est... d'écrire du code informatique, ce qui, je le suppose, suffit à vous convaincre que ça n'est pas fait pour les débutants. Eh bien, vous vous trompez entièrement: PHP est fait pour des débutants (initialement, "PHP" voulait d'ailleurs dire "Personal Home Page") avec un effort particulier pour les nullards qui veulent s'y mettre en n'ayant rien appris de sérieux -- et pour le malheur de la planète informatique, c'est relativement efficace: des informaticiens même très mauvais arrivent à tirer quelque chose de PHP. Ca a l'air d'être sympa comme projet... Mais c'est un vrai tas de boue, inélégant au possible, susceptible de continuer de tourner cahin-caha même quand il a été programmé avec le pied gauche d'un cul-de-jatte... ce qui fait qu'un programme PHP même très mal écrit peut encore être enrichi ou plutôt alourdi même par des brêles complètes, jusqu'à qu'il soit tellement emberlificoté que plus personne n'y comprend plus rien et notamment pas les informaticiens qu'on paye pour essayer de le rendre moins dégueulasse. Si vous voulez voir quel type de daube informatique ça peut produire, connectez-vous sur le site de la SNCF.
Si le trio Apache-MySQL-PHP est infernal, c'est essentiellement à cause de PHP, ou plutôt des connards qui l'utilisent avant d'avoir appris à s'en servir. Seulement, comme PHP a été conçu à l'intention des nullards, et que nous avons tous été enfants avant que d'être hommes (comme disait mon pote Descartes), tous ceux qui apprennent PHP réussissent à s'aventurer sur le web avant d'avoir appris les risques qu'ils y courent.
Ce qu'ils cherchent à faire, c'est à faire en sorte que leur ordinateur devienne un serveur, c'est-à-dire qu'il puisse réagir aux sollicitations venant d'autres machines connectées à Internet. Et vite, en plus. Avec PHP, ils y arrivent: leur beau-frère peut consulter de sa lointaine province, sans se déplacer, les photos de vacances qu'ils ont mises à disposition de la planète sur leur meugnon petit PC avec son Windows pourri (oui, le trio infernal peut fonctionner sous Windows; même quand il est programmé par des windoziens, ce qui est quand même très fort): la machine de Lutèce répond à ce que demande la machine de Trifouilly. Ou de Kiev, de Khabarovsk, de Jersey, de Ouagadougou ou Tegucigalpa. Ah zut! On l'avait oublié, il n'y a pas que des gentils sur Internet. Et ce qu'un gentil nullard peut faire avec PHP, un méchant nullard peut le faire aussi. Et si en plus le méchant est un peu plus compétent en informatique que l'employé de Microsoft moyen (ce qui n'est vraiment pas difficile), il va sans trop de peine utiliser pour ses coupables visées le trio infernal tournant sur la machine du nullard sans même avoir besoin de savoir où elle se situe au juste. Et la machine du neuneu équipée du trio infernal se met, à l'insu du neuneu, à envoyer du spam; à attaquer des réseaux bancaires pour essayer de trouver les mots de passe; à faire transiter les données cryptées des narcotrafiquants; à héberger de la pédopornographie. Ben ouais, ça existe vraiment.
Résultat des courses, les développeurs d'Apache, de MySQL et de PHP passent leur temps à sécuriser leurs bazars pour que les vilains pas beaux aient de plus en plus de mal à en prendre le contrôle à distance. Et pour cette raison, le trio infernal devient de plus en plus infernal: c'était déjà un tas de boue emberlificoté offrant des trous béants aux cybercriminels (oui, l'image est un peu hardie, mais qu'est-ce que vous croyez, j'ai bien le droit de faire du style). Eh bien, par à-coups, ça devient parfois aussi tâtillon qu'un fonctionnaire de l'état civil fan de Brice Hortefeux quand un mal blanchi né à Singapour d'un père congolais et d'une mère kabyle vient déclarer qu'il a perdu son passeport. Houlà houlà houlà, t'es qui, toi? Tu peux le prouver? Et d'abord, qu'est-ce que tu viens fiche sur mon site web? Tu me dis que tu es le même que celui qui est déjà venu il y a dix minutes, mais qu'est-ce qui me force à te croire?
Les cybercriminels s'en foutent probablement pas mal, en revanche les informaticiens pas tout à fait nullards qui s'attaquent au trio infernal trouvent ça un peu crispant: car les manip données comme tout à fait orthodoxes dans les manuels de 2008 sont devenues totalement acrobatiques, voire interdites, dès le premier trimestre 2009. Toutes les douze heures environ, l'un des trois loustics du trio infernal vous signale que vous devez absolument passer de la version 2.3.227 à la 2.3.229a bêta, qui n'a pas été testée à fond, à moins que vous ne préfériez la 2.3.228 qui, elle, a été testée, même qu'on sait qu'elle ne marche pas dans certains cas particuliers très rares, mais si, prenez-la quand même, ça devrait aller.
Dans le monde du logiciel libre où les forces du bien sont continuellement à l'oeuvre, il est apparu un projet sympathique, nommé Xampp ("amp" dans "Xampp" signifie "Apache-MySQL-PHP"), qui se propose de faire tourner le trio infernal sous Linux (c'est là que ça marche le mieux, mais ça existe aussi, hélas, sous Windows) dans deux configurations de base: 1) totalement ouvert à la cybercriminalopédopornographie, pour les tests; 2) totalement fermé au point qu'on n'arrive pas à s'en servir même sur une machine déconnectée se consultant elle-même avec les privilèges de l'administrateur système. Entre les deux configurations, il y a un peu de place pour les réglages qui vont bien... mais vous devrez les faire vous-même parce qu'il faut prendre en compte tellement de cas particuliers que personne ne peut automatiser ça.
Eh bien, je m'y suis attaqué hier. Souhaitez-moi bonne chance.
mercredi 27 janvier 2010
Harrison Ford et Isabelle Huppert en haut de l'affiche

Pour les crédits photo, voyez au bas de cette notule.
Amateurs de rubriques people, passez votre chemin: non, je ne vous révèle pas la distribution du prochain Spielberg, pas plus qu'une affaire de zizi-panpan entre les sympathiques personnes dont la mignonne trombine illustre cette notule... Je ne vous parle ici, comme dans ma chronique d'hier, que de l'informatisation de ma DVDthèque. Navré.
Seulement, il se trouve que Harrison Ford et Isabelle Huppert sont fort bien représentés dans ma DVDthèque, parce qu'étant assez fan du premier comme de la seconde et réciproquement, j'ai tendance à casser ma tirelire chaque fois qu'il y a moyen d'acheter d'occase un DVD dans lequel ils jouent (oui, d'occase, ou plutôt à prix bradés: j'ai beau être fan, je ne suis pas riche à millions, et il est rare que j'achète des DVD à leur prix de lancement). Au fil des ans, j'ai donc acheté 10 films avec le premier, 8 avec la seconde, non pas parce que je l'aime moins mais parce que les films français sont généralement beaucoup plus chers que les ricains. Dix plus huit parmi les quelque six cents films de ma DVDthèque, ce n'est pas tout à fait une aiguille dans une meule de foin, mais c'est largement assez pour que je ne puisse pas comme ça au débotté indiquer les titres des films en question, et encore moins leurs emplacements -- ce qui est bien dommage quand il me prend la fantaisie d'organiser de petits festivals privés avec ces jolis disques payés de mon bon argent durement gagné à la sueur de mon front.
En plus, il m'arrive d'enfouir dans les profondeurs les films avec la belle Isabelle quand la présence d'icelle est à peu près la seule chose qui me plaît en eux, ce qui n'est pas tout à fait rare -- Mme Huppert étant assez éclectique dans ses choix et ne reculant pas devant les films, hum, disons, difficiles (ça doit être difficile à jouer, mais accessoirement c'est parfois difficile à regarder) et/ou glauques. Isabelle Huppert, et d'ailleurs aussi Annie Girardot, ont quelques scènes d'anthologie dans "la Pianiste" de Michael Haneke, mais faut bien avouer qu'en dehors de ces scènes mémorables le film est carrément pénible (génial, peut-être, mais pénible, assurément). Isabelle Huppert est comme d'habitude exceptionnellement (*) belle, merveilleuse, bouleversante dans "Ma mère" de Christophe Honoré d'après Georges Bataille -- mais si elle n'y était pas ça serait purement et simplement un film de série Y (je veux dire que ça se situe quelque part entre les films X et la série Z). Donc, ces films-là, je les garde précieusement pour la merveilleuse Isabelle, éventuellement je note l'emplacement précis des bonnes scènes en heures, minutes, secondes pour surtout n'avoir pas besoin de revoir le reste... et puis je cache tout ça dans une caisse, loin des yeux innocents de mes petits neveux.
Résultat des courses: ces films que j'ai achetés avec les maigres pépettes obtenues en échange de mon asservissement au patronat apatride, au lieu de les thésauriser, je les oublie.
Eh bien, c'est fini! J'ai repris ce matin la liste de DVD constituée la veille, j'ai flanqué ça dans un tableur et j'ai ajouté une colonne "acteurs" que j'ai entièrement remplie de mémoire, à toute berzingue, en un peu plus d'une demi-journée. Faut le faire, hein, zavez vu quelle phénoménale mémoire je me paye. Oui, bon, j'exagère un peu: j'en ai rempli les deux tiers de mémoire, et le troisième tiers, je l'ai reconstitué non pas en allant fouiller ma DVDthèque et les caisses qui la complètent (allez donc entreprendre des fouilles quand un chat dort sur vos genoux), mais en farfouillant sur Wikipédia, notre amie à tous. Environ six heures de saisie, une petite conversion vers SQLite, quelques lignes à changer dans un script Python, et boum, me voici capable d'obtenir au débotté la liste de tous mes DVD avec n'importe lequel de mes acteurs préférés. Et ce, en moins de deux jours, je vous prie de le noter: avant-hier, ma base de données n'était encore qu'un projet, que dis-je, qu'un fantasme. Osez dire que je ne suis pas un informaticien super-pêchu et retaillé. Osez dire qu'on ne peut rien tirer de ces vilains logiciels libres pas conviviaux pour un sou que sont SQLite et Python.
Allez, try me. Qui cherchez-vous? Bon, à tout seigneur tout honneur, allons-y avec Harrison Ford: A propos d'Henry, Apparences, Aventuriers de l'arche perdue (les -), Dernière croisade (la -), Hollywood Homicide, Ombre d'un soupçon (l'), Présumé innocent, Guerre des étoiles - un nouvel espoir (la -), Temple maudit (le -), Witness.
Allons-y avec Isabelle Huppert: 8 femmes, Ma mère, Merci pour le chocolat, Palmes de M. Schutz (les -), Pianiste (la -), Porte du Paradis (la -), Soeurs fâchées (les -), Vie moderne (la -). Bon, admettons-le, cet état alphabétique de ma DVDthèque n'est pas du tout une filmographie sélective et chronologique, en fait dans tout le paquet il n'y a guère que "la Porte du paradis" qui mérite vraiment de figurer dans une anthologie -- et encore, il s'agit de la version abrégée par United Artists contre la volonté de Michael Cimino; je crois que le director's cut existe, mais je n'ai jamais eu les moyens de me l'offrir. N'empêche, n'empêche, quand je veux me faire un samedi pluvieux de chips et d'Isabelle Huppert, j'ai de la matière et puis pas vous, na.
Par ailleurs, ce n'est qu'un début: pour le moment, les acteurs ne sont enregistrés dans la base que comme une multitude d'inventaires associés à chaque film; il faudra bien sûr que je crée une table d'acteurs propre, avec des jointures vers la table des films... N'empêche: arriver à faire tout ça en moins de deux jours, moi je dis que ça n'est pas à la portée du premier crétin venu. C'est pas beau de se vanter, mais si je comptais sur les lecteurs de ce blog pour me faire des compliments, je risquerais d'attendre un tantinet.
Moquez-vous, moquez-vous... Je m'en fiche, moi, je suis très content de moi, voilà.
(*) Ce n'est pas une autocontradiction, c'est une figure de style empruntée au délicieux Michel Drucker, lequel reçoit tous les dimanches depuis soixante-quatre ans un invité exceptionnel.
Crédits photo. Pour Harrison Ford, (c) Gavatron/Wikipedia, licence Creative Commons Attribution-Share Alike. Pour Isabelle Huppert, (c) Nicolas Genin/Flickr/Wikipédia, licence Creative Commons Paternité.
mardi 26 janvier 2010
DVD x SQL = SGBDR + cas particuliers

Un peu cryptique, mon titre, non? Moi, j'aime bien. Bref. Parmi mes bonnes résolutions pour l'année 2010, il y avait celle d'apprendre à utiliser à fond le langage SQL. Pour ce faire, j'ai passé il y a quinze jours une bonne heure à la librairie Eyrolles pour trouver un livre suffisamment complet, pédagogique et pas trop axé sur un système de gestion de bases de données précis (la plupart des bouquins ne s'intéressent qu'à mySQL, alors que j'ai plutôt opté pour SQLite). J'ai fini par renoncer à employer un manuel français (rien trouvé de bien convaincant -- d'ailleurs j'ai déjà plusieurs titres français sur la question dans ma bibliothèque et, justement, ils ne m'ont pas convaincu) et j'ai jeté mon dévolu sur Learning SQL, d'Alan Beaulieu, chez O'Reilly (oui, j'aime bien O'Reilly; et je ne suis pas le seul), ISBN 978-0-596-52083-0, avril 2009 pour la seconde édition (zen chercherez, des blogs qui vous donnent des références aussi précises).
Le bouquin est très clair et pédagogique, parsemé d'humour ce qui ne gâte vraiment rien. Il est construit autour d'une base de données abondante et savamment emberlificotée, qu'on peut se procurer sur le site d'O'Reilly pour ensuite tester des manips avec mySQL. C'est une excellente idée, mais il s'agit bien sûr de données bidon (clients bidon, adresses bidon, produits bidon, numéros de téléphone bidon) -- alors qu'on ne progresse jamais autant dans la maîtrise des bases de données qu'en traitant des données réelles, toujours truffées d'exceptions et de cas particuliers. J'adore ça, et d'autant plus que je sais que la plupart des informaticiens gèrent ces exceptions tout simplement en les ignorant -- ce qui, à mon sens, démontre bien qu'ils sont loin d'être aussi intelligents qu'ils ne souhaiteraient le faire croire. Et si vous trouvez que j'exagère, regardez donc sur votre chéquier comment les informaticiens de votre banque ont noté votre adresse: je vous parie à dix contre un qu'elle est écrite toute en majuscules et sans accents. Ah ouais, les accents, c'est une vraie galère à gérer, surtout quand l'informaticien est une brêle -- et c'est très généralement le cas comme vous pouvez le voir: si même les kadors que s'offrent la BNP et Natixis sont infoutus de noter un c cédille, ça vous donne une idée de ce que le clampin moyen serait capable de faire avec une bibliothèque.
Eh bien moi, j'aime les exceptions, les cas foireux, les trucs qui rentrent pas dans les cases. Dans le cas de ma DVDthèque, j'aime les films qui ont plusieurs titres (qui s'appellent "Wild at Heart" in English et "Sailor et Lula" en français, par exemple), j'aime les "coffrets Paul Newman" enfermant dans un contenant unique "la Chatte sur un toit brûlant", "Doux oiseau de jeunesse" et "le Gaucher", j'aime les dynasties d'acteurs (Kirk et Michael Douglas, Henry et Jane Fonda...) qui forcent à noter les prénoms, j'aime les trilogies avec 3 DVD dans la même jaquette, j'aime les noms à coucher dehors du genre Krzysztof Kieślowski (auteur d'une jolie trilogie, justement)... Et j'affirme en toute tranquillité d'âme que l'informaticien qui fait la grimace en entendant ça, au lieu de s'enthousiasmer devant la difficulté, est une brêle.
Bref. J'y travaille. J'ai passé la journée d'hier à constituer un inventaire exhaustif des films et des jaquettes (ce qui n'est pas du tout la même chose), d'abord en lisant à voix haute devant mon dictaphone ce que je pouvais lire sur la tranche de tous mes DVD (la jolie photo illustrant cette notule représente l'un des 20 rayonnages de ma DVDthèque, mais il y a bien sûr aussi des caisses, des cartons et même des tas), puis en tapant tout ça avec mes petits doigts agiles sur emacs, puis en le faisant bouffer à OpenOffice.org Calc, puis en le convertissant en CSV, puis en le convertissant en SQL. Eh bien, une journée m'a suffi pour répertorier dans les 600 titres (dont seulement 360 installés proprement sur des rayonnages), tous achetés légalement (bonjour madame Hadopi) à une seule exception près (1) (chic, encore une exception). Tiens, pour le même prix, je vais vous filer la liste, ça attirera sur ce blog plein de trafic, nyark nyark nyark, et par ailleurs ça me permettra de la retrouver dans n'importe quel cyber-café.
Je vous reparlerai certainement de cette superbe base de données, mais pour le moment, je conclus cette notule avec la fameuse liste. A bientôt!
12 hommes en colère, 1926 Vidéo anniversaire, 20 000 lieues sous les mers, 2001, l'odyssée de l'espace, 3 âges (les -), 36, quai des Orfèvres, 37°2 le matin, 4 mariages et un enterrement, 4e étage (le -), 8 femmes, 9 semaines 1/2, A bout de souffle, A l'est d'Eden, A la poursuite du diamant vert, A la rencontre de Forrester, A propos d'Henry, A travers le miroir, Abbé Grégoire (l'-), Accords et désaccords, Addicted to Love, Affaire de goût (une -), Age de glace (l'-), Agrippine 1, Ah! Si j'étais riche, Albert est méchant, Alexandre Nevski, Alien, Allan Quatermain et la cité de l'or perdu, Amadeus, Amants du nouveau monde (les -), Amour & mensonges, Amour à New York (un -), Américain à Paris (un -), Anastasia, Animal Kingdom (the -), Antitrust, Apollo 13, Apparences, Aprile, Arcimboldo, Aristocats (the -), Arnaque (l'), Arrête-moi si tu peux, Associé (l' -), Associé du diable (l'-), Associés (les -), Attention, bandits, Au nom d'Anna, Auberge espagnole (l'-), Austin Powers, Autant en emporte le vent, Aventures de Blake et Mortimer (les -), Aventuriers de l'arche perdue (les -), Avocat du diable (l'-), Babel, Bad Company, Bad Timing, Bambi, Barber (the -), Barton Fink, Basic Instinct, Be Happy, Bee Movie, Better off dead, Bienvenue chez les chtis, Bienvenue à Gattaca, Big Lebowski (the -), Big Town (the -), Billy Elliott, Blake et Mortimer, Blanc, Blessures assassines (les -), Blessures assassines (les -), Blessures secrètes, Bleu, Blink, Blue Steel, Blue Velvet, Bodin's, mère et fils (les -), Bombon el perro, Bon, la brute et le truand (le -), Borat, Boucher (le -), Boulevard du crépuscule, Bounty (le -), Bouteille à la mer (une -), Boys, Brasil, Brigadoon, Broken Flowers, Buster Keaton, l'intégrale des courts métrages 1917-1923, Bûcher des vanités (le -), Cadavres ne portent pas de costard (les -), Cadet d'eau douce, Cage aux rossignols (la -), Caire nid d'espions (le -), Calculs meurtriers, Candidat (le -), Canonnière du Yang-Tse (la -), Caramel, Carnaval des animaux (le -), Carrie, Cars, Casablanca, Cashback, Casino, Central do Brasil, Cercle rouge (le -), Chambre du fils (la -), Chantons sous la pluie, Chaplin, Charlie Chaplin, Charlotte Gray, Chasse aux sorcières (la -), Chatte sur un toit brûlant (la -), Chevauchée fantastique (la -), Chicken Run, Chinatown, Chocolat (le -), Choses secrètes, Chute (la -), Chute libre, Chèvre (la -), Cinq cartes à abattre, Cinéma Paradiso, Cirque (le -), City Hall, Cité des anges (la -), Coffret Paul Newman, Colors, Combien tu m'aimes?, Comment se faire larguer en 10 leçons, Comtesse aux pieds nus (la -), Comédies musicales, Constant Gardener (the -), Conte de Noël (un -), Corps impatients (les -), Corps à corps, Corto Maltese, Couleur du mensonge (la -), Cri dans la nuit (un -), Cria cuervos, Crime et châtiment, Cris et chuchotements, Cyrano de Bergerac, Dame du vendredi (la -), Dames de Cornouailles (les -), Dead Man, Dead zone, Demoiselles de Rochefort (les -), Dernier Empereur (le -), Dernière croisade (la -), Desperate Hours, Dialogue avec mon jardinier, Dilettante (la -), Docteur Jivago (le -), Dogville, Don Juan, Donnie Brasco, Doublure (la -), Doux oiseau de jeunesse, Douze salopards (les -), Dragon: l'arnaque, Duplicity, Déclin de l'empire américain (le -), Désaccord parfait, Détective privé, Détonateur (le -), Dí buen día a papá, Eclair de lune, Edith Piaf, Edith et Marcel, Effroyables jardins, Eglises de France, Ile-de-France 1, Elle voit des nains partout, Emmerdeur (l'-), Empereur et l'assassin (l'-), Emprise (l'-), En direct sur Ed TV, En face, En suivant la flotte, En toute bonne foi, Enchaînés (les -), Ennemis rapprochés, Enquête (l'-), Ensorcelés (les -), Epouses et concubines, Erin Brockovich, Escale à Hollywood, Escroc malgré lui, Escrocs mais pas trop, Et au milieu coule une rivière, Eternal Sunshine of the Spotless Mind, Etoile est née (une -), Etre et avoir, Etreintes brisées, Excès de confiance, Existenz, Eyes Wide Shut, Fabuleux destin d'Amélie Poulain (le -), Family Man, Fargo, Farinelli, Fauteuils d'orchestre, Feet first, Femme infidèle (la -), Femmes au bord de la crise de nerfs, Fenêtre secrète, Festen, Fille de d'Artagnan (la -), Fish and Chips, Fitzcarraldo, Fleur de mon secret (la -), Flight Plan, Flûte enchantée (la -), Fontaine d'Aréthuse (la -), Fous d'Irène, France (la -), France Boutique, Frankenstein Junior, French Connection, Furyo, Féline (la -), Gandhi, Garde à vue, Garçonnière (la -), Gattaca, Gaucher (le -), General (the -), Ghost, Girls (les -), Gladiator, Golden Door, Gone du Chaâba (le -), Good Advice, Good German (the -), Good bye, Lenin, Gouttes d'eau sur pierres brûlantes, Goût de la vie (le -), Goût des autres, Gran Torino, Grand Day Out (a -), Grand siècle français (le -), Grand sommeil (le -), Grande excursion (une -), Grande illusion (la -), Grande évasion (la -), Guerre des mondes (la -), Guerre des étoiles (la -), Guillaume le conquérant, Géant de fer (le -), Habit vert (l'-), Hamlet, Hannibal, Happy Feet, Harold et Maude, Harrisson's Flowers, Harry, un ami qui vous veut du bien, Henry and June, High School Musical, Hoffa, Hollywood Homicide, Hollywood Sunrise, Home, Homme d'exception (un -), Homme de la rue (l'-), Homme pour l'éternité (un -), Homme qui en savait trop (l'-), Hours (the -), Héritage de la haine (l'-), I am Dina, I am Sam, Ice Storm, Il faut sauver le soldat Ryan, In her Shoes, In the Mood for Love, Incorruptibles (les -), Incroyable destin de Harold Crick (l'-), Indestructibles (les -), Indiana Jones, Indochine, Inside Man, Insoutenable légèreté de l'être (l'-), Inspector Morse, the Complete Series 1, Instincts meurtriers, Intelligence artificielle, Intern, Intolérable cruauté, Itinéraire d'un enfant gâté, J.F. partagerait appartement, JFK, Jacquou le croquant, Jambon jambon, Janis et John, Je suis une légende, Je vais bien, ne t'en fais pas, Jeux d'adultes, Joue-la comme Beckham, Jour d'après (le -), Jour sans fin (un -), Jour à New York (un -), Kagemusha, Ken Park, Kid (the-), Kika, Kill Bill, Ladybird, Land and Freedom, Lauréat (le -), Lawrence d'Arabie, Lettre écarlate (la -), Liaisons dangereuses (les -), Liberté-Oléron, Liens du sang (les -), Lignes de vie, Linda di Chamounix, Liste de Schindler (la -), Little Miss Sunshine, Lièvre de Vatanen (le -), Lord of War, Lost in translation, Love Nest (the -), Lucky Luke, MIB, Ma meilleure ennemie, Ma mère, Macadam Cowboy, Mad Dog and Glory, Madagascar, Madame Doubtfire, Mado, Mafia blues, Maigret et l'affaire saint-Fiacre, Main sur le berceau (la -), Maison Russie (la -), Maison sur l'océan (la -), Malabar Princess, Malena, Man to man, Manipulations, Marie Antoinette, Marqué par la haine, Mars attacks!, Master and Commander, Matrix, Mauvais pantalon (un -), Mauvaise éducation (la -), Maybe Baby, Maître du jeu (le -), Me Myself I, Mean Streets, Melinda et Melinda, Memento, Men in Black, Menteur menteur, Merci pour le chocolat, Meurtre en suspens, Meurtres par intérim, Michel Audiard le DVD, Microcosmos, Micropolis, Midnight Express, Millenium, Miller's Crossing, Million Dollar Baby, Minuit dans le jardin du bien et du mal, Mission, Moby Dick, Molière, Mon beau-père et moi, Mon beau-père, mes parents et moi, Monde parfait (un -), Monte là-dessus, Monty Python's Flying Circus, Mort aux trousses (la -), Mort d'un commis voyageur, Mother's boys, Mr. and Mrs Smith, Mulholland Drive, My Fair Lady, Mystic River, Mystère de la grande pyramide (le -), Mécano de la "Générale" (le -), Mélodie du bonheur (la -), Mémoire effacée, Môme (la -), Nadia, Nell, Neuvième porte (la -), Ni pour ni contre (bien au contraire), Nightmaster, Nixon, Nom de la rose (le -), Nombre 23 (le -), Norma Rae, Nos voisins les hommes, Notorious, Nous nous sommes tant aimés, Nouveau protocole (le -), Nouvel espoir (un -), Nouvelle Eve (la -), Nouvelles aventures de Lucky Luke (les -), Nuits blanches à Seattle, Nuits de Harlem (les -), OSS 117, Le Caire nid d'espions, Odette Toulemonde, Oiseaux (les -), Ombre d'un doute (l'-), Ombre d'un soupçon (l'), One Eyed Jacks, Orange mécanique, Ordinary Decent Criminal, Ouragan sur le Caine, Out of Africa, Palmes de M. Schutz (les -), Panic Room, Papillon (le -), Pardon Us, Partir, revenir, Party (the -), Pas un mot, Patient anglais (le -), Permanent Midnight, Persépolis, Petites confidences (à ma psy), Petits meurtres entre amis, Peuple migrateur (le -), Phare du bout du monde (le -), Photo Obsession, Pianiste (la -), Pierrot le fou, Piste (la -), Pixar, la collection des courts métrages, volume 1, Piège (le -), Piège en eau trouble, Placard (le -), Playboy à saisir, Playtime, Point limite, Poisson nommé Wanda (un -), Polly et moi, Pont de la rivière Kwai (le -), Porte du Paradis (la -), Portrait of a Lady (the -), Pour l'amour de l'art, Primary Colors, Procès Paradine (le -), Président, Président (le -), Présumé innocent, Prêt-à-porter, Psychose, Pulp Fiction, Pulsions, Père Noël est une ordure (le -), Père Noël est une ordure (le -), Quai des orfèvres, Quand la panthère rose s'emmêle, Quatre garçons dans le vent, Queen (the -), Quel pétard!, Qui veut la peau de Roger Rabbit?, Rain Man, Raining Stones, Raisins de la colère (les -), Rantanplan volume 1, Rasé de près, Rebecca, Red Corner, Redemption, Respiro, Retour vers le futur, Retour à Cold Mountain, Riff Raff, Ripoux (les -), Rivière sans retour, Rivière sauvage (la -), Rob Roy, Robinson Crusoe, Robocop, Robots, Rois de la glisse (les -), Rois du désert (les -), Rome ville ouverte, Rouge, Route semée d'étoiles (la -), Rox et Rouky, Rush, Ruée vers l'or (la -), Règlements de comptes à OK Corral, SOS Fantômes, SOS Fantômes 2, Safety Last!, Sans toit ni loi, Scarlet Letter (the -), Sciuscià, Scoop, Selon Charlie, Sens de la vie (le -), Sentiers de la perdition (les -), Sept ans au Tibet, Sept ans de réflexion, September, Septième sceau (le -), Seul au monde, Sex fans des sixties, Shall We Dance, Shining, Shortcuts, Show girls, Shrek, Shrek 2, Shrek le troisième, Silence des agneaux, Silence des innocents (le -), Silent Movie, Singing in the Rain, Singles, Slap Shot, Soeurs fâchées (les -), Something's Gotta Give, Son de mar, Sonate d'automne, Sortilège du scorpion de jade (le -), Souris City, Sous le sable, Sous les verrous, Space Cowboys, Spagnola (la -), Stand By Me, Star Wars, un nouvel espoir, Starship Troopers, Strange Days, Stromboli, Sur mes lèvres, Swimming with Sharks, Swing Time, Syndrome chinois (le -), Tailor of Panama (the -), Tais-toi!, Take the Money and Run, Talons aiguilles, Taxi, Temple maudit (le -), Terminal (le -), Terminator 2, le jugement dernier, Terre-Neuve, Tex Avery, Textiles (les -), Thelma et Louise, There Will Be Blood, Thierry le Luron à Marigny, Thé au Sahara (un -), To be or not to be, Toile d'araignée (la -), Tombe les filles et tais-toi, Tombstone, Tontons flingueurs (les -), Top Gun, Top Hat, Tour du monde en 80 jours (le -), Tout le monde il est beau, tout le monde il est gentil, Tout peut arriver, Tout sur ma mère, Toy Story, Train sifflera trois fois (le -), Traversée de Paris (la -), Treize jours, Trois couleurs, Tron, Truman Capote, Truman Show (the -), US Marshalls, Uns et les autres (les -), Usual Suspects, Vaillant, pigeon de combat, Vanilla Sky, Vent se lève (le -), Vestiges du jour (les -), Vie de David Gale (la -), Vie des autres (la -), Vie est belle (la -), Vie inachevée (une -), Vie moderne (la -), Vie à deux (une -), Ville portuaire, Virgin Suicides, Visite de la fanfare (la -), Visiteurs du soir (les -), Viva la vie, Vol au-dessus d'un nid de coucou, Voleur de Bagdad (le -), Voyages extraordinaires de Jules Verne (les -), Vérité nue (la -), Vérité qui dérange (une -), Vérité si je mens! (la -), Vérité sur Charlie (la -), Wall E, Wallace and Gromit, Witness, World Trade Center, X files - le film (the -), Y a-t-il un flic pour sauver l'humanité?, Y a-t-il un flic pour sauver la reine?, Y a-t-il un flic pour sauver le président?, Y a-t-il un pilote dans l'avion?, Yol.
Ah merde, j'ai les Blessures assassines en double! S'il y a parmi mes millions de lecteurs un fan de Sylvie Testud qui n'aurait pas déjà ce titre pourtant incontournable (la preuve: je l'ai acheté deux fois), qu'il m'écrive un commentaire avec ses coordonnées: je trouverai bien un moyen de le lui refiler et tout le plaisir sera pour moi.
(1) Dí buen día a papá, film bolivien tellement diffusé hors des circuits commerciaux qu'il n'en existe pratiquement que des versions piratées. En plus, c'est un cadeau.
jeudi 21 janvier 2010
In memoriam Gadfly

L'informatique représente le triomphe posthume de Léon Trotski en ceci qu'elle vit sous le signe de la révolution permanente: tout change tout le temps, et ce n'est pas vrai seulement au niveau planétaire, mais aussi en ce qui concerne mon petit nordinateur à moi. A peine avais-je rédigé ma chronique précédente que je m'apercevais qu'elle était déjà caduque, aussi vais-je m'employer à la corriger.
Eh bien non, le successeur de dBase III Plus, c'est-à-dire le système de gestion de bases de données relationnelles léger, facile à installer et programmable en SQL, ce n'est plus Gadfly: il a été nettement détrôné par SQLite, ou plus exactement (en tout cas, à mon humble avis) par le couple SQLite-Python. J'avais placé mes espoirs en Gadfly sur la foi du très remarquable Apprendre à programmer avec Python de Gérard Swinnen (O'Reilly, 2004), confirmé par le non moins remarquable Python en concentré d'Alex Martelli (O'Reilly, 2004). Comme le temps passe: ces remarquables bouquins dont je n'ai pas encore tiré toute la substantifique moelle sont déjà un peu dépassés (quoique non obsolètes) sur la question des bases de données, et alors que de leur temps SQLite n'était encore qu'un obscur projet pas finalisé et très mal connu, c'est aujourd'hui une référence incontournable au point que les versions récentes de Python intègrent en standard la librairie permettant de s'interfacer avec lui.
Par ailleurs, j'avais eu tendance à considérer SQLite comme peu fiable parce que je n'étais pas parvenu à l'installer par la procédure standard pour les linuxiens glandus moyens et non-administrateurs système, c'est-à-dire le gestionnaire de paquets (chez moi, c'est Synaptic, vu que je bosse sous Ubuntu). Ayant eu après la rédaction de ma dernière chronique la curiosité d'essayer avec la procédure classique pour linuxiens super-pêchus, administrateurs système ou assimilés (configure, make, sudo make install, make clean), j'ai constaté à ma profonde stupéfaction que ça marchait sans coup férir (et ça a d'ailleurs aussi marché sur la partition Mac OS X de mon MacBook). Du coup, non seulement SQLite est installé et fonctionne parfaitement en ligne de commande, mais en plus Python lui cause sans la moindre difficulté.
Immense vertu du SQL, ça m'a immédiatement permis de tester le bazar avec les bidouilles que j'avais mises au point avec Gadfly, ce qui m'a amené à constater que SQLite était incomparablement plus rapide -- donc je prends le pari que Gadfly va tomber en désuétude vite fait bien fait (ce qui est un peu vexant pour son auteur, mais à peu près sans conséquence pour les bidouilleurs dans mon genre, puisque l'usage du SQL standard, commun aux deux bazars, va permettre l'adaptation des listings en deux coups de cuiller à pot).
Bon, a dire il vero (1), j'ai quand même eu quelques difficultés mineures à adapter mes petits programmes de Gadfly à SQLite en raison de différences de gestion des caractères accentués. Gadfly ne les gérait pas vraiment, c'est-à-dire qu'il stockait les octets qu'on lui donnait un par un dans une chaîne normale, ce qui n'a rien pour effrayer le programmeur C que je suis. Le duo Python-SQLite, lui, a voulu faire les choses plus proprement et stocke tout dans des chaînes Unicode, avec les caractères accentués en UTF-8. En fait, c'est mieux et même nettement mieux... mais comme le programmeur C que je suis n'y connaissait rien ça a commencé par me poser bien plus de problèmes que ça n'était censé en résoudre. Mais je pense que je vous raconterai ça dans une prochaine chronique parce que celle-ci est déjà assez bavarde. Hasta pronto! (2)
(1) C'est de l'italien.
(2) C'est de l'espagnol.
vendredi 15 janvier 2010
In memoriam dBase III Plus

Il y a maintenant un peu plus de dix ans, au cours de l'année 1999, j'ai quitté le monde merveilleux (hum) de Microsoft au profit de Linux. J'ai assurément beaucoup plus gagné que perdu en faisant ce grand saut, mais je mentirais en prétendant que les logiciels libres ont toujours réussi dès le premier jour à prendre la place des produits commerciaux que j'utilisais alors -- plus ou moins légalement. Non seulement ils n'y sont pas parvenus dès le premier jour, mais ça leur a (ou plutôt, ça m'a) parfois demandé plusieurs années...
Au prix d'efforts assez considérables, j'ai trouvé des successeurs au petit langage de programmation Quick Basic avec lequel j'avais le sentiment de savoir faire à peu près tout. J'y suis parvenu, mais vraiment pas en un tournemain; et même, sur certains points, il me faut encore aujourd'hui trincailler pour obtenir en C, Java, Perl, Tcl/Tk, Python ou C++ (oui, j'ai réellement écrit des tas de bidouilles avec ces six langages) les effets que je n'avais aucun problème à réaliser avec ce bon vieux Quick Basic -- en particulier quand je cherche à obtenir un affichage graphique un peu lisible avec un peu de couleur.
J'ai aussi fini par trouver en GNU/emacs un successeur décent au traitement de texte complètement inconnu que j'utilisais sous MS-DOS, XyWrite III Plus. Ce dernier, presque totalement ignoré de toute la planète, était d'une souplesse et d'une rapidité inégalées par aucun de ses concurrents, et possédait cette merveilleuse vertu de tout enregistrer en Ascii étendu, c'est-à-dire l'un des formats les plus simples sinon les plus standard qui aient jamais existé (grâce à cela, je peux toujours lire mes textes rédigés il y a vingt ans, et pas grand-monde ne peut en dire autant). GNU/emacs, dont il est de bon ton de se gausser même parmi les linuxiens, me rend à peu près les mêmes services -- bien secondé qu'il est par une vingtaine de moulinettes écrites en C par mes blanches mains pour faire sauter certaines limitations.
Comment ça, des limitations? Nous parlons bien de GNU/emacs, la mère du logiciel libre, un programme si versatile que ses détracteurs affirment qu'il ne lui manque qu'un éditeur de texte décent pour se transformer en un système d'exploitation complet? Ben oui. GNU/emacs -- que j'aime -- est quand même d'abord fait pour écrire des fichiers informatiques constitués ligne par ligne, et il n'est donc pas exactement l'équivalent de mon bon vieux XyWrite III Plus qui, lui, savait afficher proprement paragraphe par paragraphe n'importe quel texte en cours de rédaction, sans lignes inégales, comme il convient pour le confort visuel du journaliste que je suis. Même pour moi qui aime beaucoup GNU/emacs, il s'agit d'une vraie faiblesse et je comprends tout à fait mes chers confrères journaleux qui trouvent qu'à ce compte-là ils préfèrent encore cette sombre daube de Word. Mais bon, globalement, j'ai quand même trouvé chez M. GNU un successeur acceptable à mon traitement de texte sous MS-DOS, et même assez rapidement.
Ce à quoi je n'ai pas trouvé d'équivalent avant ces derniers jours, c'est à l'empereur des logiciels piratés sous MS-DOS, j'ai nommé l'incontournable dBase III Plus. Oh, vous pouvez bien rigoler et prétendre que c'est une vieille daube. dBase III Plus représentait bel et bien, ne vous déplaise, un certain état de l'art dans la gestion des bases de données. Certes, il n'avait pas la puissance de mySQL, d'Oracle ou de PostgreSQL, mais il n'en avait pas non plus la lourdeur, et on n'avait pas à chaque instant avec lui le sentiment d'employer un marteau-pilon pour écraser une mouche. PostgreSQL ou Oracle, c'est certainement super-bien quand on est EDF ou la SNCF pour gérer des dizaines de millions d'enregistrements, je n'en disconviens pas. Mais pour les fichiers que le pékin moyen ou même la PME moyenne est réellement amené à manipuler dans la vraie vie, une telle usine à gaz est vraiment surdimensionnée, tandis que ce bon vieux dBase gérait avec une facilité déconcertante des bases de données relationnelles contenant quelques centaines, voire quelques milliers d'enregistrements -- ce qui, pour le lambda moyen et M. Tout-le-monde, est déjà très au-delà de ses aspirations les plus folles.
Eh ben, sous Linux, faut être honnête, un véritable équivalent à dBase III Plus, y avait pas. Oh, bien sûr, j'ai survécu sans grande difficulté, en renonçant aux systèmes de gestion de bases de données relationnelles (SGBDR de leur petit nom) au profit d'un tableur médiocre (OpenOffice.org Calc), c'est-à-dire qu'en fait de base de données je me contentais de bêtes tableaux alphabétiques avec des lignes et des colonnes. Ca convient à peu près à M. Pékin lambda, du moment qu'il est un peu méthodique et soigneux (et c'est mon cas). Mais si M. Pékin lambda est aussi programmeur (et c'est encore mon cas), il ne trouve pas vraiment son bonheur avec un outil aussi rudimentaire (et peu lisible: OpenOffice.org, c'est moche avec ses petites nicônes à la con, ses ascenseurs, ses palettes et toutes ces stupidités de marketing qui ne servent qu'à bouffer la moitié de l'écran).
J'entends le coeur des linuxiens me dire qu'OpenOffice.org a son propre langage de programmation, et même son propre SGBDR. Je sais. Je sais aussi que je n'ai jamais rencontré personne qui s'en servait. Par ailleurs, vous avez déjà dû le sentir, je déteste l'ergonomie d'OpenOffice.org et sa manie de chercher à ressembler à qui-vous-savez, alors que c'est précisément par exécration de qui-vous-savez que je suis venu sous Linux. Alors, me faire suer pour apprendre des méthodes inconnues de tous et de surcroît plagiées de celles du père Bill Gates (merde, je l'ai nommé)... comme dirait Edmond Rostand, non, merci!
L'air de rien, même quand on aime ça (et j'aime ça), se farcir la tête de docs informatiques, c'est fatigant. Aussi apprécié-je assez peu de devoir le faire pour maîtriser des outils qui ne me paraissent pas du tout standard, que personne n'utilise, pour l'emploi desquels personne ne sait me filer un coup de main, pour l'apprentissage desquels il est impossible de trouver un manuel de référence décent et pas caduc, et dont les spécifications changent tous les deux mois sous prétexte d'édifier la civilisation informatique. Moi, j'aime les bons vieux outils standard qu'on peut encore utiliser aujourd'hui avec des manuels écrits dans les années 1970: les éditeurs de fichiers Ascii; les compilateurs C; et donc, en matière de base de données, je veux du SQL ou rien.
Alors, mySQL, PostgreSQL, ou peut-être SQLite si ces deux bazars sont trop gourmands? Mmm. MySQL, ce n'est pas vraiment libre (et encore beaucoup moins depuis que c'est passé sous la coupe d'Oracle). PostgreSQL, disons-le clairement, c'est éléphantesque; d'ailleurs, son logo le revendique. Quant à SQLite, bien que ça me paraisse a priori très sympathique, le vieux fan de dBase III Plus que je suis trouve quand même qu'être forcé de bidouiller en C chaque fois qu'on veut faire une bête recherche même pas multi-critères, c'est lourdingue. J'entends encore le coeur des linuxiens qui me disent qu'il y a des librairies pour gérer SQLite (comme d'ailleurs mySQL et PostgreSQL) dans tous les langages de scripts un peu décents, genre Perl et Python. Je sais. Mais ça me gonfle de devoir me farcir, en plus de l'apprentissage de la syntaxe SQL, celui d'une librairie à peu près inconnue et dont, bien entendu, les spécifications changent toutes les deux heures vu que c'est du libre, work in progress et tout le toutim.
Bref. Je crois qu'avec Gadfly, j'ai trouvé mon bonheur (on sait tout faire après avoir lu trois pages de doc) -- mais je pense que je vous raconterai ça un autre jour parce que le temps passe, l'air de rien.
Inscription à :
Articles (Atom)

