Par Sainte Barbe, vive la sape !
Un historique de toutes nos réunions
Table des matières
La voix du secrétaire (Jean)
Éh oui, on ne se refait pas. Ça fait une paie que j'ai défendu la
patrie en jouant au démineur en grandeur nature, sous la pluie, dans
le vent et les genoux dans la boue, mais le 4 décembre est resté
pour moi la Sainte-Barbe, l'occasion de faire la bringue et de manger
un bon coup.
Présents à la réunion, par ordre approximatif d'arrivée :
- BooK,
- Nicolas,
- moi,
- Eric,
- Olivier,
- Stéphane,
- Sylvain,
- Charles,
- Philippe (Bricout),
- Briac,
- Romuald,
- Isabelle,
- François (le collègue d'Emmanuel),
- David (notre tsar),
- et D@vid.
Nous avons mangé des œufs mayonnaise, des moules, des chicken-tavern,
des blue-cheese burgers, des bacon cheese burgers, des pavés de bœuf,
des magrets de canard, des salades, des nègres en chemise, des tartes
Tatin et des glaces ou sorbets. Nous nous sommes désaltérés avec de la
Kriek, de la Warsteiner, de la Stout, du Pepsi-Cola, et une
Margarita. Les cafés (heureusement qu'il y a une soucoupe sous chaque
tasse) étaient offerts par la maison.
Eric nous a fait part de ses souvenirs à l'occasion de la
conférence Apache
Il a été question de Perl et de sujets
connexes. Nous avons également parlé
d'Internet, d'informatique et
de sujets divers dont une bonne partie
sur la langue française.
- La conférence Apache
s'est déroulée à Las Vegas et Eric y a participé.
Il a bien entendu visité Las Vegas et ses casinos et il a bien entendu
tenté sa chance avec les machines à sous. Il a donc mis 25 cents
dans une machine, a actionné le levier et a été récompensé par le bruit
caractéristique des pièces qui tombent dans le bac métallique. Il a compté
ses gains : 1 dollar. « Il faut savoir s'arrêter quand il
est encore temps. » a-t-il dit. Il a donc empoché ses gains et est
allé se prendre un café (1,45 $).
- La date de la conférence a coïncidé avec celle des
Léonides.
Il s'agit d'étoiles filantes ayant pour origine le nuage de poussières laissé par la
comète Tempel-Tuttle.
Cette année, la configuration
était telle que les étoiles filantes seraient spectaculaires. Eric et
quelques autres ont donc quitté Las Vegas cette nuit-là, ont fait une
cinquantaine de kilomètres pour ne plus être gênés par la lumière ambiante
de Las Vegas et se sont installés en plein désert pour admirer les étoiles
filantes. Par moment il y en avait plusieurs par seconde. L'accompagnement
musical était assuré par les
coyotes
locaux.
- Comme cela a déjà été signalé, Jon Orwant a quitté
O'Reilly.
Par contrecoup, un certain nombre de livres en préparation ont
pris du retard et pas seulement ceux dont il s'occupait. Le livre
de Stas et d'Eric notamment a pris du retard. Lors de la conférence,
Stas et Eric en parlaient entre eux. Eric a dit sur le ton de la
plaisanterie à Stas : « Si tu veux, tu en parles à Tim O'Reilly,
il arrive justement pour sa keynote. » Stas a-t-il compris
qu'il s'agissait d'une boutade ? Toujours est-il qu'il a pris le
conseil d'Eric au pied de la lettre et qu'il a abordé Tim pour lui
exposer le problème. Du coup, ils ont obtenu une date pour la parution
du livre : mars 2003.
- D@vid s'est renseigné auprès de la banque de l'association au
sujet du paiement en ligne. Comme l'agence qui gère notre compte
est une petite agence, c'est la première fois que quelqu'un
leur pose la question. Du coup, ils ne veulent pas se lancer dans
une telle entreprise. Un autre problème est que, légalement, les
acheteurs ont un délai de quatre jours pour pouvoir annuler la
transaction d'achat, ce qui n'arrange pas les affaires de la banque.
Dans le cas des
conférences YAPC,
il est peu probable qu'un acheteur
renonce à son achat, mais la possibilité existe. La banque cherche
donc à avoir une garantie contre les annulations de transaction.
Éventuellement, nous pouvons prospecter auprès d'autres banques
pour savoir s'ils proposent le paiement en ligne, plus tous les
avantages que le Crédit du Nord nous offrait.
- Sylvain
vient de rédiger son article sur les modules. Stéphane
a été le premier à le relire, à le corriger et à proposer des
adaptations. Notamment, il a suggéré de présenter les modules pragmatiques
avec un exemple autre que
use strict.
L'exemple qu'il a
choisi est le module diagnostics. Comme Stéphane s'y attendait,
lorsque j'ai proposé mon lot de corrections, j'ai mordu à l'hameçon et
j'ai suggéré à Sylvain d'ajouter une remarque pour signaler que ce
module
permettait dorénavant d'avoir les diagnostics en français.
- D@vid s'est également proposé pour relire l'article de Sylvain,
mais il ne fonctionne pas sur la même échelle de temps que Stéphane
et moi. Il a extrait la version initiale de l'article, l'a lue et
relue un certain nombre de fois, a fait quelques corrections et a
envoyé un message à Sylvain pour lui faire part de ses remarques.
Seulement voilà, entre temps l'article a été modifié par Stéphane et moi...
- Il y a une autre chose que D@vid n'avait pas comprise.
L'architecture CVS
mise en place par Eric fonctionne en mode client-serveur, avec
ssh dans les coulisses (peut-on parler de protocole réseau ? de protocole de
session ?). D@vid croyait qu'il fallait se connecter sur le serveur
CVS pour ouvrir une session shell (cf rlogin), puis travailler sur place, le
répertoire central et le répertoire personnel de travail étant sur
la même machine.
- Une fois que
Sylvain
aura écrit son septième
article,
il faudra bien
que d'autres s'y mettent aussi. Philippe et moi avons commencé trois articles
sur les modules mais il y a encore beaucoup à rédiger. Olivier n'a
pas encore commencé l'article sur les listes qu'il avait l'intention
d'écrire ; en plus, il se demande s'il lui reste quelque chose
à raconter après l'article introductif de Sylvain. Heureusement,
Jérôme Quelin a déjà écrit deux articles, l'un sur les options de programme,
l'autre sur les tris (cf Guttman-Rosler)
et ces deux articles sont quasiment publiables en l'état.
- Dans notre article sur l'utilisation de CPAN, Philippe et moi exposons les
trois méthodes principales pour installer un module :
- CPAN.pm,
- CPANplus.pm,
- et la méthode traditionnelle avec gzip, tar et
la formule magique
perl Makefile.PL
make
make test
make install
Philippe est un adepte de l'une des deux premières méthodes alors que
j'ai l'habitude de la troisième. Philippe me demande si le
make install met à jour perllocal.pod.
Je réponds que la desccription du module est bien ajoutée
au fichier POD, mais que si une ancienne version existait, elle
n'est pas retirée pour autant. Quelqu'un demande s'il existe un
make uninstall. Briac répond que la fonctionnalité
a été retirée car il y avait trop de problèmes insolubles avec
les dépendances. On peut toujours taper make uninstall,
mais cela ne fera rien ; au moins, cela ne fera pas planter
votre machine.
- À son travail, Nicolas organise régulièrement des revues de code
avec ses collègues et ceux-ci ne prennent pas ces revues comme une
brimade permettant au chef d'asseoir son autorité, mais comme un moyen
de découvrir comment un expert s'exprime en Perl. Ils peuvent ainsi
améliorer leur style de programmation mais il reste encore certains
idiomes qu'ils ont du mal à digérer. Par exemple, le fait que l'on
puisse agglutiner des méthodes pour les exécuter en séquence :
LWP::Request->new($param1)->get($prm2a, $prm2b)->parse(%opt)->etcetera();
- Romuald cherche s'il existe un programme de calendrier / agenda / planning
en Perl. Pour ce qui est des calendriers, il existe plusieurs modules de
manipulation de date. En revanche, pour les agendas et plannings, Philippe (BooK)
ne sait pas si cela existe. Étant abonné à la
liste Date-time,
je sais qu'il existe un projet pour écrire une telle application mais je
n'ai pas pu me souvenir du nom pendant la réunion. Le projet s'appelle
Reefknot.
- Dans un autre sujet, Romuald nous a présenté un extrait d'un programme
où il « grignote » une chaîne de caractères par groupes de trois.
Le programme après simplification ressemble à :
my $chaine = 'azertyuiop';
while (my $extrait = substr($chaine, 0, 3)) # Oui, une affectation, pas un test d'égalité !
{
print "$extrait\n";
substr($chaine, 0, 3) = '';
}
Chez Romuald, l'utilisation du
substr
en tant que L-value fonctionne
la première fois, mais pas les suivantes. [ Cela dit, lorsque j'ai rédigé le
compte-rendu, j'ai essayé le bout de code ci-dessus et cela a très bien fonctionné
avec mon interprêteur 5.8.0. ] Pour contourner la difficulté, nous proposons
à Romuald d'utiliser une expression régulière ou bien
un substr à deux arguments en partie droite :
$chaine =~ s/^.{0,3}//;
$chaine = substr($chaine, 3);
- Philippe est en train de travailler sur un
module HTTP::Proxy.
Ce module lui permet de définir des traitements sur les en-têtes
HTTP, par exemple pour adapter la ligne User-Agent ou éliminer
le Referer. Ce module permet également de gérer les cookies.
La nouvelle version fonctionne avec les callbacks de
LWP::UserAgent,
donc le client peut recevoir le résultat de sa requête morceaux par morceaux,
ce qui permet au browser de commencer à mettre en forme la page web même
si les 18 méga-octets ne sont pas tous arrivés.
- L'une des difficultés qu'il a rencontrées est l'utilisation
conjointe de
vec
et de select
(la forme à 4 arguments).
Ces deux fonctions ont une syntaxe qui dérange nos habitudes perliennes.
Heureusement, le module
IO::Select
est un enrobage de select
qui permet de se passer de vec.
- Stéphane et Philippe ont voulu participer au
Quizz of the Week
de Mark-Jason Dominus.
Mais l'un comme l'autre, ils ont commis une bourde
dans un message qu'ils ont posté sur la liste. Du coup, maintenant, ils
adoptent un profil bas et tentent de se faire oublier. Pour des raisons
concernant ses autres activités et son temps disponible, BooK ne participe
plus au QOTW ni à Perl Golf. D'ailleurs, cette dernière
compétition semble en perte de vitesse. La dernière épreuve a commencé avec
une semaine et demie de retard et le nombre de participants se réduit comme
une peau de chagrin.
- Stéphane s'est fait remarquer également sur
P5P.
Il a écrit une
expression régulière avec une assertion look-ahead (sauf que pendant
la réunion il a dit look-behind) et il voulait capturer le
contenu de cette assertion dans $1. Comme il n'a pas réussi,
il a
posté un message sur P5P
pour signaler le bug. Il a rapidement
eu
trois
réponses
pour lui signaler qu'il avait mal placé ses parenthèses
de captures. Parmi les participants à la réunion, certains font remarquer
que les assertions (look-behind, look-ahead ou
autres) ont une longueur nulle, donc il ne fallait pas s'attendre à capturer
grand-chose.
Voir ci-dessous la suite de la discussion.
- Le
moteur de recherche de CPAN
est bien, mais il a parfois
des réactions bizzares. Par exemple, lorsque l'on lance une recherche
avec le mot-clé « LWP », on obtient, entre autres, un lien
vers LWCA. Lorsque l'on entre comme mot-clé un nom de module
composé, avec des ::, le moteur de recherche interprête
ces :: comme un délimiteur de mot et il effectue la recherche
sur chacun des éléments du nom de module. Et lorsque l'on connaît le
nom de façon sûre et précise, quelle requête permet de trouver ce
module ? C'est simple, répond quelqu'un d'autre. Il suffit de
taper l'URL http://search.cpan.org/search?dist=nom du module
ou http://search.cpan.org/dist/nom du module.
[ Post-scriptum de juillet 2018 : il faut maintenant utiliser
https://metacpan.org/module/nom du module.
]
- Parmi tous les modules triturant et charcutant du POD, le dernier sorti
est
Pod::POM,
où POM signifie « POD Object Model ».
C'est l'équivalent de
DOM pour XML,
cela permet de manipuler un document POD
avec une interface objet. À quoi cela peut-il servir ? Les avis sont
partagés. Pour les uns (moi, par exemple), le but est de faire de la programmation
objet parce que c'est à la mode, buzzword-compatible et tout et tout.
Pour d'autres (Eric), avec ce module plus un autre du genre
Template::Toolkit,
on peut écrire un convertisseur POD -> autre chose sans écrire une seule ligne
Perl.
- Nous avons évoqué les toutes premières réunions, début 1999. Il y a eu
la première réunion
à laquelle j'ai assisté. Je m'étais pointé au
Webbar
et j'avais demandé à une personne du Webbar où se trouvait la réunion Perl.
Elle n'avait pas pu me renseigner. En errant à droite et à gauche, j'étais
tombé sur deux gars qui avaient monté une start-up pour développer un
logiciel en Perl. Un peu plus tard, François D. nous avait rejoints.
Pendant ce temps-là, à la table d'à côté, il y avait David et Eric qui
tenaient leur réunion et se désolaient de ne pas avoir d'autres participants.
Heureusement, le quiproquo a été résolu en fin de soirée et nous avons
pu faire une vraie réunion à six.
- Avant cette réunion, il y en a eu une autre, qui s'est déroulée de
manière similaire avec un effectif de 1 + 1. David et Eric
se connaissaient depuis peu par courrier électronique et ils avaient
convenu de se rencontrer en face à face. L'ennui, c'est qu'ils
n'avaient pas prévu de signe de reconnaissance. Ils ont donc passé
une partie de la soirée chacun assis à une table avant d'établir le
contact.
- Il existe des comptes-rendus des réunions depuis la réunion à six
avec François. Il était prévu d'établir un tour de rôle pour la rédaction
de ces comptes-rendus. Eric a eu ainsi l'occasion
d'en écrire un.
Depuis la fin de 1999 il semble que mon tour revienne un peu plus
souvent que pour les autres (non pas que je me plaigne).
- O'Reilly a trouvé un créneau très intéressant avec la diffusion
de livres en ligne. Il y a aujourd'hui plus d'un millier de livres
disponibles via
Safari.
Un absent de marque, c'est
Mastering Regular Expressions
de Jeffrey Friedl.
Lorsqu'il a écrit ce
livre, l'auteur a particulièrement soigné la présentation typographique
de ses exemples. Le résultat est à double tranchant : la compréhension
des exemples est largement facilitée par les signes spéciaux
utilisés dans la mise en page, mais cette mise en page est impossible
à transcrire en HTML. C'est pour cela que ce livre est absent de Safari.
- L'une des clauses d'utilisation de Safari est que le lecteur n'a pas
le droit d'utiliser un robot pour sauvegarder les ouvrages consultés.
Olivier trouve cela regrettable car il préfère lire dans le métro ou
dans le train, quand il n'a pas de connexion Internet.
Certains évoquent la possibilité de programmer un robot avec
un comportement imitant celui d'un humain : temporisation aléatoire
des accès, tenant compte toutefois de la proportion de schémas, de
texte et de code dans chaque page lue.
- Dans les discussions à propos d'Internet, lorsque l'on aborde le
sujet des performances, il est quasiment toujours question de
bande passante. Stéphane tient à rappeler que ce n'est pas la
seule grandeur intéressante. Le temps de latence est également
un paramètre à prendre en compte. Pour bien mettre en évidence
la distinction entre bande passante et latence, quelqu'un prend
l'exemple d'un Boeing 747 rempli de CD-ROM. La bande passante
est gigantesque, mais le temps de latence est déplorable.
Cette métaphore rappelle à certains
l'expérience de ping via ATP,
suite à la
RFC 1149
diffusée le 1er avril
1990. David se souvient quant à lui d'une
offre commerciale parue il y a quelques années. Un éditeur proposait
« tout Internet sur CD-ROM ». Cela représentait l'équivalent
de 17 semi-remorques transportant des CD-ROM. Cela dit, vous pouvez
également demander « tout Internet sauf le porno ». Dans ce cas,
il suffit de 3 CD-ROM.
- Les logiciels de proxy améliorent les performances d'accès
à Internet... à condition qu'ils fonctionnent correctement.
Il est arrivé que Squid s'emmêle les pointeurs dans le
cache des images. Du coup, les utilisateurs d'une certaine administration, au lieu de voir
apparaître le logo de leur administration, ont découvert sur
leur page web la photo d'une personne peu, voire pas du tout, vêtue.
« Au secours ! On a piraté notre site ! »
- David et Stéphane sont des lecteurs réguliers de
NTK.
Ils ont récemment lu
un article
évoquant les dernières déclarations
d'Eric Raymond,
l'évangéliste bien connu du logiciel
open-source et des armes à feu. Dans son site, qui
s'appelle de façon appropriée
Armed and Dangerous,
il tient des propos intolérants et bellicistes et il prône
l'escalade de la violence. L'opinion des rédacteurs de NTK
est qu'il est impossible de soutenir ESR. Il n'est plus possible
de lui trouver des excuses en reconnaissance de son rôle dans le
développement du logiciel open-source. Il a dépassé les
bornes avec les opinions qu'il expose dans son site.
- David a abordé le sujet des performances des bases de données. On dit
qu'Oracle
est performant, mais une requête du genre :
SELECT count(*) FROM tabhist;
met beaucoup de temps (quelques secondes) à répondre qu'il y a 600 000 lignes
dans la table. D'autres SGBD mettent beaucoup moins de temps. Par exemple,
Postgres
répond instantanément. Le secret ? Chaque soir, au moment
où personne ne travaille, le SGBD lance un programme de statistiques qui
mémorise dans un coin combien de lignes existent dans telle ou telle table.
Du coup, le SELECT count(*) devient la lecture d'un enregistrement
unique de la table des statistiques. En fait, si Oracle a une telle
réputation, c'est grâce à leur marketing et à leurs commerciaux. D'autres
SGBD font aussi bien, si ce n'est mieux : Postgres,
Sybase,
DB2...
- Dans son article sur les références, Sylvain a pris soin d'illustrer
ses propos par des schémas. Stéphane lui demande s'il a utilisé pic.
Sylvain a utilisé xfig, il ne connaît pas pic. Stéphane
explique alors que pic est le préprocesseur de nroff / troff
permettant de faire des dessins. Il enchaîne en rappelant l'historique
de nroff / troff : c'est la première application
majeure développée pour Unix. Ritchie et Thompson
avaient créé Unix pour leurs besoins propres, mais ils se sont dit que
cela pouvait intéresser d'autres personnes. Effectivement, un
certain Ossanna a été intéressé et a développé un outil de mise
en page pour les besoins du service des brevets de Bell.
Existe en deux versions : troff pour les photocomposeuses
et nroff pour les terminaux en mode caractères et les imprimantes
à caractères fixes.
- Eric vient de s'acheter un PowerBook dernier cri. D@vid lui apprend
que l'on peut provoquer un « kernel panic » de façon très
simple sous Mac OSX. Sur un répertoire quelconque (sur lequel on a les
droits rwx, quand même), faire :
mkdir toto
cd toto
mkdir toto
mv toto ..
et le système se met à paniquer. Eric rétorque qu'il ne craint rien,
car lorsqu'il crée un répertoire, il utilise généralement foo,
pas toto.
- David nous raconte un moment où c'est lui et pas la machine qui a failli
paniquer. Il voulait changer l'organisation des répertoires temporaires
/tmp et /var/tmp. Pour ce faire, il lance une commande
composée de deux commandes simples et d'un &&.
En raison d'une faute de frappe, une étoile traînait là où elle
n'aurait pas dû se trouver. Après cette commande, David demande
# ls
Réponse de la machine :
ls not found
David, perplexe, demande :
# pwd
La suite :
pwd not found
# echo *
echo not found
En fait, tous les répertoires de la racine avaient été déplacés
dans /sbin ! Du coup, David a rétabli la situation
à grands coups de :
/sbin/usr/bin/mv /sbin/répertoire /répertoire
- Certains évoquent un test sur deux moyens de faire communiquer des
processus, les fichiers et la mémoire partagée (appels système
shmread
et tutti quanti). Aussi surprenant que cela paraisse, les
fichiers sont plus performants que la mémoire partagée. En y
réfléchissant un peu, cela se comprend. Lorsqu'un fichier est modifié,
Linux (et les autres Unix, je pense) attend toujours un peu avant
d'écrire les modifications sur le disque. Du coup, si la durée de vie
du fichier est nettement inférieure à l'intervalle entre deux mises à
jour du disque, il y a de fortes chances que le fichier ait passé
toute son existence dans le cache du disque et pas sur le disque
lui-même. Un autre point à signaler, la mémoire partagée est pénible à
utiliser à la longue. De temps en temps, il faut passer la mémoire au
peigne fin pour récupérer les segments de mémoire qui ne sont plus
utilisés par aucun processus.
- Un informaticien célèbre du siècle dernier en avait
déjà parlé :
La mémoire, outragée !
La mémoire, martyrisée !
Mais la mémoire, libérée !
C'est le même informaticien qui, au balcon de l'hôtel de ville de Montréal,
avait
proclamé :
Vive le logiciel ! Vive le logiciel libre !
- Nous avons eu une longue discussion sur la langue française et sur
les mauvais traitements qu'elle subit. Cette discussion a été introduite
par Philippe (Brix) lorsqu'il a évoqué le
rapport de bug
qu'il a envoyé à Briac au sujet de son
module sur les nombres exprimés en langue française.
Sur la forme, d'abord, il a raconté qu'il avait
rédigé le rapport de bug en français et qu'il avait
adopté un ton familier, comme il convient entre deux personnes qui se
retrouvent environ une fois par mois pour boire une bière ensemble.
Brix ne savait pas que ce rapport de bug serait diffusé sur une liste
et visible ainsi par le monde entier ! (enfin, par la communauté Perl
du monde entier.)
- Sur le fond, le bug que Philippe a trouvé concerne le fait
que certains nombres qui semblent être des cardinaux sont en fait
des nombres ordinaux. Par exemple, « la page trente » ou
bien « les années soixante ». Dans le cas particulier du
nombre 80, il ne faut pas utiliser de « s » dans ce cas.
On écrit donc « la page quatre-vingt » et
« les années quatre-vingt », par opposition à
« quatre-vingts pommes ». Il en irait de même pour
les dynasties, sauf que :
- nous nous sommes arrêtés au numéro 18 dans la série des Louis,
donc il y a encore le temps avant d'avoir un roi portant le numéro 80,
- d'autant plus que nous sommes en république,
- et que les numéros de roi sont habituellement écrits en chiffres
romains.
Comme dirait Prévert
« qu'est-ce que c'est que ces gens-là Qui ne sont pas foutus De compter
jusqu'à vingt ? ».
Briac n'a pas prévu ce cas de figure. D'ailleurs, il ne le connaissait
même pas. Philippe, quant à lui, admet que c'est vraiment chercher la
petite bête.
- Il existe d'autres règles de grammaire peu connues. Nicolas évoque
la construction « après que » (déjà évoquée lors d'échanges
privés entre Gérald et moi lors de la traduction
d'Amélia).
Nicolas, Gérald et moi utilisons l'indicatif après cette construction,
puisque comme l'expliquait mon prof de troisième, cela fait référence
à un événement qui s'est déjà produit, donc sur l'existence
duquel il n'y a aucun doute. Quant à l'argument selon lequel
le subjonctif s'explique par la symétrie avec « avant que »,
on peut répondre que l'indicatif s'explique par le parallélisme
avec « une fois que ».
- Une autre construction utilisée à tort : « malgré que ».
Pour Nicolas, cette expression est à proscrire absolument. Je réponds
que, selon mon prof de troisième (encore lui), cette construction
est utilisée uniquement dans l'expression « malgré qu'il en ait »
pour signifier « bien qu'il ait mauvais gré de faire cela ».
Cela dit, j'évite de l'utiliser.
- « Au temps pour moi ». L'orthographe utilisée par la quasi-totalité
de la population est « autant pour moi ». Pour nous, cela
s'écrit « au temps pour moi », mais nos sources divergent.
Selon les uns, l'expression vient du milieu de la musique classique
et s'emploie lorsqu'un chef d'orchestre commet une erreur de rythme.
Pour les autres, elle vient du monde militaire, lorsque c'est le
chef de détachement qui commet une erreur de cadence.
- Des réformes récentes ont introduit quelques simplifications. Par exemple,
le féminin d'« aigu » est, au choix, « aiguë » ou « aigüe ».
Le verbe « céder » se conjugue au futur sous les deux formes :
« céderai » et « cèderai ».
- Stéphane évoque « au jour d'aujourd'hui ». C'est un double
pléonasme. En effet, « hui » vient du latin hodie, ce qui
signifie « ce jour ». Donc, « aujourd'hui » est déjà un
pléonasme. Alors que dire de « au jour d'aujourd'hui » !
- Nous détestons également les barbarismes suivants :
impacter,
iso-fonctionnalité,
solutionner,
ainsi que de nombreuses utilisations du préfixe « non ».
Dans certains cas, c'est vrai, il est indispensable. C'est le cas,
par exemple, de « non-fumeur ». Dans d'autres cas, pour
non-voyant par exemple, il
y a la (mauvaise) excuse du « politiquement correct » ;
pourquoi ne pas appeler un chat un chat et appeler un aveugle un aveugle ?
Enfin, il y a la bêtise à l'état pur, sans excuse bonne ni mauvaise. J'ai
déjà rencontré non absent pour « présent » et
non possible pour « impossible ».
- Il y a une autre abomination que je déteste. J'ai oublié d'en
parler lors de la réunion, donc je me rattape ici. Je déteste
les « et/ou ». Dans le langage courant, en général il n'y
a pas de confusion possible. Lorsqu'il faut préciser, il est possible
de le faire de façon plus élégante. Enfin, certains utilisent cette
construction de manière automatique, sans réfléchir. Du coup, ils
l'emploient là où cela n'a aucune raison d'être : « La
nouvelle version sera disponible à partir de mardi et/ou mercredi. »
- Le mois dernier, j'ai voulu télécharger le
document PDF
d'Alison Randall sur les
tagmemics
et je n'ai pas réussi à le lire, que ce soit
avec Ghostview, xpdf ou Acrobat Reader.
David m'a proposé de me l'imprimer et il me l'a apporté le 13 novembre.
Le lendemain, en passant devant l'imprimante, il remarque le message :
« Veuillez charger du A4 ». Il emplit le bac d'alimentation...
et l'imprimante sort la fin du document PDF. J'ai eu donc droit ce jour-ci
à la fin de la conférence.
- Stéphane en a profité pour jeter un coup d'œil sur ce document.
La linguistique se découpe schématiquement en trois branches :
la syntaxe, la sémantique et la pragmatique. Cette dernière branche
examine comment le langage s'inscrit dans son contexte et les
tagmemics en font partie.
- Nous évoquons encore une fois
Bowling for Columbine.
Ceux qui l'ont vu ont été marqués par des séquences différentes.
Par exemple, pour Stéphane, il s'agit de la séquence où l'on
voit une rangée de journalistes TV alignés et racontant des banalités
suite à la mort d'une fillette de 6 ans. Ces journalistes font
leur reportage de quelques minutes puis remballent leur matériel. Ils
ne cherchent pas à creuser au-delà des vagues banalités qu'ils récitent.
Pour moi, c'est la chanson de
Louis Armstrong,
What a Wonderful World,
qui sert à illustrer une rétrospective de la politique extérieure
des États-Unis depuis 1953.
- BooK précise qu'il s'agit quand même d'un film. Il faut prendre
les statistiques avec des pincettes. Parfois,
Michael Moore
compare des nombres qui n'ont pas forcément de rapport. Il ne s'agit pas
d'une étude basée sur une méthode statistique rigoureuse.
- Chez lui, Eric a un piano à queue depuis peu. Il en joue
le samedi après-midi. Il n'a pas le niveau de Glenn Gould,
mais il a quand même dépassé le niveau gammes + « Lettre à Élise ».
Cela n'empêche pas qu'une de ses voisines se plaint d'être dérangée.
À noter un quiproquo au cours de la discussion, Charles croyait
que c'était Eric qui subissait le piano et la voisine qui en jouait.
- Lorsque nous avons parlé du futur site YAPC, il a été question d'une couleur
dont il ne faut pas donner le nom, couleur qui a pollué les sites des trois
premières années. Quelqu'un ne comprenant pas de quelle couleur il s'agissait,
Briac nous soumet la charade
suivante :
- Mon premier est un métal précieux.
- Mon second est un habitant des cieux.
- Mon tout est un fruit délicieux.
Je ne vous donne pas la réponse, puisqu'il ne faut pas prononcer le nom
de cette couleur. Pour ne pas être en reste, BooK nous propose la charade
suivante, une charade
« belge » :
- Mon premier est un bavard.
- Mon second est un oiseau.
- Mon troisième est au chocolat.
- Mon tout est une patisserie.
Réponse : « bavarois au chocolat » (bavard -- oiseau -- au chocolat).
- Stéphane nous raconte deux anecdotes du temps où
il travaillait chez Sun à Mountain View, anecdotes
concernant le personnel de sécurité. Les marketters de Sun
travaillaient à Mountain View sur des Macintosh (oui, Sun fabrique des
stations Sun mais les marketters étaient plus familiers avec les
applications bureautiques d'Apple). Un jour, un membre du personnel de
sécurité a volé un Macintosh. Il l'a revendu à une personne qui n'a
rien à voir avec Sun et cette personne a été très surprise de voir
apparaître des fichiers confidentiels.
- À une autre occasion, Stéphane se gare sur le
parking du campus de Sun Mountain View. Intrigué par un bruit
bizarre, il descend de la voiture. La porte se ferme et stef se
retrouve avec sa voiture moteur allumé et portes verrouillées. Stéphane
téléphone à la sécurité. Un agent de la sécurité, un grand gaillard
noir, arrive dans les cinq minutes, sort une tringle et ouvre
rapidement la portière. Le désengagement de la tringle est plus
laborieux. Stéphane lui demande à l'agent où il acquis ses
compétences. Réponse: "You don't want to know". Stéphane a
l'impression que les agents de sécurité ont eu une jeunesse
aventureuse (lire, « ont fait partie de gangs de jeunes »).
- Stéphane, peu de temps après la diffusion du compte-rendu :
J'affirme haut et fort qu'il s'agit d'un design illogique. Il est
illogique parce qu'une capture englobant une autre devrait contenir au
moins autant que la capture englobée. C'est d'ailleurs cette hypothèse
qui m'a fait omettre de tester la capture dans le look-ahead.
Je pense que les look-ahead et look-behind
devraient donc avoir une
largeur non nulle mais non-prise en compte pour le calcul de $&.
($a, $b) = 'aa' =~ m/(a((?=a)))/; # length $b > length $a !!
- Ma réponse (novembre 2003) à la réponse de Stéphane :
Tout d'abord, je te ferai remarquer que ta contre-proposition est tout
aussi illogique que la fonctionnalité que tu dénonces. Compte tenu de
leurs définitions respectives, $& englobe n'importe
quelle capture $1, $2 etc. Et tu suggères
que la partie de la chaîne correspondant à une assertion de pré-vision
soit incorporée dans les captures $n mais pas
dans $& qui les englobe.
- Je commence par une analogie avec les textes en français. Prenons par
exemple :
« Nous sommes ici par la volonté du peuple, clama Mirabeau d'une
voix tonitruante. Nous n'en sortirons que par la force des
baïonnettes ! »
Dans cette citation, Mirabeau a-t-il prononcé le mot
« tonitruante » ? Non, bien sûr. Pourtant, ce mot se
trouve entre les guillemets délimitant la citation. Entre le mot
« peuple » et le deuxième « Nous », il y a eu le
très bref silence correspondant au point qui termine une phrase. C'est
pour ce cas de figure que la grammaire française prévoit la notion de
proposition incise qui, dans ce cas, s'étend de
« clama » à « tonitruante ». Pour la syntaxe, la
proposition incise fait partie de la citation, tandis que pour le
niveau supérieur, celui de la sémantique, elle n'en fait pas
partie.
-
Une deuxième analogie, cette fois-ci avec Perl. Soit le morceau de code
suivant :
my $points = [ qw/N E S O/ ];
Il s'agit de la déclaration d'une valeur scalaire. Ce scalaire est la
référence à la liste des quatre points cardinaux. Pour la syntaxe, le
texte source de la valeur scalaire englobe le texte source de
la liste. Pourtant, il est impossible d'affirmer que le scalaire
engobe la liste. Pour la sémantique, la relation entre les deux est
que le scalaire fait référence à la liste.
-
Revenons aux expressions régulières. Une assertion de pré-vision ou
assimilée est un élément de l'expression régulière principale qui
permet de définir une autre expression régulière, laquelle
est incise dans l'expression régulière principale. La syntaxe
fait que le texte source de l'autre expression régulière est
codé à l'intérieur du texte source de l'expression régulière
principale mais elle n'en fait pas partie.
-
Pour en revenir à ton expression régulière, à laquelle j'ai ajouté une
paire de parenthèses,
($a, $b) = 'aa' =~ m/(a((?=(a))))/; # length $b > length $a, oui, et alors ?
voici comment elle se décompose :
l'expression régulière qr/a((?=(a)))/ englobe la capture
qr/((?=(a)))/ qui englobe l'assertion qr/(?=(a))/
qui invoque l'expression régulière qr/(a)/ qui
englobe (ou en fait, coïncide avec) la capture qr/(a)/ qui
englobe l'expression élémentaire qr/a/. Ainsi donc, la
capture pour $1 n'englobe pas la capture pour $2. Il
n'y a aucune paradoxe donc à ce que $2 soit plus long que
$1. La seule chose que la capture pour $1 englobe,
c'est l'assertion qui, comme toutes les assertions de pré-vision, est
de longueur nulle.
HTML 5 - CSS v3
Mongueurs de Paris, le 27 janvier 2020
Copyright © The Paris Perl Mongers, 1999-2024