BFG a écrit 897 commentaires

  • [^] # Re: Autre charade

    Posté par  . En réponse au journal Une charade. Évalué à 3.

    cul-de-jatte qui descend la rue des martyrs en courant 

    J'ignorais que les culs-de-jatte avaient la capacité de courir.

  • [^] # Re: Séquence d'échappement

    Posté par  . En réponse au message J'adore Debian et autres ; bug rigolo. Évalué à 2.

    Ce que je crois comprendre c’est que lorsque que l’utilisateur envoie son BREAK (avec Ctrl+c) c’est d’abord la redirection qui se termine, puis le cat

    Cela ne se passe pas ainsi.

    Quand on a tapé une commande sans redirection et qu'on presse entrée, le shell effectue d'abord un appel système fork() (man 2 fork), ce qui clone le processus du shell, sa mémoire, ses descripteurs de fichiers (dont stdin, stdout et stderr) et l'endroit où il en est dans le programme.
    Ensuite, le shell original se contente d'attendre la fin du nouveau processus.
    Pendant ce temps, le sous processus (qui est encore un shell) effectue l'appel système execve (man 2 execve) qui charge un nouveau programme et remplace tout le processus par ce nouveau programme (en l'occurence, la commande tapée par l'utilisateur). Le nouveau programme va alors utiliser les mêmes stdin, stdout et stderr que son parent, à savoir, le terminal.
    Une fois l'appel execve fait, le sous-processus n'exécute plus du tout un shell et ses entrées sorties ne sont donc plus contrôlées par le shell. À moins que cat lui-même ne décide de changer ses entrées/sorties standard, il écrira vers le terminal.

    Si la commande tapée contenait une redirection, la séquence est à peu près la même, à part qu'après le fork(), le sous-processus (qui est encore un shell), va rediriger sa propre sortie standard (et seulement la sienne) vers un fichier avant de faire le execve : le sous-processus du shell va ouvrir le fichier demandé (et quitter si le fichier ne peut être ouvert, sans faire execve), puis faire la redirection avec l'appel dup2 (man 2 dup2). Ainsi, quand il appellera execve, cat écrira vers le fichier quand il écrira vers sa sortie standard, au lieu du terminal.
    Aussi, comme pour le cas précédent, après execve, le shell n'aura plus la main sur le processus cat.

    En bref, il n'est pas possible pour le shell de "stopper la redirection" d'un autre processus.

    Je pense que nous n'avons pas la commande exacte tapée par DaVi, comme le dit le fil précédent.

  • # Séquence d'échappement

    Posté par  . En réponse au message J'adore Debian et autres ; bug rigolo. Évalué à 4.

    Ce qui cause cet affichage est une séquence d'échappement du terminal.
    Les séquences d'échappement sont des séquences d'octets particulières permettant de modifier l'affichage de diverses façons. Parmi les plus courantes, on trouve de quoi changer la couleur de la police, déplacer le curseur texte à une position particulière, ou changer le titre du terminal. Le générateur aléatoire peut tout à fait produire de telle séquences, qui affecteront votre terminal.

    La séquence qui a eu cet effet drastique est probablement celle qui change le jeu de caractères.
    Vous pouvez tester (attention le terminal deviendra difficile à lire) : printf "\033(0ceci est un test\n"
    Pour rétablir le terminal taper ceci (à l'aveugle) : printf "\033(B\n", ou taper la commande reset.

  • # Documentation

    Posté par  . En réponse au journal 'Epeios organizer' : l'interface Web. Évalué à 4.

    À un moment, il faut se poser et écrire de la documentation, avec des schémas, de petits exemples (pas des projets complets). Plus le projet est complexe, plus il en faudra.
    Il faut expliquer très progressivement les notions, sans assommer le lecteur en alignant dix acronymes inconnus dans la même phrase. Il faudrait aussi que ça reste un peu concret et palpable tout le long, pour éviter qu'on ne comprenne réellement qu'à la fin.
    Et il faut faire relire ladite documentation par d'autres personnes, souvent, pour être sûr que cela reste compréhensible pour quelqu'un d'extérieur.
    Il vous faudrait au moins une sorte de tutoriel.

    Ne le prenez pas mal, mais là, c'est franchement imbitable.

  • [^] # Re: Non à l'obscurantisme

    Posté par  . En réponse au journal Retour sur le « No poo ». Évalué à 10.

    "Naturel"/"Chimique" ne sont pas termes vraiment adaptés pour un débat, "[non-]produit par l'homme" est probablement plus adapté.

    Artificial

  • [^] # Re: Non à l'obscurantisme

    Posté par  . En réponse au journal Retour sur le « No poo ». Évalué à 3.

    Donc on a une petite idée de ce qu'il y a dedans!

    La liste des produits est présente, mais bien peu de gens sont informés de ce que font réellement les produits en question. M. Michu a toujours utilisé ces shampoings, tout comme sa famille et ses amis, et n'a jamais remarqué de problème particulier avec, pourquoi s'en préoccuper ? Pourtant ces produits ne sont pas blancs comme neige comme le montre le documentaire pointé au dessus.

    Dans la nourriture, certains produits ne sont même pas indiqués car la législation n'a pas encore eu le temps de s'adapter, alors elle n'en est certainement pas à se demander si certains de ces derniers doivent être régulés.

    Ce qui est appelé "obscurantisme" dans ce fil ne vise qu'à tourner en ridicule des questionnements pourtant légitimes.

  • [^] # Re: Quelques questions

    Posté par  . En réponse au journal Lancement de mes pages Tipeee et Liberapay. Évalué à 3.

    faudra que je modifie le truc pour permettre d'accéder directement à l'onglet

    En effet, sans javascript, les "liens" semblent inopérants, alors qu'une simple #ancre HTML aurait suffi.
    J'ai récemment lu cet article concernant le manque grandissant de mode simplifié/sans javascript (terme plus heureux que "mode dégradé" car c'est souvent sans réelle dégradation) sur la plupart des sites web, et les conséquences.

  • [^] # Re: Stats

    Posté par  . En réponse au journal Harcèlement moral et poursuite des dirigeants. . Évalué à 10.

    Par définition, les employés de France Télécom ont un emploi, et il calcule donc le nombre théorique de suicides que prédit ce taux sur la période observée. Conclusion : si France Télécom était comparable à la population française, on aurait observé une fois et demie plus de suicides.

    La population française ne se suicide généralement pas sur son lieu de travail. Quand on se suicide sur son lieu de travail, c'est un message très fort en soi.

  • [^] # Re: Tu oublies l'un des principes de SMTP

    Posté par  . En réponse au journal Meta chat. Évalué à 8.

    Les réseaux sociaux, c'est un peu comme tout: utilisés sciemment, en ayant conscience des risques, ça peut être un outil tout à fait acceptable.

    On parle d'enfants, qui pourront comprendre un peu avec des explications qu'on leur donnera, mais qui manqueront de recul pour vraiment apprécier les arguments, et mesurer tous les risques.

  • [^] # Re: Ironique

    Posté par  . En réponse au journal Bibliothèque d'Alexandrie des logiciels libres. Évalué à 4.

    je ne suis pas sûr, mais 70 ans (en France) après la mort des auteurs, la licence deviendra du domaine public (à vérifier si le droit d'auteur s'applique effectivement pour du logiciel, ce que je crois, même s'il y a quelques différences).

    Qu'en est-il si le code a été écrit par une société ? Même si les auteurs conservent leur droit moral, le nom de (des) auteur(s) n'est souvent pas écrit dans le code écrit par une société.

  • [^] # Re: Phrase générique

    Posté par  . En réponse au journal Le Directeur général de Comodo à propos de la marque déposée "Let's Encrypt". Évalué à 3.

    D'après votre article, ils s'étaient pourtant mis d'accord sans procès depuis longtemps puis ils ont violé l'accord :

    La cour s'est appuyée sur un accord de coexistence signé en 1988 entre les deux parties, selon lequel Vortex s'engageait à ne pas utiliser le mot «Sky» seul ou en combinaison avec tout autre terme que «Skyrock», en France ou à l'étranger.

  • [^] # Re: Ne pas tout mélanger.

    Posté par  . En réponse au message Licences, GPL-3, diffusion etc. Évalué à 3.

    Concernant la GPL et les greffons, voir cette question et les suivantes de la FAQ GPL.

  • [^] # Re: Space Marine

    Posté par  . En réponse au journal Quake. Vingt ans déjà. Évalué à 5.

    Dans Doom et Doom II, le protagoniste n'est jamais sur Mars.
    Dans Quake et Quake II non plus. Les personnages joués sont Ranger et Bitterman, pas Sarge. Le "Doom guy" est aussi jouable dans Quake III.

  • [^] # Re: APFS

    Posté par  . En réponse au journal Le malaise.. Évalué à 6.

    Non, les licences BSD (du moins, pas celle à 4 clauses) et MIT sont compatibles GPL, alors que la CDDL et la GPL sont mutuellement incompatibles.

  • [^] # Re: APFS

    Posté par  . En réponse au journal Le malaise.. Évalué à 6.

    Non, il parle de la CDDL de ZFS qui est incompatible avec la GPL de Linux.

  • [^] # Re: je regarde aussi

    Posté par  . En réponse au journal UnaOS - UnaPhone - Un smartphone axé autour de la vie privée ?. Évalué à 1.

    Et oui, pour une majorité d'utilisateurs, c'est une aide précieuse pour faire un choix, le nier relève de la simple mauvaise foi.

    Pour certaines catégories d'applications où l'apparence a une grande importance, comme les jeux (comme dit par groumly), je concède que cela est utile. Pour le reste en revanche, il est possible que cela desserve une bonne application sous prétexte qu'elle n'aurait pas la bonne apparence ou que-sais-je.

    Quand une dépêche annonce la sortie d'un nouveau soft ou d'une nouvelle version sur LinuxFr, il n'y a qu'à regarder le nombre de clics à côté du lien "copies d'écran", s'il est présent.

    En mettant de coté la validité des arguments sur l'aide des captures d'écrans, je pense qu'ici la comparaison est limitée :

    • une dépêche linuxfr qui parle d'un logiciel qu'on ne cherchait pas forcément, dont on lit un article à propos de lui car linuxfr vient de publier ledit article et qu'on n'installera probablement pas car on n'avait pas besoin du logiciel en question
    • une recherche que l'on effectue sur f-droid pour obtenir un logiciel qui remplirait une tâche donnera plusieurs résultats, et l'on peut les installer/tester en quelques clics seulement, et j'ajouterai que comme on a besoin de l'un de ces logiciels, on a intrinsèquement plus de temps à y consacrer
  • [^] # Re: Nom de domaine dans quels TLD ?

    Posté par  . En réponse à la dépêche Cozy Cloud lève 4 millions d'euros (pour faire du libre). Évalué à 3.

    Que se passe-t-il si l'on a un cozycloud hébergé à la MAIF puis que l'on cesse de devenir client de la MAIF ?

    Le problème n'est-il pas le même qu'utiliser l'adresse de courrier électronique fournie par son fournisseur d'accès internet ? Il faut prévenir tout le monde qu'on a changé d'adresse, alors qu'en possédant son propre nom de domaine, on peut changer d'hébergeur sans pour autant changer d'adresse.

  • [^] # Re: je regarde aussi

    Posté par  . En réponse au journal UnaOS - UnaPhone - Un smartphone axé autour de la vie privée ?. Évalué à 8.

    *F-droid est nul par rapport aux stores classiques: pas de capture d'écran, pas de retour des utilisateurs ou de votes des utilisateurs.

    apt-get ne donne pas de capture d'écran ni de votes utilisateurs, est-ce que c'est nul pour autant ?

    Les applications sur f-droid sont libres et les mouchards ont été retirés. Partant de là, vous pouvez bien vous fendre d'une installation, d'un test rapide de l'application voulue, et une éventuelle désinstallation si elle ne vous convient pas. Vous n'aurez pas pollué votre téléphone outre mesure.

    On peut aussi douter de la pertinence des avis utilisateurs quand les utilisateurs mettent une note très basse alors qu'ils n'ont pas passé plus de 30 secondes à tenter d'utiliser l'application (comme sur le playstore).

  • [^] # Re: Ticket de métro

    Posté par  . En réponse au journal La Suède abandonne les paiements en espèce — ne devrait-on pas s'en inquiéter?. Évalué à 3.

    C'est forcément un truc par zone

    Il me semble que depuis septembre 2015, les zones ont été supprimées pour les navigos.

    Par contre, le navigo n'est pas anonyme, même le "navigo découverte" demande d'inscrire son nom et coller sa photo sur la carte, ce qui empêche de transmettre sa carte à une autre personne.

  • [^] # Re: glacier

    Posté par  . En réponse au journal Du stockage en ligne (encore). Évalué à 2.

    Voir par exemple cet article.

  • [^] # Re: Cible manquée ?

    Posté par  . En réponse au journal Electronic Real World : Internet Packet Life. Évalué à 10. Dernière modification le 07 avril 2016 à 00:32.

    Prenons la toute première case.

    En lumière des autres commentaires, je pense avoir compris qu'un clic (le curseur) sur une page web (le texte sous forme de gribouillis) déclenche l'envoi de paquets.
    Cependant, ce n'est pas clair du tout, sans les commentaires je n'aurais même pas imaginé que le texte du coin en haut à gauche représentait quelque chose d'important, et n'était pas juste du décor voire du brouillon. Quand on lit une bande dessinée, on ne passe pas dix minutes sur chaque case à décortiquer et chercher le sens caché de chaque trait.

    Aussi, on ne sent aucune causalité entre le clic et le départ des paquets, car tout est sur la même image, ce qui donne une impression que cela se passe en même temps, voire que c'est totalement indépendant. Il faudrait au minimum faire plusieurs cases pour ça, en montrant même brièvement que tout était au repos, puis le clic déclenche quelque chose qui commande l'envoi de paquets.

    Ensuite, les deux éléments ont la même taille sur l'image alors qu'ils ne devraient pas du tout avoir la même échelle, le clic est macroscopique, et les paquets sont microscopiques. Le lecteur a bien une notion d'échelle, si vous ne la respectez pas, il cherchera une autre explication et ne comprendra pas la même chose que vous.

  • [^] # Re: violation de copyright, vraiment ?

    Posté par  . En réponse au journal Comment 11 lignes de code ont provoqué un #npmgate. Évalué à 3.

  • [^] # Re: shell touch

    Posté par  . En réponse au journal La sortie de `ls` vient de changer. Évalué à 2.

    Par curiosité, continuons :

    % cpp < fichier | indent
    #1 "<stdin>"
    #1 "<built-in>"
    #1 "<command-line>"
    #1 "/usr/include/stdc-predef.h" 1 3 4
    #1 "<command-line>" 2
    #1 "<stdin>"
    
    int F = 00, OO = 00;
    main ()
    {
      F_OO ();
      printf ("%1.3f\n", 4. * -F / OO / OO);
    } F_OO ()
    {
      -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
      - -F < 00 || --F - OO--;
    }

    Les types et les déclarations manquent, mais passons.

    Dans le premier -F < 00 || --F - OO--;, F vaut 0, donc la condition est fausse et la seconde partie s’exécute, donnant F == -1 et OO == -1.
    Dans les - -F < 00 || --F - OO--; suivants, le premier test est vrai, donc aucune opération n'est faite.
    -F < 00 || --F - OO--; revient, la condition est encore fausse, donc F == -2 et OO == -2 aussi.
    Tout le reste est répété 16 fois, donnant F == -16 et OO == -16.
    La fonction main poursuit donc, 4. * -F / OO / OO ce qui donne 4*--16/-16/-16, ce qui donne 0.25.

  • [^] # Re: shell touch

    Posté par  . En réponse au journal La sortie de `ls` vient de changer. Évalué à 3.

    Vous êtes d'une mauvaise foi abyssale, ce code source est volontairement compliqué pour dérouter et j'ajouterai qu'il contient aussi plus de 150 opérations, à comparer avec : > toto, qui contient au maximum 3 opérations.

  • [^] # Re: shell touch

    Posté par  . En réponse au journal La sortie de `ls` vient de changer. Évalué à 3.

    C'est standard donc c'est ésotérique ? Je crois qu'on marche sur la tête là…