A place to cache linked articles (think custom and personal wayback machine)
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

index.html 48KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717
  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>Superhuman’s Superficial Privacy Fixes Do Not Prevent It From Spying on You (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://mikeindustries.com/blog/archive/2019/07/superhumans-superficial-privacy-fixes-do-not-prevent-it-from-spying-on-you">
  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. Superhuman’s Superficial Privacy Fixes Do Not Prevent It From Spying on You (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://mikeindustries.com/blog/archive/2019/07/superhumans-superficial-privacy-fixes-do-not-prevent-it-from-spying-on-you">Source originale du contenu</a></h3>
  445. <p>Last week was a good week for privacy. Or was it?</p>
  446. <p>It took <a href="https://mikeindustries.com/blog/archive/2019/06/superhuman-is-spying-on-you">an article I almost didn’t publish</a> and tens of thousands of people <a href="https://twitter.com/search?q=https%3A%2F%2Fmikeindustries.com%2Fblog%2Farchive%2F2019%2F06%2Fsuperhuman-is-spying-on-you&amp;src=typed_query">saying they were creeped out</a>, but Superhuman <a href="https://blog.superhuman.com/read-statuses-bdf0cc34b6a5">admitted they were wrong and reduced the danger that their surveillance pixels introduce</a>. Good on Rahul Vohra and team for that.</p>
  447. <p>I will say, however, that I’m a little surprised how quickly some people are rolling over and giving Superhuman credit for fixing a problem that they didn’t actually fix. From tech press articles implying that the company quickly closed all of its privacy issues, to friends sending me nice notes, I don’t think people are paying close enough attention here. This is not <a href="https://en.wikipedia.org/wiki/Mission_Accomplished_speech">“Mission Accomplished”</a> for ethical product design or privacy — at all.</p>
  448. <p>I noticed two people — Walt Mossberg and Josh Constine — who spoke out immediately with the exact thoughts I had in my head.</p>
  449. <p> </p>
  450. <p> </p>
  451. <p>Let’s take a look at how Superhuman <a href="https://blog.superhuman.com/read-statuses-bdf0cc34b6a5">explains</a> their changes. Rahul correctly lays out four of the criticisms leveled at Superhuman’s read receipts:</p>
  452. <ol>
  453. <li>“Location data could be used in nefarious ways.”</li>
  454. <li>“Read statuses are on by default.”</li>
  455. <li>“Recipients of emails cannot opt out.”</li>
  456. <li>“Superhuman users cannot disable remote image loading.”</li>
  457. </ol>
  458. <p>However, he also omits the core criticism: <strong>Recipients of Superhuman emails do not know their actions are being tracked or sent back to senders.</strong></p>
  459. <p>Rahul then details the five ways they plan to address those concerns:</p>
  460. <ol>
  461. <li>“We have stopped logging location information for new email, effective immediately.”</li>
  462. <li>“We are releasing new app versions today that no longer show location information.”</li>
  463. <li>“We are deleting all historical location data from our apps.”</li>
  464. <li>“We are keeping the read status feature, but turning it off by default. Users who want it will have to explicitly turn it on.”</li>
  465. <li>“We are prioritizing building an option to disable remote image loading.”</li>
  466. </ol>
  467. <p>The first three apply only to the first criticism about location, but fine. All good moves. Bravo.</p>
  468. <p>The fourth addresses the concern about teaching customers to surveil by default but also establishes that Superhuman is keeping the feature working almost exactly as-is, with the exception of not collecting or displaying actual locations. I’ve spoken with several people about how they interpreted Rahul’s post on this particular detail. Some believed the whole log of timestamped read events was going away and were happy about that. Others read it the way Walt, Josh, and I did: <strong>you can still see exactly when and how many times someone has opened your email</strong>, complete with multiple timestamps — you just can’t see the location anymore. That, to me, is not sufficient. “A little less creepy” is still creepy.</p>
  469. <p>Also worth noting, “turning receipts off by default” does nothing to educate customers about the undisclosed surveillance they are enabling if they flip that switch. If they’ve used read receipts at all in the past, they will probably assume it works just like Outlook. At the very least, Superhuman should display a message when you flip that switch saying something like “by turning on Read Receipts, you are monitoring your recipients’ actions without their knowledge or permission. Are you sure you want to do this?”</p>
  470. <p>Rahul’s fifth and final fix is also good in that they now realize <strong>pixel spying is a threat that they need to protect their own users from</strong>. This introduces a moral paradox, however: if the technology you are using on others is something you need to protect your own users from, then why are you using it on others in the first place? These are all questions I’ve asked Rahul publicly in this series of tweets, which I’m still waiting for a response on, four days later:</p>
  471. <p> </p>
  472. <p>Ask yourself, even under this new system, whether you would ever <strong>not</strong> feel creeped out by someone saying:</p>
  473. <blockquote><p>“I’ve noticed you’ve opened my email four times, including last night, and even five minutes ago… and you haven’t responded yet.”</p></blockquote>
  474. <p>What if someone in your family said that? What if your ex said that? What if someone who had threatened you in the past said that? How about someone you didn’t even know? How about your boss?</p>
  475. <p>It would be creepy enough for someone to actually say that to you, but even if they kept their mouth shut, they still know when you are looking at their email, and you don’t even know that they know. All because of these tracking pixels, <strong>which Superhuman has decided to continue using</strong>.</p>
  476. <p>The message that sender-controlled read receipts send is “I’m watching you, I’ve been watching you, and you didn’t even know it”. Can you imagine ever saying that to someone, in any context, and having it go well? </p>
  477. <p>I cannot. And the reason is that it communicates not only that <strong>you don’t trust me</strong>, but that I (the recipient) <strong>can’t trust you</strong>. It also implies that I’m doing something wrong by not emailing you back. As Ray Ozzie says, mess with people’s expectations at your own risk:</p>
  478. <p> </p>
  479. <p>“I’m always watching you” is exactly the expectation that sender-controlled read receipts set. It’s how they work. And it’s the reason people don’t (and likely won’t) disclose that they’re using them.</p>
  480. <p>Above all else, I want to know if people feel safe with this implementation. It doesn’t matter if I feel safe or if Rahul feels safe. Do women feel safe? Do people who have been creeped on over work email feel safe? Do people who have been harassed by salespeople feel safe? These are questions I would love for Rahul and team to investigate. You can probably start with someone like <a href="https://twitter.com/CindySouthworth">Cindy Southworth</a> (hat tip: <a href="https://twitter.com/amac/status/1147203275630030848">@amac</a>) or many of the women, like Tracy Chou, who chimed in on the thread:</p>
  481. <p> </p>
  482. <p>To Superhuman’s tremendous credit, <a href="https://superhuman.com/jobs">they appear to have a pretty diverse team</a>. Out of 30 people, I count 10 women and a variety of ethnicities. In Bay Area tech, that usually takes intentionality. Well done on that. It’s hard to believe, then, that not a single person — employee or customer — ever brought up how creepy the display of timestamps and read statuses are. Maybe someone internally did but the culture was not <a href="https://rework.withgoogle.com/blog/how-to-foster-psychological-safety/">psychologically safe</a> enough to bring it up and advocate against it. I’m just speculating. I don’t actually know. As Derek Powazek said:</p>
  483. <p> </p>
  484. <p>Turns out, there seems to have been plenty of feedback, at least as far back as October 2018. Here is a Tweet from Elies Campo, formerly of WhatsApp and now working at Telegram (both known for their attention to privacy):</p>
  485. <p> </p>
  486. <p>Read the words from Superhuman “Delight Team” employee Cameron Wiese. He says explicitly says <strong>“I agree”</strong> and says he thinks Superhuman should turn images off to avoid triggering read receipts and <strong>“having your privacy violated”</strong>.</p>
  487. <p>Cameron is no longer at the company. I have no reason to believe that is related to this, but it’s proof that Superhuman’s own very small team knew about this a long time ago and decided to do nothing about it.</p>
  488. <p>I began to wonder why, so I started reading up on Rahul. I haven’t followed his career so I wanted to read some things he’d written or said to get a better picture of how he thinks about products. The first thing I came across was this article entitled <a href="https://firstround.com/review/how-superhuman-built-an-engine-to-find-product-market-fit/">How Superhuman Built an Engine to Find Product/Market Fit</a>. It’s really well-written and full of a lot of great wisdom from Rahul that can help other entrepreneurs. Stuff I have never thought about for sure. In particular, the bit about zeroing in on the question “how disappointed would you be if you could no longer use this product” is great. It’s kind of an inverse NPS. Really good stuff. There’s one part of the article that may, however, reveal what led to this situation Superhuman now finds itself in: Rahul talks about how he explicitly ignores feedback from people who don’t already love his product. You can read it yourself inside that article or listen to it from his own voice in <a href="http://hwcdn.libsyn.com/p/8/3/0/830a2030ecabc702/193_20VC-_Rahul_Vohra_Founder__CEO__Superhuman.mp3?c_id=34956512&amp;cs_id=34956512&amp;expiration=1562530246&amp;hwt=497da709282d9d6b214c508f773869c4">this interview at the 17:50 mark</a>. Please get the full context from the material provided, but here’s the quote:</p>
  489. <blockquote><p>“You take the users who most love your product and turn those into an HXC (high-expectation customer), and you use those to narrow the market. And what I mean by that is, deliberately ignore the responses from customers who don’t fit that archetype of people who love your product.”</p></blockquote>
  490. <p>Bingo.</p>
  491. <p>There is already a huge <a href="https://medium.com/@penguinpress/an-excerpt-from-how-not-to-be-wrong-by-jordan-ellenberg-664e708cfc3d">survivorship bias problem</a> whenever you survey existing customers (which is why people like Elies and me aren’t even represented in these surveys), but doing things the way Rahul describes is like some sort of “devotional bias” <strong>on top of</strong> the existing survivorship bias.</p>
  492. <p>I will say this: if you were skeptical of Superhuman’s commitment to privacy and safety after reading the last article, you should probably be even more skeptical after these changes. The company’s efforts demonstrate a desire to tamp down liability and damage to their brand, but they do not show an understanding of the core problem: <strong>you should not build software that surreptitiously collects data on people in a way that would surprise and frighten them</strong>. Superhuman needs to realize that the people their customers send emails to aren’t “externalities”. They are people. And they deserve not to be spied on by software they don’t even know about and never signed up to use. This was an opportunity for Superhuman to <strong>internalize what it means to respect privacy</strong>, and model behavior for the next generation of companies by doing just that. Instead, they have done little more than the minimum.</p>
  493. <p>I want to quickly detour into a few other issues unearthed by the conversation last week, and then we’ll get back to Superhuman.</p>
  494. <p>First and foremost, it’s important to understand how dissatisfying it is that I happen to be the one who was able to break through on this issue. I am not the internet’s ombudsman or a beacon of morality. For that, I would turn to someone like <a href="https://www.danah.org/">danah boyd</a> or <a href="http://anildash.com/">Anil Dash</a>, who are always a step ahead in thinking about unintended consequences of technology. Second, to my knowledge, I have never been stalked or abused. I am not a victim speaking out. I’m just another white guy of <a href="https://twitter.com/mikeindustries/status/1109562729965117440">moderately impeachable character</a> who got on my privileged soapbox and said something.</p>
  495. <p>There are several reasons I was able to do this:</p>
  496. <ul>
  497. <li>Because of my background and the way I look, I don’t have to worry about getting discredited or blackballed.</li>
  498. <li>Despite tweeting <a href="https://twitter.com/mikeindustries/status/1019825050608783361">stuff like this</a>, I have a decent size following on Twitter.</li>
  499. <li>I got extremely lucky twice in tech, so I’m secure enough financially and career-wise to where I don’t have to give a shit what the technology and venture capital world think of me.</li>
  500. <li>I haven’t personally wielded the sort of granular tracking technology I am railing against.</li>
  501. <li>I took the time to write a proper argument in long-form, litigating issues and not people.</li>
  502. </ul>
  503. <p>Without all five of those things aligning, I think this whole thing wouldn’t have registered a blip. Furthermore, the first four of those things are about <strong>who I am</strong> and not <strong>what I wrote</strong>. Think about how frustrating this is for all of the people in the world who have something important they want to bring to light but are only able to do number five. <em>This happens every day</em>, and we miss a lot of it.</p>
  504. <p>Conversely, I will also say that there are a lot of people in the world who have either all or some of the first four taken care of and instead take the easy route by tweeting out some <a href="https://thinkpiece.club/magical-thinking-thought-terminating-clich%C3%A9s-120cdc599a51">thought-terminating-cliches</a> (hat tip: <a href="http://twitter.com/kristyt">Kristy Tillman</a>), and then moving on to the next thing they feel like tweeting. If you have an argument to make, put in the work.</p>
  505. <p>Along these lines, it’s been interesting to see who has reacted (and how) to my original article. If you search for <a href="https://twitter.com/search?q=https%3A%2F%2Fmikeindustries.com%2Fblog%2Farchive%2F2019%2F06%2Fsuperhuman-is-spying-on-you&amp;src=typed_query">who has linked to it on Twitter</a>, you have to scroll through more than 50 posts before you find a single detractor. I didn’t research any further, and I could be biased by how Twitter displays search results, but my gut is that this is at least a 95%/5% situation, if not higher. To anyone who thinks “everyone knows this stuff is going on”, <strong>this is a death blow to that theory</strong>. “Everyone” in ad tech might know about email surveillance, but the great majority of people in the world do not… and <strong>those</strong> are the people you are either signing up to be honest with or signing up to deceive. As Upton Sinclair said:</p>
  506. <blockquote><p>“It is difficult to get a man to understand something, when his salary depends on his not understanding it.”</p></blockquote>
  507. <p>In this case, the statement refers to getting people who surreptitiously track others to understand that those being tracked <strong>do not know they are being tracked nor want to be tracked</strong> and that it is <strong>a violation of their privacy</strong>.</p>
  508. <p>It’s also been interesting to see who has <em>not</em> weighed in. That includes a lot of people on both sides of this issue, including most of Superhuman’s VCs and 120 well-placed angel investors. I have, however, gotten DMs from some very prominent people in the investment community expressing solidarity but unwilling to say anything publicly. I’ve also gotten similar messages from people involved in the creation of Outlook and other tools that have had to wrangle these sorts of issues. I’ve also heard from entrepreneurs who have been specifically told by investors not to engage in discussions like these because it may limit their ability to fundraise in the future.</p>
  509. <p>To those who have spoken out publicly or messaged me privately, thank you!</p>
  510. <p>Conversely, there are also probably people on the other side of the issue who haven’t spoken up because they don’t want to look like jerks. This issue can really make you look like a jerk quite easily, so it’s sometimes easier to just let everyone else tell on themselves instead, like this guy from Founders Fund:</p>
  511. <p><a href="https://twitter.com/mikeindustries/status/1146509690651590656"><img src="/blog/images/inline/delian.png" alt="" class="alignnone size-full wp-image-29149" srcset="/blog/images/inline/delian.png 1164w, /blog/images/inline/delian-300x159.png 300w, /blog/images/inline/delian-768x408.png 768w, /blog/images/inline/delian-1024x544.png 1024w" sizes="(max-width: 1164px) 100vw, 1164px"/></a></p>
  512. <p>Exactly the caring, benevolent way the venture capital world would love to be represented, I’m sure.</p>
  513. <p>While we’re on the topic of Twitter, I should mention that I’m generally not a fan of having public, free-for-all debates about heated subjects on the platform. I think the format often turns us into the worst versions of ourselves, expelling incomplete thoughts in such staccato bursts that we are often talking past each other and to the larger audience we are trying to impress. Twitter at its best exposes us to wonderful things we’ve never seen before. But Twitter at its worst is just bad performance art. I feel bad that Rahul and team had to absorb the tens of thousands of Tweets directed at them last week. But at the same time, I also feel like they had advance warning several months ago from myself and surely others that what Superhuman is doing is not right.</p>
  514. <p>Being on the inside of this whole clandestine web of intrigue for a few days has made me think twice about this tech ecosystem of ours and what sorts of behaviors we are enabling with it. How many VCs and powerful people hate what Superhuman is doing with people’s privacy but won’t say anything because they aren’t sure if another company in their portfolio does something similarly sketchy with data? How many won’t say anything because they are concerned about their relationship with Andreessen Horowitz?</p>
  515. <p>This episode has also made me take stock of whether there’s anything in my own life which is collecting data it doesn’t need to collect. Someone on Twitter brought up the fact that I use Mailchimp to send out newsletters. That’s a good place to start. A few years ago, I enlisted Mailchimp to automate newsletter creation for me. I wanted to give people an easy way receive an email every time I wrote a new post. That’s about two or three times a year. Mailchimp makes this so easy that since installing it, I’ve never once logged into the service. I didn’t even know what, if any, data they were collecting aside from the number of subscribers I had. Turns out, they can collect a lot more data than I am comfortable with. Thankfully you can disable substantially all of it, which I have done. It bothers me that these services are choosing to collect all of this data for people who don’t even need it or want it. It turns people into “unwitting data collectors”.</p>
  516. <p>It reminds me of the early days of Android when developers immediately asked for every single permission they could get from you. Now the conventional wisdom is to only ask for what you need, when you need it. It makes things slightly better that people are at least opting into these newsletters, but to use my same test from the original post, there is no way they know how much data is being collected on them. That said, I’m generally not moved by <a href="https://twitter.com/antoniogm/status/1146492837447393282">straw man arguments</a> that attempt to paint bulk newsletter analytics with the same brush as email surveillance. News organizations are well within their rights to employ the former while criticizing the latter.</p>
  517. <p>The second thing someone asked me on Twitter is whether the company I work for uses tracking pixels anywhere. I’m not in sales or I.T. so I have to look into how different people use analytics over here, but I imagine there are a variety of ways. I’m going to be proposing an explicit policy against the sort of thing described in this article this week and I don’t expect that will be controversial.</p>
  518. <p>Ok, so back to Superhuman.</p>
  519. <p>We are left now in a better state than we were last week. The threat level has decreased. But I am still left wondering, why is Superhuman taking this feature — which <a href="https://twitter.com/juliagalef/status/1146138780778151936">clearly creeps people out</a> — and doing barely more than the minimum to make it less creepy? Rahul said exactly why in his post:</p>
  520. <blockquote><p>“If one of us creates something new, and that innovation becomes popular, then market dynamics will pull us all in that direction. This is how we ended up with location tracking inside of Superhuman, Mixmax, Yesware, Streak, and many others.”</p></blockquote>
  521. <p>Rahul is not wrong. But that is not how the greatest innovators think. The reason Slack is now an $18b company whose software is loved by millions of customers is that Stewart Butterfield created a new workplace communications tool based on how he thinks workplace communications <strong>should</strong> work. Stewart and team looked at what tools people were currently using, invented a new service full of things that seemed good, and left out everything that seemed bad. Are there any deceptive, creepy, or harmful features that exist in Slack because they already exist in other products? Not that I can think of. Someone please tell me if I’m wrong. Heck, Slack doesn’t even <strong>have</strong> read receipts! And it would be easy to design them ethically within Slack if they wanted to.</p>
  522. <p>Either Rahul thinks email apps <em>should</em> be able to spy on recipients’ behavior without their knowledge or permission, or he <em>doesn’t</em> think they should — but he’s doing it anyway because other bad actors do. Neither of these represents the standard we should hold our entrepreneurs to… especially those we point to as models for great design and great leadership.</p>
  523. <p>The other thing that’s been bugging me is that Superhuman’s other co-founder, Vivek Sodera, has openly compared Superhuman to Apple. See this thread:</p>
  524. <p><a href="https://twitter.com/vsodera/status/1145027988053823488"><img src="/blog/images/inline/sodera.png" alt="" class="alignnone size-full wp-image-29138" srcset="/blog/images/inline/sodera.png 1158w, /blog/images/inline/sodera-300x105.png 300w, /blog/images/inline/sodera-768x270.png 768w, /blog/images/inline/sodera-1024x360.png 1024w" sizes="(max-width: 1158px) 100vw, 1158px"/></a></p>
  525. <p>Notwithstanding the fact that I believe Google could extinguish Superhuman’s entire existence with the flip of an API access switch, it strains credulity to see how the decision to surreptitiously collect behavioral data on unsuspecting users is Apple-like <strong>at all</strong>. Vivek is talking here about whether they will license their data out in the future, but still… if you are going to say you are like Apple, then you should at least try and act like Apple. Do I think Apple would ever insert invisible tracking pixels into emails so senders could monitor the actions of recipients without their knowledge or permission? Not in a million years. Do you?</p>
  526. <p>To test my assumptions about how Apple, and in particular Steve Jobs, might approach a problem like this, I asked the only person I know who has worked directly for Jobs, across several decades: <a href="https://twitter.com/mikeyslade">Mike Slade</a>. Mike is the founder of ESPN.com, the original product manager of Excel, and worked directly alongside Jobs at both NeXT and Apple. Here’s what Mike said to me:</p>
  527. <blockquote><p>“Steve was the most consumer-first person I’ve ever worked with. If he didn’t like what the consumer was going to experience, he changed it. This functionality would’ve definitely creeped him out and he would’ve never implemented something as creepy as this.” — Mike Slade</p></blockquote>
  528. <p>Sadly, we’ll never know for sure, but this makes sense. Jobs used to talk a lot about the importance of taste in product development. That is exactly the concept that is missing here.</p>
  529. <p>You just raised $36m so you could build a product for the long term. You think tracking pixels in emails are even going to be around in a few years? Differentiate yourselves from your competitors by giving a shit about privacy. <em>Think Different</em>.</p>
  530. <p>To show you how this might work, I’ve taken the liberty of redesigning your sales pitch for you. Here is how you currently describe Read Receipts on your front page:</p>
  531. <p><img src="/blog/images/inline/readreceipts_before.png" alt="" class="alignnone size-full wp-image-29139" srcset="/blog/images/inline/readreceipts_before.png 1460w, /blog/images/inline/readreceipts_before-300x174.png 300w, /blog/images/inline/readreceipts_before-768x446.png 768w, /blog/images/inline/readreceipts_before-1024x595.png 1024w" sizes="(max-width: 1460px) 100vw, 1460px"/></p>
  532. <p>Now here’s how it would look if you decided to take a stand on privacy and protect people from both tracking and being tracked:</p>
  533. <p><img src="/blog/images/inline/readreceipts_after.png" alt="" class="alignnone size-full wp-image-29140" srcset="/blog/images/inline/readreceipts_after.png 1436w, /blog/images/inline/readreceipts_after-300x209.png 300w, /blog/images/inline/readreceipts_after-768x535.png 768w, /blog/images/inline/readreceipts_after-1024x713.png 1024w" sizes="(max-width: 1436px) 100vw, 1436px"/></p>
  534. <p>I feel like I am doing an unusual amount of free work here. <strong>THIS</strong> is the sort of morality I want to see in enterprise software. It’s funny, one of the things people like to talk about is how the iPhone kicked off “the consumerization of enterprise software”. Meaning, because the iPhone set the bar so high for how consumers experience digital products, all enterprise software eventually rose to meet this bar. If we can now expect our enterprise apps to look and feel as nice as our consumer apps, why can’t we also expect them to behave as nice?</p>
  535. <p>To harken back again to the tao of Steve: “Design is how it works.”</p>
  536. <p>Alright, that’s all I have on the subject of Superhuman specifically. Take my advice or leave it. It’s your company.</p>
  537. <p>A couple of more things before I go. One of the valid criticisms of my article from last week is that I didn’t call out any of the various other companies that enable email spying. This is fair. I frankly didn’t know about most of them, since I don’t use email tracking myself. For instance, I had heard of Mixmax but thought it was just an extension which let people book time on your calendar (it does this too). I am more than happy to name the names of every company who does this. From Rahul’s post, that looks like Mixmax, Yesware, Streak, Mailtrack, and HubSpot (whose founder is a Superhuman investor). There are probably others too. <strong>To all of you: what you are enabling is bad and you should feel bad about enabling it</strong>. None of you pitch yourself as a well-designed email client so you avoided attention in my first post, but isn’t there a way for you to operate your business without enabling your customers to spy on their customers? Mixmax, you have that useful calendar thing. Is that not enough? HubSpot, Streak, and Yesware, you offer a bunch of services that are unrelated to this. Mailtrack, welp… this seems like pretty much all you do from what I can tell.</p>
  538. <p>Is this stuff even useful in a material way? If you send someone an email and they don’t respond, you can either let it go or reach out again. Does knowing whether someone read it really change what you’re going to do? On top of that, aren’t we already in a world where you’re getting false positives and false negatives from that data? If I have images off (<strong>which, for the love of god, everyone should at this point</strong>), you’re seeing that I haven’t read email, when maybe I have. If Gmail or something else is proxying my email images, you might be seeing that I <strong>have</strong> read email, when maybe I haven’t. The data may be “usually right” because most normals don’t pay attention to this stuff, but how can you be sure? You can’t. This seems like a case of <strong>very low value data being collected and distributed in a potentially very harmful way</strong>.</p>
  539. <p>To wrap things up, I want to address the final issue brought up from the first article: what are the big three mail platforms (Apple, Microsoft, and Google) doing to protect us? The answer seems to be “some, but not enough”. All three allow users to disable images, but none make that a default. I could make the argument that email should be text-only by default, but I don’t think that’s realistic given the sorts of emails people subscribe to these days (real estate listings, deals of the day, etc). Accepting this, it seems like email providers should use the same sort of filtering they use to keep us safe from malware. If an email with a Mailtrack pixel comes in, for instance, strip it. You’d have to maintain a growing list of these things as they mutate across IP addresses, but it would send a strong signal to the industry that this sort of stuff is on the outs.</p>
  540. <p>Google and possibly also Microsoft could also stop this stuff from the other side: disallow extensions which provide this functionality. You don’t have to kill most of these companies’ entire businesses. Just specifically disallow this behavior.</p>
  541. <p>Because neither of these solutions stops companies from using large, visible, legit images in their emails to provide the same tracking abilities, the big three should also proxy and cache remote images in email whenever they can. I believe Google already does some sort of this, but it’s unclear to me exactly how obfuscatory it is. I don’t believe either Microsoft or Apple does any of this yet.</p>
  542. <p>This is almost certainly a case of “if you think the solution is easy, you don’t understand the problem”, so I recognize there’s a lot of implementation complexity I’m missing here. I guess I would just like to see all of these companies do everything they can to protect the majority of the world, who — unless they were paying attention last week — still doesn’t know they are naked with their curtains open for all people using spyware pixels to see.</p>
  543. <p>Perhaps if the big platforms aren’t able to sufficiently protect people, the last resort is the law. I’m not a COPPA or GDPR expert, but it seems crazy that collecting information via a website about someone under 13 without parental consent is illegal, but providing software that can automatically track that child’s movements when they open an email is not.</p>
  544. <p>This whole thing may already be advancing through the legal system, as just a few days ago, the British Information Commissioner’s Office <a href="https://mobile.twitter.com/nikstep/status/1146400773393342464">issued guidelines requiring consent and transparency for email tracking pixels</a>. If ethics can’t keep companies from doing these sorts of things, maybe fines can.</p>
  545. <p>It seems to me we’ve still got a lot of work to do here to keep people safe. Until that work is done, the best way to stay safe is to follow the same two pieces of advice from my previous article:</p>
  546. <ol>
  547. <li>Don’t use Superhuman yourself. They have not given a date for when they will protect you from other people’s tracking pixels and they have not shown a proper appreciation for privacy. Remember, when Superhuman says “you can turn it off”, that only means you can stop sending your own tracking pixels out.</li>
  548. <li>Turn off remote image loading in whatever email client you use. You may also want to consider using an always-on VPN to keep your location from ever being revealed.</li>
  549. </ol>
  550. <p>Thank you for reading this. Stay safe out there.</p>
  551. </article>
  552. </section>
  553. <nav id="jumpto">
  554. <p>
  555. <a href="/david/blog/">Accueil du blog</a> |
  556. <a href="https://mikeindustries.com/blog/archive/2019/07/superhumans-superficial-privacy-fixes-do-not-prevent-it-from-spying-on-you">Source originale</a> |
  557. <a href="/david/stream/2019/">Accueil du flux</a>
  558. </p>
  559. </nav>
  560. <footer>
  561. <div>
  562. <img src="/static/david/david-larlet-avatar.jpg" loading="lazy" class="avatar" width="200" height="200">
  563. <p>
  564. Bonjour/Hi!
  565. 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>
  566. 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>).
  567. </p>
  568. <p>
  569. 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>.
  570. </p>
  571. <p>
  572. Voici quelques articles choisis :
  573. <a href="/david/blog/2019/faire-equipe/" title="Accéder à l’article complet">Faire équipe</a>,
  574. <a href="/david/blog/2018/bivouac-automnal/" title="Accéder à l’article complet">Bivouac automnal</a>,
  575. <a href="/david/blog/2018/commodite-effondrement/" title="Accéder à l’article complet">Commodité et effondrement</a>,
  576. <a href="/david/blog/2017/donnees-communs/" title="Accéder à l’article complet">Des données aux communs</a>,
  577. <a href="/david/blog/2016/accompagner-enfant/" title="Accéder à l’article complet">Accompagner un enfant</a>,
  578. <a href="/david/blog/2016/senior-developer/" title="Accéder à l’article complet">Senior developer</a>,
  579. <a href="/david/blog/2016/illusion-sociale/" title="Accéder à l’article complet">L’illusion sociale</a>,
  580. <a href="/david/blog/2016/instantane-scopyleft/" title="Accéder à l’article complet">Instantané Scopyleft</a>,
  581. <a href="/david/blog/2016/enseigner-web/" title="Accéder à l’article complet">Enseigner le Web</a>,
  582. <a href="/david/blog/2016/simplicite-defaut/" title="Accéder à l’article complet">Simplicité par défaut</a>,
  583. <a href="/david/blog/2016/minimalisme-esthetique/" title="Accéder à l’article complet">Minimalisme et esthétique</a>,
  584. <a href="/david/blog/2014/un-web-omni-present/" title="Accéder à l’article complet">Un web omni-présent</a>,
  585. <a href="/david/blog/2014/manifeste-developpeur/" title="Accéder à l’article complet">Manifeste de développeur</a>,
  586. <a href="/david/blog/2013/confort-convivialite/" title="Accéder à l’article complet">Confort et convivialité</a>,
  587. <a href="/david/blog/2013/testament-numerique/" title="Accéder à l’article complet">Testament numérique</a>,
  588. et <a href="/david/blog/" title="Accéder aux archives">bien d’autres…</a>
  589. </p>
  590. <p>
  591. 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>.
  592. </p>
  593. <p>
  594. Je ne traque pas ta navigation mais mon
  595. <abbr title="Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33.184162340">hébergeur</abbr>
  596. conserve des logs d’accès.
  597. </p>
  598. </div>
  599. </footer>
  600. <script type="text/javascript">
  601. ;(_ => {
  602. const jumper = document.getElementById('jumper')
  603. jumper.addEventListener('click', e => {
  604. e.preventDefault()
  605. const anchor = e.target.getAttribute('href')
  606. const targetEl = document.getElementById(anchor.substring(1))
  607. targetEl.scrollIntoView({behavior: 'smooth'})
  608. })
  609. })()
  610. </script>