chimrod a écrit 1064 commentaires

  • # Et la solution !

    Posté par  (site web personnel) . En réponse au journal Wordle is the new TapTempo. Évalué à 9.

    Et comme chaque nouveauté attire automatiquement les gens qui ne pensent qu’à tricher, mon outil qui permet de trouver la solution pour les différentes grilles est désormais disponible dans une page web !

  • [^] # Re: Merci!

    Posté par  (site web personnel) . En réponse à la dépêche De OCaml à ReScript : création d'un nouveau langage ?. Évalué à 5.

    D’abord un grand merci à aux contributrices et contributeurs qui ont participé à l’écriture, et merci également d’avoir pris le temps pour ton commentaire !

    Cette dépêche est restée longtemps dans les tuyaux de la rédaction avant d’être validée, et j’ai été relancé plusieurs fois par la team qui s’inquiétait de la voir stagner… Tout d’abord par faute de temps de ma part (l’excuse facile), mais aussi parce que cette histoire est malheureusement chargée d’affect. La lecture de fils de discussions tel que Is rescript damaging Ocaml ecosystem? m’a touché et a rendu l’écriture d’une synthèse neutre vraiment difficile. Et la seule solution pour synthétiser ça et de marcher sur des œufs dans ce que l’on écrit… ce qui demande encore plus de temps au point d’en casser l’élan.

    Il manque selon moi tout un pan qui aborderai la question de la réception du langage auprès des utilisateurs, mais je n’ai pas réussi à l’écrire. Pour ceux qui sont intéressé pourront trouver d’autres échanges dans A short history of ReScript (BuckleScript) (qui peut se lire comme un droit de réponse suite aux accusations) et vous faire votre propre avis !

  • [^] # Re: Autre approche : grep

    Posté par  (site web personnel) . En réponse au journal sur le fonctionnement du jeu Wordle. Évalué à 4.

    J’avoue ne pas avoir preté vraiment attention à la beauté des lignes de code, elles étaient davantage là pour appuyer mon propos !

    Je m’en sors mieux en OCaml (solution trouvée au quatrième coup avec le mot du jour)

  • [^] # Re: Autre approche : grep

    Posté par  (site web personnel) . En réponse au journal sur le fonctionnement du jeu Wordle. Évalué à 3. Dernière modification le 13 janvier 2022 à 14:43.

    Notes en vrac :

    • ici, je me suis contenté d’appliquer un algorithme de type arbre de décision, afin de choisir quel est l’élément le plus pertinent à retenir.
    • avec le français, cela aurait été plus compliqué, à cause des accents dans les mots qu’il faut transformer pour uniformiser les lettres
    • enfin, j’ai commencé l’analyse en partant du dictionnaire complet, cela aurait été plus efficace si j’avais dès le début choisi les mots de 5 lettres pour identifier les fréquences.
  • # Autre approche : grep

    Posté par  (site web personnel) . En réponse au journal sur le fonctionnement du jeu Wordle. Évalué à 9. Dernière modification le 13 janvier 2022 à 14:29.

    Note : je me base sur la liste des mots présents dans le dictionnaire américain de Debian, accessible via le paquet wamerican et listé dans le fichier /usr/share/dict/american-english

    Il est également possible de choisir ses mots en fonction de la quantité d’information contenus dans chacun d’eux. Par exemple, le dictionnaire anglais contient 102.774 entrées :

    $ wc -l american-english 
    102774 american-english

    et l’on se rend compte que le a est présent dans 52% d’entre eux :

    $ grep -i "a" american-english  | wc -l
    53715

    Si l’on choisi un mot avec un a, sans meme savoir quel sera le résultat, nous éliminons la moitié des mots possibles. Comme nous avons 5 lettres possibles, autant choisir celles qui permettent de discréminer un max de résultat. Et c’est parti pour une plongée en bash pour trouver la solution !

    $ grep -o . <<< "abcdefghijklmnopqrstuvwxyz"| while read letter; do echo $letter $(grep -i $letter american-english | wc -l); done
    a 53715
    
    e 65692
    
    n 47826
    
    r 50018
    
    t 44232
    
    $ grep "^.....$"  american-english | grep -i "a" | grep -i "r" | grep -i "n" | grep -i "t"
    Brant
    Grant
    Rutan
    Trina
    grant
    rants
    train

    essayons train avec le mot du jour : le a est reconnu, mais pas les autres lettres ! Parfait, il ne reste que 878 mots présents :

    $ grep "^.....$"  american-english | grep -i "a" | grep -iv "[trin]" > /tmp/iter1
    $ wc -l /tmp/iter1
    878

    On recommence notre itération :

    $ grep -o . <<< "abcdefghijklmnopqrstuvwxyz"| while read letter; do echo $letter $(grep -i $letter /tmp/iter1 | wc -l); done
    b 124
    c 169
    d 181
    e 370
    h 135
    l 342
    m 175
    o 137
    p 139
    s 504
    y 139
    
    $ grep "^.....$"  american-english | grep -i "s" | grep -i "l" | grep -i "e" | grep -i "d" | grep -i "m"
    melds

    31 mots restants ! On s’approche !

    $ grep "^.....$"  /tmp/iter1 | grep -i "a" | grep -i "e" | grep -iv "[trinmlds]" > /tmp/iter2
    $ wc -l /tmp/iter2
    31 /tmp/iter2
    $ grep -o . <<< "abcdefghijklmnopqrstuvwxyz"| while read letter; do echo $letter $(grep -i $letter /tmp/iter2 | wc -l); done
    b 6
    c 11
    f 2
    g 8
    h 9
    k 5
    o 2
    p 9
    q 2
    u 8
    v 6
    w 3
    x 1
    y 4
    z 1
    
    $ grep "^.....$"  /tmp/iter2 | grep -i "c" | grep -i "h" | grep -i "p"
    cheap
    peach

    Prenons-en un des deux, et faisant notre test : plus que 14 possibilité, et il reste 3 coups !

    $ grep "^.....$"  /tmp/iter1 | grep -i "a" | grep -i "e" | grep -iv "[trinmldspch]" > /tmp/iter3
    $ wc -l /tmp/iter3
    14 /tmp/iter3
    
    $ grep -o . <<< "abcdefghijklmnopqrstuvwxyz"| while read letter; do echo $letter $(grep -i $letter /tmp/iter3 | wc -l); done | grep -v [01]
    b 4
    g 5
    k 4
    o 2
    q 2
    u 6
    v 4
    w 3
    
    $ grep "^.....$"  /tmp/iter3 | grep -i "u" 
    
    quake

    Plus que 5 mots dans la liste, et encore deux coup restants ! Je pense qu’on est bon !

    $ grep "^.....$"  /tmp/iter3 | grep -i "a" | grep -i "e" | grep -iv "[trinmldspchquk]"
    abbey
    above
    agave
    gaffe
    weave

    En fait, si l’on tient compte des informations sur le placement des lettres, on sait à ce moment là que le e n’est pas en dernière position, et il ne reste plus qu’une seule possibilité.

    Y a-t-il un volontaire pour mettre tout ça dans un petit scritp interractif qui s’occupe de nous trouver la solution ? :)

  • [^] # Re: des détails

    Posté par  (site web personnel) . En réponse au message Casque Visio conf bluetooth. Évalué à 4.

    J’ai également ce casque qui m’est fourni par le boulot ; il fonctionne effectivement en deux modes :

    • par la clef USB qui est fournie, dans ce cas la connexion est automatique
    • par bluetooth, ce qui permet d’appairer un 2nd appareil

    Tout d’abord, il faut savoir qu’en branchant la clef USB sur le pc linux, le casque est reconnu de suite. Cela vaut peut etre le coup d’acheter un adaptateur USB-C / USB-A plutot que d’acheter un casque neuf.

    Ensuite, je n’ai eu aucun problème à connecter le casque en bluetooth : j’utile le couple blueman / pulseaudio et cela fonctionne sans problème. Il faudrait savoir ce que tu utilises pour que nous puissions t’aider !

  • [^] # Re: Prémisse fausse ?

    Posté par  (site web personnel) . En réponse au message Commande watch. Évalué à 3.

    Si c’est pour un exercice, on ne va pas donner la réponse (bien que SoooLooo ait compris le principe) :)

    Par contre, je pense qu’il y a un soucis car là, l’ennoncé n’a pas de sens… Hypothèse, le programme affiche le texte puis l’efface très vite, sauf que pour une raison ou une autre, la commande d’effacement n’est pas interprétée par le terminal -> tester avec un autre terminal ?

  • # Prémisse fausse ?

    Posté par  (site web personnel) . En réponse au message Commande watch. Évalué à 2.

    Lorsque je lance simplement le binaire j'ai un message qui me dit que j'ai échoué bien sur.

    De ce que je comprend de ton ennoncé, tu ne devrais pas avoir d’erreur en lançant le binaire. Peux-tu copier la sortie de ton terminal quand tu lances la commandes ?

  • [^] # Re: Y'a papier... et papier

    Posté par  (site web personnel) . En réponse au journal Sauvegarde suite et fin ?. Évalué à 8. Dernière modification le 04 janvier 2022 à 16:01.

    Et beaucoup d'encres ont tendance a s'estomper au bout de quelques années.

    C’est assez récent ça. L’encre métallo-gallique qui a dominé l’écriture pendant presque mille ans pose des problème inverses ! Elle fini au contraire par ronger le papier !

    Papier rongé

  • # Merci GPG !

    Posté par  (site web personnel) . En réponse au journal GnuPG devient économiquement viable et n’a plus besoin de dons. Évalué à 8.

    En fait, GPG fait partie des applications qui "fonctionnent tout simplement" et qui finissent par s’oublier :

    • je n’utilise pas GPG directement, mais mes mots de passes sont chiffrés avec GPG
    • je n’utilise pas GPG, mais mes sauvegardes sont réalisées avec duplicity, qui utilise GPG

    J’aime déléguer la partie chiffrement à GPG, et je privilégie des applications qui font la séparation dans les deux opérations. Du coup, je n’utilise jamais GPG, et il est présent dans mon quotidien !

  • [^] # Re: Tentative de décryptage

    Posté par  (site web personnel) . En réponse au lien Les tribunaux italiens condamnent 2 ex employés pour non conformité à la GPL. Évalué à 2.

    Effectivement je n’avais pas ce cas en tete. Merci d’avoir précisé !

  • # Tentative de décryptage

    Posté par  (site web personnel) . En réponse au lien Les tribunaux italiens condamnent 2 ex employés pour non conformité à la GPL. Évalué à 4.

    C’est amusant de voir que le procès ne porte pas sur du code GPL qui aurait été intégré dans une application propriétaire, mais sur un code sous licence GPL qui a été distribué illégalement.

    Même si ça peut sembler contradictoire, voici ce que je comprend de l’article : nous avons le droit de diffuser un code sous licence GPL d’une application dont nous disposons (liberté de redistribuer des copies), mais il faut pour cela que l’auteur nous ait autorisé à disposer de cette application. C’est implicite quand nous installons firefox ou debian, mais cette étape est importante.

    Ici, les développeurs auraient "volé" un code GPL a leur employeur, et ne sont donc pas entrés dans le process contractuel qui les autorise à redistribuer ce code. On peut imaginer que l’employeur vend son code et a tout intérêt à en conserver la distribution (c’est quand même un cas qui doit arriver assez rarement)

    Si on lit entre les lignes, le fait qu’il s’agisse de deux ex-employés semble indiquer un autre conflit dans l’histoire, mais c’est une reconnaissance du cadre de la licence.

  • [^] # Re: Une petite mise à jour

    Posté par  (site web personnel) . En réponse à la dépêche MirageOS - un micro OS (unikernel) en OCaml. Évalué à 4.

    Merci pour les précisions !

    C’est super d’avoir une architecture physique comme le PI4 en cible ! Par contre, le pi4 est un peu overkill à mon niveau pour faire tourner MirageOS. Est-ce qu’il serait compliqué une fois cette première étape faite de l’étendre à d’autres modèles ? Le PI0v2 étant l’idéal (en terme de coût / consommation)

    C’est une bonne nouvelle également de passer sur httpaf plutôt que cohttp, qu’en est-il des webserver haut-niveau (opium / dream) ? Je vois qu’ils ne sont pas dans les paquets gérés sur le site de mirageOs, est-ce qu’il est possible de les compiler facilement dans l’architecture ?

  • [^] # Re: Intéressant

    Posté par  (site web personnel) . En réponse à la dépêche MirageOS - un micro OS (unikernel) en OCaml. Évalué à 10.

    Il faut plutot le voir comme un cadriciel permettant de contruire "une application bootable". La librairie s’occupe de fournir les services bas-niveau (comme la pile tcp/ip présentée dans la dépeche) et permet de contruire une application dessus qui pourra etre exécutée dans un hyperviseur.

    Selon moi, le terme d’OS est inaproprié ici, car on s’est éloigné du logiciel permettant de lancer d’autres applications — encore que : cela est fait au moment de la compilation de l’image et non plus de l’exécution de l’OS comme on le retrouve habituellement. (si je voulais troller, je dirai que l’on pousse ici l’opposition entre langage interprété et langage compilé à l’extrème).

    Ça donne une idée de la quantité de travail nécessaire pour mettre en place la librairie, puisque le but est de fournir toutes les briques permettant de construire un système, non pas comme un gestionnaire de dépendance qui permet de construire son image, mais au sein d’une application unique.

  • # VNC

    Posté par  (site web personnel) . En réponse au message Matos télétravail. Évalué à 6.

    Je suis en télétravail depuis un peu plus d'un an et demi, et je me suis également posé la question de savoir comment configurer mon bureau entre mes différentes activités. J'ai finalement trouvé la solution en installant un serveur VNC sur mon PC perso. Sur le PC pro il n'est pas nécessaire d'installer quoi que ce soit (le client windows d'xtigervnc est un binaire qui peut être lancé directement), et comme l'application se lance en plein écran, ça me donne mon bureau perso sur un écran dédié.

    Comme il s'agit d'une application windows à part entierre, le clavier et la souris sont géré nativement, j'ai juste à déplacer le curseur pour "basculer" d'un environnement à un autre.

  • [^] # Re: Chiffrement avant le transfert, sauvegardes "synthétiques"

    Posté par  (site web personnel) . En réponse au journal La sauvegarde dans les nuages. Évalué à 3.

    Alors là on joue carrément pas dans la même cour :) je parle des photos de ma maman, mon dossier administratif et ce genre de chose. Je pense pas avoir des semaines de transfert pour tout récupérer…

    (Et oui, mes clefs gpg sont imprimées et rangées)

  • [^] # Re: Chiffrement avant le transfert, sauvegardes "synthétiques"

    Posté par  (site web personnel) . En réponse au journal La sauvegarde dans les nuages. Évalué à 3.

    Avec duplicity, je me suis créé des scripts de sauvegarde et de restauration différenciés :

    • la sauvegarde s’effectue dans le cloud (en utilisant le service de stockage à froid — 0,002 € HT/mois/Go chez OVH)
    • la restauration est faite depuis une copie locale

    Si je veux restaurer mes données, je commence par un dégel, puis par un rapatriement sur mon PC, et c’est seulement à ce moment là que je lance la restauration à ce moment là. Je sépare du coup les problèmes réseau des problème de restauration…

  • [^] # Re: Et l’https ?

    Posté par  (site web personnel) . En réponse au lien Stockage objet compatible S3 : hébergez gratuitement votre site statique chez Scaleway. Évalué à 2.

    Bien vu, je suis resté dans le périmètre de ce que je connaisais… je vais regarder ça.

  • # Et l’https ?

    Posté par  (site web personnel) . En réponse au lien Stockage objet compatible S3 : hébergez gratuitement votre site statique chez Scaleway. Évalué à 6.

    Vous pouvez bien entendu faire pointer un nom de domaine vers ce site pour rendre son accès plus « digeste ».

    Malheureusement, toujours pas en https ! Leur argument étant de dire que le service ne disposant pas notre certificat privé, il n’est pas possible de mettre en place une architecture sécurisée. Ils ont raison, mais c’est quelque chose que l’on peut aujourd’hui résoudre à l’aide d’une tâche let’s encrypt qui se charge de gérer les certificats automatiquement.

    C’est pour moi rédhibitoire, et une peine de voir ça, et je reste du coup avec mon vps pour héberger mon blog qui pèse 15Mo au total pour cette raison (je refuse d’utiliser netlify qui propose pourtant cela gratuitement car basé sur amazon)

  • [^] # Re: Intérêt d'un tiling WM ?

    Posté par  (site web personnel) . En réponse au lien Passage au gestionnaire de fenêtres i3. Évalué à 3.

    Ça dépend… au moment où tu fermes la dernière fenetre du bureau, tu peux avoir une belle surprise (si tu aimes mettre les photos souvenirs en fond d’écran).

    Tu peux aussi souhaiter privilégier l’esthétique sur les pixel et opter pour i3-gaps qui t’aere un peu le bureau en écartant un peu les fenetres, à ce moment là le fond d’écran est davantage là pour donner une teinte à l’ensemble…

    Voilà mon petit script de fond d’écran qui fait un fondu pastel (il se met à jour à chaque fois que je change de bureau, c’est à dire assez souvent pour que cela ne se remarque pas)

    # Traverse the chromatic circle in 5 hours                                        
    cutoff=18000
    dominant=$(python3 -c "import colorsys ; import datetime ; now = datetime.datetime.now() ; min = datetime.datetime.min ; sec = (now - min).seconds % $cutoff ; print(''.join('%02x' % int(i*255) for i in colorsys.hsv_to_rgb(sec/$cutoff, 0.35, 1)))")
    hsetroot \                                                                 
         -solid "#${dominant}"  \                                                       
         -add  "#d8dee9ff" \                                                            
         -addd  "#d8dee9ff" 5 \
         -addd "#ffffff77" 40 \
         -addd "#ffffff77" 90 \
         -addd "#F0F0F0FF" 40 \
         -addd "#F0F0F0" 5 \   
         -gradient 0
  • [^] # Re: Intérêt d'un tiling WM ?

    Posté par  (site web personnel) . En réponse au lien Passage au gestionnaire de fenêtres i3. Évalué à 7.

    Je pense que chacun peut y aller avec sa propre expérience, il te faudra faire le tri entre ce qui t’intéresse ou non :)

    Le tiling va de pair avec les bureaux multiples (ou tag, ou autres). Ça permet de mieux organiser les applications lancées en les regroupant par leur utilité. J’ai par exemple un bureau "Musique", qui comprend le gestionnaire de fichier + audacious, et je sais que pour sélectionner et jouer ma musique, j’ai juste à cliquer sur ce bureau pour faire apparaître ce dont j’ai besoin pour changer d’album et jouer ma musique. J’ai également un bureau "web" qui contient uniquement le browser, un bureau "mail" avec uniquement le client mail, etc.

    Ensuite, tu as la possibilité de créer des bureaux en posant tes fenêtres comme tu le souhaites. Par exemple mon bureau "Latex" contient un lecteur pdf, un terminal, et mon éditeur de texte, chaque fenêtre ayant été posée dans la configuration. À chaque fois que j’ouvre mon bureau "latex" je sais que j’ai mon pdf à gauche, mon terminal juste en dessous pour lancer make, et mon éditeur à droite sur la moitié de l’écran.

    Si je veux écouter de la musique pendant que je travaille sur un document, je bascule d’un bureau à un autre (on prend très vite cette habitude), et je reviens à mon environnement initial.

    Mon process est généralement d’ouvrir les fenêtres dont j’ai besoin dans un bureau anonyme, puis le renommer en fonction de la tâche que je suis en train de faire.

    La partie non recouvrement est ce qui est le plus visible quand on découvre, mais c’est juste un élément qui va avec, en soit ça ne rend pas plus productif.

    autopub : je me suis fait mon propre compagnon : i3_workspaces qui suis un peu cette logique. L’application permet de lancer des application automatiquement à la création de bureaux (par exemple lancer automatiquement le navigateur quand on crée le bureau "web", ce qui est un peu différent que dire "il faut afficher systématiquement le navigateur sur le bureau web")

  • # Précision

    Posté par  (site web personnel) . En réponse au message impossible de me connecter à ma boîte mail. Évalué à 2.

    Bonjour,

    Que se passe-t-il quand tu ouvres ta boites ? Le fais tu dans le navigateur web ? (lequel ?)

  • [^] # Re: Heuristique

    Posté par  (site web personnel) . En réponse au journal PDF, mais que fait la police. Évalué à 5.

    Notre boulot consistait à récupérer les impressions faite via une imprimante virtuelle, puis envoyer le tout en centre éditique pour mutualiser les couts. Comme cela venait de postes bureautiques multiples, on dépendait de la source d’impression que nous ne controlions pas.

    On avait mis en place des outils pour fusionner les éléments identiques (font de page, logo, polices complètes), mais ça ne passait pas pour les polices. La seule solution fut de pré-traiter le pdf pour réécrire tous les caractères caractères dans une police complète (vu que le glyphe A pouvait etre codé différement selon les pages). C’était une belle aventure quand j’y repense :)

  • [^] # Re: Heuristique

    Posté par  (site web personnel) . En réponse au journal PDF, mais que fait la police. Évalué à 10.

    Cela fonctionne pour les polices Type 1 et les TrueType. Si cela t’intéresse, je t’invite à lire le PDF Reference, qui est vraiment bien foutu (chapitre 5 pour le texte).

    En gros, dans le PDF, tu as la séquence suivante :

    /F13 10 TJ % Utilisation de la police F13 en taille 10
    ( 1 2 3 3 4 ) Tj % Affichage des caractères 1 2 3 4
    

    Puis une table faisant la correspondance :

    25 0 obj 
    <<  /Type /Encoding
    /Differences
    [ 1 H
      2 e
      3 l
      4 o ] 
    >>
    endobj
    

    Du temps où je bossais avec le secteur éditique, les imprimeurs étaient vraiment emmerdés par ces histoires de polices embarquées. Comme chaque page contenait des polices partielles, il n’était pas possible de mutualiser les éléments du PDF sur plusieurs page, car la page 1 contenait uniquement les caractères pour afficher "M. Martin", la page 2 pour afficher "Mme Samia" etc. Au final, la mémoire du contrôleur d’impression explosait en essayant de charger toutes les ressources.

  • [^] # Re: Heuristique

    Posté par  (site web personnel) . En réponse au journal PDF, mais que fait la police. Évalué à 10.

    Il existe une 4ème solution : utiliser l’une des 14 polices gérées nativement par les specs du format PDF et censées etre implémentées dans tout lecteur (ou imprimante etc) :

    • Courier (+ Bold, Italique, BoldItalique)
    • Times-Roman (+ Bold, Italique, BoldItalique)
    • Helvetica (+ Bold, Italique, BoldItalique)
    • Symbol
    • ZapfDingbats

    à noter l’absence du New par rapport aux polices de Microsoft, et l’utilisation de la police Helvetica (dite l’originale pour ceux qui connaissent l’histoire d’Arial)