Michaël a écrit 2929 commentaires

  • # Article sur le platisme

    Posté par  (site web personnel) . En réponse au journal Le Bitcoin va-t-il détruire la planète ? Contre‐point. Évalué à 3.

    Merci pour ton journal – au fait il poste toujours ici Ploum? – et pour ton article sur le platisme, qui contient une des plus belles phrases que j'aie lu dernièrement:

    Bizarrement, le tout est assez cohérent, mais se fondent sur des sources (très) rarement citées ou des contradictions mathématiquement impossibles.

    Je pense que ce genre de figure d'antirhétorique doit avoir un nom parmi les profs de philo. :)

  • [^] # Re: reponse bourin, mais qui peut s averer utile a terme

    Posté par  (site web personnel) . En réponse au message Docker, plusieurs services et virtualhost. Évalué à 2.

    peut etre faudrait il regarder du cotes de kubernetes :)

    Kubernetes est bien plus puissant – ce qui concrètement se traduit par beaucoup plus de choses paramétrisables – que la docker stack en revanche c'est plus ardu à prendre en main. Un point important à relever est que kubernetes devient peu à peu le standard de facto pour les infrastructures cloud qui “proposent du docker” (google compute, forcément, et AWS depuis peu).

    https://kubernetes.io/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/

    Chouette, merci pour le lien!

  • # Docker fait du DNS

    Posté par  (site web personnel) . En réponse au message Docker, plusieurs services et virtualhost. Évalué à 5. Dernière modification le 10 avril 2018 à 18:46.

    Depuis quelques temps la stack docker implémente aussi un DNS sur son réseau interne.

    Une architecture typique qui tire parti de ça consiste à avoir un reverse proxy global, commun à toutes tes applications, qui fait le routage entre les microservices. Il y a un exemple rikiki ici, qui consiste à déployer un trac et un jenkins dans le même environnement docker: https://github.com/michipili/cid.

    Le fichier docker-copose te donne une idée de ce qui se passe il définit notamment deux services trac et jenkins qui sont appelés par le haproxy.

    Si par exemple j'avais aussi un service qui nécessite d'être redimensionné je pourrais compter sur le DNS-Round-Robin implémenté par docker pour répartir la charge entre ces services, ou utiliser une autre stratégie de répartition de charge.

    De façon plus réaliste dans ton cas, un fichier docker stack (staging, production) définirait plusieurs réseaux, comme:

    • interface-layer
    • internal-layer-glpi
    • internal-layer-akeneo

    Un service loadbalancer implémenté par exemple par haproxy ou nginx s'occupe de terminer SSL et rediriger les requêtes HTTP entrantes en fonction du Header host et de la “route“ (ou api endpoint) vers le service adéquat. Ces programmes supportent le changement à chaud de la configuration.

    On peut imaginer ensuite que glpi est une application web typique implémentée par plusieurs services comme frontend qui sert la partie statique (CSS, JS et autres ressources), un backend qui implémente l'API, éventuellement fractionné en plusieurs microservices. Tous ces services sont sur le réseau interface-layer et internal-layer-glpi. Enfin sur le réseau internal-layer-glpi on doit trouver tes bases de données, caches, etc. qui n'ont pas besoin d'être visibles depuis le point d'entrée.

    Donc tout ce dont tu as besoin comme entrée DNS c'est de résoudre tous tes noms (comme glpi.macompanie.net et akeneo.macompanie.net) vers l'höte docker.

    Si ça te semble aller dans la bonne direction n'hésite pas à donner plus de détails sur ton environnement et à poser des questions!

    PS: Pour la découverte de services, le consul de hashicorp était très populaire mais il me semble comprendre que la stack docker implémente une partie significative des fonctions du consul. Ce logiciel peut cependant t'intéresser.

  • [^] # Re: Bêtise naturelle

    Posté par  (site web personnel) . En réponse au journal "Intelligence artificielle", vraiment?. Évalué à 2.

    Une intelligence artificielle qui créerait des jeux pour se divertir quand elle s'ennuie?

  • [^] # Re: Je reste au Qwerty

    Posté par  (site web personnel) . En réponse au journal Exclusif : la nouvelle norme de claviers. Évalué à 4.

    La grosse différence est que sur un clavier qwerty toutes ces touches sont soit en accès direct soit accessible via le modificateur shift, tandis que sur un clavier azerty ces touches sont soit en accès direct soit accassible via le modificateur shift, soit le modificateur alt-gr. Et c'est ce qui est particulièrement pénible parce qu'il n'y a qu'une seule touche alt-gr et que de surcroît elle est du même côté que les touches intéressantes, du coup on passe son temps à faire des acrobaties plutôt pénibles avec la main droite. Le modificateur shift est présent des deux côtés et est donc beaucoup plus facile à utiliser, d'autant que les touches shift sont en général plus grosse que les touches normales et disposées pour être faciles à atteindre avec les petits doigts de la main opposée à celle qui tape les touches.

    Ça dépend sûrement des langages mais à l'époque où j'ai changé je programmais beaucoup en TeX et utilisait donc beaucoup les {}\ de sorte le passage au qwerty m'avait bien soulagé! Et puis de toutes façon je n'écris pas beaucoup en français, à quoi bon avoir un clavier optimisé pour la saisie du français? :)

  • [^] # Re: Je reste au Qwerty

    Posté par  (site web personnel) . En réponse au journal Exclusif : la nouvelle norme de claviers. Évalué à 5.

    Suis-je le seul à utiliser uniquement un clavier Qwerty ?

    J'utilise aussi exclusivement un clavier qwerty aussi, ce qui ne me m'empêche pas de bien accentuer mes lettres lorsque j'écris en français! :)

    La raison pour laquelle j'utilise un clavier qwerty est la facilité d'accès aux caractères “du programmeur” c'est à dire les

    []{}|\ et !@#$%^&*()-

    Je travaille essentiellement sous FreeBSD et MacOS X. Dans le premier cas, j'ai configuré la touche “Win-Droite” pour fonctionner comme touche “compose” et c'est très agréable à utiliser. Sous MacOS X la configuration “sortie d'usine” permet d'accéder à la plupart des caractères spéciaux usuels en utilisant la touche “débrayage/alt” (avec ou sans shift). Comme je passe le plus clair de mon temps à travailler avec Emacs, je peux entrer les caractères spéciaux soit en utilisant une convention d'entrée spéciale M-x set-input-method TeX ou bien en entrant directement les nom des caractères unicode C-x 8 RET <CHAR-NAME>.

  • # Deep learning

    Posté par  (site web personnel) . En réponse à la dépêche LinuxFr.org sera impliqué dans le plan français sur l’intelligence artificielle #FranceIA. Évalué à 10.

    Les premières images générées par un triplet de réseaux de neurones adverses calibrés en deep-learning sur une petite partie du site (la tribune) a déjà livré ses résultats:

    Deep-learning moulator

    La communauté scientifique est perplexe.

  • [^] # Re: les dependances

    Posté par  (site web personnel) . En réponse au message [electron.js] alléger un binaire. Évalué à 2.

    C'est censé compiler, mais je doute très fortement que ce soit comme en C, en C++, en Rust, en pascal, en Java… bref dans un langage traditionnellement compilé, c'est à dire que le générateur de binaire ait bien vérifié que tous les appels mènent bien quelque part.

    Mhh je vais peut-être dire des bêtises parceque je ne connais pas bien electron mais mon attente est qu'il s'agit essentiellement d'un combo navigateur web / NodeJS et que in fine la partie “logique” de l'application est répartie dans plusieurs sources JavaScript dont une partie tourne dans le navigateur et l'autre dans NodeJS.

    En ce qui concerne le JavaScript, il y a effectivement une phase de compilation (avec édition de lien et élimination de code mort et plein d'autres optimisations) mais elle livre un code JavaScript dit “minifié” (voir exemple [https://unpkg.com/react@0.14.3/dist/react-with-addons.min.js}). Le programme “canonique” pour faire ce traitement s'appelle webpack. Dans ton cas, je doute que le code JavaScript fasse plus de quelques ko, ce qui fait la masse de l'application est la masse de dépendences (au minimum un navigateur et un NodeJS) et je m'attends à ce qu'aucun traitement ne soit fait sur ces programmes pour éliminer les parties non susceptibles d'être utilisées par la partie JavaScript.

    C'est toujours mon attente que tu pourrais essayer de vérifier mais je serais surpris si le binaire en question était bien plus qu'une archive auto-extractrice, qui une fois explosée te permet de retrouver ton code JavaScript.

    Pour “sauver les meubles” il faudrait voir si l'application originale peut être installée en connection WiFi au lieu de 3G et s'assurer que les màj ne fassent rien de plus que tirer le nouveau code JavaScript.

  • [^] # Re: Bêtise naturelle

    Posté par  (site web personnel) . En réponse au journal "Intelligence artificielle", vraiment?. Évalué à 4.

    Tu apprends le nouvel instrument plus vite, oui. Mais le temps que tu passes dessus est du temps passé à ne pas travailler le premier, ce qui est le point initial que je discutais :

    Non seulement tu apprends le nouvel instrument plus vite mais en plus travailler l'instrument permet aussi de devenir un meilleur chanteur, et vice-versa. C'est assez facile d'en voir des raisons évidentes parcequ'il y a plein de sous-compétences communes comme l'écoute, le rythme, et la présence (ou concentration) et ce qui est surprenant ou fascinant est que l'humain reconnaît ces sous-compétences plus ou moins intuitivement et y réinvestit adroitement ses connaissances.

    En programmation c'est pareil, parceque quand on connaît bien 2 ou 3 langages on apprend très rapidement d'autres et on peut réutiliser directement beaucoup de ses compétences de programmeur – et de même travailler sur un nouveau langage permet même de faire des progrès dans les langages qu'on connaît déjà.

    En 10h total, ton modèle combiné ne pourra pas être aussi bon, car il n'aura vu que la moitié des données qui lui permettent d'apprendre…

    Oui, et c'est bien pour ça que mon commentaire précédent commence par Pour une machine peut-être mais pas pour un être humain. ;)

  • [^] # Re: Bêtise naturelle

    Posté par  (site web personnel) . En réponse au journal "Intelligence artificielle", vraiment?. Évalué à 2.

    si on apprend à changer

    Il faut bien entendu lire “si on apprend à chanter”

  • [^] # Re: Bêtise naturelle

    Posté par  (site web personnel) . En réponse au journal "Intelligence artificielle", vraiment?. Évalué à 7.

    Non, car en gros, pour apprendre deux fois plus de choses, il faut deux fois plus de temps (et de données). Un apprentissage se fait a détriment de l'autre.

    Pour une machine peut-être mais pas pour un être humain. Par exemple en musique si on apprend à changer on peut recycler beaucoup de compétences dans son apprentissage d'un instrument, et vice-versa. En fait les deux apprentissages se stimulent. C'est aussi vrai dans d'autres situations mais je pense que l'exemple de la musique est un des moins discutables.

  • [^] # Re: Villani et son domaine de compétence…

    Posté par  (site web personnel) . En réponse au journal "Intelligence artificielle", vraiment?. Évalué à 1.

    L'abstention est un choix, mais ce n'est pas le choix de dire que toutes les options se valent.

    Si on ne pense pas que toutes les options se valent et donc qu'on en préfère une, il faut soit avoir des trucs très importants à faire, soit ne pas avoir le droit de voter, soit n'en avoir rien à faire, soit être un peu concon pour s'abstenir, non?

  • [^] # Re: Villani et son domaine de compétence…

    Posté par  (site web personnel) . En réponse au journal "Intelligence artificielle", vraiment?. Évalué à 2. Dernière modification le 27 mars 2018 à 23:06.

    Et ça… c'est presque juste […]

    À mon avis tu vas chercher beaucoup trop loin. S'il parle du second tour il est raisonnable de penser que l'équivalence dont il parle ne tient compte que du classement et si on considère qu'un abstentionniste donne 0 voix, 1/2 voix (ou douze trilliards d'ailleurs) à chacun des deux candidats, cela ne change pas l'ordre d'arrivée des deux candidats.

    Par contre si cette autre façon de compter garde l'ordre, cela ne garde pas “l'information de range deux” qu'est le score du candidat. (Et c'est aussi raisonnable de penser que Villani est largement au courant.)

  • [^] # Re: Bêtise naturelle

    Posté par  (site web personnel) . En réponse au journal "Intelligence artificielle", vraiment?. Évalué à 4.

    Moui, avec ce point de vue l’intelligence se définit par « ce que peut faire l’humain que ne peuvent pas faire les machines ».

    Sans aller jusque là on peut quand-même s'accorder sur le fait que même si les progrès réalisés dans les dernières années sont très impressionnants ils se concentrent sur quelques problèmes assez particuliers et que sur certaines manifestations de l'intelligence les “intelligences artificielles” sont au point mort.

    Ce qui m'intéresse beaucoup et que j'ai trouvé assez bien formulé dans le libre d'Annie Le Brun Le trop de réalité c'est le raisonnement analogique. C'est un peu étrange à dire mais il me semble que la poésie et la recherche mathématiques ont une chose très importante en commun, c'est qu'elles sont structurées par les métaphores: en poésie on prend du plaisir à rapprocher des choses distinctes sur une caractéristique qu'ils partagent intimement, et en recherche mathématique c'est souvent la recherche de cette caractéristique partagée qui permet de transposer la solution qu'on connaît bien d'un problème classiques à un nouveau contexte. (Je n'ai pas d'exemple facile à donner ;) )

  • [^] # Re: Céline

    Posté par  (site web personnel) . En réponse au journal Le droit d'auteur en France et le domaine public. Évalué à 2.

    Notons qu'une statue de Colbert, rédacteur du Code Noir trône à l'Assemblée Nationale, […]. Vos héros sont nos bourreaux.

    Sur ce point particulier il me semble que l'esclavage a été pratiqué avec une ardeur égale par de très nombreuses nations de toutes les cultures et dès les débuts de l'Histoire: si on reproche à Colbert d'être esclavagiste, on peut aussi remarquer qu'il était certainement pour la torture, pour le servage, pour la peine de mort (et royaliste, pour couronner le tout!) – ce qui fait que la majorité des familles françaises ont potentiellement des comptes à régler avec le grand homme en question.

  • [^] # Re: L'ordinateur est rationnel, et alors ?

    Posté par  (site web personnel) . En réponse au journal "Intelligence artificielle", vraiment?. Évalué à 5.

    J'ai envie de discuter un peu sur l'idée de décision, parceque comme dans la dernière phrase de ce texte de Markel, décision, responsabilité et justification vont souvent de pair:

    "Da wir uns unseres Bewusstseins nicht entledigen können, wenn wir Menschen bleiben wollen, sind wir in allem, was wir tun, grundsätzlich darauf angewiesen, es mit guten, vor uns selbst oder anderen rechtfertigungsfähigen Grnden zu tun, und sei dies auch im Alltagsfall nur die begründetet Überzeugung, dass das, worum es geht, ganz unsere eigene Sache sei und niemand anderen etwas angehe oder betreffe. Zwar befreien uns Gewohnheiten und Gemeinschaftstraditionen aus der fürwahr schreckenerregenden Lage, vor allem, was wir tun, immer erst begründend nachzudenken. Doch bleibt es wahr, dass wir, wenn wir das, was wir wollen, aus freien Stücken oder von außen veranlasst in Zweifel ziehen, dazu gezwungen sind, uns zwischen verschiedenen Möglichkeiten zu entscheiden. Wer dann nicht einfach würfeln oder raten will, dem bleibt nur eins: Er muss sich von der Richtigkeit der einen oder anderen Denk- und Handlungsalternative überzeugen, und dazu bedarf es sicherer Kenntnisse und guter Gründe. Wer nichts weiß, kann keine Entscheidung treffen, er kann daher auch nicht verantwortlich sein. VErantwortung tragen heißt, gezwungen zu sein, sich ausreichende Kenntnisse zu verschaffen, um eine Entscheidung rechtfertigen zu können."

    Markel, Hubert: Wissenschaft. Zur Rede gestellt, München 1989, S. 22.

    La dernière phrase est “Exercer sa responsabilité implique d'être contraint à se renseigner suffisamment pour être capable de justifier de sa décision.” et justement, même si on n'associe pas systématiquement l'idée de responsabilité à celle de décision dans la vie quotidienne, il me semble que dans le cadre d'une discussion sur l'intelligence artificielle, c'est justement la notion de responsabilité attachée à celle décision qui nous aide à comprendre la différence entre une décision d'une part et une déduction ou un calcul d'autre part. Dans un problème qui serait si parfaitement compris qu'on puisse en examiner tous les aspects par un calcul, quelle place reste-t'il à la responsabilité? Dans un tel cas on ne pourrait jamais faire le reproche à quiconque de se fier au résultat du calcul, ce qui revient à décharger cette personne de toute responsabilité. Sous cet éclairage, ce qui me semble donc faire partie de l'idée de décision est justement que celle-ci doit contenir une part qui n'est pas purement rationnelle – autrement on n'y associerait ni responsabilité, ni justification.

  • [^] # Re: Et l'apprentissage automatique?

    Posté par  (site web personnel) . En réponse au journal "Intelligence artificielle", vraiment?. Évalué à 6.

    Pourrais tu etre un peu plus specifique?

    Et bien pour prendre un exemple simple de modèle statistique on sait que la distribution du nombre d'habitants des villes dans un pays suit essentiellement une distribution de Pareto ce qui concrètement signifie qu'on peut trouver deux paramètres (la moyenne x_m et le poids des petites contribution \alpha) pour que l'histogramme de la distribution des populations ressemble beaucoup à une de ces courbes:

    Exemples de distribution de Pareto.

    (Ressemble beaucoup cela veut dire mathématiquement que l'intégrale de la différence carrée des deux fonctions correspondantes est très petite – ou en moins terre à terre, que la distance hilbertienne entre ces deux fonctions est petite.)

    Contrairement à ce qui se passe dans le cas des réseaux de neurones on a peu de paramètres dans le modèle et on sait leur donner un sens: l'un est la taille moyenne et l'autre quantifie la contribution des très petites communes dans la distribution: pour un démographe c'est aussi un nombre intéressant à suivre dans le temps, on peut s'en servir pour faire de l'analyse qualitative et quand on se pose des questions qui font intervenir cette distribution, on sait quels sont les paramètres intéressants à utiliser pour fabriquer une valeur approchée, etc.

    Si on sort de cette exemple peut-être un peu “scolaire” même si je trouve qu'il illustre bien la problématique on peut voir des livres plus pointus sur la modélisation, par exemple en modèles financiers The SABR/LIBOR Market Model: Pricing, Calibration and Hedging for Complex Interest-Rate Derivatives de Rebonato, McKay et White, une part significative du livre est consacrée justement à comparer les modèles possibles entre eux et à discuter si on peut interpréter les paramètres de ces modèles dans la situation qu'ils prétendent décrire.

    Dans le cas d'un réseau de neurones on se retrouve dans une situation bien différente parceque presque par définition on travaille avec un plus grand nombre de paramètres: au lieu de faire une analyse a priori très poussée du système étudié et de la construction d'un modèle pour ensuite déterminer ces paramètres on paramètre un espace de modèles et on cherche le bon modèle dedans.

    Ceci dit la comparaison entre ces deux situations est très limitée car les champs d'application de ces deux outils sont assez différents.

  • [^] # Re: Et l'apprentissage automatique?

    Posté par  (site web personnel) . En réponse au journal "Intelligence artificielle", vraiment?. Évalué à 5.

    Les IA oublient de nos jours. C'est un peu le principe de la regression lineaire: tu lis une fois toute les donnees, et tu n'en retiens que deux parametres de ta droite. Les donnees sont alors oubliees et on n'utilise que cette droite.

    Cette comparaison a sa limite parceque dans la régression linéaire ou plus généralement dans les modèles statistiques, on essaie d'atterrir sur un petit nombre de paramètres “explicatifs” qui par construction représentent les paramètres essentiels du problème. Ces paramètres suffisent à expliquer les évaluations faites par le modèle, permettent de faire de l'analyse qualitative et leur évolution au fil du temps peut aussi révéler des informations intéressantes.

    Dans les mécanismes d'apprentissage comme par exemple les réseaux de neurones on a un très grand nombre de paramètres qui n'ont de plus a priori rien à voir avec les lois internes supposées de la situation étudiée. Avec pour conséquence qu'il est largement impossible d'expliquer l'influence de tel ou tel paramètre spécifique sur les résultats du calcul.

  • [^] # Re: Commentaire bookmark

    Posté par  (site web personnel) . En réponse au journal "Intelligence artificielle", vraiment?. Évalué à 6.

    Personnellement, je pense que l'intelligence relance les questions sur le logiciel libre : […]

    Oui ça les relance et le mot est très bien choisi parceque la plupart de ces questions n'ont plus ou moins rien à voir avec ce qu'on comprend comme “intelligence artificielle” aujourd'hui.

    L'exemple de l'assurance que tu donnes est éloquent: pour comprendre le risque qu'il assure l'assureur construit un modèle – et c'est souvent un modèle statistique qui permet à l'assureur de dire quelque chose comme “je suis sûr à 95% de ne pas perdre plus de 1 million d'euros d'ici le mois prochain.” Le fait qu'on utilise un ordinateur pour réaliser ce calcul est largement anodin, et la vraie question qui se cache derrière est celle de la collecte et de l'utilisation des données individuelles par des organisations: qu'il s'agisse de l'État, de l'assurance maladie ou de sociétés complètement privées, faut-il tout laisser faire ou bien règlementer les traitements possibles – et quelles sont les “bonnes” limites à utiliser dans ce dernier cas?

  • # Oui bien sûr

    Posté par  (site web personnel) . En réponse au message [nginx] : Renouvellement de certificats de plusieurs domaines. Évalué à 0.

    Est-ce que l'on peut mettre plusieurs name server sur le même port sachant que les services sont différents ?

    Oui bien sûr. Ce qui est peut-être un peu déroutant quand on vient de apache est que ce dernier fait bien la différence entre la configuration du socket bind et des virtual hosts mais la configuration de nginx se lit différemment et il n'y a pas de problème à avoir plusieurs règles qui écoutent sur le même port. (J'imagine que c'est ce qui peut te paraître louche.)

  • [^] # Re: Avec un vrais titre

    Posté par  (site web personnel) . En réponse à la dépêche Un nouveau type de contenus : les liens. Évalué à 5.

    • Journal bookmark: you're doing it wrong
    • 10 choses que les gens successful font avant de poster un journal Bookmark
    • etc. :)
  • # Assembleur

    Posté par  (site web personnel) . En réponse au journal Taptempo en COBOL. Évalué à 3.

    C'est moi ou le COBOL ressemble fortement à une très fine surcouche au dessus de l'assembleur?

  • [^] # Re: concrètement ?

    Posté par  (site web personnel) . En réponse à la dépêche Savoir qui bosse où en un clin d’œil grâce à Awayboard !. Évalué à 3.

    Oui c'est ça, tout le monde qui sait quelque chose peut mettre à jour l'information affichée sur le awayboard. C'est un système très simplet. :)

  • [^] # Re: concrètement ?

    Posté par  (site web personnel) . En réponse à la dépêche Savoir qui bosse où en un clin d’œil grâce à Awayboard !. Évalué à 3.

    Concrètement on utilise le bouton “add person” pour ajouter une étiquette puis on peut déplacer les étiquettes en triant-glissant le nom.

  • [^] # Re: Je me sens pas bien

    Posté par  (site web personnel) . En réponse à la dépêche Savoir qui bosse où en un clin d’œil grâce à Awayboard !. Évalué à 5.

    Ah sinon, je rajouterai juste que dès l'instant ou la boite dépasse les 100 salariés, ça deviendra juste ingérable :)

    C'est pour les équipes, donc plutôt de 3 à 10 personnes. On a pour chaque équipe un écran assez grand qui cycle entre plusieurs pages de type “moniteur”qui donnent l'état du serveur, et il y a maintenant une page supplémentaire qui afficher le awayboard. Au départ c'était un tableau magnétique mais comme on a toutes les deux semaines un “hackday” dédié aux projets d'initiative personnelle, Sascha en a profité pour coder ça.