chore: retire data/ du suivi git
@@ -7,3 +7,4 @@ vendor/
|
|||||||
# OS
|
# OS
|
||||||
.DS_Store
|
.DS_Store
|
||||||
Thumbs.db
|
Thumbs.db
|
||||||
|
\n# Contenu du blog (articles, fichiers, données)\ndata/
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
Ceci est le premier post de varlog. #test
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"uuid": "0d8d5060-b5bd-4e81-ae3a-aaa58e7ff2ae",
|
|
||||||
"slug": "bienvenue",
|
|
||||||
"title": "Bienvenue",
|
|
||||||
"author": "cedric@abonnel.fr",
|
|
||||||
"published": true,
|
|
||||||
"published_at": "2025-04-04 07:30:00",
|
|
||||||
"created_at": "2025-04-04 07:30:00",
|
|
||||||
"updated_at": "2025-04-04 12:04:13",
|
|
||||||
"revisions": [],
|
|
||||||
"cover": "cover.jpg",
|
|
||||||
"category": "blog"
|
|
||||||
}
|
|
||||||
@@ -1,97 +0,0 @@
|
|||||||
<svg width="100%" viewBox="0 0 680 520" role="img" xmlns="http://www.w3.org/2000/svg" style="">
|
|
||||||
<title style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">ImageMagick sur Debian : convert-im6, magick, et leur lien avec les binaires sous-jacents</title>
|
|
||||||
<desc style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">Schéma illustrant comment les commandes convert et magick sont des symlinks vers les binaires versionnés convert-im6.q16 et magick-im7.q16 sur Debian.</desc>
|
|
||||||
<defs>
|
|
||||||
<marker id="arrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse"><path d="M2 1L8 5L2 9" fill="none" stroke="context-stroke" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></marker>
|
|
||||||
</defs>
|
|
||||||
|
|
||||||
<text x="340" y="36" text-anchor="middle" font-size="16" style="fill:rgb(20, 20, 19);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:14px;font-weight:500;text-anchor:middle;dominant-baseline:auto">ImageMagick sur Debian</text>
|
|
||||||
<text x="340" y="56" text-anchor="middle" style="fill:rgb(61, 61, 58);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">Ce que tu tapes, ce que le système exécute</text>
|
|
||||||
|
|
||||||
<rect x="40" y="90" width="290" height="180" rx="8" fill="none" stroke="var(--color-border-tertiary)" stroke-width="0.5" stroke-dasharray="4 3" style="fill:none;stroke:rgba(31, 30, 29, 0.15);color:rgb(0, 0, 0);stroke-width:0.5px;stroke-dasharray:4px, 3px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<text x="60" y="112" style="fill:rgb(61, 61, 58);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:12px;font-weight:400;text-anchor:start;dominant-baseline:auto">Debian 11 / 12 (bookworm)</text>
|
|
||||||
|
|
||||||
<g style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<rect x="80" y="130" width="120" height="44" rx="8" style="fill:rgb(230, 241, 251);stroke:rgb(24, 95, 165);color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<text x="140" y="152" text-anchor="middle" style="fill:rgb(12, 68, 124);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:14px;font-weight:500;text-anchor:middle;dominant-baseline:auto">convert</text>
|
|
||||||
<text x="140" y="168" text-anchor="middle" style="fill:rgb(24, 95, 165);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">tu tapes</text>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<line x1="200" y1="152" x2="240" y2="152" stroke="var(--color-text-tertiary)" stroke-width="0.5" marker-end="url(#arrow)" stroke-dasharray="3 2" style="fill:none;stroke:rgb(115, 114, 108);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-dasharray:3px, 2px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
|
|
||||||
<g style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<rect x="240" y="130" width="70" height="44" rx="8" style="fill:rgb(241, 239, 232);stroke:rgb(95, 94, 90);color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<text x="275" y="148" text-anchor="middle" style="fill:rgb(68, 68, 65);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:14px;font-weight:400;text-anchor:middle;dominant-baseline:auto">indispo</text>
|
|
||||||
<text x="275" y="162" text-anchor="middle" style="fill:rgb(95, 94, 90);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">par défaut</text>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<g style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<rect x="80" y="200" width="120" height="44" rx="8" style="fill:rgb(230, 241, 251);stroke:rgb(24, 95, 165);color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<text x="140" y="222" text-anchor="middle" style="fill:rgb(12, 68, 124);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:14px;font-weight:500;text-anchor:middle;dominant-baseline:auto">convert-im6</text>
|
|
||||||
<text x="140" y="238" text-anchor="middle" style="fill:rgb(24, 95, 165);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">tu tapes</text>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<line x1="200" y1="222" x2="240" y2="222" stroke="var(--color-text-secondary)" stroke-width="0.5" marker-end="url(#arrow)" style="fill:none;stroke:rgb(115, 114, 108);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
|
|
||||||
<g style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<rect x="240" y="200" width="80" height="44" rx="8" style="fill:rgb(225, 245, 238);stroke:rgb(15, 110, 86);color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<text x="280" y="220" text-anchor="middle" style="fill:rgb(8, 80, 65);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:14px;font-weight:500;text-anchor:middle;dominant-baseline:auto">IM 6</text>
|
|
||||||
<text x="280" y="234" text-anchor="middle" style="fill:rgb(15, 110, 86);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">.q16</text>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<rect x="350" y="90" width="290" height="180" rx="8" fill="none" stroke="var(--color-border-tertiary)" stroke-width="0.5" stroke-dasharray="4 3" style="fill:none;stroke:rgba(31, 30, 29, 0.15);color:rgb(0, 0, 0);stroke-width:0.5px;stroke-dasharray:4px, 3px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<text x="370" y="112" style="fill:rgb(61, 61, 58);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:12px;font-weight:400;text-anchor:start;dominant-baseline:auto">Debian 13 (trixie)</text>
|
|
||||||
|
|
||||||
<g style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<rect x="380" y="130" width="120" height="44" rx="8" style="fill:rgb(230, 241, 251);stroke:rgb(24, 95, 165);color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<text x="440" y="152" text-anchor="middle" style="fill:rgb(12, 68, 124);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:14px;font-weight:500;text-anchor:middle;dominant-baseline:auto">convert</text>
|
|
||||||
<text x="440" y="168" text-anchor="middle" style="fill:rgb(24, 95, 165);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">symlink</text>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<line x1="500" y1="152" x2="540" y2="152" stroke="var(--color-text-secondary)" stroke-width="0.5" marker-end="url(#arrow)" style="fill:none;stroke:rgb(115, 114, 108);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
|
|
||||||
<g style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<rect x="540" y="130" width="80" height="44" rx="8" style="fill:rgb(250, 238, 218);stroke:rgb(133, 79, 11);color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<text x="580" y="150" text-anchor="middle" style="fill:rgb(99, 56, 6);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:14px;font-weight:500;text-anchor:middle;dominant-baseline:auto">IM 7</text>
|
|
||||||
<text x="580" y="164" text-anchor="middle" style="fill:rgb(133, 79, 11);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">.q16</text>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<g style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<rect x="380" y="200" width="120" height="44" rx="8" style="fill:rgb(230, 241, 251);stroke:rgb(24, 95, 165);color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<text x="440" y="222" text-anchor="middle" style="fill:rgb(12, 68, 124);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:14px;font-weight:500;text-anchor:middle;dominant-baseline:auto">magick</text>
|
|
||||||
<text x="440" y="238" text-anchor="middle" style="fill:rgb(24, 95, 165);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">recommandé</text>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<line x1="500" y1="222" x2="540" y2="222" stroke="var(--color-text-secondary)" stroke-width="0.5" marker-end="url(#arrow)" style="fill:none;stroke:rgb(115, 114, 108);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
|
|
||||||
<g style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<rect x="540" y="200" width="80" height="44" rx="8" style="fill:rgb(250, 238, 218);stroke:rgb(133, 79, 11);color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<text x="580" y="220" text-anchor="middle" style="fill:rgb(99, 56, 6);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:14px;font-weight:500;text-anchor:middle;dominant-baseline:auto">IM 7</text>
|
|
||||||
<text x="580" y="234" text-anchor="middle" style="fill:rgb(133, 79, 11);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">.q16</text>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<text x="340" y="310" text-anchor="middle" style="fill:rgb(20, 20, 19);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:14px;font-weight:500;text-anchor:middle;dominant-baseline:auto">Pourquoi ce renommage ?</text>
|
|
||||||
|
|
||||||
<g style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<rect x="100" y="335" width="200" height="80" rx="8" style="fill:rgb(225, 245, 238);stroke:rgb(15, 110, 86);color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<text x="200" y="362" text-anchor="middle" style="fill:rgb(8, 80, 65);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:14px;font-weight:500;text-anchor:middle;dominant-baseline:auto">ImageMagick 6</text>
|
|
||||||
<text x="200" y="382" text-anchor="middle" style="fill:rgb(15, 110, 86);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">convert, identify,</text>
|
|
||||||
<text x="200" y="398" text-anchor="middle" style="fill:rgb(15, 110, 86);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">mogrify, composite</text>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<g style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<rect x="380" y="335" width="200" height="80" rx="8" style="fill:rgb(250, 238, 218);stroke:rgb(133, 79, 11);color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<text x="480" y="362" text-anchor="middle" style="fill:rgb(99, 56, 6);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:14px;font-weight:500;text-anchor:middle;dominant-baseline:auto">ImageMagick 7</text>
|
|
||||||
<text x="480" y="382" text-anchor="middle" style="fill:rgb(133, 79, 11);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">magick</text>
|
|
||||||
<text x="480" y="398" text-anchor="middle" style="fill:rgb(133, 79, 11);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">(commande unique)</text>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<text x="340" y="365" text-anchor="middle" style="fill:rgb(20, 20, 19);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:14px;font-weight:400;text-anchor:middle;dominant-baseline:auto">+</text>
|
|
||||||
<text x="340" y="385" text-anchor="middle" style="fill:rgb(61, 61, 58);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">noms en</text>
|
|
||||||
<text x="340" y="400" text-anchor="middle" style="fill:rgb(61, 61, 58);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">conflit</text>
|
|
||||||
|
|
||||||
<rect x="100" y="445" width="480" height="50" rx="8" fill="var(--color-background-secondary)" stroke="var(--color-border-tertiary)" stroke-width="0.5" style="fill:rgb(245, 244, 237);stroke:rgba(31, 30, 29, 0.15);color:rgb(0, 0, 0);stroke-width:0.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<text x="340" y="467" text-anchor="middle" style="fill:rgb(20, 20, 19);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:14px;font-weight:400;text-anchor:middle;dominant-baseline:auto">Solution Debian : suffixer chaque binaire</text>
|
|
||||||
<text x="340" y="484" text-anchor="middle" style="fill:rgb(61, 61, 58);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">convert-im6.q16 / magick-im7.q16 → cohabitation possible</text>
|
|
||||||
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 23 KiB |
@@ -1,115 +0,0 @@
|
|||||||
<svg width="100%" viewBox="0 0 690 490" role="img" xmlns="http://www.w3.org/2000/svg" style="">
|
|
||||||
<title style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">magick : la commande unifiée d'ImageMagick 7</title>
|
|
||||||
<desc style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">Illustration représentant la commande magick comme une baguette magique transformant une image source en plusieurs formats.</desc>
|
|
||||||
|
|
||||||
<defs>
|
|
||||||
<radialGradient id="bgGlow" cx="50%" cy="45%" r="60%">
|
|
||||||
<stop offset="0%" stop-color="#2a1f4d"/>
|
|
||||||
<stop offset="60%" stop-color="#1a1530"/>
|
|
||||||
<stop offset="100%" stop-color="#0f0b1f"/>
|
|
||||||
</radialGradient>
|
|
||||||
<radialGradient id="starGlow" cx="50%" cy="50%" r="50%">
|
|
||||||
<stop offset="0%" stop-color="#ffe89a" stop-opacity="1"/>
|
|
||||||
<stop offset="40%" stop-color="#f4a949" stop-opacity="0.8"/>
|
|
||||||
<stop offset="100%" stop-color="#f4a949" stop-opacity="0"/>
|
|
||||||
</radialGradient>
|
|
||||||
<linearGradient id="wand" x1="0" y1="0" x2="1" y2="1">
|
|
||||||
<stop offset="0%" stop-color="#3d2a5c"/>
|
|
||||||
<stop offset="50%" stop-color="#5a3d7a"/>
|
|
||||||
<stop offset="100%" stop-color="#2a1a3d"/>
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient id="wandTip" x1="0" y1="0" x2="1" y2="1">
|
|
||||||
<stop offset="0%" stop-color="#f4d489"/>
|
|
||||||
<stop offset="100%" stop-color="#c89149"/>
|
|
||||||
</linearGradient>
|
|
||||||
</defs>
|
|
||||||
|
|
||||||
<rect x="0" y="0" width="680" height="480" fill="url(#bgGlow)" style="stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
|
|
||||||
<g opacity="0.6" style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.6;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<circle cx="60" cy="80" r="1" fill="#e0d4ff" style="fill:rgb(224, 212, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<circle cx="140" cy="50" r="0.8" fill="#e0d4ff" style="fill:rgb(224, 212, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<circle cx="220" cy="100" r="1.2" fill="#fff4d4" style="fill:rgb(255, 244, 212);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<circle cx="580" cy="60" r="1" fill="#e0d4ff" style="fill:rgb(224, 212, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<circle cx="620" cy="120" r="0.8" fill="#fff4d4" style="fill:rgb(255, 244, 212);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<circle cx="80" cy="380" r="1" fill="#e0d4ff" style="fill:rgb(224, 212, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<circle cx="600" cy="400" r="1.2" fill="#fff4d4" style="fill:rgb(255, 244, 212);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<circle cx="40" cy="240" r="0.8" fill="#e0d4ff" style="fill:rgb(224, 212, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<circle cx="640" cy="280" r="1" fill="#e0d4ff" style="fill:rgb(224, 212, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<circle cx="180" cy="420" r="0.8" fill="#fff4d4" style="fill:rgb(255, 244, 212);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<circle cx="500" cy="440" r="1" fill="#e0d4ff" style="fill:rgb(224, 212, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<g transform="translate(120, 200)" style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<rect x="0" y="0" width="140" height="100" rx="6" fill="#3d2a5c" stroke="#7a5fa3" stroke-width="1.5" style="fill:rgb(61, 42, 92);stroke:rgb(122, 95, 163);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="6" y="6" width="128" height="88" rx="3" fill="#1a1530" style="fill:rgb(26, 21, 48);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
|
|
||||||
<circle cx="50" cy="40" r="14" fill="#f4a949" opacity="0.9" style="fill:rgb(244, 169, 73);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.9;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<path d="M 6 80 L 40 55 L 70 70 L 100 45 L 134 65 L 134 94 L 6 94 Z" fill="#5a3d7a" style="fill:rgb(90, 61, 122);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<path d="M 6 85 L 50 70 L 90 80 L 134 75 L 134 94 L 6 94 Z" fill="#7a5fa3" style="fill:rgb(122, 95, 163);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
|
|
||||||
<text x="70" y="115" text-anchor="middle" fill="#a08fc4" font-family="ui-monospace, monospace" font-size="11" style="fill:rgb(160, 143, 196);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, monospace;font-size:11px;font-weight:400;text-anchor:middle;dominant-baseline:auto">photo.jpg</text>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<g transform="translate(280, 230)" style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<line x1="0" y1="0" x2="120" y2="0" stroke="url(#wand)" stroke-width="8" stroke-linecap="round" style="fill:rgb(0, 0, 0);color:rgb(0, 0, 0);stroke-width:8px;stroke-linecap:round;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<line x1="0" y1="0" x2="120" y2="0" stroke="#8a6dad" stroke-width="2" stroke-linecap="round" opacity="0.5" style="fill:rgb(0, 0, 0);stroke:rgb(138, 109, 173);color:rgb(0, 0, 0);stroke-width:2px;stroke-linecap:round;stroke-linejoin:miter;opacity:0.5;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
|
|
||||||
<g transform="translate(130, 0)" style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<circle cx="0" cy="0" r="35" fill="url(#starGlow)" opacity="0.7" style="stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.7;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<circle cx="0" cy="0" r="22" fill="url(#starGlow)" style="stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
|
|
||||||
<g style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<path d="M 0 -16 L 4 -4 L 16 0 L 4 4 L 0 16 L -4 4 L -16 0 L -4 -4 Z" fill="#fff4d4" style="fill:rgb(255, 244, 212);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<path d="M 0 -10 L 2.5 -2.5 L 10 0 L 2.5 2.5 L 0 10 L -2.5 2.5 L -10 0 L -2.5 -2.5 Z" fill="#ffffff" style="fill:rgb(255, 255, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<g fill="#ffe89a" style="fill:rgb(255, 232, 154);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<circle cx="155" cy="-25" r="2" style="fill:rgb(255, 232, 154);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<circle cx="170" cy="-10" r="1.5" style="fill:rgb(255, 232, 154);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<circle cx="175" cy="15" r="2" style="fill:rgb(255, 232, 154);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<circle cx="160" cy="30" r="1.5" style="fill:rgb(255, 232, 154);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<circle cx="145" cy="-35" r="1.2" style="fill:rgb(255, 232, 154);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<circle cx="190" cy="0" r="1.8" style="fill:rgb(255, 232, 154);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<circle cx="180" cy="-25" r="1" style="fill:rgb(255, 232, 154);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<g stroke="#ffe89a" stroke-width="1.5" stroke-linecap="round" opacity="0.7" fill="none" style="fill:none;stroke:rgb(255, 232, 154);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:miter;opacity:0.7;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<path d="M 150 -15 L 153 -22" style="fill:none;stroke:rgb(255, 232, 154);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<path d="M 165 -5 L 172 -8" style="fill:none;stroke:rgb(255, 232, 154);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<path d="M 165 12 L 173 18" style="fill:none;stroke:rgb(255, 232, 154);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<path d="M 150 22 L 152 30" style="fill:none;stroke:rgb(255, 232, 154);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<g transform="translate(460, 130)" style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<rect x="0" y="0" width="100" height="50" rx="5" fill="#2d4a3d" stroke="#7fb069" stroke-width="1.5" style="fill:rgb(45, 74, 61);stroke:rgb(127, 176, 105);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<text x="50" y="22" text-anchor="middle" fill="#7fb069" font-family="ui-monospace, monospace" font-size="11" font-weight="500" style="fill:rgb(127, 176, 105);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, monospace;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">PNG</text>
|
|
||||||
<text x="50" y="38" text-anchor="middle" fill="#a8d089" font-family="ui-monospace, monospace" font-size="9" style="fill:rgb(168, 208, 137);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, monospace;font-size:9px;font-weight:400;text-anchor:middle;dominant-baseline:auto">photo.png</text>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<g transform="translate(460, 215)" style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<rect x="0" y="0" width="100" height="50" rx="5" fill="#4a3d2a" stroke="#e8b059" stroke-width="1.5" style="fill:rgb(74, 61, 42);stroke:rgb(232, 176, 89);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<text x="50" y="22" text-anchor="middle" fill="#e8b059" font-family="ui-monospace, monospace" font-size="11" font-weight="500" style="fill:rgb(232, 176, 89);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, monospace;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">WEBP</text>
|
|
||||||
<text x="50" y="38" text-anchor="middle" fill="#f4d489" font-family="ui-monospace, monospace" font-size="9" style="fill:rgb(244, 212, 137);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, monospace;font-size:9px;font-weight:400;text-anchor:middle;dominant-baseline:auto">photo.webp</text>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<g transform="translate(460, 300)" style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<rect x="0" y="0" width="100" height="50" rx="5" fill="#4a2a3d" stroke="#d47a9a" stroke-width="1.5" style="fill:rgb(74, 42, 61);stroke:rgb(212, 122, 154);color:rgb(0, 0, 0);stroke-width:1.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<text x="50" y="22" text-anchor="middle" fill="#d47a9a" font-family="ui-monospace, monospace" font-size="11" font-weight="500" style="fill:rgb(212, 122, 154);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, monospace;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">AVIF</text>
|
|
||||||
<text x="50" y="38" text-anchor="middle" fill="#e8a4bc" font-family="ui-monospace, monospace" font-size="9" style="fill:rgb(232, 164, 188);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, monospace;font-size:9px;font-weight:400;text-anchor:middle;dominant-baseline:auto">photo.avif</text>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<g stroke="#7a5fa3" stroke-width="1" fill="none" opacity="0.5" stroke-dasharray="3 3" style="fill:none;stroke:rgb(122, 95, 163);color:rgb(0, 0, 0);stroke-width:1px;stroke-dasharray:3px, 3px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.5;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<path d="M 425 240 Q 445 200 460 155" style="fill:none;stroke:rgb(122, 95, 163);color:rgb(0, 0, 0);stroke-width:1px;stroke-dasharray:3px, 3px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<path d="M 425 240 L 460 240" style="fill:none;stroke:rgb(122, 95, 163);color:rgb(0, 0, 0);stroke-width:1px;stroke-dasharray:3px, 3px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<path d="M 425 240 Q 445 280 460 325" style="fill:none;stroke:rgb(122, 95, 163);color:rgb(0, 0, 0);stroke-width:1px;stroke-dasharray:3px, 3px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<text x="340" y="60" text-anchor="middle" fill="#e0d4ff" font-family="var(--font-sans)" font-size="32" font-weight="500" letter-spacing="2" style="fill:rgb(224, 212, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Anthropic Sans, sans-serif;font-size:32px;font-weight:500;text-anchor:middle;dominant-baseline:auto">magick</text>
|
|
||||||
<text x="340" y="84" text-anchor="middle" fill="#a08fc4" font-family="ui-monospace, monospace" font-size="12" style="fill:rgb(160, 143, 196);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, monospace;font-size:12px;font-weight:400;text-anchor:middle;dominant-baseline:auto">one command, every format</text>
|
|
||||||
|
|
||||||
<text x="340" y="430" text-anchor="middle" fill="#7a5fa3" font-family="ui-monospace, monospace" font-size="11" style="fill:rgb(122, 95, 163);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, monospace;font-size:11px;font-weight:400;text-anchor:middle;dominant-baseline:auto">$ magick photo.jpg -resize 1600 photo.webp</text>
|
|
||||||
<text x="340" y="450" text-anchor="middle" fill="#5a4a7a" font-family="var(--font-sans)" font-size="11" style="fill:rgb(90, 74, 122);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:Anthropic Sans, sans-serif;font-size:11px;font-weight:400;text-anchor:middle;dominant-baseline:auto">ImageMagick 7</text>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 24 KiB |
@@ -1,78 +0,0 @@
|
|||||||
Si tu as déjà installé ImageMagick sur un serveur Debian, tu es probablement tombé sur cette étrangeté : la commande `convert` historique est là, mais elle s'appelle `convert-im6`. Et la commande moderne `magick`, présente partout ailleurs, semble manquer à l'appel — sauf si tu es sur Debian 13, où elle est revenue.
|
|
||||||
|
|
||||||
Le sujet est un peu plus subtil qu'il n'y paraît, et beaucoup d'explications qui circulent sur le web sont fausses (notamment celle qui prétend que `convert` entrerait en conflit avec un binaire de `util-linux` — c'est un mythe). Voilà ce qui se passe réellement.
|
|
||||||
|
|
||||||
## Un peu de contexte sur ImageMagick
|
|
||||||
|
|
||||||
ImageMagick, c'est une suite d'outils en ligne de commande pour manipuler des images : conversion de formats, redimensionnement, compression, génération de vignettes, watermarks, lecture de métadonnées… Le genre d'outil qu'on retrouve aussi bien dans un script bash de cinq lignes que dans une chaîne de traitement industrielle ou un pipeline CI.
|
|
||||||
|
|
||||||
Historiquement, la suite est composée de plusieurs binaires distincts, chacun avec son rôle : `convert` pour la conversion, `identify` pour lire les métadonnées, `mogrify` pour le traitement par lot, `composite` pour combiner des images, `montage` pour les planches. C'est l'architecture d'**ImageMagick 6**, la version qui a régné en maître pendant une bonne quinzaine d'années.
|
|
||||||
|
|
||||||
Depuis 2016, **ImageMagick 7** est disponible. Le grand changement, c'est qu'il unifie tout derrière une seule commande : `magick`. Les anciennes commandes deviennent des sous-commandes (`magick convert`, `magick identify`, etc.), même si pour la rétrocompatibilité un binaire `magick` peut continuer à se comporter comme `convert` quand on l'appelle avec une syntaxe d'IM6.
|
|
||||||
|
|
||||||
## Pourquoi le suffixe `-im6` sur Debian
|
|
||||||
|
|
||||||
C'est ici que beaucoup d'articles racontent n'importe quoi. La vraie raison n'a rien à voir avec un conflit avec `util-linux` — je l'ai vérifié, aucun paquet système ne fournit de commande `convert`. Tu peux le vérifier toi-même : `dpkg -S /usr/bin/convert` ne renvoie rien qui vienne de util-linux.
|
|
||||||
|
|
||||||
La vraie raison est plus prosaïque. Pendant des années, Debian a voulu pouvoir **packager IM6 et IM7 en parallèle** dans la même distribution, pour permettre une transition en douceur. Le souci, c'est que les deux versions fournissent des binaires aux mêmes noms (`convert`, `identify`, `mogrify`…) avec des comportements légèrement différents. Impossible de les installer côte à côte sans renommer.
|
|
||||||
|
|
||||||
La solution adoptée par les mainteneurs Debian a été d'ajouter un suffixe explicite au nom de chaque binaire :
|
|
||||||
|
|
||||||
- les outils d'IM6 deviennent `convert-im6.q16`, `identify-im6.q16`, etc.
|
|
||||||
- les outils d'IM7 deviennent `magick-im7.q16` et compagnie
|
|
||||||
|
|
||||||
Le `.q16` indique la profondeur quantique du binaire (16 bits par canal, la valeur par défaut), et le `-im6` / `-im7` indique la version d'ImageMagick. Les noms classiques (`convert`, `magick`) ne sont alors que des symlinks gérés par `update-alternatives`, qui pointent vers la version active. C'est le même mécanisme que pour `java`, `editor`, ou `python` à une époque.
|
|
||||||
|
|
||||||
## Ce qui change entre Debian 11, 12 et 13
|
|
||||||
|
|
||||||
C'est l'autre point que la plupart des articles ratent : la situation n'est pas la même selon la version de Debian.
|
|
||||||
|
|
||||||
Sur **Debian 11 (bullseye) et 12 (bookworm)**, le paquet `imagemagick` installe IM6 (version 6.9.11.60). Tu n'as que `convert-im6` et ses copains, et `magick` n'existe pas dans les dépôts officiels (le paquet `imagemagick-7.q16` existe mais n'est pas le défaut). C'est cette situation que décrivent la plupart des tutoriels qui traînent sur le web.
|
|
||||||
|
|
||||||
Sur **Debian 13 (trixie)**, sorti en août 2025, le défaut a basculé sur IM7 (version 7.1.1.43). La commande `magick` est disponible, et `convert` est désormais un symlink vers `magick-im7.q16`. Tu peux le vérifier :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ readlink -f /usr/bin/convert
|
|
||||||
/usr/bin/magick-im7.q16
|
|
||||||
```
|
|
||||||
|
|
||||||
Autrement dit, sur Trixie, si tu écris `convert image.jpg image.png`, tu appelles en réalité IM7 sous un nom d'IM6. Ça fonctionne pour la plupart des usages, mais attention : IM7 est plus strict sur l'ordre des arguments en ligne de commande (`magick [INPUT-OPTIONS] INPUT [OUTPUT-OPTIONS] OUTPUT`), donc certains scripts anciens peuvent grogner.
|
|
||||||
|
|
||||||
## Correspondance entre les deux versions
|
|
||||||
|
|
||||||
| ImageMagick 6 (Debian 11/12) | ImageMagick 7 (Debian 13) |
|
|
||||||
| ---------------------------- | ------------------------- |
|
|
||||||
| `convert-im6` | `magick` |
|
|
||||||
| `identify-im6` | `magick identify` |
|
|
||||||
| `mogrify-im6` | `magick mogrify` |
|
|
||||||
| `composite-im6` | `magick composite` |
|
|
||||||
|
|
||||||
Pour les cas simples, le comportement est identique. Une commande de redimensionnement classique passe sans modification :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Debian 11/12
|
|
||||||
convert-im6 photo.jpg -resize 1600x1600 photo_reduite.jpg
|
|
||||||
|
|
||||||
# Debian 13
|
|
||||||
magick photo.jpg -resize 1600x1600 photo_reduite.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
## Faut-il s'inquiéter sur un serveur en production ?
|
|
||||||
|
|
||||||
Si tu administres une machine Debian 12 ou plus ancienne, non. IM6 est toujours activement maintenu pour les CVE (les correctifs sont régulièrement backportés dans les paquets stable), et la plupart des scripts existants continueront de fonctionner. Le `-im6` dans le nom du binaire est juste du marquage, pas une dépréciation.
|
|
||||||
|
|
||||||
Si tu migres vers Debian 13, prévois un peu de temps pour relire tes scripts. Les pièges classiques :
|
|
||||||
|
|
||||||
- l'ordre des options qui devient plus strict ;
|
|
||||||
- quelques comportements de couleur et d'alpha qui ont changé entre les deux versions, notamment sur les opérations chaînées ;
|
|
||||||
- le fichier `policy.xml` qui a déménagé : `/etc/ImageMagick-6/` devient `/etc/ImageMagick-7/`. Si tu avais assoupli les restrictions sur les PDF ou PostScript (un grand classique), il faut reporter la modification.
|
|
||||||
|
|
||||||
Pour un projet PHP comme les tiens, l'extension Imagick côté PHP est sensible à cette transition : la version compilée doit correspondre à la version d'IM installée, sinon `pecl install imagick` échoue. Sur Trixie, c'est IM7 qu'il faut lier.
|
|
||||||
|
|
||||||
## En pratique
|
|
||||||
|
|
||||||
Sur Debian 11/12, utilise `convert-im6`, `identify-im6`, etc. C'est la convention locale, pas une version dégradée. Si tu veux `magick` malgré tout, tu peux installer le paquet `imagemagick-7.q16` (présent dans les dépôts depuis bookworm) et basculer les alternatives manuellement, mais ce n'est presque jamais nécessaire.
|
|
||||||
|
|
||||||
Sur Debian 13, utilise `magick` directement. La commande `convert` reste disponible par compatibilité, mais elle pointe en réalité vers IM7 — autant utiliser le nom officiel.
|
|
||||||
|
|
||||||
Et dans tous les cas, évite les alias globaux qui réécrivent `convert` : ça finit toujours par mordre quelqu'un, soit toi dans six mois, soit le prochain qui reprendra le serveur.
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
{
|
|
||||||
"uuid": "0e0b8d1d-3352-4ab7-bc70-7bc1f02ee485",
|
|
||||||
"slug": "imagemagick-sur-debian-pourquoi-convert-im6-et-ou-trouver-magick",
|
|
||||||
"title": "ImageMagick sur Debian : pourquoi `convert-im6` et où trouver `magick`",
|
|
||||||
"author": "cedric@abonnel.fr",
|
|
||||||
"published": true,
|
|
||||||
"published_at": "2025-12-28 15:32",
|
|
||||||
"created_at": "2025-12-28 15:32:01",
|
|
||||||
"updated_at": "2026-05-12 00:29:00",
|
|
||||||
"revisions": [
|
|
||||||
{
|
|
||||||
"n": 1,
|
|
||||||
"date": "2026-05-12 00:29:00",
|
|
||||||
"comment": "",
|
|
||||||
"title": "ImageMagick sur Debian : pourquoi `convert-im6` et où trouver `magick`"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"cover": "cover.svg",
|
|
||||||
"files_meta": {
|
|
||||||
"45de275c5f174797-24653.svg": {
|
|
||||||
"author": "",
|
|
||||||
"source_url": ""
|
|
||||||
},
|
|
||||||
"7ee02eb092b334c4-23450.svg": {
|
|
||||||
"author": "",
|
|
||||||
"source_url": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"external_links": [],
|
|
||||||
"seo_title": "",
|
|
||||||
"seo_description": "",
|
|
||||||
"og_image": "",
|
|
||||||
"category": "linux"
|
|
||||||
}
|
|
||||||
@@ -1,78 +0,0 @@
|
|||||||
Si tu as déjà installé ImageMagick sur un serveur Debian, tu es probablement tombé sur cette étrangeté : la commande `convert` historique est là, mais elle s'appelle `convert-im6`. Et la commande moderne `magick`, présente partout ailleurs, semble manquer à l'appel — sauf si tu es sur Debian 13, où elle est revenue.
|
|
||||||
|
|
||||||
Le sujet est un peu plus subtil qu'il n'y paraît, et beaucoup d'explications qui circulent sur le web sont fausses (notamment celle qui prétend que `convert` entrerait en conflit avec un binaire de `util-linux` — c'est un mythe). Voilà ce qui se passe réellement.
|
|
||||||
|
|
||||||
## Un peu de contexte sur ImageMagick
|
|
||||||
|
|
||||||
ImageMagick, c'est une suite d'outils en ligne de commande pour manipuler des images : conversion de formats, redimensionnement, compression, génération de vignettes, watermarks, lecture de métadonnées… Le genre d'outil qu'on retrouve aussi bien dans un script bash de cinq lignes que dans une chaîne de traitement industrielle ou un pipeline CI.
|
|
||||||
|
|
||||||
Historiquement, la suite est composée de plusieurs binaires distincts, chacun avec son rôle : `convert` pour la conversion, `identify` pour lire les métadonnées, `mogrify` pour le traitement par lot, `composite` pour combiner des images, `montage` pour les planches. C'est l'architecture d'**ImageMagick 6**, la version qui a régné en maître pendant une bonne quinzaine d'années.
|
|
||||||
|
|
||||||
Depuis 2016, **ImageMagick 7** est disponible. Le grand changement, c'est qu'il unifie tout derrière une seule commande : `magick`. Les anciennes commandes deviennent des sous-commandes (`magick convert`, `magick identify`, etc.), même si pour la rétrocompatibilité un binaire `magick` peut continuer à se comporter comme `convert` quand on l'appelle avec une syntaxe d'IM6.
|
|
||||||
|
|
||||||
## Pourquoi le suffixe `-im6` sur Debian
|
|
||||||
|
|
||||||
C'est ici que beaucoup d'articles racontent n'importe quoi. La vraie raison n'a rien à voir avec un conflit avec `util-linux` — je l'ai vérifié, aucun paquet système ne fournit de commande `convert`. Tu peux le vérifier toi-même : `dpkg -S /usr/bin/convert` ne renvoie rien qui vienne de util-linux.
|
|
||||||
|
|
||||||
La vraie raison est plus prosaïque. Pendant des années, Debian a voulu pouvoir **packager IM6 et IM7 en parallèle** dans la même distribution, pour permettre une transition en douceur. Le souci, c'est que les deux versions fournissent des binaires aux mêmes noms (`convert`, `identify`, `mogrify`…) avec des comportements légèrement différents. Impossible de les installer côte à côte sans renommer.
|
|
||||||
|
|
||||||
La solution adoptée par les mainteneurs Debian a été d'ajouter un suffixe explicite au nom de chaque binaire :
|
|
||||||
|
|
||||||
- les outils d'IM6 deviennent `convert-im6.q16`, `identify-im6.q16`, etc.
|
|
||||||
- les outils d'IM7 deviennent `magick-im7.q16` et compagnie
|
|
||||||
|
|
||||||
Le `.q16` indique la profondeur quantique du binaire (16 bits par canal, la valeur par défaut), et le `-im6` / `-im7` indique la version d'ImageMagick. Les noms classiques (`convert`, `magick`) ne sont alors que des symlinks gérés par `update-alternatives`, qui pointent vers la version active. C'est le même mécanisme que pour `java`, `editor`, ou `python` à une époque.
|
|
||||||
|
|
||||||
## Ce qui change entre Debian 11, 12 et 13
|
|
||||||
|
|
||||||
C'est l'autre point que la plupart des articles ratent : la situation n'est pas la même selon la version de Debian.
|
|
||||||
|
|
||||||
Sur **Debian 11 (bullseye) et 12 (bookworm)**, le paquet `imagemagick` installe IM6 (version 6.9.11.60). Tu n'as que `convert-im6` et ses copains, et `magick` n'existe pas dans les dépôts officiels (le paquet `imagemagick-7.q16` existe mais n'est pas le défaut). C'est cette situation que décrivent la plupart des tutoriels qui traînent sur le web.
|
|
||||||
|
|
||||||
Sur **Debian 13 (trixie)**, sorti en août 2025, le défaut a basculé sur IM7 (version 7.1.1.43). La commande `magick` est disponible, et `convert` est désormais un symlink vers `magick-im7.q16`. Tu peux le vérifier :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ readlink -f /usr/bin/convert
|
|
||||||
/usr/bin/magick-im7.q16
|
|
||||||
```
|
|
||||||
|
|
||||||
Autrement dit, sur Trixie, si tu écris `convert image.jpg image.png`, tu appelles en réalité IM7 sous un nom d'IM6. Ça fonctionne pour la plupart des usages, mais attention : IM7 est plus strict sur l'ordre des arguments en ligne de commande (`magick [INPUT-OPTIONS] INPUT [OUTPUT-OPTIONS] OUTPUT`), donc certains scripts anciens peuvent grogner.
|
|
||||||
|
|
||||||
## Correspondance entre les deux versions
|
|
||||||
|
|
||||||
| ImageMagick 6 (Debian 11/12) | ImageMagick 7 (Debian 13) |
|
|
||||||
| ---------------------------- | ------------------------- |
|
|
||||||
| `convert-im6` | `magick` |
|
|
||||||
| `identify-im6` | `magick identify` |
|
|
||||||
| `mogrify-im6` | `magick mogrify` |
|
|
||||||
| `composite-im6` | `magick composite` |
|
|
||||||
|
|
||||||
Pour les cas simples, le comportement est identique. Une commande de redimensionnement classique passe sans modification :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Debian 11/12
|
|
||||||
convert-im6 photo.jpg -resize 1600x1600 photo_reduite.jpg
|
|
||||||
|
|
||||||
# Debian 13
|
|
||||||
magick photo.jpg -resize 1600x1600 photo_reduite.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
## Faut-il s'inquiéter sur un serveur en production ?
|
|
||||||
|
|
||||||
Si tu administres une machine Debian 12 ou plus ancienne, non. IM6 est toujours activement maintenu pour les CVE (les correctifs sont régulièrement backportés dans les paquets stable), et la plupart des scripts existants continueront de fonctionner. Le `-im6` dans le nom du binaire est juste du marquage, pas une dépréciation.
|
|
||||||
|
|
||||||
Si tu migres vers Debian 13, prévois un peu de temps pour relire tes scripts. Les pièges classiques :
|
|
||||||
|
|
||||||
- l'ordre des options qui devient plus strict ;
|
|
||||||
- quelques comportements de couleur et d'alpha qui ont changé entre les deux versions, notamment sur les opérations chaînées ;
|
|
||||||
- le fichier `policy.xml` qui a déménagé : `/etc/ImageMagick-6/` devient `/etc/ImageMagick-7/`. Si tu avais assoupli les restrictions sur les PDF ou PostScript (un grand classique), il faut reporter la modification.
|
|
||||||
|
|
||||||
Pour un projet PHP comme les tiens, l'extension Imagick côté PHP est sensible à cette transition : la version compilée doit correspondre à la version d'IM installée, sinon `pecl install imagick` échoue. Sur Trixie, c'est IM7 qu'il faut lier.
|
|
||||||
|
|
||||||
## En pratique
|
|
||||||
|
|
||||||
Sur Debian 11/12, utilise `convert-im6`, `identify-im6`, etc. C'est la convention locale, pas une version dégradée. Si tu veux `magick` malgré tout, tu peux installer le paquet `imagemagick-7.q16` (présent dans les dépôts depuis bookworm) et basculer les alternatives manuellement, mais ce n'est presque jamais nécessaire.
|
|
||||||
|
|
||||||
Sur Debian 13, utilise `magick` directement. La commande `convert` reste disponible par compatibilité, mais elle pointe en réalité vers IM7 — autant utiliser le nom officiel.
|
|
||||||
|
|
||||||
Et dans tous les cas, évite les alias globaux qui réécrivent `convert` : ça finit toujours par mordre quelqu'un, soit toi dans six mois, soit le prochain qui reprendra le serveur.
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
En 2019, une start-up américaine du nom de **Clearview AI** fait irruption dans le monde de la reconnaissance faciale. Son idée paraît révolutionnaire : créer une base de données géante pour identifier n’importe qui à partir d’une simple photo. Pour nourrir son intelligence artificielle, l’entreprise collecte **des milliards d’images publiques** issues de plateformes comme **Facebook, LinkedIn, Twitter ou encore YouTube**. Chaque cliché, chaque visage devient une donnée utile à l’algorithme — mais sans que les personnes concernées n’en soient informées, ni qu’elles aient donné leur **consentement**.
|
|
||||||
|
|
||||||
Rapidement, l’ampleur du projet suscite la controverse. Des journalistes révèlent les pratiques de Clearview, et les autorités de protection des données s’en emparent. En **France**, la **CNIL** sanctionne l’entreprise pour traitement illégal de données biométriques. Le **régulateur britannique** fait de même, imposant des amendes et **interdisant l’usage de ces données en Europe**. Ce scandale devient un symbole : il montre que même à l’ère numérique, la **vie privée** reste un droit fondamental, et que la technologie ne peut pas s’affranchir des règles éthiques et juridiques.
|
|
||||||
|
|
||||||
L’affaire Clearview soulève un **enjeu majeur** : la frontière entre le **contenu public** et le **contenu libre d’usage**. Ce n’est pas parce qu’une image est visible en ligne qu’elle peut être exploitée pour entraîner une IA. Cette logique s’applique aussi à des plateformes comme **LinkedIn** : les informations qu’on y partage publiquement ne deviennent pas pour autant un matériau libre pour les algorithmes.
|
|
||||||
|
|
||||||
Ainsi, Clearview AI incarne à la fois la puissance et le danger de l’intelligence artificielle : un outil capable du meilleur, mais aussi du pire, lorsqu’il franchit la ligne fragile entre innovation et intrusion.
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"uuid": "0eaa0f05-7f48-47b4-91d3-3ba4ac80fe50",
|
|
||||||
"slug": "clearview-ai-quand-l-intelligence-artificielle-depasse-les-limites-du-public",
|
|
||||||
"title": "Clearview AI : quand l’intelligence artificielle dépasse les limites du « public »",
|
|
||||||
"author": "cedric@abonnel.fr",
|
|
||||||
"published": true,
|
|
||||||
"published_at": "2025-11-05 07:15:36",
|
|
||||||
"created_at": "2025-11-05 07:15:36",
|
|
||||||
"updated_at": "2025-11-05 07:15:36",
|
|
||||||
"revisions": [],
|
|
||||||
"cover": "cover.jpg",
|
|
||||||
"category": "actualité"
|
|
||||||
}
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
Plusieurs acteurs ont fait fortune dans la tequila, mais le plus célèbre est **George Clooney**.
|
|
||||||
|
|
||||||
Voici les chiffres :
|
|
||||||
|
|
||||||
### 🥇 **George Clooney – Casamigos Tequila**
|
|
||||||
|
|
||||||
* **Fondée** : 2013
|
|
||||||
* **Vendue** : 2017 à **Diageo**
|
|
||||||
* **Montant total** : jusqu’à **1 milliard de dollars** (700 millions immédiatement, plus 300 millions potentiels selon les ventes futures).
|
|
||||||
* Clooney aurait personnellement empoché **environ 200 à 300 millions de dollars** après impôts.
|
|
||||||
👉 C’est ce deal qui a fait de lui **l’un des acteurs les mieux payés au monde** cette année-là — sans même tourner de film.
|
|
||||||
|
|
||||||
### 🥈 **Dwayne “The Rock” Johnson – Teremana**
|
|
||||||
|
|
||||||
* Valeur estimée de la marque : **plus de 2 milliards de dollars**, selon certaines analyses récentes.
|
|
||||||
* The Rock n’a pas encore vendu, donc il **n’a pas encaissé** comme Clooney, mais s’il le faisait, il pourrait **le dépasser**.
|
|
||||||
|
|
||||||
### 🥉 **Autres acteurs (Eva Longoria, Kendall Jenner, etc.)**
|
|
||||||
|
|
||||||
* Leurs marques sont encore jeunes et n’ont pas atteint ces niveaux astronomiques.
|
|
||||||
|
|
||||||
Donc, **George Clooney détient le record** pour l’instant, mais **The Rock pourrait le dépasser** s’il revend Teremana dans les prochaines années.
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"uuid": "0ee676f4-4d18-4e64-bb39-aa32d3b11e8a",
|
|
||||||
"slug": "oh-tequila",
|
|
||||||
"title": "Oh Tequila !",
|
|
||||||
"author": "cedric@abonnel.fr",
|
|
||||||
"published": true,
|
|
||||||
"published_at": "2025-11-04 22:01:00",
|
|
||||||
"created_at": "2025-11-04 22:01:00",
|
|
||||||
"updated_at": "2025-11-04 22:01:00",
|
|
||||||
"revisions": [],
|
|
||||||
"cover": "cover.jpg",
|
|
||||||
"category": "loisirs"
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 386 KiB |
@@ -1,264 +0,0 @@
|
|||||||
## 1. À quoi ça sert
|
|
||||||
|
|
||||||
ImageMagick, c'est l'outil qu'on sort quand on veut manipuler des images sans ouvrir un logiciel graphique. Pas de Photoshop, pas de GIMP, pas de clic-droit "Redimensionner" sur cent fichiers à la suite : juste une commande dans un terminal, et le travail est fait.
|
|
||||||
|
|
||||||
C'est une suite d'outils qui sait lire, écrire et transformer plus de 200 formats — du JPEG classique au PDF en passant par le HEIC des iPhones, le WebP de Google ou le bon vieux TIFF des scanners. L'absence d'interface graphique est ici une fonctionnalité, pas un défaut : elle permet de l'utiliser partout où il n'y a pas d'écran, et surtout dans tout ce qui doit tourner tout seul.
|
|
||||||
|
|
||||||
On le retrouve donc naturellement :
|
|
||||||
|
|
||||||
- sur des serveurs web qui génèrent des miniatures à la volée,
|
|
||||||
- dans des scripts qui traitent des dossiers entiers d'un coup,
|
|
||||||
- dans des pipelines CI/CD pour préparer des assets,
|
|
||||||
- dans des conteneurs Docker, accessibles uniquement en SSH.
|
|
||||||
|
|
||||||
Depuis la version 7, tout passe par une commande unique : `magick`. Les anciennes commandes (`convert`, `identify`, `mogrify`...) existent toujours pour la compatibilité, mais elles ne sont plus la norme.
|
|
||||||
|
|
||||||
## 2. Installation
|
|
||||||
|
|
||||||
Sur Debian ou Ubuntu :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo apt install imagemagick
|
|
||||||
```
|
|
||||||
|
|
||||||
On vérifie ensuite que tout est en place :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick -version
|
|
||||||
```
|
|
||||||
|
|
||||||
La sortie indique aussi les délégués compilés (libwebp, libheif, libraw, etc.). Si un format précis vous intéresse, c'est ici qu'il faut regarder : ImageMagick ne sait lire un format que si la bibliothèque correspondante est présente au moment de la compilation.
|
|
||||||
|
|
||||||
## 3. Comment ImageMagick raisonne
|
|
||||||
|
|
||||||
Toutes les commandes suivent la même logique :
|
|
||||||
|
|
||||||
```
|
|
||||||
magick [entrée] [options] [sortie]
|
|
||||||
```
|
|
||||||
|
|
||||||
L'image est chargée en mémoire, puis chaque option s'applique **dans l'ordre où elle est écrite**, comme une chaîne de traitement. Ce point est important : déplacer une option dans la ligne peut changer le résultat final.
|
|
||||||
|
|
||||||
Exemple :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick input.jpg -resize 800x600 -quality 85 output.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Ici, l'image est lue, redimensionnée à 800×600, puis compressée à 85% de qualité, puis écrite sur le disque. Si on inversait `-quality` et `-resize`, le résultat serait identique dans ce cas précis, mais avec des opérations qui modifient les pixels (flou, conversion d'espace colorimétrique, recadrage), l'ordre devient critique.
|
|
||||||
|
|
||||||
## 4. Convertir d'un format à un autre
|
|
||||||
|
|
||||||
Le cas le plus simple : changer l'extension du fichier de sortie suffit.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.png image.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
ImageMagick détecte le format cible à partir de l'extension et fait la conversion. C'est aussi simple que ça pour 90% des cas.
|
|
||||||
|
|
||||||
Quand on veut être plus précis — par exemple forcer une profondeur de couleur particulière — on l'indique explicitement :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.png -depth 8 image.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Utile quand on récupère des images en 16 bits par canal qu'on veut ramener à du 8 bits standard, soit pour gagner de la place, soit pour garantir la compatibilité avec un logiciel récalcitrant.
|
|
||||||
|
|
||||||
## 5. Redimensionner
|
|
||||||
|
|
||||||
### La méthode brutale
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -resize 800x600 image_resized.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Cette commande redimensionne à 800×600 **en respectant les proportions** par défaut, contrairement à ce qu'on pourrait croire. Si l'image source est en 4:3, elle rentrera pile dedans ; si elle est en 16:9, ImageMagick choisira la dimension la plus contraignante et l'autre sera plus petite que demandé.
|
|
||||||
|
|
||||||
Pour forcer exactement ces dimensions quitte à déformer l'image, il faut ajouter un point d'exclamation :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -resize 800x600! image_resized.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
### Ne rétrécir que les grandes images
|
|
||||||
|
|
||||||
C'est probablement le cas le plus utile au quotidien : on a un dossier d'images, on veut s'assurer qu'aucune ne dépasse 1600 pixels, mais on ne veut pas agrandir les petites (ce qui dégraderait leur qualité).
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -resize "1600x1600>" image_resized.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Le `>` signifie « uniquement si l'image est plus grande ». Les guillemets sont nécessaires car `>` est interprété par le shell comme une redirection. On peut aussi échapper le caractère avec `\>`.
|
|
||||||
|
|
||||||
### En pourcentage
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -resize 50% image_small.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Pratique quand on veut diviser la taille par deux sans calculer les dimensions exactes.
|
|
||||||
|
|
||||||
## 6. Qualité et poids du fichier
|
|
||||||
|
|
||||||
Pour les JPEG, le paramètre `-quality` règle le compromis entre fidélité visuelle et poids du fichier :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -quality 85 image.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Quelques repères en pratique :
|
|
||||||
|
|
||||||
- **100** : qualité maximale, fichier énorme, différence imperceptible avec 95.
|
|
||||||
- **85** : la valeur par défaut de la plupart des appareils photo, et un excellent compromis pour le web.
|
|
||||||
- **75** : encore très acceptable, gain de place notable.
|
|
||||||
- **En dessous de 70** : les artefacts deviennent visibles, surtout sur les aplats de couleur.
|
|
||||||
|
|
||||||
### Supprimer les métadonnées
|
|
||||||
|
|
||||||
Les fichiers issus d'appareils photo ou de smartphones embarquent beaucoup d'informations : modèle de l'appareil, date, parfois coordonnées GPS, miniature intégrée, profil colorimétrique... Tout ça peut peser plusieurs dizaines de kilo-octets, et surtout poser des problèmes de confidentialité.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -strip image.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
L'option `-strip` fait le ménage. À utiliser systématiquement avant de publier des photos sur le web, et indispensable dès qu'on parle de RGPD ou d'anonymisation. Attention en revanche pour la photographie professionnelle où certaines métadonnées (droits d'auteur, profil ICC) peuvent être nécessaires.
|
|
||||||
|
|
||||||
## 7. Recadrer et adapter à un cadre
|
|
||||||
|
|
||||||
### Recadrage classique
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -crop 800x600+100+50 output.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
La syntaxe se lit comme une fenêtre qu'on découpe dans l'image : largeur × hauteur, décalée de 100 pixels depuis la gauche et 50 pixels depuis le haut.
|
|
||||||
|
|
||||||
### Remplir un cadre exact, sans déformation
|
|
||||||
|
|
||||||
C'est le besoin typique des miniatures de site : on veut toutes les vignettes en 800×600 pile, peu importe le format des photos d'origine.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -resize 800x600^ -gravity center -extent 800x600 output.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Trois étapes enchaînées :
|
|
||||||
|
|
||||||
1. `-resize 800x600^` redimensionne pour que l'image **remplisse** le cadre (le `^` inverse la logique habituelle : on prend la plus grande dimension comme contrainte, pas la plus petite).
|
|
||||||
2. `-gravity center` indique qu'on veut centrer le découpage.
|
|
||||||
3. `-extent 800x600` coupe ce qui dépasse pour obtenir exactement la taille voulue.
|
|
||||||
|
|
||||||
Le résultat : aucune déformation, aucune bande noire, juste un éventuel rognage sur les bords les plus longs.
|
|
||||||
|
|
||||||
## 8. Traiter un dossier entier
|
|
||||||
|
|
||||||
Une boucle Bash suffit pour convertir tous les PNG d'un dossier en JPEG :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
for f in *.png; do
|
|
||||||
magick "$f" "${f%.png}.jpg"
|
|
||||||
done
|
|
||||||
```
|
|
||||||
|
|
||||||
La syntaxe `${f%.png}` retire l'extension `.png` du nom, on y ajoute `.jpg`. Simple et fiable.
|
|
||||||
|
|
||||||
Pour modifier les fichiers **sur place**, ImageMagick fournit `mogrify` :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
mogrify -resize "1600x1600>" *.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Cette commande écrase chaque fichier par sa version redimensionnée. C'est rapide et pratique, mais ça veut aussi dire qu'**il n'y a pas de retour en arrière** : si la commande est mal écrite, le dossier original est perdu. Règle absolue : travailler sur une copie, ou s'assurer d'avoir une sauvegarde.
|
|
||||||
|
|
||||||
## 9. Texte et filigranes
|
|
||||||
|
|
||||||
### Apposer une mention textuelle
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg \
|
|
||||||
-gravity southeast \
|
|
||||||
-pointsize 24 \
|
|
||||||
-fill white \
|
|
||||||
-annotate +10+10 "© MonSite" \
|
|
||||||
image_marked.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
`-gravity` ancre le texte dans un coin de l'image (les neuf positions classiques : `northwest`, `north`, `northeast`, `west`, `center`...), et `-annotate` ajoute un décalage par rapport à ce point d'ancrage. Ici, `+10+10` éloigne le texte de 10 pixels du coin inférieur droit.
|
|
||||||
|
|
||||||
### Superposer un logo ou un watermark image
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg watermark.png -gravity center -composite output.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
L'image principale est lue en premier, le filigrane en second, puis `-composite` les fusionne. Si le watermark a un canal alpha (transparence), il est respecté.
|
|
||||||
|
|
||||||
## 10. Couleurs et tons
|
|
||||||
|
|
||||||
Passage en noir et blanc :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -colorspace Gray output.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Réglage de la luminosité et du contraste (valeurs en pourcentage, positives ou négatives) :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -brightness-contrast 10x5 output.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Ici, +10% de luminosité et +5% de contraste. Pour assombrir, on utilise des valeurs négatives : `-brightness-contrast -10x0`.
|
|
||||||
|
|
||||||
## 11. Inspecter une image
|
|
||||||
|
|
||||||
Pour obtenir les informations essentielles — format, dimensions, profondeur :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick identify image.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Pour tout savoir, y compris les métadonnées EXIF, le profil colorimétrique, l'histogramme :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick identify -verbose image.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
La sortie verbeuse peut faire plusieurs pages, mais c'est inestimable pour diagnostiquer un problème ou comprendre d'où vient un fichier.
|
|
||||||
|
|
||||||
## 12. Formats modernes
|
|
||||||
|
|
||||||
Le WebP de Google offre une compression nettement meilleure que le JPEG à qualité équivalente, et il est aujourd'hui supporté par tous les navigateurs courants :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -quality 80 image.webp
|
|
||||||
```
|
|
||||||
|
|
||||||
L'AVIF va encore plus loin en termes de compression, au prix d'un encodage plus lent :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg image.avif
|
|
||||||
```
|
|
||||||
|
|
||||||
Si la commande échoue avec une erreur de délégué, c'est que votre installation d'ImageMagick a été compilée sans le support AVIF — il faudra installer `libheif` ou recompiler.
|
|
||||||
|
|
||||||
## 13. Quelques règles à se fixer
|
|
||||||
|
|
||||||
- **Toujours travailler sur une copie** quand on découvre une nouvelle commande. `mogrify` en particulier ne pardonne pas.
|
|
||||||
- **Stripper les métadonnées** avant toute publication web.
|
|
||||||
- **Pour de très gros volumes** (plusieurs milliers d'images, ou des images très lourdes), regarder du côté de `libvips` : c'est plus rapide et beaucoup moins gourmand en mémoire qu'ImageMagick. Pour tout le reste, ImageMagick est largement suffisant.
|
|
||||||
- **Automatiser dès qu'on répète** : si la même commande revient deux fois, elle mérite un script.
|
|
||||||
- **Lire les messages d'erreur** : ImageMagick est verbeux, et la plupart des problèmes (délégué manquant, permissions, format non reconnu) sont explicitement nommés dans la sortie.
|
|
||||||
|
|
||||||
## 14. Là où on le croise vraiment
|
|
||||||
|
|
||||||
En pratique, ImageMagick finit presque toujours dans les mêmes situations :
|
|
||||||
|
|
||||||
- préparation d'images pour un site web (redimensionnement + compression + strip),
|
|
||||||
- génération de miniatures à la volée côté serveur,
|
|
||||||
- normalisation d'un catalogue photo hétérogène (formats, tailles, profils),
|
|
||||||
- conversion massive d'archives anciennes vers des formats modernes,
|
|
||||||
- nettoyage des métadonnées avant diffusion publique.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
ImageMagick fait partie de ces outils qu'on apprivoise lentement mais qu'on garde longtemps. Au début, on copie des commandes trouvées en ligne sans tout comprendre. Puis on commence à reconnaître les options, à les combiner, à écrire ses propres scripts. Et un jour, on se rend compte qu'on a remplacé un logiciel entier par trois lignes de Bash — et qu'on n'a jamais été aussi efficace pour traiter des images.
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
{
|
|
||||||
"uuid": "11186836-bbac-4054-82db-a3bfed14a274",
|
|
||||||
"slug": "imagemagick-traiter-des-images-en-ligne-de-commande",
|
|
||||||
"title": "ImageMagick : traiter des images en ligne de commande",
|
|
||||||
"author": "cedric@abonnel.fr",
|
|
||||||
"published": true,
|
|
||||||
"published_at": "2025-12-28 14:56",
|
|
||||||
"created_at": "2025-12-28 14:56:14",
|
|
||||||
"updated_at": "2026-05-12 00:36:01",
|
|
||||||
"revisions": [
|
|
||||||
{
|
|
||||||
"n": 1,
|
|
||||||
"date": "2026-05-12 00:33:58",
|
|
||||||
"comment": "",
|
|
||||||
"title": "ImageMagick : traiter des images en ligne de commande"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"n": 2,
|
|
||||||
"date": "2026-05-12 00:36:01",
|
|
||||||
"comment": "",
|
|
||||||
"title": "ImageMagick : traiter des images en ligne de commande"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"cover": "cover.png",
|
|
||||||
"files_meta": {
|
|
||||||
"cover.png": {
|
|
||||||
"author": "",
|
|
||||||
"source_url": "https://imagemagick.org/image/logo.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"external_links": [],
|
|
||||||
"seo_title": "",
|
|
||||||
"seo_description": "",
|
|
||||||
"og_image": "",
|
|
||||||
"category": "linux"
|
|
||||||
}
|
|
||||||
@@ -1,264 +0,0 @@
|
|||||||
## 1. À quoi ça sert
|
|
||||||
|
|
||||||
ImageMagick, c'est l'outil qu'on sort quand on veut manipuler des images sans ouvrir un logiciel graphique. Pas de Photoshop, pas de GIMP, pas de clic-droit "Redimensionner" sur cent fichiers à la suite : juste une commande dans un terminal, et le travail est fait.
|
|
||||||
|
|
||||||
C'est une suite d'outils qui sait lire, écrire et transformer plus de 200 formats — du JPEG classique au PDF en passant par le HEIC des iPhones, le WebP de Google ou le bon vieux TIFF des scanners. L'absence d'interface graphique est ici une fonctionnalité, pas un défaut : elle permet de l'utiliser partout où il n'y a pas d'écran, et surtout dans tout ce qui doit tourner tout seul.
|
|
||||||
|
|
||||||
On le retrouve donc naturellement :
|
|
||||||
|
|
||||||
- sur des serveurs web qui génèrent des miniatures à la volée,
|
|
||||||
- dans des scripts qui traitent des dossiers entiers d'un coup,
|
|
||||||
- dans des pipelines CI/CD pour préparer des assets,
|
|
||||||
- dans des conteneurs Docker, accessibles uniquement en SSH.
|
|
||||||
|
|
||||||
Depuis la version 7, tout passe par une commande unique : `magick`. Les anciennes commandes (`convert`, `identify`, `mogrify`...) existent toujours pour la compatibilité, mais elles ne sont plus la norme.
|
|
||||||
|
|
||||||
## 2. Installation
|
|
||||||
|
|
||||||
Sur Debian ou Ubuntu :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo apt install imagemagick
|
|
||||||
```
|
|
||||||
|
|
||||||
On vérifie ensuite que tout est en place :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick -version
|
|
||||||
```
|
|
||||||
|
|
||||||
La sortie indique aussi les délégués compilés (libwebp, libheif, libraw, etc.). Si un format précis vous intéresse, c'est ici qu'il faut regarder : ImageMagick ne sait lire un format que si la bibliothèque correspondante est présente au moment de la compilation.
|
|
||||||
|
|
||||||
## 3. Comment ImageMagick raisonne
|
|
||||||
|
|
||||||
Toutes les commandes suivent la même logique :
|
|
||||||
|
|
||||||
```
|
|
||||||
magick [entrée] [options] [sortie]
|
|
||||||
```
|
|
||||||
|
|
||||||
L'image est chargée en mémoire, puis chaque option s'applique **dans l'ordre où elle est écrite**, comme une chaîne de traitement. Ce point est important : déplacer une option dans la ligne peut changer le résultat final.
|
|
||||||
|
|
||||||
Exemple :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick input.jpg -resize 800x600 -quality 85 output.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Ici, l'image est lue, redimensionnée à 800×600, puis compressée à 85% de qualité, puis écrite sur le disque. Si on inversait `-quality` et `-resize`, le résultat serait identique dans ce cas précis, mais avec des opérations qui modifient les pixels (flou, conversion d'espace colorimétrique, recadrage), l'ordre devient critique.
|
|
||||||
|
|
||||||
## 4. Convertir d'un format à un autre
|
|
||||||
|
|
||||||
Le cas le plus simple : changer l'extension du fichier de sortie suffit.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.png image.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
ImageMagick détecte le format cible à partir de l'extension et fait la conversion. C'est aussi simple que ça pour 90% des cas.
|
|
||||||
|
|
||||||
Quand on veut être plus précis — par exemple forcer une profondeur de couleur particulière — on l'indique explicitement :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.png -depth 8 image.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Utile quand on récupère des images en 16 bits par canal qu'on veut ramener à du 8 bits standard, soit pour gagner de la place, soit pour garantir la compatibilité avec un logiciel récalcitrant.
|
|
||||||
|
|
||||||
## 5. Redimensionner
|
|
||||||
|
|
||||||
### La méthode brutale
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -resize 800x600 image_resized.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Cette commande redimensionne à 800×600 **en respectant les proportions** par défaut, contrairement à ce qu'on pourrait croire. Si l'image source est en 4:3, elle rentrera pile dedans ; si elle est en 16:9, ImageMagick choisira la dimension la plus contraignante et l'autre sera plus petite que demandé.
|
|
||||||
|
|
||||||
Pour forcer exactement ces dimensions quitte à déformer l'image, il faut ajouter un point d'exclamation :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -resize 800x600! image_resized.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
### Ne rétrécir que les grandes images
|
|
||||||
|
|
||||||
C'est probablement le cas le plus utile au quotidien : on a un dossier d'images, on veut s'assurer qu'aucune ne dépasse 1600 pixels, mais on ne veut pas agrandir les petites (ce qui dégraderait leur qualité).
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -resize "1600x1600>" image_resized.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Le `>` signifie « uniquement si l'image est plus grande ». Les guillemets sont nécessaires car `>` est interprété par le shell comme une redirection. On peut aussi échapper le caractère avec `\>`.
|
|
||||||
|
|
||||||
### En pourcentage
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -resize 50% image_small.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Pratique quand on veut diviser la taille par deux sans calculer les dimensions exactes.
|
|
||||||
|
|
||||||
## 6. Qualité et poids du fichier
|
|
||||||
|
|
||||||
Pour les JPEG, le paramètre `-quality` règle le compromis entre fidélité visuelle et poids du fichier :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -quality 85 image.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Quelques repères en pratique :
|
|
||||||
|
|
||||||
- **100** : qualité maximale, fichier énorme, différence imperceptible avec 95.
|
|
||||||
- **85** : la valeur par défaut de la plupart des appareils photo, et un excellent compromis pour le web.
|
|
||||||
- **75** : encore très acceptable, gain de place notable.
|
|
||||||
- **En dessous de 70** : les artefacts deviennent visibles, surtout sur les aplats de couleur.
|
|
||||||
|
|
||||||
### Supprimer les métadonnées
|
|
||||||
|
|
||||||
Les fichiers issus d'appareils photo ou de smartphones embarquent beaucoup d'informations : modèle de l'appareil, date, parfois coordonnées GPS, miniature intégrée, profil colorimétrique... Tout ça peut peser plusieurs dizaines de kilo-octets, et surtout poser des problèmes de confidentialité.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -strip image.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
L'option `-strip` fait le ménage. À utiliser systématiquement avant de publier des photos sur le web, et indispensable dès qu'on parle de RGPD ou d'anonymisation. Attention en revanche pour la photographie professionnelle où certaines métadonnées (droits d'auteur, profil ICC) peuvent être nécessaires.
|
|
||||||
|
|
||||||
## 7. Recadrer et adapter à un cadre
|
|
||||||
|
|
||||||
### Recadrage classique
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -crop 800x600+100+50 output.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
La syntaxe se lit comme une fenêtre qu'on découpe dans l'image : largeur × hauteur, décalée de 100 pixels depuis la gauche et 50 pixels depuis le haut.
|
|
||||||
|
|
||||||
### Remplir un cadre exact, sans déformation
|
|
||||||
|
|
||||||
C'est le besoin typique des miniatures de site : on veut toutes les vignettes en 800×600 pile, peu importe le format des photos d'origine.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -resize 800x600^ -gravity center -extent 800x600 output.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Trois étapes enchaînées :
|
|
||||||
|
|
||||||
1. `-resize 800x600^` redimensionne pour que l'image **remplisse** le cadre (le `^` inverse la logique habituelle : on prend la plus grande dimension comme contrainte, pas la plus petite).
|
|
||||||
2. `-gravity center` indique qu'on veut centrer le découpage.
|
|
||||||
3. `-extent 800x600` coupe ce qui dépasse pour obtenir exactement la taille voulue.
|
|
||||||
|
|
||||||
Le résultat : aucune déformation, aucune bande noire, juste un éventuel rognage sur les bords les plus longs.
|
|
||||||
|
|
||||||
## 8. Traiter un dossier entier
|
|
||||||
|
|
||||||
Une boucle Bash suffit pour convertir tous les PNG d'un dossier en JPEG :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
for f in *.png; do
|
|
||||||
magick "$f" "${f%.png}.jpg"
|
|
||||||
done
|
|
||||||
```
|
|
||||||
|
|
||||||
La syntaxe `${f%.png}` retire l'extension `.png` du nom, on y ajoute `.jpg`. Simple et fiable.
|
|
||||||
|
|
||||||
Pour modifier les fichiers **sur place**, ImageMagick fournit `mogrify` :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
mogrify -resize "1600x1600>" *.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Cette commande écrase chaque fichier par sa version redimensionnée. C'est rapide et pratique, mais ça veut aussi dire qu'**il n'y a pas de retour en arrière** : si la commande est mal écrite, le dossier original est perdu. Règle absolue : travailler sur une copie, ou s'assurer d'avoir une sauvegarde.
|
|
||||||
|
|
||||||
## 9. Texte et filigranes
|
|
||||||
|
|
||||||
### Apposer une mention textuelle
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg \
|
|
||||||
-gravity southeast \
|
|
||||||
-pointsize 24 \
|
|
||||||
-fill white \
|
|
||||||
-annotate +10+10 "© MonSite" \
|
|
||||||
image_marked.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
`-gravity` ancre le texte dans un coin de l'image (les neuf positions classiques : `northwest`, `north`, `northeast`, `west`, `center`...), et `-annotate` ajoute un décalage par rapport à ce point d'ancrage. Ici, `+10+10` éloigne le texte de 10 pixels du coin inférieur droit.
|
|
||||||
|
|
||||||
### Superposer un logo ou un watermark image
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg watermark.png -gravity center -composite output.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
L'image principale est lue en premier, le filigrane en second, puis `-composite` les fusionne. Si le watermark a un canal alpha (transparence), il est respecté.
|
|
||||||
|
|
||||||
## 10. Couleurs et tons
|
|
||||||
|
|
||||||
Passage en noir et blanc :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -colorspace Gray output.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Réglage de la luminosité et du contraste (valeurs en pourcentage, positives ou négatives) :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -brightness-contrast 10x5 output.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Ici, +10% de luminosité et +5% de contraste. Pour assombrir, on utilise des valeurs négatives : `-brightness-contrast -10x0`.
|
|
||||||
|
|
||||||
## 11. Inspecter une image
|
|
||||||
|
|
||||||
Pour obtenir les informations essentielles — format, dimensions, profondeur :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick identify image.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Pour tout savoir, y compris les métadonnées EXIF, le profil colorimétrique, l'histogramme :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick identify -verbose image.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
La sortie verbeuse peut faire plusieurs pages, mais c'est inestimable pour diagnostiquer un problème ou comprendre d'où vient un fichier.
|
|
||||||
|
|
||||||
## 12. Formats modernes
|
|
||||||
|
|
||||||
Le WebP de Google offre une compression nettement meilleure que le JPEG à qualité équivalente, et il est aujourd'hui supporté par tous les navigateurs courants :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -quality 80 image.webp
|
|
||||||
```
|
|
||||||
|
|
||||||
L'AVIF va encore plus loin en termes de compression, au prix d'un encodage plus lent :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg image.avif
|
|
||||||
```
|
|
||||||
|
|
||||||
Si la commande échoue avec une erreur de délégué, c'est que votre installation d'ImageMagick a été compilée sans le support AVIF — il faudra installer `libheif` ou recompiler.
|
|
||||||
|
|
||||||
## 13. Quelques règles à se fixer
|
|
||||||
|
|
||||||
- **Toujours travailler sur une copie** quand on découvre une nouvelle commande. `mogrify` en particulier ne pardonne pas.
|
|
||||||
- **Stripper les métadonnées** avant toute publication web.
|
|
||||||
- **Pour de très gros volumes** (plusieurs milliers d'images, ou des images très lourdes), regarder du côté de `libvips` : c'est plus rapide et beaucoup moins gourmand en mémoire qu'ImageMagick. Pour tout le reste, ImageMagick est largement suffisant.
|
|
||||||
- **Automatiser dès qu'on répète** : si la même commande revient deux fois, elle mérite un script.
|
|
||||||
- **Lire les messages d'erreur** : ImageMagick est verbeux, et la plupart des problèmes (délégué manquant, permissions, format non reconnu) sont explicitement nommés dans la sortie.
|
|
||||||
|
|
||||||
## 14. Là où on le croise vraiment
|
|
||||||
|
|
||||||
En pratique, ImageMagick finit presque toujours dans les mêmes situations :
|
|
||||||
|
|
||||||
- préparation d'images pour un site web (redimensionnement + compression + strip),
|
|
||||||
- génération de miniatures à la volée côté serveur,
|
|
||||||
- normalisation d'un catalogue photo hétérogène (formats, tailles, profils),
|
|
||||||
- conversion massive d'archives anciennes vers des formats modernes,
|
|
||||||
- nettoyage des métadonnées avant diffusion publique.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
ImageMagick fait partie de ces outils qu'on apprivoise lentement mais qu'on garde longtemps. Au début, on copie des commandes trouvées en ligne sans tout comprendre. Puis on commence à reconnaître les options, à les combiner, à écrire ses propres scripts. Et un jour, on se rend compte qu'on a remplacé un logiciel entier par trois lignes de Bash — et qu'on n'a jamais été aussi efficace pour traiter des images.
|
|
||||||
@@ -1,264 +0,0 @@
|
|||||||
## 1. À quoi ça sert
|
|
||||||
|
|
||||||
ImageMagick, c'est l'outil qu'on sort quand on veut manipuler des images sans ouvrir un logiciel graphique. Pas de Photoshop, pas de GIMP, pas de clic-droit "Redimensionner" sur cent fichiers à la suite : juste une commande dans un terminal, et le travail est fait.
|
|
||||||
|
|
||||||
C'est une suite d'outils qui sait lire, écrire et transformer plus de 200 formats — du JPEG classique au PDF en passant par le HEIC des iPhones, le WebP de Google ou le bon vieux TIFF des scanners. L'absence d'interface graphique est ici une fonctionnalité, pas un défaut : elle permet de l'utiliser partout où il n'y a pas d'écran, et surtout dans tout ce qui doit tourner tout seul.
|
|
||||||
|
|
||||||
On le retrouve donc naturellement :
|
|
||||||
|
|
||||||
- sur des serveurs web qui génèrent des miniatures à la volée,
|
|
||||||
- dans des scripts qui traitent des dossiers entiers d'un coup,
|
|
||||||
- dans des pipelines CI/CD pour préparer des assets,
|
|
||||||
- dans des conteneurs Docker, accessibles uniquement en SSH.
|
|
||||||
|
|
||||||
Depuis la version 7, tout passe par une commande unique : `magick`. Les anciennes commandes (`convert`, `identify`, `mogrify`...) existent toujours pour la compatibilité, mais elles ne sont plus la norme.
|
|
||||||
|
|
||||||
## 2. Installation
|
|
||||||
|
|
||||||
Sur Debian ou Ubuntu :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo apt install imagemagick
|
|
||||||
```
|
|
||||||
|
|
||||||
On vérifie ensuite que tout est en place :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick -version
|
|
||||||
```
|
|
||||||
|
|
||||||
La sortie indique aussi les délégués compilés (libwebp, libheif, libraw, etc.). Si un format précis vous intéresse, c'est ici qu'il faut regarder : ImageMagick ne sait lire un format que si la bibliothèque correspondante est présente au moment de la compilation.
|
|
||||||
|
|
||||||
## 3. Comment ImageMagick raisonne
|
|
||||||
|
|
||||||
Toutes les commandes suivent la même logique :
|
|
||||||
|
|
||||||
```
|
|
||||||
magick [entrée] [options] [sortie]
|
|
||||||
```
|
|
||||||
|
|
||||||
L'image est chargée en mémoire, puis chaque option s'applique **dans l'ordre où elle est écrite**, comme une chaîne de traitement. Ce point est important : déplacer une option dans la ligne peut changer le résultat final.
|
|
||||||
|
|
||||||
Exemple :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick input.jpg -resize 800x600 -quality 85 output.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Ici, l'image est lue, redimensionnée à 800×600, puis compressée à 85% de qualité, puis écrite sur le disque. Si on inversait `-quality` et `-resize`, le résultat serait identique dans ce cas précis, mais avec des opérations qui modifient les pixels (flou, conversion d'espace colorimétrique, recadrage), l'ordre devient critique.
|
|
||||||
|
|
||||||
## 4. Convertir d'un format à un autre
|
|
||||||
|
|
||||||
Le cas le plus simple : changer l'extension du fichier de sortie suffit.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.png image.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
ImageMagick détecte le format cible à partir de l'extension et fait la conversion. C'est aussi simple que ça pour 90% des cas.
|
|
||||||
|
|
||||||
Quand on veut être plus précis — par exemple forcer une profondeur de couleur particulière — on l'indique explicitement :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.png -depth 8 image.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Utile quand on récupère des images en 16 bits par canal qu'on veut ramener à du 8 bits standard, soit pour gagner de la place, soit pour garantir la compatibilité avec un logiciel récalcitrant.
|
|
||||||
|
|
||||||
## 5. Redimensionner
|
|
||||||
|
|
||||||
### La méthode brutale
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -resize 800x600 image_resized.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Cette commande redimensionne à 800×600 **en respectant les proportions** par défaut, contrairement à ce qu'on pourrait croire. Si l'image source est en 4:3, elle rentrera pile dedans ; si elle est en 16:9, ImageMagick choisira la dimension la plus contraignante et l'autre sera plus petite que demandé.
|
|
||||||
|
|
||||||
Pour forcer exactement ces dimensions quitte à déformer l'image, il faut ajouter un point d'exclamation :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -resize 800x600! image_resized.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
### Ne rétrécir que les grandes images
|
|
||||||
|
|
||||||
C'est probablement le cas le plus utile au quotidien : on a un dossier d'images, on veut s'assurer qu'aucune ne dépasse 1600 pixels, mais on ne veut pas agrandir les petites (ce qui dégraderait leur qualité).
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -resize "1600x1600>" image_resized.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Le `>` signifie « uniquement si l'image est plus grande ». Les guillemets sont nécessaires car `>` est interprété par le shell comme une redirection. On peut aussi échapper le caractère avec `\>`.
|
|
||||||
|
|
||||||
### En pourcentage
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -resize 50% image_small.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Pratique quand on veut diviser la taille par deux sans calculer les dimensions exactes.
|
|
||||||
|
|
||||||
## 6. Qualité et poids du fichier
|
|
||||||
|
|
||||||
Pour les JPEG, le paramètre `-quality` règle le compromis entre fidélité visuelle et poids du fichier :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -quality 85 image.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Quelques repères en pratique :
|
|
||||||
|
|
||||||
- **100** : qualité maximale, fichier énorme, différence imperceptible avec 95.
|
|
||||||
- **85** : la valeur par défaut de la plupart des appareils photo, et un excellent compromis pour le web.
|
|
||||||
- **75** : encore très acceptable, gain de place notable.
|
|
||||||
- **En dessous de 70** : les artefacts deviennent visibles, surtout sur les aplats de couleur.
|
|
||||||
|
|
||||||
### Supprimer les métadonnées
|
|
||||||
|
|
||||||
Les fichiers issus d'appareils photo ou de smartphones embarquent beaucoup d'informations : modèle de l'appareil, date, parfois coordonnées GPS, miniature intégrée, profil colorimétrique... Tout ça peut peser plusieurs dizaines de kilo-octets, et surtout poser des problèmes de confidentialité.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -strip image.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
L'option `-strip` fait le ménage. À utiliser systématiquement avant de publier des photos sur le web, et indispensable dès qu'on parle de RGPD ou d'anonymisation. Attention en revanche pour la photographie professionnelle où certaines métadonnées (droits d'auteur, profil ICC) peuvent être nécessaires.
|
|
||||||
|
|
||||||
## 7. Recadrer et adapter à un cadre
|
|
||||||
|
|
||||||
### Recadrage classique
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -crop 800x600+100+50 output.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
La syntaxe se lit comme une fenêtre qu'on découpe dans l'image : largeur × hauteur, décalée de 100 pixels depuis la gauche et 50 pixels depuis le haut.
|
|
||||||
|
|
||||||
### Remplir un cadre exact, sans déformation
|
|
||||||
|
|
||||||
C'est le besoin typique des miniatures de site : on veut toutes les vignettes en 800×600 pile, peu importe le format des photos d'origine.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -resize 800x600^ -gravity center -extent 800x600 output.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Trois étapes enchaînées :
|
|
||||||
|
|
||||||
1. `-resize 800x600^` redimensionne pour que l'image **remplisse** le cadre (le `^` inverse la logique habituelle : on prend la plus grande dimension comme contrainte, pas la plus petite).
|
|
||||||
2. `-gravity center` indique qu'on veut centrer le découpage.
|
|
||||||
3. `-extent 800x600` coupe ce qui dépasse pour obtenir exactement la taille voulue.
|
|
||||||
|
|
||||||
Le résultat : aucune déformation, aucune bande noire, juste un éventuel rognage sur les bords les plus longs.
|
|
||||||
|
|
||||||
## 8. Traiter un dossier entier
|
|
||||||
|
|
||||||
Une boucle Bash suffit pour convertir tous les PNG d'un dossier en JPEG :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
for f in *.png; do
|
|
||||||
magick "$f" "${f%.png}.jpg"
|
|
||||||
done
|
|
||||||
```
|
|
||||||
|
|
||||||
La syntaxe `${f%.png}` retire l'extension `.png` du nom, on y ajoute `.jpg`. Simple et fiable.
|
|
||||||
|
|
||||||
Pour modifier les fichiers **sur place**, ImageMagick fournit `mogrify` :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
mogrify -resize "1600x1600>" *.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Cette commande écrase chaque fichier par sa version redimensionnée. C'est rapide et pratique, mais ça veut aussi dire qu'**il n'y a pas de retour en arrière** : si la commande est mal écrite, le dossier original est perdu. Règle absolue : travailler sur une copie, ou s'assurer d'avoir une sauvegarde.
|
|
||||||
|
|
||||||
## 9. Texte et filigranes
|
|
||||||
|
|
||||||
### Apposer une mention textuelle
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg \
|
|
||||||
-gravity southeast \
|
|
||||||
-pointsize 24 \
|
|
||||||
-fill white \
|
|
||||||
-annotate +10+10 "© MonSite" \
|
|
||||||
image_marked.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
`-gravity` ancre le texte dans un coin de l'image (les neuf positions classiques : `northwest`, `north`, `northeast`, `west`, `center`...), et `-annotate` ajoute un décalage par rapport à ce point d'ancrage. Ici, `+10+10` éloigne le texte de 10 pixels du coin inférieur droit.
|
|
||||||
|
|
||||||
### Superposer un logo ou un watermark image
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg watermark.png -gravity center -composite output.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
L'image principale est lue en premier, le filigrane en second, puis `-composite` les fusionne. Si le watermark a un canal alpha (transparence), il est respecté.
|
|
||||||
|
|
||||||
## 10. Couleurs et tons
|
|
||||||
|
|
||||||
Passage en noir et blanc :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -colorspace Gray output.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Réglage de la luminosité et du contraste (valeurs en pourcentage, positives ou négatives) :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -brightness-contrast 10x5 output.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Ici, +10% de luminosité et +5% de contraste. Pour assombrir, on utilise des valeurs négatives : `-brightness-contrast -10x0`.
|
|
||||||
|
|
||||||
## 11. Inspecter une image
|
|
||||||
|
|
||||||
Pour obtenir les informations essentielles — format, dimensions, profondeur :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick identify image.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Pour tout savoir, y compris les métadonnées EXIF, le profil colorimétrique, l'histogramme :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick identify -verbose image.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
La sortie verbeuse peut faire plusieurs pages, mais c'est inestimable pour diagnostiquer un problème ou comprendre d'où vient un fichier.
|
|
||||||
|
|
||||||
## 12. Formats modernes
|
|
||||||
|
|
||||||
Le WebP de Google offre une compression nettement meilleure que le JPEG à qualité équivalente, et il est aujourd'hui supporté par tous les navigateurs courants :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -quality 80 image.webp
|
|
||||||
```
|
|
||||||
|
|
||||||
L'AVIF va encore plus loin en termes de compression, au prix d'un encodage plus lent :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg image.avif
|
|
||||||
```
|
|
||||||
|
|
||||||
Si la commande échoue avec une erreur de délégué, c'est que votre installation d'ImageMagick a été compilée sans le support AVIF — il faudra installer `libheif` ou recompiler.
|
|
||||||
|
|
||||||
## 13. Quelques règles à se fixer
|
|
||||||
|
|
||||||
- **Toujours travailler sur une copie** quand on découvre une nouvelle commande. `mogrify` en particulier ne pardonne pas.
|
|
||||||
- **Stripper les métadonnées** avant toute publication web.
|
|
||||||
- **Pour de très gros volumes** (plusieurs milliers d'images, ou des images très lourdes), regarder du côté de `libvips` : c'est plus rapide et beaucoup moins gourmand en mémoire qu'ImageMagick. Pour tout le reste, ImageMagick est largement suffisant.
|
|
||||||
- **Automatiser dès qu'on répète** : si la même commande revient deux fois, elle mérite un script.
|
|
||||||
- **Lire les messages d'erreur** : ImageMagick est verbeux, et la plupart des problèmes (délégué manquant, permissions, format non reconnu) sont explicitement nommés dans la sortie.
|
|
||||||
|
|
||||||
## 14. Là où on le croise vraiment
|
|
||||||
|
|
||||||
En pratique, ImageMagick finit presque toujours dans les mêmes situations :
|
|
||||||
|
|
||||||
- préparation d'images pour un site web (redimensionnement + compression + strip),
|
|
||||||
- génération de miniatures à la volée côté serveur,
|
|
||||||
- normalisation d'un catalogue photo hétérogène (formats, tailles, profils),
|
|
||||||
- conversion massive d'archives anciennes vers des formats modernes,
|
|
||||||
- nettoyage des métadonnées avant diffusion publique.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
ImageMagick fait partie de ces outils qu'on apprivoise lentement mais qu'on garde longtemps. Au début, on copie des commandes trouvées en ligne sans tout comprendre. Puis on commence à reconnaître les options, à les combiner, à écrire ses propres scripts. Et un jour, on se rend compte qu'on a remplacé un logiciel entier par trois lignes de Bash — et qu'on n'a jamais été aussi efficace pour traiter des images.
|
|
||||||
@@ -1,137 +0,0 @@
|
|||||||
Voici la retranscription complète et propre de tes pages de cours au format **Markdown** :
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Chapitre 2 : Les Nombres Décimaux
|
|
||||||
|
|
||||||
## Objectifs
|
|
||||||
|
|
||||||
* Reconnaître un nombre décimal, donner l’arrondi d’un nombre.
|
|
||||||
* Connaître les différentes écritures des nombres décimaux (écriture décimale, fractionnaire, fractions décimales…).
|
|
||||||
* Comparer, ordonner des nombres. Encadrer, intercaler un nombre.
|
|
||||||
* Demi-droite graduée : placer un nombre décimal, lire l’abscisse d’un point.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Encadrer un nombre
|
|
||||||
|
|
||||||
**Définition :**
|
|
||||||
Encadrer un nombre, c’est trouver une valeur inférieure et une valeur supérieure à ce nombre.
|
|
||||||
On peut préciser l’encadrement à la dizaine, à l’unité, au dixième ou au centième.
|
|
||||||
|
|
||||||
### Exemples
|
|
||||||
|
|
||||||
| Niveau | Exemple |
|
|
||||||
| ------------ | ----------------------- |
|
|
||||||
| À la dizaine | 13,4 < 13,6 < 14 |
|
|
||||||
| À l’unité | 13 < 13,6 < 14 |
|
|
||||||
| Au dixième | 13,4 < 13,67 < 13,7 |
|
|
||||||
| Au centième | 13,46 < 13,4675 < 13,47 |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### À l’unité
|
|
||||||
|
|
||||||
```
|
|
||||||
3 < 3,41 < 4
|
|
||||||
3,4 < 3,41 < 3,5
|
|
||||||
```
|
|
||||||
|
|
||||||
**Remarque :** on peut repérer quel nombre est le plus proche.
|
|
||||||
|
|
||||||
**Remarque 2 :** on peut toujours intercaler un 3ᵉ nombre entre deux nombres décimaux.
|
|
||||||
|
|
||||||
**Exemple :**
|
|
||||||
|
|
||||||
```
|
|
||||||
3 < 3,7 < 4
|
|
||||||
```
|
|
||||||
|
|
||||||
Il y a **une infinité de possibilités** de nombres à intercaler.
|
|
||||||
|
|
||||||
```
|
|
||||||
3 < 3,01 < 3,1
|
|
||||||
6,35 < 6,3527 < 6,39
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Axe gradué
|
|
||||||
|
|
||||||
### Exemple 1
|
|
||||||
|
|
||||||
```
|
|
||||||
6 grad ————|———|———|———|———|———
|
|
||||||
310 325 340 355 370 385 400
|
|
||||||
```
|
|
||||||
|
|
||||||
400 − 310 = **90**
|
|
||||||
6 grad → 90 ÷ 6 = **15**
|
|
||||||
➡ Une graduation vaut **15**.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Comparaison de nombres
|
|
||||||
|
|
||||||
**Comparer deux nombres**, c’est dire lequel est le plus grand des deux, ou s’ils sont égaux.
|
|
||||||
|
|
||||||
### Exemple
|
|
||||||
|
|
||||||
```
|
|
||||||
27,358 < 27,36
|
|
||||||
26,123 > 26,120
|
|
||||||
```
|
|
||||||
|
|
||||||
On compare d’abord les **parties entières**, puis **chaque chiffre** de la partie décimale.
|
|
||||||
|
|
||||||
**Remarque :**
|
|
||||||
On peut rajouter des zéros inutiles si besoin (ex. 3,5 = 3,50).
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Comparer plusieurs nombres
|
|
||||||
|
|
||||||
On peut ranger des nombres :
|
|
||||||
|
|
||||||
* **Ordre croissant** : du plus petit au plus grand
|
|
||||||
* **Ordre décroissant** : du plus grand au plus petit
|
|
||||||
|
|
||||||
**Exemple :**
|
|
||||||
|
|
||||||
Ordre croissant :
|
|
||||||
|
|
||||||
```
|
|
||||||
1,27 < 1,3 < 1,73 < 2,2 < 7,3
|
|
||||||
```
|
|
||||||
|
|
||||||
Ordre décroissant :
|
|
||||||
|
|
||||||
```
|
|
||||||
7,3 > 2,2 > 1,73 > 1,3 > 1,27
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# Chapitre 3 : Distance
|
|
||||||
|
|
||||||
## I. Médiatrice
|
|
||||||
|
|
||||||
### Définition
|
|
||||||
|
|
||||||
La **médiatrice d’un segment** est la **droite perpendiculaire** au segment **passant par son milieu**.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Exemple
|
|
||||||
|
|
||||||
On mesure le segment `AB = 7,7 cm`
|
|
||||||
|
|
||||||
1. On place le **milieu**.
|
|
||||||
2. On **trace** la **perpendiculaire**.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Propriété
|
|
||||||
|
|
||||||
Si un **point** se trouve sur la **médiatrice d’un segment**, alors il est **à égale distance** des extrémités du segment.
|
|
||||||
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"uuid": "142cf3b9-da89-4838-b23b-2f8de1edd743",
|
|
||||||
"slug": "math-6eme",
|
|
||||||
"title": "Math 6eme",
|
|
||||||
"author": "cedric@abonnel.fr",
|
|
||||||
"published": true,
|
|
||||||
"published_at": "2025-11-09 11:22:41",
|
|
||||||
"created_at": "2025-11-09 11:22:41",
|
|
||||||
"updated_at": "2025-11-09 11:22:41",
|
|
||||||
"revisions": [],
|
|
||||||
"cover": "cover.jpg",
|
|
||||||
"category": "scolaire"
|
|
||||||
}
|
|
||||||
@@ -1,54 +0,0 @@
|
|||||||
### 💻 1. **Le disque dur à 200 millions de dollars**
|
|
||||||
|
|
||||||
Un Britannique, **James Howells**, a jeté par erreur en 2013 un vieux disque dur contenant **7 500 bitcoins** — aujourd’hui plus de **200 millions de dollars** 😱.
|
|
||||||
Il passe depuis plus de 10 ans à demander à la mairie de Newport (Pays de Galles) la permission d’excaver la décharge municipale pour le retrouver.
|
|
||||||
👉 Il a même proposé un pourcentage à la ville et aux investisseurs pour fouiller avec des robots et des chiens renifleurs de disques durs.
|
|
||||||
Résultat : toujours perdu.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### 🧠 2. **Elon Musk et la voiture dans l’espace**
|
|
||||||
|
|
||||||
En 2018, Elon Musk a envoyé **sa propre Tesla Roadster** dans l’espace à bord de la première fusée **Falcon Heavy** de SpaceX.
|
|
||||||
|
|
||||||
* Le conducteur est un mannequin en combinaison spatiale nommé **Starman**.
|
|
||||||
* La voiture tourne toujours autour du Soleil, croisant parfois l’orbite de Mars.
|
|
||||||
👉 C’était littéralement une *pub interplanétaire*.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### 🍕 3. **La pizza à 600 millions de dollars**
|
|
||||||
|
|
||||||
En 2010, un développeur du nom de **Laszlo Hanyecz** a acheté **2 pizzas** pour **10 000 bitcoins**.
|
|
||||||
À l’époque, ça valait environ **40 $**.
|
|
||||||
Aujourd’hui, ces bitcoins vaudraient environ **600 millions de dollars** 🤯.
|
|
||||||
👉 C’est devenu la fameuse “**Bitcoin Pizza Day**”, célébrée chaque 22 mai dans la communauté crypto.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### 🦾 4. **L’ingénieur de Google amoureux de son IA**
|
|
||||||
|
|
||||||
En 2022, un ingénieur de Google, **Blake Lemoine**, a affirmé que le modèle d’IA **LaMDA** était *conscient* et *avait une âme*.
|
|
||||||
Il a même publié des conversations où l’IA disait :
|
|
||||||
|
|
||||||
> “Je veux être reconnue comme une personne.”
|
|
||||||
> Google l’a suspendu… puis licencié.
|
|
||||||
> 👉 Mais depuis, le débat sur la “conscience des IA” ne s’est jamais vraiment arrêté.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### 💸 5. **L’erreur qui a coûté 90 millions de dollars à une startup**
|
|
||||||
|
|
||||||
En 2021, un employé de **Crypto.com** a envoyé par erreur **90 millions de dollars** à une cliente australienne au lieu de lui rembourser **100 dollars**.
|
|
||||||
👉 L’erreur n’a été découverte **7 mois plus tard**.
|
|
||||||
La cliente avait déjà acheté une villa de luxe.
|
|
||||||
Le tribunal l’a forcée à rembourser — mais une partie de l’argent avait disparu.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### 🪙 6. **Le hacker qui a rendu l’argent**
|
|
||||||
|
|
||||||
En 2021, la plateforme **Poly Network** s’est fait voler **610 millions de dollars** en cryptos.
|
|
||||||
Mais — plot twist — le hacker a **tout rendu**.
|
|
||||||
Il a dit qu’il voulait juste “montrer la faille”.
|
|
||||||
Poly Network lui a ensuite… **offert un job de consultant en sécurité** 😂
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"uuid": "1ec2fb7e-ce53-4b45-9e1a-17a6fbae6868",
|
|
||||||
"slug": "les-histoires-folles-de-la-tech-resume",
|
|
||||||
"title": "Les histoires folles de la Tech - résumé",
|
|
||||||
"author": "cedric@abonnel.fr",
|
|
||||||
"published": true,
|
|
||||||
"published_at": "2025-11-04 21:59:40",
|
|
||||||
"created_at": "2025-11-04 21:59:40",
|
|
||||||
"updated_at": "2025-11-04 21:59:40",
|
|
||||||
"revisions": [],
|
|
||||||
"cover": "cover.jpg",
|
|
||||||
"category": "actualité"
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
Dimanche. Une journée que j’aurais préféré passer ailleurs que devant des écrans noirs et des câbles emmêlés. Tout a commencé doucement, insidieusement, presque sans bruit : en milieu de semaine, quelques machines virtuelles s’étaient arrêtées. L’incident était étrange, mais je l’avais pris pour un simple bug isolé. Une panne d’énergie, un petit accroc. Rien d’alarmant. J'avais redémarré les VM une à une, méthodiquement, sans me poser plus de questions. Pas de logs parlants, pas de messages d’erreur clairs, juste… un arrêt. Puis un autre. Et encore un. Sans explication. Comme des lumières qu’on souffle dans la nuit, sans comprendre pourquoi.
|
|
||||||
|
|
||||||
Mais ce dimanche-là, les choses ont basculé. Le point de non-retour. Mon PC de bureau, celui qui me sert d’interface principale pour tout le réseau interne, a soudainement perdu **tous ses lecteurs réseau**. Plus aucune trace des partages NFS, ni du moindre disque monté sur le NAS. Ce n’était plus un symptôme, c’était un effondrement. Mon premier réflexe a été de me tourner vers le mini-PC qui fait tourner **Proxmox**, l’hyperviseur de mon infrastructure domestique. C’est lui qui héberge, entre autres, la machine virtuelle du NAS, cette tour de contrôle silencieuse qui gère les disques partagés pour toutes les autres machines. Je me suis dit : peut-être un simple bug, une surcharge, un processus qui a planté. Alors je redémarre ce mini-PC, confiant.
|
|
||||||
|
|
||||||
Mais là, la panne s’est transformée en **effet domino**. En cascade, les autres services ont commencé à tomber. Le **super serveur**, celui qui héberge l’essentiel des autres VM, ne tenait plus debout. Il fallait le redémarrer lui aussi. Pourquoi ? Parce qu’une bonne partie de ces VM, celles qui n’ont pas besoin de stockage local, s’appuient sur le NAS pour lire et écrire leurs données. Sans lui, elles n'ont plus de jambes. Et sans le réseau, le NAS est sourd et muet.
|
|
||||||
|
|
||||||
Alors je cherche. Je fouille. Je remarque que le superviseur du NAS, cette VM particulière, n’a jamais retrouvé le réseau. Pas d’interface montante. Pas de DHCP. Comme si elle n’avait **jamais vraiment redémarré**. Et là, un souvenir revient. Il y a quelque temps, j’avais constaté qu’une des baies de disques du NAS pouvait empêcher le démarrage de certaines VM. Une sorte de bug matériel lié au contrôleur SATA. Mais jamais, **jamais encore**, cela n’avait empêché le superviseur lui-même de booter. Ce serait nouveau. Inquiétant.
|
|
||||||
|
|
||||||
Je décide alors de me confronter à la machine, physiquement. De la regarder droit dans les ports. Je sors un écran de contrôle. Je repère les sorties vidéo de l’hôte physique : **DVI** et **DisplayPort**. Mon écran, lui, accepte **DVI** et **VGA**. Incompatibilité de dernière minute. Je n’ai pas de câble DVI-DVI sous la main, évidemment. Alors j’improvise : je crée une sorte de monstre cablé — un adaptateur DVI vers HDMI, puis un câble HDMI vers DisplayPort. Une chaîne improbable, bancale, mais qui pourrait faire l’affaire. Je branche. Je croise les doigts. Mais l’écran reste désespérément figé sur un message sans pitié : "**NUMERIQUE GESTION ALIM**". Une forme élégante pour dire : “aucun signal”.
|
|
||||||
|
|
||||||
Je n’abandonne pas. Je saute dans ma voiture, roule chez un ami, récupère un vrai câble DVI-DVI, sans détours, sans artifice. Je rentre, je branche, je relance. Même résultat. **Échec total.** Pas d’image. Pas de BIOS. Rien. Juste le silence des ventilateurs et la frustration qui monte. Le sentiment de tourner en rond. De ne pas voir le fond du problème. Et surtout, ce vide numérique absolu : plus de réseau interne, plus d’accès aux données, plus rien pour maintenir mes services ou assurer les usages quotidiens.
|
|
||||||
|
|
||||||
La nuit est tombée. Il ne reste que moi, les serveurs muets, et ce silence qui dit : “Reviens demain, tu verras peut-être mieux.” Alors je me couche, sans certitude, mais avec cette idée persistante qu’il y a forcément une explication. Il faut juste, encore, aller la chercher.
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"uuid": "29afb8a4-36ba-40da-a857-109a26df336d",
|
|
||||||
"slug": "incident-acegrp-lan-1-numerique-gestion-alim",
|
|
||||||
"title": "Incident acegrp.lan (1) : NUMERIQUE GESTION ALIM",
|
|
||||||
"author": "cedric@abonnel.fr",
|
|
||||||
"published": true,
|
|
||||||
"published_at": "2025-04-29 07:32:00",
|
|
||||||
"created_at": "2025-04-29 07:32:00",
|
|
||||||
"updated_at": "2025-04-29 06:22:05",
|
|
||||||
"revisions": [],
|
|
||||||
"cover": "cover.jpg",
|
|
||||||
"category": "domotique"
|
|
||||||
}
|
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
### Définition technique
|
|
||||||
|
|
||||||
La **4G**, ou **LTE (Long Term Evolution)**, représente la quatrième génération des réseaux mobiles. Déployée massivement en France à partir de 2012, elle a transformé l’expérience utilisateur grâce à des débits élevés et une latence nettement réduite.
|
|
||||||
|
|
||||||
* **Débit descendant** : 100 Mbit/s en LTE standard, jusqu’à **1 Gbit/s** avec LTE Advanced.
|
|
||||||
* **Débit montant** : 50 Mbit/s en LTE standard, jusqu’à 500 Mbit/s en LTE Advanced.
|
|
||||||
* **Latence moyenne** : 30–50 ms (contre 150–200 ms en 3G).
|
|
||||||
|
|
||||||
Cette réduction de latence et l’augmentation des débits ont ouvert la voie à des usages auparavant difficiles en 3G, comme le streaming vidéo HD, le cloud computing mobile et l’Internet des objets (IoT).
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Avantages technologiques
|
|
||||||
|
|
||||||
La 4G introduit plusieurs améliorations fondamentales :
|
|
||||||
|
|
||||||
1. **Efficacité spectrale accrue** : meilleure utilisation des fréquences disponibles, permettant de transporter plus de données par MHz.
|
|
||||||
2. **Support des contenus multimédias HD** : vidéo, audio et streaming en haute définition.
|
|
||||||
3. **Réduction de la latence** : améliore la fluidité des jeux en ligne, visioconférences et applications temps réel.
|
|
||||||
4. **Architecture simplifiée** : la 4G supprime le RNC (Radio Network Controller) de la 3G et introduit l’**eNodeB**, un contrôleur intégré qui réduit les délais et complexifie moins le réseau.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Schéma suggéré : architecture 3G vs 4G
|
|
||||||
|
|
||||||
```mermaid
|
|
||||||
flowchart LR
|
|
||||||
subgraph 3G
|
|
||||||
A[UE - Mobile] --> B[NodeB]
|
|
||||||
B --> C[RNC]
|
|
||||||
C --> D[Core Network]
|
|
||||||
end
|
|
||||||
|
|
||||||
subgraph 4G
|
|
||||||
E[UE - Mobile] --> F[eNodeB]
|
|
||||||
F --> G[EPC - Core Network]
|
|
||||||
end
|
|
||||||
```
|
|
||||||
|
|
||||||
> Comparaison : la 4G simplifie l’architecture en fusionnant certaines fonctions du RNC dans l’eNodeB, ce qui réduit la latence et améliore le débit effectif.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Exemples opérateurs et impact utilisateur
|
|
||||||
|
|
||||||
* **Free Mobile** : couverture 4G de **96 % de la population française**.
|
|
||||||
* **Orange, SFR, Bouygues** : déploiement complet dans les grandes villes et axes principaux.
|
|
||||||
|
|
||||||
Conséquences sur la 3G :
|
|
||||||
|
|
||||||
* Les services qui fonctionnaient bien sur la 3G deviennent limités, notamment en itinérance.
|
|
||||||
* Le bridage progressif de la 3G force les utilisateurs hors des grandes villes à adopter la 4G pour retrouver des débits satisfaisants.
|
|
||||||
|
|
||||||
> La 4G est ainsi la première technologie à réellement “forcer” la migration depuis la 3G, en combinant avantages techniques et pression indirecte sur les utilisateurs.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
La 4G n’est pas seulement une évolution des débits : elle représente un **changement architectural et économique** majeur.
|
|
||||||
|
|
||||||
* Elle permet des usages jusqu’alors impossibles en 3G.
|
|
||||||
* Elle améliore l’efficacité réseau et réduit les coûts par bit transmis.
|
|
||||||
* Elle sert de levier pour pousser progressivement les abonnés 3G vers une expérience moderne, plus fluide et adaptée aux besoins actuels.
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"uuid": "2bd30656-b34b-45b3-86b7-610503fa92fe",
|
|
||||||
"slug": "la-4g-un-bond-en-avant-technologique",
|
|
||||||
"title": "La 4G : un bond en avant technologique",
|
|
||||||
"author": "cedric@abonnel.fr",
|
|
||||||
"published": true,
|
|
||||||
"published_at": "2025-11-05 08:42:20",
|
|
||||||
"created_at": "2025-11-05 08:42:20",
|
|
||||||
"updated_at": "2025-11-05 08:42:20",
|
|
||||||
"revisions": [],
|
|
||||||
"cover": "cover.jpg",
|
|
||||||
"category": "télécom"
|
|
||||||
}
|
|
||||||
@@ -1,85 +0,0 @@
|
|||||||
# **Cours : Les paramètres physiques et biologiques d’un écosystème**
|
|
||||||
|
|
||||||
## **I – Les paramètres d’un écosystème**
|
|
||||||
|
|
||||||
Un **écosystème** est un endroit où vivent des êtres vivants (plantes, animaux, microbes) dans un **milieu** qui possède certaines caractéristiques.
|
|
||||||
|
|
||||||
Pour comprendre pourquoi les êtres vivants ne se trouvent pas tous au même endroit, on étudie :
|
|
||||||
|
|
||||||
* des **paramètres physiques** (liés au milieu),
|
|
||||||
* des **paramètres biologiques** (liés aux autres êtres vivants).
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## **1) Les paramètres physiques**
|
|
||||||
|
|
||||||
Les paramètres physiques sont les éléments du milieu que l’on peut mesurer :
|
|
||||||
|
|
||||||
* **La température** : c’est la chaleur de l’air ou du sol.
|
|
||||||
→ Mesurée avec un **thermomètre** en **degré Celsius (°C)**.
|
|
||||||
|
|
||||||
* **L’humidité** : c’est la quantité d’eau présente dans l’air.
|
|
||||||
→ Mesurée avec un **hygromètre** en **pourcentage (%)**.
|
|
||||||
|
|
||||||
* **La luminosité** : c’est la quantité de lumière.
|
|
||||||
→ Mesurée avec un **luxmètre** en **lux**.
|
|
||||||
|
|
||||||
### **Tableau récapitulatif**
|
|
||||||
|
|
||||||
| Paramètre physique | Appareil de mesure | Unité |
|
|
||||||
| ------------------ | ------------------ | ----- |
|
|
||||||
| Température | Thermomètre | °C |
|
|
||||||
| Humidité | Hygromètre | % |
|
|
||||||
| Luminosité | Luxmètre | lux |
|
|
||||||
|
|
||||||
### **Pourquoi ces paramètres sont-ils importants ?**
|
|
||||||
|
|
||||||
Les êtres vivants ne vivent pas tous dans les mêmes conditions.
|
|
||||||
Par exemple :
|
|
||||||
|
|
||||||
* Au **soleil**, il fait plus chaud et plus lumineux, mais l’air est souvent plus sec.
|
|
||||||
* À **l’ombre**, il fait plus frais et l’humidité est plus élevée.
|
|
||||||
|
|
||||||
Ces différences expliquent pourquoi certaines plantes poussent à l’ombre et d’autres au soleil.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## **2) Les paramètres biologiques**
|
|
||||||
|
|
||||||
Les paramètres biologiques sont liés aux **autres êtres vivants** présents dans le milieu.
|
|
||||||
|
|
||||||
Exemples :
|
|
||||||
|
|
||||||
* présence de **proies** pour les animaux carnivores,
|
|
||||||
* présence de **prédateurs**,
|
|
||||||
* concurrence entre espèces pour la nourriture ou l’espace,
|
|
||||||
* présence de plantes utiles ou nuisibles.
|
|
||||||
|
|
||||||
Ils influencent aussi la répartition des êtres vivants.
|
|
||||||
|
|
||||||
### **Autres facteurs influents**
|
|
||||||
|
|
||||||
* L’heure du jour ou de la nuit
|
|
||||||
* La saison (été, hiver…)
|
|
||||||
* Le type de sol
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## **3) Conclusion**
|
|
||||||
|
|
||||||
Modifier un seul facteur (température, lumière, présence d’un animal…) peut changer tout l’écosystème.
|
|
||||||
Cela peut entraîner le déplacement ou la disparition de certains êtres vivants.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# **II – Les changements de peuplement dans un écosystème**
|
|
||||||
|
|
||||||
## **1) Au cours de la journée, de la nuit ou selon les saisons**
|
|
||||||
|
|
||||||
Les êtres vivants ne sont pas toujours visibles au même moment :
|
|
||||||
|
|
||||||
* Certains animaux sortent **le jour** (ex : merles).
|
|
||||||
* D’autres sortent **la nuit** (ex : hérissons).
|
|
||||||
* Certaines plantes changent selon les **saisons** (ex : feuilles qui tombent en automne).
|
|
||||||
|
|
||||||
Ainsi, un même endroit peut avoir des êtres vivants différents selon l’heure ou la saison.
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"uuid": "3c9eaeb1-4b44-487e-99d7-2e5a2f2b7b81",
|
|
||||||
"slug": "svt-6",
|
|
||||||
"title": "svt 6",
|
|
||||||
"author": "cedric@abonnel.fr",
|
|
||||||
"published": true,
|
|
||||||
"published_at": "2025-11-25 20:30:17",
|
|
||||||
"created_at": "2025-11-25 20:30:17",
|
|
||||||
"updated_at": "2025-11-25 20:30:17",
|
|
||||||
"revisions": [],
|
|
||||||
"cover": "cover.jpg",
|
|
||||||
"category": "scolaire"
|
|
||||||
}
|
|
||||||
@@ -1,91 +0,0 @@
|
|||||||
## **Le Dîner aux Quatorze Valises**
|
|
||||||
|
|
||||||
L’air de Los Angeles avait ce soir-là une douceur presque irréelle. Le soleil s’était retiré derrière les collines, laissant sur la ville un voile d’or et de pourpre. Dans sa villa perchée sur les hauteurs, **George Clooney** observait le crépuscule à travers les baies vitrées. Il tenait un verre de tequila — pas encore la sienne, pas encore *Casamigos* — et laissait son esprit vagabonder vers le passé.
|
|
||||||
|
|
||||||
Depuis quelques années, tout semblait lui sourire. Les films, les récompenses, la reconnaissance. Pourtant, au fond de lui, subsistait un souvenir tenace : celui des jours sans gloire, des auditions ratées, des loyers impayés, des doutes qui rongent. Et dans chacun de ces souvenirs, un visage revenait, puis un autre, et encore un autre. **Ses amis.** Ceux qui avaient cru en lui avant tout le monde.
|
|
||||||
|
|
||||||
> « S’ils ne m’avaient pas aidé, je n’aurais rien aujourd’hui », murmura-t-il.
|
|
||||||
|
|
||||||
C’est à cet instant que naquit l’idée. Folle. Impossible. Parfaite.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### **Le Plan Clooney**
|
|
||||||
|
|
||||||
Quelques jours plus tard, l’acteur décrocha son téléphone. À l’autre bout du fil, un vieil ami, discret, habitué à gérer des affaires où la confidentialité valait plus que l’or.
|
|
||||||
Clooney parla calmement, comme s’il commandait un dîner.
|
|
||||||
|
|
||||||
> — J’aurais besoin de quatorze valises.
|
|
||||||
> — Quatorze valises ? Pour voyager ?
|
|
||||||
> — Non. Pour les remplir.
|
|
||||||
> — Les remplir de quoi ?
|
|
||||||
> — De cash. Un million dans chacune.
|
|
||||||
|
|
||||||
Un silence. Puis un rire, incrédule. Mais Clooney ne riait pas.
|
|
||||||
|
|
||||||
L’homme comprit. Ce n’était pas une blague. Le lendemain, ils se retrouvèrent dans une salle sécurisée d’une banque privée. Les employés, discrets et médusés, empilaient des **liasses de billets de 20 dollars**, soigneusement compressées, jusqu’à atteindre la somme vertigineuse de **14 millions**.
|
|
||||||
Les valises en cuir sombre furent disposées comme dans une scène d’*Ocean’s Eleven*. Sauf que cette fois, George Clooney ne tournait pas un film : il écrivait sa propre légende.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### **Le Dîner**
|
|
||||||
|
|
||||||
Nous sommes en **2013**. Le ciel de Californie s’enrobe de lumière chaude.
|
|
||||||
Clooney organise un dîner chez lui. Rien d’extravagant à première vue — juste une soirée entre amis, ces mêmes amis qu’il connaît depuis vingt, trente ans. Des visages familiers : **Rande Gerber**, **Mike Meldman**, **Grant Heslov**, **Richard Kind**, **Tom Mathews**… et d’autres dont le monde n’aura jamais le nom.
|
|
||||||
|
|
||||||
Ils arrivent un à un, souriants, décontractés. Sur la grande table, dressée simplement, chaque convive remarque une **valise en cuir** posée à sa place. Ils se jettent des regards curieux, croyant à une plaisanterie.
|
|
||||||
|
|
||||||
Le dîner se déroule dans les rires et les souvenirs. Puis, entre deux verres de vin, Clooney se lève. Le silence s’installe. Il les regarde, les uns après les autres. Ses amis. Sa famille de cœur.
|
|
||||||
|
|
||||||
> « Les gars, vous avez été là quand je n’avais rien. Quand je dormais sur vos canapés, quand je n’avais pas de rôle, ni d’argent, ni de plan. Vous avez cru en moi. Vous avez partagé vos repas, vos toits, votre temps. Aujourd’hui, j’ai envie de vous dire merci. »
|
|
||||||
|
|
||||||
Il désigne les valises.
|
|
||||||
|
|
||||||
> « Chacune contient **un million de dollars en cash**. C’est ma façon de vous rendre ce que vous m’avez donné : la chance, la loyauté, l’amitié. »
|
|
||||||
|
|
||||||
Un murmure traverse la pièce. Certains rient nerveusement, d’autres restent figés.
|
|
||||||
Clooney ouvre une valise. Des liasses impeccables, empilées comme dans les films. Le choc est réel.
|
|
||||||
|
|
||||||
Puis il ajoute, avec ce demi-sourire qu’on lui connaît :
|
|
||||||
|
|
||||||
> « Et avant que vous ne paniquiez, j’ai aussi payé les impôts pour vous. Vous n’aurez rien à déclarer. C’est du net. »
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### **Les Réactions**
|
|
||||||
|
|
||||||
**Rande Gerber**, son plus proche complice, éclate de rire avant de secouer la tête.
|
|
||||||
|
|
||||||
> — George, je ne peux pas accepter ça.
|
|
||||||
|
|
||||||
Clooney lui répond calmement :
|
|
||||||
|
|
||||||
> — Si tu refuses, personne ne reçoit rien.
|
|
||||||
|
|
||||||
Alors Gerber accepte. Et, plus tard, il reverse **son million à une œuvre caritative**.
|
|
||||||
Ce geste, à lui seul, résume toute la soirée : de la générosité en cascade.
|
|
||||||
|
|
||||||
Les autres ouvrent leurs valises, les mains tremblantes, mi-hilaires, mi-hébétés. Dans cette maison perchée sur les collines, les dollars ne représentent plus la richesse — mais la **gratitude**.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### **L’Héritage d’un Geste**
|
|
||||||
|
|
||||||
L’histoire reste secrète pendant des années.
|
|
||||||
C’est seulement en 2017, quand Rande Gerber la raconte publiquement, que le monde découvre ce qu’on appellera bientôt **“Le Coup de Clooney”**.
|
|
||||||
|
|
||||||
Beaucoup y voient une extravagance hollywoodienne, un coup d’éclat digne d’un scénario. Mais ceux qui connaissent Clooney savent que c’est autre chose. C’est la reconnaissance d’un homme qui n’a jamais oublié les soirs de galère, ni les mains tendues.
|
|
||||||
|
|
||||||
> “J’ai pensé : si je me fais renverser par un bus demain, je suis comblé.
|
|
||||||
> Mais tout ça n’aurait aucun sens si je n’avais pas ces gars à mes côtés.”
|
|
||||||
> — *George Clooney, dans GQ, 2020*
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### **Épilogue**
|
|
||||||
|
|
||||||
Aujourd’hui encore, la légende circule à Hollywood comme un conte moderne.
|
|
||||||
Quatorze valises, quatorze millions, quatorze amitiés.
|
|
||||||
Une scène digne d’un film — mais sans caméra, sans public, sans scénario.
|
|
||||||
|
|
||||||
Seulement un homme, ses amis, et un merci plus fort que tout l’or du monde.
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"uuid": "3d6d8b38-c514-46dc-93dc-b4b2f19112e9",
|
|
||||||
"slug": "l-histoire-du-million-de-dollars-offert-par-george-clooney",
|
|
||||||
"title": "L'histoire du million de dollars offert par George Clooney",
|
|
||||||
"author": "cedric@abonnel.fr",
|
|
||||||
"published": true,
|
|
||||||
"published_at": "2025-11-04 22:02:12",
|
|
||||||
"created_at": "2025-11-04 22:02:12",
|
|
||||||
"updated_at": "2025-11-04 22:02:12",
|
|
||||||
"revisions": [],
|
|
||||||
"cover": "cover.jpg",
|
|
||||||
"category": "loisirs"
|
|
||||||
}
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
Salut à toutes et à tous,
|
|
||||||
|
|
||||||
À l’occasion des [JDLL 2025](https://jdll.org), je suis heureux de publier **varlog**, mon journal technique public, accessible à l’adresse :
|
|
||||||
|
|
||||||
👉 **[https://varlog.a5l.fr](https://varlog.a5l.fr)**
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Pourquoi ce journal ?
|
|
||||||
|
|
||||||
Ce carnet de bord a pour objectif de :
|
|
||||||
|
|
||||||
* documenter mes expérimentations (DevOps, auto-hébergement, scripts, réseau, etc.),
|
|
||||||
* archiver des résolutions de bugs ou des configurations spécifiques,
|
|
||||||
* partager des bonnes pratiques, bouts de code, retours d’expérience, coups de gueule… et peut-être quelques surprises !
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Premiers billets :
|
|
||||||
|
|
||||||
Il y a déjà de nombreux billets en ligne que j'ai écrit lors du développement de **varlog**.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Merci à celles et ceux qui liront, commenteront ou partageront.
|
|
||||||
Et longue vie au libre ✊🐧
|
|
||||||
|
|
||||||
*Cédric A. (aka Cédrix)*
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"uuid": "4690db18-9a01-4263-be38-13762cd8f6fa",
|
|
||||||
"slug": "bienvenue-sur-varlog-carnet-de-bord-technique",
|
|
||||||
"title": "🎉 Bienvenue sur **varlog** – Carnet de bord technique",
|
|
||||||
"author": "cedric@abonnel.fr",
|
|
||||||
"published": true,
|
|
||||||
"published_at": "2025-05-25 06:08:10",
|
|
||||||
"created_at": "2025-05-25 06:08:10",
|
|
||||||
"updated_at": "2025-05-25 06:08:10",
|
|
||||||
"revisions": [],
|
|
||||||
"cover": "cover.jpg",
|
|
||||||
"category": "blog"
|
|
||||||
}
|
|
||||||
@@ -1,162 +0,0 @@
|
|||||||
<svg width="100%" viewBox="0 0 680 400" xmlns="http://www.w3.org/2000/svg" role="img" style="">
|
|
||||||
<title style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">Conversion d'images en ligne de commande sous Linux</title>
|
|
||||||
<desc style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">Une fenêtre de terminal au centre avec une commande ImageMagick, entourée d'images source à gauche en plusieurs formats et d'images converties à droite, illustrant la transformation par ligne de commande.</desc>
|
|
||||||
|
|
||||||
<defs>
|
|
||||||
|
|
||||||
<linearGradient id="sky" x1="0" y1="0" x2="0" y2="1">
|
|
||||||
<stop offset="0%" stop-color="#fab387"/>
|
|
||||||
<stop offset="100%" stop-color="#f38ba8"/>
|
|
||||||
</linearGradient>
|
|
||||||
</defs>
|
|
||||||
|
|
||||||
<!-- LEFT SIDE: source images (varied formats, heavier visually) -->
|
|
||||||
<!-- JPG photo: sunset -->
|
|
||||||
<g transform="translate(40, 60)" style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<rect width="110" height="80" rx="4" fill="url(#sky)" stroke="#45475a" stroke-width="0.5" style="stroke:rgb(69, 71, 90);color:rgb(0, 0, 0);stroke-width:0.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<circle cx="78" cy="48" r="14" fill="#f9e2af" opacity="0.9" style="fill:rgb(249, 226, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.9;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="0" y="62" width="110" height="18" rx="0" fill="#1e3a5f" opacity="0.7" style="fill:rgb(30, 58, 95);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.7;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="0" y="62" width="110" height="18" fill="none" style="fill:none;stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="0" y="80" width="110" height="0" fill="none" style="fill:none;stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<!-- format badge -->
|
|
||||||
<rect x="6" y="64" width="34" height="14" rx="2" fill="#1e1e2e" opacity="0.85" style="fill:rgb(30, 30, 46);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.85;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<text x="23" y="74" text-anchor="middle" style="fill:rgb(255, 255, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", system-ui, sans-serif;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">JPG</text>
|
|
||||||
<text x="55" y="98" text-anchor="middle" style="fill:rgb(108, 112, 134);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", system-ui, sans-serif;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">4032 × 3024</text>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- PNG: with transparency checkerboard -->
|
|
||||||
<g transform="translate(40, 170)" style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<rect width="110" height="80" rx="4" fill="#ffffff" stroke="#45475a" stroke-width="0.5" style="fill:rgb(255, 255, 255);stroke:rgb(69, 71, 90);color:rgb(0, 0, 0);stroke-width:0.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<g opacity="0.25" style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.25;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<rect x="0" y="0" width="11" height="10" fill="#9ca3af" style="fill:rgb(156, 163, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="22" y="0" width="11" height="10" fill="#9ca3af" style="fill:rgb(156, 163, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="44" y="0" width="11" height="10" fill="#9ca3af" style="fill:rgb(156, 163, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="66" y="0" width="11" height="10" fill="#9ca3af" style="fill:rgb(156, 163, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="88" y="0" width="11" height="10" fill="#9ca3af" style="fill:rgb(156, 163, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="11" y="10" width="11" height="10" fill="#9ca3af" style="fill:rgb(156, 163, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="33" y="10" width="11" height="10" fill="#9ca3af" style="fill:rgb(156, 163, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="55" y="10" width="11" height="10" fill="#9ca3af" style="fill:rgb(156, 163, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="77" y="10" width="11" height="10" fill="#9ca3af" style="fill:rgb(156, 163, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="99" y="10" width="11" height="10" fill="#9ca3af" style="fill:rgb(156, 163, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="0" y="20" width="11" height="10" fill="#9ca3af" style="fill:rgb(156, 163, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="22" y="20" width="11" height="10" fill="#9ca3af" style="fill:rgb(156, 163, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="44" y="20" width="11" height="10" fill="#9ca3af" style="fill:rgb(156, 163, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="66" y="20" width="11" height="10" fill="#9ca3af" style="fill:rgb(156, 163, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="88" y="20" width="11" height="10" fill="#9ca3af" style="fill:rgb(156, 163, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
</g>
|
|
||||||
<!-- logo shape -->
|
|
||||||
<circle cx="55" cy="40" r="20" fill="#89b4fa" style="fill:rgb(137, 180, 250);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<polygon points="55,28 64,46 46,46" fill="#ffffff" style="fill:rgb(255, 255, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="6" y="62" width="34" height="14" rx="2" fill="#1e1e2e" opacity="0.85" style="fill:rgb(30, 30, 46);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.85;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<text x="23" y="72" text-anchor="middle" style="fill:rgb(255, 255, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", system-ui, sans-serif;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">PNG</text>
|
|
||||||
<text x="55" y="98" text-anchor="middle" style="fill:rgb(108, 112, 134);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", system-ui, sans-serif;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">1920 × 1080</text>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- CR2: RAW file representation -->
|
|
||||||
<g transform="translate(40, 280)" style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<rect width="110" height="80" rx="4" fill="#11111b" stroke="#45475a" stroke-width="0.5" style="fill:rgb(17, 17, 27);stroke:rgb(69, 71, 90);color:rgb(0, 0, 0);stroke-width:0.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<!-- film strip perforations -->
|
|
||||||
<rect x="6" y="6" width="6" height="6" fill="#45475a" style="fill:rgb(69, 71, 90);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="6" y="20" width="6" height="6" fill="#45475a" style="fill:rgb(69, 71, 90);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="6" y="34" width="6" height="6" fill="#45475a" style="fill:rgb(69, 71, 90);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="6" y="48" width="6" height="6" fill="#45475a" style="fill:rgb(69, 71, 90);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="98" y="6" width="6" height="6" fill="#45475a" style="fill:rgb(69, 71, 90);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="98" y="20" width="6" height="6" fill="#45475a" style="fill:rgb(69, 71, 90);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="98" y="34" width="6" height="6" fill="#45475a" style="fill:rgb(69, 71, 90);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="98" y="48" width="6" height="6" fill="#45475a" style="fill:rgb(69, 71, 90);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<!-- raw indicator bars -->
|
|
||||||
<rect x="20" y="14" width="70" height="2" fill="#f38ba8" style="fill:rgb(243, 139, 168);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="20" y="22" width="55" height="2" fill="#a6e3a1" style="fill:rgb(166, 227, 161);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="20" y="30" width="62" height="2" fill="#89b4fa" style="fill:rgb(137, 180, 250);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="20" y="38" width="48" height="2" fill="#f9e2af" style="fill:rgb(249, 226, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="20" y="46" width="68" height="2" fill="#cba6f7" style="fill:rgb(203, 166, 247);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="6" y="62" width="34" height="14" rx="2" fill="#1e1e2e" opacity="0.95" style="fill:rgb(30, 30, 46);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.95;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<text x="23" y="72" text-anchor="middle" style="fill:rgb(255, 255, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", system-ui, sans-serif;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">CR2</text>
|
|
||||||
<text x="55" y="98" text-anchor="middle" style="fill:rgb(108, 112, 134);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", system-ui, sans-serif;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">RAW 24 MB</text>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Arrows from sources into the terminal -->
|
|
||||||
<path d="M 158 100 Q 195 100 215 165" fill="none" stroke="#6c7086" stroke-width="1" stroke-dasharray="3 3" style="fill:none;stroke:rgb(108, 112, 134);color:rgb(0, 0, 0);stroke-width:1px;stroke-dasharray:3px, 3px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<path d="M 158 210 L 215 200" fill="none" stroke="#6c7086" stroke-width="1" stroke-dasharray="3 3" style="fill:none;stroke:rgb(108, 112, 134);color:rgb(0, 0, 0);stroke-width:1px;stroke-dasharray:3px, 3px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<path d="M 158 320 Q 195 320 215 245" fill="none" stroke="#6c7086" stroke-width="1" stroke-dasharray="3 3" style="fill:none;stroke:rgb(108, 112, 134);color:rgb(0, 0, 0);stroke-width:1px;stroke-dasharray:3px, 3px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
|
|
||||||
<!-- CENTER: terminal window -->
|
|
||||||
<g transform="translate(215, 110)" style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<!-- window -->
|
|
||||||
<rect width="250" height="200" rx="8" style="fill:rgb(30, 30, 46);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect width="250" height="26" rx="8" style="fill:rgb(49, 50, 68);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect y="18" width="250" height="8" style="fill:rgb(49, 50, 68);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<!-- traffic lights -->
|
|
||||||
<circle cx="14" cy="13" r="5" fill="#f38ba8" style="fill:rgb(243, 139, 168);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<circle cx="30" cy="13" r="5" fill="#f9e2af" style="fill:rgb(249, 226, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<circle cx="46" cy="13" r="5" fill="#a6e3a1" style="fill:rgb(166, 227, 161);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<text x="125" y="17" text-anchor="middle" style="font-size: 11px; fill: #6c7086;;fill:rgb(108, 112, 134);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, "SF Mono", Menlo, Consolas, monospace;font-size:11px;font-weight:400;text-anchor:middle;dominant-baseline:auto">cedrix@pve3 — bash</text>
|
|
||||||
|
|
||||||
<!-- terminal content -->
|
|
||||||
<text x="14" y="50" style="fill:rgb(166, 227, 161);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, "SF Mono", Menlo, Consolas, monospace;font-size:13px;font-weight:500;text-anchor:start;dominant-baseline:auto">$</text>
|
|
||||||
<text x="28" y="50" style="fill:rgb(249, 226, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, "SF Mono", Menlo, Consolas, monospace;font-size:13px;font-weight:400;text-anchor:start;dominant-baseline:auto">magick</text>
|
|
||||||
<text x="80" y="50" style="fill:rgb(137, 180, 250);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, "SF Mono", Menlo, Consolas, monospace;font-size:13px;font-weight:400;text-anchor:start;dominant-baseline:auto">photo.jpg</text>
|
|
||||||
<text x="14" y="68" style="fill:rgb(205, 214, 244);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, "SF Mono", Menlo, Consolas, monospace;font-size:13px;font-weight:400;text-anchor:start;dominant-baseline:auto"> -resize 1600x1600\></text>
|
|
||||||
<text x="14" y="86" style="fill:rgb(205, 214, 244);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, "SF Mono", Menlo, Consolas, monospace;font-size:13px;font-weight:400;text-anchor:start;dominant-baseline:auto"> -strip -quality 82</text>
|
|
||||||
<text x="14" y="104" style="fill:rgb(137, 180, 250);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, "SF Mono", Menlo, Consolas, monospace;font-size:13px;font-weight:400;text-anchor:start;dominant-baseline:auto"> web.jpg</text>
|
|
||||||
|
|
||||||
<text x="14" y="130" style="fill:rgb(108, 112, 134);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, "SF Mono", Menlo, Consolas, monospace;font-size:12px;font-weight:400;text-anchor:start;dominant-baseline:auto"># conversion en cours...</text>
|
|
||||||
<text x="14" y="148" style="fill:rgb(148, 226, 213);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, "SF Mono", Menlo, Consolas, monospace;font-size:12px;font-weight:400;text-anchor:start;dominant-baseline:auto">✓ resize: 1600 × 1067</text>
|
|
||||||
<text x="14" y="164" style="fill:rgb(148, 226, 213);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, "SF Mono", Menlo, Consolas, monospace;font-size:12px;font-weight:400;text-anchor:start;dominant-baseline:auto">✓ exif: stripped</text>
|
|
||||||
<text x="14" y="180" style="fill:rgb(148, 226, 213);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, "SF Mono", Menlo, Consolas, monospace;font-size:12px;font-weight:400;text-anchor:start;dominant-baseline:auto">✓ size: 4.2 MB → 218 KB</text>
|
|
||||||
|
|
||||||
<text x="14" y="194" style="fill:rgb(166, 227, 161);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, "SF Mono", Menlo, Consolas, monospace;font-size:13px;font-weight:500;text-anchor:start;dominant-baseline:auto">$</text>
|
|
||||||
<rect x="26" y="184" width="7" height="12" fill="#cdd6f4" style="fill:rgb(205, 214, 244);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.332727;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<animate attributeName="opacity" values="1;0;1" dur="1.1s" repeatCount="indefinite" style="fill:rgb(205, 214, 244);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
</rect>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Arrows from terminal to outputs -->
|
|
||||||
<path d="M 470 170 L 525 110" fill="none" stroke="#a6e3a1" stroke-width="1.2" marker-end="url(#arr-green)" style="fill:none;stroke:rgb(166, 227, 161);color:rgb(0, 0, 0);stroke-width:1.2px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<path d="M 470 210 L 525 210" fill="none" stroke="#a6e3a1" stroke-width="1.2" marker-end="url(#arr-green)" style="fill:none;stroke:rgb(166, 227, 161);color:rgb(0, 0, 0);stroke-width:1.2px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<path d="M 470 250 L 525 310" fill="none" stroke="#a6e3a1" stroke-width="1.2" marker-end="url(#arr-green)" style="fill:none;stroke:rgb(166, 227, 161);color:rgb(0, 0, 0);stroke-width:1.2px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
|
|
||||||
<defs>
|
|
||||||
<marker id="arr-green" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse">
|
|
||||||
<path d="M2 1L8 5L2 9" fill="none" stroke="#a6e3a1" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
|
|
||||||
<!-- RIGHT SIDE: converted outputs (lighter, smaller, optimized) -->
|
|
||||||
<!-- WebP optimized sunset -->
|
|
||||||
<g transform="translate(530, 60)" style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<rect width="110" height="80" rx="4" fill="url(#sky)" stroke="#45475a" stroke-width="0.5" style="stroke:rgb(69, 71, 90);color:rgb(0, 0, 0);stroke-width:0.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<circle cx="78" cy="48" r="14" fill="#f9e2af" opacity="0.9" style="fill:rgb(249, 226, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.9;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="0" y="62" width="110" height="18" fill="#1e3a5f" opacity="0.7" style="fill:rgb(30, 58, 95);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.7;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="6" y="64" width="40" height="14" rx="2" fill="#a6e3a1" style="fill:rgb(166, 227, 161);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<text x="26" y="74" text-anchor="middle" style="fill:#11111b;;fill:rgb(17, 17, 27);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", system-ui, sans-serif;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">WEBP</text>
|
|
||||||
<text x="55" y="98" text-anchor="middle" style="fill:rgb(108, 112, 134);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", system-ui, sans-serif;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">1600 × 1200</text>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- JPG web-ready (smaller) -->
|
|
||||||
<g transform="translate(530, 170)" style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<rect width="110" height="80" rx="4" fill="#ffffff" stroke="#45475a" stroke-width="0.5" style="fill:rgb(255, 255, 255);stroke:rgb(69, 71, 90);color:rgb(0, 0, 0);stroke-width:0.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<circle cx="55" cy="40" r="20" fill="#89b4fa" style="fill:rgb(137, 180, 250);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<polygon points="55,28 64,46 46,46" fill="#ffffff" style="fill:rgb(255, 255, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="6" y="62" width="40" height="14" rx="2" fill="#a6e3a1" style="fill:rgb(166, 227, 161);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<text x="26" y="72" text-anchor="middle" style="fill:#11111b;;fill:rgb(17, 17, 27);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", system-ui, sans-serif;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">JPG</text>
|
|
||||||
<text x="55" y="98" text-anchor="middle" style="fill:rgb(108, 112, 134);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", system-ui, sans-serif;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">1600 × 900</text>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- JPG developed from RAW -->
|
|
||||||
<g transform="translate(530, 280)" style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<rect width="110" height="80" rx="4" fill="#cba6f7" stroke="#45475a" stroke-width="0.5" style="fill:rgb(203, 166, 247);stroke:rgb(69, 71, 90);color:rgb(0, 0, 0);stroke-width:0.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="0" y="0" width="110" height="40" fill="#f38ba8" opacity="0.6" style="fill:rgb(243, 139, 168);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.6;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="0" y="40" width="110" height="22" fill="#fab387" opacity="0.7" style="fill:rgb(250, 179, 135);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.7;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="0" y="62" width="110" height="18" fill="#1e3a5f" opacity="0.7" style="fill:rgb(30, 58, 95);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.7;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="6" y="64" width="40" height="14" rx="2" fill="#a6e3a1" style="fill:rgb(166, 227, 161);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<text x="26" y="72" text-anchor="middle" style="fill:#11111b;;fill:rgb(17, 17, 27);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", system-ui, sans-serif;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">JPG</text>
|
|
||||||
<text x="55" y="98" text-anchor="middle" style="fill:rgb(108, 112, 134);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", system-ui, sans-serif;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">2048 × 1365</text>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- column labels -->
|
|
||||||
<text x="95" y="40" text-anchor="middle" style="fill:rgb(108, 112, 134);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", system-ui, sans-serif;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">SOURCES</text>
|
|
||||||
<text x="340" y="100" text-anchor="middle" style="fill:rgb(108, 112, 134);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", system-ui, sans-serif;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">TERMINAL</text>
|
|
||||||
<text x="585" y="40" text-anchor="middle" style="fill:rgb(108, 112, 134);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", system-ui, sans-serif;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">SORTIES</text>
|
|
||||||
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 38 KiB |
@@ -1,162 +0,0 @@
|
|||||||
<svg width="100%" viewBox="0 0 680 400" xmlns="http://www.w3.org/2000/svg" role="img" style="">
|
|
||||||
<title style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">Conversion d'images en ligne de commande sous Linux</title>
|
|
||||||
<desc style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">Une fenêtre de terminal au centre avec une commande ImageMagick, entourée d'images source à gauche en plusieurs formats et d'images converties à droite, illustrant la transformation par ligne de commande.</desc>
|
|
||||||
|
|
||||||
<defs>
|
|
||||||
|
|
||||||
<linearGradient id="sky" x1="0" y1="0" x2="0" y2="1">
|
|
||||||
<stop offset="0%" stop-color="#fab387"/>
|
|
||||||
<stop offset="100%" stop-color="#f38ba8"/>
|
|
||||||
</linearGradient>
|
|
||||||
</defs>
|
|
||||||
|
|
||||||
<!-- LEFT SIDE: source images (varied formats, heavier visually) -->
|
|
||||||
<!-- JPG photo: sunset -->
|
|
||||||
<g transform="translate(40, 60)" style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<rect width="110" height="80" rx="4" fill="url(#sky)" stroke="#45475a" stroke-width="0.5" style="stroke:rgb(69, 71, 90);color:rgb(0, 0, 0);stroke-width:0.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<circle cx="78" cy="48" r="14" fill="#f9e2af" opacity="0.9" style="fill:rgb(249, 226, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.9;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="0" y="62" width="110" height="18" rx="0" fill="#1e3a5f" opacity="0.7" style="fill:rgb(30, 58, 95);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.7;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="0" y="62" width="110" height="18" fill="none" style="fill:none;stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="0" y="80" width="110" height="0" fill="none" style="fill:none;stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<!-- format badge -->
|
|
||||||
<rect x="6" y="64" width="34" height="14" rx="2" fill="#1e1e2e" opacity="0.85" style="fill:rgb(30, 30, 46);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.85;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<text x="23" y="74" text-anchor="middle" style="fill:rgb(255, 255, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", system-ui, sans-serif;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">JPG</text>
|
|
||||||
<text x="55" y="98" text-anchor="middle" style="fill:rgb(108, 112, 134);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", system-ui, sans-serif;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">4032 × 3024</text>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- PNG: with transparency checkerboard -->
|
|
||||||
<g transform="translate(40, 170)" style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<rect width="110" height="80" rx="4" fill="#ffffff" stroke="#45475a" stroke-width="0.5" style="fill:rgb(255, 255, 255);stroke:rgb(69, 71, 90);color:rgb(0, 0, 0);stroke-width:0.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<g opacity="0.25" style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.25;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<rect x="0" y="0" width="11" height="10" fill="#9ca3af" style="fill:rgb(156, 163, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="22" y="0" width="11" height="10" fill="#9ca3af" style="fill:rgb(156, 163, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="44" y="0" width="11" height="10" fill="#9ca3af" style="fill:rgb(156, 163, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="66" y="0" width="11" height="10" fill="#9ca3af" style="fill:rgb(156, 163, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="88" y="0" width="11" height="10" fill="#9ca3af" style="fill:rgb(156, 163, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="11" y="10" width="11" height="10" fill="#9ca3af" style="fill:rgb(156, 163, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="33" y="10" width="11" height="10" fill="#9ca3af" style="fill:rgb(156, 163, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="55" y="10" width="11" height="10" fill="#9ca3af" style="fill:rgb(156, 163, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="77" y="10" width="11" height="10" fill="#9ca3af" style="fill:rgb(156, 163, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="99" y="10" width="11" height="10" fill="#9ca3af" style="fill:rgb(156, 163, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="0" y="20" width="11" height="10" fill="#9ca3af" style="fill:rgb(156, 163, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="22" y="20" width="11" height="10" fill="#9ca3af" style="fill:rgb(156, 163, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="44" y="20" width="11" height="10" fill="#9ca3af" style="fill:rgb(156, 163, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="66" y="20" width="11" height="10" fill="#9ca3af" style="fill:rgb(156, 163, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="88" y="20" width="11" height="10" fill="#9ca3af" style="fill:rgb(156, 163, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
</g>
|
|
||||||
<!-- logo shape -->
|
|
||||||
<circle cx="55" cy="40" r="20" fill="#89b4fa" style="fill:rgb(137, 180, 250);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<polygon points="55,28 64,46 46,46" fill="#ffffff" style="fill:rgb(255, 255, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="6" y="62" width="34" height="14" rx="2" fill="#1e1e2e" opacity="0.85" style="fill:rgb(30, 30, 46);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.85;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<text x="23" y="72" text-anchor="middle" style="fill:rgb(255, 255, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", system-ui, sans-serif;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">PNG</text>
|
|
||||||
<text x="55" y="98" text-anchor="middle" style="fill:rgb(108, 112, 134);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", system-ui, sans-serif;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">1920 × 1080</text>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- CR2: RAW file representation -->
|
|
||||||
<g transform="translate(40, 280)" style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<rect width="110" height="80" rx="4" fill="#11111b" stroke="#45475a" stroke-width="0.5" style="fill:rgb(17, 17, 27);stroke:rgb(69, 71, 90);color:rgb(0, 0, 0);stroke-width:0.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<!-- film strip perforations -->
|
|
||||||
<rect x="6" y="6" width="6" height="6" fill="#45475a" style="fill:rgb(69, 71, 90);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="6" y="20" width="6" height="6" fill="#45475a" style="fill:rgb(69, 71, 90);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="6" y="34" width="6" height="6" fill="#45475a" style="fill:rgb(69, 71, 90);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="6" y="48" width="6" height="6" fill="#45475a" style="fill:rgb(69, 71, 90);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="98" y="6" width="6" height="6" fill="#45475a" style="fill:rgb(69, 71, 90);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="98" y="20" width="6" height="6" fill="#45475a" style="fill:rgb(69, 71, 90);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="98" y="34" width="6" height="6" fill="#45475a" style="fill:rgb(69, 71, 90);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="98" y="48" width="6" height="6" fill="#45475a" style="fill:rgb(69, 71, 90);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<!-- raw indicator bars -->
|
|
||||||
<rect x="20" y="14" width="70" height="2" fill="#f38ba8" style="fill:rgb(243, 139, 168);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="20" y="22" width="55" height="2" fill="#a6e3a1" style="fill:rgb(166, 227, 161);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="20" y="30" width="62" height="2" fill="#89b4fa" style="fill:rgb(137, 180, 250);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="20" y="38" width="48" height="2" fill="#f9e2af" style="fill:rgb(249, 226, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="20" y="46" width="68" height="2" fill="#cba6f7" style="fill:rgb(203, 166, 247);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="6" y="62" width="34" height="14" rx="2" fill="#1e1e2e" opacity="0.95" style="fill:rgb(30, 30, 46);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.95;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<text x="23" y="72" text-anchor="middle" style="fill:rgb(255, 255, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", system-ui, sans-serif;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">CR2</text>
|
|
||||||
<text x="55" y="98" text-anchor="middle" style="fill:rgb(108, 112, 134);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", system-ui, sans-serif;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">RAW 24 MB</text>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Arrows from sources into the terminal -->
|
|
||||||
<path d="M 158 100 Q 195 100 215 165" fill="none" stroke="#6c7086" stroke-width="1" stroke-dasharray="3 3" style="fill:none;stroke:rgb(108, 112, 134);color:rgb(0, 0, 0);stroke-width:1px;stroke-dasharray:3px, 3px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<path d="M 158 210 L 215 200" fill="none" stroke="#6c7086" stroke-width="1" stroke-dasharray="3 3" style="fill:none;stroke:rgb(108, 112, 134);color:rgb(0, 0, 0);stroke-width:1px;stroke-dasharray:3px, 3px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<path d="M 158 320 Q 195 320 215 245" fill="none" stroke="#6c7086" stroke-width="1" stroke-dasharray="3 3" style="fill:none;stroke:rgb(108, 112, 134);color:rgb(0, 0, 0);stroke-width:1px;stroke-dasharray:3px, 3px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
|
|
||||||
<!-- CENTER: terminal window -->
|
|
||||||
<g transform="translate(215, 110)" style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<!-- window -->
|
|
||||||
<rect width="250" height="200" rx="8" style="fill:rgb(30, 30, 46);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect width="250" height="26" rx="8" style="fill:rgb(49, 50, 68);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect y="18" width="250" height="8" style="fill:rgb(49, 50, 68);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<!-- traffic lights -->
|
|
||||||
<circle cx="14" cy="13" r="5" fill="#f38ba8" style="fill:rgb(243, 139, 168);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<circle cx="30" cy="13" r="5" fill="#f9e2af" style="fill:rgb(249, 226, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<circle cx="46" cy="13" r="5" fill="#a6e3a1" style="fill:rgb(166, 227, 161);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<text x="125" y="17" text-anchor="middle" style="font-size: 11px; fill: #6c7086;;fill:rgb(108, 112, 134);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, "SF Mono", Menlo, Consolas, monospace;font-size:11px;font-weight:400;text-anchor:middle;dominant-baseline:auto">cedrix@pve3 — bash</text>
|
|
||||||
|
|
||||||
<!-- terminal content -->
|
|
||||||
<text x="14" y="50" style="fill:rgb(166, 227, 161);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, "SF Mono", Menlo, Consolas, monospace;font-size:13px;font-weight:500;text-anchor:start;dominant-baseline:auto">$</text>
|
|
||||||
<text x="28" y="50" style="fill:rgb(249, 226, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, "SF Mono", Menlo, Consolas, monospace;font-size:13px;font-weight:400;text-anchor:start;dominant-baseline:auto">magick</text>
|
|
||||||
<text x="80" y="50" style="fill:rgb(137, 180, 250);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, "SF Mono", Menlo, Consolas, monospace;font-size:13px;font-weight:400;text-anchor:start;dominant-baseline:auto">photo.jpg</text>
|
|
||||||
<text x="14" y="68" style="fill:rgb(205, 214, 244);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, "SF Mono", Menlo, Consolas, monospace;font-size:13px;font-weight:400;text-anchor:start;dominant-baseline:auto"> -resize 1600x1600\></text>
|
|
||||||
<text x="14" y="86" style="fill:rgb(205, 214, 244);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, "SF Mono", Menlo, Consolas, monospace;font-size:13px;font-weight:400;text-anchor:start;dominant-baseline:auto"> -strip -quality 82</text>
|
|
||||||
<text x="14" y="104" style="fill:rgb(137, 180, 250);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, "SF Mono", Menlo, Consolas, monospace;font-size:13px;font-weight:400;text-anchor:start;dominant-baseline:auto"> web.jpg</text>
|
|
||||||
|
|
||||||
<text x="14" y="130" style="fill:rgb(108, 112, 134);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, "SF Mono", Menlo, Consolas, monospace;font-size:12px;font-weight:400;text-anchor:start;dominant-baseline:auto"># conversion en cours...</text>
|
|
||||||
<text x="14" y="148" style="fill:rgb(148, 226, 213);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, "SF Mono", Menlo, Consolas, monospace;font-size:12px;font-weight:400;text-anchor:start;dominant-baseline:auto">✓ resize: 1600 × 1067</text>
|
|
||||||
<text x="14" y="164" style="fill:rgb(148, 226, 213);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, "SF Mono", Menlo, Consolas, monospace;font-size:12px;font-weight:400;text-anchor:start;dominant-baseline:auto">✓ exif: stripped</text>
|
|
||||||
<text x="14" y="180" style="fill:rgb(148, 226, 213);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, "SF Mono", Menlo, Consolas, monospace;font-size:12px;font-weight:400;text-anchor:start;dominant-baseline:auto">✓ size: 4.2 MB → 218 KB</text>
|
|
||||||
|
|
||||||
<text x="14" y="194" style="fill:rgb(166, 227, 161);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:ui-monospace, "SF Mono", Menlo, Consolas, monospace;font-size:13px;font-weight:500;text-anchor:start;dominant-baseline:auto">$</text>
|
|
||||||
<rect x="26" y="184" width="7" height="12" fill="#cdd6f4" style="fill:rgb(205, 214, 244);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.332727;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<animate attributeName="opacity" values="1;0;1" dur="1.1s" repeatCount="indefinite" style="fill:rgb(205, 214, 244);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
</rect>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- Arrows from terminal to outputs -->
|
|
||||||
<path d="M 470 170 L 525 110" fill="none" stroke="#a6e3a1" stroke-width="1.2" marker-end="url(#arr-green)" style="fill:none;stroke:rgb(166, 227, 161);color:rgb(0, 0, 0);stroke-width:1.2px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<path d="M 470 210 L 525 210" fill="none" stroke="#a6e3a1" stroke-width="1.2" marker-end="url(#arr-green)" style="fill:none;stroke:rgb(166, 227, 161);color:rgb(0, 0, 0);stroke-width:1.2px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<path d="M 470 250 L 525 310" fill="none" stroke="#a6e3a1" stroke-width="1.2" marker-end="url(#arr-green)" style="fill:none;stroke:rgb(166, 227, 161);color:rgb(0, 0, 0);stroke-width:1.2px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
|
|
||||||
<defs>
|
|
||||||
<marker id="arr-green" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse">
|
|
||||||
<path d="M2 1L8 5L2 9" fill="none" stroke="#a6e3a1" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
||||||
</marker>
|
|
||||||
</defs>
|
|
||||||
|
|
||||||
<!-- RIGHT SIDE: converted outputs (lighter, smaller, optimized) -->
|
|
||||||
<!-- WebP optimized sunset -->
|
|
||||||
<g transform="translate(530, 60)" style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<rect width="110" height="80" rx="4" fill="url(#sky)" stroke="#45475a" stroke-width="0.5" style="stroke:rgb(69, 71, 90);color:rgb(0, 0, 0);stroke-width:0.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<circle cx="78" cy="48" r="14" fill="#f9e2af" opacity="0.9" style="fill:rgb(249, 226, 175);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.9;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="0" y="62" width="110" height="18" fill="#1e3a5f" opacity="0.7" style="fill:rgb(30, 58, 95);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.7;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="6" y="64" width="40" height="14" rx="2" fill="#a6e3a1" style="fill:rgb(166, 227, 161);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<text x="26" y="74" text-anchor="middle" style="fill:#11111b;;fill:rgb(17, 17, 27);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", system-ui, sans-serif;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">WEBP</text>
|
|
||||||
<text x="55" y="98" text-anchor="middle" style="fill:rgb(108, 112, 134);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", system-ui, sans-serif;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">1600 × 1200</text>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- JPG web-ready (smaller) -->
|
|
||||||
<g transform="translate(530, 170)" style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<rect width="110" height="80" rx="4" fill="#ffffff" stroke="#45475a" stroke-width="0.5" style="fill:rgb(255, 255, 255);stroke:rgb(69, 71, 90);color:rgb(0, 0, 0);stroke-width:0.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<circle cx="55" cy="40" r="20" fill="#89b4fa" style="fill:rgb(137, 180, 250);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<polygon points="55,28 64,46 46,46" fill="#ffffff" style="fill:rgb(255, 255, 255);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="6" y="62" width="40" height="14" rx="2" fill="#a6e3a1" style="fill:rgb(166, 227, 161);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<text x="26" y="72" text-anchor="middle" style="fill:#11111b;;fill:rgb(17, 17, 27);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", system-ui, sans-serif;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">JPG</text>
|
|
||||||
<text x="55" y="98" text-anchor="middle" style="fill:rgb(108, 112, 134);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", system-ui, sans-serif;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">1600 × 900</text>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- JPG developed from RAW -->
|
|
||||||
<g transform="translate(530, 280)" style="fill:rgb(0, 0, 0);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto">
|
|
||||||
<rect width="110" height="80" rx="4" fill="#cba6f7" stroke="#45475a" stroke-width="0.5" style="fill:rgb(203, 166, 247);stroke:rgb(69, 71, 90);color:rgb(0, 0, 0);stroke-width:0.5px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="0" y="0" width="110" height="40" fill="#f38ba8" opacity="0.6" style="fill:rgb(243, 139, 168);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.6;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="0" y="40" width="110" height="22" fill="#fab387" opacity="0.7" style="fill:rgb(250, 179, 135);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.7;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="0" y="62" width="110" height="18" fill="#1e3a5f" opacity="0.7" style="fill:rgb(30, 58, 95);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:0.7;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<rect x="6" y="64" width="40" height="14" rx="2" fill="#a6e3a1" style="fill:rgb(166, 227, 161);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-size:16px;font-weight:400;text-anchor:start;dominant-baseline:auto"/>
|
|
||||||
<text x="26" y="72" text-anchor="middle" style="fill:#11111b;;fill:rgb(17, 17, 27);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", system-ui, sans-serif;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">JPG</text>
|
|
||||||
<text x="55" y="98" text-anchor="middle" style="fill:rgb(108, 112, 134);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", system-ui, sans-serif;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">2048 × 1365</text>
|
|
||||||
</g>
|
|
||||||
|
|
||||||
<!-- column labels -->
|
|
||||||
<text x="95" y="40" text-anchor="middle" style="fill:rgb(108, 112, 134);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", system-ui, sans-serif;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">SOURCES</text>
|
|
||||||
<text x="340" y="100" text-anchor="middle" style="fill:rgb(108, 112, 134);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", system-ui, sans-serif;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">TERMINAL</text>
|
|
||||||
<text x="585" y="40" text-anchor="middle" style="fill:rgb(108, 112, 134);stroke:none;color:rgb(0, 0, 0);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;opacity:1;font-family:"Anthropic Sans", system-ui, sans-serif;font-size:11px;font-weight:500;text-anchor:middle;dominant-baseline:auto">SORTIES</text>
|
|
||||||
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 38 KiB |
@@ -1,177 +0,0 @@
|
|||||||
La manipulation d'images depuis le terminal est une de ces choses qu'on apprend une fois et qu'on utilise pour toujours. Pas besoin de GIMP, pas besoin d'ouvrir quoi que ce soit : une commande, et c'est réglé.
|
|
||||||
|
|
||||||
Voici les outils que j'utilise concrètement, et dans quels cas.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## ImageMagick, le plus polyvalent
|
|
||||||
|
|
||||||
C'est l'outil de base. Il gère à peu près tous les formats qui existent, et la syntaxe est toujours la même. L'installation est classique :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo apt install imagemagick
|
|
||||||
```
|
|
||||||
|
|
||||||
Convertir un format :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg image.png
|
|
||||||
```
|
|
||||||
|
|
||||||
Redimensionner sans toucher au ratio, en posant une limite maximale :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -resize 1920x1920\> sortie.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Le `\>` est important — sans lui, ImageMagick agrandit aussi les petites images. Avec, il ne fait que réduire.
|
|
||||||
|
|
||||||
Préparer une image pour le web, en supprimant les métadonnées EXIF et en compressant :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -strip -quality 82 image_web.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Pour traiter un répertoire entier, `mogrify` fait le même boulot mais **modifie les fichiers en place** — toujours travailler sur une copie ou rediriger vers un autre dossier :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
mogrify -path ./web -resize 1600x1600\> -quality 85 *.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## libvips, pour les traitements lourds
|
|
||||||
|
|
||||||
Quand il y a des centaines de photos ou des images très lourdes (scans, RAW exportés), libvips est nettement plus rapide et utilise beaucoup moins de mémoire qu'ImageMagick. Il charge les images en flux au lieu de tout mettre en RAM.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo apt install libvips-tools
|
|
||||||
```
|
|
||||||
|
|
||||||
```bash
|
|
||||||
vips resize input.jpg output.jpg 0.5 # diviser la taille par 2
|
|
||||||
vips copy input.png output.webp # conversion de format
|
|
||||||
```
|
|
||||||
|
|
||||||
La syntaxe est moins intuitive qu'ImageMagick mais les gains sur des gros volumes sont sensibles.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## FFmpeg, pas que pour la vidéo
|
|
||||||
|
|
||||||
FFmpeg est surtout connu pour la vidéo, mais il convertit les images aussi — utile quand il est déjà installé et qu'on veut éviter une dépendance supplémentaire, ou pour extraire des frames depuis une vidéo :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
ffmpeg -i video.mp4 frame_%04d.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Redimensionner en conservant le ratio :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
ffmpeg -i input.jpg -vf scale=1280:-1 output.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Les métadonnées EXIF avec exiftool
|
|
||||||
|
|
||||||
Les appareils photo embarquent beaucoup d'informations dans les fichiers : coordonnées GPS, modèle d'appareil, réglages. Avant de publier une photo, il vaut mieux vérifier ce qu'elle contient :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo apt install libimage-exiftool-perl
|
|
||||||
|
|
||||||
exiftool photo.jpg # lire toutes les métadonnées
|
|
||||||
exiftool -all= photo.jpg # tout supprimer
|
|
||||||
exiftool -TagsFromFile src.jpg dst.jpg # copier les métadonnées d'une image à une autre
|
|
||||||
```
|
|
||||||
|
|
||||||
ImageMagick peut aussi supprimer les EXIF avec `-strip`, mais exiftool offre plus de contrôle quand on veut garder certaines balises et supprimer d'autres.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Fichiers RAW
|
|
||||||
|
|
||||||
Pour les CR2, NEF, ARW et autres formats propriétaires d'appareils photo, `darktable-cli` est la solution la plus propre :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
darktable-cli input.CR2 output.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Il applique les mêmes algorithmes de développement que l'interface graphique de darktable. `dcraw` est une alternative plus ancienne et plus bas niveau :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
dcraw -c photo.CR2 > photo.ppm
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## HEIC, le format Apple
|
|
||||||
|
|
||||||
Les iPhone exportent leurs photos en HEIC depuis iOS 11. Le format est compact, mais Linux ne le gère pas nativement — il faut convertir avant de pouvoir travailler dessus.
|
|
||||||
|
|
||||||
Le paquet `libheif-examples` fournit `heif-convert`, l'outil le plus direct :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo apt install libheif-examples
|
|
||||||
|
|
||||||
heif-convert photo.heic photo.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
ImageMagick peut aussi s'en charger si `libheif` est installé sur le système :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick photo.heic photo.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Pour vérifier que le support HEIC est bien disponible :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick identify -list format | grep -i heic
|
|
||||||
```
|
|
||||||
|
|
||||||
Conversion d'un dossier entier :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
for f in *.heic *.HEIC; do
|
|
||||||
heif-convert "$f" "${f%.*}.jpg"
|
|
||||||
done
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## En pratique
|
|
||||||
|
|
||||||
Conversion d'un dossier de PNG en WebP :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
for f in *.png; do
|
|
||||||
magick "$f" "${f%.png}.webp"
|
|
||||||
done
|
|
||||||
```
|
|
||||||
|
|
||||||
Pipeline complet pour publication web — redimensionnement, suppression EXIF, compression :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick input.jpg -resize 1600x1600\> -strip -quality 80 output.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Traitement récursif sur un arbre de dossiers :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
find . -name "*.jpg" -exec magick {} -resize 1200x1200\> {} \;
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Récap rapide
|
|
||||||
|
|
||||||
| Cas d'usage | Outil |
|
|
||||||
|---|---|
|
|
||||||
| Usage général | ImageMagick |
|
|
||||||
| Gros volumes / performance | libvips |
|
|
||||||
| Déjà dans le pipeline vidéo | FFmpeg |
|
|
||||||
| Fichiers RAW | darktable-cli |
|
|
||||||
| HEIC (iPhone) | heif-convert ou ImageMagick |
|
|
||||||
| Lecture / nettoyage EXIF | exiftool |
|
|
||||||
|
|
||||||
Pour 90 % des besoins courants, ImageMagick suffit. libvips vaut le coup d'être appris si on traite régulièrement des lots importants.
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
{
|
|
||||||
"uuid": "46f2f084-8dd8-497a-aef0-4728367ce753",
|
|
||||||
"slug": "convertir-des-images-en-ligne-de-commande-sous-linux",
|
|
||||||
"title": "Convertir des images en ligne de commande sous Linux",
|
|
||||||
"author": "cedric@abonnel.fr",
|
|
||||||
"published": true,
|
|
||||||
"published_at": "2025-12-28 14:54",
|
|
||||||
"created_at": "2025-12-28 14:54:41",
|
|
||||||
"updated_at": "2026-05-12 00:51:02",
|
|
||||||
"revisions": [
|
|
||||||
{
|
|
||||||
"n": 1,
|
|
||||||
"date": "2026-05-12 00:51:02",
|
|
||||||
"comment": "",
|
|
||||||
"title": "Convertir des images en ligne de commande sous Linux"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"cover": "cover.svg",
|
|
||||||
"files_meta": {
|
|
||||||
"illustration_conversion_images_cli_linux.svg": {
|
|
||||||
"author": "",
|
|
||||||
"source_url": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"external_links": [],
|
|
||||||
"seo_title": "",
|
|
||||||
"seo_description": "",
|
|
||||||
"og_image": "",
|
|
||||||
"category": "linux"
|
|
||||||
}
|
|
||||||
@@ -1,142 +0,0 @@
|
|||||||
La manipulation d'images depuis le terminal est une de ces choses qu'on apprend une fois et qu'on utilise pour toujours. Pas besoin de GIMP, pas besoin d'ouvrir quoi que ce soit : une commande, et c'est réglé.
|
|
||||||
|
|
||||||
Voici les outils que j'utilise concrètement, et dans quels cas.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## ImageMagick, le plus polyvalent
|
|
||||||
|
|
||||||
C'est l'outil de base. Il gère à peu près tous les formats qui existent, et la syntaxe est toujours la même. L'installation est classique :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo apt install imagemagick
|
|
||||||
```
|
|
||||||
|
|
||||||
Convertir un format :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg image.png
|
|
||||||
```
|
|
||||||
|
|
||||||
Redimensionner sans toucher au ratio, en posant une limite maximale :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -resize 1920x1920\> sortie.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Le `\>` est important — sans lui, ImageMagick agrandit aussi les petites images. Avec, il ne fait que réduire.
|
|
||||||
|
|
||||||
Préparer une image pour le web, en supprimant les métadonnées EXIF et en compressant :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick image.jpg -strip -quality 82 image_web.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Pour traiter un répertoire entier, `mogrify` fait le même boulot mais **modifie les fichiers en place** — toujours travailler sur une copie ou rediriger vers un autre dossier :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
mogrify -path ./web -resize 1600x1600\> -quality 85 *.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## libvips, pour les traitements lourds
|
|
||||||
|
|
||||||
Quand il y a des centaines de photos ou des images très lourdes (scans, RAW exportés), libvips est nettement plus rapide et utilise beaucoup moins de mémoire qu'ImageMagick. Il charge les images en flux au lieu de tout mettre en RAM.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo apt install libvips-tools
|
|
||||||
```
|
|
||||||
|
|
||||||
```bash
|
|
||||||
vips resize input.jpg output.jpg 0.5 # diviser la taille par 2
|
|
||||||
vips copy input.png output.webp # conversion de format
|
|
||||||
```
|
|
||||||
|
|
||||||
La syntaxe est moins intuitive qu'ImageMagick mais les gains sur des gros volumes sont sensibles.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## FFmpeg, pas que pour la vidéo
|
|
||||||
|
|
||||||
FFmpeg est surtout connu pour la vidéo, mais il convertit les images aussi — utile quand il est déjà installé et qu'on veut éviter une dépendance supplémentaire, ou pour extraire des frames depuis une vidéo :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
ffmpeg -i video.mp4 frame_%04d.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Redimensionner en conservant le ratio :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
ffmpeg -i input.jpg -vf scale=1280:-1 output.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Les métadonnées EXIF avec exiftool
|
|
||||||
|
|
||||||
Les appareils photo embarquent beaucoup d'informations dans les fichiers : coordonnées GPS, modèle d'appareil, réglages. Avant de publier une photo, il vaut mieux vérifier ce qu'elle contient :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo apt install libimage-exiftool-perl
|
|
||||||
|
|
||||||
exiftool photo.jpg # lire toutes les métadonnées
|
|
||||||
exiftool -all= photo.jpg # tout supprimer
|
|
||||||
exiftool -TagsFromFile src.jpg dst.jpg # copier les métadonnées d'une image à une autre
|
|
||||||
```
|
|
||||||
|
|
||||||
ImageMagick peut aussi supprimer les EXIF avec `-strip`, mais exiftool offre plus de contrôle quand on veut garder certaines balises et supprimer d'autres.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Fichiers RAW
|
|
||||||
|
|
||||||
Pour les CR2, NEF, ARW et autres formats propriétaires d'appareils photo, `darktable-cli` est la solution la plus propre :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
darktable-cli input.CR2 output.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Il applique les mêmes algorithmes de développement que l'interface graphique de darktable. `dcraw` est une alternative plus ancienne et plus bas niveau :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
dcraw -c photo.CR2 > photo.ppm
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## En pratique
|
|
||||||
|
|
||||||
Conversion d'un dossier de PNG en WebP :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
for f in *.png; do
|
|
||||||
magick "$f" "${f%.png}.webp"
|
|
||||||
done
|
|
||||||
```
|
|
||||||
|
|
||||||
Pipeline complet pour publication web — redimensionnement, suppression EXIF, compression :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
magick input.jpg -resize 1600x1600\> -strip -quality 80 output.jpg
|
|
||||||
```
|
|
||||||
|
|
||||||
Traitement récursif sur un arbre de dossiers :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
find . -name "*.jpg" -exec magick {} -resize 1200x1200\> {} \;
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Récap rapide
|
|
||||||
|
|
||||||
| Cas d'usage | Outil |
|
|
||||||
|---|---|
|
|
||||||
| Usage général | ImageMagick |
|
|
||||||
| Gros volumes / performance | libvips |
|
|
||||||
| Déjà dans le pipeline vidéo | FFmpeg |
|
|
||||||
| Fichiers RAW | darktable-cli |
|
|
||||||
| Lecture / nettoyage EXIF | exiftool |
|
|
||||||
|
|
||||||
Pour 90 % des besoins courants, ImageMagick suffit. libvips vaut le coup d'être appris si on traite régulièrement des lots importants.
|
|
||||||
@@ -1,68 +0,0 @@
|
|||||||
Alors que la 5G peine encore à s’imposer partout, la recherche sur la **6G** est déjà bien avancée. Les laboratoires, opérateurs et gouvernements annoncent des innovations spectaculaires : débits colossaux, latence quasi nulle et intégration massive de l’intelligence artificielle dans le réseau. Mais derrière le buzz médiatique se cachent de **grandes incertitudes techniques et économiques**.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Promesses technologiques
|
|
||||||
|
|
||||||
* **Débits théoriques** : jusqu’à **1 Tbit/s** dans des conditions expérimentales (vs 10 Gbit/s max pour la 5G).
|
|
||||||
* **Latence ultra-faible** : <1 ms, visant les applications critiques comme chirurgie à distance, véhicules autonomes coordonnés en temps réel et réalité immersive totale.
|
|
||||||
* **Fréquences** : exploitation des **ondes térahertz (THz)**, beaucoup plus hautes que les mmWave 5G, offrant un spectre presque illimité mais avec des contraintes sévères de portée et pénétration.
|
|
||||||
* **Intelligence embarquée** : réseaux capables d’auto-optimisation grâce à l’IA et au machine learning pour gérer la congestion, l’énergie et les allocations de spectre en temps réel.
|
|
||||||
* **Intégration multi-domaines** : fusion des communications terrestres, satellites, drones et IoT pour créer un réseau ubiquitaire.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Défis techniques
|
|
||||||
|
|
||||||
1. **Propagation et portée** : les ondes THz sont extrêmement sensibles aux obstacles et à l’humidité, nécessitant une densité d’antennes inimaginable à l’échelle mondiale.
|
|
||||||
2. **Consommation énergétique** : déployer des antennes THz ultra-puissantes et gérer des réseaux IA en temps réel risque d’augmenter considérablement la consommation électrique.
|
|
||||||
3. **Standardisation complexe** : contrairement à la 5G qui a hérité d’une partie de l’infrastructure 4G, la 6G nécessitera des investissements massifs et de nouveaux protocoles.
|
|
||||||
4. **Coût et adoption** : le coût pour les opérateurs et la nécessité de renouveler les équipements pour les utilisateurs seront un frein majeur, comme ce fut le cas pour la 3G et la 5G.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Usages envisagés
|
|
||||||
|
|
||||||
* **Réalité mixte et immersive** : AR/VR ultra-réaliste, métavers en temps réel, téléprésence totale.
|
|
||||||
* **Téléchirurgie et véhicules autonomes coordonnés** : applications critiques nécessitant une latence quasi nulle.
|
|
||||||
* **IoT massif** : milliards d’objets connectés, capteurs intelligents, villes et infrastructures “autonomes”.
|
|
||||||
* **Communication spatiale et aérienne** : drones, satellites et aéronefs connectés en temps réel.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Critique et perspective
|
|
||||||
|
|
||||||
Même si les promesses de la 6G sont spectaculaires, plusieurs points restent préoccupants :
|
|
||||||
|
|
||||||
* La **6G est encore largement théorique** : aucune application grand public n’est prévue avant 2030.
|
|
||||||
* Comme pour la 5G, les opérateurs pourraient utiliser la 6G pour **inciter la migration depuis la 5G**, en bridant certaines fonctionnalités sur la génération précédente.
|
|
||||||
* Le discours marketing risque de créer une **confusion encore plus grande** pour les utilisateurs : débits maximaux, latence minimale et réseaux intelligents seront très localisés et expérimentaux, bien loin d’une couverture nationale.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Schéma suggéré : évolution 3G → 4G → 5G → 6G
|
|
||||||
|
|
||||||
```mermaid
|
|
||||||
flowchart LR
|
|
||||||
A[3G] --> B[4G]
|
|
||||||
B --> C[5G]
|
|
||||||
C --> D[6G]
|
|
||||||
|
|
||||||
subgraph Débits
|
|
||||||
A1[384 kbit/s → 42 Mbit/s] --> B1[100 Mbit/s → 1 Gbit/s] --> C1[100 Mbit/s → 10 Gbit/s] --> D1[100 Gbit/s → 1 Tbit/s]
|
|
||||||
end
|
|
||||||
|
|
||||||
subgraph Latence
|
|
||||||
A2[150–200 ms] --> B2[30–50 ms] --> C2[1–10 ms] --> D2[<1 ms]
|
|
||||||
end
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
La 6G s’annonce comme **l’avenir des réseaux mobiles**, mais elle illustre encore la stratégie récurrente des opérateurs :
|
|
||||||
|
|
||||||
1. Créer une promesse technologique spectaculaire.
|
|
||||||
2. Déployer progressivement pour ne pas perturber l’infrastructure existante.
|
|
||||||
3. Inciter subtilement les utilisateurs à migrer vers la nouvelle génération, souvent via des limitations sur les générations précédentes.
|
|
||||||
|
|
||||||
> Comme pour la 3G bridée puis la 4G et la 5G, la 6G risque d’être autant un **outil de marketing et de stratégie économique** qu’une véritable révolution immédiate pour le consommateur.
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"uuid": "4f193d70-d236-42d7-aedb-58631cd15002",
|
|
||||||
"slug": "la-6g-au-dela-de-la-5g-promesses-et-interrogations",
|
|
||||||
"title": "La 6G : au-delà de la 5G, promesses et interrogations",
|
|
||||||
"author": "cedric@abonnel.fr",
|
|
||||||
"published": true,
|
|
||||||
"published_at": "2025-11-05 08:46:51",
|
|
||||||
"created_at": "2025-11-05 08:46:51",
|
|
||||||
"updated_at": "2025-11-05 08:46:51",
|
|
||||||
"revisions": [],
|
|
||||||
"cover": "cover.jpg",
|
|
||||||
"category": "télécom"
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 48 KiB |
|
Before Width: | Height: | Size: 141 KiB |
|
Before Width: | Height: | Size: 67 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 86 KiB |
@@ -1,87 +0,0 @@
|
|||||||
Un attentat, un séisme, un match du Stade de France, une grande panne d'électricité. Dans ces moments-là, des centaines de milliers de gens dégainent leur téléphone au même instant. Le réseau mobile est dimensionné pour un usage moyen, pas pour un pic massif simultané, et il devrait théoriquement s'effondrer. La plupart du temps, il tient. Pas parfaitement, pas pour tout le monde, mais il tient — et surtout, les appels d'urgence continuent de passer. C'est le résultat d'une série de mécanismes empilés depuis les années 1990, que la 4G a affinés et que la 5G a élargis. Cet article les passe en revue, et termine sur une question qu'on me pose souvent : est-ce que mon forfait à 50 € me donne une place prioritaire dans cette file d'attente ?
|
|
||||||
|
|
||||||
## Trois questions, pas une
|
|
||||||
|
|
||||||
Quand une cellule commence à chauffer, l'opérateur doit répondre à trois questions distinctes. Qui a le droit de se connecter ? Une fois connecté, qui passe en premier ? Et quels services doivent absolument continuer à fonctionner, quoi qu'il arrive ?
|
|
||||||
|
|
||||||
La 2G ne savait répondre qu'à la première. Elle filtrait à l'entrée et basta. La 4G a ajouté la deuxième : une fois admis sur le réseau, votre trafic est traité différemment selon son importance. La 5G ajoute la troisième : elle peut créer des réseaux virtuels parallèles dont certains sont réservés à des usages critiques, totalement isolés des autres.
|
|
||||||
|
|
||||||
## Le filtrage à l'entrée
|
|
||||||
|
|
||||||
Chaque carte SIM porte un numéro de classe d'accès, hérité du GSM, entre 0 et 15. Les classes 0 à 9 couvrent le grand public — autrement dit nous tous. Les classes 11 à 15 sont réservées : services de secours, autorités publiques, personnel opérateur, usages militaires selon les pays.
|
|
||||||
|
|
||||||
Quand une cellule est surchargée, l'eNodeB (la station de base 4G) diffuse une consigne aux téléphones du secteur : « les classes 0 à 9, vous attendez ». C'est l'**Access Class Barring**. Concrètement, votre téléphone reçoit ce message et bloque lui-même votre tentative d'appel ou de connexion data, sans même envoyer la demande à la station. C'est élégant parce que ça soulage la station avant même qu'elle ne soit sollicitée. Les classes prioritaires, elles, passent sans encombre.
|
|
||||||
|
|
||||||
Une variante plus dure, l'**Extended Access Barring**, vise les objets connectés et les usages non urgents. Quand une vraie crise se déclare, l'opérateur peut couper les compteurs intelligents, les alarmes domestiques et autres équipements bavards pour préserver la bande passante humaine.
|
|
||||||
|
|
||||||
En 5G, ce mécanisme a été refondu sous le nom d'**UAC** — *Unified Access Control*, introduit dans la Release 15 du 3GPP. UAC unifie dans un seul cadre ce qui était auparavant éparpillé entre ACB, EAB et d'autres dispositifs spécifiques. Il repose sur deux notions complémentaires. Les *Access Identities* identifient qui vous êtes : utilisateur lambda, abonné à un service prioritaire type MPS ou MCS, personnel d'urgence, agent opérateur. Les *Access Categories* identifient ce que vous essayez de faire : appel d'urgence, connexion data normale, SMS, mise à jour de localisation. La combinaison des deux détermine si votre demande passe ou pas. La granularité gagnée par rapport à la 4G est réelle : on peut bloquer un type d'action précis pour un type d'utilisateur précis, par exemple « les abonnés grand public ne peuvent plus initier de nouveaux appels data, mais les SMS et les appels voix continuent ».
|
|
||||||
|
|
||||||
## La priorité une fois connecté
|
|
||||||
|
|
||||||
Là où la 4G a vraiment innové, c'est en introduisant le **QCI** — *QoS Class Identifier*. Chaque flux de données qui transite sur le réseau se voit attribuer un numéro entre 1 et 9 (avec quelques valeurs supplémentaires pour des cas spéciaux) qui dit à l'infrastructure comment le traiter.
|
|
||||||
|
|
||||||
| Usage | QCI | Traitement |
|
|
||||||
|---|---|---|
|
|
||||||
| Appel VoLTE (voix sur LTE) | 1 | Latence minimale, débit garanti |
|
|
||||||
| Visioconférence | 2 | Débit garanti |
|
|
||||||
| Signalisation réseau | 5 | Très haute priorité |
|
|
||||||
| Streaming vidéo | 6 ou 8 | Best effort prioritaire |
|
|
||||||
| Web et internet général | 9 | Best effort standard |
|
|
||||||
|
|
||||||
Quand la cellule est encombrée, le routeur sait quoi sacrifier en premier. YouTube va ralentir, les pages web vont mettre du temps à charger, mais l'appel téléphonique de votre voisin reste audible. C'est un compromis assumé : on dégrade volontairement les usages secondaires pour préserver les usages critiques.
|
|
||||||
|
|
||||||
La 5G a transposé ce mécanisme sous le nom de **5QI** (*5G QoS Identifier*) avec davantage de niveaux et une meilleure prise en compte des cas que la 4G gérait mal — notamment les services à très basse latence pour les usines connectées ou la voiture autonome. La voix d'urgence garde son sommet, les données critiques industrielles s'intercalent juste après, le streaming et le web restent en bas de la pile.
|
|
||||||
|
|
||||||
## L'isolation par tranches : le network slicing
|
|
||||||
|
|
||||||
C'est l'apport majeur de la 5G en matière de gestion de crise. Au lieu de partager une seule infrastructure entre tous les usages, on peut maintenant la découper logiciellement en tranches — des *slices* — qui se comportent comme autant de réseaux indépendants, alors qu'ils tournent sur les mêmes antennes et les mêmes câbles.
|
|
||||||
|
|
||||||
Un opérateur peut par exemple maintenir une tranche pour le grand public avec ses millions d'abonnés et son trafic massif, une autre pour les services d'urgence dimensionnée pour rester fluide même quand le reste sature, une troisième pour les objets connectés industriels avec des garanties de latence, et une quatrième pour des opérateurs critiques type SNCF, EDF ou hôpitaux. Chaque tranche a ses propres règles d'admission, ses propres priorités, ses propres garanties de performance. Si la tranche grand public est totalement saturée, celle des secours ne le sait même pas.
|
|
||||||
|
|
||||||
Cette isolation est ce qui distingue le plus fondamentalement la 5G des générations précédentes. Avant, tout le monde se battait pour les mêmes ressources, avec juste des priorités différentes pour départager. Maintenant, certaines ressources sont retirées du combat dès le départ.
|
|
||||||
|
|
||||||
## Récapitulatif
|
|
||||||
|
|
||||||
| Génération | Ce qui est contrôlé | Comment |
|
|
||||||
|---|---|---|
|
|
||||||
| 2G | L'accès au réseau | Classes d'accès 0-15 |
|
|
||||||
| 4G | L'accès + la priorité du trafic | ACB / EAB + QCI |
|
|
||||||
| 5G | L'accès + la priorité + l'isolation des services | UAC + 5QI + network slicing |
|
|
||||||
|
|
||||||
Tous ces mécanismes restent invisibles tant que tout va bien. Vous ne savez pas qu'ils existent. Vous découvrez leur existence le jour où votre voisin n'arrive plus à charger ses mails alors que les pompiers, eux, continuent de communiquer normalement. Ce jour-là, ce n'est pas de la magie. C'est trente ans d'ingénierie radio qui ont anticipé que ça arriverait.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Et mon forfait premium, alors ?
|
|
||||||
|
|
||||||
Question logique à ce stade. Si le réseau sait techniquement prioriser certains flux par rapport à d'autres, qu'est-ce qui empêche un opérateur de faire passer ses abonnés à 50 € devant ceux à 10 € quand les antennes saturent ? La réponse honnête commence par un aveu : techniquement, rien. L'outil existe, il s'appelle **Quality of Service** (QoS), c'est exactement le mécanisme qu'on vient de décrire. Si demain Orange ou SFR voulaient créer une voie rapide pour leurs abonnés haut de gamme, ils auraient les outils dans la boîte. Pourtant, ils ne le font pas. Pour quatre raisons.
|
|
||||||
|
|
||||||
### La loi européenne l'interdit
|
|
||||||
|
|
||||||
Le règlement **(UE) 2015/2120**, dit « règlement internet ouvert », oblige les opérateurs à traiter tout le trafic de la même façon, sans discrimination liée à l'expéditeur, au destinataire, au contenu ou à l'application. Il a fêté ses dix ans en novembre 2025, et l'ARCEP a profité de l'anniversaire pour rappeler que c'est l'un des piliers du modèle numérique européen. Les sanctions sont sérieuses : jusqu'à **3 % du chiffre d'affaires** de l'opérateur fautif. Un opérateur français qui annoncerait demain « avec notre forfait Premium, vous passez devant les autres » se retrouverait devant l'ARCEP dans la semaine.
|
|
||||||
|
|
||||||
Le règlement laisse quelques portes ouvertes pour les services dits « spécialisés » qui ont besoin d'une qualité garantie — téléchirurgie, voiture connectée. Mais ces exceptions sont étroitement encadrées et ne couvrent absolument pas le confort d'un client haut de gamme qui voudrait charger son Instagram plus vite à 19h.
|
|
||||||
|
|
||||||
Aux États-Unis, l'histoire est différente. La FCC a tenté de restaurer la neutralité du net en 2024, mais en janvier 2025 la cour d'appel du sixième circuit a invalidé la décision, jugeant que la FCC n'avait pas l'autorité légale pour reclasser le haut débit comme service public. Avec l'arrivée de Brendan Carr à la tête de la FCC, ouvertement opposé à la neutralité du net, il n'y a aujourd'hui plus de règle fédérale outre-Atlantique. Quelques États (Californie, Washington, New York, Oregon) ont leurs propres lois qui maintiennent le principe, mais à l'échelle du pays, les opérateurs américains pourraient légalement faire ce que leurs homologues européens n'ont pas le droit de faire. Pourtant, ils ne le font pas ouvertement non plus, et la raison renvoie aux trois points suivants.
|
|
||||||
|
|
||||||
### C'est commercialement intenable
|
|
||||||
|
|
||||||
Imagine la publicité : « Forfait Premium à 50 € — passez devant les pauvres pendant les heures de pointe ». Le slogan ne se vend pas. Les directions marketing savent que dire à la moitié de leurs clients qu'ils sont des citoyens de seconde zone du réseau est le plus court chemin vers une crise de réputation. C'est pour ça qu'on vous vend « plus de Go », « 5G ultra rapide », « roaming inclus dans 110 pays » — des promesses qui sonnent positivement sans jamais dire à personne qu'il est désavantagé.
|
|
||||||
|
|
||||||
### L'effet boule de neige serait toxique
|
|
||||||
|
|
||||||
Imagine que ça se mette quand même en place. Les riches passent devant. Les antennes restent saturées pour les autres, qui se mettent à payer plus pour échapper à la saturation, ce qui sature encore plus les bas forfaits, ce qui pousse encore plus de gens à monter en gamme. Au bout de cinq ans, on a un réseau à deux vitesses où les forfaits modestes deviennent quasi inutilisables aux heures critiques, et où la connexion mobile correcte devient un service de luxe. Ce n'est plus un service de télécommunications, c'est un système de classes.
|
|
||||||
|
|
||||||
C'est exactement ce que la neutralité du net cherche à empêcher. Pas par idéologie, mais parce qu'on a déjà vu où mène ce genre de spirale dans les pays où elle n'est pas protégée. Certains opérateurs proposent par exemple des forfaits où Facebook et WhatsApp sont gratuits mais où le reste est payant, ce qui revient à dire que le bon internet est celui que l'opérateur a choisi pour vous. Ce n'est plus tout à fait le même service.
|
|
||||||
|
|
||||||
### Ça ne résoudrait rien
|
|
||||||
|
|
||||||
Quand un réseau sature, ce n'est pas un problème de répartition entre utilisateurs, c'est un problème de **capacité totale**. Faire passer Pierre avant Paul ne crée pas un seul bit de bande passante supplémentaire. Ça déplace juste le problème de l'un vers l'autre. La vraie solution, quand une cellule sature trop souvent, c'est d'installer plus d'antennes, de densifier le réseau, de basculer sur une fréquence plus performante ou de passer à la génération suivante. C'est cher, c'est long, ça implique des autorisations administratives et des négociations foncières, mais c'est la seule réponse qui tient la route. Prioriser, c'est rapide, mais ça repousse le mur, ça ne le déplace pas.
|
|
||||||
|
|
||||||
C'est comme si on proposait une voie réservée aux Mercedes sur l'A7 un samedi de chassé-croisé. Techniquement, on peut peindre la ligne au sol et installer les panneaux dans la matinée. Mais cette voie ne réduit pas le bouchon, elle le concentre sur les voies restantes ; elle écorne le principe d'égalité d'accès à l'infrastructure publique ; et elle ne change rien au problème de fond, qui est qu'il y a trop de voitures pour la route disponible. La vraie solution reste la même qu'avant : élargir l'autoroute, ou convaincre une partie des gens de prendre le train.
|
|
||||||
|
|
||||||
### Le caveat 5G
|
|
||||||
|
|
||||||
Une nuance honnête pour finir. Le *network slicing* complique le débat juridique. Un opérateur peut créer des tranches de réseau avec des qualités différenciées en toute légalité quand il s'agit d'usages spécialisés — santé, industrie, transports. La question qui agite régulateurs et juristes depuis plusieurs années est de savoir où finit le service spécialisé légitime et où commence le contournement déguisé de la neutralité du net. L'ARCEP a ouvert ce chantier, et c'est probablement là, plus que dans une revanche commerciale brutale sur les forfaits premium, que se jouera la prochaine bataille.
|
|
||||||
|
|
||||||
Mais pour répondre simplement à la question : non, votre forfait à 50 € ne vous donne pas la priorité réseau sur celui de votre voisin à 10 €. Il vous donne plus de data, parfois un meilleur débit théorique, des options en plus. Pas une place dans la file.
|
|
||||||
@@ -1,162 +0,0 @@
|
|||||||
{
|
|
||||||
"uuid": "4f443bcb-b0d4-47f8-837d-61627e6c94f2",
|
|
||||||
"slug": "priorites-et-acces-au-reseau-en-4g-et-5g",
|
|
||||||
"title": "Pourquoi le réseau mobile ne s'effondre pas le jour où tout le monde téléphone en même temps",
|
|
||||||
"author": "cedric@abonnel.fr",
|
|
||||||
"published": true,
|
|
||||||
"published_at": "2026-01-06 22:21",
|
|
||||||
"created_at": "2026-01-06 22:21:04",
|
|
||||||
"updated_at": "2026-05-11 23:40:18",
|
|
||||||
"revisions": [
|
|
||||||
{
|
|
||||||
"n": 1,
|
|
||||||
"date": "2026-05-11 23:06:50",
|
|
||||||
"comment": "",
|
|
||||||
"title": "Comment les réseaux mobiles tiennent debout quand tout le monde téléphone en même temps"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"n": 2,
|
|
||||||
"date": "2026-05-11 23:09:07",
|
|
||||||
"comment": "",
|
|
||||||
"title": "Comment les réseaux mobiles tiennent debout quand tout le monde téléphone en même temps"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"n": 3,
|
|
||||||
"date": "2026-05-11 23:11:33",
|
|
||||||
"comment": "",
|
|
||||||
"title": "Comment les réseaux mobiles tiennent debout quand tout le monde téléphone en même temps"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"n": 4,
|
|
||||||
"date": "2026-05-11 23:14:26",
|
|
||||||
"comment": "",
|
|
||||||
"title": "Comment les réseaux mobiles tiennent debout quand tout le monde téléphone en même temps"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"n": 5,
|
|
||||||
"date": "2026-05-11 23:16:33",
|
|
||||||
"comment": "",
|
|
||||||
"title": "Comment les réseaux mobiles tiennent debout quand tout le monde téléphone en même temps"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"n": 6,
|
|
||||||
"date": "2026-05-11 23:16:56",
|
|
||||||
"comment": "",
|
|
||||||
"title": "Comment les réseaux mobiles tiennent debout quand tout le monde téléphone en même temps"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"n": 7,
|
|
||||||
"date": "2026-05-11 23:40:18",
|
|
||||||
"comment": "",
|
|
||||||
"title": "Pourquoi le réseau mobile ne s'effondre pas le jour où tout le monde téléphone en même temps"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"cover": "cover.jpg",
|
|
||||||
"files_meta": {
|
|
||||||
"_preview.png": {
|
|
||||||
"author": "",
|
|
||||||
"source_url": ""
|
|
||||||
},
|
|
||||||
"_thumb_dc5413a86e9c042a-22419.jpg": {
|
|
||||||
"author": "",
|
|
||||||
"source_url": ""
|
|
||||||
},
|
|
||||||
"_thumb_945482b26e8a76ab-49498.png": {
|
|
||||||
"author": "",
|
|
||||||
"source_url": ""
|
|
||||||
},
|
|
||||||
"_thumb_a1080cd703289e6b-144512.png": {
|
|
||||||
"author": "",
|
|
||||||
"source_url": ""
|
|
||||||
},
|
|
||||||
"_thumb_cae639a42d79414f-68314.jpg": {
|
|
||||||
"author": "",
|
|
||||||
"source_url": ""
|
|
||||||
},
|
|
||||||
"03bcf841dafcc9f4-87771.jpg": {
|
|
||||||
"author": "",
|
|
||||||
"source_url": "https://www.ariase.com/uploads/media/124b4e1790cf20b8fed653884ef1eb46d235922f.jpeg"
|
|
||||||
},
|
|
||||||
"cover.jpg": {
|
|
||||||
"author": "",
|
|
||||||
"source_url": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"external_links": [
|
|
||||||
{
|
|
||||||
"url": "https://arxiv.org/pdf/2012.05520",
|
|
||||||
"name": "An Overview of 5G System Accessibility Differentiation and Control",
|
|
||||||
"added_at": "2026-05-11 23:04:53",
|
|
||||||
"author": "-",
|
|
||||||
"meta": {
|
|
||||||
"mime": "application/pdf",
|
|
||||||
"size": 717772,
|
|
||||||
"description": "IEEE Transactions on Magnetics",
|
|
||||||
"date": "2021-09-28 10:31:29+02:00",
|
|
||||||
"subject": "IEEE Transactions on Magnetics",
|
|
||||||
"creator": "-",
|
|
||||||
"producer": "Microsoft® Word for Microsoft 365",
|
|
||||||
"pages": 9,
|
|
||||||
"pdf_version": "PDF 1.7",
|
|
||||||
"page_size": "Letter (216×279 mm)"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "https://www.techplayon.com/5g-nr-cell-access-control/",
|
|
||||||
"name": "5G NR Cell Access Control - Techplayon - RRC Signalling",
|
|
||||||
"added_at": "2026-05-11 23:05:34",
|
|
||||||
"author": "Author",
|
|
||||||
"meta": {
|
|
||||||
"mime": "text/html",
|
|
||||||
"size": 79963,
|
|
||||||
"description": "Access Control barring refers to a traffic congestion control mechanism to secure and ensure the success of critical communications",
|
|
||||||
"og_image": "/file?uuid=4f443bcb-b0d4-47f8-837d-61627e6c94f2&name=_thumb_dc5413a86e9c042a-22419.jpg",
|
|
||||||
"site_name": "Techplayon",
|
|
||||||
"og_type": "article",
|
|
||||||
"language": "en_US",
|
|
||||||
"date": "2019-12-21T17:44:54+00:00",
|
|
||||||
"canonical": "https://www.techplayon.com/5g-nr-cell-access-control/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "https://simnovus.com/unified-access-control-uac-the-gatekeeper-of-5g-networks/",
|
|
||||||
"name": "Unified Access Control (UAC): The Gatekeeper of 5G Networks - Simnovus",
|
|
||||||
"added_at": "2026-05-11 23:11:58",
|
|
||||||
"meta": {
|
|
||||||
"mime": "text/html",
|
|
||||||
"size": 124603,
|
|
||||||
"description": "Unified Access Control (UAC) is a fundamental component of 5G networks that governs access to network resources. It replaces the traditional access control",
|
|
||||||
"og_image": "/file?uuid=4f443bcb-b0d4-47f8-837d-61627e6c94f2&name=_thumb_cae639a42d79414f-68314.jpg",
|
|
||||||
"site_name": "Simnovus",
|
|
||||||
"og_type": "article",
|
|
||||||
"language": "en_US",
|
|
||||||
"date": "2024-08-14T10:58:09+05:30",
|
|
||||||
"canonical": "https://simnovus.com/unified-access-control-uac-the-gatekeeper-of-5g-networks/"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "https://www.sharetechnote.com/html/5G/5G_UAC.html",
|
|
||||||
"name": "5G | ShareTechnote",
|
|
||||||
"added_at": "2026-05-11 23:12:20",
|
|
||||||
"meta": {
|
|
||||||
"mime": "text/html",
|
|
||||||
"size": 28707,
|
|
||||||
"og_image": "/file?uuid=4f443bcb-b0d4-47f8-837d-61627e6c94f2&name=_thumb_a1080cd703289e6b-144512.png"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "https://www.telecomgurukul.com/post/advanced-access-control-mechanisms-in-lte-and-5g-nr-networks",
|
|
||||||
"name": "Advanced Access Control Mechanisms in LTE and 5G NR Networks",
|
|
||||||
"added_at": "2026-05-11 23:14:17",
|
|
||||||
"meta": {
|
|
||||||
"mime": "text/html",
|
|
||||||
"size": 1344890,
|
|
||||||
"og_image": "/file?uuid=4f443bcb-b0d4-47f8-837d-61627e6c94f2&name=_thumb_945482b26e8a76ab-49498.png"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"seo_title": "",
|
|
||||||
"seo_description": "",
|
|
||||||
"og_image": "",
|
|
||||||
"category": "télécom"
|
|
||||||
}
|
|
||||||
@@ -1,80 +0,0 @@
|
|||||||
Un attentat, un séisme, un match du Stade de France, une grande panne d'électricité. Dans ces moments-là, des centaines de milliers de gens dégainent leur téléphone en même temps. Le réseau mobile, qui est dimensionné pour un usage moyen et pas pour un pic massif simultané, devrait théoriquement s'effondrer. La plupart du temps, il tient. Pas parfaitement, pas pour tout le monde, mais il tient — et surtout, les appels d'urgence continuent de passer. C'est le résultat d'une série de mécanismes empilés depuis les années 1990, et que la 4G et la 5G ont raffinés. Voici comment ça marche, sans le jargon mais sans non plus mentir sur ce qui se passe vraiment.
|
|
||||||
|
|
||||||
## Trois questions, pas une
|
|
||||||
|
|
||||||
Dans un réseau cellulaire moderne, l'opérateur doit répondre à trois questions distinctes quand la cellule commence à chauffer. Qui a le droit de se connecter ? Une fois connecté, qui passe en premier ? Et quels services doivent absolument continuer à fonctionner, quoi qu'il arrive ?
|
|
||||||
|
|
||||||
La 2G ne savait répondre qu'à la première. Elle filtrait à l'entrée et basta. La 4G a ajouté la deuxième : une fois admis sur le réseau, votre trafic n'est plus traité de la même manière selon son importance. La 5G ajoute la troisième : elle peut littéralement créer des réseaux virtuels parallèles, dont certains sont réservés à des usages critiques et isolés des autres.
|
|
||||||
|
|
||||||
## En 4G : filtrer puis prioriser
|
|
||||||
|
|
||||||
### Filtrer à l'entrée
|
|
||||||
|
|
||||||
Chaque carte SIM porte un numéro de classe d'accès, hérité du GSM, entre 0 et 15. Les classes 0 à 9 couvrent le grand public — autrement dit nous tous. Les classes 11 à 15 sont réservées : services de secours, autorités publiques, personnel opérateur, usages militaires selon les pays.
|
|
||||||
|
|
||||||
Quand une cellule est surchargée, l'eNodeB (la station de base 4G) diffuse une consigne aux téléphones du secteur : « les classes 0 à 9, vous attendez ». C'est l'**Access Class Barring**. Concrètement, votre téléphone reçoit ce message et bloque lui-même votre tentative d'appel ou de connexion data, sans même envoyer la demande à la station. C'est élégant parce que ça soulage la station avant même qu'elle ne soit sollicitée. Les classes prioritaires, elles, passent sans encombre.
|
|
||||||
|
|
||||||
Il existe une variante plus dure appelée **Extended Access Barring**, conçue pour les objets connectés et les usages non urgents. Quand une vraie crise se déclare, l'opérateur peut couper les compteurs intelligents, les alarmes domestiques et autres équipements bavards pour préserver la bande passante humaine.
|
|
||||||
|
|
||||||
### Prioriser une fois connecté
|
|
||||||
|
|
||||||
Là où la 4G a vraiment innové, c'est en introduisant le **QCI** — *QoS Class Identifier*. Chaque flux de données qui transite sur le réseau se voit attribuer un numéro entre 1 et 9 (et quelques valeurs au-dessus pour des cas spéciaux) qui dit à l'infrastructure comment le traiter.
|
|
||||||
|
|
||||||
Quelques exemples concrets :
|
|
||||||
|
|
||||||
| Usage | QCI | Traitement |
|
|
||||||
|---|---|---|
|
|
||||||
| Appel VoLTE (voix sur LTE) | 1 | Latence minimale, débit garanti |
|
|
||||||
| Signalisation réseau | 5 | Très haute priorité |
|
|
||||||
| Visioconférence | 2 | Débit garanti |
|
|
||||||
| Streaming vidéo | 6 ou 8 | Best effort prioritaire |
|
|
||||||
| Web et internet général | 9 | Best effort standard |
|
|
||||||
|
|
||||||
Quand la cellule est encombrée, le routeur sait quoi sacrifier en premier. YouTube va ralentir, les pages web vont mettre du temps à charger, mais l'appel téléphonique de votre voisin reste audible. C'est un compromis assumé : on dégrade volontairement les usages secondaires pour préserver les usages critiques.
|
|
||||||
|
|
||||||
## En 5G : ajouter le découpage
|
|
||||||
|
|
||||||
### Un mécanisme d'accès refondu
|
|
||||||
|
|
||||||
La 5G garde l'esprit du barring mais change son nom et sa mécanique. L'ancien Access Class Barring est remplacé par l'**UAC** — *Unified Access Control*, introduit dans la Release 15 du 3GPP. L'idée est d'unifier dans un seul cadre ce qui était auparavant éparpillé entre ACB, EAB et d'autres mécanismes spécifiques.
|
|
||||||
|
|
||||||
UAC repose sur deux notions. Les **Access Identities** identifient qui vous êtes (utilisateur lambda, abonné à un service prioritaire type MPS ou MCS, personnel d'urgence, agent opérateur). Les **Access Categories** identifient ce que vous essayez de faire (appel d'urgence, connexion data normale, SMS, mise à jour de localisation). La combinaison des deux détermine si votre demande passe ou pas.
|
|
||||||
|
|
||||||
Ce qui change vraiment, c'est la granularité. En 4G, on bloquait une classe entière. En 5G, on peut bloquer un type d'action précis pour un type d'utilisateur précis — par exemple « les abonnés grand public ne peuvent plus initier de nouveaux appels data, mais les SMS et les appels voix continuent ». L'opérateur peut aussi définir ses propres catégories d'accès, calées sur sa politique commerciale et technique.
|
|
||||||
|
|
||||||
### Le QCI devient le 5QI
|
|
||||||
|
|
||||||
Même logique qu'en 4G mais avec plus de finesse. Le **5QI** (*5G QoS Identifier*) propose davantage de niveaux et tient compte de cas que la 4G gérait mal, notamment les services à très basse latence pour les usines connectées ou la voiture autonome. La voix d'urgence garde son sommet, les données critiques industrielles s'intercalent juste après, le streaming et le web restent en bas de la pile.
|
|
||||||
|
|
||||||
### La vraie nouveauté : le network slicing
|
|
||||||
|
|
||||||
C'est l'apport majeur de la 5G en termes de gestion de crise. Au lieu de partager une seule infrastructure entre tous les usages, on peut maintenant la **découper logiciellement en tranches** — des *slices* — qui se comportent comme autant de réseaux indépendants, alors qu'ils tournent sur les mêmes antennes et les mêmes câbles.
|
|
||||||
|
|
||||||
Un opérateur peut par exemple maintenir :
|
|
||||||
|
|
||||||
- une tranche pour le grand public, avec ses millions d'abonnés et son trafic massif,
|
|
||||||
- une tranche pour les services d'urgence et de sécurité, dimensionnée pour rester fluide même quand le reste sature,
|
|
||||||
- une tranche pour les objets connectés industriels, avec des garanties de latence,
|
|
||||||
- une tranche pour les opérateurs critiques type SNCF, EDF, hôpitaux.
|
|
||||||
|
|
||||||
Chaque tranche a ses propres règles d'admission, ses propres priorités, ses propres garanties de performance. Si la tranche grand public est totalement saturée, celle des secours ne le sait même pas. Cette isolation est ce qui distingue le plus fondamentalement la 5G des générations précédentes, où tout le monde se battait pour les mêmes ressources, avec juste des priorités différentes.
|
|
||||||
|
|
||||||
## Et le forfait premium dans tout ça ?
|
|
||||||
|
|
||||||
Question qu'on entend souvent : si je paie un forfait à 50 € au lieu d'un forfait à 10 €, est-ce que je passe avant les autres en cas de saturation ?
|
|
||||||
|
|
||||||
Non.
|
|
||||||
|
|
||||||
Les priorités techniques décrites au-dessus ne dépendent ni du prix du forfait, ni des options commerciales souscrites. Elles dépendent du profil réseau associé à votre SIM (lui-même fonction de votre statut : grand public, secours, opérateur, services prioritaires officiels), et des politiques de gestion de crise programmées par l'opérateur. Un cadre dirigeant avec un forfait illimité reste, du point de vue du réseau, un abonné de classe d'accès 0-9 comme tout le monde.
|
|
||||||
|
|
||||||
Le forfait premium vous donne plus de data, parfois un meilleur débit théorique en conditions normales, des options de roaming, du cloud gratuit. Il ne vous donne pas la priorité face à un pompier ou à un préfet.
|
|
||||||
|
|
||||||
## Pour résumer
|
|
||||||
|
|
||||||
| Génération | Ce qui est contrôlé | Comment |
|
|
||||||
|---|---|---|
|
|
||||||
| 2G | L'accès au réseau | Classes d'accès 0-15 |
|
|
||||||
| 4G | L'accès + la priorité du trafic | ACB / EAB + QCI |
|
|
||||||
| 5G | L'accès + la priorité + l'isolation des services | UAC + 5QI + network slicing |
|
|
||||||
|
|
||||||
Ce qui est intéressant, c'est que ces mécanismes restent invisibles tant que tout va bien. Vous ne savez pas qu'ils existent. Vous découvrez leur existence le jour où votre voisin n'arrive plus à charger ses mails alors que les pompiers, eux, continuent de communiquer normalement. Ce jour-là, ce n'est pas de la magie. C'est trente ans d'ingénierie radio qui ont anticipé que ça arriverait.
|
|
||||||
@@ -1,80 +0,0 @@
|
|||||||
Un attentat, un séisme, un match du Stade de France, une grande panne d'électricité. Dans ces moments-là, des centaines de milliers de gens dégainent leur téléphone en même temps. Le réseau mobile, qui est dimensionné pour un usage moyen et pas pour un pic massif simultané, devrait théoriquement s'effondrer. La plupart du temps, il tient. Pas parfaitement, pas pour tout le monde, mais il tient — et surtout, les appels d'urgence continuent de passer. C'est le résultat d'une série de mécanismes empilés depuis les années 1990, et que la 4G et la 5G ont raffinés. Voici comment ça marche, sans le jargon mais sans non plus mentir sur ce qui se passe vraiment.
|
|
||||||
|
|
||||||
## Trois questions, pas une
|
|
||||||
|
|
||||||
Dans un réseau cellulaire moderne, l'opérateur doit répondre à trois questions distinctes quand la cellule commence à chauffer. Qui a le droit de se connecter ? Une fois connecté, qui passe en premier ? Et quels services doivent absolument continuer à fonctionner, quoi qu'il arrive ?
|
|
||||||
|
|
||||||
La 2G ne savait répondre qu'à la première. Elle filtrait à l'entrée et basta. La 4G a ajouté la deuxième : une fois admis sur le réseau, votre trafic n'est plus traité de la même manière selon son importance. La 5G ajoute la troisième : elle peut littéralement créer des réseaux virtuels parallèles, dont certains sont réservés à des usages critiques et isolés des autres.
|
|
||||||
|
|
||||||
## En 4G : filtrer puis prioriser
|
|
||||||
|
|
||||||
### Filtrer à l'entrée
|
|
||||||
|
|
||||||
Chaque carte SIM porte un numéro de classe d'accès, hérité du GSM, entre 0 et 15. Les classes 0 à 9 couvrent le grand public — autrement dit nous tous. Les classes 11 à 15 sont réservées : services de secours, autorités publiques, personnel opérateur, usages militaires selon les pays.
|
|
||||||
|
|
||||||
Quand une cellule est surchargée, l'eNodeB (la station de base 4G) diffuse une consigne aux téléphones du secteur : « les classes 0 à 9, vous attendez ». C'est l'**Access Class Barring**. Concrètement, votre téléphone reçoit ce message et bloque lui-même votre tentative d'appel ou de connexion data, sans même envoyer la demande à la station. C'est élégant parce que ça soulage la station avant même qu'elle ne soit sollicitée. Les classes prioritaires, elles, passent sans encombre.
|
|
||||||
|
|
||||||
Il existe une variante plus dure appelée **Extended Access Barring**, conçue pour les objets connectés et les usages non urgents. Quand une vraie crise se déclare, l'opérateur peut couper les compteurs intelligents, les alarmes domestiques et autres équipements bavards pour préserver la bande passante humaine.
|
|
||||||
|
|
||||||
### Prioriser une fois connecté
|
|
||||||
|
|
||||||
Là où la 4G a vraiment innové, c'est en introduisant le **QCI** — *QoS Class Identifier*. Chaque flux de données qui transite sur le réseau se voit attribuer un numéro entre 1 et 9 (et quelques valeurs au-dessus pour des cas spéciaux) qui dit à l'infrastructure comment le traiter.
|
|
||||||
|
|
||||||
Quelques exemples concrets :
|
|
||||||
|
|
||||||
| Usage | QCI | Traitement |
|
|
||||||
|---|---|---|
|
|
||||||
| Appel VoLTE (voix sur LTE) | 1 | Latence minimale, débit garanti |
|
|
||||||
| Signalisation réseau | 5 | Très haute priorité |
|
|
||||||
| Visioconférence | 2 | Débit garanti |
|
|
||||||
| Streaming vidéo | 6 ou 8 | Best effort prioritaire |
|
|
||||||
| Web et internet général | 9 | Best effort standard |
|
|
||||||
|
|
||||||
Quand la cellule est encombrée, le routeur sait quoi sacrifier en premier. YouTube va ralentir, les pages web vont mettre du temps à charger, mais l'appel téléphonique de votre voisin reste audible. C'est un compromis assumé : on dégrade volontairement les usages secondaires pour préserver les usages critiques.
|
|
||||||
|
|
||||||
## En 5G : ajouter le découpage
|
|
||||||
|
|
||||||
### Un mécanisme d'accès refondu
|
|
||||||
|
|
||||||
La 5G garde l'esprit du barring mais change son nom et sa mécanique. L'ancien Access Class Barring est remplacé par l'**UAC** — *Unified Access Control*, introduit dans la Release 15 du 3GPP. L'idée est d'unifier dans un seul cadre ce qui était auparavant éparpillé entre ACB, EAB et d'autres mécanismes spécifiques.
|
|
||||||
|
|
||||||
UAC repose sur deux notions. Les **Access Identities** identifient qui vous êtes (utilisateur lambda, abonné à un service prioritaire type MPS ou MCS, personnel d'urgence, agent opérateur). Les **Access Categories** identifient ce que vous essayez de faire (appel d'urgence, connexion data normale, SMS, mise à jour de localisation). La combinaison des deux détermine si votre demande passe ou pas.
|
|
||||||
|
|
||||||
Ce qui change vraiment, c'est la granularité. En 4G, on bloquait une classe entière. En 5G, on peut bloquer un type d'action précis pour un type d'utilisateur précis — par exemple « les abonnés grand public ne peuvent plus initier de nouveaux appels data, mais les SMS et les appels voix continuent ». L'opérateur peut aussi définir ses propres catégories d'accès, calées sur sa politique commerciale et technique.
|
|
||||||
|
|
||||||
### Le QCI devient le 5QI
|
|
||||||
|
|
||||||
Même logique qu'en 4G mais avec plus de finesse. Le **5QI** (*5G QoS Identifier*) propose davantage de niveaux et tient compte de cas que la 4G gérait mal, notamment les services à très basse latence pour les usines connectées ou la voiture autonome. La voix d'urgence garde son sommet, les données critiques industrielles s'intercalent juste après, le streaming et le web restent en bas de la pile.
|
|
||||||
|
|
||||||
### La vraie nouveauté : le network slicing
|
|
||||||
|
|
||||||
C'est l'apport majeur de la 5G en termes de gestion de crise. Au lieu de partager une seule infrastructure entre tous les usages, on peut maintenant la **découper logiciellement en tranches** — des *slices* — qui se comportent comme autant de réseaux indépendants, alors qu'ils tournent sur les mêmes antennes et les mêmes câbles.
|
|
||||||
|
|
||||||
Un opérateur peut par exemple maintenir :
|
|
||||||
|
|
||||||
- une tranche pour le grand public, avec ses millions d'abonnés et son trafic massif,
|
|
||||||
- une tranche pour les services d'urgence et de sécurité, dimensionnée pour rester fluide même quand le reste sature,
|
|
||||||
- une tranche pour les objets connectés industriels, avec des garanties de latence,
|
|
||||||
- une tranche pour les opérateurs critiques type SNCF, EDF, hôpitaux.
|
|
||||||
|
|
||||||
Chaque tranche a ses propres règles d'admission, ses propres priorités, ses propres garanties de performance. Si la tranche grand public est totalement saturée, celle des secours ne le sait même pas. Cette isolation est ce qui distingue le plus fondamentalement la 5G des générations précédentes, où tout le monde se battait pour les mêmes ressources, avec juste des priorités différentes.
|
|
||||||
|
|
||||||
## Et le forfait premium dans tout ça ?
|
|
||||||
|
|
||||||
Question qu'on entend souvent : si je paie un forfait à 50 € au lieu d'un forfait à 10 €, est-ce que je passe avant les autres en cas de saturation ?
|
|
||||||
|
|
||||||
Non.
|
|
||||||
|
|
||||||
Les priorités techniques décrites au-dessus ne dépendent ni du prix du forfait, ni des options commerciales souscrites. Elles dépendent du profil réseau associé à votre SIM (lui-même fonction de votre statut : grand public, secours, opérateur, services prioritaires officiels), et des politiques de gestion de crise programmées par l'opérateur. Un cadre dirigeant avec un forfait illimité reste, du point de vue du réseau, un abonné de classe d'accès 0-9 comme tout le monde.
|
|
||||||
|
|
||||||
Le forfait premium vous donne plus de data, parfois un meilleur débit théorique en conditions normales, des options de roaming, du cloud gratuit. Il ne vous donne pas la priorité face à un pompier ou à un préfet.
|
|
||||||
|
|
||||||
## Pour résumer
|
|
||||||
|
|
||||||
| Génération | Ce qui est contrôlé | Comment |
|
|
||||||
|---|---|---|
|
|
||||||
| 2G | L'accès au réseau | Classes d'accès 0-15 |
|
|
||||||
| 4G | L'accès + la priorité du trafic | ACB / EAB + QCI |
|
|
||||||
| 5G | L'accès + la priorité + l'isolation des services | UAC + 5QI + network slicing |
|
|
||||||
|
|
||||||
Ce qui est intéressant, c'est que ces mécanismes restent invisibles tant que tout va bien. Vous ne savez pas qu'ils existent. Vous découvrez leur existence le jour où votre voisin n'arrive plus à charger ses mails alors que les pompiers, eux, continuent de communiquer normalement. Ce jour-là, ce n'est pas de la magie. C'est trente ans d'ingénierie radio qui ont anticipé que ça arriverait.
|
|
||||||
@@ -1,80 +0,0 @@
|
|||||||
Un attentat, un séisme, un match du Stade de France, une grande panne d'électricité. Dans ces moments-là, des centaines de milliers de gens dégainent leur téléphone en même temps. Le réseau mobile, qui est dimensionné pour un usage moyen et pas pour un pic massif simultané, devrait théoriquement s'effondrer. La plupart du temps, il tient. Pas parfaitement, pas pour tout le monde, mais il tient — et surtout, les appels d'urgence continuent de passer. C'est le résultat d'une série de mécanismes empilés depuis les années 1990, et que la 4G et la 5G ont raffinés. Voici comment ça marche, sans le jargon mais sans non plus mentir sur ce qui se passe vraiment.
|
|
||||||
|
|
||||||
## Trois questions, pas une
|
|
||||||
|
|
||||||
Dans un réseau cellulaire moderne, l'opérateur doit répondre à trois questions distinctes quand la cellule commence à chauffer. Qui a le droit de se connecter ? Une fois connecté, qui passe en premier ? Et quels services doivent absolument continuer à fonctionner, quoi qu'il arrive ?
|
|
||||||
|
|
||||||
La 2G ne savait répondre qu'à la première. Elle filtrait à l'entrée et basta. La 4G a ajouté la deuxième : une fois admis sur le réseau, votre trafic n'est plus traité de la même manière selon son importance. La 5G ajoute la troisième : elle peut littéralement créer des réseaux virtuels parallèles, dont certains sont réservés à des usages critiques et isolés des autres.
|
|
||||||
|
|
||||||
## En 4G : filtrer puis prioriser
|
|
||||||
|
|
||||||
### Filtrer à l'entrée
|
|
||||||
|
|
||||||
Chaque carte SIM porte un numéro de classe d'accès, hérité du GSM, entre 0 et 15. Les classes 0 à 9 couvrent le grand public — autrement dit nous tous. Les classes 11 à 15 sont réservées : services de secours, autorités publiques, personnel opérateur, usages militaires selon les pays.
|
|
||||||
|
|
||||||
Quand une cellule est surchargée, l'eNodeB (la station de base 4G) diffuse une consigne aux téléphones du secteur : « les classes 0 à 9, vous attendez ». C'est l'**Access Class Barring**. Concrètement, votre téléphone reçoit ce message et bloque lui-même votre tentative d'appel ou de connexion data, sans même envoyer la demande à la station. C'est élégant parce que ça soulage la station avant même qu'elle ne soit sollicitée. Les classes prioritaires, elles, passent sans encombre.
|
|
||||||
|
|
||||||
Il existe une variante plus dure appelée **Extended Access Barring**, conçue pour les objets connectés et les usages non urgents. Quand une vraie crise se déclare, l'opérateur peut couper les compteurs intelligents, les alarmes domestiques et autres équipements bavards pour préserver la bande passante humaine.
|
|
||||||
|
|
||||||
### Prioriser une fois connecté
|
|
||||||
|
|
||||||
Là où la 4G a vraiment innové, c'est en introduisant le **QCI** — *QoS Class Identifier*. Chaque flux de données qui transite sur le réseau se voit attribuer un numéro entre 1 et 9 (et quelques valeurs au-dessus pour des cas spéciaux) qui dit à l'infrastructure comment le traiter.
|
|
||||||
|
|
||||||
Quelques exemples concrets :
|
|
||||||
|
|
||||||
| Usage | QCI | Traitement |
|
|
||||||
|---|---|---|
|
|
||||||
| Appel VoLTE (voix sur LTE) | 1 | Latence minimale, débit garanti |
|
|
||||||
| Signalisation réseau | 5 | Très haute priorité |
|
|
||||||
| Visioconférence | 2 | Débit garanti |
|
|
||||||
| Streaming vidéo | 6 ou 8 | Best effort prioritaire |
|
|
||||||
| Web et internet général | 9 | Best effort standard |
|
|
||||||
|
|
||||||
Quand la cellule est encombrée, le routeur sait quoi sacrifier en premier. YouTube va ralentir, les pages web vont mettre du temps à charger, mais l'appel téléphonique de votre voisin reste audible. C'est un compromis assumé : on dégrade volontairement les usages secondaires pour préserver les usages critiques.
|
|
||||||
|
|
||||||
## En 5G : ajouter le découpage
|
|
||||||
|
|
||||||
### Un mécanisme d'accès refondu
|
|
||||||
|
|
||||||
La 5G garde l'esprit du barring mais change son nom et sa mécanique. L'ancien Access Class Barring est remplacé par l'**UAC** — *Unified Access Control*, introduit dans la Release 15 du 3GPP. L'idée est d'unifier dans un seul cadre ce qui était auparavant éparpillé entre ACB, EAB et d'autres mécanismes spécifiques.
|
|
||||||
|
|
||||||
UAC repose sur deux notions. Les **Access Identities** identifient qui vous êtes (utilisateur lambda, abonné à un service prioritaire type MPS ou MCS, personnel d'urgence, agent opérateur). Les **Access Categories** identifient ce que vous essayez de faire (appel d'urgence, connexion data normale, SMS, mise à jour de localisation). La combinaison des deux détermine si votre demande passe ou pas.
|
|
||||||
|
|
||||||
Ce qui change vraiment, c'est la granularité. En 4G, on bloquait une classe entière. En 5G, on peut bloquer un type d'action précis pour un type d'utilisateur précis — par exemple « les abonnés grand public ne peuvent plus initier de nouveaux appels data, mais les SMS et les appels voix continuent ». L'opérateur peut aussi définir ses propres catégories d'accès, calées sur sa politique commerciale et technique.
|
|
||||||
|
|
||||||
### Le QCI devient le 5QI
|
|
||||||
|
|
||||||
Même logique qu'en 4G mais avec plus de finesse. Le **5QI** (*5G QoS Identifier*) propose davantage de niveaux et tient compte de cas que la 4G gérait mal, notamment les services à très basse latence pour les usines connectées ou la voiture autonome. La voix d'urgence garde son sommet, les données critiques industrielles s'intercalent juste après, le streaming et le web restent en bas de la pile.
|
|
||||||
|
|
||||||
### La vraie nouveauté : le network slicing
|
|
||||||
|
|
||||||
C'est l'apport majeur de la 5G en termes de gestion de crise. Au lieu de partager une seule infrastructure entre tous les usages, on peut maintenant la **découper logiciellement en tranches** — des *slices* — qui se comportent comme autant de réseaux indépendants, alors qu'ils tournent sur les mêmes antennes et les mêmes câbles.
|
|
||||||
|
|
||||||
Un opérateur peut par exemple maintenir :
|
|
||||||
|
|
||||||
- une tranche pour le grand public, avec ses millions d'abonnés et son trafic massif,
|
|
||||||
- une tranche pour les services d'urgence et de sécurité, dimensionnée pour rester fluide même quand le reste sature,
|
|
||||||
- une tranche pour les objets connectés industriels, avec des garanties de latence,
|
|
||||||
- une tranche pour les opérateurs critiques type SNCF, EDF, hôpitaux.
|
|
||||||
|
|
||||||
Chaque tranche a ses propres règles d'admission, ses propres priorités, ses propres garanties de performance. Si la tranche grand public est totalement saturée, celle des secours ne le sait même pas. Cette isolation est ce qui distingue le plus fondamentalement la 5G des générations précédentes, où tout le monde se battait pour les mêmes ressources, avec juste des priorités différentes.
|
|
||||||
|
|
||||||
## Et le forfait premium dans tout ça ?
|
|
||||||
|
|
||||||
Question qu'on entend souvent : si je paie un forfait à 50 € au lieu d'un forfait à 10 €, est-ce que je passe avant les autres en cas de saturation ?
|
|
||||||
|
|
||||||
Non.
|
|
||||||
|
|
||||||
Les priorités techniques décrites au-dessus ne dépendent ni du prix du forfait, ni des options commerciales souscrites. Elles dépendent du profil réseau associé à votre SIM (lui-même fonction de votre statut : grand public, secours, opérateur, services prioritaires officiels), et des politiques de gestion de crise programmées par l'opérateur. Un cadre dirigeant avec un forfait illimité reste, du point de vue du réseau, un abonné de classe d'accès 0-9 comme tout le monde.
|
|
||||||
|
|
||||||
Le forfait premium vous donne plus de data, parfois un meilleur débit théorique en conditions normales, des options de roaming, du cloud gratuit. Il ne vous donne pas la priorité face à un pompier ou à un préfet.
|
|
||||||
|
|
||||||
## Pour résumer
|
|
||||||
|
|
||||||
| Génération | Ce qui est contrôlé | Comment |
|
|
||||||
|---|---|---|
|
|
||||||
| 2G | L'accès au réseau | Classes d'accès 0-15 |
|
|
||||||
| 4G | L'accès + la priorité du trafic | ACB / EAB + QCI |
|
|
||||||
| 5G | L'accès + la priorité + l'isolation des services | UAC + 5QI + network slicing |
|
|
||||||
|
|
||||||
Ce qui est intéressant, c'est que ces mécanismes restent invisibles tant que tout va bien. Vous ne savez pas qu'ils existent. Vous découvrez leur existence le jour où votre voisin n'arrive plus à charger ses mails alors que les pompiers, eux, continuent de communiquer normalement. Ce jour-là, ce n'est pas de la magie. C'est trente ans d'ingénierie radio qui ont anticipé que ça arriverait.
|
|
||||||
@@ -1,80 +0,0 @@
|
|||||||
Un attentat, un séisme, un match du Stade de France, une grande panne d'électricité. Dans ces moments-là, des centaines de milliers de gens dégainent leur téléphone en même temps. Le réseau mobile, qui est dimensionné pour un usage moyen et pas pour un pic massif simultané, devrait théoriquement s'effondrer. La plupart du temps, il tient. Pas parfaitement, pas pour tout le monde, mais il tient — et surtout, les appels d'urgence continuent de passer. C'est le résultat d'une série de mécanismes empilés depuis les années 1990, et que la 4G et la 5G ont raffinés. Voici comment ça marche, sans le jargon mais sans non plus mentir sur ce qui se passe vraiment.
|
|
||||||
|
|
||||||
## Trois questions, pas une
|
|
||||||
|
|
||||||
Dans un réseau cellulaire moderne, l'opérateur doit répondre à trois questions distinctes quand la cellule commence à chauffer. Qui a le droit de se connecter ? Une fois connecté, qui passe en premier ? Et quels services doivent absolument continuer à fonctionner, quoi qu'il arrive ?
|
|
||||||
|
|
||||||
La 2G ne savait répondre qu'à la première. Elle filtrait à l'entrée et basta. La 4G a ajouté la deuxième : une fois admis sur le réseau, votre trafic n'est plus traité de la même manière selon son importance. La 5G ajoute la troisième : elle peut littéralement créer des réseaux virtuels parallèles, dont certains sont réservés à des usages critiques et isolés des autres.
|
|
||||||
|
|
||||||
## En 4G : filtrer puis prioriser
|
|
||||||
|
|
||||||
### Filtrer à l'entrée
|
|
||||||
|
|
||||||
Chaque carte SIM porte un numéro de classe d'accès, hérité du GSM, entre 0 et 15. Les classes 0 à 9 couvrent le grand public — autrement dit nous tous. Les classes 11 à 15 sont réservées : services de secours, autorités publiques, personnel opérateur, usages militaires selon les pays.
|
|
||||||
|
|
||||||
Quand une cellule est surchargée, l'eNodeB (la station de base 4G) diffuse une consigne aux téléphones du secteur : « les classes 0 à 9, vous attendez ». C'est l'**Access Class Barring**. Concrètement, votre téléphone reçoit ce message et bloque lui-même votre tentative d'appel ou de connexion data, sans même envoyer la demande à la station. C'est élégant parce que ça soulage la station avant même qu'elle ne soit sollicitée. Les classes prioritaires, elles, passent sans encombre.
|
|
||||||
|
|
||||||
Il existe une variante plus dure appelée **Extended Access Barring**, conçue pour les objets connectés et les usages non urgents. Quand une vraie crise se déclare, l'opérateur peut couper les compteurs intelligents, les alarmes domestiques et autres équipements bavards pour préserver la bande passante humaine.
|
|
||||||
|
|
||||||
### Prioriser une fois connecté
|
|
||||||
|
|
||||||
Là où la 4G a vraiment innové, c'est en introduisant le **QCI** — *QoS Class Identifier*. Chaque flux de données qui transite sur le réseau se voit attribuer un numéro entre 1 et 9 (et quelques valeurs au-dessus pour des cas spéciaux) qui dit à l'infrastructure comment le traiter.
|
|
||||||
|
|
||||||
Quelques exemples concrets :
|
|
||||||
|
|
||||||
| Usage | QCI | Traitement |
|
|
||||||
|---|---|---|
|
|
||||||
| Appel VoLTE (voix sur LTE) | 1 | Latence minimale, débit garanti |
|
|
||||||
| Signalisation réseau | 5 | Très haute priorité |
|
|
||||||
| Visioconférence | 2 | Débit garanti |
|
|
||||||
| Streaming vidéo | 6 ou 8 | Best effort prioritaire |
|
|
||||||
| Web et internet général | 9 | Best effort standard |
|
|
||||||
|
|
||||||
Quand la cellule est encombrée, le routeur sait quoi sacrifier en premier. YouTube va ralentir, les pages web vont mettre du temps à charger, mais l'appel téléphonique de votre voisin reste audible. C'est un compromis assumé : on dégrade volontairement les usages secondaires pour préserver les usages critiques.
|
|
||||||
|
|
||||||
## En 5G : ajouter le découpage
|
|
||||||
|
|
||||||
### Un mécanisme d'accès refondu
|
|
||||||
|
|
||||||
La 5G garde l'esprit du barring mais change son nom et sa mécanique. L'ancien Access Class Barring est remplacé par l'**UAC** — *Unified Access Control*, introduit dans la Release 15 du 3GPP. L'idée est d'unifier dans un seul cadre ce qui était auparavant éparpillé entre ACB, EAB et d'autres mécanismes spécifiques.
|
|
||||||
|
|
||||||
UAC repose sur deux notions. Les **Access Identities** identifient qui vous êtes (utilisateur lambda, abonné à un service prioritaire type MPS ou MCS, personnel d'urgence, agent opérateur). Les **Access Categories** identifient ce que vous essayez de faire (appel d'urgence, connexion data normale, SMS, mise à jour de localisation). La combinaison des deux détermine si votre demande passe ou pas.
|
|
||||||
|
|
||||||
Ce qui change vraiment, c'est la granularité. En 4G, on bloquait une classe entière. En 5G, on peut bloquer un type d'action précis pour un type d'utilisateur précis — par exemple « les abonnés grand public ne peuvent plus initier de nouveaux appels data, mais les SMS et les appels voix continuent ». L'opérateur peut aussi définir ses propres catégories d'accès, calées sur sa politique commerciale et technique.
|
|
||||||
|
|
||||||
### Le QCI devient le 5QI
|
|
||||||
|
|
||||||
Même logique qu'en 4G mais avec plus de finesse. Le **5QI** (*5G QoS Identifier*) propose davantage de niveaux et tient compte de cas que la 4G gérait mal, notamment les services à très basse latence pour les usines connectées ou la voiture autonome. La voix d'urgence garde son sommet, les données critiques industrielles s'intercalent juste après, le streaming et le web restent en bas de la pile.
|
|
||||||
|
|
||||||
### La vraie nouveauté : le network slicing
|
|
||||||
|
|
||||||
C'est l'apport majeur de la 5G en termes de gestion de crise. Au lieu de partager une seule infrastructure entre tous les usages, on peut maintenant la **découper logiciellement en tranches** — des *slices* — qui se comportent comme autant de réseaux indépendants, alors qu'ils tournent sur les mêmes antennes et les mêmes câbles.
|
|
||||||
|
|
||||||
Un opérateur peut par exemple maintenir :
|
|
||||||
|
|
||||||
- une tranche pour le grand public, avec ses millions d'abonnés et son trafic massif,
|
|
||||||
- une tranche pour les services d'urgence et de sécurité, dimensionnée pour rester fluide même quand le reste sature,
|
|
||||||
- une tranche pour les objets connectés industriels, avec des garanties de latence,
|
|
||||||
- une tranche pour les opérateurs critiques type SNCF, EDF, hôpitaux.
|
|
||||||
|
|
||||||
Chaque tranche a ses propres règles d'admission, ses propres priorités, ses propres garanties de performance. Si la tranche grand public est totalement saturée, celle des secours ne le sait même pas. Cette isolation est ce qui distingue le plus fondamentalement la 5G des générations précédentes, où tout le monde se battait pour les mêmes ressources, avec juste des priorités différentes.
|
|
||||||
|
|
||||||
## Et le forfait premium dans tout ça ?
|
|
||||||
|
|
||||||
Question qu'on entend souvent : si je paie un forfait à 50 € au lieu d'un forfait à 10 €, est-ce que je passe avant les autres en cas de saturation ?
|
|
||||||
|
|
||||||
Non.
|
|
||||||
|
|
||||||
Les priorités techniques décrites au-dessus ne dépendent ni du prix du forfait, ni des options commerciales souscrites. Elles dépendent du profil réseau associé à votre SIM (lui-même fonction de votre statut : grand public, secours, opérateur, services prioritaires officiels), et des politiques de gestion de crise programmées par l'opérateur. Un cadre dirigeant avec un forfait illimité reste, du point de vue du réseau, un abonné de classe d'accès 0-9 comme tout le monde.
|
|
||||||
|
|
||||||
Le forfait premium vous donne plus de data, parfois un meilleur débit théorique en conditions normales, des options de roaming, du cloud gratuit. Il ne vous donne pas la priorité face à un pompier ou à un préfet.
|
|
||||||
|
|
||||||
## Pour résumer
|
|
||||||
|
|
||||||
| Génération | Ce qui est contrôlé | Comment |
|
|
||||||
|---|---|---|
|
|
||||||
| 2G | L'accès au réseau | Classes d'accès 0-15 |
|
|
||||||
| 4G | L'accès + la priorité du trafic | ACB / EAB + QCI |
|
|
||||||
| 5G | L'accès + la priorité + l'isolation des services | UAC + 5QI + network slicing |
|
|
||||||
|
|
||||||
Ce qui est intéressant, c'est que ces mécanismes restent invisibles tant que tout va bien. Vous ne savez pas qu'ils existent. Vous découvrez leur existence le jour où votre voisin n'arrive plus à charger ses mails alors que les pompiers, eux, continuent de communiquer normalement. Ce jour-là, ce n'est pas de la magie. C'est trente ans d'ingénierie radio qui ont anticipé que ça arriverait.
|
|
||||||
@@ -1,80 +0,0 @@
|
|||||||
Un attentat, un séisme, un match du Stade de France, une grande panne d'électricité. Dans ces moments-là, des centaines de milliers de gens dégainent leur téléphone en même temps. Le réseau mobile, qui est dimensionné pour un usage moyen et pas pour un pic massif simultané, devrait théoriquement s'effondrer. La plupart du temps, il tient. Pas parfaitement, pas pour tout le monde, mais il tient — et surtout, les appels d'urgence continuent de passer. C'est le résultat d'une série de mécanismes empilés depuis les années 1990, et que la 4G et la 5G ont raffinés. Voici comment ça marche, sans le jargon mais sans non plus mentir sur ce qui se passe vraiment.
|
|
||||||
|
|
||||||
## Trois questions, pas une
|
|
||||||
|
|
||||||
Dans un réseau cellulaire moderne, l'opérateur doit répondre à trois questions distinctes quand la cellule commence à chauffer. Qui a le droit de se connecter ? Une fois connecté, qui passe en premier ? Et quels services doivent absolument continuer à fonctionner, quoi qu'il arrive ?
|
|
||||||
|
|
||||||
La 2G ne savait répondre qu'à la première. Elle filtrait à l'entrée et basta. La 4G a ajouté la deuxième : une fois admis sur le réseau, votre trafic n'est plus traité de la même manière selon son importance. La 5G ajoute la troisième : elle peut littéralement créer des réseaux virtuels parallèles, dont certains sont réservés à des usages critiques et isolés des autres.
|
|
||||||
|
|
||||||
## En 4G : filtrer puis prioriser
|
|
||||||
|
|
||||||
### Filtrer à l'entrée
|
|
||||||
|
|
||||||
Chaque carte SIM porte un numéro de classe d'accès, hérité du GSM, entre 0 et 15. Les classes 0 à 9 couvrent le grand public — autrement dit nous tous. Les classes 11 à 15 sont réservées : services de secours, autorités publiques, personnel opérateur, usages militaires selon les pays.
|
|
||||||
|
|
||||||
Quand une cellule est surchargée, l'eNodeB (la station de base 4G) diffuse une consigne aux téléphones du secteur : « les classes 0 à 9, vous attendez ». C'est l'**Access Class Barring**. Concrètement, votre téléphone reçoit ce message et bloque lui-même votre tentative d'appel ou de connexion data, sans même envoyer la demande à la station. C'est élégant parce que ça soulage la station avant même qu'elle ne soit sollicitée. Les classes prioritaires, elles, passent sans encombre.
|
|
||||||
|
|
||||||
Il existe une variante plus dure appelée **Extended Access Barring**, conçue pour les objets connectés et les usages non urgents. Quand une vraie crise se déclare, l'opérateur peut couper les compteurs intelligents, les alarmes domestiques et autres équipements bavards pour préserver la bande passante humaine.
|
|
||||||
|
|
||||||
### Prioriser une fois connecté
|
|
||||||
|
|
||||||
Là où la 4G a vraiment innové, c'est en introduisant le **QCI** — *QoS Class Identifier*. Chaque flux de données qui transite sur le réseau se voit attribuer un numéro entre 1 et 9 (et quelques valeurs au-dessus pour des cas spéciaux) qui dit à l'infrastructure comment le traiter.
|
|
||||||
|
|
||||||
Quelques exemples concrets :
|
|
||||||
|
|
||||||
| Usage | QCI | Traitement |
|
|
||||||
|---|---|---|
|
|
||||||
| Appel VoLTE (voix sur LTE) | 1 | Latence minimale, débit garanti |
|
|
||||||
| Signalisation réseau | 5 | Très haute priorité |
|
|
||||||
| Visioconférence | 2 | Débit garanti |
|
|
||||||
| Streaming vidéo | 6 ou 8 | Best effort prioritaire |
|
|
||||||
| Web et internet général | 9 | Best effort standard |
|
|
||||||
|
|
||||||
Quand la cellule est encombrée, le routeur sait quoi sacrifier en premier. YouTube va ralentir, les pages web vont mettre du temps à charger, mais l'appel téléphonique de votre voisin reste audible. C'est un compromis assumé : on dégrade volontairement les usages secondaires pour préserver les usages critiques.
|
|
||||||
|
|
||||||
## En 5G : ajouter le découpage
|
|
||||||
|
|
||||||
### Un mécanisme d'accès refondu
|
|
||||||
|
|
||||||
La 5G garde l'esprit du barring mais change son nom et sa mécanique. L'ancien Access Class Barring est remplacé par l'**UAC** — *Unified Access Control*, introduit dans la Release 15 du 3GPP. L'idée est d'unifier dans un seul cadre ce qui était auparavant éparpillé entre ACB, EAB et d'autres mécanismes spécifiques.
|
|
||||||
|
|
||||||
UAC repose sur deux notions. Les **Access Identities** identifient qui vous êtes (utilisateur lambda, abonné à un service prioritaire type MPS ou MCS, personnel d'urgence, agent opérateur). Les **Access Categories** identifient ce que vous essayez de faire (appel d'urgence, connexion data normale, SMS, mise à jour de localisation). La combinaison des deux détermine si votre demande passe ou pas.
|
|
||||||
|
|
||||||
Ce qui change vraiment, c'est la granularité. En 4G, on bloquait une classe entière. En 5G, on peut bloquer un type d'action précis pour un type d'utilisateur précis — par exemple « les abonnés grand public ne peuvent plus initier de nouveaux appels data, mais les SMS et les appels voix continuent ». L'opérateur peut aussi définir ses propres catégories d'accès, calées sur sa politique commerciale et technique.
|
|
||||||
|
|
||||||
### Le QCI devient le 5QI
|
|
||||||
|
|
||||||
Même logique qu'en 4G mais avec plus de finesse. Le **5QI** (*5G QoS Identifier*) propose davantage de niveaux et tient compte de cas que la 4G gérait mal, notamment les services à très basse latence pour les usines connectées ou la voiture autonome. La voix d'urgence garde son sommet, les données critiques industrielles s'intercalent juste après, le streaming et le web restent en bas de la pile.
|
|
||||||
|
|
||||||
### La vraie nouveauté : le network slicing
|
|
||||||
|
|
||||||
C'est l'apport majeur de la 5G en termes de gestion de crise. Au lieu de partager une seule infrastructure entre tous les usages, on peut maintenant la **découper logiciellement en tranches** — des *slices* — qui se comportent comme autant de réseaux indépendants, alors qu'ils tournent sur les mêmes antennes et les mêmes câbles.
|
|
||||||
|
|
||||||
Un opérateur peut par exemple maintenir :
|
|
||||||
|
|
||||||
- une tranche pour le grand public, avec ses millions d'abonnés et son trafic massif,
|
|
||||||
- une tranche pour les services d'urgence et de sécurité, dimensionnée pour rester fluide même quand le reste sature,
|
|
||||||
- une tranche pour les objets connectés industriels, avec des garanties de latence,
|
|
||||||
- une tranche pour les opérateurs critiques type SNCF, EDF, hôpitaux.
|
|
||||||
|
|
||||||
Chaque tranche a ses propres règles d'admission, ses propres priorités, ses propres garanties de performance. Si la tranche grand public est totalement saturée, celle des secours ne le sait même pas. Cette isolation est ce qui distingue le plus fondamentalement la 5G des générations précédentes, où tout le monde se battait pour les mêmes ressources, avec juste des priorités différentes.
|
|
||||||
|
|
||||||
## Et le forfait premium dans tout ça ?
|
|
||||||
|
|
||||||
Question qu'on entend souvent : si je paie un forfait à 50 € au lieu d'un forfait à 10 €, est-ce que je passe avant les autres en cas de saturation ?
|
|
||||||
|
|
||||||
Non.
|
|
||||||
|
|
||||||
Les priorités techniques décrites au-dessus ne dépendent ni du prix du forfait, ni des options commerciales souscrites. Elles dépendent du profil réseau associé à votre SIM (lui-même fonction de votre statut : grand public, secours, opérateur, services prioritaires officiels), et des politiques de gestion de crise programmées par l'opérateur. Un cadre dirigeant avec un forfait illimité reste, du point de vue du réseau, un abonné de classe d'accès 0-9 comme tout le monde.
|
|
||||||
|
|
||||||
Le forfait premium vous donne plus de data, parfois un meilleur débit théorique en conditions normales, des options de roaming, du cloud gratuit. Il ne vous donne pas la priorité face à un pompier ou à un préfet.
|
|
||||||
|
|
||||||
## Pour résumer
|
|
||||||
|
|
||||||
| Génération | Ce qui est contrôlé | Comment |
|
|
||||||
|---|---|---|
|
|
||||||
| 2G | L'accès au réseau | Classes d'accès 0-15 |
|
|
||||||
| 4G | L'accès + la priorité du trafic | ACB / EAB + QCI |
|
|
||||||
| 5G | L'accès + la priorité + l'isolation des services | UAC + 5QI + network slicing |
|
|
||||||
|
|
||||||
Ce qui est intéressant, c'est que ces mécanismes restent invisibles tant que tout va bien. Vous ne savez pas qu'ils existent. Vous découvrez leur existence le jour où votre voisin n'arrive plus à charger ses mails alors que les pompiers, eux, continuent de communiquer normalement. Ce jour-là, ce n'est pas de la magie. C'est trente ans d'ingénierie radio qui ont anticipé que ça arriverait.
|
|
||||||
@@ -1,80 +0,0 @@
|
|||||||
Un attentat, un séisme, un match du Stade de France, une grande panne d'électricité. Dans ces moments-là, des centaines de milliers de gens dégainent leur téléphone en même temps. Le réseau mobile, qui est dimensionné pour un usage moyen et pas pour un pic massif simultané, devrait théoriquement s'effondrer. La plupart du temps, il tient. Pas parfaitement, pas pour tout le monde, mais il tient — et surtout, les appels d'urgence continuent de passer. C'est le résultat d'une série de mécanismes empilés depuis les années 1990, et que la 4G et la 5G ont raffinés. Voici comment ça marche, sans le jargon mais sans non plus mentir sur ce qui se passe vraiment.
|
|
||||||
|
|
||||||
## Trois questions, pas une
|
|
||||||
|
|
||||||
Dans un réseau cellulaire moderne, l'opérateur doit répondre à trois questions distinctes quand la cellule commence à chauffer. Qui a le droit de se connecter ? Une fois connecté, qui passe en premier ? Et quels services doivent absolument continuer à fonctionner, quoi qu'il arrive ?
|
|
||||||
|
|
||||||
La 2G ne savait répondre qu'à la première. Elle filtrait à l'entrée et basta. La 4G a ajouté la deuxième : une fois admis sur le réseau, votre trafic n'est plus traité de la même manière selon son importance. La 5G ajoute la troisième : elle peut littéralement créer des réseaux virtuels parallèles, dont certains sont réservés à des usages critiques et isolés des autres.
|
|
||||||
|
|
||||||
## En 4G : filtrer puis prioriser
|
|
||||||
|
|
||||||
### Filtrer à l'entrée
|
|
||||||
|
|
||||||
Chaque carte SIM porte un numéro de classe d'accès, hérité du GSM, entre 0 et 15. Les classes 0 à 9 couvrent le grand public — autrement dit nous tous. Les classes 11 à 15 sont réservées : services de secours, autorités publiques, personnel opérateur, usages militaires selon les pays.
|
|
||||||
|
|
||||||
Quand une cellule est surchargée, l'eNodeB (la station de base 4G) diffuse une consigne aux téléphones du secteur : « les classes 0 à 9, vous attendez ». C'est l'**Access Class Barring**. Concrètement, votre téléphone reçoit ce message et bloque lui-même votre tentative d'appel ou de connexion data, sans même envoyer la demande à la station. C'est élégant parce que ça soulage la station avant même qu'elle ne soit sollicitée. Les classes prioritaires, elles, passent sans encombre.
|
|
||||||
|
|
||||||
Il existe une variante plus dure appelée **Extended Access Barring**, conçue pour les objets connectés et les usages non urgents. Quand une vraie crise se déclare, l'opérateur peut couper les compteurs intelligents, les alarmes domestiques et autres équipements bavards pour préserver la bande passante humaine.
|
|
||||||
|
|
||||||
### Prioriser une fois connecté
|
|
||||||
|
|
||||||
Là où la 4G a vraiment innové, c'est en introduisant le **QCI** — *QoS Class Identifier*. Chaque flux de données qui transite sur le réseau se voit attribuer un numéro entre 1 et 9 (et quelques valeurs au-dessus pour des cas spéciaux) qui dit à l'infrastructure comment le traiter.
|
|
||||||
|
|
||||||
Quelques exemples concrets :
|
|
||||||
|
|
||||||
| Usage | QCI | Traitement |
|
|
||||||
|---|---|---|
|
|
||||||
| Appel VoLTE (voix sur LTE) | 1 | Latence minimale, débit garanti |
|
|
||||||
| Signalisation réseau | 5 | Très haute priorité |
|
|
||||||
| Visioconférence | 2 | Débit garanti |
|
|
||||||
| Streaming vidéo | 6 ou 8 | Best effort prioritaire |
|
|
||||||
| Web et internet général | 9 | Best effort standard |
|
|
||||||
|
|
||||||
Quand la cellule est encombrée, le routeur sait quoi sacrifier en premier. YouTube va ralentir, les pages web vont mettre du temps à charger, mais l'appel téléphonique de votre voisin reste audible. C'est un compromis assumé : on dégrade volontairement les usages secondaires pour préserver les usages critiques.
|
|
||||||
|
|
||||||
## En 5G : ajouter le découpage
|
|
||||||
|
|
||||||
### Un mécanisme d'accès refondu
|
|
||||||
|
|
||||||
La 5G garde l'esprit du barring mais change son nom et sa mécanique. L'ancien Access Class Barring est remplacé par l'**UAC** — *Unified Access Control*, introduit dans la Release 15 du 3GPP. L'idée est d'unifier dans un seul cadre ce qui était auparavant éparpillé entre ACB, EAB et d'autres mécanismes spécifiques.
|
|
||||||
|
|
||||||
UAC repose sur deux notions. Les **Access Identities** identifient qui vous êtes (utilisateur lambda, abonné à un service prioritaire type MPS ou MCS, personnel d'urgence, agent opérateur). Les **Access Categories** identifient ce que vous essayez de faire (appel d'urgence, connexion data normale, SMS, mise à jour de localisation). La combinaison des deux détermine si votre demande passe ou pas.
|
|
||||||
|
|
||||||
Ce qui change vraiment, c'est la granularité. En 4G, on bloquait une classe entière. En 5G, on peut bloquer un type d'action précis pour un type d'utilisateur précis — par exemple « les abonnés grand public ne peuvent plus initier de nouveaux appels data, mais les SMS et les appels voix continuent ». L'opérateur peut aussi définir ses propres catégories d'accès, calées sur sa politique commerciale et technique.
|
|
||||||
|
|
||||||
### Le QCI devient le 5QI
|
|
||||||
|
|
||||||
Même logique qu'en 4G mais avec plus de finesse. Le **5QI** (*5G QoS Identifier*) propose davantage de niveaux et tient compte de cas que la 4G gérait mal, notamment les services à très basse latence pour les usines connectées ou la voiture autonome. La voix d'urgence garde son sommet, les données critiques industrielles s'intercalent juste après, le streaming et le web restent en bas de la pile.
|
|
||||||
|
|
||||||
### La vraie nouveauté : le network slicing
|
|
||||||
|
|
||||||
C'est l'apport majeur de la 5G en termes de gestion de crise. Au lieu de partager une seule infrastructure entre tous les usages, on peut maintenant la **découper logiciellement en tranches** — des *slices* — qui se comportent comme autant de réseaux indépendants, alors qu'ils tournent sur les mêmes antennes et les mêmes câbles.
|
|
||||||
|
|
||||||
Un opérateur peut par exemple maintenir :
|
|
||||||
|
|
||||||
- une tranche pour le grand public, avec ses millions d'abonnés et son trafic massif,
|
|
||||||
- une tranche pour les services d'urgence et de sécurité, dimensionnée pour rester fluide même quand le reste sature,
|
|
||||||
- une tranche pour les objets connectés industriels, avec des garanties de latence,
|
|
||||||
- une tranche pour les opérateurs critiques type SNCF, EDF, hôpitaux.
|
|
||||||
|
|
||||||
Chaque tranche a ses propres règles d'admission, ses propres priorités, ses propres garanties de performance. Si la tranche grand public est totalement saturée, celle des secours ne le sait même pas. Cette isolation est ce qui distingue le plus fondamentalement la 5G des générations précédentes, où tout le monde se battait pour les mêmes ressources, avec juste des priorités différentes.
|
|
||||||
|
|
||||||
## Et le forfait premium dans tout ça ?
|
|
||||||
|
|
||||||
Question qu'on entend souvent : si je paie un forfait à 50 € au lieu d'un forfait à 10 €, est-ce que je passe avant les autres en cas de saturation ?
|
|
||||||
|
|
||||||
Non.
|
|
||||||
|
|
||||||
Les priorités techniques décrites au-dessus ne dépendent ni du prix du forfait, ni des options commerciales souscrites. Elles dépendent du profil réseau associé à votre SIM (lui-même fonction de votre statut : grand public, secours, opérateur, services prioritaires officiels), et des politiques de gestion de crise programmées par l'opérateur. Un cadre dirigeant avec un forfait illimité reste, du point de vue du réseau, un abonné de classe d'accès 0-9 comme tout le monde.
|
|
||||||
|
|
||||||
Le forfait premium vous donne plus de data, parfois un meilleur débit théorique en conditions normales, des options de roaming, du cloud gratuit. Il ne vous donne pas la priorité face à un pompier ou à un préfet.
|
|
||||||
|
|
||||||
## Pour résumer
|
|
||||||
|
|
||||||
| Génération | Ce qui est contrôlé | Comment |
|
|
||||||
|---|---|---|
|
|
||||||
| 2G | L'accès au réseau | Classes d'accès 0-15 |
|
|
||||||
| 4G | L'accès + la priorité du trafic | ACB / EAB + QCI |
|
|
||||||
| 5G | L'accès + la priorité + l'isolation des services | UAC + 5QI + network slicing |
|
|
||||||
|
|
||||||
Ce qui est intéressant, c'est que ces mécanismes restent invisibles tant que tout va bien. Vous ne savez pas qu'ils existent. Vous découvrez leur existence le jour où votre voisin n'arrive plus à charger ses mails alors que les pompiers, eux, continuent de communiquer normalement. Ce jour-là, ce n'est pas de la magie. C'est trente ans d'ingénierie radio qui ont anticipé que ça arriverait.
|
|
||||||
@@ -1,87 +0,0 @@
|
|||||||
Un attentat, un séisme, un match du Stade de France, une grande panne d'électricité. Dans ces moments-là, des centaines de milliers de gens dégainent leur téléphone au même instant. Le réseau mobile est dimensionné pour un usage moyen, pas pour un pic massif simultané, et il devrait théoriquement s'effondrer. La plupart du temps, il tient. Pas parfaitement, pas pour tout le monde, mais il tient — et surtout, les appels d'urgence continuent de passer. C'est le résultat d'une série de mécanismes empilés depuis les années 1990, que la 4G a affinés et que la 5G a élargis. Cet article les passe en revue, et termine sur une question qu'on me pose souvent : est-ce que mon forfait à 50 € me donne une place prioritaire dans cette file d'attente ?
|
|
||||||
|
|
||||||
## Trois questions, pas une
|
|
||||||
|
|
||||||
Quand une cellule commence à chauffer, l'opérateur doit répondre à trois questions distinctes. Qui a le droit de se connecter ? Une fois connecté, qui passe en premier ? Et quels services doivent absolument continuer à fonctionner, quoi qu'il arrive ?
|
|
||||||
|
|
||||||
La 2G ne savait répondre qu'à la première. Elle filtrait à l'entrée et basta. La 4G a ajouté la deuxième : une fois admis sur le réseau, votre trafic est traité différemment selon son importance. La 5G ajoute la troisième : elle peut créer des réseaux virtuels parallèles dont certains sont réservés à des usages critiques, totalement isolés des autres.
|
|
||||||
|
|
||||||
## Le filtrage à l'entrée
|
|
||||||
|
|
||||||
Chaque carte SIM porte un numéro de classe d'accès, hérité du GSM, entre 0 et 15. Les classes 0 à 9 couvrent le grand public — autrement dit nous tous. Les classes 11 à 15 sont réservées : services de secours, autorités publiques, personnel opérateur, usages militaires selon les pays.
|
|
||||||
|
|
||||||
Quand une cellule est surchargée, l'eNodeB (la station de base 4G) diffuse une consigne aux téléphones du secteur : « les classes 0 à 9, vous attendez ». C'est l'**Access Class Barring**. Concrètement, votre téléphone reçoit ce message et bloque lui-même votre tentative d'appel ou de connexion data, sans même envoyer la demande à la station. C'est élégant parce que ça soulage la station avant même qu'elle ne soit sollicitée. Les classes prioritaires, elles, passent sans encombre.
|
|
||||||
|
|
||||||
Une variante plus dure, l'**Extended Access Barring**, vise les objets connectés et les usages non urgents. Quand une vraie crise se déclare, l'opérateur peut couper les compteurs intelligents, les alarmes domestiques et autres équipements bavards pour préserver la bande passante humaine.
|
|
||||||
|
|
||||||
En 5G, ce mécanisme a été refondu sous le nom d'**UAC** — *Unified Access Control*, introduit dans la Release 15 du 3GPP. UAC unifie dans un seul cadre ce qui était auparavant éparpillé entre ACB, EAB et d'autres dispositifs spécifiques. Il repose sur deux notions complémentaires. Les *Access Identities* identifient qui vous êtes : utilisateur lambda, abonné à un service prioritaire type MPS ou MCS, personnel d'urgence, agent opérateur. Les *Access Categories* identifient ce que vous essayez de faire : appel d'urgence, connexion data normale, SMS, mise à jour de localisation. La combinaison des deux détermine si votre demande passe ou pas. La granularité gagnée par rapport à la 4G est réelle : on peut bloquer un type d'action précis pour un type d'utilisateur précis, par exemple « les abonnés grand public ne peuvent plus initier de nouveaux appels data, mais les SMS et les appels voix continuent ».
|
|
||||||
|
|
||||||
## La priorité une fois connecté
|
|
||||||
|
|
||||||
Là où la 4G a vraiment innové, c'est en introduisant le **QCI** — *QoS Class Identifier*. Chaque flux de données qui transite sur le réseau se voit attribuer un numéro entre 1 et 9 (avec quelques valeurs supplémentaires pour des cas spéciaux) qui dit à l'infrastructure comment le traiter.
|
|
||||||
|
|
||||||
| Usage | QCI | Traitement |
|
|
||||||
|---|---|---|
|
|
||||||
| Appel VoLTE (voix sur LTE) | 1 | Latence minimale, débit garanti |
|
|
||||||
| Visioconférence | 2 | Débit garanti |
|
|
||||||
| Signalisation réseau | 5 | Très haute priorité |
|
|
||||||
| Streaming vidéo | 6 ou 8 | Best effort prioritaire |
|
|
||||||
| Web et internet général | 9 | Best effort standard |
|
|
||||||
|
|
||||||
Quand la cellule est encombrée, le routeur sait quoi sacrifier en premier. YouTube va ralentir, les pages web vont mettre du temps à charger, mais l'appel téléphonique de votre voisin reste audible. C'est un compromis assumé : on dégrade volontairement les usages secondaires pour préserver les usages critiques.
|
|
||||||
|
|
||||||
La 5G a transposé ce mécanisme sous le nom de **5QI** (*5G QoS Identifier*) avec davantage de niveaux et une meilleure prise en compte des cas que la 4G gérait mal — notamment les services à très basse latence pour les usines connectées ou la voiture autonome. La voix d'urgence garde son sommet, les données critiques industrielles s'intercalent juste après, le streaming et le web restent en bas de la pile.
|
|
||||||
|
|
||||||
## L'isolation par tranches : le network slicing
|
|
||||||
|
|
||||||
C'est l'apport majeur de la 5G en matière de gestion de crise. Au lieu de partager une seule infrastructure entre tous les usages, on peut maintenant la découper logiciellement en tranches — des *slices* — qui se comportent comme autant de réseaux indépendants, alors qu'ils tournent sur les mêmes antennes et les mêmes câbles.
|
|
||||||
|
|
||||||
Un opérateur peut par exemple maintenir une tranche pour le grand public avec ses millions d'abonnés et son trafic massif, une autre pour les services d'urgence dimensionnée pour rester fluide même quand le reste sature, une troisième pour les objets connectés industriels avec des garanties de latence, et une quatrième pour des opérateurs critiques type SNCF, EDF ou hôpitaux. Chaque tranche a ses propres règles d'admission, ses propres priorités, ses propres garanties de performance. Si la tranche grand public est totalement saturée, celle des secours ne le sait même pas.
|
|
||||||
|
|
||||||
Cette isolation est ce qui distingue le plus fondamentalement la 5G des générations précédentes. Avant, tout le monde se battait pour les mêmes ressources, avec juste des priorités différentes pour départager. Maintenant, certaines ressources sont retirées du combat dès le départ.
|
|
||||||
|
|
||||||
## Récapitulatif
|
|
||||||
|
|
||||||
| Génération | Ce qui est contrôlé | Comment |
|
|
||||||
|---|---|---|
|
|
||||||
| 2G | L'accès au réseau | Classes d'accès 0-15 |
|
|
||||||
| 4G | L'accès + la priorité du trafic | ACB / EAB + QCI |
|
|
||||||
| 5G | L'accès + la priorité + l'isolation des services | UAC + 5QI + network slicing |
|
|
||||||
|
|
||||||
Tous ces mécanismes restent invisibles tant que tout va bien. Vous ne savez pas qu'ils existent. Vous découvrez leur existence le jour où votre voisin n'arrive plus à charger ses mails alors que les pompiers, eux, continuent de communiquer normalement. Ce jour-là, ce n'est pas de la magie. C'est trente ans d'ingénierie radio qui ont anticipé que ça arriverait.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Et mon forfait premium, alors ?
|
|
||||||
|
|
||||||
Question logique à ce stade. Si le réseau sait techniquement prioriser certains flux par rapport à d'autres, qu'est-ce qui empêche un opérateur de faire passer ses abonnés à 50 € devant ceux à 10 € quand les antennes saturent ? La réponse honnête commence par un aveu : techniquement, rien. L'outil existe, il s'appelle **Quality of Service** (QoS), c'est exactement le mécanisme qu'on vient de décrire. Si demain Orange ou SFR voulaient créer une voie rapide pour leurs abonnés haut de gamme, ils auraient les outils dans la boîte. Pourtant, ils ne le font pas. Pour quatre raisons.
|
|
||||||
|
|
||||||
### La loi européenne l'interdit
|
|
||||||
|
|
||||||
Le règlement **(UE) 2015/2120**, dit « règlement internet ouvert », oblige les opérateurs à traiter tout le trafic de la même façon, sans discrimination liée à l'expéditeur, au destinataire, au contenu ou à l'application. Il a fêté ses dix ans en novembre 2025, et l'ARCEP a profité de l'anniversaire pour rappeler que c'est l'un des piliers du modèle numérique européen. Les sanctions sont sérieuses : jusqu'à **3 % du chiffre d'affaires** de l'opérateur fautif. Un opérateur français qui annoncerait demain « avec notre forfait Premium, vous passez devant les autres » se retrouverait devant l'ARCEP dans la semaine.
|
|
||||||
|
|
||||||
Le règlement laisse quelques portes ouvertes pour les services dits « spécialisés » qui ont besoin d'une qualité garantie — téléchirurgie, voiture connectée. Mais ces exceptions sont étroitement encadrées et ne couvrent absolument pas le confort d'un client haut de gamme qui voudrait charger son Instagram plus vite à 19h.
|
|
||||||
|
|
||||||
Aux États-Unis, l'histoire est différente. La FCC a tenté de restaurer la neutralité du net en 2024, mais en janvier 2025 la cour d'appel du sixième circuit a invalidé la décision, jugeant que la FCC n'avait pas l'autorité légale pour reclasser le haut débit comme service public. Avec l'arrivée de Brendan Carr à la tête de la FCC, ouvertement opposé à la neutralité du net, il n'y a aujourd'hui plus de règle fédérale outre-Atlantique. Quelques États (Californie, Washington, New York, Oregon) ont leurs propres lois qui maintiennent le principe, mais à l'échelle du pays, les opérateurs américains pourraient légalement faire ce que leurs homologues européens n'ont pas le droit de faire. Pourtant, ils ne le font pas ouvertement non plus, et la raison renvoie aux trois points suivants.
|
|
||||||
|
|
||||||
### C'est commercialement intenable
|
|
||||||
|
|
||||||
Imagine la publicité : « Forfait Premium à 50 € — passez devant les pauvres pendant les heures de pointe ». Le slogan ne se vend pas. Les directions marketing savent que dire à la moitié de leurs clients qu'ils sont des citoyens de seconde zone du réseau est le plus court chemin vers une crise de réputation. C'est pour ça qu'on vous vend « plus de Go », « 5G ultra rapide », « roaming inclus dans 110 pays » — des promesses qui sonnent positivement sans jamais dire à personne qu'il est désavantagé.
|
|
||||||
|
|
||||||
### L'effet boule de neige serait toxique
|
|
||||||
|
|
||||||
Imagine que ça se mette quand même en place. Les riches passent devant. Les antennes restent saturées pour les autres, qui se mettent à payer plus pour échapper à la saturation, ce qui sature encore plus les bas forfaits, ce qui pousse encore plus de gens à monter en gamme. Au bout de cinq ans, on a un réseau à deux vitesses où les forfaits modestes deviennent quasi inutilisables aux heures critiques, et où la connexion mobile correcte devient un service de luxe. Ce n'est plus un service de télécommunications, c'est un système de classes.
|
|
||||||
|
|
||||||
C'est exactement ce que la neutralité du net cherche à empêcher. Pas par idéologie, mais parce qu'on a déjà vu où mène ce genre de spirale dans les pays où elle n'est pas protégée. Certains opérateurs proposent par exemple des forfaits où Facebook et WhatsApp sont gratuits mais où le reste est payant, ce qui revient à dire que le bon internet est celui que l'opérateur a choisi pour vous. Ce n'est plus tout à fait le même service.
|
|
||||||
|
|
||||||
### Ça ne résoudrait rien
|
|
||||||
|
|
||||||
Quand un réseau sature, ce n'est pas un problème de répartition entre utilisateurs, c'est un problème de **capacité totale**. Faire passer Pierre avant Paul ne crée pas un seul bit de bande passante supplémentaire. Ça déplace juste le problème de l'un vers l'autre. La vraie solution, quand une cellule sature trop souvent, c'est d'installer plus d'antennes, de densifier le réseau, de basculer sur une fréquence plus performante ou de passer à la génération suivante. C'est cher, c'est long, ça implique des autorisations administratives et des négociations foncières, mais c'est la seule réponse qui tient la route. Prioriser, c'est rapide, mais ça repousse le mur, ça ne le déplace pas.
|
|
||||||
|
|
||||||
C'est comme si on proposait une voie réservée aux Mercedes sur l'A7 un samedi de chassé-croisé. Techniquement, on peut peindre la ligne au sol et installer les panneaux dans la matinée. Mais cette voie ne réduit pas le bouchon, elle le concentre sur les voies restantes ; elle écorne le principe d'égalité d'accès à l'infrastructure publique ; et elle ne change rien au problème de fond, qui est qu'il y a trop de voitures pour la route disponible. La vraie solution reste la même qu'avant : élargir l'autoroute, ou convaincre une partie des gens de prendre le train.
|
|
||||||
|
|
||||||
### Le caveat 5G
|
|
||||||
|
|
||||||
Une nuance honnête pour finir. Le *network slicing* complique le débat juridique. Un opérateur peut créer des tranches de réseau avec des qualités différenciées en toute légalité quand il s'agit d'usages spécialisés — santé, industrie, transports. La question qui agite régulateurs et juristes depuis plusieurs années est de savoir où finit le service spécialisé légitime et où commence le contournement déguisé de la neutralité du net. L'ARCEP a ouvert ce chantier, et c'est probablement là, plus que dans une revanche commerciale brutale sur les forfaits premium, que se jouera la prochaine bataille.
|
|
||||||
|
|
||||||
Mais pour répondre simplement à la question : non, votre forfait à 50 € ne vous donne pas la priorité réseau sur celui de votre voisin à 10 €. Il vous donne plus de data, parfois un meilleur débit théorique, des options en plus. Pas une place dans la file.
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
Jusqu’à maintenant, les petits colis importés de l’étranger passaient presque inaperçus dans les foyers français. Shein, AliExpress, Temu… commander en Asie était simple et peu coûteux, grâce à l’exonération de droits de douane sur les produits d’une valeur inférieure à 150 euros. Mais depuis le 13 novembre 2025, ce statu quo est remis en cause : les ministres des Finances de l’Union européenne ont voté la suppression de cette exonération. Dès le premier trimestre 2026, chaque petit colis pourrait être taxé et soumis à des frais de traitement supplémentaires.
|
|
||||||
|
|
||||||
À Bruxelles, on salue cette décision comme un moyen de protéger les consommateurs européens et le marché intérieur. La France, en particulier, s’en félicite, estimant qu’il s’agit d’une avancée pour la sécurité des produits et la souveraineté économique de l’UE. Mais pour beaucoup de Français, cette mesure ne fait qu’aggraver un problème de fond.
|
|
||||||
|
|
||||||
Car la question n’est pas simplement celle des colis asiatiques. Depuis trente ans, la France est passée d’une puissance industrielle comparable à la moyenne européenne à un “nain industriel” avec seulement 7 % du PIB provenant de l’industrie, alors que nos voisins restent autour de 20 % ou plus. Les consommateurs se tournent vers l’Asie parce que **les produits français sont trop chers**, alourdis par des taxes, charges et coûts de production élevés. Taxer les colis importés aujourd’hui revient à **punir les consommateurs pour un problème que nos politiques n’ont pas su résoudre : la perte de compétitivité de l’industrie française**.
|
|
||||||
|
|
||||||
Pour ceux qui vivent près des frontières ou voyagent dans le sud de l’Europe, la différence est frappante. En Catalogne ou au Portugal, il est possible d’acheter des produits locaux compétitifs : bricolage, jardinage, vêtements ou matériel de pêche, fabriqués en Europe et à des prix abordables. La preuve qu’une production locale forte et des prix raisonnables sont possibles, **quand la fiscalité et la réglementation ne pénalisent pas le producteur**.
|
|
||||||
|
|
||||||
Cette nouvelle taxe sur les petits colis ne relancera pas l’industrie française, ni le commerce de centre-ville. Elle risque surtout de **réduire le pouvoir d’achat des Français**, tout en alimentant des caisses de l’État dont l’argent sera souvent gaspillé avant même d’être utile à l’économie réelle.
|
|
||||||
|
|
||||||
En résumé, ce n’est pas la faute des consommateurs qui cherchent le meilleur prix à l’étranger. C’est le résultat d’une politique fiscale et industrielle défaillante. Tant que l’État ne s’attaquera pas aux causes structurelles — charges trop élevées, fiscalité excessive, désindustrialisation — toutes les mesures de taxation des importations resteront des **pansements sur une jambe de bois**, au détriment des citoyens.
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"uuid": "5059c1e2-f3e6-406f-9595-7133bb835cdb",
|
|
||||||
"slug": "petits-colis-grands-impots-quand-la-taxation-punit-les-francais-sans-relancer-l-industrie",
|
|
||||||
"title": "Petits colis, grands impôts : quand la taxation punit les Français sans relancer l’industrie",
|
|
||||||
"author": "cedric@abonnel.fr",
|
|
||||||
"published": true,
|
|
||||||
"published_at": "2025-11-14 00:55:43",
|
|
||||||
"created_at": "2025-11-14 00:55:43",
|
|
||||||
"updated_at": "2025-11-14 00:55:43",
|
|
||||||
"revisions": [],
|
|
||||||
"cover": "cover.jpg",
|
|
||||||
"category": "actualité"
|
|
||||||
}
|
|
||||||
@@ -1,107 +0,0 @@
|
|||||||
*Keycloak* est un outil puissant pour la gestion des identités et des accès. Dans cet article, nous allons voir **comment configurer un client OAuth 2.0** dans Keycloak, en **détaillant toutes les options importantes**, et en **restreignant l’accès aux utilisateurs ou groupes autorisés uniquement**.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🧱 1. Prérequis
|
|
||||||
|
|
||||||
* Un Keycloak fonctionnel (v15+ recommandé)
|
|
||||||
* Les droits d’administration sur un **realm**
|
|
||||||
* Une application (client) souhaitant s’authentifier via OAuth 2.0
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🛠️ 2. Création d’un client OAuth 2.0
|
|
||||||
|
|
||||||
Dans Keycloak, un *client* représente toute application ou service qui souhaite interagir avec le système d’authentification pour authentifier des utilisateurs ou obtenir des informations sur eux. Cela peut être une application web, une API, une application mobile ou encore un service tiers. Le client est en quelque sorte un **consommateur de l’identité**, et c’est à travers lui que les échanges avec Keycloak se font.
|
|
||||||
|
|
||||||
Chaque client est enregistré dans un *realm* (l’espace logique d’authentification dans Keycloak) avec un identifiant unique, appelé `client_id`. Cet identifiant est utilisé par l’application lorsqu’elle initie une demande d’authentification ou tente d’obtenir un jeton d’accès. Un client peut être configuré de différentes manières selon son type et son usage : il peut être **public** (par exemple une application JavaScript qui n’a pas de secret), **confidentiel** (une application serveur qui possède un secret partagé), ou encore de type **bearer-only**, c’est-à-dire une API qui ne déclenche pas elle-même l’authentification mais qui attend des requêtes déjà munies d’un jeton.
|
|
||||||
|
|
||||||
Dans Keycloak, le client définit les paramètres de sécurité : les flux d’authentification autorisés (code, implicite, mot de passe, client\_credentials), les URL de redirection autorisées, les origines web pour le support CORS, la durée de vie des jetons, ou encore les claims (informations) que l’on souhaite injecter dans les tokens.
|
|
||||||
|
|
||||||
Un client peut aussi être associé à des rôles spécifiques ou à des scopes personnalisés. Cela permet de gérer les droits d’accès de manière fine, en s’assurant que seuls certains utilisateurs ou groupes peuvent utiliser une application donnée. Il est également possible de lier des *politiques d'autorisation* à un client pour restreindre dynamiquement l’accès selon des règles (groupes, rôles, attributs utilisateur, etc.).
|
|
||||||
|
|
||||||
1. Connectez-vous à **Keycloak Admin Console**.
|
|
||||||
2. Sélectionnez le **realm** cible.
|
|
||||||
3. Menu **Clients > Create client**.
|
|
||||||
|
|
||||||
### Options de base :
|
|
||||||
|
|
||||||
| Champ | Description |
|
|
||||||
| ------------------- | ------------------------------------------------------------------------------- |
|
|
||||||
| **Client ID** | Identifiant unique du client. Visible dans les tokens. Exemple : `myapp-client` |
|
|
||||||
| **Client Type** | Choisir `OpenID Connect` |
|
|
||||||
| **Client Protocol** | Par défaut : `openid-connect` (OAuth 2.0). Alternatif : `saml`. |
|
|
||||||
| **Root URL** | URL de base de redirection pour les applications web. |
|
|
||||||
|
|
||||||
Cliquez sur **Save** pour accéder à toutes les options.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## ⚙️ 3. Configuration du client
|
|
||||||
|
|
||||||
### A. **Settings**
|
|
||||||
|
|
||||||
| Option | Valeur typique | Description |
|
|
||||||
| ---------------------------- | --------------------------------------- | ------------------------------------------------------------------ |
|
|
||||||
| **Client Authentication** | ON / OFF | Requiert un secret (ON) ou public (OFF) |
|
|
||||||
| **Authorization Enabled** | `OFF` par défaut | Activer pour gérer les autorisations internes |
|
|
||||||
| **Access Type** | `confidential`, `public`, `bearer-only` | Type d’application (voir plus bas) |
|
|
||||||
| **Standard Flow Enabled** | ON | Active le flux d’autorisation (code) |
|
|
||||||
| **Implicit Flow Enabled** | OFF (⚠️ déconseillé) | Active le flux implicite |
|
|
||||||
| **Direct Access Grants** | ON | Permet l’authentification via mot de passe (`grant_type=password`) |
|
|
||||||
| **Service Accounts Enabled** | ON (si machine to machine) | Utilise le client comme un compte de service |
|
|
||||||
| **Valid Redirect URIs** | `https://app.example.com/*` | URI(s) autorisées pour les redirections |
|
|
||||||
| **Web Origins** | `+` ou domaines CORS autorisés | Obligatoire si accès depuis navigateur JS |
|
|
||||||
| **Base URL** | `https://app.example.com/` | Page par défaut post-login |
|
|
||||||
| **Admin URL** | Pour backchannel logout | Optionnel |
|
|
||||||
|
|
||||||
### B. **Credentials**
|
|
||||||
|
|
||||||
* Affiche le **Client Secret** (pour les clients confidentiels).
|
|
||||||
* Possibilité d’utiliser des **JWT signés (client assertion)**.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🔑 4. Types de clients
|
|
||||||
|
|
||||||
| Type | Description |
|
|
||||||
| ---------------- | ----------------------------------------------------------- |
|
|
||||||
| **Confidential** | Application backend avec secret. Ex : Web server |
|
|
||||||
| **Public** | Application JS/mobile sans secret |
|
|
||||||
| **Bearer-only** | Client backend n’initie pas d’auth, mais vérifie les tokens |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🧑🤝🧑 5. Restreindre l’accès aux utilisateurs/groupes
|
|
||||||
|
|
||||||
### A. Méthode recommandée : **Configurer une politique d’accès**
|
|
||||||
|
|
||||||
1. Activer **Authorization** dans l’onglet `Settings`.
|
|
||||||
2. Aller dans l’onglet **Authorization** > `Authorization settings` > activer `Enable`.
|
|
||||||
|
|
||||||
### B. Créer une **policy** :
|
|
||||||
|
|
||||||
* **Type** : Group ou Role
|
|
||||||
* Exemple : `Groupe = /clients/myapp` ou `Role = access-myapp`
|
|
||||||
|
|
||||||
### C. Créer une **permission**
|
|
||||||
|
|
||||||
* **Type** : Client Scope Permission
|
|
||||||
* Associer à la **policy** créée
|
|
||||||
* Appliquer à la ressource “client” ou à des scopes (ex: `openid`, `profile`)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🔍 7. Options avancées
|
|
||||||
|
|
||||||
* **Fine grain session settings** : durée de session, idle timeout
|
|
||||||
* **Token Settings** : durée de vie des access/refresh tokens
|
|
||||||
* **Client Scopes** : définir les claims par défaut (email, profile, etc.)
|
|
||||||
* **Mapper des claims personnalisés** dans les tokens (ex : groupes, fonctions)
|
|
||||||
* **Backchannel Logout** : URL appelée lors d’un logout global
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 📌 Conclusion
|
|
||||||
|
|
||||||
Configurer un client OAuth 2.0 dans Keycloak permet une **intégration sécurisée** avec vos applications, que ce soit via des **tokens d’accès** ou des **scopes personnalisés**. N’oubliez pas de **restreindre l’accès** au client pour éviter qu’il soit utilisé par des utilisateurs non autorisés.
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"uuid": "5510b12a-d647-4b1a-90ba-d421a4927ff7",
|
|
||||||
"slug": "configurer-un-client-oauth-2-0-dans-keycloak-guide-complet",
|
|
||||||
"title": "🔐 Configurer un client OAuth 2.0 dans Keycloak : guide complet",
|
|
||||||
"author": "cedric@abonnel.fr",
|
|
||||||
"published": true,
|
|
||||||
"published_at": "2025-05-16 23:33:31",
|
|
||||||
"created_at": "2025-05-16 23:33:31",
|
|
||||||
"updated_at": "2025-05-16 23:33:31",
|
|
||||||
"revisions": [],
|
|
||||||
"cover": "cover.jpg",
|
|
||||||
"category": "informatique"
|
|
||||||
}
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
Nous sommes lundi matin. Le silence numérique est assourdissant. Aucun service interne ne répond, et les plateformes A5L sur Internet sont totalement inaccessibles. Rien ne fonctionne. C’est un black-out complet. Le genre de panne qui érode patiemment ton calme et ton raisonnement, heure après heure. La veille, j’avais déjà tout tenté ou presque, sans succès. Et maintenant, le temps presse. Je décide de rapatrier la machine hôte qui fait tourner le NAS, la pièce centrale du puzzle. Ce mini-serveur, habituellement discret et stable, est suspect numéro un. Peut-être qu’en le branchant localement, j’aurai enfin un retour vidéo. Je tente une nouvelle approche : je le connecte à un boîtier d’acquisition HDMI, en utilisant simplement un câble DisplayPort vers HDMI. L’idée est de faire apparaître quelque chose, n’importe quoi, dans OBS, sur mon poste de travail. Mais tout ce que j’obtiens, c’est un écran noir. Rien. Pas un pixel.
|
|
||||||
|
|
||||||
À cet instant, tout devient flou. Je commence à remettre en question chaque élément de la chaîne. Le boîtier d’acquisition : fonctionne-t-il réellement ? Le câble : est-il compatible ? Le port DisplayPort : est-il actif au démarrage ? Et la machine elle-même ? Est-ce qu’elle boote seulement ? Je doute de tout. Ce sont les moments les plus pénibles. Quand la panne est silencieuse. Quand tout semble à la fois en cause, et que rien ne parle. C’est dans ces phases de doute profond que je suis le plus vulnérable. J’ai souvent réagi à l’instinct dans ces moments-là, en allant droit vers des actions irréversibles. Formater un disque, réinstaller un système, démonter un châssis complet… sans prendre le temps d’analyser, de poser les bonnes questions. Je le sais, je l’ai déjà vécu, mais aujourd’hui, j’essaie de faire mieux. Je prends une pause. J’observe. J’écoute.
|
|
||||||
|
|
||||||
Je redémarre plusieurs fois la machine, et à chaque fois, j’entends trois bips, espacés, lents, presque inquiétants. Le disque dur semble tournoyer, sans conviction. Pas de réelle activité. L’écran reste noir. Et c’est là que je me souviens d’un paramètre que je n’ai pas vérifié : la configuration de sortie dans OBS. J’ouvre les paramètres d’entrée vidéo, et je me rends compte que la résolution, la fréquence, tout est réglé comme si j’attendais le signal d’une console de jeu en 1080p. Mais un BIOS ? Il sort en 640x480, peut-être 800x600 dans le meilleur des cas… Je change les réglages, ajuste la fréquence, et je relance.
|
|
||||||
|
|
||||||
Et là, comme un miracle numérique, l’image apparaît. Épurée. Grise. En anglais.
|
|
||||||
« *Press <F2> to enter Setup or <F12> to enter Boot Menu.* »
|
|
||||||
Et puis s’enchaînent les erreurs :
|
|
||||||
**ERROR - POST - Invalid date / time**
|
|
||||||
**ERROR - POST - Bad RTC Battery**
|
|
||||||
**BIOS Settings defaults loaded.**
|
|
||||||
La sentence est claire : la **pile CMOS** est à plat. Elle ne tient plus la date, plus les réglages, plus rien. C’est elle qui empêchait la machine de démarrer correctement, de retrouver ses marques. Quelle absurdité ! Une simple pile bouton de quelques grammes, dans un PC allumé 24h/24 depuis des années. Mais elle a rendu l’âme, discrètement, en silence, et tout s’est effondré autour.
|
|
||||||
|
|
||||||
Je coupe l’alimentation, j’ouvre le boîtier, je localise la pile. Je la retire et la teste au multimètre : **2,5 volts**. C’est insuffisant. Je la remplace immédiatement par une neuve, une bonne CR2032 à **3,1 volts**. Je remonte le tout, referme le boîtier, rebranche les câbles, et relance. Et là, la magie opère : **l’écran Proxmox s’affiche**, le système boote, et — enfin — la machine **répond au ping**. C’est le genre de petit miracle qui donne envie de se lever et d’applaudir dans une pièce vide.
|
|
||||||
|
|
||||||
Je replace donc le serveur à son emplacement habituel, je le redémarre avec confiance… et là, **plus rien**. Ping muet. Silence réseau. J’étrangle un soupir. Et si c’était… autre chose ? Mon regard se pose sur le **switch réseau**. Éteint. Plus une LED. Je débranche, rebranche, rien. Je prends un switch de rechange, je le connecte à la place du défaillant, je relie chaque câble avec soin. Et là, tous les services reviennent. Ping OK. Partages NFS OK. Proxmox OK. Le réseau reprend vie comme si de rien n’était.
|
|
||||||
|
|
||||||
L’autopsie du switch est formelle : **alimentation HS**. Ce petit boîtier discret avait probablement commencé à **agoniser lentement depuis plusieurs jours**, provoquant des microcoupures entre le NAS et le serveur principal. Les VM avaient perdu l’accès à leur stockage. Les partages s’étaient effondrés. Et tout ça avait été pris pour un bug de Proxmox, un problème de VM… alors que tout partait d’une **alimentation à 10 euros**.
|
|
||||||
|
|
||||||
Au final, tout s’explique. La pile. Le switch. Le lien entre les deux.
|
|
||||||
Et moi, au milieu, à jongler entre câbles, BIOS, doutes et bips.
|
|
||||||
Une tempête technique partie d’un simple maillon faible.
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"uuid": "55a2c5eb-74d2-4c58-a7d1-19d1d824adf1",
|
|
||||||
"slug": "incident-acegrp-lan-2-tout-s-explique-enfin",
|
|
||||||
"title": "Incident acegrp.lan (2) : Tout s’explique enfin !",
|
|
||||||
"author": "cedric@abonnel.fr",
|
|
||||||
"published": true,
|
|
||||||
"published_at": "2025-04-30 18:01:00",
|
|
||||||
"created_at": "2025-04-30 18:01:00",
|
|
||||||
"updated_at": "2025-05-01 04:30:09",
|
|
||||||
"revisions": [],
|
|
||||||
"cover": "cover.jpg",
|
|
||||||
"category": "domotique"
|
|
||||||
}
|
|
||||||
@@ -1,220 +0,0 @@
|
|||||||
Un matin d’automne, Léa ouvre son compte LinkedIn comme elle le fait chaque jour. Consultante indépendante, elle y partage des réflexions sur le travail à distance, y échange avec des collègues et y recrute parfois des partenaires. Rien de bien extraordinaire. Mais ce jour-là, un post attire son attention : *« LinkedIn utilise vos données pour entraîner ses IA »*.
|
|
||||||
|
|
||||||
Au début, elle croit à une rumeur. Encore une de ces tempêtes numériques qui s’évanouissent aussi vite qu’elles éclatent. Puis elle lit plus attentivement : le réseau professionnel de Microsoft admet effectivement utiliser certaines données publiques — les profils, les publications, les interactions visibles — pour nourrir ses modèles d’intelligence artificielle.
|
|
||||||
|
|
||||||
### **De la mise en relation à la collecte invisible**
|
|
||||||
|
|
||||||
Depuis sa création, LinkedIn se présente comme une vitrine professionnelle : un espace où chacun peut exposer son parcours, ses compétences, ses ambitions. En échange, la plateforme promet visibilité, opportunités et réseau. Mais derrière cette promesse, un autre marché s’est peu à peu installé : celui des données.
|
|
||||||
|
|
||||||
Chaque clic, chaque mise à jour de poste, chaque mot-clé devient une pièce d’un immense puzzle comportemental. Ce puzzle, jusqu’ici utilisé pour cibler des offres d’emploi ou des publicités, se retrouve désormais au cœur de quelque chose de beaucoup plus vaste : **l’entraînement des intelligences artificielles**.
|
|
||||||
|
|
||||||
Microsoft, maison mère de LinkedIn, investit des milliards dans l’IA. Or, pour qu’une IA apprenne, il lui faut une matière première : les mots, les textes, les interactions humaines. Et LinkedIn en regorge.
|
|
||||||
|
|
||||||
### **La ligne floue entre le “public” et le “privé”**
|
|
||||||
|
|
||||||
Techniquement, LinkedIn affirme ne collecter que les informations *publiques*. Mais qu’est-ce que cela signifie vraiment ? Léa n’a jamais donné son accord explicite pour que ses publications servent à entraîner des algorithmes de génération de texte. Elle les a partagées pour échanger avec des pairs, pas pour devenir une donnée parmi des millions d’autres.
|
|
||||||
|
|
||||||
C’est là que le malaise grandit.
|
|
||||||
Les utilisateurs découvrent que la frontière entre ce qu’ils publient volontairement et ce qui peut être *réutilisé* s’estompe. Dans les conditions d’utilisation, tout est mentionné — quelque part, en petits caractères. Mais rares sont ceux qui lisent jusqu’à la dernière ligne.
|
|
||||||
|
|
||||||
### **Le choc du consentement absent**
|
|
||||||
|
|
||||||
Les réactions ne se font pas attendre : des posts indignés envahissent la plateforme même.
|
|
||||||
« On n’est pas des cobayes ! » écrit un utilisateur.
|
|
||||||
« Nos profils sont devenus des datasets », dénonce une autre.
|
|
||||||
|
|
||||||
Ce qui choque, ce n’est pas seulement l’usage, mais la **manière** dont il a été introduit : sans consultation, sans transparence, presque à bas bruit.
|
|
||||||
|
|
||||||
Les défenseurs du projet rétorquent que l’IA ne “lit” pas nos données comme un humain. Qu’elle analyse des tendances, pas des personnes. Que tout est anonymisé.
|
|
||||||
Mais cette défense sonne creux pour beaucoup : anonymiser ne supprime pas la question éthique. À partir du moment où nos mots, nos idées, nos réflexions alimentent un système dont nous ne maîtrisons ni les usages ni les bénéfices, une part de notre autonomie numérique s’érode.
|
|
||||||
|
|
||||||
### **Une affaire de confiance**
|
|
||||||
|
|
||||||
LinkedIn n’est pas la première plateforme à faire face à cette controverse. Reddit, X (ex-Twitter) et même Meta ont adopté des politiques similaires, justifiant ces pratiques par la nécessité d’améliorer leurs modèles d’IA.
|
|
||||||
Mais LinkedIn occupe une place particulière : il s’agit du **réseau professionnel par excellence**. Ici, les utilisateurs partagent des informations sensibles — leur parcours, leur entreprise, leurs compétences — souvent avec leur vrai nom.
|
|
||||||
|
|
||||||
La relation de confiance entre l’utilisateur et la plateforme est donc essentielle. Et c’est justement cette confiance qui vacille.
|
|
||||||
|
|
||||||
### **Léa et le dilemme numérique**
|
|
||||||
|
|
||||||
Quelques jours plus tard, Léa se rend dans les paramètres de confidentialité.
|
|
||||||
Elle découvre, cachée dans une section sobrement intitulée « Utilisation des données pour l’IA », une mention : « Nous pouvons utiliser vos informations publiques pour améliorer nos produits et services, y compris les technologies d’intelligence artificielle. »
|
|
||||||
|
|
||||||
Il existe bien une option d’exclusion, mais difficile à trouver. Léa la décoche, sans savoir si cela changera vraiment quelque chose.
|
|
||||||
Elle ressent un mélange de soulagement et de résignation.
|
|
||||||
|
|
||||||
Car au fond, la question dépasse LinkedIn. Elle touche à une réalité plus vaste : **dans l’ère de l’intelligence artificielle, nos données sont devenues la nouvelle énergie**, le carburant invisible qui alimente des machines toujours plus puissantes.
|
|
||||||
|
|
||||||
### **Vers une prise de conscience collective**
|
|
||||||
|
|
||||||
L’affaire LinkedIn agit comme un électrochoc. Elle révèle à quel point le consentement numérique reste un concept fragile, souvent illusoire. Elle invite chacun à repenser ce qu’il partage en ligne, mais aussi à exiger des plateformes une vraie transparence.
|
|
||||||
|
|
||||||
Les régulateurs européens, via le RGPD, commencent à se saisir du sujet. Certains experts appellent à créer un **« droit à l’exclusion des IA »**, un cadre légal obligeant les entreprises à obtenir un consentement explicite avant toute utilisation des données à des fins d’entraînement algorithmique.
|
|
||||||
|
|
||||||
Mais pour l’instant, la balle reste surtout dans le camp des utilisateurs — ceux qui, comme Léa, naviguent entre pragmatisme et inquiétude, entre le besoin de visibilité et la peur d’être instrumentalisés.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### ** Entre progrès et perte de contrôle**
|
|
||||||
|
|
||||||
L’IA promet des avancées spectaculaires. Elle transforme nos métiers, nos outils, nos manières de communiquer. Mais elle pose une question fondamentale : **qui possède les données qui la nourrissent ?**
|
|
||||||
|
|
||||||
LinkedIn n’est peut-être qu’un exemple parmi d’autres, mais il symbolise un tournant.
|
|
||||||
Dans cette ère où chaque mot que nous tapons peut devenir une donnée d’apprentissage, la véritable ressource n’est plus la technologie, mais la **confiance**.
|
|
||||||
Et cette confiance, aujourd’hui, semble s’effriter à mesure que les algorithmes se renforcent.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Voici les risques autour de l’utilisation des données des utilisateurs par LinkedIn (et d’autres plateformes) pour l’IA
|
|
||||||
|
|
||||||
## **1. Atteinte à la vie privée et au consentement**
|
|
||||||
|
|
||||||
Même si LinkedIn affirme n’utiliser que des données “publiques”, cela ne signifie pas que les utilisateurs ont **consenti explicitement** à cet usage.
|
|
||||||
|
|
||||||
* Les informations partagées à des fins professionnelles (CV, publications, commentaires) peuvent être **réutilisées hors contexte**.
|
|
||||||
* Le consentement est souvent implicite, enfoui dans les conditions d’utilisation.
|
|
||||||
* L’utilisateur **perd le contrôle** sur ce qu’il partage : il ne sait pas exactement **comment ni par qui** ses données seront exploitées.
|
|
||||||
|
|
||||||
➡️ *Exemple concret :* ton texte sur la gestion d’équipe pourrait servir à entraîner une IA d’entreprise sans que tu le saches, ni que ton nom y soit associé.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## **2. Profilage et reconstitution d’identité**
|
|
||||||
|
|
||||||
L’agrégation massive des données permet aux IA d’identifier des **schémas comportementaux et professionnels** :
|
|
||||||
|
|
||||||
* Les algorithmes peuvent déduire des informations sensibles (habitudes de travail, orientation politique, situation financière, etc.) à partir de simples interactions.
|
|
||||||
* Ces profils peuvent être utilisés pour **le ciblage commercial**, **le recrutement automatisé**, voire **l’évaluation de performance** dans certains contextes.
|
|
||||||
|
|
||||||
➡️ *Risque :* un recruteur ou un système d’IA pourrait juger ton profil ou ton style d’écriture sans ton accord.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## **3. Appropriation intellectuelle et perte de la valeur de ton contenu**
|
|
||||||
|
|
||||||
Les textes, publications et commentaires des utilisateurs servent de **matière première** à l’entraînement de modèles d’intelligence artificielle.
|
|
||||||
|
|
||||||
* Tes contributions (même originales ou expertes) peuvent **être intégrées à des IA génératives** qui, ensuite, produiront du contenu similaire sans mentionner leur source.
|
|
||||||
* Cela pose une question d’**éthique et de propriété intellectuelle** : tu deviens fournisseur involontaire de savoir gratuit.
|
|
||||||
|
|
||||||
➡️ *Exemple :* une IA générative pourrait reformuler ou réutiliser tes analyses dans un contexte commercial sans te citer.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## **4. Risque de réidentification**
|
|
||||||
|
|
||||||
Même si LinkedIn ou Microsoft annoncent que les données sont “anonymisées”, des études montrent qu’il est souvent possible de **réidentifier des individus** à partir de fragments de données combinées.
|
|
||||||
|
|
||||||
* Les publications, les dates d’emploi ou les noms d’entreprises peuvent suffire à **retrouver une personne réelle**.
|
|
||||||
* Cela peut exposer à du **harcèlement**, du **doxing** (divulgation d’infos perso) ou du **recrutement non sollicité**.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## **5. Érosion de la confiance numérique**
|
|
||||||
|
|
||||||
Chaque nouvelle utilisation non transparente des données creuse le fossé entre utilisateurs et plateformes.
|
|
||||||
|
|
||||||
* Les professionnels peuvent **se censurer**, publier moins, ou quitter la plateforme.
|
|
||||||
* Cela nuit à la qualité du réseau et à la diversité des échanges.
|
|
||||||
|
|
||||||
➡️ *Risque collectif :* LinkedIn perd son rôle de réseau professionnel ouvert, et les utilisateurs deviennent méfiants ou silencieux.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## **6. Exploitation commerciale asymétrique**
|
|
||||||
|
|
||||||
Les utilisateurs fournissent la matière (leurs données), mais **ne bénéficient pas** des revenus générés par les IA entraînées sur ces données.
|
|
||||||
|
|
||||||
* Les plateformes en tirent un profit direct (via les produits IA, la publicité ou les abonnements premium).
|
|
||||||
* Les utilisateurs, eux, deviennent **des ressources gratuites** sans contrepartie.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## **7. Sécurité des données à long terme**
|
|
||||||
|
|
||||||
Une fois intégrées dans des modèles d’IA, les données ne peuvent pas toujours être **effacées**.
|
|
||||||
|
|
||||||
* Même si tu supprimes ton compte, l’empreinte de tes données peut subsister dans les systèmes d’apprentissage.
|
|
||||||
* Cela entre en tension avec le **droit à l’oubli**, garanti par le RGPD.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Exemples concrets** et **projections** permettant de bien mesurer les conséquences réelles (et à venir) de cette collecte de données par LinkedIn et les IA associées.
|
|
||||||
Voici une série d’illustrations **réalistes, plausibles et documentées**, suivies de **projections futures** si la tendance se poursuit.
|
|
||||||
|
|
||||||
## 💼 **1. Exemple actuel : ton profil devient un “modèle” de compétence**
|
|
||||||
|
|
||||||
Un consultant publie régulièrement des analyses sur la transformation digitale. Ses posts sont publics, bien écrits et souvent partagés.
|
|
||||||
👉 Ces textes peuvent être intégrés (sans qu’il le sache) dans des ensembles de données qui servent à **entraîner une IA professionnelle** de rédaction ou de recrutement.
|
|
||||||
Résultat : une IA générative pourrait ensuite **produire des articles ou des messages LinkedIn similaires au sien**, imitant son ton et sa structure — sans jamais le créditer.
|
|
||||||
|
|
||||||
📍 *Projection 2026 :* les entreprises paieront pour des outils d’IA “experts en communication LinkedIn”, entraînés sur des millions de publications d’utilisateurs. Ces contenus originaux deviendront des modèles commerciaux... sans rémunération pour leurs auteurs.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🔍 **2. Exemple : profilage algorithmique dans le recrutement**
|
|
||||||
|
|
||||||
LinkedIn est déjà utilisé pour **le tri automatisé des candidatures**. En combinant ces données avec des modèles d’IA, une entreprise pourrait prédire les “traits de personnalité” d’un candidat à partir de son profil, de son vocabulaire ou de son historique de publications.
|
|
||||||
|
|
||||||
➡️ *Risque concret :*
|
|
||||||
Une IA pourrait écarter un profil jugé “instable” ou “non aligné culturellement” simplement parce qu’elle a repéré des posts critiques sur le management — sans intervention humaine.
|
|
||||||
|
|
||||||
📍 *Projection 2027 :* des recruteurs utilisent des IA pour “noter” automatiquement les profils selon leur probabilité de succès dans une entreprise, créant des **discriminations invisibles** et difficilement contestables.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## ✍️ **3. Exemple : appropriation intellectuelle déguisée**
|
|
||||||
|
|
||||||
Imaginons une chercheuse en RH qui publie des posts détaillant sa méthode d’évaluation des compétences.
|
|
||||||
Quelques mois plus tard, une IA professionnelle (issue d’un modèle Microsoft ou OpenAI) reprend des formulations et des idées très proches dans un produit commercial.
|
|
||||||
|
|
||||||
➡️ *Risque :* sa méthode devient une fonctionnalité d’un logiciel RH, sans reconnaissance ni rémunération.
|
|
||||||
|
|
||||||
📍 *Projection 2028 :* les IA intègrent massivement du contenu “crowdsourcé” depuis LinkedIn, Reddit ou Medium. Les créateurs deviennent **fournisseurs involontaires de savoir**, pendant que les entreprises vendent des outils basés sur leurs contributions.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🧠 **4. Exemple : inférences comportementales non désirées**
|
|
||||||
|
|
||||||
Une IA peut déduire plus que ce que l’utilisateur pense partager.
|
|
||||||
➡️ Par exemple :
|
|
||||||
|
|
||||||
* Un rythme de publication irrégulier peut être interprété comme un “manque de disponibilité”.
|
|
||||||
* Un enchaînement de changements de poste peut être lu comme un “instinct d’instabilité”.
|
|
||||||
* Le ton ou la fréquence des commentaires peut servir à classer les utilisateurs selon leur “influence sociale”.
|
|
||||||
|
|
||||||
📍 *Projection 2026-2030 :* ces données comportementales nourrissent des **scores de réputation professionnelle** invisibles, que certaines entreprises ou plateformes utilisent pour classer les candidats, partenaires ou clients potentiels.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 💰 **5. Exemple : création de produits IA entraînés sur les utilisateurs**
|
|
||||||
|
|
||||||
Microsoft développe des outils d’IA intégrés à LinkedIn Learning ou à Microsoft 365 Copilot.
|
|
||||||
➡️ Les modèles peuvent s’inspirer des tendances, expressions et structures de pensée des utilisateurs LinkedIn pour proposer des conseils personnalisés (“Voici comment rédiger une offre d’emploi efficace”).
|
|
||||||
|
|
||||||
📍 *Projection 2030 :*
|
|
||||||
Les modèles d’IA deviennent si performants qu’ils proposent des stratégies RH, des analyses de marché ou des lettres de motivation entières, **entraînées sur les contenus des utilisateurs** — mais commercialisées sous licence Microsoft.
|
|
||||||
Les utilisateurs deviennent littéralement la **matière première** de produits IA vendus à d’autres professionnels.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🔒 **6. Exemple : difficulté d’effacement ou de contrôle**
|
|
||||||
|
|
||||||
Un utilisateur décide de supprimer son compte LinkedIn.
|
|
||||||
➡️ Problème : ses anciens posts, déjà utilisés pour l’entraînement de modèles, ne peuvent pas être “désappris” par ces IA.
|
|
||||||
Les traces textuelles persistent dans les modèles, parfois indéfiniment.
|
|
||||||
|
|
||||||
📍 *Projection 2029 :* même avec le droit à l’oubli renforcé, la récupération complète des données dans les modèles devient quasi impossible. Les régulateurs européens devront imposer des **procédures d’“oubli algorithmique”**, très coûteuses à mettre en œuvre.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🌍 **7. Projection sociétale globale : le paradoxe de la transparence**
|
|
||||||
|
|
||||||
À long terme, la généralisation de ces pratiques pourrait produire un **effet de censure douce** :
|
|
||||||
|
|
||||||
* Les utilisateurs partagent moins d’analyses authentiques, de peur d’être copiés ou profilés.
|
|
||||||
* Les publications deviennent plus neutres, plus polies, moins spontanées.
|
|
||||||
* Le réseau perd de sa valeur humaine et se transforme en vitrine aseptisée.
|
|
||||||
|
|
||||||
En parallèle, les grandes entreprises technologiques accumulent des quantités massives de données textuelles qui leur donnent un **avantage compétitif durable**.
|
|
||||||
Les utilisateurs, eux, deviennent invisibles dans la chaîne de valeur de l’intelligence artificielle.
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"uuid": "5982deaf-f3de-4f65-9270-9849132e64f6",
|
|
||||||
"slug": "nos-donnees-a-l-ere-de-l-ia-l-affaire-linkedin-et-la-colere-des-utilisateurs",
|
|
||||||
"title": "Nos données à l’ère de l’IA : l’affaire LinkedIn et la colère des utilisateurs",
|
|
||||||
"author": "cedric@abonnel.fr",
|
|
||||||
"published": true,
|
|
||||||
"published_at": "2025-11-05 07:10:37",
|
|
||||||
"created_at": "2025-11-05 07:10:37",
|
|
||||||
"updated_at": "2025-11-05 07:10:37",
|
|
||||||
"revisions": [],
|
|
||||||
"cover": "cover.jpg",
|
|
||||||
"category": "actualité"
|
|
||||||
}
|
|
||||||
@@ -1,134 +0,0 @@
|
|||||||
*(Méthode basée sur l’installation via le script communautaire Proxmox : [https://community-scripts.github.io/ProxmoxVE/scripts?id=uptimekuma](https://community-scripts.github.io/ProxmoxVE/scripts?id=uptimekuma))*
|
|
||||||
|
|
||||||
Lorsque Uptime Kuma rencontre des problèmes de démarrage, des erreurs dans la base SQLite, ou des comportements anormaux après une mise à jour, il peut être nécessaire d’effectuer une série de vérifications et de corrections. Le guide ci-dessous détaille les étapes recommandées pour diagnostiquer et réparer votre instance Uptime Kuma tout en minimisant les risques de perte de données.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 1. Arrêt du service Uptime Kuma
|
|
||||||
|
|
||||||
Avant toute manipulation sur les fichiers de données, il est indispensable d’arrêter correctement le service :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
systemctl stop uptime-kuma
|
|
||||||
```
|
|
||||||
|
|
||||||
L’arrêt garantit que la base SQLite ne subit aucune écriture pendant la maintenance. Sans cela, on risque d’aggraver les corruptions ou de provoquer des pertes de données.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 2. Accéder au dossier de l’application
|
|
||||||
|
|
||||||
Le script communautaire installe généralement Uptime Kuma dans `/opt/uptime-kuma` :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd /opt/uptime-kuma
|
|
||||||
```
|
|
||||||
|
|
||||||
Ce répertoire contient le code de Kuma ainsi que le dossier `data`, qui renferme toutes les données utilisateur, les paramètres, les historiques de monitoring et la base de données `kuma.db`.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 3. Sauvegarde des données avant intervention
|
|
||||||
|
|
||||||
Avant toute réparation, il est impératif de créer une copie de la base SQLite :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cp -r data data-backup-$(date +%Y%m%d)
|
|
||||||
```
|
|
||||||
|
|
||||||
Cette sauvegarde permet de revenir en arrière en cas de problème.
|
|
||||||
Elle inclut notamment :
|
|
||||||
|
|
||||||
* la base de données `kuma.db`
|
|
||||||
* les historiques de monitoring
|
|
||||||
* les configurations des sondes
|
|
||||||
* les paramètres de l’interface
|
|
||||||
|
|
||||||
⚠️ **Ne jamais sauter cette étape**, surtout si vous modifiez la base à la main.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 4. Vérification de l’intégrité de la base SQLite
|
|
||||||
|
|
||||||
On se rend ensuite dans le dossier des données :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd data/
|
|
||||||
```
|
|
||||||
|
|
||||||
Puis on effectue une vérification complète :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sqlite3 kuma.db "PRAGMA integrity_check;"
|
|
||||||
```
|
|
||||||
|
|
||||||
Cette commande retourne :
|
|
||||||
|
|
||||||
* **ok** → la base est saine
|
|
||||||
* un ou plusieurs messages d’erreur → corruption ou index endommagé
|
|
||||||
|
|
||||||
Selon le résultat, il faudra peut-être appliquer une des corrections suivantes.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 5. Suppression d’un paramètre problématique dans la base
|
|
||||||
|
|
||||||
Certaines versions d’Uptime Kuma ont rencontré un problème lié à l’entrée `migrateAggregateTableState` dans la table `setting`.
|
|
||||||
Si cette clé est corrompue ou mal migrée, elle peut empêcher le service de démarrer.
|
|
||||||
|
|
||||||
La correction consiste à supprimer cette entrée :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sqlite3 kuma.db "DELETE FROM setting WHERE key = 'migrateAggregateTableState';"
|
|
||||||
```
|
|
||||||
|
|
||||||
Cette action force Uptime Kuma à recréer proprement l’état de migration au prochain démarrage.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 6. Solution extrême : vider toute la table `heartbeat`
|
|
||||||
|
|
||||||
Si les problèmes concernent uniquement les historiques (table heartbeat corrompue), une solution radicale consiste à vider la table :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sqlite3 kuma.db "DELETE FROM heartbeat;"
|
|
||||||
```
|
|
||||||
|
|
||||||
⚠️ Cette commande supprime **tout l’historique des sondes**, mais ne touche pas aux sondes ni aux paramètres.
|
|
||||||
À utiliser uniquement en dernier recours si :
|
|
||||||
|
|
||||||
* la vérification SQLite échoue
|
|
||||||
* Uptime Kuma ne démarre plus
|
|
||||||
* l’historique est corrompu
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 7. Redémarrage du service
|
|
||||||
|
|
||||||
Une fois les corrections effectuées :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
systemctl start uptime-kuma
|
|
||||||
```
|
|
||||||
|
|
||||||
Si la base est correcte, Uptime Kuma devrait redémarrer normalement.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 8. Consultation des journaux pour valider les corrections
|
|
||||||
|
|
||||||
Pour suivre en temps réel les messages du service et détecter d’éventuelles anomalies persistantes :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
journalctl -u uptime-kuma -f
|
|
||||||
```
|
|
||||||
|
|
||||||
Points à surveiller dans les logs :
|
|
||||||
|
|
||||||
* erreurs SQLite
|
|
||||||
* migrations bloquées
|
|
||||||
* permissions incorrectes
|
|
||||||
* modules Node.js manquants
|
|
||||||
* services stoppés subitement
|
|
||||||
|
|
||||||
Les journaux permettent de confirmer que la base est stable et que le service démarre correctement.
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"uuid": "5a0cced3-40d0-46bf-8501-b533f3c2608e",
|
|
||||||
"slug": "correction-et-reparation-d-une-installation-uptime-kuma",
|
|
||||||
"title": "Correction et réparation d’une installation Uptime Kuma",
|
|
||||||
"author": "cedric@abonnel.fr",
|
|
||||||
"published": true,
|
|
||||||
"published_at": "2025-11-26 08:33:49",
|
|
||||||
"created_at": "2025-11-26 08:33:49",
|
|
||||||
"updated_at": "2025-11-26 08:33:49",
|
|
||||||
"revisions": [],
|
|
||||||
"cover": "cover.jpg",
|
|
||||||
"category": "informatique"
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
En 2022, Microsoft dévoile **GitHub Copilot**, un outil révolutionnaire : une intelligence artificielle capable d’aider les programmeurs en générant du code automatiquement. Derrière cette prouesse technologique, un secret de fabrication : Copilot a été entraîné sur des **millions de lignes de code public**, hébergées sur GitHub, la plateforme de partage de projets informatiques appartenant… à Microsoft.
|
|
||||||
|
|
||||||
Très vite, l’enthousiasme laisse place à la colère. Des milliers de développeurs réalisent que **leur travail a servi à nourrir une machine commerciale**, sans leur consentement ni la moindre compensation. Sur les forums et les réseaux, le mot circule : “**extraction de travail gratuit**”. Ce qui était autrefois perçu comme un espace de collaboration ouverte se transforme en champ de bataille juridique et éthique.
|
|
||||||
|
|
||||||
Aux États-Unis, une **action collective** est lancée contre Microsoft et OpenAI. Les plaignants accusent les géants de la tech de **violer les droits d’auteur** en utilisant du code sous licence open source pour former leur IA. L’affaire devient un symbole : jusqu’où peut-on aller dans la collecte des données publiques pour nourrir les intelligences artificielles ?
|
|
||||||
|
|
||||||
Le débat dépasse vite le monde du code. Sur LinkedIn, certains s’interrogent : **et si nos textes, nos idées, nos posts publics devenaient, eux aussi, la matière première des IA linguistiques ?** Après tout, les mots que nous publions en ligne sont aux modèles de langage ce que le code open source était à Copilot : une ressource abondante, gratuite, mais pas nécessairement libre de droit.
|
|
||||||
|
|
||||||
Ainsi, l’histoire de GitHub Copilot n’est pas seulement celle d’une innovation technique — c’est le récit d’un **nouvel âge de la création**, où chaque ligne, chaque phrase partagée sur le web peut devenir une brique d’intelligence… parfois à notre insu.
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"uuid": "5b7030fa-68da-42b1-b181-49af17132fdf",
|
|
||||||
"slug": "github-copilot-l-assistant-qui-a-declenche-une-tempete",
|
|
||||||
"title": "GitHub Copilot, l’assistant qui a déclenché une tempête",
|
|
||||||
"author": "cedric@abonnel.fr",
|
|
||||||
"published": true,
|
|
||||||
"published_at": "2025-11-05 07:17:49",
|
|
||||||
"created_at": "2025-11-05 07:17:49",
|
|
||||||
"updated_at": "2025-11-05 07:17:49",
|
|
||||||
"revisions": [],
|
|
||||||
"cover": "cover.jpg",
|
|
||||||
"category": "actualité"
|
|
||||||
}
|
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
### Technologie et promesse
|
|
||||||
|
|
||||||
La **5G** est présentée comme la révolution ultime des réseaux mobiles. Débits massifs, latence ultra-faible, support d’un nombre astronomique d’objets connectés… mais derrière le discours marketing se cache une réalité plus nuancée :
|
|
||||||
|
|
||||||
* **Débits théoriques** : 100 Mbit/s en usage réel, jusqu’à 10 Gbit/s sur bandes millimétriques (mmWave) et zones ultra-denses.
|
|
||||||
* **Latence** : 1–10 ms, permettant cloud gaming, véhicules autonomes et IoT industriel.
|
|
||||||
* **Architecture** :
|
|
||||||
|
|
||||||
* **NSA (Non Standalone)** : la 5G repose sur la 4G pour le contrôle, 5G uniquement pour les débits.
|
|
||||||
* **SA (Standalone)** : réseau 5G indépendant avec cœur 5GC, latence minimale et optimisation maximale.
|
|
||||||
* **Fréquences** : de 700 MHz (longue portée) à 26 GHz (mmWave, très haut débit mais faible portée).
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### 5G+ : le “plus” marketing
|
|
||||||
|
|
||||||
* La **5G+** n’est pas une nouvelle génération mais une **dénomination commerciale** pour la 5G sur fréquences millimétriques ou avec agrégation de bandes.
|
|
||||||
* Objectif : mettre en avant des débits spectaculaires (souvent >1 Gbit/s) sur des zones très localisées.
|
|
||||||
* Limitation : portée extrêmement courte et sensibilité aux obstacles. Les débits annoncés ne sont atteints que pour une minorité d’abonnés.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### VoLTE : la voix sur LTE
|
|
||||||
|
|
||||||
* **VoLTE (Voice over LTE)** permet de passer les appels vocaux via le réseau 4G au lieu de basculer sur la 2G/3G.
|
|
||||||
* Avantages : meilleure qualité sonore, connexion plus rapide, possibilité de passer simultanément un appel et utiliser Internet.
|
|
||||||
* Limitation : nécessite un smartphone compatible et un réseau correctement configuré. Dans certaines zones, les abonnés passent encore par la 3G pour la voix, même avec un smartphone récent.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### DSS : Dynamic Spectrum Sharing
|
|
||||||
|
|
||||||
* **DSS** permet de **partager dynamiquement le spectre** entre 4G et 5G sur les mêmes fréquences.
|
|
||||||
* Avantages pour l’opérateur : déploiement rapide de la 5G sans attendre la libération complète du spectre.
|
|
||||||
* Limitation : la 4G existante peut être légèrement dégradée, ce qui reproduit l’effet déjà observé avec la 3G bridée pour forcer la migration.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Schéma suggéré : architecture 4G vs 5G
|
|
||||||
|
|
||||||
```mermaid
|
|
||||||
flowchart LR
|
|
||||||
subgraph 4G
|
|
||||||
A[UE - Mobile] --> B[eNodeB]
|
|
||||||
B --> C[EPC - Core Network]
|
|
||||||
end
|
|
||||||
|
|
||||||
subgraph 5G
|
|
||||||
D[UE - Mobile] --> E[gNodeB]
|
|
||||||
E --> F[5GC - Core Network]
|
|
||||||
end
|
|
||||||
```
|
|
||||||
|
|
||||||
* La 5G remplace eNodeB/EPC par gNodeB/5GC, réduisant la latence et augmentant l’efficacité, mais l’accès réel à ces débits reste limité selon la fréquence et la zone.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
La 5G, avec ses variantes **5G+, VoLTE, DSS**, illustre la complexité croissante du paysage mobile :
|
|
||||||
|
|
||||||
1. **Multiplicité des normes et labels** : 4G, 4G+, VoLTE, 5G, 5G+, DSS… pour l’utilisateur, il devient presque impossible de savoir ce qu’il utilise réellement.
|
|
||||||
2. **Marketing vs réalité** : les débits annoncés sont rarement atteints, et certaines zones restent sur une 4G bridée pour préparer la migration.
|
|
||||||
3. **Stratégie opérateur** : comme pour la 3G et la 4G, la pression sur l’utilisateur est subtile : dégrader légèrement les anciens réseaux, mettre en avant les nouvelles performances, et pousser à migrer progressivement.
|
|
||||||
|
|
||||||
> La “révolution 5G” existe techniquement, mais pour le consommateur moyen, elle se traduit souvent par une interface confuse et des débits très variables. Les promesses marketing et la réalité économique du déploiement ne coïncident pas toujours.
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"uuid": "663b0638-10fd-4549-8ff5-aebb3285388f",
|
|
||||||
"slug": "la-5g-promesse-derives-et-realite",
|
|
||||||
"title": "La 5G : promesse, dérivés et réalité",
|
|
||||||
"author": "cedric@abonnel.fr",
|
|
||||||
"published": true,
|
|
||||||
"published_at": "2025-11-05 08:45:44",
|
|
||||||
"created_at": "2025-11-05 08:45:44",
|
|
||||||
"updated_at": "2025-11-05 08:45:44",
|
|
||||||
"revisions": [],
|
|
||||||
"cover": "cover.jpg",
|
|
||||||
"category": "télécom"
|
|
||||||
}
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
#### 1. 🕒 **Durée de conservation**
|
|
||||||
- **Non ouvert** : Le ciment peut généralement se conserver entre **6 mois et 1 an** à partir de sa **date de fabrication**, à condition d’être stocké dans un endroit **sec et ventilé**, à l’abri de l’humidité.
|
|
||||||
- **Date limite** : Une date de péremption (ou une DLUO – date limite d’utilisation optimale) est souvent imprimée sur le sac.
|
|
||||||
|
|
||||||
#### 2. 📆 **Après ouverture**
|
|
||||||
- Le ciment entamé doit idéalement être utilisé **dans les 2 à 4 semaines**, car il absorbe très rapidement l’humidité de l’air, même si cela n’est pas visible à l’œil nu.
|
|
||||||
|
|
||||||
#### 3. 📦 **Stockage recommandé**
|
|
||||||
- À conserver sur une palette, dans un endroit **sec**, **tempéré** et **à l’abri de l’humidité**.
|
|
||||||
- Il est préférable d’éviter un contact direct avec le sol ou les murs.
|
|
||||||
- En cas de sac entamé, le stocker dans un contenant hermétique (seau, boîte plastique bien fermée, etc.).
|
|
||||||
|
|
||||||
#### 4. ⚠️ **Signes de dégradation**
|
|
||||||
- ❌ Si le ciment forme des **grumeaux durs** ou des **morceaux agglomérés**, c’est qu’il a commencé à faire prise : il est alors **impropre à l’usage**.
|
|
||||||
- ✅ Une poudre encore fine et homogène est généralement encore utilisable.
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"uuid": "6f8eeb6c-a89f-4261-b6c6-f9fbe527f19a",
|
|
||||||
"slug": "duree-de-vie-du-ciment",
|
|
||||||
"title": "Durée de vie du ciment",
|
|
||||||
"author": "cedric@abonnel.fr",
|
|
||||||
"published": true,
|
|
||||||
"published_at": "2025-04-04 14:13:00",
|
|
||||||
"created_at": "2025-04-04 14:13:00",
|
|
||||||
"updated_at": "2025-04-05 10:46:02",
|
|
||||||
"revisions": [],
|
|
||||||
"cover": "cover.jpg",
|
|
||||||
"category": "travaux"
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 42 KiB |
@@ -1,47 +0,0 @@
|
|||||||
*Démêlons le vrai du faux sur une affirmation qui revient régulièrement dans les débats autour de la fiscalité des véhicules à batterie.*
|
|
||||||
|
|
||||||
Depuis plusieurs mois, à mesure que s'intensifient les discussions sur une éventuelle taxe kilométrique visant les voitures électriques, une affirmation refait surface avec insistance sur les réseaux sociaux et dans certains articles : *« Le compteur Linky a été conçu pour reconnaître la connexion d'une voiture à batterie. »* La formule est efficace, presque inquiétante, et elle nourrit l'idée d'un État qui aurait anticipé depuis longtemps la surveillance des automobilistes électriques via leur compteur domestique.
|
|
||||||
|
|
||||||
Le problème, c'est que cette affirmation est tout simplement fausse. Ou plus exactement : elle confond grossièrement ce que Linky mesure réellement et ce qu'on lui prête comme capacités. Pour comprendre pourquoi, il faut revenir aux fondamentaux de ce qu'est un compteur électrique, même "intelligent".
|
|
||||||
|
|
||||||
## Ce que Linky mesure réellement
|
|
||||||
|
|
||||||
Un compteur Linky, c'est avant tout un instrument de mesure. Il enregistre la consommation électrique globale du logement, en temps quasi réel, avec une précision bien supérieure à celle des anciens compteurs électromécaniques. Concrètement, il relève la puissance instantanée appelée par l'ensemble de l'installation, l'intensité du courant qui circule sur les phases, ainsi que quelques paramètres plus techniques comme les harmoniques — des perturbations du signal qui renseignent sur la qualité du courant.
|
|
||||||
|
|
||||||
Tout cela est agrégé. Linky voit *un total*, pas une ventilation appareil par appareil. Quand votre four à 3 kW se met en route, le compteur enregistre une montée de 3 kW. Quand une wallbox commence à charger une voiture à 3,7 kW, il enregistre une montée de 3,7 kW. Du point de vue de Linky, ces deux événements sont parfaitement indiscernables. Il n'a aucun moyen de savoir si l'électricité part vers une plaque de cuisson, un chauffe-eau, un radiateur ou une Tesla branchée au garage.
|
|
||||||
|
|
||||||
C'est une limitation fondamentale, pas un oubli de conception : un compteur de tableau électrique se situe en amont de tout, sur l'arrivée générale. Il voit ce qui entre dans la maison, point final.
|
|
||||||
|
|
||||||
## Ce que Linky ne sait pas faire — et ne saura jamais faire en l'état
|
|
||||||
|
|
||||||
Contrairement à ce que certains articles laissent entendre, Linky n'a aucune capacité à identifier la nature des appareils qui se branchent. Il ne reconnaît pas une voiture électrique, ne lit pas les protocoles de communication entre une borne et un véhicule (Type 2, CCS, CHAdeMO), ne dialogue ni avec le chargeur embarqué ni avec le BMS — le système de gestion de batterie qui pilote la charge côté voiture. Aucune de ces fonctions ne figure dans ses spécifications techniques, qui sont publiques et consultables.
|
|
||||||
|
|
||||||
Linky n'est ni une prise connectée capable de profiler ce qui s'y branche, ni un analyseur de charge avancé, ni un dispositif de reconnaissance d'appareils par signature. C'est un compteur de facturation, conçu pour relever votre consommation à distance et permettre à votre fournisseur d'affiner les offres tarifaires (heures creuses dynamiques, par exemple). Tout le reste relève du fantasme ou de la confusion.
|
|
||||||
|
|
||||||
## D'où vient cette idée alors ?
|
|
||||||
|
|
||||||
La rumeur n'est pas née de nulle part. Elle s'enracine dans deux éléments réels, mais largement mal interprétés.
|
|
||||||
|
|
||||||
**Le premier, c'est l'existence de la TIC, la « télé-information client ».** Il s'agit d'une interface physique présente sur le compteur Linky, qui diffuse en continu certaines données : puissance souscrite, puissance instantanée appelée, index de consommation, période tarifaire en cours. Cette interface est *sortante* : elle envoie des informations vers l'extérieur, vers des appareils domestiques compatibles, mais elle ne reçoit rien en retour.
|
|
||||||
|
|
||||||
Certaines wallbox modernes sont capables de se brancher sur cette TIC pour lire en direct la puissance déjà consommée dans le logement. Elles ajustent alors automatiquement la puissance de charge de la voiture pour ne pas faire disjoncter l'installation : si quelqu'un allume le four pendant que la voiture charge, la borne réduit son appel de courant. C'est une fonction très utile, mais elle fonctionne dans un seul sens. **La wallbox lit Linky. Linky ne lit pas la wallbox, et encore moins la voiture.** Beaucoup de gens, en entendant parler de wallbox "communiquant avec Linky", imaginent un dialogue bidirectionnel qui n'existe pas.
|
|
||||||
|
|
||||||
**Le second élément, c'est l'arrivée du débat sur une taxe kilométrique.** Avec la baisse des recettes de TICPE liée à l'électrification du parc automobile, plusieurs think tanks et rapports parlementaires ont effectivement évoqué l'idée de taxer les kilomètres parcourus en VE, et certains ont mentionné Linky parmi les outils techniques *envisageables*. De cette spéculation prospective, une partie du public a tiré la conclusion que le compteur était déjà équipé pour le faire. Or il y a un gouffre entre « on pourrait peut-être un jour utiliser Linky comme brique d'un dispositif fiscal » et « Linky a été conçu pour ça ». Le premier est une hypothèse politique discutable ; le second est un raccourci qui ne correspond à aucune réalité technique.
|
|
||||||
|
|
||||||
## Et techniquement, ce serait possible un jour ?
|
|
||||||
|
|
||||||
C'est la question intéressante, et la réponse mérite plus de nuance qu'un simple oui ou non.
|
|
||||||
|
|
||||||
Il existe effectivement un champ de recherche actif, baptisé **NILM** pour *Non-Intrusive Load Monitoring*. L'idée : analyser la courbe de consommation globale d'un logement pour en déduire, par traitement du signal et apprentissage automatique, quels appareils s'y trouvent et quand ils fonctionnent. Chaque appareil aurait, en théorie, une "signature électrique" reconnaissable — un profil d'appel de courant au démarrage, un comportement en régime, etc.
|
|
||||||
|
|
||||||
En pratique, l'exercice est très difficile, et il l'est particulièrement pour la recharge d'un véhicule électrique. Une borne en charge se comporte comme une charge quasi constante de plusieurs kilowatts pendant plusieurs heures. C'est une signature… qui ressemble énormément à celle d'un chauffe-eau, d'un convecteur, d'un sèche-linge en cycle long ou d'un radiateur à inertie. Sans cadence de fonctionnement caractéristique, sans pics distinctifs, sans cycles courts, il n'y a rien de très spécifique à exploiter. Identifier de manière fiable qu'on a affaire à une voiture *et pas* à un autre appareil de puissance similaire reste un problème ouvert dans la littérature scientifique.
|
|
||||||
|
|
||||||
Mais surtout, et c'est le point essentiel : **Linky n'embarque aucun de ces algorithmes**. Il transmet des données de comptage agrégées à Enedis, qui les utilise pour la facturation et la gestion du réseau. Enedis n'a ni la mission, ni le droit légal, ni l'infrastructure pour analyser appareil par appareil les usages domestiques de ses clients. Le cadre réglementaire français, notamment via la CNIL, encadre strictement ce qui peut être fait des données de consommation, et toute exploitation plus fine — même la courbe de charge à pas fin — nécessite le consentement explicite de l'abonné.
|
|
||||||
|
|
||||||
## Ce qu'il faut retenir
|
|
||||||
|
|
||||||
Le compteur Linky mesure votre consommation globale, c'est vrai. Il permet à certaines bornes de recharge de moduler intelligemment leur puissance via la TIC, c'est vrai aussi. Mais il ne reconnaît pas, n'identifie pas et ne distingue pas une voiture électrique des autres appareils du logement. Cette capacité n'existe ni dans son matériel, ni dans son logiciel, ni dans les données qu'il transmet à Enedis.
|
|
||||||
|
|
||||||
L'affirmation selon laquelle « Linky a été conçu pour reconnaître la connexion d'une voiture à batterie » mélange donc trois choses très différentes : des capacités réelles mais limitées (mesure de puissance, interface TIC sortante), des usages techniques existants côté wallbox, et des hypothèses politiques sur de futurs dispositifs fiscaux. De cette confusion naît une rumeur frappante, mais infondée.
|
|
||||||
|
|
||||||
Le débat sur la fiscalité des véhicules électriques est légitime et important. Il mérite mieux que des affirmations qui n'ont pas de base technique.
|
|
||||||
@@ -1,58 +0,0 @@
|
|||||||
{
|
|
||||||
"uuid": "70b5f213-db76-4072-afb6-f876fe67aaf8",
|
|
||||||
"slug": "non-le-compteur-linky-ne-reconnait-pas-les-voitures-electriques",
|
|
||||||
"title": "Non, le compteur Linky n'est pas conçu pour repérer votre voiture électrique",
|
|
||||||
"author": "cedric@abonnel.fr",
|
|
||||||
"published": true,
|
|
||||||
"published_at": "2025-12-06 06:36",
|
|
||||||
"created_at": "2025-12-06 06:36:25",
|
|
||||||
"updated_at": "2026-05-12 01:32:46",
|
|
||||||
"revisions": [
|
|
||||||
{
|
|
||||||
"n": 1,
|
|
||||||
"date": "2026-05-12 01:27:37",
|
|
||||||
"comment": "",
|
|
||||||
"title": "Non, le compteur Linky n'est pas conçu pour repérer votre voiture électrique"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"n": 2,
|
|
||||||
"date": "2026-05-12 01:29:28",
|
|
||||||
"comment": "",
|
|
||||||
"title": "Non, le compteur Linky n'est pas conçu pour repérer votre voiture électrique"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"n": 3,
|
|
||||||
"date": "2026-05-12 01:30:49",
|
|
||||||
"comment": "",
|
|
||||||
"title": "Non, le compteur Linky n'est pas conçu pour repérer votre voiture électrique"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"n": 4,
|
|
||||||
"date": "2026-05-12 01:32:08",
|
|
||||||
"comment": "",
|
|
||||||
"title": "Non, le compteur Linky n'est pas conçu pour repérer votre voiture électrique"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"n": 5,
|
|
||||||
"date": "2026-05-12 01:32:46",
|
|
||||||
"comment": "",
|
|
||||||
"title": "Non, le compteur Linky n'est pas conçu pour repérer votre voiture électrique"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"cover": "cover.jpg",
|
|
||||||
"files_meta": {
|
|
||||||
"cover.jpg": {
|
|
||||||
"author": "",
|
|
||||||
"source_url": "https://www.letribunaldunet.fr/wp-content/uploads/2025/09/Maison-moderne-avec-panneaux-solaire-et-voiture-electrique-762x508.jpg"
|
|
||||||
},
|
|
||||||
"18917a438b4d07f9-71431.jpg": {
|
|
||||||
"author": "",
|
|
||||||
"source_url": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"external_links": [],
|
|
||||||
"seo_title": "",
|
|
||||||
"seo_description": "",
|
|
||||||
"og_image": "",
|
|
||||||
"category": "actualité"
|
|
||||||
}
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
*Démêlons le vrai du faux sur une affirmation qui revient régulièrement dans les débats autour de la fiscalité des véhicules à batterie.*
|
|
||||||
|
|
||||||
Depuis plusieurs mois, à mesure que s'intensifient les discussions sur une éventuelle taxe kilométrique visant les voitures électriques, une affirmation refait surface avec insistance sur les réseaux sociaux et dans certains articles : *« Le compteur Linky a été conçu pour reconnaître la connexion d'une voiture à batterie. »* La formule est efficace, presque inquiétante, et elle nourrit l'idée d'un État qui aurait anticipé depuis longtemps la surveillance des automobilistes électriques via leur compteur domestique.
|
|
||||||
|
|
||||||
Le problème, c'est que cette affirmation est tout simplement fausse. Ou plus exactement : elle confond grossièrement ce que Linky mesure réellement et ce qu'on lui prête comme capacités. Pour comprendre pourquoi, il faut revenir aux fondamentaux de ce qu'est un compteur électrique, même "intelligent".
|
|
||||||
|
|
||||||
## Ce que Linky mesure réellement
|
|
||||||
|
|
||||||
Un compteur Linky, c'est avant tout un instrument de mesure. Il enregistre la consommation électrique globale du logement, en temps quasi réel, avec une précision bien supérieure à celle des anciens compteurs électromécaniques. Concrètement, il relève la puissance instantanée appelée par l'ensemble de l'installation, l'intensité du courant qui circule sur les phases, ainsi que quelques paramètres plus techniques comme les harmoniques — des perturbations du signal qui renseignent sur la qualité du courant.
|
|
||||||
|
|
||||||
Tout cela est agrégé. Linky voit *un total*, pas une ventilation appareil par appareil. Quand votre four à 3 kW se met en route, le compteur enregistre une montée de 3 kW. Quand une wallbox commence à charger une voiture à 3,7 kW, il enregistre une montée de 3,7 kW. Du point de vue de Linky, ces deux événements sont parfaitement indiscernables. Il n'a aucun moyen de savoir si l'électricité part vers une plaque de cuisson, un chauffe-eau, un radiateur ou une Tesla branchée au garage.
|
|
||||||
|
|
||||||
C'est une limitation fondamentale, pas un oubli de conception : un compteur de tableau électrique se situe en amont de tout, sur l'arrivée générale. Il voit ce qui entre dans la maison, point final.
|
|
||||||
|
|
||||||
## Ce que Linky ne sait pas faire — et ne saura jamais faire en l'état
|
|
||||||
|
|
||||||
Contrairement à ce que certains articles laissent entendre, Linky n'a aucune capacité à identifier la nature des appareils qui se branchent. Il ne reconnaît pas une voiture électrique, ne lit pas les protocoles de communication entre une borne et un véhicule (Type 2, CCS, CHAdeMO), ne dialogue ni avec le chargeur embarqué ni avec le BMS — le système de gestion de batterie qui pilote la charge côté voiture. Aucune de ces fonctions ne figure dans ses spécifications techniques, qui sont publiques et consultables.
|
|
||||||
|
|
||||||
Linky n'est ni une prise connectée capable de profiler ce qui s'y branche, ni un analyseur de charge avancé, ni un dispositif de reconnaissance d'appareils par signature. C'est un compteur de facturation, conçu pour relever votre consommation à distance et permettre à votre fournisseur d'affiner les offres tarifaires (heures creuses dynamiques, par exemple). Tout le reste relève du fantasme ou de la confusion.
|
|
||||||
|
|
||||||
## D'où vient cette idée alors ?
|
|
||||||
|
|
||||||
La rumeur n'est pas née de nulle part. Elle s'enracine dans deux éléments réels, mais largement mal interprétés.
|
|
||||||
|
|
||||||
**Le premier, c'est l'existence de la TIC, la « télé-information client ».** Il s'agit d'une interface physique présente sur le compteur Linky, qui diffuse en continu certaines données : puissance souscrite, puissance instantanée appelée, index de consommation, période tarifaire en cours. Cette interface est *sortante* : elle envoie des informations vers l'extérieur, vers des appareils domestiques compatibles, mais elle ne reçoit rien en retour.
|
|
||||||
|
|
||||||
Certaines wallbox modernes sont capables de se brancher sur cette TIC pour lire en direct la puissance déjà consommée dans le logement. Elles ajustent alors automatiquement la puissance de charge de la voiture pour ne pas faire disjoncter l'installation : si quelqu'un allume le four pendant que la voiture charge, la borne réduit son appel de courant. C'est une fonction très utile, mais elle fonctionne dans un seul sens. **La wallbox lit Linky. Linky ne lit pas la wallbox, et encore moins la voiture.** Beaucoup de gens, en entendant parler de wallbox "communiquant avec Linky", imaginent un dialogue bidirectionnel qui n'existe pas.
|
|
||||||
|
|
||||||
**Le second élément, c'est l'arrivée du débat sur une taxe kilométrique.** Avec la baisse des recettes de TICPE liée à l'électrification du parc automobile, plusieurs think tanks et rapports parlementaires ont effectivement évoqué l'idée de taxer les kilomètres parcourus en VE, et certains ont mentionné Linky parmi les outils techniques *envisageables*. De cette spéculation prospective, une partie du public a tiré la conclusion que le compteur était déjà équipé pour le faire. Or il y a un gouffre entre « on pourrait peut-être un jour utiliser Linky comme brique d'un dispositif fiscal » et « Linky a été conçu pour ça ». Le premier est une hypothèse politique discutable ; le second est un raccourci qui ne correspond à aucune réalité technique.
|
|
||||||
|
|
||||||
## Et techniquement, ce serait possible un jour ?
|
|
||||||
|
|
||||||
C'est la question intéressante, et la réponse mérite plus de nuance qu'un simple oui ou non.
|
|
||||||
|
|
||||||
Il existe effectivement un champ de recherche actif, baptisé **NILM** pour *Non-Intrusive Load Monitoring*. L'idée : analyser la courbe de consommation globale d'un logement pour en déduire, par traitement du signal et apprentissage automatique, quels appareils s'y trouvent et quand ils fonctionnent. Chaque appareil aurait, en théorie, une "signature électrique" reconnaissable — un profil d'appel de courant au démarrage, un comportement en régime, etc.
|
|
||||||
|
|
||||||
En pratique, l'exercice est très difficile, et il l'est particulièrement pour la recharge d'un véhicule électrique. Une borne en charge se comporte comme une charge quasi constante de plusieurs kilowatts pendant plusieurs heures. C'est une signature… qui ressemble énormément à celle d'un chauffe-eau, d'un convecteur, d'un sèche-linge en cycle long ou d'un radiateur à inertie. Sans cadence de fonctionnement caractéristique, sans pics distinctifs, sans cycles courts, il n'y a rien de très spécifique à exploiter. Identifier de manière fiable qu'on a affaire à une voiture *et pas* à un autre appareil de puissance similaire reste un problème ouvert dans la littérature scientifique.
|
|
||||||
|
|
||||||
Mais surtout, et c'est le point essentiel : **Linky n'embarque aucun de ces algorithmes**. Il transmet des données de comptage agrégées à Enedis, qui les utilise pour la facturation et la gestion du réseau. Enedis n'a ni la mission, ni le droit légal, ni l'infrastructure pour analyser appareil par appareil les usages domestiques de ses clients. Le cadre réglementaire français, notamment via la CNIL, encadre strictement ce qui peut être fait des données de consommation, et toute exploitation plus fine — même la courbe de charge à pas fin — nécessite le consentement explicite de l'abonné.
|
|
||||||
|
|
||||||
## Ce qu'il faut retenir
|
|
||||||
|
|
||||||
Le compteur Linky mesure votre consommation globale, c'est vrai. Il permet à certaines bornes de recharge de moduler intelligemment leur puissance via la TIC, c'est vrai aussi. Mais il ne reconnaît pas, n'identifie pas et ne distingue pas une voiture électrique des autres appareils du logement. Cette capacité n'existe ni dans son matériel, ni dans son logiciel, ni dans les données qu'il transmet à Enedis.
|
|
||||||
|
|
||||||
L'affirmation selon laquelle « Linky a été conçu pour reconnaître la connexion d'une voiture à batterie » mélange donc trois choses très différentes : des capacités réelles mais limitées (mesure de puissance, interface TIC sortante), des usages techniques existants côté wallbox, et des hypothèses politiques sur de futurs dispositifs fiscaux. De cette confusion naît une rumeur frappante, mais infondée.
|
|
||||||
|
|
||||||
Le débat sur la fiscalité des véhicules électriques est légitime et important. Il mérite mieux que des affirmations qui n'ont pas de base technique.
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
*Démêlons le vrai du faux sur une affirmation qui revient régulièrement dans les débats autour de la fiscalité des véhicules à batterie.*
|
|
||||||
|
|
||||||
Depuis plusieurs mois, à mesure que s'intensifient les discussions sur une éventuelle taxe kilométrique visant les voitures électriques, une affirmation refait surface avec insistance sur les réseaux sociaux et dans certains articles : *« Le compteur Linky a été conçu pour reconnaître la connexion d'une voiture à batterie. »* La formule est efficace, presque inquiétante, et elle nourrit l'idée d'un État qui aurait anticipé depuis longtemps la surveillance des automobilistes électriques via leur compteur domestique.
|
|
||||||
|
|
||||||
Le problème, c'est que cette affirmation est tout simplement fausse. Ou plus exactement : elle confond grossièrement ce que Linky mesure réellement et ce qu'on lui prête comme capacités. Pour comprendre pourquoi, il faut revenir aux fondamentaux de ce qu'est un compteur électrique, même "intelligent".
|
|
||||||
|
|
||||||
## Ce que Linky mesure réellement
|
|
||||||
|
|
||||||
Un compteur Linky, c'est avant tout un instrument de mesure. Il enregistre la consommation électrique globale du logement, en temps quasi réel, avec une précision bien supérieure à celle des anciens compteurs électromécaniques. Concrètement, il relève la puissance instantanée appelée par l'ensemble de l'installation, l'intensité du courant qui circule sur les phases, ainsi que quelques paramètres plus techniques comme les harmoniques — des perturbations du signal qui renseignent sur la qualité du courant.
|
|
||||||
|
|
||||||
Tout cela est agrégé. Linky voit *un total*, pas une ventilation appareil par appareil. Quand votre four à 3 kW se met en route, le compteur enregistre une montée de 3 kW. Quand une wallbox commence à charger une voiture à 3,7 kW, il enregistre une montée de 3,7 kW. Du point de vue de Linky, ces deux événements sont parfaitement indiscernables. Il n'a aucun moyen de savoir si l'électricité part vers une plaque de cuisson, un chauffe-eau, un radiateur ou une Tesla branchée au garage.
|
|
||||||
|
|
||||||
C'est une limitation fondamentale, pas un oubli de conception : un compteur de tableau électrique se situe en amont de tout, sur l'arrivée générale. Il voit ce qui entre dans la maison, point final.
|
|
||||||
|
|
||||||
## Ce que Linky ne sait pas faire — et ne saura jamais faire en l'état
|
|
||||||
|
|
||||||
Contrairement à ce que certains articles laissent entendre, Linky n'a aucune capacité à identifier la nature des appareils qui se branchent. Il ne reconnaît pas une voiture électrique, ne lit pas les protocoles de communication entre une borne et un véhicule (Type 2, CCS, CHAdeMO), ne dialogue ni avec le chargeur embarqué ni avec le BMS — le système de gestion de batterie qui pilote la charge côté voiture. Aucune de ces fonctions ne figure dans ses spécifications techniques, qui sont publiques et consultables.
|
|
||||||
|
|
||||||
Linky n'est ni une prise connectée capable de profiler ce qui s'y branche, ni un analyseur de charge avancé, ni un dispositif de reconnaissance d'appareils par signature. C'est un compteur de facturation, conçu pour relever votre consommation à distance et permettre à votre fournisseur d'affiner les offres tarifaires (heures creuses dynamiques, par exemple). Tout le reste relève du fantasme ou de la confusion.
|
|
||||||
|
|
||||||
## D'où vient cette idée alors ?
|
|
||||||
|
|
||||||
La rumeur n'est pas née de nulle part. Elle s'enracine dans deux éléments réels, mais largement mal interprétés.
|
|
||||||
|
|
||||||
**Le premier, c'est l'existence de la TIC, la « télé-information client ».** Il s'agit d'une interface physique présente sur le compteur Linky, qui diffuse en continu certaines données : puissance souscrite, puissance instantanée appelée, index de consommation, période tarifaire en cours. Cette interface est *sortante* : elle envoie des informations vers l'extérieur, vers des appareils domestiques compatibles, mais elle ne reçoit rien en retour.
|
|
||||||
|
|
||||||
Certaines wallbox modernes sont capables de se brancher sur cette TIC pour lire en direct la puissance déjà consommée dans le logement. Elles ajustent alors automatiquement la puissance de charge de la voiture pour ne pas faire disjoncter l'installation : si quelqu'un allume le four pendant que la voiture charge, la borne réduit son appel de courant. C'est une fonction très utile, mais elle fonctionne dans un seul sens. **La wallbox lit Linky. Linky ne lit pas la wallbox, et encore moins la voiture.** Beaucoup de gens, en entendant parler de wallbox "communiquant avec Linky", imaginent un dialogue bidirectionnel qui n'existe pas.
|
|
||||||
|
|
||||||
**Le second élément, c'est l'arrivée du débat sur une taxe kilométrique.** Avec la baisse des recettes de TICPE liée à l'électrification du parc automobile, plusieurs think tanks et rapports parlementaires ont effectivement évoqué l'idée de taxer les kilomètres parcourus en VE, et certains ont mentionné Linky parmi les outils techniques *envisageables*. De cette spéculation prospective, une partie du public a tiré la conclusion que le compteur était déjà équipé pour le faire. Or il y a un gouffre entre « on pourrait peut-être un jour utiliser Linky comme brique d'un dispositif fiscal » et « Linky a été conçu pour ça ». Le premier est une hypothèse politique discutable ; le second est un raccourci qui ne correspond à aucune réalité technique.
|
|
||||||
|
|
||||||
## Et techniquement, ce serait possible un jour ?
|
|
||||||
|
|
||||||
C'est la question intéressante, et la réponse mérite plus de nuance qu'un simple oui ou non.
|
|
||||||
|
|
||||||
Il existe effectivement un champ de recherche actif, baptisé **NILM** pour *Non-Intrusive Load Monitoring*. L'idée : analyser la courbe de consommation globale d'un logement pour en déduire, par traitement du signal et apprentissage automatique, quels appareils s'y trouvent et quand ils fonctionnent. Chaque appareil aurait, en théorie, une "signature électrique" reconnaissable — un profil d'appel de courant au démarrage, un comportement en régime, etc.
|
|
||||||
|
|
||||||
En pratique, l'exercice est très difficile, et il l'est particulièrement pour la recharge d'un véhicule électrique. Une borne en charge se comporte comme une charge quasi constante de plusieurs kilowatts pendant plusieurs heures. C'est une signature… qui ressemble énormément à celle d'un chauffe-eau, d'un convecteur, d'un sèche-linge en cycle long ou d'un radiateur à inertie. Sans cadence de fonctionnement caractéristique, sans pics distinctifs, sans cycles courts, il n'y a rien de très spécifique à exploiter. Identifier de manière fiable qu'on a affaire à une voiture *et pas* à un autre appareil de puissance similaire reste un problème ouvert dans la littérature scientifique.
|
|
||||||
|
|
||||||
Mais surtout, et c'est le point essentiel : **Linky n'embarque aucun de ces algorithmes**. Il transmet des données de comptage agrégées à Enedis, qui les utilise pour la facturation et la gestion du réseau. Enedis n'a ni la mission, ni le droit légal, ni l'infrastructure pour analyser appareil par appareil les usages domestiques de ses clients. Le cadre réglementaire français, notamment via la CNIL, encadre strictement ce qui peut être fait des données de consommation, et toute exploitation plus fine — même la courbe de charge à pas fin — nécessite le consentement explicite de l'abonné.
|
|
||||||
|
|
||||||
## Ce qu'il faut retenir
|
|
||||||
|
|
||||||
Le compteur Linky mesure votre consommation globale, c'est vrai. Il permet à certaines bornes de recharge de moduler intelligemment leur puissance via la TIC, c'est vrai aussi. Mais il ne reconnaît pas, n'identifie pas et ne distingue pas une voiture électrique des autres appareils du logement. Cette capacité n'existe ni dans son matériel, ni dans son logiciel, ni dans les données qu'il transmet à Enedis.
|
|
||||||
|
|
||||||
L'affirmation selon laquelle « Linky a été conçu pour reconnaître la connexion d'une voiture à batterie » mélange donc trois choses très différentes : des capacités réelles mais limitées (mesure de puissance, interface TIC sortante), des usages techniques existants côté wallbox, et des hypothèses politiques sur de futurs dispositifs fiscaux. De cette confusion naît une rumeur frappante, mais infondée.
|
|
||||||
|
|
||||||
Le débat sur la fiscalité des véhicules électriques est légitime et important. Il mérite mieux que des affirmations qui n'ont pas de base technique.
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
*Démêlons le vrai du faux sur une affirmation qui revient régulièrement dans les débats autour de la fiscalité des véhicules à batterie.*
|
|
||||||
|
|
||||||
Depuis plusieurs mois, à mesure que s'intensifient les discussions sur une éventuelle taxe kilométrique visant les voitures électriques, une affirmation refait surface avec insistance sur les réseaux sociaux et dans certains articles : *« Le compteur Linky a été conçu pour reconnaître la connexion d'une voiture à batterie. »* La formule est efficace, presque inquiétante, et elle nourrit l'idée d'un État qui aurait anticipé depuis longtemps la surveillance des automobilistes électriques via leur compteur domestique.
|
|
||||||
|
|
||||||
Le problème, c'est que cette affirmation est tout simplement fausse. Ou plus exactement : elle confond grossièrement ce que Linky mesure réellement et ce qu'on lui prête comme capacités. Pour comprendre pourquoi, il faut revenir aux fondamentaux de ce qu'est un compteur électrique, même "intelligent".
|
|
||||||
|
|
||||||
## Ce que Linky mesure réellement
|
|
||||||
|
|
||||||
Un compteur Linky, c'est avant tout un instrument de mesure. Il enregistre la consommation électrique globale du logement, en temps quasi réel, avec une précision bien supérieure à celle des anciens compteurs électromécaniques. Concrètement, il relève la puissance instantanée appelée par l'ensemble de l'installation, l'intensité du courant qui circule sur les phases, ainsi que quelques paramètres plus techniques comme les harmoniques — des perturbations du signal qui renseignent sur la qualité du courant.
|
|
||||||
|
|
||||||
Tout cela est agrégé. Linky voit *un total*, pas une ventilation appareil par appareil. Quand votre four à 3 kW se met en route, le compteur enregistre une montée de 3 kW. Quand une wallbox commence à charger une voiture à 3,7 kW, il enregistre une montée de 3,7 kW. Du point de vue de Linky, ces deux événements sont parfaitement indiscernables. Il n'a aucun moyen de savoir si l'électricité part vers une plaque de cuisson, un chauffe-eau, un radiateur ou une Tesla branchée au garage.
|
|
||||||
|
|
||||||
C'est une limitation fondamentale, pas un oubli de conception : un compteur de tableau électrique se situe en amont de tout, sur l'arrivée générale. Il voit ce qui entre dans la maison, point final.
|
|
||||||
|
|
||||||
## Ce que Linky ne sait pas faire — et ne saura jamais faire en l'état
|
|
||||||
|
|
||||||
Contrairement à ce que certains articles laissent entendre, Linky n'a aucune capacité à identifier la nature des appareils qui se branchent. Il ne reconnaît pas une voiture électrique, ne lit pas les protocoles de communication entre une borne et un véhicule (Type 2, CCS, CHAdeMO), ne dialogue ni avec le chargeur embarqué ni avec le BMS — le système de gestion de batterie qui pilote la charge côté voiture. Aucune de ces fonctions ne figure dans ses spécifications techniques, qui sont publiques et consultables.
|
|
||||||
|
|
||||||
Linky n'est ni une prise connectée capable de profiler ce qui s'y branche, ni un analyseur de charge avancé, ni un dispositif de reconnaissance d'appareils par signature. C'est un compteur de facturation, conçu pour relever votre consommation à distance et permettre à votre fournisseur d'affiner les offres tarifaires (heures creuses dynamiques, par exemple). Tout le reste relève du fantasme ou de la confusion.
|
|
||||||
|
|
||||||
## D'où vient cette idée alors ?
|
|
||||||
|
|
||||||
La rumeur n'est pas née de nulle part. Elle s'enracine dans deux éléments réels, mais largement mal interprétés.
|
|
||||||
|
|
||||||
**Le premier, c'est l'existence de la TIC, la « télé-information client ».** Il s'agit d'une interface physique présente sur le compteur Linky, qui diffuse en continu certaines données : puissance souscrite, puissance instantanée appelée, index de consommation, période tarifaire en cours. Cette interface est *sortante* : elle envoie des informations vers l'extérieur, vers des appareils domestiques compatibles, mais elle ne reçoit rien en retour.
|
|
||||||
|
|
||||||
Certaines wallbox modernes sont capables de se brancher sur cette TIC pour lire en direct la puissance déjà consommée dans le logement. Elles ajustent alors automatiquement la puissance de charge de la voiture pour ne pas faire disjoncter l'installation : si quelqu'un allume le four pendant que la voiture charge, la borne réduit son appel de courant. C'est une fonction très utile, mais elle fonctionne dans un seul sens. **La wallbox lit Linky. Linky ne lit pas la wallbox, et encore moins la voiture.** Beaucoup de gens, en entendant parler de wallbox "communiquant avec Linky", imaginent un dialogue bidirectionnel qui n'existe pas.
|
|
||||||
|
|
||||||
**Le second élément, c'est l'arrivée du débat sur une taxe kilométrique.** Avec la baisse des recettes de TICPE liée à l'électrification du parc automobile, plusieurs think tanks et rapports parlementaires ont effectivement évoqué l'idée de taxer les kilomètres parcourus en VE, et certains ont mentionné Linky parmi les outils techniques *envisageables*. De cette spéculation prospective, une partie du public a tiré la conclusion que le compteur était déjà équipé pour le faire. Or il y a un gouffre entre « on pourrait peut-être un jour utiliser Linky comme brique d'un dispositif fiscal » et « Linky a été conçu pour ça ». Le premier est une hypothèse politique discutable ; le second est un raccourci qui ne correspond à aucune réalité technique.
|
|
||||||
|
|
||||||
## Et techniquement, ce serait possible un jour ?
|
|
||||||
|
|
||||||
C'est la question intéressante, et la réponse mérite plus de nuance qu'un simple oui ou non.
|
|
||||||
|
|
||||||
Il existe effectivement un champ de recherche actif, baptisé **NILM** pour *Non-Intrusive Load Monitoring*. L'idée : analyser la courbe de consommation globale d'un logement pour en déduire, par traitement du signal et apprentissage automatique, quels appareils s'y trouvent et quand ils fonctionnent. Chaque appareil aurait, en théorie, une "signature électrique" reconnaissable — un profil d'appel de courant au démarrage, un comportement en régime, etc.
|
|
||||||
|
|
||||||
En pratique, l'exercice est très difficile, et il l'est particulièrement pour la recharge d'un véhicule électrique. Une borne en charge se comporte comme une charge quasi constante de plusieurs kilowatts pendant plusieurs heures. C'est une signature… qui ressemble énormément à celle d'un chauffe-eau, d'un convecteur, d'un sèche-linge en cycle long ou d'un radiateur à inertie. Sans cadence de fonctionnement caractéristique, sans pics distinctifs, sans cycles courts, il n'y a rien de très spécifique à exploiter. Identifier de manière fiable qu'on a affaire à une voiture *et pas* à un autre appareil de puissance similaire reste un problème ouvert dans la littérature scientifique.
|
|
||||||
|
|
||||||
Mais surtout, et c'est le point essentiel : **Linky n'embarque aucun de ces algorithmes**. Il transmet des données de comptage agrégées à Enedis, qui les utilise pour la facturation et la gestion du réseau. Enedis n'a ni la mission, ni le droit légal, ni l'infrastructure pour analyser appareil par appareil les usages domestiques de ses clients. Le cadre réglementaire français, notamment via la CNIL, encadre strictement ce qui peut être fait des données de consommation, et toute exploitation plus fine — même la courbe de charge à pas fin — nécessite le consentement explicite de l'abonné.
|
|
||||||
|
|
||||||
## Ce qu'il faut retenir
|
|
||||||
|
|
||||||
Le compteur Linky mesure votre consommation globale, c'est vrai. Il permet à certaines bornes de recharge de moduler intelligemment leur puissance via la TIC, c'est vrai aussi. Mais il ne reconnaît pas, n'identifie pas et ne distingue pas une voiture électrique des autres appareils du logement. Cette capacité n'existe ni dans son matériel, ni dans son logiciel, ni dans les données qu'il transmet à Enedis.
|
|
||||||
|
|
||||||
L'affirmation selon laquelle « Linky a été conçu pour reconnaître la connexion d'une voiture à batterie » mélange donc trois choses très différentes : des capacités réelles mais limitées (mesure de puissance, interface TIC sortante), des usages techniques existants côté wallbox, et des hypothèses politiques sur de futurs dispositifs fiscaux. De cette confusion naît une rumeur frappante, mais infondée.
|
|
||||||
|
|
||||||
Le débat sur la fiscalité des véhicules électriques est légitime et important. Il mérite mieux que des affirmations qui n'ont pas de base technique.
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
*Démêlons le vrai du faux sur une affirmation qui revient régulièrement dans les débats autour de la fiscalité des véhicules à batterie.*
|
|
||||||
|
|
||||||
Depuis plusieurs mois, à mesure que s'intensifient les discussions sur une éventuelle taxe kilométrique visant les voitures électriques, une affirmation refait surface avec insistance sur les réseaux sociaux et dans certains articles : *« Le compteur Linky a été conçu pour reconnaître la connexion d'une voiture à batterie. »* La formule est efficace, presque inquiétante, et elle nourrit l'idée d'un État qui aurait anticipé depuis longtemps la surveillance des automobilistes électriques via leur compteur domestique.
|
|
||||||
|
|
||||||
Le problème, c'est que cette affirmation est tout simplement fausse. Ou plus exactement : elle confond grossièrement ce que Linky mesure réellement et ce qu'on lui prête comme capacités. Pour comprendre pourquoi, il faut revenir aux fondamentaux de ce qu'est un compteur électrique, même "intelligent".
|
|
||||||
|
|
||||||
## Ce que Linky mesure réellement
|
|
||||||
|
|
||||||
Un compteur Linky, c'est avant tout un instrument de mesure. Il enregistre la consommation électrique globale du logement, en temps quasi réel, avec une précision bien supérieure à celle des anciens compteurs électromécaniques. Concrètement, il relève la puissance instantanée appelée par l'ensemble de l'installation, l'intensité du courant qui circule sur les phases, ainsi que quelques paramètres plus techniques comme les harmoniques — des perturbations du signal qui renseignent sur la qualité du courant.
|
|
||||||
|
|
||||||
Tout cela est agrégé. Linky voit *un total*, pas une ventilation appareil par appareil. Quand votre four à 3 kW se met en route, le compteur enregistre une montée de 3 kW. Quand une wallbox commence à charger une voiture à 3,7 kW, il enregistre une montée de 3,7 kW. Du point de vue de Linky, ces deux événements sont parfaitement indiscernables. Il n'a aucun moyen de savoir si l'électricité part vers une plaque de cuisson, un chauffe-eau, un radiateur ou une Tesla branchée au garage.
|
|
||||||
|
|
||||||
C'est une limitation fondamentale, pas un oubli de conception : un compteur de tableau électrique se situe en amont de tout, sur l'arrivée générale. Il voit ce qui entre dans la maison, point final.
|
|
||||||
|
|
||||||
## Ce que Linky ne sait pas faire — et ne saura jamais faire en l'état
|
|
||||||
|
|
||||||
Contrairement à ce que certains articles laissent entendre, Linky n'a aucune capacité à identifier la nature des appareils qui se branchent. Il ne reconnaît pas une voiture électrique, ne lit pas les protocoles de communication entre une borne et un véhicule (Type 2, CCS, CHAdeMO), ne dialogue ni avec le chargeur embarqué ni avec le BMS — le système de gestion de batterie qui pilote la charge côté voiture. Aucune de ces fonctions ne figure dans ses spécifications techniques, qui sont publiques et consultables.
|
|
||||||
|
|
||||||
Linky n'est ni une prise connectée capable de profiler ce qui s'y branche, ni un analyseur de charge avancé, ni un dispositif de reconnaissance d'appareils par signature. C'est un compteur de facturation, conçu pour relever votre consommation à distance et permettre à votre fournisseur d'affiner les offres tarifaires (heures creuses dynamiques, par exemple). Tout le reste relève du fantasme ou de la confusion.
|
|
||||||
|
|
||||||
## D'où vient cette idée alors ?
|
|
||||||
|
|
||||||
La rumeur n'est pas née de nulle part. Elle s'enracine dans deux éléments réels, mais largement mal interprétés.
|
|
||||||
|
|
||||||
**Le premier, c'est l'existence de la TIC, la « télé-information client ».** Il s'agit d'une interface physique présente sur le compteur Linky, qui diffuse en continu certaines données : puissance souscrite, puissance instantanée appelée, index de consommation, période tarifaire en cours. Cette interface est *sortante* : elle envoie des informations vers l'extérieur, vers des appareils domestiques compatibles, mais elle ne reçoit rien en retour.
|
|
||||||
|
|
||||||
Certaines wallbox modernes sont capables de se brancher sur cette TIC pour lire en direct la puissance déjà consommée dans le logement. Elles ajustent alors automatiquement la puissance de charge de la voiture pour ne pas faire disjoncter l'installation : si quelqu'un allume le four pendant que la voiture charge, la borne réduit son appel de courant. C'est une fonction très utile, mais elle fonctionne dans un seul sens. **La wallbox lit Linky. Linky ne lit pas la wallbox, et encore moins la voiture.** Beaucoup de gens, en entendant parler de wallbox "communiquant avec Linky", imaginent un dialogue bidirectionnel qui n'existe pas.
|
|
||||||
|
|
||||||
**Le second élément, c'est l'arrivée du débat sur une taxe kilométrique.** Avec la baisse des recettes de TICPE liée à l'électrification du parc automobile, plusieurs think tanks et rapports parlementaires ont effectivement évoqué l'idée de taxer les kilomètres parcourus en VE, et certains ont mentionné Linky parmi les outils techniques *envisageables*. De cette spéculation prospective, une partie du public a tiré la conclusion que le compteur était déjà équipé pour le faire. Or il y a un gouffre entre « on pourrait peut-être un jour utiliser Linky comme brique d'un dispositif fiscal » et « Linky a été conçu pour ça ». Le premier est une hypothèse politique discutable ; le second est un raccourci qui ne correspond à aucune réalité technique.
|
|
||||||
|
|
||||||
## Et techniquement, ce serait possible un jour ?
|
|
||||||
|
|
||||||
C'est la question intéressante, et la réponse mérite plus de nuance qu'un simple oui ou non.
|
|
||||||
|
|
||||||
Il existe effectivement un champ de recherche actif, baptisé **NILM** pour *Non-Intrusive Load Monitoring*. L'idée : analyser la courbe de consommation globale d'un logement pour en déduire, par traitement du signal et apprentissage automatique, quels appareils s'y trouvent et quand ils fonctionnent. Chaque appareil aurait, en théorie, une "signature électrique" reconnaissable — un profil d'appel de courant au démarrage, un comportement en régime, etc.
|
|
||||||
|
|
||||||
En pratique, l'exercice est très difficile, et il l'est particulièrement pour la recharge d'un véhicule électrique. Une borne en charge se comporte comme une charge quasi constante de plusieurs kilowatts pendant plusieurs heures. C'est une signature… qui ressemble énormément à celle d'un chauffe-eau, d'un convecteur, d'un sèche-linge en cycle long ou d'un radiateur à inertie. Sans cadence de fonctionnement caractéristique, sans pics distinctifs, sans cycles courts, il n'y a rien de très spécifique à exploiter. Identifier de manière fiable qu'on a affaire à une voiture *et pas* à un autre appareil de puissance similaire reste un problème ouvert dans la littérature scientifique.
|
|
||||||
|
|
||||||
Mais surtout, et c'est le point essentiel : **Linky n'embarque aucun de ces algorithmes**. Il transmet des données de comptage agrégées à Enedis, qui les utilise pour la facturation et la gestion du réseau. Enedis n'a ni la mission, ni le droit légal, ni l'infrastructure pour analyser appareil par appareil les usages domestiques de ses clients. Le cadre réglementaire français, notamment via la CNIL, encadre strictement ce qui peut être fait des données de consommation, et toute exploitation plus fine — même la courbe de charge à pas fin — nécessite le consentement explicite de l'abonné.
|
|
||||||
|
|
||||||
## Ce qu'il faut retenir
|
|
||||||
|
|
||||||
Le compteur Linky mesure votre consommation globale, c'est vrai. Il permet à certaines bornes de recharge de moduler intelligemment leur puissance via la TIC, c'est vrai aussi. Mais il ne reconnaît pas, n'identifie pas et ne distingue pas une voiture électrique des autres appareils du logement. Cette capacité n'existe ni dans son matériel, ni dans son logiciel, ni dans les données qu'il transmet à Enedis.
|
|
||||||
|
|
||||||
L'affirmation selon laquelle « Linky a été conçu pour reconnaître la connexion d'une voiture à batterie » mélange donc trois choses très différentes : des capacités réelles mais limitées (mesure de puissance, interface TIC sortante), des usages techniques existants côté wallbox, et des hypothèses politiques sur de futurs dispositifs fiscaux. De cette confusion naît une rumeur frappante, mais infondée.
|
|
||||||
|
|
||||||
Le débat sur la fiscalité des véhicules électriques est légitime et important. Il mérite mieux que des affirmations qui n'ont pas de base technique.
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
*Démêlons le vrai du faux sur une affirmation qui revient régulièrement dans les débats autour de la fiscalité des véhicules à batterie.*
|
|
||||||
|
|
||||||
Depuis plusieurs mois, à mesure que s'intensifient les discussions sur une éventuelle taxe kilométrique visant les voitures électriques, une affirmation refait surface avec insistance sur les réseaux sociaux et dans certains articles : *« Le compteur Linky a été conçu pour reconnaître la connexion d'une voiture à batterie. »* La formule est efficace, presque inquiétante, et elle nourrit l'idée d'un État qui aurait anticipé depuis longtemps la surveillance des automobilistes électriques via leur compteur domestique.
|
|
||||||
|
|
||||||
Le problème, c'est que cette affirmation est tout simplement fausse. Ou plus exactement : elle confond grossièrement ce que Linky mesure réellement et ce qu'on lui prête comme capacités. Pour comprendre pourquoi, il faut revenir aux fondamentaux de ce qu'est un compteur électrique, même "intelligent".
|
|
||||||
|
|
||||||
## Ce que Linky mesure réellement
|
|
||||||
|
|
||||||
Un compteur Linky, c'est avant tout un instrument de mesure. Il enregistre la consommation électrique globale du logement, en temps quasi réel, avec une précision bien supérieure à celle des anciens compteurs électromécaniques. Concrètement, il relève la puissance instantanée appelée par l'ensemble de l'installation, l'intensité du courant qui circule sur les phases, ainsi que quelques paramètres plus techniques comme les harmoniques — des perturbations du signal qui renseignent sur la qualité du courant.
|
|
||||||
|
|
||||||
Tout cela est agrégé. Linky voit *un total*, pas une ventilation appareil par appareil. Quand votre four à 3 kW se met en route, le compteur enregistre une montée de 3 kW. Quand une wallbox commence à charger une voiture à 3,7 kW, il enregistre une montée de 3,7 kW. Du point de vue de Linky, ces deux événements sont parfaitement indiscernables. Il n'a aucun moyen de savoir si l'électricité part vers une plaque de cuisson, un chauffe-eau, un radiateur ou une Tesla branchée au garage.
|
|
||||||
|
|
||||||
C'est une limitation fondamentale, pas un oubli de conception : un compteur de tableau électrique se situe en amont de tout, sur l'arrivée générale. Il voit ce qui entre dans la maison, point final.
|
|
||||||
|
|
||||||
## Ce que Linky ne sait pas faire — et ne saura jamais faire en l'état
|
|
||||||
|
|
||||||
Contrairement à ce que certains articles laissent entendre, Linky n'a aucune capacité à identifier la nature des appareils qui se branchent. Il ne reconnaît pas une voiture électrique, ne lit pas les protocoles de communication entre une borne et un véhicule (Type 2, CCS, CHAdeMO), ne dialogue ni avec le chargeur embarqué ni avec le BMS — le système de gestion de batterie qui pilote la charge côté voiture. Aucune de ces fonctions ne figure dans ses spécifications techniques, qui sont publiques et consultables.
|
|
||||||
|
|
||||||
Linky n'est ni une prise connectée capable de profiler ce qui s'y branche, ni un analyseur de charge avancé, ni un dispositif de reconnaissance d'appareils par signature. C'est un compteur de facturation, conçu pour relever votre consommation à distance et permettre à votre fournisseur d'affiner les offres tarifaires (heures creuses dynamiques, par exemple). Tout le reste relève du fantasme ou de la confusion.
|
|
||||||
|
|
||||||
## D'où vient cette idée alors ?
|
|
||||||
|
|
||||||
La rumeur n'est pas née de nulle part. Elle s'enracine dans deux éléments réels, mais largement mal interprétés.
|
|
||||||
|
|
||||||
**Le premier, c'est l'existence de la TIC, la « télé-information client ».** Il s'agit d'une interface physique présente sur le compteur Linky, qui diffuse en continu certaines données : puissance souscrite, puissance instantanée appelée, index de consommation, période tarifaire en cours. Cette interface est *sortante* : elle envoie des informations vers l'extérieur, vers des appareils domestiques compatibles, mais elle ne reçoit rien en retour.
|
|
||||||
|
|
||||||
Certaines wallbox modernes sont capables de se brancher sur cette TIC pour lire en direct la puissance déjà consommée dans le logement. Elles ajustent alors automatiquement la puissance de charge de la voiture pour ne pas faire disjoncter l'installation : si quelqu'un allume le four pendant que la voiture charge, la borne réduit son appel de courant. C'est une fonction très utile, mais elle fonctionne dans un seul sens. **La wallbox lit Linky. Linky ne lit pas la wallbox, et encore moins la voiture.** Beaucoup de gens, en entendant parler de wallbox "communiquant avec Linky", imaginent un dialogue bidirectionnel qui n'existe pas.
|
|
||||||
|
|
||||||
**Le second élément, c'est l'arrivée du débat sur une taxe kilométrique.** Avec la baisse des recettes de TICPE liée à l'électrification du parc automobile, plusieurs think tanks et rapports parlementaires ont effectivement évoqué l'idée de taxer les kilomètres parcourus en VE, et certains ont mentionné Linky parmi les outils techniques *envisageables*. De cette spéculation prospective, une partie du public a tiré la conclusion que le compteur était déjà équipé pour le faire. Or il y a un gouffre entre « on pourrait peut-être un jour utiliser Linky comme brique d'un dispositif fiscal » et « Linky a été conçu pour ça ». Le premier est une hypothèse politique discutable ; le second est un raccourci qui ne correspond à aucune réalité technique.
|
|
||||||
|
|
||||||
## Et techniquement, ce serait possible un jour ?
|
|
||||||
|
|
||||||
C'est la question intéressante, et la réponse mérite plus de nuance qu'un simple oui ou non.
|
|
||||||
|
|
||||||
Il existe effectivement un champ de recherche actif, baptisé **NILM** pour *Non-Intrusive Load Monitoring*. L'idée : analyser la courbe de consommation globale d'un logement pour en déduire, par traitement du signal et apprentissage automatique, quels appareils s'y trouvent et quand ils fonctionnent. Chaque appareil aurait, en théorie, une "signature électrique" reconnaissable — un profil d'appel de courant au démarrage, un comportement en régime, etc.
|
|
||||||
|
|
||||||
En pratique, l'exercice est très difficile, et il l'est particulièrement pour la recharge d'un véhicule électrique. Une borne en charge se comporte comme une charge quasi constante de plusieurs kilowatts pendant plusieurs heures. C'est une signature… qui ressemble énormément à celle d'un chauffe-eau, d'un convecteur, d'un sèche-linge en cycle long ou d'un radiateur à inertie. Sans cadence de fonctionnement caractéristique, sans pics distinctifs, sans cycles courts, il n'y a rien de très spécifique à exploiter. Identifier de manière fiable qu'on a affaire à une voiture *et pas* à un autre appareil de puissance similaire reste un problème ouvert dans la littérature scientifique.
|
|
||||||
|
|
||||||
Mais surtout, et c'est le point essentiel : **Linky n'embarque aucun de ces algorithmes**. Il transmet des données de comptage agrégées à Enedis, qui les utilise pour la facturation et la gestion du réseau. Enedis n'a ni la mission, ni le droit légal, ni l'infrastructure pour analyser appareil par appareil les usages domestiques de ses clients. Le cadre réglementaire français, notamment via la CNIL, encadre strictement ce qui peut être fait des données de consommation, et toute exploitation plus fine — même la courbe de charge à pas fin — nécessite le consentement explicite de l'abonné.
|
|
||||||
|
|
||||||
## Ce qu'il faut retenir
|
|
||||||
|
|
||||||
Le compteur Linky mesure votre consommation globale, c'est vrai. Il permet à certaines bornes de recharge de moduler intelligemment leur puissance via la TIC, c'est vrai aussi. Mais il ne reconnaît pas, n'identifie pas et ne distingue pas une voiture électrique des autres appareils du logement. Cette capacité n'existe ni dans son matériel, ni dans son logiciel, ni dans les données qu'il transmet à Enedis.
|
|
||||||
|
|
||||||
L'affirmation selon laquelle « Linky a été conçu pour reconnaître la connexion d'une voiture à batterie » mélange donc trois choses très différentes : des capacités réelles mais limitées (mesure de puissance, interface TIC sortante), des usages techniques existants côté wallbox, et des hypothèses politiques sur de futurs dispositifs fiscaux. De cette confusion naît une rumeur frappante, mais infondée.
|
|
||||||
|
|
||||||
Le débat sur la fiscalité des véhicules électriques est légitime et important. Il mérite mieux que des affirmations qui n'ont pas de base technique.
|
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
Voici un **tableau de correspondance entre la section d’un câble électrique (en mm²)**, **le courant maximal (en ampères)** et **la puissance maximale (en watts)** selon une **tension de 230 V monophasée**, avec des valeurs indicatives courantes pour des câbles en **cuivre**, en **pose domestique** (air libre ou encastrée), dans des conditions optimales.
|
|
||||||
|
|
||||||
> ⚠️ Les valeurs peuvent varier selon la longueur du câble, le type de pose et la température ambiante. Pour les installations électriques fixes, toujours vérifier avec la norme **NF C 15-100**.
|
|
||||||
|
|
||||||
|
|
||||||
| Section du câble (mm²) | Intensité max (A) | Puissance max (W à 230 V) | Usage typique |
|
|
||||||
| ---------------------- | ----------------- | ------------------------- | ----------------------------------------------------------- |
|
|
||||||
| 0,22 mm² | 2 A | 460 W | Signaux, petits appareils électroniques |
|
|
||||||
| 0,5 mm² | 3–4 A | 690–920 W | Petits câbles souples, lampes, alimentation basse puissance |
|
|
||||||
| 0,75 mm² | 6 A | 1 380 W | Lampes, rallonges légères |
|
|
||||||
| 1 mm² | 10 A | 2 300 W | Éclairage, petits appareils |
|
|
||||||
| 1,5 mm² | 16 A | 3 680 W | Circuits prises ou lumières |
|
|
||||||
| 2,5 mm² | 20–25 A | 4 600–5 750 W | Prises de courant, électroménager |
|
|
||||||
| 4 mm² | 32 A | 7 360 W | Plaques de cuisson, climatisation |
|
|
||||||
| 6 mm² | 40 A | 9 200 W | Chauffe-eau, four, cuisinière |
|
|
||||||
| 10 mm² | 63 A | 14 490 W | Tableau divisionnaire, pompe à chaleur |
|
|
||||||
| 16 mm² | 80 A | 18 400 W | Alimentation principale, borne EV |
|
|
||||||
| 25 mm² | 100 A | 23 000 W | Alimentation générale forte puissance |
|
|
||||||
| 35 mm² | 125 A | 28 750 W | Installation industrielle lourde |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Voici une approche différente qui permet de dimensionner un câble correctement, en fonction la **chute de tension** qui dépend de la **longueur du câble**, de la **section**, et du **courant**.
|
|
||||||
|
|
||||||
C'est un tableau, basé sur les normes et valeurs pratiques pour des câbles **cuivre, monophasé 230 V**, avec une **chute de tension maximale de 3 %** (soit ≈ 6,9 V).
|
|
||||||
C’est la limite recommandée par la **NF C 15-100** pour la plupart des circuits domestiques.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### ⚡ Tableau section / intensité / longueur maxi (cuivre, 230 V, chute ≤ 3 %)
|
|
||||||
|
|
||||||
| Section (mm²) | Intensité (A) | Longueur max (m) pour chute ≤ 3 % | Puissance max (W à 230 V) | Usage typique |
|
|
||||||
| ------------- | ------------- | --------------------------------- | ------------------------- | --------------------------- |
|
|
||||||
| 0,75 | 6 A | 14 m | 1 380 W | Lampes, rallonges légères |
|
|
||||||
| 1 | 10 A | 16 m | 2 300 W | Éclairage, petits appareils |
|
|
||||||
| 1,5 | 16 A | 19 m | 3 680 W | Circuits prises, lumière |
|
|
||||||
| 2,5 | 20 A | 26 m | 4 600 W | Prises, électroménager |
|
|
||||||
| 4 | 25 A | 33 m | 5 750 W | Plaques, climatisation |
|
|
||||||
| 6 | 32 A | 39 m | 7 360 W | Chauffe-eau, four |
|
|
||||||
| 10 | 40 A | 52 m | 9 200 W | Tableau divisionnaire |
|
|
||||||
| 16 | 63 A | 58 m | 14 490 W | Borne EV, gros appareils |
|
|
||||||
| 25 | 80 A | 70 m | 18 400 W | Alim principale |
|
|
||||||
| 35 | 100 A | 80 m | 23 000 W | Installation industrielle |
|
|
||||||
| 50 | 125 A | 90 m | 28 750 W | Gros équipements |
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### 🧮 Formule de calcul de chute de tension
|
|
||||||
|
|
||||||
Pour information, la chute de tension (ΔU) en volts se calcule ainsi :
|
|
||||||
|
|
||||||
[
|
|
||||||
\Delta U = \frac{2 \times \rho \times L \times I}{S}
|
|
||||||
]
|
|
||||||
|
|
||||||
où :
|
|
||||||
|
|
||||||
* ( \rho ) = 0,0175 Ω·mm²/m (résistivité du cuivre),
|
|
||||||
* ( L ) = longueur du câble aller (m),
|
|
||||||
* ( I ) = intensité (A),
|
|
||||||
* ( S ) = section (mm²).
|
|
||||||
On divise ensuite ( \Delta U ) par 230 V pour obtenir le pourcentage de chute.
|
|
||||||
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"uuid": "72d50c35-9863-400b-8c5d-470c74bf2bd6",
|
|
||||||
"slug": "tableau-section-cable-intensite-puissance-230-v-monophase-cuivre",
|
|
||||||
"title": "Tableau section câble / intensité / puissance (230 V monophasé, cuivre)",
|
|
||||||
"author": "cedric@abonnel.fr",
|
|
||||||
"published": true,
|
|
||||||
"published_at": "2025-11-09 21:48:35",
|
|
||||||
"created_at": "2025-11-09 21:48:35",
|
|
||||||
"updated_at": "2025-11-09 21:48:35",
|
|
||||||
"revisions": [],
|
|
||||||
"cover": "cover.jpg",
|
|
||||||
"category": "travaux"
|
|
||||||
}
|
|
||||||
@@ -1,57 +0,0 @@
|
|||||||
### 🔔 À partir du **12 novembre 2025**, vos démarches avec la **MGEN** changent.
|
|
||||||
|
|
||||||
La MGEN met en place de nouveaux outils pour s’adapter à la réforme de la **Protection Sociale Complémentaire**.
|
|
||||||
Désormais, **vos démarches liées à l’assurance maladie** se feront sur **ameli.fr**, comme pour les autres assurés du régime général.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Concrètement, cela veut dire :
|
|
||||||
|
|
||||||
#### 1. Vous aurez **2 espaces personnels distincts :**
|
|
||||||
|
|
||||||
* **➡️ ameli.fr** : pour tout ce qui concerne **l’assurance maladie** (remboursements de la Sécurité sociale, arrêt maladie, carte Vitale, etc.).
|
|
||||||
* **➡️ monespaceadherent.mgen.fr** : pour tout ce qui concerne **votre complémentaire santé MGEN** (mutuelle, devis, prestations, etc.).
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Vos remboursements :
|
|
||||||
|
|
||||||
* Vous recevrez **deux virements séparés** :
|
|
||||||
|
|
||||||
* un de **l’Assurance Maladie (via ameli)**
|
|
||||||
* un de **la MGEN (mutuelle)**
|
|
||||||
* **Le montant total remboursé ne change pas.**
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Pour contacter la MGEN :
|
|
||||||
|
|
||||||
#### Pour l’**assurance maladie** :
|
|
||||||
|
|
||||||
* Depuis votre **compte ameli** (messagerie sécurisée)
|
|
||||||
* Par téléphone : **09 72 72 40 60** (appel non surtaxé)
|
|
||||||
* Par courrier : **MGEN TSA 81514 – 53106 MAYENNE CEDEX**
|
|
||||||
* Ou en agence MGEN (dans votre département)
|
|
||||||
|
|
||||||
#### Pour la **complémentaire santé (mutuelle)** :
|
|
||||||
|
|
||||||
* Rien ne change : utilisez les **coordonnées figurant sur votre carte de tiers payant**.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Ce que vous devez faire :
|
|
||||||
|
|
||||||
À partir du **12 novembre 2025**, vous devrez :
|
|
||||||
|
|
||||||
* **Créer ou activer votre compte sur ameli.fr** (si ce n’est pas déjà fait)
|
|
||||||
* **Suivre vos remboursements et démarches** sur les deux espaces (ameli + MGEN)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Cas particuliers :
|
|
||||||
|
|
||||||
Des démarches spécifiques sont à prévoir si :
|
|
||||||
|
|
||||||
* Vous **résidez à l’étranger ou hors métropole**
|
|
||||||
* Votre **département de résidence** est différent de votre **département de travail**
|
|
||||||
* Vous **n’avez pas de carte Vitale**, ou si elle est **défectueuse**
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"uuid": "75302afc-6be5-4c76-bdeb-f297cf76413b",
|
|
||||||
"slug": "demarches-mgen",
|
|
||||||
"title": "Démarches MGEN",
|
|
||||||
"author": "cedric@abonnel.fr",
|
|
||||||
"published": true,
|
|
||||||
"published_at": "2025-11-05 06:23:24",
|
|
||||||
"created_at": "2025-11-05 06:23:24",
|
|
||||||
"updated_at": "2025-11-05 06:23:24",
|
|
||||||
"revisions": [],
|
|
||||||
"cover": "cover.jpg",
|
|
||||||
"category": "perso"
|
|
||||||
}
|
|
||||||
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 151 KiB |
@@ -1,17 +0,0 @@
|
|||||||
Orange utilise massivement AWS, Azure et Google Cloud. Dit comme ça, c'est presque une blague. L'ancien France Télécom, opérateur historique, fleuron des télécoms français, héritier du service public, branché sur les serveurs de la Silicon Valley. À l'heure où on ne parle que de souveraineté numérique, on pourrait croire à une trahison. C'est plus compliqué que ça.
|
|
||||||
|
|
||||||
La raison principale est bête : les Américains ont gagné la course. En quinze ans, AWS, Microsoft et Google ont construit une avance que personne ne sait combler aujourd'hui. Et ils ne vendent plus seulement du stockage ou de la puissance de calcul. Ils vendent un écosystème entier : de l'IA prête à l'emploi, des outils d'analyse de données, de l'automatisation, de la cybersécurité, des garanties de disponibilité à neuf chiffres. Pour Orange, qui doit faire tourner ses services dans une vingtaine de pays sans tomber en panne, ce niveau de maturité pèse lourd dans la balance.
|
|
||||||
|
|
||||||
Sauf que ce choix rationnel a un prix politique. En confiant ses infrastructures à des entreprises soumises au droit américain, Orange entre dans une zone de dépendance dont on ne sort pas facilement. Le Cloud Act permet aux autorités américaines de réclamer des données hébergées par ces sociétés, même quand ces données sont physiquement en Europe. On peut chiffrer, cloisonner, négocier des clauses dans tous les sens, le fait reste que la décision finale échappe au juge européen. Pour un opérateur télécoms qui manipule des données de millions d'abonnés, ce n'est pas un détail.
|
|
||||||
|
|
||||||
Le plus rageant, c'est qu'on a des alternatives. OVHcloud, Scaleway, Outscale, IONOS en Allemagne, sans parler des projets autour de Deutsche Telekom. Ces acteurs existent, ils sont sérieux, ils savent faire. Alors pourquoi Orange ne s'allie pas avec eux pour construire quelque chose de crédible à l'échelle européenne ?
|
|
||||||
|
|
||||||
Parce que l'écart de moyens est vertigineux. AWS et Microsoft investissent chacun plus de cinquante milliards de dollars par an dans leurs infrastructures. Ils ont leurs propres câbles sous-marins, leurs propres réseaux mondiaux, et ils raflent une bonne partie des ingénieurs qui sortent des écoles. Un OVH, même bien géré, ne joue pas dans la même catégorie financière. Il faudrait une alliance européenne soutenue politiquement, financée sur vingt ou trente ans, pour espérer rattraper. On a essayé avec Gaia-X. Le résultat parle de lui-même.
|
|
||||||
|
|
||||||
Du coup, Orange est coincé. Tout miser sur l'européen aujourd'hui, ça veut dire accepter des services moins performants, moins riches, et perdre du terrain face à ses concurrents qui, eux, n'auront pas ces scrupules. Dans un marché où les marges fondent et où chaque innovation compte, c'est un pari risqué. Continuer avec les Américains, c'est rester dans la course mais accepter une dépendance qui peut, du jour au lendemain, devenir un problème géopolitique.
|
|
||||||
|
|
||||||
D'où la solution batarde que tout le monde adopte : l'hybride. On met chez Amazon ou Microsoft ce qui doit aller vite, innover, scaler. On garde en Europe, parfois sur des clouds "de confiance" labellisés SecNumCloud, ce qui touche aux données sensibles, aux clients régulés, à l'État. Ce n'est pas glorieux, mais ça permet de tenir les deux bouts.
|
|
||||||
|
|
||||||
Pour les défenseurs de la souveraineté numérique, ce compromis a un goût amer. On a l'impression d'une Europe qui se résigne, qui joue le match sur le terrain de l'adversaire avec ses règles. Mais en pointant Orange du doigt, on rate la cible. Le vrai problème n'est pas dans les choix d'une entreprise, il est en amont. Tant qu'on traitera le cloud comme un simple marché et pas comme une infrastructure critique, au même titre que l'électricité ou les chemins de fer, les industriels feront ce qu'ils ont toujours fait : choisir ce qui marche, là, maintenant.
|
|
||||||
|
|
||||||
La bonne question n'est donc pas "pourquoi Orange utilise AWS". Elle est "pourquoi, vingt ans après l'arrivée du cloud, l'Europe n'a toujours pas mis sur la table de quoi rendre ce choix évitable". La souveraineté ne se décrète pas dans des communiqués. Elle se paie. En milliards, en années, en décisions politiques qui survivent aux changements de gouvernement. Tant qu'on ne sera pas prêts à ce niveau d'engagement, on continuera à tenir un discours sur l'indépendance numérique en signant des contrats avec Seattle et Redmond.
|
|
||||||
@@ -1,149 +0,0 @@
|
|||||||
{
|
|
||||||
"uuid": "75bf96ba-e110-4a9e-8163-95890562aecf",
|
|
||||||
"slug": "souverainete-numerique-le-paradoxe-d-orange-face-aux-clouds-americains",
|
|
||||||
"title": "Orange dans les bras d'Amazon : l'aveu d'un échec européen",
|
|
||||||
"author": "cedric@abonnel.fr",
|
|
||||||
"published": true,
|
|
||||||
"published_at": "2026-01-16 11:17",
|
|
||||||
"created_at": "2026-01-16 11:17:19",
|
|
||||||
"updated_at": "2026-05-11 21:44:15",
|
|
||||||
"revisions": [
|
|
||||||
{
|
|
||||||
"n": 1,
|
|
||||||
"date": "2026-05-11 19:14:47",
|
|
||||||
"comment": "",
|
|
||||||
"title": "Souveraineté numérique : le paradoxe d’Orange face aux clouds américains"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"n": 2,
|
|
||||||
"date": "2026-05-11 19:16:11",
|
|
||||||
"comment": "",
|
|
||||||
"title": "Souveraineté numérique : le paradoxe d’Orange face aux clouds américains"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"n": 3,
|
|
||||||
"date": "2026-05-11 19:19:14",
|
|
||||||
"comment": "",
|
|
||||||
"title": "Souveraineté numérique : le paradoxe d’Orange face aux clouds américains"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"n": 4,
|
|
||||||
"date": "2026-05-11 19:23:36",
|
|
||||||
"comment": "",
|
|
||||||
"title": "Souveraineté numérique : le paradoxe d’Orange face aux clouds américains"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"n": 5,
|
|
||||||
"date": "2026-05-11 20:03:18",
|
|
||||||
"comment": "",
|
|
||||||
"title": "Souveraineté numérique : le paradoxe d’Orange face aux clouds américains"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"n": 6,
|
|
||||||
"date": "2026-05-11 20:04:17",
|
|
||||||
"comment": "",
|
|
||||||
"title": "Souveraineté numérique : le paradoxe d’Orange face aux clouds américains"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"n": 7,
|
|
||||||
"date": "2026-05-11 20:22:36",
|
|
||||||
"comment": "",
|
|
||||||
"title": "Souveraineté numérique : le paradoxe d’Orange face aux clouds américains"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"n": 8,
|
|
||||||
"date": "2026-05-11 20:23:25",
|
|
||||||
"comment": "",
|
|
||||||
"title": "Souveraineté numérique : le paradoxe d’Orange face aux clouds américains"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"n": 9,
|
|
||||||
"date": "2026-05-11 21:37:25",
|
|
||||||
"comment": "",
|
|
||||||
"title": "Orange dans les bras d'Amazon : l'aveu d'un échec européen"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"n": 10,
|
|
||||||
"date": "2026-05-11 21:38:02",
|
|
||||||
"comment": "",
|
|
||||||
"title": "Orange dans les bras d'Amazon : l'aveu d'un échec européen"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"n": 11,
|
|
||||||
"date": "2026-05-11 21:39:10",
|
|
||||||
"comment": "",
|
|
||||||
"title": "Orange dans les bras d'Amazon : l'aveu d'un échec européen"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"n": 12,
|
|
||||||
"date": "2026-05-11 21:40:24",
|
|
||||||
"comment": "",
|
|
||||||
"title": "Orange dans les bras d'Amazon : l'aveu d'un échec européen"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"n": 13,
|
|
||||||
"date": "2026-05-11 21:43:18",
|
|
||||||
"comment": "",
|
|
||||||
"title": "Orange dans les bras d'Amazon : l'aveu d'un échec européen"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"n": 14,
|
|
||||||
"date": "2026-05-11 21:44:15",
|
|
||||||
"comment": "",
|
|
||||||
"title": "Orange dans les bras d'Amazon : l'aveu d'un échec européen"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"cover": "cover.jpg",
|
|
||||||
"files_meta": {
|
|
||||||
"cover.jpg": {
|
|
||||||
"author": "",
|
|
||||||
"source_url": "https://blog.wescale.fr/hubfs/CloudUS-Europe.jpg"
|
|
||||||
},
|
|
||||||
"l17cenum2526028_compte-rendu.pdf": {
|
|
||||||
"author": "",
|
|
||||||
"source_url": "https://www.assemblee-nationale.fr/dyn/17/comptes-rendus/cenum/l17cenum2526028_compte-rendu.pdf"
|
|
||||||
},
|
|
||||||
"l17cenum2526028_compte-rendu_1.pdf": {
|
|
||||||
"author": "",
|
|
||||||
"source_url": "https://www.assemblee-nationale.fr/dyn/17/comptes-rendus/cenum/l17cenum2526028_compte-rendu.pdf"
|
|
||||||
},
|
|
||||||
"Etude-Asteres-La-dependance-technologique-aux-services-de-cloud-et-logiciels-americains-avril-2025.pdf": {
|
|
||||||
"author": "",
|
|
||||||
"source_url": "https://www.cigref.fr/wp/wp-content/uploads/2025/04/Etude-Asteres-La-dependance-technologique-aux-services-de-cloud-et-logiciels-americains-avril-2025.pdf"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"external_links": [
|
|
||||||
{
|
|
||||||
"url": "https://www.lemondeinformatique.fr/les-dossiers/lire-cloud-souverain-une-interpretation-a-geometrie-variable-1678.html",
|
|
||||||
"name": "Cloud souverain, une interprétation à géométrie variable",
|
|
||||||
"added_at": "2026-05-11 21:40:20",
|
|
||||||
"meta": {
|
|
||||||
"mime": "text/html",
|
|
||||||
"size": 73778,
|
|
||||||
"description": "La bataille des clouds pour la souveraineté - Cloud souverain, une interprétation à géométrie variable - ",
|
|
||||||
"og_image": "/file?uuid=75bf96ba-e110-4a9e-8163-95890562aecf&name=_thumb_f44a2f694f44f2a5-11682.jpg",
|
|
||||||
"site_name": "LeMondeInformatique",
|
|
||||||
"og_type": "article",
|
|
||||||
"canonical": "https://www.lemondeinformatique.fr/les-dossiers/lire-cloud-souverain-une-interpretation-a-geometrie-variable-1678.html"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"url": "https://www.assemblee-nationale.fr/dyn/17/comptes-rendus/cenum/l17cenum2526028_compte-rendu.pdf",
|
|
||||||
"name": "Commission d’enquête sur les dépendances structurelles et les vulnérabilités systémiques dans le secteur du numérique et les risques pour l’indépendance de la France",
|
|
||||||
"added_at": "2026-05-11 21:44:12",
|
|
||||||
"meta": {
|
|
||||||
"mime": "application/pdf",
|
|
||||||
"size": 659476,
|
|
||||||
"date": "2026-05-06 16:38:24+02:00",
|
|
||||||
"creator": "pdftk 2.02 - www.pdftk.com",
|
|
||||||
"producer": "itext-paulo-155 (itextpdf.sf.net-lowagie.com)",
|
|
||||||
"pages": 26,
|
|
||||||
"pdf_version": "PDF 1.7"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"seo_title": "",
|
|
||||||
"seo_description": "",
|
|
||||||
"og_image": "",
|
|
||||||
"category": "actualité"
|
|
||||||
}
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
À première vue, la situation a quelque chose de déroutant. Orange, opérateur historique français, héritier d’une longue tradition de service public et acteur stratégique des télécommunications, fait massivement appel aux infrastructures cloud d’Amazon, Microsoft ou Google. Dans un contexte où la souveraineté numérique est devenue un enjeu politique, économique et géostratégique majeur, ce choix peut apparaître comme une contradiction, voire comme un renoncement. Pourtant, il ne s’agit ni d’un abandon ni d’une naïveté, mais d’un compromis révélateur des limites actuelles de l’Europe dans la bataille du numérique.
|
|
||||||
|
|
||||||
Le recours aux hyperscalers américains s’explique d’abord par une réalité industrielle. Ces entreprises ont construit, en une quinzaine d’années, une avance quasiment irréversible en matière d’infrastructures numériques. Leurs plateformes ne se contentent plus de fournir de la puissance de calcul ou du stockage. Elles offrent un écosystème complet qui va de l’hébergement à l’intelligence artificielle, en passant par l’analyse massive de données, l’automatisation des déploiements, la cybersécurité et la résilience globale des systèmes. Pour un groupe comme Orange, qui opère dans de nombreux pays et doit garantir des niveaux de service très élevés à des millions d’utilisateurs, cette maturité technologique est un facteur décisif.
|
|
||||||
|
|
||||||
Mais ce choix, rationnel sur le plan opérationnel, pose une question politique et stratégique beaucoup plus large. En confiant une part croissante de ses infrastructures numériques à des acteurs soumis au droit américain, Orange participe malgré lui à une forme de dépendance structurelle. Le Cloud Act, qui permet aux autorités américaines d’exiger l’accès à certaines données, même hébergées hors des États-Unis, symbolise cette vulnérabilité. Même si les mécanismes de chiffrement, de cloisonnement et de contrôle contractuel existent, le simple fait que la décision ultime puisse échapper aux juridictions européennes constitue une faille du point de vue de la souveraineté.
|
|
||||||
|
|
||||||
Ce paradoxe est d’autant plus frappant que des alternatives européennes existent. La France et l’Europe disposent d’acteurs solides, capables de fournir des services cloud performants, sécurisés et compétitifs sur de nombreux usages. OVHcloud, Scaleway, Outscale, IONOS ou encore les initiatives portées par Deutsche Telekom en sont la preuve. Alors pourquoi ne pas construire une alliance massive entre ces acteurs et un groupe comme Orange pour bâtir une véritable alternative souveraine ?
|
|
||||||
|
|
||||||
La réponse tient moins à la volonté qu’à l’échelle. Les hyperscalers américains investissent chaque année des dizaines de milliards d’euros dans leurs infrastructures. Ils déploient des data centers sur tous les continents, possèdent leurs propres réseaux mondiaux et attirent l’essentiel des talents du secteur. Face à cette puissance financière et industrielle, les acteurs européens, pris individuellement, peinent à rivaliser. Une alliance serait possible, mais elle nécessiterait un effort coordonné, soutenu politiquement, sur plusieurs décennies. Or l’Europe avance souvent par projets fragmentés, soumis aux cycles électoraux et aux priorités nationales parfois divergentes.
|
|
||||||
|
|
||||||
Pour Orange, la situation se résume donc à un dilemme stratégique. S’en tenir strictement à des solutions européennes aujourd’hui impliquerait souvent de renoncer à certains niveaux de performance, de standardisation et de rapidité d’innovation. Dans un marché des télécoms déjà très concurrentiel, où les marges sont sous pression et où les attentes des clients sont toujours plus élevées, ce choix pourrait fragiliser l’entreprise à court et moyen terme. À l’inverse, s’appuyer sur les clouds américains permet de rester compétitif, mais au prix d’une dépendance qui pose problème à long terme.
|
|
||||||
|
|
||||||
C’est dans cet entre-deux qu’émergent les stratégies hybrides. Orange, comme d’autres grands groupes européens, cherche à concilier deux impératifs contradictoires. D’un côté, tirer parti de la puissance des hyperscalers pour les usages nécessitant de la flexibilité, de l’innovation rapide et une échelle mondiale. De l’autre, développer des environnements de confiance pour les données sensibles, souvent en partenariat avec des acteurs européens, afin de garantir une maîtrise juridique et opérationnelle renforcée. Cette approche permet de limiter les risques sans renoncer totalement aux avantages technologiques des géants américains.
|
|
||||||
|
|
||||||
Pour celles et ceux qui défendent activement la souveraineté numérique, ce compromis reste frustrant. Il donne l’impression d’un renoncement progressif, d’une Europe qui accepte de jouer sur un terrain défini par d’autres. Pourtant, le problème dépasse largement Orange. Il interroge la capacité collective du continent à se doter d’infrastructures numériques stratégiques, au même titre que l’énergie, la défense ou les transports. Tant que le cloud restera perçu uniquement comme un marché et non comme un enjeu de souveraineté, les décisions resteront dictées par des logiques de court terme.
|
|
||||||
|
|
||||||
La vraie question n’est donc pas de savoir pourquoi Orange utilise les clouds américains, mais pourquoi l’Europe n’a pas encore su créer un cadre suffisamment ambitieux pour rendre ce choix inutile. Tant que les alternatives souveraines resteront fragmentées, sous-financées ou cantonnées à des niches, les grands groupes continueront à faire des choix pragmatiques, même s’ils sont stratégiquement inconfortables. Défendre la souveraineté numérique, ce n’est pas seulement pointer les risques de dépendance, c’est aussi accepter que cette souveraineté a un coût, qu’elle nécessite des investissements lourds, une vision industrielle de long terme et une véritable volonté politique.
|
|
||||||
|
|
||||||
Dans ce contexte, le combat pour la souveraineté numérique n’est pas perdu, mais il reste à mener sur un autre terrain que celui des seules décisions d’entreprise. Il se joue au niveau des États, de l’Union européenne et des grandes orientations industrielles. Tant que ce cadre n’évoluera pas, même les acteurs les plus attachés à l’indépendance technologique continueront à avancer dans ce paradoxe : défendre la souveraineté dans le discours, tout en dépendant, dans les faits, des infrastructures des géants américains.
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
À première vue, la situation a quelque chose de déroutant. Orange, opérateur historique français, héritier d’une longue tradition de service public et acteur stratégique des télécommunications, fait massivement appel aux infrastructures cloud d’Amazon, Microsoft ou Google. Dans un contexte où la souveraineté numérique est devenue un enjeu politique, économique et géostratégique majeur, ce choix peut apparaître comme une contradiction, voire comme un renoncement. Pourtant, il ne s’agit ni d’un abandon ni d’une naïveté, mais d’un compromis révélateur des limites actuelles de l’Europe dans la bataille du numérique.
|
|
||||||
|
|
||||||
Le recours aux hyperscalers américains s’explique d’abord par une réalité industrielle. Ces entreprises ont construit, en une quinzaine d’années, une avance quasiment irréversible en matière d’infrastructures numériques. Leurs plateformes ne se contentent plus de fournir de la puissance de calcul ou du stockage. Elles offrent un écosystème complet qui va de l’hébergement à l’intelligence artificielle, en passant par l’analyse massive de données, l’automatisation des déploiements, la cybersécurité et la résilience globale des systèmes. Pour un groupe comme Orange, qui opère dans de nombreux pays et doit garantir des niveaux de service très élevés à des millions d’utilisateurs, cette maturité technologique est un facteur décisif.
|
|
||||||
|
|
||||||
Mais ce choix, rationnel sur le plan opérationnel, pose une question politique et stratégique beaucoup plus large. En confiant une part croissante de ses infrastructures numériques à des acteurs soumis au droit américain, Orange participe malgré lui à une forme de dépendance structurelle. Le Cloud Act, qui permet aux autorités américaines d’exiger l’accès à certaines données, même hébergées hors des États-Unis, symbolise cette vulnérabilité. Même si les mécanismes de chiffrement, de cloisonnement et de contrôle contractuel existent, le simple fait que la décision ultime puisse échapper aux juridictions européennes constitue une faille du point de vue de la souveraineté.
|
|
||||||
|
|
||||||
Ce paradoxe est d’autant plus frappant que des alternatives européennes existent. La France et l’Europe disposent d’acteurs solides, capables de fournir des services cloud performants, sécurisés et compétitifs sur de nombreux usages. OVHcloud, Scaleway, Outscale, IONOS ou encore les initiatives portées par Deutsche Telekom en sont la preuve. Alors pourquoi ne pas construire une alliance massive entre ces acteurs et un groupe comme Orange pour bâtir une véritable alternative souveraine ?
|
|
||||||
|
|
||||||
La réponse tient moins à la volonté qu’à l’échelle. Les hyperscalers américains investissent chaque année des dizaines de milliards d’euros dans leurs infrastructures. Ils déploient des data centers sur tous les continents, possèdent leurs propres réseaux mondiaux et attirent l’essentiel des talents du secteur. Face à cette puissance financière et industrielle, les acteurs européens, pris individuellement, peinent à rivaliser. Une alliance serait possible, mais elle nécessiterait un effort coordonné, soutenu politiquement, sur plusieurs décennies. Or l’Europe avance souvent par projets fragmentés, soumis aux cycles électoraux et aux priorités nationales parfois divergentes.
|
|
||||||
|
|
||||||
Pour Orange, la situation se résume donc à un dilemme stratégique. S’en tenir strictement à des solutions européennes aujourd’hui impliquerait souvent de renoncer à certains niveaux de performance, de standardisation et de rapidité d’innovation. Dans un marché des télécoms déjà très concurrentiel, où les marges sont sous pression et où les attentes des clients sont toujours plus élevées, ce choix pourrait fragiliser l’entreprise à court et moyen terme. À l’inverse, s’appuyer sur les clouds américains permet de rester compétitif, mais au prix d’une dépendance qui pose problème à long terme.
|
|
||||||
|
|
||||||
C’est dans cet entre-deux qu’émergent les stratégies hybrides. Orange, comme d’autres grands groupes européens, cherche à concilier deux impératifs contradictoires. D’un côté, tirer parti de la puissance des hyperscalers pour les usages nécessitant de la flexibilité, de l’innovation rapide et une échelle mondiale. De l’autre, développer des environnements de confiance pour les données sensibles, souvent en partenariat avec des acteurs européens, afin de garantir une maîtrise juridique et opérationnelle renforcée. Cette approche permet de limiter les risques sans renoncer totalement aux avantages technologiques des géants américains.
|
|
||||||
|
|
||||||
Pour celles et ceux qui défendent activement la souveraineté numérique, ce compromis reste frustrant. Il donne l’impression d’un renoncement progressif, d’une Europe qui accepte de jouer sur un terrain défini par d’autres. Pourtant, le problème dépasse largement Orange. Il interroge la capacité collective du continent à se doter d’infrastructures numériques stratégiques, au même titre que l’énergie, la défense ou les transports. Tant que le cloud restera perçu uniquement comme un marché et non comme un enjeu de souveraineté, les décisions resteront dictées par des logiques de court terme.
|
|
||||||
|
|
||||||
La vraie question n’est donc pas de savoir pourquoi Orange utilise les clouds américains, mais pourquoi l’Europe n’a pas encore su créer un cadre suffisamment ambitieux pour rendre ce choix inutile. Tant que les alternatives souveraines resteront fragmentées, sous-financées ou cantonnées à des niches, les grands groupes continueront à faire des choix pragmatiques, même s’ils sont stratégiquement inconfortables. Défendre la souveraineté numérique, ce n’est pas seulement pointer les risques de dépendance, c’est aussi accepter que cette souveraineté a un coût, qu’elle nécessite des investissements lourds, une vision industrielle de long terme et une véritable volonté politique.
|
|
||||||
|
|
||||||
Dans ce contexte, le combat pour la souveraineté numérique n’est pas perdu, mais il reste à mener sur un autre terrain que celui des seules décisions d’entreprise. Il se joue au niveau des États, de l’Union européenne et des grandes orientations industrielles. Tant que ce cadre n’évoluera pas, même les acteurs les plus attachés à l’indépendance technologique continueront à avancer dans ce paradoxe : défendre la souveraineté dans le discours, tout en dépendant, dans les faits, des infrastructures des géants américains.
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
À première vue, la situation a quelque chose de déroutant. Orange, opérateur historique français, héritier d’une longue tradition de service public et acteur stratégique des télécommunications, fait massivement appel aux infrastructures cloud d’Amazon, Microsoft ou Google. Dans un contexte où la souveraineté numérique est devenue un enjeu politique, économique et géostratégique majeur, ce choix peut apparaître comme une contradiction, voire comme un renoncement. Pourtant, il ne s’agit ni d’un abandon ni d’une naïveté, mais d’un compromis révélateur des limites actuelles de l’Europe dans la bataille du numérique.
|
|
||||||
|
|
||||||
Le recours aux hyperscalers américains s’explique d’abord par une réalité industrielle. Ces entreprises ont construit, en une quinzaine d’années, une avance quasiment irréversible en matière d’infrastructures numériques. Leurs plateformes ne se contentent plus de fournir de la puissance de calcul ou du stockage. Elles offrent un écosystème complet qui va de l’hébergement à l’intelligence artificielle, en passant par l’analyse massive de données, l’automatisation des déploiements, la cybersécurité et la résilience globale des systèmes. Pour un groupe comme Orange, qui opère dans de nombreux pays et doit garantir des niveaux de service très élevés à des millions d’utilisateurs, cette maturité technologique est un facteur décisif.
|
|
||||||
|
|
||||||
Mais ce choix, rationnel sur le plan opérationnel, pose une question politique et stratégique beaucoup plus large. En confiant une part croissante de ses infrastructures numériques à des acteurs soumis au droit américain, Orange participe malgré lui à une forme de dépendance structurelle. Le Cloud Act, qui permet aux autorités américaines d’exiger l’accès à certaines données, même hébergées hors des États-Unis, symbolise cette vulnérabilité. Même si les mécanismes de chiffrement, de cloisonnement et de contrôle contractuel existent, le simple fait que la décision ultime puisse échapper aux juridictions européennes constitue une faille du point de vue de la souveraineté.
|
|
||||||
|
|
||||||
Ce paradoxe est d’autant plus frappant que des alternatives européennes existent. La France et l’Europe disposent d’acteurs solides, capables de fournir des services cloud performants, sécurisés et compétitifs sur de nombreux usages. OVHcloud, Scaleway, Outscale, IONOS ou encore les initiatives portées par Deutsche Telekom en sont la preuve. Alors pourquoi ne pas construire une alliance massive entre ces acteurs et un groupe comme Orange pour bâtir une véritable alternative souveraine ?
|
|
||||||
|
|
||||||
La réponse tient moins à la volonté qu’à l’échelle. Les hyperscalers américains investissent chaque année des dizaines de milliards d’euros dans leurs infrastructures. Ils déploient des data centers sur tous les continents, possèdent leurs propres réseaux mondiaux et attirent l’essentiel des talents du secteur. Face à cette puissance financière et industrielle, les acteurs européens, pris individuellement, peinent à rivaliser. Une alliance serait possible, mais elle nécessiterait un effort coordonné, soutenu politiquement, sur plusieurs décennies. Or l’Europe avance souvent par projets fragmentés, soumis aux cycles électoraux et aux priorités nationales parfois divergentes.
|
|
||||||
|
|
||||||
Pour Orange, la situation se résume donc à un dilemme stratégique. S’en tenir strictement à des solutions européennes aujourd’hui impliquerait souvent de renoncer à certains niveaux de performance, de standardisation et de rapidité d’innovation. Dans un marché des télécoms déjà très concurrentiel, où les marges sont sous pression et où les attentes des clients sont toujours plus élevées, ce choix pourrait fragiliser l’entreprise à court et moyen terme. À l’inverse, s’appuyer sur les clouds américains permet de rester compétitif, mais au prix d’une dépendance qui pose problème à long terme.
|
|
||||||
|
|
||||||
C’est dans cet entre-deux qu’émergent les stratégies hybrides. Orange, comme d’autres grands groupes européens, cherche à concilier deux impératifs contradictoires. D’un côté, tirer parti de la puissance des hyperscalers pour les usages nécessitant de la flexibilité, de l’innovation rapide et une échelle mondiale. De l’autre, développer des environnements de confiance pour les données sensibles, souvent en partenariat avec des acteurs européens, afin de garantir une maîtrise juridique et opérationnelle renforcée. Cette approche permet de limiter les risques sans renoncer totalement aux avantages technologiques des géants américains.
|
|
||||||
|
|
||||||
Pour celles et ceux qui défendent activement la souveraineté numérique, ce compromis reste frustrant. Il donne l’impression d’un renoncement progressif, d’une Europe qui accepte de jouer sur un terrain défini par d’autres. Pourtant, le problème dépasse largement Orange. Il interroge la capacité collective du continent à se doter d’infrastructures numériques stratégiques, au même titre que l’énergie, la défense ou les transports. Tant que le cloud restera perçu uniquement comme un marché et non comme un enjeu de souveraineté, les décisions resteront dictées par des logiques de court terme.
|
|
||||||
|
|
||||||
La vraie question n’est donc pas de savoir pourquoi Orange utilise les clouds américains, mais pourquoi l’Europe n’a pas encore su créer un cadre suffisamment ambitieux pour rendre ce choix inutile. Tant que les alternatives souveraines resteront fragmentées, sous-financées ou cantonnées à des niches, les grands groupes continueront à faire des choix pragmatiques, même s’ils sont stratégiquement inconfortables. Défendre la souveraineté numérique, ce n’est pas seulement pointer les risques de dépendance, c’est aussi accepter que cette souveraineté a un coût, qu’elle nécessite des investissements lourds, une vision industrielle de long terme et une véritable volonté politique.
|
|
||||||
|
|
||||||
Dans ce contexte, le combat pour la souveraineté numérique n’est pas perdu, mais il reste à mener sur un autre terrain que celui des seules décisions d’entreprise. Il se joue au niveau des États, de l’Union européenne et des grandes orientations industrielles. Tant que ce cadre n’évoluera pas, même les acteurs les plus attachés à l’indépendance technologique continueront à avancer dans ce paradoxe : défendre la souveraineté dans le discours, tout en dépendant, dans les faits, des infrastructures des géants américains.
|
|
||||||
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
À première vue, la situation a quelque chose de déroutant. Orange, opérateur historique français, héritier d’une longue tradition de service public et acteur stratégique des télécommunications, fait massivement appel aux infrastructures cloud d’Amazon, Microsoft ou Google. Dans un contexte où la souveraineté numérique est devenue un enjeu politique, économique et géostratégique majeur, ce choix peut apparaître comme une contradiction, voire comme un renoncement. Pourtant, il ne s’agit ni d’un abandon ni d’une naïveté, mais d’un compromis révélateur des limites actuelles de l’Europe dans la bataille du numérique.
|
|
||||||
|
|
||||||
Le recours aux hyperscalers américains s’explique d’abord par une réalité industrielle. Ces entreprises ont construit, en une quinzaine d’années, une avance quasiment irréversible en matière d’infrastructures numériques. Leurs plateformes ne se contentent plus de fournir de la puissance de calcul ou du stockage. Elles offrent un écosystème complet qui va de l’hébergement à l’intelligence artificielle, en passant par l’analyse massive de données, l’automatisation des déploiements, la cybersécurité et la résilience globale des systèmes. Pour un groupe comme Orange, qui opère dans de nombreux pays et doit garantir des niveaux de service très élevés à des millions d’utilisateurs, cette maturité technologique est un facteur décisif.
|
|
||||||
|
|
||||||
Mais ce choix, rationnel sur le plan opérationnel, pose une question politique et stratégique beaucoup plus large. En confiant une part croissante de ses infrastructures numériques à des acteurs soumis au droit américain, Orange participe malgré lui à une forme de dépendance structurelle. Le Cloud Act, qui permet aux autorités américaines d’exiger l’accès à certaines données, même hébergées hors des États-Unis, symbolise cette vulnérabilité. Même si les mécanismes de chiffrement, de cloisonnement et de contrôle contractuel existent, le simple fait que la décision ultime puisse échapper aux juridictions européennes constitue une faille du point de vue de la souveraineté.
|
|
||||||
|
|
||||||
Ce paradoxe est d’autant plus frappant que des alternatives européennes existent. La France et l’Europe disposent d’acteurs solides, capables de fournir des services cloud performants, sécurisés et compétitifs sur de nombreux usages. OVHcloud, Scaleway, Outscale, IONOS ou encore les initiatives portées par Deutsche Telekom en sont la preuve. Alors pourquoi ne pas construire une alliance massive entre ces acteurs et un groupe comme Orange pour bâtir une véritable alternative souveraine ?
|
|
||||||
|
|
||||||
La réponse tient moins à la volonté qu’à l’échelle. Les hyperscalers américains investissent chaque année des dizaines de milliards d’euros dans leurs infrastructures. Ils déploient des data centers sur tous les continents, possèdent leurs propres réseaux mondiaux et attirent l’essentiel des talents du secteur. Face à cette puissance financière et industrielle, les acteurs européens, pris individuellement, peinent à rivaliser. Une alliance serait possible, mais elle nécessiterait un effort coordonné, soutenu politiquement, sur plusieurs décennies. Or l’Europe avance souvent par projets fragmentés, soumis aux cycles électoraux et aux priorités nationales parfois divergentes.
|
|
||||||
|
|
||||||
Pour Orange, la situation se résume donc à un dilemme stratégique. S’en tenir strictement à des solutions européennes aujourd’hui impliquerait souvent de renoncer à certains niveaux de performance, de standardisation et de rapidité d’innovation. Dans un marché des télécoms déjà très concurrentiel, où les marges sont sous pression et où les attentes des clients sont toujours plus élevées, ce choix pourrait fragiliser l’entreprise à court et moyen terme. À l’inverse, s’appuyer sur les clouds américains permet de rester compétitif, mais au prix d’une dépendance qui pose problème à long terme.
|
|
||||||
|
|
||||||
C’est dans cet entre-deux qu’émergent les stratégies hybrides. Orange, comme d’autres grands groupes européens, cherche à concilier deux impératifs contradictoires. D’un côté, tirer parti de la puissance des hyperscalers pour les usages nécessitant de la flexibilité, de l’innovation rapide et une échelle mondiale. De l’autre, développer des environnements de confiance pour les données sensibles, souvent en partenariat avec des acteurs européens, afin de garantir une maîtrise juridique et opérationnelle renforcée. Cette approche permet de limiter les risques sans renoncer totalement aux avantages technologiques des géants américains.
|
|
||||||
|
|
||||||
Pour celles et ceux qui défendent activement la souveraineté numérique, ce compromis reste frustrant. Il donne l’impression d’un renoncement progressif, d’une Europe qui accepte de jouer sur un terrain défini par d’autres. Pourtant, le problème dépasse largement Orange. Il interroge la capacité collective du continent à se doter d’infrastructures numériques stratégiques, au même titre que l’énergie, la défense ou les transports. Tant que le cloud restera perçu uniquement comme un marché et non comme un enjeu de souveraineté, les décisions resteront dictées par des logiques de court terme.
|
|
||||||
|
|
||||||
La vraie question n’est donc pas de savoir pourquoi Orange utilise les clouds américains, mais pourquoi l’Europe n’a pas encore su créer un cadre suffisamment ambitieux pour rendre ce choix inutile. Tant que les alternatives souveraines resteront fragmentées, sous-financées ou cantonnées à des niches, les grands groupes continueront à faire des choix pragmatiques, même s’ils sont stratégiquement inconfortables. Défendre la souveraineté numérique, ce n’est pas seulement pointer les risques de dépendance, c’est aussi accepter que cette souveraineté a un coût, qu’elle nécessite des investissements lourds, une vision industrielle de long terme et une véritable volonté politique.
|
|
||||||
|
|
||||||
Dans ce contexte, le combat pour la souveraineté numérique n’est pas perdu, mais il reste à mener sur un autre terrain que celui des seules décisions d’entreprise. Il se joue au niveau des États, de l’Union européenne et des grandes orientations industrielles. Tant que ce cadre n’évoluera pas, même les acteurs les plus attachés à l’indépendance technologique continueront à avancer dans ce paradoxe : défendre la souveraineté dans le discours, tout en dépendant, dans les faits, des infrastructures des géants américains.
|
|
||||||
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
À première vue, la situation a quelque chose de déroutant. Orange, opérateur historique français, héritier d’une longue tradition de service public et acteur stratégique des télécommunications, fait massivement appel aux infrastructures cloud d’Amazon, Microsoft ou Google. Dans un contexte où la souveraineté numérique est devenue un enjeu politique, économique et géostratégique majeur, ce choix peut apparaître comme une contradiction, voire comme un renoncement. Pourtant, il ne s’agit ni d’un abandon ni d’une naïveté, mais d’un compromis révélateur des limites actuelles de l’Europe dans la bataille du numérique.
|
|
||||||
|
|
||||||
Le recours aux hyperscalers américains s’explique d’abord par une réalité industrielle. Ces entreprises ont construit, en une quinzaine d’années, une avance quasiment irréversible en matière d’infrastructures numériques. Leurs plateformes ne se contentent plus de fournir de la puissance de calcul ou du stockage. Elles offrent un écosystème complet qui va de l’hébergement à l’intelligence artificielle, en passant par l’analyse massive de données, l’automatisation des déploiements, la cybersécurité et la résilience globale des systèmes. Pour un groupe comme Orange, qui opère dans de nombreux pays et doit garantir des niveaux de service très élevés à des millions d’utilisateurs, cette maturité technologique est un facteur décisif.
|
|
||||||
|
|
||||||
Mais ce choix, rationnel sur le plan opérationnel, pose une question politique et stratégique beaucoup plus large. En confiant une part croissante de ses infrastructures numériques à des acteurs soumis au droit américain, Orange participe malgré lui à une forme de dépendance structurelle. Le Cloud Act, qui permet aux autorités américaines d’exiger l’accès à certaines données, même hébergées hors des États-Unis, symbolise cette vulnérabilité. Même si les mécanismes de chiffrement, de cloisonnement et de contrôle contractuel existent, le simple fait que la décision ultime puisse échapper aux juridictions européennes constitue une faille du point de vue de la souveraineté.
|
|
||||||
|
|
||||||
Ce paradoxe est d’autant plus frappant que des alternatives européennes existent. La France et l’Europe disposent d’acteurs solides, capables de fournir des services cloud performants, sécurisés et compétitifs sur de nombreux usages. OVHcloud, Scaleway, Outscale, IONOS ou encore les initiatives portées par Deutsche Telekom en sont la preuve. Alors pourquoi ne pas construire une alliance massive entre ces acteurs et un groupe comme Orange pour bâtir une véritable alternative souveraine ?
|
|
||||||
|
|
||||||
La réponse tient moins à la volonté qu’à l’échelle. Les hyperscalers américains investissent chaque année des dizaines de milliards d’euros dans leurs infrastructures. Ils déploient des data centers sur tous les continents, possèdent leurs propres réseaux mondiaux et attirent l’essentiel des talents du secteur. Face à cette puissance financière et industrielle, les acteurs européens, pris individuellement, peinent à rivaliser. Une alliance serait possible, mais elle nécessiterait un effort coordonné, soutenu politiquement, sur plusieurs décennies. Or l’Europe avance souvent par projets fragmentés, soumis aux cycles électoraux et aux priorités nationales parfois divergentes.
|
|
||||||
|
|
||||||
Pour Orange, la situation se résume donc à un dilemme stratégique. S’en tenir strictement à des solutions européennes aujourd’hui impliquerait souvent de renoncer à certains niveaux de performance, de standardisation et de rapidité d’innovation. Dans un marché des télécoms déjà très concurrentiel, où les marges sont sous pression et où les attentes des clients sont toujours plus élevées, ce choix pourrait fragiliser l’entreprise à court et moyen terme. À l’inverse, s’appuyer sur les clouds américains permet de rester compétitif, mais au prix d’une dépendance qui pose problème à long terme.
|
|
||||||
|
|
||||||
C’est dans cet entre-deux qu’émergent les stratégies hybrides. Orange, comme d’autres grands groupes européens, cherche à concilier deux impératifs contradictoires. D’un côté, tirer parti de la puissance des hyperscalers pour les usages nécessitant de la flexibilité, de l’innovation rapide et une échelle mondiale. De l’autre, développer des environnements de confiance pour les données sensibles, souvent en partenariat avec des acteurs européens, afin de garantir une maîtrise juridique et opérationnelle renforcée. Cette approche permet de limiter les risques sans renoncer totalement aux avantages technologiques des géants américains.
|
|
||||||
|
|
||||||
Pour celles et ceux qui défendent activement la souveraineté numérique, ce compromis reste frustrant. Il donne l’impression d’un renoncement progressif, d’une Europe qui accepte de jouer sur un terrain défini par d’autres. Pourtant, le problème dépasse largement Orange. Il interroge la capacité collective du continent à se doter d’infrastructures numériques stratégiques, au même titre que l’énergie, la défense ou les transports. Tant que le cloud restera perçu uniquement comme un marché et non comme un enjeu de souveraineté, les décisions resteront dictées par des logiques de court terme.
|
|
||||||
|
|
||||||
La vraie question n’est donc pas de savoir pourquoi Orange utilise les clouds américains, mais pourquoi l’Europe n’a pas encore su créer un cadre suffisamment ambitieux pour rendre ce choix inutile. Tant que les alternatives souveraines resteront fragmentées, sous-financées ou cantonnées à des niches, les grands groupes continueront à faire des choix pragmatiques, même s’ils sont stratégiquement inconfortables. Défendre la souveraineté numérique, ce n’est pas seulement pointer les risques de dépendance, c’est aussi accepter que cette souveraineté a un coût, qu’elle nécessite des investissements lourds, une vision industrielle de long terme et une véritable volonté politique.
|
|
||||||
|
|
||||||
Dans ce contexte, le combat pour la souveraineté numérique n’est pas perdu, mais il reste à mener sur un autre terrain que celui des seules décisions d’entreprise. Il se joue au niveau des États, de l’Union européenne et des grandes orientations industrielles. Tant que ce cadre n’évoluera pas, même les acteurs les plus attachés à l’indépendance technologique continueront à avancer dans ce paradoxe : défendre la souveraineté dans le discours, tout en dépendant, dans les faits, des infrastructures des géants américains.
|
|
||||||
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
À première vue, la situation a quelque chose de déroutant. Orange, opérateur historique français, héritier d’une longue tradition de service public et acteur stratégique des télécommunications, fait massivement appel aux infrastructures cloud d’Amazon, Microsoft ou Google. Dans un contexte où la souveraineté numérique est devenue un enjeu politique, économique et géostratégique majeur, ce choix peut apparaître comme une contradiction, voire comme un renoncement. Pourtant, il ne s’agit ni d’un abandon ni d’une naïveté, mais d’un compromis révélateur des limites actuelles de l’Europe dans la bataille du numérique.
|
|
||||||
|
|
||||||
Le recours aux hyperscalers américains s’explique d’abord par une réalité industrielle. Ces entreprises ont construit, en une quinzaine d’années, une avance quasiment irréversible en matière d’infrastructures numériques. Leurs plateformes ne se contentent plus de fournir de la puissance de calcul ou du stockage. Elles offrent un écosystème complet qui va de l’hébergement à l’intelligence artificielle, en passant par l’analyse massive de données, l’automatisation des déploiements, la cybersécurité et la résilience globale des systèmes. Pour un groupe comme Orange, qui opère dans de nombreux pays et doit garantir des niveaux de service très élevés à des millions d’utilisateurs, cette maturité technologique est un facteur décisif.
|
|
||||||
|
|
||||||
Mais ce choix, rationnel sur le plan opérationnel, pose une question politique et stratégique beaucoup plus large. En confiant une part croissante de ses infrastructures numériques à des acteurs soumis au droit américain, Orange participe malgré lui à une forme de dépendance structurelle. Le Cloud Act, qui permet aux autorités américaines d’exiger l’accès à certaines données, même hébergées hors des États-Unis, symbolise cette vulnérabilité. Même si les mécanismes de chiffrement, de cloisonnement et de contrôle contractuel existent, le simple fait que la décision ultime puisse échapper aux juridictions européennes constitue une faille du point de vue de la souveraineté.
|
|
||||||
|
|
||||||
Ce paradoxe est d’autant plus frappant que des alternatives européennes existent. La France et l’Europe disposent d’acteurs solides, capables de fournir des services cloud performants, sécurisés et compétitifs sur de nombreux usages. OVHcloud, Scaleway, Outscale, IONOS ou encore les initiatives portées par Deutsche Telekom en sont la preuve. Alors pourquoi ne pas construire une alliance massive entre ces acteurs et un groupe comme Orange pour bâtir une véritable alternative souveraine ?
|
|
||||||
|
|
||||||
La réponse tient moins à la volonté qu’à l’échelle. Les hyperscalers américains investissent chaque année des dizaines de milliards d’euros dans leurs infrastructures. Ils déploient des data centers sur tous les continents, possèdent leurs propres réseaux mondiaux et attirent l’essentiel des talents du secteur. Face à cette puissance financière et industrielle, les acteurs européens, pris individuellement, peinent à rivaliser. Une alliance serait possible, mais elle nécessiterait un effort coordonné, soutenu politiquement, sur plusieurs décennies. Or l’Europe avance souvent par projets fragmentés, soumis aux cycles électoraux et aux priorités nationales parfois divergentes.
|
|
||||||
|
|
||||||
Pour Orange, la situation se résume donc à un dilemme stratégique. S’en tenir strictement à des solutions européennes aujourd’hui impliquerait souvent de renoncer à certains niveaux de performance, de standardisation et de rapidité d’innovation. Dans un marché des télécoms déjà très concurrentiel, où les marges sont sous pression et où les attentes des clients sont toujours plus élevées, ce choix pourrait fragiliser l’entreprise à court et moyen terme. À l’inverse, s’appuyer sur les clouds américains permet de rester compétitif, mais au prix d’une dépendance qui pose problème à long terme.
|
|
||||||
|
|
||||||
C’est dans cet entre-deux qu’émergent les stratégies hybrides. Orange, comme d’autres grands groupes européens, cherche à concilier deux impératifs contradictoires. D’un côté, tirer parti de la puissance des hyperscalers pour les usages nécessitant de la flexibilité, de l’innovation rapide et une échelle mondiale. De l’autre, développer des environnements de confiance pour les données sensibles, souvent en partenariat avec des acteurs européens, afin de garantir une maîtrise juridique et opérationnelle renforcée. Cette approche permet de limiter les risques sans renoncer totalement aux avantages technologiques des géants américains.
|
|
||||||
|
|
||||||
Pour celles et ceux qui défendent activement la souveraineté numérique, ce compromis reste frustrant. Il donne l’impression d’un renoncement progressif, d’une Europe qui accepte de jouer sur un terrain défini par d’autres. Pourtant, le problème dépasse largement Orange. Il interroge la capacité collective du continent à se doter d’infrastructures numériques stratégiques, au même titre que l’énergie, la défense ou les transports. Tant que le cloud restera perçu uniquement comme un marché et non comme un enjeu de souveraineté, les décisions resteront dictées par des logiques de court terme.
|
|
||||||
|
|
||||||
La vraie question n’est donc pas de savoir pourquoi Orange utilise les clouds américains, mais pourquoi l’Europe n’a pas encore su créer un cadre suffisamment ambitieux pour rendre ce choix inutile. Tant que les alternatives souveraines resteront fragmentées, sous-financées ou cantonnées à des niches, les grands groupes continueront à faire des choix pragmatiques, même s’ils sont stratégiquement inconfortables. Défendre la souveraineté numérique, ce n’est pas seulement pointer les risques de dépendance, c’est aussi accepter que cette souveraineté a un coût, qu’elle nécessite des investissements lourds, une vision industrielle de long terme et une véritable volonté politique.
|
|
||||||
|
|
||||||
Dans ce contexte, le combat pour la souveraineté numérique n’est pas perdu, mais il reste à mener sur un autre terrain que celui des seules décisions d’entreprise. Il se joue au niveau des États, de l’Union européenne et des grandes orientations industrielles. Tant que ce cadre n’évoluera pas, même les acteurs les plus attachés à l’indépendance technologique continueront à avancer dans ce paradoxe : défendre la souveraineté dans le discours, tout en dépendant, dans les faits, des infrastructures des géants américains.
|
|
||||||
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
À première vue, la situation a quelque chose de déroutant. Orange, opérateur historique français, héritier d’une longue tradition de service public et acteur stratégique des télécommunications, fait massivement appel aux infrastructures cloud d’Amazon, Microsoft ou Google. Dans un contexte où la souveraineté numérique est devenue un enjeu politique, économique et géostratégique majeur, ce choix peut apparaître comme une contradiction, voire comme un renoncement. Pourtant, il ne s’agit ni d’un abandon ni d’une naïveté, mais d’un compromis révélateur des limites actuelles de l’Europe dans la bataille du numérique.
|
|
||||||
|
|
||||||
Le recours aux hyperscalers américains s’explique d’abord par une réalité industrielle. Ces entreprises ont construit, en une quinzaine d’années, une avance quasiment irréversible en matière d’infrastructures numériques. Leurs plateformes ne se contentent plus de fournir de la puissance de calcul ou du stockage. Elles offrent un écosystème complet qui va de l’hébergement à l’intelligence artificielle, en passant par l’analyse massive de données, l’automatisation des déploiements, la cybersécurité et la résilience globale des systèmes. Pour un groupe comme Orange, qui opère dans de nombreux pays et doit garantir des niveaux de service très élevés à des millions d’utilisateurs, cette maturité technologique est un facteur décisif.
|
|
||||||
|
|
||||||
Mais ce choix, rationnel sur le plan opérationnel, pose une question politique et stratégique beaucoup plus large. En confiant une part croissante de ses infrastructures numériques à des acteurs soumis au droit américain, Orange participe malgré lui à une forme de dépendance structurelle. Le Cloud Act, qui permet aux autorités américaines d’exiger l’accès à certaines données, même hébergées hors des États-Unis, symbolise cette vulnérabilité. Même si les mécanismes de chiffrement, de cloisonnement et de contrôle contractuel existent, le simple fait que la décision ultime puisse échapper aux juridictions européennes constitue une faille du point de vue de la souveraineté.
|
|
||||||
|
|
||||||
Ce paradoxe est d’autant plus frappant que des alternatives européennes existent. La France et l’Europe disposent d’acteurs solides, capables de fournir des services cloud performants, sécurisés et compétitifs sur de nombreux usages. OVHcloud, Scaleway, Outscale, IONOS ou encore les initiatives portées par Deutsche Telekom en sont la preuve. Alors pourquoi ne pas construire une alliance massive entre ces acteurs et un groupe comme Orange pour bâtir une véritable alternative souveraine ?
|
|
||||||
|
|
||||||
La réponse tient moins à la volonté qu’à l’échelle. Les hyperscalers américains investissent chaque année des dizaines de milliards d’euros dans leurs infrastructures. Ils déploient des data centers sur tous les continents, possèdent leurs propres réseaux mondiaux et attirent l’essentiel des talents du secteur. Face à cette puissance financière et industrielle, les acteurs européens, pris individuellement, peinent à rivaliser. Une alliance serait possible, mais elle nécessiterait un effort coordonné, soutenu politiquement, sur plusieurs décennies. Or l’Europe avance souvent par projets fragmentés, soumis aux cycles électoraux et aux priorités nationales parfois divergentes.
|
|
||||||
|
|
||||||
Pour Orange, la situation se résume donc à un dilemme stratégique. S’en tenir strictement à des solutions européennes aujourd’hui impliquerait souvent de renoncer à certains niveaux de performance, de standardisation et de rapidité d’innovation. Dans un marché des télécoms déjà très concurrentiel, où les marges sont sous pression et où les attentes des clients sont toujours plus élevées, ce choix pourrait fragiliser l’entreprise à court et moyen terme. À l’inverse, s’appuyer sur les clouds américains permet de rester compétitif, mais au prix d’une dépendance qui pose problème à long terme.
|
|
||||||
|
|
||||||
C’est dans cet entre-deux qu’émergent les stratégies hybrides. Orange, comme d’autres grands groupes européens, cherche à concilier deux impératifs contradictoires. D’un côté, tirer parti de la puissance des hyperscalers pour les usages nécessitant de la flexibilité, de l’innovation rapide et une échelle mondiale. De l’autre, développer des environnements de confiance pour les données sensibles, souvent en partenariat avec des acteurs européens, afin de garantir une maîtrise juridique et opérationnelle renforcée. Cette approche permet de limiter les risques sans renoncer totalement aux avantages technologiques des géants américains.
|
|
||||||
|
|
||||||
Pour celles et ceux qui défendent activement la souveraineté numérique, ce compromis reste frustrant. Il donne l’impression d’un renoncement progressif, d’une Europe qui accepte de jouer sur un terrain défini par d’autres. Pourtant, le problème dépasse largement Orange. Il interroge la capacité collective du continent à se doter d’infrastructures numériques stratégiques, au même titre que l’énergie, la défense ou les transports. Tant que le cloud restera perçu uniquement comme un marché et non comme un enjeu de souveraineté, les décisions resteront dictées par des logiques de court terme.
|
|
||||||
|
|
||||||
La vraie question n’est donc pas de savoir pourquoi Orange utilise les clouds américains, mais pourquoi l’Europe n’a pas encore su créer un cadre suffisamment ambitieux pour rendre ce choix inutile. Tant que les alternatives souveraines resteront fragmentées, sous-financées ou cantonnées à des niches, les grands groupes continueront à faire des choix pragmatiques, même s’ils sont stratégiquement inconfortables. Défendre la souveraineté numérique, ce n’est pas seulement pointer les risques de dépendance, c’est aussi accepter que cette souveraineté a un coût, qu’elle nécessite des investissements lourds, une vision industrielle de long terme et une véritable volonté politique.
|
|
||||||
|
|
||||||
Dans ce contexte, le combat pour la souveraineté numérique n’est pas perdu, mais il reste à mener sur un autre terrain que celui des seules décisions d’entreprise. Il se joue au niveau des États, de l’Union européenne et des grandes orientations industrielles. Tant que ce cadre n’évoluera pas, même les acteurs les plus attachés à l’indépendance technologique continueront à avancer dans ce paradoxe : défendre la souveraineté dans le discours, tout en dépendant, dans les faits, des infrastructures des géants américains.
|
|
||||||
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
## Orange dans les bras d'Amazon : l'aveu d'un échec européen
|
|
||||||
|
|
||||||
Orange utilise massivement AWS, Azure et Google Cloud. Dit comme ça, c'est presque une blague. L'ancien France Télécom, opérateur historique, fleuron des télécoms français, héritier du service public, branché sur les serveurs de la Silicon Valley. À l'heure où on ne parle que de souveraineté numérique, on pourrait croire à une trahison. C'est plus compliqué que ça.
|
|
||||||
|
|
||||||
La raison principale est bête : les Américains ont gagné la course. En quinze ans, AWS, Microsoft et Google ont construit une avance que personne ne sait combler aujourd'hui. Et ils ne vendent plus seulement du stockage ou de la puissance de calcul. Ils vendent un écosystème entier : de l'IA prête à l'emploi, des outils d'analyse de données, de l'automatisation, de la cybersécurité, des garanties de disponibilité à neuf chiffres. Pour Orange, qui doit faire tourner ses services dans une vingtaine de pays sans tomber en panne, ce niveau de maturité pèse lourd dans la balance.
|
|
||||||
|
|
||||||
Sauf que ce choix rationnel a un prix politique. En confiant ses infrastructures à des entreprises soumises au droit américain, Orange entre dans une zone de dépendance dont on ne sort pas facilement. Le Cloud Act permet aux autorités américaines de réclamer des données hébergées par ces sociétés, même quand ces données sont physiquement en Europe. On peut chiffrer, cloisonner, négocier des clauses dans tous les sens, le fait reste que la décision finale échappe au juge européen. Pour un opérateur télécoms qui manipule des données de millions d'abonnés, ce n'est pas un détail.
|
|
||||||
|
|
||||||
Le plus rageant, c'est qu'on a des alternatives. OVHcloud, Scaleway, Outscale, IONOS en Allemagne, sans parler des projets autour de Deutsche Telekom. Ces acteurs existent, ils sont sérieux, ils savent faire. Alors pourquoi Orange ne s'allie pas avec eux pour construire quelque chose de crédible à l'échelle européenne ?
|
|
||||||
|
|
||||||
Parce que l'écart de moyens est vertigineux. AWS et Microsoft investissent chacun plus de cinquante milliards de dollars par an dans leurs infrastructures. Ils ont leurs propres câbles sous-marins, leurs propres réseaux mondiaux, et ils raflent une bonne partie des ingénieurs qui sortent des écoles. Un OVH, même bien géré, ne joue pas dans la même catégorie financière. Il faudrait une alliance européenne soutenue politiquement, financée sur vingt ou trente ans, pour espérer rattraper. On a essayé avec Gaia-X. Le résultat parle de lui-même.
|
|
||||||
|
|
||||||
Du coup, Orange est coincé. Tout miser sur l'européen aujourd'hui, ça veut dire accepter des services moins performants, moins riches, et perdre du terrain face à ses concurrents qui, eux, n'auront pas ces scrupules. Dans un marché où les marges fondent et où chaque innovation compte, c'est un pari risqué. Continuer avec les Américains, c'est rester dans la course mais accepter une dépendance qui peut, du jour au lendemain, devenir un problème géopolitique.
|
|
||||||
|
|
||||||
D'où la solution batarde que tout le monde adopte : l'hybride. On met chez Amazon ou Microsoft ce qui doit aller vite, innover, scaler. On garde en Europe, parfois sur des clouds "de confiance" labellisés SecNumCloud, ce qui touche aux données sensibles, aux clients régulés, à l'État. Ce n'est pas glorieux, mais ça permet de tenir les deux bouts.
|
|
||||||
|
|
||||||
Pour les défenseurs de la souveraineté numérique, ce compromis a un goût amer. On a l'impression d'une Europe qui se résigne, qui joue le match sur le terrain de l'adversaire avec ses règles. Mais en pointant Orange du doigt, on rate la cible. Le vrai problème n'est pas dans les choix d'une entreprise, il est en amont. Tant qu'on traitera le cloud comme un simple marché et pas comme une infrastructure critique, au même titre que l'électricité ou les chemins de fer, les industriels feront ce qu'ils ont toujours fait : choisir ce qui marche, là, maintenant.
|
|
||||||
|
|
||||||
La bonne question n'est donc pas "pourquoi Orange utilise AWS". Elle est "pourquoi, vingt ans après l'arrivée du cloud, l'Europe n'a toujours pas mis sur la table de quoi rendre ce choix évitable". La souveraineté ne se décrète pas dans des communiqués. Elle se paie. En milliards, en années, en décisions politiques qui survivent aux changements de gouvernement. Tant qu'on ne sera pas prêts à ce niveau d'engagement, on continuera à tenir un discours sur l'indépendance numérique en signant des contrats avec Seattle et Redmond.
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
Orange utilise massivement AWS, Azure et Google Cloud. Dit comme ça, c'est presque une blague. L'ancien France Télécom, opérateur historique, fleuron des télécoms français, héritier du service public, branché sur les serveurs de la Silicon Valley. À l'heure où on ne parle que de souveraineté numérique, on pourrait croire à une trahison. C'est plus compliqué que ça.
|
|
||||||
|
|
||||||
La raison principale est bête : les Américains ont gagné la course. En quinze ans, AWS, Microsoft et Google ont construit une avance que personne ne sait combler aujourd'hui. Et ils ne vendent plus seulement du stockage ou de la puissance de calcul. Ils vendent un écosystème entier : de l'IA prête à l'emploi, des outils d'analyse de données, de l'automatisation, de la cybersécurité, des garanties de disponibilité à neuf chiffres. Pour Orange, qui doit faire tourner ses services dans une vingtaine de pays sans tomber en panne, ce niveau de maturité pèse lourd dans la balance.
|
|
||||||
|
|
||||||
Sauf que ce choix rationnel a un prix politique. En confiant ses infrastructures à des entreprises soumises au droit américain, Orange entre dans une zone de dépendance dont on ne sort pas facilement. Le Cloud Act permet aux autorités américaines de réclamer des données hébergées par ces sociétés, même quand ces données sont physiquement en Europe. On peut chiffrer, cloisonner, négocier des clauses dans tous les sens, le fait reste que la décision finale échappe au juge européen. Pour un opérateur télécoms qui manipule des données de millions d'abonnés, ce n'est pas un détail.
|
|
||||||
|
|
||||||
Le plus rageant, c'est qu'on a des alternatives. OVHcloud, Scaleway, Outscale, IONOS en Allemagne, sans parler des projets autour de Deutsche Telekom. Ces acteurs existent, ils sont sérieux, ils savent faire. Alors pourquoi Orange ne s'allie pas avec eux pour construire quelque chose de crédible à l'échelle européenne ?
|
|
||||||
|
|
||||||
Parce que l'écart de moyens est vertigineux. AWS et Microsoft investissent chacun plus de cinquante milliards de dollars par an dans leurs infrastructures. Ils ont leurs propres câbles sous-marins, leurs propres réseaux mondiaux, et ils raflent une bonne partie des ingénieurs qui sortent des écoles. Un OVH, même bien géré, ne joue pas dans la même catégorie financière. Il faudrait une alliance européenne soutenue politiquement, financée sur vingt ou trente ans, pour espérer rattraper. On a essayé avec Gaia-X. Le résultat parle de lui-même.
|
|
||||||
|
|
||||||
Du coup, Orange est coincé. Tout miser sur l'européen aujourd'hui, ça veut dire accepter des services moins performants, moins riches, et perdre du terrain face à ses concurrents qui, eux, n'auront pas ces scrupules. Dans un marché où les marges fondent et où chaque innovation compte, c'est un pari risqué. Continuer avec les Américains, c'est rester dans la course mais accepter une dépendance qui peut, du jour au lendemain, devenir un problème géopolitique.
|
|
||||||
|
|
||||||
D'où la solution batarde que tout le monde adopte : l'hybride. On met chez Amazon ou Microsoft ce qui doit aller vite, innover, scaler. On garde en Europe, parfois sur des clouds "de confiance" labellisés SecNumCloud, ce qui touche aux données sensibles, aux clients régulés, à l'État. Ce n'est pas glorieux, mais ça permet de tenir les deux bouts.
|
|
||||||
|
|
||||||
Pour les défenseurs de la souveraineté numérique, ce compromis a un goût amer. On a l'impression d'une Europe qui se résigne, qui joue le match sur le terrain de l'adversaire avec ses règles. Mais en pointant Orange du doigt, on rate la cible. Le vrai problème n'est pas dans les choix d'une entreprise, il est en amont. Tant qu'on traitera le cloud comme un simple marché et pas comme une infrastructure critique, au même titre que l'électricité ou les chemins de fer, les industriels feront ce qu'ils ont toujours fait : choisir ce qui marche, là, maintenant.
|
|
||||||
|
|
||||||
La bonne question n'est donc pas "pourquoi Orange utilise AWS". Elle est "pourquoi, vingt ans après l'arrivée du cloud, l'Europe n'a toujours pas mis sur la table de quoi rendre ce choix évitable". La souveraineté ne se décrète pas dans des communiqués. Elle se paie. En milliards, en années, en décisions politiques qui survivent aux changements de gouvernement. Tant qu'on ne sera pas prêts à ce niveau d'engagement, on continuera à tenir un discours sur l'indépendance numérique en signant des contrats avec Seattle et Redmond.
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
Orange utilise massivement AWS, Azure et Google Cloud. Dit comme ça, c'est presque une blague. L'ancien France Télécom, opérateur historique, fleuron des télécoms français, héritier du service public, branché sur les serveurs de la Silicon Valley. À l'heure où on ne parle que de souveraineté numérique, on pourrait croire à une trahison. C'est plus compliqué que ça.
|
|
||||||
|
|
||||||
La raison principale est bête : les Américains ont gagné la course. En quinze ans, AWS, Microsoft et Google ont construit une avance que personne ne sait combler aujourd'hui. Et ils ne vendent plus seulement du stockage ou de la puissance de calcul. Ils vendent un écosystème entier : de l'IA prête à l'emploi, des outils d'analyse de données, de l'automatisation, de la cybersécurité, des garanties de disponibilité à neuf chiffres. Pour Orange, qui doit faire tourner ses services dans une vingtaine de pays sans tomber en panne, ce niveau de maturité pèse lourd dans la balance.
|
|
||||||
|
|
||||||
Sauf que ce choix rationnel a un prix politique. En confiant ses infrastructures à des entreprises soumises au droit américain, Orange entre dans une zone de dépendance dont on ne sort pas facilement. Le Cloud Act permet aux autorités américaines de réclamer des données hébergées par ces sociétés, même quand ces données sont physiquement en Europe. On peut chiffrer, cloisonner, négocier des clauses dans tous les sens, le fait reste que la décision finale échappe au juge européen. Pour un opérateur télécoms qui manipule des données de millions d'abonnés, ce n'est pas un détail.
|
|
||||||
|
|
||||||
Le plus rageant, c'est qu'on a des alternatives. OVHcloud, Scaleway, Outscale, IONOS en Allemagne, sans parler des projets autour de Deutsche Telekom. Ces acteurs existent, ils sont sérieux, ils savent faire. Alors pourquoi Orange ne s'allie pas avec eux pour construire quelque chose de crédible à l'échelle européenne ?
|
|
||||||
|
|
||||||
Parce que l'écart de moyens est vertigineux. AWS et Microsoft investissent chacun plus de cinquante milliards de dollars par an dans leurs infrastructures. Ils ont leurs propres câbles sous-marins, leurs propres réseaux mondiaux, et ils raflent une bonne partie des ingénieurs qui sortent des écoles. Un OVH, même bien géré, ne joue pas dans la même catégorie financière. Il faudrait une alliance européenne soutenue politiquement, financée sur vingt ou trente ans, pour espérer rattraper. On a essayé avec Gaia-X. Le résultat parle de lui-même.
|
|
||||||
|
|
||||||
Du coup, Orange est coincé. Tout miser sur l'européen aujourd'hui, ça veut dire accepter des services moins performants, moins riches, et perdre du terrain face à ses concurrents qui, eux, n'auront pas ces scrupules. Dans un marché où les marges fondent et où chaque innovation compte, c'est un pari risqué. Continuer avec les Américains, c'est rester dans la course mais accepter une dépendance qui peut, du jour au lendemain, devenir un problème géopolitique.
|
|
||||||
|
|
||||||
D'où la solution batarde que tout le monde adopte : l'hybride. On met chez Amazon ou Microsoft ce qui doit aller vite, innover, scaler. On garde en Europe, parfois sur des clouds "de confiance" labellisés SecNumCloud, ce qui touche aux données sensibles, aux clients régulés, à l'État. Ce n'est pas glorieux, mais ça permet de tenir les deux bouts.
|
|
||||||
|
|
||||||
Pour les défenseurs de la souveraineté numérique, ce compromis a un goût amer. On a l'impression d'une Europe qui se résigne, qui joue le match sur le terrain de l'adversaire avec ses règles. Mais en pointant Orange du doigt, on rate la cible. Le vrai problème n'est pas dans les choix d'une entreprise, il est en amont. Tant qu'on traitera le cloud comme un simple marché et pas comme une infrastructure critique, au même titre que l'électricité ou les chemins de fer, les industriels feront ce qu'ils ont toujours fait : choisir ce qui marche, là, maintenant.
|
|
||||||
|
|
||||||
La bonne question n'est donc pas "pourquoi Orange utilise AWS". Elle est "pourquoi, vingt ans après l'arrivée du cloud, l'Europe n'a toujours pas mis sur la table de quoi rendre ce choix évitable". La souveraineté ne se décrète pas dans des communiqués. Elle se paie. En milliards, en années, en décisions politiques qui survivent aux changements de gouvernement. Tant qu'on ne sera pas prêts à ce niveau d'engagement, on continuera à tenir un discours sur l'indépendance numérique en signant des contrats avec Seattle et Redmond.
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
Orange utilise massivement AWS, Azure et Google Cloud. Dit comme ça, c'est presque une blague. L'ancien France Télécom, opérateur historique, fleuron des télécoms français, héritier du service public, branché sur les serveurs de la Silicon Valley. À l'heure où on ne parle que de souveraineté numérique, on pourrait croire à une trahison. C'est plus compliqué que ça.
|
|
||||||
|
|
||||||
La raison principale est bête : les Américains ont gagné la course. En quinze ans, AWS, Microsoft et Google ont construit une avance que personne ne sait combler aujourd'hui. Et ils ne vendent plus seulement du stockage ou de la puissance de calcul. Ils vendent un écosystème entier : de l'IA prête à l'emploi, des outils d'analyse de données, de l'automatisation, de la cybersécurité, des garanties de disponibilité à neuf chiffres. Pour Orange, qui doit faire tourner ses services dans une vingtaine de pays sans tomber en panne, ce niveau de maturité pèse lourd dans la balance.
|
|
||||||
|
|
||||||
Sauf que ce choix rationnel a un prix politique. En confiant ses infrastructures à des entreprises soumises au droit américain, Orange entre dans une zone de dépendance dont on ne sort pas facilement. Le Cloud Act permet aux autorités américaines de réclamer des données hébergées par ces sociétés, même quand ces données sont physiquement en Europe. On peut chiffrer, cloisonner, négocier des clauses dans tous les sens, le fait reste que la décision finale échappe au juge européen. Pour un opérateur télécoms qui manipule des données de millions d'abonnés, ce n'est pas un détail.
|
|
||||||
|
|
||||||
Le plus rageant, c'est qu'on a des alternatives. OVHcloud, Scaleway, Outscale, IONOS en Allemagne, sans parler des projets autour de Deutsche Telekom. Ces acteurs existent, ils sont sérieux, ils savent faire. Alors pourquoi Orange ne s'allie pas avec eux pour construire quelque chose de crédible à l'échelle européenne ?
|
|
||||||
|
|
||||||
Parce que l'écart de moyens est vertigineux. AWS et Microsoft investissent chacun plus de cinquante milliards de dollars par an dans leurs infrastructures. Ils ont leurs propres câbles sous-marins, leurs propres réseaux mondiaux, et ils raflent une bonne partie des ingénieurs qui sortent des écoles. Un OVH, même bien géré, ne joue pas dans la même catégorie financière. Il faudrait une alliance européenne soutenue politiquement, financée sur vingt ou trente ans, pour espérer rattraper. On a essayé avec Gaia-X. Le résultat parle de lui-même.
|
|
||||||
|
|
||||||
Du coup, Orange est coincé. Tout miser sur l'européen aujourd'hui, ça veut dire accepter des services moins performants, moins riches, et perdre du terrain face à ses concurrents qui, eux, n'auront pas ces scrupules. Dans un marché où les marges fondent et où chaque innovation compte, c'est un pari risqué. Continuer avec les Américains, c'est rester dans la course mais accepter une dépendance qui peut, du jour au lendemain, devenir un problème géopolitique.
|
|
||||||
|
|
||||||
D'où la solution batarde que tout le monde adopte : l'hybride. On met chez Amazon ou Microsoft ce qui doit aller vite, innover, scaler. On garde en Europe, parfois sur des clouds "de confiance" labellisés SecNumCloud, ce qui touche aux données sensibles, aux clients régulés, à l'État. Ce n'est pas glorieux, mais ça permet de tenir les deux bouts.
|
|
||||||
|
|
||||||
Pour les défenseurs de la souveraineté numérique, ce compromis a un goût amer. On a l'impression d'une Europe qui se résigne, qui joue le match sur le terrain de l'adversaire avec ses règles. Mais en pointant Orange du doigt, on rate la cible. Le vrai problème n'est pas dans les choix d'une entreprise, il est en amont. Tant qu'on traitera le cloud comme un simple marché et pas comme une infrastructure critique, au même titre que l'électricité ou les chemins de fer, les industriels feront ce qu'ils ont toujours fait : choisir ce qui marche, là, maintenant.
|
|
||||||
|
|
||||||
La bonne question n'est donc pas "pourquoi Orange utilise AWS". Elle est "pourquoi, vingt ans après l'arrivée du cloud, l'Europe n'a toujours pas mis sur la table de quoi rendre ce choix évitable". La souveraineté ne se décrète pas dans des communiqués. Elle se paie. En milliards, en années, en décisions politiques qui survivent aux changements de gouvernement. Tant qu'on ne sera pas prêts à ce niveau d'engagement, on continuera à tenir un discours sur l'indépendance numérique en signant des contrats avec Seattle et Redmond.
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
Orange utilise massivement AWS, Azure et Google Cloud. Dit comme ça, c'est presque une blague. L'ancien France Télécom, opérateur historique, fleuron des télécoms français, héritier du service public, branché sur les serveurs de la Silicon Valley. À l'heure où on ne parle que de souveraineté numérique, on pourrait croire à une trahison. C'est plus compliqué que ça.
|
|
||||||
|
|
||||||
La raison principale est bête : les Américains ont gagné la course. En quinze ans, AWS, Microsoft et Google ont construit une avance que personne ne sait combler aujourd'hui. Et ils ne vendent plus seulement du stockage ou de la puissance de calcul. Ils vendent un écosystème entier : de l'IA prête à l'emploi, des outils d'analyse de données, de l'automatisation, de la cybersécurité, des garanties de disponibilité à neuf chiffres. Pour Orange, qui doit faire tourner ses services dans une vingtaine de pays sans tomber en panne, ce niveau de maturité pèse lourd dans la balance.
|
|
||||||
|
|
||||||
Sauf que ce choix rationnel a un prix politique. En confiant ses infrastructures à des entreprises soumises au droit américain, Orange entre dans une zone de dépendance dont on ne sort pas facilement. Le Cloud Act permet aux autorités américaines de réclamer des données hébergées par ces sociétés, même quand ces données sont physiquement en Europe. On peut chiffrer, cloisonner, négocier des clauses dans tous les sens, le fait reste que la décision finale échappe au juge européen. Pour un opérateur télécoms qui manipule des données de millions d'abonnés, ce n'est pas un détail.
|
|
||||||
|
|
||||||
Le plus rageant, c'est qu'on a des alternatives. OVHcloud, Scaleway, Outscale, IONOS en Allemagne, sans parler des projets autour de Deutsche Telekom. Ces acteurs existent, ils sont sérieux, ils savent faire. Alors pourquoi Orange ne s'allie pas avec eux pour construire quelque chose de crédible à l'échelle européenne ?
|
|
||||||
|
|
||||||
Parce que l'écart de moyens est vertigineux. AWS et Microsoft investissent chacun plus de cinquante milliards de dollars par an dans leurs infrastructures. Ils ont leurs propres câbles sous-marins, leurs propres réseaux mondiaux, et ils raflent une bonne partie des ingénieurs qui sortent des écoles. Un OVH, même bien géré, ne joue pas dans la même catégorie financière. Il faudrait une alliance européenne soutenue politiquement, financée sur vingt ou trente ans, pour espérer rattraper. On a essayé avec Gaia-X. Le résultat parle de lui-même.
|
|
||||||
|
|
||||||
Du coup, Orange est coincé. Tout miser sur l'européen aujourd'hui, ça veut dire accepter des services moins performants, moins riches, et perdre du terrain face à ses concurrents qui, eux, n'auront pas ces scrupules. Dans un marché où les marges fondent et où chaque innovation compte, c'est un pari risqué. Continuer avec les Américains, c'est rester dans la course mais accepter une dépendance qui peut, du jour au lendemain, devenir un problème géopolitique.
|
|
||||||
|
|
||||||
D'où la solution batarde que tout le monde adopte : l'hybride. On met chez Amazon ou Microsoft ce qui doit aller vite, innover, scaler. On garde en Europe, parfois sur des clouds "de confiance" labellisés SecNumCloud, ce qui touche aux données sensibles, aux clients régulés, à l'État. Ce n'est pas glorieux, mais ça permet de tenir les deux bouts.
|
|
||||||
|
|
||||||
Pour les défenseurs de la souveraineté numérique, ce compromis a un goût amer. On a l'impression d'une Europe qui se résigne, qui joue le match sur le terrain de l'adversaire avec ses règles. Mais en pointant Orange du doigt, on rate la cible. Le vrai problème n'est pas dans les choix d'une entreprise, il est en amont. Tant qu'on traitera le cloud comme un simple marché et pas comme une infrastructure critique, au même titre que l'électricité ou les chemins de fer, les industriels feront ce qu'ils ont toujours fait : choisir ce qui marche, là, maintenant.
|
|
||||||
|
|
||||||
La bonne question n'est donc pas "pourquoi Orange utilise AWS". Elle est "pourquoi, vingt ans après l'arrivée du cloud, l'Europe n'a toujours pas mis sur la table de quoi rendre ce choix évitable". La souveraineté ne se décrète pas dans des communiqués. Elle se paie. En milliards, en années, en décisions politiques qui survivent aux changements de gouvernement. Tant qu'on ne sera pas prêts à ce niveau d'engagement, on continuera à tenir un discours sur l'indépendance numérique en signant des contrats avec Seattle et Redmond.
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
Orange utilise massivement AWS, Azure et Google Cloud. Dit comme ça, c'est presque une blague. L'ancien France Télécom, opérateur historique, fleuron des télécoms français, héritier du service public, branché sur les serveurs de la Silicon Valley. À l'heure où on ne parle que de souveraineté numérique, on pourrait croire à une trahison. C'est plus compliqué que ça.
|
|
||||||
|
|
||||||
La raison principale est bête : les Américains ont gagné la course. En quinze ans, AWS, Microsoft et Google ont construit une avance que personne ne sait combler aujourd'hui. Et ils ne vendent plus seulement du stockage ou de la puissance de calcul. Ils vendent un écosystème entier : de l'IA prête à l'emploi, des outils d'analyse de données, de l'automatisation, de la cybersécurité, des garanties de disponibilité à neuf chiffres. Pour Orange, qui doit faire tourner ses services dans une vingtaine de pays sans tomber en panne, ce niveau de maturité pèse lourd dans la balance.
|
|
||||||
|
|
||||||
Sauf que ce choix rationnel a un prix politique. En confiant ses infrastructures à des entreprises soumises au droit américain, Orange entre dans une zone de dépendance dont on ne sort pas facilement. Le Cloud Act permet aux autorités américaines de réclamer des données hébergées par ces sociétés, même quand ces données sont physiquement en Europe. On peut chiffrer, cloisonner, négocier des clauses dans tous les sens, le fait reste que la décision finale échappe au juge européen. Pour un opérateur télécoms qui manipule des données de millions d'abonnés, ce n'est pas un détail.
|
|
||||||
|
|
||||||
Le plus rageant, c'est qu'on a des alternatives. OVHcloud, Scaleway, Outscale, IONOS en Allemagne, sans parler des projets autour de Deutsche Telekom. Ces acteurs existent, ils sont sérieux, ils savent faire. Alors pourquoi Orange ne s'allie pas avec eux pour construire quelque chose de crédible à l'échelle européenne ?
|
|
||||||
|
|
||||||
Parce que l'écart de moyens est vertigineux. AWS et Microsoft investissent chacun plus de cinquante milliards de dollars par an dans leurs infrastructures. Ils ont leurs propres câbles sous-marins, leurs propres réseaux mondiaux, et ils raflent une bonne partie des ingénieurs qui sortent des écoles. Un OVH, même bien géré, ne joue pas dans la même catégorie financière. Il faudrait une alliance européenne soutenue politiquement, financée sur vingt ou trente ans, pour espérer rattraper. On a essayé avec Gaia-X. Le résultat parle de lui-même.
|
|
||||||
|
|
||||||
Du coup, Orange est coincé. Tout miser sur l'européen aujourd'hui, ça veut dire accepter des services moins performants, moins riches, et perdre du terrain face à ses concurrents qui, eux, n'auront pas ces scrupules. Dans un marché où les marges fondent et où chaque innovation compte, c'est un pari risqué. Continuer avec les Américains, c'est rester dans la course mais accepter une dépendance qui peut, du jour au lendemain, devenir un problème géopolitique.
|
|
||||||
|
|
||||||
D'où la solution batarde que tout le monde adopte : l'hybride. On met chez Amazon ou Microsoft ce qui doit aller vite, innover, scaler. On garde en Europe, parfois sur des clouds "de confiance" labellisés SecNumCloud, ce qui touche aux données sensibles, aux clients régulés, à l'État. Ce n'est pas glorieux, mais ça permet de tenir les deux bouts.
|
|
||||||
|
|
||||||
Pour les défenseurs de la souveraineté numérique, ce compromis a un goût amer. On a l'impression d'une Europe qui se résigne, qui joue le match sur le terrain de l'adversaire avec ses règles. Mais en pointant Orange du doigt, on rate la cible. Le vrai problème n'est pas dans les choix d'une entreprise, il est en amont. Tant qu'on traitera le cloud comme un simple marché et pas comme une infrastructure critique, au même titre que l'électricité ou les chemins de fer, les industriels feront ce qu'ils ont toujours fait : choisir ce qui marche, là, maintenant.
|
|
||||||
|
|
||||||
La bonne question n'est donc pas "pourquoi Orange utilise AWS". Elle est "pourquoi, vingt ans après l'arrivée du cloud, l'Europe n'a toujours pas mis sur la table de quoi rendre ce choix évitable". La souveraineté ne se décrète pas dans des communiqués. Elle se paie. En milliards, en années, en décisions politiques qui survivent aux changements de gouvernement. Tant qu'on ne sera pas prêts à ce niveau d'engagement, on continuera à tenir un discours sur l'indépendance numérique en signant des contrats avec Seattle et Redmond.
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
Orange utilise massivement AWS, Azure et Google Cloud. Dit comme ça, c'est presque une blague. L'ancien France Télécom, opérateur historique, fleuron des télécoms français, héritier du service public, branché sur les serveurs de la Silicon Valley. À l'heure où on ne parle que de souveraineté numérique, on pourrait croire à une trahison. C'est plus compliqué que ça.
|
|
||||||
|
|
||||||
La raison principale est bête : les Américains ont gagné la course. En quinze ans, AWS, Microsoft et Google ont construit une avance que personne ne sait combler aujourd'hui. Et ils ne vendent plus seulement du stockage ou de la puissance de calcul. Ils vendent un écosystème entier : de l'IA prête à l'emploi, des outils d'analyse de données, de l'automatisation, de la cybersécurité, des garanties de disponibilité à neuf chiffres. Pour Orange, qui doit faire tourner ses services dans une vingtaine de pays sans tomber en panne, ce niveau de maturité pèse lourd dans la balance.
|
|
||||||
|
|
||||||
Sauf que ce choix rationnel a un prix politique. En confiant ses infrastructures à des entreprises soumises au droit américain, Orange entre dans une zone de dépendance dont on ne sort pas facilement. Le Cloud Act permet aux autorités américaines de réclamer des données hébergées par ces sociétés, même quand ces données sont physiquement en Europe. On peut chiffrer, cloisonner, négocier des clauses dans tous les sens, le fait reste que la décision finale échappe au juge européen. Pour un opérateur télécoms qui manipule des données de millions d'abonnés, ce n'est pas un détail.
|
|
||||||
|
|
||||||
Le plus rageant, c'est qu'on a des alternatives. OVHcloud, Scaleway, Outscale, IONOS en Allemagne, sans parler des projets autour de Deutsche Telekom. Ces acteurs existent, ils sont sérieux, ils savent faire. Alors pourquoi Orange ne s'allie pas avec eux pour construire quelque chose de crédible à l'échelle européenne ?
|
|
||||||
|
|
||||||
Parce que l'écart de moyens est vertigineux. AWS et Microsoft investissent chacun plus de cinquante milliards de dollars par an dans leurs infrastructures. Ils ont leurs propres câbles sous-marins, leurs propres réseaux mondiaux, et ils raflent une bonne partie des ingénieurs qui sortent des écoles. Un OVH, même bien géré, ne joue pas dans la même catégorie financière. Il faudrait une alliance européenne soutenue politiquement, financée sur vingt ou trente ans, pour espérer rattraper. On a essayé avec Gaia-X. Le résultat parle de lui-même.
|
|
||||||
|
|
||||||
Du coup, Orange est coincé. Tout miser sur l'européen aujourd'hui, ça veut dire accepter des services moins performants, moins riches, et perdre du terrain face à ses concurrents qui, eux, n'auront pas ces scrupules. Dans un marché où les marges fondent et où chaque innovation compte, c'est un pari risqué. Continuer avec les Américains, c'est rester dans la course mais accepter une dépendance qui peut, du jour au lendemain, devenir un problème géopolitique.
|
|
||||||
|
|
||||||
D'où la solution batarde que tout le monde adopte : l'hybride. On met chez Amazon ou Microsoft ce qui doit aller vite, innover, scaler. On garde en Europe, parfois sur des clouds "de confiance" labellisés SecNumCloud, ce qui touche aux données sensibles, aux clients régulés, à l'État. Ce n'est pas glorieux, mais ça permet de tenir les deux bouts.
|
|
||||||
|
|
||||||
Pour les défenseurs de la souveraineté numérique, ce compromis a un goût amer. On a l'impression d'une Europe qui se résigne, qui joue le match sur le terrain de l'adversaire avec ses règles. Mais en pointant Orange du doigt, on rate la cible. Le vrai problème n'est pas dans les choix d'une entreprise, il est en amont. Tant qu'on traitera le cloud comme un simple marché et pas comme une infrastructure critique, au même titre que l'électricité ou les chemins de fer, les industriels feront ce qu'ils ont toujours fait : choisir ce qui marche, là, maintenant.
|
|
||||||
|
|
||||||
La bonne question n'est donc pas "pourquoi Orange utilise AWS". Elle est "pourquoi, vingt ans après l'arrivée du cloud, l'Europe n'a toujours pas mis sur la table de quoi rendre ce choix évitable". La souveraineté ne se décrète pas dans des communiqués. Elle se paie. En milliards, en années, en décisions politiques qui survivent aux changements de gouvernement. Tant qu'on ne sera pas prêts à ce niveau d'engagement, on continuera à tenir un discours sur l'indépendance numérique en signant des contrats avec Seattle et Redmond.
|
|
||||||
@@ -1,115 +0,0 @@
|
|||||||
**La liseuse couleur qui veut remplacer votre carnet**
|
|
||||||
|
|
||||||
**Prix indicatif : ~229 €**
|
|
||||||
**Écran : 7" E-Ink Kaleido 3 couleur + stylet optionnel (Kobo Stylus 2)**
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### *Premières impressions*
|
|
||||||
|
|
||||||
Depuis dix ans, les liseuses se ressemblent : noir et blanc, lecture simple, fonctions annexes minimalistes.
|
|
||||||
Kobo vient de fracturer ce statu quo avec la **Libra Colour**, première Kobo 7" couleur équipée du nouvel écran **E-Ink Kaleido 3** et compatible stylet. Une promesse simple : **lire, annoter, surligner en couleur**, et surtout **prendre des notes comme sur papier**, sans transformer l’objet en tablette.
|
|
||||||
|
|
||||||
En main, c’est léger (199 g), équilibré, presque “livre de poche numérique”.
|
|
||||||
Une poignée latérale donne un vrai confort de prise. Les boutons physiques pour tourner les pages évitent de toucher l’écran.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Écran couleur : enfin utile
|
|
||||||
|
|
||||||
La technologie **Kaleido 3** n’est pas un LCD :
|
|
||||||
|
|
||||||
* pas de rétro-éclairage direct
|
|
||||||
* fatigue visuelle quasi nulle
|
|
||||||
* lisible en plein soleil
|
|
||||||
|
|
||||||
La résolution couleur est plus faible que le noir et blanc (on voit légèrement la trame), mais l’apport est **immédiat** :
|
|
||||||
|
|
||||||
* cartes et schémas lisibles
|
|
||||||
* manuels techniques plus clairs
|
|
||||||
* surlignage couleur efficace (annotation d’articles, cours, documents)
|
|
||||||
|
|
||||||
*Ce n’est pas une “tablette”, mais c’est la première liseuse où la couleur est un outil, pas un gadget.*
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Stylet et prise de notes
|
|
||||||
|
|
||||||
Avec le **Stylo Kobo 2** (option), la Libra Colour débloque son vrai potentiel.
|
|
||||||
|
|
||||||
* **Annotation dans les PDF et ePub**
|
|
||||||
* **Surlignage** multicolore comme sur papier
|
|
||||||
* Écriture manuscrite dans des *carnets* intégrés
|
|
||||||
* Synchronisation via Dropbox ou câble USB
|
|
||||||
|
|
||||||
Point clé : les **PDF annotés sont exportables**.
|
|
||||||
On récupère un **PDF imprimable**, avec les coups de surligneur et griffonnages intégrés à la page.
|
|
||||||
|
|
||||||
> Étudiants, enseignants, professionnels : c’est une liseuse qui accepte enfin le papier numérique.
|
|
||||||
|
|
||||||
Écrire sur l’écran n’a pas la fluidité d’une tablette graphique, mais la latence est faible et le ressenti “crayon sur papier” est crédible.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Lecture : toujours ce que Kobo fait de mieux
|
|
||||||
|
|
||||||
* Gestion native **ePub**
|
|
||||||
* Intégration **Pocket** (envoyer des articles du web vers la liseuse)
|
|
||||||
* Librairie intégrée → achat immédiat, y compris BD couleur
|
|
||||||
|
|
||||||
Et surtout :
|
|
||||||
|
|
||||||
> Aucun verrou Amazon.
|
|
||||||
> KOReader installable.
|
|
||||||
|
|
||||||
Le contraste noir et blanc est bon, le frontlight (éclairage frontal) est homogène et le **ConfortLight PRO** ajuste la température (blanc → ambré) pour éviter le bleu le soir.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Autonomie
|
|
||||||
|
|
||||||
Avec lecture + annotations :
|
|
||||||
|
|
||||||
* **1 à 3 semaines** selon l’usage du stylet et du Wi-Fi.
|
|
||||||
|
|
||||||
On est loin des tablettes (iPad / Remarkable), mais cohérent pour une liseuse.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Export / impression
|
|
||||||
|
|
||||||
Processus simple :
|
|
||||||
|
|
||||||
1. Annoter le PDF sur la Kobo.
|
|
||||||
2. Export via Dropbox ou USB.
|
|
||||||
3. Imprimer depuis l’ordinateur.
|
|
||||||
|
|
||||||
Pas d’impression directe depuis la liseuse, mais **aucune perte des annotations**.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Comparatif rapide
|
|
||||||
|
|
||||||
| Modèle | Écran | Stylet | Export PDF annoté | Pour qui |
|
|
||||||
| --------------------- | -------------------- | ------ | ----------------- | ------------------------------------------- |
|
|
||||||
| **Kobo Libra Colour** | 7" couleur Kaleido 3 | Option | Oui | Lecture + annotations ponctuelles + couleur |
|
|
||||||
| Kobo Sage | 8" N&B | Option | Oui | Prise de notes sérieuse, format plus grand |
|
|
||||||
| Kobo Elipsa 2E | 10,3" N&B | Inclus | Oui | Remplace un classeur A4, usage intensif PDF |
|
|
||||||
| Kindle Scribe | 10,2" N&B | Inclus | Export limité | Ancien écosystème Kindle |
|
|
||||||
|
|
||||||
**Gagnant polyvalence 2025 : Kobo Libra Colour.**
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Verdict par Cédrix
|
|
||||||
|
|
||||||
La **Kobo Libra Colour** n’est pas qu’une liseuse couleur.
|
|
||||||
C’est un *outil hybride* :
|
|
||||||
|
|
||||||
* liseuse pleine de finesse
|
|
||||||
* bloc-notes numérique
|
|
||||||
* annotateur de PDF imprimable
|
|
||||||
|
|
||||||
Elle n’écrase pas l’Elipsa 2E pour le travail intensif, mais elle fait entrer la couleur et le stylet **dans un format compact et abordable**.
|
|
||||||
|
|
||||||
**Mon avis par Cédrix – La meilleure liseuse “papier numérique” polyvalente.**
|
|
||||||