chimrod a écrit 1114 commentaires

  • # Structures non mutables performantes

    Posté par  (site web personnel) . En réponse à la dépêche Sortie de GHC 8.2.1. Évalué à 3.

    Je suis surpris de voir mentionner Okasaki ici. Son ouvrage est certes très instructif pour un développeur de langage fonctionnel (encore que écrit en standard ML, plus très utilisé aujourd'hui), il est complètement inutile dans le cas d'Haskell qui réalise l'évaluation paresseuse par défaut.

    Sur le plan pratique, la plupart des langages offres des structures de données avec évaluation paresseuses par défaut dans la librairie de base, ce qui réserve la lecture du livre à ceux qui souhaitent avoir une connaissance théorique du sujet, tout en sachant qu'ils n'auront jamais l'occasion de le mettre en pratique dans la vie de tous les jours.

    Ça n'enlève rien de l'intérêt qu'on peut avoir pour cette lecture, mais il faut vraiment aimer l'informatique théorique :)

  • [^] # Re: Reason

    Posté par  (site web personnel) . En réponse à la dépêche OCaml 4.04 et 4.05. Évalué à 5.

    Je peux me permettre d'éclaircir les deux questions que tu soulèves (et qui suscitent débat parmi les gens qui découvrent OCaml).

    La notation 2. est une version abrégée de 2.0, et permet de définir un nombre flottant.

    Puisqu'OCaml est un langage avec un typage très fort, ce nombre est associé avec un type : float. On le voit en entrant la commande dans le repl :

    # let i = 2.;;
    val i : float = 2.

    La fonction +, elle de son côté, est une fonction définie ainsi (toujours obtenu à travers le repl) :

    # (+);;
    - : int -> int -> int = <fun>

    C'est à dire qu'il s'agit d'une fonction, prenant un type int, suivi d'un deuxième int, et retourne un autre type int (je laisse de côté la Curryfication pour l'instant), du sucre syntaxique permet d'écrire 5 + 5 ou (+) 5 5 et produire le même résultat (la deuxième notation ayant l'avantage de faire correspondre l'ordre des paramètres avec le type de la fonction).

    Pour en revenir à notre nombre flottant, je répète que le typage est très fort, et il est inutile de chercher à donner un paramètre de type float à une fonction qui attend un int. Aussi, l'addition a été définie deux fois :

    • Une fois pour les entiers : +
    • Une fois pour les flottants : +.

    (au final la même primitive C est appelée, il ne s'agit donc pas de code dupliqué).

    Ça fait parti de la rigidité du langage (et peut surprendre au début), mais une fois que l'on a compris le principe, les choses sont beaucoup plus claires, ce qui est valable pour ces deux types est généralisé à tous les types que l'on peut définir dans le langage : une fonction ne peut recevoir en paramètre que les types pour lesquelles elle a été définies — il n'y a pas de conversion implicite, ni de surcharge de fonction.

  • # Expressivité du langage

    Posté par  (site web personnel) . En réponse à la dépêche OCaml 4.04 et 4.05. Évalué à 10.

    En voyant les projets graviter autour du langage, ce qui m'interpelle le plus avec ce langage, c'est son expressivité. Quand je vois les exemples sur la page du projet je me rend compte que la force du langage tient dans sa capacité à typer les données (pour ensuite les exprimer dans un autre langage par exemple).

    Naïvement, on pourrait dire qu'il est toujours possible d'exprimer un langage fortement typé dans un langage moins fortement typé, et qu'OCaml impose des contraintes lors de l'écriture du code pour indiquer au compilateur le maximum d'informations sur les variables, sauf que je ne ressent jamais cette contrainte en écrivant en OCaml. Au contraire, lorsque je passe du code OCaml à du code Java (par exemple) j'ai l'impression de bégayer tellement j'écris du code inutile (oui mon tableau de string est bien un tableau de string, je viens de l'écrire !).

    La plus grande force du langage selon moi vient de là : avoir pu conserver une telle expressivité, avec un minimum d'indications lors de l'étape d'écriture du code.

  • [^] # Re: FLIP

    Posté par  (site web personnel) . En réponse à la dépêche Paris est Ludique les 24 et 25 juin 2017 — Le festival de jeux où l’on joue #PeL2017. Évalué à 3.

    Effectivement, il s'agit de Linq et non de Link, merci de la correction ^

  • [^] # Re: FLIP

    Posté par  (site web personnel) . En réponse à la dépêche Paris est Ludique les 24 et 25 juin 2017 — Le festival de jeux où l’on joue #PeL2017. Évalué à 3.

    À mon grand regret, je ne pourrai pas y être présent cette année (coordination des congés avec les collègues oblige..) C'est vraiment un très bon festival, qui permet de déambuler dans les rues médiévales entre deux parties de jeu, et qui nous entraine dans des nuits animées.

    Il a le bon goût de tomber pendant la première partie du mois de juillet, et d'offrir au touriste un feu d'artifice haut en couleur en contrebas du château (que l'on agrémente de partie de Link en mangeant de la parthenaise !)

    Et puisque l'on parle de jeu, j'en profite pour parler du financement en cours sur ulule de la réédition de mage !

  • # Protection

    Posté par  (site web personnel) . En réponse au message Comment éviter d'effacer des fichiers avec rm *. Évalué à 3.

    Quand on fait rm *, bash va donner la liste des fichiers en argument à rm.

    Il suffit d'avoir un fichier qui ressemble à un argument invalide pour empêcher les mauvaises manipulations :

    $ touch -- "-t"
    $ rm *
    rm : option invalide -- 't'
  • [^] # Re: Ça tombe bien

    Posté par  (site web personnel) . En réponse au journal Enquête sur les noms propres pour le dictionnaire orthographique. Évalué à 9.

    le nom Morphée continue aussi à désigner cette même déesse

    Ne te laisse pas abuser par le e final : Morphée est un dieu de genre masculin !

  • [^] # Re: Dictionnaire hunspell

    Posté par  (site web personnel) . En réponse à la dépêche Grammalecte, correcteur grammatical [2]. Évalué à 3.

    Je m'associe à ces remerciements, le travail d'indexation que tu as fait est extraordinaire !

  • [^] # Re: Dictionnaire hunspell

    Posté par  (site web personnel) . En réponse à la dépêche Grammalecte, correcteur grammatical [2]. Évalué à 6.

    À la lecture du post sur le forum, je comprend que ça soit une charge de travail pour toi et que tu n'ai pas décidé de maintenir tout ça (en plus si tu es seul à tenir la charge)…

    D'un autre côté, passer par hunspell permet passer par libhunspell directement avec le programme, ce qui simplifie l'utilisation du dictionnaire dans d'autres outils.

    Ce qui me gêne vraiment, c'est que la page de téléchargement du site ne propose pas de retrouver les anciennes versions, tout ce travail est perdu !

  • # Dictionnaire hunspell

    Posté par  (site web personnel) . En réponse à la dépêche Grammalecte, correcteur grammatical [2]. Évalué à 4. Dernière modification le 08 juin 2017 à 15:13.

    Merci beaucoup pour la dépêche qui m'a fait replonger dans le monde des dictionnaires.

    Je découvre à cette occasion que le dictionnaire hunspell fourni par dicolecte a perdu de sa consistance à l'occasion de la version 1.6

    Voici par exemple la sortie de l'analyse du mot glace avec le dictionnaire 5.2 :

    $ hunspell -m -d  fr
    glace
    glace  st:glace po:nom is:fem is:sg
    glace  st:glacer po:v1_it_q_?? po:impe po:2sg
    glace  st:glacer po:v1_it_q_?? po:ipre po:spre po:1sg po:3sg

    En décodant les termes, on découvre que glace peut s'employer comme :

    • Un nom féminin singulier
    • Un verbe conjugué avec la 2nde personne du singulier au présent de l'impératif
    • Un verbe conjugué avec la 1ère ou la 3ème personne du singulier au présent de l'indicatif

    Avec la nouvelle version du dictionnaire nous avons :

    $ hunspell -m -d  fr-toutesvariantes
    glace
    glace  st:glace
    glace  st:glacer fl:a0
    • Un nom
    • Un verbe

    C'est une perte d'information ! Est-ce que vous êtes lié avec les décisions de dicolecte ? (vous partagez le domaine…)

  • [^] # Re: Sécurité informatique

    Posté par  (site web personnel) . En réponse au journal « Mr. Robot » ou comment j’ai appris à aimer l’informatique. Évalué à 3.

    J'ai testé suite à ton lien. Je trouve que ça n'est pas accessible pour un débutant.

    Sur l'infrastructure, déjà seul /tmp et /var/tmp sont accessibles en écriture, mais les dossiers ne sont pas nettoyés quand on quitte une session. Leur solution a donc été de rendre les dossiers inaccessible en lecture. Ça oblige ensuite à travailler en aveugle, en essayant de se créer des fichiers qui n'ont pas déjà été créé précédemment…

    Concernant les défis, j'ai testé le 1er défi de scripting bash. Ça nécessite de :

    • savoir lire un code C
    • comprendre les différents flag en sortie d'un ls -l
    • modifier le PATH

    Chaque étape en soit est assez simple, mais l'enchaînement n'est pas à la porté d'un novice, vu que l'énoncé du problème est TRÈS sommaire. Les pré-requis sont trop nombreux pour pouvoir qu'un débutant y soit à l'aise.

    De la même manière, le niveau facile de programmation nécessite d'écrire un client IRC ! (ou j'ai mal compris le problème, il était tard…)

  • [^] # Re: En quoi est-ce grave ?

    Posté par  (site web personnel) . En réponse au message La sécurité informatique ça sert à rien …. Évalué à 8. Dernière modification le 17 mai 2017 à 16:32.

    Je garde le souvenir d'une conférence de Laurent Chemla à Pas sage en seine, expliquant le passage de la vie privée à la conscience politique : son argument est de dire que la conscience politique, le fait de se construire une opinion, a besoin d'une vie privée. Je n'avais pas pensé à ça avant d'assister à sa conférence, et c'est depuis quelque chose que je garde en tête : l'individu à besoin d'intimité pour exister.

    Même s'il s'agit d'une banalité, continueras-tu à chanter sous la douche, si tu sais que tu peux être surveillé ? Même si tu ne risques pas grand chose, partageras-tu ton opinion par mail sur [insérer ici le sujet du moment] si tu sais que tes échanges peuvent être lus ?

    Pour revenir aux courriels : est-ce que tu accepterais que ta boîte aux lettres (qui est posée chez toi, ou dans le hall de ton immeuble) soit gérée par le supermarché du coin ? Il y aurait plein d'avantages, tu pourrais recevoir dans ta boite au lettres les prospectus sur les promotions du moment qui te concernent (moins de publicités inutiles), le supermarché s’occuperait également de récupérer tes colis trop gros qui ne rentrent pas dans la boite (faudra juste aller les chercher à côté du rayon boucherie), et même de changer les boîtes pour suivre les normes postales (ils ont un designer qui te permet de choisir entre trois coloris). Bien sûr, ça implique de laisser un double des clef, mais bon, tu ne risques pas grand chose (-:

    (j'ai marché dans ton troll, je sais. J'espère juste l'avoir fait du pied gauche, histoire de me porter chance !)

  • [^] # Re: Trop compliqué : mémoire

    Posté par  (site web personnel) . En réponse au message La sécurité informatique ça sert à rien …. Évalué à 4.

    Ceci est pour toi une solution simple ?

    Plus simple en tout cas que de retenir tous mes mots de passe dans ma tête, plus sécurisé qu'un simple fichier texte stocké dans un répertoire caché sur mon pc du boulot.

    Comment tu l'utilises chez un amis par exemple ? En voyage à l'étranger dans un cybercafé ? Sur un téléphone ? Sur une tablette (qui ne t’appartiens pas) ?

    Je pense que ça dépend des usages des uns et des autres. En lisant tes questions, je pense avoir un usage différent de toi de l'utilisation d'internet :

    Les deux mots de passe dont j'ai besoin au quotidien sont enregistrés dans les paramètres de mon téléphones (boite courriel et agenda via owncloud). L'occasion ne s'est jamais présentée d'avoir à rechercher un mot de passe pour un site quelconque quand je suis chez des amis. À l'étranger, s'il y a internet dans l'hôtel, je me connecte chez moi via ssh. Si réellement je ne peux pas, bah tant pis, ça attendra que je sois de retour chez moi.

  • [^] # Re: Trop compliqué : mémoire

    Posté par  (site web personnel) . En réponse au message La sécurité informatique ça sert à rien …. Évalué à 7.

    Bref, aujourd'hui en 2017, n'y a-t-il pas une solution à ce problème ? Personne n'a trouvé de moyen simple et efficace de reconnaître un utilisateur sans avoir à faire appel à une mémoire d'éléphant ?

    keepass ?

    (De mon côté je me suis implémenté une solution équivalente, à l'aide de pwgen, et des scripts bash. Ma base de mot de passe est protégée avec ma clef ssh).

  • # Rien à voir : Neuromancien

    Posté par  (site web personnel) . En réponse au journal Jouer sous GNU/Linux : la série des Shadowrun. Évalué à 3.

    C'est à amusant que tu parles de SR. Je viens de finir de lire Neuromancien ce week-end (ça fait au moins 15ans que j'en entendais parler), et je me suis pris une claque. J'ai eu l'impression de revivre les parties que je faisais autour d'une table : tous les archétypes sont déjà là (samouraï des rues, decker etc) — avec le côté fantastique en moins.

    On retrouve la vision d'un futur tel qu'on pouvait le concevoir il y a 30 ans (société hyperdigitalisée, dominée par la culture japonaise), mais dans lequel on peut se projeter.

    Le roman est suivi de deux autres, que je suis en train de commencer Conte Zero et Mona Lisa s'éclate, que je ne commenterai pas ici (mais laisse ceux qui les ont lu y apporter leur commentaire).

  • [^] # Re: Ghostscript

    Posté par  (site web personnel) . En réponse au message Quels outils pour des PDF en CMYK ? (Scribus). Évalué à 3.

    Au temps pour moi, j'ai mal lu ta demande. Je croyais que tu cherchais à convertir le document PDF en CMYK.

  • # Ghostscript

    Posté par  (site web personnel) . En réponse au message Quels outils pour des PDF en CMYK ? (Scribus). Évalué à 1.

    As tu essayé ghostscript ? Par exemple la commande suivante devrait te convertir ton document pdf :

    /usr/bin/gs -dSAFER -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -dPDFSETTINGS=/prepress -sOutputFile=fichier_sortie.pdf -dProcessColorModel=/DeviceCMYK  -f fichier_origine.pdf

    Attention, ghostscript ne va pas modifier les images contenues dans ton document PDF, je pense qu'il faudra compléter avec imageMagick si tu veux également modifier la colorimétrie des images embarquées si elles sont en RGB.

  • [^] # Re: Pertinence de listbug

    Posté par  (site web personnel) . En réponse au journal Comment je suis passé d'Ubuntu à Debian Sid. Évalué à 3. Dernière modification le 11 mai 2017 à 10:41.

    Il te permet de lister les bugs connus pour un paquet donné, et te laisse choisir l'action correspondante. Par exemple il m'arrive d'installer quand même des paquets quand je sais que les bugs annoncés ne me concerne pas (par exemple incompatibilité avec tel autre paquet que je n'ai pas installé, ou erreur sur une autre architecture que la mienne).

    En même temps, il peut également être installé sur testing, pour bloquer les mises à jours qui peuvent poser problème, donc c'est plutôt complémentaire à sid/testing.

  • # SailfishOs

    Posté par  (site web personnel) . En réponse au journal Et pour écouter vos podcast vous utilisez quoi ?. Évalué à 8.

    Sur mon téléphone j'utilise gPodder

    Ça contient à la fois la partie base de données historique, et ce qu'il faut pour télécharger/écouter.

    D'après ce que j'ai vu du code source, c'est écrit de manière modulaire en partageant le même code pour l'ensemble des applications, avec une partie GUI dédiée pour chaque architecture.

  • [^] # Re: Temps réel

    Posté par  (site web personnel) . En réponse au journal Comment j’ai mis fin à un chantage logiciel. Évalué à 5.

    Ta remarque m'interpelle. J'ai toujours entendu la définition de l'informatique temps réel comme « la capacité à traiter une information avant quelle ne soit périmée ».

    Dans le cas du son bien sûr temps réel = sans latence, mais ça n'est pas généralisable à tous les contextes.

  • [^] # Re: Système métrique…

    Posté par  (site web personnel) . En réponse à la dépêche GNU Units sort en version 2.14. Évalué à 2.

    Pour ma rapport je le lis comme un rapport de grandeur entre ce que l'on veut et ce que l'on a. Par exemple on peut écrire :

    You have:  1 km
    You want: 500m
            * 2
            / 0.5
    

    Ce que je lis comme You have 2 * what you want, ou You want 0.5 * what you have. Si l'on ne donne pas de valeur à l'unité, celle-ci vaut par défaut 1

  • # Merci de la découverte

    Posté par  (site web personnel) . En réponse à la dépêche GNU Units sort en version 2.14. Évalué à 8.

    Je vais tester pour remplacer l'habituel bc -l que j'utilisais jusqu'alors.

    En plus, le fichier de données est bien documenté, ce qui ne gâche rien !

    oldpoint                1|72.27 inch      # The American point was invented
    printerspoint           oldpoint          # by Nelson Hawks in 1879 and
    texpoint                oldpoint          # dominates USA publishing.
                                              # It was standardized by the American
                                              # Typefounders Association at the
                                              # value of 0.013837 inches exactly.
                                              # Knuth uses the approximation given
                                              # here (which is very close).  The
                                              # comp.fonts FAQ claims that this
                                              # value is supposed to be 1|12 of a
                                              # pica where 83 picas is equal to 35
                                              # cm.  But this value differs from
                                              # the standard.
    texscaledpoint          1|65536 texpoint  # The TeX typesetting system uses
    texsp                   texscaledpoint    # this for all computations.
    computerpoint           1|72 inch         # The American point was rounded
    point                   computerpoint
    computerpica            12 computerpoint  # to an even 1|72 inch by computer
    postscriptpoint         computerpoint     # people at some point.
    pspoint                 postscriptpoint
    twip                    1|20 point        # TWentieth of an Imperial Point
    Q                       1|4 mm            # Used in Japanese phototypesetting
                                              # Q is for quarter
    
  • [^] # Re: SystemWide

    Posté par  (site web personnel) . En réponse au message Raspberry Pi, PulseAudio et Bluetooth.. Évalué à 5.

    En fait, en mode normal, PA se lance à chaque utilisation, puis rend la main une fois que le flux de son se termine. (Il attend un peu avant de quitter pour être déjà chargé si l'on a de nouveau besoin lui dans l'immédiat). Ça marche bien quand on travaille sur un PC, car le serveur de son est directement informé des demandes en provenances des applications.

    Quand on met en place un serveur de son (ce qui est ton cas si j'ai bien compris), que ça soit par bluetooth ou réseau, on a besoin que l'application soit disponible à tout moment. Et il n'est pas possible de réveiller PA avant pour l'informer que l'on a du son à jouer. C'est pour ça qu'il faut faire tourner PA en mode démon.

    Avant PA (ESD, Polypaudio), le mode démon était activé par défaut, PA a fait une rupture avec ses ancêtres, mais ça reste nécessaire dès qu'on a besoin de mettre en place un serveur de son.

  • # SystemWide

    Posté par  (site web personnel) . En réponse au message Raspberry Pi, PulseAudio et Bluetooth.. Évalué à 4.

    Est-ce que pulse audio est bien lancé en mode SystemWide ?

    Par défaut ça n'est pas le cas pour des raisons de sécurité, mais il faut que le client et le serveur de son soit tous les deux sur la même machine…

  • # iptables -t mangle -A OUTPUT ! --dest $LANIP -m owner --uid-owner $VPNUSER -j MARK --set-mark 0x1

    Posté par  (site web personnel) . En réponse au message tor, vpn et iptables. Évalué à 3.

    Voilà ta solution : faire passer les requêtes d'un utilisateur sur une interface réseau dédiée.

    L'idée est de marquer toutes les communications initiées par un utilisateur, puis d'appliquer une table de routage pour ces communications marquées.