freem a écrit 4965 commentaires

  • [^] # Re: Utopie ?

    Posté par  . En réponse à la dépêche État des jeux sous Linux. Évalué à 2.

    Ce fut instructif de débattre avec toi.

    De même.

    Dommage qu'on aie quelques soucis de compréhension, mais ça n'est pas toujours évident à l'écrit de retransmettre exactement ce que l'on veut dire, entre les imprécisions de vocabulaire et celles de lecture (méa culpa pour avoir raté le mot évolution) :D

  • [^] # Re: Utopie ?

    Posté par  . En réponse à la dépêche État des jeux sous Linux. Évalué à 1.

    Bon, il semble que tu ne tentes plus de me contredire sur l'ensemble de mes propos, c'est déjà pas mal, alors je vais expliciter, sans imprécisions ce coups-ci, ma pensée.

    Je te conseil de lire la dernière phrase du chapitre de ton lien

    Bon, je vais copier coller le chapitre en question, et mettre en gras la phrase que j'ai utilisée et la dernière (que tu me demandes de lire), je pense que ce sera plus simple pour la compréhension:

    Windows ME was complemented by NT-based Windows 2000, which was aimed at professional users. Both operating systems were succeeded by Windows XP with their features unified. All Windows ME support, including security updates and security related hotfixes, was terminated on July 11, 2006. Support for Windows 98 and Windows 98 SE was also terminated on that date. Microsoft ended support for these products because the company considers them obsolete and running these products can expose users to security risks.[41]

    Many third-party applications written for earlier editions of Microsoft Windows, especially older games, run under Windows ME but not under Windows 2000. This fact has become less relevant with the sharp decline in popularity of Windows ME after the release of Windows XP, which features a compatibility mode which allows many of these older applications to run.

    If an installation CD-ROM from the Windows 2000 family is inserted into the drive of a computer running Windows ME, the user is prompted to upgrade to Windows 2000 because Windows ME has an older version number than Windows 2000. While this is not technically so (Windows ME was released several months after Windows 2000), Windows ME is in fact derived from the older, monolithic MS-DOS codebase (Windows 4.x) while Windows 2000 is the first of the NT 5.0 family, making the latter an upgrade.

    Windows 2000 cannot, however, be upgraded to Windows ME. If an installation CD-ROM from Windows ME is inserted while running Windows 2000, the user will receive an error message that Setup cannot run from within Windows 2000. The user is prompted to shut down Windows 2000, restart the computer using Windows 95 or 98, or start MS-DOS and then run Setup from the MS-DOS command prompt.

    Windows XP, which is NT-based, became the successor to Windows ME. It also closed the gap between consumer Windows and Windows NT. In addition, no service packs for Windows ME were released.

    Along with Windows 2000 from the NT family, Windows ME was the last version of Windows that lacked product activation.

    Windows ME was the last Windows release to be based on the Windows 9x (monolithic) kernel and MS-DOS.

    Ok, donc, en fait, ce que tu essayais de me dire, c'est que ce n'est pas la version familiale de NT2000, parce que ce n'est pas la même branche de noyau?
    Si c'est ça, comme je l'ai déjà dis ("Quand je parlais de version familiale, c'était peut-être un raccourcis un peu rapide, puisque le kernel n'est pas partagé…"), j'ai été imprécis en parlant de version, et je l'ai reconnu sans le moindre problème.

    Tout ce que je tente de faire accepter, depuis le début, c'est que:

    • 2000NT était pour les entreprises
    • ME était pour le grand public (d'où mon raccourcis bancal sur "la version familiale")
    • que ME étant sorti après 2000NT, 2000NT n'a pas pu être financé par celui-ci (contrairement à ton propos)

    Est ensuite venu le fait que j'ai dit que windows XP possède deux déclinaisons pour répondre à l'assertion fausse que XP aurait été la version familiale de 2000NT qui a été opposée à mon imprécision, l'une étant grand public et l'autre pour les entreprises.

    Toutes ces opinions qui sont miennes depuis le début, sont manifestement corroborées par wikipedia, bien que je l'ignorais au moment de ma première intervention (que wikipedia disais la même chose, modulo mon imprécision sur le mot "version").

    En espérant avoir clarifié l'ensemble de mon propos sans ajouter d'imprécision…

  • [^] # Re: Il y a plusieurs formes de commentaires.

    Posté par  . En réponse au journal To comment or not to comment. That is the question.. Évalué à 2.

    Je ne suis pas sûr de comprendre ce que tu veux dire?

    Si j'ai une fonction de 50 lignes (j'ai rarement plus) qui s'appelle "printPage(int number)" le pourquoi appeler cette fonction est déjà commenté dans le nom, et on sait que tout ce qu'elle fera sera avec l'objectif d'afficher le contenu de la page number, non?

    Après, logiquement, si tu modifies un programme, tu devrais savoir à quoi il sert, et en creusant couche après couche, si les noms sont corrects (pas toujours simple cela dis) le pourquoi devrait (conditionnel) se situer dans le nommage, pour moi…

    Idem, si tu as une grosse expression type:

    return (x*y+j<2?callFoo(x,y):callBar(j,k);

    Si on y comprend rien c'est clairement parce que les noms sont foireux, et que le développeur à tout mis sur une seule ligne pour rien…

    int FooBarCaller(...)
    {
    int ret;
    if((x*y+j<<k%tmp)>2)
      ret=callFoo(x,y);
    else
      ret=callBar(j,k);
    }
    
    

    Bien que plus lisible, on s'aperçoit encore une fois qu'on ne comprend rien, mais forcément avec des noms à la con… (en même temps, c'est pas un exemple tiré de la vie réelle)

    J'ai un bout de code la (je n'irai pas dire que c'est super propre hein, et c'est de moi il y a quelques mois… :/):

    void Camera::AutoCalibration(void)
    {
    ...
    ...
    ...
        CvRect r; //will contain final values of used rectangle
    ...
    ...
    ...
        if(r.x && r.y && !InsideTolerance(r))
        {
            m_roi=r;
            SetSize(m_roi.width,m_roi.height);
        }
    }
    
    bool Camera::InsideTolerance(CvRect const &target)
    {
        if(m_tolEnabled)
            return CheckSingleTolerance(target.x,m_roi.x,m_tolX)
                &&CheckSingleTolerance(target.y,m_roi.y,m_tolY)
                &&CheckSingleTolerance(target.width,m_roi.width,m_tolX)
                &&CheckSingleTolerance(target.height,m_roi.height,m_tolY);
        return false;
    }
    ...
    ...
    ...
    bool Camera::CheckSingleTolerance(double value, double base, double percent)
    {
        return value*(1+percent)>base && value*(1-percent)<base;
    }
    
    

    1er constat: j'ai un commentaire qui explique le pourquoi de l'existence de la variable "r"… un meilleur nom aurait suffit. Pour m_roi, l'abréviation est un peu plus justifiée, mais pas terrible quand même (RegionOfInterest au cas où. Vu que c'est une classe qui manipule des images prises d'une caméra…).

    2nd constat (où je voulais en venir au final):

    if(r.x && r.y && !InsideTolerance(r))

    ici, "InsideTolerance" ne sers qu'une seule fois dans tout le code, et sert justement à nommer le "pourquoi" de son code.
    Les quelques lignes se traduisent en "si on a des valeurs non-nulles ou en dehors de la zone de tolérance, on les utilise comme nouvelle région d'intérêt.".

    PS:
    Le nommage pourrait vraiment être amélioré d'ailleurs… j'ai limite honte de foutre ça sur un forum… j'aurai aussi du diviser ce bazard en plusieurs classes, rétrospectivement. Pour le coup Camera fait clairement office de fourre-tout, ce qui aide pas du tout à avoir des noms cohérents et clairs: si j'avais encapsulé cette histoire de région dans sa propre classe, avec ses méthodes dédiées donc, l'ensemble aurait été plus simple à lire et comprendre.

    PPS:
    Le code complet de la fonction en question:

    void Camera::AutoCalibration(void)
    {
        if(!m_objectDetect)
            return;
    
        ObjectDetect();
        unsigned short decalX,decalY;
    
        CvRect r; //will contain final values of used rectangle
        r.x=10000;r.y=10000; //dumb values. I should have used a macro like INT_MAX in stdint.h, but VC9 doesn't respect C++03 standard
        r.width=0;r.height=0;
        for( int i = 0; i < m_Objects->total; ++i )
        {
            CvRect rt=GetObjectN(i);
            if( rt.height<= 0 || rt.width<= 0 ||rt.x<= 0||rt.y<= 0 )
                continue;//!\todo verify that following code (from an example on the web) is not useless
    
            //enlarge rt rectangle with decal values
            decalX=static_cast<unsigned short>(rt.width*m_decalX);
            decalY=static_cast<unsigned short>(rt.height*m_decalY);
            //calculate the final rectangle, which will contain both previous r rectangle and current rt rectangle
            r.x=std::min(rt.x-decalX,r.x);
            r.y=std::min( rt.y-decalY,r.y);
            r.width=std::max(rt.x+rt.width+decalX,r.width);
            r.height=std::max(rt.y+rt.height+decalY,r.height);
        }
    
        //ensure (x,y) contain the lowest coordinates
        if(r.y>r.height)
            std::swap(r.y,r.height);
        if(r.x>r.width)
            std::swap(r.x,r.width);
    
        //transform width and height into dimensions (they are actually coordinates)
        r.width-=r.x;
        r.height-=r.y;
    
        //checking if new roi should be applyed (tolerance and sigsegv fault checks)
        if(r.x && r.y && !InsideTolerance(r))
        {
            m_roi=r;
            SetSize(m_roi.width,m_roi.height);
        }
    }
    
    

    //checking if new roi should be applyed (tolerance and sigsegv fault checks)

    comme quoi je commente quand même un peu. Mais ce commentaire aurait sûrement pu sauter si la méthode avait été proprement découpée et ne faisait pas le café. (je suis vraiment pas fier de ce truc)

  • [^] # Re: Code auto-documenté

    Posté par  . En réponse au journal To comment or not to comment. That is the question.. Évalué à 2.

    De manière globale, je trouve qu'il faut plus d'effort pour lire ton code que la version initiale. Ok, chaque méthode est plus petite. Mais finalement c'est tellement morcelé que ça complexifie la lecture et la compréhension, alors que quand même, le code initial est plutôt simple :)

    Je me suis dis la même chose, mais je pense que c'est parce que je ne suis pas habitué à ce style d'écriture.
    Je pense que ça aurait été plus lisible si les définitions des fonctions n'étaient pas imbriquées. J'ai toujours trouvé absolument vomitif ce type de choses, et pour moi, même si les lambdas sont parfois utiles, je trouve qu'en abuser n'est pas vraiment une bonne chose.

    En fait, je suis d'accord avec ton intervention, mais je pense que ce qui rend le code difficile a lire, au moins dans mon cas, est que j'ai plusieurs handicap:
    * je maîtrise pas JS,
    * j'aime les langages typés (pour moi, savoir qu'une variable est un entier, signé ou pas, par exemple, aide à comprendre son futur rôle: non signé? Ah, peut-être un index… signé? Probablement pas.),
    * je supporte difficilement les lignes avec plusieurs instructions (sauf cas très précis, et jamais sur de boucles/conditions)

    Mais toutes ces raisons qui font que je lis mal son code n'ont rien à voir avec la présence ou pas de commentaires.

    PS: vive le C++11 pour le range loop, auto, et les lambda :p

  • [^] # Re: Bons commentaires

    Posté par  . En réponse au journal To comment or not to comment. That is the question.. Évalué à 1.

    Il faut toujours commenter le domaine des arguments acceptés, car en général le type seul ne permet pas déterminer le domaine de la fonction. Il faut aussi commenter les conditions d'erreur, particulièrement celles qui ne sont pas gérées.

    En gros, tu prônes la programmation par contrat?

    Celle-ci permets justement de virer pas mal de commentaires (enfin, pas trop pour le C, vu qu'on ne possède pas certains outils nativement comme les exceptions, mais…):

    "my_structure* returnPointer();"

    my_structure* returnPointer()
    {
    my_structure* ret;

    if(ret==NULL)
    generateSigSegv();
    }

    La, on sait que si on retourne NULL (0) on génère une sigsegv et le programme se plantera. Avant même d'essayer d'utiliser une valeur invalide, et pourtant je ne l'ai commenté nulle part.

    Ensuite, le nom est redondant avec la signature de la fonction: on sait déjà, grâce au code, que la fonction retourne un pointeur… grâce au prototype, on sait même de quel type, d'ailleurs. Par contre, rien ne nous indique sur quoi le pointeur pointe…
    my_structure* getVideoAddress() serait par exemple bien meilleur. On sait qu'on se récupère une adresse vidéo, sous forme d'une instance de type my_structure.

  • [^] # Re: Sélection naturelle

    Posté par  . En réponse au journal To comment or not to comment. That is the question.. Évalué à 3. Dernière modification le 24 avril 2013 à 11:00.

    Déjà, ne pas utiliser d'abréviations: l'auto-complétion, s'pas pour les chiens.
    Et finalement, utiliser des noms qui veulent dire quelque chose, de préférence qui se réfère au rôle de la variable/fonction/méthode/classe.
    Cette phrase à le mérite de bannir les noms à 1 lettre, sauf cas particuliers: i, j pour les compteurs de boucle, x, y, z pour des coordonnées…

    Il m'arrive d'utiliser le mot "ret" (abréviation) parce que return est un mot-clé, cependant. Tmp aussi, même si c'est rare et limité à de très petites fonctions/méthodes, et idem j'essaie d'éviter.

    J'ai vu des conseils qui indiquent d'utiliser des noms pour les variables et objets et des verbes d'action pour les méthodes/fonctions, c'est pas trop mal, mais parfois limité quand on utilise l'anglais (print? Mais print what?) donc je dirais garder le coup du verbe d'action et le compléter si nécessaire (printPageNumber, ah, ok).

    Ensuite, je pense que le reste c'est en fonction du langage et des conventions de l'équipe:
    * si t'as pas de typage fort, la notation hollandaise n'est pas une mauvaise idée, sinon si.
    * si le langage tends à utiliser camelCase, et que l'équipe veut faire du code qui soit aisément distinguable de la lib standard, on peut vouloir utiliser les _ pour séparer les mots, par exemple.
    * si l'équipe préfère utiliser le français pour coder, l'utiliser.
    * …

    A noter: rien de tout ça ne doit être utilisé comme règle absolue :)

  • [^] # Re: Utopie ?

    Posté par  . En réponse à la dépêche État des jeux sous Linux. Évalué à 1.

    Exact, mea culpa.

    Je voulais dire pour un public d'usagers normaux, mais j'admets avoir omis de le préciser (la série des 9x m'a toujours plus semblé à destination du grand public, contrairement aux NT qui eux fournissent des comptes utilisateur, par exemple)

  • [^] # Re: Utopie ?

    Posté par  . En réponse à la dépêche État des jeux sous Linux. Évalué à 1. Dernière modification le 24 avril 2013 à 10:58.

    Merci d'avoir mis un lien vers la page de wikipedia, que j'ai omis mais qui contiens les infos que j'ai citées.

    De ton côté tu as aussi sorti une grosse connerie: dire que Me à servi à financer XP

    Je te défie de me prouver le contraire ;-)

    Je ne compte pas le faire, vu que cette phrase au complet, et pas tronquée comme tu la citée est celle-ci:

    De ton côté tu as aussi sorti une grosse connerie: dire que Me à servi à financer XP, pourquoi pas, mais 2000 était déjà sorti…

    elle se découpe en 3 parties articulées autour de la ponctuation:

    De ton côté tu as aussi sorti une grosse connerie

    Ca, ça me semble assez clair, et je maintiens.

    dire que Me à servi à financer XP, pourquoi pas,

    J'explique mon propos en commençant par dire que je n'ai rien contre cette assertion.

    mais 2000 était déjà sorti…

    Et je finis en disant qu'il est impossible que Me ait financé 2000NT puisque celui-ci est sorti avant. Elle est ici, la connerie.

    Les autres éléments de ta réponse se situent dans le post juste au-dessus du mien, en vrac:

    • 3D gérée, si.
    • les variantes Pro et Fam' n'ont que la différence de fonctionnalités, artificiellement bridées pour certaines, le coeur du système est strictement le même. Avec un peu de bidouille du registre (illégales) et quelques copies (encore une fois illégales) de binaires on retrouve le même système. C'est un peu comme dire qu'une Debian avec juste le paquet xfce4 sera moins stable que la même avec le paquet xfce4-goodies…

    En effet, mais le post de morphalus rectifiait l'erreur de ton post précédent (pour lequel tu as été abondamment moinssé).

    Et j'ai expliqué que j'ai été juste été imprécis et utilisé mon propre système de valeur, mais aussi expliqué pourquoi je considère Me comme une version familiale.
    Ensuite, je vais citer le message que tu considères corriger mon erreur:

    Nop, Windows XP était la version familiale / grand public de Win2000.

    Il n'y a toujours rien qui te choques, alors que tu indiques toi-même wikipedia à la fin de ton message? Tu copies une URL sans la lire, ou en faisant exprès d'ignorer les passages du texte mis en référence qui montrent que vous vous êtes trompés…
    Comparé à mon assertion qui est basée sur un ressenti (d'ailleurs, encore une fois, confirmé pas wikipedia: "Windows ME was complemented by NT-based Windows 2000, which was aimed at professional users.". Je dois te faire la trad? WinME était complété par 2000NT, celui-ci ciblant les utilisateurs professionnels. ) que personne ici n'a pu prouvé erroné, on me rétorque une affirmation complètement délirante et sans aucun fondement, si ce n'est de décrier les produits microsoft… au moins, à cette époque, installer un windows utilisable par un lambda était plus simple qu'une Debian… Ah, oups, j'ai oublié, ne surtout pas dire que windows à eu des points forts contre une distro linux sur ce site :D

    Voila ! je n'irais pas plus loin dans ce débat stérile qui ne m'intéresse pas en plus :-D, pour plus d'infos le wiki (que tu as peut être déjà lu)

    En effet, stérile, vu que quand je cite wikipedia au mot près, tu m'oppose des ressentis et des souvenirs. Donc tu préfères fuir plutôt que d'admettre tes torts. Grand bien t'en fasses…

    Ta mauvaise foi à bel et bien stérilisé cette discussion.

  • [^] # Re: Moi, j'aime pas les libertariens !

    Posté par  . En réponse à la dépêche Libertarianisme et propriété intellectuelle, une traduction. Évalué à 0.

    Les libertaires ont, il me semble, plusieurs courants.
    Certains révolutionnaires, d'autres nihilistes et quelques autres progressistes.

    L'anarchie, c'est le fait de ne pas avoir de chef, si on reprend l'étymologie.
    Si on prend une démocratie directe, qui n'élit pas de gouvernement, on pourrait estimer qu'il s'agit d'une forme d'anarchie, et qui ne me semble pas si irréalisable que cela.

    A contrario, ce que j'ai lu des descriptions des libertariens (en sachant que j'ai découvert le terme sur ce thread, hein, donc je continue d'apprendre à ce sujet, et j'ai du boulot) explique plutôt qu'ils veulent faire régner une variante de la loi du plus fort: la loi du plus friqué, qui deviens donc de fait le chef.
    Quand tu possèdes la terre, par exemple: tu as le droit d'empêcher, manu militari s'il le faut, des gens d'être dessus, ou d'exiger qu'ils fassent quelque chose pour toi: c'est un marché après tout. Si tu possèdes donc un village, tu peux raisonnablement t'en considérer le chef, puisque toute personne souhaitant y résider te devra l'obéissance, puisque c'est toi qui établit le marché qui lui permets de rester.

    Les anarchistes de gauche, qui semblent avoir des accointances avec les communistes (enfin, pas avec toutes les mouvances communistes, vu qu'ils ont été chassés par les dirigeants de l'ex-URSS et effacés des documents. Ils se sont également révoltés contre elle, cf l'épisode de la makhnovtchina qui a libéré l'ukraine des nazis après les coco leur aient donné, puis qui a tenté de la défendre contre ceux-ci quand ils ont voulu la reprendre.), semblent estimer que la terre appartiens à tout le monde, et que donc ce type de situation ne pourrait pas se produire. Avec, bien sûr, le risque de conflits par rapport aux problèmes liés à la vie privée…

  • [^] # Re: Droit naturel

    Posté par  . En réponse à la dépêche Libertarianisme et propriété intellectuelle, une traduction. Évalué à 2.

    Je vais peut-être dire une bêtise, mais:

    C'est ainsi qu'on peut passer de la royauté à la république, de la république à la tyrannie, de la tyrannie à l'empire et de l'empire à la démocratie. La question qui subsiste est celle-ci : pourquoi et comment ?

    quelle est la distinction entre république et démocratie? Qu'est-ce qui empêcherait une royauté d'être démocrate?

    Wikipedia me dit, pour république:

    Une république est un régime politique où les fonctions de Chef d'État ne sont pas héréditaires, mais procèdent de l'élection. Cependant, une république n'est pas nécessairement une démocratie (cas des régimes à parti unique ou ayant élu un dictateur), tout comme une monarchie n'est pas nécessairement absolue, cas de la monarchie constitutionnelle et parlementaire.

    Et ce qu'elle dit pour démocratie:

    Ainsi, aujourd'hui encore, il n'existe pas de définition communément admise de ce qu'est ou doit être la démocratie.

    De façon générale, un gouvernement est dit démocratique par opposition aux systèmes monarchiques d'une part, où le pouvoir est détenu par un seul, et d'autre part aux systèmes oligarchiques, où le pouvoir est détenu par un groupe restreint d'individus. Néanmoins, ces oppositions, héritées de la philosophie grecque (notamment de la classification d'Aristote) sont aujourd'hui équivoques de par l'existence de monarchies parlementaires.

    Je précise, tout de même, que je n'ai lu que les introductions (qui semblent d'ailleurs tout à fait conformes à mes souvenirs d'histoire, matière dans laquelle j'étais un cancre, et donc souvenirs peu fiables), et que si tu peux donc préciser ton vocabulaire de philosophie politique afin d'éclairer les manques que j'ai probablement, je t'en serais reconnaissant.

  • [^] # Re: Droit naturel

    Posté par  . En réponse à la dépêche Libertarianisme et propriété intellectuelle, une traduction. Évalué à 3.

    Je pense qu'il voulais dire sans gouvernement, en fait.
    C'est quasi systématique de mélanger état et gouvernement, sûrement un fait dû au manque d'expériences récentes d'états n'ayant pas de gouvernement, justement, donc les gens ont mélangé les concepts.

  • [^] # Re: Droit naturel

    Posté par  . En réponse à la dépêche Libertarianisme et propriété intellectuelle, une traduction. Évalué à 2.

    Quant à la thèse selon laquelle les singes sont devenus des hommes, cela montre qu'il faut revoir l'enseignement de Darwin dans les collèges et les lycées. J'ai coutume de répondre à ce genre de formule stupide : "c'est peut-être vrai dans votre famille, mais dans la mienne on est un peu plus évolué" !

    Message sans agressivité aucune ni remise en cause de tes propos, je précise, vu que je ne connais pas grand chose aux théories de l'évolution…

    Pourrais-tu éclaircir un peu ce passage pour un néophyte, s'il te plaît? Tu fais référence aux néandertal et autres cro-magnon? (Et la, je viens de prouver 2s que je suis un pur néophyte de la question \o/)

  • [^] # Re: Utopie ?

    Posté par  . En réponse à la dépêche État des jeux sous Linux. Évalué à -1.

    Quand je parlais de version familiale, c'était peut-être un raccourcis un peu rapide, puisque le kernel n'est pas partagé…

    Mais je ne crois pas que les win basés sur DOS aient réellement été conçus pour une utilisation pro, et c'est cela que je voulais dire.
    Considérant que les 2 (2000NT et Me) sont sortis la même année:

    Windows Me (ou Windows Millennium Edition) : septembre 2000
    […]
    Windows 2000 (Cairo) : février 2000

    oui, j'ai tendance à considérer que Me, et plus généralement la branche 9x, sont des versions destinées aux familles. Bien entendu, je n'ai aucune source à ce sujet, si ce n'est le manque de support de choses comme active directory.

    Nous parlions de ME et non de XP souviens toi.

    Ce n'est pas moi qui ai abordé windows XP, et son auteur à quand même sorti (et à été approuvé xD) que XP est la version familiale de windows 2000 (alors qu'il y a 2 variantes d'XP, la pro et la fam' justement)… quand tu parles d'être pointilleux, j'ai comme un doute :)

    De ton côté tu as aussi sorti une grosse connerie: dire que Me à servi à financer XP, pourquoi pas, mais 2000 était déjà sorti…
    Je réitère donc: "quand tu parles d'être pointilleux, j'ai comme un doute :)"

    Les gens oar ici sont très pointilleux quand on parle de windows ou microsoft il faut veiller à ne pas dire des bêtises ou alors il faut les sourcer abondamment.

    Si c'était vrai, mon imprécision aurait été jugée moins durement que vos erreurs. Note que je n'ai même pas fait l'effort d'aller voir la section UK de wikipedia, je me suis contenté de la FR.

  • [^] # Re: Ce que j'en pense

    Posté par  . En réponse au journal SystemD et Arch autosuggestion. Évalué à 1.

    Relis les messages au dessus. Ce n'est ni ce que j'ai écrit, ni ce que signifie l'adage populaire de Slackware (qui vaut ce qu'il vaut, on est d'accord).

    C'est l'adage populaire de Slackware, qui dit que toute la connaissance acquise sous Slack s'utilise sur les autres distrib.

    Effectivement, j'ai un peu interprété. Je te présente mes excuses.

    Pour rappel, Debian se veut le système d'exploitation universel…

    J'y faisais référence au dessous.

    Ca, c'était juste pour contrer un truc absurde par un autre :) ta référence m'a fait rire en tout cas, mais j'admets ne l'avoir pris que pour son côté humoristique :D (faudra d'ailleurs que j'aille voir si une dépêche est en cours sur la sortie prochaine de Debian tiens)
    Debian est uniquement universel dans le sens d'avoir un max d'archi maintenues, mais au niveau usage, pas si universel que ça si je juge par rapport à ce que je lis ici et là (surtout utilisés pour des serveurs de mail manifestement, et un peu de desktop mais vraiment pas du bleeding edge, naturellement. Et avec le bureau, les gens aiment régulièrement le bleeding edge.).

    Ils sont toujours disponible dans l'AUR et peut être plus ou moins maintenu (mais surtout moins) par quelques utilisateurs réfractaires.

    Je gage que si c'est encore utilisé dans Debian c'est pour la compatibilité du kernel BSD. Pour gentoo, je ne sais pas… il semble qu'il y ait un portage pour BSD, et j'imagine vue la philosophie que le but est d'avoir un max de choix, mais entre le sysV, openRC et systemd ça risque de devenir dur à maintenir? 'fin bon, je sais pas trop quoi penser d'openRC.

    Après, je dois avouer pour avoir vu à gauche et à droite les divers arguments pour et contre que systemd m'attire bien plus (et pour avoir lu les scripts d'init de sysV et de systemd): les initscript sont infernaux pour le nouvel arrivant, et systemd à l'avantage d'utiliser des fonctionnalités du kernel qui me semblent intéressantes, comme les cgroup. Je comprend assez le choix des mainteneurs d'arch, ce que je voulais dire c'est juste et uniquement que l'on peut difficilement dire que toute la connaissance acquise sur une distribution peut s'utiliser sur une autre, sauf dans le cas d'une relation mère-fille (genre RHL->fedora, Debian->Ubuntu). Et encore…
    Le truc qui me gêne est qu'il semble y avoir une dépendance en dur a dbus, et ça j'avoue avoir un peu de mal a l'accepter (si j'ai encore dbus installé sur mes machines, c'est uniquement parce que gstreamer en dépend au bout de plusieurs niveaux… si je pouvais virer cette dépendance ça me gênerai pas, je vois vraiment pas ce qu'apporte cet outil)

    Autant pour moi, je ne savais pas. Ma dernière installation de Gentoo remonte à plusieurs années.

    Un problème récurrent avec les OS ça, les réputations/expériences qui ne prennent pas en compte les évolutions :)
    Enfin, cela dis, j'ai fini par avoir un kernel qui bootait mais il me fallait taper le chemin au boot… j'imagine que ma prochaine tentative m'amènera un peu plus loin, cette distro est vraiment fun (et délicate) a faire fonctionner :)

  • [^] # Re: Utopie ?

    Posté par  . En réponse à la dépêche État des jeux sous Linux. Évalué à -1.

    En parlant de Me, oui, c'est ce que j'ai dit: XP est le système qui a marqué l'abandon du kernel DOS. Ce qui implique que la série précédente était la dernière à l'utiliser…

  • [^] # Re: Commenter l'intention

    Posté par  . En réponse au journal To comment or not to comment. That is the question.. Évalué à 1.

    Bon exemple, j'ai envie de dire.

    Il y a bien 3 ou 4 classes (implémentations et déclarations) dans le même fichier de près de 10000 lignes de code, c'est typiquement le genre de situations ou les diagrammes sont utiles, ils permettent au moins de comprendre les relations des classes entres elles.
    C'est aussi le genre de situations ou l'on comprend l'intérêt de séparer implémentations et déclarations, et idéalement ne pas mélanger les classes dans le même fichier.

    Pour le reste, j'ai pas cherché à lire les 10K lignes (sans coloration syntaxique, non merci, et puis j'aime pas cette façon d'indenter :) ), mais vers la fin on voit ceci:

    // Shrink the underlying space
    _virtual_space.shrink_by(bytes);
    
    

    Typiquement le commentaire qui paraphrase le code, que je n'aime pas (j'admets, coup de bol de tomber dessus sur les 10K lignes).
    Bah oui, on se doute que la méthode shrink, elle shrink l'objet sur laquelle on l'appelle. Je dirais même plus, bytes correspond à la nouvelle taille?

    Un peu plus tôt:
    cpp
    // Multi-threaded; use CAS to prepend to overflow list
    void CMSCollector::par_push_on_overflow_list(oop p) {
    NOT_PRODUCT(Atomic::inc_ptr(&_num_par_pushes);)
    assert(p->is_oop(), "Not an oop");
    par_preserve_mark_if_necessary(p);
    oop observed_overflow_list = _overflow_list;
    oop cur_overflow_list;
    do {
    cur_overflow_list = observed_overflow_list;
    if (cur_overflow_list != BUSY) {
    p->set_mark(markOop(cur_overflow_list));
    } else {
    p->set_mark(NULL);
    }
    observed_overflow_list =
    (oop) Atomic::cmpxchg_ptr(p, &_overflow_list, cur_overflow_list);
    } while (cur_overflow_list != observed_overflow_list);
    }

    Notez les noms très explicite: oop, CMSCollector, p. Oui, j'ironise un peu.

    Sur ce coup, le problème de complexité ne viens peut-être pas de la présence/absence de commentaires, mais du fait de tout mettre ensemble dans le même fichier, et de pas avoir de diagramme montrant les relations entre les classes.
    Choses que l'on peut traiter avec les outils appropriés cela dis. J'ai trouvé le code propre d'ailleurs (malgré mon ironie mal placée: oop doit être un type qui décrit une classe, et CMSCollector lié à un CMS, mais vu que je sais pas à quoi sers la lib…).

  • [^] # Re: Comment inciter à commenter

    Posté par  . En réponse au journal To comment or not to comment. That is the question.. Évalué à 3.

    Certains éditeurs ont bien compris l'enjeu et proposent des métriques de mesure de nombre de lignes de commentaires rapporté au nombre total de lignes de source. Avec une alerte en dessous d'un certain %

    Ca, c'est assez utile. Perso, j'utilise CCCC pour le C++. Même s'il n'est plus maintenu, il me permets de repérer les parties de code qui ne sont pas commentées, mais aussi et surtout les zones trop complexes.

    IDE générant automatiquement des prototypes de documentation de code

    Beurk.

    Youpi, j'ai une méthode qui AfficherErreur qui prend 3 arguments: int ligne, string fichier et string message . Il va falloir que je dise pour chaque argument ce qu'il fait? Bof bof bof… Simplement mettre "affiche message et l'emplacement d'appel dans le code source (fichier et ligne)" est bien moins pénible et plus clair.

  • [^] # Re: /* commentaire ou documentation inline ? */

    Posté par  . En réponse au journal To comment or not to comment. That is the question.. Évalué à 5.

    Hum, quel est le rapport entre trop laxiste et mauvais pour la doc ?

    Un exemple: le type statique, contrainte de certains langages, permets de savoir déjà quels types de données une fonction prend en argument. Avec un nom de paramètre lisible, ça épargne dans 95% des cas de mettre le "\param i objet d'entrée correspondant a […]". Exemple: "FooBar nbOccurrences".

  • # Il y a plusieurs formes de commentaires.

    Posté par  . En réponse au journal To comment or not to comment. That is the question.. Évalué à 8.

    Il y a les commentaires définis tels quels par la syntaxe du langage, qui sont selon moi moyennement utiles, et les commentaires implicites: les types des paramètres (et des variables), les noms des classes, des méthodes, des fonctions, des paramètres et des variables.

    Perso, j'ai remarqué que quand une fonction ne fait qu'une chose, elle à tendance à être réellement triviale. Après, il faut que je précise que j'aime C++: typage fort (tant qu'on utilise pas la syntaxe du C, bien sûr) et Orienté Objet, sans imposer ce dernier.

    En général, je maintiens un diagramme des classes, et mes classes sont fortement spécialisées, idem pour les méthodes et fonctions. Du coup, passer les 50 lignes est vraiment une chose rare, d'autant que le moindre duo de ligne qui se ressemble est envoyé dans sa méthode propre.

    Enfin, j'utilise quand même les commentaires explicites, pour préciser les parties des contrats de mes méthodes que je peux pas préciser avec la syntaxe de C++, ainsi que les lignes à la syntaxe barbare (quoique je préfère simplifier ces lignes plutôt que de les commenter).
    Donc, oui, je pense faire du code lisible malgré qu'il soit peu commenté.

    Ce que je n'apprécie pas avec les commentaires, c'est… il faut les maintenir, et ça paraphrase trop souvent le code.
    D'un autre côté, un langage sans typage, je comprend l'intérêt: comment faire pour savoir que tel paramètre est censé ne pas être modifié par la méthode sans typage? Commenter…
    En fin de compte, je pense plus ou moins la même chose des commentaires que de la notation hongroise pour les noms de variables: inutiles avec certains langages/projets, vitaux avec d'autres, et utiles en fonction du degré d'expressivité du langage et de la complexité du projet (un projet avec une grosse contrainte sur la perf, et donc hyper optimisé sera illisible sans commentaires peu importe le langage)

  • [^] # Re: Il y a aussi quelques jeux libres

    Posté par  . En réponse à la dépêche État des jeux sous Linux. Évalué à 2.

    Je ne dis pas que c'est pas bien, juste qu'un projet aussi ambitieux à l'obligation d'utiliser un langage qui soit populaire, sinon le manque de contributeurs le tue.
    C'est la raison de la ré-écriture d'openMW en C++, rien d'autre.

    Après, pour des projets qu'on peut mener a bien avec une équipe de 1 ou 2 personnes, ouai, c'est sûrement bien.

  • [^] # Re: Il y a aussi quelques jeux libres

    Posté par  . En réponse à la dépêche État des jeux sous Linux. Évalué à 1.

    A l'air pas mal du tout!

  • [^] # Re: Il y a aussi quelques jeux libres

    Posté par  . En réponse à la dépêche État des jeux sous Linux. Évalué à 2.

    Pour les tuiles, je comprend qu'on puisse aimer :) juste, j'ai beaucoup de mal…
    Tout comme je pense que même si vim est moins pire que la moyenne (donc je l'utilise, mais pas à un niveau d'expert), il est dommage qu'il soit si rare de trouver des interfaces qui soient réellement mixtes: utilisables soit tout à la souris (mode flemmard avachi à 3km de la machine), soit tout au clavier, soit en mélange des deux.
    Si j'utilise principalement la console et les appli semi-graphiques, c'est justement pour ça: ce sont celles qui sont le plus proche de mon idéal d'IHM. Si elles avaient des équivalents graphiques (avec ce que ça implique: meilleur support du copier/coller, pas besoin de lancer la commande dans un terminal, ce genre de trucs. M'en fout des coins arrondis :) )>

    Sinon il y a Tome4 (il y a eu une dépêche il y a pas longtemps je crois) qui a des tuiles plus grandes

    C'est pas la taille qui compte, j'ai envie de dire :)

    (j'ai jamais compris l'intérêt de mettre du 3D là où c'est pas dans l'esprit, et ça finit juste par gêner l'ergonomie et faire ramer le logiciel)

    Idem.

  • [^] # Re: Utopie ?

    Posté par  . En réponse à la dépêche État des jeux sous Linux. Évalué à -3.

    Ah bon?

    Windows XP, the successor to Windows 2000 and Windows ME

    Le pire c'est que je me suis fait moinsser à -7 pour avoir dis la vérité :D heureusement que je me moque de mon karma…

    Pour votre culture générale: windows XP familial et windows XP pro sont justement la première série à bannir complètement le kernel de MSDOS (et donc la possibilité de n'avoir pas d'interface graphique, ainsi qu'une pléthore de problèmes de compatibilité à l'époque. Les SPx ont pas mal corrigé ça heureusement.).

  • [^] # Re: Machine virtuelle

    Posté par  . En réponse à la dépêche État des jeux sous Linux. Évalué à 1. Dernière modification le 23 avril 2013 à 11:08.

    Je suis preneur: j'ai 2 CG (bas de gamme par contre) avec chipset nvidia, et j'ai toujours regretté de pas pouvoir exploiter leur puissance simultanément :)

    Ton journal me sera sûrement très utile.

  • [^] # Re: Ce que j'en pense

    Posté par  . En réponse au journal SystemD et Arch autosuggestion. Évalué à 2.

    La connaissance du gestionnaire de package de slackware ne s'applique qu'a slackware (et ses rares forks). Et ça vaut pour toutes les distros sauf celles basées sur red-hat ou debian, qui ont réussi à séduire assez de distrib pour que la connaissance des rpm ou des deb soit utilisable sur une grande variété de systèmes (pour les deb: *buntu, debian, mint, backtrack… pour les rpm, je n'en connais pas trop, je m'y suis pas intéressé).
    Si on combine la connaissance des deux, j'ai envie de dire que l'on sait utiliser les gestionnaire de paquets de 90% des distros encore en vie (chiffre tiré de mon chapeau, mais qui me semble pas trop délirant).
    Et j'ai envie de dire que la connaissance du gestionnaire de paquet est un des points de base de la connaissance des systèmes basés sur linux (ou au moins le point d'entrée: à travers les paquets, on apprend les dépendances, et si la distro est assez permissive, on apprend aussi la liberté de choix -très "dur" au début, je me rappelle :D- ).

    De nos jours, pas mal de distros passent à systemd, qui semble être l'avenir (controversé, certes). Slackware ne semble pas le supporter, Archlinux semble avoir complètement basculé à systemd. Je ne sais pas si ces distributions offrent et supportent officiellement le choix, et je vais supposer, à tort j'espère, que non (j'insiste sur le officiellement par contre, sinon ça compte pas ;) ).

    Si je pars de ce postulat que non, alors Debian et gentoo permettent par le fait d'avoir le choix, d'apprendre à se servir de plus de systèmes basés sur linux. Le kernel, c'est pareil partout, sauf pour gentoo ou il faut le compiler. Mais en le compilant, on apprend diverses choses (par exemple, j'ai appris que le kernel à une option pour mettre le nom de la machine en dur plutôt que dans un fichier) qui sont aussi valables sur tous les systèmes.

    Je cherche peut-être la petite bête, mais j'essaie de comprendre la: en quoi archlinux ou slackware permettraient d'apprendre plus linux que les autres distributions?

    Si je ne connais arch et slack que de réputation, je connais en revanche pas trop mal Debian, et j'ai déjà tenté à plusieurs reprises d'installer gentoo. Les autres distro que je n'ai pas citées (pardonnez-moi pour ce péché) je ne les connais aussi que de réputation, mais leur réputation en dis moins long sur elles que slack, arch, ou gentoo. (Dans une moindre mesure sur Debian aussi)

    Du coup, je n'ai de faits concrets que pour Debian, mais si tu as des faits autres que des ressentis ou des dictons pour les distributions qui semblent se vanter d'enseigner linux, je suis preneur.

    Pour rappel, Debian se veut le système d'exploitation universel… Si j'accepte ton dicton, alors acceptes celui de Debian qui signifie qu'elle (une distro ou un OS?) permets d'apprendre à la fois linux et bsd. J'ai conscience que ça fait très troll, mais j'essaie vraiment de ne pas mêler mon avis personnel, seulement de t'exposer mes lacunes et d'apprendre (je dis pas que telle ou telle distro est meilleure que l'autre, vu que si on rajoute fedora à la liste, on à les distros qui ont le plus de caractère et d'intérêt à mes yeux).

    Je doute en revanche que la connaissance acquise par l'installation d'une Gentoo en stage 1 soit réellement universelle.

    Gentoo ne supporte plus les stage 1 et 2 pour les installations: "Veuillez utiliser une archive stage3, car les installations à partir des stage1 et stage2 ne sont plus supportées."

    Il me semble donc que pour être honnête il te faudrait parler du stage 3 et la, bah, si, pas mal de choses sont assez génériques au niveau de la config j'ai l'impression.