David Delassus a écrit 749 commentaires

  • [^] # Re: Précision

    Posté par  (site web personnel) . En réponse au lien Face aux vols, le British Museum va numériser toutes ses collections pour un coût de 12,1 millions $. Évalué à 10.

    Ils ne vont pas remplacer les objets qu'ils ont volé dans les autres pays

    Pourquoi les pyramides sont en Egypte ?

    Parce qu'il n'y a pas la place au British Museum.

    https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg

  • [^] # Re: Curieux

    Posté par  (site web personnel) . En réponse au lien Pony is a Python ORM with beautiful query syntax. Évalué à 3.

    On va dire que c'est permis par CPython :

    On a même le module dis qui ne semble pas utilisé par contre.

    En regardant tout ça d'un peu plus près, cela me semble très spécifique à CPython. Quid de PyPy, Jython (JVM), et autres implémentations ?

    Je n'irai pas jusqu'à dire que c'est un gros hack, car cela exploite les détails d'implémentations "interne" de CPython, mais je n'irai pas jusqu'à dire que c'est "prévu". C'est "permis" me semble un bon compromis.

    En tout cas, si je comprends bien le code, il vont en chier pour assurer la compatibilité lors des montées de versions de l'implémentation, car rien ne garantie qu'elle ne bougera pas.

    https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg

  • [^] # Re: Curieux

    Posté par  (site web personnel) . En réponse au lien Pony is a Python ORM with beautiful query syntax. Évalué à 6. Dernière modification le 28 septembre 2023 à 17:02.

    c for c in ... c'est une "expression générateur" en Python :

    >>> (i for i in [])
    <generator object <genexpr> at 0x…>

    Donc select(c for c in ...) passe un objet de type générateur à la fonction select().

    En survolant le code source, ils décompilent le code du générateur (la stdlib de Python fournit les outils pour faire cela) et ensuite réécrit l'AST pour recompiler ça en SQL.

    Le générateur n'est jamais exécuté directement du coup.

    https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg

  • [^] # Re: Une gestion d’erreur moderne ?

    Posté par  (site web personnel) . En réponse à la dépêche À la découverte du langage V. Évalué à 3.

    Et quelle est la différence entre panic/recover et des exceptions avec try/catch ?

    https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg

  • [^] # Re: Une gestion d’erreur moderne ?

    Posté par  (site web personnel) . En réponse à la dépêche À la découverte du langage V. Évalué à 4.

    Non, c'est une interface

    My bad, je le savais en plus, mais j'ai vu tellement de codebases Go ou c'était juste des strings que j'ai fait un raccourci un peu trop rapide.

    Est-ce que faire un unwrap, ça compte vraiment comme traiter l'erreur ?

    Oui car unwrap sur un Result::Err(E) ça panic!. Alors que ne pas faire de if err != nil en Go, le programme continu comme si de rien n'était.

    Dans les deux cas, on ignore explicitement l'erreur sans la traiter.

    Ben non :

    func foo() (something, error) {
      a, err := bar()
      // pas de if err != nil
    
      // beaucoup de code
    }

    La c'est pas explicite du tout.

    Alors qu'en Rust :

    if let Ok(a) = bar() {
      // ...
    }
    
    // ou
    
    match bar() {
      Ok(a) => { /* ... */ },
      _ => {}
    }

    En gros :

    • en Go, tu dois ajouter du code pour traiter l'erreur
    • en Rust, tu dois ajouter du code pour ignorer l'erreur

    Perso, je trouve la gestion des erreurs en Go assez bof, mais pas atroce non plus.

    Chacun ses goûts. Pour ma part, je défend l'idée que "fournir un type/interface 'error'" ce n'est pas de la gestion d'erreur.

    En fait, je ne vois même pas de différence avec le C dans ce cas là :

    int foo(); // retourne 0 en cas de succès, -1 en cas d'erreur

    Au moins, la GLib (pas gnu libc, mais bien GLib de GTK), on a GError et compagnie :

    bool foo(GError **err);
    // true en cas de succès, false en cas d'erreur
    // si erreur, et que err != NULL, on propage l'erreur dans *err

    Verbeux, peu pratique, mais déjà un peu mieux qu'un int.

    https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg

  • [^] # Re: Une gestion d’erreur moderne ?

    Posté par  (site web personnel) . En réponse à la dépêche À la découverte du langage V. Évalué à 8. Dernière modification le 06 septembre 2023 à 14:32.

    Je trouve la gestion d'erreur de Go atroce, pour ne pas dire inexistante.

    Le langage ne te force pas à la traiter, rien ne t'empêche d'écrire :

    res, _ := foo()

    Il peut quand même y avoir des données dans le résultat, même si err est nil :

    func foo() (int, error) {
      return 42, errors.New("oops")
    }

    Dans ce cas, on fait quoi de res ?

    Il faut utiliser des modules tiers pour garder les informations qu'une stacktrace d'exception a par défaut, car :

    res, err := foo()
    if err != nil {
      return whatever, err
    }

    Ici on pert complètement l'information, la bonne pratique c'est d'encapsuler l'erreur dans une nouvelle, en utilisant par exemple le module xerrors.

    Le type error est concrètement juste une chaîne de caractères, sans module tiers tel que xerrors ou autre, impossible de déterminer le type de l'erreur, alors qu'avec une exception, on peut au moins faire du pattern matching sur son type.


    Au final, je préfère un type monadique, comme std::expected<T, E> en C++ ou Result<T, E> en Rust.

    Ici:

    • on a bien une valeur OU une erreur
    • on est obligé de traiter l'erreur
    • on peut faire du pattern matching sur le type de l'erreur et sa valeur
    • on sait quel type d'erreur une fonction peut retourner

    Les exceptions pourraient être du sucre syntaxique pour un tel type monadique. D'ailleurs, l'opérateur ? en Rust ressemble beaucoup à ça :

    fn foo() -> Result<T, E1> {
      // ...
    }
    
    fn bar() -> Result<T, E2> {
      let val = foo()?;
      // si foo retourne Result::Err(E1),
      // alors bar retourne Result::Err(E2) a condition que E2 implémente From<E1>
      // si l'implémentation n'est pas trouvée --> erreur de compilation
    }

    C'est tout de suite plus propre.


    TL;DR: Les gens qui vantent les mérites de la gestion d'erreur en Go, je les comprends pas :(

    https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg

  • [^] # Re: L'histoire se répète

    Posté par  (site web personnel) . En réponse au lien Flatpak is not the future et pourquoi l'auteur pense qu'on devrait développer pour GTK3 et pas GTK4. Évalué à 2.

    J'adore le titre de l'article :

    Django, HTMX and Alpine.js: Modern websites, JavaScript optional

    Comme si HTMX et Alpine.JS n'avaient pas besoin de JS.

    https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg

  • [^] # Re: L'histoire se répète

    Posté par  (site web personnel) . En réponse au lien Flatpak is not the future et pourquoi l'auteur pense qu'on devrait développer pour GTK3 et pas GTK4. Évalué à 8.

    Pour info, le module Python tkinter est inclus dans la librairie standard.

    Quand j'ai besoin d'une GUI pour un script Python, c'est vers ce dernier que je m'oriente :)

    https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg

  • [^] # Re: L'histoire se répète

    Posté par  (site web personnel) . En réponse au lien Flatpak is not the future et pourquoi l'auteur pense qu'on devrait développer pour GTK3 et pas GTK4. Évalué à 3.

    C'est pour ça que je kiffe le Semantic Versionning.

    Sinon, 10 ans, pour un dev JS c'est du LTS :)

    https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg

  • # L'histoire se répète

    Posté par  (site web personnel) . En réponse au lien Flatpak is not the future et pourquoi l'auteur pense qu'on devrait développer pour GTK3 et pas GTK4. Évalué à 8.

    Il y a 10 ans, on entendait les gens dire qu'il fallait développer pour GTK2 et pas GTK3.

    Il y a 20 ans, on entendait les gens dire qu'il fallait développer pour GTK1 et pas GTK2.

    Dans 10 ans, on entendra les gens dire qu'il faut développer pour GTK4 et pas GTK5.

    https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg

  • [^] # Re: Respect

    Posté par  (site web personnel) . En réponse à la dépêche Décès de Bram Moolenaar, créateur de VIM. Évalué à 10.

    vi était considéré comme raisonnablement hardcore (le top du hardcore, c'était d'utiliser ed)

    Real programmers

    https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg

  • # Merci pour cette dépêche

    Posté par  (site web personnel) . En réponse à la dépêche Décès de Bram Moolenaar, créateur de VIM. Évalué à 10.

    Vim est vraiment un bel outil, même si je ne l'utilise plus, c'est selon moi un monument du logiciel libre.

    Il en a inspiré beaucoup, dont :

    • http://vimperator.org/ (interface Vim pour Firefox)
    • le mode Vim dans Sublime Text, VS Code, et bien d'autres éditeurs de texte

    D'ailleurs, durant mon adolescence, j'avais comme projet un navigateur internet basé sur Webkit avec l'interface de vimperator --> https://github.com/linkdd/cream-browser

    Et j'en avais même parlé ici : https://linuxfr.org/tags/creambrowser/public

    Vim a eu un gros impact sur ma manière d'aborder l'édition de texte, encore aujourd'hui, sur VS Code, je refactor mon code à coup de Ctrl+Shift+H et de regex (ce qu'il y a de plus proche de :s). Jamais j'abandonnerai le comfort d'un éditeur avec le multi-curseur au minimum.

    https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg

  • [^] # Re: :wq!

    Posté par  (site web personnel) . En réponse au lien Bram Moolenaar, auteur de vim, bronsonisé. Évalué à -2.

    il ne fait que montrer que toi et/ou ton collègue ne connaissent pas les IDE graphiques

    On s'en cogne non ?

    On peut pas laisser les gens utiliser les outils qu'ils veulent, pour les raisons qu'ils veulent, sans devoir leur tomber sur la gueule à chaque fois qu'ils disent "j'aime ci, j'aime ça" ?

    Le commentaire initial c'était : "je préfère vim à vscode que mes collègues utilisent" et "j'aime bien leur montrer comment je me sers de vim".

    Et toi tu viens essayer de lui démontrer qu'il y connait rien car d'autres IDE peuvent faire le même taf. Oui d'autres peuvent le faire, et on s'en cogne royalement. Personne ne t'as rien demandé.

    Les goûts et les couleurs, ça se discute pas. La discussion est complètement inutile et n'a rien à faire ici.

    Un peu de respect pour les défunts, et arrêter de se crêper le chignon pour des conneries, ça serait un bon début.

    https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg

  • [^] # Re: :wq!

    Posté par  (site web personnel) . En réponse au lien Bram Moolenaar, auteur de vim, bronsonisé. Évalué à -3.

    Personne A: J'aime bien $CHOSE surtout quand $EXEMPLE
    Personne B: On peut faire $EXEMPLE dans $AUTRE_CHOSE

    Utilité de la réponse : 0/10.

    https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg

  • [^] # Re: J'ai lu que le titre mais...

    Posté par  (site web personnel) . En réponse au lien Il y aurait de l'énergie dans le vide. Évalué à 6.

    Une série télescopique et une série géométrique divergente sont deux objets mathématiques bien différents, avec des opérations ayant des règles bien différentes.

    Et si tu lis l'article que tu as toi même cité, tu verras qu'il en conclut que la valeur que l'on associe à cette série divergente est bien 1/2.

    Donc tu peux me renvoyer le compliment autant que tu veux, mais soit tu n'as pas lu l'article Wikipédia, soit tu ne l'as pas compris.

    https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg

  • [^] # Re: J'ai lu que le titre mais...

    Posté par  (site web personnel) . En réponse au lien Il y aurait de l'énergie dans le vide. Évalué à 5. Dernière modification le 16 juillet 2023 à 17:13.

    Une façon exacte de réécrire cette sommation serait :

    Raté, le reparenthésage est interdit avec les super sommations. La super-sommation n'est pas commutative.

    1 - 1 + 1 - 1 + …
    et : (1 + 1 + …) - (1 + 1 + …)
    sont deux objets bien distincts, deux séries infinies bien distinctes.

    EDIT: D'ailleurs, on ne peut associer comme valeur à 1 + 1 + … l'infini, car l'infini n'est pas une valeur/un nombre. Donc peu importe la valeur que l'on donnerait à cette super sommation, X - X est bien égal à 0.

    Le reste c'est de la sodomie de diptères.

    Bah oui, quand on comprend rien aux maths, c'est facile de faire dire tout et son contraire.

    https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg

  • [^] # Re: J'ai lu que le titre mais...

    Posté par  (site web personnel) . En réponse au lien Il y aurait de l'énergie dans le vide. Évalué à 8.

    Appeler ça un "tour de passe-passe arithmétique" c'est un peu exagéré je trouve.

    Ce qu'il faut comprendre, c'est que le "+" dans "1 + 2" et le "+" dans "1 + 2 + 3 + …" ce n'est pas la même opération. D'un côté c'est l'addition dans les réels, de l'autre côté c'est une super-sommation stable, linéaire et régulière.

    C'est juste que les mathématiciens ré-utilisent les mêmes symboles pour dire des choses différentes. Par exemple a x b (a et b des réels) et S1 x S2 (S1 et S2) sont aussi 2 opérations différentes : une multiplication, et un produit cartésien.

    https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg

  • # J'ai lu que le titre mais...

    Posté par  (site web personnel) . En réponse au lien Il y aurait de l'énergie dans le vide. Évalué à 6.

    … l'énergie du vide quantique est une théorie bien connue depuis longtemps, qui est à la base même de la théorie du rayonnement de hawkings (évaporation des trous noirs, etc…).

    Cela a été mesuré avec l'effet Casimir notamment, en vulgarisation approximatique, c'est lorsque 2 plaques de métal proches, dans le vide, subissent une force d'attraction car moins de particules virtuelles peuvent se manifester entre les deux plaques qu'à l'extérieur.

    Fun fact, dans les équations qui décrivent l'effet Casimir, intervient la relation "1 + 2 + 3 + … = -1/12" car on doit additionner tout les modes vibratoires possibles des particules virtuelles (il y en a une infinité) sans pour autant avoir une valeur infinie qui apparaît dans les équations (catastrophe pour un physicien).

    L'énergie du vide a aussi fait fantasmer la science fiction, on se souviendra notamment des EEPZ (Extracteur d'Energie du Point Zéro) de Stargate:

    eepz

    https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg

  • [^] # Re: pareil mais

    Posté par  (site web personnel) . En réponse au journal Linus Torvalds proclame sa wokeness . Évalué à 3.

    Il existe un courant de pensée qui dit qu'il faut, dans une certaine mesure, laisser les enfants expérimenter le monde, faire leurs propres erreurs et apprendre d'eux même.

    Bien sûr, si l'enfant risque de se briser la nuque en sautant du toit de la maison, je pense qu'on à le droit et le devoir de l'en empêcher.

    https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg

  • [^] # Re: pareil mais

    Posté par  (site web personnel) . En réponse au journal Linus Torvalds proclame sa wokeness . Évalué à 7.

    Et ça ne va jamais passer le stade du diagnostique de dysphorie, donc c'est hors-sujet.

    Je te concède ce point, j'étais probablement hors-sujet en effet.

    Tu te rends compte que la puberté c'est une période et que ce n'est pas un instant T.

    "Avant une période" ça existe… Prend moi pour un con.

    Et le libre arbitre final pour moi serait l'avis de mes enfants

    Tu peux écouter l'avis de tes enfants pour prendre ta décision, et c'est bien. Mais d'un point de vue légal, c'est toi qui prend la décision, et c'est toi qui en est responsable.

    Ces deux faits ne sont pas mutuellement exclusifs.

    Tu me fais penser à tous ces parents sur les places de jeux que je vois dire à leurs enfants "attention tu vas tomber" quand ils grimpent dans des installations.

    Attaque personnelle gratuite, qui n'a rien à faire là. Tu ne me connais pas. Restons focus sur le débat.

    https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg

  • [^] # Re: pareil mais

    Posté par  (site web personnel) . En réponse au journal Linus Torvalds proclame sa wokeness . Évalué à 10.

    Le concept "un enfant ne peut pas être consentant" englobe également "un enfant ne peut pas être responsable de lui même ou de ses actes", c'est d'ailleurs pourquoi on envoi pas les criminels mineurs en prison.

    Donc non, ce n'est pas à côté de la plaque. Un thérapeute peut recommender aux parents, mais la décision finale ne revient ni au thérapeute, ni à l'enfant, mais aux responsables légaux de l'enfant.

    Tu ridiculises ton propre point de vue à le comparer à du déguisement.

    Cette phrase n'a aucun sens. Je ne fais pas de comparaison, j'expose une anecdote personnelle qui selon moi prouve à quel point les enfants sont influençables. Si il suffit que je vois le film E.T. pour dire pendant une semaine que "je suis un extra-terrestre", peut être que je ne suis pas assez mature pour prendre une décision qui va impacter ma vie entière.

    Et croire que les parents sont mieux à même de savoir comment un enfant se sent dans son corps qu'un enfant et son/sa thérapeute est d'une bêtise sans nom.

    Ca tombe bien, c'est pas ce que j'ai dit. Cependant, je noterai quand même que les enfants (on parle toujours avant la puberté) n'ont pas forcément la connaissance, le recul ou la compréhension pour comprendre les émotions qu'ils ont. La preuve ? L'empathie, la gestion de la frustration, et la compassion ne sont pas des choses innées mais acquises dans les 4-5 premières années de la vie de l'enfant.

    Et non "idiot" n'est toujours pas le bon terme pour quelqu'un qui n'est pas d'accord avec toi.

    On ne parle pas d'un adolescent qui veut aller fumer un pétard par envie de rébellion dans les buissons derrière l'école.

    Je comprend pas ce que cette phrase vient foutre dans la discussion…

    https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg

  • [^] # Re: pareil mais

    Posté par  (site web personnel) . En réponse au journal Linus Torvalds proclame sa wokeness . Évalué à 7.

    Peut être qu'appeler les gens qui ne sont pas d'accord avec toi "idiots" n'est pas la bonne manière de mener un débat.

    Quand j'étais enfant, avant la puberté, du jour au lendemain j'étais cowboy, princesse, extra-terrestre, ou tout autre rôle que je souhaitais prendre sur le moment.

    Les enfants (surtout avant la puberté) sont très influençables et facilement confus.

    Notre système légal entier repose sur le concept hyper simple : un enfant ne peut pas être consentant.

    C'est pour ça qu'un enfant a des tuteurs légaux, qu'un enfant n'a pas le droit de vote, qu'un enfant ne peux pas travailler, ouvrir de compte en banque, prendre une décision médicale sans l'accord de ses parents, etc…

    Donc oui, il y a "7 idiots" qui pensent que non, on ne devrait pas laisser le choix a un enfant de 7-9 ans pour ce genre de chose non plus.

    https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg

  • [^] # Re: pareil mais

    Posté par  (site web personnel) . En réponse au journal Linus Torvalds proclame sa wokeness . Évalué à 2.

    Spéciste aussi, je mange de la viande :D

    https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg

  • [^] # Re: pareil mais

    Posté par  (site web personnel) . En réponse au journal Linus Torvalds proclame sa wokeness . Évalué à 5.

    Je ne fais pas vraiment un parallèle :

    1. je parle de transidentité
    2. je parle de comment la génétique et la psyché sont 2 choses bien réelles et distincte, et de comment la société actuelle a rendu confus les 2
    3. je parle de la dépression (souffrance mentale) que subissent souvent les personnes transgenre qui est la pathologie a traiter (et non la transidentité qui n'est pas une pathologie mais un type de psyché)
    4. j'évoque une inquiétude face aux traitements prescrit (la chirurgie) qui sont irréversible

    J'ai rencontré des personnes qui regrettent leurs transitions, j'ai rencontré des personnes qui m'ont dit que cela leur a sauvé la vie et qu'ils sont biens plus heureux maintenant.

    Pour les personnes qui sont heureuses, tant mieux ! Pour celles qui regrettent, il est trop tard, et je compatis. Et c'est ça qui produit mon inquiétude.

    Certaines personnes sont simplement confuses. Définitivement pas toutes mais certaines quand même. Et avec le peu de chose que l'on sait sur le cerveau et son fonctionnement, il me semble important de pouvoir distinguer les personnes confuses et personnes transidentitaire. Pourquoi ? Pour éviter de donner un traitement inadapté à la personne. Ce qui fonctionne pour une personne transgenre (traitement hormonal, chirurgie, etc…) ne fonctionnera pas forcément pour une personne qui est juste confuse.

    Maintenant, les gens aiment bien déformer les propos comme ceci :

    • il a dit que la transidentité était une maladie
    • il a dit que la génétique c'est réel et que le reste c'est dans la tête
    • il a dit que les transgenres ne devraient pas faire de chirurgie

    Et boom, je suis transphobe, homophobe, misogyne, il faut m'insulter et me faire taire.

    https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg

  • [^] # Re: Pas trop difficile la vie ? Non mais sans blague

    Posté par  (site web personnel) . En réponse au journal Linus Torvalds proclame sa wokeness . Évalué à 4.

    J'ai assez développé mon propos dans d'autres commentaires sur ce sujet pour répondre à cette question qui n'a pas de point d'interrogation.

    Tu peux enlever "en tant que cisgenre" de ta phrase et éviter de minimiser ce qu'un quelconque groupe vit ?

    https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg