Gil Cot ✔ a écrit 6119 commentaires

  • [^] # Re: Low code ?

    Posté par  (site web personnel, Mastodon) . En réponse au journal 'Règle'. Organiser son traitement. Sans se désorganiser.. Évalué à 2.

    Pour moi, Prolog est un langage à part (mais je suis biaisé car ayant fait mumuse avec quand j'étais gamin) et révolutionnaire (parce-que déclaratif et non impératif, je pense avant SQL mais en tout cas je les ai connu dans cet ordre) qui s'apparente à un solveur (terme qu'on rencontre plutôt dans les logiciels mathématiques de calculs sur des polynômes et matrices ou du calcul symbolique) …donc probablement un DSL (spécialisé ici en déduction logique car c'est créé dans le contexte de l'IA) mais pas dans la catégorie plus courante des trucs transpilés (en écrivant mon commentaire, je pensais en tant qu'admin sys au gestionnaires de confs —Chief/Puppet— et de déploiement —Ansible— mais quid des machines d'états ? Je ne sais pas trop exactement…)
    Ceci dit, la programmation logique est une forme/approche comme la programmation événementielle ou la programmation fonctionnelle ou autres. Prolog n'est pas enfermé dans un seul truc (comme on le serait dans un tableur…) et on peut l'utiliser pour résoudre divers autres problèmes tout comme les autres.

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

  • [^] # Re: ouf

    Posté par  (site web personnel, Mastodon) . En réponse au journal [Letlang] Écrire un compilateur en Rust (partie 2). Évalué à 2.

    Au fait… j'oubliais : tartiflette au reblochon

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

  • # ouf

    Posté par  (site web personnel, Mastodon) . En réponse au journal [Letlang] Écrire un compilateur en Rust (partie 2). Évalué à 4.

    Après avoir lu les deux premières parties, j'étais un peu perdu que ne soit pas mentionné : Lex+Yacc et son pendant GNU Flex+Bison, Alex+Ayacc (Ada), Ocamllex+Ocamlyacc (OCaml), Alex+Happy (Haskell), JFlex+CUP (Java), GPLEX+GPPG (C#), etc. En fait il fallait attendre de tout lire… Et merci ; je découvre l'approche Rust.

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

  • [^] # Re: Première partie

    Posté par  (site web personnel, Mastodon) . En réponse au journal [Letlang] Écrire un compilateur en Rust (partie 2). Évalué à 2.

    Comme c'est bien étiqueté, faut suivre le tag ; LinuxFr n'est pas conçu/prévu pour faire des livres (plusieurs parties et chapitres quoi.)

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

  • [^] # Re: ça avance :-)

    Posté par  (site web personnel, Mastodon) . En réponse au message [résolu] visualiser charge CPU et mémoire | mesurer l'efficience. Évalué à 2.

    Oui, pardon, me suis un peu mélange avec la fatigue puis ne suis pas revenu quand je me suis rendu compte une bonne heure après que j'avais écrit mem au lieu de free ! Comme tu cherches la quantité libre, prendre en compte la swap n'a pas de sens …parce-que idéalement il ne faut pas en avoir besoin et ne pas se dire que c'est de la mémoire qui est disponible normalement pour les programmes : quand ça swape c'est pas bon. Par ailleurs, tu peux régler le système pour ne pas utiliser la mémoire swap ou contrôler à quel seuil de saturation de la RAM il faut commencer à basculer. Mais en mode rapport, tu ne comptes pas sa présence sinon tu risques de croire que t'as assez de mémoire vive dispo au lieu de voir que ça sature, et sinon tu auras aussi du mal à expliquer aux hiérarchies qui sont de moins en moins technique quand on monte.

    Oui, pour le processeur il faut tenir compte du nombre de cœur, et même parfois si tu fais de l'hyperthreading ! Lire par exemple les échanges sur https://unix.stackexchange.com/questions/218074/how-to-know-number-of-cores-of-a-system-in-linux
    Je te propose ceci, à faire avant d'entrer dans la boucle :

    outputfile="systemusage.csv"
    # le jour où tu modifies, tu le fais en un seul endroit.
    rm -vf "$outputfile"
    # -v pour afficher ce qui se passe (à utiliser si tu es en mode interactif)
    # -f au cas où tu aurais un alias avec -i
    # ou si tu lances en tant qu'un autre compte (mais ne marchera que pour root)
    command -v nproc && NbrCrs=$(nproc --all) || NbrCrs=1
    # si la commande existe on l'utilise sinon on ne tient pas compte du nbr de çœurs

    Si tu regardes ton fichier dans un éditeur de texte, tu verras que la faute n'est pas du côté de LibreOffice (ou n'importe quel autre tableur.) En effet, chaque commande se termine par un saut de ligne…
    Dans la boucle, j'utiliserai plutôt quelque chose comme :

    echo -e "$(date)\t$(free -t | awk '/Mem:/{print $7}')\t$(uptime | awk -v N=$NbrCrs '{print $10/N}')\t" >>"$outputfile"

    J'ai un petit doute sur la 7ème colonne (compressed) : tu devrais utiliser la 3ème (used) ou la 4ème (free) non ?
    Sinon, j'ai supprimé le grep pour l'intégrer directement dans le awk
    De l'autre côté, j'ai passé la valeur du nombre total de cœurs pour adapter le résultat comme tu le souhaitais. Mais j'ai un petit doute sur le dixième champ :

    $ uptime
    23:37  up 10 days, 39 mins, 12 users, load averages: 1.70 1.59 1.57

    J'en profite pour reparler de top ; faut que t'essaye, juste pour la/le curiosité/fun…

    top -l 1 -s 0 | awk '/PhysMem:/ {print}'

    Maintenant, il parait que je n'est pas la manière propre/canonique d'écrire les scripts : j'ai trop de vieux réflexes. Voici la correction pour que ce soit plus lisible et facile à maintenir :

    TheMem=$(awk -v N=$brCrs '/Mem:/ {print $7/N}')
    TheLoad=$(uptime | awk '{print $10}')
    TheTime=$(date +"%Y-%M-%dT%H%M%S")
    echo -e "$TheTime\t$TheMem\t$TheLoad\t" >>"$outputfile"

    Maintenant, j'ai une réserve sur echo -e : ce n'est pas portable (ton programme ne marchera pas comme espéré si tu utilises un autre interpréteur que bash ou peut-être sur une autre distribution dont l'implémentation de la commande ne supporte pas cette option…) Voici la bonne façon de faire :

    # en reprenant les variables de la forme précédente…
    printf '%s\t%s\t%s\t\n' "$TheTime" "$TheMem" "$TheLoad"

    J'espère n'avoir rien oublié et te laisse recoller les morceaux. :-)

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

  • [^] # Re: Low code ?

    Posté par  (site web personnel, Mastodon) . En réponse au journal 'Règle'. Organiser son traitement. Sans se désorganiser.. Évalué à 3.

    Un DSL est soit un langage trop spécialisé et très limité car ne sortant pas de son domaine, contrairement aux autres langages de programmation ; soit un métalangage (méta au sens de surcouche simplificatrice à un autre langage plus standard/générique.) Ce dernier cas est souvent le cas de syntaxes déclaratives qui vont être transpilées derrière.

    Pour moi, les trucs low-code (en tout cas ceux que j'ai rencontré) correspondent à ce-qu'on appelait des macros…

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

  • [^] # Re: Deuxième partie

    Posté par  (site web personnel, Mastodon) . En réponse au journal [Letlang] Écrire un compilateur en Rust. Évalué à 3.

    La totalité est/sera .

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

  • [^] # Re: J'ai pas écouté le podcast, mais mon grain de sel

    Posté par  (site web personnel, Mastodon) . En réponse au lien Is functional programming the hipster programming paradigm?. Évalué à 2.

    Le plus vieux langage considéré comme pur est lisp il me semble, qui n’est pas pur si je ne m’abuse.

    Pas compris : c'est quoi « considéré comme pur » et selon quels critères ?
    Tu veux dire que ce n'est pas un langage fonctionnel pur comme dit dans le message auquel tu réponds ? Pourtant il en a tous les critères (et c'était le premier langage qui pouvait se manipuler lui-même, et à ne pas distinguer les données du code.)

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

  • [^] # Re: J'ai pas écouté le podcast, mais mon grain de sel

    Posté par  (site web personnel, Mastodon) . En réponse au lien Is functional programming the hipster programming paradigm?. Évalué à 3.

    Voir par exemple https://stackoverflow.com/a/23457622/1699311
    Ça fait très longtemps que j'y ai pas touché, mais il me semble que même les contrôles de structure Smalltalk sont des méthodes (absolument tout le code est un objet et un autre programme Smalltalk peut le manipuler en tant que tel.)

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

  • # rule-based … assert

    Posté par  (site web personnel, Mastodon) . En réponse au journal 'Règle'. Organiser son traitement. Sans se désorganiser.. Évalué à 5.

  • [^] # Re: J'ai pas écouté le podcast, mais mon grain de sel

    Posté par  (site web personnel, Mastodon) . En réponse au lien Is functional programming the hipster programming paradigm?. Évalué à 3.

    Bof, quand tu as compris le principe tu peux l'implémenter en assembleur ou n'importe quel langage impératif. Faire du fonctionnel ou de l'orienté objet ne doit pas se réduire à utiliser un langage qui offrirait des outils pour le paradigme (sinon on obtient des trucs comme, déjà vu, des gens qui font du C à l'ancienne et disent faire de l'objet parce-que compilant avec C++ ou ObjectiveC ou C# ou etc.)
    Je trouve génial la réponse qui s'appuie sur un langage assez connu mais qui ne fait pas tomber dans les biais induis par les langages dédiés : le lectorat est obligé de s'accrocher aux concepts et à leur mise en œuvre et non de suivre la pente d'un langage facilitant (et sa syntaxe.)

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

  • [^] # Re: Betteridge

    Posté par  (site web personnel, Mastodon) . En réponse au lien Is functional programming the hipster programming paradigm?. Évalué à -3.

    Le point d'interrogation étant une interrogation on devrait pouvoir plusieurs réponses… aussi bien la négative que la positive.

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

  • [^] # Re: autre démocratie, autre open source

    Posté par  (site web personnel, Mastodon) . En réponse au journal censure ou pas. Évalué à 3.

    Il suffirait d'une petite recherche au lieu d'une impression pour comprendre le propos, mais on part du principe que si l'autre signale une erreur c'est par malhonnêteté et que l'autre s'est construit de mauvaises définition. :-/
    Quand je renvois aux origines, c'est une invitation à rechercher l'origine du mot et du mouvement : un régime politique dans lequel tous les citoyens participent aux décisions publiques et à la vie politique de la cité. Mais il est plus simple de botter en touche. :-)
    Quand je signale ensuite un fourvoiement, c'est une invitation à comparer à ce qu'on veut faire passer aujourd'hui sous ce mot et comment on en est arrivé là. Petit indice : qui sont les pères fondateurs de la République Française et que pensaient ces gens de la démocratie héhé.

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

  • [^] # Re: Je suis dur d'oreille, tu dis que ...

    Posté par  (site web personnel, Mastodon) . En réponse au lien Bientôt il faudra avoir un casier judiciaire vierge pour draguer . Évalué à 4.

    Non d'une pince, le poisson mord le pion aussi.

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

  • [^] # Re: fausse bonne idée ?

    Posté par  (site web personnel, Mastodon) . En réponse au lien Bientôt il faudra avoir un casier judiciaire vierge pour draguer . Évalué à 2.

    Bon, est-ce que ça protège du catfishing avec combo magique ? Même pas ? Pfff

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

  • [^] # Re: autre démocratie, autre open source

    Posté par  (site web personnel, Mastodon) . En réponse au journal censure ou pas. Évalué à 2.

    Avec ta définition de la démocratie, tu fais comme les politiques qui ont fourvoyé la définition initiale/fondamentale …parce-que ne voulant justement pas de la démocratie dans sa forme pure/véritable. C'est beau les mots …quand on les tord.

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

  • [^] # Re: Perso…

    Posté par  (site web personnel, Mastodon) . En réponse au message [résolu] visualiser charge CPU et mémoire | mesurer l'efficience. Évalué à 2. Dernière modification le 11 mars 2022 à 18:13.

    Le/la code/commande que je donne fait les sommes deux colonnes %cpu et %mem ; mais je ne sais si tu comprends bien toutes les implications… (En terme de mémoire, y a pas que la RAM par exemple, y a aussi l'usage de la swap et toutes sortes de mémoires disponibles. De même pour la CPU va prendre en compte le nombre de processeurs de la machine et leur nombre de cœurs, etc.)
    Pour voir la charge, ou load average, tu as trois valeurs qui te sont retournées par la commande uptime et répondent exactement à cela.
    Pour voir la mémoire utilisée et libre, il faut se tourner vers la commande mem qui répond simplement à ce point.

    Tu crées un sous-processus avec la parenthèse : ça veut dire que ton interpréteur (bash par exemple mais ça marche pour les autres shell aussi) va lancer une autre instance de lui-même qui va exécuter la(s) commande(s) de façon séparée. C'est presque comme si tu faisais bash -c "commande" dans le cas présent.
    Pour grouper des commandes (i.e. faire l'équivalent d'un bloc de commandes, afin de rediriger le contenu de toutes dans un fichier dans le cas présent), ce sont les accolades et non les parenthèses. Mais avec une petite subtilité dans son usage…

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

  • [^] # Re: narmol

    Posté par  (site web personnel, Mastodon) . En réponse au lien Incendie du datacenter OVHcloud : le design n’a pas aidé les pompiers. Évalué à 1.

    ils ont cartonné… de feu…

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

  • [^] # Re: des timeouts ?

    Posté par  (site web personnel, Mastodon) . En réponse au message Traces et logs entre page php et MariaDB. Évalué à 2.

    Bonjour,

    Si ça fonctionnait déjà mais que ça ne fonctionne plus c'est certainement que ce n'était pas écrit de façon portable. :-S Bon ça peut pécher à deux endroits…

    Il faut que tu te connectes sur ton serveur auto-hébergé (faut que ce soit celui qui exécute le code PHP …comme ça s'il y a éventuellement des soucis de connexion on le verra) et que tu lances une console SQL
    https://sysreseau.net/mysql-se-connecter-en-ligne-de-commande/

    # host="le nom ou l'IP de serveur de bases que tu as configuré dans ton code"
    # user="le nom d'utilisateur autorisé que tu as renseigné pour ton code"
    # taper, quand demandé, le mot de passe utilisé dans configuré ton script
    mysql -h $host -u $user -p
    Enter Password

    Une fois connecté, sélectionne la base de données puis exécute la requête

    -- base="le nom de la base de données utilisée par le ton script PHP"
    -- query="la requête qui doit être exécutée et qui ne l'est pas ou plante"
    mysql> USE $base;
    mysql> $query;

    À la fin de chaque requête ($query) il te dit combien de temps il a mis à l'exécuter.

    Par ailleurs, sais-tu quelles sont les versions du service MySQL et de PHP, avant et après la migration ?

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

  • [^] # Re: Règles CSS complètes

    Posté par  (site web personnel, Mastodon) . En réponse à l’entrée du suivi Améliorer l'affichage des tableaux. Évalué à 2 (+0/-0).

    Bon, je pense qu'on peut limiter la casse en se concentrant sur le corps du tableau

    table {
      border-collapse: collapse;
    }
    table td {
      padding: 5px;
    }
    table tbody tr {
      border-bottom: thin solid;
    }
    table tbody tr:hover {
      background: #f1f1f1;
    }

    On aura du coup un filet (et non deux bandes) sous les images des couvertures. Qu'en penses-tu ?

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

  • [^] # Re: Trop dur d'attendre Vendredi

    Posté par  (site web personnel, Mastodon) . En réponse au lien Vim users be like:. Évalué à 3.

    Les deux tonton :-)

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

  • [^] # Re: CSS

    Posté par  (site web personnel, Mastodon) . En réponse à l’entrée du suivi Un tag pour ne pas divulgacher dans les contenus?. Évalué à 2 (+0/-0).

    On ne devrait pas montrer au survol par inadvertance du mulot, il faudrait cliquer explicitement.

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

  • [^] # Re: Je suis dur d'oreille, tu dis que ...

    Posté par  (site web personnel, Mastodon) . En réponse au lien Bientôt il faudra avoir un casier judiciaire vierge pour draguer . Évalué à 9.

    Ah, pas les autres signes ?

    -> []

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

  • [^] # Re: Très, très intéressant

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

    Ce désintérêt, donc, serait peut-être un indice de plus que le texte, les mots imprimés, ne sont plus porteurs de ce pouvoir qu'on leur a si longtemps associé : informer, éduquer pour (faire) changer les choses ou pour (pouvoir) leur résister ?

    L'imprimerie a été une révolution …parce-que on pouvait dupliquer plus vite et plus fidèlement qu'avec les scribes/copistes (moines ou pas.) Et pouvoir faire du volume va permettre une plus grande diffusion…
    On a enfin libéré l'écrit, et poursuivi sur cette lancée en démocratisant et simplifiant les procédés de création (en passant par la machine à écrire pour arriver à l'ordinateur avec traitement de texte présent un peu partout de nos jours) et de presse (pensons aux imprimantes devenues accessibles aux particuliers et donc les qualités vont en s'améliorant —contrairement aux coûts des cartouches mais c'est un autre débat) ou diffusion au plus large (aujourd'hui la publication sur la toile Internet, avec son foisonnement de blogs persos à une époque d'avant la main mise des réseaux asociaux…) Mais si si on a libéré l'écrit, il faut une étape en plus qui ne prend toujours pas à mon avis. On a cru que si tout le monde passait par la case école (pour d'autres raisons que celle-là mais ce n'est pas le sujet) et apprenait à lire alors ça irait de soi. Mais faut se rendre compte que tout le monde n'a pas le goût de la lecture si je peux dire.

    Le développement en parallèle (bien que démarré plus tard) de la communication de voix (je pense aux postes radios jusqu'à la révolution des radios FM pirates puis libres, mais aussi aux supports physiques de musique et à la téléphonie) et d'images (je pense surtout à la télévision puis aux plateformes de sreaming) ne fait que renforcer le constat : en général les gens vont préférer qu'on parle directement à leurs sens (ouïe et vue ici) plutôt que de faire le détour que nécessite l'écrit/lecture.
    Oui, l'écrit est en perte de vitesse (mais pas d'intérêt car il y en a et il y en aura toujours que cette forme satisfait) ; la chose n'est malheureusement pas surprenante.

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

  • [^] # Re: Tant qu'à faire : le communiqué de la DGCCRF

    Posté par  (site web personnel, Mastodon) . En réponse au lien Smartphones et tablettes reconditionnées : les consommateurs insuffisamment informés. Évalué à 2.

    Merci. :-)

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