arnaudus a écrit 4608 commentaires

  • [^] # Re: Brace yourselves, bullshit is coming.

    Posté par  . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 4. Dernière modification le 07 janvier 2014 à 17:56.

    C'est pas grave, ils trollent…. ils ne savent faire que cela.

    Ils savent troller ET coder. Ça fait une grosse différence, mine de rien, parce que vous avez largement prouvé votre capacité trollesque, mais pas le reste.

  • [^] # Re: Brace yourselves, bullshit is coming.

    Posté par  . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 6. Dernière modification le 07 janvier 2014 à 17:54.

    C'est amusant surtout le C/C++… c'est le prof qui leur a dit que c'était pas bien, alors j'accepte la mauvaise note :D
    Je répondrai : regarde le code qui est générer en C et en C++ pour ce genre d'opérations et tu auras ta réponse.

    I don't agree avec ta réponse, quand un prof say that mixing deux langages c'est not good, c'est perhaps because c'est juste imposer a painful effort aux lecteurs et rendre le monde ambigü et inhabitable.

    À mon avis, tu as toi-même démontré avec ton test inutile du retour de new que tu as appliqué un paradigme C en C++: quand tu codes, tu ne sais pas vraiment dans quel langage, ce qui peut amener à des bugs ou des erreurs, et créer du code illisible et inutilisable. Être autodidacte est très différent de mal faire les choses, surtout pour des disciplines "dures" comme les mathématiques ou la programmation : un jour, tu ne peux plus t'échapper avec des mots et des schémas, et tu finis par devoir te confronter à la réalité. La réalité avec le code du main() qui a été montré, c'est que le programme peut planter s'il est lancé avec une mauvaise commande, et que le buffer overflow peut introduire une faille de sécurité dans le système du client.

    je n'ai eu aucune réponse en retour concernant mes questions pour l'analyse en objet d'une Hotline, des 45000 filtres en 0.7 seconde

    Tu n'as aucune réponse parce que ton problème est vague et mal spécifié. Je ne comprends pas ce que sont ces 45000 filtres, mais si j'essaye d'extrapoler à un exemple concret, si tu as une table de 45000 lignes x 10 données (réels double précision) et que tu filtres par une comparaison (par exemple, ne garder que les lignes où les 7 premières colonnes sont positives), c'est quasiment instantané. Je ne vais pas me faire le code en C, mais même avec un langage de script comme R et un code crade,

    > L <- 45000
    > D <- 10
    > dd <- matrix(rnorm(L*D), ncol=D)
    > system.time(dd[dd[,1] < 0 & dd[,2] < 0 & dd[,3] < 0 & dd[,4] < 0 & dd[,5] < 0 & dd[,6] < 0 & dd[,7] < 0],])
       user  system elapsed 
      0.021   0.001   0.022
    
    

    20 ms sur un Cpu à 2.8 GHz, ça fait 0.07s sur un 1 GHz. J'imagine que tu as mal expliqué ton problème, évidemment, mais je veux juste te faire comprendre que balancer des trucs comme "45000 filtres en 0.7 secondes", ça n'impressionne personne d'autre que toi. Et dire que les SGBD commerciaux mettent 30 minutes, si tu les utilises de la même manière que C++, ça risque de n'étonner personne. Rien dans les informations et le code fourni ne prouve que tu n'es ni un escroc, ni un mythomane.

  • [^] # Re: Brace yourselves, bullshit is coming.

    Posté par  . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 10. Dernière modification le 07 janvier 2014 à 16:24.

    Techniquement, il semble que certains vieux compilateurs ne respectaient pas le standard—ça doit dater quand même, la FAQ C++ parle de "very old". Ou alors c'est juste un problème d'include <new>, apparemment c'est nécessaire pour certains compilos. Mais bon, ce que je trouve bizarre, c'est de ne pas attrapper l'exception "réglementaire" mais de faire ce test, qui ressemble à un calque du test du pointer après le malloc sous C. Et quand quelqu'un vous dit que le test ne sert à rien, vous essayez d'abord d'argumenter sur la base du new(nothrow), qui est quand même un truc assez confidentiel, puis vous dites clairement et naturellement que vous n'auriez pas fait le test si vous n'aviez pas eu le problème. On fait tous plus ou moins ça, j'imagine, mais on sait tous plus ou moins que c'est une pratique assez honteuse, et c'est juste un peu naïf d'utiliser ça comme argument dans une discussion où on remet en cause vos compétences de programmeur.

    Encore une fois, écrire du code pourri, beaucoup le font. Le publier, certains le font. Le produire dans un contexte professionnel, ça commence à craindre un peu, ça pourrait se rapprocher de l'escroquerie (par exemple, livrer du code écrit dans un dialecte personnel du C et le vendre comme du C++, c'est gonflé). Mais quand on dit que les programmes traditionnels sont pleins de bugs et difficiles à développer, il faut quand même montrer un minimum de technique. L'exemple traditionnel, c'est Picasso, qui a étudié très soigneusement l'école classique avant de définir son style. Là, vous définissez votre style sans bases solides dans le style traditionnel, vous ne pouvez pas donner confiance aux autres, c'est techniquement impossible.

    Les accusations que vous subissez sont graves, on parle de vous plus bas dans cette discussion comme un mythomane et un imposteur. Et vos réponses sont exactement celles qu'on attendrait d'un mythomane ou d'un imposteur : "n'essayez pas de comprendre, c'est trop différent". Vous êtes en train de dire à des programmeurs professionnels et reconnus (je ne parle évidemment pas de moi) qu'ils ne peuvent pas comprendre, tout en démontrant naïvement vos lacunes en programmation. C'est une position qui me semble intellectuellement intenable.

  • [^] # Re: Brace yourselves, bullshit is coming.

    Posté par  . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 3.

    Mais si je l'ai fait ainsi c'est que à un moment la class ne se créait pas et j'avais un zéro en retour.

    Chaque excuse est encore plus piteuse que la précédente :-)

  • [^] # Re: Brace yourselves, bullshit is coming.

    Posté par  . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 1.

    En fait, ça voudrait dire que std::endl n'a pas d'utilité en soi? Ce qui me semble un peu compliqué, c'est de devoir supposer que le code tourne sur un système POSIX par exemple, ça ne met pas en cause la portabilité?

  • [^] # Re: Conférence

    Posté par  . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 4.

    Ceci dit, il faut quand même que quelqu'un le dise. Il y a diverses manières de le dire, mais il est probable qu'un certain nombre de clients payent pour ça. Et le coup du "dissailldeur" qui n'y connait rien et qui a bien cherché ce qu'il a, ça n'est pas un bon argument si le web ne fournit pas l'opinion claire de spécialistes du sujet.

  • [^] # Re: hello world

    Posté par  . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 6.

    Show us the code !

    Tu veux de retrouver avec 1318 fichiers .cpp, ou quoi?

  • [^] # Re: Brace yourselves, bullshit is coming.

    Posté par  . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 3. Dernière modification le 07 janvier 2014 à 13:11.

    Au fait, std::endl, ce n'est pas un synonyme de "\n". std::endl flush en plus, ce qui peut avoir des conséquences sur les performances

    Mais du coup, pour coller des messages d'erreur dans un ostream qui est peut-être cerr ou un fichier de log, est-ce que ça n'est pas canonique de flusher le truc? Si tu as un segfault juste après, c'est un coup à te retrouver avec un crash complètement silencieux, voire à considérer que le test s'est bien passé, non?

  • [^] # Re: Brace yourselves, bullshit is coming.

    Posté par  . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 2.

    Mais pour ce genre de trucs, en C++, tu ne fais pas

    ostream buff;
    buff << truc << endl;
    

    ?

  • [^] # Re: Brace yourselves, bullshit is coming.

    Posté par  . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 9. Dernière modification le 07 janvier 2014 à 10:16.

    J'ai souvent vu des programmeurs C++, ne pas comprendre plus que du simple C++98 sans rien de spécial même comme du "virtuel" ou des méthode "null".

    Ça:

    char buff[ MAX_STRING];
    sprintf( buff, "Error #%ld \n", (long) RET_NOPARAMS);
    

    c'est du C, pas du C++.

    Personne je pense n'a suggéré que votre code ne fonctionnait pas—comment pourrait-on? On n'a pas accès aux logiciels dont vous parlez. Ce que les gens disent, c'est que vous ne programmez pas comme un professionnel, et que certaines erreurs (comme le buffer overflow) ne devraient pas être présentes dans un code que vous facturez à un client. Après, si le client est content et qu'il s'en fout d'avoir un programme en C alors qu'il avait commandé du C++, et si vous lui avez pris trois fois moins cher que le coût d'un développement traditionnel, tant mieux.

    Pour prendre une analogie, si vous achetez une voiture, vous vous attendez à ce qu'elle marche bien. Mais si vous ouvrez le capot, et vous apercevez que tout tient avec des petits bouts de ficelle et de scotch, et que certaines pièces sont en plastique alors que vous aviez demandé du métal, alors le fait qu'elle fonctionne peut devenir secondaire : certes, elles fonctionne, mais ce n'est pas ce que vous aviez imaginé.

    En gros, tel que je le comprends, apparemment, votre voiture semble fonctionner. Mais quand vous ouvrez le capot, non seulement c'est du bricolage, mais en plus, personne, pas même des ingénieurs expérimentés, ne comprend comment elle fonctionne. Vous êtes vous-même incapable d'expliquer comment elle fonctionne, personne d'autre que vous ne pourrait reconstruire un tel moteur, et vous ne faites que dire que c'est un nouveau type de fonctionnement révolutionnaire. Et quand on prend une pièce au hasard et qu'on regarde comment elle est faite, elle semble avoir été bricolée par des ferailleurs roumains presbytes. Alors non, personne ne veut monter avec vous dans votre voiture : selon toute vraisemblance, elle va exploser au bout de 200 mètres. La réaction des gens est tout à fait rationnelle, et je ne vois pas comment vous pouvez imaginer convaincre avec les arguments que vous donnez.

  • [^] # Re: Mais si, faut y croire !

    Posté par  . En réponse au journal [bookmark] 2014 ne sera pas l'année du jeu libre. Évalué à 3.

    Sans compter que ça impose des restrictions techniques: en gros, il te faut du code qui compile et qui permet de faire un jeu "simple", et un module à toi (sous licence proprio?) qui te permet d'apporter ta plus-value. Tu espères que la communauté va jouer au jeu simple (pour remonter les bugs etc), et qu'une autre communauté va jouer au jeu complet. Mais au final, celle qui joue au jeu complet est la plus mal traitée, vu qu'elle n'a pas accès à la totalité des sources (et donc possibilités de bugs, backdoors, etc). Ça me parait assez malsain comme situation ; au final, on se demande bien quel intérêt de mettre le moteur sous licence libre si c'est pour pourrir le moteur libre avec des add-on non libres…

  • [^] # Re: Brace yourselves, bullshit is coming.

    Posté par  . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 7.

    Puisque je vis de cette programmation non parfaite depuis 1986

    On ne peut évidemment que se réjouir que les gens aient un boulot dans lequel ils s'épanouissent. Mais bon, je ne suis pas développeur moi-même, je code des outils quand j'en ai besoin mais ce n'est pas le centre de mon activité, et il est pourtant très clair pour moi que le code présenté n'est pas d'un niveau professionnel ; je ne pense même pas qu'il serait passable dans la plupart des logiciels libres artisanaux qu'on trouve dans les distributions Linux. Ça ressemble à un mélange entre deux langages de programmation, C et C++, et tout ça semble très bancal—je ne sais pas si certains d'entre nous enseignent, mais il serait peut-être utile qu'ils indiquent à quel niveau d'études correspond un tel morceau de code.

    Le pépin, à mon avis, ce n'est pas des compétences de développeur douteuses (c'est déja pas mal d'être capable de produire un code qui compile, tant qu'on ne se situe pas dans un contexte professionnel), c'est que votre argumentation tourne autour du fait que les langages de programmation traditionnels ne correspondent pas à certaines de vos attentes, alors qu'il semble évident que vous êtes loin de les maitriser à un niveau suffisant pour émettre de telles critiques. Ça pose quand même un vrai problème de crédibilité.

  • [^] # Re: Brace yourselves, bullshit is coming.

    Posté par  . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 4.

    D'un autre côté, ce n'est pas une précaution utile quand même de nettoyer son bazar avant de terminer le processus? Quelque part, si dans 6 mois tu trouves ton main() trop long, et tu copies-colles le bloc de code ailleurs, l'absence de delete aurait aussi déclenché un WTF bien plus grave, non?

  • [^] # Re: Brace yourselves, bullshit is coming.

    Posté par  . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 1.

    Question naïve (histoire de profiter de cette discussion absurde pour apprendre quelque chose), pourquoi le WTF sur le "delete starter;"? Simplement parce que ça ne sert à rien vu qu'on est juste avant le return du main(), ou y-a-t'il quelque chose de plus profond?

    En tout cas, c'est un superbe exemple de C/C++ :-)

  • [^] # Re: hello world

    Posté par  . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 6.

    Pourquoi un hello world a besoin de dizaines de fichier .cpp ?!

    Une dizaine? Tu es bien loin de la réalité. Il y a 24 .cpp et 29 .h! :-D Le plus marrant, c'est que la chaine de caractères "Hello World!" est dans l'un des 5 fichiers xml.

    À part un concours d'obfuscation, l'intérêt m'échappe.

  • [^] # Re: hello world

    Posté par  . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 9.

    Autrement que QUOI? Je te parle de discours fallacieux, là, je ne te parle pas de ton truc magique!

    F. --- J'ai découvert un truc super qui doit révolutionner la programmation.
    A. --- Ah, c'est quoi?
    F. --- Un tout nouveau concept, celui qui le décrit le mieux gagner 150 francs Suisses.
    A. --- Je veux bien le décrire, mais je ne comprends pas ce que c'est. C'est X?
    F. --- Mais non. Tu vas voir, essaye-le, tu ne pourras pas t'en passer.

    Comme je tiens à ma tête, ça donne vraiment envie de cogner la tête des autres contre les murs. Soit je suis dingue, soit tu es fou, mais si on pense tous les deux tenir un discours rationnel, l'un de nous doit être enfermé d'urgence.

  • [^] # Re: Mais si, faut y croire !

    Posté par  . En réponse au journal [bookmark] 2014 ne sera pas l'année du jeu libre. Évalué à 4.

    Certes, mais ce n'est pas le propos. La question, c'est

    Tu n'est pas obligé non plus de tout packager pour la partie côté serveur pour rendre la vie trop facile aux autres.

    qui suggère assez explicitement que tu peux faire exprès de ne pas améliorer le logiciel (voire pire, de faire exprès d'y introduire de la complexité) pour sauvegarder ton espace vital. Ce qui me semble malsain.

  • [^] # Re: hello world

    Posté par  . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 4.

    OK, dans Evenja y'a pas de boucle. Mais ça peut durer longtemps si les seules explications tournent autour de ce qu'Evenja n'est pas ou ne contient pas.

    Sans dec, si ce truc n'est pas du vent, alors la com n'a aucun sens : c'est une variante du Shmilblick où personne n'a décidé ce qu'était le Shmilblick. "Est-ce que le Shmilblick est un fruit?" "Ah non, c'est le contraire". "Est-ce que le Shmilblick est une personne?" "Ah non, le Shmilblick ne ressemble à rien de connu". "Bordel, c'est quoi le Shmilblick?" "Bah c'est le Shmilblick". C'est à se taper la tête contre les murs, non?

  • [^] # Re: hello world

    Posté par  . En réponse à la dépêche Concours "Evenja Café", un nouveau paradigme de programmation. Évalué à 10.

    Je me demande si ce n'est pas simplement un logiciel de pipeautique fonctionnelle récursive, qui permet par une approche transversale d'intégrer des grands défis sociétaux dans un cadre conceptuel à la fois top-down et bottom-up.

    Si c'est le cas, le Hello World devrait ressembler à:

    #include <iostream>
    #include <string>
    #include "random_string.h"
    
    int main() {
       std::string answer;
       do {
          answer = random_string();
       } while (answer != "Hello World!");
       std::cout << answer << std:endl;
       return(0);
    }
    
    
  • [^] # Re: Mais si, faut y croire !

    Posté par  . En réponse au journal [bookmark] 2014 ne sera pas l'année du jeu libre. Évalué à 5.

    Ta plus value ce n'est pas 0. Tu n'est pas obligé non plus de tout packager pour la partie côté serveur pour rendre la vie trop facile aux autres.

    Je n'aime vraiment pas cet argument. Je sais bien que pas mal de business models libres sont basés sur le concept de la vente de service. Mais ça a un aspect assez déplaisant : la boîte n'a aucun intérêt à rendre le code et la doc claire, ni à fournir une installation facile (paquets pour les distributions majeures, options par défaut pertinentes, respect des standards freedesktop, etc). C'est bien sûr un jeu de funambule : si l'install est trop pourrie ou trop complexe, la réputation du logiciel va en prendre un coup. Mais s'il suffit de faire apt-get install supersoft et hop, on a un serveur de mail qui fonctionne avec des options de sécurité pertinentes, alors les utilisateurs n'ont plus besoin du service (ou moins besoin).

    Au final, c'est bien que le libre puisse permettre de faire de l'argent, mais c'est tout de suite moins bien si la conséquence est une dégradation volontaire de la qualité du logiciel, ou un blocage volontaire des améliorations.

  • [^] # Re: Toujour galère...

    Posté par  . En réponse au journal Nouveau laptop, problèmes de batterie, et virtualisation. Évalué à 2.

    De toutes manières, en général, quand le kernel est debout, il n'est accessible que par ssh ou par les combinaisons de touches Sys Ctrl-machin… Rien qu'un reboot du serveur X serait plus acceptable qu'un freeze apparemment incontournable.

  • # Toujour galère...

    Posté par  . En réponse au journal Nouveau laptop, problèmes de batterie, et virtualisation. Évalué à 10.

    Ça, c'est un truc qui s'est peu amélioré… Il y a 10 ans, je me souviens des Debian installées sur les laptops, c'était un peu la galère pour tout faire marcher (serveur X, son, saloperie de WinModem, etc). Et 10 ans après, c'est toujours la même galère. Ubuntu arrive avec son tout bel emballage et son installateur convivial, et crac, le driver nvidia débloque, le son disparait lors de la mise à jour, le bouzin ne se réveille pas de l'hibernation… Il y a 10 ans, j'avais l'énergie et la curiosité d'aller mettre les mains dans le cambouis, mais maintenant, ça a de plus en plus tendance à me saouler, et j'aimerais bien que les choses marchent quand j'en ai envie.

    Le pire, c'est que quand un problème récurrent est réglé, c'est un autre qui prend le relais. À un moment, il fallait systématiquement aller trifouiller alsamixer pour faire marcher les micros ; un peu avant, c'était l'hibernation qui débloquait avec presque toutes les machines, aujourd'hui, j'ai l'impression de voir de plus en plus de freeze indéblocable du serveur X…

    La plupart du temps, le noyau n'est pas en cause, mais c'est l'intégration qui pêche, j'ai l'impression : il faudrait juste quelques options de boot qui vont bien, tel truc à recompiler, etc. J'ai le sentiment que la communauté ne s'est jamais vraiment organisée correctement pour fournir par exemple une base de données exhaustive des modèles de laptop, dans laquelle les distribs pourraient aller chercher des infos sur le matériel, prévenir à l'installation que ci ou ça ne va pas fonctionner correctement.

    C'est quand même assez paradoxal que Linux ait une excellente réputation sur les serveurs, et que cette stabilité n'a jamais vraiment réussi à s'exporter sur les machines grand public. Bien sûr, gna gna gna drivers, reverse-ingeneering et bénévoles toussa, mais est-ce qu'il n'y aurait pas moyen de concevoir des systèmes moins sensibles à ces problèmes et capables de les contourner facilement?

    Heureusement, il y a des exceptions. Mon laptop pro est arrivé avec un joli autocollant Ubuntu, et une intégration assez satisfaisante (boot super rapide, par exemple). Ça n'empêche pas occasionnellement d'avoir le serveur X qui se blo

  • [^] # Re: Lapin compris...

    Posté par  . En réponse au message Passer de Fedora 20 à Windows Seven. Évalué à 10.

    "Je galère énormément pour passer de Peugeot à Renault. Mon tapis de sol ne reconnait pas l'embrayage. Je suis assez expérimenté, j'ai essayé toutes les petites manips (oui, j'ai essayé de changer la couleur de la carrosserie, vous voyez quoi) habituelles, mais Peugeot n'est pas très ami avec l'embrayage. J'ai alors essayé le starter à manivelle, mais la pédale ne fonctionne pas. Alors que sur une Citroën, tout est bon! J'ai l'impression que Peugeot est tout sauf fonctionnel. Merci de m'aider!"

  • # Lapin compris...

    Posté par  . En réponse au message Passer de Fedora 20 à Windows Seven. Évalué à 4.

    Je n'ai même pas compris ce que tu essayes de faire, créer une clé USB bootable avec Win7 dessus à partir d'une Fedora? Mais si j'ai bien compris, Unetbootin permet de créer une clé avec un Linux bootable, pas un Windows? Et Winusb est un utilitaire Windows, tu as donc déja un Windows installé?

    Je suis assez expérimenté

    Je pense que tu surestimes grandement ton niveau.

  • [^] # Re: Ce qu'il dit ?

    Posté par  . En réponse au message disk impossible a monter. Évalué à 1.

    Ça voudrait dire que Windows monte le disque s'il y a des erreurs? C'est pas un coup à tout casser?