Repository with sources and generator of https://larlet.fr/david/ https://larlet.fr/david/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.html 34KB

4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
4 jaren geleden
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858
  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>Cours IUT : Candidature spontanée — 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/cours-iut-candidature-spontanee/">
  29. <!-- SEO/Semantic metadata -->
  30. <meta name="description" content="Je souhaitais vérifier qu’ils arrivaient à mettre en valeur ce qu’ils avaient assimilé lors du cours." />
  31. <meta name="twitter:description" property="og:description" itemprop="description" content="Je souhaitais vérifier qu’ils arrivaient à mettre en valeur ce qu’ils avaient assimilé lors du cours." />
  32. <meta name="twitter:title" property="og:title" itemprop="name" content="Cours IUT : Candidature spontanée" />
  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/cours-iut-candidature-spontanee/" />
  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/cours-iut-candidature-spontanee.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. Cours IUT : Candidature spontanée
  448. <time>Publié le 2 mars 2015</time>
  449. </h1>
  450. <article class="single">
  451. <blockquote>
  452. <p>Je suis le directeur technique du site lemonde.fr, vous avez 2 heures pour m’envoyer un email de candidature spontanée. Vous disposez de toutes les ressources et discussions qui vous semblent nécessaires.</p>
  453. </blockquote>
  454. <p>C’est ainsi que débutait cette évaluation du <a href="/david/pro/enseignement/">cours</a> sur le <a href="/david/blog/2015/cours-iut-web-mobile/">Web Mobile</a>.</p>
  455. <h2>Motivations</h2>
  456. <p><strong>Je souhaitais vérifier qu’ils arrivaient à mettre en valeur ce qu’ils avaient assimilé lors du cours.</strong> Leur faire prendre conscience aussi qu’ils pouvaient être très bons mais s’ils ne parviennent pas à obtenir un entretien cela ne sert pas à grand chose. Ayant 2 heures à tuer, je me suis prêté au jeu et j’ai rédigé ma propre candidature spontanée en me mettant à leur place/niveau de connaissances.</p>
  457. <h2>Ma réponse</h2>
  458. <p>Objet : <em>Candidature spontanée pour améliorer LeMonde</em><br />
  459. Destinataire : <em>Olivier Grange-Labat</em></p>
  460. <p>Bonjour Olivier,</p>
  461. <p>Je crée des sites web depuis 4 ans dont 2 ans à mon compte et je viens de valider une année de licence professionnelle dédiée à la création de sites internet. Cela m’a permis de me familiariser avec les notions de frameworks (Bootstrap et AngularJS) et de CMS (Wordpress). J’ai aussi eu l’occasion de développer en JavaScript et d’explorer les possibilités offertes par le web mobile.</p>
  462. <p>Je souhaite intégrer votre équipe technique pour les challenges auxquels vous êtes confrontés au quotidien compte tenu des contraintes journalistiques et de votre popularité.</p>
  463. <p>Je pense pouvoir vous apporter mes compétences et mon énergie dans trois domaines :</p>
  464. <h3>Performances</h3>
  465. <p>J’ai remarqué qu’il était possible (naïvement) d’améliorer les performances de votre site. Il y a actuellement plus de 200 requêtes effectuées au chargement de la page d’accueil, ce qui prend 30 secondes à charger totalement en 3G. C’est en deçà des standards actuels en terme de réactivité et cela s’explique de plusieurs manières :</p>
  466. <ul>
  467. <li>les fichiers JavaScript (44) ne sont pas réunis ni compressés ;</li>
  468. <li>les fichiers CSS (21) ne sont pas non plus optimisés.</li>
  469. </ul>
  470. <p>Cela engendre des effets de bord comme le chargement de l’image des <em>sprites</em> CSS en double à la fois appelées par <code>widgets.css</code> et <code>footer.css</code> pour la page d’accueil.</p>
  471. <ul>
  472. <li>beaucoup de fichiers n’ont pas des durées de cache satisfaisantes pour pouvoir réafficher la page sans effectuer de requêtes supplémentaires.</li>
  473. </ul>
  474. <p>Il y a bien sûr les contraintes liées aux partenaires publicitaires mais d’autres fichiers dépendants du CDN pourraient être optimisés.</p>
  475. <ul>
  476. <li>la taille totale des fichiers CSS (230KB) est importante.</li>
  477. </ul>
  478. <p>Il serait possible de regrouper les styles propres à l’affichage du contenu au-dessus de la ligne de flottaison et de les intégrer directement dans le <code>HTML</code> pour ne charger les styles additionnels que de manière asynchrone ensuite.</p>
  479. <p><em>Je suis motivé pour mettre en place un workflow de publication qui prenne en compte des métriques de performances afin d’améliorer incrémentalement la situation.</em></p>
  480. <h3>Lisibilité</h3>
  481. <p>J’ai reproduit la fonctionnalité de lecture Zen en une quinzaine de lignes de JavaScript (à coller dans la console du navigateur) :</p>
  482. <div class="codehilite"><pre><span class="kd">var</span> <span class="nx">title</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">querySelector</span><span class="p">(</span><span class="s1">&#39;article h1&#39;</span><span class="p">);</span>
  483. <span class="kd">var</span> <span class="nx">content</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="s1">&#39;articleBody&#39;</span><span class="p">);</span>
  484. <span class="nb">document</span><span class="p">.</span><span class="nx">open</span><span class="p">();</span>
  485. <span class="nb">document</span><span class="p">.</span><span class="nx">write</span><span class="p">(</span><span class="nx">title</span><span class="p">.</span><span class="nx">outerHTML</span> <span class="o">+</span> <span class="nx">content</span><span class="p">.</span><span class="nx">outerHTML</span><span class="p">);</span>
  486. <span class="nb">document</span><span class="p">.</span><span class="nx">close</span><span class="p">();</span>
  487. <span class="nx">title</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">querySelector</span><span class="p">(</span><span class="s1">&#39;h1&#39;</span><span class="p">);</span>
  488. <span class="nx">content</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="s1">&#39;articleBody&#39;</span><span class="p">);</span>
  489. <span class="nx">title</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">textAlign</span> <span class="o">=</span> <span class="s1">&#39;center&#39;</span><span class="p">;</span>
  490. <span class="nx">title</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">fontSize</span> <span class="o">=</span> <span class="s1">&#39;40px&#39;</span><span class="p">;</span>
  491. <span class="nx">title</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">color</span> <span class="o">=</span> <span class="s1">&#39;#555&#39;</span><span class="p">;</span>
  492. <span class="nx">content</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">fontSize</span> <span class="o">=</span> <span class="s1">&#39;25px&#39;</span><span class="p">;</span>
  493. <span class="nx">content</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">width</span> <span class="o">=</span> <span class="s1">&#39;30em&#39;</span><span class="p">;</span>
  494. <span class="nx">content</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">lineHeight</span> <span class="o">=</span> <span class="s1">&#39;1.3&#39;</span><span class="p">;</span>
  495. <span class="nx">content</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">margin</span> <span class="o">=</span> <span class="s1">&#39;0 auto&#39;</span><span class="p">;</span>
  496. <span class="nx">content</span><span class="p">.</span><span class="nx">style</span><span class="p">.</span><span class="nx">color</span> <span class="o">=</span> <span class="s1">&#39;#07486C&#39;</span><span class="p">;</span>
  497. </pre></div>
  498. <p>Mon objectif n’est pas ici de la remplacer compte-tenu du potentiel de conversion des lecteurs/clients qu’elle représente mais bien de l’améliorer et de la personaliser en fonction des capacités de la personne.</p>
  499. <p><em>Je souhaite participer aux recherches ergonomiques et typographiques permettant d’améliorer la lisibilité du contenu du site.</em></p>
  500. <h3>Veille technologique</h3>
  501. <p>Je pratique une veille technologique au quotidien que je partage sur mon site/blog : <a href="https://larlet.fr/david/">https://larlet.fr/david/</a> . Je suis persuadé que de nombreuses expériences effectuées par l’équipe technique pourraient être partagées avec la communauté. C’est par exemple le cas pour l’équipe de M6 : <a href="http://tech.m6web.fr/">http://tech.m6web.fr/</a> .</p>
  502. <p><em>Je propose de mettre en place un espace de partage et d’échange avec la communauté qui permettrait de s’enrichir de retours externes et de pratiquer un recrutement passif.</em></p>
  503. <p>Je suis disponible pour vous rencontrer dans vos locaux ou au cours d’un déjeuner. Vous pouvez également me contacter par téléphone au 06 84 93 58 23.</p>
  504. <p>Cordialement,<br />
  505. David</p>
  506. <h2>Résultats</h2>
  507. <p>Je suis conscient de la difficulté de l’exercice, surtout réalisé en 2 heures, j’ai moi-même été pressé par le temps et dû proposer une solution JS pour le zen mode qui ne me satisfait pas et à relire le mail je pense que j’aurais changé le style mais c’est le jeu. Dans tous les échanges qui ont suivi, j’ai beaucoup insisté sur le fait qu’il s’agissait de <em>mon</em> point de vue et qu’il différait peut-être beaucoup de celui du directeur technique (Olivier si tu lis ces lignes…).</p>
  508. <p>Une seule personne sur les 10 présentes a réussie a identifier le destinataire du mail. Les autres se sont principalement adressées aux ressources humaines. Cela a donné lieu à une discussion sur l’intérêt de connaître le destinataire et de suivre <a href="https://twitter.com/ogrange">ses centres d’intérêts</a>. Ici il fallait clairement parler de React :-).</p>
  509. <p>La moitié des mails ont été des fichiers PDF joints (ou pire : du docx) comportant le CV et une lettre de candidature générique. Cela a permis de discuter de l’intérêt d’un CV et de l’importance de mettre sa candidature directement dans le corps du mail. Il a aussi été question de ratisser large vs. s’adresser à une personne et un projet. Problématique qu’ils ont déjà lors de leur recherche de stage.</p>
  510. <p>Deux étudiants ont personnalisé la candidature mais sans aller assez loin et en donnant des informations et principes trop généralistes pour être pertinents (tenter d’apprendre ce qu’est le <em>responsive design</em> à un directeur technique de journal en ligne n’est à mon avis pas une bonne idée). Il faut savoir être force de proposition tout en restant humble.</p>
  511. <p>Trois personnes ont fait des audits de performances et ont réutilisé ce que l’on avait vu en cours pour proposer leurs compétences de manière pertinente. C’est peu mais c’est déjà ça !</p>
  512. <p>Globalement, je suis un peu déçu de ce qu’ils m’ont proposé mais je pense que la discussion qui a suivie leur a donné de la matière pour réfléchir et améliorer leur approche.</p>
  513. <h2>Évaluation</h2>
  514. <p>J’ai toujours beaucoup de mal avec la notation demandée. Après discussion, la note finale aura 3 origines :</p>
  515. <ul>
  516. <li>une auto-évaluation portant sur leurs acquis puis sur l’exercice ;</li>
  517. <li>une évaluation collective sur l’exercice ;</li>
  518. <li>une évaluation de ma part sur l’exercice.</li>
  519. </ul>
  520. <p>L’évaluation auto/collective à base de post-it fonctionne très bien et prend un quart d’heure pour 10 personnes.</p>
  521. </article>
  522. <figure class="image" property="schema:image">
  523. <img src="/static/david/blog/2015/cours-iut-candidature-spontanee.jpg" alt="" />
  524. </figure>
  525. <nav id="jumpto">
  526. <p>
  527. <a rel=prev href="/david/blog/2015/livre-email/">← Livre et email</a> | <a href="/david/blog/" title="Retour à la liste des expériences">↑</a> | <a rel=next href="/david/blog/2015/cours-iut-animations-web/">Cours IUT : Animations Web →</a>
  528. </p>
  529. </nav>
  530. <footer>
  531. <div>
  532. <img src="/static/david/david-larlet-avatar.jpg" loading="lazy" class="avatar" width="200" height="200">
  533. <p>
  534. Bonjour/Hi!
  535. 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>
  536. 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>).
  537. </p>
  538. <p>
  539. 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>.
  540. </p>
  541. <p>
  542. Les dernières publications hebdomadaires sont :
  543. </p>
  544. <ul class="with_columns">
  545. <li>
  546. <a href="/david/stream/2019/12/31/">Merci</a>
  547. </li>
  548. <li>
  549. <a href="/david/stream/2019/12/27/">Intemporels</a>
  550. </li>
  551. <li>
  552. <a href="/david/stream/2019/12/24/">Outils</a>
  553. </li>
  554. <li>
  555. <a href="/david/stream/2019/12/17/">Origines</a>
  556. </li>
  557. <li>
  558. <a href="/david/stream/2019/12/10/">Publier</a>
  559. </li>
  560. <li>
  561. <a href="/david/stream/2019/12/03/">En forêt</a>
  562. </li>
  563. <li>
  564. <a href="/david/stream/2019/11/26/">Ecocentric</a>
  565. </li>
  566. <li>
  567. <a href="/david/stream/2019/11/19/">Se livrer</a>
  568. </li>
  569. <li>
  570. <a href="/david/stream/2019/11/12/">Dépendances</a>
  571. </li>
  572. <li>
  573. <a href="/david/stream/2019/11/05/">Positif</a>
  574. </li>
  575. <li>
  576. <a href="/david/stream/2019/10/29/">Dettes</a>
  577. </li>
  578. <li>
  579. <a href="/david/stream/2019/10/22/">Privilèges</a>
  580. </li>
  581. <li>
  582. <a href="/david/stream/2019/10/15/">Discrétion</a>
  583. </li>
  584. <li>
  585. <a href="/david/stream/2019/10/08/">Désespérance</a>
  586. </li>
  587. <li>
  588. <a href="/david/stream/2019/10/01/">Présent</a>
  589. </li>
  590. <li>
  591. <a href="/david/stream/2019/09/24/">Manifester</a>
  592. </li>
  593. <li>
  594. <a href="/david/stream/2019/09/17/">Arpenter</a>
  595. </li>
  596. <li>
  597. <a href="/david/stream/2019/09/10/">Nostalgie</a>
  598. </li>
  599. <li>
  600. <a href="/david/stream/2019/09/03/">Déconstruire</a>
  601. </li>
  602. <li>
  603. <a href="/david/stream/2019/08/27/">Documenter</a>
  604. </li>
  605. <li>
  606. <a href="/david/stream/2019/08/20/">Frustration</a>
  607. </li>
  608. <li>
  609. <a href="/david/stream/2019/08/13/">Holisme</a>
  610. </li>
  611. <li>
  612. <a href="/david/stream/2019/08/06/">1%</a>
  613. </li>
  614. <li>
  615. <a href="/david/stream/2019/07/30/">Exemplarité</a>
  616. </li>
  617. <li>
  618. <a href="/david/stream/2019/07/23/">Timelines</a>
  619. </li>
  620. <li>
  621. <a href="/david/stream/2019/07/16/">Écoute</a>
  622. </li>
  623. <li>
  624. <a href="/david/stream/2019/07/02/">Anxiété</a>
  625. </li>
  626. <li>
  627. <a href="/david/stream/2019/06/21/">À lier</a>
  628. </li>
  629. <li>
  630. <a href="/david/stream/2019/06/14/">Pauvreté</a>
  631. </li>
  632. <li>
  633. <a href="/david/stream/2019/06/07/">Amateur</a>
  634. </li>
  635. <li>
  636. <a href="/david/stream/2019/05/31/">Pollution</a>
  637. </li>
  638. <li>
  639. <a href="/david/stream/2019/05/24/">Apaisement</a>
  640. </li>
  641. <li>
  642. <a href="/david/stream/2019/05/10/">Folie</a>
  643. </li>
  644. <li>
  645. <a href="/david/stream/2019/05/03/">Sympathie</a>
  646. </li>
  647. <li>
  648. <a href="/david/stream/2019/04/12/">Péremption</a>
  649. </li>
  650. <li>
  651. <a href="/david/stream/2019/04/05/">Définitions</a>
  652. </li>
  653. <li>
  654. <a href="/david/stream/2019/03/29/">Acceptation</a>
  655. </li>
  656. <li>
  657. <a href="/david/stream/2019/03/22/">Dissonance</a>
  658. </li>
  659. <li>
  660. <a href="/david/stream/2019/03/15/">Reconnaissance</a>
  661. </li>
  662. <li>
  663. <a href="/david/stream/2019/03/08/">Lecture</a>
  664. </li>
  665. <li>
  666. <a href="/david/stream/2019/03/01/">Journaux</a>
  667. </li>
  668. <li>
  669. <a href="/david/stream/2019/02/22/">Écriture</a>
  670. </li>
  671. <li>
  672. <a href="/david/stream/2019/02/15/">Kyriarchie</a>
  673. </li>
  674. <li>
  675. <a href="/david/stream/2019/02/08/">Mots-serrures</a>
  676. </li>
  677. <li>
  678. <a href="/david/stream/2019/02/01/">Sans voie</a>
  679. </li>
  680. <li>
  681. <a href="/david/stream/2019/01/25/">Auto-diagnostic</a>
  682. </li>
  683. <li>
  684. <a href="/david/stream/2019/01/18/">Agilité</a>
  685. </li>
  686. <li>
  687. <a href="/david/stream/2019/01/11/">Métaphores</a>
  688. </li>
  689. <li>
  690. <a href="/david/stream/2019/01/04/">Balbutiements</a>
  691. </li>
  692. </ul>
  693. <p>
  694. Voici quelques articles choisis :
  695. <a href="/david/blog/2019/faire-equipe/" title="Accéder à l’article complet">Faire équipe</a>,
  696. <a href="/david/blog/2018/bivouac-automnal/" title="Accéder à l’article complet">Bivouac automnal</a>,
  697. <a href="/david/blog/2018/commodite-effondrement/" title="Accéder à l’article complet">Commodité et effondrement</a>,
  698. <a href="/david/blog/2017/donnees-communs/" title="Accéder à l’article complet">Des données aux communs</a>,
  699. <a href="/david/blog/2016/accompagner-enfant/" title="Accéder à l’article complet">Accompagner un enfant</a>,
  700. <a href="/david/blog/2016/senior-developer/" title="Accéder à l’article complet">Senior developer</a>,
  701. <a href="/david/blog/2016/illusion-sociale/" title="Accéder à l’article complet">L’illusion sociale</a>,
  702. <a href="/david/blog/2016/instantane-scopyleft/" title="Accéder à l’article complet">Instantané Scopyleft</a>,
  703. <a href="/david/blog/2016/enseigner-web/" title="Accéder à l’article complet">Enseigner le Web</a>,
  704. <a href="/david/blog/2016/simplicite-defaut/" title="Accéder à l’article complet">Simplicité par défaut</a>,
  705. <a href="/david/blog/2016/minimalisme-esthetique/" title="Accéder à l’article complet">Minimalisme et esthétique</a>,
  706. <a href="/david/blog/2014/un-web-omni-present/" title="Accéder à l’article complet">Un web omni-présent</a>,
  707. <a href="/david/blog/2014/manifeste-developpeur/" title="Accéder à l’article complet">Manifeste de développeur</a>,
  708. <a href="/david/blog/2013/confort-convivialite/" title="Accéder à l’article complet">Confort et convivialité</a>,
  709. <a href="/david/blog/2013/testament-numerique/" title="Accéder à l’article complet">Testament numérique</a>,
  710. et <a href="/david/blog/" title="Accéder aux archives">bien d’autres…</a>
  711. </p>
  712. <p>
  713. 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>.
  714. </p>
  715. <p>
  716. Je ne traque pas ta navigation mais mon
  717. <abbr title="Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33.184162340">hébergeur</abbr>
  718. conserve des logs d’accès.
  719. </p>
  720. </div>
  721. </footer>
  722. <script type="text/javascript">
  723. ;(_ => {
  724. const jumper = document.getElementById('jumper')
  725. jumper.addEventListener('click', e => {
  726. e.preventDefault()
  727. const anchor = e.target.getAttribute('href')
  728. const targetEl = document.getElementById(anchor.substring(1))
  729. targetEl.scrollIntoView({behavior: 'smooth'})
  730. })
  731. })()
  732. </script>
  733. <script>
  734. /* Service workers */
  735. if (navigator.serviceWorker) {
  736. window.addEventListener('load', function () {
  737. var selector = 'a[href^="/david/cache/"], a[rel=prev], a[rel=next]'
  738. function sendLinks (selector) {
  739. var links = [].slice.call(document.querySelectorAll(selector)).map(function (link) {
  740. return link.getAttribute('href')
  741. })
  742. links.push(location.pathname) // Put the current page in cache too.
  743. navigator.serviceWorker.controller.postMessage({ links: links })
  744. }
  745. navigator.serviceWorker.getRegistration()
  746. .then(function (registration) {
  747. if (!registration || !navigator.serviceWorker.controller) {
  748. return navigator.serviceWorker.register('/serviceworker.js')
  749. .then(navigator.serviceWorker.ready)
  750. .then(function () {
  751. console.log('[ServiceWorker] Ready to go!')
  752. })
  753. .catch(console.error.bind(console))
  754. } else {
  755. console.log('[ServiceWorker] Send links via registration')
  756. sendLinks(selector)
  757. }
  758. })
  759. navigator.serviceWorker.addEventListener('controllerchange', function () {
  760. console.log('[ServiceWorker] Send links via controller change')
  761. sendLinks(selector)
  762. })
  763. navigator.serviceWorker.addEventListener('message', function (event) {
  764. var link = document.querySelector('a[href="' + event.data.link + '"]')
  765. if (event.data.status && link) {
  766. link.style.backgroundColor = '#2d7474'
  767. link.style.color = '#f0f0ea'
  768. link.setAttribute('title', 'En cache pour consultation sans connexion')
  769. }
  770. })
  771. })
  772. } else {
  773. console.warn('[ServiceWorker] No cache for old browsers.')
  774. }
  775. </script>