- Eric rentre de San Diego, où s'est tenue la conférence
TPC 6.
San Diego se trouve en Californie, à 40 km
de la frontière mexicaine et de Tijuana. C'est l'une des bases
navales les plus importantes et de temps en temps les participants
voyaient passer un porte-avions à quelque distance de l'hôtel
Sheraton, l'endroit où se tenait la conférence.
- Eric nous a parlé entre autres de deux conférences de
Mark-Jason Dominus,
la première sur mailing-lists judo, l'autre sur
conference judo.
L'une d'elles ayant déjà été diffusée sur
le net, les gens ne suivaient pas attentivement.
- Il a également relaté les
lightning talks.
Ingy
a présenté un talk où il délirait et il inventait un nouveau
langage de programmation, plutôt biscornu. Il a conclu par :
« Seul
Damian Conway
est capable d'implémenter ce langage. » Pendant que les
lightning talks se poursuivaient, à un moment Eric a vu
apparaître le nom de Damian sur la liste des lightning
talks. Lorsque le tour de ce dernier est arrivé, il est
monté sur l'estrade, a dit (en anglais) : « Il ne faut
jamais défier le maître. » et a commencé à pianoter sur son
portable, dont l'écran était projeté sur le mur. C'est ainsi que
l'on a pu voir le programme d'Ingy de tout-à-l'heure. Ensuite
Damian lance ce programme... et obtient le résultat annoncé par
Ingy.
- Eric avait l'intention de rédiger ses souvenirs de la conférence,
mais il y a trop de choses à se rappeler. D'autre part, Michel
Rodriguez passait son temps pendant les conférences à pianoter sur son
portable et nous avons eu droit à ses impressions par l'intermédiaire
d'Eric. Du coup, nous avions déjà un
aperçu de la conférence.
- Comme d'habitude,
Randal
a organisé « sa » soirée.
Les autres années, il louait une boîte de nuit, mais cette fois-ci
il a dû restreindre ses dépenses et s'est contenté de louer le bar
de l'hôtel Sheraton. Il a organisé une LAN party au bar,
ce qui a permis à une bonne vingtaine de personnes de faire une
partie de Quake en réseau. Ceux qui avaient les mains
libres pouvaient s'abreuver sans problème ; il y avait du
whisky, pas celui de basse qualité, et la quantité ne correspondait
pas à l'épaisseur d'un seul doigt. Ceux qui préféraient prendre
le frais à l'extérieur ne le pouvaient pas, car Randal venait
les relancer : « Venez boire à l'intérieur, il y a encore
de quoi faire ! »
- À l'issue de la conférence, Nat Thorkington, l'organisateur, a
tenu une réunion pour tirer les enseignements et les conclusions de la
conférence. Un effet de la technologie Wi-Fi est qu'il y a eu en fait
deux réunions simultanées. La première utilisait la technique
millénaire consistant à s'adresser aux autres à haute et intelligible
voix, l'autre consistait à se connecter à une session IRC sur le
réseau wireless et à écrire ses commentaires au bénéfice des
autres connectés.
- Sniper est en train d'écrire un module pour analyser les logs
produits sur des systèmes AIX. Il nous a apporté quelques listings
de son module. D'autre part, BooK et Olivier disposaient d'un
ordinateur portable, ce qui leur a permis d'installer le module
et de jeter un coup d'oeil sur les fichiers annexes. BooK a
remarqué une erreur : Sniper a écrit binded alors que
le participe passé de bind est
bound. Sniper a constaté une autre erreur, ou plutôt une
faute de style. Au lieu d'écrire comme il a coutume :
my %h;
il a écrit :
my %h = ();
ce qui gaspille un op-code, donc quelques cycles CPU. Les
deux lignes de code font la même chose, la seule différence étant que
dans le deuxième cas, le hachage est initialisé deux fois.
- Nous évoquons le fil de discussion récent sur les normes de codage.
C'est un sujet qui donne facilement lieu à polémiques. Et effectivement,
la discussion était animée sur la liste.
- Cela nous amène à évoquer la personnalité de Guy. C'est un
perlien qui vient du monde
Lisp.
Sans doute pour cette raison, il n'a aucune réticence à insérer
des eval dans ses programmes. Je rappelle qu'il y a
quelqu'un d'autre, présent à la réunion, qui n'a pas hésité à
mettre
49 fois le modificateur /e
dans une expression régulière. « Non, 59 fois »
m'a-t-il répondu. À quoi il ajoute que la première version ne
comportait que 15 exemplaires de ce modificateur, qu'il avait
écrit ce programme avec un papier et un crayon à l'occasion d'un
voyage en train et que cela avait fonctionné du premier coup.
- Le fil de discussion sur les normes a provoqué également quelques
commentaires sur les mérites respectifs de constructions telles que :
unless (condition) { action }
if (!condition) { action }
action unless (condition)
Tout le monde admet la troisième forme, mais les avis sont partagés
entre la première et la deuxième. Quant à celle-ci :
unless (condition)
{ action }
else
{ action }
elle choque, car cela sonne mal à l'oreille, même pour ceux qui ne
sont pas anglophones de naissance. Peut-être faudrait-il créer un nouveau
mot-clé pour écrire :
unless (condition)
{ action }
on_the_other_hand
{ action }
- Une autre discussion épineuse de mot-clé concerne les
propriétés en
Perl 6
(on ne dit pas « attribut » comme dans les langages qui
se veulent orientés objet). Faut-il introduire une propriété par
« is » ou par
« but » ? Je préfère
« but », car « is » sonne
un peu trop COBOL à mon goût.
- L'ordinateur portable de BooK n'a pas seulement servi au module
de Sniper, il a servi également à une démonstration de
Frozen Bubbles.
Le seul problème, c'est que le programme n'affichait pas la flèche
donnant la direction dans laquelle la prochaine boule partirait.
[ Note de BooK : Ceci permet de tester les "vrais" joueurs... ]
- Le groupe de
London.pm
organise des réunions techniques en plus des
réunions sociales. Et on a le droit de parler de Perl lors des réunions
techniques. Il arrive même qu'ils créent un module dans l'espace de la
réunion, en le téléchargeant sur CPAN à la fin de la réunion. C'est
le cas par exemple du module
Acme::Your.
- À ce propos, London.pm est en train de coloniser l'espace Acme.
Il faut que nous réagissions, et que nous colonisions le reste de CPAN.
BooK souhaite intégrer plus de
modules
sur le serveur CVS des Mongueurs.
Pour l'instant, il y a
- Games::Golf
- Log::Procmail
- diagnostics
- Date::Convert::French_Rev (quoique vide au moment de la réunion)
Il tente de convaincre Olivier d'installer ses développements sur le
serveur CVS, mais Olivier utilise déjà CVS sur sa propre machine
et il voit mal l'utilisation de deux arborescences CVS sur des
machines différentes.
- BooK fait remarquer que
Date::Convert::French_Rev
est terminé, et que je pourrais le charger sur le serveur. Je réponds
qu'il vaut mieux dire « stable » que « terminé »,
car j'ai en tête un certain nombre d'ajouts à y mettre,
essentiellement dans le sous-répertoire des exemples. De plus, pas
plus tard que la veille ou l'avant-veille, j'ai reçu un compte-rendu
d'erreur d'un CPAN-tester pour me signaler que j'ai oublié de
faire figurer Date::Convert parmi les prérequis. Lorsque
j'aurai un peu de temps libre, je compléterai le Makefile.PL
et les exemples, je chargerai le module sur le serveur CVS et je
diffuserai la version 0.04 sur CPAN.
- Quant à
diagnostics,
Philippe souhaite que j'en fasse de
la publicité sur les divers forums it.comp.lang.perl,
de.comp.lang.perl etc, pour inciter les bonnes volontés à
écrire leur propre traduction et à la télécharger sur le
serveur. Ayant remarqué une intervention de
« Neophyte »
sur Perl Monks
à propos de la traduction de la documentation en allemand,
j'ai envoyé un message à l'adresse mail figurant dans son home
node. J'ai eu un seul message en retour, c'était de la publicité
sans aucun rapport avec Perl. Heureusement, ce n'est pas du spam, je
n'ai rien eu depuis en provenance de la même adresse.
- En Perl 6,
la concaténation ne se fera plus avec un point, mais avec
un souligné. Or, le caractère souligné est un caractère valable pour
les noms de variable et de sous-programme. Il sera donc nécessaire
de mettre un blanc de part et d'autre pour que l'analyseur lexical
(tokeniser) retrouve ses petits. Du coup, certains golfeurs
rouspètent, car cela les obligera à écrire des programmes avec
deux espaces en plus. Mais comme le fait remarquer BooK, les règles
du jeu sont les mêmes pour tout le monde, donc lorsqu'une compétition
de golf sera organisée en Perl 6, tout le monde devra encadrer son
souligné de concaténation par deux espaces.
- Alors que la version courante de Perl est la 5.8.0 (pumpking
Jarkko Hietaniemi), que l'on commence à parler de Perl 5.9.0 (pumpking
Hugo van der Sanden) et que l'on parle de Perl 6
depuis longtemps, voilà que l'on se met à évoquer
Perl 5.6.2
et Perl 5.005_04,
sur lesquels Gurusamy Sarathi et Chip Salzenberg se
remettraient à travailler. Et TPC a même vu la nomination
de Michael Schwern au titre de...
pumpking de Perl 1 !
En effet, au cours de la conférence, il a fait une démonstration
où il a compilé Perl 1 (212 kilo-octets) en quelques minutes,
et où il a essayé les quelques programmes suivants :
$ perl -e 'print "Hello world!\n"'
Ça plante.
$ cat foo
print "Hello world!\n"
$ perl foo
Erreur de syntaxe, l'instruction ne se terminant pas par un point-virgule.
$ cat foo
print "Hello world!\n";
$ perl foo
Hello world!
- Philippe (brix) demande des précisions sur
« pumpking ». Le
pumpking
est le responsable d'une branche de développement de Perl. C'est lui
la seule personne autorisée à patcher le source et à définir des
releases. Le terme est une contraction de king
(roi, explication évidente) et de
pumpkin
(citrouille ou potiron, parce que le symbole d'autorité de ce roi
n'est pas un sceptre, mais un potiron).
- Hugo van der Sanden a donné les objectifs qu'il
a fixés pour Perl 5.10 (et sa variante de développement 5.9).
Il n'y aura aucune fonctionnalité nouvelle, Perl 5.8.0 a fait le plein
là-dessus. En revanche, à puissance machine constante, on a pu constater une
dégradation nette des performances depuis Perl 5.000. Le but d'Hugo est
de revenir à de meilleures performances. Son slogan, nous apprend
Eric, est better, faster, smaller. Inévitablement, cela
m'a fait penser au slogan de la NASA :
Faster, better, cheaper,
qui a donné les
fiascos
que l'on
connaît.
David donne l'explication de ces
fiascos.
Ce que les instances dirigeantes de la NASA ont
oublié, c'est que la version intégrale du slogan ressemble plutôt à :
Faster, better, cheaper: choose any two.
- Sniper s'est procuré le livre
Extending and embedding Perl
en version électronique (c'est-à-dire PDF), l'a imprimé et a
apporté son exemplaire à la réunion. Mais il n'a pas réussi à le
prêter.
- BooK quant à lui s'est procuré
Perl & LWP.
Il a commencé à le lire et en est à la moitié. Il n'a toujours rien appris de neuf.
- Eric et Stas continuent à travailler sur leur livre pour
mod_perl. Le livre en est arrivé à un millier de
pages. Peut-être faudra-t-il le découper en deux tomes...
- Yann signale qu'il a des problèmes avec l'utilisation de
CPAN.pm.
L'utilité de ce module est d'effectuer automatiquement le chargement
des modules requis pour installer celui qui vous intéresse. Le hic,
c'est que cela peut entraîner la mise à niveau en cascade de divers
modules dont la version installée n'est pas la plus récente, il est
impossible de choisir une version plus ancienne. Dans certains cas,
CPAN.pm va jusqu'à installer Perl 5.8.0 d'office, sans demander
avis à l'utilisateur.
- Et l'on reparle des réunions techniques. Cela pourrait avoir
lieu à La Villette, à l'occasion des samedis du libre. D'autre
part, il pourrait s'agir d'une présentation comme ce que l'on
a lors des conférences TPC ou autres, ou bien cela pourrait
prendre la forme d'une revue de code. [ Tiens ! Ça faisait longtemps
qu'on n'en avait pas parlé ! ] Ou bien on pourrait faire
venir un invité, comme Rafael de Lyon.pm.
- Cela fait trois ans que nous nous réunissons à la Taverne République.
Auparavant, à trois ou quatre reprises, nous sommes allés au Webbar.
D'ailleurs, Yann se souvient être allé au Webbar et avoir vu une bande
de gars qui se réunissaient pour parler de Perl.
- BooK demande des explications sur les grammaires formelles des langages
de programmation et sur les analyseurs syntaxiques. Un an plus tôt, à un
jour près, il a assisté à Amsterdam au tutoriel d'Abigail sur
Parse::RecDescent,
lequel commençait par une présentation des
concepts de base des grammaires, mais apparamment cela n'a pas marqué Philippe.
Stéphane lui donne des explications, parfois légèrement erronées. En voici
un résumé, que j'ai rédigé avec le « livre du dragon » (Aho, Sethi,
Ulmann) à portée.
- Les grammaires sont définies par une liste de symboles terminaux,
une liste de symboles non-terminaux, un symbole de base pris parmi la
liste précédente et
une liste de productions. On assimile souvent une grammaire à la liste
des productions, la partie la plus intéressante.
- Une production décrit comment un non-terminal se décompose en
terminaux et non-terminaux. Par exemple,
Une expression est soit un terme, soit une expression suivie d'un
opérateur et d'un terme.
expression ::= expression opérateur terme
| terme
Cette définition des productions est valable pour les grammaires
indépendantes du contexte. En programmation, on rencontre rarement des
grammaires en dehors de cette catégorie, c'est-à-dire dépendantes dy
contexte.
- Selon leurs caractéristiques de régularité, on range les
grammaires en différentes classes. La classe la plus intéressante est la
classe LALR(1), ce qui signifie Look-Ahead 1 symbol,
Left-to-right scanning, Rightmost derivation.
- Il existe aussi des grammaires LALR(2) ou LALR(3), qui nécessitent
de regarder le texte à analyser avec deux ou trois tokens d'avance
pour prendre une décision. On préfère éviter ces grammaires et se
contenter d'une LALR(1), car il faudrait prévoir toutes les combinaisons
de symboles deux à deux ou trois à trois et du coup la taille des
tables serait excessive pour les grammaires LALR(2) et LALR(3).
- Il existe trois types d'analyseurs (parseurs) :
- les analyseurs ascendants, comme ceux que génèrent yacc,
bison et
Parse::Yapp,
- les analyseurs descendants, comme
Parse::RecDescent,
- et une troisième classe, absente du « Dragon » mais
signalée par je ne sais plus qui à YAPC Amsterdam, les analyseurs
« magiques » comme
XML::Parser.
- Dans certains cas de figure, un programme peut être analysé de deux façons
différentes, voire plus, par une grammaire. On dit alors que la grammaire
est ambiguë. L'exemple traditionnel est celui des IF imbriqués. C'est d'ailleurs
de la sorte que l'on a découvert l'existence des grammaires ambiguës.
Le programme suivant :
IF condition1 THEN IF condition2 THEN action1 ELSE action2
se traduit-il en Perl par :
if (condition1)
{
if (condition2)
{ action1 }
else
{ action2 }
}
ou bien par :
if (condition1)
{
if (condition2)
{ action1 }
}
else
{ action2 }
On remarque qu'une grammaire est ambiguë lorsque l'on génère un analyseur
avec yacc ou Parse::Yapp. On obtient dans ce cas
des conflits shift/reduce (ce qui ne nous empêche pas de dormir)
ou bien des conflits reduce/reduce (qui, eux, sont problématiques).
- Analyser un source de programme, c'est bien ; produire du code
(machine, intermédiaire, ou bytecode), c'est mieux. Pour ce faire,
lorsque l'on écrit la grammaire, on associe une action sémantique
à chaque production. L'action sémantique consiste en général à
mettre à jour la table des symboles (ajouter les variables lorsqu'elles
sont définies, les supprimer lorsque la portée lexicale se termine)
et à construire le code. Dans une grammaire définie pour yacc,
en règle générale, il y a zéro ou une action sémantique pour chaque
production. Il est toutefois possible d'en définir plusieurs,
mais il peut arriver que cela crée artificiellement une ambiguïté
dans la grammaire.
- Une caractéristique importante des analyseurs syntaxiques est
leur caractère déterministe ou indéterministe. Un analyseur tel
que Parse::RecDescent est indéterministe. Cela signifie
que dans certains cas, il peut avoir le choix entre plusieurs productions
possibles. Il en choisit une et poursuit l'analyse. Si le choix s'avère
erroné, alors l'analyseur effectue du backtracking et essaie
la possibilité suivante. À l'inverse, un analyseur Parse::Yapp
est déterministe. À tout moment, il y a une seule dérivation possible
(ou zéro en cas d'erreur de syntaxe). Il n'y a donc jamais de retour
arrière, donc pas de perte de temps. En résumé, Parse::RecDescent
est plus puissant que Parse::Yapp, mais beaucoup plus lent.
- On peut noter que Parse::RecDescent est beaucoup plus utilisé
que Parse::Yapp. La raison ne doit rien au paragraphe précédent,
mais tout bonnement au fait que
Damian
est une célébrité planétaire dans le
milieu perlien, alors que la renommée de
François
se limite grosso-modo
à Paris.pm, peut-être les autres groupes francophones. C'est regrettable.
[ Cela dit, comme nous avons pu le constater dans la
dernière exégèse,
Damian rend hommage à son concurrent au point de le citer quelques mots
avant lui. ]
- Stéphane suggère une amélioration pour Parse::Yapp :
faire référence aux éléments d'une production par leur nom au lieu de
leur numéro. Soit, par exemple, un programme copiant un fichier de
configuration dans un hachage de configuration. Actuellement,
cela s'écrit :
ligne : motcle '=' valeur { $conf{$_[1]} = $_[3] }
Avec la suggestion de Stéphane, on pourrait écrire :
ligne : motcle '=' valeur { $conf{$motcle} = $valeur }
- Pour BooK et moi, le problème est que nous n'avons pas l'occasion
d'utiliser des grammaires de langage. Tous les langages que nous
sommes amenés à analyser ont déjà leur propre module d'analyse
(HTML::Parser,
Inline::C)
ou bien ce sont
des langages tellement simples qu'un bon jeu d'expressions
régulières suffit.
- J'ai quand même utilisé Parse::Yapp une fois. Lorsque
j'ai commencé à m'intéresser aux diagnostics, Gérald m'a
fourni le chapitre 33
d'Amélia
sous forme électronique, c'est-à-dire un source
LATEX. Bien qu'il existe un
module
pour décortiquer du LATEX j'ai préféré
installer Parse::Yapp sur ma machine et écrire moi-même
une grammaire. Cette grammaire n'est absolument pas capable
d'analyser n'importe quel source LATEX
valide, elle permet seulement d'analyser un source qui contient
les quelques constructions que Gérald a utilisées dans ce
chapitre, d'autant plus que pour ce chapitre Gérald n'a pas eu
besoin d'utiliser de construction spéciales comme les tableaux.
- Stéphane continue à s'intéresser à
TEXmacs.
Il voit pour ce logiciel une utilisation beaucoup plus diversifiée que
ce que Joris a en tête. Il y envisage par exemple de baser un client
wiki sur TEXmacs, ce qui faciliterait la mise en page du
texte, ou bien un client IRC qui permettrait à des mathématiciens de
dialoguer en direct.
- À noter une réflexion acerbe de quelqu'un d'autre
sur les logiciels WYSIWYG. En général, ces logiciels sont plutôt
WYSIWYSAWYGIWYG (What you see is what you see and what you get is what
you get).
[ À rapprocher du principe WYGIWYGAINGW exposé par l'Archi-Chancelier
Mustrum Ridcully, un personnage de Terry Pratchett. Pour ceux qui ne
le sauraient pas, cela signifie
« What You Get Is What You're Given And It's No Good Whining. »
(« Tu as ce qu'on te donne, et ça ne sert à rien de geindre. »)
]
- Poursuivant sur le sujet de TEXmacs, Stéphane nous
apprend qu'au cours de ces trois derniers mois, David Allouche,
l'unique programmeur du projet, a effectué une modification,
laquelle a apporté zéro fonctionnalité. Et pourtant, pour
Stéphane, il s'agit d'une modification importante. David a remplacé le
mécanisme de templates d'origine par un autre. Stéphane a
lu récemment un livre sur les templates en C++, ce qui lui
a fourni une vision plus précise sur ce sujet. Du coup, il a pu constater
que le mécanisme de Joris était bancal, alors que celui de David est
nettement meilleur.
- À son travail, David (le nôtre, le tsar) administre des machines
Solaris. Les utilitaires natifs lui posent beaucoup de problèmes. Par
exemple, find n'aime pas les fichiers dont le nom comporte un
espace. Ou alors, une ligne de commande ne peut pas dépasser 256
caractères, ce qui est gênant lorsqu'une commande du genre
newgrp doit comporter une quarantaine de codes utilisateurs
de 7 caractères en moyenne. David a installé les utilitaires GNU tout
en conservant leurs équivalents natifs. C'est ainsi qu'il a
find et gnufind par exemple. En revanche, question
matériel, David est admiratif vis-à-vis des machines Solaris.
- David essaie de passer en revue toutes les variantes d'Unix qu'il a
utilisées dans sa carrière. Il a eu des problèmes pour se rappeler comment
s'appelait la version DEC d'Unix. Il s'agit d'Ultrix, mais dans un premier
temps il a dit DG-UX, ce qui pour moi évoque plutôt Data General. Cela nous
a permis de parler un tout petit peu de
The Soul of a New Machine
de Tracy Kidder.
- Stéphane nous apprend que l'un des deux navigateurs Web en mode
texte,
links,
a désormais un mode graphique. Bon, en fait, maintenant
c'est un navigateur complet, mais sans superflu. Pas de plug-in Flash par
exemple. Stéphane a jeté un coup d'oeil dans le source et trouve que
c'est bien écrit.
- À un moment, nous en sommes venus à évoquer les anciennes machines
et leurs claviers. Il y a le clavier du Pet Commodore, organisé sous
une forme matricielle :
Q W E R T
A S D F G
Z X C V B
alors que les claviers « normaux » comportent un léger décalage
d'une ligne à l'autre (et en plus, c'est en AZERTY).
A Z E R T
Q S D F G
W X C V B
D'autre part, à l'usage les touches s'effaçaient. Il y a aussi le
clavier du
TO7
(ou du MO5,
je ne me souviens plus), où les touches sont constituées de deux
feuilles métalliques dont l'une est bombée, et l'appui sur une
touche provoque le contact électrique des deux feuilles. Ce n'est
pas pratique pour ceux qui ont une vitesse de frappe rapide ou
même moyenne. Mais il y a pire : le Minitel, surtout les
tout premiers modèles. En effet, les touches étaient disposées
alphabétiquement. Fort heureusement, ces modèles ont disparu très
rapidement.
- En revanche, il y a les claviers des PC-AT d'IBM. Ceux-là ont une mécanique
particulière (je n'ai pas noté le nom que David a donné). L'appui sur une touche
provoquait un bruit particulier, un espèce de « tic » différent de ce
à quoi nous sommes habitués maintenant.
- Enfin nous évoquons les claviers en service de nos jours, avec la
touche « Windows ». Je ne m'en sert jamais, je suis habitué
à taper Ctrl-échap. Pour d'autres, cette touche n'est pas seulement
inutile, elle est gênante. C'est toujours très désagréable lorsque le
menu « démarrer » apparaît en plein milieu d'une partie de
Doom parce que l'on a tapé sur la mauvaise touche... Et le
comble, ce sont les claviers où la barre d'espace est remplacée par
une demi-barre d'espace plus une touche d'effacement
(backspace). Combien de fois ai-je effacé un caractère alors
que je voulais insérer un blanc ! Pour cette touche d'effacement
et pour les touches « Windows », David a la solution. Il insère
un couteau juste en-dessous de la touche, fait levier, puis enlève le
cabochon de la touche. C'est ainsi que l'un de ses tiroirs contient un
grand nombre de touches « Windows ».
- La dernière fois,
j'ai parlé de mes déboires lorsque j'ai voulu
refaire de la programmation C. Il est arrivé un peu la même chose
à Sniper. Pour initialiser un tableau en C, il a utilisé des parenthèses,
comme d'habitude :
int nbj[12] = (0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334);
alors qu'il fallait des accolades :
int nbj[12] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334};
- Philippe et Philippe ont parlé de la récupération de flux real audio et de son stockage.
Je me contente à ce sujet de copier-coller les propos
ultérieurs de Brix sur la liste avec quelques adaptations mineures.
Pour ceux qui ont un windows quelque part, sur la
page de streambox,
récupérer
l'archive zippée.
Il doit y avoir un patch « à but éducatif » à passer ;
il est dand l'archive zip.
La difficulté (petite) est parfois de connaître la bonne URL à donner à Streambox VCR.
Si on utilise IE, on peut parcourir le cache pour trouver les fichiers .ra .ram ou .rm
(je ne sais plus, le fichier qui contient une adresse de type http: ou rstp: etc.). URL
Snooper, présent sur la même page doit pouvoir aider mais je ne l'ai jamais utilisé.
La conversion des fichiers real(audio) en mp3/wav se fait avec
StreamBox Ripper v2.009
Pour la conversion d'une video en avi, on utilisera
Tinra.
[ Je reprends le clavier. ]
- Il paraît que le livre Perl & XML comporte un certain
nombre d'erreurs. Du coup, pour les traducteurs, le problème se pose
de savoir s'il faut corriger les erreurs ou traduire fidèlement.
Lorsqu'il s'agit d'erreurs techniques flagrantes, un bout de code
qui plante par exemple, il faut à mon avis corriger. En revanche,
pour le reste, il est préférable de suivre fidèlement le texte original.
Cela dit, dans la traduction d'Amelia, nous nous sommes permis d'ajouter
des notes du traducteur, mais cela doit rester rare.
- Cela me rappelle Lady Ada Byron, l'informaticienne du XIXe
siècle. Elle devait traduire un livre, vraisemblablement de Babbage.
Au début elle effectuait simplement son travail de traduction. Mais
progressivement, elle a inséré des petites NdT de temps en temps, puis
un peu plus souvent, jusqu'à finalement avoir sur une page moyenne
plus de NdT que de texte principal.
- Parmi les livres que BooK a apporté cette fois-ci, il y a le
compte-rendu d'un congrès sur l'informatique en 1970. J'ai noté avec
satisfaction que lorsque Philippe utilise le mot « décade »,
c'est pour représenter une durée de 10 jours. Voilà quelqu'un qui
parle un français correct ! Parmi les participants à ce colloque
il y avait
François le Lionnais,
dont j'ignorais les liens avec
l'informatique. Pour moi, comme pour BooK, c'est un membre de l'Oulipo
et un mathématicien. D'ailleurs, c'est lui l'auteur de l'un des deux
dictionnaires de nombres
que j'ai dans ma bibliothèque. Il y a le
Dictionnaire des nombres remarquables de François le Lionnais
et le Dictionnaire Penguin des nombres curieux. Penguin est
le nom d'un éditeur britannique ou bien d'une collection de livres de
poche au Royaume-Uni, l'équivalent de Folio ou du Livre
de poche chez nous, mais le Dictionnaire Penguin des nombres
curieux est écrit en français.
- [ Voici un copie-collage des propos de Stéphane sur la liste,
concernant une discussion que j'ai manquée. Jean ]
Dans une précédente réunion j'avait qualifié un absent d'une
combinaison de ego et de artful dodger. En lisant
cette description
les anciens reconnaîtront tout
de suite de qui je parlais.
- Plus sérieux et j'en avais aussi parlé lors d'une précédente réunion.
À propos de personalités, je vous recommande
ce site.
Il s'agit du test Briggs-Myers.
Se fondant sur deux dimensions du caractère décrite par Karl Jung,
Extravert/Introvert et Sensing/Intuitive, et en rajoutant deux autres,
ce test est une bonne caractérisations des individus. On m'avait fait
passer ce test quand j'étais a Montain View et je suis un programmeur
typique un
INTP ou architecte
alors que Larry Wall déclare
sur sa homepage être un
Idéalist ou INFP.
[ Fin de la copie et du collage. Je reprends la parole. J.F. ]
- Lors de TPC, Eric était en train de jouer du piano
au bar de l'hôtel.
Mark-Jason Dominus
a alors sorti son
harmonica
et a joué en duo avec Eric.
C'est toujours intéressant de savoir jouer d'un
instrument lorsque l'on participe à une conférence. Enfin, à
condition qu'il s'agisse d'un instrument que l'on voit partout
(piano) ou facilement transportable (harmonica).
À l'inverse,
Knuth
joue de l'orgue, et ça lui est difficile d'emporter
son orgue dans ses bagages lorsqu'il se déplace. Il a pu se payer
son orgue grâce aux droits d'auteur sur l'un de ses livres.
Du coup, dans l'index de l'un des livres suivants, Sorting And Searching,
il a inséré
l'entrée « Royalties, use of »
pour pointer sur un exercice faisant intervenir une
« répartition en tuyaux d'orgue ».
- La discussion de la réunion précédente
sur les ambigrammes s'est poursuivie lors de cette réunion. BooK évoque l'exposé de
Gilles Esposito-Farèse
à Lille lors de la Journée du
Palindrome le 20 février 2002. « GEF » y a
expliqué sa démarche pour construire un ambigramme. À la fin
de son exposé, il a demandé à des personnes de l'assistance
de lui donner leur prénom et il a essayé de construire un
ambigramme pour ces prénoms.
- Il y a eu une longue discussion portant sur des sujets aussi
divers que la fiabilité de l'information, le rôle des journalistes, la
situation en Israël, l'individualisme et les théories de la
conspiration.
- Au sujet de la situation en Israël, il faut signaler que c'est le pays
où résident la plus forte proportion de correspondants permanents
pour les journaux, chaînes de télévision et agences de presse du monde
entier. Comme tout journaliste, ces correspondants permanents sont
à l'affut du moindre incident pour en tirer de quoi écrire un article
ou de quoi alimenter deux minutes au journal de vingt heures. C'est pourquoi
de simples altercations ont un retentissement mondial. La même chose
se produirait dans un pays ignoré des journalistes, comme (au hasard)
l'Uruguay, personne n'aurait connaissance de cet incident.
- Stéphane a lu
l'Effroyable Imposture,
un livre où
l'auteur cherche à démontrer que ce n'est pas un avion qui a détruit
une aile du Pentagone le 11 septembre dernier. Il est difficile
de se faire une opinion là-dessus. Pour Stéphane, ce livre permet
de faire prendre conscience que la vérité n'est pas toujours
du côté de ce que nous racontent le gouvernement et les principaux organes
de presse. Les autres, en revanche, trouvent que ce livre porte la
marque des théories de la conspiration, contre lesquelles aucune
argumentation raisonnable n'a de prise. [ Cela dit, en lisant
les messages ultérieurs de Stéphane sur la liste, il signale que le
reste du livre est constitué de spéculations hasardeuses, réflexion
qu'il a dû faire lors de la réunion alors que je suivais une autre
conversation. ]
- À noter qu'il existe l'antidote à l'Effroyable Imposture,
c'est
l'Effroyable
Mensonge.
Ce livre reprend point par point les affirmations du premier, les
démonte et les réfute.
- Les
théories de la conspiration
rappellent à BooK les élucubrations numérologiques de certains.
Il cite comme exemple des considérations ayant
Georges Perec
pour objet. Il existe une seule photo connue du père de Georges
Perec, photo où il apparaît dans un uniforme militaire. Quelqu'un
a décortiqué la photo dans tous les sens et en a tiré, je ne sais
pas comment, le nombre 11,43. Or, c'est le 11 février 1943
que la mère (pas le père, la mère) de Georges Perec a été
déportée. Dans le Dictionnaire Penguin des nombres
curieux, déjà cité dans la discussion, l'auteur présentait
un calcul de ce genre, puis donnait en conclusion la réflexion
suivante : « Je pense que cela montre assez bien qu'il
suffit de passer 1 heure à jongler avec des chiffres
(choisissez ceux que vous voulez, peu importe le reste) pour
ensuite pouvoir sortir du chapeau n'importe quel nombre que vous
voulez... » Je cite également Jean-Pierre Adam qui, dans le
Passé Recomposé, prend les dimensions d'une guérite de
la Loterie Nationale et en déduit le nombre pi, la distance
Terre-Soleil, la formule de la naphtaline et encore d'autres secrets
cosmiques.
- La discussion ratisse large, jusqu'à parler de la place de l'individu
dans la société. Chaque individu appartient à un nombre plus ou moins
grand de communautés. Ceux qui utilisent Internet peuvent ainsi s'intégrer
à un nombre important de communautés, plus que quelqu'un qui prend sa
retraite dans un village relativement peu peuplé. Cela dit, lorsqu'un
individu interagit avec un grand nombre de communautés, ses interactions
sont peu profondes et ne concernent peu de choses en dehors de l'objet
de cette communauté [ Là je ne suis pas d'accord. Cela fait trois ans
que nous nous réunissons parce que notre point commun est la programmation
en Perl et le plus souvent nous parlons très peu de Perl lors de
ces réunions. ]
- Les États-Unis sont le pays de l'individualisme. Stéphane intervient
alors pour contredire cette opinion en évoquant les neighborhood watches,
des quartiers où tout le monde surveille tout le monde. À l'origine,
il était question de prévenir le crime. Par la suite, cela a dérivé
et maintenant tout le monde surveille si le voisin tond bien sa pelouse
régulièrement, s'il se conduit proprement, et ainsi de suite.
Cela a pour effet d'augmenter le prix de l'immobilier, mais aussi d'instaurer
un climat fascisant. [ Je crois que Stéphane a confondu « individualisme »
et « libertés individuelles ». Pour trouver une situation contraire
à l'individualisme, il faudrait prendre l'exemple d'un quartier où tout le
monde s'intéresse à tout le monde, mais où cet intérêt se manifeste sous
la forme d'une entraide, pas d'une surveillance. ]
- Parmi les théories de la conspiration, Yannick signale que certains
pensent que l'exploration
de la Lune est une escroquerie
(en a-t-il parlé à la réunion pendant que
j'avais le dos tourné ou seulement par la suite sur la liste peu importe,
le site mérite d'être signalé).