Michaël a écrit 2935 commentaires

  • [^] # Re: Exemple de réponse

    Posté par  (site web personnel) . En réponse au journal Le libre et l'expérience utilisateur. Évalué à 4.

    Alors autant pour le libre que pour le proprio, je pense qu'il faut arrêter de balancer sans justifier "c'est des daubes".

    Tu as bien raison. Je vais donner un point par logiciel énoncé:

    • Microsoft Visual Studio (2009 je crois), PHP Storm: L'interface est bordélique, tout es mélangé sous mes yeux, dans des micro-carrés spécialisés ou des panneaux coulissants dédiés à certains types d'information. L'UI donne l'impression de ne pas être vraiment conçue. Mention spéciale pour PHP Storm qui découpe les commandes de débogage dans deux régions de l'interface.

    • MS-Office, l'équivalent Apple: pour le texte, pas de mode plan qui permet de vérifier facilement la cohérence des styles, pour les tableurs pas de mode preuve qui permet de contrôler le contenu des cellules (on peut explorer les cellules une-à-une pour vérifier les formules, mais ce n'est pas ergonomique), impossible d'importer certains CSV (notamment à cause des formats de virgule flottante).

    • iMovie: la gestion de la bibliothèque de médias est super lente (ajouter, lister), la préparation des écrans de titre est mal aisée.

    • Apple Mali, GMail: l'un comme l'autre ne propose pas de solutions satisfaisantes pour organiser des boîtes avec un gros traffic.

    • JIRA: il y a plusieurs genre de vues sur un ticket qui permettent des interactions différentes, du coup difficile de créer des automatismes, l'interface sauvegarde chaque édition, du coup ça rame. Pas de Template de ticket (?). L'édition WYSIWYG est laborieuse (les sticky styles sont mal implémentés). L'API est déguelasse.

  • # Exemple de réponse

    Posté par  (site web personnel) . En réponse au journal Le libre et l'expérience utilisateur. Évalué à 4.

    Que les libristes soient, non sans raison, attachés à leur terminal, avec un petit côté distinction élitiste, qui le niera ?

    Ce n'est pas une distinction élitiste – du genre “eh, t'as vu ce que je sais faire?” – mais juste que, pour certains types de tache, les interfaces texte sont la clef de la productivité! En quelques mots: 1. Les traitements textuels sont faciles à sauvegarder pour reproduire plus tard, j'ai juste besoin de copier les commandes dans un fichier. 2. Ils sont faciles à généraliser, en remplaçant les arguments concrets par des variables. 3. Ils sont faciles à combiner, parcequ'un langage le permet. 4. Il est facile de créer des nouveaux traitements.

    C'est possible de programmer des logiciels graphiques qui implémentent 1, 2 et 3 mais je ne connais personnellement aucun exemple de tel logiciel. Sous Mac OS-X il y a l'Automator et la possibilité d'enregistrer les évènements d'une application pour faire 1, 2, et 3 mais je n'ai jamais vraiment beaucoup travaillé avec ces possibilités. Pour 4, l'usage d'un langage symbolique semble essentiellement inévitable!

    Deux références que j'aime bien (en anglais):

    Mais, d'une part, je trouve que des logiciels ou des interfaces propriétaires qui ont du succès et qui sont discutables en terme d'ergonomie (Twitter, Nextflix), ça existe aussi.

    Oui, et pas qu'une. Pour ma part les logiciels propriétaires (connus) avec lesquels j'ai travaillé sont: Microsoft Visual Studio (2009 je crois), PHP Storm, Arc GIS, Garage Band, Ableton Live, MS-Office, l'équivalent Apple, iMovie, Apple Mail, GMail (web), JIRA (web) et dans cette liste si les logiciels de musique et ArcGIS tirent leur épingle du jeu, les autres sont vraiment des daubes en matière d'ergonomie ou de productivité.

    Et d'autre part, je suis convaincu que s'il y a un savoir faire en ergonomie, design de fonctionnalité, d'interface, comme c'est le cas en typographie par exemple, je suis également convaincu qu'il y entre une part d'habitude.

    Et bien oui, concevoir des interface utilisateur c'est aussi une compétence par soi-même. (Fussent-elles textuelles! Certains logiciels en ligne de commande ont aussi des interfaces toutes pourries – comme docker par exemple.)

    Pour en venir au texte que tu cites, parler du logiciel libre comme il le fait, c'est comme parler des entrepreneurs en France: il ne s'agit pas d'un groupe homogène et entre des logiciels libres poussés par des entreprises, poussés par des associations, ou essentiellement personnels, il y suffisamment de différences de buts et de fonctionnement différents que des propositions généralistes comme

    En fin de compte, il n’y a pas de secret, c’est comme ça que fonctionnent tous les projets. Il faudrait donc admettre qu’il n’en va pas différemment pour le libre, et faire en sorte que tous les métiers soient intégrés dès le départ pour obtenir un résultat probant.

    sont, sans restreindre le genre de projets auxquels on les applique, dénuées de sens. Le texte fait des remarques intéressantes et pourrait sans-doute être amélioré.

  • [^] # Re: avec echo

    Posté par  (site web personnel) . En réponse au message insertion de lignes dans un fichier. Évalué à 4.

    Quels shells ?

    Comme je suis paresseux, je colle juste une référence vers la réponse très détaillée de Stéphane Chazelas à la question “Why is printf better than echo?" (en anglais donc):

    http://unix.stackexchange.com/questions/65803/why-is-printf-better-than-echo

  • [^] # Re: avec echo

    Posté par  (site web personnel) . En réponse au message insertion de lignes dans un fichier. Évalué à 3.

    mais selon le niveau de la personne, le echo reste plus simple à comprendre.

    C'est triste ce que tu penses du niveau des débutants. :)

    Blague à part, la multiplicité des point de vue ne peut pas nuire à l'apprentissage, et puis on ne sait pas d'où vient l'OP: il peut très bien être débutant en shell mais un programmeur chevronné avec d'autres outils, il n'y a donc pas de raison de cacher ces détails (un tout petit peu) plus délicats!

  • [^] # Re: avec echo

    Posté par  (site web personnel) . En réponse au message insertion de lignes dans un fichier. Évalué à 5. Dernière modification le 07 février 2017 à 10:53.

    Trois remarques:

    1. Il vaut presque toujours mieux d'utiliser printf au lieu de echo:
    printf '%s\n' "${line}" "ligne_supp1" "ligne_supp2" "ligne_supp3"
    

    Cela évite des mauvaises surprises, si par exemple "${line}" commence par -- ou contient des séquences d'échappement qui, selon le shell utilisé, pourraient être interprétées.
    (À la différence de la fonction C, le programme printf applique périodiquement le format pour épuiser ses arguments.)

    1. Utilsation de cat inutile:
    done < <( cat fichier_origine.txt ) >fichier_final.txt
    

    Que c'est compliqué! On peut écrire

    done < fichier_origine.txt > fichier_final.txt
    
  • [^] # Re: Et l'assurance

    Posté par  (site web personnel) . En réponse au journal Des conséquences d'un plâtre. Évalué à 2.

    "Ça m'espante, mon daron m'a yave mes chtoumps pendant qu'j'étais parti rayave !"

    Ça veut dire quoi (je ne connais que espanter et daron, mais je suppose que yave veut dire chourave?)

    Le verbe croaver veut dire croire pour certains enfants, comme par exemple: “Dis, dis, bien vrai que Adrien il croivait que une bille terre ça vaudrait plus qu'une plomb?”

  • [^] # Re: Illustration

    Posté par  (site web personnel) . En réponse au journal De l'importance (des tests réguliers) des sauvegardes. Évalué à 2.

    Je ne fais des conneries que sur mes ordinateurs personnels, mais le top avait été d'effacer le MBR, et donc la table de partitions de la machine… (Je me suis trompé en rappelant des commandes d'historique alors que je voulais en faire une sauvegarde.) Cela m'a fourni l'occasion de tester TESTDISK qui a reconstruit la table sans broncher.

  • [^] # Re: couleur

    Posté par  (site web personnel) . En réponse au journal De l'importance (des tests réguliers) des sauvegardes. Évalué à 4.

    Il est évidemment toujours facile de donner des conseils vu le loin, mais une technique que j'affectionnais était d'avoir la couleur de fond du terminal qui change en fonction des connexions. Noir en dev, orange en préprod, rouge en prod. En général ça limite pas mal la casse.

    J'utilise aussi cette technique, aussi basique qu'utile. Ensuite j'implémente le “serveur constant” et donc du coup je ne fais presque jamais un rm et si jamais, je commence par écrire un ls mes-fichiers-à-effacer puis je remplace le ls par rm quand je suis sûr. Et dans les scripts il faut toujours utiliser le modificateur :? quand on utilise rm sur une variable.

  • [^] # Re: Illustration

    Posté par  (site web personnel) . En réponse au journal De l'importance (des tests réguliers) des sauvegardes. Évalué à 3. Dernière modification le 02 février 2017 à 15:58.

    L'exemple est trivial évidemment, mais je trouve qu'il illustre pas mal le problème, et surtout dans une situation que tout le monde comprend.

    Ou plus simplement, si tu ranges tes backups dans ton armoire ou la cave et que les bureaux de l'entreprise brûlent [1], et bien, chocolat! Mais dans l'affaire de GitLab un survol rapide suggère que le backup utilisé n'a pas de procédure de restoration associée, d'où la lenteur!

    [1] Par exemple, si un avion de ligne tombe dessus.

  • [^] # Re: Module et type abstrait

    Posté par  (site web personnel) . En réponse au journal Une petite histoire d'utilisation type fort dans Ocaml. Évalué à 4.

    Ce contrôle statique ressemble à des types dépendants (un type paramétré par une valeur du langage, ici un int pour la dimension des matrices). Pour ce cas, ça doit pouvoir se faire avec des GADT comme dans les exemples du cours de Jeremy Yallop; mais c'est un usage assez avancé du système de type. Me trompe-je ?

    Dans le cas de Abach j'implémente actuellement le calcul matriciel en adoptant un angle un petit peu plus géométrique. Étant donné des espaces vectoriels de dimension finie A et B munis de bases un foncteur décrit Hom(A,B) qui, puisque les espaces ont une base privilégiée, est exactement l'espace vectoriel des matrices représentant une application linéaire de A dans B. Puisque le type est abstrait, c'est la signature de l'application de composition qui garantit qu'on ne compose que des applications linéaires d'une manière qui résulte en une multiplication de matrices aux dimensions compatibles.

    Cette méthode oblige à introduire des notations pour les espaces vectoriels manipulés – ce qui est pour moi précisément le but recherché – avec des choses du genre:

    module A = Abach_VectorSpace.Make(QQ)(struct let dimension = 5 end)
    module B = Abach_VectorSpace.Ker(QQ)(struct let f = … end)
    module M = Abach_VectorSpace.Hom(QQ)(A)(B)
    

    Un “effet de bord” de cette méticulosité est que le système de type permet de contrôler la justesse sémantique des opérations effectuées tout en gardant une notation proche de celles que peuvent utiliser les mathématiciens qui ne fait pas intervenir de notions plus exotiques comme les GADT.

  • [^] # Re: Caclul symbolique en OCaml

    Posté par  (site web personnel) . En réponse au journal Une petite histoire d'utilisation type fort dans Ocaml. Évalué à 2.

    Merci pour toutes ces références, elles me seront très utiles!

  • # Caclul symbolique en OCaml

    Posté par  (site web personnel) . En réponse au journal Une petite histoire d'utilisation type fort dans Ocaml. Évalué à 3. Dernière modification le 18 janvier 2017 à 10:41.

    On peut (doit ?) pousser le concept plus loin, comme par exemple écrire une bibliothèque de calcul matriciel qui vérifie à la compilation la dimensionnalité des calculs.

    Je profite de ta remarque pour mentionner Abach un projet de calcul scientifique en OCaml. Ma motivation est de développer un outil qui permet le calcul formel (polynômes à plusieurs variables, quotients, algèbre linéaire…) sur des objets proches de la formulation mathématique des problèmes – là où la plupart des systèmes de calcul formel demandent de tout transformer en objets basiques du système, ce qui est une opération parfois difficile. Mon but est de pouvoir calculer bientôt des tables de multiplication pour les algèbres de Lie de petit rang puis des choses plus complexes comme les décompositions de Bialinicky-Birula de petites représentations ainsi que de pouvoir travailler sur les corps finis.

    Screenshot

    Un point sympa du programme est que les structures sont capables de transformer leurs éléments en formules TeX, comme illustré par la capture d'écran ci-dessus (en utilisant MathJax).

    Côté code, voici un extrait du programme example générant la sortie ci-dessus:

    
    module P =
    (* The ring of an integral thick point. *)
    struct
      module Internal =
      struct
        module Zepsilon =
          Abach_PolynomialRing.OverRing.Make
            (Z)(struct let indeterminate = Abach_Formula.(greek varepsilon) end)
    
        module I =
        struct
          type t = Zepsilon.t
          let epsilon2 = Zepsilon.of_array [| 0; 0; 1 |]
          let projection x =
            Zepsilon.rem x epsilon2
          let structure_formula =
            Abach_Formula.parenthesis (Zepsilon.to_formula epsilon2)
        end
      end
    
      include Abach_Ring.Quotient(Internal.Zepsilon)(Internal.I)
    
      let structure_formula =
        Internal.Zepsilon.structure_formula
    
      let epsilon =
        projection Internal.Zepsilon.indeterminate
    end
    
    module PX =
      Abach_PolynomialRing.OverRing.Make
        (P)(struct let indeterminate = Abach_Formula.(letter 'X') end)
    
    …
    
    
    
          "Computing with polynomials over the ring of a thick point.",
          begin
            let a = PX.of_array [| P.one; P.epsilon |] in
            let b = PX.zpower 2 a in
            equal
              (parenthesis ~superscript:(integer 2) (PX.to_formula a))
              (PX.to_formula b)
          end;
    …
    
  • [^] # Re: Et l'assurance

    Posté par  (site web personnel) . En réponse au journal Des conséquences d'un plâtre. Évalué à 3.

    Par exemple, le verbe croave.

  • [^] # Re: Et l'assurance

    Posté par  (site web personnel) . En réponse au journal Des conséquences d'un plâtre. Évalué à 10.

    Tu as un grand bassin de rétention où tu stockes un humour liquide que tu déverses au compte-goutte ici?

  • [^] # Re: Ne pas utiliser echo

    Posté par  (site web personnel) . En réponse au message Paquet debian 8 et commande echo. Évalué à 3. Dernière modification le 11 janvier 2017 à 14:00.

    Absolument. De plus l'utilisation de séquence de contrôle n'est pas super portable non plus, le moins serait de vérifier que la variable d'environnement mentionne un des émulateurs de terminal les plus courants qui comprennent ses variables.

    # monprog_terminal_has_ansi_sequence_support
    #  Cheap detection of ANSI sequence support
    
    monprog_terminal_has_ansi_sequence_support()
    {
        case "${TERM}" in
            vt100*|xterm*)
                printf 'yes';;
            *)
                printf 'no';;
        esac
    }
    
    
    # prerr PRINTF-LIKE-ARGV
    #  Print error
    
    prerr()
    {
        if [ "${monprog_fruit_salad_output}" = 'yes' ]; then
            {
                printf '\033[1;31mError: '
                printf "$@"
                printf '\033[0m\n'
            } 1>& 2
        else
            {
                printf 'Error: '
                printf "$@"
                printf '\n'
            } 1>& 2
        fi
    }
    
    monprog_fruit_salad_output=$(monprog_terminal_has_ansi_sequence_support)
    
    prerr 'SSL certificate generation failed.'
    

    C'est un exemple, mais il y a plein d'autres façons de faire. Notamment on peut utiliser un filtre sur la sortie d'erreur qui ajoute les couleurs. C'est cependant une bonne idée d'écrire quelques fonctions spécialisées pour l'écriture de message diagnostic, cela aide à avoir des messages cohérents.

  • [^] # Re: 0xB16B00B5p0

    Posté par  (site web personnel) . En réponse à la dépêche C++17 exprime la virgule flottante en hexadécimal et offre des cadeaux aux lecteurs de LinuxFr.org. Évalué à 1.

    Comme au-dessus, je suppose qu’il évoque la prostitution à son public majoritairement mec hétéro.

    Peut-être qu'il veut glorifier “l'amour libre” à la façon des hippies?

  • # Poésie

    Posté par  (site web personnel) . En réponse au message Pro-Zik. Évalué à 2.

    Très franchement je n'ai pas très bien compris quelle information tu souhaitais partager avec nous, mais je te donne un petit +1 pour la joie poétique qui habite ton écriture – même si ça pique un peu les yeux comme on dit.

  • [^] # Re: J'ai vomis

    Posté par  (site web personnel) . En réponse au journal Deep NSFW dreams. Évalué à 3.

    C'est Denis Rodman qui m'a appris cette technique.

  • [^] # Re: J'ai vomis

    Posté par  (site web personnel) . En réponse au journal Deep NSFW dreams. Évalué à 4.

    je pense que j'envisagerais l'ablation de mes globes oculaires avec une cuillère à café.

    L'utilisation d'une pointe de couteau donnerait de bien meilleurs résultats!

    ---> []

  • [^] # Re: J'ai vomis

    Posté par  (site web personnel) . En réponse au journal Deep NSFW dreams. Évalué à 2.

    Tout à fait, j'ai un peu perdu l'habitude, mais à une époque je me souvenais de 2 à 3 rêves toutes les nuits et il me fallait presque une demi-heure pour tout noter sur un cahier le matin, c'était vraiment comme avoir une deuxième vie! Pour commencer il suffit de noter sur un cahier ce dont on se souvient, même si c'est seulement une impression vague d'une sensation.

  • [^] # Re: Si on savait déja...

    Posté par  (site web personnel) . En réponse au journal "Logiciels préchargés : la CJUE se décrédibilise.". Évalué à 5.

    Quant à « ce que les utilisateurs veulent », on ne parle pas de vendre la bécane avec l’OS dans une boîte dans le rayon d’à côté et démerdez-vous pour l’installer… juste de permettre à ceux qui le souhaitent de pouvoir acheter la machine sans Windows…

    Dans la question de la vente liée de l'OS il y a plusieurs aspects à considérer.

    D'abord l'aspect de la disponibilité. Pour une personne qui souhaite acquérir un ordinateur sans MS-Windows ou avec un OS de son choix, est-il possible de le faire? Oui c'est possible, d'abord en assemblant soi-même son PC et parfois en achetant un PC assemblé chez un constructeur – je viens de consulter deux gros constructeurs Dell et HP, le premier propose facilement de choisir entre Windows 10 et Ubuntu, le second force à choisir Windows 10. Le but du constructeur-assembleur est de vendre un produit fini et utilisable, l'OS fait partie du produit – si on exige du constructeur de pouvoir obtenir une machine et l'OS séparément, il faut aussi insister pour pouvoir obtenir le disque dur, l'alimentation, la carte-mère et tout le toutim séparément. Mais dans ce cas, on voit bien qu'il suffit d'acheter son PC en pièces détachées. Ensuite il existe des constructeurs-assembleurs qui livrent des machines avec des OS libres (iXsystems pour FreeBSD par exemple – mais on me souffle dans l'oreillette qu'ils ne vendent plus de machines Desktop).

    Ensuite l'aspect service de cette vente. Ensuite pour avoir installer plusieurs machines nues ou réinstallé des machines, j'ai appris que configurer correctement une machine, quelque soit l'OS libre ou non, est loin d'être simple, et plein de fonctions vaguement avancées comme le suspend to ram ou même une gestion propre de l'ACPI ou de la carte graphique ne vont pas de soi, même pour un utilisateur averti. Ma conclusion est que oui, vendre une machine équipée d'un OS configuré est un vrai service.

    Ensuite la question du prix – les dernières versions de Windows ou de Mac OS sont utilisables gratuitement (la licence est gratuite, mais elle n'autorise pas de faire tout ce qu'on veut!) c'est donc devenu difficile de parler de vente liée!

    Enfin l'aspect de l'information. C'est pour moi le seul aspect du débat qui le justifie vraiment. Il est important que les acquéreurs d'ordinateurs aient conscience que l'OS peut faire l'objet d'un choix, et c'est sur ce seul dernier point qu'il y a un combat à mener.

  • [^] # Re: L’automatisation, c’est bon, mangez-en

    Posté par  (site web personnel) . En réponse au message Let's Encrypt en prod en entreprise. Évalué à 2.

    Merci pour tous ces détails! :)

  • [^] # Re: L’automatisation, c’est bon, mangez-en

    Posté par  (site web personnel) . En réponse au message Let's Encrypt en prod en entreprise. Évalué à 2.

    Je prends la discussion en plein vol et je ne connais pas les détails, mais bien naïvement je me dis que ta procédure doit:

    • Se connecter chez let's encrypt pour récupérer le nouveau certificat, au moyen d'un token qui te permet de t'identifier.
    • Vérifier la validité du certificat récupéré (i.e. qu'il vient bien de let's encrypt).
    • Placer le certificat sur toutes les machines qui en ont besoin et faire en sorte que tes services utilisent le nouveau certificat.

    Je suppose que c'est ton token qui te permet de t'authentifier auprès de let's encrypt qui est caché sur ton disque dur crypté sur ta machine derrière un air gap … je comprends qu'on fasse attention à ce genre de choses, mais en réalité tu obtiendrais une meilleure sécurité en montant un serveur constant ( immutable en anglais :) ) faisant tourner un service qui récupère les nouveaux certificats chez let's encrypt et les met à disposition de tes autres machines (par exemple sous forme d'un paquet debian, rpm ou autre, d'une image docker ou d'un simple fichier crypté). En effet si ton serveur constant n'accepte aucune connexion entrante, même sur un réseau il est plus sécurisé qu'une machine de travail utilisée pour récupérer le certificat et le pousser sur les autres machines de l'infrastructure.

  • [^] # Re: L’automatisation, c’est bon, mangez-en

    Posté par  (site web personnel) . En réponse au message Let's Encrypt en prod en entreprise. Évalué à 4.

    Tu dis des choses bizarres la fréquence à laquelle les certificats sont renouvelés ne change essentiellement rien à la procédure, et si tu es capable d'accomplir cette procédure de façon que tu juges sécurisée avec une connection distante, je ne comprends pas ce qui t'empêche d'automatiser cette procédure.

  • [^] # Re: OS pour serveur

    Posté par  (site web personnel) . En réponse au journal Crépuscule de PC-BSD, aube de TrueOS. Évalué à 3.

    La dépêche dit que grace à ZFS il est facile de faire un snapshot du système pour le restaurer tel-quel à un point ultérieur. Ceci-dit cela fait depuis longtemps que je ne fais plus aucune mise à jour de serveur: j'en prépare de nouveaux et je jette les vieux!