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.

vendredi 5 février 2010

L'iPad, plus gros ordinateur miniature du monde


Crédit photo: Matt Buchanan.

Quel génie, ce Steve Jobs! Vise un peu la belle église! Enfin un ordinateur miniaturisé assez gros pour que les presbytes arrivent à lire ce qui est écrit dessus! Enfin un ordinateur sans clavier capable d'afficher un clavier ayant la taille d'un clavier et juste un tout petit poil moins ergonomique qu'un vrai clavier de messages SMS pour téléphones mobiles! Putain, c'est dingue! Et puis, ce qui est vraiment génial par rapport à l'iPhone dont cette tablette magique prend la succession, c'est que cette superbe babasse indispensable au snob moderne ne prend même pas la peine de prétendre qu'elle peut lui servir de téléphone! Quelle audace, quelle révolution! Plus rien ne sera jamais comme avant, comme à l'époque où les ordis servaient seulement à travailler alors que de toute évidence leur vraie fonction est de draguer les gonzesses (surtout celles qui aiment les beaux mâles à la barbe rase, comme Steve, et surtout au chéquier assez bien garni pour s'offrir ces dispendieux gadgets).

Evidemment que c'est la jalousie qui me fait tenir ces propos sarcastiques. N'empêche: fondamentalement, l'iPad n'est rien d'autre qu'un iPhone incapable de téléphoner et trois fois moins miniaturisé que son grand frère (grand frère qui, justement, se trouve être plus petit)... donc nettement moins cher à produire (en dehors de l'écran, pour lequel les économies d'échelle peuvent déjà être anticipées). Et la colossale finesse de Steve Jobs, c'est de vendre nettement plus cher une machine qui coûte nettement moins cher à produire. Dans le monde des geeks, on appelle ça un coup de génie... mais personnellement j'aurais plutôt tendance à trouver que c'est un exercice de foutage de gueule particulièrement réussi. Car immédiatement toute la planète est tombée amoureuse de l'iPad, veut un iPad pour Noël, veut partir au ski avec l'iPad, veut montrer à tout le monde les dessins des enfants sur l'écran de l'iPad. Rendez-vous compte: un ordinateur! couleur! avec un écran! rectangulaire! sans clavier! sauf si on veut lui en rajouter un! C'est vraiment du jamais vu. M'en mettrez quinze!

La chose a pourtant de réelles vertus. En premier lieu, elle ringardise superbement le pachydermique Windows 7 avec son interface tactile à deux balles: l'ergonomie de Seven est à celle de l'iPad un peu ce que le lyrisme de Paul Déroulède est à Dante Alighieri, ou la musique de l'Orphéon de La Garenne-Bezons à Franz Schubert. Pas la peine d'espérer que ça change: le beau Steve a déposé des brevets planétaires sur à peu près tous les gestes qu'on peut effectuer avec un, deux, trois voire quatre doigts. Je fais glisser le doigt vers le bas, le texte glisse vers le bas: brevet. Je tape un coup sur l'écran, ça simule un clic de souris: brevet. Je tape deux coups sur l'écran, ça simule un double-clic: brevet. Je secoue l'écran, ça l'efface façon ardoise magique: brevet. Tout est pris, breveté, verrouillé, sauf peut-être l'idée géniale de désigner un point sur l'écran en posant le doigt dessus: ça, c'est libre; et ça tombe bien, c'est tout ce que Windows 7 sait faire (et encore Microsoft n'a-t-il trouvé l'idée qu'en plagiant outrageusement la légendaire ergonomie des distributeurs de billets de la SNCF). Quant au mode de fonctionnement des cons d'ordinateurs à clavier, c'est plus que ringard, c'est carrément antédiluvien. Le clavier, c'est un truc de losers, une vieillerie, à peu près aussi attrayante pour le consommateur qu'une lampe à pétrole ou un phonographe à manivelle. Et je vous raconte pas comme je me sens couillon avec mon ordinateur à clavier (un MacBook, pourtant) et mon système d'exploitation avec une ligne de commande en guise d'interface homme-machine...

Passons. La seconde vertu du truc, c'est qu'on va trouver des livres électroniques vendus avec seulement 30 % de royalties pour Steve Jobs, contre... 70 % de racket sur les Kindle d'Amazon. Quand on vous disait que Steve Jobs était un idéaliste et que tous ceux qui le critiquent c'est rien que des jaloux.

lundi 1 février 2010

Informatiser les choux et les carottes


Je ne me trompais pas en pensant que l'informatisation de ma modeste collection de DVD serait plus formatrice que l'utilisation d'une base de données fictives, si complexe soit-elle. Avec des données réelles, même peu abondantes, on se rend tout de suite compte que non seulement les cas particuliers existent, mais que c'est justement leur gestion qui rend l'informatisation de la base de données intéressante.

En fait, personne n'a besoin d'informatiser une base de données peu abondante si elle est entièrement composée de données parfaitement standardisées. Si, par exemple, vous gérez le fichier d'une association d'une centaine de membres payant leur cotisation avec une régularité de métronome le 1er janvier de chaque année civile, toutes ces personnes étant dotées d'un patronyme, d'un prénom, d'un numéro de téléphone et d'une adresse uniques -- alors un simple cahier, ou dans le pire des cas une boîte à chaussures remplie de fiches en bristol, suffit largement à archiver toutes ces informations de façon propre, complète et facile à consulter. Vous pouvez aussi, bien entendu, stocker ça dans les lignes et les colonnes d'un tableur ou, si vous êtes vraiment masochiste, dans un fichier SQL: bien sûr que c'est possible, c'est même de la bibine.

Le problème, c'est que des données aussi parfaitement standardisées, ça n'existe pas. Dans la vraie vie, votre association comprend aussi des membres dont vous ignorez le nom mais dont vous devez quand même encaisser la cotisation parce que le gus vous a mis l'argent dans la main un soir où il vous a croisé dans un bar; des membres qui paient leur cotisation aux environs de la fin juin, ou qui en paient une partie en mars et le solde en septembre; des membres qui déménagent, ou qui vous laissent l'adresse de leur petite amie chez laquelle ils squattent quand ils passent dans votre ville; des bénévoles dont on a décidé de faire des membres d'honneur. Et ce sont justement ces cas foireux-là qu'il est le plus important d'informatiser: car le type qui vous a filé l'argent sans vous dire son nom se vexera si vous lui réclamez la cotisation qu'il a déjà payée, ainsi d'ailleurs que le bénévole qui paie largement de sa personne, mais exclusivement en nature; celui qui a payé en juin, selon les cas et l'humeur, vous prendra pour un rapiat, voire un voleur, si vous considérez qu'il a payé avec retard pour l'année en cours, ou vous considérera comme un branquignol si vous considérez au contraire qu'il a payé en avance pour l'année suivante; celui qui créchait chez bobonne vous signalera qu'il a changé de pied-à-terre en même temps que de bonne amie au moment le plus absurde -- un jour où il vous croisera dans le métro au bras de madame, par exemple, et je vous raconte pas la terrible scène de ménage si vous commettez l'erreur d'envoyer le rappel de cotisation chez son ex. Tandis que les membres bien standard qui paient recta le 1er janvier, portent un nom et un prénom bien chrétiens et ne déménagent jamais ne vous poseront jamais aucun problème, pas même si vous vous contentez de les gérer en notant leur nom sur un répertoire Clairefontaine à spirale et petits carreaux.

Voici donc la problématique à mon sens la plus intéressante dans les bases de données: il faut standardiser les données pour pouvoir les informatiser, mais dans bien des cas l'effort d'informatisation n'a d'intérêt que s'il vous facilite le travail avec les données non standardisées et, en fait, avec elles seules.

Dans le cas de ma petite collection de DVD, l'informatisation n'a à peu près aucun intérêt s'agissant des films d'anthologie. Par exemple, je n'ai aucun besoin d'écrire une requête SQL pour savoir que le Docteur Jivago a pour réalisateur David Lean et pour distribution Omar Sharif et Julie Christie: j'ai ça en tête, à supposer que je l'aie oublié je peux trouver ça dans Wikipédia ou dans n'importe quel dictionnaire du cinéma. Ce que je ne suis pas capable de dire de tête, en revanche, c'est ce qui concerne les acteurs de second plan ou les réalisateurs n'ayant que rarement rencontré le succès. Je donnerais cher pour avoir la liste complète des films où jouent John Turturro, Albert Finney ou Donald Sutherland, ce genre d'acteurs qui ne sont qu'occasionnellement crédités sur la jaquette du DVD, mais qui crèvent l'écran chaque fois qu'on leur accorde trois minutes dans un rôle de quatrième plan.

Du côté des réalisateurs, il y a le modèle standard qui fait une belle carrière en sortant un film à succès tous les dix-huit mois, genre Howard Hawks; aucun intérêt de l'informatiser: n'importe quel dico du cinéma vous reconstituera l'intégralité de sa carrière en deux coups de cuiller à pot. Beaucoup plus intéressant est le cas d'ailleurs pas si rare de l'acteur qui s'est mis à la réalisation à un certain stade de sa carrière, façon Sydney Pollack, ou qui a passé son temps à travailler simultanément des deux côtés de la caméra, façon Woody Allen.

Que faire de tels personnages? Les considérer comme des acteurs et oublier qu'ils ont parfois été réalisateurs -- ou le contraire? Les noter en deux endroits, au risque de se contredire ou d'être incomplet? Ou carrément mélanger les choux et les carottes dans une base de données d'"hommes de cinéma" où l'on pourrait occasionnellement ajouter des scénaristes et des dialoguistes?