Nous avons mangé des hamburgers, des spaghetti bolognese
sans persil, des pavés d'autruche, des pièces du boucher,
des salades, des chocolats liégeois, des dames
blanches et une tarte aux pommes.
Nous avons bu de la Beamish Red, de la Kriek, de la Grimbergen
et autres bières et une margarita.
Arnaud utilise
LWP
pour l'outil
slackget
qu'il est en train
de développer. Il s'en sert pour les téléchargements,
mais pas s'il s'agit simplement de vérifier l'existence
d'un fichier sur le serveur FTP, sans le télécharger pour
autant, l'équivalent du
wget --spider.
Il avoue
ne pas avoir consulté la doc récemment. Je pense que la
fonction head correspond à ses besoins.
En attendant, il utilise :
system("wget --spider $adresse")
Le problème, c'est que le code retour de la fonction
system
est 0, donc faux, en cas de succès, l'inverse de la convention habituelle.
Et il a mis du temps à trouver pourquoi cela ne fonctionnait pas.
À cette même occasion, Arnaud a découvert le module
Carp
et les fonctions cluck, confess et
autres. Avec ces fonctions, les messages d'erreur et d'avertissement
indiquent un numéro de ligne dans le script appelant et non pas
dans le source du module. Utile lorsque vous êtes sûr du bon
fonctionnement du module et que le script est suspect.
Charles évoque le débuggueur
ptkdb.
Ce débuggueur affiche le source du script utilisé, plus éventuellement
les modules appelés par ce script.
Il permet de poser des points d'arrêt ou de faire du pas à pas.
Si l'on positionne la souris sur une variable dans le source du programme,
la valeur s'affiche automatiquement, pas besoin de cliquer ou de sélectionner
un article de menu.
Un peu plus tard, d'autres évoquent d'autres façons de débugguer, basées
essentiellement sur des :
ou approchant. Lorsqu'il passe le programme en exploitation, il
remplace cette définition par :
sub dprint(){1}
Du coup, la fonction d'optimisation de Perl sait que l'on peut
remplacer l'appel à la fonction par la valeur 1 et en plus,
si c'est en contexte vide (void), la ligne
disparaît du bytecode généré.
Faut-il supprimer
use strict;
et use warnings;
pour un programme qui passe en production ? Il y a deux aspects
à cette question. Tout d'abord, enlever ces deux clauses modifie-t-il
le comportement d'un programme ? Si un programme ne plante pas
et n'émet aucun avertissement, son comportement sera identique avec
et sans use strict; et use warnings;.
Ce n'est pas le cas pour d'autres langages et d'autres environnements
de développement, on cite des cas où la suppression des instructions
de mise au point a provoqué des modifications notables du fonctionnement
d'un programme. D'autre part, y a-t-il un surcoût à l'exécution ?
Pour les avertissements, le surcoût est minime, mais il peut
avoir une influence sur des programmes résident en tâche de fond,
typiquement des démons. Pour use strict, j'ai lu
quelque part que cela n'avait d'influence que pendant la phase
de compilation, il n'y avait aucune augmentation de charge lors
de la phase d'exécution. [ Ce qui est faux. C'est vrai seulement pour
use strict vars; et use strict subs;,
les erreurs sont détectées lors de la compilation. En revanche,
pour les références symboliques et use strict refs;,
la vérification ne peut se faire qu'au cours de l'exécution. ]
Je signale avoir lu
unediscussionanimée
sur le
Forum des risques technologiques
concernant la détection des débordements de tableau en C
et le maintien de ces précautions lors du passage en exploitation
du programme.
Je croyais qu'un participant présentait une métaphore
en expliquant que cela revenait à se munir de bouées
de sauvetage tant que l'on apprend à nager ou à faire de la voile,
mais que dès que l'on va en pleine mer, on laisse les bouées
de sauvetage au port. Le problème avec les métaphores, c'est qu'il ne faut pas les
pousser trop loin, on risque de dire des âneries. Parfois même, une
métaphore est foireuse dès le début.
[ Et le problème avec mon intervention, c'est que je n'ai
pas retrouvé la métaphore de la bouée de sauvetage. Cela ne
vient pas du Forum des risques technologiques, mais cela
vient d'où ? ]
Nous évoquons également d'autres utilitaires de mise au point,
comme les assert() en C, ou bien des
instructions qui, grâce à des marqueurs spéciaux,
sont enlevées du source par un préprocesseur. Paul-Christophe
raconte qu'il a développé un tel préprocesseur pour ses
besoins de mise en production et qu'ultérieurement,
il a constaté qu'un préprocesseur simple,
ppp
(pour Perl Pre Processor), existe sur
CPAN, dans la
section des scripts.
Jérôme évoque une application écrite en Perl, Request Tracker
(celle qui sert à
répertorier les bugs de module ?).
Lorsqu'il a découvert ce programme, il a essayé de le charger
à partir de CPAN. Le problème, c'est que l'auteur avait découpé
l'application en différents modules interdépendants et qu'il
avait chargé sur CPAN une partie seulement des modules, il n'était
donc pas possible de respecter les dépendances.
Nous parlons
d'ActiveState
et de son
offre Perl.
Qu'y a-t-il de plus par rapport à une offre gratuite ou bien
à un Perl que l'on compile soi-même sur Cygwin ?
ActiveState propose des outils en plus de la distribution
standard. Quelqu'un évoque même un outil appelé
pyperl
ou quelque chose comme cela et qui permet d'appeler du code Perl
à partir d'un script
Python.
À part cela, le Perl d'ActiveState simule les
fork()
en utilisant des
threads.
À l'inverse, un Perl compilé avec Cygwin gère mieux les signaux que celui
d'ActiveState.
Ceux qui ont rempli une déclaration de revenus par Internet
ont reçu récemment un message venant d'un site
impots.gouvernement.fr ou dgi.gouvernement.fr.
Déjà, pour Nicolas, l'adresse de l'émetteur est louche,
l'administration utilisant des noms de site
xxx.gouv.fr.
Charles a fouillé plus profondément. Le message demande
à l'utilisateur (ou au contribuable si vous préférez)
de bien vouloir monter de version pour la machine virtuelle
Java
de Microsoft.
Or, lorsque l'on consulte le
site de Microsoft, on constate que cette machine virtuelle
n'est plus maintenue et que M$ enjoint les utilisateurs
à télécharger la machine virtuelle
Java
de Sun.
Charles a même examiné l'adresse IP de l'émetteur
et est arrivé à la conclusion que le message provenait
de Vienne... aux États-Unis.
Il a été question de
IPv6.
Arnaud a qualifié ce sujet
de « gros troll ». Plus gros peut-être que
les préférences en matière d'éditeur de texte ou de distribution
Linux. L'adressage utilisera 8 octets au lieu de 4 comme
actuellement, ce qui fait dire à certains que l'on pourra attribuer
une adresse IP à chaque atome de l'univers. [ Affirmation exagérée,
cela ne fait guère que 2E+19 adresses possibles. ] Mais en plus,
le protocole comportera des fonctionnalités d'auto-détection,
d'authentification, que sais-je encore [ J'avoue que je ne me suis
pas vraiment informé de la question, j'ai donc vraisemblablement mal
interprété les avis émis en réunion. ]
Un modèle de
DHCP
simplifié. Pour un réseau très local, restreint à
une pièce, chaque personne qui se connecte au réseau doit annoncer
à haute et intelligible voix : « Quelqu'un utilise l'adresse
172.16.0.5 ? ... Non ? ... Bon, alors je la prends. »
Nous avons beau être partisans de Perl, nous ne sommes pas
fanatiques. Par exemple, Sniper nous raconte que quelqu'un lui a demandé quelle
architecture adopter pour un site web dynamique avec des traitements
simples et une base de données réduites. La réponse de Sniper a
été :
« MySQL
et PHP ».
[ La voix de Sniper, pour changer ]
Arrivé à la Taverne je pensais être le premier mais le serveur m'annonce que
2 personnes ont déja pris possession du sous-sol, je commande une 50 de Grim
et je rejoins donc Jean et Philippe (Blayo)
À peine assis je me plains de la lumière peu présente au sous-sol, un détail
qui m'agace maintenant à chaque réunion et dont j'ai du mal à faire abstraction.
Je sors mon portable et des tournevis, en effet je viens de recevoir
mon clavier de rechange que je dois utiliser le lendemain matin
relativement tôt et je ne me voyais pas le monter chez moi en rentrant
en fin de soirée.
[ Jean complète ]
Le clavier avait un problème,
certaines touches (pas beaucoup) ne répondaient pas. C'était
juste les touches <Shift>, <Ctrl>, <Alt>,
<AltGr> et <Enter>.
En revanche, les autres touches fonctionnaient très bien. Mieux,
vous aviez plusieurs caractères avec un seul appui de touche
(mais pas forcément les mêmes caractères).
[ Et une digression de Jean : le bricolage
de Sniper m'a ramené 30 ans en arrière à mes cours
de latin en classe de troisième. Assez fréquemment, l'heure
de cours se déroulait ainsi. Le professeur nous faisait asseoir,
nous indiquait une page de notre livre de latin et nous
disait : « Traduisez le texte à la page 34,
correction à 16h10. » Puis il posait sur son bureau
un magnétophone qu'il avait pris au service de langues,
sortait quelques tournevis, ouvrait le magnétophone,
trifouillait à l'intérieur pendant un quart d'heure
et refermait le magnétophone. Puis 16h10 arrivait et le cours
prenait une tournure un peu plus habituelle. ]
[ Encore Sniper ]
On discute donc de
Dell,
des incidents que j'ai pu
rencontrer en côtoyant des personnes du
support technique,
dont un
assez amusant, un portable cesse de fonctionner en plein travail de
rédaction, le technicien nous demande d'appuyer FORT sur la touche
« M », Aucun effet, il réitère « Appuyez FORT,
mettez vous sur la pointe des pieds et appuyez avec le pouce. »
L'opération déclenche un gros « clac » et le PC
redémarre. Le hotliner tente de fermer le dossier et veut raccrocher,
je ne le lâche pas et je lui demande une explication. Sur certains
modèles il y a un défaut de conception qui fait sortir de CPU de son
logement lorsque la machine chauffe. Il se situe sous la touche
« M » et le fait d'appuyer fort remet le CPU en place. Les
Dell sont connus pour avoir des claviers très fragiles, faut il voir
un lien de cause à effet ? :)
[ Toujours Sniper ]
Je tente de faire fonctionner ma carte WiFi (je n'ai pas d'AP à ma disposition, je
voulais donc profiter du réseau wifi de la taverne pour tester ma carte et le
driver compilé dans la journée). Impossible de la faire démarrer, Jérôme
tente sa chance sans succès, on abandonne (pour la petite histoire, le lendemain
matin elle a été reconnue et driver chargé du premier coup après l'avoir insérée
dans le second port CardBus du portable, pas de bol à ce moment là je n'avais
plus de réseau wifi sous la main, tests à suivre mercredi 18 pour la prochaine
réunion :)
[ Jean reprend ]
Ce problème sur les Dell me rappelle que,
il y a plusieurs années, j'ai travaillé pendant quelque temps
sur des terminaux passifs
Sperry/Unisys.
L'interface était
à première vue comme sous Unix, avec une ligne de commande.
Mais le terminal attendait l'appui sur la touche <Entrée>,
<Transmit> ou quelque chose comme cela pour envoyer la totalité
de la ligne de commande à l'unité centrale. Tout naturellement,
cela faisait que les humains avaient tendance à frapper plus
fort sur la touche <Transmit> que sur les touches des lettres
et des chiffres. Le constructeur en avait tenu compte et
on pouvait constater que la touche <Transmit> n'était pas
construite de la même manière que les autres touches :
le plastique était plus épais et le ressort plus rigide.
Dam's évoque les claviers des portables
Apple.
Comme la touche
<Entrée> est située à l'extrémité du clavier, les doigts
la frappent obliquement alors que les autres touches sont frappées
verticalement. Du coup, la surface de cette touche est inclinée,
de façon à éviter que le doigt qui la frappe ne rippe.
Je ne sais plus comment la discussion a continué, mais nous en
sommes arrivés à évoquer d'éventuels claviers que l'on
pourrait utiliser avec des moufles. Évidemment, les touches
sont beaucoup plus larges qu'un clavier normal. Et il restera
des problèmes pour pouvoir taper <Ctrl-Alt-Suppr> avec
seulement deux moufles.
Nous avons évoqué les éditeurs de bas niveau, car il
existe des systèmes où
vi
n'est pas installé
par défaut, l'éditeur de base étant
Pico
ou Nano.
Cela dit, quitte à ne pas utiliser
vi,
certains ont recours à cat
pour créer un fichier texte ou à
sed
ou à awk
pour le modifier.
Sniper raconte que dans une telle circonstance,
il utiliser perl -nli.bak -e
pour modifier son fichier.
Jérôme évoque les lignes découpées en deux lignes
physiques, ou plus, avec un backslash à la fin de chaque
ligne sauf la dernière et la tâche qui consiste à reconstituer
la ligne complète. Cette tâche, en apparence élémentaire,
requiert cinq lignes en
sed.
En fait, l'instruction read de bash (peut-être
même celle de ksh) le fait automatiquement
sans qu'il y ait besoin de le demander.
Nicolas nous indique deux groupes de nouvelles,
comp.unix.shell
et fr.comp.os.unix
et le nom d'un gourou qui y participe,
Stéphane Chazelas. Ce gourou
a notamment réponse à toutes les questions
sur shell et il est capable de dire si telle ou telle
solution s'applique sur tel ou tel shell et comment
adapter la solution lorsque l'on adopte un autre shell.
Jérôme évoque l'un des reproches concernant ksh,
l'impossibilité d'utiliser les flèches pour se déplacer
dans la ligne en cours d'édition ou dans l'historique des
commandes. En fait, comme il le précise, il faut
adapter son fichier .kshrc pour sélectionner
le mode emacs, puis associer les touches flèches aux
commandes de déplacement. Il existe une syntaxe pour
ce faire et pour que le fichier .kshrc soit
quand même imprimable, sans caractère ou
autre, mais il ne se souvient plus laquelle.
Jérôme évoque également la différence entre les alias de
ksh
/ bash
et ceux de
csh.
Avec csh, il est possible d'indiquer que les
paramètres sont insérés en plein milieu de la commmande
substituée. Très pratique si l'on veut déclarer un
alias qui enchaîne plusieurs commandes avec des pipes.
Pour faire la même chose avec ksh, il faut recourir
à des fonctions exportées. Exemple (pas testé et syntaxe sous
réserve) :
comment lister des fichiers en les triant en fonction
du nombre de lignes.
alias sortnl='wc \!* | sort'
Je raconte qu'en 1993, à l'époque où je travaillais sur une machine
qui ne connaissait que sh (le Bourne shell des années 70 et 80) et
ksh, j'avais réussi à utiliser en Bourne shell quelque
chose qui équivalait à des alias ksh. C'est très simple,
cela consiste à exécuter une variable exportée. Démonstration :
Quelqu'un a parlé d'une série de commandes shell commençant
par un ps et se poursuivant par une série de
sed et de awk avec un sort
et un uniq -c. Faute d'illustrer ce compte-rendu
avec la série de commandes vaguement évoquée, je
vous livre en annexe
un script qui
donne la liste des utilisateurs, avec une seule ligne
pour chacun, même s'il a plusieurs sessions d'ouvertes.
Le script n'est pas basé sur un ps, mais
sur un who.
Nicolas signale qu'il utilise
Gnus
comme client de nouvelles
et de messagerie. Il télécharge chaque jour la version
sur le CVS de développement et l'installe sur sa machine.
Une attitude risquée ? À l'usage, non, Nicolas n'a
jamais constaté de problème bloquant dans les versions
successives qu'il a téléchargées et installées.
Certains
débianeurs
évoquent des problèmes lors de la mise à
niveau de leur installation. Lorsque l'on demande la mise
à niveau sur une machine avec une distribution Woody,
le logiciel de mise à niveau cherche à installer une
distribution Sarge à la place.
À moins que ce soit une distribution Sid.
Ricanement d'Arnaud
qui ne se sent pas concerné par ce genre de problème.
Dam's nous indique que Debian,
Mandrake,
tout ça, c'est has-been. Mais il n'a pas
su me dire quelles sont les distributions à la mode.
Jérôme évoque
Solaris
et les griefs qu'il a à l'encontre de
ce système. Sur Solaris, on peut partitionner un disque
en huit partitions, pas plus. Jérôme évoque le cas où
un serveur doit héberger de nombreuses instances de
bases de données sur un disque de 32 Go. Après
étude, chaque base de données nécessite dans les 200 Mo.
Il peut créer huit partitions de 200 Mo chacune pour
huit instances de la BD et après, il ne peut plus rien
faire, alors qu'il reste encore 30 Go disponibles
sur le disque. Il évoque un autre système,
Tru64,
qui n'a pas ces limitations.
Dam's voulait nous montrer des photos d'une machine refroidie
par glace, mais comme Sniper n'a pas réussi à établir la connexion
Wifi, Dam's n'a pas pu nous montrer les photos.
Arnaud raconte le jour où son père a assisté au démarrage
de la machine d'Arnaud. Remarquant un nom de périphérique
du style /dev/tty0, le père a demandé à Arnaud s'il
connaissait la signification de tty. Arnaud a su
dire que c'était l'abréviation de « télétype ».
Charles a décrit les télétypes, qui étaient des
machines à écrire avec une connexion série vers l'ordinateur.
Les caractères n'étaient pas sur des marteaux séparés, mais
tout autour d'un cylindre ou d'une boule. Les mouvements de
ce cylindre ou de cette boule se répercutaient sur la
carcasse de la télétype qui avait donc tendance à « gigoter ».
Arnaud nous raconte que son père lui a décrit aussi les
perforatrices de ruban, avec le réglage très fin
nécessaire pour éviter que les décalages cumulatifs
ne rendent le ruban perforé illisible.
Arnaud demande des précisions sur les langages
Pascal
et Fortran.
Charles indique que la meilleure contribution de
Pascal
à l'informatique a été en fait les langages qui ont dérivé
de Pascal,
notamment Ada.
Un compilateur
Ada
doit passer par une phase de certification avant de pouvoir
être diffusé.
Nous parlons d'une nouveauté récente, un desktop
3D en Java. Cela nécessite d'avoir un cluster de
machines pour le faire fonctionner avec des temps de réponse
corrects.
[ Et pour clore cette partie, un paragraphe de Sniper ]
Eric (glb) utilise des clients
Tivoli Storage Manager
(TSM) à son
boulot. Il a des soucis avec et comme je gave tout le monde avec TSM
depuis quelques années il en profite pour me poser des questions auxquelles
je réponds avec plaisir.
Sniper n'a pas mangé sur place. Voici à ce propos son témoignage.
J'arrive à 19H50 après avoir gouté au nouveau KFC au 21, place de la République.
Chose amusante, il y a un Mac Donalds au 19, un KFC au 21 et enfin un Quick au
23, qui a parlé de guerre du fast food ? Je regrette quand même les disparus
Free-Time et Burger King mais on s'égare.
[ Jean reprend ]
Kai est arrivé avec un appareil étrange au poignet gauche.
Nous n'avons pas tardé à apprendre qu'il s'agit d'une
montre
GPS.
Elle donne l'heure, avec la précision des
horloges atomiques, puisqu'elle reçoit le signal des
satellites GPS.
Et elle donne la position. Toutefois,
il existe des circonstances dans lesquelles le signal
GPS ne passe pas, par exemple lorsque l'on se trouve
au sous-sol d'un bâtiment. Dans ce cas, on ne connaît
pas la position et l'heure est simplement connue
avec la précision d'une montre à quartz normale.
Kai explique qu'il est possible d'améliorer la réception
en mettant la montre sur le sommet du crâne, mais
cela fait louche. Ou bien en reliant la montre à une
antenne que la personne porte harnachée sur le dos
ou, peut-être, sur une coiffure. Mais Kai n'a pas
cet accessoire.
L'une des utilisations de la montre
GPS
consiste à mémoriser l'itinéraire parcouru par le porteur
lorsqu'il fait du jogging. Ensuite, Kai transfère
les données vers son PC et cela lui permet
de calculer diverses données, comme la longueur
totale et la vitesse moyenne. Il peut également
exposer sur un site web l'historique de ses
courses à pied.
Une autre utilisation, quoique plus délicate, est
celle d'« aspire-minettes ». Il n'y a rien
de tel qu'un gros boîtier au poignet avec un écran
LCD éclairé pour se faire aborder par la gent féminine.
Mais si l'on se met à discuter du principe de fonctionnement
du GPS, alors cela fait fuir la gent féminine aussi
sûrement que si l'on parle de la performance des
voitures de sport.
Comme aucune fille n'était présente (c'était avant
l'arrivée de Natacha), nous avons discuté du
principe de fonctionnement du GPS.
Lorsque le récepteur reçoit
le signal d'un seul satellite, en mesurant le temps
de réception et en multipliant par la vitesse de
propagation du signal (la vitesse de la lumière),
l'appareil est capable de situer sa position sur
une sphère dont le centre est la position du
satellite. Lorsque le récepteur reçoit le signal
de deux satellites, il est capable de calculer deux
sphères, donc la position se situe sur le cercle
formé par l'intersection de ces deux sphères.
S'il obtient le signal d'un troisième satellite,
alors les possibilités se réduisent à l'intersection
du cercle précédent avec la sphère centrée sur le
troisième satellite, c'est-à-dire deux points
relativement éloignés. Le récepteur peut alors
proposer ces deux points à l'utilisateur qui
choisira lequel est la véritable position.
Mais avec un quatrième satellite, le récepteur
est capable de déterminer entièrement la
position et même de donner l'heure.
Outre les problèmes de réception en sous-sol,
il y a des problèmes pour connaître la position
lorsque l'on se trouve au voisinage des pôles, ce qui
fait que certains avions de ligne perdent leur position
GPS et sont obligés de calculer la position par d'autres
moyens lorsqu'ils utilisent une route polaire.
[ À la réflexion, cette histoire de pôle
me paraît peu vraisemblable. Le GPS a été
mis en place pour les besoins des véhicules militaires
américains, notamment les bombardiers stratégiques et
les intercepteurs. Or, la route privilégiée pour aller
bombarder l'URSS depuis l'Amérique du Nord passe par
les pôles. De même, si les soviétiques avaient envoyé
leurs bombardiers attaquer le continent nord-américain,
ils les auraient fait passer par le pôle nord et c'est donc
là que le NORAD aurait envoyé les intercepteurs.
Il aurait été étonnant que les concepteurs du GPS aient
négligé l'utilisation du système dans cette région.
]
Nous avons parlé un peu de la mentalité japonaise, notamment
Arnaud qui est a eu l'occasion de se faire un stage
au Temple de Tokai, l'un des hauts-lieux du judo et du kendo.
La mentalité japonaise accorde une place prépondérante
à l'honneur et il est hors de question de perdre la face.
C'est ainsi que lorsqu'Arnaud était au Temple de Tokai,
il a vu Kosei Inoue (grand champion de judo) participer
à un entraînement alors qu'il avait une périostite (infection de la membrane
osseuse du tibia),
il a vu le senseï de judo participer
à un entraînement alors qu'il avait une infection au genou,
infection qui, en Europe, aurait envoyé le malade
immédiatement à l'hôpital pour se faire opérer.
Il a aperçu également la section de kendo, au lendemain
d'un championnat où le Temple de Tokai s'est fait
rétrograder de la première à la deuxième place.
Le résultat de la compétition a eu pour conséquence une journée
de châtiments corporels pour les participants...
En revanche, il n'y a pas de problème de vol.
Un européen (le père d'Arnaud) avait oublié son portefeuille
au comptoir d'un guichet. Lorsqu'il s'est aperçu de
cet oubli, une demi-heure plus tard, il est revenu
au comptoir et le portefeuille était toujours là.
Et lorsqu'il a repris le portefeuille, un passant
lui a demandé de quel droit il le prenait et M.
Dupuis a dû justifier de son identité en montrant
qu'il correspondait aux photos des papiers d'identité.
Il paraît que le film de
Michael Moore,
Fahrenheit 9/11,
a eu un impact considérable aux États-Unis, plus
qu'en France, parce que les Américains ont découvert
avec stupeur que leurs dirigeants avaient menti.
[ Ont-ils déjà oublié les explications foireuses
de Clinton sur ses aventures extra-conjugales ?
Et surtout, ont-ils déjà oublié le second mandat de
Richard Nixon, alias « Tricky Dick » ? ]
Eric revient sur un point évoqué dans le
film,
le rapatriement de la famille Ben Laden des États-Unis
vers l'Arabie Saoudite peu après les attentats.
Dans le film, il est dit que cela s'est passé lors de la période
de quelques jours où le trafic aérien était interrompu et que
l'avion qui a assuré le rapatriement était le seul avion civil à avoir
l'autorisation de voler. En fait, ce rapatriement a eu lieu
au moment où le trafic aérien a été rétabli.
Plusieurs personnes, dont un membre de la famille Ben Laden, ont
écrit à Michael Moore pour lui signaler cette contre-vérité.
Le cinéaste a répondu qu'il savait, mais que c'était plus
vendeur de raconter que le rapatriement avait eu lieu
pendant l'interruption du trafic.
En parlant de l'impossibilité (pour l'instant) de Schwartzenegger
de se présenter à la présidence des États-Unis, nous en sommes
venus à parler des différentes lois régissant la nationalité.
Pour les États-Unis, c'est la loi du sang qui compte. Vous pouvez
être américain si vos grands-parents sont américains. Le problème
de Schwarzy ne concerne que son éligibilité à la Maison Blanche, pas
sa nationalité. C'est notamment pour cela, paraît-il, que l'Hôpital Américain
de Neuilly a une convention d'extra-territorialité comme les ambassades :
c'est pour garantir aux diplomates en poste en France que leurs
enfants pourront naître sur le « sol américain » et ne seront
pas exclus de la course à la Maison Blanche. D'autres nations
appliquent le droit du sol, ce qui fait qu'un enfant né dans un pays
étranger pourra avoir la double-nationalité. En fait, les lois
changent d'une année sur l'autre, et pour déterminer la nationalité
d'un enfant, il faut savoir non seulement où il est né et quels sont
ses parents, mais également à quelle date il est né.
Eric a commencé à lire la trilogie du
Guide du Routard Galactique
en version originale.
Il s'est procuré la version qui réunit les cinq romans en un
seul volume. Déjà rien qu'en lisant la préface, il était écroulé
de rire lorsque Douglas Adams raconte l'historique du roman :
cela a commencé par une
série radiophonique,
puis cela a continué
par un livre reprenant les épisodes 1 à 4, puis un autre livre reprenant
les épisodes 8 à 12, puis il y a eu une série télévisée, puis
un disque, puis...
Eric a également lu un
HOWTO
dans ce volume, donnant
des instructions pour pouvoir quitter la planète Terre. C'est un
HOWTO
très instructif et très précis, puisqu'il
donne le numéro de téléphone de la Maison Blanche, du Kremlin
et du Vatican (mais Eric n'a pas vérifié). Je connaissais déjà ce
HOWTO,
il figurait dans l'annexe IV de
Don't Panic,
la biographie de Douglas Adams par Neil Gaiman.
Philippe est en train de lire un livre sur l'usage
américain de la ponctuation,
Eats, Shoots and Leaves.
Il semble que c'est une référence chez les anglophones.
Parallèlement, Jérôme s'est procuré récemment chez
Eyrolles
un livre sur un sujet analogue, mais pour la langue
française. Il s'agit des
Règles typographiques en usage à l'Imprimerie Nationale.
Ce livre contient entre autres la signalétique utilisée
dans le secteur de l'impression pour la correction des épreuves
papier avant de lancer le tirage d'un livre. Cette signalétique
prévoit par exemple un symbole en forme de zig-zag pour montrer que deux
caractères ont été inversés et qu'il faut rétablir l'ordre. Ou
bien un symbole rappelant le lambda pour un caractère à supprimer.
Et chaque fois qu'un symbole de correction apparaît dans le texte,
il est repris dans la marge.
En fin de soirée, alors que le sujet est repris en présence
de Natacha, elle nous signale que dans la maison où elle travaille,
elle est censée utiliser cette signalétique.
Nous avons parlé d'électrocution. Charles évoque l'époque où
il était stagiaire. Il devait intervenir sur un appareil électrique.
L'appareil comportait un témoin indiquant s'il était sous tension.
Charles s'assure donc que le témoin indique qu'il n'y a pas de
problème. À peine commence-t-il à travailler qu'il prend une décharge.
Comme lui ont dit ses collègues expérimentés, le seul témoin valable
est de s'assurer que la prise soit débranchée du secteur.
Sniper a lui aussi subi un choc électrique, dont je n'ai pas retenu
les circonstances. Depuis cet accident, il n'a quasiment plus
de sensation des douleurs (quoique cela commence à revenir).
Cela peut se révéler bénéfique, comme lorsqu'il va chez le dentiste
et qu'il n'a pas besoin d'anesthésie. Cela peut être néfaste,
lorsque par exemple il ne réagit pas après s'être ébouillanté.
Dans le même style, Charles évoque le cas d'une femme qui a subi un
traitement de fluorisation des dents alors que par ailleurs, elle
prenait des antalgiques. À l'époque, une des
particularités du traitement de fluorisation était que le patient
était soumis à un courant continu pour intensifier le dépôt
de fluor par électrolyse. Un cylindre métallique servait comme
point de connexion de la cathode et était tenu dans la main.
L'effet Joule le faisait chauffer, ce qui fait que le patient
le lâchait lorsque le cylindre devenait
trop chaud, ce qui mettait fin à l'intervention. Dans le cas de la
femme, les antalgiques l'ont en partie anesthésiée et
elle a conservé trop longtemps le cylindre de métal,
ce qui fait que des brûlures en ont résulté.
Pour en revenir aux électrocutions, des problèmes peuvent se produire
avec une simple tension de 24 volts, qui est d'ailleurs la
valeur légale pour définir le danger électrique. D'un autre côté,
certaines personnes ont survécu à des chocs de plusieurs milliers
de volts, mais c'était dans des circonstances très spéciales :
intensité si faible qu'il n'y a pas eu d'effet Joule, la décharge n'est
pas passée au voisinage du coeur, etc. Malgré tout, n'essayez pas
chez vous.
Une vache peut être électrocutée même sans avoir été touchée par
la foudre. En effet, si la foudre touche un point proche de l'endroit
où se trouve la vache, le sol est électrisé et il y a un gradient de
potentiel électrique. Si la vache est dans une mauvaise orientation,
le gradient électrique provoque une différence de potentiel entre
les pattes avant et les pattes arrières, ce qui est fatal pour la vache.
Qu'elle est dangereuse, la vie des vaches ! Même la traversée
à gué d'une simple rivière peut leur être fatale ! En effet,
comme elles n'ont pas de sphincter, si le niveau de l'eau
est trop haut, elles se remplissent petit à petit par l'« autre
extrémité » lorsqu'elles traversent l'eau. Et si cela dure trop
longtemps, la quantité de flotte absorbée peut se révéler fatale.
Nous avons brièvement évoqué la possibilité de faire des
véhicules avec des roues carrées. Cela impose d'avoir
une route très spéciale, avec un profil en cycloïde ou
une courbe analogue, mais si c'est bien fait, le véhicule
se déplace selon un mouvement parfaitement rectiligne et horizontal.
Après avoir commandé les desserts, nous parlons du dessert préféré
de notre Csar David (absent ce jour-là), le « nègre en chemise ».
Il paraît que pour être politiquement correct, il faut dire
« meringue au chocolat ». Pour moi, même si le terme isolé
« nègre » est péjoratif et malvenu, il n'en va pas forcément de même
pour les expressions bâties sur ce mot. Quelques minutes plus
tard, une autre discussion me permet de donner une analogie.
Le mot « cul » est considéré comme grossier, mais les
expressions « cul-de-sac » et « cul de bouteille »
sont tout-à-fait admissibles dans une conversation mondaine.
Jérôme a évoqué la place du français à l'étranger. Il donne l'exemple
de l'Allemagne où les voies sans issues sont signalées par
une inscription « cul de sac », en français dans le texte.
De même, les coiffeurs sont appelés Friseurs, même
si vous leur demandez de vous faire la boule à zéro.
Arnaud étant resté sur le sol français, nous sommes peu confiants
quant aux chances françaises pour les compétitions olympiques de judo.
La discussion dérive sur divers sujets sportifs et même, au grand dam
de Sniper, sur le foot-ball. Heureusement, cela n'a pas duré.
Ceci est un script que j'ai écrit en 1993 sur HP-UX, puis converti
sur AIX il y a 10 ans presque jour pour jour. Le client pour lequel
je travaillais était anglais, donc tous les textes, y compris les commentaires
de programmes étaient censés être écrits en anglais.
J'ai également laissé les commentaires institutionnels
ainsi que la documentation en ligne qui ne correspond pas
aux pages de man, ni dans le plan, ni dans la technique
(totalement déconnectée de nroff).
Comme vous
pouvez le constater, le script est
légèrement buggué : à chaque changement de mois, si un utilisateur
ne s'est pas déconnecté la veille, il apparaîtra en fin de liste avec
l'option -t, alors qu'il devrait apparaître en première position.
Le même bug existait dans la version HP-UX, mais une fois par an seulement.
Quant aux commentaires justifiés à gauche et à droite, la méthode a déjà été
évoquée dans un compte-rendu précédent.
#------------------------------------------------------------------------------
#--- name : lsusr
#---
#--- object : list all currently connected users, with only one line
#--- per user containing the number of still active connections and
#--- the lowest date for these. Alternatively, with option a, list the
#--- time since the most recent activity.
#---
#--- But : afficher la liste des utilisateurs connectés, avec une
#--- seule ligne par utilisateur contenant le nombre de connexions
#--- existantes, et la date de la plus ancienne d'entre elles. Ou
#--- alors, avec l'option a, afficher pour chaque utilisateur le temps
#--- écoulé depuis l'action la plus récente.
#---
#--- date : 10/08/1994
#---
#------------------------------------------------------------------------------
#--- author date reason
#---
#------------------------------------------------------------------------------
#
#
utilname=$0 ; export utilname
sort_opt='' ; export sort_opt
#
#--- keyword analysis loop
for i
do
case $i in
#--- user ask help manual
help)
echo "\f
============================================================================
$utilname
===========
purpose :
list all currently connected users, with only one line per
user containing the number of still active connections and the
lowest date for these. Alternatively, with option a, list the
time since the most recent activity.
keywords :
===> help
Display text concerning usage of this utility
===> -a
list time since last activity
===> -t
sort by connection time
parameters :
None.
result :
List every user currently connected
============================================================================" |
more
exit 0;;
-t)
# optional output sort criteria
# k2bM2 : month
# Note: the M modifier exists on HP-UX but not AIX. Nevertheless,
# its only use is at the start of the month, and if a user did
# not log out the preceding evening. This sort criterion is
# discarded in the AIX version.
# k3b,4 : day and hour
#
# sort_opt='-k2bM2 -k3bn,3 -kb4,4'
sort_opt='-k3bn,3 -kb4,4'
;;
esac
done
#
# - who including activity
# - reordering fields within the line: activity, month, day, hour, user
# - replace the "old" and "." values by "24:00" and "00:00" respectively, and if
# activity is less than 10, insert a zero to right align the numbers
# - sort criteria
# k5,5 : user's name
# k2bM,2 : connection month
# Note: the M modifier exists on HP-UX but not AIX. Nevertheless,
# its only use is at the start of some months, and if a user did
# not log out the preceding evening. For example, if a user
# logged in on the 31st of July and is still logged on the first
# of August. This sort criterion is discarded in the AIX version.
# k3b,4 : connection day and hour
# or
# k5,5 : user's name
# k1b,1 : time since last activity
# - keep one line per user, counting the number of lines per user
# - reordering:
# user, month, day, hour, number of connections
# or
# user, time since last activity, number of connections
# number of connections is right-aligned with a leading space
# - optional sort
#
who -u | awk '{ print $6 " " $3 " " $4 " " $5 " " $1 }' \
| sed -e s/old/24:00/ -e 's/^\./00:00/' -e 's/^[0-9]:/0&/' \
| if [ "$1" = "-a" ]
then
sort -k5,5 -k1b,1
else
# sort -k5,5 -k2bM,2 -k3b,4
sort -k5,5 -k3b,4
fi \
| uniq -f 4 -c \
| if [ "$1" = "-a" ]
then
awk '{ printf("%-10s\t%s\t%2d\n", $6, $2, $1) }'
else
awk '{ printf("%-10s\t%s %s %s\t%2d\n", $6, $3, $4, $5, $1) }'
fi \
| sort $sort_opt