Repository with sources and generator of https://larlet.fr/david/ https://larlet.fr/david/
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

index.html 36KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901
  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>Le Web est mort — 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. <!-- Canonical URL for SEO purposes -->
  28. <link rel="canonical" href="https://larlet.fr/david/blog/2015/web-mort/">
  29. <!-- SEO/Semantic metadata -->
  30. <meta name="description" content="Le Web que nous fantasmions est mort. Longue vie au(x) Web que nous allons co-créer !" />
  31. <meta name="twitter:description" property="og:description" itemprop="description" content="Le Web que nous fantasmions est mort. Longue vie au(x) Web que nous allons co-créer !" />
  32. <meta name="twitter:title" property="og:title" itemprop="name" content="Le Web est mort" />
  33. <meta name="twitter:card" content="summary" />
  34. <meta name="twitter:creator" content="@davidbgk" />
  35. <meta name="twitter:url" property="og:url" content="https://larlet.fr/david/blog/2015/web-mort/" />
  36. <meta property="og:type" content="article" />
  37. <meta property="og:site_name" content="David Larlet (@davidbgk)" />
  38. <meta name="twitter:image" property="og:image" itemprop="image" content="https://larlet.fr/static/david/blog/2015/web-mort.jpg" />
  39. <style>
  40. /* http://meyerweb.com/eric/tools/css/reset/ */
  41. html, body, div, span,
  42. h1, h2, h3, h4, h5, h6, p, blockquote, pre,
  43. a, abbr, address, big, cite, code,
  44. del, dfn, em, img, ins,
  45. small, strike, strong, tt, var,
  46. dl, dt, dd, ol, ul, li,
  47. fieldset, form, label, legend,
  48. table, caption, tbody, tfoot, thead, tr, th, td,
  49. article, aside, canvas, details, embed,
  50. figure, figcaption, footer, header, hgroup,
  51. menu, nav, output, ruby, section, summary,
  52. time, mark, audio, video {
  53. margin: 0;
  54. padding: 0;
  55. border: 0;
  56. font-size: 100%;
  57. font: inherit;
  58. vertical-align: baseline;
  59. }
  60. /* HTML5 display-role reset for older browsers */
  61. article, aside, details, figcaption, figure,
  62. footer, header, hgroup, menu, nav, section { display: block; }
  63. body { line-height: 1; }
  64. blockquote, q { quotes: none; }
  65. blockquote:before, blockquote:after,
  66. q:before, q:after {
  67. content: '';
  68. content: none;
  69. }
  70. table {
  71. border-collapse: collapse;
  72. border-spacing: 0;
  73. }
  74. /* http://practicaltypography.com/equity.html */
  75. /* https://calendar.perfplanet.com/2016/no-font-face-bulletproof-syntax/ */
  76. /* https://www.filamentgroup.com/lab/js-web-fonts.html */
  77. @font-face {
  78. font-family: 'EquityTextB';
  79. src: url('/static/david/css/fonts/Equity-Text-B-Regular-webfont.woff2') format('woff2'),
  80. url('/static/david/css/fonts/Equity-Text-B-Regular-webfont.woff') format('woff');
  81. font-weight: 300;
  82. font-style: normal;
  83. font-display: swap;
  84. }
  85. @font-face {
  86. font-family: 'EquityTextB';
  87. src: url('/static/david/css/fonts/Equity-Text-B-Italic-webfont.woff2') format('woff2'),
  88. url('/static/david/css/fonts/Equity-Text-B-Italic-webfont.woff') format('woff');
  89. font-weight: 300;
  90. font-style: italic;
  91. font-display: swap;
  92. }
  93. @font-face {
  94. font-family: 'EquityTextB';
  95. src: url('/static/david/css/fonts/Equity-Text-B-Bold-webfont.woff2') format('woff2'),
  96. url('/static/david/css/fonts/Equity-Text-B-Bold-webfont.woff') format('woff');
  97. font-weight: 700;
  98. font-style: normal;
  99. font-display: swap;
  100. }
  101. @font-face {
  102. font-family: 'ConcourseT3';
  103. src: url('/static/david/css/fonts/concourse_t3_regular-webfont-20190806.woff2') format('woff2'),
  104. url('/static/david/css/fonts/concourse_t3_regular-webfont-20190806.woff') format('woff');
  105. font-weight: 300;
  106. font-style: normal;
  107. font-display: swap;
  108. }
  109. /* http://practice.typekit.com/lesson/caring-about-opentype-features/ */
  110. body {
  111. /* http://www.cssfontstack.com/ Palatino 99% Win 86% Mac */
  112. font-family: "EquityTextB", Palatino, serif;
  113. background-color: #f0f0ea;
  114. color: #07486c;
  115. font-kerning: normal;
  116. -moz-osx-font-smoothing: grayscale;
  117. -webkit-font-smoothing: subpixel-antialiased;
  118. text-rendering: optimizeLegibility;
  119. font-variant-ligatures: common-ligatures contextual;
  120. font-feature-settings: "kern", "liga", "clig", "calt";
  121. }
  122. pre, code, kbd, samp, var, tt {
  123. font-family: 'TriplicateT4c', monospace;
  124. }
  125. em {
  126. font-style: italic;
  127. color: #323a45;
  128. }
  129. strong {
  130. font-weight: bold;
  131. color: black;
  132. }
  133. nav {
  134. background-color: #323a45;
  135. color: #f0f0ea;
  136. display: flex;
  137. justify-content: space-around;
  138. padding: 1rem .5rem;
  139. }
  140. nav:last-child {
  141. border-bottom: 1vh solid #2d7474;
  142. }
  143. nav a {
  144. color: #f0f0ea;
  145. }
  146. nav abbr {
  147. border-bottom: 1px dotted white;
  148. }
  149. h1 {
  150. border-top: 1vh solid #2d7474;
  151. border-bottom: .2vh dotted #2d7474;
  152. background-color: #e3e1e1;
  153. color: #323a45;
  154. text-align: center;
  155. padding: 5rem 0 4rem 0;
  156. width: 100%;
  157. font-family: 'ConcourseT3';
  158. display: flex;
  159. flex-direction: column;
  160. }
  161. h1.single {
  162. padding-bottom: 10rem;
  163. }
  164. h1 span {
  165. position: absolute;
  166. top: 1vh;
  167. left: 20%;
  168. line-height: 0;
  169. }
  170. h1 span a {
  171. line-height: 1.7;
  172. padding: 1rem 1.2rem .6rem 1.2rem;
  173. border-radius: 0 0 6% 6%;
  174. background: #2d7474;
  175. font-size: 1.3rem;
  176. color: white;
  177. text-decoration: none;
  178. }
  179. h2 {
  180. margin: 4rem 0 1rem;
  181. border-top: .2vh solid #2d7474;
  182. padding-top: 1vh;
  183. }
  184. h3 {
  185. text-align: center;
  186. margin: 3rem 0 .75em;
  187. }
  188. hr {
  189. height: .4rem;
  190. width: .4rem;
  191. border-radius: .4rem;
  192. background: #07486c;
  193. margin: 2.5rem auto;
  194. }
  195. time {
  196. display: bloc;
  197. margin-left: 0 !important;
  198. }
  199. ul, ol {
  200. margin: 2rem;
  201. }
  202. ul {
  203. list-style-type: square;
  204. }
  205. a {
  206. text-decoration-skip-ink: auto;
  207. text-decoration-thickness: 0.05em;
  208. text-underline-offset: 0.09em;
  209. }
  210. article {
  211. max-width: 50rem;
  212. display: flex;
  213. flex-direction: column;
  214. margin: 2rem auto;
  215. }
  216. article.single {
  217. border-top: .2vh dotted #2d7474;
  218. margin: -6rem auto 1rem auto;
  219. background: #f0f0ea;
  220. padding: 2rem;
  221. }
  222. article p:last-child {
  223. margin-bottom: 1rem;
  224. }
  225. p {
  226. padding: 0 .5rem;
  227. margin-left: 3rem;
  228. }
  229. p + p,
  230. figure + p {
  231. margin-top: 2rem;
  232. }
  233. blockquote {
  234. background-color: #e3e1e1;
  235. border-left: .5vw solid #2d7474;
  236. display: flex;
  237. flex-direction: column;
  238. align-items: center;
  239. padding: 1rem;
  240. margin: 1.5rem;
  241. }
  242. blockquote cite {
  243. font-style: italic;
  244. }
  245. blockquote p {
  246. margin-left: 0;
  247. }
  248. figure {
  249. border-top: .2vh solid #2d7474;
  250. background-color: #e3e1e1;
  251. text-align: center;
  252. padding: 1.5rem 0;
  253. margin: 1rem 0 0;
  254. font-size: 1.5rem;
  255. width: 100%;
  256. }
  257. figure img {
  258. max-width: 250px;
  259. max-height: 250px;
  260. border: .5vw solid #323a45;
  261. padding: 1px;
  262. }
  263. figcaption {
  264. padding: 1rem;
  265. line-height: 1.4;
  266. }
  267. aside {
  268. display: flex;
  269. flex-direction: column;
  270. background-color: #e3e1e1;
  271. padding: 1rem 0;
  272. border-bottom: .2vh solid #07486c;
  273. }
  274. aside p {
  275. max-width: 50rem;
  276. margin: 0 auto;
  277. }
  278. /* https://fvsch.com/code/css-locks/ */
  279. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  280. font-size: 1rem;
  281. line-height: calc( 1.5em + 0.2 * 1rem );
  282. }
  283. h1 {
  284. font-size: 1.9rem;
  285. line-height: calc( 1.2em + 0.2 * 1rem );
  286. }
  287. h2 {
  288. font-size: 1.6rem;
  289. line-height: calc( 1.3em + 0.2 * 1rem );
  290. }
  291. h3 {
  292. font-size: 1.35rem;
  293. line-height: calc( 1.4em + 0.2 * 1rem );
  294. }
  295. @media (min-width: 20em) {
  296. /* The (100vw - 20rem) / (50 - 20) part
  297. resolves to 0-1rem, depending on the
  298. viewport width (between 20em and 50em). */
  299. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  300. font-size: calc( 1rem + .6 * (100vw - 20rem) / (50 - 20) );
  301. line-height: calc( 1.5em + 0.2 * (100vw - 50rem) / (20 - 50) );
  302. margin-left: 0;
  303. }
  304. h1 {
  305. font-size: calc( 1.9rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  306. line-height: calc( 1.2em + 0.2 * (100vw - 50rem) / (20 - 50) );
  307. }
  308. h2 {
  309. font-size: calc( 1.5rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  310. line-height: calc( 1.3em + 0.2 * (100vw - 50rem) / (20 - 50) );
  311. }
  312. h3 {
  313. font-size: calc( 1.35rem + 1.5 * (100vw - 20rem) / (50 - 20) );
  314. line-height: calc( 1.4em + 0.2 * (100vw - 50rem) / (20 - 50) );
  315. }
  316. }
  317. @media (min-width: 50em) {
  318. /* The right part of the addition *must* be a
  319. rem value. In this example we *could* change
  320. the whole declaration to font-size:2.5rem,
  321. but if our baseline value was not expressed
  322. in rem we would have to use calc. */
  323. p, li, pre, code, kbd, samp, var, tt, time, details, figcaption {
  324. font-size: calc( 1rem + .6 * 1rem );
  325. line-height: 1.5em;
  326. }
  327. p, li, pre, details {
  328. margin-left: 3rem;
  329. }
  330. h1 {
  331. font-size: calc( 1.9rem + 1.5 * 1rem );
  332. line-height: 1.2em;
  333. }
  334. h2 {
  335. font-size: calc( 1.5rem + 1.5 * 1rem );
  336. line-height: 1.3em;
  337. }
  338. h3 {
  339. font-size: calc( 1.35rem + 1.5 * 1rem );
  340. line-height: 1.4em;
  341. }
  342. figure img {
  343. max-width: 500px;
  344. max-height: 500px;
  345. }
  346. }
  347. figure.unsquared {
  348. margin-bottom: 1.5rem;
  349. }
  350. figure.unsquared img {
  351. height: inherit;
  352. }
  353. @media print {
  354. body { font-size: 100%; }
  355. a:after { content: " (" attr(href) ")"; }
  356. a, a:link, a:visited, a:after {
  357. text-decoration: underline;
  358. text-shadow: none !important;
  359. background-image: none !important;
  360. background: white;
  361. color: black;
  362. }
  363. abbr[title] { border-bottom: 0; }
  364. abbr[title]:after { content: " (" attr(title) ")"; }
  365. img { page-break-inside: avoid; }
  366. @page { margin: 2cm .5cm; }
  367. h1, h2, h3 { page-break-after: avoid; }
  368. p3 { orphans: 3; widows: 3; }
  369. img {
  370. max-width: 250px !important;
  371. max-height: 250px !important;
  372. }
  373. nav, aside { display: none; }
  374. }
  375. ul.with_columns {
  376. column-count: 1;
  377. }
  378. @media (min-width: 20em) {
  379. ul.with_columns {
  380. column-count: 2;
  381. }
  382. }
  383. @media (min-width: 50em) {
  384. ul.with_columns {
  385. column-count: 3;
  386. }
  387. }
  388. ul.with_two_columns {
  389. column-count: 1;
  390. }
  391. @media (min-width: 20em) {
  392. ul.with_two_columns {
  393. column-count: 1;
  394. }
  395. }
  396. @media (min-width: 50em) {
  397. ul.with_two_columns {
  398. column-count: 2;
  399. }
  400. }
  401. .gallery {
  402. display: flex;
  403. flex-wrap: wrap;
  404. justify-content: space-around;
  405. }
  406. .gallery figure img {
  407. margin-left: 1rem;
  408. margin-right: 1rem;
  409. }
  410. .gallery figure figcaption {
  411. font-family: 'ConcourseT3'
  412. }
  413. footer {
  414. font-family: 'ConcourseT3';
  415. display: flex;
  416. flex-direction: column;
  417. border-top: 3px solid white;
  418. padding: 4rem 0;
  419. background-color: #07486c;
  420. color: white;
  421. }
  422. footer > * {
  423. max-width: 50rem;
  424. margin: 0 auto;
  425. }
  426. footer a {
  427. color: #f1c40f;
  428. }
  429. footer .avatar {
  430. width: 200px;
  431. height: 200px;
  432. border-radius: 50%;
  433. float: left;
  434. -webkit-shape-outside: circle();
  435. shape-outside: circle();
  436. margin-right: 2rem;
  437. padding: 2px 5px 5px 2px;
  438. background: white;
  439. border-left: 1px solid #f1c40f;
  440. border-top: 1px solid #f1c40f;
  441. border-right: 5px solid #f1c40f;
  442. border-bottom: 5px solid #f1c40f;
  443. }
  444. </style>
  445. <h1 class="single">
  446. <span><a id="jumper" href="#jumpto" title="Un peu perdu ?">?</a></span>
  447. Le Web est mort
  448. <time>Publié le 25 mai 2015</time>
  449. </h1>
  450. <article class="single">
  451. <blockquote>
  452. <p>Il n’aura pas fallu plus de 10 ans pour tuer le Web. App-ifié, surveillé, centralisé, marchandisé, déneutralisé et plein d’autres mots en -é qui font flipper. Le sommet de la pyramide actuelle fait tout pour que sa base ne se transforme pas en graphe autonome à l’image du Web et tous les moyens sont bons pour y parvenir : capitalisme, terrorisme, pédo-nazisme, développeurs cyniques et vénaux (j’ai cherché longtemps un mot en -isme mais j’ai pas trouvé). Bref, c’est pas la joie.</p>
  453. <p>Propositions pour reconstruire le Web ces 10 prochaines années. Ensemble.</p>
  454. </blockquote>
  455. <p><em>C’est le sujet de 15 minutes que j’ai proposé pour les 10 ans de <a href="http://www.paris-web.fr/">ParisWeb</a> et qui n’a (mal)heureusement pas été retenu. Comme j’avais commencé à y réfléchir, je vous le livre un peu brut (il manque 4 mois de recul).</em></p>
  456. <p>PJLRenseignement, DRM, neutralité, profilage, Snowden, GAFA, terrorisme, guerre économique, écosystèmes fermés, stores, centralisation, bulles filtrantes, la liste pourrait être très longue des atteintes portées au Web ces 10 dernières années. Un Web que l’on rêvait universel, ouvert, a-centré. Ne nous apitoyons pas sur ce que nous avons déjà perdu, créons de nouvelles règles au quotidien.</p>
  457. <h2>Affichez la source</h2>
  458. <blockquote>
  459. <p>Re-use the source, Luke.</p>
  460. </blockquote>
  461. <p>Vous avez tous appris en affichant la source des ressources que vous aimiez. Ce n’est plus vraiment possible, sur l’autel de la performance nous avons sacrifié la lisibilité et la compréhension du code source de nos pages. C’est extrêmement dommageable pour les nouveaux arrivants qui (au mieux !) doivent trouver le dépôt, installer les 15 dépendances système, installer la moitié du net avec NodeJS et finalement builder votre site pour comprendre un détail de CSS…</p>
  462. <p>Au pire ajoutez l’URL vers une source lisible de vos fichiers CSS/JS, au mieux arrêtez de minifier des fichiers qui sont de toute façon <code>gzip</code>és (oui, je sais, j’ai du boulot ici aussi). Les navigateurs ont aussi à faire pour <a href="/david/stream/2015/05/26/">afficher la sources des composants web</a> de manière lisible et exploratoire.</p>
  463. <h2>Mettez votre veto</h2>
  464. <blockquote>
  465. <p>Vous êtes de luthiers au service de David Guetta.</p>
  466. </blockquote>
  467. <p>Mais vous avez le pouvoir de changer ça. Au quotidien. Vous pouvez prendre part aux décisions stratégiques de votre entreprise, vous pouvez <a href="/david/stream/2015/02/28/">refuser de coder</a> des choses. Vous pouvez proposer des alternatives en phase avec votre vision du Web de demain. Ne vous réveillez pas dans 10 ans en réalisant que vous avez contribué à la mort du Web.</p>
  468. <h2>Transmettez vos valeurs</h2>
  469. <blockquote>
  470. <p>Monsieur, c’est quoi le hashtag dans la CSS déjà ?</p>
  471. </blockquote>
  472. <p>Les plus jeunes ont besoin d’être guidés. Vraiment. <a href="/david/pro/enseignement/">Donner des cours à l’IUT</a> m’a ouvert les yeux sur le niveau des pratiques et des valeurs transmises dès la découverte du Web. C’est pas joli. Chaque personne venant à ParisWeb peut donner de son temps pour améliorer cette situation. Et l’année prochaine certains de vos étudiants seront peut-être dans la salle. À moins que vous ne préfériez rester dans votre tour d’ivoire élitiste ?</p>
  473. <h2>Expliquez votre métier</h2>
  474. <blockquote>
  475. <p>Tu peux m’aider à connecter mon imprimante en wifi ?</p>
  476. </blockquote>
  477. <p>Non, mais par contre je peux t’expliquer ce qu’est le Web et ce que je crée au quotidien. Commencez par votre famille, vos proches, on ne (re)construira pas un Web tout seuls. Il y a un énorme travail d’éducation à avoir pour que la société se rende compte qu’Internet n’est pas Facebook et qu’il y a d’autres enjeux que le terrorisme.</p>
  478. <h2>Ayez une longueur d’avance</h2>
  479. <blockquote>
  480. <p>Pourquoi ta signature est une suite incompréhensible de caractères ?</p>
  481. </blockquote>
  482. <p>C’est la <a href="/david/blog/2015/chiffrer-emails/">stratégie classique</a> à avoir qui est la source d’une <a href="/david/stream/2015/05/13/">dépense inutile d’énergie</a> et qui s’apparente à de la surenchère futile. Sauf qu’elle donne un semblant d’intimité et de militantisme qui sont une arme dans le contexte actuel.</p>
  483. <p>Vous êtes ceux et celles qui ont les compétences techniques pour tester et évangéliser de nouvelles pratiques. Faites-le !</p>
  484. <h2>Utilisez à bon escient</h2>
  485. <blockquote>
  486. <p>Twitter me fait penser à un hurlement de loups.</p>
  487. </blockquote>
  488. <p>Ça décharge les pulsions de la meute sans rien apporter de très mélodieux. Or les réseaux sociaux pourraient être un outil formidable de communication et d’optimisme. Interrogez-vous sur votre propre usage.</p>
  489. <p>Est-ce que les outils et techniques dont vous faites la promotion encouragent <a href="/david/blog/2013/outils-conviviaux/">la convivialité</a> ?</p>
  490. <h2>Soyez nomade</h2>
  491. <blockquote>
  492. <p>Youpi, encore un framework JS !</p>
  493. </blockquote>
  494. <p>La course à la technologie va s’accélérer, vos données devront être plus que jamais nomades. Assurez vous qu’elles le soient et qu’elles le restent à travers les licences, les URL, la pérennité du stockage, etc.</p>
  495. <p>Il en va de même avec les connaissances que vous acquérez, est-ce qu’elles sont propres au framework, à la technologie ? Est-ce qu’elles sont transposables ? Toujours au service du Web ?</p>
  496. <h2>Ouvrez votre entreprise</h2>
  497. <blockquote>
  498. <p>C’est partout pareil de toute façon.</p>
  499. </blockquote>
  500. <p>Non. Sortez de votre petit confort et allez voir ce qui se pratique ailleurs. Certaines entreprises n’ont pas les même rapports au quotidien. Certaines entreprises n’ont pas les même choix de projets. Certaines entreprises n’ont pas les même objectifs. Certaines entreprises œuvrent <em>pour</em> le Web.</p>
  501. <p>Partagez vos pratiques et vos choix en interne, pas uniquement la mise en application de la dernière techno à la mode. Notre domaine a besoin de davantage de retours d’expériences.</p>
  502. <h2>Innovez localement</h2>
  503. <blockquote>
  504. <p>Tout est surveillé, on est foutus…</p>
  505. </blockquote>
  506. <p>Et si le Web que nous connaissons n’était qu’un prototype, un brouillon. Demain on va vers du <em>vrai</em> pair-à-pair avec les réseau de type <em>mesh</em>, peut-être l’occasion de poser de nouvelles bases en terme de confidentialité des échanges et de décentralisation. Un nouveau terrain de jeu qui ne demande qu’à être exploré :-).</p>
  507. <p><strong>Le Web que nous fantasmions est mort. Longue vie au(x) Web que nous allons co-créer !</strong></p>
  508. </article>
  509. <section>
  510. <h3>Discussion suite à l’article :</h3>
  511. <article id="comment-1" class="comment">
  512. <p>Billet intéressant, même si je ne partage pas ce constat. Le Web est mort ? Non, il n’y a que ceux qui le décident pour qui c’est vrai. Et c’est trop facile.</p>
  513. <p>Sur plusieurs de tes points :</p>
  514. <p>Je tourne plutôt vers une tendance inverse : réduire la dépendance aux outils (ce qui ne veut pas dire que je n’en utilise pas).
  515. J’ai testé les pré-processeurs CSS, dans certains cas, certes c’est très utile mais dans de nombreux autres, une méthodologie bien carrée suffit amplement. Du site bio en somme.</p>
  516. <p>La source est minifiée ? On s’en fout, on peut utiliser le DOM sous Firebug pour comprendre. (oui bon, pour CSS c’était facile :) )</p>
  517. <p>Après, je pense qu’on peut aussi se regarder le nombril, et se rendre compte que les articles qui expliquent simplement… baissent en nombre. Et il y a peu de recul sur cette course à l’armement à l’automatisation et à la complexification.</p>
  518. <p>Effectivement, j’ai l’impression que c’est de plus en plus élitiste, et que les débutants vont ramer de plus en plus (j’espère vraiment me tromper). Ce qui est marrant, c’est que ces débutants seront nos collègues, et d’ici quelques années, on va se marrer à leur expliquer des trucs basiques qu’ils n’auront jamais appris, parce que « c’est inclus dans mon Boostrap-react-autoprefixer ». Là, j’estime qu’on a une responsabilité.</p>
  519. <p>Mais bon, c’est pas comme si les blogs, les sites communautaires, etc. n’existaient pas. Ah si, tiens ils existent. Et si on les alimentait tout simplement ? Déjà ça décentralise l’info, et en plus, ça remet en place les réseaux sociaux pour ce qu’ils sont : des caisses de résonance. </p>
  520. <p><cite>Nicolas Hoffmann, le <a href="#comment-1">2015-05-26 à 21:54:21</a></cite></p>
  521. </article>
  522. <article id="comment-2" class="comment">
  523. <p>Hello Nicolas,</p>
  524. <blockquote>
  525. <p>Je tourne plutôt vers une tendance inverse : réduire la dépendance aux outils (ce qui ne veut pas dire que je n’en utilise pas).</p>
  526. </blockquote>
  527. <p>Je ne vois pas où tu as lu que j’encourage une plus grande dépendance aux outils…</p>
  528. <blockquote>
  529. <p>La source est minifiée ? On s’en fout, on peut utiliser le DOM sous Firebug pour comprendre. (oui bon, pour CSS c’était facile :) )</p>
  530. </blockquote>
  531. <p>Bon déjà pour utiliser encore Firebug il faut être riche en ram ;)
  532. Ensuite c’est encore plutôt archaïque comparé à ce que j’aimerais avoir pour explorer une page et ses interactions. Il est de plus en plus difficile de comprendre le moindre site sans comprendre les sources JS.</p>
  533. <blockquote>
  534. <p>Après, je pense qu’on peut aussi se regarder le nombril, et se rendre compte que les articles qui expliquent simplement… baissent en nombre. Et il y a peu de recul sur cette course à l’armement à l’automatisation et à la complexification.</p>
  535. </blockquote>
  536. <p>La simplicité ne passe pas forcément par la réduction des outils. Un inspecteur bien foutu ou un framework qui permet de regrouper les différents éléments d’un composant web pourraient être autant d’aides à une meilleure compréhension d’une page web. Le navigateur offre un avantage exceptionnel en terme de contextualisation du code, exploitons-le !</p>
  537. <p><cite>David Larlet, le <a href="#comment-2">2015-06-04 à 14:49:18</a></cite></p>
  538. </article>
  539. <article id="comment-3" class="comment">
  540. <blockquote>
  541. <p>Bon déjà pour utiliser encore Firebug il faut être riche en ram ;)
  542. Ensuite c’est encore plutôt archaïque comparé à ce que j’aimerais avoir pour explorer une page et ses interactions. Il est de plus en plus difficile de comprendre le moindre site sans comprendre les sources JS.</p>
  543. </blockquote>
  544. <p>Étape 1. Désinstallez Firebug<br />
  545. Étape 2. Utilisez les Developer Tools de Firefox<br />
  546. Étape 3. <a href="https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox&amp;component=Developer%20Tools">Ouvrir des bugs pour ce qui manque</a>.</p>
  547. <p>La RAM s’en portera beaucoup mieux.</p>
  548. <p><cite>Karl Dubost, le <a href="#comment-3">2015-06-04 à 14:49:55</a></cite></p>
  549. </article>
  550. <article id="comment-4" class="comment">
  551. <blockquote>
  552. <p>Je ne vois pas où tu as lu que j’encourage une plus grande dépendance aux outils…</p>
  553. </blockquote>
  554. <p>Nulle part, tu indiques que "les nouveaux arrivants qui (au mieux !) doivent trouver le dépôt, installer les 15 dépendances système, installer la moitié du net avec NodeJS et finalement builder votre site pour comprendre un détail de CSS".</p>
  555. <p>C’est à ça que je répondais que je préfère réduire la dépendance, typiquement pour éviter ça. :)
  556. Au temps pour moi si je n’étais pas clair.</p>
  557. <blockquote>
  558. <p>Bon déjà pour utiliser encore Firebug il faut être riche en ram ;)
  559. Ensuite c’est encore plutôt archaïque comparé à ce que j’aimerais avoir pour explorer une page et ses interactions. Il est de plus en plus difficile de comprendre le moindre site sans comprendre les sources JS.</p>
  560. </blockquote>
  561. <p>Bon point pour Firebug, que j’ai laissé tomber au boulot depuis quelques semaines, trop consommateur de mémoire.</p>
  562. <blockquote>
  563. <p>La simplicité ne passe pas forcément par la réduction des outils. Un inspecteur bien foutu ou un framework qui permet de regrouper les différents éléments d’un composant web pourraient être autant d’aides à une meilleure compréhension d’une page web. Le navigateur offre un avantage exceptionnel en terme de contextualisation du code, exploitons-le !</p>
  564. </blockquote>
  565. <p>Même si tu n’as pas tort, je trouve que souvent il y a trop d’outils dont les possibilités se chevauchent, alors qu’une bonne méthodo fait autant de bien... sinon plus.</p>
  566. <blockquote>
  567. <p>La RAM s’en portera beaucoup mieux.</p>
  568. </blockquote>
  569. <p>Comme dit plus haut, +1. Faut que je regarde d’ailleurs, j’en aurais p-e qq uns à faire remonter.</p>
  570. <p><cite>Nicolas Hoffmann, le <a href="#comment-4">2015-06-04 à 15:06:35</a></cite></p>
  571. </article>
  572. </section>
  573. <figure class="image" property="schema:image">
  574. <img src="/static/david/blog/2015/web-mort.jpg" alt="" />
  575. </figure>
  576. <nav id="jumpto">
  577. <p>
  578. <a rel=prev href="/david/blog/2015/strategies-sso/">← Stratégies SSO</a> | <a href="/david/blog/" title="Retour à la liste des expériences">↑</a> | <a rel=next href="/david/blog/2015/formation-js-avance/">Formation JS Avancé →</a>
  579. </p>
  580. </nav>
  581. <footer>
  582. <div>
  583. <img src="/static/david/david-larlet-avatar.jpg" loading="lazy" class="avatar" width="200" height="200">
  584. <p>
  585. Bonjour/Hi!
  586. 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>
  587. 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>).
  588. </p>
  589. <p>
  590. 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>.
  591. </p>
  592. <p>
  593. Les dernières publications hebdomadaires sont :
  594. </p>
  595. <ul class="with_columns">
  596. <li>
  597. <a href="/david/stream/2019/12/17/">Origines</a>
  598. </li>
  599. <li>
  600. <a href="/david/stream/2019/12/10/">Publier</a>
  601. </li>
  602. <li>
  603. <a href="/david/stream/2019/12/03/">En forêt</a>
  604. </li>
  605. <li>
  606. <a href="/david/stream/2019/11/26/">Ecocentric</a>
  607. </li>
  608. <li>
  609. <a href="/david/stream/2019/11/19/">Se livrer</a>
  610. </li>
  611. <li>
  612. <a href="/david/stream/2019/11/12/">Dépendances</a>
  613. </li>
  614. <li>
  615. <a href="/david/stream/2019/11/05/">Positif</a>
  616. </li>
  617. <li>
  618. <a href="/david/stream/2019/10/29/">Dettes</a>
  619. </li>
  620. <li>
  621. <a href="/david/stream/2019/10/22/">Privilèges</a>
  622. </li>
  623. <li>
  624. <a href="/david/stream/2019/10/15/">Discrétion</a>
  625. </li>
  626. <li>
  627. <a href="/david/stream/2019/10/08/">Désespérance</a>
  628. </li>
  629. <li>
  630. <a href="/david/stream/2019/10/01/">Présent</a>
  631. </li>
  632. <li>
  633. <a href="/david/stream/2019/09/24/">Manifester</a>
  634. </li>
  635. <li>
  636. <a href="/david/stream/2019/09/17/">Arpenter</a>
  637. </li>
  638. <li>
  639. <a href="/david/stream/2019/09/10/">Nostalgie</a>
  640. </li>
  641. <li>
  642. <a href="/david/stream/2019/09/03/">Déconstruire</a>
  643. </li>
  644. <li>
  645. <a href="/david/stream/2019/08/27/">Documenter</a>
  646. </li>
  647. <li>
  648. <a href="/david/stream/2019/08/20/">Frustration</a>
  649. </li>
  650. <li>
  651. <a href="/david/stream/2019/08/13/">Holisme</a>
  652. </li>
  653. <li>
  654. <a href="/david/stream/2019/08/06/">1%</a>
  655. </li>
  656. <li>
  657. <a href="/david/stream/2019/07/30/">Exemplarité</a>
  658. </li>
  659. <li>
  660. <a href="/david/stream/2019/07/23/">Timelines</a>
  661. </li>
  662. <li>
  663. <a href="/david/stream/2019/07/16/">Écoute</a>
  664. </li>
  665. <li>
  666. <a href="/david/stream/2019/07/02/">Anxiété</a>
  667. </li>
  668. <li>
  669. <a href="/david/stream/2019/06/21/">À lier</a>
  670. </li>
  671. <li>
  672. <a href="/david/stream/2019/06/14/">Pauvreté</a>
  673. </li>
  674. <li>
  675. <a href="/david/stream/2019/06/07/">Amateur</a>
  676. </li>
  677. <li>
  678. <a href="/david/stream/2019/05/31/">Pollution</a>
  679. </li>
  680. <li>
  681. <a href="/david/stream/2019/05/24/">Apaisement</a>
  682. </li>
  683. <li>
  684. <a href="/david/stream/2019/05/10/">Folie</a>
  685. </li>
  686. <li>
  687. <a href="/david/stream/2019/05/03/">Sympathie</a>
  688. </li>
  689. <li>
  690. <a href="/david/stream/2019/04/12/">Péremption</a>
  691. </li>
  692. <li>
  693. <a href="/david/stream/2019/04/05/">Définitions</a>
  694. </li>
  695. <li>
  696. <a href="/david/stream/2019/03/29/">Acceptation</a>
  697. </li>
  698. <li>
  699. <a href="/david/stream/2019/03/22/">Dissonance</a>
  700. </li>
  701. <li>
  702. <a href="/david/stream/2019/03/15/">Reconnaissance</a>
  703. </li>
  704. <li>
  705. <a href="/david/stream/2019/03/08/">Lecture</a>
  706. </li>
  707. <li>
  708. <a href="/david/stream/2019/03/01/">Journaux</a>
  709. </li>
  710. <li>
  711. <a href="/david/stream/2019/02/22/">Écriture</a>
  712. </li>
  713. <li>
  714. <a href="/david/stream/2019/02/15/">Kyriarchie</a>
  715. </li>
  716. <li>
  717. <a href="/david/stream/2019/02/08/">Mots-serrures</a>
  718. </li>
  719. <li>
  720. <a href="/david/stream/2019/02/01/">Sans voie</a>
  721. </li>
  722. <li>
  723. <a href="/david/stream/2019/01/25/">Auto-diagnostic</a>
  724. </li>
  725. <li>
  726. <a href="/david/stream/2019/01/18/">Agilité</a>
  727. </li>
  728. <li>
  729. <a href="/david/stream/2019/01/11/">Métaphores</a>
  730. </li>
  731. <li>
  732. <a href="/david/stream/2019/01/04/">Balbutiements</a>
  733. </li>
  734. </ul>
  735. <p>
  736. Voici quelques articles choisis :
  737. <a href="/david/blog/2019/faire-equipe/" title="Accéder à l’article complet">Faire équipe</a>,
  738. <a href="/david/blog/2018/bivouac-automnal/" title="Accéder à l’article complet">Bivouac automnal</a>,
  739. <a href="/david/blog/2018/commodite-effondrement/" title="Accéder à l’article complet">Commodité et effondrement</a>,
  740. <a href="/david/blog/2017/donnees-communs/" title="Accéder à l’article complet">Des données aux communs</a>,
  741. <a href="/david/blog/2016/accompagner-enfant/" title="Accéder à l’article complet">Accompagner un enfant</a>,
  742. <a href="/david/blog/2016/senior-developer/" title="Accéder à l’article complet">Senior developer</a>,
  743. <a href="/david/blog/2016/illusion-sociale/" title="Accéder à l’article complet">L’illusion sociale</a>,
  744. <a href="/david/blog/2016/instantane-scopyleft/" title="Accéder à l’article complet">Instantané Scopyleft</a>,
  745. <a href="/david/blog/2016/enseigner-web/" title="Accéder à l’article complet">Enseigner le Web</a>,
  746. <a href="/david/blog/2016/simplicite-defaut/" title="Accéder à l’article complet">Simplicité par défaut</a>,
  747. <a href="/david/blog/2016/minimalisme-esthetique/" title="Accéder à l’article complet">Minimalisme et esthétique</a>,
  748. <a href="/david/blog/2014/un-web-omni-present/" title="Accéder à l’article complet">Un web omni-présent</a>,
  749. <a href="/david/blog/2014/manifeste-developpeur/" title="Accéder à l’article complet">Manifeste de développeur</a>,
  750. <a href="/david/blog/2013/confort-convivialite/" title="Accéder à l’article complet">Confort et convivialité</a>,
  751. <a href="/david/blog/2013/testament-numerique/" title="Accéder à l’article complet">Testament numérique</a>,
  752. et <a href="/david/blog/" title="Accéder aux archives">bien d’autres…</a>
  753. </p>
  754. <p>
  755. 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>.
  756. </p>
  757. <p>
  758. Je ne traque pas ta navigation mais mon
  759. <abbr title="Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33.184162340">hébergeur</abbr>
  760. conserve des logs d’accès.
  761. </p>
  762. </div>
  763. </footer>
  764. <script type="text/javascript">
  765. ;(_ => {
  766. const jumper = document.getElementById('jumper')
  767. jumper.addEventListener('click', e => {
  768. e.preventDefault()
  769. const anchor = e.target.getAttribute('href')
  770. const targetEl = document.getElementById(anchor.substring(1))
  771. targetEl.scrollIntoView({behavior: 'smooth'})
  772. })
  773. })()
  774. </script>
  775. <script>
  776. /* Service workers */
  777. if (navigator.serviceWorker) {
  778. window.addEventListener('load', function () {
  779. var selector = 'a[href^="/david/cache/"], a[rel=prev], a[rel=next]'
  780. function sendLinks (selector) {
  781. var links = [].slice.call(document.querySelectorAll(selector)).map(function (link) {
  782. return link.getAttribute('href')
  783. })
  784. links.push(location.pathname) // Put the current page in cache too.
  785. navigator.serviceWorker.controller.postMessage({ links: links })
  786. }
  787. navigator.serviceWorker.getRegistration()
  788. .then(function (registration) {
  789. if (!registration || !navigator.serviceWorker.controller) {
  790. return navigator.serviceWorker.register('/serviceworker.js')
  791. .then(navigator.serviceWorker.ready)
  792. .then(function () {
  793. console.log('[ServiceWorker] Ready to go!')
  794. })
  795. .catch(console.error.bind(console))
  796. } else {
  797. console.log('[ServiceWorker] Send links via registration')
  798. sendLinks(selector)
  799. }
  800. })
  801. navigator.serviceWorker.addEventListener('controllerchange', function () {
  802. console.log('[ServiceWorker] Send links via controller change')
  803. sendLinks(selector)
  804. })
  805. navigator.serviceWorker.addEventListener('message', function (event) {
  806. var link = document.querySelector('a[href="' + event.data.link + '"]')
  807. if (event.data.status && link) {
  808. link.style.backgroundColor = '#2d7474'
  809. link.style.color = '#f0f0ea'
  810. link.setAttribute('title', 'En cache pour consultation sans connexion')
  811. }
  812. })
  813. })
  814. } else {
  815. console.warn('[ServiceWorker] No cache for old browsers.')
  816. }
  817. </script>