@@ -0,0 +1,206 @@ | |||
<!doctype html><!-- This is a valid HTML5 document. --> | |||
<!-- Screen readers, SEO, extensions and so on. --> | |||
<html lang="fr"> | |||
<!-- Has to be within the first 1024 bytes, hence before the <title> | |||
See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset --> | |||
<meta charset="utf-8"> | |||
<!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 --> | |||
<!-- The viewport meta is quite crowded and we are responsible for that. | |||
See: https://codepen.io/tigt/post/meta-viewport-for-2015 --> | |||
<meta name="viewport" content="width=device-width,initial-scale=1"> | |||
<!-- Required to make a valid HTML5 document. --> | |||
<title>reste des heures (archive) — David Larlet</title> | |||
<meta name="description" content="Publication mise en cache pour en conserver une trace."> | |||
<!-- That good ol' feed, subscribe :). --> | |||
<link rel="alternate" type="application/atom+xml" title="Feed" href="/david/log/"> | |||
<!-- Generated from https://realfavicongenerator.net/ such a mess. --> | |||
<link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png"> | |||
<link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png"> | |||
<link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png"> | |||
<link rel="manifest" href="/static/david/icons2/site.webmanifest"> | |||
<link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c"> | |||
<link rel="shortcut icon" href="/static/david/icons2/favicon.ico"> | |||
<meta name="msapplication-TileColor" content="#f0f0ea"> | |||
<meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml"> | |||
<meta name="theme-color" content="#f0f0ea"> | |||
<!-- Documented, feel free to shoot an email. --> | |||
<link rel="stylesheet" href="/static/david/css/style_2021-01-20.css"> | |||
<!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. --> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin> | |||
<script> | |||
function toggleTheme(themeName) { | |||
document.documentElement.classList.toggle( | |||
'forced-dark', | |||
themeName === 'dark' | |||
) | |||
document.documentElement.classList.toggle( | |||
'forced-light', | |||
themeName === 'light' | |||
) | |||
} | |||
const selectedTheme = localStorage.getItem('theme') | |||
if (selectedTheme !== 'undefined') { | |||
toggleTheme(selectedTheme) | |||
} | |||
</script> | |||
<meta name="robots" content="noindex, nofollow"> | |||
<meta content="origin-when-cross-origin" name="referrer"> | |||
<!-- Canonical URL for SEO purposes --> | |||
<link rel="canonical" href="https://www.la-grange.net/2021/02/23/heures"> | |||
<body class="remarkdown h1-underline h2-underline h3-underline em-underscore hr-center ul-star pre-tick"> | |||
<article> | |||
<header> | |||
<h1>reste des heures</h1> | |||
</header> | |||
<nav> | |||
<p class="center"> | |||
<a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home"> | |||
<use xlink:href="/static/david/icons2/symbol-defs.svg#icon-home"></use> | |||
</svg> Accueil</a> • | |||
<a href="https://www.la-grange.net/2021/02/23/heures" title="Lien vers le contenu original">Source originale</a> | |||
</p> | |||
</nav> | |||
<hr> | |||
<figure> | |||
<img src="https://www.la-grange.net/2021/02/21/0323-arbre-ombre.jpg" alt="Ombre d'un arbre"> | |||
<figcaption>Tsujido, Japon, 21 février 2021</figcaption> | |||
</figure> | |||
<blockquote> | |||
<p>Je pars et ne sais<br> | |||
où vont me porter mes pas<br> | |||
mon chemin errant<br> | |||
de la sorte dans le ciel<br> | |||
va s'en aller au hasard<br> | |||
— Le dit de Heichu - anonyme, urn:isbn:978-2-86432-738-7</p> | |||
</blockquote> | |||
<p>Sur le mur, l'ombre d'un arbre. Sur le chemin du retour, le reste des heures pour m'en souvenir.</p> | |||
<h2>sur le bord du chemin</h2> | |||
<ul> | |||
<li><p><a href="https://ricaud.me/blog/">Anthony</a> partage cette <a href="https://world.hey.com/jason/hey-world-b02a6f2e">solution de blog par email</a>. Cela existe déjà bien sûr sur d'<a href="https://wordpress.com/support/post-by-email/">autres plateformes</a>. Je suis un fan du « email to blog. » Mais surtout j'aimerais que mail.app soit mon client de blog posts. Commencer son <a href="https://github.com/ramcandrews/email.blog">mail en draft dans un dossier imap</a> afin de pouvoir le modifier à loisir afin de le publier plus tard selon un certain critère. Pourquoi pas un mot clé dans le titre.</p> | |||
</li> | |||
<li><p>pensée du matin - code review sur les projets personnels comme source de tutorat (mentor). Je pensais les bouts de code, de scripts que l'on fait pour soi, mais qui pourrait bénéficier d'une conversation autour d'un pull request. Anthony enrichit avec « ou d'un petit feu de bois. » Oh oui un petit feu de bois. David avait <a href="https://larlet.fr/david/blog/2016/code-reviews-croisees/">proposé cela dans le passé</a> mais cela n'avait pas pris. Je ne code pas souvent sur mes projets persos en ce moment, mais quand cela viendra en python, je penserai à mettre David pour une review. Peut-être une bourse à review serait nécessaire. Dans une communauté donnée, avoir une page Web qui accumule les PR et le langage de programmation. "PR open for reviews". et les reviewers décident. David <a href="https://github.com/search?q=PROpenForReview&type=issues">propose</a> « mais décentralisé. »</p> | |||
</li> | |||
<li><p><a href="https://taoofmac.com/space/blog/2008/03/03/2211">Patching .emlx files</a>. Cela ne doit plus être vraiment possible probablement avec le nouveau format de Apple pour conserver les mails. À vérifier.</p> | |||
</li> | |||
<li><p><a href="https://larlet.fr/david/2021/02/15/">comptabilité</a>. Je ne sais pas si David parle de la journalisation</p> | |||
<blockquote> | |||
<p>Je me rends compte que j’ai de plus en plus envie/besoin de compter ce que coûtent certaines choses.</p> | |||
</blockquote> | |||
<p>ou de la représentation</p> | |||
<blockquote> | |||
<p>Je suis confronté à des soucis techniques avec ces représentations. Je pourrais mettre ça dans une feuille de calcul mais ça serait me trahir un peu. Les tableaux en HTML c’est quand même pas terrible en terme d’édition/visualisation et en markdown ça demande d’avoir recours à des outils externes également pour que ça reste lisible.</p> | |||
</blockquote> | |||
<p>Peut-être regarder du côté de <a href="https://plaintextaccounting.org/">Plain Text Accounting</a></p> | |||
</li> | |||
<li><p><a href="https://www.youtube.com/watch?v=DuDX6wNfjqc">Daft / Punk</a>. 1993-2021</p> | |||
</li> | |||
</ul> | |||
</article> | |||
<hr> | |||
<footer> | |||
<p> | |||
<a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home"> | |||
<use xlink:href="/static/david/icons2/symbol-defs.svg#icon-home"></use> | |||
</svg> Accueil</a> • | |||
<a href="/david/log/" title="Accès au flux RSS"><svg class="icon icon-rss2"> | |||
<use xlink:href="/static/david/icons2/symbol-defs.svg#icon-rss2"></use> | |||
</svg> RSS</a> • | |||
<a href="http://larlet.com" title="Go to my English profile" data-instant><svg class="icon icon-user-tie"> | |||
<use xlink:href="/static/david/icons2/symbol-defs.svg#icon-user-tie"></use> | |||
</svg> Pro</a> • | |||
<a href="mailto:david%40larlet.fr" title="Envoyer un courriel"><svg class="icon icon-mail"> | |||
<use xlink:href="/static/david/icons2/symbol-defs.svg#icon-mail"></use> | |||
</svg> Email</a> • | |||
<abbr class="nowrap" title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"><svg class="icon icon-hammer2"> | |||
<use xlink:href="/static/david/icons2/symbol-defs.svg#icon-hammer2"></use> | |||
</svg> Légal</abbr> | |||
</p> | |||
<template id="theme-selector"> | |||
<form> | |||
<fieldset> | |||
<legend><svg class="icon icon-brightness-contrast"> | |||
<use xlink:href="/static/david/icons2/symbol-defs.svg#icon-brightness-contrast"></use> | |||
</svg> Thème</legend> | |||
<label> | |||
<input type="radio" value="auto" name="chosen-color-scheme" checked> Auto | |||
</label> | |||
<label> | |||
<input type="radio" value="dark" name="chosen-color-scheme"> Foncé | |||
</label> | |||
<label> | |||
<input type="radio" value="light" name="chosen-color-scheme"> Clair | |||
</label> | |||
</fieldset> | |||
</form> | |||
</template> | |||
</footer> | |||
<script> | |||
function loadThemeForm(templateName) { | |||
const themeSelectorTemplate = document.querySelector(templateName) | |||
const form = themeSelectorTemplate.content.firstElementChild | |||
themeSelectorTemplate.replaceWith(form) | |||
form.addEventListener('change', (e) => { | |||
const chosenColorScheme = e.target.value | |||
localStorage.setItem('theme', chosenColorScheme) | |||
toggleTheme(chosenColorScheme) | |||
}) | |||
const selectedTheme = localStorage.getItem('theme') | |||
if (selectedTheme && selectedTheme !== 'undefined') { | |||
form.querySelector(`[value="${selectedTheme}"]`).checked = true | |||
} | |||
} | |||
const prefersColorSchemeDark = '(prefers-color-scheme: dark)' | |||
window.addEventListener('load', () => { | |||
let hasDarkRules = false | |||
for (const styleSheet of Array.from(document.styleSheets)) { | |||
let mediaRules = [] | |||
for (const cssRule of styleSheet.cssRules) { | |||
if (cssRule.type !== CSSRule.MEDIA_RULE) { | |||
continue | |||
} | |||
// WARNING: Safari does not have/supports `conditionText`. | |||
if (cssRule.conditionText) { | |||
if (cssRule.conditionText !== prefersColorSchemeDark) { | |||
continue | |||
} | |||
} else { | |||
if (cssRule.cssText.startsWith(prefersColorSchemeDark)) { | |||
continue | |||
} | |||
} | |||
mediaRules = mediaRules.concat(Array.from(cssRule.cssRules)) | |||
} | |||
// WARNING: do not try to insert a Rule to a styleSheet you are | |||
// currently iterating on, otherwise the browser will be stuck | |||
// in a infinite loop… | |||
for (const mediaRule of mediaRules) { | |||
styleSheet.insertRule(mediaRule.cssText) | |||
hasDarkRules = true | |||
} | |||
} | |||
if (hasDarkRules) { | |||
loadThemeForm('#theme-selector') | |||
} | |||
}) | |||
</script> | |||
</body> | |||
</html> |
@@ -0,0 +1,38 @@ | |||
title: reste des heures | |||
url: https://www.la-grange.net/2021/02/23/heures | |||
hash_url: 6880a4077923d66ce1db9d8426107bc7 | |||
<figure> | |||
<img src="https://www.la-grange.net/2021/02/21/0323-arbre-ombre.jpg" alt="Ombre d'un arbre"> | |||
<figcaption>Tsujido, Japon, 21 février 2021</figcaption> | |||
</figure> | |||
<blockquote> | |||
<p>Je pars et ne sais<br> | |||
où vont me porter mes pas<br> | |||
mon chemin errant<br> | |||
de la sorte dans le ciel<br> | |||
va s'en aller au hasard<br> | |||
— Le dit de Heichu - anonyme, urn:isbn:978-2-86432-738-7</p> | |||
</blockquote> | |||
<p>Sur le mur, l'ombre d'un arbre. Sur le chemin du retour, le reste des heures pour m'en souvenir.</p> | |||
<h2>sur le bord du chemin</h2> | |||
<ul> | |||
<li><p><a href="https://ricaud.me/blog/">Anthony</a> partage cette <a href="https://world.hey.com/jason/hey-world-b02a6f2e">solution de blog par email</a>. Cela existe déjà bien sûr sur d'<a href="https://wordpress.com/support/post-by-email/">autres plateformes</a>. Je suis un fan du « email to blog. » Mais surtout j'aimerais que mail.app soit mon client de blog posts. Commencer son <a href="https://github.com/ramcandrews/email.blog">mail en draft dans un dossier imap</a> afin de pouvoir le modifier à loisir afin de le publier plus tard selon un certain critère. Pourquoi pas un mot clé dans le titre.</p> | |||
</li> | |||
<li><p>pensée du matin - code review sur les projets personnels comme source de tutorat (mentor). Je pensais les bouts de code, de scripts que l'on fait pour soi, mais qui pourrait bénéficier d'une conversation autour d'un pull request. Anthony enrichit avec « ou d'un petit feu de bois. » Oh oui un petit feu de bois. David avait <a href="https://larlet.fr/david/blog/2016/code-reviews-croisees/">proposé cela dans le passé</a> mais cela n'avait pas pris. Je ne code pas souvent sur mes projets persos en ce moment, mais quand cela viendra en python, je penserai à mettre David pour une review. Peut-être une bourse à review serait nécessaire. Dans une communauté donnée, avoir une page Web qui accumule les PR et le langage de programmation. "PR open for reviews". et les reviewers décident. David <a href="https://github.com/search?q=PROpenForReview&type=issues">propose</a> « mais décentralisé. »</p> | |||
</li> | |||
<li><p><a href="https://taoofmac.com/space/blog/2008/03/03/2211">Patching .emlx files</a>. Cela ne doit plus être vraiment possible probablement avec le nouveau format de Apple pour conserver les mails. À vérifier.</p> | |||
</li> | |||
<li><p><a href="https://larlet.fr/david/2021/02/15/">comptabilité</a>. Je ne sais pas si David parle de la journalisation</p> | |||
<blockquote> | |||
<p>Je me rends compte que j’ai de plus en plus envie/besoin de compter ce que coûtent certaines choses.</p> | |||
</blockquote> | |||
<p>ou de la représentation</p> | |||
<blockquote> | |||
<p>Je suis confronté à des soucis techniques avec ces représentations. Je pourrais mettre ça dans une feuille de calcul mais ça serait me trahir un peu. Les tableaux en HTML c’est quand même pas terrible en terme d’édition/visualisation et en markdown ça demande d’avoir recours à des outils externes également pour que ça reste lisible.</p> | |||
</blockquote> | |||
<p>Peut-être regarder du côté de <a href="https://plaintextaccounting.org/">Plain Text Accounting</a></p> | |||
</li> | |||
<li><p><a href="https://www.youtube.com/watch?v=DuDX6wNfjqc">Daft / Punk</a>. 1993-2021</p> | |||
</li> | |||
</ul> |
@@ -0,0 +1,215 @@ | |||
<!doctype html><!-- This is a valid HTML5 document. --> | |||
<!-- Screen readers, SEO, extensions and so on. --> | |||
<html lang="fr"> | |||
<!-- Has to be within the first 1024 bytes, hence before the <title> | |||
See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset --> | |||
<meta charset="utf-8"> | |||
<!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 --> | |||
<!-- The viewport meta is quite crowded and we are responsible for that. | |||
See: https://codepen.io/tigt/post/meta-viewport-for-2015 --> | |||
<meta name="viewport" content="width=device-width,initial-scale=1"> | |||
<!-- Required to make a valid HTML5 document. --> | |||
<title>Ways I'm available to help. (archive) — David Larlet</title> | |||
<meta name="description" content="Publication mise en cache pour en conserver une trace."> | |||
<!-- That good ol' feed, subscribe :). --> | |||
<link rel="alternate" type="application/atom+xml" title="Feed" href="/david/log/"> | |||
<!-- Generated from https://realfavicongenerator.net/ such a mess. --> | |||
<link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png"> | |||
<link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png"> | |||
<link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png"> | |||
<link rel="manifest" href="/static/david/icons2/site.webmanifest"> | |||
<link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c"> | |||
<link rel="shortcut icon" href="/static/david/icons2/favicon.ico"> | |||
<meta name="msapplication-TileColor" content="#f0f0ea"> | |||
<meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml"> | |||
<meta name="theme-color" content="#f0f0ea"> | |||
<!-- Documented, feel free to shoot an email. --> | |||
<link rel="stylesheet" href="/static/david/css/style_2021-01-20.css"> | |||
<!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. --> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin> | |||
<script> | |||
function toggleTheme(themeName) { | |||
document.documentElement.classList.toggle( | |||
'forced-dark', | |||
themeName === 'dark' | |||
) | |||
document.documentElement.classList.toggle( | |||
'forced-light', | |||
themeName === 'light' | |||
) | |||
} | |||
const selectedTheme = localStorage.getItem('theme') | |||
if (selectedTheme !== 'undefined') { | |||
toggleTheme(selectedTheme) | |||
} | |||
</script> | |||
<meta name="robots" content="noindex, nofollow"> | |||
<meta content="origin-when-cross-origin" name="referrer"> | |||
<!-- Canonical URL for SEO purposes --> | |||
<link rel="canonical" href="https://lethain.com/ways-i-help/"> | |||
<body class="remarkdown h1-underline h2-underline h3-underline em-underscore hr-center ul-star pre-tick"> | |||
<article> | |||
<header> | |||
<h1>Ways I'm available to help.</h1> | |||
</header> | |||
<nav> | |||
<p class="center"> | |||
<a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home"> | |||
<use xlink:href="/static/david/icons2/symbol-defs.svg#icon-home"></use> | |||
</svg> Accueil</a> • | |||
<a href="https://lethain.com/ways-i-help/" title="Lien vers le contenu original">Source originale</a> | |||
</p> | |||
</nav> | |||
<hr> | |||
<p><em>tl;dr - email me at lethain[at]gmail</em></p> | |||
<p>Thinking about how I can be a helpful person in the world, as well as the sorts of folks who do and don't think to ask for help, I wanted to take some time to explicitly write down ways that I’m available to help folks on the internet that I don't have a preexisting relationship with. This is an initial list that I’ll have to think about expanding over time.</p> | |||
<hr> | |||
<p>First, some things I’m not a good resource for:</p> | |||
<ol> | |||
<li><strong>Getting your first job in tech.</strong> My path into tech was both very traditional (B.S. Computer Science) and very lucky (<a href="https://lethain.com/monocle-studios/">failed iPhone game</a>, getting hired by Yahoo! after <a href="https://lethain.com/datahub/">writing about their Yahoo! BOSS SDK</a>). I don’t think recreating <a href="/my-career-story/">my story</a> is likely to work for many folks, so I don’t believe I can give good advice on this topic relative to many other people.</li> | |||
<li><strong>Getting hired at <a href="https://en.wikipedia.org/wiki/Big_Tech">Big Tech</a> companies.</strong> I don’t know anything about this that you couldn’t discover yourself through Google searches.</li> | |||
<li><strong>Specific implementation questions or bugs in your project.</strong> I spend roughly one to four hours a month writing code, mostly in a non-professional context. If I get lucky I <em>might</em> be able to give useful advice on a specific bit of code eventually, but I can give better advice more quickly on other topics, so I choose not to give this kind of advice.</li> | |||
<li><strong>Proof reading a blog post.</strong> I’m glad to give meta-commentary on a blog post or theme, but I reserve my limited proofreading energy for my own work. Further, I’ve never been told that my proofreading is particularly helpful, so I imagine there are other folks out there who do a much better job of it.</li> | |||
<li><strong>Responding reliably to anything other than concise email.</strong> I find it very hard to track which DMs on Twitter, LinkedIn, etc that I’ve seen or not seen, and I don’t want to invest my life in fighting their UX. If you want to contact me, email is by far the best.</li> | |||
<li><strong>Writing or featuring guest posts.</strong> I believe that investing my limited writing time onto my own platforms is my most effective outlet in terms of influencing the broader conversation about technology, engineering management and so on. As a policy, I don’t contribute to other blogs or include content written by other folks here. I especially don't include sponsored content here.</li> | |||
<li><strong>Referrals that I believe are unlikely to get serious consideration.</strong> This might be the wrong stance, but I don’t like to refer people into situations where I think the process is likely to fail them. I want to conserve my <a href="https://larahogan.me/sponsors/">sponsorship</a> capital for efforts that I believe will help.</li> | |||
<li><strong>Invest in your company.</strong> I’m not very knowledgeable enough about small-scale investing, and I believe that donating my available resources is a more effective venue than investing it.</li> | |||
</ol> | |||
<hr> | |||
<p>Ways I’m available to help anyone:</p> | |||
<ol> | |||
<li><strong>Answer concise questions via email about topics I know about. </strong>I try to answer every concise question I get over email. If you write a two to four paragraph email with a clear question, I will try to answer it in a timely fashion. Topics that I can answer about quickly are generally anything I’ve written about it <a href="https://lethain.com/all-posts/">in a blog post</a> or a book. A caveat is that if the question obliges me to perform considerable research to answer it, it’s far less likely I’ll answer. Reach out to me at <em>lethain[at]gmail</em>.</li> | |||
<li><strong>Double opt-in introductions where I think the other party will want the introduction.</strong> I’m glad to provide introductions to folks I know, after checking with them it’s ok, to the extent that I believe it’s an introduction they want and there’s a credible reason why you haven’t reached out to them directly. Conversely, I want to protect folks’ time and won't begin the double opt-in process if I don’t have moderate confidence they would want the introduction.</li> | |||
</ol> | |||
<hr> | |||
<p>Ways I’m available to help BIPOC and women in tech:</p> | |||
<ol> | |||
<li><strong>The above stuff I’ll do for anyone, I’ll certainly do for you.</strong> If you’re anxious or uncertain about whether something’s appropriate to ask me, go ahead and send it. I can promise that I will either write a positive, constructive reply or I simply won’t get back to you. I’ll never reply harshly or with frustration. If I do respond harshly, please feel free to call me out on Twitter or what not, it’ll be richly deserved criticism.</li> | |||
<li><strong>Review a conference talk proposal on a topic I’m familiar with.</strong> If you’re looking for someone to proofread a conference talk proposal and it’s a topic I’ve written or spoken about before, then I’m glad to share my advice. (<a href="https://lethain.com/cfp-examples/">A bit more on conference proposals here</a>.)</li> | |||
<li><strong>Resume and LinkedIn profile feedback for folks with 3+ years of experience.</strong> I'm glad to give feedback to folks on how to make their LinkedIn profiles or resumes effective for more senior roles. I'm not providing feedback for earlier career LinkedIn or resumes because I don't have useful feedback beyond what you might find searching Google.</li> | |||
<li><strong>Write a blurb or foreward for your book.</strong> Until I wrote a book, I didn’t realize how cumbersome it can be to find folks to blurb or write a foreward for them! I’m glad to do either, although they both require sufficient time to complete.</li> | |||
<li><strong><em>Maybe</em> contribute an essay to your book or publication.</strong> There are so many great writers out there and I don’t think the world is dying for lack of hearing my voice in more mediums, but I do enjoy opportunities to write different styles of work, such as when I got to write <a href="https://increment.com/teams/do-engineering-managers-need-to-be-technical/">Do engineering managers need to be technical?</a> for Increment. If you have a proposal, then I’d be interested to consider contributing. There are some caveats. The foremost caveat is that I might not have time. It’s also worth noting that at this point I am only interested in writing if I am compensated because I don’t want to contribute towards an ecosystem where you can only participate if you’re wealthy enough to give away your time. This 2015 essay by <a href="https://www.theguardian.com/commentisfree/2015/aug/06/america-rich-write-about-poverty">Barbara Ehrenreich</a> is quite compelling on this point. However, I'd be glad to donate the fee to a mutually agreeable organization.</li> | |||
<li><strong>Refer speaking opportunities to you.</strong> Although I’m not a particularly high demand speaker, I’m generally moving away from conference speaking due to limited time, and if I’m aware you’re someone who wants to speak on a given topic, then I’m glad to refer opportunities to you as appropriate.</li> | |||
<li><strong>Appear on engineering, technology or management podcast.</strong> I’m generally ramping down <a href="https://lethain.com/tags/podcast">recording podcasts</a>, but if I’m a relevant guest for yours, then I’m glad to do them strategically.</li> | |||
<li><strong>Connect on LinkedIn.</strong> If you send a <a href="https://www.linkedin.com/in/will-larson-a44b543/">connect request on LinkedIn</a>, I'll accept it.</li> | |||
</ol> | |||
<hr> | |||
<p>These lists aren't comprehensive, but I hope by being explicit about what I'm available to do then folks will feel more comfortable reaching out, | |||
For anything that isn't covered, writing a concise email to inquire is the best route!</p> | |||
</article> | |||
<hr> | |||
<footer> | |||
<p> | |||
<a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home"> | |||
<use xlink:href="/static/david/icons2/symbol-defs.svg#icon-home"></use> | |||
</svg> Accueil</a> • | |||
<a href="/david/log/" title="Accès au flux RSS"><svg class="icon icon-rss2"> | |||
<use xlink:href="/static/david/icons2/symbol-defs.svg#icon-rss2"></use> | |||
</svg> RSS</a> • | |||
<a href="http://larlet.com" title="Go to my English profile" data-instant><svg class="icon icon-user-tie"> | |||
<use xlink:href="/static/david/icons2/symbol-defs.svg#icon-user-tie"></use> | |||
</svg> Pro</a> • | |||
<a href="mailto:david%40larlet.fr" title="Envoyer un courriel"><svg class="icon icon-mail"> | |||
<use xlink:href="/static/david/icons2/symbol-defs.svg#icon-mail"></use> | |||
</svg> Email</a> • | |||
<abbr class="nowrap" title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"><svg class="icon icon-hammer2"> | |||
<use xlink:href="/static/david/icons2/symbol-defs.svg#icon-hammer2"></use> | |||
</svg> Légal</abbr> | |||
</p> | |||
<template id="theme-selector"> | |||
<form> | |||
<fieldset> | |||
<legend><svg class="icon icon-brightness-contrast"> | |||
<use xlink:href="/static/david/icons2/symbol-defs.svg#icon-brightness-contrast"></use> | |||
</svg> Thème</legend> | |||
<label> | |||
<input type="radio" value="auto" name="chosen-color-scheme" checked> Auto | |||
</label> | |||
<label> | |||
<input type="radio" value="dark" name="chosen-color-scheme"> Foncé | |||
</label> | |||
<label> | |||
<input type="radio" value="light" name="chosen-color-scheme"> Clair | |||
</label> | |||
</fieldset> | |||
</form> | |||
</template> | |||
</footer> | |||
<script> | |||
function loadThemeForm(templateName) { | |||
const themeSelectorTemplate = document.querySelector(templateName) | |||
const form = themeSelectorTemplate.content.firstElementChild | |||
themeSelectorTemplate.replaceWith(form) | |||
form.addEventListener('change', (e) => { | |||
const chosenColorScheme = e.target.value | |||
localStorage.setItem('theme', chosenColorScheme) | |||
toggleTheme(chosenColorScheme) | |||
}) | |||
const selectedTheme = localStorage.getItem('theme') | |||
if (selectedTheme && selectedTheme !== 'undefined') { | |||
form.querySelector(`[value="${selectedTheme}"]`).checked = true | |||
} | |||
} | |||
const prefersColorSchemeDark = '(prefers-color-scheme: dark)' | |||
window.addEventListener('load', () => { | |||
let hasDarkRules = false | |||
for (const styleSheet of Array.from(document.styleSheets)) { | |||
let mediaRules = [] | |||
for (const cssRule of styleSheet.cssRules) { | |||
if (cssRule.type !== CSSRule.MEDIA_RULE) { | |||
continue | |||
} | |||
// WARNING: Safari does not have/supports `conditionText`. | |||
if (cssRule.conditionText) { | |||
if (cssRule.conditionText !== prefersColorSchemeDark) { | |||
continue | |||
} | |||
} else { | |||
if (cssRule.cssText.startsWith(prefersColorSchemeDark)) { | |||
continue | |||
} | |||
} | |||
mediaRules = mediaRules.concat(Array.from(cssRule.cssRules)) | |||
} | |||
// WARNING: do not try to insert a Rule to a styleSheet you are | |||
// currently iterating on, otherwise the browser will be stuck | |||
// in a infinite loop… | |||
for (const mediaRule of mediaRules) { | |||
styleSheet.insertRule(mediaRule.cssText) | |||
hasDarkRules = true | |||
} | |||
} | |||
if (hasDarkRules) { | |||
loadThemeForm('#theme-selector') | |||
} | |||
}) | |||
</script> | |||
</body> | |||
</html> |
@@ -0,0 +1,54 @@ | |||
title: Ways I'm available to help. | |||
url: https://lethain.com/ways-i-help/ | |||
hash_url: 96ff9022e3ee0d37611b30f57205810e | |||
<p><em>tl;dr - email me at lethain[at]gmail</em></p> | |||
<p>Thinking about how I can be a helpful person in the world, as well as the sorts of folks who do and don't think to ask for help, I wanted to take some time to explicitly write down ways that I’m available to help folks on the internet that I don't have a preexisting relationship with. This is an initial list that I’ll have to think about expanding over time.</p> | |||
<hr> | |||
<p>First, some things I’m not a good resource for:</p> | |||
<ol> | |||
<li><strong>Getting your first job in tech.</strong> My path into tech was both very traditional (B.S. Computer Science) and very lucky (<a href="https://lethain.com/monocle-studios/">failed iPhone game</a>, getting hired by Yahoo! after <a href="https://lethain.com/datahub/">writing about their Yahoo! BOSS SDK</a>). I don’t think recreating <a href="/my-career-story/">my story</a> is likely to work for many folks, so I don’t believe I can give good advice on this topic relative to many other people.</li> | |||
<li><strong>Getting hired at <a href="https://en.wikipedia.org/wiki/Big_Tech">Big Tech</a> companies.</strong> I don’t know anything about this that you couldn’t discover yourself through Google searches.</li> | |||
<li><strong>Specific implementation questions or bugs in your project.</strong> I spend roughly one to four hours a month writing code, mostly in a non-professional context. If I get lucky I <em>might</em> be able to give useful advice on a specific bit of code eventually, but I can give better advice more quickly on other topics, so I choose not to give this kind of advice.</li> | |||
<li><strong>Proof reading a blog post.</strong> I’m glad to give meta-commentary on a blog post or theme, but I reserve my limited proofreading energy for my own work. Further, I’ve never been told that my proofreading is particularly helpful, so I imagine there are other folks out there who do a much better job of it.</li> | |||
<li><strong>Responding reliably to anything other than concise email.</strong> I find it very hard to track which DMs on Twitter, LinkedIn, etc that I’ve seen or not seen, and I don’t want to invest my life in fighting their UX. If you want to contact me, email is by far the best.</li> | |||
<li><strong>Writing or featuring guest posts.</strong> I believe that investing my limited writing time onto my own platforms is my most effective outlet in terms of influencing the broader conversation about technology, engineering management and so on. As a policy, I don’t contribute to other blogs or include content written by other folks here. I especially don't include sponsored content here.</li> | |||
<li><strong>Referrals that I believe are unlikely to get serious consideration.</strong> This might be the wrong stance, but I don’t like to refer people into situations where I think the process is likely to fail them. I want to conserve my <a href="https://larahogan.me/sponsors/">sponsorship</a> capital for efforts that I believe will help.</li> | |||
<li><strong>Invest in your company.</strong> I’m not very knowledgeable enough about small-scale investing, and I believe that donating my available resources is a more effective venue than investing it.</li> | |||
</ol> | |||
<hr> | |||
<p>Ways I’m available to help anyone:</p> | |||
<ol> | |||
<li><strong>Answer concise questions via email about topics I know about. </strong>I try to answer every concise question I get over email. If you write a two to four paragraph email with a clear question, I will try to answer it in a timely fashion. Topics that I can answer about quickly are generally anything I’ve written about it <a href="https://lethain.com/all-posts/">in a blog post</a> or a book. A caveat is that if the question obliges me to perform considerable research to answer it, it’s far less likely I’ll answer. Reach out to me at <em>lethain[at]gmail</em>.</li> | |||
<li><strong>Double opt-in introductions where I think the other party will want the introduction.</strong> I’m glad to provide introductions to folks I know, after checking with them it’s ok, to the extent that I believe it’s an introduction they want and there’s a credible reason why you haven’t reached out to them directly. Conversely, I want to protect folks’ time and won't begin the double opt-in process if I don’t have moderate confidence they would want the introduction.</li> | |||
</ol> | |||
<hr> | |||
<p>Ways I’m available to help BIPOC and women in tech:</p> | |||
<ol> | |||
<li><strong>The above stuff I’ll do for anyone, I’ll certainly do for you.</strong> If you’re anxious or uncertain about whether something’s appropriate to ask me, go ahead and send it. I can promise that I will either write a positive, constructive reply or I simply won’t get back to you. I’ll never reply harshly or with frustration. If I do respond harshly, please feel free to call me out on Twitter or what not, it’ll be richly deserved criticism.</li> | |||
<li><strong>Review a conference talk proposal on a topic I’m familiar with.</strong> If you’re looking for someone to proofread a conference talk proposal and it’s a topic I’ve written or spoken about before, then I’m glad to share my advice. (<a href="https://lethain.com/cfp-examples/">A bit more on conference proposals here</a>.)</li> | |||
<li><strong>Resume and LinkedIn profile feedback for folks with 3+ years of experience.</strong> I'm glad to give feedback to folks on how to make their LinkedIn profiles or resumes effective for more senior roles. I'm not providing feedback for earlier career LinkedIn or resumes because I don't have useful feedback beyond what you might find searching Google.</li> | |||
<li><strong>Write a blurb or foreward for your book.</strong> Until I wrote a book, I didn’t realize how cumbersome it can be to find folks to blurb or write a foreward for them! I’m glad to do either, although they both require sufficient time to complete.</li> | |||
<li><strong><em>Maybe</em> contribute an essay to your book or publication.</strong> There are so many great writers out there and I don’t think the world is dying for lack of hearing my voice in more mediums, but I do enjoy opportunities to write different styles of work, such as when I got to write <a href="https://increment.com/teams/do-engineering-managers-need-to-be-technical/">Do engineering managers need to be technical?</a> for Increment. If you have a proposal, then I’d be interested to consider contributing. There are some caveats. The foremost caveat is that I might not have time. It’s also worth noting that at this point I am only interested in writing if I am compensated because I don’t want to contribute towards an ecosystem where you can only participate if you’re wealthy enough to give away your time. This 2015 essay by <a href="https://www.theguardian.com/commentisfree/2015/aug/06/america-rich-write-about-poverty">Barbara Ehrenreich</a> is quite compelling on this point. However, I'd be glad to donate the fee to a mutually agreeable organization.</li> | |||
<li><strong>Refer speaking opportunities to you.</strong> Although I’m not a particularly high demand speaker, I’m generally moving away from conference speaking due to limited time, and if I’m aware you’re someone who wants to speak on a given topic, then I’m glad to refer opportunities to you as appropriate.</li> | |||
<li><strong>Appear on engineering, technology or management podcast.</strong> I’m generally ramping down <a href="https://lethain.com/tags/podcast">recording podcasts</a>, but if I’m a relevant guest for yours, then I’m glad to do them strategically.</li> | |||
<li><strong>Connect on LinkedIn.</strong> If you send a <a href="https://www.linkedin.com/in/will-larson-a44b543/">connect request on LinkedIn</a>, I'll accept it.</li> | |||
</ol> | |||
<hr> | |||
<p>These lists aren't comprehensive, but I hope by being explicit about what I'm available to do then folks will feel more comfortable reaching out, | |||
For anything that isn't covered, writing a concise email to inquire is the best route!</p> |
@@ -0,0 +1,178 @@ | |||
<!doctype html><!-- This is a valid HTML5 document. --> | |||
<!-- Screen readers, SEO, extensions and so on. --> | |||
<html lang="fr"> | |||
<!-- Has to be within the first 1024 bytes, hence before the <title> | |||
See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset --> | |||
<meta charset="utf-8"> | |||
<!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 --> | |||
<!-- The viewport meta is quite crowded and we are responsible for that. | |||
See: https://codepen.io/tigt/post/meta-viewport-for-2015 --> | |||
<meta name="viewport" content="width=device-width,initial-scale=1"> | |||
<!-- Required to make a valid HTML5 document. --> | |||
<title>Jacob Kaplan-Moss (archive) — David Larlet</title> | |||
<meta name="description" content="Publication mise en cache pour en conserver une trace."> | |||
<!-- That good ol' feed, subscribe :). --> | |||
<link rel="alternate" type="application/atom+xml" title="Feed" href="/david/log/"> | |||
<!-- Generated from https://realfavicongenerator.net/ such a mess. --> | |||
<link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png"> | |||
<link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png"> | |||
<link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png"> | |||
<link rel="manifest" href="/static/david/icons2/site.webmanifest"> | |||
<link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c"> | |||
<link rel="shortcut icon" href="/static/david/icons2/favicon.ico"> | |||
<meta name="msapplication-TileColor" content="#f0f0ea"> | |||
<meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml"> | |||
<meta name="theme-color" content="#f0f0ea"> | |||
<!-- Documented, feel free to shoot an email. --> | |||
<link rel="stylesheet" href="/static/david/css/style_2021-01-20.css"> | |||
<!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. --> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin> | |||
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin> | |||
<script> | |||
function toggleTheme(themeName) { | |||
document.documentElement.classList.toggle( | |||
'forced-dark', | |||
themeName === 'dark' | |||
) | |||
document.documentElement.classList.toggle( | |||
'forced-light', | |||
themeName === 'light' | |||
) | |||
} | |||
const selectedTheme = localStorage.getItem('theme') | |||
if (selectedTheme !== 'undefined') { | |||
toggleTheme(selectedTheme) | |||
} | |||
</script> | |||
<meta name="robots" content="noindex, nofollow"> | |||
<meta content="origin-when-cross-origin" name="referrer"> | |||
<!-- Canonical URL for SEO purposes --> | |||
<link rel="canonical" href="https://jacobian.org/help/"> | |||
<body class="remarkdown h1-underline h2-underline h3-underline em-underscore hr-center ul-star pre-tick"> | |||
<article> | |||
<header> | |||
<h1>Jacob Kaplan-Moss</h1> | |||
</header> | |||
<nav> | |||
<p class="center"> | |||
<a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home"> | |||
<use xlink:href="/static/david/icons2/symbol-defs.svg#icon-home"></use> | |||
</svg> Accueil</a> • | |||
<a href="https://jacobian.org/help/" title="Lien vers le contenu original">Source originale</a> | |||
</p> | |||
</nav> | |||
<hr> | |||
<p><em>Summary: want help? Email me: jacob@<this domain>.</em></p> | |||
<p>I’ve been lucky and privileged enough to have had a long and successful career. I’m now in a position to use my accumulated knowledge, network, and experience to help others, and I’d like to do so. This is a list of ways I think I can help; if you see something here that’d be useful to you, please email me.</p> | |||
<p>This isn’t an exhaustive list, but it is representative. There might be a few things I’m | |||
willing to do that aren’t listed but are similar. But if you ask me for something that’s | |||
not listed below, the odds I’ll be able t o do it are pretty low. However, do feel free | |||
ask anyway – the worst I’ll do is not reply or say “no”. I certainly won’t be a jerk.</p> | |||
<p><hr><h3 id="ways-im-available-to-help-anyone">Ways I’m available to help anyone</h3><p>I’m available anyone who emails me (<em>jacob@<this domain></em>) about any of these things:</p><ol><li><p><strong>Answer concise questions</strong> via email about topics I know about. If you write me an email with a short, clear question, and I know the answer, I’ll try to answer in a fairly quick time-frame. Any topic <a href="https://jacobian.org/posts/">I’ve written about recently</a> is fair game. That said, for specific technical questions about Django or Python: StackOverflow, the Django Forum, or similar are better resources for that. I also generally don’t have time to do significant research, so I’ll probably only be able to give answers that I know off the top of my head.</p></li><li><p><strong>Introductions</strong>: I’m glad to provide introductions to people I know, if I believe it’s an introduction that they’d want and there’s a reason you haven’t reached out directly. “People I know” include many folks in the Python and Django communities, people I’ve worked with (consult <a href="https://www.linkedin.com/in/jacobian/">my LinkedIn</a> for an idea of who that might be), and a smattering of others. If you’re not sure, feel free to ask. If you’re emailing to ask for an introduction, it’ll speed things along if you include a brief paragraph about you that I can use when I send the email to the other person.</p></li><li><p><strong>Reference checks on companies and managers</strong>: if you’re considering a new job, I’m happy to give you a gut-check on the company or specific manager. Again <a href="https://www.linkedin.com/in/jacobian/">my LinkedIn</a> will be the most useful in deciding if I know a company or person, but I do have a fairly wide network and can back-channel some checks. There are, unfortunately, a lot of <a href="https://en.wikipedia.org/wiki/Missing_stair">missing stairs</a> in tech; if I can help you avoid one, I’d be thrilled.</p></li></ol><h3 id="ways-im-available-to-help-underrepresented-people-in-tech">Ways I’m available to help underrepresented people in tech</h3><p>Additionally, if you’re someone from a background traditionally underrepresented in tech – a women, BIPOC, LBGTQ+, etc. – I will do more:</p><ol><li><p><strong>Everything above, I’ll especially do for you</strong>. If you’re not sure if something’s appropriate – just go ahead and send it! The worst I’ll do is simply not respond; more likely, it’s totally fine and I’ll help to the extent that I can.</p></li><li><p><strong>Review a conference proposal</strong> on a topic I know something about. This is particularly true for the “flagship” Python and Django conferences (PyCon US, DjangoCon US, DjangoCon EU) as well as smaller Py- and DjangoCons. I’d love to help you maximize your changes of getting a talk accepted.</p></li><li><p><strong>Refer speaking opportunities to you</strong>. I get asked to speak a fair bit, and I’m generally trying to do less of it. This means I have a steady stream of opportunities to speak that I can forward on to you. If there’s something you’d like to speak about, let me know, and if I get asked I’ll send them your way.</p></li><li><p><strong>Help you find some job opportunities</strong>. Specifically, if you tell me what you’re looking for and a bit about your strengths, I can share your info – anonymously if you prefer – through my network. I’d post on Twitter, in some private Slacks, send a few emails, and make introductions if anything pops up.</p></li><li><p><strong>Give you feedback on a resume and/or cover letter</strong>. I generally can’t do this unless you’re applying for mid-career roles or higher (I don’t have a lot to offer beyond what’s on Google for more junior folks). If this is something you want, go ahead and send me the resume/cover letter directly, you don’t need to ask for permission first.</p></li><li><p><strong>Join your advisory board</strong>. I have some availability to sit on a board or three, and want to focus on companies led by underrepresented founders/CEOs. If that’s your company, and you think I’d have something positive to contribute as a advisor/board member, I’m interested.</p></li><li><p><strong>Invest in your company</strong>. Similarly, I have some funds I can invest. My focus is on companies that are solving problems with a strong social justice component – things like climate change, criminal justice reform, healthcare equity/access, and so forth. And, I’m only looking to invest in startups founded by those traditionally underrepresented in tech. If this describes your company, I might be interested.</p></li></ol><hr><p><em>Thanks to Will Larson, who put up <a href="https://lethain.com/ways-i-help/">a similar page</a> to and inspired me to write this.</em></p></p> | |||
</article> | |||
<hr> | |||
<footer> | |||
<p> | |||
<a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home"> | |||
<use xlink:href="/static/david/icons2/symbol-defs.svg#icon-home"></use> | |||
</svg> Accueil</a> • | |||
<a href="/david/log/" title="Accès au flux RSS"><svg class="icon icon-rss2"> | |||
<use xlink:href="/static/david/icons2/symbol-defs.svg#icon-rss2"></use> | |||
</svg> RSS</a> • | |||
<a href="http://larlet.com" title="Go to my English profile" data-instant><svg class="icon icon-user-tie"> | |||
<use xlink:href="/static/david/icons2/symbol-defs.svg#icon-user-tie"></use> | |||
</svg> Pro</a> • | |||
<a href="mailto:david%40larlet.fr" title="Envoyer un courriel"><svg class="icon icon-mail"> | |||
<use xlink:href="/static/david/icons2/symbol-defs.svg#icon-mail"></use> | |||
</svg> Email</a> • | |||
<abbr class="nowrap" title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"><svg class="icon icon-hammer2"> | |||
<use xlink:href="/static/david/icons2/symbol-defs.svg#icon-hammer2"></use> | |||
</svg> Légal</abbr> | |||
</p> | |||
<template id="theme-selector"> | |||
<form> | |||
<fieldset> | |||
<legend><svg class="icon icon-brightness-contrast"> | |||
<use xlink:href="/static/david/icons2/symbol-defs.svg#icon-brightness-contrast"></use> | |||
</svg> Thème</legend> | |||
<label> | |||
<input type="radio" value="auto" name="chosen-color-scheme" checked> Auto | |||
</label> | |||
<label> | |||
<input type="radio" value="dark" name="chosen-color-scheme"> Foncé | |||
</label> | |||
<label> | |||
<input type="radio" value="light" name="chosen-color-scheme"> Clair | |||
</label> | |||
</fieldset> | |||
</form> | |||
</template> | |||
</footer> | |||
<script> | |||
function loadThemeForm(templateName) { | |||
const themeSelectorTemplate = document.querySelector(templateName) | |||
const form = themeSelectorTemplate.content.firstElementChild | |||
themeSelectorTemplate.replaceWith(form) | |||
form.addEventListener('change', (e) => { | |||
const chosenColorScheme = e.target.value | |||
localStorage.setItem('theme', chosenColorScheme) | |||
toggleTheme(chosenColorScheme) | |||
}) | |||
const selectedTheme = localStorage.getItem('theme') | |||
if (selectedTheme && selectedTheme !== 'undefined') { | |||
form.querySelector(`[value="${selectedTheme}"]`).checked = true | |||
} | |||
} | |||
const prefersColorSchemeDark = '(prefers-color-scheme: dark)' | |||
window.addEventListener('load', () => { | |||
let hasDarkRules = false | |||
for (const styleSheet of Array.from(document.styleSheets)) { | |||
let mediaRules = [] | |||
for (const cssRule of styleSheet.cssRules) { | |||
if (cssRule.type !== CSSRule.MEDIA_RULE) { | |||
continue | |||
} | |||
// WARNING: Safari does not have/supports `conditionText`. | |||
if (cssRule.conditionText) { | |||
if (cssRule.conditionText !== prefersColorSchemeDark) { | |||
continue | |||
} | |||
} else { | |||
if (cssRule.cssText.startsWith(prefersColorSchemeDark)) { | |||
continue | |||
} | |||
} | |||
mediaRules = mediaRules.concat(Array.from(cssRule.cssRules)) | |||
} | |||
// WARNING: do not try to insert a Rule to a styleSheet you are | |||
// currently iterating on, otherwise the browser will be stuck | |||
// in a infinite loop… | |||
for (const mediaRule of mediaRules) { | |||
styleSheet.insertRule(mediaRule.cssText) | |||
hasDarkRules = true | |||
} | |||
} | |||
if (hasDarkRules) { | |||
loadThemeForm('#theme-selector') | |||
} | |||
}) | |||
</script> | |||
</body> | |||
</html> |
@@ -131,6 +131,8 @@ | |||
<li><a href="/david/cache/2021/5f1c22e9a41d209ff84218b3d6faf676/" title="Accès à l’article dans le cache local : Reverse Engineering Source Code of the Biontech Pfizer Vaccine: Part 2">Reverse Engineering Source Code of the Biontech Pfizer Vaccine: Part 2</a> (<a href="https://berthub.eu/articles/posts/part-2-reverse-engineering-source-code-of-the-biontech-pfizer-vaccine/" title="Accès à l’article original distant : Reverse Engineering Source Code of the Biontech Pfizer Vaccine: Part 2">original</a>)</li> | |||
<li><a href="/david/cache/2021/6880a4077923d66ce1db9d8426107bc7/" title="Accès à l’article dans le cache local : reste des heures">reste des heures</a> (<a href="https://www.la-grange.net/2021/02/23/heures" title="Accès à l’article original distant : reste des heures">original</a>)</li> | |||
<li><a href="/david/cache/2021/f1df3d5f1720e137130581d5a2b8549f/" title="Accès à l’article dans le cache local : Built to Last">Built to Last</a> (<a href="https://logicmag.io/care/built-to-last/" title="Accès à l’article original distant : Built to Last">original</a>)</li> | |||
<li><a href="/david/cache/2021/deb0e4b7e744eb8767d1ad803c7922f3/" title="Accès à l’article dans le cache local : Be Humble">Be Humble</a> (<a href="https://lucumr.pocoo.org/2021/2/5/be-humble/" title="Accès à l’article original distant : Be Humble">original</a>)</li> | |||
@@ -163,6 +165,8 @@ | |||
<li><a href="/david/cache/2021/c177668b263f39d20788f002446d2a47/" title="Accès à l’article dans le cache local : 6-month consequences of COVID-19 in patients discharged from hospital: a cohort study">6-month consequences of COVID-19 in patients discharged from hospital: a cohort study</a> (<a href="https://www.thelancet.com/journals/lancet/article/PIIS0140-6736(20)32656-8/fulltext" title="Accès à l’article original distant : 6-month consequences of COVID-19 in patients discharged from hospital: a cohort study">original</a>)</li> | |||
<li><a href="/david/cache/2021/f91656e01371b761e22e6684dd3b6da2/" title="Accès à l’article dans le cache local : Jacob Kaplan-Moss">Jacob Kaplan-Moss</a> (<a href="https://jacobian.org/help/" title="Accès à l’article original distant : Jacob Kaplan-Moss">original</a>)</li> | |||
<li><a href="/david/cache/2021/75dddb3b875088c9e1908a83687e7725/" title="Accès à l’article dans le cache local : Four fours - Sentiers Media">Four fours - Sentiers Media</a> (<a href="https://sentiers.media/four-fours/" title="Accès à l’article original distant : Four fours - Sentiers Media">original</a>)</li> | |||
<li><a href="/david/cache/2021/59bd3fea3b3b370bd6b116e77effb69e/" title="Accès à l’article dans le cache local : Nostalgie de l'ancien web">Nostalgie de l'ancien web</a> (<a href="https://osd.ovh/index.php?article10/nostalgie-de-lancien-web" title="Accès à l’article original distant : Nostalgie de l'ancien web">original</a>)</li> | |||
@@ -181,6 +185,8 @@ | |||
<li><a href="/david/cache/2021/eef2b3e3085a9b71cd7fe64f21fa0453/" title="Accès à l’article dans le cache local : Anxious feelings about optimisation through complexity">Anxious feelings about optimisation through complexity</a> (<a href="http://interconnected.org/home/2021/02/12/optimisation" title="Accès à l’article original distant : Anxious feelings about optimisation through complexity">original</a>)</li> | |||
<li><a href="/david/cache/2021/96ff9022e3ee0d37611b30f57205810e/" title="Accès à l’article dans le cache local : Ways I'm available to help.">Ways I'm available to help.</a> (<a href="https://lethain.com/ways-i-help/" title="Accès à l’article original distant : Ways I'm available to help.">original</a>)</li> | |||
<li><a href="/david/cache/2021/44064d714aff0deac9f882cc429d8b9d/" title="Accès à l’article dans le cache local : Some rambling thoughts about the stuttering end of the last ice age and what lockdown means">Some rambling thoughts about the stuttering end of the last ice age and what lockdown means</a> (<a href="http://interconnected.org/home/2020/04/20/continuous_partial_lockdown" title="Accès à l’article original distant : Some rambling thoughts about the stuttering end of the last ice age and what lockdown means">original</a>)</li> | |||
<li><a href="/david/cache/2021/0e0d866f920298fbc0624c03ddc83d24/" title="Accès à l’article dans le cache local : Reconnaissance faciale: Clearview AI a violé la vie privée des Canadiens">Reconnaissance faciale: Clearview AI a violé la vie privée des Canadiens</a> (<a href="https://www.ledevoir.com/societe/594536/reconnaissance-faciale-clearview-ai-a-viole-la-vie-privee-des-canadiens" title="Accès à l’article original distant : Reconnaissance faciale: Clearview AI a violé la vie privée des Canadiens">original</a>)</li> |