Usenet regorge de gens infréquentables. J'ai même parfois l'horrible impression que ce réseau attire un tas de personnes complètement asociales. J'en ai encore fait l'expérience pas plus tard que ce week-end. Entre les types qui ne peuvent vivre qu'en exhibant leurs diplômes et ceux qui sont fiers d'être Bac -1, tous deux connaissant absolument tout sur tout et même sur tout le reste, il y a vraiment beaucoup de choix pour définir le con étalon, celui qu'on devrait installer au pavillon des poids et mesures à Sèvres.
Il existe pourtant un très bon candidat à ce poste en la personne d'un sinistre individu qui hante les lieux où l'on parle système d'exploitation et qui a tellement peur de ne pas être reconnu à sa juste valeur qu'il se fait un point d'honneur à toujours poster avec l'adresse de sa prestigieuse école alors qu'il n'est qu'ancien élève. Il connaît tout sur tout et est désagréable et condescendant avec tout le monde. Il a sauté tant de pages dans le manuel du savoir-vivre que j'en arrive à me demander s'il sait même ce qu'est la politesse élémentaire. Pire, lorsqu'on lui met le nez dans ses erreurs, il biaise, prétend faire de la rhétorique et essaie de retomber sur ses pieds en changeant subtilement le sujet de discussion. Jamais il n'aura tort. C'est impossible, on ne peut pas avoir tort lorsqu'on sort d'une école pareille, surtout lorsque l'école est située rue l'Ulm. Et lorsqu'il a tort et que ça se voit un peu trop, bizarrement, ses messages disparaissent opportunément des archives. Je me souviens m'être fait un petit plaisir en le soufflant il y a quelques semaines sur fr.comp.os.unix, mais je n'arrive plus à trouver ce message. Faut-il ajouter qu'il n'y avait pas répondu ?
La dernière discussion était épatante. Du haut de sa superbe, il prétendait que les signaux sous Unix sont inutiles, nocifs, mal gérés et qu'il fallait toujours utiliser signalfd(). Et tout cela avec l'assurance du type qui sait programmer, qui a fait ça tout sa vie et qui parle donc en connaissance de cause.
Jusque-là, je veux bien admettre la chose. Mais ce qui était vraiment amusant, c'est lorsqu'il a rajouté qu'on devait toujours utiliser signalfd(), parce que c'est strictement équivalent à un gestionnaire de signal. Pour un professeur de mathématiques, ne pas faire la différence entre un traitement synchrone et un traitement asynchrone est déjà assez fort pour être noté. Mais prétendre en plus qu'ils sont équivalents…
Lui faire remarquer qu'il venait de dire une absurdité est la pire des choses à faire, cela revient à agiter un chiffon rouge devant un taureau. Tout y est passé, de mon incompétence crasse aux problèmes de design de mes programmes. Lui, il sait, il sait ce qu'est une définition et qu'on ne doit jamais utiliser une fonction async signal unsafe
dans un gestionnaire de signal. C'est bizarre, ça fait au moins quinze ans que j'utilise de telles fonctions dans mes programmes. Il suffit de savoir un minimum ce qu'on fait. J'admets que c'est assez casse-gueule, mais si on ne maîtrise pas les signaux à fin de synchronisation, il vaut mieux ne pas les utiliser du tout.
Par ailleurs, j'ai une aversion profonde de la mode linuxienne qui consiste à ajouter des nouvelles fonctions, non portables, dans la glibc sous prétexte que les développeurs sont des branques qui ne savent pas utiliser les API existantes.
Qu'un tel individu me traite d'imbécile me fait sourire. En terme de programmation, et surtout en programmation parallèle, ce n'est pas un type comme lui qui peut me donner des leçons. À l'instar d'un critique d'art, cet individu est un eunuque, capable de critiquer mais incapable de faire. Pire, il est capable de critiquer une production alors qu'il avoue un peu plus loin ne même pas l'avoir regardée. Le code qu'il juge sans l'avoir vu de grotesque (sic) est régulièrement audité car qualifié par une agence américaine pour une utilisation en programmation multitâche embarquée et spatiale depuis une présentation dans une conférence en 2002. Et ces auditeurs sont certainement largement plus qualifiés que ce professeur de mathématiques pour critiquer un code source. D'ailleurs, ils ne se sont pas gênés de remonter une alerte au CERT concernant un system()
mal placé qui pouvait occasionner une augmentation de privilèges. En me traitant d'imbécile, ce qui me fait rire, il traite aussi d'imbéciles les utilisateurs du programme en question ainsi que les auditeurs qui font régulièrement une revue du code. C'est déjà plus gênant, mais quand on a la science infuse, c'est tout naturel : tous des cons sauf moi.
Je souhaite bien du plaisir à ce genre d'individu. Un jour ou l'autre, dans son parcours professionnel, il risque de tomber sur quelqu'un plus fort ou plus bête que lui. Dans son parcours personnel aussi. Ce jour-là, je ne voudrais pas être à sa place parce qu'il risque de se sentir très seul.
Il faut toujours se méfier du retour de balancier. D'un autre côté, quand on est con, on est con…
Parmi mes connaissance se trouve tout un tas de traditionalistes plus ou moins bornés et fiers de leurs positions. L'immense majorité, pour ne pas dire l'intégralité de ceux-ci, considèrent que le mariage est une maladie qui contraint la femme à rester chez elle, qu'elle ait ou non des enfants. Le mythe de la mère au foyer en prend un coup puisque je croiyais bêtement que seuls ses enfants contraignaient la femme à rester chez elle.
Il se trouve aussi qu'une de mes connaissances a neuf enfants et qu'avec son mari, on ne peut pas vraiment dire que cela se passe bien. Je ne prendrais pas part à ce différend et me garderais bien de juger ou même de prendre position. En revanche, je trouve assez effrayante l'attitude des traditionalistes qui essayent d'aider cette famille. Je dis aider parce que je ne trouve pas de mot plus adapté et moins polémique.
En plusieurs mois, j'ai reçu des appels téléphoniques, vu passer des courriers électroniques appelant à payer des neuvaines. Pour ceux qui ne seraient pas au courant, une neuvaine est un ensemble de neuf jours durant lesquels un croyant paie un prêtre — traditionaliste, cela va de soi sinon ça ne compte pas — pour qu'il dise une messe par jour. Pour les plus pingres, une neuvaine peut prendre la forme de neuf jours de prière. J'ai vu passer des appels à la prière, au jeûne même. Naturellement, tout cela est en union de prière. Lorsqu'on sait que certains membres du groupe en question ne peuvent pas me voir car je suis un horrible déviant, l'union de prière prend tout son sens.
Ce qui me dérange, ce n'est pas qu'on paie des neuvaines, qu'on jeûne ou qu'on se flagèle. À vrai dire, je m'en contrefiche à partir du moment où personne ne me demande d'aller me fouetter en public pour expier une faute qui n'est pas de mon ressort. Ce qui me gêne franchement aux entournures, c'est que personne ne se pose la question de savoir ce qui est bon ou non pour cet homme, cette femme et ces neuf enfants. Non, cela ne leur viendrait même pas à l'esprit. En revanche, il faut à tout prix sauver les apparences. Dans ce milieu-là, monsieur, on ne divorce pas, on prie. Et on prie pour que ça ne termine pas en drame. Il paraît qu'en priant tous, Dieu les aidera.
Arrêtez-moi si je me trompe, mais réagir comme cela, n'est-ce pas de la même veine que de prier Dieu quand on a mal aux dents ? Que l'on soit croyant ou non, il faut déjà se prendre en main, ne pas fuir ses responsabilités avant d'en appeler à Dieu. Pour être tout à fait exact, cette attitude est assez proche de celle évoquée dans Matthieu 4 5-7.
Alors le diable le prend avec lui dans la Ville Sainte, et il le plaça sur le pinacle du Temple et lui dit : " Si tu es Fils de Dieu, jette-toi en bas ; car il est écrit : Il donnera pour toi des ordres à ses anges, et sur leurs mains ils te porteront, de peur que tu ne heurtes du pied quelque pierre. " Jésus lui dit : " Il est encore écrit : Tu ne tenteras pas le Seigneur, ton Dieu. "
En d'autres termes, l'évangéliste explique qu'il ne faut pas crier vers Dieu en espérant recevoir une aide à partir du moment où l'on ne fait rien soi-même pour essayer de s'en sortir.
Mais que va-t-il donc se produire ? Faut-il que désespérée, la femme trucide son mari ? Faut-il que le mari en vienne à frapper sa femme ? En tout état de cause, la situation n'est pas tenable. Mais on ne divorce pas. De toute façon, de quoi cette femme vivra-t-elle après un divorce puisqu'elle n'a plus travaillé depuis une grosse quinzaine d'années ? J'en entends déjà me dire qu'elle pourrait vivre d'une pension alimentaire. Certes, en admettant que son mari puisse la régler. Et une fois les enfants grands, de quoi vivra-t-elle ? Et à sa retraite ? Parce que pour le coup, la pension de reversion risque d'être un peu faiblarde !
J'ai peine à trouver des mots pour qualifier ce genre d'attitude. Pour ne pas perdre la face, onze personnes sont prises en otages d'une conception pour le moins bizarre des rapports humains. Est-ce que l'apparence est à ce prix ?
J'ai une crise de foi, je l'avoue humblement. Depuis quelques jours, rien ne va plus. Contributeur aux logiciels libres et soucieux de la qualité du produit, je déprime. En fait, je déprime depuis que j'ai vu les sources d'un micro-noyau pour essayer de relancer FreeVMS. L'idée est de relancer le projet en utilisant un micro-noyau et en codant les serveurs dans un langage solide comme ADA. La procédure de compilation de ce micro-noyau est une aberration comme je n'en ai que rarement vu et je n'en suis pas encore arrivé au bout. Pourtant, je m'obstine.
J'ai fait mes armes en Fortran 77, voire 66, entre un VAX et un Convex. Arrivé à l'armée — oui, je suis un vieux con modèle réserviste qui a eu l'immense chance de passer plus d'un an dans les rangs de l'armée et qui regrette que ce ne soit plus une obligation tant cela apprendrait à certains bipèdes à vivre —, j'étais enfermé dans une cage de Faraday à produire du code C89 aux normes des laboratoires de la défense, le genre de code C qui ne plante pas, où l'on vérifie toutes les valeurs de retour des fonctions, où l'on regarde à deux fois les types des objets. J'avais même derrière moi un spécialiste de la revue de code. Depuis, mes productions sont carrées, rien ne dépasse et voir les sources d'un simple noyau Linux me fiche un coup de bourdon indescriptible.
Pour pouvoir écrire des choses simplement, c'est-à-dire avec un environnement de développement correct et un compilateur décent et 32 bits, j'ai été amené à utiliser un système s'appelant Linux. C'était au siècle dernier sur un i386DX16/i387DX16 avec 8 Mo de mémoire, le noyau était un 1.0.9 parfaitement utilisable. Depuis, il y a eu quelques évolutions comme le 2.0 et le 2.2, dernier noyau réellement utilisable. Quoique s'il on regarde de plus près, on peut raisonnablement se demander ce que faisait un serveur web dans le noyau 2.2. J'avais alors la foi et étais prêt à lancer une sainte croisade. Et tout s'est dégradé. D'abord, on a eu le 2.4 et aujourd'hui, il faut faire avec un noyau 2.6 qui ne ressemble plus à rien. Il n'y a plus de branche de développement séparée. En dehors de l'architecture principale amd64, le reste fonctionne au petit bonheur la chance et il n'y a plus aucune garantie d'avoir un noyau bootable lorsqu'on le pêche directement dans la branche 2.6 de kernel.org. On ne sait pas pourquoi des pilotes stables depuis des années ne sont pas intégrés au noyau alors que de sombres saletés le sont. Les API changent subtilement d'un patch à l'autre.
Et c'est sans compter avec la glibc. Le type qui développe cette bibliothèque est un sombre idiot qui n'est pas capable de comprendre des spécifications qu'il prétend pourtant avoir lui-même écrites. Pour avoir poussé la programmation POSIX jusque dans des coins obscurs des spécifications, je suis tombé sur un certain nombre de problèmes inhérents à la glibc. À chaque fois que je remontais des rapports de dysfonctionnement, la réponse était toujours la même : l'erreur était dans mon code et non dans la glibc. Jamais, ce Ulrich Drepper n'a pu accepter qu'il était incapable de faire la différence entre un « shall » et un « should ».
Exemple :
PTHREAD_KILL(3) Manuel du programmeur Linux PTHREAD_KILL(3)
NOM
pthread_kill - Envoyer un signal à un thread
SYNOPSIS
#include <signal.h>
int pthread_kill(pthread_t thread, int sig);
Compilez et effectuez l'édition des liens avec l'option -pthread.
DESCRIPTION
La fonction pthread_kill() envoie le signal sig à thread, un autre
thread du même processus que l'appelant. Le signal est dirigé de
manière asynchrone vers thread.
Si sig est 0, aucun signal n'est envoyé, mais la détection d'erreur est
quand même effectuée. Cela peut être utilisé pour vérifier l'existence
d'un identiant de thread.
VALEUR RENVOYÉE
En cas de réussite, pthread_kill() renvoie 0 ; en cas d'erreur, elle
renvoie un numéro d'erreur, et aucun signal n'est envoyé.
ERREURS
ESRCH Aucun thread avec pour identifiant thread n'a pu être trouvé.
EINVAL Un signal invalide a été spécifié.
CONFORMITÉ
POSIX.1-2001.
Oui, je vous ai mis directement la traduction de la page du manuel en français. J'ai tout de même vérifié les spécifications POSIX et les pages de manuel de tous les autres systèmes POSIX à ma disposition : OpenVMS, NetBSD, FreeBSD et Solaris. Toutes sont d'accord entre elles et confirment bien cette page.
Notez qu'il est indiqué qu'on peut utiliser un sig
nul pour tester l'existence du thread. Si le thread n'existe pas, la fonction doit renvoyer la valeur ESRCH
. Le type pthread_t
est un type opaque. Dans tous les systèmes corrects, cette valeur n'est pas directement un pointeur, il y a toujours une indirection. Cela signifie qu'on peut utiliser cette fonction pour tester la présence d'un thread. Sous Linux, pour des raisons de performances — tu parles, ça évite juste une indirection et un tableau de pointeurs dans la mémoire statique du processus —, il s'agit d'un pointeur. Lorsque le thread n'existe plus, la mémoire pointée est libérée et pthread_kill()
renvoit bien une erreur, mais une erreur sale de segmentation. Pour des raisons de performances, on doit alors ou placer un gestionnaire de signal sur SIGSEGV
, ce qui n'est pas toujours ni aisé ni faisable, soit rajouter des mutexes un peu partout pour être sûr, lorsqu'on envoie un signal à un thread, que ce thread existe toujours. C'est donc optimal du point de vue de la glibc mais pas du tout du point de vue du programme. Ce qui est amusant, c'est que tous les programmes qui utilisent cette fonction avec un signal nul et qui n'ont pas été développés sous Linux risquent d'avoir de sérieux problèmes.
Des exemples comme celui-là, j'en ai des tas, et pas que dans la glibc. Il y en a dans un paquet de bibliothèques livrées en standard avec toute distribution Linux qui se respecte. Mais il y en a aussi dans le noyau. Les développeurs du noyau touchent à tout et dans tous les sens. Ils développement essentiellement sur x86 et se contrefichent des problèmes d'alignement de la mémoire ou d'ordre des octets. Cela peut donner des choses amusantes. Entre la libpcap qui ne fonctionnait plus du 2.6.27 au 2.6.30 sans la patcher dans tous les sens, les règles iptables qui ne fonctionnent plus sous 2.6.35, le pilote i2c_bbc qui est cassé depuis le 2.6.27, l'instabilité chronique du 2.6.36, les utilisateurs de sparc64 sont des petits gâtés.
Utilisant Linux sur des architectures différentes du PC x86, j'ai de plus en plus l'impression d'essuyer les plâtres avec une brique.
Développeurs, il est grand temps de rechercher la qualité. Linux s'est imposé par sa qualité. Ne cassez pas ce que vous avez créé. Ne perdez pas de vue que si Linux est la partie émergée de l'iceberg, il a entraîné un certain nombre d'autres projets dont certains pourraient lui damer le pion. OpenBSD est prétendûment sécurisé, mais il est inutilisable pour autre chose qu'une machine frontale. FreeBSD suit malheureusement la philosophie linuxienne. Mais il reste NetBSD, activement développé et bien plus propre que Linux.
« La politique n'a pas de prix, mais elle a un coût. » Certes, elle est dure, cette phrase de Luc Chatel, ce mercredi 1er septembre 2010. Elle est d'autant plus dure qu'elle a été dite à 8h28 sur France Inter.
Elle est même tellement dure qu'il m'a fallu presqu'un mois pour en tirer la substantifique moëlle. On voit percer sous cette phrase de marketteux l'ancien chef de produit de Loréal. Dans mon dictionnaire qui fait référénce, je ne trouve que deux acceptions à l'entrée coût :
On ne peut pas prétendre que cela aide la compréhension de cet aphorisme. Tout au plus peut-on comprendre que la politique est la conséquence désagréable d'une faute. Ce n'est pas vraiment clair et je cherche donc à l'entrée prix où je peux lire :
Là, ça s'éclaire un peu. La politique n'a pas de prix parce qu'il s'agit d'un truc incapable de récompenser un mérite. En d'autres termes et si je suis bien la pensée du ministre, les hommes et les femmes politiques participent aux seuls concours — les élections — qui ne récompensent pas les plus méritants.
En mettant bout à bout les deux propositions, on voit donc que la politique est à la fois incapable de récompenser un mérite, mais aussi qu'elle résulte d'une faute. Il faut donc avoir une belle motivation pour y faire carrière. Que dis-je, avoir une philanthropie particulièrement développée, vouloir tout le bien du monde et même plus à autrui.
Aujourd'hui, ce n'est hélas plus que théorique. La cinquième république vient de fêter ses cinquante ans et force est de constater qu'elle a assez mal vieilli. Partir du Général pour accoucher du porteur de talonnettes est une prouesse qu'il faut souligner. Mais à sa décharge, remplacer le septennat par un quinquennat ne pouvait pas arranger les choses. Il était pourtant assez évident que la concomitance des élections présidentielles et législatives aboutirait à une présidentialisation accrue et que le vrai chef de la majorité parlementaire serait à présent le président de la république et non plus le premier ministre qui devient une espèce de potiche. La séparation des pouvoir a pris sérieusement du plomb dans l'aile et les abus sont de plus en plus courants car de plus en plus faciles.
Dans les années 70 et 80, il y avait bien des délits d'initiés, des emplois fictifs, des fausses factures ou des marchés truqués. Mais ça ne se faisait pas au vu et au su de tout le monde, cela se faisait dans les salons feutrés, entre gens du même monde. Aujourd'hui, tous ces abus se font publiquement. Cela doit être ça, le prix de la politique…
Abonné à Télérama de longue date — et peut-être plus pour très longtemps vu la place grandissante que prend la publicité depuis son rachat par le Monde —, j'ai été assez surpris de trouver une publicité pour une tablette numérique. Il paraît que c'est à la mode. Je ne vous dirais pas ici ce que je pense de ce genre de gadget, mais venant d'un type qui roule encore en DS, je pense que vous voyez à peu près ma pensée.
Cette publicité est la suivante. J'en ai numérisé une partie et on reconnaît sans peine l'enseigne qui se cache derrière cette annonce. Pour ceux qui ne l'auraient pas reconnue, il s'agit de Carrefour.
Vue de loin, c'est assez réussi. Mais de près, c'est une autre histoire. En effet, les concepteurs de la publicité en question soit ne sont pas francophones, soit ne se sont pas relus, soit pire encore ne savent pas écrire. Le texte affiché par cet appareil qu'il faut absolument acheter pour être un homme du vingt-et-unième siècle est un extrait des Malheurs de Sophie de la Comtesse de Ségur. Les deux premières lignes du deuxième paragraphe ressemblent, lorsqu'on les regarde de plus près à ceci :
C'est assez fort : une coquille et une faute de grammaire. Je pose donc la question. Pour vendre de tels accessoires à des illettrés, est-il nécessaire de truffer les textes de fautes ?
Pages: << 1 ... 176 177 178 ...179 ...180 181 182 ...183 ...184 185 186 ... 204 >>