<?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: Alexandre Moevi</title>
    <description>The latest articles on Forem by Alexandre Moevi (@alexandremoevi).</description>
    <link>https://forem.com/alexandremoevi</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%2F640815%2F1695336a-82ba-4b91-b459-0458fffcd6fa.JPG</url>
      <title>Forem: Alexandre Moevi</title>
      <link>https://forem.com/alexandremoevi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/alexandremoevi"/>
    <language>en</language>
    <item>
      <title>Back to Back #19 - Back-end news by SFEIR</title>
      <dc:creator>Alexandre Moevi</dc:creator>
      <pubDate>Wed, 25 Jan 2023 07:00:00 +0000</pubDate>
      <link>https://forem.com/sfeircode/back-to-back-19-back-end-news-by-sfeir-5gc2</link>
      <guid>https://forem.com/sfeircode/back-to-back-19-back-end-news-by-sfeir-5gc2</guid>
      <description>&lt;p&gt;&lt;em&gt;Comme chaque fin de mois, les experts de SFEIR publient la newsletter back-end. Retrouvez la sélection de contenu, les outils coup de cœur et les astuces.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  📰 Articles
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://dzone.com/articles/kubernetes-native-inner-loop-development-with-quarkus" rel="noopener noreferrer"&gt;Kubernetes-Native Inner Loop Development With Quarkus&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Quarkus est à la rescousse afin de simplifier le processus de développement et de test des microservices ainsi que de réduire les cycles de développement.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://thenewstack.io/one-year-of-log4j/" rel="noopener noreferrer"&gt;One Year of Log4j&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Il y a un peu plus d'un an, il ne s'agissait que d'un inoffensif outil de logging. Depuis la vulnérabilité Log4Shell est passée par là. Cet article nous montre qu'il reste de nombreuses organisations vulnérables à cette attaque.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://chriswarrick.com/blog/2023/01/15/how-to-improve-python-packaging/" rel="noopener noreferrer"&gt;How to improve Python packaging&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Pipenv, Poetry, setuptools… Avec autant de solutions différentes,  il est difficile de savoir quelle est la meilleure approche. Cet article explore l'état actuel du packaging en Python et (peut-être ?) le futur avec la PEP 582.&lt;/p&gt;

&lt;h2&gt;
  
  
  🛠️ Outils
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.npmjs.com/package/modern-errors" rel="noopener noreferrer"&gt;modern-errors&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Un package npm qui facilite la création et l'utilisation des classes d'erreurs. Des plugins existent, comme &lt;code&gt;modern-errors-http&lt;/code&gt; qui gèrent les réponses HTTP.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://docs.gofiber.io/" rel="noopener noreferrer"&gt;Fiber&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Fiber est un framework web inspiré d'Express. Il se base sur Fasthttp, l'implémentation HTTP de Go la plus rapide. Conçu pour faciliter les choses pour des développements rapides, Fiber garde à l'esprit l'absence d'allocations mémoires, ainsi que les performances.&lt;/p&gt;

&lt;h2&gt;
  
  
  💡 Trucs et astuces
&lt;/h2&gt;

&lt;p&gt;Voici une collection de règles utiles applicables avec les fichiers &lt;code&gt;.htaccess&lt;/code&gt; : redirection, protection d'un dossier, forçage d'un téléchargement…&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/phanan" rel="noopener noreferrer"&gt;
        phanan
      &lt;/a&gt; / &lt;a href="https://github.com/phanan/htaccess" rel="noopener noreferrer"&gt;
        htaccess
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      ✂A collection of useful .htaccess snippets.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;.htaccess Snippets &lt;a href="https://github.com/sindresorhus/awesome" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/8693bde04030b1670d5097703441005eba34240c32d1df1eb82a5f0d6716518e/68747470733a2f2f63646e2e7261776769742e636f6d2f73696e647265736f726875732f617765736f6d652f643733303566333864323966656437386661383536353265336136336531353464643865383832392f6d656469612f62616467652e737667" alt="Awesome"&gt;&lt;/a&gt;
&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;A collection of useful .htaccess snippets, all in one place.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: &lt;code&gt;.htaccess&lt;/code&gt; files are for people that do not have rights to edit the main server configuration file. They are intrinsically slower and more complicated than using the main config. Please see the &lt;a href="https://httpd.apache.org/docs/current/howto/htaccess.html" rel="nofollow noopener noreferrer"&gt;howto in the httpd documentation&lt;/a&gt; for further details.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Disclaimer&lt;/strong&gt;: While dropping the snippet into an &lt;code&gt;.htaccess&lt;/code&gt; file is most of the time sufficient, there are cases when certain modifications might be required. Use at your own risk.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;IMPORTANT&lt;/strong&gt;: Apache 2.4 introduces a few breaking changes, most notably in access control configuration. For more information, check the &lt;a href="https://httpd.apache.org/docs/2.4/upgrading.html" rel="nofollow noopener noreferrer"&gt;upgrading document&lt;/a&gt; as well as &lt;a href="https://github.com/phanan/htaccess/issues/2" rel="noopener noreferrer"&gt;this issue&lt;/a&gt;.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Credits&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;What we are doing here is mostly collecting useful snippets from all over the interwebs (for example, a good chunk is from &lt;a href="https://github.com/h5bp/server-configs-apache" rel="noopener noreferrer"&gt;Apache Server Configs&lt;/a&gt;) into one place. While we’ve been trying to credit where due…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/phanan/htaccess" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  🎤 CFP
&lt;/h2&gt;

&lt;p&gt;Si vous ne voulez rien louper des conférences tech et des CFP, suivez ce repo géré par &lt;a class="mentioned-user" href="https://dev.to/aurelievache"&gt;@aurelievache&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/scraly" rel="noopener noreferrer"&gt;
        scraly
      &lt;/a&gt; / &lt;a href="https://github.com/scraly/developers-conferences-agenda" rel="noopener noreferrer"&gt;
        developers-conferences-agenda
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      developers.events is a community-driven platform listing developer/tech conferences and Calls for Papers (CFPs) worldwide with a list, a calendar and a map view. It helps organizers, speakers, sponsors &amp;amp; attendees.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Developers Conferences &amp;amp; CFP Agenda/List/Map&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;--&amp;gt; &lt;a href="https://developers.events" rel="nofollow noopener noreferrer"&gt;developers.events&lt;/a&gt; &amp;lt;--&lt;/p&gt;
&lt;p&gt;This repository lists a maximum of conference dates to help conference organizers.&lt;/p&gt;
&lt;p&gt;As conference organizers, one of the first question we ask ourselves is what will be the ideal date for our event.&lt;/p&gt;
&lt;p&gt;One piece of data to take into account is the date of other events, but how do you find it?&lt;/p&gt;
&lt;p&gt;As a developer and a technical lover, it is handy to have a calendar to look at to know when will be the next event.&lt;/p&gt;
&lt;p&gt;I propose this GitHub repository to list all the conferences for developers in France, Europe and the world.&lt;/p&gt;
&lt;p&gt;Do you want to contribute, add an event or your event? Perfect! You can follow the &lt;a href="https://github.com/scraly/developers-conferences-agendaCONTRIBUTING.md" rel="noopener noreferrer"&gt;CONTRIBUTING.md&lt;/a&gt; and just open a &lt;a href="https://github.com/scraly/developers-conferences-agenda/pulls" rel="noopener noreferrer"&gt;Pull Request (PR)&lt;/a&gt; to update the developers conferences agenda
If everybody contributes to this repo, it can help conference organizers but not only. Another goal…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/scraly/developers-conferences-agenda" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>api</category>
    </item>
    <item>
      <title>Back to Back #18 - Back-end news by SFEIR</title>
      <dc:creator>Alexandre Moevi</dc:creator>
      <pubDate>Wed, 30 Nov 2022 09:16:09 +0000</pubDate>
      <link>https://forem.com/sfeircode/back-to-back-18-back-end-news-by-sfeir-39gp</link>
      <guid>https://forem.com/sfeircode/back-to-back-18-back-end-news-by-sfeir-39gp</guid>
      <description>&lt;p&gt;&lt;em&gt;Comme chaque fin de mois, les experts de SFEIR publient la newsletter back-end. Retrouvez la sélection de contenu, les outils coup de cœur et les astuces.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  📰 Articles
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.cybertec-postgresql.com/en/why-are-my-postgresql-updates-getting-slower/"&gt;Why are my PostgreSQL updates getting slower ?&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Laurenz Albe nous parle de mises à jour dans une base de données. Son article part d'un exemple puis explique les raisons des opérations de plus en plus longues et termine sur les remèdes.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://medium.com/graalvm/graalvm-22-3-is-here-jdk-19-builds-jlink-support-new-monitoring-features-and-more-f6e2b2eeff95"&gt;GraalVM 22.3 is here: JDK 19 builds, jlink support, new monitoring features, and more!&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;En plus de la version 22.3 sortie à la fin du mois précédent, l'équipe GraalVM a annoncé qu'Oracle va contribuer à OpenJDK avec une partie du code. L'objectif est « l'élimination des obstacles à l'adoption par un écosystème plus large et à la participation au développement des technologies GraalVM ». Autre nouvelle importante, une nouvelle mascotte a été dévoilée 🐇&lt;/p&gt;

&lt;h3&gt;
  
  
  #RetourAuxSources : Le cache HTTP
&lt;/h3&gt;

&lt;p&gt;Bon ok, le cache http, sujet hautement pas du tout sexy… Et pourtant ! Hubert nous rappelle toutes les bases, toutes manières de gérer le cache, tout est très bien présenté, animé avec un petit wagon sur une ligne de métro c'est juste parfait ! Que vous ayez ou non de l'expérience avec le cache HTTP, prenez le temps de regarder son talk, vous allez forcément apprendre des trucs et ça vous trotte dans la tête quand vous en aurez besoin !&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/xtpaQ8_mmKM"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  🛠️ Outils
&lt;/h2&gt;

&lt;h3&gt;
  
  
  flastapi
&lt;/h3&gt;

&lt;p&gt;FastAPI ? Flask ? Pourquoi pas les deux 🤷 C'est ce que ce module propose. Voulant profiter de fonctionnalités disponibles dans FastAPI mais pas (encore ?) dans Flask, ce plugin allie le meilleur des deux mondes.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/maarten-dp"&gt;
        maarten-dp
      &lt;/a&gt; / &lt;a href="https://github.com/maarten-dp/flastapi"&gt;
        flastapi
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      FastAPI-like interface plugin for Flask
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h1&gt;
Table of contents&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/maarten-dp/flastapi#introduction"&gt;Introduction&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/maarten-dp/flastapi#quickstart"&gt;Quickstart&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/maarten-dp/flastapi#api-overview"&gt;API Overview&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/maarten-dp/flastapi#path-parameters"&gt;Path parameters&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/maarten-dp/flastapi#query-parameters"&gt;Query parameters&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/maarten-dp/flastapi#body-parameters"&gt;Body parameters&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/maarten-dp/flastapi#multi-body-parameters"&gt;Multi body parameters&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/maarten-dp/flastapi#query-dependency"&gt;Query dependency&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/maarten-dp/flastapi#context-dependency"&gt;Context dependency&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/maarten-dp/flastapi#testing-dependencies"&gt;Testing dependencies&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/maarten-dp/flastapi#overrides"&gt;Overrides&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/maarten-dp/flastapi#using-requests-as-test-client"&gt;Using requests as test client&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/maarten-dp/flastapi#roadmap"&gt;Roadmap&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/maarten-dp/flastapi#stuff-id-still-like-to-add"&gt;Stuff I'd still like to add&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/maarten-dp/flastapi#requesting-features"&gt;Requesting features&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;
Introduction&lt;/h1&gt;
&lt;p&gt;Flastapi is a small flask plugin to enable a Fastapi-like interface to build API endpoints using pydantic.&lt;/p&gt;
&lt;p&gt;Current features are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;path parameters using flask paths&lt;/li&gt;
&lt;li&gt;query parameters&lt;/li&gt;
&lt;li&gt;body parameters using pydantic&lt;/li&gt;
&lt;li&gt;depends (including context dependencies)&lt;/li&gt;
&lt;li&gt;dependency_overrides&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Fastapi did a great job at integrating pydantic, as a marshaller for API endpoints, in an intuitive way. With this library I wanted to expose these capabilities in flast as well, for those who haven't found the ability to transition to newer techs (Or those who have a hard time dealing with change ;) )&lt;/p&gt;
&lt;h1&gt;
Quickstart&lt;/h1&gt;
&lt;div class="highlight highlight-source-python notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-k"&gt;from&lt;/span&gt; &lt;span class="pl-s1"&gt;flask&lt;/span&gt; &lt;span class="pl-k"&gt;import&lt;/span&gt; &lt;span class="pl-v"&gt;Flask&lt;/span&gt;
&lt;span class="pl-k"&gt;from&lt;/span&gt; &lt;span class="pl-s1"&gt;flastapi&lt;/span&gt; &lt;span class="pl-k"&gt;import&lt;/span&gt; &lt;span class="pl-v"&gt;FlastAPI&lt;/span&gt;, &lt;span class="pl-v"&gt;Router&lt;/span&gt;
&lt;span class="pl-s1"&gt;app&lt;/span&gt; &lt;span class="pl-c1"&gt;=&lt;/span&gt; &lt;span class="pl-v"&gt;Flask&lt;/span&gt;(&lt;span class="pl-s1"&gt;__name__&lt;/span&gt;)
&lt;span class="pl-s1"&gt;flastapi&lt;/span&gt; &lt;span class="pl-c1"&gt;=&lt;/span&gt; &lt;span class="pl-v"&gt;FlastAPI&lt;/span&gt;(&lt;/pre&gt;…
&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/maarten-dp/flastapi"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  &lt;a href="https://javalin.io/"&gt;Javalin&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Javalin est à la fois une bibliothèque web Kotlin et une bibliothèque web Java, ce qui signifie qu'il est développée en mettant l'accent sur une grande interopérabilité entre les deux langages. Javalin n'a pas pour objectif d'être un framework web complet, mais plutôt une bibliothèque d'API REST légère. Ainsi, il peut être utilisé pour créer un backend RESTful ou juste pour exposer des ressources statiques.&lt;/p&gt;

&lt;h2&gt;
  
  
  💡 Trucs et astuces
&lt;/h2&gt;

&lt;p&gt;L'astuce de mois concerne Docker Compose. Ce billet de Maciej Walkowiak parle du flag &lt;code&gt;--wait&lt;/code&gt;, qui attend que les containers soient prêts avant de pouvoir les utiliser : &lt;a href="https://maciejwalkowiak.com/blog/docker-compose-waiting-containers-ready/"&gt;&lt;em&gt;Docker Compose - waiting until containers are ready&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>newsletter</category>
      <category>french</category>
      <category>backend</category>
      <category>sfeir</category>
    </item>
    <item>
      <title>Back to Back #17 - Back-end news by SFEIR</title>
      <dc:creator>Alexandre Moevi</dc:creator>
      <pubDate>Wed, 26 Oct 2022 07:40:01 +0000</pubDate>
      <link>https://forem.com/sfeircode/back-to-back-17-back-end-news-by-sfeir-2m9m</link>
      <guid>https://forem.com/sfeircode/back-to-back-17-back-end-news-by-sfeir-2m9m</guid>
      <description>&lt;p&gt;&lt;em&gt;Comme chaque fin de mois, les experts de SFEIR publient la newsletter back-end. Retrouvez la sélection de contenu, les outils coup de cœur et les astuces.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  📰 Articles
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blog.python.org/2022/10/python-3110-is-now-available.html"&gt;Python 3.11.0 is now available&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;La PSF a annoncé la sortie de la version 3.11 de Python. Ce billet de blog liste les nouveautés du langage (comme une meilleure localisation des erreurs dans les tracebacks ou les groupes d'exceptions) mais aussi un gain de performances notable par rapport à la 3.10.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.infoq.com/news/2022/10/quarkus-csrf-defense/"&gt;Quarkus Defends REST APIs against Attack&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;La version 2.13.0 de Quarkus est sortie avec l’ajout d’un filtre CSRF pour les serveurs RESTEasy Reactive. Un &lt;a href="https://quarkus.io/guides/security-csrf-prevention"&gt;guide&lt;/a&gt; est disponible pour les développeurs voulant activer ce mécanisme de défense.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://devblogs.microsoft.com/typescript/ten-years-of-typescript/"&gt;Ten Years of TypeScript&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;TypeScript a 10 ans ! L’anniversaire a eu lieu au tout début de ce mois. Pour cette occasion, Daniel Rosenwasser revient sur les premiers pas du langage et le scepticisme ambiant de l’époque.&lt;/p&gt;

&lt;h2&gt;
  
  
  🛠️ Outils
&lt;/h2&gt;

&lt;h3&gt;
  
  
  bat
&lt;/h3&gt;

&lt;p&gt;Avec Halloween, l’occasion est parfaite pour parler de bat 🦇 Écrit en Rust, ce clone de la commande &lt;code&gt;cat&lt;/code&gt; qui vient avec une coloration syntaxique pour un grand nombre de langages et une intégration de Git pour afficher les modifications dans les fichiers.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/sharkdp"&gt;
        sharkdp
      &lt;/a&gt; / &lt;a href="https://github.com/sharkdp/bat"&gt;
        bat
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A cat(1) clone with wings.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;
  &lt;a rel="noopener noreferrer" href="https://github.com/sharkdp/batdoc/logo-header.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--j784zywC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/sharkdp/batdoc/logo-header.svg" alt="bat - a cat clone with wings"&gt;&lt;/a&gt;&lt;br&gt;
  &lt;a href="https://github.com/sharkdp/bat/actions?query=workflow%3ACICD"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SDm4f-Rr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/sharkdp/bat/workflows/CICD/badge.svg" alt="Build Status"&gt;&lt;/a&gt;
  &lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/4718d2a1e7a54c33732310613b2e2e8d8ef70c25e3e27406d1df79466b6b603d/68747470733a2f2f696d672e736869656c64732e696f2f6372617465732f6c2f6261742e737667"&gt;&lt;img src="https://camo.githubusercontent.com/4718d2a1e7a54c33732310613b2e2e8d8ef70c25e3e27406d1df79466b6b603d/68747470733a2f2f696d672e736869656c64732e696f2f6372617465732f6c2f6261742e737667" alt="license"&gt;&lt;/a&gt;
  &lt;a href="https://crates.io/crates/bat" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/295b01f4d06e6db8b2fd1578ee2827e4f953fe7b63578b3a9c810d8cb0d3abcb/68747470733a2f2f696d672e736869656c64732e696f2f6372617465732f762f6261742e7376673f636f6c6f72423d333139653863" alt="Version info"&gt;&lt;/a&gt;&lt;br&gt;
  A &lt;i&gt;cat(1)&lt;/i&gt; clone with syntax highlighting and Git integration
&lt;/p&gt;

&lt;p&gt;
  &lt;a href="https://github.com/sharkdp/bat#syntax-highlighting"&gt;Key Features&lt;/a&gt; •
  &lt;a href="https://github.com/sharkdp/bat#how-to-use"&gt;How To Use&lt;/a&gt; •
  &lt;a href="https://github.com/sharkdp/bat#installation"&gt;Installation&lt;/a&gt; •
  &lt;a href="https://github.com/sharkdp/bat#customization"&gt;Customization&lt;/a&gt; •
  &lt;a href="https://github.com/sharkdp/bat#project-goals-and-alternatives"&gt;Project goals, alternatives&lt;/a&gt;&lt;br&gt;
  [English]
  [&lt;a href="https://github.com/sharkdp/batdoc/README-zh.md"&gt;中文&lt;/a&gt;]
  [&lt;a href="https://github.com/sharkdp/batdoc/README-ja.md"&gt;日本語&lt;/a&gt;]
  [&lt;a href="https://github.com/sharkdp/batdoc/README-ko.md"&gt;한국어&lt;/a&gt;]
  [&lt;a href="https://github.com/sharkdp/batdoc/README-ru.md"&gt;Русский&lt;/a&gt;]
&lt;/p&gt;

&lt;h3&gt;
Sponsors&lt;/h3&gt;
&lt;p&gt;A special &lt;em&gt;thank you&lt;/em&gt; goes to our biggest &lt;a href="https://github.com/sharkdp/batdoc/sponsors.md"&gt;sponsors&lt;/a&gt;:&lt;br&gt;
&lt;a href="https://workos.com/?utm_campaign=github_repo&amp;amp;utm_medium=referral&amp;amp;utm_content=bat&amp;amp;utm_source=github" rel="nofollow"&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qdPaaolU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/sharkdp/batdoc/sponsors/workos-logo-white-bg.svg" width="200" alt="WorkOS"&gt;
&lt;br&gt;
&lt;strong&gt;Your app, enterprise-ready.&lt;/strong&gt;
&lt;br&gt;
Start selling to enterprise customers with just a few lines of code.
&lt;br&gt;
&lt;sup&gt;Add Single Sign-On (and more) in minutes instead of months.&lt;/sup&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
Syntax highlighting&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;bat&lt;/code&gt; supports syntax highlighting for a large number of programming and markup
languages:&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/7b7c397acc5b91b4c4cf7756015185fe3c5f700f70d256a212de51294a0cf673/68747470733a2f2f696d6775722e636f6d2f724773646e44652e706e67"&gt;&lt;img src="https://camo.githubusercontent.com/7b7c397acc5b91b4c4cf7756015185fe3c5f700f70d256a212de51294a0cf673/68747470733a2f2f696d6775722e636f6d2f724773646e44652e706e67" alt="Syntax highlighting example"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
Git integration&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;bat&lt;/code&gt; communicates with &lt;code&gt;git&lt;/code&gt; to show modifications with respect to the index
(see left side bar):&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/c436c206f2c86605ab2f9fb632dd485afc05fccbf14af472770b0c59d876c9cc/68747470733a2f2f692e696d6775722e636f6d2f326c53573452452e706e67"&gt;&lt;img src="https://camo.githubusercontent.com/c436c206f2c86605ab2f9fb632dd485afc05fccbf14af472770b0c59d876c9cc/68747470733a2f2f692e696d6775722e636f6d2f326c53573452452e706e67" alt="Git integration example"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
Show non-printable characters&lt;/h3&gt;
&lt;p&gt;You can use the &lt;code&gt;-A&lt;/code&gt;/&lt;code&gt;--show-all&lt;/code&gt; option to show and highlight non-printable
characters:&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/643244c46834769e0ea2802e15518c49e0c7cf10aa82d00c7c69a406f2aa161d/68747470733a2f2f692e696d6775722e636f6d2f576e64477039482e706e67"&gt;&lt;img src="https://camo.githubusercontent.com/643244c46834769e0ea2802e15518c49e0c7cf10aa82d00c7c69a406f2aa161d/68747470733a2f2f692e696d6775722e636f6d2f576e64477039482e706e67" alt="Non-printable character example"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
Automatic paging&lt;/h3&gt;
&lt;p&gt;By default, &lt;code&gt;bat&lt;/code&gt; pipes its own output to a pager (e.g. &lt;code&gt;less&lt;/code&gt;) if the output is too large for one screen
If you would rather …&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/sharkdp/bat"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;h3&gt;
  
  
  Key Promoter X
&lt;/h3&gt;

&lt;p&gt;Pour ceux qui utilisent Intellij, le plugin Key Promoter X affiche le raccourci clavier pour l'action que vous venez de faire avec la souris. Pour les boutons qui n'ont pas de raccourci, le plugin vous propose d'en créer un. Ainsi, Key Promoter vous aide à prendre le réflexe d’utiliser le clavier au lieu de la souris.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/halirutan"&gt;
        halirutan
      &lt;/a&gt; / &lt;a href="https://github.com/halirutan/IntelliJ-Key-Promoter-X"&gt;
        IntelliJ-Key-Promoter-X
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Modern IntelliJ plugin to learn shortcuts for buttons
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/8be76834105d069a1e4ea7ea3dde58d5cbadc416bd1687a2620033c39a1b564b/68747470733a2f2f696d672e736869656c64732e696f2f6a6574627261696e732f706c7567696e2f642f393739322d6b65792d70726f6d6f7465722d782e737667"&gt;&lt;img src="https://camo.githubusercontent.com/8be76834105d069a1e4ea7ea3dde58d5cbadc416bd1687a2620033c39a1b564b/68747470733a2f2f696d672e736869656c64732e696f2f6a6574627261696e732f706c7567696e2f642f393739322d6b65792d70726f6d6f7465722d782e737667" alt="Downloads Badge"&gt;&lt;/a&gt;
&lt;a href="https://github.com/halirutan/IntelliJ-Key-Promoter-X/actions/workflows/build.yml"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TpMKqRu0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/halirutan/IntelliJ-Key-Promoter-X/actions/workflows/build.yml/badge.svg" alt="Build Status"&gt;&lt;/a&gt;
&lt;a href="https://plugins.jetbrains.com/slack" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/dc6b85dbaa02b5da5bce3149a0dddb4f880635d51e9f473ab413d156b59035e4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f536c61636b2d253233706c7567696e2d2d6b657970726f6d6f7465722d2d782d626c7565" alt="Slack"&gt;&lt;/a&gt;
&lt;a href="https://github.com/sponsors/halirutan"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BkQouOkG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/halirutan/IntelliJ-Key-Promoter-Xdoc/img/kpxBanner.png" alt="Banner"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'm grateful this project is currently sponsored by&lt;/p&gt;
&lt;p&gt;&lt;a href="https://sponsorlink.codestream.com/?utm_source=jbmarket&amp;amp;utm_campaign=keypromoterx&amp;amp;utm_medium=banner" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/ae6368253e49d3ef647ef32d7384b2259e2ec5321707bdd9372b2f2a2b132a74/68747470733a2f2f616c742d696d616765732e636f646573747265616d2e636f6d2f636f646573747265616d5f6c6f676f5f6b657970726f6d6f746572782e706e67" alt="CodeStream"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;and receives $4/month from
&lt;a href="https://github.com/dbabiak"&gt;Daniel Babiak&lt;/a&gt;
&lt;a href="https://github.com/sthagen"&gt;Stefan Hagen&lt;/a&gt;
&lt;a href="https://github.com/jlash13"&gt;jlash13&lt;/a&gt;
&lt;a href="https://github.com/mccorkle"&gt;Mark McCorkle&lt;/a&gt;,
&lt;a href="https://github.com/m2ger"&gt;Indrek Toom&lt;/a&gt;,
&lt;a href="https://github.com/opentraintimes"&gt;OpenTrainTimes Ltd.&lt;/a&gt;,
&lt;a href="https://github.com/incubyteco"&gt;incubyteco&lt;/a&gt;,
$2/month from
&lt;a href="https://github.com/macalac"&gt;Mac Adamarczuk&lt;/a&gt;,
&lt;a href="https://github.com/franklinharper"&gt;Frank Harper&lt;/a&gt;,
&lt;a href="https://github.com/chriswk"&gt;Christopher Kolstad&lt;/a&gt;,
&lt;a href="https://github.com/sudhirj"&gt;Sudhir Jonathan&lt;/a&gt;,
&lt;a href="https://github.com/hbaxamoosa"&gt;Hasnain Baxamoosa&lt;/a&gt;,
&lt;a href="https://github.com/datenbrille"&gt;Karl Spies&lt;/a&gt;,
&lt;a href="https://github.com/ryanwilliamquinn"&gt;Ryan Quinn&lt;/a&gt;,
&lt;a href="https://github.com/cristianradulescu"&gt;Cristian Radulescu&lt;/a&gt;,
&lt;a href="https://github.com/brianlevis"&gt;Brian Levis&lt;/a&gt;,
&lt;a href="https://github.com/IgnatBeresnev"&gt;Ignat Beresnev&lt;/a&gt;,
&lt;a href="https://github.com/PCoetzeeDev"&gt;PCoetzeeDev&lt;/a&gt;,
and $1/month from &lt;a href="https://github.com/sponsors/halirutan"&gt;24 other people&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/sponsors/halirutan"&gt;Become a GitHub Sponsor and support the Key Promoter X development&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Key Promoter X is a plugin for IntelliJ-based products like IDEA, Android Studio, or CLion, and it helps to learn
essential keyboard shortcuts from mouse actions while you are working
When you use the mouse on a button inside the IDE, the Key Promoter X shows you the keyboard shortcut that you should
have used instead. This provides an easy way to learn how
to replace…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/halirutan/IntelliJ-Key-Promoter-X"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  💡 Trucs et astuces
&lt;/h2&gt;

&lt;p&gt;Ce guide d'Anthony &lt;a href="https://k49.fr.nf/package-npm-universel-ou-comment-construire-un-package-quon-pourra-utiliser-partout/"&gt;&lt;em&gt;Package NPM universel&lt;/em&gt;&lt;/a&gt; répond à une problématique du développement en JS : créer un module qui pourra être utilisé partout, aussi bien sur un serveur que dans un navigateur Internet Explorer.&lt;/p&gt;

</description>
      <category>newsletter</category>
      <category>french</category>
      <category>backend</category>
      <category>sfeir</category>
    </item>
    <item>
      <title>Back to Back #16 - Back-end news by SFEIR</title>
      <dc:creator>Alexandre Moevi</dc:creator>
      <pubDate>Wed, 28 Sep 2022 09:46:02 +0000</pubDate>
      <link>https://forem.com/sfeircode/back-to-back-16-back-end-news-by-sfeir-4k2l</link>
      <guid>https://forem.com/sfeircode/back-to-back-16-back-end-news-by-sfeir-4k2l</guid>
      <description>&lt;p&gt;&lt;em&gt;Comme chaque fin de mois, les experts de SFEIR publient la newsletter back-end. Retrouvez la sélection de contenu, les outils coup de cœur et les astuces.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  📰 Articles
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://k49.fr.nf/java-19-le-point-sur-les-nouveautes/"&gt;Java 19 : le point sur les nouveautés&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;La version 19 du kit de développement Java est sortie le 20 septembre 2022, comme prévue. Le Sfeirien Anthony nous fait les tour des nouveautés. Entre autres, le support de l'architecture RISC-V et l'amélioration du pattern matching.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://stephantromer.dev/blog/how-to-handle-poison-pills-in-kafka"&gt;How to handle poison pills in Spring Kafka?&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Tout se passe bien dans vos flux de données. Sauf qu'un jour, un message au format inattendu arrive dans Kafka. Cet article explique ce que sont les &lt;em&gt;poison pills&lt;/em&gt;, comment continuer à consommer des topics malgré ces erreurs et comment récupérer ces messages défectueux dans des &lt;em&gt;dead letter topics&lt;/em&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Detecting Breaking API Changes: Better API Management Through Automation
&lt;/h3&gt;

&lt;p&gt;Pour améliorer l'API sans perturber les consommateurs existants, il est important de savoir si une modification peut causer un breaking change. Dans cette vidéo, on nous parle de différents outils de comparaison pour les spécifications OpenAPI et de la manière dont ils peuvent s'intégrer dans le management des APIs. &lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/nhiaJQCyXdw"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  🛠️ Outils
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://devtoys.app/"&gt;DevToys&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;DevToys se présente comme le couteau suisse du développeur. Disponible uniquement sous Windows, le logiciel n'a pas besoin d'une connexion Internet pour fonctionner et possède une trentaine d'outils dont un testeur de regex, une convertisseur d'images ou un parseur de crons. DevToys peut détecter automatiquement quel outil est le plus pertinent grâce à la &lt;em&gt;Smart Detection&lt;/em&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  simdjson
&lt;/h3&gt;

&lt;p&gt;Les serveurs du monde entier passent beaucoup de temps à parser du JSON. La bibliothèque simdjson utilise des &lt;a href="https://fr.wikipedia.org/wiki/Single_instruction_multiple_data"&gt;instructions SIMD&lt;/a&gt; et des algorithmes microparallèles pour battre des records de vitesse. Une douzaine de ports et de bindings ont été publiés en Python, R, Ruby, PHP, C#, Rust, Swift, Go, etc.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--566lAguM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/simdjson"&gt;
        simdjson
      &lt;/a&gt; / &lt;a href="https://github.com/simdjson/simdjson"&gt;
        simdjson
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Parsing gigabytes of JSON per second 
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/simdjson/simdjson/workflows/Ubuntu%2018.04%20CI%20(GCC%207)/badge.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iCTaiTnZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/simdjson/simdjson/workflows/Ubuntu%252018.04%2520CI%2520%28GCC%25207%29/badge.svg" alt="Ubuntu 18.04 CI"&gt;&lt;/a&gt;
&lt;a href="https://simdjson.org/plots.html" rel="nofollow"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pLb-q3_Z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/simdjson/simdjson/workflows/Ubuntu%252020.04%2520CI%2520%28GCC%25209%29/badge.svg" alt="Ubuntu 20.04 CI"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://github.com/simdjson/simdjson/workflows/VS16-CI/badge.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7x8GhdfG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/simdjson/simdjson/workflows/VS16-CI/badge.svg" alt="VS16-CI"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://github.com/simdjson/simdjson/workflows/MinGW64-CI/badge.svg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EyWo_yW---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/simdjson/simdjson/workflows/MinGW64-CI/badge.svg" alt="MinGW64-CI"&gt;&lt;/a&gt;
&lt;a href="https://github.com/simdjson/simdjsonLICENSE"&gt;&lt;img src="https://camo.githubusercontent.com/b5d57b953702cf4ad393aca3e0d1e66a267698f99f3b304b482cbd1d4ed3fd51/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d417061636865253230322d626c75652e737667" alt=""&gt;&lt;/a&gt;  &lt;a href="https://simdjson.org/api/2.0.0/index.html" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/2e77aac61b0e0a5c3673af4d646617c901b921cab78d4ba6b3a7bf4755b6cbed/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f646f63732d646f787967656e2d677265656e2e737667" alt="Doxygen Documentation"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
simdjson : Parsing gigabytes of JSON per second&lt;/h1&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/simdjson/simdjsonimages/logo.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8jCbkETR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/simdjson/simdjsonimages/logo.png" width="10%"&gt;&lt;/a&gt;&lt;/p&gt;
JSON is everywhere on the Internet. Servers spend a *lot* of time parsing it. We need a fresh
approach. The simdjson library uses commonly available SIMD instructions and microparallel algorithms
to parse JSON 4x  faster than RapidJSON and 25x faster than JSON for Modern C++
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fast:&lt;/strong&gt; Over 4x faster than commonly used production-grade JSON parsers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Record Breaking Features:&lt;/strong&gt; Minify JSON  at 6 GB/s, validate UTF-8  at 13 GB/s,  NDJSON at 3.5 GB/s.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Easy:&lt;/strong&gt; First-class, easy to use and carefully documented APIs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Strict:&lt;/strong&gt; Full JSON and UTF-8 validation, lossless parsing. Performance with no compromises.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automatic:&lt;/strong&gt; Selects a CPU-tailored parser at runtime. No configuration needed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reliable:&lt;/strong&gt; From memory allocation to error handling, simdjson's design avoids surprises.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Peer Reviewed:&lt;/strong&gt; Our research appears in venues like VLDB Journal, Software: Practice and Experience.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This library is part of the &lt;a href="https://awesomecpp.com" rel="nofollow"&gt;Awesome Modern C++&lt;/a&gt; list.&lt;/p&gt;
&lt;h2&gt;
Table of Contents&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/simdjson/simdjson#quick-start"&gt;Quick&lt;/a&gt;…&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/simdjson/simdjson"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  💡 Trucs et astuces
&lt;/h2&gt;

&lt;p&gt;Terminons avec ce guide &lt;a href="https://tech.davis-hansson.com/p/make/"&gt;&lt;em&gt;Your Makefiles are wrong&lt;/em&gt;&lt;/a&gt; qui contient différents conseils afin d'améliorer vos Makefile.&lt;/p&gt;

</description>
      <category>newsletter</category>
      <category>french</category>
      <category>backend</category>
      <category>sfeir</category>
    </item>
    <item>
      <title>Back to Back #15 - Back-end news by SFEIR</title>
      <dc:creator>Alexandre Moevi</dc:creator>
      <pubDate>Wed, 31 Aug 2022 07:14:16 +0000</pubDate>
      <link>https://forem.com/sfeircode/back-to-back-15-back-end-news-by-sfeir-4epf</link>
      <guid>https://forem.com/sfeircode/back-to-back-15-back-end-news-by-sfeir-4epf</guid>
      <description>&lt;p&gt;La rentrée est souvent l’occasion de partir sur un nouveau cycle et de faire bouger les choses. Après avoir rechargé les batteries cet été, la newsletter revient avec une nouvelle formule ⚡&lt;/p&gt;

&lt;p&gt;Au menu, vous retrouverez désormais les outils coup de cœur des Sfeiriens et leurs meilleurs trucs et astuces en plus de la sélection d'articles.&lt;/p&gt;




&lt;h2&gt;
  
  
  📰 Articles
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://deno.com/blog/changes"&gt;Big Changes Ahead for Deno&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Après avoir annoncé une levée de fonds de 21 millions de dollars en juin, Deno annonce sur son blog de grands changements à venir : une meilleure developer experience, une forte compatibilité avec npm et l’arrivée du serveur web Javascript le plus rapide jamais développé.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://nordicapis.com/what-are-over-fetching-and-under-fetching/"&gt;What Are Over-Fetching and Under-Fetching?&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Deux des problèmes récurrents avec les APIs sont l’over et l’under-fetching. Cet article de Nordic APIs revient sur ces notions et propose des solutions simples pour résoudre ce problème courant.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://aaronfrancis.com/2022/mysql-count-star-slow"&gt;Is &lt;code&gt;COUNT(*)&lt;/code&gt; slow in MySQL?&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Réponse courte: Non. Réponse plus longue : L’opération &lt;code&gt;COUNT(*)&lt;/code&gt; est optimisée de telle sorte à calculer le résultat à partir du plus petit index secondaire. Réponse complète : l’article 😁&lt;/p&gt;

&lt;h2&gt;
  
  
  🛠️ Outils
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://jsonvisio.com/"&gt;JSON Visio&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;JSON Visio permet de visualiser des graphes à partir d’objets JSON. On peut enregistrer ces graphes sous forme d’images, on peut également lancer des recherches sur les nœuds. L’outil est disponible sur le web mais aussi en local, en exécutant l’éditeur via Docker.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://k9scli.io/"&gt;K9s&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;K9s est une interface de ligne de commande pour interagir avec des clusters Kubernetes. L'objectif de ce projet est de faciliter la navigation, l'observation et la gestion des applications déployées. &lt;/p&gt;

&lt;h2&gt;
  
  
  💡Trucs et astuces
&lt;/h2&gt;

&lt;p&gt;Voici un script shell qui permet de mettre à jour la branche principale de plusieurs projets git.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;superpull&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;for &lt;/span&gt;&lt;span class="nb"&gt;dir &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt; ~/&lt;span class="k"&gt;*&lt;/span&gt;
    &lt;span class="k"&gt;do
        if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$dir&lt;/span&gt;&lt;span class="s2"&gt;/.git"&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="k"&gt;then
            &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$dir&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            git &lt;span class="nt"&gt;-C&lt;/span&gt; &lt;span class="nv"&gt;$dir&lt;/span&gt; checkout &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;git &lt;span class="nt"&gt;-C&lt;/span&gt; &lt;span class="nv"&gt;$dir&lt;/span&gt; branch &lt;span class="nt"&gt;-rl&lt;/span&gt; &lt;span class="s1"&gt;'*/HEAD'&lt;/span&gt; | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-o&lt;/span&gt; &lt;span class="s1"&gt;'[^/]\+$'&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="nt"&gt;-f&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            git &lt;span class="nt"&gt;-C&lt;/span&gt; &lt;span class="nv"&gt;$dir&lt;/span&gt; pull&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="k"&gt;fi
    done&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Le script va regarder dans les dossiers situés dans le répertoire HOME. Pour chaque répertoire, s'il contient un dossier &lt;code&gt;.git&lt;/code&gt; alors un &lt;code&gt;git pull&lt;/code&gt; est effectué sur la branche principale (qui est très souvent &lt;code&gt;master&lt;/code&gt; ou &lt;code&gt;main&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;Vous voyez des évolutions à ce script ? N'hésitez pas à poster vos pistes d'améliorations en commentaire 👇&lt;/p&gt;

</description>
      <category>newsletter</category>
      <category>french</category>
      <category>backend</category>
      <category>sfeir</category>
    </item>
    <item>
      <title>Back to Back #14 - Back-end news by SFEIR</title>
      <dc:creator>Alexandre Moevi</dc:creator>
      <pubDate>Tue, 28 Jun 2022 17:29:57 +0000</pubDate>
      <link>https://forem.com/sfeircode/back-to-back-14-back-end-news-by-sfeir-5h7m</link>
      <guid>https://forem.com/sfeircode/back-to-back-14-back-end-news-by-sfeir-5h7m</guid>
      <description>&lt;p&gt;&lt;em&gt;Comme chaque fin de mois, les experts de SFEIR publient la newsletter back-end. Retrouvez la sélection d'articles sur les microservices, les APIs, les bases de données…&lt;/em&gt; 🕑&lt;/p&gt;




&lt;h3&gt;
  
  
  🔒 &lt;a href="https://hakibenita.com/django-concurrency"&gt;Handling Concurrency Without Locks&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Un des problèmes récurrents lors de développement d’applications est la programmation concurrente. Ajouter des verrous peut résoudre des problèmes mais on peut vite se retrouver avec une baisse des performances ou pire, des deadlocks. En prenant des cas d’usage en Django, &lt;a href="https://twitter.com/be_haki"&gt;Haki Benita&lt;/a&gt; propose dans cet article des astuces pour utiliser un minimum de verrous.&lt;/p&gt;

&lt;h3&gt;
  
  
  📈 &lt;a href="https://blog.postman.com/2022-api-platform-landscape-trends-and-challenges"&gt;The 2022 API Platform Landscape: Trends and Challenges&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://twitter.com/a85"&gt;Abhinav Asthana&lt;/a&gt;, CEO et fondateur de Postman, a publié sur son blog les dernières tendances et les derniers défis ainsi qu'une mise à jour du paysage des plateformes API. L'approche API-first a le vent en poupe !&lt;/p&gt;

&lt;h3&gt;
  
  
  💭 &lt;a href="https://thenewstack.io/best-practices-for-naming-variables-what-the-research-shows/"&gt;Best Practices for Naming Variables: What the Research Shows&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;La linguistique à l’aide de l’informatique. &lt;a href="https://twitter.com/felienne"&gt;Felienne Hermans&lt;/a&gt; a conçu un guide qui, selon elle, "nous aidera à mieux nommer les choses". À l’instar des code smells, les linguistic smells sont des mauvaises pratiques qui peuvent conduire à de mauvaises surprises et qu’il faut éviter. Selon des travaux scientifiques, ces smells augmentent la charge cognitive des développeurs.&lt;/p&gt;

&lt;h3&gt;
  
  
  📁 &lt;a href="https://hackernoon.com/why-env-variables-are-no-good-anymore/"&gt;Why ENV Variables are no Good Anymore&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Il est fortement probable que vous ayez des fichiers .env actuellement sur votre ordinateur. C’est une solution simple et rapide mais qui possède des défauts, notamment en termes de sécurité. &lt;a href="https://twitter.com/pragati_verma18"&gt;Pragati Verma&lt;/a&gt; pense qu’il est l’heure de passer à une nouvelle génération de stockage de variables d’environnement.&lt;/p&gt;

&lt;h3&gt;
  
  
  ☸️ &lt;a href="https://inlets.dev/blog/2022/06/24/fixing-kubectl-port-forward.html"&gt;Fixing the Developer Experience of Kubernetes Port Forwarding&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Finissons cette revue de presse avec &lt;a href="https://twitter.com/alexellisuk"&gt;Alex Ellis&lt;/a&gt; qui nous propose une alternative à la commande &lt;code&gt;kubectl port-forward&lt;/code&gt;. Le port-forwarding est très pratique mais plusieurs inconvénients peuvent gâcher la &lt;em&gt;developer experience&lt;/em&gt; : devoir lancer la commande pour chaque service, retenir quels ports sont déjà pris, devoir relancer la commande en cas de déconnexion…&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Les Sfeiriens se mettent en pause cet été. On se retrouve fin août pour préparer la rentrée !&lt;/em&gt;&lt;/p&gt;

</description>
      <category>newsletter</category>
      <category>french</category>
      <category>backend</category>
    </item>
    <item>
      <title>Back to Back #13 - Back-end news by SFEIR</title>
      <dc:creator>Alexandre Moevi</dc:creator>
      <pubDate>Wed, 25 May 2022 15:27:34 +0000</pubDate>
      <link>https://forem.com/sfeircode/back-to-back-13-back-end-news-by-sfeir-1hbp</link>
      <guid>https://forem.com/sfeircode/back-to-back-13-back-end-news-by-sfeir-1hbp</guid>
      <description>&lt;p&gt;&lt;em&gt;Comme chaque dernier mercredi du mois, les experts de SFEIR publient la newsletter back-end. Retrouvez la sélection d'articles sur les microservices, les APIs, les bases de données…&lt;/em&gt; 🕑&lt;/p&gt;




&lt;h3&gt;
  
  
  🧵 &lt;a href="https://doordash.engineering/2021/11/09/the-beginners-guide-to-kotlin-coroutine-internals/"&gt;The Beginner’s Guide to Kotlin Coroutine Internals&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Cet article est un guide sur les coroutines. Après une présentation du principe des coroutines et de l'ordonnancement, on plonge en profondeur dans la bibliothèque Kotlin jusqu'au bytecode.&lt;/p&gt;

&lt;h3&gt;
  
  
  🆕 &lt;a href="https://betterdatascience.com/python-311-whats-new/"&gt;Top 3 Radical New Features in Python 3.11&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;La version 3.11 de Python n'est pas encore sortie mais nous connaissances déjà les nouveautés grâce aux release candidates. &lt;a href="https://betterdatascience.com/about/"&gt;Dario Radečić&lt;/a&gt; revient sur trois de ces changements.&lt;/p&gt;

&lt;h3&gt;
  
  
  ☕ &lt;a href="https://www.infoq.com/news/2022/05/java-news-roundup-may16-2022/"&gt;Java News Roundup&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Ce bulletin résume les dernières actualités dans l’écosystème Java. Notamment, on y retrouve la sortie de la version 2.7.0 de Spring Boot, des informations sur la JDK 19 en early access ou les hotfixes pour Tomcat.&lt;/p&gt;

&lt;h3&gt;
  
  
  🅱️ &lt;a href="https://hackernoon.com/building-a-wordle-game-using-test-driven-development-in-25-minutes"&gt;Building a Wordle Game Using Test-Driven Development in 25 Minutes&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Pour finir, &lt;a href="https://twitter.com/mcsee1"&gt;Maximiliano Contieri&lt;/a&gt;  nous montre comment l’application du TDD peut aider à développer pas à pas la mécanique d’un jeu comme Wordle. Les cas et les tests s’enchaînent jusqu’à aboutir à une solution valide.&lt;/p&gt;




&lt;h3&gt;
  
  
  🎟️ CFP et événements
&lt;/h3&gt;

&lt;p&gt;Comme chaque mois, retrouvez les &lt;em&gt;calls for papers&lt;/em&gt; ouverts ! C’est le moment de proposer vos talks pour :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://conference-hall.io/public/event/wGVYkl21UFxeiuakhKfu"&gt;Cloud Nord&lt;/a&gt;, CFP ouvert jusqu'au 31/05 &lt;/li&gt;
&lt;li&gt;
&lt;a href="https://conference-hall.io/public/event/CfucIjaXxrZThJE0POR3"&gt;DevFest Nantes&lt;/a&gt;, CFP ouvert jusqu'au 19/06 &lt;/li&gt;
&lt;li&gt;
&lt;a href="https://conference-hall.io/public/event/wgaja45IBdGT4sw4CXDB"&gt;DevFest Strasbourg&lt;/a&gt;, CFP ouvert jusqu'au 30/06&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://conference-hall.io/public/event/Ag6h1yHTsrdzHsPni5o9"&gt;JUG Summer Camp&lt;/a&gt;, CFP ouvert jusqu'au 01/07 &lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;On se retrouve le mois prochain pour partager de nouveau les pépites du back-end.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>newsletter</category>
      <category>french</category>
      <category>cfp</category>
      <category>backend</category>
    </item>
    <item>
      <title>Back to Back #12 - Back-end news by SFEIR</title>
      <dc:creator>Alexandre Moevi</dc:creator>
      <pubDate>Tue, 26 Apr 2022 18:16:13 +0000</pubDate>
      <link>https://forem.com/sfeircode/back-to-back-12-back-end-news-by-sfeir-1kji</link>
      <guid>https://forem.com/sfeircode/back-to-back-12-back-end-news-by-sfeir-1kji</guid>
      <description>&lt;p&gt;&lt;em&gt;C'est l'heure de retrouver le meilleur du back-end, la sélection aux petits oignons par les experts de SFEIR.&lt;/em&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  ✨ &lt;a href="https://dzone.com/articles/types-may-finally-be-coming-to-javascript"&gt;Types May Finally Be Coming to JavaScript&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Jusqu’à présent, Javascript a toujours été un langage non typé, mais une proposition a récemment été faite pour ajouter la possibilité de typer nativement en Javascript. Cet article vous décrit ce que cela pourrait apporter au langage par la suite.&lt;/p&gt;

&lt;h3&gt;
  
  
  📈 &lt;a href="https://nordicapis.com/5-api-trends-to-look-forward-to-in-2022/"&gt;5 API Trends to Look Forward to in 2022&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Le domaine des API est en constante évolution. Les API sont utilisées de manière nouvelle et passionnante en permanence, ce qui signifie qu'il y a toujours des tendances émergentes à surveiller. Voici cinq des principales tendances en matière d'API à surveiller en 2022 !&lt;/p&gt;

&lt;h3&gt;
  
  
  👃 &lt;a href="https://caseysoftware.com/blog/api-design-smells"&gt;API Design Smells&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Dans cet article, Keith Casey nous partage ses 20 ans d'expérience dans la conception d'API et nous explique comment reconnaître certains anti-patterns qui à terme rendent compliquée la maintenance de nos API.&lt;/p&gt;

&lt;h3&gt;
  
  
  🌳 &lt;a href="https://www.infoq.com/news/2022/04/climate-change-software-engineer/"&gt;How Software Affects Climate Change, and What Software Engineers Can Do about It&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Le secteur numérique a un impact non négligeable sur l’environnement. Cet article met en avant l’impact des datacenters et ce que les ingénieur.e.s peuvent faire lorsqu’ils conçoivent leurs logiciels pour diminuer leur consommation en énergie.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Si ce sujet vous intéresse, SFEIR organise un événement en ligne le 12 mai autour du Green IT. Inscrivez-vous à cette adresse&lt;/em&gt; 👉 &lt;strong&gt;&lt;a href="https://www.sfeir.com/fr/green-it-responsabilite-et-sobriete-numerique/"&gt;https://www.sfeir.com/fr/green-it-responsabilite-et-sobriete-numerique/&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎟️ CFP et événements
&lt;/h3&gt;

&lt;p&gt;Plusieurs évènements tech ont annoncé leur retour en 2022 et leurs &lt;em&gt;calls for papers&lt;/em&gt; sont ouverts ! C’est le moment de proposer vos talks pour :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://conference-hall.io/public/event/txK7ihjaAR4LtuJyYZCx"&gt;Cloud Ouest&lt;/a&gt;, CFP ouvert jusqu'au 30/04 &lt;/li&gt;
&lt;li&gt;
&lt;a href="https://conference-hall.io/public/event/8Wu147xoRDKQSjGcawoY"&gt;Volcamp&lt;/a&gt;, CFP ouvert jusqu'au 13/05 &lt;/li&gt;
&lt;li&gt;
&lt;a href="https://conference-hall.io/public/event/wGVYkl21UFxeiuakhKfu"&gt;Cloud Nord&lt;/a&gt;, CFP ouvert jusqu'au 31/05 &lt;/li&gt;
&lt;li&gt;
&lt;a href="https://conference-hall.io/public/event/CfucIjaXxrZThJE0POR3"&gt;DevFest Nantes&lt;/a&gt;, CFP ouvert jusqu'au 19/06 &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🏫 SFEIR Schools
&lt;/h3&gt;

&lt;p&gt;Profitez de formations gratuites dans nos agences SFEIR :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.sfeir.com/fr/sfeir-school-nantes-cypress-tdd-for-the-win/"&gt;Cypress : TDD for the win !&lt;/a&gt;, le 05/05 à Nantes&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.sfeir.com/fr/sfeir-school-lille-github-actions/"&gt;GitHub Actions&lt;/a&gt;, le 13/05 à Lille&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.sfeir.com/fr/sfeir-school-luxembourg-spring-security/"&gt;Spring security&lt;/a&gt;, le 24/05 à Luxembourg&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.sfeir.com/fr/sfeir-school-bordeaux-github-actions/"&gt;GitHub Actions&lt;/a&gt;, le 31/05 à Bordeaux&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;C’en est fini de la revue de presse ! On se revoit le mois prochain.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>newsletter</category>
      <category>french</category>
      <category>backend</category>
      <category>cfp</category>
    </item>
    <item>
      <title>Back to Back #11 - Back-end news by SFEIR</title>
      <dc:creator>Alexandre Moevi</dc:creator>
      <pubDate>Thu, 07 Apr 2022 19:50:50 +0000</pubDate>
      <link>https://forem.com/sfeircode/back-to-back-11-back-end-news-by-sfeir-ka9</link>
      <guid>https://forem.com/sfeircode/back-to-back-11-back-end-news-by-sfeir-ka9</guid>
      <description>&lt;p&gt;&lt;em&gt;Hello, world ! En plus de la sélection d'articles venant des Sfeiriens, retrouvez les dernières infos sur les évènements tech en France et la sélection d’article de notre Speakeuse invitée !&lt;/em&gt; &lt;/p&gt;




&lt;h3&gt;
  
  
  🔍️ Learning Go by examples
&lt;/h3&gt;

&lt;p&gt;Nous avons eu le privilège de recevoir &lt;a href="http://scraly.com/" rel="noopener noreferrer"&gt;Aurélie Vache&lt;/a&gt;, DevRel chez OVH Cloud, qui nous a parlé de Golang à travers son talk &lt;em&gt;Common tips &amp;amp; mistakes en Go - et comment les résoudre&lt;/em&gt;. On vous partage sa série d'articles sur ce langage. Une bonne base pour bien démarrer sur Go ! Merci encore Aurélie pour ton partage et ta bonne humeur 👍&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/aurelievache" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F9688%2Fg2T2qehD.jpg" alt="aurelievache"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/aurelievache/learning-go-by-examples-introduction-448n" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Learning Go by examples: part 1 - Introduction &amp;amp; Installation&lt;/h2&gt;
      &lt;h3&gt;Aurélie Vache ・ Jul 15 '21&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#go&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  ☕ &lt;a href="https://k49.fr.nf/java-18-le-point-sur-les-nouveautes" rel="noopener noreferrer"&gt;Java 18 : le point sur les nouveautés&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Dans cet article, Anthony nous donne un aperçu des nouveautés de Java 18, qui est sorti fin mars. On trouve dans ces nouveautés la dépréciation de la méthode &lt;code&gt;finalize()&lt;/code&gt;, le tag &lt;code&gt;@snippet&lt;/code&gt; pour la Javadoc ou encore une nouvelle version de la preview pour le pattern matching des switch.&lt;/p&gt;

&lt;h3&gt;
  
  
  🪝 &lt;a href="https://fusebit.io/blog/google-calendar-webhooks" rel="noopener noreferrer"&gt;Google Calendar Webhooks with Node.js&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;L'API de Google Calendar propose des webhooks. Ces webhooks sont utilisables pour, par exemple, mettre à jour un statut sur Slack ou envoyer un message sur Discord quand un évènement est modifié. &lt;a href="https://twitter.com/degrammer" rel="noopener noreferrer"&gt;Rubén Restrepo&lt;/a&gt; nous propose un tutoriel pour attraper des événements spécifiques et déclencher des actions.&lt;/p&gt;

&lt;h3&gt;
  
  
  📺 .NET Microservices
&lt;/h3&gt;

&lt;p&gt;Voici un cours complet en ligne sur la création de microservices en .NET. Différentes notions sont abordées comme la création d'API REST, le déploiement des services sur un cluster Kubernetes ou encore ou une messagerie asynchrone avec RabbitMQ. Bon visionnage ! &lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/DgVjEo3OGBI"&gt;
&lt;/iframe&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  CFP et évènements
&lt;/h3&gt;

&lt;p&gt;Plusieurs évènements tech ont annoncé leur retour en 2022 et leurs &lt;em&gt;calls for papers&lt;/em&gt; sont ouverts ! C’est le moment de proposer vos talks pour :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://cfp-voxxed-lux.yajug.org/" rel="noopener noreferrer"&gt;Voxxed Days&lt;/a&gt;, CFP ouvert jusqu'au 10/04&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://conference-hall.io/public/event/CfucIjaXxrZThJE0POR3" rel="noopener noreferrer"&gt;DevFest Nantes&lt;/a&gt;, CFP ouvert jusqu'au 19/06 &lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Merci à la communauté back-end ! On se retrouve fin avril, dernier mercredi du mois.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>newsletter</category>
      <category>french</category>
      <category>backend</category>
      <category>cfp</category>
    </item>
    <item>
      <title>Back to Back #10 - Back-end news by SFEIR </title>
      <dc:creator>Alexandre Moevi</dc:creator>
      <pubDate>Wed, 23 Feb 2022 08:26:28 +0000</pubDate>
      <link>https://forem.com/sfeircode/back-to-back-10-back-end-news-by-sfeir-5d2l</link>
      <guid>https://forem.com/sfeircode/back-to-back-10-back-end-news-by-sfeir-5d2l</guid>
      <description>&lt;p&gt;&lt;em&gt;Dernier mercredi du mois, c'est donc le moment de retrouver la newsletter back-end de SFEIR&lt;/em&gt; 🕑&lt;/p&gt;




&lt;h3&gt;
  
  
  🔍️ NestJS Discovery
&lt;/h3&gt;

&lt;p&gt;Le mois dernier, Célia vous a présenté NestJS et ce que ce framework peut apporter aux développeurs Node.js. On va plus loin avec Maxence qui nous parle du Discovery. Retrouvez son guide ici 👇&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/sfeircode" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__org__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BkvK5GnH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--ZD1eBsoC--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/organization/profile_image/4184/7cf6f1af-ded5-4fbf-a5f4-7bd98eccaa44.png" alt="SFEIR" width="150" height="150"&gt;
      &lt;div class="ltag__link__user__pic"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5QpZtjUj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--KClC5Uub--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/451984/94b43feb-ebd6-4fc4-91cd-47150fde8722.png" alt="" width="150" height="150"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/sfeircode/nestjs-discovery-15kd" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;NestJS Discovery&lt;/h2&gt;
      &lt;h3&gt;maxence-lefebvre for SFEIR ・ Feb 1 ・ 4 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#nestjs&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#typescript&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#node&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#intermediate&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  🤖 &lt;a href="https://www.01net.com/actualites/alphacode-la-nouvelle-ia-de-deepmind-code-aussi-bien-qu-un-developpeur-humain-2054310.html"&gt;AlphaCode : la nouvelle IA de DeepMind code aussi bien qu’un développeur humain&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Est-ce la fin de la route pour les développeurs humains ? DeepMind, la filiale d'Alphabet, a communiqué sur sa nouvelle intelligence artificielle, AlphaCode. Capable de générer du code à partir de problèmes algorithmiques, l'IA a participé à des compétitions de code. AlphaCode s'est placée dans le top 54% des meilleurs participants. Ainsi, ces résultats ouvrent la voie à un développement autonome des applications.&lt;/p&gt;

&lt;h3&gt;
  
  
  🐍 &lt;a href="https://martinheinz.dev/blog/66"&gt;Creating Beautiful Tracebacks with Python's Exception Hooks&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Ce billet de &lt;a href="https://twitter.com/Martin_Heinz_"&gt;Martin Heinz&lt;/a&gt; nous parle de la gestion d'erreurs Python, plus précisément de leur affichage. Quand une exception est levée (et n'est pas attrapée), le hook &lt;code&gt;sys.excepthook&lt;/code&gt; est appelé et affiche l'erreur. On peut personnaliser cette fonction, Martin nous montre comment. On peut aussi se baser sur des hooks existants et Martin nous en présente cinq.&lt;/p&gt;

&lt;h3&gt;
  
  
  🍃 Spring Tips: IO, IO, It's Off to Work We Go
&lt;/h3&gt;

&lt;p&gt;Finissons la newsletter avec &lt;a href="https://twitter.com/starbuxman"&gt;Josh Long&lt;/a&gt;, Spring Developer Advocate, qui nous parle des I/O bloquants et non-bloquants dans la programmation réactive et la programmation réseau. Java IO, Java NIO ainsi que Netty sont utilisés dans ce guide vidéo.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/eKfNoT07k_s"&gt;
&lt;/iframe&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  CFP et évènements
&lt;/h3&gt;

&lt;p&gt;Voici quelques &lt;em&gt;calls for papers&lt;/em&gt; ouverts actuellement : &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://conference-hall.io/public/event/m1kfbpSntxF3QBVUwoFY"&gt;Sunny Tech 2022&lt;/a&gt;, CFP ouvert jusqu'au 28/02&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://cfp-voxxed-lux.yajug.org/"&gt;Voxxed Days&lt;/a&gt;, CFP ouvert jusqu'au 31/03&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://conference-hall.io/public/event/vzbfowsExm54SrWLtxA5"&gt;DevFest Lille&lt;/a&gt;, CFP ouvert jusqu'au 31/03 &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;D'autres CFP sont attendus, ceux du DevFest Nantes (01/04)&lt;br&gt;
et du Devoxx Belgium (juin).&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Merci à la communauté SFEIR ! On se donne rendez-vous fin mars.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>newsletter</category>
      <category>french</category>
      <category>backend</category>
      <category>cfp</category>
    </item>
    <item>
      <title>Back to Back #9 - Back-end news by SFEIR</title>
      <dc:creator>Alexandre Moevi</dc:creator>
      <pubDate>Wed, 26 Jan 2022 08:41:33 +0000</pubDate>
      <link>https://forem.com/sfeircode/back-to-back-9-3866</link>
      <guid>https://forem.com/sfeircode/back-to-back-9-3866</guid>
      <description>&lt;p&gt;&lt;em&gt;Hello, world ! La revue de presse back-end débarque sur dev.to 🎉 C'est la première newsletter sur ce site et c'est également la première de 2022. L'occasion donc de vous souhaiter une bonne et heureuse année.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;En plus de la sélection d'articles venant des Sfeiriens, retrouvez désormais les dernières infos sur les évènements tech en France !&lt;/em&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  🔍️ &lt;a href="https://www.programmez.com/magazine/article/nestjs-un-framework-nodejs-complet"&gt;NestJS: un framework Node.js complet ?&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Dans le numéro 250 du magazine &lt;em&gt;Programmez&lt;/em&gt;, Célia vous fait découvrir dans son article ce que NestJS peut apporter aux développeurs Node.js. Elle présente le framework au travers d'un exemple concret : une application pour noter des séries et poster des commentaires sur des séries. Différents aspects du framework seront abordés : l’architecture, l’API ainsi que la sécurité et l’authentification.&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 &lt;a href="https://divriots.com/blog/switching-to-pnpm"&gt;A story of how we migrated to pnpm&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;SFEIR a accueilli le developer advocate Matthias Dugué, aka &lt;a href="https://twitter.com/m4d_z"&gt;m4dz&lt;/a&gt;, qui nous a parlé de Deno. Il nous a également partagé un article pour cette revue de presse. Avec les pipelines CI utilisant Yarn 2 qui étaient lentes, l'occasion était belle pour tester pnpm (Performant NPM).&lt;/p&gt;

&lt;h3&gt;
  
  
  📄 &lt;a href="https://aaronfrancis.com/2022/efficient-pagination-using-deferred-joins"&gt;Efficient Pagination Using Deferred Joins&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;La pagination des résultats est un problème récurrent pour les développeurs. Il existe deux stratégies principales pour sa mise en place : l’offset et les curseurs. Aaron Francis présente ces deux stratégies avec des modifications afin de grandement améliorer la pagination avec offset.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧑‍💻 &lt;a href="https://nordicapis.com/api-onboarding-is-broken-and-how-to-fix-it/"&gt;API Onboarding Is Broken (And How To Fix It)&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;À l’instar de l’intégration dans une nouvelle équipe, il est important de pouvoir monter rapidement et facilement en compétence quand on travaille avec une nouvelle API. Cet article d’Art Anthony examine certaines des raisons pour lesquelles un utilisateur potentiel pourrait abandonner une API avant même d'avoir commencé à l'utiliser. Art propose également des méthodes pour limiter ces abandons.&lt;/p&gt;

&lt;h3&gt;
  
  
  ⚡️ &lt;a href="https://pawelurbanek.com/postgresql-query-bottleneck"&gt;Five Easy to Miss PostgreSQL Query Performance Bottlenecks&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;À une époque où les ensembles de données sont de plus en plus volumineux, vous avez peut-être déjà constaté des goulots d'étranglement avec une base de données. Dans ce billet, Paweł Urbanek illustre cinq possibilités d’optimisation des requêtes dans PostgreSQL.&lt;/p&gt;




&lt;h3&gt;
  
  
  CFP et évènements
&lt;/h3&gt;

&lt;p&gt;Plusieurs évènements tech ont annoncé leur retour en 2022 et leurs Call for Paper sont ouverts ! C’est le moment de proposer vos talks pour :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://conference-hall.io/public/event/vzbfowsExm54SrWLtxA5"&gt;DevFest Lille&lt;/a&gt;, le 10 juin 2022 &lt;/li&gt;
&lt;li&gt;
&lt;a href="https://conference-hall.io/public/event/0Ij6N6UQOInRF9fdEm6G"&gt;Le Camping des Speakers&lt;/a&gt; dans le Morbihan, les 9 et 10 juin 2022&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://conference-hall.io/public/event/m1kfbpSntxF3QBVUwoFY"&gt;Sunny Tech&lt;/a&gt; à Montpellier, les 30 juin et 1&lt;sup&gt;er&lt;/sup&gt; juillet 2022.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Merci à la communauté back-end et un grand bravo à Célia pour la publication dans la revue Programmez 👏 On se retrouve en février, dernier mercredi du mois.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>newsletter</category>
      <category>french</category>
      <category>backend</category>
      <category>cfp</category>
    </item>
  </channel>
</rss>
