Jonathan MERCIER a écrit 42 commentaires

  • # Installation compliquée et peu paramétrable

    Posté par  (site web personnel) . En réponse à la dépêche Hébergez votre projet open source sur la nouvelle plate‐forme Agile et libre : Tuleap.net. Évalué à 3. Dernière modification le 08 juin 2018 à 14:40.

    J'avais essayer d'installer tuleap il y a quelque temps et ce fut un échec:

    • la version docker était minimale
    • la version brute quant à elle était faite pour des bases red-hat. De plus de souvenir des ports requis pas Tuleap était en conflit avec ceux déjà utilisée par nos différents autres services. On ne pouvait pas configuré un autre port. Ils étaient imposé par tuleap !!

    Bref déçu à l'époque de l'outil, gitlab fut essayé ensuite et a nécessité quelques heures seulement pour une mise en production avec backup et tout..

  • [^] # Re: bashing du D

    Posté par  (site web personnel) . En réponse à la dépêche Présentation de Rust 0.8. Évalué à 5. Dernière modification le 11 octobre 2013 à 18:28.

    Tu compare Rust par rapport à l'état de l'art mais pour le D tu met que ce que tu as retenu de négatif et qui s'est passé y a plusieurs années de cela.Ce qui n'est plus vrai au jour d'aujourd'hui!

    Si tu compare, tu dois te mettre à jour et être objectif.

    Imagine que je compare python 0.1 à perl 6. Python va prendre un sacré coup.

    Tout le développement du D se fait à travers github comme rust les contributions sont les bienvenues, les fork /merge vont bon trains.

    Enfin bon …

  • # bashing du D

    Posté par  (site web personnel) . En réponse à la dépêche Présentation de Rust 0.8. Évalué à 4. Dernière modification le 11 octobre 2013 à 17:22.

    Je me permet d'ajouter une autre vision sur le D. Tu bash complètement ce langage quitte à te tromper.

    D n'est pas un compilateur!
    Les compilateurs ldc et gdc sont libres!
    La communauté du D est également active:
    source: https://github.com/D-Programming-Language/
    forum: http://forum.dlang.org/

    Le problème des nouveaux langages sont ( Rust, D, Go … ):
    - avoir un niveaux conséquent de bibliothèque afin d'être attractive
    - être enseigné au niveaux académique en vu d'être utilisé par le plus grand nombre

    Ton article essaye un peu trop d'écraser par ton seul propos un langage pour mettre un autre en avant!
    Du coup tu perd en objectivité

    Pour avoir un article de bonne qualité et objectif entre D et Rust: http://versusit.org/rust-vs-d

    Désolé pour l'anglais mais au moins la conclusion est courte (commencer par là)

  • # bof

    Posté par  (site web personnel) . En réponse au journal Pour faire une recherche Halal. Évalué à -6.

    Alors pour résumer, ce projet aurait pour objectif de filtrer les mauvaises choses du web…

    Car toi petit humain tu n'es pas capable de savoir que ce qui est mauvais…
    Mais alalgoogling lui il le sait.
    Je vais empiéter sur la neutralité du web car on ne sait jamais ce que tu pourrais y trouver, t’inquiète pas c'est pour ton bien…

  • [^] # Re: Comment ça se passe pour les badges?

    Posté par  (site web personnel) . En réponse à la dépêche Badges VIP pour le prochain salon Solutions Libres & Open Source 2013. Évalué à 1.

    Merci

  • # Comment ça se passe pour les badges?

    Posté par  (site web personnel) . En réponse à la dépêche Badges VIP pour le prochain salon Solutions Libres & Open Source 2013. Évalué à 2. Dernière modification le 18 mai 2013 à 13:31.

    Bonjour,

    J'ai remplis en temps et en heure le dit formulaire. Mais j'ai eu aucune information de la suite. Si tout est ok, si je vais bien recevoir le badge etc …

    Merci pour vos réponse

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

    Posté par  (site web personnel) . En réponse à la dépêche État des jeux sous Linux. Évalué à 0.

    Le D c'est bien :-) - article linuxfr à ce sujet

    Franchement c'est un super langage et j'en ai essayé des langages. Je me suis arrété sur le D qui est mon langage favori.

  • # Sondage!

    Posté par  (site web personnel) . En réponse au sondage Machines à café. Évalué à 7. Dernière modification le 19 décembre 2012 à 16:37.

    J'adore les sondages qui avant de voter:

    Stop

    Attends lit d'abord mon petit topo.

    Au fur et à mesure de la petite histoire, tu sens que c'est très orientés en vu de donner un certains type de réponse ….

    Puis tu lis le sondage…

    La majorité des réponses sont à connotation négatives mais pas celles mis en avant par l'auteur …

    genre :

    Café instantané… j'ai honte.

    ou encore:

    Cafetière italienne… j'adore me bruler en buvant mon café

    mais pour la réponse que l'auteur souhaite tu as:

    Machine expresso avec broyeur à grains… Tu m'as convaincu

    Bref certains nous prennent pour plus idiot que ce que l'on est….

  • # Warzonne2100 et 0 A.D

    Posté par  (site web personnel) . En réponse à la dépêche Les avancées des jeux pour GNU/Linux au mois d’octobre. Évalué à 2.

    afin de compléter il y a également:
    - warzone 2100 va sortir prochainement la version 3.1, la beta et disponible: http://wz2100.net/
    c'est un jeu de stratégie en temps réel futuriste dans les années 2100
    - 0 A.D va sortir prochainement la version alpha 12 http://www.wildfiregames.com/0ad/
    le jeu est en alpha car pas toutes les fonctionnalité sont présentes toutefois le jeu est stable et on prends du plaisir a jouer entre amis. C'est un jeu de stratégie en temps réel das les années 0, reprenant les différentes civilisations majeur de l'époque

  • [^] # Re: dommage

    Posté par  (site web personnel) . En réponse au journal The Future of Functional Programming Languages. Évalué à 1. Dernière modification le 23 octobre 2012 à 01:24.

    avec les options d'optimisations:
    D:

    allocation: 16 ms, 768 μs, and 5 hnsecs 
    random: 11 ms, 765 μs, and 4 hnsecs 
    result: 46654920000
    scalar products: 5 secs, 358 ms, 999 μs, and 7 hnsecs 
    
    

    CPP:

    allocation: 3 ms
    random generation: 8 ms
    result: 29248300000
    time: 3489 ms
    
    

    le programme cpp est légèrement plus rapide toutefois le code est stricto sensu le code cpp ce qui introduit un biais car le code D fournit :

    • réalloue à chaque tour de bloc la taille du tableau!!
    • Le tableau pourrait être statique afin de pouvoir utiliser les instructions SSE4
    • l'approche fonctionnelle avec notamment map aiderait sensiblement les performances
    • N devrait être immutable
    • size_type devrait être size_t pour supporter 32 et 64 bits
    • les param de scalar_product :
      • changer const ref en in
      • mettre la fonction comme pure

    et j'en passe
    Un même code peut être transcrit presque litterralement dans plusieurs langage cependant il y a des subtilités qui vont produire des différences significatives

  • [^] # Re: dommage

    Posté par  (site web personnel) . En réponse au journal The Future of Functional Programming Languages. Évalué à 1. Dernière modification le 23 octobre 2012 à 00:36.

    Edit mauvais copier / coller

    j'ai testé le code cpp et le temps est quasi identique

    D:

    ./bench 
    allocation: 14 ms, 773 μs, and 4 hnsecs 
    random: 15 ms, 373 μs, and 3 hnsecs 
    result: 90239760000
    scalar products: 24 secs, 57 ms, 317 μs, and 4 hnsecs
    
    

    CPP:

    ./bench 
    allocation: 10 ms
    random generation: 14 ms
    result: 29248300000
    time: 42272 ms
    
    

    J'ai pas touché au programme donnée (donc pas d'optimisation) et en D on met entre 24-28 sec alors que le cpp met environ 40 sec.

  • [^] # Re: dommage

    Posté par  (site web personnel) . En réponse au journal The Future of Functional Programming Languages. Évalué à 1. Dernière modification le 23 octobre 2012 à 00:26.

    j'ai testé le code cpp et le temps est quasi identique

    D:

    allocation: 19 ms, 216 μs, and 6 hnsecs 
    random: 17 ms, 274 μs, and 4 hnsecs 
    
    

    CPP:

    allocation: 18 ms
    random generation: 15 ms
    result: 29248300000
    time: 42128 ms
    
    

    de plus faire un bench sur quelques ms a aucun sens

  • [^] # Re: dommage

    Posté par  (site web personnel) . En réponse au journal The Future of Functional Programming Languages. Évalué à 2. Dernière modification le 22 octobre 2012 à 15:36.

    D n'est pas vala

    de plus D à toutes les optimisation de gcc ou llvm je ne sais pas ce qu'il en est de intel.

    De surcroit avoir une performance équivalente au c++ sans ça complexité en fait un langage très intéressant. Réussir une telle performance avec un garbage collector je dis chapeau. Pas la peine de troller sur le gc si vous n'avez pas essayé hein (je commence à avoir l'habitude des troll d'idée toutes faites erronées).

    A part le typage des données il n'est pas plus complexe que ces langage de script homologues .

    Bref le D est très séduisant avis d'une personne qui l'utilise régulièrement ( ce qui est censé avoir plus de valeur que n'importe quel troll ou celui qui a testé en l'an 40) .

    Je précise pour les indécis ;-) ce langage a de forte chance de vous plaire.

  • [^] # Re: dommage

    Posté par  (site web personnel) . En réponse au journal The Future of Functional Programming Languages. Évalué à 1.

    Le D c'est bien :-)

    allie agréablement performance, productivité, maintenance

    approche du paradigme fonctionnelle plus que convenable ce n'est pas pour autant un langage fonctionnelle pur car le développeur pioche dans le paradigme le plus approprié pour effectué son travail.

    Donc si vous voulez du fonctionnelle pur et dur passez votre chemin pour tous les autres ce langage mérite le coup d’œil.

    Je me permet de mettre la présentation du D lors du FUDcon Paris 2012 FUDCon_D_programming.pdf

  • # objectivité vs passion

    Posté par  (site web personnel) . En réponse à la dépêche Xfce, Gnome, Ubuntu, Linux et Debian sont dans le Nautilus.... Évalué à 0. Dernière modification le 20 août 2012 à 17:23.

    Bonjour,
    Je pense qu'il serai bon d'arrêté de faire de la polémique sur fond de polémique. La discussion ainsi que les différents commentaires sont remplit de passion. Empêchant des débats constructif. Combien même, ces discussions sont voué à faire du surplace et à augmenté les velléités. A part de se bourrer le crâne mutuellement je ne vois pas l'intérêt.
    S vous croyez faire avancer quelques chose ici par ces discussions vous vous trompez.
    Mettez vous à contribuez dans GNOME et vous pourrez vous faire entendre. La multiplicité des fork est une force dans linux mais aussi un moyen d'affaiblissement des forces usez en a bonne escient.

  • # vu que l'on parle du prompt

    Posté par  (site web personnel) . En réponse à la dépêche Un prompt bash utile, sans poudre aux yeux. Évalué à 1. Dernière modification le 09 juillet 2012 à 15:49.

    J'ai constaté un comportement bizarre si j'utilise:

    PS1="\033[1;32m\u\033[0;0m \$"
    
    

    Et pas quand j'utilise en plus \! comme:

    PS1="[ \! ] \033[1;32m\u\033[0;0m \$"
    
    

    Le soucis et que dans le 1er cas lorsque j'utilise les flèches haut bas pour naviguer dans l'historique il y a des lignes qui se superpose. j'ai essayer de jouer avec les séquences d'échappement ANSI pour positionner le curseur et supprimer ceux qui suivait mais un peu trop complexe à gérer pour un simple prompt. Je sais pas si je suis le seul avec ce soucis.

  • [^] # Re: void et les templates?

    Posté par  (site web personnel) . En réponse à la dépêche Le langage D. Évalué à 2.

    les pointeurs existe en D pour permettre d'interfacer avec du code C principalement. Ainsi il est assez rapide de faire une interface d'une bibliothèque C en D. Par exemple j'ai fait une interface pour x11 et fastcgi en quelques jour.

  • [^] # Re: Y'a-t-il encore besoin de nouveaux langages "bas niveau"?

    Posté par  (site web personnel) . En réponse à la dépêche Le langage D. Évalué à 2.

    La bibliothèque standard Phobos possède évidement une fonction pour calculer la valeur min ou la valeur max mais en plus elle fournit un module std.algorithm permettant d'obtenir suffisamment de souplesse et de performance pour faire ce que l'on veux. Par exemple si tu veux filtrer le résultat de la valeur min afin qu'elle soit supérieur à 0 utilise la fonction filter (suit le lien pour voir les exemples)

  • [^] # Re: Y'a-t-il encore besoin de nouveaux langages "bas niveau"?

    Posté par  (site web personnel) . En réponse à la dépêche Le langage D. Évalué à 2. Dernière modification le 13 juin 2012 à 14:54.

    certains disent du mal de ce qui ne comprennent pas l'intérêt. Toujours est il pure, nothrow ont optionnelles. Ils permettent des optimisations pouvant avoir un gain important de performance. Vous pouvez donc ne pas les utiliser.

  • [^] # Re: void et les templates?

    Posté par  (site web personnel) . En réponse à la dépêche Le langage D. Évalué à 1. Dernière modification le 13 juin 2012 à 12:11.

    je crois pas que tu puisse faire ça directement:

     auto c2 = new lot!(void, void )(&f2, cast(void)5);
    
    

    car ceci n'est pas autorisé:

    void x;
    
    

    void est utilisé seulement les types de retour de fonction.

    si x est une fonction alors c'est:

    void function() x
    
    

    maintenant si P est une fonction de type type void dans ce cas c'est possible. En D il y a quelque truc en plus par rapport au C++ alors peut être que ceci pourrait convenir: fonction et closures.

  • [^] # Re: void et les templates?

    Posté par  (site web personnel) . En réponse à la dépêche Le langage D. Évalué à 1. Dernière modification le 13 juin 2012 à 02:12.

    dans ton exemple il me semble que tu as oublier de donner le second paramètre au constructeur de slot pour le premier c'est facile quand au second j'attends que tu complète j'imagine une fonction ?

    En attendant voila un début en D

    import std.stdio;
    
    struct slot(T,P) {
      public:
        alias T take;
        alias P pass;
        alias T function(P) callback;
    
        this (callback _f, pass _x){
            f = _f;
            x = _x;
        }
    
        T opCall() { return f(x); }
      private:
        callback f;
        pass x;
    };
    
    int f1(int x) {
       return x;
    }
    
    void f2() {}
    
    void main(){
        auto c1 = slot!(int , int)(&f1, 5);
        writeln( c1() );
    }
    
    
    ldc2 slot.d
    $ ./slot 
    5
    
    
  • [^] # Re: cross compilation

    Posté par  (site web personnel) . En réponse à la dépêche Le langage D. Évalué à 1.

    Après vérification avec l'uspstream le compilateur ldc supporte doit fonctionner avec mingw. Comme il a dit dit si ce n'est pas le cas, vous êtes les bienvenues pour reporter le problèmes

  • [^] # Re: cross compilation

    Posté par  (site web personnel) . En réponse à la dépêche Le langage D. Évalué à 2.

    oui je suis partis dans autre chose désolé
    donc la cross-compilation devrait se faire prochainement via mingw et gcc 4.8 qui intégrera le compilo gdc

  • [^] # Re: cross compilation

    Posté par  (site web personnel) . En réponse à la dépêche Le langage D. Évalué à 2. Dernière modification le 11 juin 2012 à 18:19.

    Tout d'abord dans 90% des cas, si ce n'est plus, tu n'as pas a t'occuper du système d'exploitation car la bibliothèque standard s'en occupe pour toi. Si toutefois tu as ce besoin il y a la compilation conditionnelle. Bref exemple:

    import std.stdio;
    
    void main(){
        version(Windows){
            ....// code pour windows
        }
        version(Linux){
            ....// code pour linux
        }
        else{
            ....// code pour autres cas
        }
    
    }
    
    
  • [^] # Re: Y'a-t-il encore besoin de nouveaux langages "bas niveau"?

    Posté par  (site web personnel) . En réponse à la dépêche Le langage D. Évalué à 4. Dernière modification le 11 juin 2012 à 15:37.

    Je me permet de rebondir sur ton commentaire. En D tu as une méthode qui permet d'ajouter des éléments a un tableau par une syntaxe similaire a ce que tu décris. L'avantage c'est qu'elle est plus efficace qu'une suite de concaténation.

    import std.stdio;
    import std.array;
    
    void main( ){
        int[] a = [0, 1, 2];
        auto app = appender(a);
        app.put(3);
        app.put(4);
        app.put(5);
        app.put([6,7,8,9]);
        a = app.data;
        writeln( a );
    }
    
    
    $ ldc2 tab.d
    $ ./tab 
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]