Gof a écrit 2224 commentaires

  • [^] # Re: Un avis différent sur bash

    Posté par  (site web personnel) . En réponse à la dépêche Une faille nommée « shellshock ». Évalué à 6.

    Critiquer c'est un manque de respect ?

    Non, une critique constructive n'est pas un manque de respect.

    Par contre là c'est juste une critique du genre « J'aime pas ton style, c'est moche. »

    On peu discuter aussi longtemps qu'on veux pour savoir si la programmation fonctionelle est meilleur que la programation object ou impérative. Mais à l'époque, le style à la mode était à la programmation impérative avec des variables globales. À l'époque ou le code a été écrit, les fonctions prétendues plus sûres n'existaient pas encore et les développeur utilisaient les fonctions existantes en faisant attention.

    Ça ne rends pas le code mauvais. Juste vieux.

  • [^] # Re: Un avis différent sur bash

    Posté par  (site web personnel) . En réponse à la dépêche Une faille nommée « shellshock ». Évalué à 3.

    Faire des audits et financer des relectures c'est utile.
    Dire que leur code est « moche », c'est pas très utile et c'est un manque de respect.

  • [^] # Re: Un avis différent sur bash

    Posté par  (site web personnel) . En réponse à la dépêche Une faille nommée « shellshock ». Évalué à 5.

    Il y a peut être quelque chose à apprendre, mais il ne faut pas non plus tirer des conclusions hâtives.

    Bash commence par la lettre 'B'. Et il contiens une faille de sécurité ! Conclusion: Il ne faut pas utiliser de programmes dont le nom commence par la lettre B.

    Et les médias parlent de cette faille désastreuse. Vite ! Il faut créé une nouvelle loi pour que ça ne se reproduise pas. Dorénavant il est interdit de donner un nom qui commence par 'B' à un programme sous peine de prison.

    Il faut que tu prouves que le style du code de bash soit une cause de la faille. Parce que c'est vraiment une critique gratuite : « Bouh, ils n'utilisent pas le dernier style à la mode, quels incapables ! »

  • [^] # Re: Un avis différent sur bash

    Posté par  (site web personnel) . En réponse à la dépêche Une faille nommée « shellshock ». Évalué à 5.

    On est sûr qu'il n'y a pas de faille qui traine dedans depuis 20 ans ?

    Je n'ai pas dit ça. Et je n'ai pas dit non plus que du vieux code était forcément parfait et bien éprouvé. Ce serait tomber dans un extrême inverse.

    Par contre, le poste critique bash car il utilise pas le dernier style de codage à la mode. Est-ce là raison de shellshock ? Probablement pas.

    Je suis un partisent du « Ne corrige pas si ce n'est pas cassé ». Ça ne veux pas dire qu'il ne faut pas chercher à améliorer les vieux truc. Mais ça veux dire que refactoriser pour le plaisir n'est pas toujours une bonne idée. Pour un programme tel que bash, un petit changement de comportement peux casser plein de script. Il vaux mieux être prudent.

    Je vais prendre un en exemple la CVE-2007-1381 dans PHP, où un développeur voulant rendre le code plus « sécure » a remplacé une utilisation parfaitement valide de strncpy par un emploi erroné de strlcpy causant un trou béant de sécurité. Et parce que cette leçon n'est pas suffisante, php refait une erreur similaire 4 ans plus tard en remplaçant un strcat par un strlcat https://bugs.php.net/bug.php?id=55439
    Vive les bonne pratiques, hein !

  • [^] # Re: Un avis différent sur bash

    Posté par  (site web personnel) . En réponse à la dépêche Une faille nommée « shellshock ». Évalué à 0.

    C'est juste que bash a été écrit il y a 25 ans. C'est normal que le style de code soit un peux viellot. Mais ça ne veux pas dire que ce soit du mauvais code. Par contre c'est du code bien éprouvé.

  • [^] # Re: Retourne à la raison!

    Posté par  (site web personnel) . En réponse au journal Retour aux sources. Évalué à 2.

    Une classe est déclarée dans des entêtes. Si cet entête change, même de manière anodine (par ex. ajout d'un saut de ligne pour aérer le code), alors cela va nécessiter la recompilation de tous les fichiers sources qui référencent directement ou indirectement ce fichier. Alors que si le fichier d'entête était "compilé" en un .class contenant juste l'ABI (et éventuellement le code pour les fonctions inline) de sorte d'avoir une représentation unique quelque soit l'organisation de l'entête, alors les temps de recompilation serait grandement réduit !

    Même si les en têtes était pré compilé dans un fichier .class, une modification annodine de l'en-tête changerait aussi le fichier .class (ne fut-ce que le modtime) et forcerait aussi la recompilation de tous les fichier qui référencent directement ou indirectement ce fichier.

    Oh! Et les en-tête précompilée ça existe déjà. Ça s'appelle .gch avec GCC et .pch avec clang. Et ça améliore effectivenement le temps de compilation car le compilateur ne dois pas recompiler le header pour chaque fichier qui le contiens.

    Les entête pré-compilés ont leur propre problèmes, mais marchent assez bien en pratique.

    Mais l'avenir nous offre une solution presque parfaite: les Modules. Déjà partiellement implémentés dans clang.
    http://clang.llvm.org/docs/Modules.html

  • [^] # Re: smart pointer

    Posté par  (site web personnel) . En réponse au journal Retour aux sources. Évalué à 7.

    Tu as raisons. (Puisque tu peux simuler facilement des printf avec un bon débugger, utiliser les printf est un sous ensemble d'utiliser un débugger)

    Cependant, je pense que la tache qui prends le plus de temps et d'effort est le point 1. (essayer d'imaginer ce qui peut se passer).
    L'art de débugger consiste à déterminer l'endroit ou mettre les printf / breakpoint: pauser des hypothèses et les vérifier. Ne pas trop so focaliser sur les symptomes mais essayer de trouver la cause d'un problème. Et bien comprendre le problème.

    Considérant ça, printf ou un débugger c'est un peu pareil. L'avantage de printf est que c'est écrit dans le même langage que le produit et que tu à accès à toute les bibliothèques pour afficher les valeurs que tu veux. L'inconvénient c'est qu'il faut recompiler et relancer. (Ce que tu devras quand même faire si tu cherche à corriger le problème)

  • [^] # Re: Retourne à la raison!

    Posté par  (site web personnel) . En réponse au journal Retour aux sources. Évalué à 7.

    Comme le disait Bjarne Stroustrup, le créateur de C++: « Il y a deux sorte de languages de programmation: ceux dont on se plaint, et ceux que personne n'utilise »

    Toujours d'après Stroustrup, L'une des caractéristique qui contribue au succès de C++ est la compatibilité avec le C. Le fait que du code écrit il y a plusieurs décénies peux être utiliser avec du C++ moderne.

    Il est tout à fait possible d'utiliser le C++ sans utiliser les fonctionalités rétrogrades.
    Et le C++ moderne n'est pas si horrible.

    Les languages « meilleurs » qui ont retiré la compatibilité n'ont pas eu beaucoup de succès. (Exemple: D.) (Et je suis curieux de voir ce que va devenir Rust.)

  • [^] # Re: plop

    Posté par  (site web personnel) . En réponse au journal Retour aux sources. Évalué à 3.

    Exactement. Exemple:

    enum MySuperEnum {
    #define X(NAME, VALUE, ACTION)  SuperEnum_##NAME = VALUE,
    #include "super_values.def"
    #undef X
    };
    
    /* ... Plus loin  ...   */
    
    vod MyClass::maFunction(MySuperEnum foo) {
      switch (foo) {
    #define X(NAME, VALUE, ACTION) case SuperEnum_##NAME : ACTION; break; 
    #include "super_values.def"
    #undef X
     }
    }

    Le premier bout de code est dans un header mais le tout fini dans la même translation unit

    Le fichier super_value.def ressemble à ça:

    X(Addition, 13,  Val0 = Val1 + Val2)
    X(Division, 21,  Val0 = Val1 / Val2)
    X(SelfAddition, 42,  Val0 += Val1)
    // ...

    (possiblement auto-généré)

  • [^] # Re: smart pointer

    Posté par  (site web personnel) . En réponse au journal Retour aux sources. Évalué à 3.

    Je debug quasi uniquement à l'aide de printf qDebug()

  • [^] # Re: smart pointer

    Posté par  (site web personnel) . En réponse au journal Retour aux sources. Évalué à 5.

    Sans oublier que MSVC, le compilateur C++ de Microsoft, est l'équivalent de IE en ce qui concerne le support des standard.
    C++11 est normalisé depuis 3 ans. MSVC est terriblement en retard comparer aux équivalent libre (clang et GCC). Même la dernière version ne supporte pas encore tout.

  • [^] # Re: ...

    Posté par  (site web personnel) . En réponse au journal Retour aux sources. Évalué à 4.

    Les compilateurs modernes reconnaissent les include guards et effectuent la même optimisation que pour #pragma once.

    (mais je ne veux pas dissuader l'utilisation de #prama once qui est bien moins sujet à l'erreur)

  • # KDevelop

    Posté par  (site web personnel) . En réponse au journal Retour aux sources. Évalué à 6.

    planter lamentablement (kdevelop, c'est de toi que je parle).

    Chez moi ça marche très bien.
    Quelle version de KDevelop as tu utilisé ? Pourquoi plantait-il ?

  • # ownCloud

    Posté par  (site web personnel) . En réponse au journal Auto-hébergement : ma page d'accueil. Évalué à 7.

    C'est bien joli en effet.

    Notez que le but original du projet ownCloud était aussi de regrouper toutes les applications dans un même site.
    D'ailleurs, owncloud dispose aussi d'un lecteur RSS et d'une application qui intègre Roundcube. Toutes les activités sont accessible via le menu de owncloud.

    (le projet owncloud est même en train de développer un nouveau webmail: https://github.com/owncloud/mail )

  • [^] # Re: Samba

    Posté par  (site web personnel) . En réponse à la dépêche Quelques nouvelles sur Qt et KDE. Évalué à 5.

    Et tu peux ouvrir/enregistrer des fichiers depuis n'importe quelle application genre libreoffice, thunderbird, gimp, inkscape

    Oui.
    Pour les applications KDE, le fichier .desktop correspondant précise que l'application supporte KIO et l'URL est passée tel quel.
    Pour les autres application, quand tu l'ouvre avec (disons libreoffice), le fichier est copié dans /tmp et ensuite ouvert. Et quand tu enregistres le fichier est uploadé.

    ou en ligne de commande

    Ça s'applique pas vraiment.
    Depuis la ligne de commande tu utilisera plutôt un utilitaire utilisant FUSE.

  • [^] # Re: "Create once, deploy everywhere"

    Posté par  (site web personnel) . En réponse au journal The Qt Company. Évalué à 7.

    Et qu'est-ce que tu as contre le C++? Le C++ est pas pire que objective C.

    Qt utilise plusieurs threads. Dans QtQuick 2.2, tout le rendering est fait dans un trhead séparé que celui qui évalue les bindings.
    Et au niveau applicatif, le dévelopeur utilise les thread comme il le veux.

    Et il est bien plus facile de faire un truc performant en C++ qu'en Java.

    L'avantage du C++ est aussi la grande quantité de bibliothèque et code existant écrit en C++ (ou C).

  • [^] # Re: Full rights to modify source codes

    Posté par  (site web personnel) . En réponse au journal The Qt Company. Évalué à 5. Dernière modification le 18 septembre 2014 à 00:22.

    Avec la (L)GPL, tu as un droit partiel de modifier le code, c'est conditionné : tu peux seulement si tu files les modifications en même temp que le binaire.

    1. Tu ne dois pas filer les modifications nécessairement en même temps que le binaire. Tu dois les filer si elles sont demandées.
    2. Ce n'est pas les modifications que tu dois filer, mais la totalité du code source des parties en LGPL
    3. Tu dois le faire que tu fasses des modifications ou non.
  • [^] # Re: Différences avec onwCloud ?

    Posté par  (site web personnel) . En réponse au journal Pydio, une bonne alternative à Owncloud pour la synchro des fichiers. Évalué à 2.

    C'était quelle version ?
    Les première versions avaient beaucoup de problèmes. Mais les dernières versions sont beaucoup plus fiable et rapide.

  • # Différences avec onwCloud ?

    Posté par  (site web personnel) . En réponse au journal Pydio, une bonne alternative à Owncloud pour la synchro des fichiers. Évalué à 5.

    Et donc quelles sont les différences avec ownCloud ? Parce que ownCloud aussi à une jolie interface, gère une folpée de format, et utilise WebDAV.

  • [^] # Re: critique constructive

    Posté par  (site web personnel) . En réponse au journal Le retour de la censure d'Etat : la loi Cazeneuve. Évalué à 10.

    Cette habitude doit disparaitre.

    Il faut l'interdire !

  • [^] # Re: Le bon mot du jour

    Posté par  (site web personnel) . En réponse au journal Abolir les brevets ?. Évalué à 10.

    L'homéopathie fonctionne sur moi depuis que je suis tout petit

    Biensur que ça fonctionne ! (Puisque c'est un bon placébo, et les placébos fonctionnent)

    cela veut dire que je suis capable de me guérir seul […] avec l'aide d'inoffensives petites billes de sucre ?

    Pas si simple. Ce n'est pas parce que l'homépathie est un placébo que tu peux le réduire a des billes de sucre.
    L'effet placébo dépends de différents facteurs. Notamment du prix, du ceux qui te le prescrive, de la façon dont tu le prends, de l'aspect, …

    Si tu te donnes à toi même des boules de sucres, ça va pas probablement pas avoir beaucoup d'effet.

    Si un pharmatien te vends les même boules de sucre pour 10 fois le prix en te disant de bien les prendre avant chaque repas, ça aura un bien meilleur effet.

    cela me convient parfaitement.

    Oui, tant mieux pour toi.
    J'espère que l'homéopatie continuera à fonctionner pour toi. (Il parait même que les placébos marchent même si on sait que c'est un placébo )

    Par contre, inventer une théorie de la mémoire de l'eau, je peu difficilement laisser passer, même si ça soigne quelque persones. On parle de science ici. Après on va essayer de me faire croire en Dieu et que si je redémare mon PC ça va corriger les bugs de mes programmes.

  • [^] # Re: raspberry

    Posté par  (site web personnel) . En réponse à la dépêche Sortie d'ownCloud 7.x. Évalué à 6.

    http://tutorialgeek.blogspot.de/2014/03/how-to-make-your-owncloud-server-sync-5.html

    How to make your ownCloud server sync 5-10 times faster

    Don't use a SQLite database, USE MySQL

  • [^] # Re: raspberry

    Posté par  (site web personnel) . En réponse à la dépêche Sortie d'ownCloud 7.x. Évalué à 4.

    Quelle base de donnée était utilisée ? Utiliser Sqlite est une très mauvaise idée car c'est vraiment lent. Mais oui, un rasbery pi n'est pas très performant.

  • [^] # Re: Séparateur de chiffre

    Posté par  (site web personnel) . En réponse au journal C++14. Évalué à 5.

    Oui, sauf que C++11 est venu avant C++14, et que ce sont les préfix qui ne commencent pas par un underscoe qui sont réservés.

    Et aussi: 0xdead_beef_db est-ce que il y a un user defined literal?

    Le comité de standardisation a trouvé que le ' était le meilleur choix. Et perso je trouve 123'456 plus joli que 123_456.

  • [^] # Re: En entreprises…

    Posté par  (site web personnel) . En réponse au journal C++14. Évalué à 5.

    Il faut peser le pour et le contre entre le coût de mettre à jour, et le gain en productivité du aux technologies plus moderne.

    En fonction des cas, ce n'est pas toujours la même réponse.

    Par contre, avec de bons tests, je pense que mettre à jour le compilateur n'est pas insurmontable. La pluspart des problèmes sont des erreur de compilation assez facile à résoudre. Je ne me souviens pas avoir eu affaire à un problème dû à une mise à jour du compilateur qui ne soit pas une erreur de compilation.