Blackknight a écrit 1234 commentaires

  • [^] # Re: Le chieur

    Posté par  (site web personnel, Mastodon) . En réponse au journal Portage de TapTempo en Bash. Évalué à 2.

    Tant qu'il y a la gestion des options et un comportement identique à la version C++… :)

  • [^] # Re: Portage ?

    Posté par  (site web personnel, Mastodon) . En réponse au journal Portage de TapTempo en Bash. Évalué à 5.

    C'est dans la lignée des deux précédents.

    Pour l'instant, il n'y a que la version Perl, la version Rust et, sans vouloir me lancer de fleurs, la mienne qui respectent un tant soit peu la version d'origine

  • # Le chieur

    Posté par  (site web personnel, Mastodon) . En réponse au journal Portage de TapTempo en Bash. Évalué à 6.

    Je vais encore faire mon chieur mais pour quasiment les mêmes raisons que les portages Python et Javascript, ce n'est pas un portage de l'application d'origine.

    En plus, personnellement, j'ai passé plus de temps que dix minutes pour coder l'application en respectant l'implémentation d'origine et nettement plus de temps que dix minutes à écrire le journal.
    Il aurait été très facile de faire un code quick and dirty comme celui qui sort sur les derniers journaux. Nul besoin de se prendre la tête à intégrer des libs pour la gestion des options, de prendre soin de découper le projet en unités logiques…

    On est donc très loin de l'idée de mon journal dont le but était didactique en montrant ET expliquant une implémentation identique dans un autre langage.

  • [^] # Re: Périmètre différent

    Posté par  (site web personnel, Mastodon) . En réponse au journal Portage de TapTempo en Python (2.7). Évalué à 1.

    Je pense que j'aurai passé plus de temps à tenter de le faire s’exécuter

    Franchement, ça se compile comme un charme sur une Ubuntu 17.10 et je pense qu'il n'y a aucune différence sur les autres distributions.

    et à comprendre son fonctionnement,

    C'était pourtant là toute la beauté du geste, comprendre ce qui est fait dans un langage pour réussir à le réécrire dans ton langage préféré et montrer ainsi les avantages et inconvénients de chacun.

    que de re-coder "qqchose de similaire"

    Du coup, similaire, pas identique donc ce n'est pas un portage

  • [^] # Re: ma version en python 2.7 ;-)

    Posté par  (site web personnel, Mastodon) . En réponse au journal Portage de TapTempo en Perl. Évalué à 3.

    Qui plus est, le programme ne fonctionne pas de la même façon.
    Il ne permet pas de paramétrer la taille de la file, le temps de timeout avant de recommencer le calcul et la précision de l'affichage.

    En clair, il en manque.

  • # Périmètre différent

    Posté par  (site web personnel, Mastodon) . En réponse au journal Portage de TapTempo en Python (2.7). Évalué à 4.

    Je pense que tu devrais faire tourner la version C++ d'origine car ton programme ne fonctionne pas de la même façon.
    Du coup, on ne peut pas vraiment dire que c'est un portage, c'est plutôt un approchant.

  • [^] # Re: Merci !

    Posté par  (site web personnel, Mastodon) . En réponse au journal Portage de TapTempo en Ada. Évalué à 3. Dernière modification le 27 février 2018 à 23:04.

    Et le C date de 1972. Passé de mode ? Je ne crois pas, non.

    Et c'est des fois dommage quand on voit ce que l'on essaye de lui faire faire.

    Le langage Ada a évolué aussi depuis ses débuts. C'est un langage concurrent et orienté objet. C'est pas suranné comme concepts, ça.

    T'inquiètes, tu prêches un converti et connaisseur mais je passe quand même pour un hurluberlu à faire de l'évangélisation Ada.

    En tout cas, la note même de ce journal montre que ce n'est pas si recherché que ça comme langage au moins sur LinuxFr.

  • [^] # Re: Golf

    Posté par  (site web personnel, Mastodon) . En réponse au journal Portage de TapTempo en JavaScript. Évalué à 2.

    Effectivement, le GC introduit un comportement non déterministe et du coup, difficilement quantifiable.

  • [^] # Re: Merci !

    Posté par  (site web personnel, Mastodon) . En réponse au journal Portage de TapTempo en Ada. Évalué à 2. Dernière modification le 27 février 2018 à 21:34.

    Merci pour l'explication.
    D'ailleurs, je préfère la version verbeuse, je la trouve plus lisible ;)

    En tout cas, fais un journal, on verra la cote de chaque langage à la note de celui-ci :)
    Pour l'instant, c'est C++ qui gagne mais je ne doute pas que vu la popularité actuelle de Rust, tu marques des points.

  • [^] # Re: Golf

    Posté par  (site web personnel, Mastodon) . En réponse au journal Portage de TapTempo en JavaScript. Évalué à 5.

    Je pense qu'au même titre que les versions C++, Rust ou Ada, la précision en prend un coup dès que la machine, virtuelle ou non, est trop occupée.

    En plus, les IO sont, comme un terminal, sujettes à la pose de verrous.

  • [^] # Re: Merci !

    Posté par  (site web personnel, Mastodon) . En réponse au journal Portage de TapTempo en Ada. Évalué à 1.

    Puis Ada a été créé en 1980

    Ce qui explique que ce soit largement passé de mode

    c'est un peu verbeux, mais c'est pas ésotérique non plus

    Heureusement, les IDE modernes permettent la completion.

  • [^] # Re: Merci !

    Posté par  (site web personnel, Mastodon) . En réponse au journal Portage de TapTempo en Ada. Évalué à 4.

    Sinon, je suppose que je n'ai pas trop le choix, je devrai écrire un journal sur mon port en Rust :p

    Exactement et personnellement, je l'attends avec impatience :)
    Et surtout n'hésites pas à mettre plein d'explications parce que les macros et les map, ça reste souvent cryptique pour moi :D

    Notamment

    reader
                    .next()
                    .unwrap_or(Ok("q".into()))
                    .map_err(|e| format!("{}", e))
                    .map(|s| s != "q")

    Mais c'est parce que je ne suis pas câblé fonctionnel ;)

  • [^] # Re: Bravo !

    Posté par  (site web personnel, Mastodon) . En réponse au journal Portage de TapTempo en Ada. Évalué à 2.

    Oui. Ainsi, la compilation du code suivant

    procedure Test_Bornes is
       type Precision is range 1 .. 5;
    
       ma_petite_precision : Precision := 0;
       ma_grosse_precision : Precision := 6;
    begin
       null;
    end Test_Bornes;

    renvoie le message suivant

    test_bornes.adb:4:39: warning: value not in range of type "Precision" defined at line 2
    test_bornes.adb:4:39: warning: "Constraint_Error" will be raised at run time
    test_bornes.adb:5:39: warning: value not in range of type "Precision" defined at line 2
    test_bornes.adb:5:39: warning: "Constraint_Error" will be raised at run time
    

    Et à l'exécution, comme prévu et prévenu

    raised CONSTRAINT_ERROR : test_bornes.adb:4 range check failed
    
  • [^] # Re: Bravo !

    Posté par  (site web personnel, Mastodon) . En réponse au journal Portage de TapTempo en Ada. Évalué à 3.

    Merci mais là, mon ego en a pour la journée à s'en remettre :D

  • [^] # Re: 1 de moins

    Posté par  (site web personnel, Mastodon) . En réponse au journal Portage de TapTempo en JavaScript. Évalué à 5.

    Pas d'info de version (balo pour les évolutions futures).

    Ah bah, tiens, il me semblait qu'il y avait un petit truc qui manquait dans mon code, jesuis bon pour une mise à jour :)
    Merci

  • [^] # Re: Bravo !

    Posté par  (site web personnel, Mastodon) . En réponse au journal Portage de TapTempo en Ada. Évalué à 3.

    du coup je n'arrive pas à comprendre où est le code qui permet de mettre par exemple Sample_Size à 1 si celui-ci est 0.
    Une erreur est-elle lancée à la place ?

    Lors de la saisie d'une valeur hors plage, le runtime Ada lance une exception de type CONSTRAINT_ERROR qu'il est tout à fait possible de catcher.
    Ici, il n'est de toutes façons pas possible de saisir, en statique, 0 pour la précision ou le timeout, le compilateur annoncera la levée d'exception dans un warning ces derniers étant des types dont la première valeur est 1.

    Dans le cas de ce programme, le filtrage des valeurs incorrectes est remonté à la gestion des options. Ainsi, le code suivant fournit tout ce qu'il faut pour gérer les valeurs hors plage :

    procedure Prepare_Options(Parser : out Argument_Parser) Is
       begin
          -- Options creation
          Parser.Add_Option(Make_Boolean_Option (False), "help", 'h', Usage =>
                  "display this help message");
          Parser.Add_Option(Options.Precision_Option.Make_Option, Precision_Option_Name, 'p', Usage =>
                  "set the decimal precision of the tempo display, default is 5 and max is " &
                  Precision'Image (Precision'Last));
          Parser.Add_Option(Make_Positive_Option (5), Reset_Time_Option_Name, 'r', Usage =>
                  "set the time in second to reset the computation. default is 5 seconds");
          Parser.Add_Option(Make_Positive_Option (1), Sample_Size_Option_Name, 's', Usage =>
                  "set the number of samples needed to compute the tempo, default is 1 sample");
          Parser.Set_Prologue ("An Ada version of taptempo.");
    end Prepare_Options;

    Dans le cas simple du type Positive, c'est l'appel à Make_Positive_Option qui gère tout seul, enfin dans la lib Parse_Args, les valeurs hors-plage.
    C'est rendu possible par le fait que les types embarquent leur bornes (par exemple Precision'Last retourne la dernière valeur valide du type Precision.

  • # Petit oubli

    Posté par  (site web personnel, Mastodon) . En réponse au journal Portage de TapTempo en Ada. Évalué à 4.

    Bon, j'ai oublié de dire que je n'ai pas fait la partie internationalisation, histoire de vous fournir rapidement un truc à vous mettre sous la dent ;)

    Du coup, entre l'absence d'internationalisation et de licence dans chaque fichier, il manque forcément quelques lignes dans les stats qui suivent

    Version 1

     cloc .
          11 text files.
          10 unique files.
           4 files ignored.
    
    github.com/AlDanial/cloc v 1.70  T=0.06 s (127.7 files/s, 3957.3 lines/s)
    -------------------------------------------------------------------------------
    Language                     files          blank        comment           code
    -------------------------------------------------------------------------------
    Ada                              5             39             13            168
    Markdown                         3              9              0             19
    -------------------------------------------------------------------------------
    SUM:                             8             48             13            187
    -------------------------------------------------------------------------------
    

    Version 2

    cloc .
          11 text files.
          10 unique files.
           4 files ignored.
    
    github.com/AlDanial/cloc v 1.70  T=0.05 s (155.1 files/s, 4244.9 lines/s)
    -------------------------------------------------------------------------------
    Language                     files          blank        comment           code
    -------------------------------------------------------------------------------
    Ada                              5             34              9            148
    Markdown                         3              9              0             19
    -------------------------------------------------------------------------------
    SUM:                             8             43              9            167
    -------------------------------------------------------------------------------
    

    Bon, le gain est pas énorme :D

  • [^] # Re: Petite question d'implémentation

    Posté par  (site web personnel, Mastodon) . En réponse au journal Un tap tempo en ligne de commande. Évalué à 4.

    Et voilà, c'est fait :)

  • [^] # Re: Petite question d'implémentation

    Posté par  (site web personnel, Mastodon) . En réponse au journal Un tap tempo en ligne de commande. Évalué à 7. Dernière modification le 22 février 2018 à 14:14.

    Bien sûr et ça devrait faire l'objet d'un journal ici-même ;)
    Au départ, ce sera une implémentation directe de ton code et après, je regarderai pour mettre ça à la sauce Ada.

  • [^] # Re: Petite question d'implémentation

    Posté par  (site web personnel, Mastodon) . En réponse au journal Un tap tempo en ligne de commande. Évalué à 4. Dernière modification le 22 février 2018 à 13:16.

    Merci de l'explication, j'avais pas tout compris effectivement et c'est dommage puisque je me suis amusé à commencer une implémentation à l'identique en Ada ;)
    Du coup, il vaut mieux comprendre :D

    En tout cas, c'est finalement très logique et ça explique bien les paramètres que l'on peut passer.

    Normalement, en Ada, il ne me reste que la gestion des options (autre que le simple argc, argv) et l'internationalisation car ce sont des trucs qu je n'ai jamais bidouillé.

  • # Petite question d'implémentation

    Posté par  (site web personnel, Mastodon) . En réponse au journal Un tap tempo en ligne de commande. Évalué à 5.

    D'abord, félicitations pour ce petit soft bien sympa.
    Ensuite, j'ai une petite question sûrement idiote mais pourquoi as-tu stocké les timestamps de chaque appui de touche pour ne finalement prendre que la première et la dernière valeur et calculer une moyenne ?
    N'était-il pas plus simple de ne garder que le nombre d'appuis et le premier et le dernier horodatage ?
    J'ai dû louper un truc :D

  • [^] # Re: Merci pour ce partage - mais la doc fouque

    Posté par  (site web personnel, Mastodon) . En réponse au journal Publication de bibliothèques c++ sous licence libre. Évalué à 4.

    contrairement au développeur original dont la lecture est biaisée par le contexte de la création du code.

    Ça ne s'applique que lors de la création parce que quand on revient sur du code que l'on a écrit 5 ou 6 ans plus tôt, on se retrouve dans la position de l’œil extérieur et généralement, c'est là qu'on regrette de ne pas avoir été clair

  • [^] # Re: Mentions obligatoires

    Posté par  (site web personnel, Mastodon) . En réponse au journal Freeteuse - Télécommande pour Freebox. Évalué à 3.

    Super, bravo et merci

  • [^] # Re: Mentions obligatoires

    Posté par  (site web personnel, Mastodon) . En réponse au journal Freeteuse - Télécommande pour Freebox. Évalué à 10. Dernière modification le 25 janvier 2018 à 08:11.

    Alors pour le coup, c'est un publi-communiqué ?
    Tant qu'on n'a pas vu le code source et la licence, on a donc un journal noté à plus de 40 pour exposer de la pub !!

    Y a que moi que ça choque de voir ça sur LinuxFr ?

  • [^] # Re: Il faut bien lire ce qu'on lit!

    Posté par  (site web personnel, Mastodon) . En réponse au journal Le retour de la vengeance de la virgule flottante. Évalué à 5.

    beaucoup de programmeurs sont fâchés avec ces concepts difficiles mais doivent faire face au quotidien à des difficultés qui viennent justement de ce manque de compréhension fine des concepts

    Oui alors bon, on va quand même être plus circonspect, on (les informaticiens) a beaucoup d'autres problèmes techniques à résoudre dans la majeure partie des cas avant d'en arriver à se poser des questions d'analyse numérique :D

    PS: Je me suis permis une petite correction de conjugaison sur la citation, "la grande majorité" se trouvant entre parenthèses, j'espère que tu ne m'en voudras pas :D