<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Lionel Brianto</title>
    <description>The latest articles on Forem by Lionel Brianto (@kin0bi).</description>
    <link>https://forem.com/kin0bi</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F21624%2F6da67ace-615d-4407-8cb5-06c05d3d0c02.jpg</url>
      <title>Forem: Lionel Brianto</title>
      <link>https://forem.com/kin0bi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/kin0bi"/>
    <language>en</language>
    <item>
      <title>Slides réussis : l’essentiel à connaître par Tim Carry.</title>
      <dc:creator>Lionel Brianto</dc:creator>
      <pubDate>Sun, 26 Apr 2026 05:24:06 +0000</pubDate>
      <link>https://forem.com/kin0bi/slides-reussis-lessentiel-a-connaitre-par-tim-carry-l8p</link>
      <guid>https://forem.com/kin0bi/slides-reussis-lessentiel-a-connaitre-par-tim-carry-l8p</guid>
      <description>&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/CJ-m-4F4Odk"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Les slides doivent servir de support visuel minimaliste pour renforcer un message clair, sans surcharger l’audience. Leur structure narrative et leur synchronisation avec le discours sont essentielles pour éviter la distraction et maximiser l’impact.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Une idée = un slide&lt;/strong&gt; : Chaque diapositive doit illustrer une seule idée pour éviter la confusion. Trop d’informations ou de messages contradictoires nuisent à la compréhension.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structure narrative&lt;/strong&gt; : Commencer par un titre percutant, enchaîner avec une présentation personnelle (angle de vue), et terminer par un slide de conclusion avec des appels à l’action (CTA) qui restent visibles.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Processus de création&lt;/strong&gt; : Après un brain dump initial, filtrer et organiser les idées en boîtes distinctes, puis affiner le storytelling. Prévoir environ 1 slide par minute de présentation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tests et ajustements&lt;/strong&gt; : S’enregistrer, se chronométrer et vérifier la cohérence entre le discours et les visuels pour éliminer toute dissonance cognitive.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>softskills</category>
      <category>publicspeaking</category>
      <category>productivity</category>
      <category>slides</category>
    </item>
    <item>
      <title>Comment reprendre le contrôle quand l'IA bouscule les règles du jeu</title>
      <dc:creator>Lionel Brianto</dc:creator>
      <pubDate>Fri, 17 Apr 2026 19:23:42 +0000</pubDate>
      <link>https://forem.com/kin0bi/comment-reprendre-le-controle-quand-lia-bouscule-les-regles-du-jeu-45b1</link>
      <guid>https://forem.com/kin0bi/comment-reprendre-le-controle-quand-lia-bouscule-les-regles-du-jeu-45b1</guid>
      <description>&lt;p&gt;L’IA accélère les transformations mais génère aussi incertitudes et réactions émotionnelles. Pour éviter la dispersion, il faut revenir aux fondamentaux et raisonner par premiers principes. L’objectif est de clarifier sa vision et d’agir avec intention plutôt que par mimétisme ou peur.&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://open.spotify.com/embed/episode/6i0eC9yEOyIzcJuQG59ODj" width="100%" height="232px"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;POC et accessibilité&lt;/strong&gt; : L’IA permet de prototyper rapidement et à moindre coût, réduisant l’écart de compétences techniques entre individus.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gestion des émotions&lt;/strong&gt; : Excitation et peur sont des signaux à canaliser pour éviter les décisions impulsives, en s’appuyant sur des indicateurs objectifs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Méthode des premiers principes&lt;/strong&gt; : Identifier les axiomes (ce qui fait consensus) et construire une solution sans se laisser influencer par les pratiques existantes ou le &lt;em&gt;cargo cult&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Outils et limites&lt;/strong&gt; : L’IA reste un moyen, pas une fin ; il faut recentrer sa stratégie sur ses valeurs et certitudes pour éviter de se perdre dans l’agitation du marché.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Et vous ?
&lt;/h2&gt;

&lt;p&gt;Comment gérez-vous l'arrivée de l'IA dans vos processus de décision ? Utilisez-vous aussi la méthode des premiers principes ?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://open.spotify.com/episode/6i0eC9yEOyIzcJuQG59ODj" class="crayons-btn crayons-btn--primary" rel="noopener noreferrer"&gt;Écouter l'épisode complet sur Spotify&lt;/a&gt;
&lt;/p&gt;

</description>
      <category>ai</category>
      <category>career</category>
      <category>leadership</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Algorithmic Feeds Need to Be Banned | Shubham Jain</title>
      <dc:creator>Lionel Brianto</dc:creator>
      <pubDate>Fri, 17 Apr 2026 19:23:35 +0000</pubDate>
      <link>https://forem.com/kin0bi/algorithmic-feeds-need-to-be-banned-shubham-jain-4897</link>
      <guid>https://forem.com/kin0bi/algorithmic-feeds-need-to-be-banned-shubham-jain-4897</guid>
      <description>&lt;p&gt;Les réseaux sociaux, dominés par les algorithmes de recommandation, exacerbent l’isolement, l’anxiété et le pessimisme en privilégiant l’engagement au détriment du bien-être des utilisateurs. Leur logique repose sur une stimulation constante, corrompant progressivement notre attention et notre rapport au monde. Pourtant, les solutions proposées restent superficielles, évitant de s’attaquer à la racine du problème.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Critique des algorithmes&lt;/strong&gt; : Ils ignorent les intentions des utilisateurs pour maximiser le temps passé sur les plateformes, exposant les gens à des contenus toxiques ou superficiels sans égard pour leur impact émotionnel.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Conséquences sociétales&lt;/strong&gt; : L’addiction aux flux algorithmiques réduit notre capacité à apprécier des activités lentes et nuance notre perception de la réalité, créant une dystopie par surstimulation plutôt que par censure.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Échec des régulations&lt;/strong&gt; : Les mesures actuelles (restrictions pour les mineurs, lutte contre les fake news) ciblent des symptômes sans remettre en cause le modèle économique des algorithmes, pourtant central dans la crise.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Proposition radicale&lt;/strong&gt; : Interdire ou fortement encadrer les flux algorithmiques permettrait de recentrer les plateformes sur ce que les utilisateurs choisissent explicitement, offrant une forme de réinitialisation nécessaire.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>discuss</category>
      <category>socialmedia</category>
      <category>algorithms</category>
      <category>ethics</category>
    </item>
    <item>
      <title>Savez-vous vraiment comment fonctionne git ? (Sébastien LECACHEUR)</title>
      <dc:creator>Lionel Brianto</dc:creator>
      <pubDate>Fri, 17 Apr 2026 19:23:35 +0000</pubDate>
      <link>https://forem.com/kin0bi/savez-vous-vraiment-comment-fonctionne-git-sebastien-lecacheur-o7a</link>
      <guid>https://forem.com/kin0bi/savez-vous-vraiment-comment-fonctionne-git-sebastien-lecacheur-o7a</guid>
      <description>&lt;p&gt;Un tag dans Git fonctionne comme une branche figée, sans suivi des nouveaux commits, et un tag annoté est un objet Git distinct stockant un message. Git optimise le stockage via des &lt;code&gt;packs&lt;/code&gt;, surtout utile pour les gros projets, et le rebase doit être réservé au travail local pour éviter de corrompre l’historique partagé.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tags&lt;/strong&gt; : Similaires à des branches statiques, les tags ne suivent pas les commits ultérieurs. Un tag annoté est un objet Git dédié, incluant un message.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Optimisation&lt;/strong&gt; : Git compresse les objets en &lt;code&gt;packs&lt;/code&gt; pour réduire l’espace, particulièrement avantageux sur les gros projets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rebase&lt;/strong&gt; : À réserver uniquement au travail local pour préserver la lisibilité de l’historique du projet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Règles de base&lt;/strong&gt; : La branche active suit les nouveaux commits, le répertoire de travail se met à jour lors du déplacement vers un commit, et les objets inaccessibles sont supprimés par le ramasse-miettes.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>beginners</category>
      <category>git</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>CORS ne protège pas votre API. Il protège vos utilisateurs.</title>
      <dc:creator>Lionel Brianto</dc:creator>
      <pubDate>Fri, 17 Apr 2026 19:23:35 +0000</pubDate>
      <link>https://forem.com/kin0bi/cors-ne-protege-pas-votre-api-il-protege-vos-utilisateurs-5h8o</link>
      <guid>https://forem.com/kin0bi/cors-ne-protege-pas-votre-api-il-protege-vos-utilisateurs-5h8o</guid>
      <description>&lt;p&gt;CORS est un mécanisme de sécurité qui régule les échanges entre origines différentes dans un navigateur, protégeant les utilisateurs contre la lecture non autorisée de données sensibles par des scripts malveillants. Il ne protège pas directement le serveur contre des requêtes non désirées, mais contrôle l'accès aux réponses pour les scripts JavaScript. Une mauvaise configuration peut cependant introduire des vulnérabilités, notamment en combinant des headers permissifs avec des credentials.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Rôle de CORS&lt;/strong&gt; : Limite la lecture des réponses cross-origin par des scripts tiers, sans empêcher l'exécution des requêtes côté serveur. Par exemple, un site malveillant ne peut pas lire le solde bancaire d'un utilisateur connecté à sa banque via une requête JavaScript.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Types de requêtes&lt;/strong&gt; :

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Simple requests&lt;/em&gt; (GET/POST avec Content-Type standard) : le navigateur envoie la requête avant de vérifier les headers CORS, mais bloque la lecture de la réponse si non autorisée.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Requêtes avec preflight&lt;/em&gt; : un OPTIONS préalable vérifie les permissions avant l'envoi de la requête principale.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Bonnes pratiques&lt;/strong&gt; :

&lt;ul&gt;
&lt;li&gt;Éviter &lt;code&gt;Access-Control-Allow-Origin: *&lt;/code&gt; avec &lt;code&gt;Access-Control-Allow-Credentials: true&lt;/code&gt; pour prévenir les fuites de données.&lt;/li&gt;
&lt;li&gt;Concevoir l'API comme si CORS n'existait pas : valider systématiquement l'authentification et les permissions sur chaque endpoint, indépendamment de l'origine de la requête.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Limites et confusions&lt;/strong&gt; : CORS ne remplace pas une authentification robuste (JWT, sessions, clés API). Une API accessible via &lt;code&gt;curl&lt;/code&gt; sans restrictions relève d'un choix d'architecture, pas d'un problème de CORS.&lt;/li&gt;

&lt;/ul&gt;

</description>
      <category>api</category>
      <category>javascript</category>
      <category>security</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Database Design Doesn't Start With Table. It Starts With Consequences</title>
      <dc:creator>Lionel Brianto</dc:creator>
      <pubDate>Fri, 17 Apr 2026 19:23:34 +0000</pubDate>
      <link>https://forem.com/kin0bi/database-design-doesnt-start-with-table-it-starts-with-consequences-175a</link>
      <guid>https://forem.com/kin0bi/database-design-doesnt-start-with-table-it-starts-with-consequences-175a</guid>
      <description>&lt;p&gt;La conception de bases de données est un investissement stratégique : un schéma bien pensé permet une scalabilité fluide, tandis qu’une erreur initiale entraîne des coûts de correction élevés. L’alignement avec le domaine métier et l’évolutivité sont centraux, avec une approche équilibrée entre normalisation et performance.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Prioriser le domaine métier&lt;/strong&gt; : Cartographier les entités, relations et contraintes réelles avant de concevoir le schéma. Un modèle qui reflète fidèlement la réalité évite les états de données invalides.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Normalisation et dénormalisation&lt;/strong&gt; : Commencer en 3NF pour éliminer les redondances, puis dénormaliser uniquement si les données de performance le justifient (ex. : vues matérialisées, index composites).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contraintes comme fondations&lt;/strong&gt; : Utiliser &lt;code&gt;FOREIGN KEY&lt;/code&gt;, &lt;code&gt;NOT NULL&lt;/code&gt;, &lt;code&gt;UNIQUE&lt;/code&gt; et &lt;code&gt;CHECK&lt;/code&gt; pour encoder les règles métier directement dans la base, réduisant les bugs et la dette technique.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Optimisation mesurée&lt;/strong&gt; : Indexer les colonnes critiques (clauses &lt;code&gt;WHERE&lt;/code&gt;, &lt;code&gt;JOIN&lt;/code&gt;, &lt;code&gt;ORDER BY&lt;/code&gt;) tout en surveillant leur impact sur les écritures. Privilégier &lt;code&gt;EXPLAIN ANALYZE&lt;/code&gt; pour valider les choix et éviter la sur-optimisation prématurée.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>architecture</category>
      <category>backend</category>
      <category>database</category>
      <category>systemdesign</category>
    </item>
  </channel>
</rss>
