Morovaille a écrit 29 commentaires

  • [^] # Re: ELM

    Posté par  . En réponse au journal le style fonctionnel en vidéo (nix, nixos, haskell...), la suite.... Évalué à 2.

    J'ai toujours repoussé le moment de me mettre au frontend, mais quand j'ai découvert Elm, ça a été un vrai plaisir ! C'est un langage fonctionnel pur, donc très simple à utiliser et à comprendre. Pour moi, c'est une excellente porte d'entrée pour le frontend.

    Ce commentaire est libre de droit, vous pouvez le réutiliser comme bon vous semble.

  • [^] # Re: Pas forcément commercial

    Posté par  . En réponse au journal Le logiciel libre dont on ne peut utiliser les libertés. Évalué à 1.

    Visiblement, ce n'est pas si simple : https://workplace.stackexchange.com/questions/113345/how-to-stop-an-employee-from-holding-the-company-hostage

    Ce commentaire est libre de droit, vous pouvez le réutiliser comme bon vous semble.

  • # Je suis passé à Gitlab

    Posté par  . En réponse au journal Microsoft rachète Github. Évalué à 10.

    il y a un an maintenant, et je ne le regrette pas. L'interface est plus agréable, tout ce qui est CI est plus ergonomique, etc.

    Ça vaut toujours le coup de tenter l'expérience ;)

    Ce commentaire est libre de droit, vous pouvez le réutiliser comme bon vous semble.

  • [^] # Re: Dépendances

    Posté par  . En réponse au journal Port de taptempo en Rust. Évalué à 4.

    Cet outil existe en Rust, il s'appelle cargo-tree:

    $ cargo tree
    taptempo v0.1.0 (file:///home/boiethios/Programmation/tempotap)                     
    [dependencies]
    ├── circ-queue v0.0.1 (https://gitlab.com/Boiethios/circ-queue.git#886bcbc0)
    └── structopt v0.2.4
        [dependencies]
        ├── clap v2.30.0
        │   [dependencies]
        │   ├── bitflags v1.0.1
        │   ├── textwrap v0.9.0
        │   │   [dependencies]
        │   │   └── unicode-width v0.1.4
        │   └── unicode-width v0.1.4 (*)
        └── structopt-derive v0.2.4
            [dependencies]
            ├── proc-macro2 v0.2.3
            │   [dependencies]
            │   └── unicode-xid v0.1.0
            ├── quote v0.4.2
            │   [dependencies]
            │   └── proc-macro2 v0.2.3 (*)
            └── syn v0.12.13
                [dependencies]
                ├── proc-macro2 v0.2.3 (*)
                ├── quote v0.4.2 (*)
                └── unicode-xid v0.1.0 (*)
    

    Ce commentaire est libre de droit, vous pouvez le réutiliser comme bon vous semble.

  • [^] # Re: Dépendances

    Posté par  . En réponse au journal Port de taptempo en Rust. Évalué à 2.

    Je pense que la comparaison est bonne, oui, ça ressemble à NPM dans le sens où on a plein de petits paquets interdépendants. En fait, c'est même considéré comme idiomatique de découper les grosses libs en crates plus petits, voir par exemple le graphe des dépendances de piston_window qui est un crate pour développer des jeux vidéos.

    Il existe cependant quelques différences importantes :
    - La bibliothèque de crates, crates.io, est officielle et maintenue par la communauté Rust, tandis que NPM n'est qu'un gestionnaire de paquets parmi d'autres, et n'est pas lié à ECMAScript.
    - On ne peut pas modifier ou supprimer un crate publié sous une version. Si je publie mon crate foobar dans sa version 0.1, je ne peut plus le modifier ou le supprimer. Si je veux changer mon crate, je dois publier une version 0.2, sachant que la version 0.1 sera toujours disponible pour la rétrocompatibilité.

    L'autre problème est celui des licences, et effectivement, ça peut être assez labyrinthique. C'est à chaque développeur de faire attention à ce qu'il utilise et à ne pas violer de licence. Mais finalement, le problème est le même quelle que soit la façon de procéder. Quand on inclut une bibliothèque dans un projet C++, on doit aussi faire attention à la licence, même si le téléchargement et la compilation de celle-ci ne se fait pas automatiquement à travers l'outil de build.

    Ce commentaire est libre de droit, vous pouvez le réutiliser comme bon vous semble.

  • [^] # Re: Super !

    Posté par  . En réponse au journal Port de taptempo en Rust. Évalué à 2.

    Pour la traduction c'est presque ça. On n'a pas besoin du return dans la fonction f. On écrira plutôt:

    fn f() -> (i16, String) {
        (3, "Bonjour".into())
    }
    

    Sinon, oui, c'est plus verbeux que Scala, Ocaml, Haskell, etc. puisque les concepteurs du langage ont fait le choix d'utiliser une syntaxe C-esque.

    Ce commentaire est libre de droit, vous pouvez le réutiliser comme bon vous semble.

  • [^] # Re: Super !

    Posté par  . En réponse au journal Port de taptempo en Rust. Évalué à 1.

    J'ai oublié de préciser que |s| s != q est une closure, c'est-à-dire une fonction anonyme. La syntaxe est un peu étrange, mais les paramètres de la fonction se mettent entre deux barres verticales.

    Sinon, le compilateur est capable de tout inférer, donc on n'a pas besoin d'écrire les types de variable. Mais comme l'a dit un autre commentaire, on peut toujours écrire les types si on considère que le code sera plus clair. En l'occurrence, ça me semble plutôt intuitif que front et back retournent une référence sur le début et la fin de la queue. De façon générale (comme dans les autres langages fonctionnels comme Haskell ou Ocaml), on écrit de petites fonctions et on n'annote les variable que dans les (rares) cas où le compilateur a des problèmes d'inférence (typiquement, quand seul le retour d'une fonction est générique).

    Pour rebondir sur le dernier commentaire, il ne faut pas avoir peur du Rust : finalement ça ressemble quand même beaucoup aux langages objets : on a des structures sur lesquelles on implémente des méthodes ; ce qu'on peut voir comme une classe. En revanche, je ne suis pas spécialiste de l'histoire de l'informatique, mais il me semble que les langages fonctionnels sont plus vieux que les langages objets (en tout cas suffisamment vieux pour que n'importe quel dino connaisse :p). Le Lisp existe depuis 1958 selon Wikipédia.

    Ce commentaire est libre de droit, vous pouvez le réutiliser comme bon vous semble.

  • [^] # Re: Un environnement de bureau simple

    Posté par  . En réponse à la dépêche GNOME fête ses 20 ans !. Évalué à 6.

    Exactement pareil, j'ai très peu changé l'expérience de base, et je l'utilise pour mon travail de dev. Il correspond parfaitement à mes besoins, et je suis incapable de me passer de son ergonomie maintenant (surtout le centre de notification et le hot corner avec les fenêtres et bureaux). J'aime vraiment la direction qu'ils ont prise avec GTK3 dans la simplification des menus et le fait d'essayer de mettre sous la main ce dont on a besoin. En revanche, je suis d'accord avec le fait que l'écosystème GNOME n'est pas terminé, il manque des fonctionnalités dans les logiciels, mais c'est une question de ressources, on ne peut pas blâmer l'équipe pour ça.

    Ce commentaire est libre de droit, vous pouvez le réutiliser comme bon vous semble.

  • [^] # Re: Je m'y colle...

    Posté par  . En réponse à la dépêche C++17 branche à la compilation (`if constexpr`). Évalué à 6. Dernière modification le 06 décembre 2016 à 10:05.

    C'est de la programmation fonctionnelle à la compilation. Un bon exemple est la fonction factorielle.

    Tu définis une structure factorial qui dépend d'un paramètre template qui est un entier :

    template <std::size_t N>
    struct factorial
    {
    };

    À l'intérieur tu définis le cas général :

    static constexpr std::size_t value = RangeN * factorial<RangeN - 1>::value;

    constexpr veut dire que c'est calculé à la compilation. C'est faisable puisqu'on a toutes les infos à la compilation. Le code est simple, value est égal au rang actuel multiplié par factorielle du rang moins un.

    Comme dans toute programmation récursive (la programmation fonctionnelle se fait en récursion), il faut une condition d'arrêt :

    template<>
    struct factorial<0u>
    {
      constexpr static std::size_t value = 1u;
    };

    La valeur de factorielle de 0 est un. C'est ici que la récursion s'arrête.

    Un programme complet pour montrer le code :

    #include <iostream>
    
    template <std::size_t RangeN>
    struct factorial
    {
      static constexpr std::size_t value = RangeN * factorial<RangeN - 1>::value;
    };
    
    template<>
    struct factorial<0u>
    {
      constexpr static std::size_t value = 1u;
    };
    
    int main()
    {
      std::cout << factorial<0>::value << "\n";
      std::cout << factorial<4>::value << "\n";
    }

    factorial<0>::value et factorial<4>::value sont connus à la compilation, rien n'est calculé au runtime.

    Cet exemple là n'est pas très utile, mais il existe des cas où ces technique améliorent beaucoup la rapidité du code en précalculant des choses à la compilation. Glander sur http://stackoverflow.com/questions/tagged/metaprogramming%20c%2b%2b peut donner quelques exemples d'application.

    Ce commentaire est libre de droit, vous pouvez le réutiliser comme bon vous semble.

  • [^] # Re: Je m'y colle...

    Posté par  . En réponse à la dépêche C++17 branche à la compilation (`if constexpr`). Évalué à 1.

    Hum, en fait je crois que comme M. Jourdain qui faisait de la prose sans le savoir je faisais de la SFINAE. C'est une des bases de la métaprogrammation en fait, tout simplement. Si on en a fait un tout petit peu, on a forcément exploité cette technique.

    Ce commentaire est libre de droit, vous pouvez le réutiliser comme bon vous semble.

  • [^] # Re: Coquilles

    Posté par  . En réponse à la dépêche surveillance:// Entretien avec son auteur Tristan Nitot et 10 livres à gagner. Évalué à 2.

    Cetera c'est un neutre (comme francilien et lecteur dans le contexte, d'ailleurs, puisque le masculin a rôle de neutre en français). "Et cetera" signifie littéralement "et toutes les autres choses" (neutre pluriel, particularité latine).

    Ce commentaire est libre de droit, vous pouvez le réutiliser comme bon vous semble.

  • [^] # Re: Donc pour résumer…

    Posté par  . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à 3.

    Tout à fait d'accord. J'étais fan de C++, et petit à petit j'en ai vu les problèmes, les limitations, la complexité. Puis j'ai touché au C#, au rust, par exemple. Maintenant, je ne veux plus faire de C++.

    Ce commentaire est libre de droit, vous pouvez le réutiliser comme bon vous semble.

  • [^] # Re: personnalisable (non, là, je plaisante, en revanche) ha bon

    Posté par  . En réponse à la dépêche GNOME 3.22 Karlsruhe : A Land Far, Far Away. Évalué à 1.

    Il y a aussi dconf-editor pour les rares fois où j'ai besoin de changer une chose qui me déplait.

    Ce commentaire est libre de droit, vous pouvez le réutiliser comme bon vous semble.

  • [^] # Re: Intérêt de MATE ?

    Posté par  . En réponse à la dépêche Sortie de MATE 1.16. Évalué à -2.

    Quelles erreurs ? Je pense qu'il faut être de mauvaise foi pour ne pas reconnaître la qualité du travail fourni par l'équipe GNOME (encore une fois, qu'on aime ou pas, ce n'est pas la question). Comme dit plus haut, ils ont fait un formidable travail d'intégration et d'unification pour un résultat qui commence à être de plus en plus reconnu. Le GNOME bashing d'il y a quelques années n'a plus raison d'être, il va falloir le reconnaître.

    Ce commentaire est libre de droit, vous pouvez le réutiliser comme bon vous semble.

  • [^] # Re: Intérêt de MATE ?

    Posté par  . En réponse à la dépêche Sortie de MATE 1.16. Évalué à 2.

    J'ai bien compris. La question était : pourquoi ne pas avoir fait une grosse extension qui modifie le comportement de GNOME 3 et le fait ressembler de base à l'ancien bureau ? Par exemple dans ton cas en désactivant le "hot corner" entre autres.

    Après c'est un peu dommage, mais la philosophie de GNOME 3 n'a pas été comprise : elle consistait à fournir un bureau minimaliste mais fonctionnel, basé sur des choix d'ergnonomie qu'on aime ou on aime pas certes, mais qui peut être plus ou moins modifié à l'aide d'extensions. Tout le monde a ralé sur ces choix de disaïne alors qu'ils sont tout à fait facultatifs.

    Ce commentaire est libre de droit, vous pouvez le réutiliser comme bon vous semble.

  • [^] # Re: Intérêt de MATE ?

    Posté par  . En réponse à la dépêche Sortie de MATE 1.16. Évalué à -2.

    Merci pour ce témoignage qui répond précisément à mon interrogation.

    D'après ce que tu me dis, je pense que l'équipe MATE aurait dû travailler avec GNOME 3 (et donc que réciproquement GNOME 3 aurait dû bosser avec eux) pour que l'équipe GNOME permette une plus grande configurabilité permettant de garder un bureau ressemblant à celui de GNOME 2, ce que l'équipe MATE aurait pû mettre à profit.

    Je persiste à dire que c'est une perte de temps et de ressources qui auraient pu être reportées sur d'autres projets, mais ça doit tenir à des questions de (mauvaise) communication je pense.

    Ce commentaire est libre de droit, vous pouvez le réutiliser comme bon vous semble.

  • # Intérêt de MATE ?

    Posté par  . En réponse à la dépêche Sortie de MATE 1.16. Évalué à 1.

    Si j'ai bien compris, le bureau GNOME 2 a été forké pour garder son apparence (alors qu'on peut très simplement remixer GNOME 3 pour lui donner un fonctionnement classique proche de celui de GNOME 2) et maintenant le passage à GTK 3 pose des problèmes. J'en conclus que le projet MATE est une perte de temps.

    Ce n'est pas un troll. Je comprends tout à fait l'envie d'avoir un bureau "old-school", j'installe parfois des GNOME 3 classiques avec les extensions qui vont bien pour des gens de ma famille, des potes, etc. Du coup, je trouve que le résultat du projet MATE aurait pu être atteint avec beaucoup moins de dépense d'énergie.

    Ce commentaire est libre de droit, vous pouvez le réutiliser comme bon vous semble.

  • [^] # Re: Chiffres de ventes publics

    Posté par  . En réponse à la dépêche Angular 2 est en version finale, Ninja Squad vous met le pied à l’étrier. Évalué à 0.

    https://fr.wikipedia.org/wiki/Critique_de_la_psychanalyse#Critiques_de_la_validit.C3.A9_scientifique

    Tout est dit.

    Ce commentaire est libre de droit, vous pouvez le réutiliser comme bon vous semble.

  • [^] # Re: Facile ? Neutre ?

    Posté par  . En réponse à la dépêche État de l’espéranto sous GNU/Linux. Évalué à 6.

    C'est d'ailleurs pourquoi l'anglais international est souvent appelé “Globish” : https://fr.wikipedia.org/wiki/Globish Ce n'est plus vraiment de l'anglais…

    Ce commentaire est libre de droit, vous pouvez le réutiliser comme bon vous semble.

  • # Facile ? Neutre ?

    Posté par  . En réponse à la dépêche État de l’espéranto sous GNU/Linux. Évalué à 3.

    Je trouve que ces mots n'ont pas vraiment de sens pour une langue. Il existe des tonnes de langues toutes extrêmement différentes dans leur fonctionnement syntaxique. Rien qu'avec les langues isolantes / flexionnelles / agglutinantes on a des univers totalement différents. Quand on a compris ça, le concept de langue facile à apprendre et “neutre” n'a aucun sens. L’espéranto n'est “facile” que pour quelqu'un de langue maternelle indo-européenne.

    En fait, une langue doit exprimer des choses complexes, donc le langage va forcément être complexe à un moment ou à un autre. Les Français, les Chinois, les Bantous, les Aborigènes, etc. ont tous des langages d'une complexité différente, des façons d'exprimer la complexité de la réalité différentes à travers des aspects différents de cette réalité. Vouloir un langage facile pour tout le monde est aussi illusoire que de vouloir inventer un mode de vie universel adapté aussi bien à la vie aux pôles, dans les régions tempérées, les régions tropicales, etc.

    Et pour finir, si je passe du temps à apprends une langue, c'est pour communiquer avec une culture, une façon de penser, un vécu. Je ne vais pas perdre du temps sur un langage artificiel.

    Ce commentaire est libre de droit, vous pouvez le réutiliser comme bon vous semble.

  • # Je suis d'accord pour la plupart des arguments

    Posté par  . En réponse à la dépêche Appel de wallabag aux fabricants de liseuse. Évalué à 0.

    … mais je n'ai pas compris le premier :

    Une lisibilité excellente, même dehors.

    Le livre n'a pas besoin de rétro éclairage à ce que je sache…

    Ce commentaire est libre de droit, vous pouvez le réutiliser comme bon vous semble.

  • # Non-voyant ?

    Posté par  . En réponse à la dépêche Financement participatif de HandyDV Linux et sa machine à lire. Évalué à 10.

    Je comprends parfois qu'il y ait des mots politiquement corrects, eu égard à l'histoire (du genre “native american” aux USA), mais je ne vois pas de raison de dire “non-voyant” plutôt qu'“aveugle”. De plus, d'un point de vue sémantique, il me semble que ce n'est pas la même chose : dire qu'une personne ou un animal est aveugle signifie que normalement il a la capacité de la vue, mais que pour une raison ou une autre, il ne l'a pas/plus. Je dirais en revanche qu'une huître ou un caillou est non-voyant puisque l'absence de sa capacité de vision est normale : ils n'ont pas de par leur nature cette capacité.

    Sinon, super projet. Je trouve ça fondamental qu'un écosystème ouvert et libre soit réellement ouvert à tous. C'est une partie de sa définition ; et le côté gratuit, par exemple, est un de ces aspects qui permet aux populations défavorisées de ne pas avoir à payer une licence exorbitante pour utiliser un ordinateur. Que du bon en perspective de toujours plus ouvrir cet écosystème, quels que soient les handicaps physiques ou sociaux.

    Ce commentaire est libre de droit, vous pouvez le réutiliser comme bon vous semble.

  • [^] # Re: Les fotes restantes

    Posté par  . En réponse à la dépêche Unixcorn, trois mois plus tard : évolutions, remises en questions et stabilisation. Évalué à 10.

    J'avoue que les lecteurices, j'ai pas pigé. Si vraiment l'auteur veut expliquer que “lecteur” est à prendre comme un neutre et non comme un masculin (ce que tout le monde a compris, puisque sinon il aurait écrit les “hommes lecteurs” ou un truc du genre) il peut mettre “les lecteurs et lectrices”. Là tout le monde comprend, et personne ne vient râler. Parce que ce coup de foutre des tirets partout au milieu des mots ça n'a aucun sens. Et le militantisme grammatical n'a aucun sens non plus, faut être honnête…

    Ce commentaire est libre de droit, vous pouvez le réutiliser comme bon vous semble.

  • [^] # Re: Je n'aime pas la SFML

    Posté par  . En réponse à la dépêche SDL ou SFML ? Ne choisissez plus, prenez Gamedev Framework (gf). Évalué à 2.

    Le concept de durée de vie ne fonctionne pas du tout de la même façon en C++ moderne qu'en Rust. Le concept lui-même est simple, mais les façons dont il est géré en C++ et en Rust n'ont rien à voir. Le C++ n'a pas la sémantique move par défaut, rien que ça c'est une différence majeure qui change complètement la façon dont fonctionnent les deux langages. On peut être très bon en C++ et être dépassé par le Rust (au moins au départ).

    Ce commentaire est libre de droit, vous pouvez le réutiliser comme bon vous semble.

  • [^] # Re: Je n'aime pas la SFML

    Posté par  . En réponse à la dépêche SDL ou SFML ? Ne choisissez plus, prenez Gamedev Framework (gf). Évalué à 2.

    1. C'est du pinaillage.
    2. Les dicos en lignes donnent comme définition : “rendre meilleur”, ce qui est bien ce que je voulais dire.
    3. Moche/pas moche, c'est assez subjectif pour un mot.

    Ce commentaire est libre de droit, vous pouvez le réutiliser comme bon vous semble.