Gil Cot ✔ a écrit 5730 commentaires

  • # on y est pas déjà ?

    Posté par  (site web personnel, Mastodon) . En réponse au journal Cyber guerre ou pas finalement. Évalué à 4.

    Il semble que la cyber-guerre a déjà bien avancée, mais elle est pour l'essentiel essentiellement économique (en témoigne l'affaire récente des sous-marins français et les reportages à charge d'Arte contre la Chine par exemple) et non militaire (si on fait fi des activité de "renseignement" comme on dit de manière politiquement correcte.)

    Mais c'est un bon exercice de s'interroger sur les black-outs électroniques généralisés.

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • [^] # Re: Le souci

    Posté par  (site web personnel, Mastodon) . En réponse au message [résolu] alternatives à Typora. Évalué à 3.

    Héhé, personne pas sous Linux ; et puis si je peux en profiter pour la libérer un peu plus de ces pièges (passer de gratuiciel, certes sans garantie de rester éternellement gratuit, à partagiciel en démo, certes pas cher, c'est pareil qu'une prise d'otage si les gens n'ont pas d'alternative ou on trop pris goût pour aller voir ailleurs si on y est.)

    Je n'étais pas encore tombé sur le bogue que tu mentionnes et c'est vrai que c'est assez étrange et un poil agaçant bien que pas bloquant dans l'absolu. Vraiment bizarre.

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • [^] # Re: Rechercher des alternatives

    Posté par  (site web personnel, Mastodon) . En réponse au message [résolu] alternatives à Typora. Évalué à 3.

    Merci pour le retour. C'est vrai que les trucs qui mettent une éternité pour se lancer ça laisse le temps de prendre un café et ça donne pas une bonne impression de productivité quand on ne les lance pas régulièrement/souvent. Le truc que je reproche le plus à Electron pour ma part c'est surtout la consommation mémoire, et on peut rajouter des bugs étranges parfois.

    La personne étant de type Michu et non dev, je ne peux pas aller dans le sens Scite (que j'apprécie bien) + txt2tags (il faudra que je teste un de ces quatre cette alternative à pandoc.)
    Par ailleurs, comme on est dans un contexte Markdown, Focuswriter ne répond pas au besoin immédiat. Mais je mets ça de côté comme alternatif aux traitements de texte qui vous enferment dans un format (ici, avec RTF et ODT on n'a que du standard interopérable …normalement)

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • [^] # Re: Rechercher des alternatives

    Posté par  (site web personnel, Mastodon) . En réponse au message [résolu] alternatives à Typora. Évalué à 2.

    Merci, je l'avais mis en évaluation aussi suite à un autre commentaire. ;-)

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • [^] # Re: Un sacré jeu de piste

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche RFC Fast Kernel Headers très prometteur pour le noyau Linux. Évalué à 2. Dernière modification le 24 février 2022 à 16:40.

    C'est exactement ce que font certaines boîtes avec les partages Windows…

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • [^] # Re: morts de quoi ?

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche En mémoire d’Erik « alphageek » Jan Tromp et de Brett Person, contributeurs de Slackware. Évalué à 1. Dernière modification le 24 février 2022 à 16:36.

    Les deux liens que tu donnes sont clairement des hommages (on devrait rajouter ce tag et supprimer celui de deuil qui fait plus penser à un avis de décès), au sens de témoignage de respect pour les accomplissements, raison pour laquelle ça ne choque pas. Même là, je dis juste qu'il s'agit d'apporter juste une information biographique (personne née/morte/enterrée à telle date à tel endroit, comme une stèle funéraire… pas besoin d'entrer dans les détails des derniers instants…)
    Il faudra créer une section dédiée pour que ces news deviennent des nécrologies. ;-)

    On est d'accord qu'il n'y a pas de raison d'avoir un long fil de discussion qui en plus tourne un peu en rond.

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • [^] # Re: un petit peu plus (de divisions)

    Posté par  (site web personnel, Mastodon) . En réponse au journal résoudre "trouve 24". Évalué à 2.

    C'est le cas 1 / (7 - 7) + 2

    Corrigé …par l'ajout d'un test supplémentaire que j'ai probablement zappé à cause de la fatigue.

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • [^] # Re: un petit peu plus (de divisions)

    Posté par  (site web personnel, Mastodon) . En réponse au journal résoudre "trouve 24". Évalué à 2.

    J'ai essayé de recoller tous les bouts.

    Désolé, je n'ai pas encore eu le temps de mettre en ligne, j'ai priorisé le commentaire expliquant l'approche à mon code jetable (il faudrait nettoyer un peu plus pour que ce soit présentable… bon, j'ai rajouté des commentaires à l'instant …parce-que des fonctions dont on n'a pas la signature ça va être dur à maintenir)

    C'est maintenant en ligne https://framagit.org/-/snippets/6519

    J'ai fait une version "épurée" car j'aime bien l'approche mix de parenthèses et permutations des nombres.

    Ouf, mes explications ici ont été assez claires pour permettre de reconstituer l'ensemble …et l'adapter/épurer (ne pas s'enquiquiner avec les divisions)

    Mais le plus gênant est quand même l'arrondi des divisions, cela ne respecte pas les règles du jeux donc ce n'est pas très utilisable.

    Les règles n'étaient pas très claires pour moi. :-S Pour une fois que je n'ai pas voulu chipoter (et ai supposé qu'on faisait tous les calculs dans \mathbb{N} …à tort) Il a fallu être devant le cas (en testant en ligne) pour se rendre compte que la page donnait des résultats en flottants. Du coup je suis allé jeter un œil au source de la page (heureusement tout est en JS et pas caché, mais mon ECMAScript est un peu rouillé et je n'ai pas su voir/dire si c'est intentionnel ou si c'est une erreur de codage : seul-e l'auteur-e peut le dire)

    Je vais corriger cela dans une v2 dans l'une des manières suivantes (à voir ce qui est plus simple en shell)

    • Soit au moment du calcul on sait dire que la division ne sera pas entière (tester s'il y a un reste ?) et donc on squeeze (ce qui fait un cas computed en moins dans l'exploration)
    • Soit au niveau de la solution on s'assure (par un calcul dans \mathbb{D} dans mon idée immédiat, et qu'il faudrait essayer de restreindre seulement aux cas où il y a un opérateur de division) qu'on retombe sur nos pattes… (si la vérification n'est pas concluante on aura eu un computed mais toujours pas de solved bien qu'étant arrivé dans la fonction d'affichage)

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • [^] # Re: un petit peu plus (de divisions)

    Posté par  (site web personnel, Mastodon) . En réponse au journal résoudre "trouve 24". Évalué à 2.

    cool une version bash

    POSIX shell, j'insiste :-D Ça devrait fonctionner aussi dash/ash avec lequel je teste. C'est juste qu'on évite des trucs propres à bash/ksh??/pdksh/zsh/etc ; mais ce faisant on s'évite certaines facilités (comme les tableaux et certaines formes de tests)

    J'ai encore des /0 […] ; et je ne comprends pas le "$7" dans solution2.

    J'ai oublié de corriger mon post (rédigé certes offline pour avoir le temps de tester un peu et donc présenter un POC au lieu d'une théorie, mais j'ai du zapper dans les aller-retours rédaction-débogage)
    Dans la boucle for du second type type, j'avais mis deux tests (juste avant le calcul) au lieu du seul mentionné :

    test "$o1" = '/' && test "$o3" = '/' && test $n2 -lt $n3 && continue
    test "$o2" = '/' && test "$o3" = '/' && test $n2 -lt $n3 && continue
    test $(( n1 $o1 (n2 $o3 n3) $o2 n4 )) -eq 24 &&
        solution2 "$n1" "$o1" "$n2" "$n3" "$o2" "$n4" "$o3"

    J'ai ensuite remplacé les deux tests par un seul qui fusionne les deux…

    test "$o3" = '/' && test $n2 -lt $n3 && continue
    test $(( n1 $o1 (n2 $o3 n3) $o2 n4 )) -eq 24 &&
        solution2 "$n1" "$o1" "$n2" "$n3" "$o2" "$n4" "$o3"

    Le $7 est $o3 ; mais on peut réarranger l'ordre si ça simplifie la lecture et la compréhension.

    et process2 n'est jamais utilisé

    Pas possible ! Je les ai testé séparément sur ton exemple et ça m'a bien renvoyé les quatre résultats (pour 1344 calculs) suivants :

    2-1=1; 3*1=3; 3*8=24
    2-1=1; 3/1=3; 3*8=24
    2-1=1; 8*1=8; 8*3=24
    2-1=1; 8/1=8; 8*3=24

    trop de cas tordus.

    Oui et c'était le premier pan de mon défi :-D

    Je viens d'en trouver un avec l'exemple de "le_poney" :-D (dans la sortie suivante, je n'ai activé que solutions2)

    $ trouve24.sh 7 7 1 2
    7*1=7; 7*7=49; 49/2=24
    7/1=7; 7*7=49; 49/2=24
    1*7=7; 7*7=49; 49/2=24
    7*1=7; 7*7=49; 49/2=24
    7/1=7; 7*7=49; 49/2=24
    1*7=7; 7*7=49; 49/2=24
    7*7=49; 1*49=49; 49/2=24
    trouve24.sh: line 77: n1 / (n2 - n3) + n4 : division by 0 (error token is "+ n4 ")

    C'est le cas 1 / (7 - 7) + 2 qui devrait pouvoir se corriger sans trop de difficulté. Je fais ça tout à l'heure.

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • [^] # Re: un petit peu plus (de divisions)

    Posté par  (site web personnel, Mastodon) . En réponse au journal résoudre "trouve 24". Évalué à 2. Dernière modification le 24 février 2022 à 14:08.

    Il ne manque pas également → ((AxB)yC)zD

    Avec les commutativités (additions et multiplications) et les priorités (multiplications et divisions) on devrait retomber sur l'un des 4 cas précédemments énumérés…
    Mais je dis ça au doigt mouillé ; faudrait que je prenne le temps faire la preuve mathématique.

    Par exemple avec 7 7 1 2 je m'attends au résultat ((7*7)-1)/2

    Justement avec les priorités, ((7*7)-1)/2 est (7*7-1)/2 ; ce qui me fait dire qu'il manque éventuellement les cas (AxByC)zD (solutions5) et Ax(ByCzD) (solutions6) ainsi que AxByCzD (solutions0) tout simplement ?
    On peut facilement les rajouter… Le plus dur étant en fait, de détecter pour chaque type de solutions les divisions par zéro…

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • [^] # Re: Snif

    Posté par  (site web personnel, Mastodon) . En réponse au lien Sven Guckes verstorben. Évalué à 2.

    C'est donc un nom connu de LinuxFr :-) C'est triste, il avait beaucoup d'énergie (ardeur dans la promotion du libre) à revendre. Qu'il repose en paix.

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • # un petit peu plus (de divisions)

    Posté par  (site web personnel, Mastodon) . En réponse au journal résoudre "trouve 24". Évalué à 4. Dernière modification le 24 février 2022 à 03:44.

    Wordle est mort. Racheté par le capitalisme et blindé de tackers et de pubs.

    C'est ballot …parce que, justement dans un lien posté récemment, que l'absence de pisteurs est un des ingrédients du succès.
    https://linuxfr.org/users/gilcot/liens/wordle-is-pretty-damn-smart-in-many-subtle-ways

    J'ai joué un peu puis me suis dis "c'est un boulot pour une machine".

    Ou pas… Ce genre de jeux (le compte est bon) est une façon d'évaluer l'aptitude de calculs mentaux et l'intuition (plutôt la capacité d'estimation) face aux combinaisons de nombres. Évaluer une machine, ou tricher, a peu d'intérêt ici.
    Ceci dit, l'informatique y est utile pour évaluer des conjectures mathématiques ou explorer certains aspects algorithmiquement (notamment tout ce qui touche aux arbres de décision, dont il n'est pas question ici puisqu'on emploie la force brute.) Il me semble d'ailleurs avoir vu passer deux articles sur le sujet, dont un dans Tangente si j'ai bonne mémoire.

    À noter que le programme donne des solutions invalides qui n'utilisent pas tous les nombres, il faut filtrer. Je n'ai pas non plus implémenté la division qui me paraissait plus compliquée qu'utile à l'époque pour le compte est bon.

    Du coup, je vais relever le défi, histoire de me changer les idées après une journée harassante de travail. Et pour épicer un peu la chose, l'implémentation sera en shell POSIX…

    Bien, je passe sur l'étape de la saisie des nombres et du contrôle des entrées (toujours.)
    Je ne vais pas non plus stocker les solutions, mais plutôt les sortir au fil de l'eau.
    Comme on n'a pas de structure de tableau (en KSh, BASh et probablement ZSh, oui) je vais utiliser une variable par nombre (mais il n'y en a heureusement que quatre) !

    Mon idée est qu'on va faire une boucle sur la liste de nombres.
    Dans un langage comme RPL, on va juste faire quatre tours en décalant…

    \<<
      1 4 FOR i
        4 ROLL
        @process
      NEXT
    \>>
    

    Pour la plupart des autres langages, non Forth-like on va utilier un tableau et décaler le curseur dans la boucle (tout en prenant tous les éléments, c'est juste pour changer l'ordre à chaque itération.)
    Bon, on ne gère pas de tableau et heureusement il n'y a que quatre nombres.

    process0 $number1 $number2 $number3 $number4
    process0 $number2 $number3 $number4 $number1
    process0 $number3 $number4 $number1 $number2
    process0 $number4 $number1 $number2 $number3

    Ces quatre lignes sont trompeuses (ça m'a servi à valider le fonctionnement, mais) il y a en fait vingt-quatre permutations (prises en compte dans la version finale.)

    Le processus va consister à appliquer les quatre opérateurs… de sorte à couvrir tous les cas…
    On peut les énumérer, mais par peur d'oublier, je boucle pareillement pour les quatre opérations… (l'optimisation serait de déboucler …parce que sinon on aura des doublons du fait la commutativité, mais cet exercice se fera plus tard.)

    process0() {
      for o1 in '+' '-' '*' '/'
      do
        for o2 in '+' '-' '*' '/'
        do
          process1 "$o1" "$o2" "$@"
        done
      done
    }
    
    process1() {
      local o1="$1"
      local o2="$2"
      local n1="$3"
      local n2="$4"
      local n3="$5"
      local n4="$6"
      for o3 in '+' '-' '*' '/'
      do
        test $(( (n1 $o1 n2) $o3 (n3 $o2 n4) )) -eq 24 &&
          solution1 "$n1" "$o1" "$n2" "$n3" "$o2" "$n4" "$o3"
      done
    }
    
    solution1() {
      local r1=$(( $1 $2 $3 ))
      local r2=$(( $4 $5 $6 ))
      echo "$1$2$3=$r1; $4$5$6=$r2; $r1$7$r2=24"
    }

    Bon, c'est pas tout ça. Dans ce truc brutalement automatique, il ne faut pas oublier de gérer la division par zéro…

        test "$o1" = '/' && test $n2 -eq 0 && break
        test "$o2" = '/' && test $n4 -eq 0 && break
        test "$o3" = '/' && test "$o2" = '/' && test $n3 -lt $n4 && continue

    En plus du second processus, on va appeler un troisième dans la même boucle (c'est du « quick and dirty » et il doit être possible de fusionner les deux…)

    process2() {
      local o1="$1"
      local o2="$2"
      local n1="$3"
      local n2="$4"
      local n3="$5"
      local n4="$6"
      test "$o3" = '/' && test $n2 -eq 0 && return
      for o3 in '+' '-' '*' '/'
      do
        test "$o2" = '/' && test "$o3" = '/' && test $n2 -lt $n3 && continue
        test $(( n1 $o1 (n2 $o3 n3) $o2 n4 )) -eq 24 &&
          solution2 "$n1" "$o1" "$n2" "$n3" "$o2" "$n4" "$o3"
      done
    }
    
    solution2() {
      local r3=$(( $3 $7 $4 ))
      local r4=$(( $1 $2 $r3 ))
      echo "$3$7$4=$r3; $1$2$r3=$r4; $r4$5$6=24"
    }

    Enfin, on pense à ajouter les compteurs.

    $ trouve24.sh 1 2 3 8
    1/2=0; 3*8=24; 0+24=24
    1/2=0; 8*3=24; 0+24=24
    1+3=4; 8-2=6; 4*6=24
    2-1=1; 3*8=24; 1*24=24
    2-1=1; 8*3=24; 1*24=24
    3+1=4; 8-2=6; 4*6=24
    2-1=1; 3*1=3; 3*8=24
    2-1=1; 3/1=3; 3*8=24
    3*8=24; 1/2=0; 24+0=24
    3*8=24; 1/2=0; 24-0=24
    3*8=24; 2-1=1; 24*1=24
    3*8=24; 2-1=1; 24/1=24
    8-2=6; 1+3=4; 6*4=24
    2-1=1; 8*1=8; 8*3=24
    2-1=1; 8/1=8; 8*3=24
    8-2=6; 3+1=4; 6*4=24
    8*3=24; 1/2=0; 24+0=24
    8*3=24; 1/2=0; 24-0=24
    8*3=24; 2-1=1; 24*1=24
    8*3=24; 2-1=1; 24/1=24
    20 solutions for 2832 computed.

    Comme c'est bête/brute et méchant/truand, il m'annonce vingt réponses qui pourraient se ramener à 10 du fait des symétries et on a exploré deux mille huit cents combinaisons dont on aurait pu se passer du quart je pense.
    J'ai exploré ici les formes (A x B) y (C z D) (c'est (8-5)*(7+1) ou (1+3)*(2-8) par exemple) et A x (B y C) z D (c'est 3*(2-1)*8 par exemple) ; mais pas A x B y (C z D) et (A x B) y C z D ! Il s'agit d'une part d'un jet rapide, et d'autre part ce ne serait pas pertinent en shell car je soupçonne qu'il y aura des doublons et/ou même des triplons. Cependant, avec ces ajouts, on devrait arriver aux trois mille septante douze…

    Petit bémol cependant : les calcul ici sont fait sur des entiers et c'est problématique pour les divisions car le hollandais volant l'entend flottant… (si j'en crois la fonction randomizeNumbers() qui pourtant fait un Math.floor(), à moins que ce ne soit à cause du evalMath(cell1, operator, cell2) dans la fonction evalResultat() ?) Je pense pouvoir corriger cela facilement, ce qui réduira le nombre de solutions proposées.

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • [^] # Re: Retour d'erreur ?

    Posté par  (site web personnel, Mastodon) . En réponse au message renommage de fichiers en masse. Évalué à 3.

    Il y la structure et les checks nécessaires qui sont indiqué dans l'exemple que j'avais pointé (on est un peu loin de ce qui a été fait.

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • [^] # Re: Quai d'Orsay

    Posté par  (site web personnel, Mastodon) . En réponse au journal Évolution des Conditions Générales. Évalué à 3.

    Excellent ! Merci tout plein.

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • # palme de la boule de cristal

    Posté par  (site web personnel, Mastodon) . En réponse au lien « La France va-t-elle interdire la vente de PC sans OS ? ». Évalué à 2.

    En même temps, ce n'était qu'une question de délai…
    https://linuxfr.org/users/mcdoil74/journaux/ordi-baby-microsoft-windows#comment-1021358

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • [^] # Re: Ça ferait une bonne dépêche je trouve

    Posté par  (site web personnel, Mastodon) . En réponse au journal rétrospective sur la mise en page en console. Évalué à 2.

    La suite est presque prête. Ce sera une dépêche si plus de gens le signifient en plussant ton commentaire. La valeur à atteindre est 16 (parce-que 0xF simplement)

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • [^] # Re: Autres corrections

    Posté par  (site web personnel, Mastodon) . En réponse au journal rétrospective sur la mise en page en console. Évalué à 2.

    Je me suis fait un diff de toutes les corrections et c'est monstrueux…

    https://paste.chapril.org/?ad03e7cef7a32484#nVrrtCqfPzhHxtsyRHpHucPm6G5m67zJtaF85nSasxN

    (352 lignes de diff pour 1380 dans le source, soit le quart mais il y a dedans les trois lignes de contexte par défaut…)

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • [^] # Re: Un sacré jeu de piste

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche RFC Fast Kernel Headers très prometteur pour le noyau Linux. Évalué à 4.

    Il y a certainement une …mono piste…

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • [^] # Re: Attendre un caractère après les deux points

    Posté par  (site web personnel, Mastodon) . En réponse au journal Voter pour virer les emojis de Gitlab. Évalué à 2.

    Petite confusion de ma part : ce sont les parenthèses et non les crochets pour ce que j'avais à l'esprit, et il faut rajouter le croisillon et le pourcentage…

    <!ENTITY % flow
    "%block;|%inline">
    
    <!ELEMENT p
    (#PCDATA|%phrasing
    -(%flow_only|figcaption)>

    Pour le reste, c'est plus classique et on retrouve bien l'idée de second niveau

    <p>Il faut fermer les balises&hellip;
    <img src="/images/dessins/geekscottes_005.png"
     title="auto-satisfaction récursive" alt="Geeks Cottes 5" />
    (for the fun)</p>

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • [^] # Re: other links in english

    Posté par  (site web personnel, Mastodon) . En réponse au lien Sven Guckes verstorben. Évalué à 2.

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • [^] # Re: Bravo

    Posté par  (site web personnel, Mastodon) . En réponse au lien De gauche, ils revoteront Macron. Évalué à -5.

    Est-ce une façon de parler de son monarc ? Honnêtement, que veux-tu que les gens votent d'autres quand ce n'est « ni ceci ni cela et en même temps tout et son contraire » ?

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • [^] # Re: De l'art du chipotage

    Posté par  (site web personnel, Mastodon) . En réponse au lien L’œuf ou la poule ? Lequel est arrivé en premier ?. Évalué à 1.

    Il te faut une force lunaire pour faire un effet de marrée
    ~~~>[]

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • # nous on a le droit, pas vous

    Posté par  (site web personnel, Mastodon) . En réponse au lien Un revendeur de logiciel espion plaide coupable aux États-Unis (payant 1 mois) . Évalué à 1.

    …parce-qu'on a décidé qu'il doit en être ainsi.

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • [^] # Re: Titre trompeur

    Posté par  (site web personnel, Mastodon) . En réponse au lien Sustainability with Rust. Évalué à 2. Dernière modification le 22 février 2022 à 21:21.

    Bonus : il boit la vie… :-D Quel charmant calmant Jeanne

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

  • [^] # Re: De l'art du chipotage

    Posté par  (site web personnel, Mastodon) . En réponse au lien L’œuf ou la poule ? Lequel est arrivé en premier ?. Évalué à 2. Dernière modification le 22 février 2022 à 19:55.

    Insensiblement… pour ne pas dire négligeable, puisque ça touchera un nano sans en toucher l'autre, comme on dit.

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume