Repository with sources and generator of https://larlet.fr/david/ https://larlet.fr/david/
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

index.html 12KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. <!doctype html>
  2. <html lang=fr>
  3. <head>
  4. <!-- Always define the charset before the title -->
  5. <meta charset=utf-8>
  6. <title>C&#39;est l&#39;été, profitez-en pour dégraisser votre OPML ! — Biologeek — David Larlet</title>
  7. <!-- Define a viewport to mobile devices to use - telling the browser to assume that the page is as wide as the device (width=device-width) and setting the initial page zoom level to be 1 (initial-scale=1.0) -->
  8. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  9. <!-- Fake favicon, to avoid extra request to the server -->
  10. <link rel="icon" href="data:;base64,iVBORw0KGgo=">
  11. <link type="application/atom+xml" rel="alternate" title="Feed" href="/david/log/" />
  12. <link rel="manifest" href="/manifest.json">
  13. <link rel="stylesheet" href="/static/david/css/larlet-david-_J6Rv.css" data-instant-track />
  14. <noscript>
  15. <style type="text/css">
  16. /* Otherwise fonts are loaded by JS for faster initial rendering. See scripts at the bottom. */
  17. body {
  18. font-family: 'EquityTextB', serif;
  19. }
  20. h1, h2, h3, h4, h5, h6, time, nav a, nav a:link, nav a:visited {
  21. font-family: 'EquityCapsB', sans-serif;
  22. font-variant: normal;
  23. }
  24. </style>
  25. </noscript>
  26. <!-- Canonical URL for SEO purposes -->
  27. <link rel="canonical" href="https://larlet.fr/david/biologeek/archives/20050726-cest-lete-profitez-en-pour-degraisser-votre-opml">
  28. </head>
  29. <body>
  30. <div>
  31. <header>
  32. <nav>
  33. <p>
  34. <small>
  35. Je suis <a href="/david/" title="Profil public">David Larlet</a>, <a href="/david/pro/" title="Activité professionnelle">artisan</a> du web qui vous <a href="/david/pro/accompagnement/" title="Activité d’accompagnement">accompagne</a><span class="more-infos"> dans l’acquisition de savoirs pour concevoir des <a href="/david/pro/produits-essentiels/" title="Qu’est-ce qu’un produit essentiel ?">produits essentiels</a></span>. <span class="more-more-infos">Discutons ensemble d’une <a href="/david/pro/devis/" title="En savoir plus">non-demande de devis</a>.</span> Je partage ici mes <a href="/david/blog/" title="Expériences bienveillantes">réflexions</a> et <a href="/david/correspondances/2017/" title="Lettres hebdomadaires">correspondances</a>.
  36. </small>
  37. </p>
  38. </nav>
  39. </header>
  40. <section>
  41. <h1 property="schema:name">C&#39;est l&#39;été, profitez-en pour dégraisser votre OPML !</h1>
  42. <article typeof="schema:BlogPosting">
  43. <div property="schema:articleBody">
  44. <p>Réalisé au départ pour <a href="http://niko.informatif.org/">[NikO]</a>, ce script permet de supprimer les fils <abbr title="RDF Site Summary">RSS</abbr> en double contenus dans un fichier <abbr title="Outline Processor Markup Language">OPML</abbr> ce qui arrive fréquemment lorsque l'on dépasse les 1000 fils paraît-il (à moins d'utiliser un aggrégateur qui le détecte bien entendu). Je ne sais pas si ça va servir à plus de trois personnes, vos idées sont les bienvenues et me motiveront pour continuer, n'hésitez pas à demander des fonctionnalités.</p>
  45. <h2>Qu'est ce que c'est tout ça&nbsp;?</h2>
  46. <p>Bon a priori si vous ne savez pas ce que c'est, il est probable que ce programme ne vous servira pas à grand chose. Un fil <abbr title="RDF Site Summary">RSS</abbr> est un fichier généré à chaque mise à jour d'un site dans un format adapté permettant à un utilisateur de le télécharger régulièrement de façon à être tenu au courant de l'évolution du site en question. Il existe des programmes appelés aggrégateurs permettant d'exploiter ces fils, une description plus poussée de la technologie sera disponible prochainement sur ce site. Ces aggrégateurs génèrent des fichiers <abbr title="Outline Processor Markup Language">OPML</abbr> (bien souvent de sauvegarde) contenant l'ensemble des fils auquels vous êtes abonnés. Le script proposé ici permet de supprimer les fils que vous avez inclus en double dans votre aggrégateur.</p>
  47. <h2>Utilisation</h2>
  48. <p>Pour l'instant ça se passe en ligne de commande, il suffit de taper après avoir rendu le fichier <strong>opml2uniq.py</strong> executable&nbsp;:</p>
  49. <pre>./opml2uniq.py -i &lt;votre-ficher&gt;.opml</pre>
  50. <p>Pour obtenir la totalité des options, l'inévitable option <strong>-h</strong> est à votre service.</p>
  51. <p>La version 1.1 du script est sous licence <abbr title="GNU General Public License">GPL</abbr> et <a href="#">librement téléchargeable</a>.</p>
  52. <h2>Développement</h2>
  53. <p>Concrêtement, ce script ne va pas servir à grand monde je pense mais c'était aussi une façon de progresser en python et d'avoir sous la main un template pour des petits projets rapides. J'ai essayé de respecter les bonnes pratiques d'usage pour développer en python, n'hésitez pas à lire <a href="http://afpy.org/Members/tarek/afpynews.2005-07-20.9909576159">la présentation donnée aux <abbr title="Rencontres Mondiales Logiciels Libres">RMLL</abbr> à ce sujet</a>. Concernant le code et sa lisibilité justement, n'hésitez pas à critiquer, je suis encore débutant et ne demande qu'à progresser ;-).</p>
  54. <p>En fait, l'étape suivante du script serait de réaliser <del>une sorte d'<strong><abbr title="Outline Processor Markup Language">OPML</abbr> manager graphique</strong> qui pourrait ensuite évoluer vers</del> un aggrégateur (en cours de réflexion/développement car tous ceux que j'ai pu tester ne m'ont pas convenu). Je me suis donc lancé à la fois dans Gtk et dans <abbr title="Document Object Model">DOM</abbr> (oui pour l'instant le script n'utilise pas le module <abbr title="eXtensible Markup Language">XML</abbr>) et j'ai inévitablement été attiré par la présentation de python et <abbr title="eXtensible Markup Language">XML</abbr> donnée aux <abbr title="Rencontres Mondiales Logiciels Libres">RMLL</abbr> et là je dois dire que j'ai été choqué par les captures montrées, je crois vraiment qu'il est temps de développer des outils qui soient à la fois fonctionnels ET esthétiques&nbsp;! Comment passer toute sa journée sur&nbsp;:</p>
  55. <p><img src="/static/david/biologeek/images/presentation_emacs.png" alt="Capture emacs" style="display:block; margin:0 auto;" /></p>
  56. <p>alors qu'il est possible de travailler avec&nbsp;:</p>
  57. <p><img src="/static/david/biologeek/images/opml2uniq_scite.png" alt="Capture scite" style="display:block; margin:0 auto;" /></p>
  58. <p>Loin de moi l'idée de lancer un énième troll vi/emacs/scite mais ça ne vous choque pas la laideur d'emacs (ou alors je ne suis pas encore assez barbu :D)&nbsp;? Et puisque nous en sommes à ce type de considérations, quel est votre outil de développement en python&nbsp;? Vous l'aurez compris en ce moment j'utilise scite qui une fois <a href="#">bien configuré</a> s'avère très puissant.</p>
  59. </div>
  60. </article>
  61. <footer>
  62. <h6 property="schema:datePublished">— 26/07/2005</h6>
  63. </footer>
  64. </section>
  65. <section>
  66. <div>
  67. <h3>Articles peut-être en rapport</h3>
  68. <ul>
  69. <li><a href="/david/biologeek/archives/20080613-artiste-qui-sommeille-en-chaque-geek/" title="Accès à ★ L&#39;artiste qui sommeille en chaque geek">★ L&#39;artiste qui sommeille en chaque geek</a></li>
  70. <li><a href="/david/biologeek/archives/20070609-l-intelligence-economique-veillle-technologique-en-pratique/" title="Accès à L&#39;intelligence économique (veille technologique) en pratique">L&#39;intelligence économique (veille technologique) en pratique</a></li>
  71. <li><a href="/david/biologeek/archives/20060802-pour-en-finir-avec-les-mot-de-passe-oublie/" title="Accès à Pour en finir avec les « Mot de passe oublié ? »">Pour en finir avec les « Mot de passe oublié ? »</a></li>
  72. </ul>
  73. </div>
  74. </section>
  75. <section>
  76. <div id="comments">
  77. <h3>Commentaires</h3>
  78. <div class="comment" typeof="schema:UserComments">
  79. <p class="comment-meta">
  80. <span class="comment-author" property="schema:creator">mat</span> le <span class="comment-date" property="schema:commentTime">26/07/2005</span> :
  81. </p>
  82. <div class="comment-content" property="schema:commentText">
  83. <p>Un scite bien configuré doit au moins inclure toolbar.usestockicons = 1, ou utiliser mon patch qui est en pleine refonte :-)</p>
  84. </div>
  85. </div>
  86. <div class="comment" typeof="schema:UserComments">
  87. <p class="comment-meta">
  88. <span class="comment-author" property="schema:creator">S.F.</span> le <span class="comment-date" property="schema:commentTime">26/07/2005</span> :
  89. </p>
  90. <div class="comment-content" property="schema:commentText">
  91. <p>Une gestion moins stricte des catégories ? Actuellement ce n'est pas possible de lister les fils à propos d'un sujet précis, mais uniquement par catégorie. Que faire si je veux parcourir les carnets dédiés à ubuntu, alors que ce site est dans la catégorie &quot;Bio-Informatique&quot; ?</p>
  92. </div>
  93. </div>
  94. <div class="comment" typeof="schema:UserComments">
  95. <p class="comment-meta">
  96. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">28/07/2005</span> :
  97. </p>
  98. <div class="comment-content" property="schema:commentText">
  99. <p>@mat : j'attends la refonte ;)<br />
  100. <br />
  101. @nud : je ne crois pas que l'opml supporte les tags, je vais voir s'il est possible de contourner ça...</p>
  102. </div>
  103. </div>
  104. <div class="comment" typeof="schema:UserComments">
  105. <p class="comment-meta">
  106. <span class="comment-author" property="schema:creator">Play</span> le <span class="comment-date" property="schema:commentTime">30/07/2005</span> :
  107. </p>
  108. <div class="comment-content" property="schema:commentText">
  109. <p>Python, c'est le bien. Thanks pour ce script. Je ne l'ai pas encore testé mais l'idée est là. Tiens-nous au courant de tes développements ! Perso, j'utilise Vim/Cream en &quot;noexpandtab&quot; avec un tabstop de 4 ou 8 en fonction de la lourdeur du code.</p>
  110. </div>
  111. </div>
  112. <div class="comment" typeof="schema:UserComments">
  113. <p class="comment-meta">
  114. <span class="comment-author" property="schema:creator">David, biologeek</span> le <span class="comment-date" property="schema:commentTime">13/08/2005</span> :
  115. </p>
  116. <div class="comment-content" property="schema:commentText">
  117. <p>Salut Play,<br />
  118. <br />
  119. Tiens tiens, pour quelqu'un qui ne jurait que par Perl ;)<br />
  120. Ok pour ta config, il faut que je teste plus en profondeur vim, par contre je te conseille 4 espaces pour l'indentation, c'est ce qui est &quot;standard&quot; en python.</p>
  121. </div>
  122. </div>
  123. <div class="comment" typeof="schema:UserComments">
  124. <p class="comment-meta">
  125. <span class="comment-author" property="schema:creator">bistouri</span> le <span class="comment-date" property="schema:commentTime">24/08/2005</span> :
  126. </p>
  127. <div class="comment-content" property="schema:commentText">
  128. <p>Merci pour le script, j'ai quelques fichiers OPML qui seront très heureux de faire un petit régime. :)</p>
  129. </div>
  130. </div>
  131. </div>
  132. </section>
  133. <footer>
  134. <nav>
  135. <p>
  136. <small>
  137. Je réponds quasiment toujours aux <a href="m&#x61;ilto:d&#x61;vid%40l&#x61;rlet&#46;fr" title="Envoyer un email">emails</a> (<a href="/david/signature/" title="Ma signature actuelle avec possibilité de chiffrement">signés</a>) et vous pouvez me rencontrer à Montréal. <span class="more-infos">N’hésitez pas à <a href="/david/log/" title="Être tenu informé des mises à jour">vous abonner</a> pour être tenu informé des publications récentes.</span>
  138. </small>
  139. </p>
  140. </nav>
  141. </footer>
  142. </div>
  143. <script src="/static/david/js/larlet-david-3ee43f.js" data-no-instant></script>
  144. <script data-no-instant>InstantClick.init()</script>
  145. </body>
  146. </html>