À la base, le problème est dit NP-complet, c'est-à-dire que la recherche de la meilleure solution parmi toutes les solutions possibles est exponentielle.
La plupart des articles sur le problème s'attachent à trouver un algorithme rapide qui trouve de bonnes solutions (mais pas forcément les meilleures).
Cela dit, tant que le nombre d'éléments manipulés est assez faible, on peut aussi envisager de tester toutes les solutions avec un algorithme bien bourrin du style : calculer toutes les permutations des éléments à classer (leur nombre est la factorielle du nombre d'éléments !) et pour chacune évaluer la qualité de la solution obtenue en rangeant les éléments dans des DVD dans l'ordre où ils sont.
La fonction d'évaluation des solutions pourrait par exemple être le nombre de DVD utilisés par 4.7*1024 - la place restante sur le dernier en Mo.
Le plus rapide pour toi serait évidemment de trouver un programme déjà tout fait. Cela dit, je suppose que tes fichiers correspondent aux pistes et sont classés en répertoires correspondants aux CD et que tu ne tiens pas à les mélanger. Je crains un peu que les logiciels existants (en tout cas ceux que j'ai vus) traitent le problème fichier par fichier...
Bonne chance.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
Encore une fois, OOo et Firefox sont avant tout des logiciels Windows, beaucoup de developpeurs sont sous Windows, alors arretez de penser que ce sont des logiciels Linux qui ont ete portes sous Windows !
En effet, mais si j'avais mis konqueror ou gnumeric, ça aurait été moins pertinent : ça n'est pas trop utilisé sous Windows...
Un logiciel libre n'est pas forcement un logiciel Linux, il y en a qui ne tournent que sous Windows.
Oui, mais quel rapport avec la discussion en cours ?
Que les gens ont bien raison de rester sous Windows parce que c'est là qu'il y a le plus de développeurs, et de continuer à payer leur dîme à Microsoft pour utiliser des logiciels libres et bien souvent gratuits ?
À mon avis, les développeurs qui font des logiciels libres uniquement pour Windows, ils sont bien gentils de soutenir le commerce de Microsoft pour pas un rond...
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
+ une fois l'authentification faite, il faudrait que les utilisateurs puissent envoyer des mails vers les autres domains virtuels et c'est tout. Pas question pour eux d'envoyer un mail vers free, gmail, laposte..etc
Idée 1 :
Tous tes domaines virtuels sont locaux à ce serveur ?
Dans ce cas, tu peux désactiver au niveau de master.cf les lignes de la commande smtp (voire lmtp pour faire bonne mesure), c'est-à-dire : #smtp unix - - n - - smtp
#relay unix - - n - - smtp
#lmtp unix - - n - - lmtp
mais surtout ne pas désactiver : smtp inet n - n - - smtpd
Bon, le problème, c'est que les messages sont quand même acceptés et restent dans la file. Cela dit, tu peux toujours réduire le temps qu'ils y restent avec le paramètre maximal_queue_lifetime dans main.cf.
Idée 2 :
Mettre dans main.cf : mynetworks_style = host
et ne pas mettre par ailleurs le paramètre mynetworks.
Ainsi, ton serveur devrait accepter les mails vers tes domaines, mais refuser tous les autres avec le message relay access denied, à moins que tes utilisateurs puissent obtenir un shell sur le serveur ou que tu aies un webmail qui tourne dessus. mynetworks =
résoud ce problème... mais apparemment uniquement si le mail est envoyé en passant par le démon smtpd, pas s'il est envoyé en local avec mail (qui doit utiliser la commande sendmail).
Idée 3 :
Essayer dans main.cf : default_transport =
ou default_transport = none
(Postfix gueule moins).
Mais apparemment, le mail stagne dans la queue, comme la solution 1.
Idée 4 :
Mettre dans main.cf : smtpd_recipient_restrictions = permit_auth_destination, reject
Ça devrait même rejeter les mails envoyé depuis le serveur, mais sur ma config, ça n'a pas trop l'air de marcher...
Idée 5 :
Mettre dans main.cf : relayhost = 127.0.0.2
Les mails vers l'extérieur sont alors rejetés avec le message : Diagnostic-Code: X-Postfix; mail for 127.0.0.2 loops back to myself
Idée 6 :
Poster ta question (en anglais) sur la mail list de Postfix. Elle est suivie par un tas de gens compétents, y compris l'auteur.
Tiens-nous au courant.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
Mandriva vends une distribution avec des logiciels propriétaires, mais en donne la version qui ne contient que des logiciels libres.
RedHat vends une distribution qui ne contient pratiquement que des logiciels libres et le service qui va avec. Du coup, ils ne la donnent pas comme ça, mais donnent toutefois gratuitement les sources qui permettent de la recompiler et tolèrent même que d'autres distribuent une version déjà recompilée.
Le modèle n'est pas le même, mais dans les deux cas, on peut finalement se procurer une distribution libre pour pas un rond.
Dans ces conditions, je ne vois pas vraiment pas de quoi on peut se plaindre.
Il y a (eu ?) bien d'autres distributions qui n'étaient pas aussi ouvertes et dont le modèle économique était plus contestable...
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
Firefox et OOo ont enormement participé à populariser le libre aupres du grand public, chose qui n'aurait pas été possible sans des versions windows. Et personnellement, je pense que ceci est benefique dans la mesure où ça fait decouvrir le libre à bien des personnes qui n'en auraient jamais entendu parler.
En effet. Mais d'un autre côté, certaines personnes restent sous Windows parce qu'elles sont attachées à certains logiciels propriétaires qui n'existent que sous Windows. L'arrivée de ces logiciels sous Linux pourrait leur faire reconsidérer l'éventualité de passer sous Linux.
En quoi est-ce formidable que des gens utilisent des logiciels libres sous un système propriétaire, mais serait-ce catastrophique qu'ils utilisent des logiciels propriétaires sous un système libre ?
Qui plus est, si quelqu'un utilise un logiciel, c'est parce qu'il l'a choisi. S'il utilise Windows, c'est souvent parce que c'est le seul système sous lequel tourne son logiciel. Il n'a pas eu le choix. Le fait que la majorité des logiciels propriétaires ne supportent que Windows assoit le monopole de Microsoft et garantit ses rentes pour un produit dont peut-être pas grand monde n'a réellement plus envie que du carburant qu'il met dans sa voiture.
Il faut aussi considérer tous les aspects du problème. Supposons que tous les logiciels propriétaires existent sous Linux. Son utilisation serait alors certainement bien plus répandue (ne serait-ce que pour le prix).
D'un côté les logicels propriétaires seraient plus omniprésents, mais de l'autre, la "part de marché" de Linux donnerait un plus grand poids aux développeurs du noyau par rapport aux constructeurs de matériel et on serait peut-être débarassé des pilotes propriétaires dans le noyau...
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
Au fait, c'est où que je télécharge [la distribution d'un grand fournisseur nord américain (ça m'ennuierait qu'ils risquent d'en vouloir encore à CentOS* à cause de mes conneries)] ?
Vous n'avez pas compris l'importance des formats ouverts pour linux pour ne pas voir le danger que représente la propagation de skype?
Je ne vous demande pas de les placer sur le bûcher mais simplement reconnaître que ce n'est pas une grande avancée pour libre serait déjà un début.....
Le même genre de problème se pose dans la situation inverse, avec les versions pour Windows des logiciels libres.
Dans quelle mesure les versions Windows de Firefox et OOo attirent-elles des gens vers les logiciels libres, et dans quelle mesure justifient-elles pour leurs utilisateurs de ne pas faire l'effort de passer à Linux ?
Dans ce cas précis, dans quelle mesure cette annonce est-elle susceptible d'attirer de nouveaux utilisateurs vers Linux, et dans quelle mesure est-elle susceptible d'inciter des gens qui utilisent déjà Linux à utiliser Skype et à en devenir dépendants ?
Ce genre de trucs est à double tranchant, et il me paraît bien difficile de savoir a priori si le bilan sera négatif ou positif...
Cela dit, il faut relativiser un peu pour Skype : au moins n'inclut-il pas de code propriétaire qui tourne en mode noyau, pas comme les pilotes propriétaires de cartes graphiques...
Bon, d'un autre côté, étant un logiciel réseau, il lui serait assez facile de contenir un spyware et de cacher des informations transmises à l'insu de l'utilisateur dans son flux normal.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
Comme l'a dit xavier, il ne serait pas inutile que tu explicites ton exemple : comptes-tu les lignes qui ne contiennent pas "tous" (j'ai supposé que oui) ? que fais-tu des lignes qui contiennent "tous" à un autre endroit (j'ai supposé que tu ne les affiches pas) ? souhaites-tu bien remplacer le premier champ par le numéro (c'est ce que semble montrer ton exemple) ?
Par rapport à l'exemple fourni, perl -nle '/^[^;]*(;tous;.*)$/ and print $. + 12, $1' toto.txt
fait le boulot et fonctionne pour un cas plus complexe en suivant les suppositions que j'ai faites.
-n assure le parcours des lignes du (ou des) fichier(s) donnés en arguments (comme awk). -l retire les fins de lignes avant le traitement et en remet après. $. est le numéro de la ligne courante du fichier. $1 est la chaîne correspondant à la première (et dans ce cas unique) parenthèse de l'expression rationnelle.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
J'en avais eu une : créer une classe de base dont le constructeur crée un finaliseur appelant une méthode considérée comme le destructeur, méthode à redéfinir sur les classes dérivées.
Seulement d'une part, le moment et l'ordre de la destruction des objets ne pourrait être garanti. Au passage, pour moi, ça démontre clairement que la gestion de la mémoire par un garbage collector est une erreur : un choix d'implémentation qui t'empêche d'implémenter un concept du paradigme, c'est un très mauvais choix.
D'autre part, les finaliseurs sont appelés après la destruction des objets !!!
Là, je ne vois pas ce qui obligeait à une telle aberration...
D'un point de vue plus général, comment quelqu'un qui a fait un langage aussi génial par ailleurs a-t-il pu autant saloper la question des destructeurs ? Ruby, ça me fait penser à une Ferrari avec une roue carrée !
As tu tant besoin des destructeurs que ça ?
Que répondre ?
Tu pourras me démontrer que je peux m'en passer, tout comme les avocats des langages qui ne supportent pas l'héritage multiple ont démontré qu'on pouvait s'en passer.
Seulement il y a une démonstration scientifique comme quoi on peut tout programmer avec juste une machine de Turing et il est empiriquement évident qu'on peut tout faire en assembleur. Ça ne me donnera pas envie pour autant de faire mes programmes avec une machine de Turing ou en assembleur...
Pour citer Matz : Above all, you can't enjoy programming with much stress.
Là, je suis parfaitement d'accord avec lui, Ruby's true motto is "Enjoy programming".
mais moi, je ne peux pas "enjoy programming" avec la complication de devoir contourner l'absence de destructeurs avec des méthodes plus lourdes ou plus moches.
Le système de bloc répond à une partie des problématiques (exemple l'implémentation de File.open(...) { .... } qui automatise la cloture du fichier)
Oui, mais cela ne se fait pas au même niveau : cela doit être fait au niveau de l'utilisation de la classe et pas seulement au niveau de sa définition comme les destructeurs.
Si tu programmes ta classe, que tu commences à l'utiliser un peu partout, et qu'à ce moment-là, tu te rends compte qu'il faudrait que tu fasses un traitement après l'utilisation des objets, eh bien avec les blocs, tu es cuit, il faut que tu modifies toutes les utilisations de ta classe !
Les finaliseurs de ruby ont certes une syntaxe dérangeantes mais permettent de faire le travail dans ces cas simples et clairement identifiables.
D'un autre côté, si c'est pour avoir au bout du compte un programme moche, je n'ai pas d'intérêt à passer à Ruby, je reste à Perl. Au moins avec Perl, c'est la syntaxe du langage qui est moche, pas la conception de tes programmes (ou alors c'est entièrement ta faute, le langage ne t'impose pas une conception sale).
Au niveau des concepts de programmation, Perl m'a permis de continuer à faire tout ce que je faisais avant avec d'autres langages. J'attends encore de trouver un langage qui me permette de faire tout ce que je fais maintenant avec Perl...
Cela dit, je m'inquiète un peu pour Perl 6, qui devrait utiliser un garbage collector plutôt qu'un compteur de références. Si, comme je le crains, ça implique la destruction des destructeurs, je me rabattrai sur Python, même s'il est par ailleurs trop rigide à mon goût.
Quels sont les besoins que tu as vis à vis des destructeurs et qui ne sont pas recoupés ?
Je ne sais même plus. Quand j'avais découvert Ruby, je m'étais jeté dessus (un truc (qui m'apparaissait) aussi puissant que Perl, mais en joli !) en commençant à programmer avec le premier truc pas trop gros (mais pas trop petit non plus, quelques centaines de lignes, quoi) dont j'ai pu avoir l'utilité.
Arrivé à un moment, je me dis "Tiens, il faut que je fasse un traitement à la destruction des objets de telle classe", mais, m'apprêtant à ajouter un destructeur, j'ai un curieux trou de mémoire sur la syntaxe des destructeurs... et là, je dois faire des recherches un peu poussées... pour finalement découvrir la merde de chat sous le tapis.
Conclusion, j'ai fini mon programme en ajoutant une méthode et en l'appelant explicitement partout où c'était nécessaire, j'ai ensuite passé du temps à essayer de programmer des destructeurs en Ruby, et puis quand j'ai vu que ce n'était pas possible, j'ai abandonné la programmation en Ruby.
Parmi les langages informatiques, Ruby est ma plus grande déception.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
Pour exemple le langage ne gère pas les classes abstraites. Il m'a fallu quelques heures et une centaines de lignes pour rajouter ça, alors que j'ai encore assez peu d'expérience dans ruby.
Si jamais en quelques heures de plus tu ajoutais de (vrais) destructeurs, je me remettrais probablement à Ruby...
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
Si ce n'est que je lance un process Perl pour chaque traitement.
Alors pourquoi pas plutôt faire un script unique, plus conséquent, qui fasse tous les traitements ?
Je connais très bien Perl, mais je me force justement à éviter de l'utiliser quand il existe d'autres solutions beaucoup plus légère, éviter d'utiliser un bulldozer pour écraser une mouche.
Pour ma part, à l'inverse, c'est mon temps que j'essaie d'économiser plus que celui de la machine.
Aussi, je pars directement sur Perl. Comme ça, quand je m'aperçois qu'il est souhaitable de faire un traitement plus compliqué que prévu et que l'outil qui m'aurait semblé suffisant au départ ne l'est plus, eh bien je ne perds pas de temps à convertir ce que j'avais déjà fait en Perl, parce que ça y est depuis le départ.
C'est un bon réflexe je pense.
Je ne suis pas convaincu que ce choix ait dans l'informatique actuelle autant de portée qu'il en aurait eu auparavant.
Pour égaler avec Perl la charge infligée sur un poste de travail par un navigateur web soit-disant léger comme Firefox ou par OpenOffice, ou sur un serveur par un truc "hyper-efficace" comme OpenLDAP, il faut vraiment que le traitement soit très lourd, ou alors qu'on l'ait programmé comme un pied. La lourdeur due au temps de lancement ou à l'encombrement mémoire de Perl par rapport à bash, sed ou awk est alors négligeable...
Je dis ça par expérience personnelle.
Sur le PIII 450 (avec 512 Mo quand même) que j'ai encore comme poste de travail pour quelques semaines, les trucs les plus lourds que j'utilise sont Firefox, xpdf et OpenOffice; la machine serait encore assez puissante pour tout le reste. Je n'ouvre généralement pas documents Word que je reçois en attachement de mail : la plupart du temps, l'intérêt du contenu ne vaut pas le temps que met OpenOffice à se lancer.
J'utilise OpenLDAP sur un serveur et je faisais sur l'annuaire un traitement nécessitant un nombre conséquent de requêtes assez lourdes. J'en ai eu marre que ça me charge le serveur pendant plusieurs minutes. Maintenant, je charge directement tout l'annuaire avec un dump au niveau du backend (donc en court-circuitant OpenLDAP) et je fais tous les traitements en interne de mon script Perl. C'est carrément plus rapide. Et encore j'ai utilisé par facilité les structures fournies d'origine par Perl (tableau associatif notamment), plutôt que des structures plus optimales dans ce cas (par exemple un arbre pour stocker l'annuaire). Sans importance : mes traitements sont encore nettement moins longs que le chargement de l'annuaire, pourtant pas plus long qu'une seule grosse requête sur OpenLDAP.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
Pour le racket organisé d'entreprises comme Microsoft ou Norton, il ne faut pas oublié que la vente de logiciel génère des bénéfices pour les entreprises et donc des impôts. La vente d'un produit est sujet à la TVA. A qui profite le crime?
Charger du mauvais côté la balance du commerce extérieur, et donc plomber notre économie (Microsoft n'y réinjecte pas trop l'argent qu'il perçoit) uniquement dans le but de récupérer des taxes au passage, cela ne pourrait être un bon calcul qu'à très court terme, même en ne considérant que la question du budget de l'état...
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
Je n'ai pas tout-à-fait bien repris mon exemple : l'intérêt de l'option s de la substitution est de pouvoir faire correspondre une fin de ligne à \s. C'est plus utile quand on utilise effectivement \s. Soit :
#!/usr/bin/perl -p0777
s/toto\s+titi/tata/gs;
s/...
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
En tout cas chez ati je peut t'affirmé qu'ils ne se lachent pas sur les drivers pour obtenir une meilleur performance!
Ah ?
Je ne suis pas allé assez loin avec les pilotes ATI pour en avoir une idée.
Mon expérience avec ATI se limite à l'essai d'une Mandriva qui m'a installé le pilote ATI propriétaire sans me demander mon avis (alors que j'ai une Radeon 9200 justement parce que c'est l'une des dernières ATI supportées par le pilote libre).
Résultat, dès le premier chargement de X, affichage pourri et gelé (j'admet, j'ai une carte pas ATI à base de chipset ATI, mais il n'est pas dit que le pilote ne supporte que les ATI pur sucre !).
Ensuite, j'ai redémarré en runlevel 3 le temps nettoyer le système du pilote propriétaire et, magie, plus de problème...
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
Je pense par contre que le code est souvent écris plus "à la vas vite" et c'est certainement la raison qui fait qu'on a plus confiance en le matériel.
Certainement, en tout cas dans le cas des fabriquants de périphériques.
On peut facilement trouver un matériel qu'on considère comme étant d'une certaine qualité. Pour un pilote propriétaire, il faut bien prendre celui fourni par le constructeur, et si l'on se pose avant la question de choisir un matériel fourni avec un pilote propriétaire de qualité, là, on ne trouve pas grand chose...
Peut-être aussi est-ce qu'on se dit qu'un problème matériel se manifeste généralement assez vite et que si cela a fonctionné correctement pendant un certain temps, c'est que ça doit être bon.
À part cela, on peut aussi, notamment sur un serveur, utiliser du RAID si l'on n'a pas confiance dans les disques, utiliser de la mémoire ECC... Du côté des pilotes, je n'en vois pas trop qui comprennent un système pour rattrapper leur éventuelle défaillance.
Si la fiabilité est la préoccupation numéro un, il existe des unices propriétaires qui font très bien leur travail.
Si l'on ne considère que la fiabilité technique, en effet. En particulier, sur les Unix propriétaires, les pilotes ne sont généralement pas écrit par le fabriquant des périphériques, mais par le vendeur du système. Du coup, il y a moins de pilotes, peut-être moins performants, mais plus fiables.
Cependant, si l'on considère dans la fiabilité l'assurance de ne pas avoir de backdoor dans le système, on n'est pas très avancé avec un Unix entièrement propriétaire...
D'ailleurs, la différence importante, entre le matériel et le logiciel, se situe justement dans ce domaine. Si l'on se pose les questions, pour être caricatural, "Est-ce que ma carte réseau ne laisserait pas des fois la NSA accéder à ma machine comme elle veut ?" et "Est-ce que le pilote propriétaire de ma carte réseau ne laisserait pas des fois la NSA accéder à ma machine comme elle veut ?", il est plus difficile pour le firmware qui tourne sur le chip intégré à la carte d'aller prendre le contrôle du noyau que pour le pilote qui est déjà exécuté sur le CPU en mode privilégié...
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
En quoi cette couche de logiciel est-elle intrinsèquement différente ?
Elle ne fonctionne pas sur le périphérique, comme un firmware, mais sur le processeur central, en mode noyau.
Ça lui ouvre nettement plus de possibilités pour planter le système ou contenir du code malicieux sans qu'on le sache...
Même en espérant que nVidia n'est pas un autre Sony, comme tout fabriquant de carte 3D, ils programment leurs drivers pour la performance (pour impressionner plus que le concurrent), en dépit de toute autre considération. Confronté à ce problème Microsoft a mis en place il y a plusieurs années un programme de certification des drivers pour obliger les fabriquants de matériel à faire des drivers potables qui ne plantent pas (plus ;-) ) Windows; sous Linux, ils peuvent à nouveau "se lâcher" et je suis convaincu qu'ils le font.
Exemple : j'ai installé une fois (!) un driver nVidia propriétaire (pas sur ma machine et encore moins sur un serveur, et c'était ça, le driver VESA, ou la mise-à-jour d'XFree, voire de la distrib), ça marchait super bien... jusqu'à ce que l'APM ou l'ACPI se déclenche. Là, freeze complet du système. Efficace.
Avoir une architecture à micronoyau où les pilotes tourneraient en mode non privilégié limiterait déjà beaucoup le risque, en échange d'une certaine perte de performances.
Andrew Tannenbaum considère que le jeu en vaut la chandelle (c'est le genre de trucs qu'il reproche à l'architecture du noyau de Linux), et je serais assez d'accord avec lui si un jour on ne peut éviter d'utiliser ces saletés de drivers binaires.
Cela dit, les considérations sont différentes suivant qu'on utilise sa machine uniquement comme une console de jeux en plus cher, pour stocker ses informations bancaires, ou comme serveur pour le boulot. Mais comprend qu'il y en a qui ont besoin d'un Linux fiable.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
vu que sans les warnings (-w) Perl ne va pas se formaliser de détails comme imprimer une variable indéfinie puisqu'initialisée avec un élément de tableau inexistant.
(Inutile de dire par contre, que si l'on fait des programmes conséquents sans les warnings, on peut chercher les bugs longtemps...)
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
je voulais éviter de mettre en branle un monstre comme Perl
Pour la machine, c'est effectivement plus lourd (mais si tu n'as pas un 486 avec 8 Mo de mémoire ou un matériel embarqué, ça ne devrait pas être bloquant), mais pour toi, pas nécessairement : perl -p0777e 's/toto\ntiti/tata/g' fichier
Voire éventuellement plus intéressant, sauf si tu es sûr que toto et titi sont tout le temps séparés par une fin de ligne : perl -p0777e 's/toto\s+titi/tata/gs' fichier
Ainsi,
tyty toto titi tete
tete tutu toto
tititoto titi tyty
devient :
tyty tata tete
tete tutu tatatata tyty
Tiré de man perlrun :
-p indique à Perl de considérer votre programme comme entouré par [une] boucle, qui le fait itérer sur les noms de fichiers passés en arguments, un peu à la manière de sed.
-0[digits] indique le séparateur d'enregistrement en entrée ($/) en notation octale. [...] La valeur 0777, indique à Perl d'avaler les fichiers en entier car il n'y a pas de caractère avec cette valeur octale.
Tiré de man perlop :
s/MOTIF/REMPLACEMENT/egimosx
s Traitement de la chaîne comme étant une seule ligne.
(ainsi \s peut correspondre à \n).
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
J'ai souvent fait des remarques de ce genre... et je me suis souvent fait moinser dessus. Il faut dire que je les ai faites en commentaire sur des annonces de nouveaux pilotes binaires ATI/nVidia et que ça gâchait peut-être la fête du nouveau pilote (buggé) de la mort pour la dernière carte 3D qui coûte le prix d'une console complète.
Maintenant, quelles sont les possibilités pour se sortir de cette situation ?
Si les développeurs du noyau refusaient totalement les pilotes binaires à partir de demain, ça pourrait limiter plus la diffusion de Linux que celles des matériels coupables...
Peut-être pourraient-ils déjà afficher au démarrage un message du genre "Attention, en raison de la présence d'un pilote propriétaire fermé (closed source) pour tel matériel dans votre noyau, l'intégrité de votre système ne peut être garantie" ?
Il faudrait peut-être utiliser le terme "non-certifié". Si ça pouvait déjà garantir que les constructeurs ne vendent pas comme "certifiées Linux" des machines contenant du matériel ne fonctionnant qu'avec des pilotes propriétaires, ce serait déjà un premier pas.
Une page sur kernel.org ou directement dans la doc du noyau avec la liste des matériel supportés par le kernel officiel pourrait fournir une véritable référence pour le choix de matériel (ce qui existe actuellement manque un peu de visibilité). En demandant aux constructeurs qui fournissent leurs spécs de fournir une table de conversion entre le type technique de leur matériel (vu par les pilotes) et les dénominations commerciales de ses variantes compatibles, ça pourrait être faisable.
En attendant, au niveau de LinuxFr, pourquoi ne pas déjà arrêter de passer les annonces de pilotes propriétaires, en tout cas en première page ?
Et le "nerf de la guerre", c'est qu'au niveau de chaque utilisateur, il est important d'acheter préférentiellement du matériel dont les spécifications sont disponibles plutôt que du matériel supporté uniquement par des pilotes binaires.
Nous votons avec notre argent : si nous achetons sans réticence du matériel supporté uniquement par des pilotes binaires, uniquement sur les plateformes les plus classiques et sans garantie que le support continuera une fois que le modèle ne sera plus produit, c'est un signe clair pour les constructeurs qu'ils n'ont pas à faire d'effort pour faire mieux. C'est comme cela qu'ATI a interprété le succès de nVidia y compris sur Linux...
Et les petits ruisseaux formant les grandes rivières, il faut prendre conscience que vous êtes responsable du futur (ça ne vaut pas que pour Linux, d'ailleurs).
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
Mais faut pas perdre confiance dans le systéme parlementaire, et éviter de dire tout de suite que les députés ne peuvent pas résister aux majors.
Tu as sûrement raison. La preuve, c'est que c'est bien ce que semble craindre le gouvernement : pourquoi le faire voter en urgence de nuit juste avant Noël, si ce n'est pour avoir le moins possible de députés, hormis ceux aux ordres, et leur laisser le moins possible de temps pour réfléchir ?
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
Ben si c'est vrai , je vais sortir avec mon sabre, buter deux ou trois centaines de personnes dans le métro , et on m'écoutera ?
En tout cas, on parlera beaucoup de toi !
Par contre, je ne suis pas sûr de ton choix de symbole, à moins que le message que tu veuilles faire passer soit juste "les transports en commun, c'est vachement dangereux : il y a des fous meurtriers avec des sabres". ;-)
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
il ne faut pas les appeler nos dirigeants [...] ce sont les élus du peuple
Je ne considère pas ces deux mots comme correspondant deux façon de voir les mêmes personnes, mais comme désignant des groupes de personnes en partie différents.
Par exemple les parlementaires sont des élus et les parlements (français et européens) sont les structures les plus démocratiques, mais ce sont ceux qui ont le moins de pouvoir (entre le parlement européen dont le vote ne compte que s'il va dans le "bon" sens, et le parlement français dont le rôle est de plus en plus contourné par l'article 49.3 ou par des votes en urgences à des moments délirants où seuls les fidèles lieutenants du gouvernement seront présents...).
Notre président est choisi un jour entre les deux candidats qui ont gagné la tombola du premier tour (chercher à "Condorcet" pour la description d'un système d'élection décent) et ne rend plus aucun compte à personne pendant 5 ans.
Les ministres sont désignés par lui.
Le conseil des ministres européen est donc constitué de gens désignés (et qui rejettent toujours les décisions contraire à l'intérêt général prises en conseil des ministres sur les autres membres), et de même pour la commission, si ce n'est que c'est encore moins transparent.
En résumé, plus la représentativité et la responsabilité envers la population diminuent, plus le pouvoir augmente.
Et là, c'est juste structurel, on n'a pas encore considéré les "amis" dont nos dirigeants politiques servent les intérêts ni les grands médias aux ordres des premiers ou des seconds pour conditionner la population selon leurs intérêts, afin qu'elle accepte son sort et qu'elle vote bien.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
# C'est pas trivial
Posté par Arthur Accroc . En réponse au message Répartir les fichiers dans des dossiers. Évalué à 5.
On peut trouver des articles dessus en faisant une recherche avec la chaîne bin packing.
Par exemple, la page http://www.ams.org/featurecolumn/archive/bins1.html présente le problème de manière abordable pour le commun des mortels.
http://www.loria.fr/~jcohen/enseignement/binpacking.pdf le présente en français de manière très complète, mais plus théorique...
À la base, le problème est dit NP-complet, c'est-à-dire que la recherche de la meilleure solution parmi toutes les solutions possibles est exponentielle.
La plupart des articles sur le problème s'attachent à trouver un algorithme rapide qui trouve de bonnes solutions (mais pas forcément les meilleures).
Cela dit, tant que le nombre d'éléments manipulés est assez faible, on peut aussi envisager de tester toutes les solutions avec un algorithme bien bourrin du style : calculer toutes les permutations des éléments à classer (leur nombre est la factorielle du nombre d'éléments !) et pour chacune évaluer la qualité de la solution obtenue en rangeant les éléments dans des DVD dans l'ordre où ils sont.
La fonction d'évaluation des solutions pourrait par exemple être le nombre de DVD utilisés par 4.7*1024 - la place restante sur le dernier en Mo.
Le plus rapide pour toi serait évidemment de trouver un programme déjà tout fait. Cela dit, je suppose que tes fichiers correspondent aux pistes et sont classés en répertoires correspondants aux CD et que tu ne tiens pas à les mélanger. Je crains un peu que les logiciels existants (en tout cas ceux que j'ai vus) traitent le problème fichier par fichier...
Bonne chance.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Re: Vive le libre!
Posté par Arthur Accroc . En réponse à la dépêche Skype intégré dans Mandriva 2006. Évalué à 3.
En effet, mais si j'avais mis konqueror ou gnumeric, ça aurait été moins pertinent : ça n'est pas trop utilisé sous Windows...
Oui, mais quel rapport avec la discussion en cours ?
Que les gens ont bien raison de rester sous Windows parce que c'est là qu'il y a le plus de développeurs, et de continuer à payer leur dîme à Microsoft pour utiliser des logiciels libres et bien souvent gratuits ?
À mon avis, les développeurs qui font des logiciels libres uniquement pour Windows, ils sont bien gentils de soutenir le commerce de Microsoft pour pas un rond...
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
# Idées
Posté par Arthur Accroc . En réponse au message Configuration Postfix. Évalué à 2.
Idée 1 :
Tous tes domaines virtuels sont locaux à ce serveur ?
Dans ce cas, tu peux désactiver au niveau de master.cf les lignes de la commande smtp (voire lmtp pour faire bonne mesure), c'est-à-dire :
#smtp unix - - n - - smtp
#relay unix - - n - - smtp
#lmtp unix - - n - - lmtp
mais surtout ne pas désactiver :
smtp inet n - n - - smtpd
Bon, le problème, c'est que les messages sont quand même acceptés et restent dans la file. Cela dit, tu peux toujours réduire le temps qu'ils y restent avec le paramètre maximal_queue_lifetime dans main.cf.
Idée 2 :
Mettre dans main.cf :
mynetworks_style = host
et ne pas mettre par ailleurs le paramètre mynetworks.
Ainsi, ton serveur devrait accepter les mails vers tes domaines, mais refuser tous les autres avec le message relay access denied, à moins que tes utilisateurs puissent obtenir un shell sur le serveur ou que tu aies un webmail qui tourne dessus.
mynetworks =
résoud ce problème... mais apparemment uniquement si le mail est envoyé en passant par le démon smtpd, pas s'il est envoyé en local avec mail (qui doit utiliser la commande sendmail).
Idée 3 :
Essayer dans main.cf :
default_transport =
ou
default_transport = none
(Postfix gueule moins).
Mais apparemment, le mail stagne dans la queue, comme la solution 1.
Idée 4 :
Mettre dans main.cf :
smtpd_recipient_restrictions = permit_auth_destination, reject
Ça devrait même rejeter les mails envoyé depuis le serveur, mais sur ma config, ça n'a pas trop l'air de marcher...
Idée 5 :
Mettre dans main.cf :
relayhost = 127.0.0.2
Les mails vers l'extérieur sont alors rejetés avec le message :
Diagnostic-Code: X-Postfix; mail for 127.0.0.2 loops back to myself
Idée 6 :
Poster ta question (en anglais) sur la mail list de Postfix. Elle est suivie par un tas de gens compétents, y compris l'auteur.
Tiens-nous au courant.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Re: Hors sujet
Posté par Arthur Accroc . En réponse à la dépêche Skype intégré dans Mandriva 2006. Évalué à 3.
RedHat vends une distribution qui ne contient pratiquement que des logiciels libres et le service qui va avec. Du coup, ils ne la donnent pas comme ça, mais donnent toutefois gratuitement les sources qui permettent de la recompiler et tolèrent même que d'autres distribuent une version déjà recompilée.
Le modèle n'est pas le même, mais dans les deux cas, on peut finalement se procurer une distribution libre pour pas un rond.
Dans ces conditions, je ne vois pas vraiment pas de quoi on peut se plaindre.
Il y a (eu ?) bien d'autres distributions qui n'étaient pas aussi ouvertes et dont le modèle économique était plus contestable...
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Re: Vive le libre!
Posté par Arthur Accroc . En réponse à la dépêche Skype intégré dans Mandriva 2006. Évalué à 4.
En effet. Mais d'un autre côté, certaines personnes restent sous Windows parce qu'elles sont attachées à certains logiciels propriétaires qui n'existent que sous Windows. L'arrivée de ces logiciels sous Linux pourrait leur faire reconsidérer l'éventualité de passer sous Linux.
En quoi est-ce formidable que des gens utilisent des logiciels libres sous un système propriétaire, mais serait-ce catastrophique qu'ils utilisent des logiciels propriétaires sous un système libre ?
Qui plus est, si quelqu'un utilise un logiciel, c'est parce qu'il l'a choisi. S'il utilise Windows, c'est souvent parce que c'est le seul système sous lequel tourne son logiciel. Il n'a pas eu le choix. Le fait que la majorité des logiciels propriétaires ne supportent que Windows assoit le monopole de Microsoft et garantit ses rentes pour un produit dont peut-être pas grand monde n'a réellement plus envie que du carburant qu'il met dans sa voiture.
Il faut aussi considérer tous les aspects du problème. Supposons que tous les logiciels propriétaires existent sous Linux. Son utilisation serait alors certainement bien plus répandue (ne serait-ce que pour le prix).
D'un côté les logicels propriétaires seraient plus omniprésents, mais de l'autre, la "part de marché" de Linux donnerait un plus grand poids aux développeurs du noyau par rapport aux constructeurs de matériel et on serait peut-être débarassé des pilotes propriétaires dans le noyau...
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Hors sujet
Posté par Arthur Accroc . En réponse à la dépêche Skype intégré dans Mandriva 2006. Évalué à 2.
http://www.centos.org/
* http://www.centos.org/modules/news/article.php?storyid=66
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Re: Vive le libre!
Posté par Arthur Accroc . En réponse à la dépêche Skype intégré dans Mandriva 2006. Évalué à 2.
Le même genre de problème se pose dans la situation inverse, avec les versions pour Windows des logiciels libres.
Dans quelle mesure les versions Windows de Firefox et OOo attirent-elles des gens vers les logiciels libres, et dans quelle mesure justifient-elles pour leurs utilisateurs de ne pas faire l'effort de passer à Linux ?
Dans ce cas précis, dans quelle mesure cette annonce est-elle susceptible d'attirer de nouveaux utilisateurs vers Linux, et dans quelle mesure est-elle susceptible d'inciter des gens qui utilisent déjà Linux à utiliser Skype et à en devenir dépendants ?
Ce genre de trucs est à double tranchant, et il me paraît bien difficile de savoir a priori si le bilan sera négatif ou positif...
Cela dit, il faut relativiser un peu pour Skype : au moins n'inclut-il pas de code propriétaire qui tourne en mode noyau, pas comme les pilotes propriétaires de cartes graphiques...
Bon, d'un autre côté, étant un logiciel réseau, il lui serait assez facile de contenir un spyware et de cacher des informations transmises à l'insu de l'utilisateur dans son flux normal.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
# Avec Perl
Posté par Arthur Accroc . En réponse au message Comment modifier chaque ligne dans un fichier ?. Évalué à 2.
Par rapport à l'exemple fourni,
perl -nle '/^[^;]*(;tous;.*)$/ and print $. + 12, $1' toto.txt
fait le boulot et fonctionne pour un cas plus complexe en suivant les suppositions que j'ai faites.
-n assure le parcours des lignes du (ou des) fichier(s) donnés en arguments (comme awk).
-l retire les fins de lignes avant le traitement et en remet après.
$. est le numéro de la ligne courante du fichier.
$1 est la chaîne correspondant à la première (et dans ce cas unique) parenthèse de l'expression rationnelle.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
# Autre piste
Posté par Arthur Accroc . En réponse au message de ISO-8859-1 en UTF-8 en pelr. Évalué à 3.
while (<IN>) {
print OUT encode('utf8', decode('latin1', $_));
}
Voir man Encode ou perldoc Encode pour plus de précisions.
Encode::Guess pourrait aussi t'intéresser.
Tout cela est distribué avec Perl en standard.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # CD : bon débarras !
Posté par Arthur Accroc . En réponse à la dépêche Revue de Presse - Décembre 2005. Évalué à 10.
Ça n'est pas moi qui le regretterai.
Je ne pense pas que GLMF était un magazine qu'on achetait pour le CD...
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Destructeurs
Posté par Arthur Accroc . En réponse à la dépêche Ruby on rails 1.0 est sorti. Évalué à 4.
J'en avais eu une : créer une classe de base dont le constructeur crée un finaliseur appelant une méthode considérée comme le destructeur, méthode à redéfinir sur les classes dérivées.
Seulement d'une part, le moment et l'ordre de la destruction des objets ne pourrait être garanti. Au passage, pour moi, ça démontre clairement que la gestion de la mémoire par un garbage collector est une erreur : un choix d'implémentation qui t'empêche d'implémenter un concept du paradigme, c'est un très mauvais choix.
D'autre part, les finaliseurs sont appelés après la destruction des objets !!!
Là, je ne vois pas ce qui obligeait à une telle aberration...
D'un point de vue plus général, comment quelqu'un qui a fait un langage aussi génial par ailleurs a-t-il pu autant saloper la question des destructeurs ? Ruby, ça me fait penser à une Ferrari avec une roue carrée !
Que répondre ?
Tu pourras me démontrer que je peux m'en passer, tout comme les avocats des langages qui ne supportent pas l'héritage multiple ont démontré qu'on pouvait s'en passer.
Seulement il y a une démonstration scientifique comme quoi on peut tout programmer avec juste une machine de Turing et il est empiriquement évident qu'on peut tout faire en assembleur. Ça ne me donnera pas envie pour autant de faire mes programmes avec une machine de Turing ou en assembleur...
Pour citer Matz :
Above all, you can't enjoy programming with much stress.
Là, je suis parfaitement d'accord avec lui,
Ruby's true motto is "Enjoy programming".
mais moi, je ne peux pas "enjoy programming" avec la complication de devoir contourner l'absence de destructeurs avec des méthodes plus lourdes ou plus moches.
Oui, mais cela ne se fait pas au même niveau : cela doit être fait au niveau de l'utilisation de la classe et pas seulement au niveau de sa définition comme les destructeurs.
Si tu programmes ta classe, que tu commences à l'utiliser un peu partout, et qu'à ce moment-là, tu te rends compte qu'il faudrait que tu fasses un traitement après l'utilisation des objets, eh bien avec les blocs, tu es cuit, il faut que tu modifies toutes les utilisations de ta classe !
D'un autre côté, si c'est pour avoir au bout du compte un programme moche, je n'ai pas d'intérêt à passer à Ruby, je reste à Perl. Au moins avec Perl, c'est la syntaxe du langage qui est moche, pas la conception de tes programmes (ou alors c'est entièrement ta faute, le langage ne t'impose pas une conception sale).
Au niveau des concepts de programmation, Perl m'a permis de continuer à faire tout ce que je faisais avant avec d'autres langages. J'attends encore de trouver un langage qui me permette de faire tout ce que je fais maintenant avec Perl...
Cela dit, je m'inquiète un peu pour Perl 6, qui devrait utiliser un garbage collector plutôt qu'un compteur de références. Si, comme je le crains, ça implique la destruction des destructeurs, je me rabattrai sur Python, même s'il est par ailleurs trop rigide à mon goût.
Je ne sais même plus. Quand j'avais découvert Ruby, je m'étais jeté dessus (un truc (qui m'apparaissait) aussi puissant que Perl, mais en joli !) en commençant à programmer avec le premier truc pas trop gros (mais pas trop petit non plus, quelques centaines de lignes, quoi) dont j'ai pu avoir l'utilité.
Arrivé à un moment, je me dis "Tiens, il faut que je fasse un traitement à la destruction des objets de telle classe", mais, m'apprêtant à ajouter un destructeur, j'ai un curieux trou de mémoire sur la syntaxe des destructeurs... et là, je dois faire des recherches un peu poussées... pour finalement découvrir la merde de chat sous le tapis.
Conclusion, j'ai fini mon programme en ajoutant une méthode et en l'appelant explicitement partout où c'était nécessaire, j'ai ensuite passé du temps à essayer de programmer des destructeurs en Ruby, et puis quand j'ai vu que ce n'était pas possible, j'ai abandonné la programmation en Ruby.
Parmi les langages informatiques, Ruby est ma plus grande déception.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Tant que tu y es...
Posté par Arthur Accroc . En réponse à la dépêche Ruby on rails 1.0 est sorti. Évalué à 2.
Si jamais en quelques heures de plus tu ajoutais de (vrais) destructeurs, je me remettrais probablement à Ruby...
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # To Perl or not to Perl
Posté par Arthur Accroc . En réponse au message Motif multi-lignes avec 'sed'. Évalué à 2.
Alors pourquoi pas plutôt faire un script unique, plus conséquent, qui fasse tous les traitements ?
Pour ma part, à l'inverse, c'est mon temps que j'essaie d'économiser plus que celui de la machine.
Aussi, je pars directement sur Perl. Comme ça, quand je m'aperçois qu'il est souhaitable de faire un traitement plus compliqué que prévu et que l'outil qui m'aurait semblé suffisant au départ ne l'est plus, eh bien je ne perds pas de temps à convertir ce que j'avais déjà fait en Perl, parce que ça y est depuis le départ.
Je ne suis pas convaincu que ce choix ait dans l'informatique actuelle autant de portée qu'il en aurait eu auparavant.
Pour égaler avec Perl la charge infligée sur un poste de travail par un navigateur web soit-disant léger comme Firefox ou par OpenOffice, ou sur un serveur par un truc "hyper-efficace" comme OpenLDAP, il faut vraiment que le traitement soit très lourd, ou alors qu'on l'ait programmé comme un pied. La lourdeur due au temps de lancement ou à l'encombrement mémoire de Perl par rapport à bash, sed ou awk est alors négligeable...
Je dis ça par expérience personnelle.
Sur le PIII 450 (avec 512 Mo quand même) que j'ai encore comme poste de travail pour quelques semaines, les trucs les plus lourds que j'utilise sont Firefox, xpdf et OpenOffice; la machine serait encore assez puissante pour tout le reste. Je n'ouvre généralement pas documents Word que je reçois en attachement de mail : la plupart du temps, l'intérêt du contenu ne vaut pas le temps que met OpenOffice à se lancer.
J'utilise OpenLDAP sur un serveur et je faisais sur l'annuaire un traitement nécessitant un nombre conséquent de requêtes assez lourdes. J'en ai eu marre que ça me charge le serveur pendant plusieurs minutes. Maintenant, je charge directement tout l'annuaire avec un dump au niveau du backend (donc en court-circuitant OpenLDAP) et je fais tous les traitements en interne de mon script Perl. C'est carrément plus rapide. Et encore j'ai utilisé par facilité les structures fournies d'origine par Perl (tableau associatif notamment), plutôt que des structures plus optimales dans ce cas (par exemple un arbre pour stocker l'annuaire). Sans importance : mes traitements sont encore nettement moins longs que le chargement de l'annuaire, pourtant pas plus long qu'une seule grosse requête sur OpenLDAP.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Re: Qui a tué le professeur moutarde ?
Posté par Arthur Accroc . En réponse à la dépêche Journée détaxe 2005 - Communiqué de Presse et actions. Évalué à 4.
Charger du mauvais côté la balance du commerce extérieur, et donc plomber notre économie (Microsoft n'y réinjecte pas trop l'argent qu'il perçoit) uniquement dans le but de récupérer des taxes au passage, cela ne pourrait être un bon calcul qu'à très court terme, même en ne considérant que la question du budget de l'état...
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Détail
Posté par Arthur Accroc . En réponse au message Motif multi-lignes avec 'sed'. Évalué à 2.
#!/usr/bin/perl -p0777
s/toto\s+titi/tata/gs;
s/...
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # ATI...
Posté par Arthur Accroc . En réponse à la dépêche Pilotes binaires dans Linux: quel est le problème ?. Évalué à 2.
Ah ?
Je ne suis pas allé assez loin avec les pilotes ATI pour en avoir une idée.
Mon expérience avec ATI se limite à l'essai d'une Mandriva qui m'a installé le pilote ATI propriétaire sans me demander mon avis (alors que j'ai une Radeon 9200 justement parce que c'est l'une des dernières ATI supportées par le pilote libre).
Résultat, dès le premier chargement de X, affichage pourri et gelé (j'admet, j'ai une carte pas ATI à base de chipset ATI, mais il n'est pas dit que le pilote ne supporte que les ATI pur sucre !).
Ensuite, j'ai redémarré en runlevel 3 le temps nettoyer le système du pilote propriétaire et, magie, plus de problème...
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Re: Le risque n'est pas le même
Posté par Arthur Accroc . En réponse à la dépêche Pilotes binaires dans Linux: quel est le problème ?. Évalué à 5.
Certainement, en tout cas dans le cas des fabriquants de périphériques.
On peut facilement trouver un matériel qu'on considère comme étant d'une certaine qualité. Pour un pilote propriétaire, il faut bien prendre celui fourni par le constructeur, et si l'on se pose avant la question de choisir un matériel fourni avec un pilote propriétaire de qualité, là, on ne trouve pas grand chose...
Peut-être aussi est-ce qu'on se dit qu'un problème matériel se manifeste généralement assez vite et que si cela a fonctionné correctement pendant un certain temps, c'est que ça doit être bon.
À part cela, on peut aussi, notamment sur un serveur, utiliser du RAID si l'on n'a pas confiance dans les disques, utiliser de la mémoire ECC... Du côté des pilotes, je n'en vois pas trop qui comprennent un système pour rattrapper leur éventuelle défaillance.
Si l'on ne considère que la fiabilité technique, en effet. En particulier, sur les Unix propriétaires, les pilotes ne sont généralement pas écrit par le fabriquant des périphériques, mais par le vendeur du système. Du coup, il y a moins de pilotes, peut-être moins performants, mais plus fiables.
Cependant, si l'on considère dans la fiabilité l'assurance de ne pas avoir de backdoor dans le système, on n'est pas très avancé avec un Unix entièrement propriétaire...
D'ailleurs, la différence importante, entre le matériel et le logiciel, se situe justement dans ce domaine. Si l'on se pose les questions, pour être caricatural, "Est-ce que ma carte réseau ne laisserait pas des fois la NSA accéder à ma machine comme elle veut ?" et "Est-ce que le pilote propriétaire de ma carte réseau ne laisserait pas des fois la NSA accéder à ma machine comme elle veut ?", il est plus difficile pour le firmware qui tourne sur le chip intégré à la carte d'aller prendre le contrôle du noyau que pour le pilote qui est déjà exécuté sur le CPU en mode privilégié...
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Le risque n'est pas le même
Posté par Arthur Accroc . En réponse à la dépêche Pilotes binaires dans Linux: quel est le problème ?. Évalué à 6.
Elle ne fonctionne pas sur le périphérique, comme un firmware, mais sur le processeur central, en mode noyau.
Ça lui ouvre nettement plus de possibilités pour planter le système ou contenir du code malicieux sans qu'on le sache...
Même en espérant que nVidia n'est pas un autre Sony, comme tout fabriquant de carte 3D, ils programment leurs drivers pour la performance (pour impressionner plus que le concurrent), en dépit de toute autre considération. Confronté à ce problème Microsoft a mis en place il y a plusieurs années un programme de certification des drivers pour obliger les fabriquants de matériel à faire des drivers potables qui ne plantent pas (plus ;-) ) Windows; sous Linux, ils peuvent à nouveau "se lâcher" et je suis convaincu qu'ils le font.
Exemple : j'ai installé une fois (!) un driver nVidia propriétaire (pas sur ma machine et encore moins sur un serveur, et c'était ça, le driver VESA, ou la mise-à-jour d'XFree, voire de la distrib), ça marchait super bien... jusqu'à ce que l'APM ou l'ACPI se déclenche. Là, freeze complet du système. Efficace.
Avoir une architecture à micronoyau où les pilotes tourneraient en mode non privilégié limiterait déjà beaucoup le risque, en échange d'une certaine perte de performances.
Andrew Tannenbaum considère que le jeu en vaut la chandelle (c'est le genre de trucs qu'il reproche à l'architecture du noyau de Linux), et je serais assez d'accord avec lui si un jour on ne peut éviter d'utiliser ces saletés de drivers binaires.
Cela dit, les considérations sont différentes suivant qu'on utilise sa machine uniquement comme une console de jeux en plus cher, pour stocker ses informations bancaires, ou comme serveur pour le boulot. Mais comprend qu'il y en a qui ont besoin d'un Linux fiable.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Uniligne simplifié
Posté par Arthur Accroc . En réponse au message [X-Window] top + xrootconsole. Évalué à 2.
top -b | perl -ne 'BEGIN { $/="\n\n\n" } print map "$_\n", (split /\n/)[0..39]' | xrootconsole
vu que sans les warnings (-w) Perl ne va pas se formaliser de détails comme imprimer une variable indéfinie puisqu'initialisée avec un élément de tableau inexistant.
(Inutile de dire par contre, que si l'on fait des programmes conséquents sans les warnings, on peut chercher les bugs longtemps...)
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Script façon sed en Perl
Posté par Arthur Accroc . En réponse au message Motif multi-lignes avec 'sed'. Évalué à 3.
#!/usr/bin/perl -p0777
s/toto\ntiti/tata/gs;
s/...
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Perl
Posté par Arthur Accroc . En réponse au message Motif multi-lignes avec 'sed'. Évalué à 4.
Pour la machine, c'est effectivement plus lourd (mais si tu n'as pas un 486 avec 8 Mo de mémoire ou un matériel embarqué, ça ne devrait pas être bloquant), mais pour toi, pas nécessairement :
perl -p0777e 's/toto\ntiti/tata/g' fichier
Voire éventuellement plus intéressant, sauf si tu es sûr que toto et titi sont tout le temps séparés par une fin de ligne :
perl -p0777e 's/toto\s+titi/tata/gs' fichier
Ainsi,
tyty toto titi tete
tete tutu toto
tititoto titi tyty
devient :
tyty tata tete
tete tutu tatatata tyty
Tiré de man perlrun :
-p indique à Perl de considérer votre programme comme entouré par [une] boucle, qui le fait itérer sur les noms de fichiers passés en arguments, un peu à la manière de sed.
-0[digits] indique le séparateur d'enregistrement en entrée ($/) en notation octale. [...] La valeur 0777, indique à Perl d'avaler les fichiers en entier car il n'y a pas de caractère avec cette valeur octale.
Tiré de man perlop :
s/MOTIF/REMPLACEMENT/egimosx
s Traitement de la chaîne comme étant une seule ligne.
(ainsi \s peut correspondre à \n).
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
# Oui, mais que faire ?
Posté par Arthur Accroc . En réponse à la dépêche Pilotes binaires dans Linux: quel est le problème ?. Évalué à 10.
J'ai souvent fait des remarques de ce genre... et je me suis souvent fait moinser dessus. Il faut dire que je les ai faites en commentaire sur des annonces de nouveaux pilotes binaires ATI/nVidia et que ça gâchait peut-être la fête du nouveau pilote (buggé) de la mort pour la dernière carte 3D qui coûte le prix d'une console complète.
Maintenant, quelles sont les possibilités pour se sortir de cette situation ?
Si les développeurs du noyau refusaient totalement les pilotes binaires à partir de demain, ça pourrait limiter plus la diffusion de Linux que celles des matériels coupables...
Peut-être pourraient-ils déjà afficher au démarrage un message du genre "Attention, en raison de la présence d'un pilote propriétaire fermé (closed source) pour tel matériel dans votre noyau, l'intégrité de votre système ne peut être garantie" ?
Il faudrait peut-être utiliser le terme "non-certifié". Si ça pouvait déjà garantir que les constructeurs ne vendent pas comme "certifiées Linux" des machines contenant du matériel ne fonctionnant qu'avec des pilotes propriétaires, ce serait déjà un premier pas.
Une page sur kernel.org ou directement dans la doc du noyau avec la liste des matériel supportés par le kernel officiel pourrait fournir une véritable référence pour le choix de matériel (ce qui existe actuellement manque un peu de visibilité). En demandant aux constructeurs qui fournissent leurs spécs de fournir une table de conversion entre le type technique de leur matériel (vu par les pilotes) et les dénominations commerciales de ses variantes compatibles, ça pourrait être faisable.
En attendant, au niveau de LinuxFr, pourquoi ne pas déjà arrêter de passer les annonces de pilotes propriétaires, en tout cas en première page ?
Et le "nerf de la guerre", c'est qu'au niveau de chaque utilisateur, il est important d'acheter préférentiellement du matériel dont les spécifications sont disponibles plutôt que du matériel supporté uniquement par des pilotes binaires.
Nous votons avec notre argent : si nous achetons sans réticence du matériel supporté uniquement par des pilotes binaires, uniquement sur les plateformes les plus classiques et sans garantie que le support continuera une fois que le modèle ne sera plus produit, c'est un signe clair pour les constructeurs qu'ils n'ont pas à faire d'effort pour faire mieux. C'est comme cela qu'ATI a interprété le succès de nVidia y compris sur Linux...
Et les petits ruisseaux formant les grandes rivières, il faut prendre conscience que vous êtes responsable du futur (ça ne vaut pas que pour Linux, d'ailleurs).
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Députés gênants
Posté par Arthur Accroc . En réponse à la dépêche Pétition EUCD.info « Non au projet de loi DADVSI ! ». Évalué à 9.
Tu as sûrement raison. La preuve, c'est que c'est bien ce que semble craindre le gouvernement : pourquoi le faire voter en urgence de nuit juste avant Noël, si ce n'est pour avoir le moins possible de députés, hormis ceux aux ordres, et leur laisser le moins possible de temps pour réfléchir ?
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Re: Médiatisation
Posté par Arthur Accroc . En réponse à la dépêche Projet de loi DADVSI: EUCD.INFO publie un dossier d'information complet et un appel. Évalué à 2.
En tout cas, on parlera beaucoup de toi !
Par contre, je ne suis pas sûr de ton choix de symbole, à moins que le message que tu veuilles faire passer soit juste "les transports en commun, c'est vachement dangereux : il y a des fous meurtriers avec des sabres". ;-)
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
[^] # Élus ou dirigeants
Posté par Arthur Accroc . En réponse à la dépêche Les Européens de l'année sont.... Évalué à 3.
Je ne considère pas ces deux mots comme correspondant deux façon de voir les mêmes personnes, mais comme désignant des groupes de personnes en partie différents.
Par exemple les parlementaires sont des élus et les parlements (français et européens) sont les structures les plus démocratiques, mais ce sont ceux qui ont le moins de pouvoir (entre le parlement européen dont le vote ne compte que s'il va dans le "bon" sens, et le parlement français dont le rôle est de plus en plus contourné par l'article 49.3 ou par des votes en urgences à des moments délirants où seuls les fidèles lieutenants du gouvernement seront présents...).
Notre président est choisi un jour entre les deux candidats qui ont gagné la tombola du premier tour (chercher à "Condorcet" pour la description d'un système d'élection décent) et ne rend plus aucun compte à personne pendant 5 ans.
Les ministres sont désignés par lui.
Le conseil des ministres européen est donc constitué de gens désignés (et qui rejettent toujours les décisions contraire à l'intérêt général prises en conseil des ministres sur les autres membres), et de même pour la commission, si ce n'est que c'est encore moins transparent.
En résumé, plus la représentativité et la responsabilité envers la population diminuent, plus le pouvoir augmente.
Et là, c'est juste structurel, on n'a pas encore considéré les "amis" dont nos dirigeants politiques servent les intérêts ni les grands médias aux ordres des premiers ou des seconds pour conditionner la population selon leurs intérêts, afin qu'elle accepte son sort et qu'elle vote bien.
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone