Gil Cot ✔ a écrit 5730 commentaires

  • [^] # Re: article en français

    Posté par  (site web personnel, Mastodon) . En réponse au lien La FSF a une nouvelle directrice générale. Évalué à 2.

    Euh… Il n'est pas/jamais « revenu aux manettes » et ne l'était d'ailleurs plus bien avant son départ, mais bon…

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

  • [^] # Re: Survivor

    Posté par  (site web personnel, Mastodon) . En réponse au journal C, un âge remarquable. Évalué à 3.

    Vous dites la même chose sans vous comprendre, je pense :)

    « string literal » est une suite (séquence) de « multibyte characters » ; et « sizeof » retourne bien la taille du caleçon au sens du nombre de « bytes » et c'est aussi la taille du tableau au sens « array of chars » ;) Mais ça ne retourne pas la taille au sens où on compte souvent l'utiliser : le nombre de caractères ;) Comme qui dirait, selon que tu parles de pointures italiennes ou française vous ne parlez pas des mêmes valeurs ; pareillement taille au sens ASCII-compatible ou au sens encodage multi-octets (qui en plus peut être fixe ou variable) c'est plus la même.

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

  • [^] # Re: En Prolog

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

    Il faut que t'ailles sur le site essayer le programme ;) Le code de la page utilise bien des décimaux (ou plus exactement des flottants JS)
    C'est pour éviter les malentendus et voir large qu'on a fini par parler de fractions… (\mathbb{N}\subset\mathbb{Z}\subset\mathbb{D}\subset\mathbb{Q})

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

  • [^] # Re: En Prolog

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

    Les doublons : c'est le premier truc qu'on constate :D En général ça se comprend/pardonne sauf quand on a le même chiffre en plusieurs exemplaires en entrée :-/

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

  • [^] # Re: Survivor

    Posté par  (site web personnel, Mastodon) . En réponse au journal C, un âge remarquable. Évalué à 3.

    C'est bien beau de renvoyer au manuel, mais comment fais-tu pour lancer man humour avec un clavier sans voyelles ?

    Tant qu'on a les chiffres et certains symboles ça devrait le faire

    /?sr/b?n/m?n $(/?sr/b?n/pr?ntf 'h\x75m\x6f\x75r')

    (par contre, je ne vois pas de contournement avec les builtins pour lesquels je ne peux pas utiliser l'astuce du globbing)

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

  • [^] # Re: Survivor

    Posté par  (site web personnel, Mastodon) . En réponse au journal C, un âge remarquable. Évalué à 6.

    La longueur de TXT vu des années 70 à 90, avant le supra-vodou d'Unicode, quand on codait toujours chaque caractère sur un octet (car strlen renvoie le nombre d'octets …avant le \0 terminal si on veut chipoter)

    Sinon, concernant le recalcul à la modification, les langages qui ont cette approche aiment aussi stocker l'information au début de la structure (et mettre à jour à chaque modif) mais le marketing interdit de dire qu'on triche…

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

  • [^] # Re: Nom

    Posté par  (site web personnel, Mastodon) . En réponse au lien Turbo Rascal : un IDE pour développer des jeux sur vieux micros/consoles. Évalué à 2.

    OMG l'hérésie ;D Faut voir si l'u-djc a vraiment une utilité (raison d'être), l'exemple laissant un peu à désirer à mon goût.

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

  • [^] # Re: Nom

    Posté par  (site web personnel, Mastodon) . En réponse au lien Turbo Rascal : un IDE pour développer des jeux sur vieux micros/consoles. Évalué à 2. Dernière modification le 02 mars 2022 à 09:13.

    TRSE is created with Qt (C++), and runs as a stand-alone application that contains various tools for developing and deploying projects for these processors. The TRSE suite includes the following stuff:

    • A fully functional Pascal parser/compiler/assembler that compiles to various target platform assembler (in text format)
    • A built-in assembler for the 6502
    • A substantial amount of handy built-in assembler functions optimized for easy-to-use and fast operations (typically memory operations, zero paging, copying, sprite handling, IRQs, clearing screen, drawing to screen, input handling, maths, sprite handling)

    Et aussi https://lemonspawn.com/turbo-rascal-syntax-error-expected-but-begin/summary-of-trse-syntax/

    “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é à 3.

    [3615 mavie]

    soit 41/30/99 fois plus de temps…
    […]
    Plus qu'à l'optimiser.

    J'ai pu optimiser un peu en essayant de réduire les calculs qui étaient refaits plusieurs fois : maintenant on stocke ces valeurs (échange d'un peu de temps CPU par un chouia de RAM ahha) et ça porte son fruit.

    arguments real user sys
    1 2 3 8 old 0’31.546” 0’16.209” 0’26.335”
    1 1 3 8 new 2’34.099” 1’15.180” 2’07.548”
    1 2 7 7 old 0’31.369” 0’16.186” 0’26.573”
    1 2 7 7 new 2’34.225” 1’15.134” 2’07.486”
    1 5 7 8 old 0’31.556” 0’16.218” 0’26.919”
    1 5 7 8 new 2’34.688” 1’15.529” 2’07.782”
    1 4 5 6 old 0’31.442” 0’16.191” 0’26.819”
    1 4 5 6 new 2’33.411” 1’15.030” 2’06.635”

    À noter que je n'ai pas fait plusieurs exécutions et tiré les moyennes ; je ne suis pas dans un contexte de benchmark mais un contexte d'optimisation de code. Justement, une étape suivante serait de faire du profilage (un vaste débat pour du shell…)
    Bien. On note un effondrement des performances… /o\ Pourtant, j'ai réduit les appels à dc :

    id type formule avant après
    b1 Ax(ByC)zD 2+1 3
    b2 (AxB)y(CzD) 2+2 3
    b3 AxByCzD 2+1 3
    l1 (AxB)yCzD 2+1 3
    l2 (AxByC)zD 2+1 3
    r1 AxBy(CzD) 2+2 3
    r2 Ax(ByCzD) 2+2 3
    all total 24 21

    Certes pas de beaucoup… Surtout qu'en contrepartie j'ai augmenté les appels à tr (via une sous-évaluation du shell) :

    id type formule avant après
    b1 Ax(ByC)zD 1 2*2
    b2 (AxB)y(CzD) 0 2*2
    b3 AxByCzD 1 2*2
    l1 (AxB)yCzD 1 2*2
    l2 (AxByC)zD 1 2*2
    r1 AxBy(CzD) 0 2*2
    r2 Ax(ByCzD) 1 2*2
    all total 5 28

    Le mieux est vraiment l'ennemi du bien… /o\ Et comme on dit, faut pas chercher à optimiser trop tôt, et le script évolue encore.
    Par ailleurs, j'ai revu les tests de garde-fous et ai viré ce qui n'avait de sens que lorsqu'on travaillait en \textbb{N}. Donc on calcule plus de cas qu'avant… (un élément en plus de l'augmentation de consommation de ressource, et je n'ai refait les mesures qu'après avoir fait toutes ces modifications.)

    id type formule 1 2 3 8 1 2 7 7 1 4 5 6 1 5 7 8
    b1 Ax(ByC)zD 10/1536 2/1520 0/1536 4/1536
    b2 (AxB)y(CzD) 10/1488 0/1480 0/1488 4/1488
    b3 AxByCzD 8/1536 2/1536 0/1536 4/1536
    l1 (AxB)yCzD 8/1536 2/1536 0/1536 4/1536
    l2 (AxByC)zD 8/1536 2/1536 0/1536 4/1536
    r1 AxBy(CzD) 10/1536 0/1520 0/1536 4/1536
    r2 Ax(ByCzD) 8/1530 0/1520 1/1524 4/1530
    all totaux 62/10698 8/10648 1/10692 28/10698

    Et là on a une petite surprise…

    Si on prend le cas soumis par le_poney, il n'y a qu'une seule solution qui est trouvée dans deux branches branches mais en deux ou quatre fois pour chacune…

    Eh non, il y a une seconde solution…
    console
    $ trouve24.sh 7 7 1 2
    2/7=.28; 7/.28=25.00; 25.00-1=24; B1
    7*7=49; 49-1=48; 48/2=24; B3
    7*7=49; 49-1=48; 48/2=24; L1
    7*7=49; 49-1=48; 48/2=24; L2
    2/7=.28; 7/.28=25.00; 25.00-1=24; B1
    7*7=49; 49-1=48; 48/2=24; B3
    7*7=49; 49-1=48; 48/2=24; L1
    7*7=49; 49-1=48; 48/2=24; L2
    Found 8 solutions for 10648 computations.

    …qui, un peu similaire à un autre cas, se traduit par 7/(2/7)-1 (forme B1) ou… $\frac{7}{\frac{2}{7}}-1$

    Bon, faudra peut-être augmenter la précision de calcul ?

    $ dc -e '2k2 7/p'
    .28
    $ dc -e '18k2 7/p'
    .285714285714285714

    En fait c'est 0.\underline{285714}
    et on peut sentir que c'est faux même si ça tombe juste malgré les erreurs qui s'annulent (est-ce lié à l'usage de la virgule fixe dans dc ?) En effet,

    On ne peut rien contre ce genre de truc à partir du moment où le site lui-même travaille en flottants et non en entiers. C'est marrant/intrigant…

    (p.s. Je mettrai à jour le snippet plus tard)

    Je l'ai faite hier pour la monture dont je parle présentement (y a eu depuis d'autres améliorations dont je parlerai une autre fois).

    Plus de résultats mais pas mal de duplications… Arriver à les anticiper et donc ne pas calculer inutilement (ce qui aurait quand même été le cas si on stockait les résultats pour au final n'en afficher que les occurrences uniques…) C'est une piste d'amélioration qui pourrait impacter positivement le temps d'exécution.

    Je ferai un autre topo sur ce point plus tard.

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

  • [^] # Re: Encenser le C? Non!

    Posté par  (site web personnel, Mastodon) . En réponse au journal C, un âge remarquable. Évalué à 6.

    Ce que beaucoup ne comprennent pas, c'est que le standard au début (89 et 90) n'
    a fait qu'entériner un certain nombre de pratiques courantes (histoire que la no
    rme de fait devienne un standard de référence pour de nouveaux entrants, et au p
    assage graver dans le marbre une spécification qui n'existait pas vraiment… Les
    créateurs ont écrit un ouvrage de référence et laissé une implémentation mais ja
    mais écrit formellement les spécifications.) En aucun cas le standard n'a jamais
    supposé une certaine architecture, contrairement à d'autres compilateurs… Ainsi
    , Wikipedia en anglais rappelle clairement :

    The actual size of the integer types varies by implementation. The standard re
    quires only size relations between the data types and minimum sizes for each dat
    a type:

    The relation requirements are that the long long is not smaller than long, whi
    ch is not smaller than int, which is not smaller than short. As char's size is a
    lways the minimum supported data type, no other data types (except bit-fields) c
    an be smaller.

    The minimum size for char is 8 bits, the minimum size for short and int is 16 bits, for long it is 32 bits and long long must contain at least 64 bits.

    The type int should be the integer type that the target processor is most efficiently working with. This allows great flexibility: for example, all types can be 64-bit. However, several different integer width schemes (data models) are popular. Because the data model defines how different programs communicate, a uniform data model is used within a given operating system application interface.

    La portabilité du langage est en fait que c'est un macro assembleur (l'usage du C permet de ne pas avoir à se battre avec les différentes syntaxes d'assembleur pour la plupart des cas) dont le code de compilateur est assez petit et adaptable aux diverses plateformes. Si, avec les registres de ton CPU ton int est de 20 bits et ton long de 60 bits pas de souci. :-D

    Avec l'évolution, le standard met des barrières à minima…

    In practice, char is usually 8 bits in size and short is usually 16 bits in size (as are their unsigned counterparts). This holds true for platforms as diverse as 1990s SunOS 4 Unix, Microsoft MS-DOS, modern Linux, and Microchip MCC18 for embedded 8-bit PIC microcontrollers. POSIX requires char to be exactly 8 bits in size.

    C'est là par exemple une des barrières parce-qu'il ont estimé que c'est le minimum auquel on a pu descendre dans les années 80 (on ne parle pas des ALU qui peuvent être de 4 comme sur Saturn ou Zilog 80). Si un fondeur fait moins, il ne pourra pas utiliser le C standard (dont on a là une limite de portabilité) :-D

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

  • [^] # Re: Encenser le C? Non!

    Posté par  (site web personnel, Mastodon) . En réponse au journal C, un âge remarquable. Évalué à 2.

    Tu m'as devancé :-) Oui, en général sont bien définis des choses qui sont quasiment sûres d'être présentes partout ; sinon on dépend des spécifications du processeur ciblé…

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

  • [^] # Re: Encenser le C? Non!

    Posté par  (site web personnel, Mastodon) . En réponse au journal C, un âge remarquable. Évalué à 2.

    Eh oui, un langage d'assemblage de haut niveau …mais que les gens veulent utiliser comme du Pascal (i.e. avec des gardes fours) et venir se plaindre. C est un langage très bien mais qui n'est pas pour s'abstraire du matériel sous-jacent et autres considérations. Ses avantages sont aussi ses inconvénients : c'est un langage à double tranchant en plus d'être le plus tranchant dans son domaine.

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

  • [^] # Re: La balle est dans mon camp...

    Posté par  (site web personnel, Mastodon) . En réponse au message Ligne de commande fonctionne, pas le .sh. Évalué à 4.

    Ah oui, et en particulier les médias amovibles montés automatiquement sont dans ce cas (et devraient l'être.)

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

  • [^] # Re: Problème de droit ?

    Posté par  (site web personnel, Mastodon) . En réponse au message Ligne de commande fonctionne, pas le .sh. Évalué à 3.

    6 : ce n'est plus tout à fait le même sujet…
    d'abord rendre le script exécutable, ensuite apprendre au bureau à lancer le terminal pour lancer le script tout seul (quoi que, y a peut-être dans le menu contextuel une entrée qui le fait ; le double clic continuant de faire comme d'habitude : ouvrir le fichier avec un programme …auquel cas la question aurait été pourquoi ton éditeur favori n'est pas lancé)
    https://clay-atlas.com/us/blog/2020/08/17/linux-en-ubuntu-double-click-run-shell-script/

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

  • [^] # Re: Arrh, le # et non !

    Posté par  (site web personnel, Mastodon) . En réponse au message Ligne de commande fonctionne, pas le .sh. Évalué à 3.

    Tu as fait un titre en commençant la ligne par #
    Il faut sauter une ligne et encadrer ton code de ``` sur une ligne isolée au début et à la fin.

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

  • [^] # Re: En Prolog

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

    En fait il faudra essayer sur l'exemple problématique : bonCompte(24, [1,4,5,6])
    La solution étant 6/((5/4)-1) ; il ne faudrait pas que s'arrêter à 5/4 qui n'est pas entier, ni même à (5/4)-1 = 1/4 qui n'est pas un entier, donc probablement un truc dans le genre

    calcul(Res, Op1, Op2, [Op1, '/', Op2, '=', Res]):- Op2 >= 1, 
                                                       Res is Op1 / Op2, 
                                                       rational(Res).

    Ça, ça marcherait aussi pour des cas difficiles du compte est bon. Pour le cas de jeu du Hollandais Volant, d'après le source JS on est plutôt dans du number/1 mais faudrait savoir si on a la même précision de part et d'autre (sachant que les fraction vont couvrir plus de 99% des cas on peut ne pas aller jusqu'à ce niveau de détail.)

    Il y a aussi des subtilités avec les soustractions : notre résultat sera forcément positif, mais pas forcément certaines opérations intermédiaires… Par exemple : 1-5=-4; 7-4=3; 3*8=24; avec bonCompte(24, [1,5,3,8]) S'il le trouve pas, faudra probablement modifier

    calcul(Res, Op1, Op2, [Op1, '-', Op2, '=', Res]):- Res is Op1 - Op2.

    De même, par anticipation, je me demande si les fractions doivent être forcément positives ? (je pense qu'il faudrait utiliser dif au lieu de \= ou \==)

    calcul(Res, Op1, Op2, [Op1, '/', Op2, '=', Res]):- Op2 \== 0, 
                                                       Res is Op1 / Op2, 
                                                       rational(Res).

    Les tests sur le site web de trouve 24 amènent à changer un peu les bornes qu'on se fixait pour le compte est bon…

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

  • # path

    Posté par  (site web personnel, Mastodon) . En réponse au message Ligne de commande fonctionne, pas le .sh. Évalué à 5.

    J'obtiens le message "ligne de commande non trouvée…"

    Quel est le message exact ?

    Si c'est la première ligne, #!/bin/bash, comme suggéré par gUI il faut vérifier par un ls -l /bin/bash que ça existe.
    Dans l'affirmatif, il faut que tu fasses un cat -n sur ton script pour voir s'il y a des ^M à la fin… Dans l'affirmative, c'est que le fichier est en format de fin de lignes dos/windows et non unix.

    Si c'est la seconde ligne, il faut que tu fasses par exemple type rsync pour voir son chemin exact et reporter ce chemin absolu dans le script. Si ce n'est pas une installation standard, ta commande ne sera de toute façon pas trouvée quand tu poseras ton script dans un crontab

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

  • [^] # Re: Z80 ou Z80 ?

    Posté par  (site web personnel, Mastodon) . En réponse au lien Le prix des Raspberry Pi flambe suite aux pénuries de composants. Évalué à 2. Dernière modification le 01 mars 2022 à 02:00.

    J'ai du relire trois ou quatre fois pour comprendre, tellement je n'arrivais pas à faire le lien…

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

  • [^] # Re: Z80 ou Z80 ?

    Posté par  (site web personnel, Mastodon) . En réponse au lien Le prix des Raspberry Pi flambe suite aux pénuries de composants. Évalué à 2.

    La « + » …tu dois être 1 jeune plein de curiosité :) En tout cas t'as du y connaitre de belles heures de basic-ti ;)

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

  • [^] # Re: Z80 ou Z80 ?

    Posté par  (site web personnel, Mastodon) . En réponse au lien Le prix des Raspberry Pi flambe suite aux pénuries de composants. Évalué à 3.

    C'est la faute au fourgon blindé ; ils auraient du prendre une Locomotive blindée de crocos… ;)

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

  • [^] # Re: En Prolog

    Posté par  (site web personnel, Mastodon) . En réponse au journal résoudre "trouve 24". Évalué à 3. Dernière modification le 01 mars 2022 à 01:52.

    Juste excellent ! Je n'ai pas eu le temps dimanche (je comptais jeter un œil pour dérouiller mon Prolog —découverte d'adolescence que j'avais beaucoup aimé)

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

  • [^] # Re: Python 3

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

    En Haskell et en Lisp aussi (: Mais j'ai d'abord pensé à OCaml hier en lisant ton code.

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

  • [^] # Re: Corrections du tableau

    Posté par  (site web personnel, Mastodon) . En réponse au journal Comparaison entre Manjaro et Debian Sid. Évalué à 3.

    En serveur de production t'es vraiment en train de courir après les nouveautés ?

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

  • [^] # Re: Et même pour un juriste, il se goure

    Posté par  (site web personnel, Mastodon) . En réponse au lien Tas d'idées reçues : "Open Source : pourquoi le mythe du logiciel libre est une illusion dangereuse". Évalué à 3.

    En plus il se plante en ce qui concerne le concepteur : dans beaucoup d'endroits, ces droits (et toutes les découvertes/conceptions) sont pour la structure qui l'emploie…

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

  • [^] # Re: Ne tirez pas sur la postière

    Posté par  (site web personnel, Mastodon) . En réponse au lien Tas d'idées reçues : "Open Source : pourquoi le mythe du logiciel libre est une illusion dangereuse". Évalué à 5.

    expert-comptable, économiste et consultant (tel qu’il se définit sur Linkedin)

    à fond dans le dogme de tout doit se ramener en valeur comptable économique et dont les prochains articles seront du type : les mythes du travail au foyer ; les mythes du bénévolat ; etc. accessoirement un consultant qui est en phase avec les boîtes qui l'emploient et qui se fait le chantre de la brevetabilité comme bienfait pour l'humanité. il faut hélas de tout pour faire un monde.

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