barmic a écrit 927 commentaires

  • [^] # Re: Expressivité

    Posté par  . En réponse au journal Les 7 étapes pour devenir un programmeur Go.. Évalué à 3. Dernière modification le 25 mars 2019 à 16:56.

    Tu pourrais être plus explicite ? Je ne vois pas en quoi le fait de favoriser "une façon évidente et si possible unique" de faire une tâche nuit à l'expressivité du langage. Au contraire, si il y une façon évidente et unique de faire une tâche, tout le monde va utiliser cette façon et l'intention du programmeur sera claire.

    Les différentes structures proches, mais ayant potentiellement une sémantique (au sens de notre lecture du programme et pas au sens de la manière dont il est interprété par son compilateur) aide le développeur à exprimer ce qu'il souhaite représenter. Une condition, ça peut permettre d'exprimer des cas d'erreur, de gérer des valeurs par défaut (qui ne sont pas des erreurs), peuvent remplacer du polymorphisme,… on peut trouver tout un tas de sémantiques différentes. D'un point de vu purement machine ça reste un saut conditionnel, mais pour notre compréhension il peut être utile d'avoir des représentations différentes. On peut trouver dans différents langages les if, unless, switch, l'opérateur ternaire, des opérateurs de déréférencement null-safe, du pattern matching, le given de perl est une sorte de pattern matching bizarre, bash a ${identifiant:-defaultValue} et d'autres, etc. Ce sont autant de constructions qui permette au développeur d'exprimer des choses différentes, alors qu'elles sont compilée (ou du moins compilables) en un simple saut conditionnel.

    En écrivant ce paragraphe, je crois me souvenir que c'est théorisé le lien existant ou non entre la complexité d'une langue et son expressivité.

    Tu n'a pas réagi sur mon exemple pourtant ?

    C'est un exemple et pas un argument. Des exemples on peut en sortir une infinité qui vont montrer ce que l'on veut. Je ne vois pas comment établir quoi que ce soit à partir de simples exemples.

    C++, c'est pas le langage où quand on veut faire une classe copiable, il faut définir 4 méthodes différentes ? Mais pas de boiler-plate hein ?

    La question me semble plus intéressante qu'il n'y paraît. C'est quoi une classe copiable ? Faire une deep/shall copy ? On parle juste de copier la référence ? S'il s'agit juste de faire de la copie de référence comme la plupart des langages le font, tu n'a pas besoin de ces 4 méthode.

    Après oui le C++ n'est pas le langage le plus concis qui existe (c'est ce que tu voulais me faire dire ?) et le python n'est pas le langage le plus verbeux (c'est l'autre truc que tu voulais me faire dire ?).

  • [^] # Re: Expressivité

    Posté par  . En réponse au journal Les 7 étapes pour devenir un programmeur Go.. Évalué à 2. Dernière modification le 25 mars 2019 à 14:43.

    Les langages dits de «haut niveau» (typiquement les langages interprétés) sont souvent très concis, au contraire.

    Ce n'est pas une question de haut ou bas niveau. AMHA Perl et ruby sont bien plus expressif que python qui lui établi une bonne façon de faire et cherche la simplicité du code.

    Au contraire, un langage comme C++ est extrêmement verbeux. La preuve, c'est qu'une partie substantielle de ses évolutions ont consisté à diminuer sa verbosité, ou plus exactement à la masquer (l'inférence de type, par exemple).

    La métaprogrammation a toujours était une base du C++ est c'est un outil de génération de code. Il n'y a rien de neuf là dedans.

    C++ est un langage extrêmement verbeux ; on peut se retrouver à écrire des pages de code complètement trivial pour implémenter les méthodes d'une classe, ou une série de constructeurs de copie et d'opérateurs d'affectation.

    Ces constructions ont presque toutes une forme condensée qui me semble plutôt légère. Là où la tentative d'être explicite en python en plus de la volonté de garder une syntaxe triviale empêche d'avoir de nouvelles constructions légères.

  • [^] # Re: Expressivité

    Posté par  . En réponse au journal Les 7 étapes pour devenir un programmeur Go.. Évalué à 2.

    J'exprime mon désaccord sur les deux points:

    C'est assez subjectif et je peux tout à fait me tromper :)

    Python est au contraire un langage très expressif, le programmeur peut manifester son intention en très peu de lignes de code. Le boiler-plate code en Python est quasiment inexistant.

    Hum… Certaines choses comme l'une des règles du Zen of python : « There should be one-- and preferably only one --obvious way to do it ». Ne vont pas vraiment dans ce sens. J'ai tendance à toujours le comparer à perl qui a la règle parfaitement inverse, le TMTOWTDI.

    A l'opposé, à chaque fois que j'utilise la STL en C++, mes yeux pleurent, je me dis que 120 colonnes pour une ligne, c'est bien peu quand tu veux manipuler une structure un tant soit peu élaborée.

    Hum… Je n'ai pas trop cette sensation (encore une fois je peux me planter). Quand je vois les exemples de serge_sans_paille je ne vois pas de boiller plate justement.

    Alors, certes, en C++11, on peut faire plus compact en utilisant des auto et surement avec d'autres trucs (lambda ? foreach ?). Mais tout le monde ne les connait pas.

    Et depuis il y a le C++ 14 et 17, les fonctionnalités de C++20 sont aussi déjà établies. Mais ça c'est la complexité du langage. Scala est très complexe, mais très expressif.

  • [^] # Re: Expressivité

    Posté par  . En réponse au journal Les 7 étapes pour devenir un programmeur Go.. Évalué à 4.

    Je met le C++ dans la catégorie des langages qui ont une haute expressivité. Ces langages sont généralement plus concis que leur homologues plus simples.

    Et oui le C++ est plutôt concis amha et il le devient de plus en plus. Je ne connais pas d'autres langages qui puisse exprimer la même chose, certains s'en approchent avec beaucoup plus de boilerplate. La métaprogrammation aide beaucoup à être concis (même si dans bien des cas c'est au détriment de la lisibilité). LA possibilité de redéfinir les opérateurs peut aussi rendre un code plus concis.

    La notion de lisibilité elle-même est assez complexe. Est-il plus lisible d'écrire des pages de phrases de 3 mots (sujet + verbe + complément et juste quelques verbes différents) ou un paragraphe de phrases plus complexe ? Probablement quelque chose entre les 2. Chaque langage fais un choix entre expressivité et simplicité. Le boulot du développeur c'est de comprendre la logique de son outil pour tomber ni dans l'over engineering ni dans la primitive obsession.

  • # Expressivité

    Posté par  . En réponse au journal Les 7 étapes pour devenir un programmeur Go.. Évalué à 6.

    C'est une éloge à l'inéxpréssivité. C'est loin d'être le seul langage qui suit cette voie Pascal et Python sont dans ce train là. Ça permet de n'avoir que du code trivial, sans particularité. N'importe qui peut prendre n'importe quel code sans encombre. Mais ça produit un max de boiler plate et le manque de concision peut poser des problèmes de lisibilité.

    D'autres langages cherchent au contraire l'expréssivité maximale comme scala, c++ ou ocaml. Leur idée c'est qu'il faut que le programme reflète la vision du programmeur pour qu'il donne un maximum d'informations au compilateur qui saura en tirer partie. Mais c'est des langages plus complexe à apprendre au final.

    Les 2 approches ont du sens, il faut juste savoir embrasser la philosophie de la techno que tu utilise encore une fois ça n'a pas de rapport avec go

  • # Bof

    Posté par  . En réponse au journal Les 7 étapes pour devenir un programmeur Go.. Évalué à 8.

    Beaucoup de mot pour dire qu'il faut utiliser les choses à vin escient. Ça marche pour tous les langages, toutes les techno et un peu tout dans la vie.

    Il y avait une blague là dessus dans le temps avec une suite de phrases :
    "j'avais un problème, j'ai décidé d'utiliser x, j'ai eu…". Par exemple "j'avais un problème, j'ai utilisé java, j'ai eu une AbstractFactory de problèmes".

  • [^] # Re: Pas de craintes

    Posté par  . En réponse au journal F5 achète NGINX. Évalué à 2.

    Si F5 rachète Nginx, c,est surtout parce que ce dernier est une grosse épine dans le pied de BIG-IP !

    En quoi ? Je pense qu'aucun utilisateur de nginx n'est un potentiel client F5 (sinon ils commenceraient par aller voir haproxy par exemple).

  • [^] # Re: Mécréants

    Posté par  . En réponse au journal Hors sujet mais ... : il y a 775 ans .... Évalué à 5.

    Je ne connais pas très bien, mais quel est l'organisation hiérarchique musulmane ? Il me semble que c'est l'Etat français qui cherche à créer une organisation nationale musulmane, mais que ça reste artificiel. Il me semble que salafistes ont pour principe que rien ne se place entre dieu et eux.

  • [^] # Re: Pas de craintes

    Posté par  . En réponse au journal F5 achète NGINX. Évalué à 4.

    Connaissant bien les produits F5, j'ai tout de meme du mal a comprendre leur stratégie.

    En quoi ils sont concurrents ?

    Les produits F5 sont drastiquement plus performants que ce que peut proposer nginx (haproxy et sozu peuvent peut être essayer de rivaliser, mais ils sont bien loin derrière). nginx a bien plus de fonctionnalités que F5 (pareil que pour haproxy), il est utilisable directement comme serveur web, il est personnalisable en lua, etc.

    Les 2 peuvent faire du load balancing, ok, mais c'est pas parce qu'un vélo et une voiture roulent que Décathlon est un concurrent direct de Nissan ou Ford.

  • # Certificats

    Posté par  . En réponse au journal Installer Drupal automatiquement avec Ansible et Drush sous Debian. Évalué à 4.

    Les certificates sont […] sauvegardés sur la machine où tourne Ansible.

    Les clefs privées ne devraient pas sortir de la machine où elles sont générée et exploité. Si tu les perds il faut simplement en générer de nouveaux.

  • [^] # Re: Sécurité

    Posté par  . En réponse au journal Lancer un programme sans accès au réseau, merci les espaces de noms réseaux. Évalué à 2.

    Tu mélange des choix plutôt incongrus avec des trucs plus intéressants… Ce qui est important pour la sécurité d'une distribution c'est son processus de qualité. Ont-t'ils des gens qui ne sont là que pour la sécurité ? Que font-t'ils ? Quel est le temps de propagation des fix upstream ? Y a t'il des audits réguliers ? C'est des sujets bien plus objectifs que de choisir au doigts mouillé si une faille plus ou moins médiatisée. L’absence de faille est un leurre. Si un logiciel n'a jamais eu de faille, comment savoir ce qu'il va se passer quand il y en aura une ? Est-ce que la fierté des mainteneurs ne les empêchera pas de l'annoncer ? Est-ce qu'il y a un bug bounty sur le logiciel ou la distribution ?

    Les processus humains sont objectivement comparables et c'est bien.

    Une bibliothèque de remplacement plus robuste qu’OpenSSL, par exemple, peut être un critère.

    Pourquoi pour OpenSSL et pas OpenSSH, le shell par défaut ou je ne sais quoi d'autres. Tu montre des arguments très emprunt du marketing classique (systemd, openssl,…). C'est dangereux de faire des choix qu'on espère fiables sur des bases aussi fragiles. Pour OpenSSL la façon de l'utiliser peut avoir un impact. Par exemple OpenBSD n'a pas attendu la fameuse faille pour ne pas laisser OpenSSL décoder les certificats ASN1 si je ne m'abuse. Pour être un peu plus fiable avec ton approche par logiciel au doigt mouillé il faudrait lister tous les paquets installé et regarder les différences ce qui n'est pas vraiment tenable

  • [^] # Re: Des insultes jugées pertinentes, vraiment?

    Posté par  . En réponse au journal Microsoft publie sous licence MIT les sources de la calculatrice de Windows. Évalué à 5.

    Mais par quel miracle en déduis-tu que toutes les violences se valent, et sont toutes aussi graves?

    Hum… Tu as raison, ce que je voulais exprimer c'est plus qu'il faut remettre en question ou en contexte le premier effet qui saute aux yeux. Parce qu'il y a un certains nombres de biais qui peuvent entrer en jeu et qui rendent notre jugement pas aussi pertinent que ce que l'on voudrait.

    Mon point n'est pas de remplacer une morale par une autre, juste de nuancer une vision qui me paraît simpliste. La violence c'est quelque chose de vraiment subjectif.

    Et surtout, je trouve que ça ne justifiera jamais la violence physique[…]

    Premièrement la question n'est pas de justifier mais de questionner.
    Deuxièmement je ne suis pas très à l'aise avec cette forme de sacralisation. Toute violence physique est au dessus d'autres forme de violence ? Réellement ? Affirmer que ça n'a pas à être sacraliser ce n'est pas dire que ce n'est pas grave, c'est dire que ce n'est pas parce que c'est physique que c'est plus grave, mais que c'est plus complexe que ça.

  • [^] # Re: Des insultes jugées pertinentes, vraiment?

    Posté par  . En réponse au journal Microsoft publie sous licence MIT les sources de la calculatrice de Windows. Évalué à 7.

    Je rebondis parce que ça me paraît particulièrement intéressant.

    On a souvent tendance à considérer des méthodes prosaïques/basiques comme particulièrement brutales et mauvaises. Une insulte, un coup de point, bloquer des rond-points,… c'est des méthodes visiblement violentes. Et toute une classe de la population s'arrête à cette visibilité.

    C'est oublier qu'il y a bien des moyens d'être violents, potentiellement beaucoup plus qu'avec quelques insultes. Le harcèlement1 peut faire largement plus de mal que des insultes, mais ce n'est pas une violence aussi visible. Voir ses aides sociales se réduire et voir son niveau de vie se détériorer est bien plus violent qu'une manifestation même illégale.

    Bref tout ça pour dire que je prend avec des pincettes les gens qui montent rapidement sur leur grands chevaux pour de la forme. La violence ce n'est pas une question de forme.


    1. comme on en parle beaucoup maintenant avec la ligue du lol 

  • [^] # Re: Comment ça se compile?

    Posté par  . En réponse au journal Microsoft publie sous licence MIT les sources de la calculatrice de Windows. Évalué à 3.

    Le seul endroit où j'ai vu cette distinction c'est dans les dépôt contrib de Debian

  • [^] # Re: Comment ça se compile?

    Posté par  . En réponse au journal Microsoft publie sous licence MIT les sources de la calculatrice de Windows. Évalué à 10.

    c'est une histoire de compatibilité avec C#, un truc comme ça?

    Il y a autant de rapport entre C++ et C# qu'entre Java et Javascript → un préfixe.

  • [^] # Re: Comment fonctionne "OOM Killer" et la gestion de la saturation du processeur et de la mémoire ?

    Posté par  . En réponse à la dépêche Sortie du noyau Linux 5.0. Évalué à 3.

    J’ai pas mal d’onglets ouverts, genre plus de 70 avec chromium, qui n’est pas mon navigateur principal (l’extension Lazy Tabs évite qu’il consomme directement la mémoire à lui tout seul), beaucoup plus avec Firefox (configuré aussi pour ne pas charger les onglets avant qu’on y accède ; pas besoin d’extension, c’est dans les préférences).

    C'est énorme… Le fait que les navigateurs se découpent maintenant en thread système doit aider, mais c'est pas magique non plus. Linux ne peux pas beaucoup t'aider tel quel. Mais je pense que si tu utilise différentes instances de navigateurs pour séparer tes onglets les plus lourds linux pourra avoir un meilleur scheduling et mieux séparer les ressources. L'étape suivante, si nécessaire, étant de lancer ces instances dans des cgroups distincts. Ça n'est pas forcément très compliqué, mais tu peux probablement fortement améliorer l'utilisabilité de ton installation.

  • [^] # Re: La méthode la plus sûre

    Posté par  . En réponse au journal Lancer un programme sans accès au réseau, merci les espaces de noms réseaux. Évalué à 2.

    administrateur c'est toi

    C'est bien ce qui est dangereux.

    aucun partage de ressource

    Je ne m'en suis pas servi récemment, mais j'ai déjà vu des installations fraîches avec le partage du tampon (c'est pratique de pouvoir faire des copier/coller).

    Encore une dernière fois : tu peux utiliser les trucs les plus sécurisés du monde, si tu ne fais pas attention il existe toujours un risque. L'important c'est de savoir juger ce risque par rapport à tes craintes.

  • [^] # Re: Comment fonctionne "OOM Killer" et la gestion de la saturation du processeur et de la mémoire ?

    Posté par  . En réponse à la dépêche Sortie du noyau Linux 5.0. Évalué à 3.

    Quand on n’arrive plus à reprendre la main sur le système, c’est parce qu’il swappe à mort. J’ai parfois le même cas que lejocelyn sur une bécane qui n’a que 4 Go.

    J'ai une machine qui n'a que 2Gio de DDR2 et je n'ai jamais eu ce comportement. Ce n'est pas toujours confort, surtout quand on a l'habitude de machine qui ont 16Gio. J'ai rien configuré de particulier. Juste pour que ce soit plus confortable j'ai arrêté d'utiliser un webmail au profit d'un MUA natif, mais même sans ça je n'ai pas eu de plantage comme vous en parlez.

    Vous avez passé un coup de memcheck quelques heures pour vérifier qu'il n'y a pas de problème matériel ?

  • [^] # Re: La méthode la plus sûre

    Posté par  . En réponse au journal Lancer un programme sans accès au réseau, merci les espaces de noms réseaux. Évalué à 2.

    Quand c'est pas l'hyperviseur, ça peut tout simplement être l'administrateur qui l'a mal configuré (par exemple en laissant trop de ressources ou en partageant une partie du disque).

    Se dire « j'ai cliqué sur Virtualbox, donc c'est sécurisé, j'ai plus besoin de réfléchir », c'est potentiellement très dangereux.
    L'impression de sécurité c'est, amha, le mal absolu.

    Encore une fois on est d'accord que c'est largement plus sûr que les namespaces linux ou les jails bsd.

  • [^] # Re: Plateforme communautaire

    Posté par  . En réponse au journal Données Libres : Analyse critique de l’open data. Évalué à 2.

    Je trouve élitiste de ne pas simplifier l’accès (car cela ne pourra l'être que par des "experts").

    Sors ton rasoir d'Ockham, ce n'est pas de l'élitisme juste un travaille qui n'est pas fait. Maintenir des outils simples est un travaille véritablement complexe qu'il ne faut pas sous estimer. Puisque tu aime cette analogie, c'est comme créer une communauté ça n'a rien de simple du tout et il ne faut pas voir négativement les gens qui ne se lancent pas là dedans.

    Pour faire des réunions fréquentes avec des acteurs, c'est aussi ce qui les intéresse, mais ils n'ont pas la maîtrise de l'outil, ni de piste pour s'approprier cela. Et non, on a pas forcément envie / le temps / l'argent pour des petites assos, d'apprendre à coder ou payer quelqu'un pour utiliser un outil qui pourrait nous servir.

    Ni d'aller vois l'hacker space ni le LUG, JUG, *UG du coin ? C'est dommage pour eux.

    Pour s'ouvrir au plus grand nombre, une plate-forme commune d'outils et de tutoriels serait faisable, pas la peine d'avoir un suivi de ouf, mais une communauté qui s'entraide.

    L'important de mon commentaire c'est d'inverser le travail. Au lieu de lister ce dont tu voudrais disposer, expliquer ce qui pourrait être fait, pas forcément par les fournisseurs de données initiaux.

  • [^] # Re: La méthode la plus sûre

    Posté par  . En réponse au journal Lancer un programme sans accès au réseau, merci les espaces de noms réseaux. Évalué à 4.

    Tu as un environnement 100% isolé[…]

    Non. Tu as un environnement largement plus isolé, mais tu n'es pas à l'abri d'une faille de l'hyperviseur.

    Juste pour rappeler que le risque 0 n'existe pas.

  • [^] # Re: Deux autres pistes

    Posté par  . En réponse au journal Lancer un programme sans accès au réseau, merci les espaces de noms réseaux. Évalué à 9.

    L'intérêt des namespaces c'est qu'il n'y a pas d'hypothèse de base, c'est juste linux et la commande ip devrait être dispo dans la majorité des installations minimales car c'est elle qui déprécie ifconfig si je ne m'abuse.

  • [^] # Re: Des soucis classiques

    Posté par  . En réponse au journal Ma première vidéo. Évalué à 2.

    La plupart des cours d'informatique que j'ai eu l'occasion de voir sont par nature très [difficile?] à suivre sans support visuel (le code et son rendu).

    Je trouve que c'est vrai surtout pour des tuto : des trucs en mode recette de cuisine. Beaucoup moins quand tu parle d'architecture ou même simplement de concepts. Beaucoup de conférences ont peu ou pas de code et pas forcément de schémas. Regarde les gros commentaires de kantiens sur la logique formelle et/ou son application en programmation fonctionnelle. Il y a peu de code et ce n'est pas forcément le plus important.

    Il faut adapter son contenu à son support. Si tu as besoin de beaucoup de code ce n'est pas forcément le bon support, mais apprendre le développement logiciel ce n'est pas une succession de bloque de code à lire.

  • [^] # Re: Des soucis classiques

    Posté par  . En réponse au journal Ma première vidéo. Évalué à 2.

    Si je peux me permettre :

    Le format vidéo est difficilement accessible à certaines formes de handicap, en particulier s’il n’a pas été conçu pour (exemple : une vidéo avec l’image et le son qui se complète n’est accessible ni aux aveugles, ni aux sourds, parce qu’il manque dans les deux cas une partie de l’information). C’est d’autant plus dommage que le développement informatique peut se pratiquer malgré de sérieux handicaps (en étant totalement aveugle ou sourd, par exemple).

    C'est difficilement accessible à certaines personnes. Pour d'autres souffrant par exemple de trouble de l'attention ça peut être salvateur. Ça peut aussi permettre de suivre un cours ou un sujet juste à l'écoute.

    La relecture par des tiers est assez délicate : soit il faut intervenir très en amont (au moment du script) mais le travail à postériori n’est pas vérifié ; soit il faut revoir la vidéo presque finie, mais les corrections seront lourdes ; et idéalement les deux ce qui est long.

    Youtube permet d'ajouter des overlay assez facilement et bon nombre de youtubeurs font des retouches post prod.

    On ne peut pas rechercher dans une vidéo. C’est particulièrement gênant dans le développement où on a souvent besoin d’informations sur un point très précis.

    Le chapitrage comme le font certains peut être efficace. Cela dépend de la façon dont est montée la vidéo.

    Mais surtout :

    Je ne considère que le cas du développement informatique ! Avec d’autres sujets, il faut rectifier certains arguments !

    Modifier son prompt c'est du développement ?

  • [^] # Re: Quel dommage !

    Posté par  . En réponse au journal Ma première vidéo. Évalué à 6.

    Ou alors les gens qui ont entendu parlé de Peeetube savent déjà configurer un prompt ? Je ne sais pas