<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>halletienne&#39;s space</title>
    <link>https://blog.halletienne.fr/</link>
    <description>Recent content on halletienne&#39;s space</description>
    <generator>Hugo</generator>
    <language>fr-FR</language>
    <copyright>hlt&#39;s writings</copyright>
    <lastBuildDate>Mon, 27 Apr 2026 19:46:50 +0200</lastBuildDate>
    <atom:link href="https://blog.halletienne.fr/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Présentation</title>
      <link>https://blog.halletienne.fr/resume/</link>
      <pubDate>Mon, 27 Apr 2026 19:46:50 +0200</pubDate>
      <guid>https://blog.halletienne.fr/resume/</guid>
      <description>&lt;div class=&#34;author-resume__job-experiences&#34;&gt;&#xA;  &lt;h1&gt;Expériences Professionnelles&lt;/h1&gt;&#xA;&#xA;  &lt;div class=&#34;author-resume__job-entry&#34;&gt;&#xA;    &lt;h2&gt;Manutan&lt;/h2&gt;&#xA;    &lt;div class=&#34;author-resume__job-detail&#34;&gt;&#xA;      &lt;span class=&#34;author-resume__job-date&#34;&gt;Avril 2022 → Juin 2023&lt;/span&gt;&lt;br /&gt;&#xA;      &lt;span class=&#34;author-resume__job-localisation&#34;&gt;Gonesse&lt;/span&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;author-resume__job-title&#34;&gt;Consultant DevOps&lt;/div&gt;&#xA;    &lt;div class=&#34;author-resume__job-description&#34;&gt;&#xA;      Accompagnement à l’automatisation sur différents produits&#xA;      &lt;ul&gt;&#xA;        &lt;li&gt;&#xA;          Automatisation du déploiement pour différents responsables applicatifs&#xA;          (OpenShift/Ansible)&#xA;        &lt;/li&gt;&#xA;        &lt;li&gt;&#xA;          Mise en place de pratiques Git(Ops) et de l’infrastructure nécessaire&#xA;        &lt;/li&gt;&#xA;        &lt;li&gt;Création de pipelines GitLab &amp; Jenkins&lt;/li&gt;&#xA;        &lt;li&gt;Réferent Ansible et AAP/AWX&lt;/li&gt;&#xA;        &lt;li&gt;&#xA;          Différents développements Python (module Ansible, Web Application,&#xA;          Scripts)&#xA;        &lt;/li&gt;&#xA;        &lt;li&gt;Mise en place d&#39;un repository Nexus et de pratiques autour&lt;/li&gt;&#xA;        &lt;li&gt;&#xA;          Mise en place pour les serveurs windows d&#39;une &lt;i&gt;infrastructure&lt;/i&gt;&#xA;          Chocolatey (repository, scripts de demonstrations de comment packager&#xA;          un binaire..)&#xA;        &lt;/li&gt;&#xA;      &lt;/ul&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;toggle-plus_icon&#34;&gt;&lt;i class=&#34;fa-solid fa-circle-plus&#34;&gt;&lt;/i&gt;&lt;/div&gt;&#xA;    &lt;div class=&#34;toggle-content&#34; style=&#34;display: none&#34;&gt;&#xA;      Exemples de réalisations:&#xA;      &lt;ul class=&#34;author-resume__dense-list&#34;&gt;&#xA;        &lt;li&gt;&#xA;          &lt;u&gt;Kube/Jenkins&lt;/u&gt;: Dans le cadre du remplacement d&#39;un soft legacy,&#xA;          on est passé en micro services kube fait en java (MuleSoft). Ces micro&#xA;          services étaient dev et versionnés avec des pipelines Jenkins :&#xA;          linting, building, packaging maven, test.&lt;br /&gt;Les déploiements en&#xA;          test et prod (avec validation) se faisaient sur un OpenShift. J&#39;ai été&#xA;          responsable de la construction de ce pipeline.&lt;br /&gt;&#xA;        &lt;/li&gt;&#xA;        &lt;li&gt;&#xA;          &lt;u&gt;Ansible/GitLab&lt;/u&gt;: La mise a disposition, par Ansible AAP/AWX,&#xA;          d&#39;un &#34;comptoir de services&#34; (déploiement de VM, création de flux...),&#xA;          tous ces playbook et modules Ansible étaient soumis à différents&#xA;          pipeline de vérification (linting et testing) par des runner GitLab-CI&#xA;        &lt;/li&gt;&#xA;        &lt;li&gt;&#xA;          J&#39;ai eu à développer une surcouche d&#39;un produit en développement&#xA;          (waarp : soft de gestion de flux de fichier pour environnement&#xA;          airgapped). L&#39;outil en développement avait (en tout cas, à ce moment&#xA;          là) une très mauvaise gestion des droits et des utilisateurs, et son&#xA;          API manquait de fonctionnalités. Ma surcouche en Flask permettait de&#xA;          donner une vue en &#34;lecture seule&#34; (et de jouer plus finement pour les&#xA;          droits users) sur l&#39;outil, d&#39;offrir une API sur certaines actions&#xA;          (CRUD de flux), et de s&#39;intégrer plus finement avec notre usage de&#xA;          Ansible Automation Platform (ex-AWX)&#xA;        &lt;/li&gt;&#xA;      &lt;/ul&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&#xA;  &lt;div class=&#34;author-resume__job-entry&#34;&gt;&#xA;    &lt;h2&gt;EDF&lt;/h2&gt;&#xA;    &lt;div class=&#34;author-resume__job-detail&#34;&gt;&#xA;      &lt;span class=&#34;author-resume__job-date&#34;&gt;Sept. 2017 → Oct. 2020&lt;/span&gt;&lt;br /&gt;&#xA;      &lt;span class=&#34;author-resume__job-localisation&#34;&gt;Lyon&lt;/span&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;author-resume__job-title&#34;&gt;Consultant Système Linux&lt;/div&gt;&#xA;    &lt;div class=&#34;author-resume__job-description&#34;&gt;&#xA;      Conception, développement et exploitation de Calibre/Scibian Linux,&#xA;      système d’exploitation basé sur Debian pour le calcul scientifique à EDF&#xA;      &lt;ul&gt;&#xA;        &lt;li&gt;Packaging Debian&lt;/li&gt;&#xA;        &lt;li&gt;Écriture et intégration de patchs et extensions&lt;/li&gt;&#xA;        &lt;li&gt;Backports&lt;/li&gt;&#xA;        &lt;li&gt;&#xA;          Mise en place de l’automatisation de la fusion des patchs Debian et de&#xA;          nos forks&#xA;        &lt;/li&gt;&#xA;        &lt;li&gt;&#xA;          Réalisation d’applications et utilitaires Python pour accompagner les&#xA;          utilisateurs&#xA;        &lt;/li&gt;&#xA;        &lt;li&gt;Administration d’un parc de 1500 postes de travail&lt;/li&gt;&#xA;        &lt;li&gt;&#xA;          Calibre/Scibian Linux avec OpenLDAP/Kerberos, Puppet, GLPI et&#xA;          FusionInventory&#xA;        &lt;/li&gt;&#xA;        &lt;li&gt;Gestion des serveurs d’infrastructures&lt;/li&gt;&#xA;      &lt;/ul&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;toggle-plus_icon&#34;&gt;&lt;i class=&#34;fa-solid fa-circle-plus&#34;&gt;&lt;/i&gt;&lt;/div&gt;&#xA;    &lt;div class=&#34;toggle-content&#34; style=&#34;display: none&#34;&gt;&#xA;      Exemples notables de réalisation:&#xA;      &lt;ul class=&#34;author-resume__dense-list&#34;&gt;&#xA;        &lt;li&gt;&#xA;          Grosse modification de Firefox-ESR afin qu&#39;il utilise libsecret pour&#xA;          stocker les secrets utilisateurs. J&#39;ai eu à me plonger dans du code&#xA;          javascript qui se retrouve au final encapsuler dans le `omni.ja` de&#xA;          Firefox.&#xA;        &lt;/li&gt;&#xA;        &lt;li&gt;&#xA;          J&#39;ai eu à piloter une forte montée en version d&#39;un annuaire OpenLDAP.&#xA;          Toute l&#39;infrastructure était basée sur notre distribution Linux&#xA;          (Calibre/Scibian) basée sur Debian. La montée en version concernait&#xA;          principalement OpenLDAP, mais aussi Debian. Ce service LDAP était&#xA;          fournisseur d&#39;identités pour tous les postes utilisateurs&#xA;          scientifiques, les HPC, les différentes authentifications Kerberos et&#xA;          nos NFS(v4), ainsi que certaines vieilles BDD Oracle. Outre les&#xA;          différents tests d&#39;export/import de données entre les deux versions&#xA;          d&#39;OpenLDAP ou comment les postes personnels réagissaient au&#xA;          changement, on a surtout eu à mettre en place des déploiements de&#xA;          répliquats en lecture-seule : les vieilles BDD Oracle mentionnées&#xA;          précédemment ne supportaient que des versions de TLS/SSL compromises.&#xA;          On a donc mis ces réplicats en place avec un lien réseau dédié et en&#xA;          abaissant les standard SSL normalement requis.&#xA;        &lt;/li&gt;&#xA;      &lt;/ul&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;  &lt;div class=&#34;author-resume__job-entry&#34;&gt;&#xA;    &lt;h2&gt;Orange&lt;/h2&gt;&#xA;    &lt;div class=&#34;author-resume__job-detail&#34;&gt;&#xA;      &lt;span class=&#34;author-resume__job-date&#34;&gt;Nov. 2014 → Mai 2016&lt;/span&gt;&lt;br /&gt;&#xA;      &lt;span class=&#34;author-resume__job-localisation&#34;&gt;Lyon&lt;/span&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;author-resume__job-title&#34;&gt;Technicien DigitalCoach&lt;/div&gt;&#xA;    Accommpagnement d’entreprises dans leur projet de flotte mobile&#xA;    &lt;div class=&#34;author-resume__job-description&#34;&gt;&#xA;      &lt;ul&gt;&#xA;        &lt;li&gt;&#xA;          Déploiement et gestion de flottes mobiles professionnelles MobileIron&#xA;        &lt;/li&gt;&#xA;        &lt;li&gt;Gestion de projets&lt;/li&gt;&#xA;        &lt;li&gt;Gestion d&#39;équipe support off-shore&lt;/li&gt;&#xA;        &lt;li&gt;Développement de modules GLPI (PHP)&lt;/li&gt;&#xA;      &lt;/ul&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;toggle-plus_icon&#34;&gt;&lt;i class=&#34;fa-solid fa-circle-plus&#34;&gt;&lt;/i&gt;&lt;/div&gt;&#xA;    &lt;div class=&#34;toggle-content&#34; style=&#34;display: none&#34;&gt;&#xA;      Exemple de réalisations:&#xA;      &lt;ul class=&#34;author-resume__dense-list&#34;&gt;&#xA;        &lt;li&gt;&#xA;          Le développement de modules GLPI est initialement venu de mon envie de&#xA;          remplacer une montagne de scripts EXCEL qui tentait de récupérer&#xA;          diverses informations dans GLPI pour calculer nos KPI&#xA;        &lt;/li&gt;&#xA;      &lt;/ul&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;!-- End of Professionnal experiences--&gt;&#xA;&#xA;&lt;h1&gt;Éducation&lt;/h1&gt;&#xA;&lt;!-- Start of competencies --&gt;&#xA;&lt;div class=&#34;author-resume__technical-competencies&#34;&gt;&#xA;  &lt;div class=&#34;author-resume__certifications&#34;&gt;&#xA;    &lt;h2&gt;Diplômes&lt;/h2&gt;&#xA;    &lt;div class=&#34;author-resume__certification-entry&#34;&gt;&#xA;      &lt;span class=&#34;author-resume__certification-title&#34;&gt;LPIC-1 &amp; LPIC-2&lt;/span&gt;&#xA;      &lt;div class=&#34;author-resume__certification-detail&#34;&gt;&#xA;        &lt;span class=&#34;author-resume__certification-date&#34;&gt;2020&lt;/span&gt;&#xA;      &lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;author-resume__certification-entry&#34;&gt;&#xA;      &lt;span class=&#34;author-resume__certification-title&#34;&#xA;        &gt;BSc. with Honors Ethical Hacking and Countermeasures&#xA;      &lt;/span&gt;&#xA;      &lt;div class=&#34;author-resume__certification-detail&#34;&gt;&#xA;        &lt;div class=&#34;detail-icon&#34;&gt;&lt;i class=&#34;fa-solid fa-calendar&#34;&gt;&lt;/i&gt;&lt;/div&gt;&#xA;        &lt;div class=&#34;detail-info&#34;&gt;2010 → 2012&lt;/div&gt;&#xA;        &lt;div class=&#34;detail-icon&#34;&gt;&#xA;          &lt;i class=&#34;fa-solid fa-location-dot&#34;&gt;&lt;/i&gt;&#xA;        &lt;/div&gt;&#xA;        &lt;div class=&#34;detail-info&#34;&gt;Abertay University&lt;/div&gt;&#xA;        &lt;div class=&#34;detail-info&#34;&gt;Dundee&lt;/div&gt;&#xA;        &lt;div class=&#34;detail-info&#34;&gt;Scotland&lt;/div&gt;&#xA;      &lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;author-resume__certification-entry&#34;&gt;&#xA;      &lt;span class=&#34;author-resume__certification-title&#34;&gt;DUT Informatique&lt;/span&gt;&#xA;      &lt;div class=&#34;author-resume__certification-detail&#34;&gt;&#xA;        &lt;div class=&#34;detail-icon&#34;&gt;&lt;i class=&#34;fa-solid fa-calendar&#34;&gt;&lt;/i&gt;&lt;/div&gt;&#xA;        &lt;div class=&#34;detail-info&#34;&gt;2008 → 2010&lt;/div&gt;&#xA;        &lt;div class=&#34;detail-icon&#34;&gt;&lt;i class=&#34;fa-solid fa-location-dot&#34;&gt;&lt;/i&gt;&lt;/div&gt;&#xA;        &lt;div class=&#34;detail-info&#34;&gt;Université Claude Bernard&lt;/div&gt;&#xA;        &lt;div class=&#34;detail-info&#34;&gt;Lyon&lt;/div&gt;&#xA;      &lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&#xA;  &lt;div class=&#34;author-resume__competencies&#34;&gt;&#xA;    &lt;h2&gt;Compétences&lt;/h2&gt;&#xA;    &lt;h4&gt;Langues&lt;/h4&gt;&#xA;    &lt;ul&gt;&#xA;      &lt;li&gt;&lt;strong&gt;Anglais&lt;/strong&gt;: lu, écrit, parlé couramment&lt;/li&gt;&#xA;      &lt;li&gt;&lt;strong&gt;Espagnol&lt;/strong&gt;: lu, écrit, parlé (B2)&lt;/li&gt;&#xA;    &lt;/ul&gt;&#xA;    &lt;h4&gt;Informatiques&lt;/h4&gt;&#xA;    &lt;h5&gt;Points forts&lt;/h5&gt;&#xA;    &lt;ul&gt;&#xA;      &lt;li&gt;Linux et principalement Debian&lt;/li&gt;&#xA;      &lt;li&gt;Python&lt;/li&gt;&#xA;      &lt;li&gt;Les containeurs et surtout podman&lt;/li&gt;&#xA;      &lt;li&gt;Ansible&lt;/li&gt;&#xA;    &lt;/ul&gt;&#xA;    &lt;h5&gt;Général&lt;/h5&gt;&#xA;    &lt;ul&gt;&#xA;      &lt;li&gt;&lt;strong&gt;Virtualisation&lt;/strong&gt;: Proxmox, Xen, QEMU/KVM&lt;/li&gt;&#xA;      &lt;li&gt;&#xA;        &lt;strong&gt;Langages&lt;/strong&gt;: Python, Shell, Go, PHP, C, C++, Ruby,&#xA;        &lt;s&gt;Perl&lt;/s&gt;&#xA;      &lt;/li&gt;&#xA;      &lt;li&gt;&#xA;        &lt;strong&gt;CI/CD&lt;/strong&gt;: GitHub Actions, Woodpecker, Puppet, Jenkins&#xA;      &lt;/li&gt;&#xA;      &lt;li&gt;&#xA;        &lt;strong&gt;Conteneurisation&lt;/strong&gt;: Docker, LXC, Kubernetes: K3S,&#xA;        OpenShift, ArgoCD, Helm&#xA;      &lt;/li&gt;&#xA;      &lt;li&gt;&#xA;        &lt;strong&gt;Administration/Monitoring&lt;/strong&gt;: Grafana, Prometheus, Loki,&#xA;        GLPI, Nagios, Shinken, Zabbix&#xA;      &lt;/li&gt;&#xA;      &lt;li&gt;&#xA;        &lt;strong&gt;Réseau&lt;/strong&gt;: OpenWRT, Bind9, Unbound, iptables/nftables,&#xA;        firewalld, Squid, OpenVPN, wireguard&#xA;      &lt;/li&gt;&#xA;      &lt;li&gt;&#xA;        &lt;strong&gt;Univers Debian&lt;/strong&gt;:reprepro, dpkg build, debhelper, quilt,&#xA;        sbuild, pbuild...&#xA;      &lt;/li&gt;&#xA;      &lt;li&gt;&lt;strong&gt;Web&lt;/strong&gt;: Javascript, VueJS, FastAPI, Flask, Hugo&lt;/li&gt;&#xA;      &lt;li&gt;&#xA;        &lt;strong&gt;Versionning&lt;/strong&gt;:&#xA;        &lt;i class=&#34;fa-solid fa-code-branch&#34;&gt;&lt;/i&gt;&#xA;        git &amp; svn&#xA;      &lt;/li&gt;&#xA;    &lt;/ul&gt;&#xA;    &lt;h6&gt;Montée en compétences&lt;/h6&gt;&#xA;    Actuellement je cherche à monter en compétences, sur mon temps personnel,&#xA;    sur toute les stack Cloud de Google, GCP.&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;!-- End of competencies --&gt;&#xA;&lt;!-- Start of personnal description --&gt;&#xA;&#xA;&lt;div class=&#34;author-resume__personnal_description&#34;&gt;&#xA;  &lt;h2&gt;Loisirs&lt;/h2&gt;&#xA;&#xA;  &lt;div class=&#34;author-resume__sports&#34;&gt;&#xA;    &lt;h3&gt;Sports&lt;/h3&gt;&#xA;    &lt;ul&gt;&#xA;      &lt;li&gt;Pratique de la course à pied&lt;/li&gt;&#xA;      &lt;li&gt;Pratique de l’escalade/via ferrata/randonnée/trail&lt;/li&gt;&#xA;      &lt;li&gt;Adepte du cyclo-tourisme et pratique quotidienne du vélo&lt;/li&gt;&#xA;    &lt;/ul&gt;&#xA;  &lt;/div&gt;&#xA;&#xA;  &lt;div class=&#34;author-resume__lobbies&#34;&gt;&#xA;    &lt;h3&gt;Hobby&lt;/h3&gt;&#xA;&#xA;    Méchanique auto/vélo, électronique, impression 3D&#xA;  &lt;/div&gt;&#xA;  &lt;div class=&#34;author-resume__volunteering&#34;&gt;&#xA;    &lt;h3&gt;Bénévolat&lt;/h3&gt;&#xA;&#xA;    Au sein du milieu de l’événementiel ainsi que dans l’éducation.&lt;br /&gt;&#xA;    Actuellement dans un garage d&#39;autoréparation de vélo&#xA;  &lt;/div&gt;&#xA;  &lt;div class=&#34;author-resume__personnality&#34;&gt;&#xA;    &lt;h3&gt;Personnalité&lt;/h3&gt;&#xA;    Je suis quelqu&#39;un qui sait développer une forte détermination et patience au&#xA;    sein de différents projets. Le travail en équipe est quelque chose que&#xA;    j&#39;apprécie et qui me motive. Mais je reste principalement quelqu&#39;un de&#xA;    curieux et qui aime apprendre. Avec le temps j&#39;ai aussi découvert que&#xA;    j&#39;appréciait énormément partager mes connaissances.&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>K3s Deployment</title>
      <link>https://blog.halletienne.fr/posts/k3s-deployment/</link>
      <pubDate>Thu, 23 Apr 2026 10:12:19 +0200</pubDate>
      <guid>https://blog.halletienne.fr/posts/k3s-deployment/</guid>
      <description>Les premières étapes de mise en place d&amp;rsquo;une petite infra kube</description>
    </item>
    <item>
      <title>Mailu domaines additionnels</title>
      <link>https://blog.halletienne.fr/notes/mailu-share-http/</link>
      <pubDate>Sun, 19 Apr 2026 00:25:48 +0200</pubDate>
      <guid>https://blog.halletienne.fr/notes/mailu-share-http/</guid>
      <description>&lt;p&gt;Je suis un utilisateur de Mailu pour mes courriels.&#xA;J&amp;rsquo;y ai dédié un serveur pour ça, et au final, c&amp;rsquo;est le serveur le plus stable que j&amp;rsquo;ai: gros uptime, entièrement &lt;em&gt;ansibilisé&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Le petit truc c&amp;rsquo;est que c&amp;rsquo;est un produit un chouïa tarabiscotté (ou comme on dit maintenant &amp;ldquo;opiniated&amp;rdquo;) et le microservice de reverse proxy gère pas mal de chose. Outre le flux &lt;strong&gt;HTTP&lt;/strong&gt;, il gère le transit &lt;strong&gt;IMAP&lt;/strong&gt; et &lt;strong&gt;SMTP&lt;/strong&gt;. En gros, j&amp;rsquo;évite de trop venir le bidouiller.&lt;/p&gt;</description>
    </item>
    <item>
      <title>NeoVim sauvegarder sans autoformat</title>
      <link>https://blog.halletienne.fr/notes/nvim-save-without-formatting/</link>
      <pubDate>Thu, 26 Mar 2026 16:34:31 +0200</pubDate>
      <guid>https://blog.halletienne.fr/notes/nvim-save-without-formatting/</guid>
      <description>&lt;p&gt;Dans ma configuration actuelle de NeoVim, il y a un formattage(mise en forme) automatique à la sauvegarde. Ca peut être parfois génant.&lt;/p&gt;&#xA;&lt;h3 id=&#34;origine&#34;&gt;Origine&lt;/h3&gt;&#xA;&lt;p&gt;Dans mon cas, j&amp;rsquo;utilise &lt;a href=&#34;https://github.com/nvimtools/none-ls.nvim&#34;&gt;none-ls&lt;/a&gt; pour la gestion des LSP. Et c&amp;rsquo;est lui qui est responsable dans config de cet &lt;em&gt;autoformattage&lt;/em&gt;.&#xA;Dans le &lt;code&gt;setup()&lt;/code&gt; de ce plugin on voit:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lua&#34; data-lang=&#34;lua&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;vim.api.nvim_create_autocmd(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;BufWritePre&amp;#39;&lt;/span&gt;, {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    group &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; augroup,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    buffer &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; bufnr,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    callback &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;function&lt;/span&gt;()&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        vim.lsp.buf.format { async &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt; }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;end&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;})&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;C&amp;rsquo;est ce petit &lt;code&gt;vim.lsp.buf.format ...&lt;/code&gt; qui fait ça. On peut voir que c&amp;rsquo;est déclenché par une autocmd.&lt;/p&gt;</description>
    </item>
    <item>
      <title>About</title>
      <link>https://blog.halletienne.fr/about/</link>
      <pubDate>Mon, 23 Mar 2026 15:12:25 +0200</pubDate>
      <guid>https://blog.halletienne.fr/about/</guid>
      <description>&lt;h3 id=&#34;pourquoi-&#34;&gt;Pourquoi ?&lt;/h3&gt;&#xA;&lt;p&gt;J&amp;rsquo;ai toujours voulu avoir une trace des petits projets menés perso. On verra où ça mène.&lt;/p&gt;&#xA;&lt;h3 id=&#34;comment-&#34;&gt;Comment ?&lt;/h3&gt;&#xA;&lt;p&gt;Ce petit site static est fait à partir de &lt;a href=&#34;https://gohugo.io/&#34;&gt;HUGO&lt;/a&gt;.&lt;br&gt;&#xA;J&amp;rsquo;ai un peu modifié le theme &lt;a href=&#34;https://github.com/joeroe/risotto&#34;&gt;risotto&lt;/a&gt;. On peut trouver mon fork &lt;a href=&#34;https://git.halletienne.fr/halletienne/rizhollet&#34;&gt;là&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>StepCA Deployment</title>
      <link>https://blog.halletienne.fr/posts/stepca-deployment/</link>
      <pubDate>Sat, 06 Dec 2025 22:03:04 +0100</pubDate>
      <guid>https://blog.halletienne.fr/posts/stepca-deployment/</guid>
      <description>Comment gérer une PKI sans accroc</description>
    </item>
  </channel>
</rss>
