Michaël a écrit 2935 commentaires

  • # Le point clef est le calcul scientifique, pas la finance

    Posté par  (site web personnel) . En réponse au journal SQL Decimal vs Double. Évalué à 3. Dernière modification le 12 septembre 2017 à 08:58.

    La situation que tu décris où on a besoin d'arithmétique exacte ou d'arithmétique de position est celle de la comptabilité, des inventaires, etc. mais parfois en finance on fait aussi du calcul scientifique [1] dans certains contextes. Une règle de décision simple pour orienter son jugement – en l'absence de connaissances plus sûres – est qu'en gros si on a besoin de l'exponentielle ou qu'on travaille sur des mesures physiques il faut utiliser les flottants autrement ce n'est probablement pas le bon choix. (Exponentielle et apparentés, donc logarithmes, fonctions trigo, puissances fractionnaires, etc.)

    Le calcul en virgule flottante est particulièrement bien présenté dans le livre de Knuth (Art of Computer Programming) mais il ne va pas dans le domaine “horror story” si ma mémoire est exacte.

    Ceci dit j'ai déjà vu un logiciel de gestion de personnel (soit Staff squared ou Personio) qui me laissait avec 17.97 jours de congé, ce qui m'a presque fait pleurer de rire – et très perplexe parcequ'il faut beaucoup d'imagination pour trouver une explication à une erreur si grosse.

    On peut certainement construire des exemples “taillés pour” dans le cadre de la comptabilité personnelle mais c'est peut-être plus satisfaisant de changer de contexte pour voir le problème. Si on prend par exemple une banque ou une chambre de compensation (un organisme interbancaire) on se retrouve avec:

    • un très grand nombre de transactions à équilibrer;
    • un grand nombre de “chemins de calcul” à cause du nombre de partenaires qui “font le même calcul en face.”

    Ce sont les ingrédients idéaux pour voir apparaître des erreurs d'arrondi en virgule flottante.

    [1]:
    - http://linuxfr.org/users/sytoka/journaux/la-mort-de-solaris-et-de-sparc#comment-1712484
    - https://softwareengineering.stackexchange.com/questions/224434/why-do-we-still-use-floats/224518#224518

  • [^] # Re: Précision :

    Posté par  (site web personnel) . En réponse au message 1 ligne de shell pour les changer tous. Évalué à 2.

    Après chaque post il y a deux boutons markdown et epub. Sinon l'URL se déduit en ajoutant .md à celle du post. Par exemple http://linuxfr.org/forums/linux-general/posts/1-ligne-de-shell-pour-les-changer-tous.md

  • [^] # Re: La fin programmée des Unix proprio

    Posté par  (site web personnel) . En réponse au journal La mort de Solaris et de SPARC. Évalué à 4. Dernière modification le 07 septembre 2017 à 15:47.

    Ils ne calculent pas en entier ou en réel en virgule fixe ? Sachant que 0.1 + 0.2 - 0.3 ne fait pas 0 dans quasiment tous les langages, j'aurais du mal à faire de la finance en calcul flottant. A vrai dire, j'aurais du mal à faire de la finance tout court ;-)

    Ce que tu dis est exact en ce qui concerne la comptabilité mais en gestion de risque on utilise beaucoup de modèles mathématiques plus ou moins complexes – qui impliquent du calcul scientifique et donc du calcul en virgule flottante.

    Même si les outils sont arbitrairement complexes le problème de base n'est pas difficile à saisir. Un des produits financiers les plus communs est le crédit, et la banque qui émet un crédit a dans ses actifs un contrat qui engage l'autre partie prenante à rembourser sa dette. Quelle est la valeur de cet actif? Quel est le prix juste pour un tel actif? Quel est le prix juste pour une police d'assurance qui protège la banque d'un défaut de paiement? Ce sont les questions de base qui ouvrent sur la finance mathématique.

    Un des textes de base de référence sur le sujet est le livre de John Hull “Options, Futures and Other Derivatives” dont les tout premiers chapitres sont abordables sans gros bagage mathématique et qui peut donner une idée plus précise sur le genre de méthodes utilisées. Dans les textes d'introduction il y aussi le livre de Joshi “The Concepts and Practice of Mathematical Finance” qui est moins populaire mais très sympa et on trouve plein de cours en ligne en fac. À un niveau plus avancé un texte classique est le livre de Brigo et Mercurio “Interest rate models, theory and practice” ou (enfin quelque chose en français) le cours de Nicole el-Karoui. Sur arXiv il y a une section q-fin dédiée à la finance mathématique.

  • [^] # Re: Aménagement des trains pour velo

    Posté par  (site web personnel) . En réponse au journal Vélo vs Voiture : le tro^W^W la controverse s’intensifie. Évalué à 3.

    Pour résumer le train pendulaire oscille de gauche à droite tandis que les migrants pendulaires oscillent d'avant en arrière. :)

  • [^] # Re: Aménagement des trains pour velo

    Posté par  (site web personnel) . En réponse au journal Vélo vs Voiture : le tro^W^W la controverse s’intensifie. Évalué à 3.

    Ah c'est rigolo parce qu'en Allemand on dit “pendeln” pour l'anglais ”to commute” (je ne connais pas d'expression française) mais train pendulaire n'a rien à voir. :)

    Je ne connais pas bien la Suisse, est-ce qu'il y a un domaine privilégié pour utiliser ce genre de trains?

  • [^] # Re: le casque à vélo

    Posté par  (site web personnel) . En réponse au journal Vélo vs Voiture : le tro^W^W la controverse s’intensifie. Évalué à 3.

    Moi je suis exclusivement cycliste (pas de permis de conduire), j'ai plusieurs collègues qui viennent travailler en vélo, et on n'a en général que rarement à se plaindre des automobilistes.

    Ça dépend largement des cultures régionales et certainement aussi des aménagements. J'ai fait du vélo dans plusieurs villes et à Montpellier, en dépit de pistes cyclables abondantes, notamment sur certains grands axes, je ne garde pas un très bon souvenir du comportement des automobilistes. Rennes était très agréable. À Bonn en Allemagne les automobilistes en ville font très attention aux cyclistes et sont plutôt patients face à leurs écarts (les miens en tout cas ;) ). À Cologne les automobilistes témoignent moins de patience respectent bien les cyclistes.

  • [^] # Re: Précision :

    Posté par  (site web personnel) . En réponse au message 1 ligne de shell pour les changer tous. Évalué à 2.

    D'où vient cette hiérarchie? J'ai regardé le markdown du message original et je n'ai vu qu'une liste plate.

  • # Aménagement des trains pour velo

    Posté par  (site web personnel) . En réponse au journal Vélo vs Voiture : le tro^W^W la controverse s’intensifie. Évalué à 5.

    En Allemagne certains trains inter-cités ont parfois des aménagements spéciaux pour accueillir les vélos (cf. photo). La disponibilité de ces aménagements est indiquée dans les options de confort du train (avec la voiture restaurant, let wifi, etc.) et on peut faire une réservation pour un de ces emplacements, si besoin.

    Aménagement des trains pour velo

    Je n'ai jamais vu la même chose en France mais je n'y vis plus. Est-ce qu'il y a le même genre de choses? Il y aussi une variante où des sortes de ceintures permettent de fixer les vélos aux parois de la voiture. En NRW (Cologne) les trains régionaux ont tous un espace destiné aux vélos – le transport du vélo doit être payé par un billet spécial (1,80 EUR la dernière fois que je l'ai fait, si je me souviens bien).

  • [^] # Re: VW

    Posté par  (site web personnel) . En réponse au journal Vélo vs Voiture : le tro^W^W la controverse s’intensifie. Évalué à 3.

    Il me semble que tout le monde est d'accord pour dire que le casque peut fournir une protection efficace, ce qui ferait débat serait plutôt l'opportunité de rendre obligatoire le port du casque à vélo.

  • [^] # Re: Si debian : en utilisant "find" et "rename"

    Posté par  (site web personnel) . En réponse au message 1 ligne de shell pour les changer tous. Évalué à 2.

    Pourquoi ne pas faire un simple rename 's/Sankore/OpenBoard/' *Sankore* ? Dans quel paquet est-ce qu'on trouve la commande rename ?

  • [^] # Re: sed/awk is your friend

    Posté par  (site web personnel) . En réponse au message 1 ligne de shell pour les changer tous. Évalué à 2. Dernière modification le 05 septembre 2017 à 16:13.

    Euh… utiliser ls pour donner des noms de fichiers à manger à un autre programme? C'est dangereux.

    En général tu as raison, mais là ce n'est pas dangereux parceque la liste des fichiers à traiter est connue. Mais ce n'est jamais inutile de rappeler cette dangerosité potentielle. Par contre faire un echo $i | mon_filtre pour réécrire les noms un par un un, c'est un peu pataud.

    find . -type f -name 'Sankore*' | awk '{OLD=$0;gsub("Sankore","OpenBoard");NEW=$0;printf("mv \"%s\"  \"%s\"",OLD,NEW)'}  | sh -
    

    (Sinon on peut utiliser \042 – ou plus approprié ici\047 – pour éviter de faire une thèse en escapologie de la double astropophe.)

  • [^] # Re: Essai en ligne.

    Posté par  (site web personnel) . En réponse au journal Code natif et Node.js - parser et préprocesseur XML. Évalué à 2.

    (Pour ceux qui connaissent RunKit, pourquoi process.stdout.write(…) ne fonctionne-t-il pas, et y a-t-il moyen d'avoir quelques chose d'équivalent, mis à part console ?)

    Expérimente avec des petits exemples pour éclaircir les comportements de type “buffering” et le caractère bloquant ou non des appels. Cf.
    https://nodejs.org/api/process.html#process_a_note_on_process_i_o

    Je suis condamné à programmer un peu avec NodeJS par mon travail et mon retour d'expérience est assez mauvais. Cela concerne en particulier les flux d'entrée (input streams) dont l'interface est déguelasse. Ces flux ont deux modes de fonctionnement appelés “flowing” ou “paused” et l'interface de ces flux a des comportements très différents dépendant et du mode de fonctionnement engagé et de la façon dont a été créé le flux. En un mot, cela n'a aucun sens de regrouper tous ces machins derrière une unique class d'objets.

  • [^] # Re: en fait Emacs est très facile. Enfin le lisp.

    Posté par  (site web personnel) . En réponse au journal Participer à l'amélioration de l'expérience utilisateur d'Emacs (c'est facile). Évalué à 2.

    Et bien éclaire-moi, cela fait depuis au moins 5 ans que je ne fais plus de Python, mais dans mon souvenir les décorateurs (ou bien cette notation @@ ou semblable) permet de faire beaucoup de choses en meta-programmation. Est-ce que par exemple tu pourrais citer 2-3 choses qui sont relativement faciles à faire avec des macro Elisp et totalement impensables avec la meta-programmation de Python? Merci! :)

  • [^] # Re: en fait Emacs est très facile. Enfin le lisp.

    Posté par  (site web personnel) . En réponse au journal Participer à l'amélioration de l'expérience utilisateur d'Emacs (c'est facile). Évalué à 2.

    Aujourd'hui, je doute que si Emacs devait être écrit de 0 le Lisp serait choisi.

    Je pense que ce genre de choix dépend beaucoup de la personne ou de l'équipe qui code la première version du logiciel. Ceci dit je pense que le Lisp d'Emacs est objectivement beaucoup plus facile que des langages très populaires aujourd'hui comme le Python ou le JavaScript.

    JavaScript est bourré ~d'idioties~ d'idiosyncrasies, comme la sémantique farfelue des opérateurs de comparaison ou des opérations + et -, c'est aussi un langage à objets – ce qui ajoute de la complexité conceptuelle par rapport à Lisp – et il y a ce fichu mot-clef this qui est mal fagoté.

    Python a aussi des objets, il introduit une syntaxe spéciale pour les listes paresseuses (yield) et a des décorateurs, qui en gros sont aussi puissants que les macros Lisp mais leur syntaxe bizarre les fait passer pour des constructions beaucoup plus élaborées qu'elles ne le sont réellement.

    Après est-ce que cela vaudrait le coup de tout réécrire maintenant ? Je n'en suis pas sûr. L'écosystème d'Emacs reste important, c'est un gros logiciel complexe et puissant et le gain d'une réécriture serait je pense assez faible par rapport à l'effort que cela demanderait.

    Entre passer 1 mois à bien documenter tout ce qu'il faut savoir pour bien utiliser Emacs dans son cas d'utilisation (par exemple pour faire due développement web) et passer 6 ans à tout réécrire, le choix devrait être vite fait. ;)

  • [^] # Re: *bâillement intense*

    Posté par  (site web personnel) . En réponse à la dépêche Le développeur libriste Bassel Khartabil exécuté dans une prison syrienne fin 2015. Évalué à 4.

    Je ne vois vraiment pas le rapport entre linuxfr et cet informaticien syrien…

    Le rapport est que LinuxFR est consacré à Linux et au logiciel libre et que donc des visiteurs ont pu travailler avec Bassel Khartabil sur des projets de logiciel libre ou bien avec d'autres syriens qui pourraient malheureusement connaître le même destin.

    D'ailleurs, même dans les dictatures on est pas envoyé en prison pour rien…

    Pour rien non, mais de façon arbitraire et sans procès équitable voire sans procès du tout. Et ici on ne parle pas seulement de prison mais d'exécution.

  • [^] # Re: Haute trahison ?

    Posté par  (site web personnel) . En réponse à la dépêche Le développeur libriste Bassel Khartabil exécuté dans une prison syrienne fin 2015. Évalué à 2. Dernière modification le 24 août 2017 à 12:48.

    Il y a quelques jours encore, un vieux de la vieille s'en est allé, fatigué des attaques, en demandant la supression et l'anonymat pour toutes ses (très nombreuses) contributions au site.

    Mince ça m'avait échappé. C'est qui?

    il a demandé l'anonymat

  • [^] # Re: 2 possibilités

    Posté par  (site web personnel) . En réponse au message execution d'un script local sur des machines distantes. Évalué à 2.

    Ou on utilise ssh parce que c';est à ça que ça sert. :) Qu'est-ce qui ne va pas avec la solution

    ssh monhost < monscript.sh
    

    On peut difficilement faire plus simple, non?

  • [^] # Re: envoyer le script sur l'entrée standard de /bin/sh via ssh ?

    Posté par  (site web personnel) . En réponse au message execution d'un script local sur des machines distantes. Évalué à 2.

    Useless use of cat detected! :)

    ssh remote.host.com /bin/sh < script.sh
    
  • [^] # Re: futur

    Posté par  (site web personnel) . En réponse à la dépêche OCaml 4.04 et 4.05. Évalué à 3. Dernière modification le 21 août 2017 à 16:06.

    Je fais actuellement de l'ingénierie cloud et des programmes de type sauvegarde de BDD ou migration de schéma etc., et de l'automatisation pour AWS. Et je fais tout en OCaml ;)

    La situation des GUIs est assez problématique mais on peut facilement faire des interfaces simplettes avec LablTk. Il y a des gens qui utilisent Electron pour faire des programmes plus avancés mais je ne me suis jamais penché sur cette technique.

    En ce qui concerne la gestion du parallélisme, il y a plusieurs cas à distinguer. Je mettrais d'un côté la parallélisme de calcul scientifique lourd par exemple utilisant 192+ cœurs ou bien des circuits programmables, dans ce cas on passe en général par des outils spécialisés qu'on contrôle avec OCaml (ou Go, ou autre), par exemple en écrivant un binding ou un programme externe. D'un autre côté il y a le parallélisme de traitement où les entrées-sorties sont le facteur limitant. Par exemple le classique server web ou bien la recherche dans une grosse base de donnés. Ici je trouve que la question du support de ce genre de parallélisme est un peu “90s” car aujourd'hui l'approche consistant à écrire des programmes à un seul fil d'exécution dont on lance de multiples copies en ajoutant un ou plusieurs processus de synchronisation (comme un répartiteur de charge ou une queue de travail) est très populaire. Les avantages de cette approche sur les fils multiples dans un même programme est que l'application est logiquement plus simple et l'augmentation de capacité se fait selon une seule variable, le nombre de processus vs. le nombre de processus * le nombre de fils. Cette technique introduit cependant des difficultés liées à la décentralisation de l'information, la mettre en œuvre peut donc mener à des problèmes difficiles de partage d'information.

    Pour OCaml il existe la bibliothèque Lwt qui utilise la même approche que NodeJS où deux fils d'exécution invisibles à l'utilisateur existent, l'un s'occupe du bytecode ou de la logique du programme et l'autre s'occupe des entrées-sorties. Ainsi l'utilisateur peut penser à son application comme à un processus monofil tout en bénéficiant du parallélisme d'exécution. Combinée à des bibliothèques comme Cohttp (client et seveur HTTTP) ou webmachine, on peut facilement écrire des micro-services HTTP/JSON en OCaml.

    PS.: La communauté OCaml monte en activité ces dernières années. Elle est maintenant solidement implantée dans l'industrie, ce qui présage de nombreux développements positifs pour le futur!

  • [^] # Re: Reason

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

    Même si ça dénature un peu le langage (pour moi la syntaxe d'un langage est une grosse part de son identité) je trouve ce projet intéressant et je me demande même s'il ne serait pas possible de l'étendre à d'autres langages.

    La dépêche est excellente mais la partie sur Reason me semble passer à côté de l'essentiel. L'intérêt pour Facebook de développer Reason n'est pas de rendre la syntaxe OCaml plus ou moins facile pour le quidam moyen mais de faciliter l'apprentissage de OCaml à tous ses développeurs JavaScript: c'est une perspective bien moins large!

    On pourrait aller plus loin en imaginant pouvoir écrire des front-ends analyseurs syntaxiques pour n'importe quel compilateur qui permettrait de profiter des spécificités d'un langage (optimisation, interprétation, etc.) sans avoir à en connaître la syntaxe.

    Je ne suis pas du tout dans le domaine de la compilation mais il me semble que ce genre de technique à toujours fait partie du domaine, avec C traduit en assembleur, C++ en C, pour citer quelques exemples relativement anciens.

  • # Pas de configuration ou bien BSD Owl

    Posté par  (site web personnel) . En réponse au journal kyrbeis: un outil basique de gestion de dotfiles. Évalué à 5.

    La solution que je privilégie est de ne pas configurer les outils que j'utilise, tant que c'est une solution acceptable. Si j'ai vraiment besoin de configurer quelque chose, alors j'utilise les makefiles BSD Owl qui ont un module spécial pour ça.

    En pratique je n'ai qu'un fichier dot.emacs qui précharge les modules que j'utilise et et un fichier dot.zshrc qui définit trois variables d'environnement, parceque j'essaie de me conformer au maximum de non configuration.

  • [^] # Re: le titre

    Posté par  (site web personnel) . En réponse à la dépêche Suricata 4.0 : la détection d’intrusion en mode hipster. Évalué à 5.

    Le projet utilise rust, qui ne compile correctement qu'avec un bonnet, une barbe, un tatouage et des ourlets au pentalon.

  • [^] # Re: ¨Langue anglaise, international oblige !

    Posté par  (site web personnel) . En réponse à la dépêche Libre OS USB veut opter pour la gratuité. Évalué à 4.

    Il y a aussi lontemps eu la “lingua franca” une sorte d'espéranto naturel. En ce qui concerne l'anglais, comme le rappelait avec malice JC Junker dans un récent discours, c'est en Europe une langue de moins en moins importante.

    Dans le cas d'une distribution Linux on peut quand même aujourd'hui convenir que l'anglais reste une langue de communication prépondérante dans les échanges techniques.

    https://fr.wikipedia.org/wiki/Lingua_franca

  • [^] # Re: Pourquoi remonter si loin dans le temps ?

    Posté par  (site web personnel) . En réponse au journal Les langues se délient... . Évalué à 2.

    Mais dans le fond, c'est une pratique courante et répandue dans tous les partis cet usage des assistants parlementaires. Sans vouloir en prendre la défense, ni minimiser de tels abus, je suis étonné par une certaine candeur de la population face aux « révélations » de ce genre de faits.

    Au delà de ça, à part les allégations concernant son crédit bancaire et les gendarmes, tout ce qu'il dit peut-être transposé au monde de l'entreprise, je veux dire par là qu'on est pas dans un registre différent des situations dont les journaux ou des proches peuvent se faire parfois l'echo. Si ces faits sont exacts leur gravité ne doit pas être sous-estimée mais le drame social qu'il dépeignent n'a rien à voir avec le complot politique qu'il dénonce.

  • [^] # Re: mauvaise question

    Posté par  (site web personnel) . En réponse au message Contester la redevance. Évalué à 2.

    Et si tu ne la regardes pas, pourquoi ne pas la vendre?