barmic 🦦 a écrit 5800 commentaires

  • [^] # Re: La vraie remise en question

    Posté par  . En réponse au journal log4shell : Et après ?. Évalué à 3.

    Tout à fait d'accord. Un autre élément qui montre que le lookup bien que très surprenant doit avoir des usages, c'est que la principale alternative à log4j : logback, le faisait aussi (bon ça n'est pas accessible depuis le logging).

    https://logback.qos.ch/news.html

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: Mictioner sur un violon

    Posté par  . En réponse au lien Violation de la licence GPL d'OBS par Tiktok. Évalué à 8.

    Ça n'est pas aussi simple que ça. La Chine est dans l'organisation mondiale du commerce. Et la Chine aussi a besoin que sa propriété intellectuelle ne soit pas bafouée.

    Je ne sais pas sur quoi ça va aboutir, mais je ne serais pas si catégorique.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: outils et gĂ©nie logiciel

    Posté par  . En réponse au journal log4shell : Et après ?. Évalué à 10.

    Je ne suis pas certains que les failles suivantes auraient été trouvées si vite avec du code non lisible. Et des initiatives comme FOSSA sont bien plus compliquées à mettre en place avec du code fermé. Après on est pas à l'abri de commits hypocrites.

    Je ne sais pas si les 2 se valent mais je ne dirais pas que c'est identique.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: Comme openssl

    Posté par  . En réponse au journal log4shell : Et après ?. Évalué à 7.

    Concernant le CI , oui un mvn audit serait bien, encore
    faudrait il que eles serveurs maven suivent (il n'y a pas
    uniquement maven central )

    Et il faut avoir l'infrastucture et les procédures pour gérer des failles. C'est amusant de comparer ça avec npm (qui a la fonction, mais aussi des gens pour s'en occuper, d'autant plus depuis le rachat par github et par microsoft), ou avec pypi (qui n'a personne pour faire le taf, ou du moins, qui n'avait personne à temps plein sur la maintenance du logiciel avant, et sans doute des volontaires sur le reste).

    Ça existe :

    https://jeremylong.github.io/DependencyCheck/dependency-check-maven/

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: L'opensource et maven fonctionne très bien

    Posté par  . En réponse au journal log4shell : Et après ?. Évalué à 4.

    Non mais je sais comment on perd de la connaissance, mais comment vous decretez que c'est le cas ?

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: L'opensource et maven fonctionne très bien

    Posté par  . En réponse au journal log4shell : Et après ?. Évalué à 2.

    D'où tu sort que ça signifie qu'ils ne savent pas reconstruire leur logiciel ?

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: L'opensource et maven fonctionne très bien

    Posté par  . En réponse au journal log4shell : Et après ?. Évalué à 8.

    Le danger premier de log4shell c'est qu'il est un moyen d'entrée et qu'il est possible de lancer l'attaque de manière générique à l'heure actuel probablement tous les serveurs derrière une IPv4 ont dû prendre une tentative. Quand tu as déjà quelqu'un qui s'est introduit physiquement dans la centrale pour prendre le contrôle d'un serveur, c'est tout à fait possible, mais ce n'est plus à la porté du script kiddy. On commence à entrer dans une séquence de défaillance et plus une seule. Ils ont d'autres contre mesures qui vont encore rendre plus compliqué l'exploitation comme le fait que toutes les connexions doivent avoir étaient autorisée au préalable. Je ne sais pas, mais je doute qu'ils utilisent des jars signés ou de la sécurité type java2.

    On est sur des niveaux d'attaques qui sont sans commune mesures avec ce dont on parle pour simplement log4shell.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: L'opensource et maven fonctionne très bien

    Posté par  . En réponse au journal log4shell : Et après ?. Évalué à 6.

    Tout le monde ne peux pas avoir ce genre de fonctionnement. J'ai des amis qui font des logiciels en centrales nucléaires. Leurs installations ne sont pas reliées à internet, les mises à jour ne se font pas via une CI/CD et sans aller jusqu'à ce genre d'extrémum c'est le cas de pas mal de choses en industrie. Parce qu'ils séparent leurs réseaux. Stuxnet n'a pas besoin de log4shell pour te pourrir la vie.

    Et sans accès possible distant, log4shell perds beaucoup de sa dangerosité.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: Comme openssl

    Posté par  . En réponse au journal log4shell : Et après ?. Évalué à 4.

    À coté, Go a eu sa propre lib, Rust a RusTLS, et les autres sans doute pareil, pour éviter de se servir d'OpenSSL.

    Je ne sais pas ce qu'il en ai des autres, mais rustls a démarré son développement 2 ans après heartbleed et je ne crois qu'il y ai le moindre lien. rust est simplement très adapté à ce genre d'utilisation. Ce serait dommage de s'en priver.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • # Non

    Posté par  . En réponse au journal log4shell : Et après ?. Évalué à 10.

    à moyen terme, verrons nous plus d'entreprises contribué à l'open source, ou cesser l'utilisation de l'open source ?
    Verrons nous une moindre utilisation de java ? la fin des libraires partagées ?

    Rien du tout. C'est une tempête dans un verre d'eau. shellshock n'a pas tué linux et heartbleed n'a pas tué OpenSSL. C'est fou cette capacité à oublier que c'est quelque chose de régulier et non pas la fin du monde.

    L'open source en question ?

    Comme à chaque fois on redécouvre qu'on a laissé 1 à 5 développeurs la charge d'un truc dont beaucoup de monde dépend.

    Maven en question ?

    C'est pas maven en particulier qui a le moindre problème, c'est la gestion de dépendance. On reproche à maven de ne pas virer les versions incriminer aujourd'hui, on reprochait à npm de permettre de virer des paquets il y a 5 ans. On se détend un peu.

    Déjà mettre à jour la bibliothèque n'est pas la seule façon de mitiger la faille. Certains projets pour des raisons qui leurs sont propre ne peuvent pas mettre à jour le code aussi facilement, dans ce cas mettre en place d'autres contremesure (ou avoir toujours eu ses contremesures) fais le taff. Ça n'empêche pas de mettre à jour la bibliothèque, mais pas besoin de le faire dans l'urgence.

    Bref je trouve que ça a excité beaucoup de monde qui dans la tempête n'arrive plus à faire la différence entre des éléments de fond et des éléments qui sont justes classiques. Courage à tout ceux qui subissent la tempête.

    Pour moi ça questionne plus notre manière de communiquer.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: Praticiens

    Posté par  . En réponse au journal À quoi bon le libre. Évalué à 5.

    Arg j'ai réveillé le Z… Tu utilise des mots dont tu ne connaît apparemment pas le sens (enfin j'imagine que tu les tords jusqu'à ce qu'il correspondent à ton besoin). M'enfin…

    Oulalala que tu es empathique ! Que je me suis fourvoyé ! Oulala ! Quelle illumination ! Tout ce que tu dis à tellement de sens ! Maintenant que tu l'a répété une 256ème fois c'est devenu limpide ! Un vrai appel à la paix et devrais corriger tous les problèmes de vaccination !

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: Praticiens

    Posté par  . En réponse au journal À quoi bon le libre. Évalué à 3.

    Je me permet de pointer sur le wiktionnaire pour mieux expliquer ce que je voulais dire.

    C'est pire encore tu pense qu'ils tuent volontairement des gens. On est encore plus loin de l'empathie que je ne le croyais.

    Soyons clair je ne suis pas antivaxx, je suis vacciné 3 doses et je recommande à toutes personnes qui n'ont pas de contre indication médicales à le faire.

    Mais la peur, la crainte ou autre envers les vaccins ne s'inscrit probablement pas dans une volonté de tuer autrui !

    Par exemple il semble que les enjeux de collectivité par rapport aux besoins personnel soit quelque chose d'absolument incompréhensible pour une partie de la population. Mais en quelle part c'est leur faute et en quelle part le fait qu'on présente toujours que des individualités (dans tout : en politique, dans le sport, dans la pop culture,…) ?

    C'est un exemple, mais vraiment ta manière de présenter les choses n'amène qu'à une chose : leur stigmatisation ne les poussera pas à se faire vacciner. Ça pousse à les discriminer potentiellement violemment.

    Je ne vois aucune forme d'empathie là dedans (et non je n'amalgame pas empathie et bienveillance), mais une dérive très problématique.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: CGU

    Posté par  . En réponse au lien combien de temps faut-il pour lire les CGU des principales apps ?. Évalué à 4. Dernière modification le 22 décembre 2021 à 18:44.

    Et dans sa forme on voit bien que RMS et la FSF ont voulu un truc juridiquement carré …et avec l'effet miroir « gauche de copie »
    Avant sa reconnaissance par la jurisprudence française, on avait une adaptation tout aussi longue (v2.1)

    Les poursuites entreprises par la FSF n'auraient pas pu se faire avec la MITL ou la WTFL1 …Les GPL sont donc bien mieux d'un point de vue protection juridique.

    Bref c'est pas la taille qui compte.


    1. Tu veux attaquer ou protéger quoi avec la WTFL ? ↩

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: Embrace, Extend and Extinguish

    Posté par  . En réponse au journal Manifest V3 pour les extensions de navigateurs. Évalué à 10.

    Je suis triste de voir des projets libres se prendre du FUD (ton commentaire initial c'est "pas j'ai l'impression qu'il est moins rapide", mais "Mozilla délaisse la performance de Firefox") sans plus d'éléments factuels.

    Sincèrement je ne comprends pas comment Firefox peut se prendre autant dans la tête par rapport aux autres et dès que gratte un peu les arguments c'est :

    • non mais moi je suis convaincu, c'est "les gens" qu'il faut convaincre
    • non mais c'est une impression, c'est pas flagrant (=> j'ai rien qui appuie ça mais pourquoi ne pas baver dessus)
    • mais j'ai lu le titre d'un article putaclick il y a 3 ans sans avoir lu l'article ou sans aucun recul dessus donc maintenant j'affirme que Mozilla fait n'importe quoi
    • firefox 4 c'Ă©tait vraiment nul

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • # CGU

    Posté par  . En réponse au lien combien de temps faut-il pour lire les CGU des principales apps ?. Évalué à 3.

    Je pense que comparer netflix où tu es uniquement consommateur et d'autres comme instagram ne relève pas du tout des même usages et donc de même conditions d'utilisation. Je n'ai d'ailleurs aucune idées de ce qu'est les conditions d'utilisation de Microsoft Windows ? Azure ? Office 365 ? Leur boite mail ?

    La GPLlv3 est probablement la plus longues des licences libres que je connaisse (et de beaucoup) est-ce que ça en fait la pire ?

    Il me semble que simplifier le sujet à une seule métrique n'informe pas tant que ça.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: Trou de mĂ©moire

    Posté par  . En réponse au lien Go 1.18 Beta : la généricité enfin !. Évalué à 3.

    Hum l'article propose ça:

    // function
    func buildCompleteList(process func(opts *github.ListOptions)(*github.Response, error)) (*github.Response, error) {
        var response *github.Response
        var err error
        ops := &github.ListOptions{}
        for {
            response, err = process(opts)
            if err != nil || response.NextPage == 0 {
                break
            }
            opts.Page = response.NextPage
        }
        return response, err
    }
    
    // slot d'appel
    var teams []*github.Team
    resp, err := buildCompleteList(func(opts *github.ListOptions) (*github.Response, error) {
        newTeams, response, err := client.Organizations.ListTeams(org, opts)
        teams = append(teams, newTeams...)
        return response, err
    })

    et à vu de nez la version générique serait ça:

    // function
    func buildCompleteList[T](build func(opts *github.ListOptions)(*T, *github.Response, error)) ([]*T, error) {
        var list []*T
        var err error
        ops := &github.ListOptions{}
        for {
            items, response, e := process(opts)
            if e != nil || response.NextPage == 0 {
                err = e
                break
            }
            list = append(list, items...)
            opts.Page = response.NextPage
        }
        return list, err
    }
    
    // slot d'appel
    teams, err := buildCompleteList(func(opts *github.ListOptions) (*github.Response, error) {
        return client.Organizations.ListTeams(org, opts)
    })

    Et du coup je dirais :

    • la version closure fait le append avec ou sans l'erreur pas sĂ»r que ce soit toujours une bonne idĂ©e
    • le slot d'appel est bien plus simple en gĂ©nĂ©rique (je ne serait pas surpris qu'il existe du sucre syntaxique pour ce genre de chose), la complexitĂ© ajoutĂ© dans la mĂ©thode gĂ©nĂ©rique ne me semble pas insurmontable
    • tu as moins de bruit avec la première variable retournĂ©e par la mĂ©thode non gĂ©nĂ©rique dont on ne sait pas trop quoi faire. La mĂ©thode gĂ©nĂ©rique a un usage plus courant avec un retour de la forme (rĂ©ponse attendue, erreur)

    Après ça n'est qu'une manière de faire, tu peux préférer avoir un itérateur qui va te permettre de t'arrêter là où tu souhaite (ou de commencer à faire des choses avant de tout charger et utiliser une coroutine pour ça va poser des questions de backpressure).

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: Trou de mĂ©moire

    Posté par  . En réponse au lien Go 1.18 Beta : la généricité enfin !. Évalué à 2.

    Je pense que @kantien et moi avions compris que tu utilisais des méthodes anonymes :

    // mon algo
    for c in range cellules {
        c()
    }

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: Trou de mĂ©moire

    Posté par  . En réponse au lien Go 1.18 Beta : la généricité enfin !. Évalué à 2.

    Je ne vois pas de fermeture dans l'exemple que tu donnes par contre ?

    type MyFloat float64
    
    func (f MyFloat) Abs() float64 {
        if f < 0 {
            return float64(-f)
        }
        return float64(f)
    }
    
    type Vertex struct {
        X, Y float64
    }
    
    func (v *Vertex) Abs() float64 {
        return math.Sqrt(v.X*v.X + v.Y*v.Y)
    }

    Dans la première méthode Asb() f est capturé et v dans la seconde. C'est comme ça que le l'ai compris, même si je ne suis pas certains qu'on puisse parler de capture pour une référence qui est passée de cette façon à la méthode (comme le self de python).

    L'intérêt des fermetures est de faire en sorte que l'algo central ne dépende d'aucun type particulier, même pas un type générique mais de la plus petite interface possible, par exemple func(i, j int) bool. Le code dépendant du type est dans la fonction avec fermeture et propre à chaque utilisation et donc en dehors de la lib.

    Ça n'est pas clair pour moi. Tu semble parlait indistinctement de fermeture et d'interface.

    // une interface 
    type Rendu interface {
        Rendu(i, j int) bool
    }
    
    // une lambda
    var rendu func(i, j int) bool

    Les 2 manières peuvent faire de la capture pour calculer leur rendu comme tu le souhaite.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: Trou de mĂ©moire

    Posté par  . En réponse au lien Go 1.18 Beta : la généricité enfin !. Évalué à 3.

    soit n'ont pas besoin de ça

    Ça fait un peu « dis moi ce dont tu as besoin, je te dirais comment t'en passer ».

    Non c'est l'inverse, quand tu écris un programme pour ton besoin, tu ne cherche pas à résoudre la quadrature du cercle. Tu te place dans un prisme limité qui n'a pas vocation à généraliser autant que possible toute problématique.

    Même le tri en place du tableau, je doute que ce soit possible (génériquement) en golang avec seulement des interfaces (pour la bonne raison qu'une fonction d'ordre est un opérateur binaire, ce qui n'est pas gérer par les interfaces de base).

    C'est juste pas vérifié par le système de type. Ça n'est pas équivalent en terme de vérification, mais beaucoup de code fonctionnent comme ça. Et un certain nombre sont bien plus utilisé et apportent bien plus à leurs utilisateurs que tout ce que j'ai pu écrire donc je ne me permettrai pas de les juger.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: code server…

    Posté par  . En réponse au lien Shift your Workspaces to the Cloud. Évalué à 3.

    Je suis pas certain que ne pas être utilisable avec vi ou emacs limite l'adoption. Les utilisateurs de ces 2 là (ou de leur fork/reimplementation) veulent généralement être bare metal amha et n'ont pas particulièrement envi de voir le web s'inviter.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: Trou de mĂ©moire

    Posté par  . En réponse au lien Go 1.18 Beta : la généricité enfin !. Évalué à 3.

    Sinon ce que tu décris c'est tout simplement le fonctionnement des interfaces jusqu'alors : une interface c'est juste un dictionnaire de fermetures. D'ailleurs pourquoi passer par des fermetures à sa sauce quand le langage fournit nativement un tel mécanisme ?

    Je ne sais pas.

    Un cas d'exemple simple et générique impossible à rendre, au niveau des types, avec les interfaces (ou fermetures) : le tri d'un tableau. Quand on a un tableau sur un type ordonné (que le type soit ordonné cela s'exprime par le fait qu'il satisfait une certaine interface), alors on peut trier (par ordre croissant ou décroissant) ce tableau : le type de sortie dépend du type de l'entrée, en sortie on a un tableau sur le même type de données qu'en entrée.

    Ceux qui passent par cette solution (ça m'est arrivé par exemple parce qu'avec du typage nominal tu n'a pas toujours la possibilité de décrire le type qui te convient) :

    • soit n'ont pas besoin de ça
    • soit tu te crĂ©e que des mĂ©thodes et pas des fonctions. Tu modifie les paramètres que l'on te donne plutĂ´t que de retourner quelque chose

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: nn_lib & gmd

    Posté par  . En réponse à la dépêche Sortie de G'MIC 3.0 : Une troisième dose pour un traitement efficace de vos images !. Évalué à 3.

    Merci pour ta réponse.

    Je comprends surtout si c'est aussi peu de code pour nn_lib.

    Pour markdown je ne suis pas sûr de comprendre, la traduction markdown → html est faite dans gmic et pas dans une étape de construction ?

    On pouvait s'attendre Ă  cette question :)

    Ce n'est pas du tout une critique, c'est simplement pour comprendre. Je n'ai pas d'usage de gmic (parce que je ne fais presque aucun traitement d'image à part du recadrage trivial de temps en temps), donc c'est forcément plus sur l'aspect code que je regarde le projet.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: Trou de mĂ©moire

    Posté par  . En réponse au lien Go 1.18 Beta : la généricité enfin !. Évalué à 4.

    je ne vois pas comment tu peux effectuer cela avec de simples clĂ´ture

    Au lieu de manipuler directement ta structure ou ton objet, tu enrobe chaque usage par une fermeture. Le code n'a plus de lien avec le type de l'objet capturé avec la fermeture, mais avec le comportement de la fermeture elle même. C'est une sorte de pattern adapteur.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: Embrace, Extend and Extinguish

    Posté par  . En réponse au journal Manifest V3 pour les extensions de navigateurs. Évalué à 8.

    Tu sors des arguments pétés de 10 ans d'age pour Firefox, mais ça te titille que les gens sortent des arguments d'un an sur Safari ?

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll

  • [^] # Re: Embrace, Extend and Extinguish

    Posté par  . En réponse au journal Manifest V3 pour les extensions de navigateurs. Évalué à 10.

    Insidieusement en plus? Genre, t’es la, tu t’y attends pas, et paf, tu te prends une pub pour un de leur produits?!?!

    Souffle un peu. Tu as des dark pattern qui sont avérés comme ça par exemple https://www.blogdumoderateur.com/youtube-5-fois-plus-rapide-chrome/

    Rien que le fait de pouvoir implémenter des nouveautés (dans le standard ou pas) dans le navigateur et contraindre tout le monde à suivre parce qu'ils l'implémentent dans les sites parmi les plus visités c'est une forme énorme.

    Ils ont une position tellement hégémoniques que beaucoup de ce qu'ils font devient mécaniquement de l'abus de position dominante. C'est pour ce genre de raisons qu'aux US les producteurs de cinéma ne peuvent pas posséder de salles de cinéma (le décret Paramount).

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll