lasher a écrit 2732 commentaires

  • [^] # Re: Plutôt beauté du design

    Posté par  . En réponse au journal "beauté du code". Évalué à 3.

    Une astuce c'est un truc qui peut casser dès qu'on met à jour le compilateur et/ou le runtime ou dès qu'on change d'environnement.

    Non. Par exemple si je veux savoir si un nombre est une puissance de 2, je peux écrire

    _Bool
    is_power_of_2_naive(unsigned long n)
    {
        unsigned long remainder = 0;
        while (!remainder) {
            remainder  = n % 2;
            n         /= 2;
        }
        return remainder == 1 && n == 0;
    }

    Ça marche, c'est assez direct, et au pire j'aurai log_2 n itérations (puisque je divise par 2 à chaque itération).

    On peut quand même simplifier :

    _Bool
    is_power_of_2_naive(unsigned long n)
    {
        if (n == 0) return false;
        while (n%2 == 0) 
            n /= 2;
        return n == 1;
    }

    On peut même rendre l'écriture plus compacte :

    _Bool
    is_power_of_2_naive(unsigned long n)
    {
        if (n == 0)  return false;
        for (; n%2 == 0; n /= 2) 
            ;
        return n == 1;
    }

    Mais bon jusque là, « l'astuce » c'est juste connaître le langage, et savoir exprimer la même chose de différentes façon. Il s'agit donc purement de style.

    Mais je peux être réellement astucieux, et répondre en temps constant :

    _Bool
    is_power_of_2(unsigned long n)
    {
        return (n > 0) && ((n & (n-1)) == 0);
    }

    Un entier non-signé ne changera jamais ses propriétés, donc j'ai la garantie que ce code fonctionnera toujours en C/C++ (et en fait n'importe quel langage qui permet les opérations bit-à-bit sur des entiers).

  • [^] # Re: "Au final, ce sont les fanboys qui ont dû être bien déçus…"

    Posté par  . En réponse au journal Et comme prévu, ça a fait... pffffuit. Évalué à 2.

    J'ai oublié de répondre à ça : si le bouquin/poly/bla est meilleur que le prof, et qu'on parle bien d'un amphi, alors aller en cours ne sert à rien, et les étudiants ne devraient juste pas y aller. J'ai fait ça pour certains profs qui clairement ne savaient pas bien enseigner, et dont le poly était bien meilleur que le cours magistral. En fac, il n'y a aucune obligation d'assister aux cours, sauf TP et examens. Je veux bien croire qu'en première année on reste « scolaire » et qu'on aille à tous les cours parce qu'on vient du lycée, mais dès la deuxième année, je m'attends à ce que les étudiants qui estiment qu'il perdent leur temps (y compris en TD) ne viennent pas. Ce sont des adultes, on les traite comme tels.

  • [^] # Re: sinon...

    Posté par  . En réponse au journal Ne dites pas à ma mère que j'ai installé systemd, elle croit que je suis pianiste dans un bordel.. Évalué à 3.

    Mince, je ma mémoire me joue des tours. :(
    Bon ben, pan sur le bec alors.

  • [^] # Re: sinon...

    Posté par  . En réponse au journal Ne dites pas à ma mère que j'ai installé systemd, elle croit que je suis pianiste dans un bordel.. Évalué à 2.

    "Si à cinquante ans, on n'a pas une Rolex, on a quand même raté sa vie."

    Je ne sais pas pour les autres citations, mais celle de la Rolex a été complètement détournée. Si tu trouves la vidéo de l'interview initiale (ou une retranscription), tu verras que cette phrase est utilisée dans un contexte ironique.

  • [^] # Re: Presque d'accord ...

    Posté par  . En réponse à la dépêche Revue des techniques de programmation en shell. Évalué à 3.

    Je ne comprends pas bien pour le globbing. J'utilise fréquemment ce genre de code (simplifié avec say pour l'exemple) :

    use v5.014;
    say for ( <*.txt>,<subdir/*.txt> ); 
    
    # Ou en plus explicite : 
    
    use strict;
    use warnings;
    use v5.014;
    for my $file (<*.txt>,<subdir/*.txt>) {
        say $file
    }

    Certes, il faut rajouter les < et >, mais ça s'arrête globalement là. N'importe quel bouquin qui enseigne le Perl correctement (je pense entre autres aux bouquins de chez O'Reilly) expliquent comment utiliser le globbing.

  • [^] # Re: Presque d'accord ...

    Posté par  . En réponse à la dépêche Revue des techniques de programmation en shell. Évalué à 2.

    L'avantage du |> c'est que c'est lisible et donne naturellement l'ordre des opérations. Quelque part, le fait qu'il y ait une écriture de type fonction op fonction op fonction ... op ... me permet de visuelle situer ce qui se passe, alors qu'avec ta solution (qui fonctionne, pas de souci là-dessus), il faut que mon cerveau réfléchisse un chouïa plus.

    Concernant le parallélisme : en OCaml je ne sais pas si les pipes le permettent, mais j'avais cru comprendre qu'en F# c'était faisable.

  • [^] # Re: Presque d'accord ...

    Posté par  . En réponse à la dépêche Revue des techniques de programmation en shell. Évalué à 1.

    Disons que c'est peut-être ma méconnaissance de sh/bash (zsh je ne connais vraiment pas), mais un script qui fait plus de 20 lignes en (ba)sh, ça me pique les yeux, même si c'est moi qui l'écris. Dès que j'ai besoin d'écrire des fonctions, j'ai tendance à très vite aller voir du côté de Perl. Ça a aussi sans doute à voir avec le fait que si je ne peux pas simplement chaîner des commandes et que j'ai besoin d'ajouter de la logique, s'il ne s'agit pas de boucles très simples où tout est visible depuis celle-ci, je trouve le shell trop peu expressif (bon c'est pas exactement comme ça que je le pense1, mais j'ai le cerveau embrumé ce matin…).

    En fait je suppose que dès qu'on parle de manipulation « fine » de chaînes de caractères, j'ai tout de suite tendance à penser à un langage plus expressif (et avec plus de modules déjà écrits pour moi) que le shell.


    1. J'ai écrit tout plein de scripts bash qui appelaient d'autres scripts (Perl ou bash) pour traiter des logs, générer de jolis graphiques, et m'envoyer un mail quand le traitement était fini. 

  • [^] # Re: Presque d'accord ...

    Posté par  . En réponse à la dépêche Revue des techniques de programmation en shell. Évalué à 2.

    Ce qui manque à Perl selon moi, c'est la possibilité d'utiliser les pipes à l'intérieur d'un programme Perl (un peu comme |> qui existent OCaml comme l'a expliqué Michaël, mais aussi Scala et le cousin d'OCaml, F#). Mais à part ça, je ne vois pas en quoi le shell est tellement plus abstrait que Perl/Python/Blah, surtout si le langage a une REPL.

    En Perl, par exemple, je peux faire un truc du genre alias perlstd='perl -ne' pour avoir un interpréteur Perl en ligne de commande (mais il sera très fragile, assurément). Ça me permettra d'écrire ce genre de choses:

    perlstd 'print' /usr/include/stdio.h # cat en plus lent, WOUHOU!
    perlstd 'print reverse <>' < /usr/include/stdio.h # rev en plus lent, WOUHOU!

    Donc évidemment, s'il existe des commandes pour faire la même chose, qui en plus ne nécessiteront pas de créer une instance d'interpréteur perl, mieux vaut les utiliser (et en plus les noms seront plus cours, même si je pourrais faire les alias qui vont bien pour pallier ce genre de problème).

    Par contre, avec ce même alias perlstd, je peux aussi faire tout ce que proposent sed, awk, grep, ce qui par définition indique que Perl est plus abstrait que ces outils. Et plus général aussi, bien sûr. Bref, ceci est de la sodomie de diptères pour dire que je ne suis pas d'accord pour dire que le shell est plus abstrait. Au contraire, le shell est moins abstrait, et c'est ce qui fait sa force.

  • [^] # Re: Liste des commandes travaillant avec des données tabulaires

    Posté par  . En réponse à la dépêche Revue des techniques de programmation en shell. Évalué à 4.

    Bon, je préfère Perl pour ajouter des filtres perso (quand un truc genre grep/sed/awk devient compliqué), mais il ne faut pas oublier qu'écrire un programme en C ne signifie pas forcément « écrire un programme en C en ne se servant que de string.h comme base » : tu peux parfaitement utiliser des bibliothèques (par exemple, la bibliothèque de regexps du projet GNU), et simplifier grandement ton code plutôt qu'utiliser strtok. De même, tu peux parfaitement avoir commencé à construire un ensemble de wrappers (genre smalloc qui va crasher si y'a un problème d'allocation, et qui te permet de ne pas te soucier de la gestion d'erreur, sread pour gérer les erreurs et le besoin de répéter l'opération en cas d'interruption, etc.) qui vont simplifier grandement ton code et le rendre suffisamment lisible pour te concentrer sur l'essentiel : l'algorithme.

    J'insiste, je pense qu'un langage de plus haut niveau (Perl/Python/Ruby/Lua/Bla) serait sans doute meilleur pour gérer ce genre de choses, mais je pense aussi que le meilleur outil pour faire un programme de taille raisonnable est celui qu'on maîtrise bien.

  • [^] # Re: The Windows Store is a Cesspool of Scams — Why Doesn’t Microsoft Care?

    Posté par  . En réponse au journal [HORS-SUJET] Bitdefender et ses popups. Évalué à 2.

    Alors que les riches Français financent les arts et lettres. C'est très différent.

  • [^] # Re: C'est l'histoire et la démocratie

    Posté par  . En réponse au journal Pourquoi écrire un package Debian est-il si compliqué?. Évalué à 2.

    Je ne comprends pas bien cette remarque. Le principe du « tout fichier » c'est (à ma connaissance hein) pour tout ce qui concerne les entrées-sorties. Un mutex n'en fait pas partie (par définition il s'agit d'un objet en mémoire partagée).

  • [^] # Re: "Au final, ce sont les fanboys qui ont dû être bien déçus…"

    Posté par  . En réponse au journal Et comme prévu, ça a fait... pffffuit. Évalué à 3.

    On laisse généralement passer si l'élève a des notes correctes. Si ce n'est pas le cas, l'élève risque non seulement de doubler, mais aussi de se faire expulser.

  • [^] # Re: prix en Europe et aux USA

    Posté par  . En réponse au journal Et comme prévu, ça a fait... pffffuit. Évalué à 2.

    Oui, mais en moyenne, la TVA vaut ~10%. Donc même en la rajoutant, on n'arrive pas au prix français.

  • [^] # Re: "Au final, ce sont les fanboys qui ont dû être bien déçus…"

    Posté par  . En réponse au journal Et comme prévu, ça a fait... pffffuit. Évalué à 4.

    Ceux qui discutent à 10 dans un amphi se font remarquer, et je connais plus d'un prof qui donnait aux élèves un choix :

    1. Ils se la ferment/parlent plus discrètement (au-delà de 2, c'est quasi impossible pour être plus discret, même en chuchotant),
    2. Ils partent,
    3. Le prof part, et il considère le cours comme fait.

    Dans les facs de médecine / pharmacie / etc., qui ont un concours à la fin de l'année, ça peut (pas toujours) être un élément dissuasif.

  • [^] # Re: "Au final, ce sont les fanboys qui ont dû être bien déçus…"

    Posté par  . En réponse au journal Et comme prévu, ça a fait... pffffuit. Évalué à 3.

    Bon déjà, dans les écoles d'ingé classiques, normalement la présence est obligatoire. Ensuite, même dans le cas où ce n'est pas vrai, je peux te dire que la méthode pédagogique peut fortement différer d'un établissement à l'autre. En IUT, le cours magistral pour (par exemple) la matière « d'environnement de programmation » parlait finalement comment un OS fonctionne : système de fichiers, inodes, services d'un OS, séparation des droits, etc. Alors qu'en TD/TP, on nous faisait faire des Makefiles, de la programmation shell, etc., et donc même si l'ensemble consistait bien à apprendre comment un OS fonctionne, il était séparé entre savoir théorique (cours magistral sur les principes des OS) et savoir pratique (comment exploiter les fonctionnalités d'un OS en tant qu'utilisateur).

    Lorsque j'étais en école d'ingénieur, j'allais en cours magistral et TD et TP, car le prof était bon (charismatique et pédagogue), et comme il montait un nouveau cours à l'époque, il n'y avait tout simplement pas de PDF dispo à l'époque. Au contraire, le prof de recherche opérationnelle était un cador dans la recherche, mais son cours magistral était à chier : même le poly officiel du cours, ce n'était pas lui qui l'avait écrit mais un de ses thésards. Du coup, pas mal d'entre nous allions lire le poly au lieu d'aller écouter le prof.

  • [^] # Re: "Au final, ce sont les fanboys qui ont dû être bien déçus…"

    Posté par  . En réponse au journal Et comme prévu, ça a fait... pffffuit. Évalué à 2.

    Pas besoin de BÉPO, il suffit d'activer la touche compose, et tu te retrouve avec tout plein de caractères: ø, ±, →, etc. Bon après j'avoue qu'étant sur un qwerty, ça aide pas mal d'avoir la touche compose rien que pour les accents. :)

  • [^] # Re: "Au final, ce sont les fanboys qui ont dû être bien déçus…"

    Posté par  . En réponse au journal Et comme prévu, ça a fait... pffffuit. Évalué à 4.

    Tu te l'achètes comme une fourniture scolaire, pas toujours besoin de prendre un modèle à 1000€, pour prendre des notes en droit tu peux en prendre 1 sur plusieurs années à 300€

    On repart sur des problèmes d'autonomie. À part un netbook genre EeePC qui tenait facilement 10 heures sous Linux, mais qui a un clavier riquiqui/pas confortable, il y a très peu d'ordinateurs qui ont un OS et un matériel qui sont capables de tenir ~8h par jour. D'ailleurs, contrairement à ce que j'ai pu lire ailleurs, c'est effectivement l'une des grandes forces des portables Apple : ils ne sont pas les plus puissants, mais par contre il durent longtemps.

  • [^] # Re: "Au final, ce sont les fanboys qui ont dû être bien déçus…"

    Posté par  . En réponse au journal Et comme prévu, ça a fait... pffffuit. Évalué à 10.

    Je me méfie fortement des étudiants qui prennent des notes sur un portable. Tout le monde n'a pas la volonté pour résister aux sirènes du Net qui se trouve là, tout près. De plus, c'est peut-être juste moi, mais à moins d'être juste en mode « prise de note » (et dans ce cas j'ai tendance à taper plutôt vite), si en plus mon interlocuteur me demande de réfléchir et de répondre à des questions, je trouve que prendre des notes avec un stylo c'est plus « organique » / moins intrusif pour mon mode de pensée.

    Sinon, mon expérience en tant que prof (très anecdotique, je l'admets), c'est que les rares étudiants en France qui utilisaient un portable pendant les cours étaient ceux qui ne faisaient pas réellement attention en cours.

  • [^] # Re: "Au final, ce sont les fanboys qui ont dû être bien déçus…"

    Posté par  . En réponse au journal Et comme prévu, ça a fait... pffffuit. Évalué à 10.

    Mouais. Tu es dans un monde « différent » de la majorité des gens alors. Pourtant je bosse dans une université US, avec plein de gosses de riches, et donc plein de portables Apple. Ce qui fait que dans notre salle de conférences, on essaie d'avoir toujours un adaptateur à disposition pour Mac. Sauf que … Si t'as un mac un chouïa trop ancien, c'est pas le bon !

    Donc voilà, je suis d'accord avec Pierre Roc, grosso modo, j'ai plus l'expérience de devoir aller dans tous les bureaux voisins pour chercher le bon adaptateur Mac que cherche un câble (micro-)USB…

  • [^] # Re: Quelques mots à propos de D*

    Posté par  . En réponse au journal Diaspora bien tenté mais.... Évalué à 3.

    La part devant aller à l'état ou à leur couverture sociale ne doit pas être très éloignée de ce qui se fait en france où il faut, grosso modo, diviser par deux la part patronale pour avoir un salaire net donc disons qu'ils empochent environ 25 000 $ net.

    Euh, non, aux US les patrons paient beaucoup moins qu'en France en termes de coût salariaux. En tout cas, il n'y a pas de facteur 2 comme en France. De plus, à moins qu'ils aient monté une boite, etc., cet argent doit bien entendu être taxé (comptons ~20% prélevé par l'état), mais le reste est un « don » : ils peuvent diviser l'argent comme ils veulent. Donc il resterait environ 40k$/personne après impôts. À noter que ça reste peu comparé à un salaire « habituel » aux US pour un dév un peu compétent (on tourne plutôt autour de 50 ou 60k$).

  • [^] # Re: Tu ferais quoi toi?

    Posté par  . En réponse au journal La France bientôt chassée du podium mondial des vendeurs d'armes ?. Évalué à 3.

    L'URSS n'a pas sauvé l'Europe pendant la 2ème guerre mondiale, elle en a envahi la moitié, et l'autre a été sauvée de l'Allemagne nazie ET de l'URSS par les États-Unis.

    C'est une sacrée réécriture de l'histoire je trouve. Je ne dis pas que Staline était un gentil (il ne l'était pas), mais dire que l'URSS avait planifié de rafler la mise en boutant l'Allemagne hors des autres pays d'Europe, c'est un peu fort de café.

  • [^] # Re: Bonne nouvelle !

    Posté par  . En réponse au journal La France bientôt chassée du podium mondial des vendeurs d'armes ?. Évalué à 4.

    Et puis surtout, la législation est différente au Canada et aux USA. Le type d'arme possédé par des individus tend à changer pas mal : ~2.9% des gens qui ont des armes à feu possèdent une arme de poing. La plupart possèdent un fusil car… ils chassent.

  • [^] # Re: Bonne nouvelle !

    Posté par  . En réponse au journal La France bientôt chassée du podium mondial des vendeurs d'armes ?. Évalué à 4.

    Non. ~12 000 morts par armes à feu aux USA (~30 000/an toutes méthodes confondues), contre ~150 en France (~450/an tous types d'homicide confondus). À noter qu'on ne parle pas du nombre de blessés par balles, ni de combien de gens sont officiellement diminués à la suite de ce genre de blessures. Soit 80 fois plus de morts dues aux armes à feu. Et justement, le truc est de rappeler qu'en France, la législation sur la vente d'armes à feu est certes sévère, mais semble fonctionner. Je vais écrire un autre post bientôt pour répondre à gnx, mais en gros en Suisse, contrairement à ce qu'insinue Foutaises, la réglementation est aussi très sévère, et il est difficile d'obtenir une arme à feu si on n'est pas réserviste.

    Tenter de faire une diversion sur d'autres problèmes comme l'alcool n'est pas pertinent dans ce contexte. Mais comme j'aime bien me renseigner, voilà les chiffres:

    Au final, nous avons à peu près le même nombre en absolu, et en proportion de la population 4 à 5 fois plus de morts liées à l'alcool en France qu'aux USA. Cependant, on parle malgré tout de nombres qui sont grosso modo dans les mêmes ordres de grandeur, là où pour les morts par armes à feu on a plusieurs ordres de grandeur de différence entre les USA et la France/la Suisse.

  • [^] # Re: Bonne nouvelle !

    Posté par  . En réponse au journal La France bientôt chassée du podium mondial des vendeurs d'armes ?. Évalué à 4.

    Il y a ~30k morts violentes aux USA chaque année, dont 10k-13k (suivant les années) sont le résultat direct de mort par arme à feu. Apparemment une moitié d'entre elles (donc ~5k-6k) sont des suicides.

    D'après ce site, le taux de mortalité due à un acte de violence (par 100k personnes) dit que la France est à 1,3, et que les USA sont à 6,5. Du coup j'aimerais bien connaître la provenance de tes chiffres.

  • [^] # Re: Ça calcule vite mais ça met du temps à communiquer

    Posté par  . En réponse au journal Total s'appuie sur un super-calculateur tournant sous Linux !. Évalué à 1.

    Franchement on s'en fout non ? Il ne cite pas Suse, donc moi ça me va.