Obsidian a écrit 5292 commentaires

  • [^] # Re: Encodage caractère

    Posté par  . En réponse au message encodage des sources. Évalué à 0.

    Méfiance, l'encodage Windows qui ressemble à de l'ISO pourrait bien être le Windows-1250. C'est le plus répandu à mon avis, notament dans le système de fichiers.

    Je crois cependant que la meilleure manière d'assurer la portabilité vers toutes les langues du monde, si c'est bien ton objectif, ou en tous cas leur majorité est encore de coder tes chaînes en Unicode sur 16 bits par caractère. Il me semble, mais c'est à vérifier, que les compilateurs de chez Bill font cela par défaut (un xxd sur les fichiers générés montrent des caractères codés sur deux octets).

    Par contre, si tu souhaites te cantonner, et c'est déjà beaucoup, aux langues latines, alors l'ISO-8859-15 avec son symbole euro est aujourd'hui l'encodage de référence pour tout le monde.
  • [^] # Re: Yet another flamewar ?

    Posté par  . En réponse au message Code cleaning. Évalué à 3.

    peut s'autoriser le if sans accollade...

    Parlons-en.

    Les compilateurs font aujourd'hui eux-mêmes leurs optimisations, mais il n'y a plus beaucoup de gens qui savent qu'en principe la définition d'un bloc entre accolades implique la mise en place d'un cadre de pile (ce qui rend possible l'utilisation de variables locales en son sein, d'ailleurs), et que ce n'est pas forcément souhaitable, ni souhaité.

    Bref, je trouve que la rigueur en programmation devrait s'exprimer à ce niveau, et pas sur les effets cosmétiques qui ne sont qu'histoire de goût. A mon avis, aucun programmeur ou chef de projet conscients de ces faits et ayant suffisament développé n'a de temps à perdre avec ce genre de joujou, m'enfin bon. Si cela rend service à quelqu'un ...
  • [^] # Re: Discret

    Posté par  . En réponse au journal SCO: YOUR CODE BELONG TO US MOUHAHAHA. Évalué à 5.

    Y a du progrès, les défaceurs de sites ne sont plus traités comme des terroristes.

    Par contre, si le défaçage de sites correspond au plus à du vandalisme, il est quand même nettement plus facile de restaurer un site que d'effacer un tag ou remplacer un pneu, non ?

    Si le site externe est construit en tant que réplique d'un interne, il suffit de lancer une commande - voire cliquer sur un bouton - pour que tout rentre dans l'ordre ...
  • # Là, c'est involontaire.

    Posté par  . En réponse au journal Fait un peu chier Microsoft quand même... Évalué à 2.

    Oui, mais là, c'est involontaire. Ce genre d'erreur se produit sur tous les sites dynamiques, quelque soit le produit employé. Il y a d'autres endroits, par contre, où c'est délibéré :

    http://linuxfr.org/~yojik77/6618.html(...)
  • # Yet another flamewar ?

    Posté par  . En réponse au message Code cleaning. Évalué à 1.

    Cela sort un peu du sujet mais je me demande un peu quelle est l'utilité de ce genre d'outils. Personnellement, ce que je demande à un bout de code c'est :

    - De compiler.
    - D'être lisible.

    Sorti de cela, le style de présentation fait directement partie de l'expression du programmeur et ne devrait pas, à mon goût, être altérée. Mais pire encore, dans certains cas, les critères de mise en page dépendent directement du contexte. Exemple, si la plupart du temps la mise en place d'un « if » implique celle d'un bloc entre accolades et d'une indentation adéquate, il m'arrive de temps en temps d'utiliser une suite de « if » successifs terminés par une seule instructions. J'aligne alors souvent ces « if » multiples sur la même colonne, un par ligne. C'est au mépris des recommandations de base en la matière, mais il se trouve que c'est ce qu'il y a de plus clair dans ce contexte.

    Bref, je trouve les homogéniseurs de code limite fachos, et en tout cas très trollogènes.

    Mais ce n'est bien sûr que mon avis ... :-)
  • # Mandrake move, ou Knoppix.

    Posté par  . En réponse au message Cd préinstaller?. Évalué à 3.

    Si tu tiens à apprivoiser Mandrake en particulier, tu peux effectivement essayer Mandrake Move. Si tu veux découvrir Linux en général, je te conseille plutôt une Knoppix, qui n'a plus à faire ses preuves.

    Personnellement, j'en ai toujours une sur moi. Pour la donner à quelqu'un qui souhaite découvrir cette distribution à l'occasion, et également pour dépanner des machines, même sous Windows.

    En revanche, si tu t'inities à Linux, fais attention de ne pas de cantoner à « ce qui ressemble à Windows ». Trop de gens aujourd'hui ne connaissent que ce système et l'apréhendent comme les fondements de l'informatique, prenant ainsi dès le départ de très mauvaises habitudes. Si tu passes à Linux, essaie tant qu'à faire d'utiliser quelque chose de complètement différent, par exemple utiliser Window Maker plutôt que tout de suite les environnements GNOME et KDE. Et puisque l'on est déjà dans les efforts et les bonnes habitudes. Essaie dès le départ de te débrouiller avec la ligne de commande, beaucoup moins difficile qu'elle n'en a l'air. Un petit coup de pouce : Elle est beaucoup plus puissante que la petite boîte DOS de Windows 9x/2k/XP.

    Bon courage
  • [^] # Re: Rien ne vaut un exemple ...

    Posté par  . En réponse au message Tableaux dynamiques multidimmensionnels. Évalué à 2.

    Bien sûr que non ! Les calculs d'adresse par ...

    C'est ce que j'explique dans le paragraphe suivant.

    Non. De plus je ne vois pas ce que tu veux dire en parlant de segments ?

    Je parlais de segments de mémoire dans le sens général du terme, pas en faisant référence au mode réel du 80x86. Ce qui me chagrine avec le new,delete du C++, c'est qu'à moins d'avoir loupé quelque chose, il n'est pas possible de faire l'équivalent d'un realloc().

    Cela veut dire que même lorsque tu veux par exemple ne serait-ce que réduire la taille d'un bloc de mémoire allloué, tu es obligé d'en redéclarer un à coté et de consommer (temporairement) encore plus de mémoire, et que tu es dans tous les cas obligé de changer de pointeur. En outre, il te faut faire la copie du bloc mémoire par tes propres soins.
  • # Bien configurer ses enfants

    Posté par  . En réponse au journal Noël et le monde du libre. Évalué à -1.

    Rhalala,

    Et quand il sera en âge de recompiler la kernelle et qu'il fera sa crise d'adolescence, il te dira « ton Linux c'est pour les bébés, moi je veux un Windows Ultimate à 300 ¤ parce que tous mes copains ont le même. Sinon je vais me faire taper dessus à la récré !»
  • [^] # Re: Rien ne vaut un exemple ...

    Posté par  . En réponse au message Tableaux dynamiques multidimmensionnels. Évalué à 3.

    Ce qui veut donc dire que ce n'est pas possible en soi.

    Cela se comprend dans le sens où la réservation d'un espace mémoire est différente de l'initialisation d'un objet en particulier. L'ennui ici, c'est que l'on est pas du tout sûr que le tableau multidimensionnel ainsi créé soit en un seul morceau en mémoire. En même temps, ce n'est de toutes façons pas quelque chose que l'on peut garantir puisque les opérateurs de déréférencement (*) et d'indexation ([x]) peuvent être redéfinis.

    Ceci m'amène donc à quelques questions, moi aussi.

    . Est-il possible d'initialiser un objet dans une zone de mémoire déjà définie (à priori non puisque qu'on devrait définir cette zone mémoire à l'aide d'un "new Object"). Je crois que même un (Object *)this->Object() créera une nouvelle instance plutôt que d'initialiser celle pointée par this.

    . Est-ce qu'il existe en C++ l'équivalent de realloc() ? Parce que là, par contre, c'est vraiment pénible d'avoir à faire soi-même le transfert. En plus, cela implique un déplacement de pointeur et une cohabitation temporaire de deux segments de mémoire même lorsque ce n'est pas nécessaire (ex: troncature du segment initial).
  • [^] # Re: Et Linuxfr ?

    Posté par  . En réponse à la dépêche Le Monde diplomatique sur cédérom pour Linux. Évalué à 2.

    A moins que tu veuilles un archivage des plus beaux trolls postés dans les commentaires :)

    Pas seulement les trolls, je pensais à archiver toute la base, soit l'intégralité de la participation des utilisateurs, en effaçant simplement les données « internes » confidentielles ...
  • [^] # Re: A mon avis non

    Posté par  . En réponse au message question de droit, sur fichier sur mon disque mais pas à moi. Évalué à 2.

    Mo = 4 mega octets /s ; un orctet faisant 8 bits ça fait donc 32 mega bits /sec.

    C'est sans compter les contraintes de transmission de la ligne série elle-même. En général il y a toujours un bit de start au début de l'octet à transmettre et un de stop à la fin, à quelques modulations près. Ce qui fait qu'un octet de données se transmet en général avec dix bits « d'horloge ».

    C'est à prendre en compte dès les premiers calculs lorsque l'on cherche à estimer le débit maximum envisageable de sa ligne.
  • # Et Linuxfr ?

    Posté par  . En réponse à la dépêche Le Monde diplomatique sur cédérom pour Linux. Évalué à 4.

    Cela tombe très bien parce que cette idée me trottait dans la tête depuis plusieurs semaines et j'avais justement l'intention d'en faire un journal aujourd'hui !

    Serait-il envisageable d'archiver de la même façon le contenu de Linuxfr ? J'accède régulièrement aux anciennes news du site, heureusement toujours accessibles même s'il faut quelque malheureuses secondes pour les retrouver.

    Cela vaudrait le coup d'immortaliser le tout sur CDs ou sur DVD, à prix modique, pour la postérité.
  • [^] # Re: heu ...

    Posté par  . En réponse au message éth0 [échec] non-reconnaissance de l'interface. Évalué à 2.

    Je ne crois pas, donc je m'y colle :

    Réponse courte :

    http://www.google.fr(...) est ton ami. Tes questions concernent le B-A-BA de l'informatique sur PC et sont parfaitement accessibles et décrites sur de nombreuses pages Web. Deux très bons sites, pour débuter en prenant tout de suite l'habitude de ne pas dire de bêtises ! :-)

    http://www.commentcamarche.net(...)
    http://www.lea-linux.org(...)

    Tout cela est dù aux mêmes sempiternelles raisons : Tous les gens qui postent ici sont de très bonne volonté mais personne n'a le temps de réexpliquer 100 fois les mêmes choses. Donc, il faut absolument apprendre à chercher l'info soi-même. Cela rend service à toute la communauté.

    Réponse développée :

    J'ai lu attentivement le dialogue de lyonsurf et de sébastien au sujet de l'échec de la reconnaissance de l'interface éth0 sous mandrake 10 (c'est mon cas...; apparemment le même problème que lyonsurf)

    C'est une excellente chose d'avoir lu le dialogue en entier avant de poster. Par contre, comme on ne l'a probablement pas lu, il faudrait que tu nous donnes l'URL vers ce fil, histoire de savoir de quoi on parle.

    Sinon pour le reste:

    BIOS: Basic Input Output System. C'est un micro-système d'exploitation logé en ROM qui servait initialement à donner au PC le minimum vital : L'écriture à l'écran, le contrôle de quelques périphériques, et surtout la gestion du disque. Si ton PC ne sait pas faire cela initialement, il n'y a aucune chance pour que tu puisse lancer un OS tel que Linux, ni même Windows, OS qui prendra ensuite le relais une fois proprement chargé en mémoire. Très vite, cette zone mémoire s'est vu équipée d'une toute petite interface utilisateur conçue par le fabricant de la machine permettant de spécifier les paramètres de très bas niveau de ta machine, en général ceux qui seront très difficiles à modifier après le démarrage du système, précisement parce que ledit système s'appuie sur les ressources en question. Configuration du BUS, préassignation des IRQ, etc.

    On accède à cette zone en appuyant sur une touche spéciale tout à fait au début du démarrage de ta machine, touche qui dépend du fabricant de ta carte -mère (plus précisément : de la maison qui a écrit le BIOS qui équipe ta carte-mère).

    Le plus fréquent, c'est l'une des touches suivantes : Suppr (ou Del), F1, F2, F10, F12 ou Esc. Parfois Ctrl-S.

    Enfin que signifient Plug'n'play, ...

    C'est un synonyme pour FIASCO ! :-) Plus sérieusement, c'était censé vouloir dire « Tu branches, ça marche ».

    L'idée (bonne à l'origine) était de définir un standard reconnu par le BIOS et par les pilotes d'un périphérique, et d'embarquer ce pilote directement sur le périph en question en ROM. Le système allouait donc au mieux les ressources dès la mise sous tension ou presque et, implicitement, détectait tout tes périphériques (ce qui était loin d'être évident avec le bus ISA).

    Evidement, c'était sans compter le fait que le pilote est précisément fait pour interagir avec l'OS. On ne peut donc écrire un pilote universel, et de toutes façons, il est beaucoup plus aisé de mettre un pilote à jour sur un disque dur que sur une carte. Ce qui fait qu'en principe, on doit toujours en fin de compte installer un pilote.

    Pire : Du coup, cette prise en charge implicite entre en conflit avec le système d'exploitation lui-même qui, après tout, fait son boulot (pas celui du BIOS).

    Moralité, 9 fois sur 10 il faut demander au BIOS de ne pas prendre en charge le Plug'n'Play si tu veux que ton système d'exploitation gère tes périphs correctement.


    ...dos?

    Soit « Disk Operating System », le vénérable système d'exploitation monotâche qui a équipé tous les PC jusqu'à ce que Windows95 apparaisse et commence doucement à faire ce que Linux faisait depuis 4 ans, et Unix depuis 25 ! (Attention, commentaire riche en troll), mais qui avait le bon goût de savoir tenir en une petite 100aine de kilo-octets de mémoire vive.

    Soit « Denial Of Service », ou Déni de Service. Arrive lorsqu'un petit malin blinde un serveur de millions de requêtes bidon pour le saturer, de façon à ce que les vraies requêtes ne puissent être traitées et que le serveur semble inaccessible.
  • # Je pense que non.

    Posté par  . En réponse au message question de droit, sur fichier sur mon disque mais pas à moi. Évalué à 4.

    Par contre, ai-je le droit de les garder? serais-ce comme si il me pretait ses cd? si je les laisse sur mon disque dur avec acces seulement à son compte avec mot de passe, mais possédant le mot de passe root (moi) et donc capable de les lire, est-ce que je risque quelque chose?

    Je suis loin d'être expert, mais je ne crois pas qu'en soi, cela puisse se tenir. Pour cela, il faudrait que tu sois officiellement déclaré comme hébergeur (avec toutes les lois trollifères qui sont passées au sujet de ceux-ci ces deux dernières années).

    De plus, dans la mesure où ton ami a toujours la jouissance de ses CD et que ton disque ne lui appartient pas, on ne peut pas considérer cela comme de la copie de sauvegarde, laquelle copie n'ayant même pas un statut clair (autorisé ou toléré).

    Pour l'écoute dans le cadre du cercle privé ou de famille, cela ne colle pas non plus car tu ne fais pas partie de la famille, tu ne les écoutes pas en sa présence, ni à son domicile, alors que là encore, ton ami a toujours l'usage de ses CD (principale différence avec un prêt, à mon avis) surtout à toutes SES copies de sauvegarde qu'il a récupéré (les tiennes ne peuvent alors plus prétendre à ce statut).


    Par contre, tu devrais pouvoir convaincre facilement un juge de ta bonne foi (en admettant que tu en arrives directement à ce stade, ce que je ne te souhaite pas).

    Suis-je déja dans l'illégalité, en les ayant sur mon disque dur, mais avec un compte à son nom?

    Probablement, pour les raisons citées précédement : Tu n'as pas de statut officiel d'hébergeur donc la création de compte à son nom n'a aucune valeur juridique. Par contre tu restes bel et bien propriétaire et dans tes locaux de ton disque et de ta machine. Plus encore, tu as stocké ces fichiers en connaissance de cause et les as administrés. Tu ne peux donc pas prétendre que ces titres soient hors de ta responsabilité.
  • [^] # Re: re :

    Posté par  . En réponse au message Démarrage bien long. Évalué à 2.

    Peut être un truc dans le bios que Linux n'aimerait pas?

    Oui, un module noyau doit faire un timeout.
    Laisse démarrer ton Linux, logue-toi et fais un dmesg. La raison de l'expiration du delai de grâce devrait y être écrite en clair.
  • # Déconnecter le HUB.

    Posté par  . En réponse au message Manips USB. Évalué à 2.

    Je fais ça aussi pour réinitialiser un modem ADSL récalcitrant (je suppose que tu as le même problème), parce que cela me fait braire d'aller débrancher/rebrancher le câble USB à chaque fois : Pas bon pour la connectique.

    L'astuce que j'ai trouvé est la suivante : rmmod usb-uhci (ou rmmod uhci, ou encore rmmod ohci, selon les cas). Cela « descend » la gestion du hub USB comme pour une interface réseau et donc, quand l'implémentation est bien réalisée, cela mets tout le bus hors-tension.

    Y a plus qu'a remodprober et tout rentre dans l'ordre.
  • [^] # Re: Droits ...

    Posté par  . En réponse au message Plus un seul user. Évalué à 2.

    euh, un ls -l sur '/', c'est pas faisable !?... Si ? :? :P

    Essaie ls -ld /
  • [^] # Re: Droits ...

    Posté par  . En réponse au message Plus un seul user. Évalué à 2.

    Oui, bien vu. Je pense que c'est ça aussi (à moins qu'une partition soit mointée pour chacun des répertoires des utilisateurs).

    Si / n'a pas le droit de passage "--x" au moins, l'utilisateur ne pourra pas accéder à son répertoire personnel.
  • [^] # Re: Montages

    Posté par  . En réponse au message Blocage de mon HOME. Évalué à 3.

    Pareil, nous on a eu le problème sur un gros serveur Solaris.

    Si tu le peux, fais un "ps aux", tes processus devraient être bloqués en état "D". Il est possible que ton /home ne soit pas monté en réseau mais sur la partition d'un disque plus très frais. Fais un "dmesg" pour voir si tu n'as pas un message un peu plus explicite.
  • [^] # Re: prb noyau

    Posté par  . En réponse au message Iptables: Masquerading récalcitrant.. Évalué à 3.

    Super, cela fonctionne.

    Effectivement je me suis douté en voyant iptables appeler des libs que celles-ci auraient sûrement besoin d'être tôt ou tard mises à jour.

    Merci beaucoup pour le tuyau, l'installation s'est faite absolument sans douleur et ma connexion est désormais distribuée comme il se doit !
  • [^] # Re: Je pense que tu as déjà lu ceci... mais à tout hasard

    Posté par  . En réponse au message Iptables: Masquerading récalcitrant.. Évalué à 2.

    En effet, mais merci quand même pour le lien, qui sera je pense utile à pas mal de monde. Je vais essayer de suivre les conseils de Tuan Kuranes car effectivement, iptables fait appel à des bibliothèques qui ont probablement besoin d'être mises à jour avec le noyau.

    Merci.
  • # Un demi-million de commentaires !

    Posté par  . En réponse au message Iptables: Masquerading récalcitrant.. Évalué à 3.

    Au fait, joyeux « anniversaire » à Da Linux French Page qui dépasse aujourd'hui les 500 000 commentaires !

    Bravo et longue vie à linuxfr.org.
  • [^] # Re: RE

    Posté par  . En réponse au message Compilation C++. Évalué à 2.

    A noter que tu as corrigé son code mais pas donné la réponse:

    En C++, ta fonction main() doit forcément renvoyer un code de retour. Donc pas de void main () mais un int main ().

    Et puisque l'on parle de bon bouquin, moi je ressors - encore et toujours - celui de Christian Casteyde :

    http://casteyde.christian.free.fr/(...)

    J'ai pas trouvé mieux, personnellement. Réjouis-toi : C'est libre, c'est en FDL et c'est en français ! :-)
  • [^] # Re: RE

    Posté par  . En réponse au message Compilation C++. Évalué à 4.

    copier-coller malheureux :

    cout << "Numero = "; cin >> num; endl;
    cout << "Date = "; cin >> date; endl;
    cout << "Destination = "; cin >> destination; endl;
    cout << "Prix = "; cin >> prix; endl;

    Les endl sont inutiles ici. Tu n'écris pas dans le stream.

    cout << "Numero = "; num; endl;
    cout << "Date = "; date; endl;
    cout << "Destination = "; destination; endl;
    cout << "Prix = "; prix ; endl;

    Ici tu devrais avoir des inserters "<<" et pas des point-virgules ! Un peu d'attention :-) Note bien que cela ne plante pas car "endl" est en fait une fonction, et que "ostream::operator <<" est déjà surchargé pour la reconnaitre.

    Tu peux très bien invoquer, en C et en C++, le symbole d'une fonction sans les parenthèses, car c'est un symbole à part entière qui représente quelque chose de bien défini: une fonction. Le symbole prend donc comme valeur l'adresse en mémoire du code de cette fonction (c'est donc un pointeur de fonction).

    Or, tu peux très bien mettre une expression qui retourne (éventuellement) une valeur sur une ligne, clotûrée par un ";". Exemples:

    5;
    cos(1);
    8+7;
    printf("Bonjour");

    Les fonctions sont des expressions au même titre que 5 ou 8+7, et qui ont une valeur. Le C/C++ appelle le code de ces fonctions pour les évaluer, et implémente de cette manière le système de sous-programme. C'est ce qui permet à printf("") de faire une action (écrire à l'écran) lorsqu'elle est évaluée.

    Or, endl est une fonction, mais surchargée, ce qui veut dire qu'il existe plusieurs versions de endl. Associé à un stream, il n'y a pas d'ambigüité, mais hors-contexte, le C++ ne sait pas laquelle choisir. D'où l'erreur !

    Ton code était donc complètement incorrect ... mais légal ! :-)

    Bienvenue dans le monde merveilleux du C++. Quand tu auras appris à en maîtriser toutes les subtilités, la puissance sera entre tes mains (personnellement, je ne code plus qu'en ASM/C/C++, avec accessoirement un peu de Shell).

    Bon courage.
  • [^] # Re: RE

    Posté par  . En réponse au message Compilation C++. Évalué à 3.

    Alors accessoirement:

    - Invoque gcc avec "g++" plutôt que "gcc" dans ta ligne de commande.
    - Tous les streams standard et les outils de la STL sont définis dans le namespace "std".

    Alors soit tu remplaces tous tes cout par std::cout, tes cin par std::cin , etc. , soit tu mets une fois pour toutes "using namespace std;" en début d'une nouvelle ligne juste avant la définition de ta classe.

    Bonne chance.