SChauveau a écrit 389 commentaires

  • [^] # Re: Heuristique

    Posté par  . En réponse au journal PDF, mais que fait la police. Évalué à 3.

    pdflatex intègre les fontes utilisées dans le document à l'exception des 14 fontes de base définies par le standard. Pour celles ci, voir l'option pdftexDownloadBase14 dans le fichier updmap.cfg.

  • [^] # Re: pdffonts

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

    Et une fois que l'on a identifié la fonte posant problème (donc Monospace21BT avec Roman), on peut alors rajouter un alias dans /etc/fonts/conf.d ou localement dans ~/.config/fontconfig/conf.d/

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE fontconfig SYSTEM "../fonts.dtd">
    <fontconfig>
      <alias binding="same">
          <family>Monospace821BT</family>
          <accept>
             <family>Monospace</family>
          </accept>
      </alias> 
    </fontconfig>
  • # pdffonts

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

    Pour info, pdffonts est un des outils de manipulation des PDF fournit par poppler-utils (Debian). L'option -subst permet d'obtenir facilement les substitutions pour les fontes 'not-embedded'. Par exemple

    (bash) pdffonts -subst test-pdf-fonts-anon.pdf 
    
    
     name                                 object ID substitute font                      substitute font file
    ------------------------------------ --------- ------------------------------------ ------------------------------------
    Calibri-Bold                              8  0 Carlito Bold                         /usr/share/fonts/truetype/crosextra/Carlito-Bold.ttf
    Arial-BoldMT                              9  0 Liberation Sans Bold                 /usr/share/fonts/truetype/liberation2/LiberationSans-Bold.ttf
    ArialMT                                  10  0 Bitstream Vera Sans                  /usr/share/fonts/truetype/ttf-bitstream-vera/Vera.ttf
    Calibri                                  11  0 Carlito                              /usr/share/fonts/truetype/crosextra/Carlito-Regular.ttf
    Monospace821BT-Roman                     12  0 Bitstream Vera Sans                  /usr/share/fonts/truetype/ttf-bitstream-vera/Vera.ttf
  • [^] # Re: Humm....

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

    Après quelques tests, il me semble que le problème vient du paramêtre qual="all" dans le test du spacing. Cela fonctionne correctement en l'enlevant ou en remplaçant all par any (la valeur par défaut).

    En théorie, qual=all permet de comparer la propriété à plusieurs valeurs. Cela n'a pas vraiment de sens pour un entier donc j'imagine que le cas n'a été ni programmé ni testé correctement dans Fontconfig.

  • # Humm....

    Posté par  . En réponse au journal PDF, mais que fait la police. Évalué à 7. Dernière modification le 23 août 2021 à 14:10.

    Es tu certain que cela fonctionne comme tu le penses?

    Ce qui m'embête c'est ça :

    # fc-match "AAAAAAAA:lang=xx" file family
    Bitstream Vera Sans Mono:file=/usr/share/fonts/truetype/ttf-bitstream-vera/VeraMono.ttf

    Avec ton fichier de config, j'ai donc l'impression que toutes les polices inconnues deviennent monospace. Je n'ai pas trouvé de PDF où cela se produit mais en cherchant un peu j'ai trouvé ce post daté de quelques mois et décrivant le même problème.

    https://unix.stackexchange.com/questions/651692/fontconfig-set-every-font-with-spacing-100-as-monospace

  • [^] # Re: it iz not bicose you are

    Posté par  . En réponse au journal Make your Pass (sanitaire) Fun Again. Évalué à 0.

    C'est un nom propre comme Galaxy S21, Apple, ou Toyota Corolla Hybrid.
    Et ceux qui ne sont pas content peuvent aller manifester devant les bureaux de Toyota France (20 Bd de la République, 92420 Vaucresson) pour exiger le rajout d'un 'e' à 'Hybrid'.

  • [^] # Re: Heuuu...

    Posté par  . En réponse au journal [Rexp] Fini la bricole à base de ruban adhésif et de post-its. Évalué à 3.

    Non. Je veux dire que ce que tu cherches à faire n'est pas clair. Toi tu le sais mais tu ne le dit pas explicitement.

    Après avoir parcouru ton journal plusieurs fois, j'imagine que la réponse se trouve dans ce petit bout de phrase : «Par ((très) mauvaise) habitude, je faisais mes sauvegardes à coup de tar». J'imagine que l'on peut en déduire que ton but est de mettre en place un vrai système de sauvegarde. Cela semble se confirmer par la partie «Gestion des Backups» mais soudain on voit arriver la «Gestion des mots de passe» qui semble sortir de nulle part. S'agit t'il de tes mots de passes web, git ou alors des mots de passes gpg utilisés pour chiffrer tes sauvegardes? Au final, je pense que je finis par comprendre (et il est même possible que j'essaye gopass) mais c'est un peu comme regarder lire le tome 2 d'un livre sans avoir lu le tome 1.

  • [^] # Re: Heuuu...

    Posté par  . En réponse au journal [Rexp] Fini la bricole à base de ruban adhésif et de post-its. Évalué à 4.

    Non. Je veux dire que ce que tu cherches à faire n'est pas clair. Toi tu le sais mais tu ne le dit pas explicitement.

    Après avoir parcouru ton journal plusieurs fois, j'imagine que la réponse se trouve dans ce petit bout de phrase : «Par ((très) mauvaise) habitude, je faisais mes sauvegardes à coup de tar». J'imagine que l'on peut en déduire que ton but est de mettre en place un vrai système de sauvegarde. Cela semble se confirmer par la partie «Gestion des Backups» mais soudain on voit arriver la «Gestion des mots de passe» qui semble sortir de nulle part. S'agit t'il de tes mots de passes web, git ou alors des mots de passes gpg utilisés pour chiffrer tes sauvegardes? Au final, je pense que je finis par comprendre (et il est même possible que j'essaye gopass) mais c'est un peu comme regarder lire le tome 2 d'un livre sans avoir lu le tome 1.

  • # Heuuu...

    Posté par  . En réponse au journal [Rexp] Fini la bricole à base de ruban adhésif et de post-its. Évalué à 7.

    Et c'est quoi le problème que tu cherches à résoudre? J'ai l'impression que c'est une histoire de backups et de gestionnaire de mot de passes mais cela reste vague.

  • [^] # Re: Eléments pour la résolution du premier problème

    Posté par  . En réponse au journal Deux petits problèmes de math niveau lycée.. Évalué à 4.

    Et aussi il faudrait utiliser l'écriture inclusive « Un·e particulier.ière fait venir trois pièces de vin … »

  • [^] # Re: Code ?

    Posté par  . En réponse au journal Un article de "Pour la science" m'ayant amené à coder pour une petite vérification perso.... Évalué à 2.

    Non! Ce code est incorrect car il ne traite pas correctement le cas a==b.
    Dans ce cas particulier, la ligne people[a], people[b] = pays(people[a], people[b], base essaye d'affecter 2 valeurs différentes au même élément de tableau. C'est impossible et cela fausse le résultat final.

    Une correction simple consiste à remplacer la ligne

    b = randint(0, NB_PEOPLE - 1)
    

    par

    b = a
    while a==b :
        b = randint(0, NB_PEOPLE - 1)
    
  • [^] # Re: Eléments pour la résolution du premier problème

    Posté par  . En réponse au journal Deux petits problèmes de math niveau lycée.. Évalué à 2.

    Je crois qu'il faisait plutôt allusion à ce genre de règle : https://fr.wikipedia.org/wiki/R%C3%A8gle_%C3%A0_calcul

  • [^] # Re: Eléments pour la résolution du premier problème

    Posté par  . En réponse au journal Deux petits problèmes de math niveau lycée.. Évalué à 3.

    Archaïque était probablement un peu fort. Disons que c'est une expression peu courante car aujourd'hui quasiment personne n’achète de tonneaux.

  • [^] # Re: Eléments pour la résolution du premier problème

    Posté par  . En réponse au journal Deux petits problèmes de math niveau lycée.. Évalué à 4.

    On peut aussi procéder par l'intuition. On commence par enlever les 2 zéros de fin car 100=10^2. On cherche donc la racine carrée de 18769. Dans ce genre de problèmes, le résultat est souvent entier donc faisons l'hypothèse que la racine carrée est un nombre entier à 3 chiffres. Le 1er chiffre est forcément 1 car 200^2 = 40000 > 18769. Pour obtenir 9 dans les unités, le 3ieme chiffre doit être un 3 (3*3=9) ou un 7 (7*7=49). Pour le 2ieme chiffre, on cherche x pour que 1x*1x soit légèrement inférieur à 187 : 12*12=144, 13*13=169 et 14*14=196 (trop grand). Les 2 candidats sont donc 133 et 137 et il suffit alors de les vérifier.

  • [^] # Re: Eléments pour la résolution du premier problème

    Posté par  . En réponse au journal Deux petits problèmes de math niveau lycée.. Évalué à 2.

    Que nenni! C'est une formulation un peu archaïque, mais ici le terme 'pièce' fait référence aux '3 pièces de vin' mentionnées dans la première phrase de l'énoncé.

  • [^] # Re: Je préfère les énoncés simples mais hyper compliqués à résoudre

    Posté par  . En réponse au journal Deux petits problèmes de math niveau lycée.. Évalué à 10.

    Amusant. C'est exactement mon projet 'bidouille' pour cet été. J'ai installé un Raspberry Pi avec une caméra et du deep learning pour reconnaître la chèvre et calculer la surface déjà broutée. À 50%, le rPi fait exploser la chèvre par Bluetooth.

  • [^] # Re: Eléments pour la résolution du premier problème

    Posté par  . En réponse au journal Deux petits problèmes de math niveau lycée.. Évalué à 5.

    En effet. Voici ma solution complète. Les notations sont différentes et je compte en centimes mais c'est équivalent.

    Donc sauf erreur de ma part :

    x,y,z = 3 volumes
    a,b,c = 3 prix par litre (en centimes)
    
    L'énoncé s'exprime avec 6 equations
    y=z+10
    z=x+5
    a=x/2
    b=a+5
    c=b+5
    ax+by+cz = 78225
    
    On cherche x.
    
    On va remplacer a, b, c, y et z dans la dernière équation pour ne laisser que des x.
    
    # remplace c par b+5
    a*x+b*y+(b+5)*z = 78225
    # remplace b par a+5
    a*x+(a+5)*y+(a+5+5)*z = 78225
    # remplace z par x+5
    a*x+(a+5)*y+(a+5+5)*(x+5) = 78225
    # remplace y par z+10 = x+5+10 = x+15
    a*x+(a+5)*(x+15)+(a+5+5)*(x+5) = 78225
    # remplace a par x/2
    (x/2)*x+(x/2+5)*(x+15)+(x/2+5+5)*(x+5) = 78225
    # multiplie par 2 
    x*x+(x+10)*(x+15)+(x+20)*(x+5) = 156450
    
    x*x + x*x + 25*x + 150 + x*x + 25*x + 100 = 156450
    
    3x^2 + 50x - 156200 = 0 
    
    C'est une équation du second degré donc facile à résoudre avec la méthode habituelle.
    Le discriminant est 50*50 + 4*3*156200 = 1876900
    Sans calculatrice, la difficulté consiste à trouver que sa racine carré est 1370 mais j'imagine que les élèves de 1898 connaissaient des technique pour cela.
    
    La solution est x=220 
    Il y a aussi x=-710/3 mais un volume négatif est évidemment invalide.
    
    
  • [^] # Re: Python

    Posté par  . En réponse au journal Un article de "Pour la science" m'ayant amené à coder pour une petite vérification perso.... Évalué à 1.

    Même après avoir corrigé le cas a==b, le montant final devrait être très légèrement différent. Rien de grave. C'est du aux erreurs d'arrondis sur les calculs en virgule flottantes.

  • [^] # Re: Python

    Posté par  . En réponse au journal Un article de "Pour la science" m'ayant amené à coder pour une petite vérification perso.... Évalué à 1.

    Il ne devrait pas y avoir d'appauvrissement car la même somme est ajoutée et retranchée à chaque étape. Le bug se produit dans l'affectation people[a], people[b] = pays(people[a], people[b], base) quand a==b. Dans ce cas spécial, tu affectes 2 valeurs différentes dans la même variable et une seule est prise en compte. Dans ce cas précis, c'est la deuxième, donc la valeur de customer qui est utilisée et, comme c'est la plus petite, cela réduit donc le montant total. Il faut donc t'assurer que a et b sont différents.

    Je remarque aussi que tu as inversé seller et customer dans le return de pays.

  • [^] # Re: Python

    Posté par  . En réponse au journal Un article de "Pour la science" m'ayant amené à coder pour une petite vérification perso.... Évalué à 1.

    Je ne suis pas très python mais ne devrait t'il pas y avoir une virgule après seller dans le def pays?

  • [^] # Re: Python

    Posté par  . En réponse au journal Un article de "Pour la science" m'ayant amené à coder pour une petite vérification perso.... Évalué à 1.

    Ce n'est pas un truc spécifique à emacs pour indiquer l'encodage des fichiers?

    https://www.gnu.org/software/emacs/manual/html_node/emacs/Specify-Coding.html

    J'ai toujours considéré que python (et les autre outils) ignoraient totalement ces commentaires spéciaux.

    Il me semble qu'un emacs moderne devrait déjà être en UTF-8 par défaut (sauf si spécifié autrement dans la config d'emacs).

  • [^] # Re: Python

    Posté par  . En réponse au journal Un article de "Pour la science" m'ayant amené à coder pour une petite vérification perso.... Évalué à 7.

    Il me semble que tu n'as pas besoin de choisir aléatoirement le sens du payement et donc de dupliquer ton code. Par exemple, décide que c'est toujours 'a' qui paye 'b'. Ta sélection aléatoire de 'a' et 'b' doit être suffisante.

  • [^] # Re: short strings

    Posté par  . En réponse au journal Alignement chaotic neutre. Évalué à 2. Dernière modification le 11 juillet 2021 à 16:53.

    Le problème des petits chaînes est la première chose qui été m'est venu à l'esprit en lisant le journal. On peut aussi imaginer que certaines implémentations puissent «optimiser» en ajustant l'adresse de début pour certaines opérations ; par exemple s.erase(0,1). En fait, je doute qu'il y ai quoi que ce soit dans le standard qui permette de faire la moindre hypothèse sur l'alignement des caractères.

    Si ton code est en C++17, le plus simple est probablement de créer une nouvelle classe basée sur std::string_view.

  • [^] # Re: Nerd

    Posté par  . En réponse au journal Police partout, justification où on veut. Évalué à 7.

    Une autre fonte qu'il pourrait être intéressant de mentionner est GNU Unifont.

    http://unifoundry.com/unifont/

    Elle est disponible en TTF mais à la base il s'agit d'une fonte bitmap. En terme de qualité visuelle, Unifont est plutôt minable mais son vrai intérêt réside dans le fait qu'elle fournit la quasi-totalité du Unicode Basic Multilingual Plane (BMP) donc l'intervalle U+0000..U+FFFF. Il y a aussi 2 extensions unicode_upper.ttf et unicode_csur.ttf pour les caractères supérieurs à U+10000.

    Installer Unicode est donc une façon simple de s'assurer que le système possède au moins une fonte capable d'afficher chaque caractère (par exemple, pour les programmes utilisant fontconfig). Pour améliorer la qualité, on pourra ensuite installer une famille de fontes avec une bonne couverture unicode ; par exemple Noto https://en.wikipedia.org/wiki/Noto_fonts#Coverage

  • # Nerd

    Posté par  . En réponse au journal Police partout, justification où on veut. Évalué à 10.

    Une source intéressante de fontes est le projet Nerd Fonts (https://www.nerdfonts.com/). Pour résumer, ils proposent une cinquantaine de fontes populaires étendues avec plusieurs milliers de caractères spéciaux. C'est open-source donc les outils permettant de 'patcher' les fontes sont aussi disponibles.