tag:linuxfr.org,2005:/users/niconico/journauxLinuxFr.org : les journaux de Nicolas Boulay2024-01-04T09:31:46+01:00/favicon.pngtag:linuxfr.org,2005:Diary/410132024-01-04T09:31:46+01:002024-01-04T09:31:46+01:00NaxRiscv, un CPU rapide open sourceLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>En parcourant le journal sur le 37C3, sur les <a href="//linuxfr.org/users/esver/journaux/selections-de-presentations-du-37c3">conférences</a> du Chaos Computer Club Allemand, je suis tombé sur la présentation d'un CPU open source, le <a href="https://fahrplan.events.ccc.de/congress/2023/fahrplan/events/11777.html">NaxRiscv</a>.</p>
<p>Pour ceux qui se souviennent, c'était le rêve d'un groupe d'illuminé autour du F-cpu dans les années 2000.</p>
<p>Le <a href="https://github.com/SpinalHDL/NaxRiscv">NaxRiscv</a> est donc un CPU RISC-V out-of-order. Il exécute maximum 3 instructions à la volée ce qui permet d'être plus rapide qu'un ARM M4 à fréquence égale.</p>
<p>Ce CPU est écrit non pas en VHDL ou en Verilog mais par un générateur de HDL, <a href="https://github.com/SpinalHDL/SpinalHDL">SpinalHDL</a>. C'est une library <a href="https://fr.wikipedia.org/wiki/Scala_(langage)">Scala</a> pour générer de plus haut niveau du hardware. La description du projet met en avant les limites des anciens langages et permet d'aller plus loin dans l'abstraction (Interface plus propre, code moins verbeux, paramètres génériques).</p>
<p>NaxRiscv est donc la démonstration qu'un langage de plus haut niveau permet de faire plus de chose, plus complexe, même en hardware. Il cible les FPGA dans un premier temps. 2 boites chinoises l'utilisent ainsi que des universités. Le projet propose une configuration par défaut, mais il est possible de composer son CPU (nombre d'unité de calcul, profondeur de pipeline). Debian démarre sur ce programme.</p>
<p>Il est inclus dans une système plus large <a href="https://github.com/enjoy-digital/litex">LiteX</a> qui permet de composer un système complet.</p>
<p>Le code est assez lisible et je pense que des softeux n'auront pas trop de mal à le comprendre. Il va falloir que je me mette au Scala.</p>
<div><a href="https://linuxfr.org/users/niconico/journaux/naxriscv-un-cpu-rapide-open-source.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/134397/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/niconico/journaux/naxriscv-un-cpu-rapide-open-source#comments">ouvrir dans le navigateur</a>
</p>
Nicolas Boulayhttps://linuxfr.org/nodes/134397/comments.atomtag:linuxfr.org,2005:Diary/408112023-07-24T07:55:03+02:002023-07-25T18:34:37+02:00"Contestabilité concurrentielle"Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p><em>NdM : le texte du journal a été effacé car c’est un copier-coller d’un texte qui n’est pas de l’auteur du journal et en l’absence explicite de son autorisation pour l’ajouter ici. Il est toujours possible de se référer au lien.</em></p>
<p><a href="https://twitter.com/RauxJF/status/1683184600342749186">https://twitter.com/RauxJF/status/1683184600342749186</a></p>
<p>Quelqu’un peut expliquer en peu plus ?</p>
<div><a href="https://linuxfr.org/users/niconico/journaux/contestabilite-concurrentielle.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/132815/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/niconico/journaux/contestabilite-concurrentielle#comments">ouvrir dans le navigateur</a>
</p>
Nicolas Boulayhttps://linuxfr.org/nodes/132815/comments.atomtag:linuxfr.org,2005:Diary/402902022-06-15T10:14:56+02:002022-06-15T10:14:56+02:00Le taptempo du webLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Un journal précédent vient de lancer un <a href="https://github.com/Taptempo-Federation">taptempo</a> du web. Le but est d'évaluer des technos quand il s'agit de faire un backend qui ne fait qu'envoyer une redirection 302 (cf le journal en dessous pour les détails).</p>
<p>La vitesse est mesuré par ab en local, wrk a aussi été proposé. L'empreinte mémoire est mesuré avec "ps aux" pour avoir le VSZ et le RSS.</p>
<p>On a pour l'instant 9k requêtes/s et 8 Mo en Java, 23k requêtes/s et 350Ko en Rust, 19k requêtes/s en Haskell. Bien sûr il faudrait lancer ces tests sur une même machine pour être fairplay.</p>
<p>Journal d'origine : <a href="//linuxfr.org/users/spacefox/journaux/java-presque-9-000-requetes-par-seconde-avec-8-mo-de-ram">https://linuxfr.org/users/spacefox/journaux/java-presque-9-000-requetes-par-seconde-avec-8-mo-de-ram</a></p>
<div><a href="https://linuxfr.org/users/niconico/journaux/le-taptempo-du-web.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/128004/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/niconico/journaux/le-taptempo-du-web#comments">ouvrir dans le navigateur</a>
</p>
Nicolas Boulayhttps://linuxfr.org/nodes/128004/comments.atomtag:linuxfr.org,2005:Diary/393282020-09-09T10:07:01+02:002020-09-09T10:07:01+02:00Un expert en sécurité poursuivi en justice pour des articles sur des dysfonctionnements réels !Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Extraits :<br>
"<br>
<em>Ces dysfonctionnements ont aussi fait l'objet de 2 autres articles dans LeMagIT et 1 dans La Lettre A, et rien d'autre ne m'anime que la volonté et la probité de les faire reconnaître et corriger, pour que le PASSI soit perçu comme une qualification sérieuse et objective en France.</em></p>
<p><em>Ces accusations ont été suffisamment objectives et probantes puisque la CNIL s'est saisie des 5 violations de RGPD que j'ai, entre autres, dénoncées, pour adresser un courrier de demandes d'explications le 1er juillet 2020.</em></p>
<p><em>Plus globalement, voici les causes que je défends à travers cette action :</em></p>
<pre><code>protéger les lanceurs d'alertes dans le domaine de la cybersécurité
protéger la liberté d'expression sur Internet
protéger la liberté de la presse
</code></pre>
<p>"</p>
<p><a href="https://www.leetchi.com/c/pour-la-protection-des-lanceurs-dalertes-dans-la-cybersecurite">https://www.leetchi.com/c/pour-la-protection-des-lanceurs-dalertes-dans-la-cybersecurite</a></p>
<p>Est-ce que vous avez plus d'informations sur le sujet ?</p>
<div><a href="https://linuxfr.org/users/niconico/journaux/un-expert-en-securite-poursuivi-en-justice-pour-des-articles-sur-des-dysfonctionnements-reels.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/121541/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/niconico/journaux/un-expert-en-securite-poursuivi-en-justice-pour-des-articles-sur-des-dysfonctionnements-reels#comments">ouvrir dans le navigateur</a>
</p>
Nicolas Boulayhttps://linuxfr.org/nodes/121541/comments.atomtag:linuxfr.org,2005:Diary/393202020-08-31T14:36:02+02:002020-08-31T14:36:02+02:00vers un sciencefr.org ?Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Suite à cette conversation : <a href="https://twitter.com/qffwffq/status/1300410239771119616">https://twitter.com/qffwffq/status/1300410239771119616</a> , je me demandais si c'était sensé de dupliquer le système de linuxfr pour faire un sciencefr.org géré de la même façon, pour expliquer les faits scientifiques au plus grand nombre.</p>
<p>Est-ce que cela aurait du sens pour vous ?</p>
<p>L'idée serait de faire ce que ne font pas les journaux généralistes : des articles didactiques non bourré d'approximation ou de fake news. Le journaliste moyen a malheureusement en France une formation très littéraire (littérature, politique politicienne de mécanique de partie) et se foute un peu de la science.</p>
<p>Je ne parle pas d'un fork, mais plutôt d'une deuxième url avec un série de news différentes, qui utilisent les mêmes comptes et les mêmes machines.</p>
<div><a href="https://linuxfr.org/users/niconico/journaux/vers-un-sciencefr-org.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/121454/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/niconico/journaux/vers-un-sciencefr-org#comments">ouvrir dans le navigateur</a>
</p>
Nicolas Boulayhttps://linuxfr.org/nodes/121454/comments.atomtag:linuxfr.org,2005:Diary/391902020-06-11T09:41:22+02:002020-06-11T09:41:22+02:00Sous-domaine *.linuxfr.orgLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Je viens de me rendre compte de l'existence de <a href="http://www.strasbourg.linuxfr.org">www.strasbourg.linuxfr.org</a>. Je trouve que c'est une bonne idée de donner de la visibilité a un Lug avec le nom linuxfr. Pourquoi ne pas l'étendre ? Par contre, il faudrait mieux configurer le certificat TLS.</p>
<p><a href="http://sam.linuxfr.org/fortunes.txt">http://sam.linuxfr.org/fortunes.txt</a> existe aussi, c'est la seule page qui semble subsister dans <a href="http://sam.linuxfr.org/">http://sam.linuxfr.org/</a> .</p>
<p><a href="https://lists.linuxfr.org/wws">https://lists.linuxfr.org/wws</a> gère des mailing list 'sympa'. Et pour finir <a href="https://alpha.linuxfr.org">https://alpha.linuxfr.org</a> doit être la version de tests du site.</p>
<div><a href="https://linuxfr.org/users/niconico/journaux/sous-domaine-linuxfr-org.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/120749/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/niconico/journaux/sous-domaine-linuxfr-org#comments">ouvrir dans le navigateur</a>
</p>
Nicolas Boulayhttps://linuxfr.org/nodes/120749/comments.atomtag:linuxfr.org,2005:Diary/390962020-04-23T09:34:39+02:002020-04-23T09:34:39+02:00covid19 et puissance de calcul disponibleLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Folding@home propose de faire des calculs pour lutter contre le covid19. J'imagine que certains ordinateurs tournent au ralenti en ce moment, leurs propriétaires pourraient faire le don de leur puissance de calcul.</p>
<p><a href="https://foldingathome.org/covid19/">https://foldingathome.org/covid19/</a></p>
<p>Avez-vous entendu parler d'autres initiatives anti-covid ayant besoin de puissance de calcul ?</p>
<p>Peut-on imaginer des grandes entreprises ou des fournisseurs de cloud faire tourner leurs machines non louées avec ces logiciels ? </p>
<div><a href="https://linuxfr.org/users/niconico/journaux/covid19-et-puissance-de-calcul-disponible.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/120141/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/niconico/journaux/covid19-et-puissance-de-calcul-disponible#comments">ouvrir dans le navigateur</a>
</p>
Nicolas Boulayhttps://linuxfr.org/nodes/120141/comments.atomtag:linuxfr.org,2005:Diary/385902019-07-05T10:00:54+02:002019-07-05T10:00:54+02:00Générateur de site web statiqueLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Il semblerait qu'il y a une mode autour des générateurs de code statique, qui aurait été lancé par <a href="https://jekyllrb.com/">Jekyll</a> issue de github écrit en ruby. L'idée de base est : pourquoi s’embêter avec une base de donnée et du code serveur pour du contenu statique ? De plus, du joli code HTML simple est bien plus rapide et mieux indexé par Google. Cela permet aussi d'utiliser Git pour gérer son site web et d'éviter les mises à jour live ou par ftp de Wordpress. Bien sûr les fonctionalités avancées ne sont pas les mêmes (pas d'édition en ligne, par exemple).</p>
<p>La hype se tourne vers <a href="https://gohugo.io/">hugo</a> écrit en go qui est très rapide à la génération. J'ai essayé pour mon site ( <a href="https://www.macropaiement.com/blog/">https://www.macropaiement.com/blog/</a> pour les curieux), un blog se fait en <a href="https://gohugo.io/getting-started/quick-start/">quelques minutes</a> (un fichier de config yaml + un fichier par post). La mise en place est rapide. L'organisation se base sur un système de "thème" qui traduit des fichiers en site web. La partie contenue est très simple à écrire et à comprendre. Le code des thèmes ressemble encore à nouveau langage de template bof. On dirait du jsx (de React) en plus moche.</p>
<p>Il y a d'autres générateurs dont un qui repose sur <a href="reactjs.org">React</a> (<a href="https://www.gatsbyjs.org">Gastby</a>), j'imagine que pour faire des sites plus complexes, cela sera plus facile qu'avec Hugo.</p>
<p>Pour en lire plus :<br>
<a href="https://www.techiediaries.com/jekyll-hugo-hexo/">https://www.techiediaries.com/jekyll-hugo-hexo/</a><br>
<a href="https://opensource.com/article/17/5/hugo-vs-jekyll">https://opensource.com/article/17/5/hugo-vs-jekyll</a></p>
<div><a href="https://linuxfr.org/users/niconico/journaux/generateur-de-site-web-statique.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/117613/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/niconico/journaux/generateur-de-site-web-statique#comments">ouvrir dans le navigateur</a>
</p>
Nicolas Boulayhttps://linuxfr.org/nodes/117613/comments.atomtag:linuxfr.org,2005:Diary/385862019-07-03T09:46:24+02:002019-07-03T09:46:24+02:00Installation de Linux Mageia 7 sur un Dell 14 5000Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>J'ai joué à la roulette russe de l'utilisateur du libre : acheter un portable récent. Dell fournit des "portables Linux" mais ce sont des grosses machines, je cherchais un truc léger et puissant. Les 900g de mon vieux sony SVP me manque par rapport au 1,6 kg du Dell, mais c'est pas mal.</p>
<p>J'ai créé une clef USB de boot live. Je suis obligé de booter en mode UEFI car le PC refuse le boot sur les disques internes (1 SDD NVMe et 1 HD) en mode legacy. De toutes façon, il est impossible de booter en externe en legacy pour faire une install UEFI.</p>
<p>Dans le Bios, vous devez donc booter en externe en changeant l'ordre (Bios accessible avec F12 pendant la présence du logo) et passer en mode AHCI, car en bootant avec le mode raid par défaut, le SSD n'est pas visible (cf l'erreur visible dans le dmesg au boot). </p>
<p>Il faut une partition type "EFI system" au début de votre disque, selon les sources, sa taille doit faire de 100 à 500 Mo (Mageia la monte dans /boot/EFI, d'autre dans /boot/efi, et d'autre dans /boot (ubuntu ?) et donc il faut aussi la place pour le noyau). C'est une partition VFAT avec un numéro spécial. Elle doit être présente dans les 10 premiers Go du disque de mémoire. Elle est forcément déjà présente avec windows, on peut donc la réutiliser, mais elle est petites.</p>
<p>En général, je partage mon disque avec une seul partition racine "/" j'ai souvenir de partitions pleine assez chiante à régler. Le Sata est monté dans le répertoire perso ~/Documents. Mais ne le fait pas à l'installation ! Le système créé les répertoires avec les droits "root". Donc votre utilisateur n'a aucun droit d'écriture dans le répertoire, et Plasma ne démarre même pas. J'ai viré windows mais j'ai gardé la partition diagnostique de Dell.</p>
<p>J'utilise le GPU intel, je n'ai pas cherché à activer le NVIDIA qui consomme plus. A priori, c'est facile d'avoir soit l'un, soit l'autre, mais le switch "Optimus" est expérimental.</p>
<p>J'ai encore un soucis avec la mise en veille. Il reboot à vide. J'imagine que c'est ma faute, je n'ai pas créé de SWAP pensant qu'avoir 16 Go de RAM rend le swap inutile. La boulette. Je tente le redimensionnement à chaud du SATA, on verra bien (j'ai trop peur de casser "/" pour faire le swap sur le NVMe). </p>
<div><a href="https://linuxfr.org/users/niconico/journaux/installation-de-linux-mageia-7-sur-un-dell-14-5000.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/117595/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/niconico/journaux/installation-de-linux-mageia-7-sur-un-dell-14-5000#comments">ouvrir dans le navigateur</a>
</p>
Nicolas Boulayhttps://linuxfr.org/nodes/117595/comments.atomtag:linuxfr.org,2005:Diary/384822019-04-26T11:45:47+02:002019-04-26T13:31:46+02:00Conception pilotée par le domaine ou Domain-driven design (DDD)Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>DDD est une méthode de description d'un projet. Un peu comme une méthode Merise ou l'UML. Il semble quand même plus proche des contraintes réelles d'un projet que l'UML. Il introduit des objets de base comme l'entity, le value object, l'event, l'aggregate, le bounding context, le Repository, le service… Le genre d'objet de base qui évite de devoir réinventer la roue à chaque nouvelle modélisation.</p>
<p>On peut trouver nombre d'articles sur le sujet. </p>
<p>Mais connaissez-vous des outils de design ou des bibliothèques "DDD" qui formalisent encore un peu plus son usage ? Ou simplement qui aide à décrire un projet ?</p>
<p><a href="https://en.wikipedia.org/wiki/Domain-driven_design">DDD</a></p>
<div><a href="https://linuxfr.org/users/niconico/journaux/conception-pilotee-par-le-domaine-ou-domain-driven-design-ddd.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/117058/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/niconico/journaux/conception-pilotee-par-le-domaine-ou-domain-driven-design-ddd#comments">ouvrir dans le navigateur</a>
</p>
Nicolas Boulayhttps://linuxfr.org/nodes/117058/comments.atomtag:linuxfr.org,2005:Diary/383212019-01-17T17:27:45+01:002019-01-18T18:57:40+01:00Passer l'élection européenne à la vraie proportionnelleLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>La proportionnelle est un bon mode de scrutin pour représenter toutes les tendances en France, moins pour forcer la prise de décision. C'est officiellement ce qui est utilisé pour l'élection européenne en France.</p>
<p>La France n'aime pas la proportionnelle, cela provient du mauvais fonctionnement de la 4ième république pendant la décolonisation, enfin, le pouvoir en place n'aime pas voir ses voies diluées.</p>
<p>Il y a 79 députés français à lire, cela ferait normalement 1,26 % des voies pour avoir un député. Une manière de gonfler le résultat des plus gros partie est de mettre un seuil à 5 %. Ainsi, tout ceux en dessous de 5 % dégage. 4 parties qui cumuleraient 4*4 %=16 % des voies n'auront aucune représentation. La cours constitutionnel allemande a rejeté une telle modification pour leur élection, ce qui n'est pas le cas en France.</p>
<p>Depuis 2004, il y a eu une introduction de vote majoritaire supplémentaire, la création de 8 régions. Ainsi, cela faisait entre 9 et 13 sièges à pourvoir par circonscription, soit de 11 % à 8 % des voies pour avoir un seul député ! Heureusement ce mode disparaît en 2019.</p>
<p>Il y a toujours eu un dédain pour les « petites » listes par les médias et « l'élite », comme si elles n'étaient jamais sérieuses ou représentatives. Les médias moquent la multitude de ces listes, et en même temps, se plaignent du désintérêt des français pour la politique. Curieusement, ils ne font pas de lien entre ces deux faits. Les français s'intéressent bien à la politique mais n'arrivent pas à se faire représenter correctement, et ils se lancent eux-même.</p>
<p>Il existe d'autres obstacles pour ses listes. </p>
<p>Le frein de l'argent :Le seuil de remboursement à 3 % oblige à trouver 300 000€ en bulletin papier et en affiche standard, alors que les gros parties empruntent à une banque qui sera rembourser plus tard. C'est facile pour eux de faire plus de 3 %, beaucoup moins pour ceux qui démarrent. Ce n'est que les dépenses de base, sans aucun meeting, ni tracts.</p>
<p>Le frein réglementaire : même si une nouvelle liste ne peut espérer, dans ses rêves les plus fou, avoir un seul député, il faut produire une liste complète avec suppléant, soit 2*79 personnes à parité homme/femme. Cela peut demander beaucoup d'énergie uniquement pour avoir le droit de déposer sa liste.</p>
<p>Le frein de l'accès au média : en 2014, il y a avait un temps de diffusion égal sur les télévisions, maintenant il sera proportionnel à la composition du parlement national. Impossible pour une nouvelle liste de passer à la télé, sans avoir de transfuge en provenance d'un autre parti.</p>
<p>Les petits partis seront les gros partis de demain. Les partis actuels agissent pour les empêcher d'exister, en niant le coté anti-démocratique de ces manœuvres.</p>
<p>Le parlement européen est la seule assemblée élue à la proportionnelle en France, elle devrait l'être à la proportionnelle réelle, sans seuil à 5 %, ni seuil de remboursement pour les frais de base (bulletin de vote !).</p>
<p><a href="https://fr.wikipedia.org/wiki/%C3%89lections_europ%C3%A9ennes_de_2019_en_France">https://fr.wikipedia.org/wiki/%C3%89lections_europ%C3%A9ennes_de_2019_en_France</a></p>
<div><a href="https://linuxfr.org/users/niconico/journaux/passer-l-election-europeenne-a-la-vraie-proportionnelle.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/116226/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/niconico/journaux/passer-l-election-europeenne-a-la-vraie-proportionnelle#comments">ouvrir dans le navigateur</a>
</p>
Nicolas Boulayhttps://linuxfr.org/nodes/116226/comments.atomtag:linuxfr.org,2005:Diary/383162019-01-15T09:01:40+01:002019-01-17T14:06:56+01:00Passer l'élection présidentielle au scrutin jugement majoritaire.Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Ce mode de scrutin, le jugement majoritaire, permet d'éviter les effets pervers du scrutin actuel. Par exemple, Jospin qui est éliminé du second tour alors que plus de personne le voulaient au second tour que Le Pen. Mais il est impossible de signifier notre « second choix » au premier tour.</p>
<p>On peut voir la même chose avec les 6 % de Hamon qui aurait pu changer le second tour de la dernière présidentielle.</p>
<p>Le problème principal du scrutin actuel est que l'ajout d'un candidat même « petit » peut changer le résultat final, alors que c'est absurde démocratiquement.</p>
<p>Le jugement majoritaire est le seul mode de scrutin qui minimise l'impact du vote stratégique parmi toutes les méthodes qui échappent au paradoxe d'Arrow (retirer ou rajouter un candidat C ne change pas l'ordre entre deux candidats A et B), et au paradoxe de Condorcet (l'ordre entre deux candidats est transitif : il existe toujours un gagnant). </p>
<p>Le vote de Condorcet propose un système de classement, mais pose un paradoxe dans certaine situation. Un peu comme le Brexit où il n'y a aucune solution majoritaire en duel, une à une, entre le No Deal, l'accord, et le Remain.</p>
<p>Le jugement majoritaire a été utilisé en 2016 pour faire une expérience. On voit clairement que Hamon dépasse les 16 %, ainsi on peut voir l'effet du vote stratégique vers Mélanchon dans le vote réel.</p>
<p>Le principe de base est la notation et non le classement des candidats, ce qui permet d'avoir des choix égaux et d'ensuite de prendre le candidat avec la meilleure médiane. En cas d'égalité, on regarde la somme des mentions supérieures et inférieures, le chiffre le plus important décide de la victoire ou de la défaite.</p>
<p>Je propose que l'on passe l'élection présidentielle à ce mode d'élection, pour éviter les effets pervers des divisions et autres manœuvres politiciennes.</p>
<p><a href="https://fr.wikipedia.org/wiki/Jugement_majoritaire">https://fr.wikipedia.org/wiki/Jugement_majoritaire</a><br>
<a href="http://www.college-de-france.fr/site/pierre-rosanvallon/seminar-2012-02-29-10h00.htm">http://www.college-de-france.fr/site/pierre-rosanvallon/seminar-2012-02-29-10h00.htm</a></p>
<div><a href="https://linuxfr.org/users/niconico/journaux/passer-l-election-presidentielle-au-scrutin-jugement-majoritaire.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/116197/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/niconico/journaux/passer-l-election-presidentielle-au-scrutin-jugement-majoritaire#comments">ouvrir dans le navigateur</a>
</p>
Nicolas Boulayhttps://linuxfr.org/nodes/116197/comments.atomtag:linuxfr.org,2005:Diary/378872018-04-13T15:26:53+02:002018-04-13T15:26:53+02:00[HS ou presque] Réduire le chômage ?Licence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Inverser la courbe du chômage aurait pu faire réélire l’ancien Président. Le début de chantage à l’emploie fait plier un gouvernement.</p>
<p>Il existe plusieurs définitions du chômage. La plus commune est celle du bureau international du travail. Avoir des règles communes permet de comparer les états entre eux.</p>
<blockquote>
<p>"En 1982, le BIT a définit le chômeur comme une personne en âge de travailler, soit âgé de 15 ans ou plus, qui remplit trois critères.<br>
Le chômeur doit être sans travail, : il ne doit pas avoir exercé une activité rémunérée au cours de la semaine, ne serait-ce qu’une heure pendant la semaine de référence.<br>
Le chômeur doit être disponible, dans un délai de deux semaines pour occuper un emploi. Dans le cas d’arrêt maladie, la disponibilité est étendue à quatre semaines.<br>
Le chômeur doit être activement à la recherche de travail, au cours des quatre dernières semaines. Il doit ainsi mettre en œuvre des démarches spécifiques, comme se déclarer chômeur ou s’inscrire dans une agence d’intérim." </p>
</blockquote>
<p>Ainsi, un temps très partiel ne compte pas pour être un chômeur, des personnes malades non plus.</p>
<p>Avoir un taux de chômage bas n’implique pas un taux de pauvreté bas, comme c’est le cas en Allemagne. Ce pays a fait le choix des mini-job à 1€/h pour diminuer le chômage, mais pas la pauvreté. En Angleterre, on parle des contrats zéro heure, j’ai même entendu dire qu’il était plus facile de recevoir une aide financière pour longue maladie que de toucher le chômage.</p>
<p>La France a aussi une énorme particularité, c’est sa jeunesse assez nombreuse pour un pays de l’OCDE. Chaque année, des nouveaux jeunes entrent sur le marché du travail. Donc avant de baisser le chômage, les emplois créés sont “absorbés” par ces jeunes. Ils faut en créer encore plus. En France, cela veut dire 100 000 emplois de plus qu’en Allemagne à créer, malgré la taille de population. Et cela implique plus de frais d’éducation.</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f7670733432303137312e6f76682e6e65742f6e61697373616e63652e706e67/naissance.png" alt="naissance" title="Source : http://vps420171.ovh.net/naissance.png"></p>
<p><a href="https://www.google.com/publicdata/explore?ds=mo4pjipima872_&ctype=l&strail=false&bcs=d&nselm=h&met_y=lbirth&scale_y=lin&ind_y=false&rdim=country_group&idim=country:de:fr:uk&idim=country_group:aggregate:non-eu&ifdim=country_group&ind=false">Origine</a></p>
<p>Flexibiliser le marché du travail revient à enlever des protections des salariés pris en charge par leur employeurs, ce qui implique de mettre cette protection à la charge de l’Etat. Dans le cas contraire, c’est un appauvrissement qui nous attend. Si la protection est la charge de l’Etat, cela veut dire des impôts et plus de chômeurs potentiels (si les boites préfèrent débauché plutôt que faire le dos rond pendant les phases de vaches maigres).</p>
<p>Une façon de comparer le niveau d’activité des pays est de prendre l’inverse du chômage, que je trouve plus parlant : le taux d’emplois des 18-65 ans. ( <a href="https://data.oecd.org/fr/emp/taux-d-emploi.htm">src</a> )<br><img src="//img.linuxfr.org/img/687474703a2f2f7670733432303137312e6f76682e6e65742f74617578656d706c6f692e706e67/tauxemploi.png" alt="Taux d'emploi" title="Source : http://vps420171.ovh.net/tauxemploi.png"></p>
<p>On peut voir que les pays qui ont un taux de chômage bas, sont autour de 70%, contre 65% en France. La tranches d’âge est large. Entre 18 et 24 ans, beaucoup sont encore en formation et non aux chômages, et beaucoup des 60-65 ans sont en retraites. Si on prend les 25-54 ans, la France a encore 5 points de moins que les autres (80 vs 85 %).</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f7670733432303137312e6f76682e6e65742f74617578656d706c6f69323535342e706e67/tauxemploi2554.png" alt="Taux d'emploi 25-54 ans" title="Source : http://vps420171.ovh.net/tauxemploi2554.png"></p>
<p>Avec un calcul très à la louche, cela ressemble aux 5 points de chômage en trop de la France par rapport au pays qui s’en sortent le mieux sur ce critère là.</p>
<blockquote>
<p>“Le taux d'emploi d'une classe d'âge se mesure en fonction du nombre des actifs occupés d'un âge donné rapporté à l'effectif total de cette classe d'âge. Les actifs occupés sont les personnes de 15 ans et plus qui, durant la semaine de référence, déclarent avoir effectué un travail rémunéré pendant une heure au moins ou avoir occupé un emploi dont elles étaient absentes. “</p>
</blockquote>
<p>Cela veut dire que si une personne travaille 1h ou 35h dans la semaine, elle est compté de la même façon dans cet indicateur. Or la France a un taux de travail à temps partiel particulièrement bas : France 14.2%, OCDE 16%, Canada 19,2%, Allemagne 22%, Royaume Unis 23.8%, Suisse 27% , Pays Bas 37.7%.</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f7670733432303137312e6f76682e6e65742f74656d70737061727469656c2e706e67/tempspartiel.png" alt="Temps partiel" title="Source : http://vps420171.ovh.net/tempspartiel.png"></p>
<p>Il faudrait définir un taux d’emploi un peu différent, en comptant les heures travaillées. En France, on prendre 35h de travail pour chaque personne. On prend l’effectif total multiplié par 35h, ensuite on additionne les heures effectivement travaillées. Ainsi, un mi-temps compterait effectivement pour une moitié d’emploi.</p>
<p>Si vous savez où trouver les chiffres pour faire le calcul, je suis preneur. Il existe un indicateur qui s’approche de ça. Il mesure le taux de non-emploi, ce qui est l’inverse de l’indicateur précédent. C’est plus vaste que le chômage, car cela inclue aussi les malades, ceux qui ne cherche plus d’emplois, etc…</p>
<p>C’est le journal "Alternative Économiques" qui l’a créé. Ils ont choisi la tranche d'âge 25-60 ans, qui est celle qui n’est ni encore en formation ou en retraite. Ils compte le temps partiel au prorata d’un temps complet pour éviter qu’une heure de travail par semaine compte autant qu’un plein temps dans la statistique. <br><a href="https://www.alternatives-economiques.fr/alternatives-economiques-lance-contre-indicateur-chomage/00080279">src</a></p>
<p>Ils ont fait le même travail pour un grand nombre de pays. La France a ainsi un taux de non-emplois de 27.6% (9.8 % de chômage) au 1er trimestre 2017, le Royaume Unis 28%, l’Allemagne 28.4%, la Suisse 29.7%, Pays Bas 35,4% ! La moyenne de l’union européenne est à 29.3%, et la zone euro à 31,4%.</p>
<p><img src="//img.linuxfr.org/img/687474703a2f2f7670733432303137312e6f76682e6e65742f6e6f6e656d706c6f692e706e67/nonemploi.png" alt="non emploi" title="Source : http://vps420171.ovh.net/nonemploi.png"></p>
<p>Tenir compte des temps partiels fait varier la statistique de 5 à 10 points selon le pays. On retrouve les 5 pts d’écarts avec l’Allemagne et l’Angleterre ou la Suisse. Dans les faits, les français travaillent plus que ces pays là, les différences dans les statistiques du chômage proviennent uniquement de leur très fort taux de travail partiel, surtout féminin d’ailleurs.</p>
<p>Ces différences existent malgré l’existence de salaire minimum très bas dans ces pays-là. Pourquoi s'auto-flageller avec un taux de chômage qui reflète surtout l’existence du travail partiel de nos voisins montrés en exemple ?</p>
<p>Corrélation entre chômage et travail à temps partiel (sans avoir le prorata moyen) :<br><img src="//img.linuxfr.org/img/687474703a2f2f7670733432303137312e6f76682e6e65742f636f7272656c6174696f6e2e706e67/correlation.png" alt="Corrélation" title="Source : http://vps420171.ovh.net/correlation.png"><br><a href="https://www.google.com/publicdata/explore?ds=ltjib1m1uf3pf_&ctype=b&strail=false&bcs=d&nselm=s&met_x=unemplrt_t1&scale_x=lin&ind_x=false&met_y=ptempl_t1&scale_y=lin&ind_y=false&idim=country:CAN:FRA:GBR:DEU:CHE&ifdim=country:country_group:oecd&tunit=Y&pit=1302645600000&ind=false&icfg">src</a></p>
<p><a href="https://www.economist.com/blogs/graphicdetail/2017/11/daily-chart-20?fsrc=scn/tw/te/bl/ed/">Temps moyen passé par les Français avec leur enfants par jour qui permet aussi de voir le temps disponible par personne</a></p>
<p>On en déduirait que pour faire baisser le chômage, il faudrait développer le temps partiel. Mais quel intérêt si c’est pour faire augmenter la pauvreté ?</p><div><a href="https://linuxfr.org/users/niconico/journaux/hs-ou-presque-reduire-le-chomage.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/114233/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/niconico/journaux/hs-ou-presque-reduire-le-chomage#comments">ouvrir dans le navigateur</a>
</p>
Nicolas Boulayhttps://linuxfr.org/nodes/114233/comments.atomtag:linuxfr.org,2005:Diary/377802018-03-06T12:27:03+01:002018-03-06T13:50:13+01:00 Portage de TapTempo en GolangLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Après tous les autres portages, voici la version Golang. J’essaye de montrer la simplicité du code, même si je gère une file à la main. </p>
<p>On voit le package simple de gestion d'options de ligne de commande (flag) et la gestion du temps(time). Je montre aussi la gestion d'un slice (issue du make) pour faire la file.</p>
<p>On vois aussi l'usage de init() qui est un fonction des packages exécutées avant la fonction main(). Il n'y a pas d'exemple d'objet ou de typage par les méthodes, le code étant trop simple.</p>
<pre><code class="go"> <span class="kn">package</span> <span class="nx">main</span>
<span class="kn">import</span> <span class="p">(</span>
<span class="s">"flag"</span>
<span class="s">"fmt"</span>
<span class="s">"time"</span>
<span class="s">"bufio"</span>
<span class="s">"os"</span>
<span class="p">)</span>
<span class="kd">var</span> <span class="nx">precision</span> <span class="kt">int</span>
<span class="kd">var</span> <span class="nx">reset</span> <span class="kt">int</span>
<span class="kd">var</span> <span class="nx">sample</span> <span class="kt">int</span>
<span class="kd">var</span> <span class="nx">version</span> <span class="kt">bool</span>
<span class="kd">var</span> <span class="nx">cur_version</span> <span class="p">=</span> <span class="s">"a02"</span>
<span class="kd">func</span> <span class="nx">init</span><span class="p">()</span> <span class="p">{</span>
<span class="nx">usage</span> <span class="o">:=</span> <span class="s">"changer le nombre de décimale du tempo à afficher la valeur par défaut est 0 décimales, le max est 5 décimales"</span>
<span class="nx">flag</span><span class="p">.</span><span class="nx">IntVar</span><span class="p">(</span><span class="o">&</span><span class="nx">precision</span><span class="p">,</span> <span class="s">"precision"</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="nx">usage</span><span class="p">)</span>
<span class="nx">flag</span><span class="p">.</span><span class="nx">IntVar</span><span class="p">(</span><span class="o">&</span><span class="nx">precision</span><span class="p">,</span> <span class="s">"p"</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="nx">usage</span> <span class="o">+</span> <span class="s">" (shorthand)"</span><span class="p">)</span>
<span class="nx">usage</span> <span class="p">=</span> <span class="s">"changer le nombre d'échantillons nécessaires au calcul du tempo la valeur par défaut est 5 échantillons"</span>
<span class="nx">flag</span><span class="p">.</span><span class="nx">IntVar</span><span class="p">(</span><span class="o">&</span><span class="nx">sample</span><span class="p">,</span> <span class="s">"sample"</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="nx">usage</span><span class="p">)</span>
<span class="nx">flag</span><span class="p">.</span><span class="nx">IntVar</span><span class="p">(</span><span class="o">&</span><span class="nx">sample</span><span class="p">,</span> <span class="s">"s"</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="nx">usage</span> <span class="o">+</span> <span class="s">" (shorthand)"</span><span class="p">)</span>
<span class="nx">usage</span> <span class="p">=</span> <span class="s">"afficher la version"</span>
<span class="nx">flag</span><span class="p">.</span><span class="nx">BoolVar</span><span class="p">(</span><span class="o">&</span><span class="nx">version</span><span class="p">,</span> <span class="s">"version"</span><span class="p">,</span> <span class="kc">false</span><span class="p">,</span> <span class="nx">usage</span><span class="p">)</span>
<span class="nx">flag</span><span class="p">.</span><span class="nx">BoolVar</span><span class="p">(</span><span class="o">&</span><span class="nx">version</span><span class="p">,</span> <span class="s">"v"</span><span class="p">,</span> <span class="kc">false</span><span class="p">,</span> <span class="nx">usage</span> <span class="o">+</span> <span class="s">" (shorthand)"</span><span class="p">)</span>
<span class="p">}</span>
<span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
<span class="nx">flag</span><span class="p">.</span><span class="nx">Parse</span><span class="p">()</span>
<span class="k">if</span> <span class="nx">version</span> <span class="p">{</span>
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"Version %v\n"</span><span class="p">,</span><span class="nx">cur_version</span><span class="p">)</span>
<span class="k">return</span>
<span class="p">}</span>
<span class="nb">print</span><span class="p">(</span><span class="s">"Hit enter key for each beat (q to quit).\n"</span><span class="p">)</span>
<span class="nx">times</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">([]</span><span class="nx">time</span><span class="p">.</span><span class="nx">Time</span><span class="p">,</span><span class="nx">sample</span><span class="p">)</span>
<span class="nx">scanner</span> <span class="o">:=</span> <span class="nx">bufio</span><span class="p">.</span><span class="nx">NewScanner</span><span class="p">(</span><span class="nx">os</span><span class="p">.</span><span class="nx">Stdin</span><span class="p">)</span>
<span class="kd">var</span> <span class="nx">text</span> <span class="kt">string</span>
<span class="k">for</span> <span class="nx">text</span> <span class="o">!=</span> <span class="s">"q"</span> <span class="p">{</span>
<span class="nx">scanner</span><span class="p">.</span><span class="nx">Scan</span><span class="p">()</span>
<span class="nx">text</span> <span class="p">=</span> <span class="nx">scanner</span><span class="p">.</span><span class="nx">Text</span><span class="p">()</span>
<span class="nb">copy</span><span class="p">(</span><span class="nx">times</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="nx">sample</span><span class="p">],</span><span class="nx">times</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="nx">sample</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
<span class="nx">times</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="p">=</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Now</span><span class="p">()</span>
<span class="kd">var</span> <span class="nx">sum</span> <span class="kt">float64</span>
<span class="k">for</span> <span class="nx">i</span> <span class="o">:=</span> <span class="mi">1</span><span class="p">;</span> <span class="nx">i</span> <span class="p"><</span> <span class="nx">sample</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">{</span>
<span class="nx">sum</span> <span class="o">+=</span> <span class="nx">times</span><span class="p">[</span><span class="nx">i</span><span class="o">-</span><span class="mi">1</span><span class="p">].</span><span class="nx">Sub</span><span class="p">(</span><span class="nx">times</span><span class="p">[</span><span class="nx">i</span><span class="p">]).</span><span class="nx">Seconds</span><span class="p">()</span>
<span class="p">}</span>
<span class="nx">means</span> <span class="o">:=</span> <span class="nx">sum</span> <span class="o">/</span> <span class="nb">float64</span><span class="p">(</span><span class="nx">sample</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span>
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"Tempo : %.[2]*[1]f"</span><span class="p">,</span> <span class="mi">60</span> <span class="o">/</span> <span class="nx">means</span><span class="p">,</span> <span class="nx">precision</span><span class="p">)</span>
<span class="p">}</span>
<span class="p">}</span></code></pre><div><a href="https://linuxfr.org/users/niconico/journaux/portage-de-taptempo-en-golang.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/113882/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/niconico/journaux/portage-de-taptempo-en-golang#comments">ouvrir dans le navigateur</a>
</p>
Nicolas Boulayhttps://linuxfr.org/nodes/113882/comments.atomtag:linuxfr.org,2005:Diary/377442018-02-16T12:04:07+01:002018-02-16T12:04:07+01:00Quel IDE pour quel langageLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Il y a trop longtemps, le débat sur les IDE se cristallisait entre VI et EMACS. Sur l'un, il fallait appuyer sur 3 touche en même temps, l'autre l'une à la suite de l'autre.</p>
<p>Par hasard, j'ai appris Emacs, et changer de réflexe sur les raccourcis est très compliqué (genre ctrl-x rt). J'ai beaucoup codé en C, et ocaml et perl dessus avec succès.</p>
<p>Puis j'ai fait du Java avec Eclipse. Il me manquait une tonne de fonctionnalité d'édition de base par rapport à Emacs, mais se rajoutait un des fonctions nouvelles très puissantes, comme l'auto-complétion depuis les library, qui suivait le typage et la syntaxe, la documentation par le survol (pas besoin d'aller chercher un fichier particuliers), le reformatage de code (factorisation de fonction depuis un bout de code). De retour sous Emacs, tout cela me manque.</p>
<p>J'ai fais aussi un détour sous Visual Studio pour le C++, où la navigation entre fichier (clic d'une fonction pour avoir sa déclaration), et le debuging visuelle était vraiment agréable.</p>
<p>Depuis que je code en go, j'aime de moins en moins Emacs, et sa tonne de fonction dont il faut se rappeler le nom pour les utiliser, si encore on sait qu'elle existe genre "global-auto-revert-mode".</p>
<p>Dans la grande étude de codingame, il parle des IDE préférés de leur codeur. cf : <a href="http://publications.codingame.com/codingame-2018-developer-survey/what-developers-want">http://publications.codingame.com/codingame-2018-developer-survey/what-developers-want</a></p>
<p>J'ai du mal à imaginer un IDE sans associer le langage qui va avec. Le support de C++ dans Eclipse n'est pas du tout au même niveau que le Java, par exemple.</p>
<p><a href="https://www.visualstudio.com/">Visual Studio</a> 42% Univers Microsoft<br><a href="https://www.jetbrains.com/idea/">IntelliJ</a> 30% Java<br><a href="https://code.visualstudio.com/">Visual Studio Code</a> 27% de tout <br><a href="https://www.eclipse.org/">Eclipse</a> 25% Java<br><a href="https://atom.io/">Atom</a> 16% de tout<br><a href="https://www.jetbrains.com/pycharm/">PyCharm</a> 15% Python<br><a href="https://netbeans.org/">NetBeans</a> 9% Java ?<br><a href="https://www.jetbrains.com/phpstorm/">PhpStorm</a> 7% PHP<br><a href="http://www.codeblocks.org/">Code::Blocks</a> 7% C/C++/fortran<br><a href="https://developer.apple.com/xcode/">Xcode</a> 6% Univers Apple<br><a href="https://aws.amazon.com/cloud9/">Cloud9</a> 3% de tout dans le cloud <br>
Other 16%</p>
<p>(désolé pour le vrac mais linuxfr ne supporte pas le fait d'embarquer des bouts de code externe :/)</p>
<p>Pour vous quel sont les couples "ultimes" IDE-langage ? Qu'est-ce que vous conseillez ? Qu'est-ce que vous déconseillez formellement ?</p><div><a href="https://linuxfr.org/users/niconico/journaux/quel-ide-pour-quel-langage.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/113755/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/niconico/journaux/quel-ide-pour-quel-langage#comments">ouvrir dans le navigateur</a>
</p>
Nicolas Boulayhttps://linuxfr.org/nodes/113755/comments.atom