barmic 🦦 a écrit 5915 commentaires

  • # Petits retours

    Posté par  . En réponse à la dépêche GameShell, apprendre les rudiments du shell en s'amusant. Évalué à 4. Dernière modification le 29 mars 2021 à 10:12.

    Super idée. J'ai quelques retours, mais il faut vraiment les prendre comme des remarques. J'ai joué une vingtaines de missions et je te donne les points sur les quels ça a accroché pour moi, mais ça ne correspond pas forcément à ton besoin pour des TPs.

    • tu bidouille le ${HOME} (j'ai pas regardé comment c'était fait): j'ai l'habitude pour ce genre de choses de me créer un dossier dans /tmp pour jouer avec. Dans ce contexte faire un cd tout cours pour arriver à la racine n'est pas vraiment intuitif. D'autant que ma solution qui respectait les critères de la mission (2 ou 3 je ne sais plus aller à la racine puis ailleurs en 2 commandes) était validé. Je proposerais bien d'indiquer que le HOME est redéfini et de parler de 2 commandes cd les plus simples possibles
    • certaines mission s'intéresse plus à la manière qu'au résultat, c'est dommage quand la manière n'est pas optimale. Par exemple pour montrer les lignes 9 à 11 d'un fichier moi je fais awk '9 <= NR && NR <= 11' fichier (j'ai volontairement évité de regarder les aides en me concentrant sur les missions et comment moi je ferais)
    • la mission sur l'alias journal demande à utiliser nano avec mon vim je pouvais pas le valider :$
    • j'ai eu du mal à comprendre l'attendu dans la mission sur la falsification du tableau
    • j'ai pas compris les missions sur le calcul mentale… (je crois que c'est par là que je me suis arrêté)

    Je te conseil de créer un tag pour la version qui est joué par tes étudiants d'une année, ça aide à la traçabilité pour toi et pour les étudiants.

    Je finirais dans la journée les missions et je regarderais le code voir si j'ai d'autres remarques. Merci pour le partage

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

  • [^] # Re: « Sensationnalisme »

    Posté par  . En réponse au lien Linus Torvalds donne son point de vue sur du Rust dans le noyau Linux pour motifs de sécurité. Évalué à 3.

    Je sais pas mais Linus est réputé assez vénère quand on lui parle de langage. Ne pas se faire insulter c'est déjà une marque de importante :)

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

  • [^] # Re: « Sensationnalisme »

    Posté par  . En réponse au lien Linus Torvalds donne son point de vue sur du Rust dans le noyau Linux pour motifs de sécurité. Évalué à 4.

    Et puis clairement linux supporte des architectures que rust ne targetera jamais (voir). J'ai du mal à voir rust utilisé pour autre chose que des modules tant que linux supporte toutes ses vielles architectures et encore pas n'importe quel module.

    C'est un véritable baptême du feu pour rust. Son intégration ou non dans linux est une grosse expérimentation pour voir son interfaçage avec du C bas niveau et tout ce qui touche à l'ABI (d'autant que linux est généralement compilé avec gcc plutôt que llvm). Ce n'est pas que le langage qui va être testé mais aussi son implémentation actuelle.

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

  • [^] # Re: Perl a perdu son charme

    Posté par  . En réponse au lien Le comité de pilotage de Perl pourra-t-il sauver Perl du naufrage ?. Évalué à 4.

    Monsieur Jourdain ne connaît rien à la prose. Si tu manipule une variable tu as créé un objet. Vous faites, je présume du code qui ne crée pas de classe, qui fait peut usage de fonctions membres, mais ça n'empêche pas le langage d'implémenter tout ce que tu fais à travers un paradigme objet.

    Python à l'amabilité syntaxique de ne pas avoir trop de boilerplate contrairement à java par exemple, mais ça n'en change pas le paradigme pour autant.

    Python est un langage objet dont la syntaxe ne contraint pas à créer de classe et possède des lambdas.

    La plupart des langages permettent d'avoir le style que tu veux par dessus, ce sera potentiellement moins agréable mais c'est tout (par exemple une partie du code de linux, écrit en C, utilise un pattern objet).

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

  • [^] # Re: Perl a perdu son charme

    Posté par  . En réponse au lien Le comité de pilotage de Perl pourra-t-il sauver Perl du naufrage ?. Évalué à 3.

    Par contre je ne suis pas d'accord avec ta critique. Ça me fait penser à une conversation qu'il y avait eu au sujet de php où un non utilisateurs du langage expliquait qu'il fallait que php reste dans son coin plutôt que d'essayer d'évoluer parce que lui il préférait.

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

  • [^] # Re: Perl a perdu son charme

    Posté par  . En réponse au lien Le comité de pilotage de Perl pourra-t-il sauver Perl du naufrage ?. Évalué à 3.

    Ce n'est pas bien expliqué mais je compare à Python pour la propreté de la syntaxe et pour la grammaire vraiment objet et pas batarde.

    Ça vient de l'approche de l'existant. Python a cassé la compatibilité de son langage régulièrement là où perl prône la compatibilité avant tout. Mais je suis d'accord que je ne suis pas fan de l'implémentation objet de perl, même si j'ai vu des gens trouver ça super bien.

    Même si Python ne fait pas que de l'objet.

    A quelque détail près si.

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

  • [^] # Re: Perl a perdu son charme

    Posté par  . En réponse au lien Le comité de pilotage de Perl pourra-t-il sauver Perl du naufrage ?. Évalué à 4.

    Après, le côté purement objet de Python est sans doute à relativiser.

    C'est l'inverse, c'est le multiparadigme qui est à relativiser. Python est un langage objet, qui comme c'est la mode, a des lambdas. Avoir des lambdas n'en fait pas un langage objet tout comme les struct du C ne font pas du C un langage objet. Cela permet de s'approcher d'un style de programmation fonctionnel, mais c'est (très) loin du moindre langage fonctionnel.

    En pratique tu ne peux pas écrire de programme python sans le paradigme objet car tout est objet en python la moindre variable, le moindre entier que tu utilise est un objet.

    Pour ce qui est de l'impératif c'est particulier car tous les langages objets que j'ai pu voir ont des gros morceaux d'impératif (en fait seul les langages fonctionnels, et les langages logiques que je connais n'ont pas d'impératif).

    Après cela ne t'empêche pas d'utiliser un style fonctionnel/impératif/déclaratif/objet/… en python comme dans d'autres langages.

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

  • [^] # Re: Perl a perdu son charme

    Posté par  . En réponse au lien Le comité de pilotage de Perl pourra-t-il sauver Perl du naufrage ?. Évalué à 3.

    Tu reproche à Perl d'être trop objet en le comparant à python purement objet ?

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

  • [^] # Re: Drew ? J'ai un peu du mal avec ce type

    Posté par  . En réponse au journal Appel à contribution pour un nouveau langage !. Évalué à 5.

    Si tu regardes Linux (qui a beaucoup plus de moyens soit dit en passant), lorsqu'ils parlent d'abandonner des architectures, il y'en a toujours pour se plaindre. Mais la résolution est toujours la même : si personne n'est assez intéressé par l'archi pour s'occuper de la maintenance, dommage pour vous.

    Non les gens ne se plaignent pas pour plusieurs raisons :

    • ils abandonnent des archi vraiment très peu utilisées
    • ils mûrissent leur abandons et c'est un choix et non un effet de bord d'une volonté autre

    C'est très différents parce qu'ils peuvent te dire très précisément et posément pourquoi ils arrêtent. Ce n'est pas : "on a ajouté le support d'usb3 (du coup on abandonne ppc lol)". C'est tout le différence entre uun projet qui considère le support d'architecture comme un sujet à part entière ou comme un boulet qui le contraint.

    Je ne suis pas ce que devrait faire les dev en question, mais c'est juste que le point sur le noyau c'est pas vraiment la même façon de faire. Et c'est logique qu'ils prennent le sujet avec autant de sérieux. Pour les bibliothèques python c'est juste une mise en lumière de ce qu'est et ce que n'est pas la portabilité de python.

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

  • [^] # Re: Pourquoi ?

    Posté par  . En réponse au journal Appel à contribution pour un nouveau langage !. Évalué à 7.

    Est-ce que ça fait vraiment partie de la définition du langage ?

    Le modèle mémoire fait parti de la définition d'un langage. Le fait que certains langages aient un gc optionnel fait partie de ses fondements (alors que les langages où il existe une bibliothèque pour faire du gc est un peu différent - au même titre que tu peux implémenter un langage dans un autre -).

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

  • [^] # Re: Navigation privée ?

    Posté par  . En réponse au journal Pour ceux qui utilisent Google Chrome. Évalué à 6.

    Ce qui est génial en plus c'est que les outils de mesures de pertinence des pub c'est Google qui les fait. Il maitrise ses concurrents par le navigateur, par les outils de pertinences et par le pagerank et si vraiment c'était nécessaire android et les services google lui assure à la fois une entrée d'information et un positionnement pour placer ses pubs.

    C'est tellement lucratif qu'ils ne savent plus faire de l'argent autrement (tout projet est comparé à ce système est rien ne peut produire autant d'argent en début de vie).

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

  • [^] # Re: À bas les roues en bois

    Posté par  . En réponse au journal Du chemin à emprunter pour les développeurs débutants vers un premier emploi... . Évalué à 7.

    du code public et une explication du pourquoi, ce que ça tu as appris et comment tu t'y prendrais si tu devais le refaire ;

    Je ne suis pas forcément d'accord. Autant moi j'aime coder sur mon temps libre autant je ne me vois pas imposer ça à quelqu'un d'autres. La situation personnelle, la difficulté d'organisation ou même le goût peuvent facilement empêcher ça sans pour autant que ça me paraisse gênant dans le cadre de l'entreprise.

    éventuellement des liens vers des articles plus ou moins techniques que tu as écris

    Pareil.

    Je pense même qu'il est important de ne pas avoir que des névrosés du code (comme je peux l'être) dans une équipe. Ça contribue, entre autre, à la multiplicité des points de vu et des compétences et puis ça aide à l'équilibre au sein d'une équipe.

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

  • [^] # Re: Navigation privée ?

    Posté par  . En réponse au journal Pour ceux qui utilisent Google Chrome. Évalué à 6. Dernière modification le 24 mars 2021 à 11:56.

    Sources ? À te lire j'ai l'impression que Google a rajouté une fonctionnalité de tracking (genre ID du navigateur) et l'utilise pour le tracking.

    https://www.google.com/chrome/privacy/whitepaper.html#variations

    Promis juré il n'y a pas assez d'entropie pour qu'on vous retrouve. On ne combinera jamais ça avec d'autres données voyons.

    ce n'est pas nouveau

    Non ce qui est nouveau c'est qu'ils annoncent la mort de cookies. Ce qui les places dans une position encore plus problématique :

    • ils font parti des quelques rares qui ont assez d'info pour que le recoupement soit aussi efficace qu'un cookie
    • ils imposent à leurs concurrents publicitaires de se placer sur un terrain où google domine (avec facebook et quelques autres probablement)

    Mais non il n'y a pas d'abus de position dominante. Ce n'est pas du tout le sujet de cette plainte. Mais je ne vois pas Google annoncer tranquillement que dans 2 ans ils auront viré leur principale source d'argent s'ils n'avaient pas déjà un remplacement. Je n'ai pas lu le dossier, mais ça ne m'étonnerais pas qu'il y ai aujourd'hui des preuves que ce soit détourné.

    je doute que ça ait été inventé par Google

    Non c'est juste que c'est l'un des seuls qui peut remplacer des cookies par ce genre de technique et avoir le même niveau de précision.

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

  • [^] # Re: entrée et sortie standard

    Posté par  . En réponse au journal Lancer un logiciel distant depuis sa machine. Évalué à 3.

    Ce que je veux faire nécessiterait sûrement un script dédié à chaque commande pour remettre les arguments à la bonne place donc.

    Tu le ferrais probablement. Le passage sur la machine distante ne sera pas gratuit et faire des expérimentations autour de ffmpeg seront plutôt relou. Au final tu convergera probablement vers quelques cas d'utilisation (éventuellement paramétré) et passer par un script pour chacun est une manière de simplifier.

    Sinon comme tu n'aura de toute manière pas d'autocomplétion, tu peux faire un script générique qui prend la commande ffmpeg et remplace les input/ouput.

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

  • [^] # Re: Ouaiche

    Posté par  . En réponse au lien "Rust vs. Go: Why They’re Better Together". Évalué à 3.

    Ce qui est indécidable c'est de savoir si le cas où le dénominateur est égal à zéro peut se produire ou pas. C'est à cet énoncé que le théorème de Rice s'applique.

    Là tu cherche à prouver automatiquement qu'un code ne fera jamais de division par 0 ce qui n'est pas le sujet. Le sujet c'est de gérer le cas d'une division par 0. C'est aussi un sophisme le jusqueboutisme pour invalider ;)

    Et oui j'ai bien dis dès mon premier commentaire que ça a un coût.

    Ce qu'on trouve au mieux en pratique, c'est des outils qui font des analyses statiques pour vérifier qu'un code respecte des pratiques particulières (c'est-à-dire utilise un sous-ensemble du langage et pas le langage en général), et lorsque c'est le cas, elles peuvent nous assurent l'absence de division par zéro. C'est le genre d'approche qu'on retrouve dans certains codes critiques.

    Ou par preuve automatique ou pas écriture par automate (tu écris dans un méta langage qui va produire un code ayant forcément certaines propriétées).

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

  • [^] # Re: Pipe ?

    Posté par  . En réponse au journal Lancer un logiciel distant depuis sa machine. Évalué à 3.

    C'est pas vraiment une migration puisque les deux ont toujours existé et ne font pas vraiment la même chose.

    Je parle du fait que la commande scp ne va plus utiliser le protocole scp, mais sftp (parce que les gens sont habitué à la commande scp et que la commande sftp est affreuse - perso ça fait quelques temps que je proscrit scp au profit de rsync -).

    Mais il y a bien une déprécation pour des raisons techniques qui se résume en gros à : scp n'a aucun lien avec ssh (si ce n'est d'utiliser son tuyau, alors que sftp par contre utilise les mêmes bibliothèques) et cette implémentation bâtarde pose des soucis de sécurité et plus personne n'a la force de maintenir ça avec ce risque.

    Ça explique surtout pourquoi ils ne veulent pas le corriger. Le problème est bien décrit dans l'article tu peux exécuter une commande au travers de scp ce qui n'est pas possible avec sftp.

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

  • [^] # Re: Navigation privée ?

    Posté par  . En réponse au journal Pour ceux qui utilisent Google Chrome. Évalué à 4.

    En fait tu es sensé avoir une nouvelle session. Dans une navigation privée, tu n'es plus connecté aux sites, il n'ont plus accès à ce qui pourrait constituer un historique. Ça te rend bien moins identifiable.

    De ce que je comprends, le nouveau truc de Google c'est de ne plus utiliser les cookies et ce nouveau truc reste lui accessible. C'est assez tangent, ils créent une session fraiche de tous cookies, mais crée une autre techno qui fait la même chose et se protègent en disant qu'il n'y a jamais eu de garantie dans le mode incognito dans le sens où ça n'utilise pas des contremesures actives (tu es toujours traçable par la taille de ton écran et tout un tas de méta données).

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

  • [^] # Re: Ouaiche

    Posté par  . En réponse au lien "Rust vs. Go: Why They’re Better Together". Évalué à 3.

    Et comme on en parlait c'est tout à fait possible c'est juste que tu dois exprimer dans ton code cette sémantique. Tu disqualifie un peu vite les choses comme indécidables. Il est tout à fait possible d'écrire un programme qui vérifie qu'aucun dénominateur est égale à 0. Si vraiment tu as besoin de t'en convaincre c'est le même problème que vérifier la nullité des références ou pointeurs.

    Du coup le théorème de Rice ne s'applique pas.

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

  • [^] # Re: Pipe ?

    Posté par  . En réponse au journal Lancer un logiciel distant depuis sa machine. Évalué à 5.

    À noter d'ailleurs que scp est en cours de déprécation au profit de sftp (la commande scp elle est entrain de migrer vers sftp).

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

  • [^] # Re: Ouaiche

    Posté par  . En réponse au lien "Rust vs. Go: Why They’re Better Together". Évalué à 2.

    Pourquoi la division par zéro serait plus un bug que la division par 42 ?

    Parce qu'elle n'a pas de sens mathématiques. De la même manière que tu n'adresse pas un tableau avec des nombres imaginaires. Le Not A Number n'est qu'une représentation d'une erreur. Tu peux faire des choses avec comme avec une erreur ça n'en est pas moins une erreur.

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

  • [^] # Re: Des choux et des carottes...

    Posté par  . En réponse au lien Performance comparison: counting words in Python, Go, C++, C, AWK, Forth, and Rust. Évalué à 4.

    Pour le titre, s'il ne voulait pas comparer les langages entre-eux à la base, il aurait du choisir un truc du genre : "Performance comparison in counting words, study cases in various languages.", sinon c'est ce qu'on appelle un titre putaclick.

    Qu'il soit possible de trouver un titre qui préserve mieux ta sensibilité n'indique pas que ce titre est putaclick.

    Quand à la conclusion, la moitié est consacrée au tableau de comparaison entre langages, et ensuite viennent quelques pensées qu'il en tire, avec en premier : "I think it’s the simple, idiomatic versions that are the most telling. This is the code programmers are likely to write in real life.", alors que j'ai prouvé ci-dessus que ce n'est pas le cas, les developpeurs ne ponderont pas tous le même code dans la vie réelle, il existera des versions différentes avec des performances elles aussi bien différentes.

    Je ne suis pas d'accord. Oui il y a des façons différentes pour autant peu vont réellement diverger (sur un sujet aussi simple) et la version idiomatique va logiquement être la solution la plus fréquemment utilisée. Le fait que tu ai montré qu'il y a d'autres façons de faire n'invalide pas cela.

    Plus de la moitié du billet montre comment on mesure la performance dans chacun des langages et comment les choix fait impactes ses métriques, il n'y a aucun endroit où il parle de la performance comparer des langages. Ce n'est pas un point de vu.

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

  • [^] # Re: Ouaiche

    Posté par  . En réponse au lien "Rust vs. Go: Why They’re Better Together". Évalué à 2.

    Ce que tu dis revient juste à étendre la sémantique de la division pour donner un comportement différent à la division par zéro. Au lieu d'un crash, on aurait une valeur particulière, c'est-à-dire grosso-modo la solution numéro 2, sauf qu'en version explicite (écriture explicite de la condition) et potentiellement plus flexible (genre retourner autre chose que zéro si le dénominateur est nul, mais je vois pas trop à quoi ça servirait).

    Pas forcément, là c'était des exemples, mais ça peut être pour afficher des messages d'erreur par exemple. Il n'est pas question la division devienne une fonction totale, mais que tes fonctions qui utilisent la division soient totales. Ça peut d'ailleurs s'implémenter aussi si on considère que la division ne renvoie pas un nombre, mais un type double|NaN qu'il faudra traiter.

    Enlever ces vérifications est un problème indécidable en général et je ne pense pas qu'il y ait d'heuristique efficace pour cela dans un compilateur actuel.

    Je pense qu'il fera très bien ce que tu lui demande c'est à dire produire un code proche de l'optimal avec les sécurité que tu lui demande. C'est juste que ça peut demander de ne pas laisser le CPU faire un calcul de bout en bout sans vérification intermédiaire.

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

  • [^] # Re: Des choux et des carottes...

    Posté par  . En réponse au lien Performance comparison: counting words in Python, Go, C++, C, AWK, Forth, and Rust. Évalué à 5.

    Je veux bien entendre tes arguments, mais quand le titre est "Performance comparison: counting words in Python, Go, C++, C, AWK, Forth, and Rust", le but du jeu est clairement de comparer les perfomances entre ces langages, ce n'est pas "tiens, vu qu'on a déjà fait le truc dans plusieurs langages, on pourrait aussi les comparer tant qu'on y est".
    L'optimisation, le profilage, c'est visiblement plus un bonus que le but du jeu.

    Ce n'est pas du tout comme ça que je lis le titre ni le billet. Il ne parle pas de comparer la performance entre les langages mais dans chaque langage. Et s'il produit une liste multi langage il montre pour chacun le gain entre idiomatique et optimisé.

    Il suffit de regarder la conclusion pour s'en convaincre. Il parle même de quel langage est le plus performant, mais du fait que C++ donne des messages d'erreur affreux, qu'en C ça vaut le coût d'utiliser une bibliothèque pour ça et que python et awk sont les plus rapide (pour la partie écriture du code et pas pour la partie exécution).

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

  • [^] # Re: Ouaiche

    Posté par  . En réponse au lien "Rust vs. Go: Why They’re Better Together". Évalué à 2. Dernière modification le 22 mars 2021 à 12:22.

    La première solution est impossible dans un langage généraliste, car dans ces langages, c'est un problème indécidable.

    Si c'est possible, c'est juste que le compilateur t'interdit une division s'il ne peut pas s'assurer que le dénominateur n'est pas 0.

    Donc

    a = b / c
    

    ne compile pas dans le cas général, il faut écrire des trucs du genre :

    a = c != 0 ? b / c : 0
    

    Et oui ça peux devenir relou dans tu as un truc du genre :

    Ça t'oblige à déstructurer ton calcul et si le langage et le compilateur sont pas au poil tu peut perdre en performance (il faut qu'il puisse virer les vérification à la compilation pour reconstruire l'opération).

    Sachant que de base tout ce qui va cacher pour toi (en attrapant l'interruption ou en faisant la vérification pour toi) va consommer de la ressource.

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

  • [^] # Re: c'est deja un beau résultat

    Posté par  . En réponse au journal Zébulon. Évalué à 6.

    Bravo pour le jeu :)

    Autre amélioration : depuis une échelle, si on est pas exactement au bon niveau on a pas le droit de descendre. Souvent les jeux acceptent ce genre d'imperfection (c'est ce que l'on appelle les coreloops).

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