A place to cache linked articles (think custom and personal wayback machine)
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

index.html 32KB

4 år sedan
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534
  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>Blogging on Medium (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://medium.com/inside/blogging-on-medium-95f1546bcd7d">
  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. Blogging on Medium (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://medium.com/inside/blogging-on-medium-95f1546bcd7d">Source originale du contenu</a></h3>
  445. <p name="2bea" id="2bea" class="graf--p graf--first"><em class="markup--em markup--p-em">I’m an advisor to Medium and stepped in to run one of the product teams for a brief stint last year. On October 16, Ev sent me the following direct message on Twitter:</em></p>
  446. <figure name="f25f" id="f25f" class="graf--figure"><div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 236px;"><div class="aspect-ratio-fill"></div><img class="graf-image" data-image-id="1*1ZzVjUOGGww2I5FYal-TSQ.jpeg" data-width="2316" data-height="780" data-action="zoom" data-action-value="1*1ZzVjUOGGww2I5FYal-TSQ.jpeg" src="https://medium2.global.ssl.fastly.net/max/960/1*1ZzVjUOGGww2I5FYal-TSQ.jpeg"></div><figcaption class="imageCaption">This touched on something that had been bothering Ev for a while: <a href="https://medium.com/inside/casual-content-613b6ce4c2cc" data-href="https://medium.com/inside/casual-content-613b6ce4c2cc" class="markup--anchor markup--figure-anchor" rel="nofollow">https://medium.com/inside/casual-content-613b6ce4c2cc</a></figcaption></figure>
  447. <p name="8e3e" id="8e3e" class="graf--p graf--last"><em class="markup--em markup--p-em">On October 30, 2014, I published this internally for Medium employees. It kicked off an effort to build “bloggy Medium,” the first part of which </em><a href="https://medium.com/the-story/a-less-long-more-connected-medium-c345db2d6a56" data-href="https://medium.com/the-story/a-less-long-more-connected-medium-c345db2d6a56" class="markup--anchor markup--p-anchor"><em class="markup--em markup--p-em">launched yesterday</em></a><em class="markup--em markup--p-em">. (</em><a href="https://medium.com/inside/hatching-inside-medium-5ae60292d655" data-href="https://medium.com/inside/hatching-inside-medium-5ae60292d655" class="markup--anchor markup--p-anchor"><em class="markup--em markup--p-em">More context on Inside Medium</em></a><em class="markup--em markup--p-em">.)</em></p>
  448. <p></div></div></section><section name="bea6" class=" section--body"><div class="section-divider layoutSingleColumn"><hr class="section-divider"></div><div class="section-content"><div class="section-inner layoutSingleColumn"><h3 name="0123" id="0123" class="graf--h3 graf--first">Blogging on Medium</h3><p name="f062" id="f062" class="graf--p"><em class="markup--em markup--p-em">tl;dr: you can’t do it today. and i think you should be able to.</em></p><p name="a324" id="a324" class="graf--p"><strong class="markup--strong markup--p-strong">Hi. My name is Michael, and I’m a blogger. </strong>I’ve been blogging since before we called it that, putting words and links (and words about links) online for almost 20 years. Blogging is how I fell in love with the web, it’s how I met a bunch of my friends, it’s how I express myself, and it’s big part of how I connect and engage with the world.</p><p name="a18a" id="a18a" class="graf--p">There are a bunch of us, many many millions for sure. Writing about tech and politics and movies and music and crafting and family and religion and Star Trek. And I’d make the longview argument that what’s happening on Twitter and Facebook is just more blogging. Back when there were only a few dozen of us doing this, the notion that a billion+ people would every day use the web to update the(ir) world with what’s happening in their lives or what’s on their mind was mindblowing. And now it’s real.</p><p name="9cb8" id="9cb8" class="graf--p graf--last">So hi. I’m a blogger. And I’m not alone.</p></div></div></section><section name="376d" class=" section--body"><div class="section-divider layoutSingleColumn"><hr class="section-divider"></div><div class="section-content"><div class="section-inner layoutSingleColumn"><p name="a67b" id="a67b" class="graf--p graf--first">In the early adopter tech media echo chamber, there’s a little bit of a “blog renaissance” going on right now. (Which I’m enjoying, even though blogs never really went anywhere.) One of the sparks was Lockhart Steele’s post on The Verge back in August, “<a href="http://www.theverge.com/2014/8/20/6049259/the-future-of-blogging" data-href="http://www.theverge.com/2014/8/20/6049259/the-future-of-blogging" class="markup--anchor markup--p-anchor" rel="nofollow">The retro-futuristic future of blogging</a>,” timed with his reviving his <a href="http://lockhartsteele.com/blog/2014/08/back-to-the-blog/" data-href="http://lockhartsteele.com/blog/2014/08/back-to-the-blog/" class="markup--anchor markup--p-anchor" rel="nofollow">own blog</a>. I loved this line:</p><blockquote name="5917" id="5917" class="graf--blockquote">at a time where #longform is a hashtag known to all, perhaps it’s time for #blogging to reclaim its seat at the table, too</blockquote><p name="036d" id="036d" class="graf--p">While the people that never left just <a href="http://kottke.org/14/08/blogging" data-href="http://kottke.org/14/08/blogging" class="markup--anchor markup--p-anchor" rel="nofollow">shake their heads</a>, a <a href="http://tilde.club/~goldman" data-href="http://tilde.club/~goldman" class="markup--anchor markup--p-anchor" rel="nofollow">few</a> <a href="http://tilde.club/~mathowie/" data-href="http://tilde.club/~mathowie/" class="markup--anchor markup--p-anchor" rel="nofollow">of</a> <a href="http://tilde.club/~sippey" data-href="http://tilde.club/~sippey" class="markup--anchor markup--p-anchor" rel="nofollow">us</a> have come back to the table, using Wordpress, Tumblr, Medium or even a weird, retro <a href="http://tilde.club/" data-href="http://tilde.club/" class="markup--anchor markup--p-anchor" rel="nofollow">command-line</a> thing-a-ma-jig. Andy Baio, a contributor to The Message, is now blogging regularly again at <a href="http://waxy.org/" data-href="http://waxy.org/" class="markup--anchor markup--p-anchor" rel="nofollow">Waxy.org</a>, and he explained why in his (short) post <a href="http://waxy.org/2014/10/middling/" data-href="http://waxy.org/2014/10/middling/" class="markup--anchor markup--p-anchor" rel="nofollow">Middling</a>. I’ll quote from it, and it’s important, so I’ll make it big:</p><blockquote name="0e79" id="0e79" class="graf--pullquote pullquote">Twitter’s for 140-character short-form writing and Medium’s for long-form.</blockquote><p name="568b" id="568b" class="graf--p"><strong class="markup--strong markup--p-strong">I think this positioning is dangerous for Medium.</strong> It positions the product (and the company) as being about one type of story, and closes us off to different types of writing. And while I truly believe that Medium is the best place to write long-form stories on the Internet, I don’t think that’s enough.</p><p name="9cfb" id="9cfb" class="graf--p graf--last"><strong class="markup--strong markup--p-strong">Medium should be the best place to share stories on the Internet, regardless of length.</strong></p></div></div></section><section name="112f" class=" section--body"><div class="section-divider layoutSingleColumn"><hr class="section-divider"></div><div class="section-content"><div class="section-inner layoutSingleColumn"><p name="76e4" id="76e4" class="graf--p graf--first">I’ve been trying to blog on Medium the past couple of months in <a href="http://medium.com/stating-the-obvious" data-href="http://medium.com/stating-the-obvious" class="markup--anchor markup--p-anchor">Stating the Obvious</a>. And while I’ve loved <em class="markup--em markup--p-em">writing</em> the weekly filtered pieces, it really hasn’t felt like blogging. I couldn’t put my finger on why until Anil Dash posted a thing on dashes.com about the <a href="http://dashes.com/anil/2014/09/15-lessons-from-15-years-of-blogging.html" data-href="http://dashes.com/anil/2014/09/15-lessons-from-15-years-of-blogging.html" class="markup--anchor markup--p-anchor" rel="nofollow">15 lessons he’s learned from 15 years of blogging</a>. Here’s the one lesson that stuck with me:</p><blockquote name="7983" id="7983" class="graf--blockquote"><strong class="markup--strong markup--blockquote-strong">The scroll is your friend. </strong>If you write a bad post or something you don’t like, just post again. If you write something great that you’re really proud of and nobody notices, just post again. One foot in front of the other, one word after another, is the only path I’ve found to an overall body of work that I’m proud of. Push posts down the page, and the good and the bad will just scroll away.</blockquote><p name="7900" id="7900" class="graf--p">I’ve been blogging for a long time (and even ran product at a blogging company for a long time) and have read God knows how many blog posts (and books!) about blogging. And frankly this is the most profound thing I’ve ever read about blogging. Because not only is it about the process (just post again) it’s about the <em class="markup--em markup--p-em">outcome</em> of that process. And the outcome of that process is the stream.</p><blockquote name="87cc" id="87cc" class="graf--pullquote pullquote"><strong class="markup--strong markup--pullquote-strong"><em class="markup--em markup--pullquote-em">The fundamental unit of the blog is not the blog post. The fundamental unit of the blog is the </em>stream<em class="markup--em markup--pullquote-em">.</em></strong></blockquote><p name="3222" id="3222" class="graf--p graf--last">And <em class="markup--em markup--p-em">this</em> is why blogging on Medium has felt unnatural. Despite the kick-ass world-class editor, the simple distribution model, the fantastic emails that give me kudos; despite recommends and notes and stats; despite knowing that my stories will look great on desktop and mobile, it’s not blogging. And that’s because I’m not building a stream, there’s nothing to push down. While I’m building a corpus of standalone stories, there’s no way to read them together and have that <em class="markup--em markup--p-em">stream</em> tell a story.</p></div></div></section><section name="433c" class=" section--body"><div class="section-divider layoutSingleColumn"><hr class="section-divider"></div><div class="section-content"><div class="section-inner layoutSingleColumn"><p name="7886" id="7886" class="graf--p graf--first">So we started to brainstorm a bit about what blogging on Medium would look like, and how we could support both #longform and #shortform in one platform. And while publications could be great group blogs (and there are great use cases for shorter form in a publication context, see below), we started at the simplest place: the user profile.</p><figure name="b8de" id="b8de" class="graf--figure"><div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 1250px;"><div class="aspect-ratio-fill"></div><img class="graf-image" data-image-id="1*-WhHEIYNclJIXl4qk0M9IA.png" data-width="700" data-height="1250" src="https://medium2.global.ssl.fastly.net/max/960/1*-WhHEIYNclJIXl4qk0M9IA.png"></div></figure><p name="3b55" id="3b55" class="graf--p"><strong class="markup--strong markup--p-strong">What’s in this?</strong></p><ul class="postList"><li name="9768" id="9768" class="graf--li">Reverse chron stream of writing and recommending activity. Infinite scroll.</li><li name="638f" id="638f" class="graf--li">Short posts (things that are &lt; 1 min read time or some short word count) are displayed inline, right there! If you can read it inline, you can recommend it inline. May or may not contain a title, may or may not contain an image</li><li name="9868" id="9868" class="graf--li">Longer posts are displayed like an inline bento listing, with social proof of recommends that they’ve received.</li><li name="8c66" id="8c66" class="graf--li">Recommend actions displayed inline. They’re 1-by-1 in this mock, but you can imagine coalescing them if need be.</li><li name="be8c" id="be8c" class="graf--li">Sidebar with profile lockup (following / follower count), and, if the writer is part of a publication, what they edit and what they contribute to.</li></ul><p name="78eb" id="78eb" class="graf--p">Then we started thinking about how you’d actually write shorter stuff. (This is related to the post a few weeks ago on a minimum viable editor.)What if there were a “Write” button directly on your profile, and instead of opening a new window, it just pushed down your content and opened up an editor right there?</p><figure name="c978" id="c978" class="graf--figure"><div class="aspectRatioPlaceholder is-locked" style="max-width: 700px; max-height: 589px;"><div class="aspect-ratio-fill"></div><img class="graf-image" data-image-id="1*qSPK8Px0Kfc1g2gtrcucwQ.png" data-width="1400" data-height="1178" data-action="zoom" data-action-value="1*qSPK8Px0Kfc1g2gtrcucwQ.png" src="https://medium2.global.ssl.fastly.net/max/960/1*qSPK8Px0Kfc1g2gtrcucwQ.png"></div></figure><p name="9666" id="9666" class="graf--p graf--last">The mechanics here aren’t figured out (obviously), but you can imagine an option where you can explicitly “write a longer story” or after you’ve written a certain number of words the editor expands to fill the entire screen and you have access to the full suite of tools. If you write in the full editor, your story is displayed as a bento-style listing. If you write inline, it’s displayed inline.</p></div></div></section><section name="4e6e" class=" section--body"><div class="section-divider layoutSingleColumn"><hr class="section-divider"></div><div class="section-content"><div class="section-inner layoutSingleColumn"><p name="bb41" id="bb41" class="graf--p graf--first">There are a bunch of additional problems to solve / opportunities to address with short form:</p><ul class="postList"><li name="7e5c" id="7e5c" class="graf--li">How could publications take advantage of this? Magazines have front of the book / back of the book content as well as features — publications should, too!</li><li name="f4da" id="f4da" class="graf--li">How can we make the “permalink pages” for the short form posts really compelling? If you visit a Tumblr permalink page today that only has an animated gif or a quote or a link, they’re reaaaaally lame. How could we drop a user into the context of a stream when they’re coming from a link shared on Facebook, Twitter or email?</li><li name="aedb" id="aedb" class="graf--li">How could we integrate responses into this model? I think responses are a GREAT addition to Medium; is there an interesting way to have them feel natural as part of a stream?</li></ul><p name="3976" id="3976" class="graf--p">And there are real tensions…</p><ul class="postList"><li name="b077" id="b077" class="graf--li">Everything social on the Internet is trending towards this reverse chron model, with social feedback loops and notifications… While there really isn’t a product like this out on the Internet today (Facebook isn’t it, Twitter isn’t it, Tumblr is sort of it, but has two faces) is it <em class="markup--em markup--li-em">too much like everything else?</em></li><li name="1517" id="1517" class="graf--li graf--last">███████████████████████████?</li></ul></div></div></section><section name="3d8d" class=" section--body section--last"><div class="section-divider layoutSingleColumn"><hr class="section-divider"></div><div class="section-content"><div class="section-inner layoutSingleColumn"><p name="0f09" id="0f09" class="graf--p graf--first">So here’s what we’re going to do: <strong class="markup--strong markup--p-strong">prototype</strong>. On the product development side, we’re going to prototype a version of the profile page with this type of stream on it. Just to see how it feels, and if this is something that we think would work in the current product.</p><p name="451d" id="451d" class="graf--p">As a team we’d love to hear your feedback on this, especially these questions:</p><ol class="postList"><li name="04c5" id="04c5" class="graf--li">Is this a valuable problem for us to solve?</li><li name="84ea" id="84ea" class="graf--li">If you’re a publication editor on Medium, how would you use short form content, and would a “stream” be a useful thing to integrate?</li><li name="5a4d" id="5a4d" class="graf--li">How do we build a “stream” without becoming just like everything else on the Internet?</li></ol>
  449. </div></div></section></p>
  450. </article>
  451. </section>
  452. <nav id="jumpto">
  453. <p>
  454. <a href="/david/blog/">Accueil du blog</a> |
  455. <a href="https://medium.com/inside/blogging-on-medium-95f1546bcd7d">Source originale</a> |
  456. <a href="/david/stream/2019/">Accueil du flux</a>
  457. </p>
  458. </nav>
  459. <footer>
  460. <div>
  461. <img src="/static/david/david-larlet-avatar.jpg" loading="lazy" class="avatar" width="200" height="200">
  462. <p>
  463. Bonjour/Hi!
  464. 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>
  465. 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>).
  466. </p>
  467. <p>
  468. 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>.
  469. </p>
  470. <p>
  471. Voici quelques articles choisis :
  472. <a href="/david/blog/2019/faire-equipe/" title="Accéder à l’article complet">Faire équipe</a>,
  473. <a href="/david/blog/2018/bivouac-automnal/" title="Accéder à l’article complet">Bivouac automnal</a>,
  474. <a href="/david/blog/2018/commodite-effondrement/" title="Accéder à l’article complet">Commodité et effondrement</a>,
  475. <a href="/david/blog/2017/donnees-communs/" title="Accéder à l’article complet">Des données aux communs</a>,
  476. <a href="/david/blog/2016/accompagner-enfant/" title="Accéder à l’article complet">Accompagner un enfant</a>,
  477. <a href="/david/blog/2016/senior-developer/" title="Accéder à l’article complet">Senior developer</a>,
  478. <a href="/david/blog/2016/illusion-sociale/" title="Accéder à l’article complet">L’illusion sociale</a>,
  479. <a href="/david/blog/2016/instantane-scopyleft/" title="Accéder à l’article complet">Instantané Scopyleft</a>,
  480. <a href="/david/blog/2016/enseigner-web/" title="Accéder à l’article complet">Enseigner le Web</a>,
  481. <a href="/david/blog/2016/simplicite-defaut/" title="Accéder à l’article complet">Simplicité par défaut</a>,
  482. <a href="/david/blog/2016/minimalisme-esthetique/" title="Accéder à l’article complet">Minimalisme et esthétique</a>,
  483. <a href="/david/blog/2014/un-web-omni-present/" title="Accéder à l’article complet">Un web omni-présent</a>,
  484. <a href="/david/blog/2014/manifeste-developpeur/" title="Accéder à l’article complet">Manifeste de développeur</a>,
  485. <a href="/david/blog/2013/confort-convivialite/" title="Accéder à l’article complet">Confort et convivialité</a>,
  486. <a href="/david/blog/2013/testament-numerique/" title="Accéder à l’article complet">Testament numérique</a>,
  487. et <a href="/david/blog/" title="Accéder aux archives">bien d’autres…</a>
  488. </p>
  489. <p>
  490. 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>.
  491. </p>
  492. <p>
  493. Je ne traque pas ta navigation mais mon
  494. <abbr title="Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33.184162340">hébergeur</abbr>
  495. conserve des logs d’accès.
  496. </p>
  497. </div>
  498. </footer>
  499. <script type="text/javascript">
  500. ;(_ => {
  501. const jumper = document.getElementById('jumper')
  502. jumper.addEventListener('click', e => {
  503. e.preventDefault()
  504. const anchor = e.target.getAttribute('href')
  505. const targetEl = document.getElementById(anchor.substring(1))
  506. targetEl.scrollIntoView({behavior: 'smooth'})
  507. })
  508. })()
  509. </script>