Présents à la réunion, en fonction de l'ordre d'arrivée approximatif
Nicolas,
moi,
Guillaume,
Anthony,
Éric,
Jérôme,
et David (L).
Nous avons mangé des blue-cheeseburgers et
cheeseburger, des tartiflettes, des moules et des frites,
des charlottes au chocolat, des nègres en chemise (dont il
a fallu encore une fois donner la recette)
et des tartes au citron. Nous avons bu de la Paulhaner, de
la Blanche, de la Stout, d'autres bières, du Pepsi
(en 25), du Coca (en 50) et une margarita.
À son arrivée, Nicolas a vu que la table était mise pour un groupe
au fond de la Taverne au rez-de-chaussée. Il s'y est donc installé
en attendant les autres. Mais en discutant avec un serveur, il
a compris que deux groupes avaient réservé une table à la Tavene :
un groupe dont le nom est « Génération MP3 » ou quelque chose
comme cela et un groupe de bloggers. Nous nous
sommes donc installés au sous-sol, tant pis pour la musique (ah bon ?
tant pis ?).
Nous avons parlé de l'avancement de la traduction
de
Perl Best Practices
dont le titre français est désormais connu :
De l'art de programmer en Perl.
Jérôme raconte notamment la soirée où il a commencé
à travailler sur cette traduction. C'était un
vendredi soir, vers la fin de novembre. Il était
dans les 22h30 ou 23h, Jérôme était connecté
sur IRC, lorsque BooK l'a averti :
« Va consulter ton courrier. »
Un quart d'heure plus tard, Jérôme a vérifié
sa boîte électronique et y a
trouvé un message qui officialisait sa participation
à la traduction. Le message indiquait également
le calendrier de cette traduction. Jérôme a vu
qu'il n'y avait pas de temps à perdre. Il a donc
effectué un check-out de
l'arborescence CVS
réservée à la traduction et il a commencé
à traduire illico presto. Et dans la journée du samedi,
dès qu'il a obtenu le karma suffisant, il a commité
ses premiers efforts sur le serveur.
Mais en démarrant sur les chapeaux de roue comme cela,
il a eu quelques difficultés à assimiler les conventions
et les outils que Philippe et moi avons mis en place
au fur et à mesure depuis septembre.
Il y a quelque chose qui m'a passablement inquiété ces
derniers jours, c'est lorsque Philippe a fait son
dernier commit sur le chapitre 6. Dans cette
mise à jour, il y avait beaucoup de corrections de fautes
de frappe. J'ai vérifié avec l'exemplaire que j'avais
imprimé à l'époque pour ma relecture, les fautes de frappe
y étaient, sans marque au stylo-bille. Je ne les ai donc
pas remarquées lors de la relecture. Sans doute étais-je
fatigué ce jour-là.
Au jour de la réunion, nous avons la fin en vue.
Jérôme a bien avancé sur son ultime chapitre et
moi, le chapitre 1 est quasiment fini et
il ne me reste plus que la préface et le colophon.
En revanche, Philippe est à la bourre. Il lui reste un chapitre
à finir, un chapitre à traduire en
entier et les annexes.
David a évoqué un plantage en Perl assez frustrant :
le programme fait son boulot comme il faut, mais
au moment de s'achever proprement avec un exit,
il tente de fermer deux fois le même file descriptor
et ça, la machine n'apprécie pas. D'où un core dump.
David a été contacté par chromatic pour participer à la rédaction
de Perl Hacks, avec des exemples d'utilisation
de Regexp::Assemble.
Anthony demande quel est le meilleur serveur de news
pour Internet. C'est
inn
et personne n'a cherché à troller. Cela dit, la configuration n'est pas évidente.
Mais pourquoi Anthony veut-il installer un serveur de news ?
C'est un protocole qui est très peu utilisé de nos jours.
Il semblerait que 99 % du trafic soit occupé par les groupes
alt.binaries.* pour diffuser des copies pas forcément
très légales du dernier film sorti au cinéma ou de la dernière
chanson à la mode. Très peu de gens utilisent encore les news
pour échanger des informations en texte simple. On a plutôt tendance
à utiliser des listes de diffusion ou des forums sur le web.
Mais un groupe de news et une liste de diffusion, ce n'est
pas la même chose. Pour des messages du genre : « Rollers
à vendre, pas cher », Anthony voit plus cela dans des news
que dans une liste de diffusion.
Il est question des nouveautés à venir sur la
Freebox.
Il semblerait que la
Freebox
comporterait un émulateur de jeux d'arcade
(MAME),
mais la question qui se pose
alors est : « où trouver des ROM de jeux
d'arcade sans enfreindre les lois sur le copyright ? »
David rappelle que la durée du copyright est depuis
peu de 70 ans et que cette durée est mesurée
à partir de la mort de l'auteur, non pas de la
publication de l'oeuvre. Dans le cas des jeux d'arcade,
comment cela se traduit-il si le jeu provenait d'une
boîte qui a coulé depuis ?
Quelqu'un évoque une application réseau qui repose sur FTP et
uucp.
Même si ce sont des protocoles antiques (uucp daterait
de la première connexion entre deux machines Unix),
uucp
est très bien fait et peut être encore très utile.
[ Mes recherches
me laissent penser que uucp daterait quand même
de 1981,
pas de la fin des années 60. ]
Nicolas nous a déjà raconté qu'il suivait environ 150 blogs.
Compte tenu de la quantité, il ne suit pas tout le monde tous les
jours. Il les classe donc par ordre d'intérêt. Et parmi les plus
intéressants, il y a le
blog d'un procureur
et celui d'un juriste.
Il a été question d'une personnalité politique, je ne sais plus
laquelle, qui met à jour son blog. Ou bien est-ce un aide ou
un secrétaire ? Il a été question également d'une autre
personnalité politique, prénommée Nicolas comme le nôtre,
et qui aurait posté un commentaire sur un forum ou un
blog. Mais comment être sûr qu'il s'agit réellement de
notre célèbre ministre ?
Il a été question de qui joindre pour se faire de la
publicité à grande échelle. Certains évoquent des personnalités
célèbres du logiciel libre, comme
Tristan Nitot,
ou des associations comme
l'AFUL.
Il est question également de la presse informatique institutionnelle, comme
Le Monde Informatique
et 01 Informatique.
Quelqu'un parle également de
LWN,
c'est-à-dire Linux Weekly News.
Plus technique, mais j'ai oublié un certain nombre d'éléments.
David a évoqué un programme qui, entre autres, lançait des
requêtes DNS. Il y avait un problème qui s'est traduit
par le fait que le programme a effectué énormément de requêtes
DNS pendant les quelques heures où il a tourné. Il en a effectué
tellement que le compteur, un entier à 32 bits, a bouclé
et que la valeur finale de ce compteur était de -17 milliards
de requêtes. Oui, moins dix-sept milliards.
Un site qui attire beaucoup de blogueurs, c'est
Skyblog.
Il y a même eu le blog de Miss France (la nouvelle ou l'ancienne ?
nous n'avons pas réussi à être sûrs). Mais ce blog
a été supprimé de Skyblog. Heureusement pour vous,
j'ai retrouvé
un autre blog
qui donnait l'adresse d'un
miroir
du blog d'origine.
Sur un autre blog, on peut trouver
une photo
où l'on voit les candidates rassemblées, quelques-unes
faisant un geste... particulier. Il paraît que quelqu'un
a mesuré et étudié cette image de près pour savoir quelles
miss avaient pu faire ce geste et lesquelles pouvaient être
mises hors de cause.
Guillaume a changé d'équipe au sein de l'INRIA (mais il a toujours
le même statut). Maintenant, il travaille en
OCaml.
La philosophie
d'OCaml
et des langages fonctionnels est résolument différente
de celle des langages procéduraux comme Perl. Notamment,
OCaml
a très souvent recours à la récursivité. Par exemple,
pour les
Tours de Hanoï,
il suffit de dire :
Si on sait résoudre le problème pour n-1 disques,
on sait le résoudre pour n disques, il suffit de
faire comme ci, comme ci et comme ça.
puis :
On sait résoudre le problème pour 0 disque, il suffit de ne
rien faire.
Ensuite, on convertit les deux énoncés en
OCaml,
on les rassemble avec un peu de colle syntaxique (très peu)
et on a un programme qui tourne.
Guillaume travaille en particulier sur la mise en parallèle
de tâches informatiques. Sujet qu'il ne connaissait pas
jusqu'à présent et qu'il découvre tout comme il découvre
OCaml. Il a participé pour cela à une réunion
à Pise, réunion qui s'est tenue en langue anglaise.
Autant dire que maintenant, il connaît tout sur tout dans
ce domaine, bien sûr !
Nicolas nous a cité de mémoire les tarifs
d'Oracle.
Il y avait le tarif de base, plus le tarif de quelques options
du genre sauvegarde à chaud, basculement automatique vers
une autre machine en cas de panne, etc. Je n'ai
pas retenu les valeurs, mais je me souviens que le montant
total de la redevance par CPU était largement supérieur
au prix du matériel. De plus, certaines options n'ont pas de
sens si vous les achetez pour une seule CPU (genre, basculement
d'une machine à l'autre). Mais vous pouvez avoir une
anti-sèche.
Avoir quarante instances d'Oracle qui tournent simultanément,
ce n'est pas un problème. Avoir quarante instances d'Oracle
qui démarrent simultanément, cela se sent, même avec du
matériel performant.
Pour réagir contre le problème des redevances Oracle, quelqu'un
(pas un participant à la réunion)
a décidé de faire migrer un certain nombre de tables,
mais pas toutes, de son application d'Oracle vers
PostgreSQL.
Un collègue lui a alors fait remarquer
qu'il y aurait des problèmes pour faire des jointures entre
une table Oracle et une table PostgreSQL.
Nous ne savons pas quelle est l'attitude d'Oracle face à
ceux qui veulent migrer vers PostgreSQL. En revanche, nous
avons évoqué l'attitude de Microsoft vis-à-vis de ceux
qui veulent migrer vers du logiciel libre. Les commerciaux
de Microsoft se montrent hautains et dédaigneux
et annoncent catégoriquement à leur futur ex-client :
« Vous allez vous planter. » Cela ne fait pas
plaisir au futur ex-client, mais cela ne l'incite pas
à revenir vers Microsoft.
Il y a déjà pas mal de temps,
il avait été question d'une personnalité
assez polémique du logiciel libre :
Theo de Raadt.
Il est question cette fois-ci d'une personnalité
encore plus folklorique,
D.J. Bernstein.
Il écrit de très bons logiciels, comme
djbdns,
mais il faut supporter sa personnalité et c'est très
difficile pour ceux qui l'ont cotoyé.
À tel point que certains préfèrent ne pas utiliser
les logiciels écrit par
DJB,
alors que, rappelons-le, ce sont de très bons programmes.
Un point à noter à propos des programmes de DJB :
ces programmes s'installent directement à la racine
de votre système de fichiers. Ou plus exactement,
le répertoire dédié au programme se trouve directement
à la racine. Comme le fait remarquer quelqu'un, au moins,
D.J. Bernstein n'alimente pas le troll /usr/local
contre /opt.
Au fait, quelle est l'étymologie de ce répertoire /opt ?
Certains assurent que cela provient de l'exclamation de
certains administrateurs système : « Oh putain ! »
David nous évoque une blague connue concernant l'installation
de FreeBSD (ou est-ce OpenBSD ?). À un moment de l'installation,
le programme demande si l'on veut installer les logiciels
ou si l'on veut interrompre l'installation. Il demande
donc :
Install all packages? <A>ll <Q>uit
Notez bien que votre clavier est un clavier français, mais
que le programme d'installation considère qu'il s'agit
d'un clavier américain.
Malgré cela, l'installateur de FreeBSD est
plus convivial que celui des deux autres xxxBSD.
En effet, avec ces deux derniers, une fois le strict minimum
installé, vous vous retrouvez avec un écran presque noir, avec
juste un dièse en haut à gauche. Et c'est à vous de vous débrouiller.
Certains en viennent à parler en bien de l'utilitaire dselect
de Debian.
Anthony nous annonce que le
prochain numéro
de Linux Pratique
va comporter une
interview de son supérieur.
Et pourquoi pas dans Linux Magazine ? C'est Denis, le rédac-chef
de Linux-Mag qui en a décidé ainsi : Linux-Mag a une
image trop technique, tandis que Linux Pratique est
plus grand public. Donc, il a cherché à assurer une
diffusion plus large de l'article.
L'une des grandes nouveautés de Windows 2003, c'est que
lors de l'arrêt, la machine demande à l'opérateur
de saisir un petit texte d'explication pour préciser
à quoi est dû cet arrêt. Cela existait déjà avec
Unix et la commande :
shutdown -h now 'On arrête tout !'
On doit également saisir un texte d'explication
au redémarrage, comme s'il fallait se justifier
pour redémarrer une machine. Certains imaginent
la scène d'un administrateur qui doit redémarrer
une batterie de serveurs après une coupure de
courant en salle machine. Le pauvre admin
va être obligé de taper : « Redémarrage
après coupure de courant » sur chacun de ses
serveurs. Et pas question de faire <Ctrl-C>
sur le premier serveur et <Ctrl-V>
sur les suivants !
Microsoft a annoncé qu'il arrêtait le support de
Windows NT au 31 décembre 2005. Cela dit,
il reste encore de par le monde énormément
de machines qui fonctionnent encore sous Windows NT.
Et même parmi les collègues directs des participants
à la réunion.
Plus loin dans la paléontologie : un participant
a raconté qu'il avait été amené à s'intéresser à
Gecko.
Un autre participant a entendu
« GCOS ».
[ Un dinosaure à la place d'un lézard, finalement,
la confusion s'expliquait ! ]
En parlant de la traduction de Perl Best Practices,
ainsi que celle de
Programming Perl 3
il y a quelques années, Jérôme signale que BooK a enrichi sa configuration de
vi
pour déclarer des
abréviations
pour les mots et les expressions
qui reviennent fréquemment : « Mh » pour « Malheureusement »,
« xc » pour « exception », et ainsi de suite.
David et moi avons entendu parler de la config vi de
Damian Conway, qui utilise le mécanisme des abréviations pour
corriger les fautes de frappe fréquentes. Par exemple, pour
les fautes de frappe que certains participants à la réunion ont
avouées, on aurait une config vim donnant :
Parfois, les fautes de frappe donnent des résultats curieux.
Quelqu'un avait mal positionné sa main droite. Lorsqu'il
a voulu rediriger la sortie vers more, cette
sortie a abouti sur le programme lire (qui a
le défaut de ne pas exister sur un Unix standard).
Nicolas en profite pour évoquer de nouveau
zsh
et signaler que dans ce shell, les alias fonctionnent
également au milieu et à la fin d'une ligne de commande.
Il est donc possible de définir M comme étant
l'alias de | more (et comme en plus more
est un lien vers less...).
Digression : fin 1992, début 1993, j'ai travaillé sur HP-UX
et au début, le shell que nous utilisions était le Bourne shell
variante années 70 (pas le Bourne again
des années 90). Le projet sur lequel je travaillais avait
une hiérarchie de répertoires avec des niveaux superflus
et des noms à rallonge.
Mes collègues et moi avions constaté
qu'il n'était pas possible d'écrire un script shell
pour changer de répertoire, puisqu'il est exécuté
dans un sous-processus. Comme nous ne disposions pas encore
des alias de ksh, la solution aurait dû
être l'utilisation de « . »
pour éviter la création d'un
sous-processus, mais j'avais
trouvé un mécanisme équivalent aux alias. En codant
Pour en revenir à l'intervention de Nicolas, j'ai essayé
de m'inspirer de cette astuce et de coder :
export M='| less'
ls -l $M
dans mon Bourne again shell années 90
et je me suis fait jeter :
ls: |: no such file or directory
ls: less: no such file or directory
Comme quoi, zsh est mieux que sh années 70.
Il a été question d'un logiciel livré par une société
extérieure, logiciel qui devait être installé
« clés en mains ». Lorsque la société est
partie, on s'est aperçu qu'ils n'avaient prévu
aucune procédure de sauvegarde. Par ailleurs,
ils n'avaient pas donné les mots de passe pour
les administrateurs. Heureusement (?) pour ce
dernier point, le client n'a pas été bloqué longtemps :
les mots de passe étaient les mots de passe par
défaut.
Il a été question de SGML. Il est possible d'obtenir des
sources plutôt tordus en SGML. Prenons
l'interdiction de faire chevaucher
deux zones délimitées par des balises, sauf si l'une
de ces zones est contenue en totalité dans l'autre.
Cette interdiction rejette par exemple :
blabla <x> blabla <y> blabla </x> blabla </y>
tout en acceptant par contre :
blabla <x> blabla <y> blabla </y> blabla </x>
Malgré cela, le source suivant :
blabla <x> blabla &toto; blabla </y> blabla
peut très bien être valide en SGML, si l'entité &toto;
a été définie comme :
écrire le texte « blabla »,
fermer la balise « x »
écrire le texte « blabla »,
ouvrir la balise « y »,
écrire le texte « blabla ».
Le but était, entre autres, de sous-traiter la saisie de
texte dans des pays asiatiques et de payer cette saisie au
nombre de caractères, en réduisant la note à payer
par un mécanisme d'abréviations différent de
celui présenté plus haut.
Lorsque l'on écrit, par exemple :
Pour créer l'utilisateur nom_user, tapez la commande :
addusrnom_user
vous avez compris que nom_user est un « paramètre générique »
ou un placeholder et qu'il faut le remplacer par la valeur
véritable. Éh bien ce n'est pas évident pour tout le monde. Lorsque l'on
demande à certaines personnes de créer l'utilisateur mdupond
pour Michel Dupond, ces personnes créent en fait l'utilisateur
nom_user. Pour éviter autant que possible ce genre
de problème, Jérôme fait utiliser les variables d'environnement,
lorsque cela convient. Par exemple, pour indiquer à un utilisateur
comment avoir la liste de ses processus, Jérôme lui fait
taper :
ps -u $LOGNAME
au lieu de :
ps -unom_user
Éric nous fait part d'une déconvenue. Il a découvert douloureusement que
dpkg
affiche les caractéristiques d'un
paquet avec l'option -i (infos), alors
qu'il était convaincu qu'il fallait utiliser l'option
-p (print). La découverte est d'autant plus
douloureuse que l'option -p existe bel
et bien, mais elle signifie purge.
[ La prochaine fois, essaie les options longues GNU avec un double tiret. ]
Il a été question de problèmes humains, comme le rôle d'un chef.
Le rôle d'un chef est de prendre des décisions. Pas forcément
de prendre la bonne décision, mais de prendre une décision et
de l'assumer. Après cela, il faut un juste équilibre pour
éviter les deux extrêmes, à savoir le chef girouette qui vire de 180 ° dès qu'il
a la moindre impression d'avoir pris une décision qui n'était
pas optimale et d'autre part le chef borné qui a pris
une décision et qui s'y tient coûte que coûte, même
si les circonstances sont totalement bouleversées.
Il faut savoir que très souvent, un chef est jugé plus
sévèrement par ses subordonnés que par ses supérieurs.
Le problème, c'est que si quelqu'un prend une mauvaise décision,
il y aura quelqu'un d'autre pour le lui reprocher. Tandis que
si l'on ne prend pas de décision, personne ne le reprochera
à cette personne, même si l'immobilisme se révèle pire
qu'une décision dans le mauvais sens.
Et c'est à cela que servent les réunions dans certaines entreprises.
On se réunit, on fait semblant de prendre des décisions, mais
on n'en prend aucune. Parfois, à l'issue d'une réunion dans
laquelle rien de concret ne s'est dit, quelqu'un suggère,
à titre de conclusion : « C'est ça, on fait comme
on a dit ? »
Et il y a eu quelques histoires sur les rousses, surtout
d'origine normande, mais nous les tairons ici pour ne pas
choquer les âmes sensibles.