<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Simple Enough Blog ! on Simple Enough Blog</title><link>https://blog.dev.simpleenough.net/fr/</link><description>Recent content in Simple Enough Blog ! on Simple Enough Blog</description><generator>Hugo</generator><language>fr</language><lastBuildDate>Wed, 22 Jul 2026 10:00:00 +0200</lastBuildDate><atom:link href="https://blog.dev.simpleenough.net/fr/index.xml" rel="self" type="application/rss+xml"/><item><title>Le café au bureau : le boost qui cache la fatigue</title><link>https://blog.dev.simpleenough.net/fr/blog/coffee/</link><pubDate>Wed, 22 Jul 2026 10:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/coffee/</guid><description>&lt;p>Regardez autour de vous, un jour de bureau ordinaire. Le premier café du matin, celui de la pause de 10 h, le petit dernier avant la réunion importante. Beaucoup de gens en prennent plusieurs par jour, y trouvent un vrai plaisir, et jureraient qu&amp;rsquo;ils en ont &lt;em>besoin&lt;/em> pour tenir. Rien d&amp;rsquo;alarmant là-dedans. Mais une observation intrigue : pourquoi, quand ils sautent leur café, une fatigue soudaine — parfois violente — s&amp;rsquo;installe ? Cet article part de ce comportement quotidien et descend, couche après couche, vers ce qu&amp;rsquo;en dit la science.&lt;/p></description></item><item><title>MTTR : la métrique qui sauve vos nuits</title><link>https://blog.dev.simpleenough.net/fr/blog/mttr/</link><pubDate>Tue, 21 Jul 2026 10:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/mttr/</guid><description>&lt;p>Il est 3 heures du matin, une alerte se déclenche, et la seule question qui compte n&amp;rsquo;est pas « pourquoi ça a cassé ? » mais « dans combien de temps est-ce réparé ? ». Vouloir empêcher toutes les pannes est une illusion : les systèmes complexes finissent toujours par tomber. La vraie mesure de maturité d&amp;rsquo;une équipe n&amp;rsquo;est donc pas sa capacité à ne jamais échouer, mais sa capacité à &lt;strong>se rétablir vite&lt;/strong>. C&amp;rsquo;est ce que mesure le MTTR — à condition de savoir le lire.&lt;/p></description></item><item><title>Tester son bus factor : l'exercice de l'expert en sourdine</title><link>https://blog.dev.simpleenough.net/fr/blog/bus_factor/</link><pubDate>Mon, 20 Jul 2026 17:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/bus_factor/</guid><description>&lt;p>Tout au long de cette série, nous avons vu comment transmettre le savoir : en direct, par écrit, par l&amp;rsquo;organisation. Reste une question que l&amp;rsquo;on évite soigneusement : &lt;strong>est-ce que ça marche vraiment ?&lt;/strong> On croit une équipe robuste parce qu&amp;rsquo;elle documente et pratique le binôme — jusqu&amp;rsquo;au jour où un départ révèle les trous. Cet article propose de ne pas attendre ce jour-là, et de mesurer sa vulnérabilité pendant qu&amp;rsquo;il est encore temps.&lt;/p></description></item><item><title>Les dispositifs qui font circuler le savoir : rotation, game days et guildes</title><link>https://blog.dev.simpleenough.net/fr/blog/dispositifstransmission/</link><pubDate>Mon, 20 Jul 2026 16:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/dispositifstransmission/</guid><description>&lt;p>Dans le guide des modes de collaboration, nous avons vu comment transmettre en direct (le tacite) et par écrit (l&amp;rsquo;explicite). Mais une équipe peut maîtriser toutes ces pratiques et voir malgré tout son savoir se concentrer sur quelques personnes. La raison est structurelle : sans dispositif qui l&amp;rsquo;y oblige, la connaissance suit la pente naturelle de la spécialisation. Cet article traite de la couche organisationnelle — non pas &lt;em>comment&lt;/em> on travaille ensemble, mais &lt;em>comment on s&amp;rsquo;arrange&lt;/em> pour que le savoir circule par défaut.&lt;/p></description></item><item><title>Transmettre en asynchrone : revue de code, ADR et docs-as-code</title><link>https://blog.dev.simpleenough.net/fr/blog/modeasynchrone/</link><pubDate>Mon, 20 Jul 2026 15:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/modeasynchrone/</guid><description>&lt;p>Dans le guide des modes de collaboration, nous avons posé une règle : le savoir explicite se transmet en asynchrone. Là où les modes synchrones font passer l&amp;rsquo;intuition par le contact, les modes asynchrones fixent ce qui peut être écrit — et produisent une trace qui &lt;strong>survit aux départs&lt;/strong>. Encore faut-il éviter le piège classique : une documentation que personne ne lit et que plus personne ne met à jour. Cet article détaille les pratiques qui marchent, et pourquoi.&lt;/p></description></item><item><title>Travailler ensemble en direct : pair, mob, shadowing et swarming</title><link>https://blog.dev.simpleenough.net/fr/blog/modesynchrone/</link><pubDate>Mon, 20 Jul 2026 14:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/modesynchrone/</guid><description>&lt;p>Dans le guide des modes de collaboration, nous avons posé une règle : le savoir tacite ne se transmet que par le contact. Les modes synchrones sont donc irremplaçables — mais ils ont un coût, et ce coût fait peur. « Deux personnes sur une seule tâche, c&amp;rsquo;est diviser la productivité par deux. » Cet article démontre le contraire et détaille les quatre grandes façons de travailler ensemble en direct, avec leurs variantes et leurs pièges.&lt;/p></description></item><item><title>Transmettre le savoir dans une équipe tech : le guide des modes de collaboration</title><link>https://blog.dev.simpleenough.net/fr/blog/modetransmission/</link><pubDate>Mon, 20 Jul 2026 13:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/modetransmission/</guid><description>&lt;p>Dans « Quand le dernier expert disparaît », nous avons vu &lt;em>pourquoi&lt;/em> la mémoire d&amp;rsquo;une équipe est une dette technique invisible. Reste le &lt;em>comment&lt;/em> y remédier. Pair programming, mob, shadowing, revue de code, ADR, rotation d&amp;rsquo;astreinte : les pratiques ne manquent pas, et c&amp;rsquo;est précisément le problème — on ne sait pas laquelle choisir. Ce guide les cartographie et donne une règle simple pour trancher.&lt;/p>
&lt;hr>




&lt;h2 id="i-deux-natures-de-savoir--tacite-et-explicite" class="heading">I. Deux natures de savoir : tacite et explicite&lt;a href="#i-deux-natures-de-savoir--tacite-et-explicite" aria-labelledby="i-deux-natures-de-savoir--tacite-et-explicite">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Avant de choisir une pratique, il faut savoir &lt;strong>ce que l&amp;rsquo;on transmet&lt;/strong>. Toute connaissance d&amp;rsquo;équipe se répartit en deux familles, et elles n&amp;rsquo;obéissent pas aux mêmes lois.&lt;/p></description></item><item><title>Quand le dernier expert disparaît</title><link>https://blog.dev.simpleenough.net/fr/blog/lastexpert/</link><pubDate>Mon, 20 Jul 2026 12:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/lastexpert/</guid><description>&lt;p>Il existe, dans presque chaque organisation, un système dont on parle à voix basse. Il tourne depuis dix ans, il est critique, et une seule personne sait vraiment comment il fonctionne. Le jour où cette personne part — retraite, démission, mutation — ce n&amp;rsquo;est pas seulement un collègue qui s&amp;rsquo;en va : c&amp;rsquo;est une bibliothèque entière qui ferme sans avoir été copiée. Ce savoir perdu est une forme de dette technique, la plus insidieuse de toutes, car elle ne se voit dans aucun tableau de bord.&lt;/p></description></item><item><title>Rendre ses graphiques accessibles à tous</title><link>https://blog.dev.simpleenough.net/fr/blog/graphicaccessibility/</link><pubDate>Mon, 20 Jul 2026 03:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/graphicaccessibility/</guid><description>&lt;p>Vous passez une heure à peaufiner un graphique, il est parfait sur votre écran… et pourtant une partie de vos lecteurs n&amp;rsquo;y comprendra rien. Le collègue daltonien ne distingue pas vos deux courbes. La version imprimée en noir et blanc écrase toutes vos couleurs. Le lecteur sur mobile, en plein soleil, ne voit qu&amp;rsquo;un aplat gris. L&amp;rsquo;utilisateur de lecteur d&amp;rsquo;écran, lui, n&amp;rsquo;entend qu&amp;rsquo;un mot : « image ». Rendre un graphique accessible, ce n&amp;rsquo;est pas cocher une case réglementaire : c&amp;rsquo;est éviter que tout votre travail se perde en chemin.&lt;/p></description></item><item><title>7 erreurs courantes en visualisation de données</title><link>https://blog.dev.simpleenough.net/fr/blog/graphic7mistakes/</link><pubDate>Tue, 14 Jul 2026 13:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/graphic7mistakes/</guid><description>&lt;p>Un graphique est censé clarifier une idée. Mal conçu, il fait l&amp;rsquo;inverse : il embrouille, ou pire, il trompe — parfois sans mauvaise intention. La bonne nouvelle, c&amp;rsquo;est que la plupart des ratés viennent des mêmes erreurs, faciles à repérer et à corriger. En voici sept, des plus mensongères aux plus discrètes, avec le remède pour chacune.&lt;/p>
&lt;hr>




&lt;h2 id="i-laxe-tronqué-qui-exagère-tout" class="heading">I. L&amp;rsquo;axe tronqué qui exagère tout&lt;a href="#i-laxe-tronqu%c3%a9-qui-exag%c3%a8re-tout" aria-labelledby="i-laxe-tronqué-qui-exagère-tout">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>&lt;strong>Le problème :&lt;/strong> commencer l&amp;rsquo;axe vertical ailleurs qu&amp;rsquo;à zéro. Une différence de 2 % peut alors ressembler à un écart spectaculaire. C&amp;rsquo;est l&amp;rsquo;erreur la plus trompeuse — et la plus fréquente dans les graphiques « à charge ».&lt;/p></description></item><item><title>10 outils gratuits pour créer des graphiques en ligne</title><link>https://blog.dev.simpleenough.net/fr/blog/graphicfree/</link><pubDate>Tue, 07 Jul 2026 12:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/graphicfree/</guid><description>&lt;p>Vous savez quel graphique vous voulez — reste à le produire. Bonne nouvelle : il existe une foule de sites gratuits pour créer une visualisation propre sans installer quoi que ce soit, et sans écrire une ligne de code. Voici une sélection de 10 outils, classés du plus simple au plus avancé, avec ce que chacun fait de mieux et ses limites à connaître.&lt;/p>
&lt;hr>




&lt;h2 id="i-avant-de-choisir-un-outil--choisissez-le-graphique" class="heading">I. Avant de choisir un outil : choisissez le graphique&lt;a href="#i-avant-de-choisir-un-outil--choisissez-le-graphique" aria-labelledby="i-avant-de-choisir-un-outil--choisissez-le-graphique">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Un rappel essentiel : &lt;strong>l&amp;rsquo;outil ne fait pas le bon graphique, vous le faites.&lt;/strong> Avant d&amp;rsquo;ouvrir l&amp;rsquo;un de ces sites, identifiez d&amp;rsquo;abord votre besoin — comparer, montrer une évolution, une répartition, une corrélation ? Si ce n&amp;rsquo;est pas clair, commencez par notre guide « Quel graphique choisir selon ses données ». Une fois le type décidé, les outils ci-dessous ne sont plus qu&amp;rsquo;une question d&amp;rsquo;exécution.&lt;/p></description></item><item><title>Quel graphique choisir selon ses données : le guide complet</title><link>https://blog.dev.simpleenough.net/fr/blog/graphicchoose/</link><pubDate>Tue, 30 Jun 2026 11:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/graphicchoose/</guid><description>&lt;p>Devant un jeu de données, la question revient toujours : « quel graphique utiliser ? » On hésite, on teste un camembert, puis des barres, et on choisit souvent celui qui « rend le mieux » plutôt que celui qui dit vrai. Pourtant, le bon graphique ne dépend ni de la mode ni de l&amp;rsquo;esthétique : il dépend de &lt;strong>la question à laquelle vos données doivent répondre&lt;/strong>. Ce guide vous donne une méthode simple pour choisir à coup sûr.&lt;/p></description></item><item><title>La part invisible de l'iceberg : AWS Security Hub</title><link>https://blog.dev.simpleenough.net/fr/blog/securityhubiceberg/</link><pubDate>Wed, 24 Jun 2026 10:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/securityhubiceberg/</guid><description>&lt;p>Quand on parle sécurité sur AWS, on pense d&amp;rsquo;abord aux services visibles : GuardDuty qui détecte les menaces, Macie qui surveille les données sensibles, Inspector qui scanne les vulnérabilités. Ce sont les pointes émergées de l&amp;rsquo;iceberg. Mais sous la surface se cache une masse bien plus grande : des centaines de &lt;em>résultats&lt;/em> éparpillés, des règles de conformité à suivre, des comptes multiples à corréler. &lt;strong>AWS Security Hub&lt;/strong> est précisément le service qui rend cette part invisible exploitable, en la rassemblant en une vue unique.&lt;/p></description></item><item><title>Serveurs MCP : intégration et écosystème</title><link>https://blog.dev.simpleenough.net/fr/blog/mcpecosystem/</link><pubDate>Wed, 17 Jun 2026 10:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/mcpecosystem/</guid><description>&lt;p>Dans le premier article, nous avons posé les bases du Model Context Protocol ; dans le deuxième, nous avons construit un serveur de A à Z. Reste la question qui transforme un prototype en outil du quotidien : &lt;strong>comment intégrer un serveur MCP dans son environnement de travail, en réutilisant l&amp;rsquo;écosystème existant, sans ouvrir une faille de sécurité ?&lt;/strong> C&amp;rsquo;est l&amp;rsquo;objet de ce dernier article.&lt;/p>
&lt;hr>




&lt;h2 id="i-connecter-un-serveur-à-claude-et-claude-code" class="heading">I. Connecter un serveur à Claude et Claude Code&lt;a href="#i-connecter-un-serveur-%c3%a0-claude-et-claude-code" aria-labelledby="i-connecter-un-serveur-à-claude-et-claude-code">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Dans le tutoriel, nous avons branché notre serveur à Claude Desktop via &lt;code>claude_desktop_config.json&lt;/code>. &lt;strong>Claude Code&lt;/strong>, l&amp;rsquo;assistant en ligne de commande, offre une approche encore plus directe avec la sous-commande &lt;code>claude mcp&lt;/code> :&lt;/p></description></item><item><title>Tutoriel : construire son premier serveur MCP en Python</title><link>https://blog.dev.simpleenough.net/fr/blog/mcptuto/</link><pubDate>Wed, 10 Jun 2026 10:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/mcptuto/</guid><description>&lt;p>Dans le premier article sur les serveurs Model Context Protocol nous avons posé les bases sur : son architecture hôte / client / serveur et ses trois primitives (outils, ressources, prompts). Place à la pratique. Dans ce tutoriel, nous construisons de bout en bout un petit serveur MCP en Python qui expose un &lt;strong>outil&lt;/strong> et une &lt;strong>ressource&lt;/strong>, puis nous le branchons à un hôte pour voir un modèle s&amp;rsquo;en servir.&lt;/p></description></item><item><title>Les serveurs MCP : comprendre le Model Context Protocol</title><link>https://blog.dev.simpleenough.net/fr/blog/mcp/</link><pubDate>Wed, 03 Jun 2026 10:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/mcp/</guid><description>&lt;p>Les modèles de langage sont brillants pour raisonner sur du texte, mais ils sont, par nature, coupés du monde. Un modèle ne peut pas lire vos fichiers, interroger votre base de données ou appeler une API tant qu&amp;rsquo;on ne lui en donne pas explicitement les moyens. Le &lt;strong>Model Context Protocol (MCP)&lt;/strong> est le standard qui résout ce problème de façon générique. Ce premier article pose les bases ; les suivants entreront dans le détail de la construction d&amp;rsquo;un serveur et de son intégration à un écosystème.&lt;/p></description></item><item><title>Qu’est-ce qu’un Harness pour agents IA ? Comprendre l’infrastructure derrière Claude Code et Cursor</title><link>https://blog.dev.simpleenough.net/fr/blog/harness_intro/</link><pubDate>Wed, 27 May 2026 15:55:01 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/harness_intro/</guid><description>&lt;h2 id="i-quest-ce-quun-harness-pour-agents-ia-" class="heading">I. Qu’est-ce qu’un Harness pour agents IA ?&lt;a href="#i-quest-ce-quun-harness-pour-agents-ia-" aria-labelledby="i-quest-ce-quun-harness-pour-agents-ia-">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Lorsque l’on découvre des outils comme &lt;strong>Claude Code&lt;/strong>, &lt;strong>Cursor&lt;/strong> ou &lt;strong>OpenAI Codex&lt;/strong>, il est facile d’avoir l’impression qu’un simple modèle de langage est capable de comprendre un projet complet, corriger du code, exécuter des commandes ou encore lancer des tests de manière autonome.&lt;/p>
&lt;p>Pourtant, la réalité technique est bien plus intéressante.&lt;/p></description></item><item><title>CheckList EC2 : 7 choses à faire après le lancement d'une instance</title><link>https://blog.dev.simpleenough.net/fr/blog/ec2_checklist/</link><pubDate>Wed, 20 May 2026 19:30:00 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/ec2_checklist/</guid><description>&lt;h1 id="checklist-ec2--7-choses-à-faire-après-le-lancement-dune-instance" class="heading">CheckList EC2 : 7 choses à faire après le lancement d&amp;rsquo;une instance&lt;a href="#checklist-ec2--7-choses-%c3%a0-faire-apr%c3%a8s-le-lancement-dune-instance" aria-labelledby="checklist-ec2--7-choses-à-faire-après-le-lancement-dune-instance">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h1>
&lt;p>Lancer une instance EC2 est très simple.&lt;br>
Quelques clics dans la console AWS, et la machine démarre.&lt;/p>
&lt;p>Mais en pratique, &lt;strong>une instance lancée n’est pas une instance prête&lt;/strong>.&lt;/p>
&lt;p>Beaucoup de problèmes en production viennent de détails oubliés juste après le lancement :&lt;/p>
&lt;ul>
&lt;li>mauvais security group&lt;/li>
&lt;li>pas de sauvegarde&lt;/li>
&lt;li>pas de monitoring&lt;/li>
&lt;li>pas de rôle IAM&lt;/li>
&lt;li>accès SSH mal configuré&lt;/li>
&lt;li>disque trop petit&lt;/li>
&lt;li>pas de tag&lt;/li>
&lt;/ul>
&lt;p>Voici une checklist simple et pragmatique des &lt;strong>7 choses à vérifier immédiatement après avoir lancé une instance EC2&lt;/strong>.&lt;/p></description></item><item><title>Nx n’est pas un outil JavaScript : c’est un orchestrateur de travail</title><link>https://blog.dev.simpleenough.net/fr/blog/nx/</link><pubDate>Wed, 13 May 2026 12:00:00 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/nx/</guid><description>&lt;h2 id="i-nx-nest-pas-un-outil-javascript--cest-un-orchestrateur-de-travail" class="heading">I. Nx n’est pas un outil JavaScript : c’est un orchestrateur de travail&lt;a href="#i-nx-nest-pas-un-outil-javascript--cest-un-orchestrateur-de-travail" aria-labelledby="i-nx-nest-pas-un-outil-javascript--cest-un-orchestrateur-de-travail">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Nx est souvent présenté — et perçu — comme un outil JavaScript.&lt;br>
Un “truc pour Angular”, ou au mieux “un runner pour monorepos Node”.&lt;/p>
&lt;p>Cette perception est compréhensible…&lt;br>
mais &lt;strong>fondamentalement incorrecte&lt;/strong>.&lt;/p>
&lt;p>Nx n’est pas un outil JS.&lt;br>
&lt;strong>Nx est un orchestrateur de travail.&lt;/strong>&lt;/p>
&lt;p>Et c’est précisément pour cette raison qu’il apparaît presque naturellement
dès qu’un dépôt devient &lt;strong>polyglotte&lt;/strong>.&lt;/p></description></item><item><title>Introduction à AWS Lambda : le guide complet pour débutants et développeurs</title><link>https://blog.dev.simpleenough.net/fr/blog/lambda_intro/</link><pubDate>Wed, 06 May 2026 10:00:00 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/lambda_intro/</guid><description>&lt;h2 id="i-cest-quoi-aws-lambda-" class="heading">I. C&amp;rsquo;est quoi AWS Lambda ?&lt;a href="#i-cest-quoi-aws-lambda-" aria-labelledby="i-cest-quoi-aws-lambda-">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>AWS Lambda est un service de &lt;strong>calcul serverless&lt;/strong> lancé par Amazon en 2014. L&amp;rsquo;idée est simple : on fournit une fonction (un morceau de code), et AWS l&amp;rsquo;exécute à la demande, sans qu&amp;rsquo;on aie à gérer le moindre serveur.
Vous n’avez pas de serveur à provisionner, pas d’OS à maintenir, pas d’autoscaling à configurer à la main.&lt;/p></description></item><item><title>Pourquoi le cache Docker est insuffisant pour un monorepo ?</title><link>https://blog.dev.simpleenough.net/fr/blog/cache_docker/</link><pubDate>Tue, 28 Apr 2026 10:00:00 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/cache_docker/</guid><description>&lt;h2 id="i-pourquoi-le-cache-docker-est-insuffisant-pour-un-monorepo" class="heading">I. Pourquoi le cache Docker est insuffisant pour un monorepo&lt;a href="#i-pourquoi-le-cache-docker-est-insuffisant-pour-un-monorepo" aria-labelledby="i-pourquoi-le-cache-docker-est-insuffisant-pour-un-monorepo">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Docker est partout.&lt;br>
Et avec lui, une idée largement répandue :&lt;/p>





 &lt;blockquote class="blockquote">
 &lt;p>&lt;em>« Si on structure bien nos Dockerfiles, le cache Docker va accélérer notre CI. »&lt;/em>&lt;/p>
 &lt;/blockquote>
&lt;p>C’est &lt;strong>vrai&lt;/strong>… mais seulement &lt;strong>jusqu’à un certain point&lt;/strong>.&lt;/p>
&lt;p>Dès qu’on travaille dans un &lt;strong>monorepo&lt;/strong> — avec plusieurs projets, plusieurs langages, plusieurs pipelines logiques — le cache Docker montre rapidement ses limites.&lt;/p></description></item><item><title>Que faut-il vraiment cacher dans un pipeline CI/CD ?</title><link>https://blog.dev.simpleenough.net/fr/blog/cache_cicd/</link><pubDate>Tue, 21 Apr 2026 10:00:00 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/cache_cicd/</guid><description>&lt;h2 id="i-introduction" class="heading">I. Introduction&lt;a href="#i-introduction" aria-labelledby="i-introduction">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Quand on cherche à accélérer un pipeline CI/CD, la première idée qui vient presque toujours est :&lt;/p>





 &lt;blockquote class="blockquote">
 &lt;p>&lt;em>« il faut mettre du cache »&lt;/em>&lt;/p>
 &lt;/blockquote>
&lt;p>Mais très vite, une autre question apparaît :&lt;br>
&lt;strong>qu’est-ce qu’on cache exactement ?&lt;/strong>&lt;/p>
&lt;p>Des fichiers ? Des dossiers ? Des images Docker ? Des dépendances ?&lt;br>
Et surtout : &lt;strong>quel cache a un vrai impact, et lequel complique juste le système ?&lt;/strong>&lt;/p></description></item><item><title>Comment créer un groupe de sécurité autorisant uniquement le trafic provenant de CloudFront ?</title><link>https://blog.dev.simpleenough.net/fr/blog/gs_cloudfront/</link><pubDate>Tue, 14 Apr 2026 17:52:00 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/gs_cloudfront/</guid><description>&lt;h1 id="comment-créer-un-groupe-de-sécurité-autorisant-uniquement-le-trafic-provenant-de-cloudfront-" class="heading">Comment créer un groupe de sécurité autorisant uniquement le trafic provenant de CloudFront ?&lt;a href="#comment-cr%c3%a9er-un-groupe-de-s%c3%a9curit%c3%a9-autorisant-uniquement-le-trafic-provenant-de-cloudfront-" aria-labelledby="comment-créer-un-groupe-de-sécurité-autorisant-uniquement-le-trafic-provenant-de-cloudfront-">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h1>




&lt;h2 id="pourquoi-cette-question-revient-toujours" class="heading">Pourquoi cette question revient toujours&lt;a href="#pourquoi-cette-question-revient-toujours" aria-labelledby="pourquoi-cette-question-revient-toujours">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Dans l’univers AWS, certaines questions reviennent avec une régularité frappante.&lt;br>
Non pas parce qu’elles sont mal formulées, mais parce qu’elles mettent le doigt sur une &lt;strong>tension réelle entre sécurité, réseau et architecture applicative&lt;/strong>.&lt;/p></description></item><item><title>Penser top-down dans un monde complexe</title><link>https://blog.dev.simpleenough.net/fr/blog/top_down/</link><pubDate>Tue, 07 Apr 2026 17:30:00 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/top_down/</guid><description>&lt;h2 id="i-deux-manières-fondamentales-de-raisonner" class="heading">I. Deux manières fondamentales de raisonner&lt;a href="#i-deux-mani%c3%a8res-fondamentales-de-raisonner" aria-labelledby="i-deux-manières-fondamentales-de-raisonner">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Lorsqu’on observe la façon dont on conçoit aujourd’hui des &lt;strong>systèmes complexes&lt;/strong> — infrastructures DevOps, plateformes distribuées, logiciels modernes ou même parcours éducatifs — on retrouve presque toujours la même tension intellectuelle. D’un côté, une approche &lt;strong>progressive et incrémentale&lt;/strong>, qui part des bases pour aller vers quelque chose de plus élaboré. De l’autre, une approche &lt;strong>orientée par le résultat attendu&lt;/strong>, qui commence par définir un &lt;strong>objectif&lt;/strong>, puis remonte ce qui est nécessaire pour l’atteindre.&lt;/p></description></item><item><title>Un pas vers la technologie</title><link>https://blog.dev.simpleenough.net/fr/blog/steptechnologie/</link><pubDate>Mon, 30 Mar 2026 13:00:00 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/steptechnologie/</guid><description>&lt;p>Vieillir en Europe, ce n’est pas seulement « avoir plus d’années ». C’est aussi devoir naviguer un monde où l’accès aux droits, à la santé et aux liens sociaux passe de plus en plus par des écrans.
La technologie n’est plus un décor. C’est devenu un outil de vie quotidienne… mais aussi un facteur d’exclusion quand elle est mal pensée.&lt;/p>
&lt;hr>




&lt;h2 id="i-une-société-qui-vieillit" class="heading">I. Une société qui vieillit.&lt;a href="#i-une-soci%c3%a9t%c3%a9-qui-vieillit" aria-labelledby="i-une-société-qui-vieillit">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>En France ou en Europe environ &lt;strong>22 % de la population a 65 ans ou plus&lt;/strong> (estimation au 1er janvier 2026).&lt;/p></description></item><item><title>Chaos engineering du quotidien : apprendre à aimer la vague</title><link>https://blog.dev.simpleenough.net/fr/blog/wave/</link><pubDate>Tue, 24 Mar 2026 10:00:00 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/wave/</guid><description>&lt;p>Nous rêvons tous d’un système stable, prévisible, “calme”.
Et pourtant, la réalité d’une plateforme moderne, c’est une mer vivante : déploiements, dépendances externes, quotas cloud, réseaux capricieux, pics de charge, erreurs humaines, et parfois… juste “un truc” qui n’aurait pas dû arriver.&lt;/p>
&lt;p>Le chaos engineering est souvent présenté comme une discipline spectaculaire — “on coupe une zone AWS”, “on tue un cluster”, “on fait tomber Kafka”.
Dans la vraie vie (et surtout en petite équipe), ce n’est ni nécessaire, ni souhaitable au départ.&lt;/p></description></item><item><title>Cycle du DevOps ou incompréhension du métier ?</title><link>https://blog.dev.simpleenough.net/fr/blog/devops_cycle/</link><pubDate>Tue, 17 Mar 2026 11:00:00 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/devops_cycle/</guid><description>&lt;h2 id="introduction" class="heading">Introduction&lt;a href="#introduction" aria-labelledby="introduction">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Le terme &lt;em>DevOps&lt;/em> est fréquemment employé pour désigner un ensemble hétérogène de sujets : CI/CD, cloud, Kubernetes, sécurité, observabilité, gestion des incidents, gestion des coûts, etc. Cette polysémie entretient une confusion récurrente : l’organisation exprime un besoin de “DevOps”, mais sans préciser la valeur attendue, les responsabilités associées, ni le modèle opérationnel cible.&lt;/p>
&lt;p>Le résultat est bien connu : une succession de périodes d’urgence, suivies d’initiatives d’automatisation, puis d’un retour progressif aux mêmes difficultés. On parle alors de “cycle DevOps”. Dans de nombreux cas, ce cycle n’est pas un phénomène intrinsèque au DevOps, mais l’indicateur d’une &lt;strong>incompréhension du métier&lt;/strong> : le DevOps est utilisé comme une fonction de compensation (support, débrouillage, prise en charge implicite de la production) plutôt que comme une capacité organisationnelle structurante.&lt;/p></description></item><item><title>ADR (Architecture Decision Record) : documenter des décisions utiles</title><link>https://blog.dev.simpleenough.net/fr/blog/adr/</link><pubDate>Tue, 10 Mar 2026 11:00:00 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/adr/</guid><description>&lt;p>Les équipes techniques passent beaucoup de temps à discuter, arbitrer, choisir… puis à oublier &lt;em>pourquoi&lt;/em> elles ont choisi certaines décisions.&lt;br>
Le résultat est connu :&lt;/p>
&lt;ul>
&lt;li>les mêmes débats reviennent tous les 3 mois,&lt;/li>
&lt;li>on re-questionne des décisions sans le contexte de l’époque,&lt;/li>
&lt;li>l’onboarding dépend de “ceux qui savent”,&lt;/li>
&lt;li>et des migrations inutiles naissent d’une simple perte de mémoire.&lt;/li>
&lt;/ul>
&lt;p>Un &lt;strong>ADR (Architecture Decision Record)&lt;/strong> sert à éviter cela. Ce n’est pas une “grosse doc d’architecture”, ni un cahier des charges : c’est une &lt;strong>note courte&lt;/strong> qui capture une décision importante, avec le minimum de contexte pour qu’elle reste compréhensible et réutilisable.&lt;/p></description></item><item><title>Travailler en remote : liberté, efficacité… et conditions de réussite</title><link>https://blog.dev.simpleenough.net/fr/blog/remote/</link><pubDate>Sat, 07 Mar 2026 10:00:00 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/remote/</guid><description>&lt;p>Le télétravail est devenu un sujet banal, mais il reste souvent traité de façon caricaturale :&lt;/p>
&lt;ul>
&lt;li>&lt;strong>“Remote = productivité maximale”&lt;/strong>&lt;/li>
&lt;li>&lt;strong>“Remote = isolement et perte de culture”&lt;/strong>&lt;/li>
&lt;/ul>
&lt;p>La vérité est plus simple : &lt;strong>le remote amplifie ce qui existe déjà&lt;/strong>. Une équipe bien organisée devient souvent excellente. Une équipe floue devient vite chaotique.&lt;/p>
&lt;hr>




&lt;h2 id="i-ce-que-le-remote-fait-gagner" class="heading">I. Ce que le remote fait gagner&lt;a href="#i-ce-que-le-remote-fait-gagner" aria-labelledby="i-ce-que-le-remote-fait-gagner">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>




&lt;h3 id="1-plus-dautonomie-moins-dinterruptions" class="heading">1) Plus d’autonomie, moins d&amp;rsquo;interruptions&lt;a href="#1-plus-dautonomie-moins-dinterruptions" aria-labelledby="1-plus-dautonomie-moins-dinterruptions">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h3>
&lt;p>En présentiel, on subit souvent :&lt;/p></description></item><item><title>Le vrai coût d’un mauvais workflow CI : la charge cognitive</title><link>https://blog.dev.simpleenough.net/fr/blog/chargecognitiveci/</link><pubDate>Wed, 25 Feb 2026 10:00:00 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/chargecognitiveci/</guid><description>&lt;h2 id="i-le-vrai-coût-dun-mauvais-workflow-ci--la-charge-cognitive" class="heading">I. Le vrai coût d’un mauvais workflow CI : la charge cognitive&lt;a href="#i-le-vrai-co%c3%bbt-dun-mauvais-workflow-ci--la-charge-cognitive" aria-labelledby="i-le-vrai-coût-dun-mauvais-workflow-ci--la-charge-cognitive">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>On parle beaucoup de performance des pipelines CI.&lt;br>
On mesure les minutes.&lt;br>
On optimise les caches.&lt;br>
On parallélise.&lt;/p>
&lt;p>Mais le vrai coût d’un mauvais workflow CI n’est pas le temps machine.&lt;/p>
&lt;p>C’est la &lt;strong>charge cognitive&lt;/strong>.&lt;/p>
&lt;p>Et elle est beaucoup plus chère.&lt;/p>
&lt;hr>




&lt;h2 id="ii-le-problème-invisible" class="heading">II. Le problème invisible&lt;a href="#ii-le-probl%c3%a8me-invisible" aria-labelledby="ii-le-problème-invisible">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Un pipeline CI inefficace est visible :&lt;/p></description></item><item><title>AWS multi-accounts : solution d’architecture ou dette organisationnelle déguisée ?</title><link>https://blog.dev.simpleenough.net/fr/blog/multiaccounts_aws/</link><pubDate>Wed, 18 Feb 2026 17:30:00 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/multiaccounts_aws/</guid><description>&lt;h2 id="i-introduction" class="heading">I. Introduction&lt;a href="#i-introduction" aria-labelledby="i-introduction">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>La création de multiples comptes AWS est aujourd’hui présentée comme une &lt;strong>bonne pratique quasi universelle&lt;/strong>.&lt;br>
Elle est souvent introduite par des tutoriels simples, orientés console, qui donnent l’impression que le problème se résume à une série de clics.&lt;/p>
&lt;p>Cette vision est trompeuse.&lt;/p>
&lt;p>Le &lt;strong>multi-account&lt;/strong> n’est pas un détail d’implémentation, mais un &lt;strong>choix architectural fondamental&lt;/strong>.&lt;br>
Il influence directement :&lt;/p></description></item><item><title>Modifier les composants de son ordinateur : méthode, compatibilité, benchmarks… et erreurs à éviter</title><link>https://blog.dev.simpleenough.net/fr/blog/componentcomputer/</link><pubDate>Wed, 11 Feb 2026 10:00:00 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/componentcomputer/</guid><description>&lt;h1 id="modifier-les-composants-de-son-ordinateur--méthode-compatibilité-et-benchmarks" class="heading">Modifier les composants de son ordinateur : méthode, compatibilité et benchmarks&lt;a href="#modifier-les-composants-de-son-ordinateur--m%c3%a9thode-compatibilit%c3%a9-et-benchmarks" aria-labelledby="modifier-les-composants-de-son-ordinateur--méthode-compatibilité-et-benchmarks">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h1>
&lt;p>Modifier le matériel de son ordinateur donne souvent l’impression d’un &lt;strong>upgrade simple et logique&lt;/strong> :&lt;br>
on identifie ce qui semble lent, on achète un composant plus puissant, on l’installe.&lt;/p>
&lt;p>En pratique, beaucoup de mises à niveau :&lt;/p>
&lt;ul>
&lt;li>n’apportent &lt;strong>aucun gain perceptible&lt;/strong>,&lt;/li>
&lt;li>créent des &lt;strong>incompatibilités&lt;/strong>,&lt;/li>
&lt;li>ou déplacent simplement le problème ailleurs.&lt;/li>
&lt;/ul>
&lt;p>Mais alors, comment s&amp;rsquo;organiser ?&lt;/p></description></item><item><title>Entrer dans le cloud : les portes de l’enfer</title><link>https://blog.dev.simpleenough.net/fr/blog/hell/</link><pubDate>Wed, 04 Feb 2026 09:10:00 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/hell/</guid><description>&lt;p>Entrer dans le cloud est rarement vécu comme un simple changement
d’infrastructure.&lt;br>
Pour beaucoup d’organisations, c’est une rupture brutale, presque violente,
avec leurs habitudes, leurs outils et leurs modèles mentaux.&lt;/p>
&lt;p>Ce qui devait apporter de la simplicité révèle au contraire une complexité
jusqu’alors masquée.&lt;br>
Et cette complexité n’est pas seulement technique.&lt;/p>
&lt;hr>




&lt;h2 id="i-lappel-du-cloud" class="heading">I. L’appel du cloud&lt;a href="#i-lappel-du-cloud" aria-labelledby="i-lappel-du-cloud">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Le cloud commence toujours par une promesse séduisante.&lt;/p></description></item><item><title>La latence : comprendre, percevoir et maîtriser un délai invisible</title><link>https://blog.dev.simpleenough.net/fr/blog/latency/</link><pubDate>Wed, 28 Jan 2026 09:00:00 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/latency/</guid><description>&lt;p>La latence est l’un de ces termes omniprésents en informatique, souvent invoqué pour expliquer un ressenti négatif — &lt;em>« ça lag »&lt;/em>, &lt;em>« c’est lent »&lt;/em> — sans que sa signification réelle soit clairement comprise.&lt;br>
Pourtant, la latence n’est ni un bug, ni un simple problème de performance : c’est une &lt;strong>contrainte structurelle&lt;/strong> des systèmes informatiques modernes.&lt;/p>
&lt;p>Cet article propose une vision complète de la latence :&lt;/p>
&lt;ul>
&lt;li>ce qu’elle est d’un &lt;strong>point de vue général&lt;/strong>,&lt;/li>
&lt;li>sa &lt;strong>définition technique&lt;/strong>,&lt;/li>
&lt;li>la manière dont elle est &lt;strong>perçue par les utilisateurs&lt;/strong>,&lt;/li>
&lt;li>les &lt;strong>compromis&lt;/strong> qu’elle impose,&lt;/li>
&lt;li>et surtout, &lt;strong>comment la maîtriser architecturalement&lt;/strong>.&lt;/li>
&lt;/ul>
&lt;hr>




&lt;h2 id="i-quest-ce-que-la-latence-" class="heading">I. Qu’est-ce que la latence ?&lt;a href="#i-quest-ce-que-la-latence-" aria-labelledby="i-quest-ce-que-la-latence-">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>




&lt;h3 id="1-définition-générale" class="heading">1. Définition générale&lt;a href="#1-d%c3%a9finition-g%c3%a9n%c3%a9rale" aria-labelledby="1-définition-générale">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h3>
&lt;p>Dans son sens le plus simple, la &lt;strong>latence&lt;/strong> désigne le &lt;strong>temps d’attente entre une action et la première réaction du système&lt;/strong>.&lt;/p></description></item><item><title>IA, code et design : pourquoi le plus important n’a pas changé</title><link>https://blog.dev.simpleenough.net/fr/blog/codedesign/</link><pubDate>Wed, 21 Jan 2026 10:00:00 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/codedesign/</guid><description>&lt;h2 id="i-introduction" class="heading">I. Introduction&lt;a href="#i-introduction" aria-labelledby="i-introduction">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Les assistants de codage basés sur l’IA sont aujourd’hui capables de produire :&lt;/p>
&lt;ul>
&lt;li>du code syntaxiquement valide,&lt;/li>
&lt;li>du code fonctionnel,&lt;/li>
&lt;li>et même une certaine forme de raisonnement sur la structure du code.&lt;/li>
&lt;/ul>
&lt;p>Face à cela, une question légitime se pose :&lt;br>
&lt;strong>faut-il encore apprendre à coder, ou suffit-il d’apprendre le design et de laisser le reste à l’IA ?&lt;/strong>&lt;/p></description></item><item><title>Test-Driven Infrastructure : appliquer le TDD à l’Infrastructure as Code</title><link>https://blog.dev.simpleenough.net/fr/blog/infratdd/</link><pubDate>Wed, 14 Jan 2026 13:45:30 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/infratdd/</guid><description>&lt;h1 id="test-driven-infrastructure" class="heading">Test-Driven Infrastructure&lt;a href="#test-driven-infrastructure" aria-labelledby="test-driven-infrastructure">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h1>




&lt;h2 id="appliquer-le-tdd-à-linfrastructure-as-code" class="heading">Appliquer le TDD à l’Infrastructure as Code&lt;a href="#appliquer-le-tdd-%c3%a0-linfrastructure-as-code" aria-labelledby="appliquer-le-tdd-à-linfrastructure-as-code">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Le &lt;strong>Test-Driven Development (TDD)&lt;/strong> est aujourd’hui bien installé côté applicatif.&lt;br>
En revanche, lorsqu’il s’agit d’&lt;strong>infrastructure&lt;/strong>, beaucoup considèrent encore que le TDD est inutile, trop complexe ou inadapté.&lt;/p>
&lt;p>C’est une erreur.&lt;/p>
&lt;p>Le &lt;strong>TDD appliqué à l’infrastructure&lt;/strong> existe déjà, souvent sans être nommé. Lorsqu’il est bien compris, il devient un levier majeur pour &lt;strong>sécuriser, structurer et faire évoluer une plateforme cloud&lt;/strong>.&lt;/p></description></item><item><title>Développer avec l’IA : ce qui change, ce qui reste, et ce qui devient critique</title><link>https://blog.dev.simpleenough.net/fr/blog/ia/</link><pubDate>Wed, 07 Jan 2026 10:00:00 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/ia/</guid><description>&lt;h2 id="i-introduction" class="heading">I. Introduction&lt;a href="#i-introduction" aria-labelledby="i-introduction">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Les assistants de codage basés sur l’IA ont profondément modifié le quotidien des développeurs.&lt;br>
Ils génèrent du code fonctionnel en quelques secondes, proposent des implémentations complètes et réduisent fortement le temps passé sur des tâches répétitives.&lt;/p>
&lt;p>Cette évolution soulève une question centrale :&lt;/p>





 &lt;blockquote class="blockquote">
 &lt;p>&lt;strong>Si le code peut être produit facilement, où se situe désormais la valeur du développeur ?&lt;/strong>&lt;/p></description></item><item><title>« Ça rame », « ça lag », « ça bug » : mais au final qu'est ce que ça veut vraiement dire ?</title><link>https://blog.dev.simpleenough.net/fr/blog/cabug/</link><pubDate>Tue, 30 Dec 2025 10:00:00 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/cabug/</guid><description>&lt;h2 id="introduction" class="heading">Introduction&lt;a href="#introduction" aria-labelledby="introduction">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Dans une famille, au travail ou dans une équipe technique, il arrive souvent d’entendre : &lt;strong>« ça rame »&lt;/strong>, &lt;strong>« ça lag »&lt;/strong> ou &lt;strong>« ça bug »&lt;/strong>. Ces expressions sont utilisées de manière interchangeable… &lt;strong>à tort&lt;/strong>. Elles mélangent des problèmes qui n’ont en réalité rien à voir les uns avec les autres.&lt;/p>
&lt;p>Comprendre la différence entre ces trois situations permet de &lt;strong>mieux expliquer ce qui se passe&lt;/strong>, de &lt;strong>réagir plus vite&lt;/strong> et surtout d’&lt;strong>éviter de mauvaises solutions&lt;/strong>. Un problème de lenteur ne se règle pas comme un bug, et un bug ne disparaît jamais simplement parce qu’on a rendu la machine plus puissante.&lt;/p></description></item><item><title>Utiliser les constantes en TDD avec Go</title><link>https://blog.dev.simpleenough.net/fr/blog/consttdd/</link><pubDate>Tue, 23 Dec 2025 10:08:49 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/consttdd/</guid><description>&lt;h2 id="bonnes-pratiques-pièges-et-signaux-de-design" class="heading">Bonnes pratiques, pièges et signaux de design&lt;a href="#bonnes-pratiques-pi%c3%a8ges-et-signaux-de-design" aria-labelledby="bonnes-pratiques-pièges-et-signaux-de-design">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Le &lt;strong>Test-Driven Development (TDD)&lt;/strong> ne sert pas uniquement à écrire des tests.&lt;br>
Il sert avant tout à &lt;strong>concevoir du logiciel&lt;/strong>.&lt;/p>
&lt;p>En Go, l’usage des &lt;strong>constantes&lt;/strong> est souvent mal compris en TDD :&lt;/p>
&lt;ul>
&lt;li>faut-il les exposer ?&lt;/li>
&lt;li>les tester ?&lt;/li>
&lt;li>les injecter ?&lt;/li>
&lt;li>les éviter ?&lt;/li>
&lt;/ul>
&lt;p>Cet article propose une approche &lt;strong>pragmatique et idiomatique Go&lt;/strong>, issue de l’expérience terrain, pour comprendre &lt;strong>quand une constante est un bon design&lt;/strong>… et &lt;strong>quand elle cache un problème&lt;/strong>.&lt;/p></description></item><item><title>Interfaces, Fonctions et Modules en Go : Structurer son code pour le TDD sans le complexifier</title><link>https://blog.dev.simpleenough.net/fr/blog/go-tdd-interfaces-functions/</link><pubDate>Mon, 15 Dec 2025 10:08:49 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/go-tdd-interfaces-functions/</guid><description>&lt;h2 id="i-introduction" class="heading">I. Introduction&lt;a href="#i-introduction" aria-labelledby="i-introduction">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Go est un langage minimaliste, mais cette simplicité peut donner l’impression qu’il “manque quelque chose” lorsqu’on aborde des architectures plus poussées, du Test-Driven Development ou la nécessité de mocker certaines dépendances. Très vite, les développeurs venant de Java, C# ou Python se posent les mêmes questions :&lt;/p>
&lt;ul>
&lt;li>&lt;em>Dois-je transformer toutes mes fonctions en structs + interfaces pour tester ?&lt;/em>&lt;/li>
&lt;li>&lt;em>Comment organiser mes packages pour qu’ils soient modulaires et testables ?&lt;/em>&lt;/li>
&lt;li>&lt;em>Où placer les interfaces ? Chez le fournisseur ou chez le consommateur ?&lt;/em>&lt;/li>
&lt;li>&lt;em>Comment isoler un package qui expose uniquement des fonctions ?&lt;/em>&lt;/li>
&lt;li>&lt;em>Comment détecter automatiquement un changement de signature ?&lt;/em>&lt;/li>
&lt;/ul>
&lt;hr>




&lt;h2 id="ii-le-modèle-go--simple-modulaire-mais-différent" class="heading">II. Le modèle Go : simple, modulaire, mais différent&lt;a href="#ii-le-mod%c3%a8le-go--simple-modulaire-mais-diff%c3%a9rent" aria-labelledby="ii-le-modèle-go--simple-modulaire-mais-différent">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Contrairement à Java ou C#, Go ne repose pas sur l’héritage, les classes ou les gros frameworks d’injection de dépendances.&lt;/p></description></item><item><title>Consumer-Reported Dependency Health</title><link>https://blog.dev.simpleenough.net/fr/blog/dependencyhealth/</link><pubDate>Mon, 08 Dec 2025 11:18:06 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/dependencyhealth/</guid><description>&lt;h2 id="i-réinventer-la-manière-dévaluer-la-santé-des-systèmes-distribués" class="heading">I. Réinventer la manière d’évaluer la santé des systèmes distribués&lt;a href="#i-r%c3%a9inventer-la-mani%c3%a8re-d%c3%a9valuer-la-sant%c3%a9-des-syst%c3%a8mes-distribu%c3%a9s" aria-labelledby="i-réinventer-la-manière-dévaluer-la-santé-des-systèmes-distribués">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Dans les architectures distribuées modernes, la santé d’un système dépend autant — voire davantage — de l’état de ses &lt;strong>dépendances&lt;/strong> que de son état interne. Pourtant, la plupart des stratégies de monitoring reposent encore sur des healthchecks synthétiques ou dédiés : endpoints &lt;code>/health&lt;/code>, sondes liveness/readiness, scripts externes, etc.&lt;/p></description></item><item><title>Pourquoi les instances AWS Spot deviennent introuvables en décembre</title><link>https://blog.dev.simpleenough.net/fr/blog/spotdecember/</link><pubDate>Mon, 01 Dec 2025 17:08:49 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/spotdecember/</guid><description>&lt;h2 id="i-pourquoi-les-instances-aws-spot-deviennent-introuvables-en-décembre" class="heading">I. Pourquoi les instances AWS Spot deviennent introuvables en décembre&lt;a href="#i-pourquoi-les-instances-aws-spot-deviennent-introuvables-en-d%c3%a9cembre" aria-labelledby="i-pourquoi-les-instances-aws-spot-deviennent-introuvables-en-décembre">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Les &lt;strong>instances EC2 Spot&lt;/strong> sont un excellent moyen d’économiser de 50 à 70 % sur vos coûts AWS.&lt;br>
Elles utilisent la capacité inutilisée des datacenters… mais justement, en &lt;strong>décembre&lt;/strong>, cette capacité disparaît presque totalement.&lt;/p>
&lt;p>Résultat :&lt;/p>
&lt;ul>
&lt;li>vos Auto Scaling Groups n&amp;rsquo;arrivent plus à lancer d’instances&lt;/li>
&lt;li>vos déploiements restent bloqués&lt;/li>
&lt;li>“insufficient capacity” partout&lt;/li>
&lt;li>des interruptions Spot beaucoup plus fréquentes&lt;/li>
&lt;/ul>
&lt;p>Si cela vous est déjà arrivé, rassurez-vous : ce n’est &lt;strong>pas vous&lt;/strong>, ni un problème de configuration.&lt;br>
C’est &lt;strong>un phénomène saisonnier&lt;/strong>, et il revient chaque année.&lt;/p></description></item><item><title>Karpenter : l'autoscaler intelligent pour EKS</title><link>https://blog.dev.simpleenough.net/fr/blog/karpenter/</link><pubDate>Mon, 24 Nov 2025 11:18:06 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/karpenter/</guid><description>&lt;h2 id="i-karpenter-cest-quoi-" class="heading">I. Karpenter, c’est quoi ?&lt;a href="#i-karpenter-cest-quoi-" aria-labelledby="i-karpenter-cest-quoi-">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>&lt;strong>Karpenter&lt;/strong> est un autoscaler open-source pour Kubernetes, créé par AWS.&lt;br>
Son rôle : &lt;strong>ajuster automatiquement la capacité des nœuds (EC2) d’un cluster EKS en fonction de la charge réelle.&lt;/strong>&lt;/p>
&lt;p>En résumé :&lt;/p>
&lt;ul>
&lt;li>Quand ton cluster manque de ressources, &lt;strong>Karpenter ajoute des nœuds.&lt;/strong>&lt;/li>
&lt;li>Quand les nœuds deviennent inutiles, &lt;strong>il les supprime.&lt;/strong>&lt;/li>
&lt;/ul>
&lt;p>Mais surtout :&lt;/p>
&lt;p>Il le fait &lt;strong>plus vite&lt;/strong>, &lt;strong>plus intelligemment&lt;/strong> et &lt;strong>plus efficacement&lt;/strong> que l’autoscaler classique de Kubernetes (&lt;strong>Cluster Autoscaler&lt;/strong>).&lt;/p></description></item><item><title>Comment gérer les paramètres optionnels en Go.</title><link>https://blog.dev.simpleenough.net/fr/blog/optiongo/</link><pubDate>Sat, 15 Nov 2025 10:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/optiongo/</guid><description>&lt;h1 id="i-comment-gérer-les-paramètres-optionnels-en-go" class="heading">I. Comment gérer les paramètres optionnels en Go&lt;a href="#i-comment-g%c3%a9rer-les-param%c3%a8tres-optionnels-en-go" aria-labelledby="i-comment-gérer-les-paramètres-optionnels-en-go">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h1>
&lt;p>Dans la plupart des langages modernes, il est possible de définir des valeurs par défaut dans les fonctions ou de les surcharger pour couvrir plusieurs cas d’usage.&lt;br>
Go, lui, ne propose &lt;strong>ni paramètres optionnels&lt;/strong>, ni &lt;strong>surcharge&lt;/strong>, ni &lt;strong>valeurs par défaut&lt;/strong> dans les signatures de fonction.&lt;br>
Pourtant, les besoins restent les mêmes : créer des APIs lisibles, stables et capables d’évoluer sans casser les utilisateurs.&lt;/p></description></item><item><title>Landing Page : définition, types et bonnes pratiques pour booster vos conversions</title><link>https://blog.dev.simpleenough.net/fr/blog/landingpage/</link><pubDate>Mon, 10 Nov 2025 14:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/landingpage/</guid><description>&lt;h2 id="i-introduction" class="heading">I. Introduction&lt;a href="#i-introduction" aria-labelledby="i-introduction">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Aujourd’hui, toute stratégie marketing digitale performante repose sur un élément clé : la &lt;strong>landing page&lt;/strong>.&lt;br>
Qu’il s’agisse de vendre un produit, de collecter des emails ou de promouvoir un événement, ces pages d’atterrissage jouent un rôle décisif dans la conversion des visiteurs.&lt;/p>
&lt;p>Dans cet article, nous verrons &lt;strong>ce qu’est une landing page&lt;/strong>, &lt;strong>comment la concevoir&lt;/strong>, &lt;strong>où la diffuser&lt;/strong>, et &lt;strong>comment mesurer ses performances&lt;/strong>.&lt;br>
À la fin, vous trouverez également un guide pratique pour &lt;strong>créer gratuitement votre landing page avec HubSpot&lt;/strong>.&lt;/p></description></item><item><title>Le glossaire indispensable du SEO : les termes essentiels expliqués simplement</title><link>https://blog.dev.simpleenough.net/fr/blog/glossaryseo/</link><pubDate>Mon, 03 Nov 2025 16:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/glossaryseo/</guid><description>&lt;h1 id="glossaire-seo--les-termes-essentiels" class="heading">Glossaire SEO : les termes essentiels&lt;a href="#glossaire-seo--les-termes-essentiels" aria-labelledby="glossaire-seo--les-termes-essentiels">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h1>
&lt;p>Le &lt;strong>référencement naturel (SEO)&lt;/strong> repose sur de nombreux concepts techniques, sémantiques et stratégiques.&lt;br>
Ce glossaire vous aide à comprendre les &lt;strong>termes clés&lt;/strong> utilisés par les experts SEO et les développeurs, afin de mieux interpréter les outils et rapports de performance.&lt;/p>
&lt;hr>




&lt;h2 id="a--c" class="heading">A — C&lt;a href="#a--c" aria-labelledby="a--c">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>




&lt;h3 id="anchor-text-ancre-de-lien" class="heading">&lt;strong>Anchor Text (Ancre de lien)&lt;/strong>&lt;a href="#anchor-text-ancre-de-lien" aria-labelledby="anchor-text-ancre-de-lien">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h3>
&lt;p>Texte cliquable d’un lien hypertexte.&lt;br>
Il aide les moteurs de recherche à comprendre le &lt;strong>contexte du lien&lt;/strong>.&lt;/p></description></item><item><title>GitHub Pages vs AWS S3 : que choisir pour héberger votre site statique ?</title><link>https://blog.dev.simpleenough.net/fr/blog/githubvss3/</link><pubDate>Tue, 28 Oct 2025 11:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/githubvss3/</guid><description>&lt;h2 id="i-introduction--contexte-et-enjeux" class="heading">I. Introduction : contexte et enjeux&lt;a href="#i-introduction--contexte-et-enjeux" aria-labelledby="i-introduction--contexte-et-enjeux">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Dans le paysage moderne du web, les sites &lt;strong>statiques&lt;/strong> (HTML/CSS/JS sans serveur backend) sont particulièrement prisés pour leur simplicité, leur rapidité et leur coût minimal. Deux solutions dominent le débat pour héberger gratuitement ou à très faible coût ces sites : &lt;strong>GitHub Pages&lt;/strong> et &lt;strong>AWS S3&lt;/strong>.&lt;br>
Cet article compare les deux approches sous l’angle technique, coûts, performances et évolutivité, afin de vous aider à choisir celle qui correspond le mieux à vos besoins.&lt;/p></description></item><item><title>Les piliers fondamentaux du SEO : sémantique, technique et notoriété</title><link>https://blog.dev.simpleenough.net/fr/blog/piliersseo/</link><pubDate>Tue, 21 Oct 2025 16:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/piliersseo/</guid><description>&lt;h3 id="les-piliers-fondamentaux-du-seo" class="heading">Les piliers fondamentaux du SEO&lt;a href="#les-piliers-fondamentaux-du-seo" aria-labelledby="les-piliers-fondamentaux-du-seo">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h3>
&lt;p>Le référencement naturel (SEO) repose sur trois piliers indissociables :&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Sémantique&lt;/strong> : le contenu et sa structure.&lt;/li>
&lt;li>&lt;strong>Technique&lt;/strong> : performance, sécurité et accessibilité.&lt;/li>
&lt;li>&lt;strong>Notoriété&lt;/strong> : popularité, mentions et liens entrants (backlinks).&lt;/li>
&lt;/ol>
&lt;p>En 2025, ces axes sont plus complémentaires que jamais : les moteurs évaluent à la fois &lt;strong>le sens&lt;/strong>, &lt;strong>la qualité technique&lt;/strong> et &lt;strong>la confiance&lt;/strong> qu’inspire un site.&lt;/p></description></item><item><title>SEO : quels sont les outils disponibles ?</title><link>https://blog.dev.simpleenough.net/fr/blog/seotools/</link><pubDate>Tue, 21 Oct 2025 14:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/seotools/</guid><description>&lt;h2 id="i-outils-recommandés--checklist-technique" class="heading">I. Outils recommandés : Checklist technique&lt;a href="#i-outils-recommand%c3%a9s--checklist-technique" aria-labelledby="i-outils-recommandés--checklist-technique">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Cette liste se concentre sur des outils &lt;strong>fiables&lt;/strong>, maintenus, et largement utilisés par les équipes produit/SEO. Pour chaque famille d’outils, vous trouverez &lt;strong>l’usage principal&lt;/strong>, &lt;strong>ce que l’outil mesure&lt;/strong> et &lt;strong>quand l’utiliser&lt;/strong>.&lt;/p>
&lt;hr>




&lt;h3 id="1-tester-la-vitesse-et-les-core-web-vitals" class="heading">1. Tester la vitesse et les Core Web Vitals&lt;a href="#1-tester-la-vitesse-et-les-core-web-vitals" aria-labelledby="1-tester-la-vitesse-et-les-core-web-vitals">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>
&lt;p>
 








 

&lt;a href="https://pagespeed.web.dev/">PageSpeed Insights&lt;/a>:
Analyse les performances réelles (données de terrain) et de labo, avec recommandations concrètes.
Mesure les &lt;strong>Core Web Vitals&lt;/strong> (INP, LCP, CLS).
À utiliser pour prioriser les améliorations pages critiques (home, fiches produit, articles).&lt;/p></description></item><item><title>Étude de cas : Analyse SEO de sites web et de la SERP</title><link>https://blog.dev.simpleenough.net/fr/blog/studycaseseo/</link><pubDate>Tue, 14 Oct 2025 14:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/studycaseseo/</guid><description>&lt;h2 id="i-introduction" class="heading">I. Introduction&lt;a href="#i-introduction" aria-labelledby="i-introduction">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Après avoir présenté les principes théoriques du fonctionnement des moteurs de recherche, il est essentiel de passer à la pratique. L’analyse de cas concrets permet de comprendre comment les sites web apparaissent (ou disparaissent) dans la SERP en fonction de leur optimisation technique, de leur contenu et de leur autorité.&lt;/p>
&lt;p>Dans cette section, nous nous concentrons sur le thème des &lt;strong>blogs&lt;/strong>, en examinant plusieurs sites positionnés sur Google. L’objectif est de mettre en évidence :&lt;/p></description></item><item><title>Les bases du SEO : les moteurs de recherche et leur fonctionnement</title><link>https://blog.dev.simpleenough.net/fr/blog/baseseo/</link><pubDate>Tue, 07 Oct 2025 14:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/baseseo/</guid><description>&lt;h2 id="i-introduction" class="heading">I. Introduction&lt;a href="#i-introduction" aria-labelledby="i-introduction">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Dans l’univers du &lt;strong>développement web moderne&lt;/strong>, il ne suffit plus de savoir créer des sites rapides et bien structurés : il faut également les rendre &lt;strong>visibles&lt;/strong>. Peu importe que vous soyez &lt;strong>frontend&lt;/strong> ou &lt;strong>backend&lt;/strong>, vos choix techniques peuvent renforcer – ou limiter – la manière dont un site est &lt;strong>exploré, indexé et classé&lt;/strong> par les moteurs de recherche.&lt;/p></description></item><item><title>Comment héberger gratuitement un site statique avec AWS S3</title><link>https://blog.dev.simpleenough.net/fr/blog/hosts3/</link><pubDate>Tue, 30 Sep 2025 14:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/hosts3/</guid><description>&lt;h2 id="i-pourquoi-choisir-aws-s3-pour-héberger-un-site-statique-gratuitement" class="heading">I. Pourquoi choisir &lt;strong>AWS S3&lt;/strong> pour héberger un &lt;strong>site statique gratuitement&lt;/strong>?&lt;a href="#i-pourquoi-choisir-aws-s3-pour-h%c3%a9berger-un-site-statique-gratuitement" aria-labelledby="i-pourquoi-choisir-aws-s3-pour-héberger-un-site-statique-gratuitement">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Amazon S3&lt;/strong> permet l’hébergement de sites &lt;strong>entièrement statiques&lt;/strong> (HTML, CSS, JavaScript).&lt;/li>
&lt;li>Grâce à l’&lt;strong>AWS Free Tier&lt;/strong>, un petit site peut rester &lt;strong>gratuit pendant 12 mois&lt;/strong> (jusqu’à 5 Go de stockage, 20 000 requêtes GET &amp;amp; 2 000 PUT par mois).&lt;/li>
&lt;li>Très résilient, évolutif et &lt;strong>sans serveur à administrer&lt;/strong>, S3 offre une &lt;strong>durabilité de 99,999999999 %&lt;/strong> et tolère des pics de trafic sans configuration complexe.&lt;/li>
&lt;li>Pour les besoins de HTTPS ou de domaine personnalisé, Amazon recommande d’utiliser &lt;strong>Amazon CloudFront + Route 53&lt;/strong>.&lt;/li>
&lt;/ul>
&lt;hr>




&lt;h2 id="ii-prérequis-et-configuration-initiale" class="heading">II. Prérequis et configuration initiale&lt;a href="#ii-pr%c3%a9requis-et-configuration-initiale" aria-labelledby="ii-prérequis-et-configuration-initiale">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;ul>
&lt;li>Création d’un bucket&lt;/li>
&lt;li>Désactiver les restrictions d’accès public&lt;/li>
&lt;li>Ajouter une politique publique&lt;/li>
&lt;/ul>
&lt;p>Avant de pouvoir déployer un site statique avec GitHub Pages, il faut effectuer une configuration de base sur AWS. Voici les étapes détaillées :&lt;/p></description></item><item><title>Comment héberger gratuitement un site statique avec GitHub Pages</title><link>https://blog.dev.simpleenough.net/fr/blog/hostgithub/</link><pubDate>Tue, 23 Sep 2025 10:30:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/hostgithub/</guid><description>&lt;h2 id="i-pourquoi-choisir-github-pages-pour-héberger-un-site-statique-" class="heading">I. Pourquoi choisir &lt;strong>GitHub Pages&lt;/strong> pour héberger un &lt;strong>site statique&lt;/strong> ?&lt;a href="#i-pourquoi-choisir-github-pages-pour-h%c3%a9berger-un-site-statique-" aria-labelledby="i-pourquoi-choisir-github-pages-pour-héberger-un-site-statique-">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>GitHub Pages&lt;/strong> est un service gratuit fourni par GitHub pour héberger des sites &lt;strong>uniquement statiques&lt;/strong> (HTML, CSS, JavaScript), sans backend ni serveur dynamique.&lt;/li>
&lt;li>Il est particulièrement adapté aux &lt;strong>portfolios&lt;/strong>, &lt;strong>documentations de projet&lt;/strong> ou aux &lt;strong>blogs simples&lt;/strong>, notamment pour les développeurs familiers avec GitHub.&lt;/li>
&lt;li>Le service inclut un &lt;strong>nom de domaine en &lt;code>.github.io&lt;/code>&lt;/strong>, support des &lt;strong>domaines personnalisés&lt;/strong> et le &lt;strong>HTTPS natif&lt;/strong>.&lt;/li>
&lt;li>Limites : taille max ~1 Go, bande passante ~100 Go/mois, pas de prise en charge de PHP, bases de données ou autres langages côté serveur.&lt;/li>
&lt;/ul>
&lt;hr>




&lt;h2 id="ii-prérequis-et-configuration-initiale" class="heading">II. Prérequis et configuration initiale&lt;a href="#ii-pr%c3%a9requis-et-configuration-initiale" aria-labelledby="ii-prérequis-et-configuration-initiale">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;ul>
&lt;li>Créer un &lt;strong>compte GitHub&lt;/strong> (s’il n’existe pas déjà).&lt;/li>
&lt;li>Création d’un &lt;strong>dépôt public&lt;/strong> nommé &lt;code>USERNAME.github.io&lt;/code> pour un site utilisateur ou organisation, ou dépôt générique pour un site de projet.&lt;/li>
&lt;li>Ajouter des &lt;strong>fichiers initiaux&lt;/strong> &lt;code>README.md&lt;/code> ou un &lt;code>index.html&lt;/code>.&lt;/li>
&lt;li>S’assurer que &lt;strong>GitHub Actions&lt;/strong> est activé pour permettre les workflows de build (ex. génération Jekyll).&lt;/li>
&lt;/ul>
&lt;p>Avant de pouvoir déployer un site statique avec GitHub Pages, il faut effectuer une configuration de base sur GitHub. Voici les étapes détaillées :&lt;/p></description></item><item><title>Palette de couleurs CSS : comment bien choisir et combiner les couleurs</title><link>https://blog.dev.simpleenough.net/fr/blog/colorpalette/</link><pubDate>Tue, 16 Sep 2025 10:18:11 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/colorpalette/</guid><description>&lt;h2 id="i-pourquoi-une-palette-de-couleurs-css-bien-pensée-est-essentielle" class="heading">I. Pourquoi une &lt;strong>palette de couleurs CSS&lt;/strong> bien pensée est essentielle&lt;a href="#i-pourquoi-une-palette-de-couleurs-css-bien-pens%c3%a9e-est-essentielle" aria-labelledby="i-pourquoi-une-palette-de-couleurs-css-bien-pensée-est-essentielle">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Une palette bien conçue assure &lt;strong>cohérence visuelle&lt;/strong>, &lt;strong>clé de l’identité de marque&lt;/strong>, et garantit une &lt;strong>expérience utilisateur fluide&lt;/strong>. Elle facilite la maintenance du code, évite les couleurs redondantes et permet une &lt;strong>adaptation facile aux thèmes&lt;/strong> (clair / sombre). Respecter les bonnes pratiques favorise aussi l’&lt;strong>accessibilité&lt;/strong> : contraste suffisant, indication visuelle doublée (ne pas dépendre uniquement de la couleur).&lt;/p></description></item><item><title>Amazon Macie : une solution complète de sécurité et de confidentialité des données</title><link>https://blog.dev.simpleenough.net/fr/blog/macie/</link><pubDate>Wed, 10 Sep 2025 08:00:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/macie/</guid><description>&lt;h2 id="i-présentation-damazon-macie" class="heading">I. Présentation d’Amazon Macie&lt;a href="#i-pr%c3%a9sentation-damazon-macie" aria-labelledby="i-présentation-damazon-macie">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Amazon Macie est un service de &lt;strong>sécurité des données&lt;/strong> entièrement géré par AWS, qui utilise le &lt;strong>machine learning&lt;/strong> et le &lt;strong>pattern matching&lt;/strong> pour découvrir, classifier et protéger les données sensibles stockées dans Amazon S3. Il fournit une &lt;strong>visibilité des risques&lt;/strong>, génère des &lt;strong>findings&lt;/strong> en cas de problèmes de sécurité ou de confidentialité, et automatise les actions de protection. Le service inclut une période d’essai gratuite de 30 jours pour l’évaluation automatisée des buckets S3 et l’analyse de données.&lt;/p></description></item><item><title>Organiser son projet frontend : structure de fichiers claire et simple</title><link>https://blog.dev.simpleenough.net/fr/blog/organization_frontend/</link><pubDate>Fri, 05 Sep 2025 12:09:45 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/organization_frontend/</guid><description>&lt;h2 id="i-pourquoi-organiser-son-projet-frontend-" class="heading">I. Pourquoi organiser son projet frontend ?&lt;a href="#i-pourquoi-organiser-son-projet-frontend-" aria-labelledby="i-pourquoi-organiser-son-projet-frontend-">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Lorsque l’on débute en développement web, il est courant de mettre tous ses fichiers dans un seul dossier. Pourtant, une &lt;strong>bonne organisation&lt;/strong> devient vite indispensable dès que le projet grandit, que ce soit pour :&lt;/p>
&lt;ul>
&lt;li>S’y retrouver facilement.&lt;/li>
&lt;li>Collaborer efficacement avec d’autres développeurs.&lt;/li>
&lt;li>Faciliter la maintenance et les évolutions.&lt;/li>
&lt;li>Gagner du temps à long terme.&lt;/li>
&lt;/ul>
&lt;hr>




&lt;h2 id="ii-structure-recommandée-pour-un-projet-simple" class="heading">II. Structure recommandée pour un projet simple&lt;a href="#ii-structure-recommand%c3%a9e-pour-un-projet-simple" aria-labelledby="ii-structure-recommandée-pour-un-projet-simple">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Voici une structure classique à un projet HTML/CSS/JS :&lt;/p></description></item><item><title>Introduction à Amazon Inspector</title><link>https://blog.dev.simpleenough.net/fr/blog/inspector/</link><pubDate>Wed, 03 Sep 2025 11:18:06 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/inspector/</guid><description>&lt;h2 id="i-aperçu-damazon-inspector" class="heading">I. Aperçu d’Amazon Inspector&lt;a href="#i-aper%c3%a7u-damazon-inspector" aria-labelledby="i-aperçu-damazon-inspector">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Amazon Inspector est un service de &lt;strong>gestion automatisée des vulnérabilités&lt;/strong> sur AWS qui découvre automatiquement les workloads tels que les instances EC2, les images de conteneurs dans ECR, ainsi que les fonctions Lambda, puis scanne en continu les vulnérabilités logicielles et les expositions réseau inattendues.&lt;br>
Il génère des &lt;em>findings&lt;/em> exploités pour prioriser les correctifs selon un score de &lt;strong>risque contextualisé&lt;/strong>, qui adapte le score CVSS selon l’environnement (ex. : absence d’ouverture réseau).&lt;/p></description></item><item><title>Containers AWS</title><link>https://blog.dev.simpleenough.net/fr/blog/container/</link><pubDate>Fri, 29 Aug 2025 09:09:45 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/container/</guid><description>&lt;h2 id="i-introduction" class="heading">I. Introduction&lt;a href="#i-introduction" aria-labelledby="i-introduction">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Les &lt;strong>conteneurs&lt;/strong> permettent d&amp;rsquo;encapsuler une application et toutes ses dépendances dans un environnement isolé et reproductible. Contrairement à des machines virtuelles, les conteneurs partagent le noyau du système hôte, ce qui les rend &lt;strong>plus légers&lt;/strong>, &lt;strong>plus rapides à démarrer&lt;/strong> et &lt;strong>plus faciles à déployer&lt;/strong>.&lt;/p>
&lt;p>Grâce à cette approche, les conteneurs ont révolutionné le cycle de vie logiciel, en facilitant la portabilité des applications entre environnements (développement, test, production).&lt;/p></description></item><item><title>Compte rendu : Protection contre les logiciels malveillants Amazon GuardDuty pour S3</title><link>https://blog.dev.simpleenough.net/fr/blog/guardduty/</link><pubDate>Wed, 20 Aug 2025 10:09:45 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/guardduty/</guid><description>&lt;h2 id="i-quest-ce-quamazon-guardduty-" class="heading">I. Qu&amp;rsquo;est-ce qu&amp;rsquo;Amazon GuardDuty ?&lt;a href="#i-quest-ce-quamazon-guardduty-" aria-labelledby="i-quest-ce-quamazon-guardduty-">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>&lt;strong>Amazon GuardDuty&lt;/strong> est un service de sécurité basé sur l&amp;rsquo;intelligence artificielle qui surveille en continu les comptes et les charges de travail AWS.
Il utilise des algorithmes d&amp;rsquo;apprentissage automatique pour détecter des activités suspectes, des comportements anormaux et des menaces potentielles dans
votre environnement cloud. La solution s&amp;rsquo;intègre facilement à d&amp;rsquo;autres services AWS, comme S3, EC2, et IAM, afin d&amp;rsquo;offrir une vue d&amp;rsquo;ensemble de la sécurité
de votre infrastructure.
GuardDuty fonctionne de concert avec d&amp;rsquo;autres services AWS tels qu&amp;rsquo;AWS CloudTrail et AWS Config. Cela permet de recueillir des informations supplémentaires sur les activités suspectes et de déclencher automatiquement des mesures de sécurité.&lt;/p></description></item><item><title>Disponibilité mondiale des types d'instances EC2</title><link>https://blog.dev.simpleenough.net/fr/blog/dispoec2/</link><pubDate>Wed, 13 Aug 2025 07:04:11 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/dispoec2/</guid><description>&lt;h2 id="i-introduction" class="heading">I. Introduction&lt;a href="#i-introduction" aria-labelledby="i-introduction">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Lorsqu’on conçoit une infrastructure sur &lt;strong>AWS&lt;/strong>, l’un des premiers choix techniques concerne les &lt;strong>types d’instances EC2&lt;/strong> utilisés. Mais ce choix ne peut être fait de manière isolée : la &lt;strong>disponibilité régionale&lt;/strong> des types d’instances varie selon les zones géographiques, ce qui peut impacter la résilience, la scalabilité et le coût de votre architecture.&lt;/p>
&lt;p>Cet article explique en détail comment comprendre et anticiper cette disponibilité mondiale, avec une approche claire et directement applicable par les développeurs, les ingénieurs DevOps et les data scientists.&lt;/p></description></item><item><title>Comprendre le modèle boîte en CSS (box model)</title><link>https://blog.dev.simpleenough.net/fr/blog/boxmodel/</link><pubDate>Mon, 04 Aug 2025 16:09:45 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/boxmodel/</guid><description>&lt;h2 id="i-quest-ce-que-le-modèle-boîte-en-css-" class="heading">I. Qu’est-ce que le modèle boîte en CSS ?&lt;a href="#i-quest-ce-que-le-mod%c3%a8le-bo%c3%aete-en-css-" aria-labelledby="i-quest-ce-que-le-modèle-boîte-en-css-">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>En CSS, &lt;strong>chaque élément HTML est considéré comme une boîte rectangulaire&lt;/strong>. C’est ce qu’on appelle le &lt;strong>box model&lt;/strong> (ou modèle de boîte).&lt;/p>
&lt;p>Ce modèle définit &lt;strong>comment la taille d’un élément est calculée&lt;/strong>, et comment il interagit avec les autres éléments autour de lui.&lt;/p>
&lt;p>Un élément HTML est constitué de &lt;strong>4 zones&lt;/strong> principales :&lt;/p></description></item><item><title>Responsive et adaptatif : deux stratégies, un objectif commun</title><link>https://blog.dev.simpleenough.net/fr/blog/responsivevsadaptative/</link><pubDate>Mon, 28 Jul 2025 12:14:54 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/responsivevsadaptative/</guid><description>&lt;h2 id="i-introduction" class="heading">I. Introduction&lt;a href="#i-introduction" aria-labelledby="i-introduction">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Le &lt;strong>design responsive&lt;/strong> et le &lt;strong>design adaptatif&lt;/strong> sont deux approches utilisées pour concevoir des interfaces web accessibles sur plusieurs types d&amp;rsquo;appareils. Dans un monde où la diversité des tailles d&amp;rsquo;écran est la norme — des smartphones aux écrans 4K — comprendre les différences entre ces deux stratégies est essentiel pour tout développeur ou designer frontend. Cet article propose un tour d&amp;rsquo;horizon clair, comparatif et documenté de ces deux méthodologies, avec des cas d’usage concrets et des recommandations pratiques.&lt;/p></description></item><item><title>Comment rendre une interface Flutter responsive pour le web</title><link>https://blog.dev.simpleenough.net/fr/blog/responsive/</link><pubDate>Mon, 21 Jul 2025 12:30:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/responsive/</guid><description>&lt;h2 id="i-introduction" class="heading">I. Introduction&lt;a href="#i-introduction" aria-labelledby="i-introduction">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Flutter est connu pour sa capacité à produire des applications multiplateformes à partir d’un seul codebase. Si le framework a d’abord été conçu pour le mobile, ses capacités web se sont considérablement renforcées. Cependant, rendre une interface &lt;strong>responsive&lt;/strong> sur le web avec Flutter nécessite une approche rigoureuse et adaptée aux contraintes de la navigation multi-écrans.&lt;/p></description></item><item><title>Optimiser les performances Flutter : build(), keys, et const Widgets</title><link>https://blog.dev.simpleenough.net/fr/blog/optimisationflutter/</link><pubDate>Tue, 15 Jul 2025 09:24:42 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/optimisationflutter/</guid><description>&lt;p>Cet article propose une amélioration des performances en se concentrant sur trois aspects fondamentaux :&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Le cycle de build()&lt;/strong>&lt;/li>
&lt;li>&lt;strong>Les clés (keys)&lt;/strong>&lt;/li>
&lt;li>&lt;strong>Les widgets const&lt;/strong>&lt;/li>
&lt;/ul>
&lt;hr>




&lt;h2 id="i-le-cycle-de-build--comprendre-pour-mieux-optimiser" class="heading">I. Le cycle de build() : comprendre pour mieux optimiser&lt;a href="#i-le-cycle-de-build--comprendre-pour-mieux-optimiser" aria-labelledby="i-le-cycle-de-build--comprendre-pour-mieux-optimiser">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Le processus &lt;strong>build()&lt;/strong> est au cœur du rendu dans Flutter. Lorsqu&amp;rsquo;un état change ou qu&amp;rsquo;un widget est reconstruit, la méthode &lt;strong>build()&lt;/strong> est appelée.
Une mauvaise gestion de cette méthode peut causer des ralentissements notables.&lt;/p></description></item><item><title>Pourquoi et comment utiliser les sous-modules Git</title><link>https://blog.dev.simpleenough.net/fr/blog/gitsubmodules/</link><pubDate>Wed, 02 Jul 2025 18:30:00 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/gitsubmodules/</guid><description>&lt;h2 id="i-introduction-aux-sous-modules-git" class="heading">I. Introduction aux sous-modules Git&lt;a href="#i-introduction-aux-sous-modules-git" aria-labelledby="i-introduction-aux-sous-modules-git">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Les &lt;strong>sous-modules Git&lt;/strong> sont une fonctionnalité native qui permet d’inclure un dépôt Git à l’intérieur d’un autre. Cette approche est utile lorsqu’il faut gérer des &lt;strong>dépendances&lt;/strong> entre différents codebases, tout en conservant leur autonomie.&lt;/p>
&lt;p>Les sous-modules pointent vers une &lt;strong>révision précise&lt;/strong> d’un dépôt externe. Cela garantit que chaque version du projet principal utilise exactement la même version de ses sous-modules, assurant ainsi &lt;strong>cohérence et reproductibilité&lt;/strong>.&lt;/p></description></item><item><title>Flutter &amp; Redux : une recette bien ordonnée avec dispatch</title><link>https://blog.dev.simpleenough.net/fr/blog/dispatch/</link><pubDate>Sun, 22 Jun 2025 19:38:55 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/dispatch/</guid><description>&lt;h2 id="i-introduction-à-redux-dans-flutter" class="heading">I. Introduction à Redux dans Flutter&lt;a href="#i-introduction-%c3%a0-redux-dans-flutter" aria-labelledby="i-introduction-à-redux-dans-flutter">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Inspiré du modèle de flux unidirectionnel de données, Redux permet de centraliser l’état de l’application et de le modifier via des actions claires, prévisibles et testables.&lt;/p>
&lt;p>Le cœur de Redux repose sur trois concepts :&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Store&lt;/strong> : l&amp;rsquo;état global.&lt;/li>
&lt;li>&lt;strong>Action&lt;/strong> : un événement décrivant un changement.&lt;/li>
&lt;li>&lt;strong>Reducer&lt;/strong> : une fonction qui transforme l’état en fonction de l’action.&lt;/li>
&lt;/ul>
&lt;p>L’objectif de cet article est de comprendre &lt;strong>comment utiliser &lt;code>dispatch&lt;/code> avec Redux dans Flutter&lt;/strong>, en gardant une approche simple, pédagogique et rigoureuse.&lt;/p></description></item><item><title>Interview EC2</title><link>https://blog.dev.simpleenough.net/fr/blog/ec2/</link><pubDate>Mon, 09 Jun 2025 15:55:01 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/ec2/</guid><description>&lt;h2 id="i-quest-ce-quamazon-ec2-et-à-quoi-sert-il-concrètement-" class="heading">I. Qu’est-ce qu’Amazon EC2 et à quoi sert-il concrètement ?&lt;a href="#i-quest-ce-quamazon-ec2-et-%c3%a0-quoi-sert-il-concr%c3%a8tement-" aria-labelledby="i-quest-ce-quamazon-ec2-et-à-quoi-sert-il-concrètement-">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>





 &lt;blockquote class="blockquote">
 &lt;p>&lt;strong>Expert AWS&lt;/strong> : Amazon EC2 (Elastic Compute Cloud) est un &lt;strong>service d’infrastructure à la demande&lt;/strong> qui permet de lancer des serveurs virtuels — qu’on appelle &lt;em>instances&lt;/em> — dans le cloud. Il est utilisé pour héberger des applications web, exécuter des traitements de données, servir d’environnement de développement, ou encore simuler des charges de production.&lt;/p></description></item><item><title>This is who IAM</title><link>https://blog.dev.simpleenough.net/fr/blog/iam/</link><pubDate>Tue, 27 May 2025 14:38:31 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/iam/</guid><description>&lt;h2 id="i-iam--composants-et-concepts-de-base" class="heading">I. IAM : Composants et concepts de base&lt;a href="#i-iam--composants-et-concepts-de-base" aria-labelledby="i-iam--composants-et-concepts-de-base">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>IAM repose sur des &lt;strong>entités&lt;/strong> et des &lt;strong>stratégies&lt;/strong>.&lt;/p>




&lt;h3 id="entités-iam" class="heading">Entités IAM&lt;a href="#entit%c3%a9s-iam" aria-labelledby="entités-iam">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Utilisateurs&lt;/strong> : Représentent des personnes ou des applications. Ex : un développeur nommé &amp;ldquo;alice&amp;rdquo;.&lt;/li>
&lt;li>&lt;strong>Groupes&lt;/strong> : Collections d’utilisateurs partageant les mêmes autorisations.&lt;/li>
&lt;li>&lt;strong>Rôles&lt;/strong> : Entités IAM que d&amp;rsquo;autres entités peuvent assumer temporairement. Idéal pour les cas de &lt;strong>fédération&lt;/strong> ou les services comme EC2 ou Lambda.&lt;/li>
&lt;li>&lt;strong>Politiques (Policies)&lt;/strong> : Fichiers JSON qui définissent les autorisations attachées à une entité.&lt;/li>
&lt;/ul>




&lt;h3 id="exemple-de-politique-json" class="heading">Exemple de politique JSON&lt;a href="#exemple-de-politique-json" aria-labelledby="exemple-de-politique-json">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h3>
&lt;div class="mb-3 syntax-highlight">&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;Version&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;2012-10-17&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;Statement&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;Effect&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Allow&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;Action&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;s3:ListBucket&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;Resource&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;arn:aws:s3:::example_bucket&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/div>&lt;p>Cette politique IAM permet à une entité AWS (utilisateur, rôle ou groupe) de lister les objets contenus dans un bucket S3 spécifique nommé example_bucket. Elle utilise la version standard du langage de politique (2012-10-17) et applique un effet &amp;ldquo;Allow&amp;rdquo; à l’action &amp;ldquo;s3:ListBucket&amp;rdquo; sur la ressource identifiée par son ARN (arn:aws:s3:::example_bucket). Cela signifie que l’entité pourra voir la liste des objets dans ce bucket (noms, tailles, métadonnées), mais ne pourra ni lire, ni modifier les fichiers eux-mêmes, sauf si d&amp;rsquo;autres permissions sont ajoutées. C’est une politique minimale, souvent utilisée dans des scénarios d’inventaire ou de navigation dans un bucket via l’API ou la console AWS.&lt;/p></description></item><item><title>Flutter Hot Reload : pourquoi est-il si rapide ?</title><link>https://blog.dev.simpleenough.net/fr/blog/hotreload/</link><pubDate>Mon, 19 May 2025 13:45:30 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/hotreload/</guid><description>&lt;h2 id="i-quest-ce-que-le-hot-reload-dans-flutter-" class="heading">I. Qu’est-ce que le hot reload dans Flutter ?&lt;a href="#i-quest-ce-que-le-hot-reload-dans-flutter-" aria-labelledby="i-quest-ce-que-le-hot-reload-dans-flutter-">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Le &lt;strong>hot reload&lt;/strong> est une fonctionnalité de Flutter qui permet de recharger rapidement le code modifié d’une application sans avoir à en redémarrer l’exécution complète. Cette opération conserve l’état courant de l’application, contrairement à un redémarrage classique.&lt;/p>
&lt;p>&lt;strong>Avantages principaux :&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Gain de temps lors du développement UI.&lt;/li>
&lt;li>Conservation de l’état : idéal pour tester une modification sans repasser par un long processus de navigation.&lt;/li>
&lt;li>Cycle de développement plus court.&lt;/li>
&lt;/ul>
&lt;p>Flutter supporte le hot reload grâce à l&amp;rsquo;architecture du moteur Dart, qui permet une &lt;strong>injection dynamique&lt;/strong> de code dans l’application en cours d’exécution.&lt;/p></description></item><item><title>Flutter pour les vrais débutants : c’est quoi, à quoi ça sert, comment l’essayer</title><link>https://blog.dev.simpleenough.net/fr/blog/flutterstart/</link><pubDate>Mon, 12 May 2025 10:10:48 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/flutterstart/</guid><description>&lt;h2 id="i-quest-ce-que-flutter-" class="heading">I. Qu’est-ce que Flutter ?&lt;a href="#i-quest-ce-que-flutter-" aria-labelledby="i-quest-ce-que-flutter-">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Flutter est un &lt;strong>framework open-source&lt;/strong> développé par Google, destiné à la création d’interfaces utilisateur &lt;strong>natives&lt;/strong> pour &lt;strong>Android&lt;/strong>, &lt;strong>iOS&lt;/strong>, &lt;strong>Web&lt;/strong> et &lt;strong>desktop&lt;/strong> à partir d’un &lt;strong>code unique&lt;/strong>. Utilisant le langage &lt;strong>Dart&lt;/strong>, il permet aux développeurs de concevoir des applications fluides, performantes et esthétiques.&lt;/p>
&lt;p>Flutter se distingue par son moteur de rendu intégré et sa capacité à reproduire des animations à 60 fps ou plus. Cela signifie qu’il ne s’appuie pas sur les composants natifs de la plateforme cible, ce qui lui permet une grande &lt;strong>cohérence visuelle&lt;/strong> entre les plateformes.&lt;/p></description></item><item><title>3 façons simples d'économiser jusqu'à 90 % des coûts de l'EC2: Spot Instances</title><link>https://blog.dev.simpleenough.net/fr/blog/spot/</link><pubDate>Fri, 02 May 2025 17:08:49 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/spot/</guid><description>&lt;h2 id="i-introduction-aux-spot-instances" class="heading">I. Introduction aux Spot Instances&lt;a href="#i-introduction-aux-spot-instances" aria-labelledby="i-introduction-aux-spot-instances">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Les &lt;strong>Amazon EC2 Spot Instances&lt;/strong> offrent une manière puissante de réduire drastiquement les coûts d’exécution dans le cloud. Conçues pour exploiter la capacité inutilisée d’Amazon EC2, ces instances sont disponibles à un &lt;strong>tarif jusqu’à 90 % inférieur&lt;/strong> à celui des instances à la demande.&lt;/p>
&lt;p>Bien que ces économies soient attrayantes, les Spot Instances ne conviennent pas à tous les types de charges de travail. Elles sont idéales pour des workloads &lt;strong>flexibles, tolérants à l’interruption&lt;/strong> ou distribués, comme le traitement de données, l’apprentissage automatique ou les tests de performance.&lt;/p></description></item><item><title>Un problème. Ne paniquez pas, préparez un ticket d'assistance</title><link>https://blog.dev.simpleenough.net/fr/blog/assistance/</link><pubDate>Fri, 25 Apr 2025 13:10:00 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/assistance/</guid><description>&lt;h2 id="i-identifier-et-reproduire-le-problème-avec-rigueur" class="heading">I. Identifier et reproduire le problème avec rigueur&lt;a href="#i-identifier-et-reproduire-le-probl%c3%a8me-avec-rigueur" aria-labelledby="i-identifier-et-reproduire-le-problème-avec-rigueur">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Avant de contacter l&amp;rsquo; assistance AWS, il est essentiel de documenter précisément le comportement observé. L&amp;rsquo; objectif est de permettre à l&amp;rsquo; &lt;strong>équipe de support&lt;/strong> d&amp;rsquo;analyser rapidement le contexte. Cela commence par l&amp;rsquo;identification du service concerné : EC2, S3, Lambda, ou un autre composant de votre infrastructure cloud. Documenter un incident avec clarté est fondamental pour éviter les allers-retours inutiles.&lt;/p></description></item><item><title>Real-Time, Real-Easy : Déployez des WebSockets</title><link>https://blog.dev.simpleenough.net/fr/blog/websocket/</link><pubDate>Mon, 21 Apr 2025 16:06:29 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/websocket/</guid><description>&lt;h2 id="i-architecture-et-fonctionnement-du-protocole-websocket" class="heading">I. Architecture et fonctionnement du protocole WebSocket&lt;a href="#i-architecture-et-fonctionnement-du-protocole-websocket" aria-labelledby="i-architecture-et-fonctionnement-du-protocole-websocket">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>La mise en place d’un WebSocket repose sur un &lt;strong>handshake&lt;/strong> initial via HTTP(S), suivi d’une &lt;strong>mise à niveau&lt;/strong> du protocole vers WebSocket.&lt;/p>




&lt;h3 id="étapes-principales-" class="heading">Étapes principales :&lt;a href="#%c3%a9tapes-principales-" aria-labelledby="étapes-principales-">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h3>






 






&lt;table class="table">
 &lt;thead>
 
 
 &lt;tr>
 &lt;th >Étape&lt;/th>
 &lt;th >Description&lt;/th>
 &lt;/tr>
 
 &lt;/thead>
 &lt;tbody>
 
 
 &lt;tr>
 &lt;td >1. HTTP Upgrade&lt;/td>
 &lt;td >Le client envoie une requête HTTP avec l’en-tête &lt;code>Upgrade: websocket&lt;/code>.&lt;/td>
 &lt;/tr>
 
 
 
 &lt;tr>
 &lt;td >2. Acceptation&lt;/td>
 &lt;td >Le serveur valide l’upgrade et bascule en mode WebSocket.&lt;/td>
 &lt;/tr>
 
 
 
 &lt;tr>
 &lt;td >3. Communication&lt;/td>
 &lt;td >Les données sont échangées en &lt;strong>frames&lt;/strong>, de manière asynchrone et bidirectionnelle.&lt;/td>
 &lt;/tr>
 
 &lt;/tbody>
&lt;/table>&lt;p>Exemple d&amp;rsquo;en-tête d&amp;rsquo;upgrade :&lt;/p></description></item><item><title>Écrire un Prompt : Guide Technique</title><link>https://blog.dev.simpleenough.net/fr/blog/prompt/</link><pubDate>Fri, 18 Apr 2025 11:02:00 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/prompt/</guid><description>&lt;h2 id="i-comprendre-ce-qu-est-un-prompt-dans-langchain" class="heading">I. Comprendre ce qu’ est un prompt dans LangChain&lt;a href="#i-comprendre-ce-qu-est-un-prompt-dans-langchain" aria-labelledby="i-comprendre-ce-qu-est-un-prompt-dans-langchain">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Dans LangChain, un &lt;em>prompt&lt;/em> représente une structure textuelle destinée à guider un modèle de langage. Un prompt bien construit intègre plusieurs composants essentiels :&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Instruction&lt;/strong> : Ce que vous demandez explicitement au modèle.&lt;/li>
&lt;li>&lt;strong>Context&lt;/strong> : Informations supplémentaires permettant de cadrer la réponse.&lt;/li>
&lt;li>&lt;strong>Input Data&lt;/strong> : Les données d’entrée spécifiques à chaque exécution.&lt;/li>
&lt;li>&lt;strong>Output Indicator&lt;/strong> : Ce que vous attendez comme type de sortie.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;p>Ce format permet de formuler des requêtes claires, encadrées, et reproductibles.
Voici un autre exemple utilisant &lt;code>LangChain&lt;/code> en Python avec cette structure :&lt;/p></description></item><item><title>J'hallucine avec Langchain</title><link>https://blog.dev.simpleenough.net/fr/blog/hallucination/</link><pubDate>Mon, 07 Apr 2025 09:22:00 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/hallucination/</guid><description>&lt;h2 id="i-quest-ce-quune-hallucination-" class="heading">I Qu’est-ce qu’une hallucination ?&lt;a href="#i-quest-ce-quune-hallucination-" aria-labelledby="i-quest-ce-quune-hallucination-">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Une hallucination désigne une réponse générée par un modèle de langage qui est factuellement incorrecte, inventée, ou qui interprète mal la réalité. Cela peut aller d’un détail erroné à une citation fictive, en passant par une pure invention technique ou historique.&lt;/p>
&lt;p>Exemple :&lt;/p>





 &lt;blockquote class="blockquote">
 &lt;p>“Einstein a découvert la relativité générale en 1975.”&lt;/p>
 &lt;/blockquote>
&lt;p>C’est faux (c’était en 1915), mais le modèle peut produire ce type d’assertion s’il n’a pas la bonne contrainte contextuelle ou s’il est trop confiant dans son raisonnement.&lt;/p></description></item><item><title>Comment bien compter les tokens ?</title><link>https://blog.dev.simpleenough.net/fr/blog/token/</link><pubDate>Tue, 01 Apr 2025 17:52:00 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/token/</guid><description>&lt;h2 id="i-quest-ce-quun-token-" class="heading">I. Qu’est-ce qu’un token ?&lt;a href="#i-quest-ce-quun-token-" aria-labelledby="i-quest-ce-quun-token-">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Un &lt;strong>token&lt;/strong> est une unité de texte que le modèle traite. Il peut s’agir d’un mot entier, d’une partie de mot ou même d’un caractère spécial.&lt;/p>




&lt;h3 id="exemples-concrets" class="heading">Exemples concrets&lt;a href="#exemples-concrets" aria-labelledby="exemples-concrets">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h3>






 






&lt;table class="table">
 &lt;thead>
 
 
 &lt;tr>
 &lt;th >Texte&lt;/th>
 &lt;th >Nombre de tokens&lt;/th>
 &lt;/tr>
 
 &lt;/thead>
 &lt;tbody>
 
 
 &lt;tr>
 &lt;td >Bonjour&lt;/td>
 &lt;td >1&lt;/td>
 &lt;/tr>
 
 
 
 &lt;tr>
 &lt;td >Je suis un développeur&lt;/td>
 &lt;td >5&lt;/td>
 &lt;/tr>
 
 
 
 &lt;tr>
 &lt;td >L’intelligence artificielle est fascinante !&lt;/td>
 &lt;td >9&lt;/td>
 &lt;/tr>
 
 
 
 &lt;tr>
 &lt;td >GPT est un modèle puissant.&lt;/td>
 &lt;td >6&lt;/td>
 &lt;/tr>
 
 &lt;/tbody>
&lt;/table>



&lt;h3 id="particularité-du-découpage-des-tokens" class="heading">Particularité du découpage des tokens&lt;a href="#particularit%c3%a9-du-d%c3%a9coupage-des-tokens" aria-labelledby="particularité-du-découpage-des-tokens">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>En anglais, les mots courts représente 1 token (ex. &lt;code>&amp;quot;Hello&amp;quot;&lt;/code> = 1 token).&lt;/li>
&lt;li>En français, certains mots longs peuvent être divisés en plusieurs tokens (ex. &amp;ldquo;développeur&amp;rdquo; ou &amp;ldquo;intelligence&amp;rdquo;` = 2 tokens).&lt;/li>
&lt;li>La ponctuation comptent aussi comme des tokens.&lt;/li>
&lt;li>Les espaces sont pris en compte avec le mot qui le suit.&lt;/li>
&lt;li>Les acronymes représente 1 token.&lt;/li>
&lt;/ul>
&lt;p>En moyenne, 100 tokens correspondent à environ 75 mots, bien que cela puisse varier selon la langue et le style d’écriture.&lt;/p></description></item><item><title>1000 le nombre magique dans le monde des LLM</title><link>https://blog.dev.simpleenough.net/fr/blog/chunk/</link><pubDate>Wed, 26 Mar 2025 09:05:00 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/chunk/</guid><description>&lt;h2 id="i-taille-des-chunks--pourquoi-1000-tokens-" class="heading">I. Taille des chunks : pourquoi ~1000 tokens ?&lt;a href="#i-taille-des-chunks--pourquoi-1000-tokens-" aria-labelledby="i-taille-des-chunks--pourquoi-1000-tokens-">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>La valeur par défaut de &lt;strong>1000 tokens par chunk&lt;/strong> n’est pas arbitraire :&lt;/p>
&lt;ul>
&lt;li>Un chunk de cette taille contient généralement &lt;strong>assez d&amp;rsquo;information pour être sémantiquement cohérent&lt;/strong>, sans être trop lourd.&lt;/li>
&lt;li>Il reste &lt;strong>compatible avec les fenêtres contextuelles&lt;/strong> des LLMs modernes (4k, 8k, 32k voire 1M tokens).&lt;/li>
&lt;li>Il évite de &lt;strong>diluer la compréhension&lt;/strong> ou de casser des unités de sens.&lt;/li>
&lt;/ul>
&lt;p>Certains cas nécessitent des tailles différentes :&lt;/p></description></item><item><title>Introduction aux ELB</title><link>https://blog.dev.simpleenough.net/fr/blog/elb/</link><pubDate>Sat, 15 Mar 2025 21:33:57 +0200</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/elb/</guid><description>&lt;h2 id="i-introduction-aux-load-balancers-dans-aws" class="heading">I. Introduction aux Load Balancers dans AWS&lt;a href="#i-introduction-aux-load-balancers-dans-aws" aria-labelledby="i-introduction-aux-load-balancers-dans-aws">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Un Elastic Load Balancers (ELB) agit comme un répartiteur de charge, distribuant automatiquement le trafic entrant à travers plusieurs ressources cibles, telles que les &lt;strong>instances EC2&lt;/strong>, les &lt;strong>containers&lt;/strong> ou les &lt;strong>adresses IP&lt;/strong>.&lt;/p>
&lt;p>Cette fonctionnalité est un pilier de la conception d&amp;rsquo;applications tolérantes aux pannes et hautement disponibles dans le cloud. AWS propose trois types d’ELB adaptés à différents cas d’usage, chacun avec ses spécificités.&lt;/p></description></item><item><title>Amazon EventBridge vs Amazon SNS : Quelle solution choisir ?</title><link>https://blog.dev.simpleenough.net/fr/blog/eventdriven/</link><pubDate>Tue, 11 Mar 2025 10:05:00 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/eventdriven/</guid><description>&lt;h2 id="introduction" class="heading">Introduction&lt;a href="#introduction" aria-labelledby="introduction">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Dans cet article, nous allons comparer ces deux services, explorer leurs cas d&amp;rsquo;utilisation et voir comment les intégrer efficacement dans une architecture AWS.&lt;/p>
&lt;hr>




&lt;h2 id="i-comparaison-amazon-eventbridge-vs-amazon-sns" class="heading">I. Comparaison Amazon EventBridge vs Amazon SNS&lt;a href="#i-comparaison-amazon-eventbridge-vs-amazon-sns" aria-labelledby="i-comparaison-amazon-eventbridge-vs-amazon-sns">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>






 






&lt;table class="table">
 &lt;thead>
 
 
 &lt;tr>
 &lt;th >&lt;strong>Caractéristique&lt;/strong>&lt;/th>
 &lt;th >&lt;strong>Amazon EventBridge&lt;/strong>&lt;/th>
 &lt;th >&lt;strong>Amazon SNS&lt;/strong>&lt;/th>
 &lt;/tr>
 
 &lt;/thead>
 &lt;tbody>
 
 
 &lt;tr>
 &lt;td >&lt;strong>Type de communication&lt;/strong>&lt;/td>
 &lt;td >Basé sur les événements (Event-Driven)&lt;/td>
 &lt;td >Basé sur la publication et l’abonnement (Pub/Sub)&lt;/td>
 &lt;/tr>
 
 
 
 &lt;tr>
 &lt;td >&lt;strong>Cas d&amp;rsquo;utilisation&lt;/strong>&lt;/td>
 &lt;td >Routage d&amp;rsquo;événements entre services AWS et applications SaaS&lt;/td>
 &lt;td >Envoi de notifications aux abonnés (e-mails, SMS, Lambda, SQS, etc.)&lt;/td>
 &lt;/tr>
 
 
 
 &lt;tr>
 &lt;td >&lt;strong>Sources des messages&lt;/strong>&lt;/td>
 &lt;td >AWS Services, applications SaaS, applications personnalisées&lt;/td>
 &lt;td >Applications, utilisateurs, services AWS&lt;/td>
 &lt;/tr>
 
 
 
 &lt;tr>
 &lt;td >&lt;strong>Ciblage des consommateurs&lt;/strong>&lt;/td>
 &lt;td >Règles de filtrage avancées pour envoyer un événement à une ou plusieurs cibles&lt;/td>
 &lt;td >Envoi du même message à tous les abonnés d’un sujet&lt;/td>
 &lt;/tr>
 
 
 
 &lt;tr>
 &lt;td >&lt;strong>Protocoles supportés&lt;/strong>&lt;/td>
 &lt;td >AWS Lambda, SQS, API Gateway, Kinesis, Step Functions, etc.&lt;/td>
 &lt;td >E-mails, SMS, Lambda, SQS, HTTP(S) endpoints, applications mobiles (FCM, APN)&lt;/td>
 &lt;/tr>
 
 
 
 &lt;tr>
 &lt;td >&lt;strong>Filtrage des messages&lt;/strong>&lt;/td>
 &lt;td >Filtrage avancé basé sur des règles avec des expressions JSON&lt;/td>
 &lt;td >Filtrage limité basé sur les attributs des messages&lt;/td>
 &lt;/tr>
 
 
 
 &lt;tr>
 &lt;td >&lt;strong>Architecture&lt;/strong>&lt;/td>
 &lt;td >Orientée événements et intégration avec d’autres services AWS&lt;/td>
 &lt;td >Orientée notifications et messagerie entre producteurs et consommateurs&lt;/td>
 &lt;/tr>
 
 
 
 &lt;tr>
 &lt;td >&lt;strong>Durabilité et rétention des messages&lt;/strong>&lt;/td>
 &lt;td >Aucun stockage natif (les événements sont routés immédiatement)&lt;/td>
 &lt;td >Messages stockés pendant 4 jours (jusqu&amp;rsquo;à 14 jours avec Extended Retention)&lt;/td>
 &lt;/tr>
 
 
 
 &lt;tr>
 &lt;td >&lt;strong>Ordonnancement des messages&lt;/strong>&lt;/td>
 &lt;td >Non garanti (les messages peuvent arriver dans le désordre)&lt;/td>
 &lt;td >Ordonnancement FIFO disponible avec SNS FIFO&lt;/td>
 &lt;/tr>
 
 &lt;/tbody>
&lt;/table>



&lt;h2 id="ii-cas-d-utilisation-détaillés" class="heading">II. Cas d&amp;rsquo; utilisation détaillés&lt;a href="#ii-cas-d-utilisation-d%c3%a9taill%c3%a9s" aria-labelledby="ii-cas-d-utilisation-détaillés">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>




&lt;h3 id="a-cas-d--orchestration-dévénements-inter-services" class="heading">A. &lt;strong>Cas d&amp;rsquo; utilisation d&amp;rsquo; Amazon EventBridge&lt;/strong> : Orchestration d&amp;rsquo;événements inter-services&lt;a href="#a-cas-d--orchestration-d%c3%a9v%c3%a9nements-inter-services" aria-labelledby="a-cas-d--orchestration-dévénements-inter-services">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h3>
&lt;p>EventBridge est idéal pour &lt;strong>connecter différents services AWS et applications SaaS&lt;/strong>.&lt;/p></description></item><item><title>Les 5 livres blancs incontournables</title><link>https://blog.dev.simpleenough.net/fr/blog/whitepaper/</link><pubDate>Sat, 01 Mar 2025 10:56:41 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/whitepaper/</guid><description>&lt;h1 id="préparez-votre--premiere-certification-aws-avec-ces-livres-blancs-incontournables" class="heading">Préparez votre premiere certification AWS avec ces livres blancs incontournables&lt;a href="#pr%c3%a9parez-votre--premiere-certification-aws-avec-ces-livres-blancs-incontournables" aria-labelledby="préparez-votre--premiere-certification-aws-avec-ces-livres-blancs-incontournables">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h1>
&lt;p>Ils permettent d’acquérir une compréhension approfondie des bonnes pratiques et des architectures cloud. Ces ressources gratuites sont une mine d’or pour quiconque souhaite réussir son examen.&lt;/p>
&lt;p>Dans cet article, nous vous présentons les livres blancs essentiels pour votre préparation et vous expliquons comment les utiliser efficacement.&lt;/p>




&lt;h2 id="i-pourquoi-lire-les-livres-blancs-aws-" class="heading">I. Pourquoi lire les livres blancs AWS ?&lt;a href="#i-pourquoi-lire-les-livres-blancs-aws-" aria-labelledby="i-pourquoi-lire-les-livres-blancs-aws-">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Les livres blancs AWS sont rédigés par des experts du cloud et contiennent des conseils pratiques sur la conception, la gestion et la sécurisation des infrastructures AWS. Ils couvrent des sujets allant de l’architecture générale aux meilleures pratiques en matière de performance et de sécurité. Leur lecture permet d’approfondir ses connaissances au-delà des simples tutoriels et de mieux comprendre les exigences des premiers examens d&amp;rsquo; AWS (Fondamental ou Associate). Régulirement AWS met à jour ces documents. Il est essentiel de consulter les versions les plus récentes pour s&amp;rsquo;assurer que les informations utilisées reflètent les meilleures pratiques actuelles d&amp;rsquo;AWS.&lt;/p></description></item><item><title>Reverse</title><link>https://blog.dev.simpleenough.net/fr/projects/reverse-project/</link><pubDate>Tue, 25 Feb 2025 00:00:00 +0000</pubDate><guid>https://blog.dev.simpleenough.net/fr/projects/reverse-project/</guid><description>&lt;p>Visualization tool.
Triggering a scan to generate IaC for AWS.
Infrastructure History.&lt;/p></description></item><item><title>Comment filtrer les événements S3 par taille d'objet ?</title><link>https://blog.dev.simpleenough.net/fr/blog/sortsizes3/</link><pubDate>Tue, 18 Feb 2025 17:16:31 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/sortsizes3/</guid><description>&lt;h2 id="i-quand-a-t-on-besoin-de-filtrer-les-événements-s3-par-taille-dobjet-" class="heading">I. Quand a-t-on besoin de filtrer les événements S3 par taille d&amp;rsquo;objet ?&lt;a href="#i-quand-a-t-on-besoin-de-filtrer-les-%c3%a9v%c3%a9nements-s3-par-taille-dobjet-" aria-labelledby="i-quand-a-t-on-besoin-de-filtrer-les-événements-s3-par-taille-dobjet-">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Filtrer les événements S3 par taille d’objet est utile dans plusieurs cas d’usage, en particulier lorsque les actions à déclencher dépendent du volume des fichiers stockés. Voici quelques scénarios concrets où ce filtrage est pertinent :&lt;/p>




&lt;h3 id="1-optimisation-des-coûts-et-gestion-du-stockage" class="heading">1. Optimisation des Coûts et Gestion du Stockage&lt;a href="#1-optimisation-des-co%c3%bbts-et-gestion-du-stockage" aria-labelledby="1-optimisation-des-coûts-et-gestion-du-stockage">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Suppression automatique des fichiers trop volumineux&lt;/strong> : éviter l’accumulation de fichiers inutiles qui consomment de l’espace et génèrent des coûts inutiles.&lt;/li>
&lt;li>&lt;strong>Déplacement automatique vers un stockage à moindre coût&lt;/strong> (ex: Glacier) lorsque les fichiers dépassent une certaine taille.&lt;/li>
&lt;/ul>




&lt;h3 id="2-automatisation-des-traitements" class="heading">2. Automatisation des Traitements&lt;a href="#2-automatisation-des-traitements" aria-labelledby="2-automatisation-des-traitements">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Exécuter un traitement spécifique sur les fichiers volumineux&lt;/strong> (ex: conversion vidéo/audio, compression, division en morceaux plus petits).&lt;/li>
&lt;li>&lt;strong>Lancer une fonction Lambda pour indexer uniquement les fichiers pertinents&lt;/strong> en fonction de leur taille.&lt;/li>
&lt;/ul>




&lt;h3 id="3-sécurité-et-conformité" class="heading">3. Sécurité et Conformité&lt;a href="#3-s%c3%a9curit%c3%a9-et-conformit%c3%a9" aria-labelledby="3-sécurité-et-conformité">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Éviter le stockage de fichiers trop lourds dans des buckets publics&lt;/strong> qui pourraient engendrer des abus (ex: upload d’archives volumineuses par des utilisateurs malveillants).&lt;/li>
&lt;li>&lt;strong>Déclencher une alerte ou bloquer certains uploads&lt;/strong> si un utilisateur dépasse une limite de taille définie.&lt;/li>
&lt;/ul>




&lt;h3 id="4-optimisation-des-flux-de-données" class="heading">4. Optimisation des Flux de Données&lt;a href="#4-optimisation-des-flux-de-donn%c3%a9es" aria-labelledby="4-optimisation-des-flux-de-données">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Diriger les petits fichiers vers un traitement en temps réel&lt;/strong> (Lambda, Kinesis) et les fichiers volumineux vers un traitement batch pour optimiser l’efficacité du système.&lt;/li>
&lt;li>&lt;strong>Rediriger les fichiers selon leur taille vers différents buckets&lt;/strong> (ex: fichiers &amp;lt; 1 Mo vers un bucket pour accès rapide, fichiers &amp;gt; 100 Mo vers un stockage froid).&lt;/li>
&lt;/ul>




&lt;h3 id="5-monitoring-et-reporting" class="heading">5. Monitoring et Reporting&lt;a href="#5-monitoring-et-reporting" aria-labelledby="5-monitoring-et-reporting">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Générer des rapports sur l’utilisation de l’espace de stockage&lt;/strong> en filtrant les objets dépassant une taille critique.&lt;/li>
&lt;li>&lt;strong>Détecter des anomalies&lt;/strong> comme l’upload soudain de fichiers très volumineux qui pourraient signaler un problème (ex: erreurs de logs massives, fuite de données, etc.).&lt;/li>
&lt;/ul>
&lt;hr>




&lt;h2 id="ii-comment-filtrer-les-événements-s3-par-taille-dobjet-3-méthodes-" class="heading">II. Comment filtrer les événements S3 par taille d&amp;rsquo;objet, 3 méthodes ?&lt;a href="#ii-comment-filtrer-les-%c3%a9v%c3%a9nements-s3-par-taille-dobjet-3-m%c3%a9thodes-" aria-labelledby="ii-comment-filtrer-les-événements-s3-par-taille-dobjet-3-méthodes-">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>




&lt;h3 id="1-filtrage-côté-aws-eventbridge-avec-aws-lambda" class="heading">1. Filtrage côté AWS EventBridge avec AWS Lambda&lt;a href="#1-filtrage-c%c3%b4t%c3%a9-aws-eventbridge-avec-aws-lambda" aria-labelledby="1-filtrage-côté-aws-eventbridge-avec-aws-lambda">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h3>
&lt;p>AWS S3 envoie des événements à EventBridge ou à une AWS Lambda. Malheureusement, les règles EventBridge ne permettent pas directement de filtrer par taille d&amp;rsquo;objet. Cependant, vous pouvez configurer une &lt;strong>AWS Lambda&lt;/strong> pour traiter les événements et appliquer un filtrage basé sur la taille.&lt;/p></description></item><item><title>Qu’ est-ce qu’ un Bundle ? Décryptage du concept</title><link>https://blog.dev.simpleenough.net/fr/blog/bundleconcept/</link><pubDate>Mon, 03 Feb 2025 10:00:00 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/bundleconcept/</guid><description>&lt;p>Le terme &lt;strong>&amp;ldquo;bundle&amp;rdquo;&lt;/strong> est omniprésent dans le développement web et DevOps. Il peut désigner un &lt;strong>regroupement de fichiers, de ressources ou d’éléments&lt;/strong> pour simplifier leur gestion et améliorer les performances.&lt;/p>
&lt;p>Mais un &lt;strong>bundle&lt;/strong> n&amp;rsquo;a pas la même signification partout. Dans cet article, nous allons explorer ses &lt;strong>différents usages&lt;/strong> dans trois domaines clés :&lt;/p>
&lt;p>&lt;strong>Hugo (générateur de site statique)&lt;/strong>&lt;br>
&lt;strong>CSS &amp;amp; JavaScript (développement front-end)&lt;/strong>&lt;br>
&lt;strong>DevOps (Docker, Kubernetes, Helm, etc.)&lt;/strong>&lt;/p>
&lt;hr>




&lt;h2 id="i-bundle-dans-hugo--organiser-ses-fichiers-intelligemment" class="heading">I. Bundle dans Hugo : Organiser ses fichiers intelligemment&lt;a href="#i-bundle-dans-hugo--organiser-ses-fichiers-intelligemment" aria-labelledby="i-bundle-dans-hugo--organiser-ses-fichiers-intelligemment">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Dans Hugo, un &lt;strong>bundle&lt;/strong> est un dossier contenant une page et ses ressources associées (images, fichiers JSON, etc.). Il existe deux types de &lt;strong>Page Bundles&lt;/strong> :&lt;/p></description></item><item><title>Démystifier AWS KMS</title><link>https://blog.dev.simpleenough.net/fr/blog/demystifying-aws-kms/</link><pubDate>Sun, 19 Jan 2025 09:56:41 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/demystifying-aws-kms/</guid><description>&lt;h2 id="i-introduction-à-aws-kms" class="heading">I. Introduction à AWS KMS&lt;a href="#i-introduction-%c3%a0-aws-kms" aria-labelledby="i-introduction-à-aws-kms">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>




&lt;h3 id="a-qu" class="heading">&lt;strong>A. Qu&amp;rsquo;est-ce qu&amp;rsquo;AWS KMS ?&lt;/strong>&lt;a href="#a-qu" aria-labelledby="a-qu">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h3>
&lt;p>AWS KMS, ou &lt;strong>Key Management Service&lt;/strong>, est un service entièrement géré qui simplifie la création, la gestion et le contrôle des clés de chiffrement. Chaque fois qu&amp;rsquo;un chiffrement est mentionné dans les services AWS tels que &lt;strong>EBS, S3, RDS ou SSM&lt;/strong>, AWS KMS est probablement impliqué. Ce service s&amp;rsquo;intègre parfaitement avec &lt;strong>IAM&lt;/strong> et assure également un contrôle d&amp;rsquo;accès strict ainsi qu&amp;rsquo;un audit robuste via &lt;strong>CloudTrail&lt;/strong>.&lt;/p></description></item><item><title>Un bref historique des architectures AWS</title><link>https://blog.dev.simpleenough.net/fr/blog/history/</link><pubDate>Fri, 20 Dec 2024 09:56:41 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/history/</guid><description>&lt;h1 id="i-les-débuts-d-aws-et-du-cloud-computing-période-de-2002-à-2006" class="heading">I. Les débuts d’ AWS et du Cloud Computing période de 2002 à 2006&lt;a href="#i-les-d%c3%a9buts-d-aws-et-du-cloud-computing-p%c3%a9riode-de-2002-%c3%a0-2006" aria-labelledby="i-les-débuts-d-aws-et-du-cloud-computing-période-de-2002-à-2006">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h1>




&lt;h3 id="contexte--lorigine-du-projet-aws" class="heading">Contexte : L’origine du projet AWS&lt;a href="#contexte--lorigine-du-projet-aws" aria-labelledby="contexte--lorigine-du-projet-aws">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h3>
&lt;p>Avant même qu’ AWS ne devienne un géant du cloud, Amazon.com (le site e-commerce) devait gérer une infrastructure informatique massive pour supporter sa croissance rapide. L’entreprise avait investi dans des datacenters coûteux et devait prévoir la capacité de serveurs pour gérer les pics de trafic (comme ceux du Black Friday). Cependant, une grande partie de cette capacité restait inutilisée en dehors des périodes de forte demande.&lt;/p></description></item><item><title>Apprendre AWS par vous-même ? 10 services à connaître</title><link>https://blog.dev.simpleenough.net/fr/blog/learnaws/</link><pubDate>Wed, 20 Nov 2024 09:56:41 +0100</pubDate><guid>https://blog.dev.simpleenough.net/fr/blog/learnaws/</guid><description>&lt;h5 id="voici-les-10-services-essentiels-à-maîtriser-pour-tirer-pleinement-parti-daws" class="heading">Voici les 10 services essentiels à maîtriser pour tirer pleinement parti d&amp;rsquo;AWS.&lt;a href="#voici-les-10-services-essentiels-%c3%a0-ma%c3%aetriser-pour-tirer-pleinement-parti-daws" aria-labelledby="voici-les-10-services-essentiels-à-maîtriser-pour-tirer-pleinement-parti-daws">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h5>




&lt;h1 id="1-iam-gestion-des-identités-et-des-accès" class="heading">1. IAM (Gestion des identités et des accès)&lt;a href="#1-iam-gestion-des-identit%c3%a9s-et-des-acc%c3%a8s" aria-labelledby="1-iam-gestion-des-identités-et-des-accès">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h1>
&lt;p>IAM est le service AWS qui permet de gérer l&amp;rsquo;accès aux ressources de votre compte. Il joue un rôle crucial en matière de &lt;strong>sécurité&lt;/strong>, car il contrôle &lt;strong>qui peut faire quoi&lt;/strong> sur votre infrastructure cloud. Avec IAM, vous pouvez créer des &lt;strong>utilisateurs individuels&lt;/strong> ou regrouper plusieurs utilisateurs dans des &lt;strong>groupes&lt;/strong>. Vous pouvez également définir des &lt;strong>rôles&lt;/strong> permettant à d&amp;rsquo;autres services AWS d&amp;rsquo;interagir entre eux.&lt;/p></description></item></channel></rss>