A place to cache linked articles (think custom and personal wayback machine)
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

index.html 35KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638
  1. <!doctype html><!-- This is a valid HTML5 document. -->
  2. <!-- Screen readers, SEO, extensions and so on. -->
  3. <html lang=fr>
  4. <!-- Has to be within the first 1024 bytes, hence before the <title>
  5. See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
  6. <meta charset=utf-8>
  7. <!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
  8. <!-- The viewport meta is quite crowded and we are responsible for that.
  9. See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
  10. <meta name=viewport content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no">
  11. <!-- Required to make a valid HTML5 document. -->
  12. <title>Syndication mon amour (archive) — David Larlet</title>
  13. <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
  14. <link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons/apple-touch-icon.png">
  15. <link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons/favicon-32x32.png">
  16. <link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons/favicon-16x16.png">
  17. <link rel="manifest" href="/manifest.json">
  18. <link rel="mask-icon" href="/static/david/icons/safari-pinned-tab.svg" color="#5bbad5">
  19. <link rel="shortcut icon" href="/static/david/icons/favicon.ico">
  20. <meta name="apple-mobile-web-app-title" content="David Larlet">
  21. <meta name="application-name" content="David Larlet">
  22. <meta name="msapplication-TileColor" content="#da532c">
  23. <meta name="msapplication-config" content="/static/david/icons/browserconfig.xml">
  24. <meta name="theme-color" content="#f0f0ea">
  25. <!-- That good ol' feed, subscribe :p. -->
  26. <link rel=alternate type="application/atom+xml" title=Feed href="/david/log/">
  27. <meta name="robots" content="noindex, nofollow">
  28. <meta content="origin-when-cross-origin" name="referrer">
  29. <!-- Canonical URL for SEO purposes -->
  30. <link rel="canonical" href="https://openweb.eu.org/articles/syndication-mon-amour">
  31. <style>
  32. /* http://meyerweb.com/eric/tools/css/reset/ */
  33. html, body, div, span,
  34. h1, h2, h3, h4, h5, h6, p, blockquote, pre,
  35. a, abbr, address, big, cite, code,
  36. del, dfn, em, img, ins,
  37. small, strike, strong, tt, var,
  38. dl, dt, dd, ol, ul, li,
  39. fieldset, form, label, legend,
  40. table, caption, tbody, tfoot, thead, tr, th, td,
  41. article, aside, canvas, details, embed,
  42. figure, figcaption, footer, header, hgroup,
  43. menu, nav, output, ruby, section, summary,
  44. time, mark, audio, video {
  45. margin: 0;
  46. padding: 0;
  47. border: 0;
  48. font-size: 100%;
  49. font: inherit;
  50. vertical-align: baseline;
  51. }
  52. /* HTML5 display-role reset for older browsers */
  53. article, aside, details, figcaption, figure,
  54. footer, header, hgroup, menu, nav, section { display: block; }
  55. body { line-height: 1; }
  56. blockquote, q { quotes: none; }
  57. blockquote:before, blockquote:after,
  58. q:before, q:after {
  59. content: '';
  60. content: none;
  61. }
  62. table {
  63. border-collapse: collapse;
  64. border-spacing: 0;
  65. }
  66. /* http://practicaltypography.com/equity.html */
  67. /* https://calendar.perfplanet.com/2016/no-font-face-bulletproof-syntax/ */
  68. /* https://www.filamentgroup.com/lab/js-web-fonts.html */
  69. @font-face {
  70. font-family: 'EquityTextB';
  71. src: url('/static/david/css/fonts/Equity-Text-B-Regular-webfont.woff2') format('woff2'),
  72. url('/static/david/css/fonts/Equity-Text-B-Regular-webfont.woff') format('woff');
  73. font-weight: 300;
  74. font-style: normal;
  75. font-display: swap;
  76. }
  77. @font-face {
  78. font-family: 'EquityTextB';
  79. src: url('/static/david/css/fonts/Equity-Text-B-Italic-webfont.woff2') format('woff2'),
  80. url('/static/david/css/fonts/Equity-Text-B-Italic-webfont.woff') format('woff');
  81. font-weight: 300;
  82. font-style: italic;
  83. font-display: swap;
  84. }
  85. @font-face {
  86. font-family: 'EquityTextB';
  87. src: url('/static/david/css/fonts/Equity-Text-B-Bold-webfont.woff2') format('woff2'),
  88. url('/static/david/css/fonts/Equity-Text-B-Bold-webfont.woff') format('woff');
  89. font-weight: 700;
  90. font-style: normal;
  91. font-display: swap;
  92. }
  93. @font-face {
  94. font-family: 'ConcourseT3';
  95. src: url('/static/david/css/fonts/concourse_t3_regular-webfont-20190806.woff2') format('woff2'),
  96. url('/static/david/css/fonts/concourse_t3_regular-webfont-20190806.woff') format('woff');
  97. font-weight: 300;
  98. font-style: normal;
  99. font-display: swap;
  100. }
  101. /* http://practice.typekit.com/lesson/caring-about-opentype-features/ */
  102. body {
  103. /* http://www.cssfontstack.com/ Palatino 99% Win 86% Mac */
  104. font-family: "EquityTextB", Palatino, serif;
  105. background-color: #f0f0ea;
  106. color: #07486c;
  107. font-kerning: normal;
  108. -moz-osx-font-smoothing: grayscale;
  109. -webkit-font-smoothing: subpixel-antialiased;
  110. text-rendering: optimizeLegibility;
  111. font-variant-ligatures: common-ligatures contextual;
  112. font-feature-settings: "kern", "liga", "clig", "calt";
  113. }
  114. pre, code, kbd, samp, var, tt {
  115. font-family: 'TriplicateT4c', monospace;
  116. }
  117. em {
  118. font-style: italic;
  119. color: #323a45;
  120. }
  121. strong {
  122. font-weight: bold;
  123. color: black;
  124. }
  125. nav {
  126. background-color: #323a45;
  127. color: #f0f0ea;
  128. display: flex;
  129. justify-content: space-around;
  130. padding: 1rem .5rem;
  131. }
  132. nav:last-child {
  133. border-bottom: 1vh solid #2d7474;
  134. }
  135. nav a {
  136. color: #f0f0ea;
  137. }
  138. nav abbr {
  139. border-bottom: 1px dotted white;
  140. }
  141. h1 {
  142. border-top: 1vh solid #2d7474;
  143. border-bottom: .2vh dotted #2d7474;
  144. background-color: #e3e1e1;
  145. color: #323a45;
  146. text-align: center;
  147. padding: 5rem 0 4rem 0;
  148. width: 100%;
  149. font-family: 'ConcourseT3';
  150. display: flex;
  151. flex-direction: column;
  152. }
  153. h1.single {
  154. padding-bottom: 10rem;
  155. }
  156. h1 span {
  157. position: absolute;
  158. top: 1vh;
  159. left: 20%;
  160. line-height: 0;
  161. }
  162. h1 span a {
  163. line-height: 1.7;
  164. padding: 1rem 1.2rem .6rem 1.2rem;
  165. border-radius: 0 0 6% 6%;
  166. background: #2d7474;
  167. font-size: 1.3rem;
  168. color: white;
  169. text-decoration: none;
  170. }
  171. h2 {
  172. margin: 4rem 0 1rem;
  173. border-top: .2vh solid #2d7474;
  174. padding-top: 1vh;
  175. }
  176. h3 {
  177. text-align: center;
  178. margin: 3rem 0 .75em;
  179. }
  180. hr {
  181. height: .4rem;
  182. width: .4rem;
  183. border-radius: .4rem;
  184. background: #07486c;
  185. margin: 2.5rem auto;
  186. }
  187. time {
  188. display: bloc;
  189. margin-left: 0 !important;
  190. }
  191. ul, ol {
  192. margin: 2rem;
  193. }
  194. ul {
  195. list-style-type: square;
  196. }
  197. a {
  198. text-decoration-skip-ink: auto;
  199. text-decoration-thickness: 0.05em;
  200. text-underline-offset: 0.09em;
  201. }
  202. article {
  203. max-width: 50rem;
  204. display: flex;
  205. flex-direction: column;
  206. margin: 2rem auto;
  207. }
  208. article.single {
  209. border-top: .2vh dotted #2d7474;
  210. margin: -6rem auto 1rem auto;
  211. background: #f0f0ea;
  212. padding: 2rem;
  213. }
  214. article p:last-child {
  215. margin-bottom: 1rem;
  216. }
  217. p {
  218. padding: 0 .5rem;
  219. margin-left: 3rem;
  220. }
  221. p + p,
  222. figure + p {
  223. margin-top: 2rem;
  224. }
  225. blockquote {
  226. background-color: #e3e1e1;
  227. border-left: .5vw solid #2d7474;
  228. display: flex;
  229. flex-direction: column;
  230. align-items: center;
  231. padding: 1rem;
  232. margin: 1.5rem;
  233. }
  234. blockquote cite {
  235. font-style: italic;
  236. }
  237. blockquote p {
  238. margin-left: 0;
  239. }
  240. figure {
  241. border-top: .2vh solid #2d7474;
  242. background-color: #e3e1e1;
  243. text-align: center;
  244. padding: 1.5rem 0;
  245. margin: 1rem 0 0;
  246. font-size: 1.5rem;
  247. width: 100%;
  248. }
  249. figure img {
  250. max-width: 250px;
  251. max-height: 250px;
  252. border: .5vw solid #323a45;
  253. padding: 1px;
  254. }
  255. figcaption {
  256. padding: 1rem;
  257. line-height: 1.4;
  258. }
  259. aside {
  260. display: flex;
  261. flex-direction: column;
  262. background-color: #e3e1e1;
  263. padding: 1rem 0;
  264. border-bottom: .2vh solid #07486c;
  265. }
  266. aside p {
  267. max-width: 50rem;
  268. margin: 0 auto;
  269. }
  270. /* https://fvsch.com/code/css-locks/ */
  271. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  272. font-size: 1rem;
  273. line-height: calc( 1.5em + 0.2 * 1rem );
  274. }
  275. h1 {
  276. font-size: 1.9rem;
  277. line-height: calc( 1.2em + 0.2 * 1rem );
  278. }
  279. h2 {
  280. font-size: 1.6rem;
  281. line-height: calc( 1.3em + 0.2 * 1rem );
  282. }
  283. h3 {
  284. font-size: 1.35rem;
  285. line-height: calc( 1.4em + 0.2 * 1rem );
  286. }
  287. @media (min-width: 20em) {
  288. /* The (100vw - 20rem) / (50 - 20) part
  289. resolves to 0-1rem, depending on the
  290. viewport width (between 20em and 50em). */
  291. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  292. font-size: calc( 1rem + .6 * (100vw - 20rem) / (50 - 20) );
  293. line-height: calc( 1.5em + 0.2 * (100vw - 50rem) / (20 - 50) );
  294. margin-left: 0;
  295. }
  296. h1 {
  297. font-size: calc( 1.9rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  298. line-height: calc( 1.2em + 0.2 * (100vw - 50rem) / (20 - 50) );
  299. }
  300. h2 {
  301. font-size: calc( 1.5rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  302. line-height: calc( 1.3em + 0.2 * (100vw - 50rem) / (20 - 50) );
  303. }
  304. h3 {
  305. font-size: calc( 1.35rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  306. line-height: calc( 1.4em + 0.2 * (100vw - 50rem) / (20 - 50) );
  307. }
  308. }
  309. @media (min-width: 50em) {
  310. /* The right part of the addition *must* be a
  311. rem value. In this example we *could* change
  312. the whole declaration to font-size:2.5rem,
  313. but if our baseline value was not expressed
  314. in rem we would have to use calc. */
  315. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  316. font-size: calc( 1rem + .6 * 1rem );
  317. line-height: 1.5em;
  318. }
  319. p, li, pre, details {
  320. margin-left: 3rem;
  321. }
  322. h1 {
  323. font-size: calc( 1.9rem + 1.5 * 1rem );
  324. line-height: 1.2em;
  325. }
  326. h2 {
  327. font-size: calc( 1.5rem + 1.5 * 1rem );
  328. line-height: 1.3em;
  329. }
  330. h3 {
  331. font-size: calc( 1.35rem + 1.5 * 1rem );
  332. line-height: 1.4em;
  333. }
  334. figure img {
  335. max-width: 500px;
  336. max-height: 500px;
  337. }
  338. }
  339. figure.unsquared {
  340. margin-bottom: 1.5rem;
  341. }
  342. figure.unsquared img {
  343. height: inherit;
  344. }
  345. @media print {
  346. body { font-size: 100%; }
  347. a:after { content: " (" attr(href) ")"; }
  348. a, a:link, a:visited, a:after {
  349. text-decoration: underline;
  350. text-shadow: none !important;
  351. background-image: none !important;
  352. background: white;
  353. color: black;
  354. }
  355. abbr[title] { border-bottom: 0; }
  356. abbr[title]:after { content: " (" attr(title) ")"; }
  357. img { page-break-inside: avoid; }
  358. @page { margin: 2cm .5cm; }
  359. h1, h2, h3 { page-break-after: avoid; }
  360. p3 { orphans: 3; widows: 3; }
  361. img {
  362. max-width: 250px !important;
  363. max-height: 250px !important;
  364. }
  365. nav, aside { display: none; }
  366. }
  367. ul.with_columns {
  368. column-count: 1;
  369. }
  370. @media (min-width: 20em) {
  371. ul.with_columns {
  372. column-count: 2;
  373. }
  374. }
  375. @media (min-width: 50em) {
  376. ul.with_columns {
  377. column-count: 3;
  378. }
  379. }
  380. ul.with_two_columns {
  381. column-count: 1;
  382. }
  383. @media (min-width: 20em) {
  384. ul.with_two_columns {
  385. column-count: 1;
  386. }
  387. }
  388. @media (min-width: 50em) {
  389. ul.with_two_columns {
  390. column-count: 2;
  391. }
  392. }
  393. .gallery {
  394. display: flex;
  395. flex-wrap: wrap;
  396. justify-content: space-around;
  397. }
  398. .gallery figure img {
  399. margin-left: 1rem;
  400. margin-right: 1rem;
  401. }
  402. .gallery figure figcaption {
  403. font-family: 'ConcourseT3'
  404. }
  405. footer {
  406. font-family: 'ConcourseT3';
  407. display: flex;
  408. flex-direction: column;
  409. border-top: 3px solid white;
  410. padding: 4rem 0;
  411. background-color: #07486c;
  412. color: white;
  413. }
  414. footer > * {
  415. max-width: 50rem;
  416. margin: 0 auto;
  417. }
  418. footer a {
  419. color: #f1c40f;
  420. }
  421. footer .avatar {
  422. width: 200px;
  423. height: 200px;
  424. border-radius: 50%;
  425. float: left;
  426. -webkit-shape-outside: circle();
  427. shape-outside: circle();
  428. margin-right: 2rem;
  429. padding: 2px 5px 5px 2px;
  430. background: white;
  431. border-left: 1px solid #f1c40f;
  432. border-top: 1px solid #f1c40f;
  433. border-right: 5px solid #f1c40f;
  434. border-bottom: 5px solid #f1c40f;
  435. }
  436. </style>
  437. <h1>
  438. <span><a id="jumper" href="#jumpto" title="Un peu perdu ?">?</a></span>
  439. Syndication mon amour (archive)
  440. <time>Pour la pérennité des contenus liés. Non-indexé, retrait sur simple email.</time>
  441. </h1>
  442. <section>
  443. <article>
  444. <h3><a href="https://openweb.eu.org/articles/syndication-mon-amour">Source originale du contenu</a></h3>
  445. <h2>Le besoin</h2>
  446. <p>Partons du principe que tous les jours, vous naviguez sur des sites Internet. Pour cela, vous utilisez généralement un navigateur Web, comme Internet Explorer, Firefox, Chrome ou Safari. Lors de votre première visite sur un site, vous découvrez les contenus et services proposés. Formidable. Maintenant, laissons passer plusieurs jours et imaginons que vous ressentiez le besoin de revenir sur ce site. L’une des questions qui va se poser le plus fréquemment est « Quelles sont les nouveautés ? ». Vous allez donc chercher une rubrique quoi de neuf ou directement chercher les nouveaux contenus, les nouveaux produits, les nouvelles actualités, etc.</p>
  447. <p>Maintenant, plaçons-nous dans une autre situation : et si vous deviez faire ceci pour plusieurs sites. Quelques exemples :</p>
  448. <ul class="spip"><li> Surveiller les nouvelles petites annonces qui sont publiées sur plusieurs sites pour un produit donné,</li><li> suivre les news publiées sur différents organismes de presse,</li><li> suivre les derniers posts d’un ou plusieurs blogs,</li><li> surveiller l’activité d’un ou de plusieurs concurrents,</li><li> veiller sur des ressources et magazines professionnels ou pas,</li><li> agréger sur votre poste de travail,</li><li> …</li></ul>
  449. <p><strong>Comment mener à bien ces différentes tâches ?</strong></p>
  450. <p>La première solution consiste à aller voir tous ces sites, et pour chacun de ces sites, regarder si une nouveauté a été publiée. Même si ces nouveautés sont faciles à trouver, vous risquez d’y passer pas mal de temps, et surtout, pendant tout ce temps, il faudra que vous soyez connecté.</p>
  451. <p>Dans le cas contraire il vous faudra avoir autant d’onglets ouverts dans votre navigateur que de ressources à consulter pour une utilisation hors ligne. Heureusement il existe différentes solutions, dont une qui nous intéresse particulièrement : <strong>la syndication de contenus Web</strong>.</p>
  452. <h2>De quoi s’agit t-il ?</h2>
  453. <p>Pour un producteur de contenus, la syndication de contenu Web consiste à mettre à disposition un flux d’information contenant tout ou partie des contenus proposés. En pratique, à chaque nouvelle publication de contenu, un petit fichier au format <abbr title="Really Simple Syndication" lang="en" xml:lang="en">RSS</abbr> ou Atom sera mis à jour sur le serveur web. Ce fichier est mis à disposition sur les serveurs web et il devient lisible depuis l’extérieur. L’un de ses grands avantages est qu’il est structuré et qu’il est donc lisible par des logiciels.</p>
  454. <p>Cette technologie n’est pas nouvelle, et Openweb vous en avait déjà montré les bases il y a 8 ans déjà :</p>
  455. <p>Note : selon Wikipedia en français, la syndication de contenu Web est une forme de syndication dans laquelle une partie d’un site est accessible depuis d’autres sites. Cela est possible en y ajoutant une licence accordée à ses utilisateurs. Bien souvent, la syndication consiste à mettre à disposition un flux <abbr title="Really Simple Syndication" lang="en" xml:lang="en">RSS</abbr> avec l’en-tête du contenu récemment ajouté au site Web (par exemple, la dernière nouvelle (news en anglais) ou le dernier message (post en anglais) du forum.</p>
  456. <p>Bien, c’est peut-être encore un peu abstrait, il est temps d’aller regarder un flux de syndication en vrai.</p>
  457. <ol class="spip"><li> Dans le navigateur Firefox, choisissez dans le menu Affichage &gt; Barres de menus &gt; Personnaliser</li><li> Dans la liste d’icônes qui apparaissent, choisissez l’icône « S’abonner » et placez-la à côté de votre barre d’adresse.</li><li> À partir de maintenant, lorsque votre navigateur détectera un flux de syndication, il vous affichera ce bouton en mode activé</li><li> Si vous n’y êtes pas encore, rendez-vous à l’adresse <a href="http://openweb.eu.org" class="spip_url spip_out auto" rel="nofollow external">http://openweb.eu.org</a> et vous verrez que c’est le cas, grâce au code ci-dessous :</li></ol>
  458. <pre>
  459. &lt;link rel="alternate" type="application/rss+xml" title="Syndiquer tout le site" href="http://openweb.eu.org/?page=backend" /&gt;
  460. </pre>
  461. <p>Regardons un fichier de syndication, au hasard voici le principal flux de syndication d’Openweb (<a href="http://openweb.eu.org/?page=backend" class="spip_out" rel="external">http://openweb.eu.org/?page=backend</a>).</p>
  462. <p>Ce fichier contient des items, correspondant aux derniers articles. Les plus curieux d’entre vous peuvent accéder au code du fichier (<abbr title="Really Simple Syndication" lang="en" xml:lang="en">RSS</abbr> en l’occurrence).</p>
  463. <h2>Comment consulter le fichier ?</h2>
  464. <p>À tout moment, il est possible d’accéder à ce fichier depuis votre machine et afficher les informations qu’il contient.</p>
  465. <p>Voici ce que cela donne, par exemple sous Thunderbird :
  466. <br/><a href="http://openweb.eu.org/IMG/jpg/syndication-thunderbird.jpg"><img src="http://openweb.eu.org/IMG/jpg/syndication-thunderbirdl.jpg" alt="Syndication sous Thunderbird (en image)"/></a></p>
  467. <p>À ce propos, il faut maintenant se demander où afficher ces contenus. Il existe de nombreuses options :</p>
  468. <ul class="spip"><li> Afficher des flux de syndication dans un logiciel installé sur votre poste, appelé <a href="http://fr.wikipedia.org/wiki/Agr%C3%A9gateur#Agr.C3.A9gation_en_local_.28logiciels.29" class="spip_out" rel="external">agrégateur de contenu</a>. Celui-ci peut :
  469. <ul class="spip"><li> être dédié spécifiquement à la lecteur de flux (exemple : Vienna)</li><li> être dédié à d’autres missions (logiciel de mail ou navigateur web, qui vous servira alors d’agrégateur)</li></ul></li><li> Afficher un flux de syndication dans un service Web (Google Reader, Netvibes, voir d’<a href="http://fr.wikipedia.org/wiki/Agr%C3%A9gateur#Agr.C3.A9gation_en_ligne" class="spip_out" rel="external">autres services Web de syndication</a>)</li><li> Afficher un flux de syndication dans une page ou un site Web (regardez l’agrégation de flux proposée par Openweb sur sa page d’accueil)</li><li> Afficher un flux de syndication sur un frigidaire. Et pourquoi pas, cela viendra peut-être ?</li></ul>
  470. <p>Exercice : Imaginons maintenant que vous souhaitiez surveiller les actualités publiées sur plusieurs médias. Vous allez devoir tout d’abord vous abonner à chaque flux de syndication de chacun de ces sites, mais dès que cela sera fait, vous pourrez instantanément consulter l’ensemble des nouvelles informations disponibles sur votre poste de travail. En quelques secondes, vous aurez obtenu <strong>une vue d’ensemble des nouveaux contenus publiés sur de multiples sites</strong>. Les contenus disponibles contiennent généralement un titre, un résumé, et quelquefois le contenu intégral. Si ce n’est pas le cas, vous devrez suivre un lien vers le site internet pour accéder aux contenus dans leur intégralité. Bien sûr, tout ce que vous aurez téléchargé sur votre poste deviendra disponible hors ligne, sans connexion. D’un point de vue de la productivité ou de la veille c’est une technologie redoutable. Une opération qui durait plusieurs dizaines de minutes et des centaines de clics devient possible en quelques secondes.</p>
  471. <p>Ce n’est pas le seul avantage : <strong>la technologie de syndication est intrinsèquement accessible</strong>. Elle l’est au sens large, car un contenu devient disponible pour tous, mais aussi au sens de l’accessibilité aux personnes handicapées puisque l’opération met à disposition des contenus sous forme structurée et donc forcément au minimum lisibles par des machines.</p>
  472. <p>La technologie est disponible, elle repose sur des formats ouverts, est largement répandue, relativement facile à déployer, et pourtant elle est en danger et peut-être en passe de s’éteindre. Voyons pourquoi.</p>
  473. <h2>Le côté obscur</h2>
  474. <p>La syndication semblait une technologie d’avenir et pourtant elle ne s’est pas développée aussi fortement qu’on aurait pu le penser. Existe-t-il des coupables ? Oui certainement et, vous allez voir, ils sont nombreux : c’est tout simplement <strong>nous tous</strong>.</p>
  475. <h3>Les producteurs de contenus</h3>
  476. <p>Mettez-vous à la place d’un producteur de contenus : un utilisateur équipé d’un agrégateur ne viendra pas systématiquement chercher les nouveautés sur son site. Il va tout d’abord regarder le titre, consulter un extrait et peut-être alors venir sur le site. Si le contenu de l’article est intégralement en place dans le flux de syndication, l’utilisateur n’aura pas forcément de raison de se rendre sur le site. Et cela n’est absolument pas neutre en termes d’audience, d’affichage de publicités, de nombre de pages vues. Or comme vous le savez, il est souvent onéreux de publier des contenus de qualité sur le web, et la rentabilité est un facteur décisif.</p>
  477. <p>Il est donc nécessaire de pouvoir mesure l’audience correspondant aux vues hors site. Certains services existent mais d’une certaine manière, il y a une vraie perte de contrôle, un vrai lâcher-prise pour les créateurs de sites à proposer des flux de syndication.</p>
  478. <p>Cette nécessité de lâcher-prise sur la forme est souvent perçue de façon négative, mais <strong>elle n’a pas que des inconvénients</strong> : certains visiteurs préfèrent consulter les contenus syndiqués qui permettent une consultation plus libre, et surtout aisément adaptable à leurs besoins. De plus, la cohérence des affichages des flux dans un agrégateur représente un réel gain de productivité. Dans ce cas, proposer des contenus syndiqués permet d’élargir son audience.</p>
  479. <p>Pour finir, <strong>les producteurs de flux de syndication</strong>, même s’ils lâchent prise sur certains aspects, <strong>en sont et en restent les propriétaires</strong>, ce qui est moins évident sur des plateformes comme Facebook ou Twitter qui comme nous allons le voir plus loin ont tendance à les remplacer.</p>
  480. <h3>Les navigateurs</h3>
  481. <p>Les navigateurs, soucieux de simplifier au maximum leurs interfaces, ont décidé de supprimer les boutons signalant la détection d’un ou plusieurs flux, et la possibilité de s’abonner. Il faut savoir que pour les navigateurs, l’occupation de chaque pixel par une fonctionnalité représente un coût, une charge mentale supplémentaire pour les utilisateurs. En réalité, chaque bouton proposé à l’installation d’un navigateur va impacter l’apprentissage de la fonctionnalité qui lui correspond. Dans le cas d’une fonctionnalité un peu évoluée comme la syndication, laisser disponible ce bouton par défaut aurait été un acte militant pour le Web ouvert, et pour plusieurs raisons dont ce coût, ce n’est pas le choix qui a été fait.</p>
  482. <p>Chrome a lancé le bal, Firefox a suivi, et c’est sans doute <strong>l’une des erreurs les plus funestes pour le Web ouvert au cours de ces dernières années</strong>. Vous l’avez vu, il existe des façons de remettre ces boutons en place, mais cela nécessite une action de la part de l’utilisateur.</p>
  483. <h3>Les utilisateurs</h3>
  484. <p>Oui, les utilisateurs n’ont pas forcément envie de s’abonner à cette technologie. L’approche qui consiste à télécharger les informations proposées dans des flux de syndication n’est pas si évidente. Consulter l’un des flux <abbr title="Really Simple Syndication" lang="en" xml:lang="en">RSS</abbr> du journal le Monde n’est pas équivalent à la consultation journalière du site du Monde. C’est sans doute la raison pour laquelle ce sont généralement les utilisateurs les mieux informés et les plus geeks qui utilisent cette technologie. Il est sans doute nécessaire de la démocratiser, nous verrons par la suite qu’il y a des approches pour faire cela intelligemment.</p>
  485. <h3>Les services tiers</h3>
  486. <p>Des services tiers comme Facebook et Twitter ont de plus en plus souvent remplacé les agrégateurs dans l’usage des internautes. Ces outils permettent de rassembler en un seul endroit des informations issues de très nombreuses sources. Elles ont cependant leur lot de problèmes : entre autres les formats sont propriétaires et les appels via des <abbr title="Application programming interface" lang="en" xml:lang="en">API</abbr> peuvent être refermés à tout moment ; c’est ce qui vient de se passer avec Twitter qui a décidé de <a href="http://www.lemonde.fr/technologies/article/2012/09/06/twitter-accelere-sa-fermeture-aux-developpeurs_1756694_651865.html" class="spip_out" rel="external">refermer les portes de l’écosystème qui l’a aidé à se développer</a>.</p>
  487. <h2>La syndication n’est peut-être pas morte</h2>
  488. <h3>Une technologie pour les utilisateurs</h3>
  489. <p>Si vous aimez le web, vous devez aimer la syndication. Voici une technologie qui permet aux utilisateurs d’avoir la maîtrise de leur façon d’accéder aux contenus Web et qui permet d’accéder à l’information de manière efficace et rapide. C’est aussi une technologie qui rend les contenus accessibles au sens large et qui permet de faciliter leur reprise et leur référencement. En permettant aux utilisateurs de réaliser en quelques secondes des tâches qui pourraient prendre des heures (contrôler la présence de nouveaux contenus sur 50 sites par exemple), la syndication est un vrai outil d’amélioration de la productivité ; c’est également <strong>un fantastique outil de veille</strong>.</p>
  490. <p><strong>La syndication est un pilier du web ouvert, efficient et durable</strong>. C’est une technologie qui est faite et pensée pour les utilisateurs ; pour un qualiticien, une technologie qui répond aux exigences des utilisateurs est forcément un atout concurrentiel pour les producteurs de contenus qui décident de véritablement se l’approprier.</p>
  491. <h3>Encore un renversement de la pensée</h3>
  492. <p>En revanche, les producteurs de contenus doivent apprendre à perdre une partie du contrôle qu’ils avaient sur la diffusion de leurs informations. En ce sens, la syndication est l’un des nombreux artefacts du renversement de paradigme imposé par le Web : les producteurs proposent, les utilisateurs disposent. Si vos contenus sont mauvais, personne ne s’abonnera à vos flux de syndication ; en revanche, si des milliers de personnes s’abonnent, vous trouverez le moyen de valoriser vos contenus, vous n’aurez que l’embarras du choix.</p>
  493. <h3>Un véritable outil de management </h3>
  494. <p>Nous avons parlé d’articles et de news, mais dès qu’une nouveauté se présente quelque part, il est possible d’en faire un flux : pourquoi ne serait-il pas possible de s’abonner aux dernières formations, aux dernières embauches effectuées dans votre entreprise, aux derniers bugs résolus sur votre application, aux dernières références de votre entreprise, aux derniers travaux effectués pour vos clients ? Les flux sont un moyen efficace pour afficher vos actualités partout où cela peut avoir une valeur ajoutée : sur vos profils professionnels, sur d’autres services connexes à votre activité : si vous mettez en ligne des présentations, des vidéos, etc. La seule limite est votre imagination.</p>
  495. <p>Par exemple, un effet ô combien bénéfique de la syndication est de permettre d’<strong>alléger le client mail</strong> : au lieu de recevoir des centaines d’e-mails dont le traitement est extrêmement chronophage, les flux ont de nombreux atouts : non seulement, on a l’avantage d’avoir une unique source (là où un simple oubli de mise en copie d’un destinataire peut gripper le système), mais en plus cette source est bien plus légère que les e-mails classiques. Les économies en stockage, téléchargement et plus généralement en temps peuvent être fantastiques.</p>
  496. <h3>Un outil pour la communication et la qualité Web</h3>
  497. <p>Ce n’est pas tout, les flux contribuent à la sélection et à la diffusion de contenus sur vos sites. Ainsi, lorsque vous gérez vous-même un site grâce à un <abbr title="Content Management System" lang="en" xml:lang="en">CMS</abbr> (système de gestion de contenus), il existe de nombreux modules qui vous permettent de récupérer exactement ce qui vous intéresse et de l’afficher dans le cadre de votre site. Ce sera par exemple le flux d’un auteur, d’une rubrique ou d’un tag spécifique.<br class="autobr"/>
  498. Vous pouvez récupérer les flux pour alimenter votre site sur un sujet particulier (flux des actualités Google par exemple ou de votre Seenthis) rendant son contenu plus pertinent et vivant. Grâce au même mécanisme, votre propre flux de syndication est disponible pour être affiché dans d’autres sites, <strong>il génère également des liens entrants, du trafic et du référencement</strong>.</p>
  499. <h3>Le combat continue</h3>
  500. <p>Cela ne fait aucun doute, la syndication est utile et pratique. Pourtant, elle n’est pas aussi répandue qu’elle le devrait. Dans mes cours sur la qualité Web, si je m’aperçois que mes étudiants ne connaissent pas cette technologie et ne la pratiquent pas au quotidien, j’interromps mon cours, je mets en marche mon agrégateur, je fais une démonstration qui consiste à actualiser les 50 flux que je suis quotidiennement et j’explique à mes étudiants que le fait de ne pas utiliser une technologie de ce type pour la veille n’est pas une option.</p>
  501. <p><strong>Un professionnel du Web sait travailler avec la syndication. Mieux, il ne devrait pas travailler sans. </strong></p>
  502. <p>Il est peut-être temps de reprendre le flambeau de l’explication. Militons pour que nos navigateurs aient un bouton de syndication par défaut. Publions des articles, incitons nos utilisateurs à s’abonner à nos flux, remettons à la mode le logo de syndication. Bref, il est de nouveau temps de se battre pour que cette technologie ne tombe pas dans l’oubli au profit des flux proposés par des sociétés en mesure de les fermer à tout moment. À l’heure où les <abbr title="Application programming interface" lang="en" xml:lang="en">API</abbr> de Twitter se referment, sachez que ce que je décris est une réalité. Ce n’est pas une hypothèse : des entreprises comme Twitter limitent de plus en plus l’accès à leurs <abbr title="Application programming interface" lang="en" xml:lang="en">API</abbr>.</p>
  503. <p>Pour les utilisateurs non professionnels, il faudra peut-être passer par une appropriation de la syndication sans le dire. C’est ce qui se fait dans différentes applications mobiles, où les utilisateurs se contenteront de profiter de la syndication sans jamais avoir à en prononcer le mot. Nous aurons alors un Web composé de flux invisibles. Pourquoi pas, après tout.</p>
  504. </article>
  505. </section>
  506. <nav id="jumpto">
  507. <p>
  508. <a href="/david/blog/">Accueil du blog</a> |
  509. <a href="https://openweb.eu.org/articles/syndication-mon-amour">Source originale</a> |
  510. <a href="/david/stream/2019/">Accueil du flux</a>
  511. </p>
  512. </nav>
  513. <footer>
  514. <div>
  515. <img src="/static/david/david-larlet-avatar.jpg" loading="lazy" class="avatar" width="200" height="200">
  516. <p>
  517. Bonjour/Hi!
  518. Je suis <a href="/david/" title="Profil public">David&nbsp;Larlet</a>, je vis actuellement à Montréal et j’alimente cet espace depuis 15 ans. <br>
  519. Si tu as apprécié cette lecture, n’hésite pas à poursuivre ton exploration. Par exemple via les <a href="/david/blog/" title="Expériences bienveillantes">réflexions bimestrielles</a>, la <a href="/david/stream/2019/" title="Pensées (dés)articulées">veille hebdomadaire</a> ou en t’abonnant au <a href="/david/log/" title="S’abonner aux publications via RSS">flux RSS</a> (<a href="/david/blog/2019/flux-rss/" title="Tiens c’est quoi un flux RSS ?">so 2005</a>).
  520. </p>
  521. <p>
  522. Je m’intéresse à la place que je peux avoir dans ce monde. En tant qu’humain, en tant que membre d’une famille et en tant qu’associé d’une coopérative. De temps en temps, je fais aussi des <a href="https://github.com/davidbgk" title="Principalement sur Github mais aussi ailleurs">trucs techniques</a>. Et encore plus rarement, <a href="/david/talks/" title="En ce moment je laisse plutôt la place aux autres">j’en parle</a>.
  523. </p>
  524. <p>
  525. Voici quelques articles choisis :
  526. <a href="/david/blog/2019/faire-equipe/" title="Accéder à l’article complet">Faire équipe</a>,
  527. <a href="/david/blog/2018/bivouac-automnal/" title="Accéder à l’article complet">Bivouac automnal</a>,
  528. <a href="/david/blog/2018/commodite-effondrement/" title="Accéder à l’article complet">Commodité et effondrement</a>,
  529. <a href="/david/blog/2017/donnees-communs/" title="Accéder à l’article complet">Des données aux communs</a>,
  530. <a href="/david/blog/2016/accompagner-enfant/" title="Accéder à l’article complet">Accompagner un enfant</a>,
  531. <a href="/david/blog/2016/senior-developer/" title="Accéder à l’article complet">Senior developer</a>,
  532. <a href="/david/blog/2016/illusion-sociale/" title="Accéder à l’article complet">L’illusion sociale</a>,
  533. <a href="/david/blog/2016/instantane-scopyleft/" title="Accéder à l’article complet">Instantané Scopyleft</a>,
  534. <a href="/david/blog/2016/enseigner-web/" title="Accéder à l’article complet">Enseigner le Web</a>,
  535. <a href="/david/blog/2016/simplicite-defaut/" title="Accéder à l’article complet">Simplicité par défaut</a>,
  536. <a href="/david/blog/2016/minimalisme-esthetique/" title="Accéder à l’article complet">Minimalisme et esthétique</a>,
  537. <a href="/david/blog/2014/un-web-omni-present/" title="Accéder à l’article complet">Un web omni-présent</a>,
  538. <a href="/david/blog/2014/manifeste-developpeur/" title="Accéder à l’article complet">Manifeste de développeur</a>,
  539. <a href="/david/blog/2013/confort-convivialite/" title="Accéder à l’article complet">Confort et convivialité</a>,
  540. <a href="/david/blog/2013/testament-numerique/" title="Accéder à l’article complet">Testament numérique</a>,
  541. et <a href="/david/blog/" title="Accéder aux archives">bien d’autres…</a>
  542. </p>
  543. <p>
  544. On peut <a href="mailto:david%40larlet.fr" title="Envoyer un courriel">échanger par courriel</a>. Si éventuellement tu souhaites que l’on travaille ensemble, tu devrais commencer par consulter le <a href="http://larlet.com">profil dédié à mon activité professionnelle</a> et/ou contacter directement <a href="http://scopyleft.fr/">scopyleft</a>, la <abbr title="Société coopérative et participative">SCOP</abbr> dont je fais partie depuis six ans. Je recommande au préalable de lire <a href="/david/blog/2018/cout-site/" title="Attention ce qui va suivre peut vous choquer">combien coûte un site</a> et pourquoi je suis plutôt favorable à une <a href="/david/pro/devis/" title="Discutons-en !">non-demande de devis</a>.
  545. </p>
  546. <p>
  547. Je ne traque pas ta navigation mais mon
  548. <abbr title="Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33.184162340">hébergeur</abbr>
  549. conserve des logs d’accès.
  550. </p>
  551. </div>
  552. </footer>
  553. <script type="text/javascript">
  554. ;(_ => {
  555. const jumper = document.getElementById('jumper')
  556. jumper.addEventListener('click', e => {
  557. e.preventDefault()
  558. const anchor = e.target.getAttribute('href')
  559. const targetEl = document.getElementById(anchor.substring(1))
  560. targetEl.scrollIntoView({behavior: 'smooth'})
  561. })
  562. })()
  563. </script>