Zylabon a écrit 1384 commentaires

  • [^] # Re: Freenet

    Posté par  . En réponse au journal Bookmark: Un utilisateur de Retroshare condamné pour avoir relayé une copie d'une œuvre copyrightée. Évalué à 1.

    Pour les dev freenet, la sécurité de l'utilisateur est le critère numéro 1.

    Je pense pas me planter en affirmant que ça n'arrivera jamais.

    Please do not feed the trolls

  • [^] # Re: Plusieurs solutions.

    Posté par  . En réponse au message Ouvrir windows . Évalué à 2.

    Sinon, il y a la logithèque, je suppose qu'elle est aussi présente dans mint. Dans toutes les distributions GNU/Linux moderne, il y a des centaines voir des milliers de logiciels qui peuvent être installés en quelques cliques.

    Please do not feed the trolls

  • [^] # Re: "Tail call optimization"

    Posté par  . En réponse au journal Chantonnons en récursion . Évalué à 2.

    En Haskell c'est rigolo aussi :

    -- love.hs
    love  = blood
    blood = head
    head  = love
    
    main = love
    
    
    > ghc -XNoImplicitPrelude  love.hs
    > ./love
    love: <<loop>>
    
    

    Par contre la version suivante boucle :

    import Prelude ((>>), return)
    love  =  blood
    blood = head
    head = return () >> love
    
    main = love
    
    

    C'est plus « naturel » comme comportement, main étant de type IO (), l'inférence de types remonte jusqu’à head et le trouve de type IO () aussi, et donc l’évaluation de return () est stricte (love en a besoin).

    Please do not feed the trolls

  • [^] # Re: "Tail call optimization"

    Posté par  . En réponse au journal Chantonnons en récursion . Évalué à 2.

    L'optimisation de queue consiste à simplement mettre à jour les arguments de des argument dans la pile et à faire un jump sur la première instruction de la fonction au lieux de les empiler une nouvelle fois et de faire un call.
    Là, il n'y a pas une fonction, mais trois. C'est pas possible de faire tourner ça sur place (il n'y a qu'un seul sommet de pile). Sauf si gcc remarque que ce code est compilable sans récursion, ce qu'il fait (gcc 4.7 avec -O2, les fonctions a, b et c sont là pour l’empêcher « d'optimiser » le programme en "while(1);"

    head:
        subq    $8, %rsp
        xorl    %eax, %eax
        call    c
        addq    $8, %rsp
        jmp love #au lieu de faire un appel récursif. 
    
    blood:  
        subq    $8, %rsp
        xorl    %eax, %eax
        call    b
        addq    $8, %rsp
        jmp head
    
    love:   
        subq    $8, %rsp
        xorl    %eax, %eax
        call    a
        addq    $8, %rsp
        jmp blood
    
    

    Please do not feed the trolls

  • [^] # Re: Il ne faut pas confondre l'innovation et le progrès.

    Posté par  . En réponse au journal De l'inéluctable progrès de l'informatique, ou pas.. Évalué à 10.

    Quand on a renoncé à contrôler la version du logiciel exécutée sur sa machine, effectivement, c'est mort (la régression s'est faite au moment de ce renoncement).

    Please do not feed the trolls

  • # Il ne faut pas confondre l'innovation et le progrès.

    Posté par  . En réponse au journal De l'inéluctable progrès de l'informatique, ou pas.. Évalué à 1.

    Tout est dans le titre.

    Quand la mise à jour d'un logiciel sort et qu'elle apporte des régressions majeures, on garde la vielle version. Pourquoi ne pas généraliser cette technique d'une efficacité stupéfiante ?

    Please do not feed the trolls

  • [^] # Re: Un peu d'humour

    Posté par  . En réponse à la dépêche Retard++ de Fedora 18 et nom de code quantique pour la version 19. Évalué à 3.

    On me l'avait décrit comme ça une fois :

    Il y a plein de personne dans une salle, l'une d'elle sort, attend un peu et revient, et questionne ensuite les autres pour savoir ce qu'ils se sont raconté

    • En physique classique : Les gens resté dans la salle se raconte une histoire et répondent ensuite aux question de l'expérimentateur

    • En physique quantique : Les gens resté dans la salle ne se racontent rien. Quand l'expérimentateur pose des questions, ils répondent ce qu'ils veulent de manière à ce que l'histoire racontée reste cohérente.

    Please do not feed the trolls

  • [^] # Re: Scala

    Posté par  . En réponse au journal Adopter un style de programmation fonctionnel. Évalué à -1.

    Et pour les futur fans du lisp, fuyez CommonLisp. Scheme, Clojure,… Les jolis Lisp c'est pas ce qui manque. Le seul truc sympa à faire en CL c'est un musée des horreurs.

    Please do not feed the trolls

  • [^] # Re: 21ème siècle

    Posté par  . En réponse au journal Vidéo montage de la conférence de Richard Stallman à la HEB-ESI, le 28 septembre 2012. Évalué à 2.

    +1 pour le torrent

    Très chouette initiative, et très chouette moyen de faire la promotion d'un réseau (obsolète ?). Cependant, je ne me vois pas faire tourner un logiciel de plus.

    Bittorent est quand même très décentralisé (avec la possibilité d'avoir plusieurs tracker).

    Please do not feed the trolls

  • [^] # Re: Non.

    Posté par  . En réponse à l’entrée du suivi Limitation à la création de journaux aux comptes qui ne viennent pas juste d'être créés. Évalué à 1 (+0/-0).

    Ben non, 0, ça ne fonctionne pas comme ça.

    Personnellement "quel site pourri" c'est ce que je me dis quand je tombe sur un blog où il faut s'inscrire pour laisser un commentaire, et je ne m'inscris jamais. Je pense qu'il y en aurait pas mal oui. La personne n'aurait aucune raison de patienter une journée, c'est même pas une pratique répandue, il ne comprendrait probablement même pas pourquoi (en tenant le même raisonnement que ci-dessus).

    Please do not feed the trolls

  • [^] # Re: Un milliard pour le fisc

    Posté par  . En réponse au journal Du beau french bashing sur les sites anglophones à propos de la taxe Google !. Évalué à 1.

    Je me répond à moi même pour vous donner un autre lien à ce sujet :

    http://owni.fr/2012/10/31/12-milliards-google-irlande-fisc-redressement/

    Please do not feed the trolls

  • [^] # Re: bah...

    Posté par  . En réponse au journal Du beau french bashing sur les sites anglophones à propos de la taxe Google !. Évalué à 10.

    Ouai… les français ont du mal avec les États qui pratiquent la torture.

    Please do not feed the trolls

  • # Un milliard pour le fisc

    Posté par  . En réponse au journal Du beau french bashing sur les sites anglophones à propos de la taxe Google !. Évalué à 8.

    Bien moins ridicule, parce que ça serait bien que google paye des impôts. Bon, aucun intérêt privé la dedans, et c'est peut être là le problème.

    http://www.lemonde.fr/technologies/article/2012/10/30/le-fisc-francais-pourrait-reclamer-un-milliard-d-euros-a-google_1783397_651865.html

    Please do not feed the trolls

  • # Un solution grossière pour un problème inexistant.

    Posté par  . En réponse au journal De la finalité du système de notation. Évalué à 6.

    J'ai pas grand chose à dire, ce débat me désespère. Je ferais juste remarquer que la charge de la preuve à été renversée dans cette histoire, et donc que la raison s'en est allée.

    PS : une petite chose quand même. L'argument du « Ceux qui sont contre sont ceux qui ont souffert du système de notation » est ridicule de deux manière. La première c'est qu'on peut être bien souffrir de quelque chose et être contre, c'est parfaitement légitime. La seconde, il y de nombreuses personnes dans le monde qui se battent contre des choses dont ils ne sont pas victimes directement. Ça s'appelle de l'empathie, de l'altruisme, de la droiture, c'est humain.

    Please do not feed the trolls

  • # La Hadopi soucieuse de l'image qu'elle donne…

    Posté par  . En réponse à la dépêche Revue de presse de l’April pour la semaine 43 de l’année 2012. Évalué à 5.

    C'est à mourir de rire. Si le ridicule tuait la Hadopi ferait passer Duncan McLeod pour un bouffon.
    Nan, sérieusement, c'est bidon, ils osent tout.

    Please do not feed the trolls

  • [^] # Re: Nouveau : vraiment opérationnel

    Posté par  . En réponse à la dépêche Entretien avec Martin Peres, développeur Nouveau. Évalué à 1.

    D'ailleurs il me semble que si le moteur est était libre, le mod lui ne l'était pas. Donc c'était effectivement pas le dernier.

    Please do not feed the trolls

  • [^] # Re: Nouveau : vraiment opérationnel

    Posté par  . En réponse à la dépêche Entretien avec Martin Peres, développeur Nouveau. Évalué à 4.

    J'ai adopté nouveau avec fedora 15 si je me souviens bien.
    C'était la première version qui me permettait de jouer à urban terror correctement (et je me suis du coup débarrassé du dernier blob de mon système).
    Je suis tout à fait stupéfait par le fait que les performances du driver nvidia et nouveau soient comparable. Je me souviens d'une époque où il y avait deux ordre de grandeurs d'écart.

    Chapeau ! Il ne manque qu'OpenCL du coup ?

    Please do not feed the trolls

  • [^] # Re: Ben, non, pas vraiment…

    Posté par  . En réponse au message Paradigme fonctionnel : juste un habillage ?. Évalué à 4.

    Une autre différence assez fondamentale (propre à haskell) est que cette fonction fonctionne sur les flux infinis, au moment où la première ligne "ceci est une chaine" est imprimée sur l'écran, concat ["e même trop lo","ngue ! … n'a toujours pas été évalué.

    Please do not feed the trolls

  • [^] # Re: Ben, non, pas vraiment…

    Posté par  . En réponse au message Paradigme fonctionnel : juste un habillage ?. Évalué à 3.

    format :: Int -> String -> [String]
    format n s = let format' [] = []
                     format' wds = let (d,fin) = aux n wds
                                   in (unwords d) : format' fin
                 in  format' $words s
                    where 
                      -- aux retourne un couple (premiere ligne, reste du texte)
                      aux c [] = ([],[])
                      aux c (w:wds) = let lw = length w 
                                      in if c - lw - 1 < -1
                                         then  ([],w:wds)
                                         else let (d,fin) = aux (c - lw - 1) wds
                                              in (w:d,fin)
    
    main = putStr $ unlines  $ format 20 $ concat [   
      "Ceci",
      " est un",
      "e chaine assez ",
      "longue, voir",
      "e même trop lo",
      "ngue ! Tellement longue que l'on peut se demander si elle va tenir !",
      " sur une seule ligne"]
    
    

    J'ai un peu galéré pour compter les espaces… et évité les trucs très propre à haskell. Il y a très forcement une solution bien plus élégante. Mais ce code est pur, et donc est possible de faire format10 = format 10 et d'utiliser cette fonction de manière concurrente.

    Please do not feed the trolls

  • # Ben, non, pas vraiment…

    Posté par  . En réponse au message Paradigme fonctionnel : juste un habillage ?. Évalué à 2.

    C'est rigolo comme approche. Effectivement, le comportement d'un code objet est parfaitement émulé.
    Ce code est très impératif. La fermeture utilisée pour instancier une classe, généralement on s'en sert pour aider le compilo à ne pas évaluer une expression deux fois, ou partager une fonction partiellement appliquée (par exemple pour ne compiler qu'une fois une expression régulière) et l'appliquer ensuite sur plein de chaines).
    Le pattern matching concrètement c'est pas différent d'un filtrage avec des instanceof en java, c'est juste beaucoup beaucoup plus sucré. La syntaxe primitive est le match foo with | bar => 3 | baz => 1 | …

    Une approche fonctionnelle pourrait consister à construire les lignes récursivement en piochant dans une liste et en décomptant les caractères.

    Ça c'est une variable privée :
    let buffer = Buffer.create length

    Oui et non, buffer n'est pas une variable, c'est une déclaration. Seulement la valeur attachée à buffer, elle, est une variable, et n'a rien de fonctionnel. Ça viole la transparence référentielle.

    fonctionnel/objet ne sont que des représentations d'un même code

    Ça dépend comment on défini "même code", parce que par exemple, pour la factorielle entre
    acc = 1; while(n) acc *= n--;
    et
    (\f.\x.f(x x) \x.f(x x)) (\f.\n.if n == 0 then 1 else n * f (n-1)) n
    il y a un monde.
    Dans certains langages de programmation fonctionnel, c'est vraiment la seconde version qui est exécutée. Il y a le graphe de l'expression qui est construit dans le tas et l'évaluation se fait en réduisant ce graphe.

    D'autre part j'ai tendance à penser que LA caractéristique des langages fonctionnels, aussi importante que la récursivité est la pureté. L'idée c'est d'écrire des maths dans un programme et que l'ordinateur les mouline.

    est-ce que mon interrogation est naïve, et je ne fait que constater des évidences, ou bien est-ce moi qui suis trop imbibé de code objet et n'ai pas réussi à m'en détacher ?

    OCaml est un langage multi-paradigme. Avec Haskell par exemple il est impossible d'écrire ce genre de chose sans encapsulation.

    Please do not feed the trolls

  • # Captain obvious

    Posté par  . En réponse au journal Arguments et mensonge. Évalué à 9.

    Derrière chaque mensonges il y a un menteur. dire « L'ennemi c'est le mensonge » c'est dire « Ce ne sont pas les armes à feu qui tuent, ni les soldats, se sont les balles »

    Je comprend le propos. Il est fondamental de garder la quette de vérité au cœur de tout débats, mais faut pas oublier qui la maltraite.

    Please do not feed the trolls

  • [^] # Re: guerre de voyous

    Posté par  . En réponse au journal Google menace de déréférencer la presse française.. Évalué à -1. Dernière modification le 20 octobre 2012 à 13:50.

    Parce que déréférencer le site web d'un journal, ils l'ont déjà fait (pour une histoire comparable avec un journal belge), et que le taux de fréquentation du site en question à chuté de 60% (de mémoire). C'est triste mais c'est un fait, un site qui n'est pas référencé par Google, c'est un site avec les jambes pétés.

    Bref : qui a besoin de qui?
    Google a besoin de contenu, et la presse à besoin d'indexation. C'est une symbiose. Maintenant, Google est bien plus solide, et la presse est parait-il en difficulté.

    Please do not feed the trolls

  • # guerre de voyous

    Posté par  . En réponse au journal Google menace de déréférencer la presse française.. Évalué à 5.

    La presse tente de racketter google avec un argumentaire douteux. Google réplique en menaçant de leur péter les jambes avec une barre à mine.
    C'est pas évident de prendre parti pour l'un ou l'autre…

    Please do not feed the trolls

  • # Les idées d'applications me semblent très très très optimistes

    Posté par  . En réponse au journal Ramesh Raskar et l’imagerie à un trillion d’images par seconde.. Évalué à 3. Dernière modification le 17 octobre 2012 à 23:29.

    Les capteurs d'aujourd'hui ont déjà en rendement quantique excellent, il y a peu d'amélioration à espérer. Même avec un rendement quantique de 1, un objectif parfait, et en admettant que l'on dispose une puissance de calcul infinie. Est-ce qu'il est raisonnable d'imaginer appliquer cette technique en temps réel, et en plein jour ?

    Je veux dire que les expériences sont faites avec énormément de tirs dans le noir complet, pour avoir une quantité suffisante de données à traiter. La barrière pour sortir de ce cadre semble être physique, pas technologique.

    Please do not feed the trolls

  • # du fonctionnel immuable

    Posté par  . En réponse au message Quel langage pour initier un enfant de 10 ans à la programmation. Évalué à 1.

    Parce que c'est pas possible d'expliquer ce genre de choses :

    void f(int c){
     c = 0;
    } // ne fait rien
    void f(int c[]){
     c[0] = 0;
    } // fait quelque chose
    
    

    Sans entrer dans les détails de l’adressage "alors tu vois, ce "c" c'est un entier, et ce tableau "c" c'est en fait l'adresse d'une série d'entiers mis bout à bout en mémoire"…
    et les "alors, quand on appelle une fonction, les arguments sont copiés puis empilés, blablabla porté lexicale … copies locales modifiées sans effet de bord" avec la syntaxe let in c'est vachement plus simple.

    En fait, ça dépend s'il s'agit d'apprendre la programmation ou apprendre à programmer un ordinateur, C paraitrait très indiqué dans ce cas (syntaxe simple, relativement homogène, et langage proche de la machine).

    Please do not feed the trolls