Nicolas Boulay a écrit 15830 commentaires

  • [^] # Re: Apu updates ?

    Posté par  (site web personnel) . En réponse au journal Sortie de CImg 1.1.5. Évalué à 2.

    Si je veux modifier le layout pour faire des essais, je dois aussi modifier toutes les macro _map ?

    Tu as pu vérifier l'augmentation de performance avec la modification de offset () ?

    "La première sécurité est la liberté"

  • [^] # Re: Apu updates ?

    Posté par  (site web personnel) . En réponse au journal Sortie de CImg 1.1.5. Évalué à 2.

    Je cherche pas à faire des animations mais du traitement temps réel :)

    C'est pour ça que je parlais de gain théorique. Je ne crois pas qu'il existe des astuces en c++ qui permète d'induire un choix de layout mémoire selon l'utilisation qu'il en est fait. Si cela existait l'utilisateur n'aurait pas à s'en soucier.

    "La première sécurité est la liberté"

  • [^] # Re: Apu updates ?

    Posté par  (site web personnel) . En réponse au journal Sortie de CImg 1.1.5. Évalué à 4.

    J'ai continué à torturer la bète. J'ai utiliser ./nlmeans pour bencher rapidement la chose.
    La fonction offset() est très utilisé forcément. En la modifiant par :

    return (x+width*y)+(width*height*z+width*height*depth*v);

    Le but est de réduire le nombre de dépendance read-after-write qui tue le parralèlisme.

    J'obtient 10% de perf en plus sur le test sur processeur athlon. Par contre, cela ne change rien sur une machine pentium.

    Les 3 tests qui sont dans CImg_demo qui rendent des fps sont en fait très dépendant de la vitesse d'affichage donc non représentatif pour les calculs.

    J'ai essayé de modifier offset() pour que v sois la 1er dimension et non la dernière. Telle que c'est codé ici, on a 3 plans de couleur, un vert, un rouge, un bleu. Avec v en première dimension, on a R,V,B,R,V,B,R,V,B,... Cela dépend beaucoup des calculs mais je pense qu'en général, quand on utilise une couleur d'un pixel on a beaucoup de chance d'immédiatement utiliser les autres couleurs. Dans le "rangement" RVB, les 3 couleurs sont dans la même ligne de cache, donc en théorie, les acces devrait être plus rapide.

    A prioris d'autre macro utilise le layout mémoire sous -entendu donc il faudrait modifier plus de chose que offset() pour faire le test.

    "La première sécurité est la liberté"

  • [^] # Re: Apu updates ?

    Posté par  (site web personnel) . En réponse au journal Sortie de CImg 1.1.5. Évalué à 2.

    Dans 2 ans, j'aurais un quadri coeur qui tournera à 2.5Ghz et mettra autant de temps que maintenant...

    "La première sécurité est la liberté"

  • [^] # Re: Apu updates ?

    Posté par  (site web personnel) . En réponse au journal Sortie de CImg 1.1.5. Évalué à 1.

    Les standards de programmation s'apprennent rarement à l'école. Mais se trouve dans plein de papiers.


    Il faut savoir sortir des sentiers battus de temps en temps, sinon on coderait encore tout en basic.


    Cela n'a pas de rapport en l'occurence... Je ne considère pas le fait de tout mettre dans un seul fichier comme ayant un seul avantage sur celui d'avoir quelques fichiers. L'utilisation d'opérateur ternaire est une vrai avancé.

    Avec un IDE qui retrouve les tags, cela peut se faire mais bon...

    Sinon avec des header précompilé, je gagne plus de 60% du temps de compilation cela devient accèptable.

    J'ai essayé l'option de compilation -ftree-vectorize, cela change très peu les temps d'execution, je suis un peu déçu.

    "La première sécurité est la liberté"

  • [^] # Re: il faut ensuite replacer firefox comme User Agent

    Posté par  (site web personnel) . En réponse au journal Indignation : Ebay et Linux. Évalué à 9.

    cela serait une charge de vers marrant ça... un ver qui transforme le user agent de IE en celui de firefox...

    ok je ->[]

    "La première sécurité est la liberté"

  • [^] # Re: Apu updates ?

    Posté par  (site web personnel) . En réponse au journal Sortie de CImg 1.1.5. Évalué à 2.

    C'est quand même plus simple et moins lourd d'avoir plusieurs fichiers. Regardes boost ou autre.

    J'ai bricolé avec hier soir. Le plus chiant c'est vraiment les temps de compilations. Plusieurs minutes sur un pc pas trop vieux pour un seul fichier ! (gcc 4.0.1) C'est d'autant plus énervant sur un bi-cpu avec le 2ième cpu idle (car il n'y a qu'un fichier à compiler).

    Sinon, cela a l'air simple d'emplois.

    "La première sécurité est la liberté"

  • [^] # Re: Apu updates ?

    Posté par  (site web personnel) . En réponse au journal Sortie de CImg 1.1.5. Évalué à 2.

    je séparerais aussi le code de traitement d'image proprement dit du code d'affichage. C'est plus propre si la lib est utilisé avec kde ou wxwidget par exemple.

    "La première sécurité est la liberté"

  • [^] # Re: Apu updates ?

    Posté par  (site web personnel) . En réponse au journal Sortie de CImg 1.1.5. Évalué à 4.

    La structuration classique est au minimum de séparer ce qui est portable de ce qui ne l'est pas. Donc, cela ferait un cimg.h et des unix.h et windows.h, l'interet de facilité la vie d'un mec qui ferais le portage pour une autre archi. Idem pour les fonctions bas niveau qui sont ressponsable des performances. Il peut y avoir 50 versions (en C++, en mmx, sse, sse2, sse3, avec de la génération de code en ligne, en utilisant les shaders d'une carte graphique, etc...). Typiquement aussi, c'est un objet par fichier, le fichier ayant le même nom que l'objet.

    Pour la vitesse de compilation, si ton code est découpé, sous unix, le include <cimg_windows.h> ne sera pas executé, et les lignes correspondante non parsé, c'est peut-être negligable, j'en sais trop rien. Mais je trouve que le temps de compile des exemples est long.

    Pour le nouveau entrant qui s'interesserait à la bibliothèque en elle-même, je pense même que c'est plus facile de faire un 'Search' du nom de la fonction dans un seul fichier plutot qu'un grep pour savoir deja dans quel fichier se trouve la fonction, puis un search.

    Si ton code est correctement structuré, tu sais tout de suite quel fichier ouvrir pas besoin de grep.

    Eviter l'effet masse, c'est aussi un moyen d'avoir plus de codeurs.

    "La première sécurité est la liberté"

  • [^] # Re: Apu updates ?

    Posté par  (site web personnel) . En réponse au journal Sortie de CImg 1.1.5. Évalué à 1.

    Découpé le code en différent .h permet de mieux séparer physiquement le code en module et permet de rentrer plus facilement dedans. Cela peut aussi permètre de gagner en temps de compilation en allegeant le preprocesseurs.

    Cela permet au nouveau entrant de savoir tout de suite ou aller chercher les fonctions à modifier. Cela évite de connaitre tout le code avant de commencer une modif.

    J'imagine que bouger un .h est plus simple qu'une arboressence, mais cela revient en fait au même.

    "La première sécurité est la liberté"

  • [^] # Re: oups un seul fichier...

    Posté par  (site web personnel) . En réponse au journal Sortie de CImg 1.1.5. Évalué à 2.

    et niveau performance elle donne quoi ?

    "La première sécurité est la liberté"

  • [^] # du c++ ?!

    Posté par  (site web personnel) . En réponse au journal Sortie de CImg 1.1.5. Évalué à 2.

    J'ai franchement du mal à lire. Moi qui croyait que les templates évitaient d'utiliser les macro...


    // Create two display window, one for the image, the other for the color profile.
    CImgDisplay
    main_disp(image,"Color image (Try to move mouse pointer over)",0),
    draw_disp(500,400,"Color profile of the X-axis",0);



    cimg_mapXYZV(dest,x,y,z,k) {
    const double X = ((double)x/img1.dimx()-0.5)*ca + ((double)y/img1.dimy()-0.5)*sa;
    if (X+0.5<pmin) alpha=0; else {
    if (X+0.5>pmax) alpha=1; else alpha=(X+0.5-pmin)/(pmax-pmin);
    }
    dest(x,y,z,k) = (unsigned char)((1-alpha)*img1(x,y,z,k) + alpha*img2(x,y,z,k));
    }


    Le code précédent qui ressemble à une fonction est en fait dans le corps de main. Certe il y a peu de ligne de code, mais j'avoue avoir du mal à le comprendre ce code. A quoi sert de faire du c++, si c'est aussi facile à lire que du perl.

    "La première sécurité est la liberté"

  • # oups un seul fichier...

    Posté par  (site web personnel) . En réponse au journal Sortie de CImg 1.1.5. Évalué à 3.

    Violant. Surtout avec une rédéfinition de pi au milieu. math.h ne suffit pas ?

    Sinon qu'en est-il des performances ? Si je recodes moi-mêmes, j'aurais 10x plus de perf ou bien le code utilise les astuces du genre de celle de blas ? (pour faire des traitements léger mais temps réel)

    "La première sécurité est la liberté"

  • # évaluation de linux...

    Posté par  (site web personnel) . En réponse au journal Ohloh, un nouvel annuaire de projet Open Source. Évalué à 4.

    Un type avait offert 50k$ pour une version BSD de linux. Cela avait fait un flameware sur la LKML.

    En utilisant la méthode COCOMO, l'évalution "basique" donnait plus de 100 millions, une évaluation plus poussé (parrallèlisme, gestion hardware, etc...) donnait plus de 500 millions (600 ?). Donc, le prix donné ici me parait bien bas...

    "La première sécurité est la liberté"

  • [^] # Re: tiens cela me rappelle

    Posté par  (site web personnel) . En réponse au journal Il n'y a pas écrit La Poste... et heureusement. Évalué à 3.

    tu peux aussi avoir une organisation qui fait que l'on connait la dernière personne ayant toucher le colis en question...

    "La première sécurité est la liberté"

  • # euh...

    Posté par  (site web personnel) . En réponse au journal Coup de gueule pour une chanson.... Évalué à 8.

    LA SACEM veut trainer l'éducation national devant les tribunaux pour 75 ¤ ?

    Je ne sais pas mais cela me parait délirant...

    Cela me rappelle une histoire similaire au états unis ou des scouts devait payer un droit pour chanter leur chanson autour d'un feu de camp.

    "La première sécurité est la liberté"

  • [^] # Re: Archivage

    Posté par  (site web personnel) . En réponse au journal création d'un "coffre-fort virtuel". Évalué à 2.

    "Le principal risque, c'est la perte de donnée plus que la modification silencieuse."

    Cela revient au même non ?

    J'ai déjà fait l'exercice d'une copie complète de CD/DVD en regardant le /var/log/messages et les erreurs CD. Et bien, tout mes DVD présentant qq erreurs irrécupérables mais cela ne se voyait pas à première vue (c'était des photos perso).

    Bref, un support sans vérification périodique, je ne vois pas trop l'interet.

    "La première sécurité est la liberté"

  • [^] # Re: Archivage

    Posté par  (site web personnel) . En réponse au journal création d'un "coffre-fort virtuel". Évalué à 3.

    j'imagine qu'un fichier xml ou un fichier pdf simple seront toujours lisible.

    Ensuite, pour le média, c'est gérer par l'état donc à eux de garantir de le renouvellement et la gestion de stoquage.

    "La première sécurité est la liberté"

  • # en rapide :

    Posté par  (site web personnel) . En réponse au message Open source et boite privée. Évalué à 4.

    "- Qu'est-ce que cela peut apporter à la boite dans laquelle je travaille ?"

    des testeurs, du debugages, de la notoriété, etc...

    "- Quelle type de licence dois-je mettre ? GPL ? LGPL ? autre ?"

    GPL si vous gardez le controle complet des droits d'auteurs (comme pour Trolltech et MySQL Labs, tout auteur de patch doit vous céder vo droits) sinon la GPL pourra s'éteindre à tous les softs de la boite.
    LGPL est une bonne solution si vous ne voulez pas maintenir "correctement" le machin.

    "- En quel nom doit-on mettre pour l'auteur la librairie, le nom du du développeur ? Le nom de ma société doit apparaître ou pas ?"

    Le copyirght est celui de la boite, rajouter le nom des auteurs, c'est sympa pour eux...

    "- Ou dois-je la mettre ? freshmeat ? sourceforge ?"

    oui, c'est les 2 les plus courant.

    "- La librairie est en C++ et compilé uniquement sur windows (VS6)"

    suffit de la préciser dans sourceforge.

    "La première sécurité est la liberté"

  • [^] # Re: mouaip...

    Posté par  (site web personnel) . En réponse à la dépêche Microsoft se met à l'Open Document. Évalué à 3.

    "Notes que c'est *exactement* le reproche que beaucoup (y compris des projets libres) ont fait pour ODF."

    C'est quand même moins vrai pour ODF qui contient des "balises classiques", cela manque juste de sémantique type docbook.

    "La première sécurité est la liberté"

  • [^] # Re: Hum

    Posté par  (site web personnel) . En réponse au journal Defective by Design. Évalué à 2.

    Bah déjà, pour des raisons de cout, les puces de sécurité ne sont pas tamper résistant. Donc, des attaques hardwares "de base" pourraient extraire les jolies clefs.

    "La première sécurité est la liberté"

  • [^] # Re: Hum

    Posté par  (site web personnel) . En réponse au journal Defective by Design. Évalué à 4.

    Ta "liste maudite", c'est exactement ce qu'il font. Un appareil qui se compromet n'a pas forcément besoin d'une mise à jour (qui est d'ailleurs une potentiel faille de sécurité) software mais hardware.

    Ensuite, un appareil grand publique est vendu en millions d'exemplaires. Donc, pour quelques dizaines milliers d'ado qui utilisent le device pour pirater, ils désactivent des millions de télé.

    Donc, j'imagine bien les scandale associés...

    "La première sécurité est la liberté"

  • [^] # Re: mouaip...

    Posté par  (site web personnel) . En réponse à la dépêche Microsoft se met à l'Open Document. Évalué à 2.

    Tu as l'air de bien aimer la quadrisectomie capilaire.

    Le format .docx a reconnu comme être une version xml du .doc et que la gigantesque documentation fait froid dans le dos. Donc, au finale, cela ne change pas grand chose. Le format .docx est très dépendant de la manière de fonctionner de word et s'appliquera mal à un autre traitement de texte.

    Quand je parlais de status "d'export", je le comparais avec le rtf qui peut être lu et écris par les actuels versions de word. Sauf que les images peuvent ne pas s'ouvrir ou sont souvent en bmp selon les versions de word. Le top étant les rtf word97 que l'on ne peut pas ouvrir dans word 2k.

    "La première sécurité est la liberté"

  • [^] # Re: Hum

    Posté par  (site web personnel) . En réponse au journal Defective by Design. Évalué à 2.

    y'a pas de DVI dans le chemin HDCP. Il y a juste le HDMI.

    "La première sécurité est la liberté"

  • [^] # Re: Hum

    Posté par  (site web personnel) . En réponse au journal Defective by Design. Évalué à 9.

    D'ailleurs j'attend avec impatience les articles dans les journaux grand public à propos d'un DVD d'un bloc buster qui désactive un écran à 2000¤...

    Histoire de bien rigoler...

    "La première sécurité est la liberté"