Browse Source

Article

master
David Larlet 1 month ago
parent
commit
d2fffd32ec
Signed by: David Larlet <david@larlet.fr> GPG Key ID: 3E2953A359E7E7BD

+ 8
- 0
david/2024/03/18/index.html View File

@@ -152,6 +152,10 @@
title="Aller à la page de recherche"
rel="search" data-no-instant>Recherche</a>
• <a rel="next"
href="/david/2024/03/19/"
title="Publication suivante : Excitation">Suivant →</a>
</p>
</nav>
@@ -230,6 +234,10 @@
<a href="/david/2024/" title="Liste des publications récentes">↑ En 2024</a>
• <a rel="next"
href="/david/2024/03/19/"
title="Publication suivante : Excitation">Suivant →</a>
</p>
</nav>


+ 396
- 0
david/2024/03/19/index.html View File

@@ -0,0 +1,396 @@
<!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` element
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>
Excitation
— David Larlet</title>
<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>
<!-- Documented, feel free to shoot an email. -->
<link rel="stylesheet" href="/static/david/css/style_2024-03-09.css">
<!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
<link rel="preload"
href="/static/david/css/fonts/century_supra_ot_a_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/century_supra_ot_a_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/century_supra_ot_a_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/century_supra_ot_b_regular.woff2"
as="font"
type="font/woff2"
media="(prefers-color-scheme: dark)"
crossorigin>
<link rel="preload"
href="/static/david/css/fonts/century_supra_ot_b_bold.woff2"
as="font"
type="font/woff2"
media="(prefers-color-scheme: dark)"
crossorigin>
<link rel="preload"
href="/static/david/css/fonts/century_supra_ot_b_italic.woff2"
as="font"
type="font/woff2"
media="(prefers-color-scheme: dark)"
crossorigin>
<meta name="description" content="Il y a cette petite étincelle qui s’allume lorsque j’entrevois la possibilité de démarrer un petit bout de code qui pourrait changer mon/le monde (en toute modestie).">
<!-- 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="#f7f7f7">
<meta name="msapplication-config"
content="/static/david/icons2/browserconfig.xml">
<meta name="theme-color"
content="#f7f7f7"
media="(prefers-color-scheme: light)">
<meta name="theme-color"
content="#272727"
media="(prefers-color-scheme: dark)">
<!-- Is that even respected? Retrospectively? What a shAItshow…
https://neil-clarke.com/block-the-bots-that-feed-ai-models-by-scraping-your-website/ -->
<meta name="robots" content="noai, noimageai">
<style type="text/css">
.tippy-content {
min-width: 280px;
padding: .5rem;
font-size: calc(var(--fluid-0) * 0.8);
font-family: var(--labor-font);
letter-spacing: initial;
text-align: left;
}
.tippy-content h3 {
margin-top: 0;
}
.tippy-content h3 img {
max-width: 2rem;
max-height: 2rem;
display: inline-block;
}
.tippy-content .tippy-links {
display: flex;
justify-content: space-around;
}
.tippy-content a {
padding: .4rem;
color: #F06048;
}
</style>

<body data-instant-intensity="viewport-all">
<article>
<header>
<hgroup>
<h1>Excitation</h1>
<p>Le <time datetime="2024-03-19">19 mars 2024</time></p>
</hgroup>
</header>
<nav>
<p>
<a rel="prev"
href="/david/2024/03/18/"
title="Publication précédente : Casquettes">← Précédent</a> •
<a href="/david/" title="Aller à l’accueil" rel="up">Accueil</a>
<a href="/david/recherche/"
title="Aller à la page de recherche"
rel="search" data-no-instant>Recherche</a>
</p>
</nav>
<p>Il y a cette petite étincelle qui s’allume lorsque j’entrevois la possibilité de démarrer un petit bout de code qui pourrait changer mon/le monde (en toute&nbsp;modestie).</p>
<p>Idée du jour&nbsp;: faire un <em>web component</em> qui s’intitulerait <code>&lt;page-crypt&gt;</code> en s’inspirant grandement de <a data-link-domain="github.com" href="https://github.com/MaxLaumeister/PageCrypt/">PageCrypt</a> (et de sa <a data-link-domain="github.com" href="https://github.com/Greenheart/pagecrypt">version à jour</a>). La génération de la page chiffrée pourrait <a data-link-domain="github.com" href="https://github.com/MaxLaumeister/PageCrypt/blob/master/python/encrypt.py">se faire en Python</a>.</p>
<p>Cela essayerait de résoudre une problématique d’accès à du contenu privé sur des pages pré-générées de manière statique. Il est probable que j’en ai besoin sous peu afin d’afficher une progression personnalisée d’informations sensibles dans un contexte pro, ce qui me motive d’autant&nbsp;plus.</p>
<p>Je découvre au passage qu’il n’est pas trivial de <a data-link-domain="MDN" href="https://developer.mozilla.org/en-US/docs/Glossary/Base64#the_unicode_problem">convertir de l’unicode en base64 via JS</a>.</p>
<p>Note&nbsp;: il existe aussi <a data-link-domain="github.com" href="https://github.com/robinmoisson/staticrypt">StatiCrypt</a>.</p>
<a href="#hr-123" title="Lien vers cette section de la page"><hr id="hr-123" /></a>

<blockquote lang="en">
<p>If majority is always right – let’s eat shit… millions of flies can’t be&nbsp;wrong.</p>
<p><cite><em>Statek</em>, Waldemar Łysiak, 1994</cite></p>
</blockquote>
<p>Cette citation aura fait ma&nbsp;journée.</p>
<a href="#hr-124" title="Lien vers cette section de la page"><hr id="hr-124" /></a>
<p>Je suis frustré par les capacités d’export des données de <a href="/david/2024/03/14/" title="Montre 2">la montre</a>. En inspectant, je pourrais récupérer les JSON qui passent avec Playwright mais c’est un peu la face nord. <em>Ça me fait glousser qu’un tel site utilise&nbsp;Vite.</em></p>
<p>Il faut que je teste <a data-link-domain="github.com" href="https://github.com/xballoy/coros-api">coros-api</a> (TypeScript) et/ou <a data-link-domain="github.com" href="https://github.com/futoshita/Coros-Training-Hub-Exporter">Coros-Training-Hub-Exporter</a> (Java), je ne suis pas le seul à vouloir récupérer ces&nbsp;données.</p>
<p>Aussi, il y a des données qui ne sont pas exposées par le TrainingHub mais auxquelles on semble avoir accès <a data-link-domain="tryterra.co" href="https://tryterra.co/integrations/coros">via une API tierce</a> (et très dispendieuse&#8239;!). Étrange et&nbsp;décevant…</p>

<nav>
<p>
<a href="/david/2024/apprentissage/"
title="Liste de tous les articles 2024 associés à cette étiquette"
rel="tag">#apprentissage</a>
<a href="/david/2024/enthousiasme/"
title="Liste de tous les articles 2024 associés à cette étiquette"
rel="tag">#enthousiasme</a>
<a href="/david/2024/technique/"
title="Liste de tous les articles 2024 associés à cette étiquette"
rel="tag">#technique</a>
<a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
</p>
</nav>
<nav>
<p>
<a rel="prev"
href="/david/2024/03/18/"
title="Publication précédente : Casquettes">← Précédent</a> •
<a href="/david/2024/" title="Liste des publications récentes">↑ En 2024</a>
</p>
</nav>

<form action="/david/recherche/" method="get">
<fieldset>
<legend>Recherche</legend>
<label for="input-search">Termes de votre recherche :</label>
<input id="input-search" type="search" name="s" aria-describedby="indexation-infos" required>
<input type="submit" value="Chercher">
<p id="indexation-infos">
<small>
Seuls les contenus de ces 8 dernières années sont indexés.
</small>
</p>
</fieldset>
</form>
<aside>
<theme-toggle></theme-toggle>
</aside>
</article>
<hr>
<footer>
<p>
<a href="/david/" title="Aller à l’accueil">Accueil</a>
<a href="/david/log/" title="Accès au flux RSS">Suivre</a>
<a href="http://larlet.com"
title="Go to my English profile"
data-instant>Pro</a>
<a href="mailto:david%40larlet.fr" title="Envoyer un courriel">Email</a>
<abbr title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340">Légal</abbr>
</p>
<template id="theme-selector">
<form>
<style type="text/css">
fieldset div {
text-align: center;
}
</style>
<fieldset>
<legend>Thème</legend>
<div>
<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>
</div>
</fieldset>
</form>
</template>
</footer>
<script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
<script>
class ThemeToggle extends HTMLElement {
constructor() {
super()
const themeSelectorTemplate = document.querySelector('#theme-selector')
const form = themeSelectorTemplate.content.firstElementChild
this.attachShadow({ mode: 'open' })
this.shadowRoot.appendChild(form.cloneNode(true))
}

connectedCallback() {
const form = this.shadowRoot.querySelector('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 colorsLayer = undefined
let hasDarkRules = false
for (const styleSheet of Array.from(document.styleSheets)) {
let mediaRules = []
for (const layerRule of styleSheet.cssRules) {
if (!(layerRule instanceof CSSLayerBlockRule)) {
continue
}
if (layerRule.name === 'colors') {
colorsLayer = layerRule
}
for (const cssRule of layerRule.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) {
// Safari requires the `0` second parameter (even if default).
colorsLayer.insertRule(mediaRule.cssText, 0)
hasDarkRules = true
}
}

if (hasDarkRules) {
if ('customElements' in window && !customElements.get('theme-toggle')) {
customElements.define('theme-toggle', ThemeToggle)
}
}
})
</script>
<script src="/static/david/js/popper-2.11.8.min.js"></script>
<script src="/static/david/js/tippy-bundle-6.3.7.umd.min.js"></script>
<script>
tippy('[data-tippy]', {
content(reference) {
reference.addEventListener('click', (e) => e.preventDefault())
return `
<h3 lang="fr">
<img src="${reference.dataset.favicon}" loading="lazy">
<a href="${reference.dataset.source}"
>Article sur ${reference.dataset.domain}</a></h3>
<p lang="${reference.hreflang}"><em>${reference.dataset.description}</em></p>
<div class="tippy-links" lang="fr">
<a href="${reference.href}">Archive au ${reference.dataset.date}</a>
</div>
`
},
allowHTML: true,
interactive: true,
delay: [150, 700],
hideOnClick: false
})
</script>
<script type="module">
import { annotate } from '/static/david/js/rough-notation-0.5.1.esm.min.js'

const markObserver = new IntersectionObserver((entries, observer) => {
const computedStyle = getComputedStyle(document.documentElement)
const markBackground = computedStyle.getPropertyValue('--mark-background')
for (const entry of entries) {
if (entry.intersectionRatio === 0) continue
const markElement = entry.target
markElement.style.backgroundColor = 'inherit'
const annotation = annotate(
markElement, {
type: 'highlight',
multiline: true,
color: markBackground,
// animate: !window.matchMedia('(prefers-reduced-motion: reduce)').matches
animate: false
}
)
annotation.show()
observer.unobserve(markElement)
}
}, {threshold: 1.0})

for (const markElement of document.querySelectorAll('mark')) {
markObserver.observe(markElement)
}
</script>

</body>
</html>

+ 29
- 0
david/2024/_sources/2024-03-19 - Excitation.md View File

@@ -0,0 +1,29 @@
# Excitation

Il y a cette petite étincelle qui s’allume lorsque j’entrevois la possibilité de démarrer un petit bout de code qui pourrait changer mon/le monde (en toute modestie).

Idée du jour : faire un *web component* qui s’intitulerait `<page-crypt>` en s’inspirant grandement de [PageCrypt](https://github.com/MaxLaumeister/PageCrypt/) (et de sa [version à jour](https://github.com/Greenheart/pagecrypt)). La génération de la page chiffrée pourrait [se faire en Python](https://github.com/MaxLaumeister/PageCrypt/blob/master/python/encrypt.py).

Cela essayerait de résoudre une problématique d’accès à du contenu privé sur des pages pré-générées de manière statique. Il est probable que j’en ai besoin sous peu afin d’afficher une progression personnalisée d’informations sensibles dans un contexte pro, ce qui me motive d’autant plus.

Je découvre au passage qu’il n’est pas trivial de [convertir de l’unicode en base64 via JS](https://developer.mozilla.org/en-US/docs/Glossary/Base64#the_unicode_problem).

Note : il existe aussi [StatiCrypt](https://github.com/robinmoisson/staticrypt).

---

> [en] If majority is always right – let’s eat shit… millions of flies can’t be wrong.
>
> <cite>*Statek*, Waldemar Łysiak, 1994</cite>

Cette citation aura fait ma journée.

---

Je suis frustré par les capacités d’export des données de [la montre](/david/2024/03/14/). En inspectant, je pourrais récupérer les JSON qui passent avec Playwright mais c’est un peu la face nord. *Ça me fait glousser qu’un tel site utilise Vite.*

Il faut que je teste [coros-api](https://github.com/xballoy/coros-api) (TypeScript) et/ou [Coros-Training-Hub-Exporter](https://github.com/futoshita/Coros-Training-Hub-Exporter) (Java), je ne suis pas le seul à vouloir récupérer ces données.

Aussi, il y a des données qui ne sont pas exposées par le TrainingHub mais auxquelles on semble avoir accès [via une API tierce](https://tryterra.co/integrations/coros) (et très dispendieuse !). Étrange et décevant…

#apprentissage #enthousiasme #technique

+ 42
- 0
david/2024/apprentissage/index.html View File

@@ -134,6 +134,48 @@
</p>
</nav>
<h2>
<a href="/david/2024/03/19/" title="Lien permanent vers cet article">Excitation</a> <time datetime="2024-03-19">19 mars 2024</time>
</h2>
<p>Il y a cette petite étincelle qui s’allume lorsque j’entrevois la possibilité de démarrer un petit bout de code qui pourrait changer mon/le monde (en toute&nbsp;modestie).</p>
<p>Idée du jour&nbsp;: faire un <em>web component</em> qui s’intitulerait <code>&lt;page-crypt&gt;</code> en s’inspirant grandement de <a data-link-domain="github.com" href="https://github.com/MaxLaumeister/PageCrypt/">PageCrypt</a> (et de sa <a data-link-domain="github.com" href="https://github.com/Greenheart/pagecrypt">version à jour</a>). La génération de la page chiffrée pourrait <a data-link-domain="github.com" href="https://github.com/MaxLaumeister/PageCrypt/blob/master/python/encrypt.py">se faire en Python</a>.</p>
<p>Cela essayerait de résoudre une problématique d’accès à du contenu privé sur des pages pré-générées de manière statique. Il est probable que j’en ai besoin sous peu afin d’afficher une progression personnalisée d’informations sensibles dans un contexte pro, ce qui me motive d’autant&nbsp;plus.</p>
<p>Je découvre au passage qu’il n’est pas trivial de <a data-link-domain="MDN" href="https://developer.mozilla.org/en-US/docs/Glossary/Base64#the_unicode_problem">convertir de l’unicode en base64 via JS</a>.</p>
<p>Note&nbsp;: il existe aussi <a data-link-domain="github.com" href="https://github.com/robinmoisson/staticrypt">StatiCrypt</a>.</p>
<a href="#hr-123" title="Lien vers cette section de la page"><hr id="hr-123" /></a>

<blockquote lang="en">
<p>If majority is always right – let’s eat shit… millions of flies can’t be&nbsp;wrong.</p>
<p><cite><em>Statek</em>, Waldemar Łysiak, 1994</cite></p>
</blockquote>
<p>Cette citation aura fait ma&nbsp;journée.</p>
<a href="#hr-124" title="Lien vers cette section de la page"><hr id="hr-124" /></a>
<p>Je suis frustré par les capacités d’export des données de <a href="/david/2024/03/14/" title="Montre 2">la montre</a>. En inspectant, je pourrais récupérer les JSON qui passent avec Playwright mais c’est un peu la face nord. <em>Ça me fait glousser qu’un tel site utilise&nbsp;Vite.</em></p>
<p>Il faut que je teste <a data-link-domain="github.com" href="https://github.com/xballoy/coros-api">coros-api</a> (TypeScript) et/ou <a data-link-domain="github.com" href="https://github.com/futoshita/Coros-Training-Hub-Exporter">Coros-Training-Hub-Exporter</a> (Java), je ne suis pas le seul à vouloir récupérer ces&nbsp;données.</p>
<p>Aussi, il y a des données qui ne sont pas exposées par le TrainingHub mais auxquelles on semble avoir accès <a data-link-domain="tryterra.co" href="https://tryterra.co/integrations/coros">via une API tierce</a> (et très dispendieuse&#8239;!). Étrange et&nbsp;décevant…</p>

<nav>
<p>
<a href="/david/2024/apprentissage/"
title="Liste de tous les articles 2024 associés à cette étiquette"
rel="tag">#apprentissage</a>
<a href="/david/2024/enthousiasme/"
title="Liste de tous les articles 2024 associés à cette étiquette"
rel="tag">#enthousiasme</a>
<a href="/david/2024/technique/"
title="Liste de tous les articles 2024 associés à cette étiquette"
rel="tag">#technique</a>
<a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
</p>
</nav>
<h2>
<a href="/david/2024/03/06/" title="Lien permanent vers cet article">Vannerie</a> <time datetime="2024-03-06">6 mars 2024</time>
</h2>

+ 42
- 0
david/2024/enthousiasme/index.html View File

@@ -134,6 +134,48 @@
</p>
</nav>
<h2>
<a href="/david/2024/03/19/" title="Lien permanent vers cet article">Excitation</a> <time datetime="2024-03-19">19 mars 2024</time>
</h2>
<p>Il y a cette petite étincelle qui s’allume lorsque j’entrevois la possibilité de démarrer un petit bout de code qui pourrait changer mon/le monde (en toute&nbsp;modestie).</p>
<p>Idée du jour&nbsp;: faire un <em>web component</em> qui s’intitulerait <code>&lt;page-crypt&gt;</code> en s’inspirant grandement de <a data-link-domain="github.com" href="https://github.com/MaxLaumeister/PageCrypt/">PageCrypt</a> (et de sa <a data-link-domain="github.com" href="https://github.com/Greenheart/pagecrypt">version à jour</a>). La génération de la page chiffrée pourrait <a data-link-domain="github.com" href="https://github.com/MaxLaumeister/PageCrypt/blob/master/python/encrypt.py">se faire en Python</a>.</p>
<p>Cela essayerait de résoudre une problématique d’accès à du contenu privé sur des pages pré-générées de manière statique. Il est probable que j’en ai besoin sous peu afin d’afficher une progression personnalisée d’informations sensibles dans un contexte pro, ce qui me motive d’autant&nbsp;plus.</p>
<p>Je découvre au passage qu’il n’est pas trivial de <a data-link-domain="MDN" href="https://developer.mozilla.org/en-US/docs/Glossary/Base64#the_unicode_problem">convertir de l’unicode en base64 via JS</a>.</p>
<p>Note&nbsp;: il existe aussi <a data-link-domain="github.com" href="https://github.com/robinmoisson/staticrypt">StatiCrypt</a>.</p>
<a href="#hr-123" title="Lien vers cette section de la page"><hr id="hr-123" /></a>

<blockquote lang="en">
<p>If majority is always right – let’s eat shit… millions of flies can’t be&nbsp;wrong.</p>
<p><cite><em>Statek</em>, Waldemar Łysiak, 1994</cite></p>
</blockquote>
<p>Cette citation aura fait ma&nbsp;journée.</p>
<a href="#hr-124" title="Lien vers cette section de la page"><hr id="hr-124" /></a>
<p>Je suis frustré par les capacités d’export des données de <a href="/david/2024/03/14/" title="Montre 2">la montre</a>. En inspectant, je pourrais récupérer les JSON qui passent avec Playwright mais c’est un peu la face nord. <em>Ça me fait glousser qu’un tel site utilise&nbsp;Vite.</em></p>
<p>Il faut que je teste <a data-link-domain="github.com" href="https://github.com/xballoy/coros-api">coros-api</a> (TypeScript) et/ou <a data-link-domain="github.com" href="https://github.com/futoshita/Coros-Training-Hub-Exporter">Coros-Training-Hub-Exporter</a> (Java), je ne suis pas le seul à vouloir récupérer ces&nbsp;données.</p>
<p>Aussi, il y a des données qui ne sont pas exposées par le TrainingHub mais auxquelles on semble avoir accès <a data-link-domain="tryterra.co" href="https://tryterra.co/integrations/coros">via une API tierce</a> (et très dispendieuse&#8239;!). Étrange et&nbsp;décevant…</p>

<nav>
<p>
<a href="/david/2024/apprentissage/"
title="Liste de tous les articles 2024 associés à cette étiquette"
rel="tag">#apprentissage</a>
<a href="/david/2024/enthousiasme/"
title="Liste de tous les articles 2024 associés à cette étiquette"
rel="tag">#enthousiasme</a>
<a href="/david/2024/technique/"
title="Liste de tous les articles 2024 associés à cette étiquette"
rel="tag">#technique</a>
<a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
</p>
</nav>
<h2>
<a href="/david/2024/03/14/" title="Lien permanent vers cet article">Montre 2</a> <time datetime="2024-03-14">14 mars 2024</time>
</h2>

+ 5
- 4
david/2024/index.html View File

@@ -214,7 +214,8 @@
<a href="/david/2024/03/13/">Sérendipité</a>,
<a href="/david/2024/03/14/">Montre 2</a>,
<a href="/david/2024/03/16/">Descriptions</a>,
<a href="/david/2024/03/18/">Casquettes</a>.
<a href="/david/2024/03/18/">Casquettes</a>,
<a href="/david/2024/03/19/">Excitation</a>.
</p>
@@ -225,7 +226,7 @@
<a href="/david/2024/accompagnement/" rel="tag">#accompagnement (2)</a>,
<a href="/david/2024/adaptation/" rel="tag">#adaptation (3)</a>,
<a href="/david/2024/addiction/" rel="tag">#addiction (5)</a>,
<a href="/david/2024/apprentissage/" rel="tag">#apprentissage (14)</a>,
<a href="/david/2024/apprentissage/" rel="tag">#apprentissage (15)</a>,
<a href="/david/2024/aventure/" rel="tag">#aventure (4)</a>,
<a href="/david/2024/cinema/" rel="tag">#cinéma (1)</a>,
<a href="/david/2024/commun/" rel="tag">#commun (9)</a>,
@@ -238,7 +239,7 @@
<a href="/david/2024/dystopie/" rel="tag">#dystopie (3)</a>,
<a href="/david/2024/echanges/" rel="tag">#échanges (5)</a>,
<a href="/david/2024/ecriture/" rel="tag">#écriture (8)</a>,
<a href="/david/2024/enthousiasme/" rel="tag">#enthousiasme (1)</a>,
<a href="/david/2024/enthousiasme/" rel="tag">#enthousiasme (2)</a>,
<a href="/david/2024/equipe/" rel="tag">#équipe (7)</a>,
<a href="/david/2024/evolution/" rel="tag">#évolution (9)</a>,
<a href="/david/2024/experience/" rel="tag">#expérience (12)</a>,
@@ -263,7 +264,7 @@
<a href="/david/2024/psychologie/" rel="tag">#psychologie (10)</a>,
<a href="/david/2024/solastalgia/" rel="tag">#solastalgia (5)</a>,
<a href="/david/2024/sport/" rel="tag">#sport (6)</a>,
<a href="/david/2024/technique/" rel="tag">#technique (15)</a>,
<a href="/david/2024/technique/" rel="tag">#technique (16)</a>,
<a href="/david/2024/velo/" rel="tag">#vélo (1)</a>,
<a href="/david/2024/web/" rel="tag">#web (13)</a>.

+ 42
- 0
david/2024/technique/index.html View File

@@ -134,6 +134,48 @@
</p>
</nav>
<h2>
<a href="/david/2024/03/19/" title="Lien permanent vers cet article">Excitation</a> <time datetime="2024-03-19">19 mars 2024</time>
</h2>
<p>Il y a cette petite étincelle qui s’allume lorsque j’entrevois la possibilité de démarrer un petit bout de code qui pourrait changer mon/le monde (en toute&nbsp;modestie).</p>
<p>Idée du jour&nbsp;: faire un <em>web component</em> qui s’intitulerait <code>&lt;page-crypt&gt;</code> en s’inspirant grandement de <a data-link-domain="github.com" href="https://github.com/MaxLaumeister/PageCrypt/">PageCrypt</a> (et de sa <a data-link-domain="github.com" href="https://github.com/Greenheart/pagecrypt">version à jour</a>). La génération de la page chiffrée pourrait <a data-link-domain="github.com" href="https://github.com/MaxLaumeister/PageCrypt/blob/master/python/encrypt.py">se faire en Python</a>.</p>
<p>Cela essayerait de résoudre une problématique d’accès à du contenu privé sur des pages pré-générées de manière statique. Il est probable que j’en ai besoin sous peu afin d’afficher une progression personnalisée d’informations sensibles dans un contexte pro, ce qui me motive d’autant&nbsp;plus.</p>
<p>Je découvre au passage qu’il n’est pas trivial de <a data-link-domain="MDN" href="https://developer.mozilla.org/en-US/docs/Glossary/Base64#the_unicode_problem">convertir de l’unicode en base64 via JS</a>.</p>
<p>Note&nbsp;: il existe aussi <a data-link-domain="github.com" href="https://github.com/robinmoisson/staticrypt">StatiCrypt</a>.</p>
<a href="#hr-123" title="Lien vers cette section de la page"><hr id="hr-123" /></a>

<blockquote lang="en">
<p>If majority is always right – let’s eat shit… millions of flies can’t be&nbsp;wrong.</p>
<p><cite><em>Statek</em>, Waldemar Łysiak, 1994</cite></p>
</blockquote>
<p>Cette citation aura fait ma&nbsp;journée.</p>
<a href="#hr-124" title="Lien vers cette section de la page"><hr id="hr-124" /></a>
<p>Je suis frustré par les capacités d’export des données de <a href="/david/2024/03/14/" title="Montre 2">la montre</a>. En inspectant, je pourrais récupérer les JSON qui passent avec Playwright mais c’est un peu la face nord. <em>Ça me fait glousser qu’un tel site utilise&nbsp;Vite.</em></p>
<p>Il faut que je teste <a data-link-domain="github.com" href="https://github.com/xballoy/coros-api">coros-api</a> (TypeScript) et/ou <a data-link-domain="github.com" href="https://github.com/futoshita/Coros-Training-Hub-Exporter">Coros-Training-Hub-Exporter</a> (Java), je ne suis pas le seul à vouloir récupérer ces&nbsp;données.</p>
<p>Aussi, il y a des données qui ne sont pas exposées par le TrainingHub mais auxquelles on semble avoir accès <a data-link-domain="tryterra.co" href="https://tryterra.co/integrations/coros">via une API tierce</a> (et très dispendieuse&#8239;!). Étrange et&nbsp;décevant…</p>

<nav>
<p>
<a href="/david/2024/apprentissage/"
title="Liste de tous les articles 2024 associés à cette étiquette"
rel="tag">#apprentissage</a>
<a href="/david/2024/enthousiasme/"
title="Liste de tous les articles 2024 associés à cette étiquette"
rel="tag">#enthousiasme</a>
<a href="/david/2024/technique/"
title="Liste de tous les articles 2024 associés à cette étiquette"
rel="tag">#technique</a>
<a href="/david/2024/#tags" title="Liste de toutes les étiquettes 2024">tous ?</a>
</p>
</nav>
<h2>
<a href="/david/2024/03/12/" title="Lien permanent vers cet article">Surligner</a> <time datetime="2024-03-12">12 mars 2024</time>
</h2>

+ 11
- 11
david/blogroll/index.html View File

@@ -174,6 +174,16 @@
</nav>
<p>N’hésitez pas à me contacter si vous ne souhaitez pas figurer dans cette liste.</p>
<h2>Leurs dernières publications</h2>
<dl>
<dt>
<a href="https://emmaclit.com/2024/03/19/tri-social/">Tri social</a>,
19-03-2024
</dt>
<dd>
— <a href="https://emmaclit.com/">Emma</a>
</dd>
</dl>
<dl>
<dt>
<a href="https://www.arthurperret.fr/veille/2024-03-18-incurie-bibliographique.html">[Veille] Incurie bibliographique</a>,
@@ -226,7 +236,7 @@
</dl>
<dl>
<dt>
<a href="https://www.arthurperret.fr/blog/2024-03-14-inacheve-d-imprimer-echange.html">[Blog] Inachevé d’imprimer – Temps d’échange</a>,
<a href="https://www.arthurperret.fr/evenements/2024-03-14-inacheve-d-imprimer-echange.html">[Évènement] Inachevé d’imprimer – Temps d’échange</a>,
14-03-2024
</dt>
<dd>
@@ -384,16 +394,6 @@
— <a href="https://brr.fyi/">brr (en)</a>
</dd>
</dl>
<dl>
<dt>
<a href="https://emmaclit.com/2024/01/06/darmaprout/">Darmaprout</a>,
06-01-2024
</dt>
<dd>
Bédé libre de droits pour toute utilisation militante. J’ai choisi de faire un format court pour faciliter la lecture, ne m’en voulez pas si le propos est incomplet ! Bonne lecture !
— <a href="https://emmaclit.com/">Emma</a>
</dd>
</dl>
<dl>
<dt>
<a href="https://lalunemauve.fr/interview-mathyld-under-the-pyramids/">Interview de Mathyld (under the pyramids), artisane-créatrice de bijoux en argent</a>,

+ 4
- 3
david/index.html View File

@@ -461,6 +461,7 @@
</style>
<p>Liste des publications récentes en ordre anté-chronologique :</p>
<p>
<a href="/david/2024/03/19/" data-apprentissage data-enthousiasme data-technique title="Étiquettes : apprentissage, enthousiasme, technique.">Excitation</a>,
<a href="/david/2024/03/18/" data-adaptation data-addiction data-evolution title="Étiquettes : adaptation, addiction, évolution.">Casquettes</a>,
<a href="/david/2024/03/16/" data-aventure data-ecriture data-lecture title="Étiquettes : aventure, écriture, lecture.">Descriptions</a>,
<a href="/david/2024/03/14/" data-deception data-enthousiasme data-sport title="Étiquettes : déception, enthousiasme, sport.">Montre 2</a>,
@@ -546,7 +547,7 @@
<a href="/david/2024/accompagnement/" data-tag="accompagnement" rel="tag">#accompagnement (2)</a>,
<a href="/david/2024/adaptation/" data-tag="adaptation" rel="tag">#adaptation (3)</a>,
<a href="/david/2024/addiction/" data-tag="addiction" rel="tag">#addiction (5)</a>,
<a href="/david/2024/apprentissage/" data-tag="apprentissage" rel="tag">#apprentissage (14)</a>,
<a href="/david/2024/apprentissage/" data-tag="apprentissage" rel="tag">#apprentissage (15)</a>,
<a href="/david/2024/aventure/" data-tag="aventure" rel="tag">#aventure (4)</a>,
<a href="/david/2024/cinema/" data-tag="cinema" rel="tag">#cinéma (1)</a>,
<a href="/david/2024/commun/" data-tag="commun" rel="tag">#commun (9)</a>,
@@ -559,7 +560,7 @@
<a href="/david/2024/dystopie/" data-tag="dystopie" rel="tag">#dystopie (3)</a>,
<a href="/david/2024/echanges/" data-tag="echanges" rel="tag">#échanges (5)</a>,
<a href="/david/2024/ecriture/" data-tag="ecriture" rel="tag">#écriture (8)</a>,
<a href="/david/2024/enthousiasme/" data-tag="enthousiasme" rel="tag">#enthousiasme (1)</a>,
<a href="/david/2024/enthousiasme/" data-tag="enthousiasme" rel="tag">#enthousiasme (2)</a>,
<a href="/david/2024/equipe/" data-tag="equipe" rel="tag">#équipe (7)</a>,
<a href="/david/2024/evolution/" data-tag="evolution" rel="tag">#évolution (9)</a>,
<a href="/david/2024/experience/" data-tag="experience" rel="tag">#expérience (12)</a>,
@@ -584,7 +585,7 @@
<a href="/david/2024/psychologie/" data-tag="psychologie" rel="tag">#psychologie (10)</a>,
<a href="/david/2024/solastalgia/" data-tag="solastalgia" rel="tag">#solastalgia (5)</a>,
<a href="/david/2024/sport/" data-tag="sport" rel="tag">#sport (6)</a>,
<a href="/david/2024/technique/" data-tag="technique" rel="tag">#technique (15)</a>,
<a href="/david/2024/technique/" data-tag="technique" rel="tag">#technique (16)</a>,
<a href="/david/2024/velo/" data-tag="velo" rel="tag">#vélo (1)</a>,
<a href="/david/2024/web/" data-tag="web" rel="tag">#web (13)</a>.

+ 26
- 38
david/log/index.xml View File

@@ -6,13 +6,38 @@
<link href="https://larlet.fr/david/" rel="alternate" type="text/html" />
<link href="https://larlet.fr/david/log/" rel="self" />
<id>https://larlet.fr/david/</id>
<updated>2024-03-19T12:00:00+01:00</updated>
<updated>2024-03-20T12:00:00+01:00</updated>
<author>
<name>David Larlet</name>
<uri>https://larlet.fr/david/</uri>
</author>
<rights>Copyright (c) 2004-2024, David Larlet</rights>
<entry xml:lang="fr">
<title type="html">Excitation</title>
<link href="https://larlet.fr/david/2024/03/19/" rel="alternate" type="text/html" />
<updated>2024-03-19T12:00:00+01:00</updated>
<id>https://larlet.fr/david/2024/03/19/</id>
<summary type="html">
&lt;p&gt;Il y a cette petite étincelle qui s’allume lorsque j’entrevois la possibilité de démarrer un petit bout de code qui pourrait changer mon/le monde (en toute&amp;nbsp;modestie).&lt;/p&gt;
&lt;p&gt;Idée du jour&amp;nbsp;: faire un &lt;em&gt;web component&lt;/em&gt; qui s’intitulerait &lt;code&gt;&amp;lt;page-crypt&amp;gt;&lt;/code&gt; en s’inspirant grandement de &lt;a href=&quot;https://github.com/MaxLaumeister/PageCrypt/&quot;&gt;PageCrypt&lt;/a&gt; (et de sa &lt;a href=&quot;https://github.com/Greenheart/pagecrypt&quot;&gt;version à jour&lt;/a&gt;). La génération de la page chiffrée pourrait &lt;a href=&quot;https://github.com/MaxLaumeister/PageCrypt/blob/master/python/encrypt.py&quot;&gt;se faire en Python&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Cela essayerait de résoudre une problématique d’accès à du contenu privé sur des pages pré-générées de manière statique. Il est probable que j’en ai besoin sous peu afin d’afficher une progression personnalisée d’informations sensibles dans un contexte pro, ce qui me motive d’autant&amp;nbsp;plus.&lt;/p&gt;
&lt;p&gt;Je découvre au passage qu’il n’est pas trivial de &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Glossary/Base64#the_unicode_problem&quot;&gt;convertir de l’unicode en base64 via JS&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Note&amp;nbsp;: il existe aussi &lt;a href=&quot;https://github.com/robinmoisson/staticrypt&quot;&gt;StatiCrypt&lt;/a&gt;.&lt;/p&gt;
&lt;hr /&gt;

&lt;blockquote lang=&quot;en&quot;&gt;
&lt;p&gt;If majority is always right – let’s eat shit… millions of flies can’t be&amp;nbsp;wrong.&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;&lt;em&gt;Statek&lt;/em&gt;, Waldemar Łysiak, 1994&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Cette citation aura fait ma&amp;nbsp;journée.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Je suis frustré par les capacités d’export des données de &lt;a href=&quot;https://larlet.fr/david/2024/03/14/&quot;&gt;la montre&lt;/a&gt;. En inspectant, je pourrais récupérer les JSON qui passent avec Playwright mais c’est un peu la face nord. &lt;em&gt;Ça me fait glousser qu’un tel site utilise&amp;nbsp;Vite.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Il faut que je teste &lt;a href=&quot;https://github.com/xballoy/coros-api&quot;&gt;coros-api&lt;/a&gt; (TypeScript) et/ou &lt;a href=&quot;https://github.com/futoshita/Coros-Training-Hub-Exporter&quot;&gt;Coros-Training-Hub-Exporter&lt;/a&gt; (Java), je ne suis pas le seul à vouloir récupérer ces&amp;nbsp;données.&lt;/p&gt;
&lt;p&gt;Aussi, il y a des données qui ne sont pas exposées par le TrainingHub mais auxquelles on semble avoir accès &lt;a href=&quot;https://tryterra.co/integrations/coros&quot;&gt;via une API tierce&lt;/a&gt; (et très dispendieuse&amp;#8239;!). Étrange et&amp;nbsp;décevant…&lt;/p&gt;
&lt;nav&gt;&lt;p&gt;&lt;a href=&quot;https://larlet.fr/david/2024/apprentissage/&quot;&gt;#apprentissage&lt;/a&gt; &lt;a href=&quot;https://larlet.fr/david/2024/enthousiasme/&quot;&gt;#enthousiasme&lt;/a&gt; &lt;a href=&quot;https://larlet.fr/david/2024/technique/&quot;&gt;#technique&lt;/a&gt;&lt;/p&gt;&lt;/nav&gt;&lt;hr/&gt;&lt;p&gt;&lt;a href=&quot;mailto:david@larlet.fr&quot;&gt;Réagir ?&lt;/a&gt;&lt;/p&gt;</summary>
</entry>
<entry xml:lang="fr">
<title type="html">Casquettes</title>
<link href="https://larlet.fr/david/2024/03/18/" rel="alternate" type="text/html" />
@@ -1136,41 +1161,4 @@ button.primary {
&lt;nav&gt;&lt;p&gt;&lt;a href=&quot;https://larlet.fr/david/2024/ecriture/&quot;&gt;#écriture&lt;/a&gt; &lt;a href=&quot;https://larlet.fr/david/2024/lecture/&quot;&gt;#lecture&lt;/a&gt; &lt;a href=&quot;https://larlet.fr/david/2024/solastalgia/&quot;&gt;#solastalgia&lt;/a&gt;&lt;/p&gt;&lt;/nav&gt;&lt;hr/&gt;&lt;p&gt;&lt;a href=&quot;mailto:david@larlet.fr&quot;&gt;Réagir ?&lt;/a&gt;&lt;/p&gt;</summary>
</entry>
<entry xml:lang="fr">
<title type="html">uMap 2</title>
<link href="https://larlet.fr/david/2024/02/16/" rel="alternate" type="text/html" />
<updated>2024-02-16T12:00:00+01:00</updated>
<id>https://larlet.fr/david/2024/02/16/</id>
<summary type="html">

&lt;blockquote lang=&quot;en&quot;&gt;
&lt;p&gt;But it’s deeper that that. Open source is &lt;em&gt;good for humanity&lt;/em&gt;. It’s only slightly hyperbolic to say that &lt;mark&gt;open source is one of the most notable collective successes&lt;/mark&gt; of humankind as a species! It’s one of the few places where essentially all of humanity works together on something that benefits everyone. A world without open source would be substantially worse than the world we live&amp;nbsp;in.&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;&lt;em&gt;&lt;a href=&quot;https://jacobian.org/2024/feb/16/paying-maintainers-is-good/&quot;&gt;Paying people to work on open source is good&amp;nbsp;actually&lt;/a&gt;&lt;/em&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;J’ai déjà parlé &lt;a href=&quot;https://larlet.fr/david/2024/01/18/&quot;&gt;d’open-source&lt;/a&gt;, de &lt;a href=&quot;https://larlet.fr/david/2024/01/31/&quot;&gt;mécénat&lt;/a&gt;, de &lt;a href=&quot;https://larlet.fr/david/2024/02/09/&quot;&gt;versions&lt;/a&gt;, de &lt;a href=&quot;https://larlet.fr/david/2024/02/15/&quot;&gt;licences&lt;/a&gt;, mais comment se passe une &lt;em&gt;release&lt;/em&gt; de produit&amp;nbsp;open-source&amp;#8239;?&lt;/p&gt;
&lt;p&gt;On commence à avoir affiné et &lt;a href=&quot;https://docs.umap-project.org/en/master/release/&quot;&gt;documenté le processus&lt;/a&gt;, on a &lt;a href=&quot;https://github.com/umap-project/umap-deploy-osmfr&quot;&gt;des scripts dédiés&lt;/a&gt; pour arriver à cela lorsque le moment est venu et nous sommes pour l’instant 2&amp;nbsp;à pouvoir faire cela de bout en bout avec &lt;a href=&quot;https://yohanboniface.me/&quot;&gt;Yohan&lt;/a&gt;. C’est peu mais c’est aussi +100% par rapport à l’année&amp;nbsp;dernière…&lt;/p&gt;
&lt;p&gt;Nous n’étions pas très loin de repousser encore une fois la version&amp;nbsp;2&amp;nbsp;car il y avait un dernier changement majeur à faire passer. Tiraillés, nous avons repoussé cela à une version&amp;nbsp;3&amp;nbsp;quitte à ce qu’elle arrive prochainement. Franchir cette barrière psychologique était important pour la suite. Le faire en visio de bout en bout (comme une bonne partie de nos interactions sur le produit) était enthousiasmant. En bonus, c’était un vendredi&amp;nbsp;après-midi.&lt;/p&gt;
&lt;p&gt;Voilà donc &lt;a href=&quot;https://docs.umap-project.org/en/master/changelog/#200-2024-02-16&quot;&gt;un &lt;em&gt;changelog&lt;/em&gt;&lt;/a&gt; déjà bien chargé. Nous nous sommes rendu compte au cours du processus que le versionnement était davantage pertinent pour les mainteneur·euses que pour les utilisateur·ices. Les fonctionnalités sont ajoutées au compte-goutte mais il faut prévenir les personnes qui vont mettre à jour l’outil de ce qui pourrait coincer lors du déploiement. Certains changements ont été volontaires (modules ESM =&amp;gt; support navigateurs), d’autres contraints (fin du support de l’authification OpenStreetMap OAuth1), d’autres subis (Django&amp;nbsp;5 =&amp;gt; Python 3.10). Un beau&amp;nbsp;mélange.&lt;/p&gt;
&lt;p&gt;Je ne vais rien annoncer pour une version&amp;nbsp;3&amp;nbsp;car ce serait ajouter une pression inutile et même si on a des intuitions tout est loin d’être priorisé. Dans mes motivations &lt;em&gt;personnelles&lt;/em&gt;&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;aller vers une amélioration de&amp;nbsp;l’accessibilité&amp;#8239;;&lt;/li&gt;
&lt;li&gt;voir les &lt;a href=&quot;https://blog.notmyidea.org/tag/umap.html&quot;&gt;explorations d’Alexis&lt;/a&gt; prendre&amp;nbsp;forme&amp;#8239;;&lt;/li&gt;
&lt;li&gt;clarifier les lieux de support / documentation en participant&amp;nbsp;davantage.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote lang=&quot;en&quot;&gt;
&lt;p&gt;We have to accept the world as it is – even if it’s not the world we want. This means we have to be okay with the idea that maintainers need to be paid. Far too often I see arguments like: “&lt;mark&gt;maintainers shouldn’t be paid by private companies because the government should be supporting them.&lt;/mark&gt;” Sure, this sounds great – but &lt;em&gt;governments aren’t doing this!&lt;/em&gt; So this argument reduces to “open source maintainers shouldn’t be paid”. I can’t get on board with&amp;nbsp;that.&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;&lt;em&gt;Ibid.&lt;/em&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Étant actuellement payé par l’Agence nationale de la cohésion des territoires pour participer à de l’&lt;em&gt;open-source&lt;/em&gt;, je ne peux qu’approuver cette partie de la citation et être heureux de me trouver là où je suis. Les exceptions existent grâce à une conjonction de volontés, de privilèges et de coups de&amp;nbsp;bol.&lt;/p&gt;
&lt;hr /&gt;

&lt;blockquote lang=&quot;en&quot;&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/astral-sh/uv&quot;&gt;uv&lt;/a&gt; represents a milestone in our pursuit of a “&lt;a href=&quot;https://blog.rust-lang.org/2016/05/05/cargo-pillars.html#pillars-of-cargo&quot;&gt;Cargo for Python&lt;/a&gt;”: a comprehensive Python project and package manager that’s fast, reliable, and easy to&amp;nbsp;use.&lt;/p&gt;
&lt;p&gt;&lt;cite&gt;&lt;em&gt;&lt;a href=&quot;https://astral.sh/blog/uv&quot;&gt;uv: Python packaging in&amp;nbsp;Rust&lt;/a&gt;&lt;/em&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Un futur de Python se dessine et j’en apprécie les&amp;nbsp;esquisses.&lt;/p&gt;
&lt;nav&gt;&lt;p&gt;&lt;a href=&quot;https://larlet.fr/david/2024/commun/&quot;&gt;#commun&lt;/a&gt; &lt;a href=&quot;https://larlet.fr/david/2024/decision/&quot;&gt;#décision&lt;/a&gt; &lt;a href=&quot;https://larlet.fr/david/2024/opensource/&quot;&gt;#opensource&lt;/a&gt;&lt;/p&gt;&lt;/nav&gt;&lt;hr/&gt;&lt;p&gt;&lt;a href=&quot;mailto:david@larlet.fr&quot;&gt;Réagir ?&lt;/a&gt;&lt;/p&gt;</summary>
</entry>
</feed>

+ 12
- 0
david/recherche/index.html View File

@@ -276,6 +276,12 @@
</template>
<script id="search-index" type="application/json">[
{
"title": "Excitation",
"url": "/david/2024/03/19/",
"date": "2024-03-19",
"content": "Il y a cette petite \u00e9tincelle qui s\u2019allume lorsque j\u2019entrevois la possibilit\u00e9 de d\u00e9marrer un petit bout de code qui pourrait changer mon/le monde (en toute\u00a0modestie). Id\u00e9e du jour\u00a0: faire un web component qui s\u2019intitulerait <page-crypt> en s\u2019inspirant grandement de PageCrypt (et de sa version \u00e0 jour). La g\u00e9n\u00e9ration de la page chiffr\u00e9e pourrait se faire en Python. Cela essayerait de r\u00e9soudre une probl\u00e9matique d\u2019acc\u00e8s \u00e0 du contenu priv\u00e9 sur des pages pr\u00e9-g\u00e9n\u00e9r\u00e9es de mani\u00e8re statique. Il est probable que j\u2019en ai besoin sous peu afin d\u2019afficher une progression personnalis\u00e9e d\u2019informations sensibles dans un contexte pro, ce qui me motive d\u2019autant\u00a0plus. Je d\u00e9couvre au passage qu\u2019il n\u2019est pas trivial de convertir de l\u2019unicode en base64 via JS. Note\u00a0: il existe aussi StatiCrypt. If majority is always right \u2013 let\u2019s eat shit\u2026 millions of flies can\u2019t be\u00a0wrong. Statek, Waldemar \u0141ysiak, 1994 Cette citation aura fait ma\u00a0journ\u00e9e. Je suis frustr\u00e9 par les capacit\u00e9s d\u2019export des donn\u00e9es de la montre. En inspectant, je pourrais r\u00e9cup\u00e9rer les JSON qui passent avec Playwright mais c\u2019est un peu la face nord. \u00c7a me fait glousser qu\u2019un tel site utilise\u00a0Vite. Il faut que je teste coros-api (TypeScript) et/ou Coros-Training-Hub-Exporter (Java), je ne suis pas le seul \u00e0 vouloir r\u00e9cup\u00e9rer ces\u00a0donn\u00e9es. Aussi, il y a des donn\u00e9es qui ne sont pas expos\u00e9es par le TrainingHub mais auxquelles on semble avoir acc\u00e8s via une API tierce (et tr\u00e8s dispendieuse\u202f!). \u00c9trange et\u00a0d\u00e9cevant\u2026"
},
{
"title": "Casquettes",
"url": "/david/2024/03/18/",
@@ -732,6 +738,12 @@
"date": "2024-01-01",
"content": "33\u202f% de 44\u00a0millions de consommateurs vont faire le Dry January 22\u202f% des consommateurs ont une conso excessive, c\u2019est-\u00e0-dire 10\u00a0verres/semaine max et plus de deux\u00a0verres/jour. Les seniors sont aussi tr\u00e8s touch\u00e9\u00b7es. L\u2019alcool est une drogue.. On peut faire la f\u00eate sans alcool et\u00a0s\u2019\u00e9clater. Quand on arr\u00eate\u00a0: bienfaits sur le foie, la peau, le coeur, etc\u2026 Pb\u00a0: m\u00e9moire, troubles cognitifs, responsable de cancer, pb sommeil, d\u00e9compensation de maladie psy,\u2026 41000\u00a0d\u00e9c\u00e8s par an en\u00a0France. Les cinq sympt\u00f4mes d\u00e9finissent un probl\u00e8me de\u00a0d\u00e9pendance\u00a0: Perte de\u00a0contr\u00f4le Usage\u00a0compulsif Envie\u00a0r\u00e9pressive Usage\u00a0chronique Cons\u00e9quences psychiques, physiques, sociales,\u2026 Bon Dry J. pour celleux qui le font\u202f! Moi j\u2019en\u00a0suis\u202f! @Air@framapiaf.org Dans mon entourage, de plus en plus de personnes que j\u2019estime ne boivent pas d\u2019alcool, de plus en plus de personnes qui vieillissent en deviennent d\u00e9pendantes. Je suis davantage attir\u00e9 par la premi\u00e8re option\u2026 et pas pour un seul\u00a0mois. Je me sens pr\u00eat, on verra bien o\u00f9 cela me\u00a0m\u00e8ne. Grosse envie de reprendre la CSS par ici en ce d\u00e9but d\u2019ann\u00e9e. Avec le dilemme de faire chuter cette motivation si je publie d\u00e8s maintenant avec l\u2019ancienne (qui restera effective sur les anciens articles). Je vais essayer de me\u00a0retenir."
},
{
"title": "Excitation",
"url": "/david/2024/03/19/",
"date": "2024-03-19",
"content": "Il y a cette petite \u00e9tincelle qui s\u2019allume lorsque j\u2019entrevois la possibilit\u00e9 de d\u00e9marrer un petit bout de code qui pourrait changer mon/le monde (en toute\u00a0modestie). Id\u00e9e du jour\u00a0: faire un web component qui s\u2019intitulerait <page-crypt> en s\u2019inspirant grandement de PageCrypt (et de sa version \u00e0 jour). La g\u00e9n\u00e9ration de la page chiffr\u00e9e pourrait se faire en Python. Cela essayerait de r\u00e9soudre une probl\u00e9matique d\u2019acc\u00e8s \u00e0 du contenu priv\u00e9 sur des pages pr\u00e9-g\u00e9n\u00e9r\u00e9es de mani\u00e8re statique. Il est probable que j\u2019en ai besoin sous peu afin d\u2019afficher une progression personnalis\u00e9e d\u2019informations sensibles dans un contexte pro, ce qui me motive d\u2019autant\u00a0plus. Je d\u00e9couvre au passage qu\u2019il n\u2019est pas trivial de convertir de l\u2019unicode en base64 via JS. Note\u00a0: il existe aussi StatiCrypt. If majority is always right \u2013 let\u2019s eat shit\u2026 millions of flies can\u2019t be\u00a0wrong. Statek, Waldemar \u0141ysiak, 1994 Cette citation aura fait ma\u00a0journ\u00e9e. Je suis frustr\u00e9 par les capacit\u00e9s d\u2019export des donn\u00e9es de la montre. En inspectant, je pourrais r\u00e9cup\u00e9rer les JSON qui passent avec Playwright mais c\u2019est un peu la face nord. \u00c7a me fait glousser qu\u2019un tel site utilise\u00a0Vite. Il faut que je teste coros-api (TypeScript) et/ou Coros-Training-Hub-Exporter (Java), je ne suis pas le seul \u00e0 vouloir r\u00e9cup\u00e9rer ces\u00a0donn\u00e9es. Aussi, il y a des donn\u00e9es qui ne sont pas expos\u00e9es par le TrainingHub mais auxquelles on semble avoir acc\u00e8s via une API tierce (et tr\u00e8s dispendieuse\u202f!). \u00c9trange et\u00a0d\u00e9cevant\u2026"
},
{
"title": "Casquettes",
"url": "/david/2024/03/18/",

Loading…
Cancel
Save