Présents à la réunion, en fonction de la place autour de la table
David (L),
David (Sniper),
Nicolas,
Emmanuel,
Guillaume,
Jérôme,
Anthony,
Éric,
moi,
Boris (un nouveau),
Charles-Édouard (un autre nouveau),
avec une brève apparition de Christelle.
Nous avons mangé des oeufs mayonnaise, des
blue-cheeseburgers, des entrecôtes (entre simple quotes,
on n'est pas des gloutons), des tartiflettes, des frites,
des mousses au chocolat, des charlottes au chocolat ainsi
que le dessert qui fait peur, des tartes...
« Tatiiiin !!! ». Il ne restait plus de
meringue, donc les habitués ont été privés de nègre en
chemise. Nous avons bu de la Paulaner, de la Blanche, de
la Stout, d'autres bières, du Pepsi (en 25), du Coca (en
50), de l'Orangina, deux margaritas et deux Speedys. Et
Sniper a payé sa tournée.
Dans les jours qui précèdent
la réunion, Sniper a fait appel aux bonnes volontés pour
tenir le stand des Mongueurs de Perl à Solutions-Linux.
Le problème s'est nettement compliqué lorsque, pour des
raisons professionnelles, Sniper a dû annuler les congés
qu'il avait posés à l'occasion du salon. Comme il n'y a
que moi de disponible et pendant deux jours seulement,
Sniper pense qu'il vaut mieux prévenir tout de suite les
organisateurs et de les avertir que nous serons présents
un seul jour, le mercredi 1er février.
Sniper se pose également le
problème de savoir ce que nous aurons à présenter sur le
stand. Il n'y a aucune annonce précise à faire : les
dates des Journées Perl ne sont pas encore connues.
Guillaume indique qu'il lui reste encore quelques
Dossiers Linux-Mag, ainsi que des T-shirts et
des sacs des Journées
Perl 2004. Il serait alors possible de les vendre sur
le stand. Sniper a également pensé à faire graver des
CD-ROM avec les articles déjà parus ou bien avec un mini-CPAN.
Ces CD-ROM seraient en vente à un prix dérisoire, mais un
prix quand même, le but étant de décourager les visiteurs
qui prennent tout ce qu'ils trouvent sur les stands sans
en avoir véritablement l'utilisation.
La traduction
de Perl Best Practices est quasiment
terminée. Jérôme a tout fini. Quant à Philippe et moi, il
ne reste plus que quelques chapitres à relire une ultime
fois et à livrer à l'éditeur. Il reste néanmoins une tâche
qui ne concerne pas directement le livre, mais que nous
devons effectuer, y compris Jérôme : constituer un
fichier contenant tous les extraits de code provenant du
livre, ce qui évitera aux lecteurs de taper ce code.
J'avoue que je n'ai pas regardé le contenu du fichier
équivalent pour la version originale. Jérôme l'a regardé
et il a vu que les extraits de code comportaient en
supplément des appels de module et des déclarations de
variable, de façon que le code puisse compiler et
s'exécuter. Cela dit, il y a quand même quelques
programmes d'exemple que nous avons testés. Jérôme a
repris l'exemple de programme
XS (dans lequel il a trouvé des erreurs) et moi, j'ai
testé l'exemple d'utilisation du module IO::Prompt
pour montrer aux lecteurs francophones comment obtenir une
réponse O/N à la place d'une réponse Y/N. Mais j'émet
quelques doutes sur certains morceaux de code, par exemple
celui où l'on trouve une variable
external_results puis une variable
extrenal_results.
Lorsqu'il s'est mis à
l'oeuvre, Jérôme n'a pas tout compris dès le début quant à
l'organisation mise en place pour la traduction. Par
exemple, les premières fois qu'il a constaté des erreurs
dans la version originale, il les a signalées directement
sur le site
d'O'Reilly, sans les mentionner dans le fichier
errata présent dans l'arborescence CVS. Or, la page
des errata n'a pas été mise à jour depuis juillet
2005. Donc, Jérôme n'a plus de trace des erreurs qu'il a
trouvées. En fait, moi, j'ai commencé à remplir le fichier
errata pour mon usage personnel, comme un
brouillon avant de les saisir sur le formulaire O'Reilly.
Et moi aussi, j'ai envoyé des errata courant septembre qui
ne sont toujours pas apparus sur la page. Mais j'ai encore
le texte de ces errata. Et c'est seulement ensuite que
j'ai pensé qu'il serait utile de mettre ce fichier sur le
serveur CVS, pour que Philippe et ultérieurement Jérôme
soient au courant des erreurs que j'ai détectées et qu'ils
puissent y inscrire les leurs.
Ce qui nous a étonné lors de
la traduction, c'est le format utilisé pour le source des
textes. Nous savions que les éditions O'Reilly
utilisaient FrameMaker et nous croyions que ce logiciel
utilisait un format binaire. Or, nous avons pu constater
que le format FrameMaker (ou peut-être un format
FrameMaker) est un format texte, lisible par un être
humain normal. Cela dit, Jérôme et moi préférons de loin
le format
POD.
Nous avons évoqué les articles
passés et à venir. Normalement, ceux qui sont abonnés à
la liste des auteurs de Linux-Mag sont au courant des
réactions des lecteurs sur ces articles. Mais Guillaume ne
cherche plus à lire cette liste, la quantité de messages à
lire est trop importante pour le bénéfice qu'il en retire.
Jérôme a reçu un message personnel de Denis Bodor, ce qui
lui a évité de lire les messages de la liste auteurs. Et
ce message explique que les articles de la série
production ont été bien accueillis par les lecteurs.
Jérôme avait une certaine appréhension, surtout à cause du
paragraphe introductif de l'article sur SPIP :
Un homme à abattre : le héros.
Pour les articles à venir, il
y a bien entendu la suite des articles de production.
Quand David (L) est arrivé, Sniper lui a demandé quelles
étaient ses intentions au sujet de l'article sur DBI
qu'il avait prévu d'écrire. David a expliqué qu'il
n'avait plus vraiment beaucoup de temps à consacrer à cet
article et Sniper a donc offert de reprendre cet article.
En revanche, Sniper laisse tomber l'article sur
xchat, car l'API change si souvent et si
profondément qu'un article sur xchat serait en
grande partie obsolète à la date de parution de la revue.
Pourquoi David n'a-t-il plus
de temps pour rédiger des articles ? Parce qu'il a
pris en charge la rédaction des résumés
hebdomadaires de la liste P5P. Même s'il alterne la
rédaction de ces articles avec Adriano Rodrigues
Ferreira et parfois Sébastien, cela lui
prend quand même une bonne partie de son temps libre. Mais
il estime qu'il est important de rédiger ces
comptes-rendus, pour montrer au monde du logiciel libre
que la communauté Perl travaille, aussi bien sur
Perl 5 que sur Perl 6, même s'il n'y a pas
d'annonces spectaculaires.
Un projet Perl qui va avoir du
mal à avancer, c'est Ponie. Nicholas Clark a
changé récemment de travail et il ne bénéficie donc plus
des conditions avantageuses qui lui permettaient de
consacrer du temps à Ponie. On recherche donc un nouveau
pumpking pour Ponie.
David a évoqué une autre
discussion issue de P5P. Dans le cadre de la mise au
point de la version 5.10, il a été prévu d'introduire la
fonction say et l'opérateur err issus de
Perl 6, mais faciles à introduire en Perl 5.
Mais des voix se sont élevées sur la liste P5P contre ces
opérateurs, car ils ne respecteraient pas le principe de
la compatibilité ascendante et qu'ils allaient casser les
20 à 30 modules de CPAN qui avaient défini une
fonction avec l'un de ces deux noms. Elle a bon dos, la
compatibilité ascendante. S'il fallait la respecter
strictement, il serait impossible de faire évoluer un
logiciel.
David et moi avons parlé du rôle du dollar (et
de l'arobase et du pourcent) en Perl. David
trouve que la syntaxe de Perl aurait pu se passer
de ces caractères. L'argument invoqué pour les
justifier est que la présence de ces caractères
évite le conflit de nom avec un mot-clé du langage.
Par exemple, il est possible de définir une
variable $print sans provoquer de conflit
avec la fonction d'impression. À la lueur de la
discussion évoquée ci-dessus, David trouve que
cet argument ne tient pas. Il peut exister des conflits
de nom entre un sous-programme utilisateur say
et la fonction intrinsèque say, et il
faut apprendre à vivre avec. Donc, il n'est pas
beaucoup plus difficile d'apprendre à vivre avec
les conflits entre variables et fonctions intrinsèques.
D'ailleurs, lorsque de temps à autre David travaille
en C, en Ruby ou en JavaScript, il apprécie de lire des
sources de programme où les noms de variable
ne sont pas préfixés d'un sigil.
Et pour ceux que l'éventualité d'un conflit de nom
dérange au plus haut point, il y a toujours la ressource
de se mettre à PL/1, le langage dans lequel il
est permis d'écrire:
IF ELSE = THEN THEN IF = THEN ELSE IF = ELSE
Je cite un autre argument en faveur des sigils, à savoir
qu'il permet de spécifier l'interpolation d'une variable
dans une chaîne entre apostrophes doubles. David me
répond à juste titre que cet argument ne permet
pas de justifier les sigils en dehors
des chaînes entre apostrophes doubles.
David rappelle qu'il a
manqué de nombreuses conférences YAPC::Europe pour
diverses raisons : urgence professionnelle, conflit
de date avec la rentrée scolaire de ses enfants, etc. Il
espère qu'il pourra aller à la conférence de Birmingham.
Si cela se réalise, il sera allé à toutes les conférences
au Royaume-Uni et à aucune autre, à part évidemment Paris
en 2003.
Il
a été question de Birmingham dans Use Perl pour signaler
qu'ils ont refait leur
site web. Je suis allé voir la première page de ce
site et j'ai vu la liste des prochains événements. Dans
cette liste, on pouvait trouver la date de YAPC::NA, mais
pas celle de YAPC::EU.
Nous avons évoqué Autrijus / Audrey.
L'un des participants l'a appris, car sur le canal IRC
francophone où il était, quelqu'un a signalé que quelque
chose d'intéressant venait de se passer sur un canal
anglophone. Le participant à la réunion va voir sur le
canal correspondant qui, par chance, était ouvert dans une
autre fenêtre. Et là, il lit une annonce d'Autrijus
signalant qu'il fallait désormais l'appeler Audrey et que
c'était une étape dans son trans-gender
process. Mais rappelez-vous, quelques mois plus tôt,
c'était OSCON-Europe
et, comme
BooK l'a écrit dans son compte-rendu, il y a eu une
réunion pour savoir comment augmenter le nombre et
l'importance des femmes dans le monde du logiciel libre.
Maintenant, on sait comment faire pour augmenter leur
nombre.
Cela dit, dans le groupe
Paris.pm, nous avons une ancienne hôtesse de caisse. Son
parcours professionnel a eu beaucoup de péripéties et elle
travaille maintenant dans l'informatique, mais elle n'a
pas changé : elle porte toujours la même barbe et
elle continue à soutenir le groupuscule de libération de
la Bigorre. Cela dit, à l'époque où elle travaillait dans
un supermarché, elle devait porter des vêtements aux
couleurs de l'enseigne et reçut comme ses collègues
féminins une note de service lui demandant ses
mensurations pour sa jupe.
Emmanuel a toujours le même téléphone portable qu'il
nous avait présenté il y a quelques mois. Mais cette
fois-ci, grâce à
Jarkko Hietaniemi,
il est capable d'exécuter :
print"Hello world\n";
Éric a rendu le livre de
Sniper sur la programmation Perl en environnement Windows.
Mais Sniper n'avait pas de sacoche pour l'emporter chez
lui. Il a donc cherché à le prêter à quelqu'un d'autre et
c'est David qui l'a pris. L'auteur est Dave Roth, donc quelqu'un
qui connaît très bien l'utilisation de Perl dans un
environnement Windows. En jetant un coup d'oeil à
l'intérieur, David a vu un passage sur la programmation
GUI en Windows, avec une palanquée de constantes à
utiliser pour la définition des fenêtres, des boutons ou
autres éléments graphiques. Si les environnements
graphiques ont facilité la tâche aux utilisateurs novices,
en revanche, c'est pénible pour un programmeur, novice ou
expérimenté.
Tous les logiciels de
courrier électronique permettent de classer les messages
dans des dossiers, à l'image des hiérarchies de
répertoires et de dossiers. Mais existe-t-il un logiciel
qui traite les messages comme des éléments d'une base de
données, de manière à faire des sélections multi-critères
(plage de date de réception, jointure de l'utilisateur
From: avec une table groupe de travail,
expression régulière sur le champ Subject:,
etc.) ? J'ai l'impression que cela n'existe pas. Update de Jérôme : Evolution peut permettre de
faire ce genre de chose avec les dossiers virtuels (à
créer sur des critères de recherche). Ça peut même
fonctionner sur plusieurs dossiers et sous-dossier au cas
où vous aviez déjà commencer à ranger autrement. Cela
peut donc permettre d'accéder à la même information (le
message) soit selon la date (dans le dossier d'arrivée),
les destinataires, le sujet, voire tout en même temps.
Pour les fichiers de
configuration, il existe deux principes globaux pour
spécifier des configurations de type « règle ».
Le premier
principe, utilisé entre autres par IPFilter,
consiste à affiner les règles au fur et à mesure. On
commence par fermer tous les ports IP, puis on spécifie
dans quelles circonstances on peut ouvrir tel ou tel port.
Les règles sont donc écrites du général au particulier. Le
second principe consiste à énumérer les règles en les
listant du particulier au général et le logiciel adopte la
première règle qui s'applique. Et maintenant, imaginez
que quelqu'un utilise un logiciel de sauvegarde basé sur
le second principe, mais que l'utilisateur pense qu'il
s'agit du premier principe. La première règle est :
on ne sauvegarde rien. Puis la deuxième règle est :
...
David a évoqué les
statistiques de charge telles que l'on peut les voir sur
top. Sur la plupart des machines, une charge (load) de 5 est déjà exceptionnelle et
préoccupante. Avec une charge de 20, David avait des
difficultés à utiliser vi en mode saisie de
texte : il tapait son texte et il ne voyait rien
apparaître à l'écran pendant plusieurs secondes, puis tout
d'un coup, tout ce qu'il venait de taper s'affichait sur
son écran. En revanche, sur une machine Solaris,
même avec une charge de 300, il pouvait taper du texte et
les caractères s'affichaient à un rythme régulier, quoique
assez lent. L'un des principaux avantages de Solaris,
c'est que le système résiste assez bien aux pics de
charge, en tout cas beaucoup mieux que tous les autres
systèmes.
David a évoqué un problème
analogue, sur sa machine FreeBSD personnelle. Il
voulait faire son reboot périodique (1
fois par an), donc il voulait arrêter la machine
proprement. Il a commencé par envoyer un renice
pour changer les priorités de deux daemons et avoir ainsi le champ libre. Sauf
que la nouvelle valeur qu'il a attribuée était la valeur
20, qui signifie « ultra prioritaire » sur
FreeBSD et « priorité ultra basse » sur d'autres
Unix. Il s'est retrouvé avec deux processus qui prenaient
tous les cycles utilisateur à eux deux, sans jamais en
lâcher pour les autres. Il a donc dû faire un arrêt
« crade ».
On rappelle que le langage
de commande de Windows sait enchaîner des commandes avec
un pipe. Cela existait déjà à l'époque de
COMMAND.COM. [ J'ai voulu ironiser en disant
que oui, cela existe si on a installé Cygwin, mais ma
plaisanterie a fait « flop » :-( ]
Nous avons évoqué la keynote de Steve Jobs lorsqu'il a voulu
présenter les nouveautés de chez Apple. C'est ainsi qu'il
a annoncé la sortie de nouvelles machines il a fait la
comparaison avec les machines existantes (les anciens
Macintosh ou les machines x86 de même gamme ? peu
importe) et a déclaré qu'elles étaient 4 à 5 fois
plus rapides. Puis il y a eu un grand silence tout blanc
de 3 ou 4 secondes. Steve Jobs a répété que les
nouveaux Macintosh étaient 4 à 5 fois plus rapides.
Et il y a eu de nouveau un grand silence. Et il a
continué sa keynote. Il s'attendait
peut-être à un tonnerre d'applaudissements et
d'acclamations ?
Christelle est venu nous
voir parce qu'elle a un problème : elle cherche à
récupérer des vidéos qui sont stockées sur un disque
Macintosh. D'après ce que j'ai compris, ce n'est même pas
un disque récent avec un système de fichiers Mac OSX donc
Unix, c'est un système de fichiers HFS, caractéristique de
Mac OS9 ou antérieur. La seule façon d'accéder au contenu
de ce disque semble être par FTP, mais compte tenu de la
taille des fichiers vidéos, la récupération risque d'être
très longue.
David ayant parlé de Ruby, je lui raconte que je me
suis brièvement intéressé à ce langage.
Je me souviens avoir compilé l'interpréteur Ruby
sur ma machine le 29 février 2000, une action
plutôt casse-cou, car Ruby est d'origine japonaise
et le 29 février, de nombreux systèmes japonais
ont subi divers plantages à cause du bug Y2K.
Au début, le langage me semblait bien fait, avec le
fait que tout est un objet, y compris les données les
plus basiques comme les entiers. Puis j'ai eu
un problème. J'ai voulu faire des calculs un peu
long du genre :
et cela plantait à la compilation. Cela plantait parce que l'interpréteur
considérait que j'avais terminé mon expression à la fin de la ligne
et il insérait un point-virgule implicite à cet endroit. Puis, sur
la ligne suivante, l'interpréteur constatait que je commençais
une instruction par un opérateur interdit, donc il m'envoyait
des insultes. En fait, il aurait fallu que je dispose ces
calculs ainsi :
C'est nettement moins lisible, non ? D'autre part,
je considère que le choix du nombre d'espaces et de la présence
d'un saut de ligne relève du style et non pas de la syntaxe.
Finalement, comme le fait remarquer David, si l'on veut
inhiber l'un des termes en le mettant en commentaire,
la première disposition est beaucoup plus pratique.
C'est ce problème de passage
à la ligne qui m'a fait abandonner Ruby
au bout d'un mois. Mais il y avait autre chose qui me
dérangeait. D'un côté, il y avait la communauté Perl qui
s'était construite d'elle-même progressivement au fil des
12 ans d'existence de Perl [ je rappelle qu'il
s'agit de mes souvenirs de début 2000. ]. De l'autre
côté, il y avait les quelques amateurs de Ruby qui
voulaient concurrencer Perl et du jour au lendemain
construire une communauté avec tout le folklore associé.
Cela me paraissait très artificiel. De plus, ce folklore
était basé sur une agressivité quasiment oedipienne à
l'encontre de Perl. L'exemple le plus flagrant est
peut-être le slogan de Ruby :
There's a better way to do it.
Mais il
semblerait qu'ils se soient assagis depuis cette époque.
David n'avait en effet pas entendu parler de ce slogan.
Emmanuel a un tout petit peu
parlé de l'install-party organisée par Parinux. Il y avait
plus de participants que prévu et nettement moins
d'animateurs que prévu. Cela s'est-il bien passé, de façon
fluide et sereine ?
Nous avons évoqué le
changement d'employeur, en particulier l'étape de la
démission. On peut envoyer sa lettre de démission par
lettre recommandée avec accusé de réception. On peut
également la remettre en main propre avec signature d'un
reçu. Que faire quand le destinataire refuse de signer le
refus ? Il faut faire le tour des futurs ex-collègues
présents à ce moment-là pour qu'ils témoignent par écrit
que vous avez présenté une lettre de démission et que
votre chef a refusé de la prendre.
Un participant à la réunion
a évoqué la remise (acceptée) de sa lettre de démission.
C'était lors d'une réunion informelle, peu de temps après
la démission d'une autre personne. Le chef aborde le
Mongueur et commence à lui dire :
Tu te
rends compte que xxx a démissionné ?
Ce à quoi le Mongueur répond :
Justement, il faut que je te remette ceci.
Il lui tend sa lettre de démission et,
paraît-il, le chef en est resté coi pendant plusieurs
minutes.
Une fois la lettre déposée,
que se passe-t-il si le démissionnaire veut quitter la
boîte tout de suite et que son chef veut qu'il effectue sa
période de préavis jusqu'au bout ? Si le
démissionnaire ne se présente pas à son travail, cela
constitue une faute professionnelle grave, susceptible de
donner lieu à un licenciement sans préavis. Et cela
change quoi pour le démissionnaire ? Il n'est plus
obligé de retourner dans son ancienne société, voire, il
est obligé de ne plus retourner dans son ancienne société.
Le seul risque, le seul argument avec lequel l'ancien
employeur peut tenter de faire levier, c'est le
remboursent des congés payés qui n'ont pas été pris.
Jérôme a évoqué le bon goût
et surtout le mauvais goût en matière d'habillement. Le
mauvais goût, c'est par exemple l'utilisation des rayures
sur plus d'un vêtement ou accessoire. Juste à côté de lui,
se trouvait Éric, qui portait une chemise à rayures et une
cravate à rayures.
Éric commençant à récriminer, certains ont voulu le
faire taire. Mais les menaces n'ont pas pris,
car le lancer de nains est illégal, donc nous ne pouvons
pas y avoir recours.
Lors de son bref passage, Christelle a évoqué son travail
dans la communication, ainsi que son ancien travail
dans le journalisme. Les deux métiers sont assez
semblables, la différence principale est que dans
la communication, on pratique le mensonge par omission.
Et c'était le premier jour des soldes. Jérôme en a profité
pour acquérir quelques costumes de haute qualité, mais qui
ont l'avantage certain d'être à sa taille, et ce, sans
retouche majeure. Les autres n'ont pas signalé s'ils
avaient fait des achats.