La réunion a eu lieu alors que la grève du 13 mai n'était pas encore
terminée. De nombreux habitués ont donc été dans l'incapacité de venir,
faute de transport. D'autres ont fait le trajet à pied, en partie ou
en totalité : moi depuis la gare Saint-Lazare, Stéphane depuis
chez lui à Arcueil, qui d'autre encore ? Ont donc réussi à être
présents à la réunion :
Eric (C),
D@vid,
Guillaume,
Philippe (BooK),
Stéphane,
Briac,
David (L),
Pascal, déjà venu au mois de décembre,
Julien, assistant à sa première réunion
et moi
Nous avons mangé des cheeseburgers,
blue pour les uns et quelconques pour les autres, des spaghetti carbonara,
des tartiflettes, une « pièce du boucher »,
des salades, des dames blanches, une coupe colonel et un chocolat liégeois.
Nous étions au rez-de-chaussée, le sous-sol étant réservé à
une soirée karaoké.
Pendant un certain temps, j'ai cru que la section Perl
ne comporterait que des sujets connexes à Perl, mais en fin
de soirée, David a gribouillé du code Perl sur sa nappe en papier
et je l'ai prise en partant. Nous avons également parlé
d'Internet,
d'informatique
et de sujets divers.
De plus, pour je ne sais quelles raisons, les digressions ont un volume
plus élevé que d'habitude, c'est pourquoi je les ai rassemblées
dans une section à part.
Il y a à présent 170 inscrits sur le site
d'enregistrement
pour YAPC::EU-2003.
Le nombre réel doit être plutôt de l'ordre
de 150, en raison de quelques doublons et de quelques inscriptions
douteuses. La demi-douzaine de Ghanéens et les quelques Nigérians
sont-ils de sincères adeptes de Perl ou bien s'agit-il d'un avatar
de l'escroquerie « 419 » ? Je pense qu'il y a
quand même quelques inscriptions légitimes, lorsque l'on constate
que le code login de la personne considérée se base sur son prénom
et son patronyme par une transformation simple. Quelqu'un d'autre
suppose qu'il pourrait s'agir d'étudiants de nationalité ghanéenne
qui résident en France pour la durée de leurs études.
Juste avant l'arrivée de BooK, Eric faisait la réflexion
que le paiement en ligne n'était toujours pas installé sur le
site de YAPC mais que Philippe lui avait dit que ce n'était pas
pressé. Il prévoyait cependant que Philippe ne tarderait pas
à demander quand le paiement en ligne serait prêt. BooK est arrivé
quelques minutes plus tard et, après les bonjours d'usage, le premier
sujet qu'il a abordé était le paiement en ligne. Remarque d'Eric :
« On pourra dire tout ce qu'on voudra de toi, sauf que tu
es imprévisible. » Philippe a remarqué que personne jusqu'à maintenant
ne s'était plaint de l'absence de procédure de paiement. Comme un fait
exprès, 17 heures après cette réflexion, la liste
recevait le message d'un futur participant demandant comment il devait
faire pour payer.
Un certain Mindaugas Genutis, lituanien, a signalé son intérêt
pour assister à la conférence mais il a des problèmes financiers.
Stéphane pense qu'il s'agit de la même personne que le lituanien
que BooK, Kai et lui avaient rencontré lors du pub crawl
de YAPC::2000. Il leur avait raconté les conditions dans lesquelles
il avait suivi ses études. Notamment, la nuit, la chambre
était occupée par quatre humains... et quelques rats.
Une personnalité dont nous n'avions pas parlé depuis longtemps
est revenue dans nos discussions :
Randal Schwartz.
Même s'il est compétent techniquement, il manque de finesse
quand il s'agit de relations humaines. Ainsi, chaque fois
que quelqu'un pose une question sur mySQL, sur
Perl Monks
ou tout autre site que Randal féquente, celui-ci
répond avec la même rengaine, « mySQL est pour les lusers
et les newbies ; adopte plutôt un vrai SGBD,
PostgreSQL. »
Ou bien, comme c'est arrivé à
David,
chaque fois que quelqu'un utilise le nom « Postgres »,
Randal intervient
en fulminant pour signaler que le nom correct est « PostgreSQL ».
Même dans ses aspects positifs, Randal manque de finesse. Eric a
déjà évoqué
les soirées que Randal organise à chaque
conférence OSCON,
allant parfois jusqu'à louer une boîte de nuit entière
pour la soirée avec whisky à gogo et tout et tout. Cela dit,
inévitablement, Randal évoque cette soirée dans la semaine qui
suit et donne à cette occasion le montant de la facture.
D@vid évoque une autre personnalité que nous avons vue
à Asmterdam :
Brian Ingerson.
Que devient-il ? Existe-t-il
toujours ? Eric répond que Brian a créé un module
only
qui permet de faire cohabiter plusieurs versions différentes
d'un même module et de choisir telle ou telle version.
L'utilité principale, évoquée d'ailleurs dans
l'article de perl.com,
est d'installer à la fois la dernière version de
GD.pm
qui crée des .png
et la version 1.18,
celle qui permet de créer des
.gif.
Eric fait également de la publicité pour le projet
DateTime
dont il utilise (et
débugue)
les modules.
La liste
datetime@perl.org
fonctionnait à petite vitesse : 386 messages entre
la création en mai 2001 et la date historique du 9 janvier 2003.
Ce jour-là,
Dave Rolsky
a posté un
message
qui a déclenché un raz-de-marée de réactions : avec 320 messages dans
la première semaine.
À la date de la réunion, nous en sommes à
2 450 messages
et ce n'est pas fini. [ Digression ]
Même s'il n'est pas une personnalité phare du monde Perl, Dave Rolsky
n'est pas un inconnu. Outre le projet DateTime, il a écrit
quelques modules intéressants :
Eric nous signale
qu'O'Reilly
va bientôt sortir un
livre intéressant pour ceux qui utilisent mod_perl.
Il nous évoque les tics de
langage de Stas qu'il a fallu rectifier dans le livre. Stas fait des
phrases trop longues, il emploie but un peu trop souvent,
il écrit of course quand quelque chose lui semble évident,
alors que ce n'est pas forcément le cas pour le lecteur, y compris
pour Eric, son co-auteur.
L'un des problèmes pour écrire ce livre, ou tout livre technique,
d'ailleurs, est l'introduction d'un nouveau concept qui dépend
d'autres concepts introduits dans les chapitres ultérieurs. Également,
le nom attribué à ces concepts peut poser problème. Eric et Stas
s'étaient mis d'accord pour appeler server process,
abrégé en server, chaque instance d'Apache qui
s'exécute sur une machine. Lorsqu'ils ont eu les épreuves avec
dessin, ils ont constaté que l'illustrateur n'avait pas compris cela
et qu'il avait représenté un server par le dessin
d'une machine.
À noter que lorsque Philippe a traduit
Amélia
et que je l'ai corrigé,
nous n'avons pas eu les épreuves. J'ai eu droit à des chapitres déjà
mis en page pour la partie de Gérald, qui travaillait en LATEX,
tandis que pour la partie de Philippe et de Kai, j'ai dû travailler sur
le source (« le source XML » dit Philippe. « Non, le source
SGML » lui a-t-on répondu. « Le source DocBook » a-t-il alors
rétorqué pour avoir le dernier mot). Du coup, certaines illustrations
débloquent comme par exemple l'explication graphique de la capture
de sous-chaînes lorsqu'une expression rationnelle comporte des parenthèses
imbriquées.
David évoque un bug très fugace. Il l'a constaté en 5.6.1 sur
Solaris mais n'a pas réussi à le reproduire sur une autre architecture.
Il contruit une expression régulière dans une boucle :
foreachmy$x(...){my$re = "$x[";$re .= ...
}
ce qui lui donne une erreur de syntaxe, l'interpréteur estimant qu'il
souhaitait interpoler un élément de tableau dans la chaîne. Ce bug
se produit uniquement sur Solaris et si l'interpolation dans la chaîne
a lieu à l'intérieur d'une boucle. Dans les autres
architectures, l'interpréteur comprenait qu'il s'agissait d'un scalaire
et d'un caractère constant [.
La fonction
do BLOCK
permet de changer
une instruction ou une séquence d'instructions en expression.
Par exemple, David avait besoin d'initialiser un hash de diverses façons
en fonction d'un paramètre. Pour certaines valeurs de ce paramètre, il
devait même faire planter le programme. Pour ce faire, il a utilisé
un bout de code dans le style :
Comment trier un tableau lorsque l'on ne connaît pas les
critères de tri, ou bien lorsque ces critères sont choisis
dynamiquement à l'exécution ? David commence
par ce morceau de code :
Si David a attribué un prototype à foo, c'est parce
qu'Eric lui a fait remarquer que foo récupère ses
arguments dans @_, donc, pour fonctionner dans un
tri, la fonction doit avoir un prototype ($$).
Un peu plus tard, il donne un autre exemple de code, beaucoup plus
simple :
Une plaie qui a pris de l'ampleur avec Internet, c'est le spam.
Il y a bien longtemps, David avait acheté un nom de domaine correspondant
à son patronyme, landgren.net. Pendant plusieurs années, ce
domaine est resté inactif. Il y a quelque temps, David a voulu réactiver
ce domaine et il a créé des enregistrements A et MX
pour ce domaine, aux bons soins d'Eric. Une heure après, il commençait
à recevoir du spam à l'adresse postmaster.
Le spam est l'avatar Internet du junk mail. Il y
a toutefois quelques différences notables. Le plus évident est
le coût, l'envoi d'un message papier coûtant beaucoup plus cher
que son équivalent électronique.
Le taux de réponses diffère également. Pour
la version papier il est, selon D@vid, de 5 à 10 pour mille.
Pour la version électronique, Eric cite le cas d'un spammeur
qui avait reçu 3 réponses pour 50 000 adresses et
qui était content du résultat. Ensuite, les fichiers d'adresses.
Les adresses de spam sont récoltées sur le web, sur Usenet
et sur d'autres endroits d'Internet sans discrimination. Pour
le junk mail, La Poste propose plusieurs fichiers
différents en précisant pour chacun quelle est la catégorie
socio-professionnelle dominante : tel fichier donnera les
adresses de ménagères de moins de cinquante ans, tel fichier donnera
les adresses de jeunes cadres dynamiques, etc.
David gère les règles anti-spam pour le domaine
mongueurs.net. Les plus touchés sont les deux autres
David ainsi que Jérôme Quelin. David ne veut pas installer
de règle portant sur le contenu du message. Il considère qu'il n'a
pas à censurer une conversation concernant le penis enlargement.
Surtout, signalé-je, que de plus en plus les messages de spam
parlent plutôt de
p e n i s
e n l a r g e m e n t
ou de p.e.n.i.s e.n.l.a.r.g.e.m.e.n.t.
Nous avons évoqué également
l'affaire
de ce spammeur notoire qui avait
donné une
interview
dans un journal et qui avait dit dans le courant
de la conversation qu'il ne donnait pas l'adresse de sa maison de
740 000 dollars.
Cet article avait été évoqué dans
Slashdot.
Dans les commentaires des lecteurs de Slashdot, l'un d'eux avait indiqué
l'adresse en question
qu'il avait trouvée par d'autres moyens. Du coup,
de nombreux lecteurs de Slashdot avaient souscrit à des demandes de catalogues
gratuits et autres formes de junk mail, en donnant l'adresse de
cet individu. Il s'était retrouvé avec un camion entier de papier chaque matin,
sachant que dans la cargaison, il pouvait y avoir par ci par là du courrier
légitime (factures, chèques, etc).
À un autre niveau, il serait possible d'installer du filtrage au niveau
des routeurs. Un routeur permet de faire communiquer deux sous-réseaux
que nous appellerons « à gauche » et « à droite ».
Il serait facile à un routeur de vérifier qu'un paquet IP arrivant
par la patte de gauche a bien une adresse correspondant au sous-réseau
de gauche. Mais les opérateurs refusent de le faire, car s'ils mettent le
doigt dans l'engrenage, ils se retrouveront happés jusqu'à l'épaule et seront obligés
de rajouter couche après couche de logiciels de contrôle, voire de surveillance.
Au sujet de la connectivité Internet pendant YAPC, D@vid a reçu une
proposition de
Nerim
pour une installation à 512K. Il nous demande si c'est
suffisant. Si les participants se contentent de consultation web et
de courrier électronique, oui c'est suffisant. S'ils téléchargent
des gros fichiers, ça risque de saturer. Il existe toutefois un logiciel
qui permet de limiter les comportements qui posent problème. Ce logiciel
permet de récupérer les images et les vidéos qui transitent sur le réseau de façon
à pouvoir les afficher, par exemple, sur un écran public.
Un autre comportement à problème, mais sans influence négative sur les
débits : l'utilisation de SMTP pour le mail. De temps en temps, lors
d'une conférence, les hauts-parleurs diffusent des messages du genre :
« Si votre mot de passe est "oiseau", "trompette" ou "juliette", sachez
qu'il est passé en clair sur le réseau. »
Eric a vu une fois un cas de figure où un réseau a saturé à cause
du web. C'était à l'époque de
Roland Garros.
Sur la page web
du site officiel, une applet Java permettait de raffraîchir la page
toutes les trois secondes et d'avoir ainsi les résultats les plus
récents. Lorsque cinquante ou cent personnes sont connectées à cette
page web avec cette applet, le réseau a vite fait de saturer.
Nous utilisons tous
Google
et nous apprécions tous
Google .
Mais n'y a-t-il pas un revers à cette médaille ? David a lu
deux sites web
qui donnent un
autre son de cloche .
Google est le premier site web à avoir utilisé des cookies
« éternels » (c'est-à-dire valides jusqu'au bug de l'an 2038).
Cela leur permet de savoir quels mots-clés vous leur soumettez et quels
URL vous choisissez, le tout étant vraisemblablement stocké dans une
base de données. Stéphane pense que Google travaille pour le gouvernement
américain dans le but d'identifier et de pister les pédophiles. Mais quand
on lit les sites donnés par David et que l'on apprend quelle
« agence américaine en trois lettres » se dissimule derrière cela,
on peut se demander si c'est le seul but recherché.
Stéphane nous reparle du livre
« l'Effroyable Imposture »
qui défend
la thèse du missile lors de l'attentat contre le Pentagone le 11 septembre
2001. Cette fois-ci il ne cherche pas à nous convaincre, il se contente de
nous raconter les démélés entre le site web du livre et Google. Les auteurs
du site web se sont plaints que Google les avait black-listés.
Google a dénié toute action dans ce sens.
Après recherche,
on a constaté
que le site web comportait un fichier robots.txt. En fait, les
auteurs du site web se sont black-listés eux-même et Google
a fait son travail consciencieusement.
Briac a écrit une CSS
(cascading stylesheet) pour le site web
de YAPC::EU-2003. Dans cette CSS, il a spécifié différemment les média
screen et printer. De la sorte, à l'écran on obtient les bannières,
les boutons de navigation et tout le toutim, tandis que sur l'imprimante
il ne reste que le texte. Il existe d'autres média : TV et
tty par exemple. Pas besoin de prévoir un bouton print
comme c'est le cas pour http://www.perl.com/
J'ai loupé la quasi-totalité d'une intervention de Guillaume.
Compte tenu de ses éclaircissements ultérieurs, en voici la teneur.
Guillaume a remarqué un site web qui utilise JavaScript de manière
intensive, y compris pour des tâches simples comme la navigation.
Il a reproché au webmestre de ne pas avoir utilisé des balises
<a href="..."> et d'avoir utilisé JavaScript
pour faire du tape-à-l'oeil. Le webmestre lui a répondu
qu'il n'est pas du tout partisan du tape-à-l'oeil mais
qu'il a utilisé JavaScript pour apporter une amélioration réelle
de l'ergonomie par rapport aux balises HTML habituelles.
Guillaume regrette toutefois que cette amélioration de l'ergonomie
ne profitera pas aux moteurs de recherche ni aux aveugles, au contraire.
Il existe des prises RJ-45 dans lesquelles est installé
un serveur web. Le but est de pouvoir tester une carte réseau en branchant
simplement la prise. La discussion dérive alors sur les appareils électro-ménagers
reliés à Internet, ainsi que sur les
iLoo,
des W.C. connectés sur le web
(non, pas avec une webcam).
L'idée d'avoir un réfrigérateur qui envoie un courrier électronique au supermarché
rappelle à David un
témoignage
que lui et moi avons lu sur le
forum des risques technologiques.
L'auteur voulait réaliser un bricolage qui impliquait le perçage de nombreux trous.
Compte tenu de diverses circonstances, notamment la dureté
des matériaux traités, il avait besoin de mêches très spécifiques
et ces mêches ne pouvaient servir que pour quelques trous.
Pendant plusieurs week-ends d'affilée, l'auteur est allé au Bricorama du coin
(enfin, son équivalent local) et a acheté la totalité du stock, c'est-à-dire
trois jeux de mêches par semaine. Une fois son bricolage terminé, il a cessé
ses achats hebdomadaires, bien entendu. Un peu plus tard, pour une tout autre raison, il est
retourné dans le magasin de bricolage et il a constaté que le rayon de mêches
débordait de sachets. Le programme de gestion de stocks avait apparamment constaté que
les sachets de mêches de perceuse étaient devenus des gadgets à la mode
et il avait réapprovisionné en conséquence. Aucun humain n'avait vérifié le
bien-fondé de ce réapprovisionnement.
Safari
remporte un certain succès parmi les participants à la réunion.
Cela permet de pouvoir évaluer un livre avant d'acheter la version
papier. Cela permet de consulter le
Cookbook
chez soi quand on a laissé son unique exemplaire au travail. Quand je
tente de dire que les livres sur papier permettent de lire dans le
métro, on me répond qu'avec le Wifi, on pourra très
bientôt lire aussi des livres Safari dans le métro.
Cela dit, selon les
termes d'utilisation
de Safari, il est interdit de
conserver un livre sur son disque dur en local. Comment le webmaster
chez O'Reilly peut-il deviner que quelqu'un est en train de télécharger un livre
au lieu simplement de le lire ? Si l'abonné charge les pages avec un intervalle
constant, c'est qu'il le fait par l'intermédiaire d'un programme ; s'il était réellement
en train de lire le livre, il passerait plus ou moins de temps à lire chaque page
en fonction de la présence de schémas et de code, en fonction du niveau de difficulté
des concepts traités dans cette page et en fonction de sa fatigue. Un autre comportement
suspect consiste à charger le livre séquentiellement de la première page à la dernière.
J'en conclus que lorsque je lis un livre papier, j'ai un comportement suspect
car je le lis depuis la première page jusqu'à la dernière, c'est-à-dire
depuis la page qui donne l'historique de publication
et le classement par mots-clés (dans une revue, cela s'appelle l'« ourson » ;
y a-t-il un terme spécial pour les livres ?) jusqu'à la dernière page de l'index.
Philippe a fait une bêtise sur artemis, la
machine qui héberge www.bruhat.net.
En voulant factoriser des définitions de variables dans
son installation locale de CPAN.pm, il a utilisé dans le script
de configuration (qui est une script Perl) le code suivant
(remarquez bien les simples quotes) :
Il s'est donc retrouvé avec un
sous-répertoire /home/book/$HOME. Pour corriger, il a alors
tapé rm -rf $HOME/*, cette fois-ci sans quotes.
L'action suivante a été de téléphoner à Eric pour savoir s'il avait fait
des sauvegardes récentes. Quand je demande si Eric utilise /dev/null
pour ses sauvegardes, en signalant que les temps de réponse sont très bons,
Guillaume répond qu'il a déjà entendu parler de cette astuce dans
Bastard Operator From Hell.
Dans le même ordre d'idée, il a été question des
Unix Haters.
Ce texte est intéressant pour ceux qui
utilisent et apprécient Unix car il donne un éclairage différent
sur cet OS. Pourquoi l'expansion des expressions globales est-elle
faite par le shell plutôt que par l'utilitaire rm
ou autre ? Du coup, que se passe-t-il lorsque le répertoire courant
contient un fichier qui porte le nom farfelu -rf ?
Je me souviens avoir déjà vu un nom de fichier commençant par un tiret,
mais heureusement pas une option valide de rm.
Guillaume prend l'exemple des programmes MS-DOS. Si l'on veut
prévoir le support des expressions globales dans un programme MS-DOS,
il faut tout faire soi-même. BooK lui répond que si le système était bien conçu, il
pourrait suffire de linker le programme avec une bibliothèque standard.
Certains participants à la réunion ont eu l'occasion de travailler avec
d'autres systèmes qu'Unix ou Windows. Ceux qui ont travaillé avec VMS trouvent
la syntaxe de
DCL
nettement inférieure à celle des shells Unix. Quant à ceux
qui ont travaillé sous MVS, ils osent à peine évoquer l'horreur du
JCL.
Il est possible d'accéder à certaines imprimantes par telnet. C'est le
cas pour les imprimantes HP, lorsque l'on doit les configurer. C'est le
cas d'un autre type d'imprimante dont le nom n'a pas été
donné lors de la réunion mais avec la particularité suivante :
il est possible également d'effectuer un telnet sortant depuis cette imprimante.
Comme aucune procédure de sécurité (login, audit des connexions) n'existe
sur l'imprimante, c'est le relais rêvé pour des actions néfastes.
Quelqu'un a ressorti une citation que j'avais rencontrée dans la préface
du livre de la panthère
Programmer avec la Xlib, c'est comme extraire une racine carrée
avec des chiffres romains.
À l'époque où l'intelligence artificielle était encore en vogue,
David a lu un texte expliquant que les efforts dans ce domaine étaient
voués à l'échec (il n'a hélas pas conservé les références de ce texte,
à l'époque il n'avait pas l'habitude d'alimenter systématiquement
son fichier bookmarks). L'article se basait sur l'exemple
d'une histoire rédigée de telle façon qu'il fallait la lire
jusqu'au bout pour la comprendre, car le dernier mot donnait le contexte
de l'histoire.
[ Digression ]
Dans le même ordre d'idée, il évoque les problèmes de
traduction automatique.
Loin des exemples hyper-connus et vraisemblablement apocryphes :
Out of sight, out of mind.
L'esprit est fort mais la chair est faible.
David nous donne une phrase dans laquelle il est difficile à un programme
informatique de déterminer où est le verbe :
Pour ne pas être pris au dépourvu par le bug de l'an 2038,
des développeurs ont créé la bibliothèque
libtai64
qui stocke le nombre de secondes dans un entier à 64 bits, ce qui
permet de repousser les problèmes de quelques milliards d'années.
Cette bibliothèque
prévoit des variantes avec plus de précision, à l'échelle de
la nanoseconde (10-9 s) ou de l'attoseconde
(10-15 s), pour ceux qui veulent coller un
timestamp à un proton ou à un électron.
[ Digression ]
Mis à part
Fanfan la Tulipe
que Stéphane venait de voir, nous
n'avons pas parlé, ou si peu, des films à l'affiche. Nous avons toutefois
évoqué un film sur le point de sortir : Experience.
Il semblerait que ce film soit basé sur une
expérience
menée il y a quelques
années, dans laquelle trente étudiants devaient simuler les occupants d'une
prison, quinze d'entre eux étant des prisonniers et les quinze autres des
gardiens. L'expérience devait durer plusieurs semaines mais elle avait mal
tourné et il avait fallu l'écourter.
David nous évoque ses déboires gastronomiques lorsqu'il est
allé aux États-Unis avec sa femme. Un jour, ils ont acheté du
chocolat. Ils ont mangé chacun un carré et ils ont tout de suite
été dégoûtés de cette impression de matière crayeuse qui n'a rien à voir
avec ce que produisent les chocolatiers français, suisses et belges. Quelques jours
plus tard, David a essayé de manger encore un carré mais là encore il
a dû renoncer. La tablette est donc allé à la poubelle à peine entamée.
Et c'est, semble-t-il, ce que les bureaucrates de Bruxelles veulent appeler
chocolat. Guillaume suppose que si quelqu'un, dès sa plus tendre enfance,
a bu chaque matin un bol de graisses végétales, cette personne n'a aucun
problème à avaler la matière qui a tellement déplu à David et à sa femme.
[ Digression ]
David a également été surpris par le fait que dans les supermarchés,
au rayon farine, il est impossible de trouver de la farine. On trouve
le « mix pizza », le « mix tarte » ou le
« mix crèpes », mais de la vraie farine, non. De même, on trouve
des chips arôme barbecue, des chips arôme ceci et des chips arôme cela,
mais jamais des chips arôme chips.
Guillaume justifie la renommée de la cuisine française par le fait
qu'elle a une large gamme de saveurs différentes. BooK prend l'exemple de
la cuisine italienne. Lorsqu'il est allé avec sa femme en Italie, ils
ont mangé des plats différents tous les jours, sans jamais manger de pâtes.
La cuisine italienne mérite une réputation du même niveau que la cuisine
française, mais apparamment, ce n'est pas le cas, pour le commun des
mortels cela se résume à des pizzas et des pâtes.
[ Digression ]
Stéphane écoute une
radio américaine
via Internet. Il a récemment entendu
un tongue twister écrit par le Dr. Seuss. Pour mieux
l'apprécier, on peut obtenir à la fois
les paroles
et le MP3
sur Internet. Pour ceux qui aiment, on trouve d'autres exemples
sur Internet, dont une
parodie de Star Trek
et un texte informatique.
[ Ou bien, pour les francophones, vous pouvez essayer avec
certaineschansonsdeBobbyLapointe. ]
Il a été question des systèmes pyramidaux, où l'on reçoit un message
comportant une liste d'adresses et
demandant :
d'envoyer une modique somme à la première adresse de la liste,
de modifier le message en supprimant la première adresse, en faisant
glisser les autres et en inscrivant sa propre adresse en queue,
d'envoyer le message résultant à n destinataires.
Si la liste comporte p adresses, on peut théoriquement
multiplier sa mise par np. Par exemple, pour
n = 10 et p = 3, on pourrait récupérer 1000 fois
la somme investie. Le texte du message admet que, dans la pratique,
ce facteur est légèrement inférieur car il y aura toujours quelques
personnes qui laisseront tomber, mais il prétend que néanmoins le
gain est assuré. Stéphane regarde le problème sous un autre angle
et examine la quantité totale de richesses disponible dans ce système.
Le système ne consomme rien, mais il n'apporte rien non plus, il occasionne
seulement des transferts d'un participant à l'autre. La quantité totale
de richesses impliquée ne varie donc pas. Si certaines personnes gagnent,
il y en a nécessairement d'autres qui perdent. Le facteur multiplicatif
sera légèrement inférieur à np pour certains, mais
il sera zéro pour de nombreuses autres personnes, ce qui donne une moyenne
de 1. [ Voir en annexe mon témoignage. ]
David raconte avoir trouvé sur Internet
l'historique complet
des tirages du Loto depuis la création. En plus des données brutes,
la Française des Jeux
nous donne des statistiques tordues.
La discussion enchaîne sur l'intérêt que les gens portent à
ce genre de jeux. Sans doute est-ce pour combler le vide de leur
existence : sorti de leur boulot, les gens ont bien des
passe-temps mais cela ne les occupe pas tant que cela. Les jeux
de hasard permettent de combler un manque, les gens attendent le
miracle qui changera leur quotidien. Stéphane est vigoureusement
en désaccord avec ce point de vue. Non, la vie des gens n'est
pas terne et vide. En effet, il y a le foot-ball ! Il nous
énonce cet argument avec une vigueur que je lui ai rarement vu
adopter, même lorsqu'il était question de
Perl-QT,
on sent que cela lui tient vraiment à coeur :-).
Le Loto est un jeu de hasard, il est donc impossible d'influer
sur la probabilité de gain. En revanche, il est possible de maximiser
ses gains. Parmi les 13 millions de combinaisons possibles, il
faut s'arranger pour prendre une combinaison que l'on sera vraisemblablement
le seul à jouer. Une façon de faire est de choisir les nombres
dans l'intervalle 32--49 pour ne se faire marcher sur les pieds
par ceux qui jouent des dates de naissance. Une autre façon
consiste à jouer une combinaison qui reprend 5 numéros du
tirage précédent. Les 258 combinaisons de ce style ont chacune
autant de chances de sortir que chacune des 13 millions d'autres
mais les gens pensent que lorsqu'un numéro est sorti à un tirage,
il laisse la place aux autres lors des tirages suivants. Certains
invoquent la « loi des grands nombres » pour justifier
à tort cela. Voir en annexe la discussion.
Compte tenu de la longueur, j'ai préféré mettre mes digressions en
annexe plutôt que dans le fil du compte-rendu.
Je n'ai pas réagi à temps à l'intervention d'Eric. J'aurais pu dire que moi aussi
je participe
au projet DateTime.
Si l'on délaisse les chiffres romains et que l'on se contente de
la numération positionnelle avec des chiffres indo-arabes, je signale
que je sais calculer des racines carrées avec l'algorithme de la
potence. Configuration minimale : un papier et un
crayon. Configuration évoluée : un interpréteur Perl et un
programme que j'ai écrit il y a un peu plus d'un an. Vous pouvez
choisir le résultat en texte simple, en HTML ou par une animation
curses.
En rajoutant un tout petit peu de code, vous pouvez en faire un programme CGI.
En rajoutant pas mal de code, vous pouvez obtenir le résultat en
Perl/Tk, en Gtk ou en Qt.
Le procédé consistant à écrire un texte ambigu puis
à lever l'ambiguïté dans les tout derniers mots est un
procédé fréquent dans les textes humoristiques.
Pendant les années 70, sur France Inter, il y avait une émission
l'après-midi au cours de laquelle, entre autres, le présentateur racontait une
histoire courte, environ cinq minutes. L'une d'elles fait penser à l'histoire évoquée
par David. Je ne suis pas en mesure de vous
la raconter en détail, mais voici en gros ce qu'elle racontait.
Le narrateur commençait ainsi :
Cela fait trois ans que je vis dans l'appartement de ma maîtresse,
rue XXX, à Paris. Non, n'allez pas en conclure que je suis ce
genre d'individu méprisable auquel vous pensez...
Le narrateur raconte ensuite sa vie avec sa maîtresse :
l'attente quand elle part travailler et qu'il reste à l'appartement,
les promenades en voiture le week-end, etc. Il évoque même, sans
s'appesantir, les caresses dont elle le gratifie. Ensuite, il
raconte que de temps en temps, elle rencontre un homme qui lui
plaît. La vie du narrateur prend alors un tour désagréable :
il est mis à la porte de la chambre et il est obligé de dormir
sur le canapé du salon. De même, lors des promenades en voiture,
il est relégué sur la banquette arrière. Mais invariablement,
au bout de quelques semaines...
je la vois arriver en pleurs. Elle se précipite sur moi,
me prends dans ses bras et me dis : « Jamais
il ne m'y reprendra. Il n'y a que toi qui m'aimes, je
m'en rend compte maintenant. » Tout en remuant
la queue, je me mets à lui lêcher le visage et à
aboyer de bonheur.
Remarque : même avec 64 bits, il risque d'y avoir des
problèmes d'ici quelques milliards d'années. Mais la
solution
existe. Il ne reste plus qu'à l'implémenter.
Voici, en version originale, comment Terry Pratchett
décrit le chocolat dans
Thief of Time :
Ankh-Morpork people, said the Guild, were hearty,
no-nonsense folk who did not want chocolate that was stuffed
with cocoa liquor, and were certainly not like effete la-di-dah
foreigners who wanted cream in everything. In fact they actually
preferred chocolate made mostly from milk, sugar, suet,
hooves, lips, miscellaneous squeezings, rat droppings, plaster, flies,
tallow, bits of tree, hair, lint, spiders and powdered cocoa husks.
This meant that according to the food standards of the great chocolate
centres in Borogravia and Quirm, Ankh-Morpork chocolate was formally
classed as 'cheese' and only escaped, through being the wrong colour,
being defined as 'tile grout'.
... et estimez-vous heureux que je n'ai jamais cité les passages où
Terry Pratchett évoque la bière.
Peut-être est-il arrivé à la cuisine française ce qui est
arrivé à Charles Lindbergh.
En effet, voisi une citation que j'ai lue dans
Tumult in the Clouds de
James Goodson.
L'auteur a rencontré un jour un dénommé Harry Bruno, consultant
en relations publiques. Voici un extrait du dialogue, traduit
par mes soins :
HB : -- Selon vous, qui est le premier homme à avoir traversé
l'Atlantique en vol ?
JG : -- Charles Lindbergh.
HB : -- C'est ce que presque tout le monde dit. Lindy est à peu
près le vingt-sixième homme à avoir traversé l'Atlantique par
avion. La différence, c'est que je me suis occupé de ses relations
publiques.
Dans les années 60, j'ai été confronté à un système pyramidal qui,
heureusement, n'était pas destiné à amasser de l'argent mais
simplement des cartes postales. Les valeurs de n et de
p étaient toutes les deux 5. Pour faciliter la
compréhension, je remplace les prénoms de mes cousins par ceux des
membres de Paris.PM. Ainsi donc, David reçoit une lettre-chaîne. Il
l'expédie à 5 personnes qu'il connaît : BooK, Stéphane,
Eric, Guillaume et moi. Aussitôt, Book expédie la génération
x+1 à 5 personnes qu'il connaît, en évitant
David. Il envoie donc ses lettres à D@vid, Sylvain, Sniper, Guillaume
et moi. De même, Stéphane envoie ses 5 exemplaires à Briac,
Pascal, Julien, Kai et Sylvain. Inutile de continuer plus longtemps, vous
avez compris que l'hypothèse de la structure arborescente et de la
croissance géométrique est très éloignée de la réalité. On n'obtient
pas un arbre, mais un graphe acyclique direct. Résultat : j'ai
envoyé mes cinq lettres et ma carte postale (au lieu de
10 lettres et de 2 cartes comme j'aurais été sensé
le faire), je n'ai rien reçu. Deux
ans plus tard, mon frère a eu beaucoup plus de chances, il a reçu
3 cartes postales sur les 3 125 espérées.
Explication de ma méthode pour jouer au Loto. Cette méthode
ne fonctionne que parce que peu de gens y font confiance.
Un joueur lambda raisonne en deux étapes :
combien le prochain tirage aura-t-il de boules communes avec le précédent ?
quelles seront les boules du prochain tirage ?
Il y a 13 millions de tirages possibles (= C(49, 6)), dont
6 millions (C(43, 6)) n'ayant aucune boule commune avec le
tirage précédent et 258 (C(6, 5) x C(43, 1)) ayant 5 boules
communes avec le tirage précédent.
En choisissant une combinaison sans aucune boule commune avec le tirage précédent,
la probabilité de gagner se décompose en une probabilité assez grande, pas loin
de 50 %, et une autre très faible, 1 sur 6 millions.
En choisissant comme je le fais un tirage avec 5 boules communes,
la probabilité de gagner se décompose en une probabilité de 258 sur 13 millions,
soit 1 sur 50 000, puis une probabilité de 1 sur 258, soit deux probabilités
faibles ou très faibles.
Que vaut-il mieux ? une probabilité assez grande et une très faible ou une probabilité
très faible et une autre encore faible ? Intuitivement, la première solution est
la meilleure. Si l'on se donne la peine de faire les calculs, on voit que cela revient
au même.
Mais voilà, peu de gens font le calcul et ceux qui le font jouent rarement au Loto.
Selon le Quid 2001, il y a 13 millions de grilles par semaine,
soit un peu plus de 3 millions de grilles
à chaque tirage. J'estime que la majorité des joueurs correspondants choisissent
une grille parmi les 6 millions sans boule commune. Un joueur lambda a donc
approximativement une chance sur deux de jouer la même grille qu'un autre joueur.
On peut estimer à la louche qu'il y a une dizaine de joueurs à chaque tirage qui
osent appliquer ma méthode. Ces joueurs ont donc une chance sur 25 de jouer la même
grille qu'un autre, donc 24 chances sur 25 d'être le seul gagnant.
Dans la réalité, la situation des joueurs lambda est encore pire. Un
joueur lambda ne tient pas compte seulement du dernier tirage, mais
aussi de l'avant-dernier et de quelques-uns avant. Le joueur lambda
se méfie également de tirages avec un trop grande régularité, comme
« 7, 8, 9, 10, 11, 12 ». La valeur de 6 millions doit
être revue à la baisse.
Deux remarques : pour calculer les valeurs numériques ci-dessus,
j'ai utilisé un papier, un crayon et la table de logarithmes qui a passé
le bac avec moi. D'autre part, la seule fois que j'ai joué au Loto,
j'ai été pris au dépourvu et je n'ai pas pu me baser sur le tirage précédent.
J'ai donc joué une combinaison du type « 7, 8, 9, 10, 11, 12 ».