Gil Cot ✔ a écrit 5701 commentaires

  • [^] # Re: Bof

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Sortie de la version 2.0 de Grisbi, logiciel de comptabilité. Évalué à 1.

    GNUCash ou Dolibar ne seraient pas de bonnes alternative ?

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

  • [^] # Re: Bof

    Posté par  (site web personnel, Mastodon) . En réponse à la dépêche Sortie de la version 2.0 de Grisbi, logiciel de comptabilité. Évalué à 1.

    bref, le fameux grand livre comptable quoi. mais difficile de trouver le formalisme exactement attendu dans ce retour en arrière.

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

  • [^] # Re: Pipe ?

    Posté par  (site web personnel, Mastodon) . En réponse au journal Lancer un logiciel distant depuis sa machine. Évalué à 5.

    Je ne m'explique pas pourquoi scp (même compressé) est à ce point si lent par rapport à la concurrence (bien pire que dans ma mémoire) alors que c'est justement son job de faire transiter des données potentiellement volumiques.

    Je n'ai pas vraiment ressenti cette lenteur, mais SCp et SSh ne fonctionnent absolument pas de la même façon… Je ne me rappelle pas bien les détails d'implémentation, mais quand tu fais un tube avec SSh, tu ouvres un pseudo-terminal dont tu connectes l'entrée standard (donc tu envois ton flux exactement comme tu le balancerais si tu le tapais au clavier…) Par contre quand tu fais un SCp, en dessous tu établies un liaison client-serveur (si, si, et toutes les bécanes ayant un serveur ssh ne permettent pas d'accepter du scp —comme c'est paquetagé dans OpenSSH utilisé par défaut dans beaucoup d'Unix, des BSD à Linux en passant par AIX— bah on s'en rend pas compte) comparable à curl/lftp -c/ftpget/ftpput (c'est encore différent du sous-système sftp qui ressemble plus à du ftp classique et utilise un tout autre protocole) Ça fait un certain nombre d'opérations (vérifier et se positionner dans le répertoire cible, vraiment recréer les arborescence quand utilisé en mode récursif, afficher la progression, etc.)

    tar -czf - linux-5.12-rc4/ | ssh remote 'tar -xzf -'

    cet exemple est en fait comparable à ceci :

    # il faut helas preparer le fichier avant car scp ne lit pas stdin
    tar -czf foo.tgz linux-5.12-rc4/ 
    # puis l'envoyer separement 
    scp foo.tgz remote:./ ; rm foo.tgz
    # et en face l'extraire car il n'exploite pas stdout
    tar -xzf foo.tgz ; rm foo.tgz

    et là on voit que la plus grande rapidité apparente, en supposant qu'on ait eu les même protocoles et que les deux outils ne se partagent pas que le mode de transport, est due au fait que dans le premier cas on parallélise presque (la gestion des tubes fait qu'on n'attend pas que tout se fasse séquentiellement)

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

  • [^] # Re: ouch…

    Posté par  (site web personnel, Mastodon) . En réponse au lien OVH : Suite à l'incendie à Strasbourg, des sauvegardes par défaut et gratuites.. Évalué à 1.

    Ils n'ont pas entièrement torts ; la question peut se poser… Mais en même temps, je me dis que c'est pris en compte au vue de la proposition de l'hébergeur. Alors ça me chagrine d'avoir l'impression de lire entre les lignes qu'on tire sur les blessés, et si on ajoute ce french-bashing de l'intérieur alors que le reste du monde a pris cette annonce/proposition très au sérieux, je suis outré et chagriné par nos médias.

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

  • [^] # Re: Étonnant

    Posté par  (site web personnel, Mastodon) . En réponse au lien OVH / RGPD : Vos backups sont perdus ? Il faut le signaler à la CNIL…. Évalué à 3.

    Et ça s'applique aux gens/organismes qui n'ont pas dument déclaré les dits données perdues ?

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

  • # ouch…

    Posté par  (site web personnel, Mastodon) . En réponse au lien OVH : Suite à l'incendie à Strasbourg, des sauvegardes par défaut et gratuites.. Évalué à 2.

    …le tacle à la fin de l'article

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

  • [^] # Re: Anecdote related

    Posté par  (site web personnel, Mastodon) . En réponse au journal Question : Ai-je le droit de refuser d'exécuter un logiciel ?. Évalué à 2.

    Légalement ils peuvent demander un numéro. Mais obligé que le numéro soit mobile c'est absolument de l'abus.
    Tiens, votre logique, pourquoi ne pas l'appliquer dans l'autre sens pour voir ?

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

  • [^] # Re: Des choux et des carottes...

    Posté par  (site web personnel, Mastodon) . En réponse au lien Performance comparison: counting words in Python, Go, C++, C, AWK, Forth, and Rust. Évalué à 1.

    et ensuite viennent quelques pensées qu'il en tire, avec en premier : "I think it’s the simple, idiomatic versions that are the most telling. This is the code programmers are likely to write in real life.", alors que j'ai prouvé ci-dessus que ce n'est pas le cas, les developpeurs ne ponderont pas tous le même code dans la vie réelle, il existera des versions différentes avec des performances elles aussi bien différentes.

    Pas tous, mais la majorité, en ayant les mêmes contraintes que celles posées. Mais cela ne signifie pas que c'est la version finale de la majorité, mais le premier truc qui vient à l'esprit d'une personne pas trop perchée. Et sur ce point justement, il dit bien que ce qui l'intéresse c'est que les devs connaissent et comprennent assez ces aspects (comment sont géré les tableaux de hachage, les performances des entrées/sorties et des routines de tri intégrées) de leur langage de prédilection et non des concepts algorithmiques très avancés que peu mettent en œuvre au final (encore en général, et ça vise les petites entreprises qui veulent faire des entretiens à la Foogle/Gacebook pour finalement vous faire pondre des petits trucs bien loin de là) : « I think this is a good interview question because it’s somewhat harder to solve than FizzBuzz, but it doesn’t suffer from the “invert a binary tree on this whiteboard” issue. It’s the kind of thing a programmer might have to write a script for in real life, and it shows whether they understand file I/O, hash tables (maps), and how to use their language’s sort function. There’s a little bit of trickiness in the sorting part, because most hash tables aren’t ordered, and if they are, it’s by key or insertion order and not by value. »

    Le problème est certainement lié à une autre de ses pensées : "I still think this interview question is a good one for a coding question". Si cette question m'était posée telle que lors d'un entretien (hypothèse improbable), je demanderais à l'examinateur dans quel contexte le programme est censé s'exécuter, quels sont les critères importants : performance à tout prix ? code facile à maintenir même 20 ans plus tard par un nouvel arrivant ? Empreinte mémoire minimale ? Espace disque ou IO minimum ? … Même si dans la vie réelle c'est souvent un équilibre entre tous ces critères, rien ne permet de deviner le choix de l'examinateur. Au final il y aura autant de versions que ce choix d'équilibre entre ces critères.

    De ce que j'ai vu pour avoir fait passer un certain nombre d'entretiens et pour en avoir subi de bien costaudes aussi, on ne pense pas forcément à faire le malin ni à donner une réponse exhaustive quand on pense à tout les points que tu évoques. Les examinateurs pas fêlés n'ont normalement pas de choix et veulent juste voir comment est esquissée la solution (et là, en proposant celle de Ben tu le rassures que tu sauras répondre aux urgences au lieu de pinailler quand il y a le feu ; et si en plus tu mets les réserves citées par vous deux, ça montre que tu connais ton langage et sauras optimiser le moment venu)
    Mais sinon, c'est un peu la seconde partie de l'entretien déjà… « After the candidate has a basic solution, you can push it in all sorts of different directions: what about capitalization? punctuation? how does it order two words with the same frequency? what’s the performance bottleneck likely to be? how does it fare in terms of big-O? what’s the memory usage? roughly how long would your program take to process a 1GB file? would your solution still work for 1TB? and so on. Or you can take it in a “software engineering” direction and talk about error handling, testability, turning it into a hardened command line utility, etc. »

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

  • [^] # Re: Des choux et des carottes...

    Posté par  (site web personnel, Mastodon) . En réponse au lien Performance comparison: counting words in Python, Go, C++, C, AWK, Forth, and Rust. Évalué à 2.

    Le titre est ce qu'on appelle, je crois, putaclic (il est à parier qu'avec un titre plus honnête il aurait eu beaucoup moins de lectures et de commentaires ici, et probablement de contributions héhé) ;-)

    Alors, pour la version simple et l'optimisée, il a énoncé les critères suivants :

    • on lit un fichier depuis l'entrée standard, et on ne lit pas tout le fichier en mémoire (mais par blocs pouvant être des lignes et au d'au plus 64 kibi)
    • on écrit le nombre d'occurrence des mots le composant du plus élevé au plus bas sur la sortie standard
    • on ne fait pas de distinction de casse et son résultat est en minuscule : "le" et "Le" et "LE" seront tous trois comptés "le 3"
    • on ne se préoccupe pas de l'encodage et des accentuations, on considère qu'on bosse sur de l'ASCII des familles (comme le document de test utilisé)
    • on ne cherche pas à classer les mots ayant la même fréquence d'apparition
    • on n'utilise que les éléments de base du langage (pas de bibliothèque supplémentaire)
    • on n'invente pas sa propre structure de hachage (même s'il a fait une exception pour la variante optimisée en C)
    • on s'évite les trucs de jedi du langage et le recours à l'assembleur ou trucs similaires

    Avec ces trois derniers, il est un peu difficile de trouver un autre algo que celui proposé. Tu trouves autres chose et ce ne sera plus le même test ni le même objectif de l'entretien.
    Mais fort de ces contraintes, il est normal que même la version optimisée ne touche pas fondamentalement la logique première (toute façon l'autre but, comme je le perçois, était de voir comment mettre le profilage à profit ensuite et quand il faut s'avoir s'arrêter dans l'optimisation : pour certains langages il dit qu'on peut faire mieux, mais qu'il estime que c'est trop d'effort pour des poullièmes par rapport au cadre posé)

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

  • [^] # Re: Des choux et des carottes...

    Posté par  (site web personnel, Mastodon) . En réponse au lien Performance comparison: counting words in Python, Go, C++, C, AWK, Forth, and Rust. Évalué à 1.

    Le but était de démontrer d'une mesure de temps d'exécution est fantaisiste car il y a moultes façons d'écrire ce programme, avec des temps d'exécution fort différents.

    Ça tombe bien… C'est dans la section finale, « Other languages », où il est dit :

    Many readers contributed to the benhoyt/countwords repository to add other popular languages – thank you! Here’s the list:

    L'auteur n'a clairement pas écrit la variante en PHP d'une part (c'est Max Semenik qui en est crédité), et elles sont sur un dépôt ouvert ouvert d'autre part… Donc tu peux soumettre une version optimisée.

    Il est aussi conscient qu'il y a plusieurs façons d'arriver au même résultat, et précise dans le résumé en introduction :

    For each language, I’ve included a simple, idiomatic solution as well as a more optimized approach via profiling.

    La solution de base, simple, est normalement ce qu'on peut pondre de tête lorsqu'on vous présente le problème en entretien et qu'on n'a pas tous les éléments et le temps pour faire un truc beau et optimisé (là dessus, on est d'accord que le plus simple est d'utiliser explode et que peu de gens ont le réflexe preg_split qui se trouve moins performant pour le coup)

    A basic solution reads the file line-by-line, converts to lowercase, splits each line into words, and counts the frequencies in a hash table. When that’s done, it converts the hash table to a list of word-count pairs, sorts by count (largest first), and prints them out.

    L'optimisation est la seconde étape, et c'est dans ce cadre et ce sens qu'il faut regarder les temps d'exécution. Mais pas pour eux-même ni pour se comparer au voisi dans l'absolu : la démonstration est surtout comment profiter des outils de profilage pour optimiser (donc on devrait comparer les différentes versions d'un même langage entre elles —mais accidentellement, quand on sait le faire dans plusieurs langages, il est tentant de comparer les mêmes implémentations entre langages pour voir si les mêmes efforts payent de la même façon et aussi mieux appréhender les points forts et les points faibles de chacun.)
    Non seulement Ben ne pratique pas le PHP, mais si c'était le cas il n'aurait accordé une section que s'il peut présenter une version de base et une optimisée en s'appuyant sur une possibilité de profilage intégrée (et ce point m'intéresse si tu as la réponse.)

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

  • [^] # Re: En résumé et en français

    Posté par  (site web personnel, Mastodon) . En réponse au lien Outrun: utiliser la puissance d'une machine distante. Évalué à 1.

    Si quelqu'un a trouvé une utilité à ce logiciel, je serai ravi de lire son journal ;)

    À première vue, c'est pour avoir de la puissance de calcul/traitement distribuée sur des machines auxquelles on a accès.

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

  • # eh ben…

    Posté par  (site web personnel, Mastodon) . En réponse au lien En Suisse, le monde économique veut un passeport Covid pour début juin dans le sillage de l'UE. Évalué à 1.

    Faut-il en rire ou en pleurer ?

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

  • [^] # Re: Des choux et des carottes...

    Posté par  (site web personnel, Mastodon) . En réponse au lien Performance comparison: counting words in Python, Go, C++, C, AWK, Forth, and Rust. Évalué à 1.

    Ils sont tous relativement courts les codes proposés…

    Alors, si je comprends bien, tu gagnes 0.08s chez toi en remplaçant

    if (!isset($words[$word])) {
        $words[$word] = 0;
    }
    $words[$word]++;

    par (moins propre pour ne pas dire carrément crade)

    @$words[$word]++;

    ? Est-ce isset ou l'affectation qui plombe les performance ?
    Parce-que raccourcir pour raccourci abouti au genre de trucs qui font la mauvaise presse de PHP (qui pourtant, malgré la performance qui te déplait, laisse Python sur le carreau)
    En tout cas je n'aurais pas viré ce passage, et si c'est juste pour faire moins de ligne

    isset($words[$word]) ?: $words[$word]= 0;
    $words[$word]++;

    ou encore (après c'est une question de goût)

    !isset($words[$word]) && $words[$word] = 0;
    $words[$word]++;

    Et une réduction de 57.9% (de 0.19s à 0.11s) n'est pas vraiment 100% comme tu dis

    de toutes petites modifs comme celle que j'ai faites peuvent faire passer le résultat presque du simple au double (ou l'inverse)

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

  • [^] # Re: Et c'est quoi la pratique en général ?

    Posté par  (site web personnel, Mastodon) . En réponse au journal SQL Server sous Linux : enjeux de sécurité. Évalué à 2. Dernière modification le 21 mars 2021 à 17:43.

    L'un n'a jamais empêché l'autre ; il y a eu plein d'entreprise qui ont utilisé les ordinateurs domestiques à des fins professionnelles. (je ne parle pas que de l'époque Atari, puisqu'on a vu plus tard en entreprise plein de fenêtre xp puis vista qui n'étaient pas estampillées pro s'utiliser comme poste de travail pro… et récemment dans un grand groupe j'ai vu utiliser la version express de sql-server en production)

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

  • [^] # Re: une belle illustration…

    Posté par  (site web personnel, Mastodon) . En réponse au lien Joyeux anniversaire cURL ! (23 ans aujourd'hui). Évalué à 1.

    Pourquoi migrer ? C'est toujours bien d'avoir le choix, et des choix libres.
    Et puis les deux ne se se recoupent pas vraiment en terme de fonctionnalités ; on peut trouver un certain nombre de cas où l'un est mieux ou l'autre défaillant, et des cas où utiliser l'un est plus simple que d'utiliser l'autre.

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

  • [^] # Re: AWK en RUST

    Posté par  (site web personnel, Mastodon) . En réponse au lien Performance comparison: counting words in Python, Go, C++, C, AWK, Forth, and Rust. Évalué à 2.

    Je viens d'aller voir la page des performances de frawk et j'ai adoré son disclaimer :

    The abundance of such claims notwithstanding, I've found it is very hard to precisely state the degree to which an entire programming language implementation is or is not efficient. I have no doubt that there are programs in frawk that are slower than equivalent programs in Rust or C, or even mawk or gawk (indeed, see the "Group By Key" benchmark). In some cases this will be due to bugs or differences in the quality of the language implementations, in others it will be due to bugs or differences in the quality of the programs themselves, while in still others it may be due to the fact that in some nontrivial sense one language allows you to write the program more efficiently than another.

    I've found that it can be very hard to distinguish between these three categories of explanations when doing performance analysis. As such, I encourage everyone reading this document to draw at most modest conclusions based on the numbers below. What I do hope this document demonstrates are some of frawk's strengths when it comes to some common scripting tasks on CSV and TSV data

    AWK est un DSL prévu pour les fichiers DSV simples de l'époque (le fichier /etc/passwd en est un exemple) alors qu'aujourd'hui le CSV qui s'utilise de plus en plus en plus est loin de cette simplicité+régularité (non seulement, contrairement au sigle, ce n'est pas la virgule qui est forcément utilisée, mais les différents séparateurs peuvent se retrouver dans les champs qui doivent en plus être entourés etc.) À l'inverse, frawk veut adresser d'entrée cette complexité déjà discutée ici. Il est donc bien vu d'avoir xsv et tsv-tools dans le comparatif puisque ceux-ci sont sur le créneau visé. Ceci dit, le CSV utilisé pour ses tests n'est pas des plus complexes, mais nécessite plus de taf (comme je l'ai mentionné dans un autre commentaire, ce sont dans ces cas que xsv et tsv-utils peuvent sembler intéressant, pour ne pas devoir investir plus de temps et d'énergie en développement supplémentaire)

    Benchmarks for the TREE_GRM_ESTN dataset are not run on CSV input with mawk or gawk, as it contains quoted fields and these utilities do not handle CSV escaping out of the box. We still run them on the TSV versions of these files using \t as a field separator.

    Les awk présentés sont écrits sans hack et donc pourront être utilisés avec d'autres implémentations d'une part, et les performances observées avec les implémentations et versions utilisées n'exploitent pas leurs spécificité (gawk par exemple a quelques ajouts qui font que la réécriture peut donner des résultats plus bluffants mais cela ne sera malheureusement pas portable, contrairement à la forme POSIX) Il y a quand même de petits détails auxquels il faut faire gaffe, comme il est dit

    Note: the +0s ensure we are always performing a numeric comparison. In Awk this is unnecessary if all instances of column $4 and column $5 are numeric; in frawk this is required: max will perform a lexicographic comparison instead of a numeric one without the explicit conversion.

    La plus grande surprise, pour moi, fut pour le petit test en Python et en Rust

    frawk is a good deal faster than the other options, particularly on the newer hardware, or when run in parallel. Now, the Rust script could of course be optimized substantially (frawk is implemented in Rust, after all). But if you need to do exploratory, ad-hoc computations like this, a frawk script is probably going to be faster than the first few Rust programs you write.

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

  • [^] # Re: AWK en RUST

    Posté par  (site web personnel, Mastodon) . En réponse au lien Performance comparison: counting words in Python, Go, C++, C, AWK, Forth, and Rust. Évalué à 2.

    J'aurais dit à première vue que la majorité des utilitaires sont peu utiles (d'ailleurs la documentation de synthèse —le lisez-moi— indique bien ça et là que les utilitaires traditionnels font la même choses) si ce n'est leur gestion des entêtes en plus… Je n'ai pas souvent ce cas, mais quand ça arrive, c'est sûr que j'aurais adoré avoir cette trousse en plus (merci donc pour la découverte …renversante.)

    Les trois ou quatre plus utiles de prime abord, àmha, sont :

    • tsv-filter bien que j'utilise awk pour la plupart des exemples données (quand on procède par position… avec les entêtes il y a un réel plus ici car ça devient plus complexe-et-chiant de l'autre côté mais reste faisable) et ai expérimenté quelque autre script à l'occasion ;
    • tsv-summarize là aussi on peut sortir awk ou un autre langage de scripting comme PERL/PHP/Python/Ruby/etc, voire de passer par R ou du SQL, mais je pense que pour les data-scientists ou des staticians qui ont souvent ce genre de besoin sur ce genre de fichiers c'est du temps de scriptage en moins ;
    • dans le même esprit, tsv-sample peut être intéressant pour toute personne amenée à manipuler des échantillons d'un gros fichier (des milliers de lignes) et dans ce cas aurait eu besoin de passer par un script maison vite fait ou un outil pivot ;
    • csv2tsv est clairement un truc que j'aurais aimer avoir dans de nombreux cas où on a des exports CSV dégueulasses (avec des champs qui ne sont pas systématiquement "quoté"s et le pire quand on a des champs avec le délimiteur ou s'étendant sur plusieurs lignes) depuis divers outils

    En tout cas belle découverte.

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

  • [^] # Re: Et dans Pijul ?

    Posté par  (site web personnel, Mastodon) . En réponse au journal Adieu vieille branche. Évalué à 1.

    rosté ?

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

  • [^] # Re: Pendant ce temps dans VirtualBox

    Posté par  (site web personnel, Mastodon) . En réponse au journal Adieu vieille branche. Évalué à 2.

    N'est-ce pas juste que les personnes qui font les traductions aient fini par s'y perdre ?

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

  • [^] # Re: SVN

    Posté par  (site web personnel, Mastodon) . En réponse au journal Adieu vieille branche. Évalué à 2.

    Dans le principe de fonctionnement arborescent, tu as toujours une branche, fut-ce le tronc. La remarque initiale n'allait pas contre ce principe (donc ne demandait pas de créer un dépôt sans branche) ; mais indiquait de ne pas donner de nom par défaut (obligeant donc à en choisir un soi-même et du coup on ne serait pas retrouvé avec un standard que certains pestent à changer.) Typiquement, tu créerais ton dépôt avec une branche principale/courante/maîtresse/ce-qui-te-convient et non master. (ceci dit, c'est toujours possible d'avoir un autre nom pour la branche référence, mais c'est lourd en manipulations avec les forges qui protègent d'office le mestre…)

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

  • [^] # Re: Ouaiche

    Posté par  (site web personnel, Mastodon) . En réponse au lien "Rust vs. Go: Why They’re Better Together". Évalué à -1.

    Merci ; je n'aurais pas mieux dit. Et du coup, je ne vois toujours pas de quelles improvisations il parle mais bon, c'est souvent le cas de ce genre de procès de langages qu'on ne connait pas et qu'on veut absolument comparer dogmatiquement à quelque truc à la mode.

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

  • [^] # Re: viewer only, not editor

    Posté par  (site web personnel, Mastodon) . En réponse au message Éditeur de markdown. Évalué à 3.

    J'ai oublié en passant, dans la seconde liste :

    • mdview écrit en Go et dispo sous forme de snap.
    • marked écrit en NodeJS
    • GFMS s'appuie sur marked
    • vmd en JS aussi et s'intègre à Atom
    • showndown en NodeJS

    Après, pour cette approche, on peut juste installer la bibliothèque prévue pour son langage de scripting favori et pondre les deux ou trois lignes de script qui vont bien pour générer le fichier HTML

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

  • [^] # Re: Anecdote related

    Posté par  (site web personnel, Mastodon) . En réponse au journal Question : Ai-je le droit de refuser d'exécuter un logiciel ?. Évalué à 6.

    Oh que si, ils comprennent que tout le monde a forcément un portable et que tu es juste un client chiant :-(

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

  • [^] # Re: À part vi ...

    Posté par  (site web personnel, Mastodon) . En réponse au message Éditeur de markdown. Évalué à 1.

    Il me bsemle que bientôt feu Brakets aussi

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

  • [^] # Re: Test d'éditeurs chez NextInpact

    Posté par  (site web personnel, Mastodon) . En réponse au message Éditeur de markdown. Évalué à 2.

    Il manque des noms bien connu (enfin j'aurais cru) comme :

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