<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Blog - theopnv.com</title>
    <link>https://blog.theopnv.com/</link>
    <description>Recent content on Blog - theopnv.com</description>
    <image>
      <title>Blog - theopnv.com</title>
      <url>https://blog.theopnv.com/preview.png</url>
      <link>https://blog.theopnv.com/preview.png</link>
    </image>
    <generator>Hugo -- 0.155.2</generator>
    <language>en-US</language>
    <lastBuildDate>Wed, 09 Sep 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://blog.theopnv.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Reading Obsidian notes in your browser, without publishing them</title>
      <link>https://blog.theopnv.com/posts/2026/09/obsidian-page-to-browser/</link>
      <pubDate>Wed, 09 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.theopnv.com/posts/2026/09/obsidian-page-to-browser/</guid>
      <description>A small open-source viewer that renders any note from your Obsidian vault as a local webpage, so bookmarks, todo lists and cheatsheets are one click away in your browser toolbar.</description>
    </item>
    <item>
      <title>How many changes can you land at once?</title>
      <link>https://blog.theopnv.com/posts/2026/08/merge-queues/</link>
      <pubDate>Sun, 16 Aug 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.theopnv.com/posts/2026/08/merge-queues/</guid>
      <description>Merge queues automate rebasing and testing PRs at scale, with batching, speculative checks, and bisection tradeoffs explained through failure-rate math.</description>
    </item>
    <item>
      <title>The tests you didn&#39;t need to run</title>
      <link>https://blog.theopnv.com/posts/2026/07/scoping-tests/</link>
      <pubDate>Mon, 27 Jul 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.theopnv.com/posts/2026/07/scoping-tests/</guid>
      <description>How Change Impact Analysis, only-changed flags, and Meta&amp;#39;s Predictive Test Selection let you skip the tests a code change can&amp;#39;t possibly break.</description>
    </item>
    <item>
      <title>Two CI strategies to keep main green</title>
      <link>https://blog.theopnv.com/posts/2026/07/blocking-vs-chasing-failures/</link>
      <pubDate>Mon, 20 Jul 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.theopnv.com/posts/2026/07/blocking-vs-chasing-failures/</guid>
      <description>A discussion on CI/CD strategies to keep main green: block bad changes with a merge gate, or land them fast and chase failures with automated bisection and rollback. Or blend both!</description>
    </item>
    <item>
      <title>A short series on Test Automation</title>
      <link>https://blog.theopnv.com/posts/2026/07/ci-speed-vs-quality/</link>
      <pubDate>Wed, 01 Jul 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.theopnv.com/posts/2026/07/ci-speed-vs-quality/</guid>
      <description>Speed and stability often feel like a tradeoff. But they don&amp;#39;t have to be: DORA research shows the two correlate. This is a short series on test automation strategies that buy you both.</description>
    </item>
    <item>
      <title>56 Repositories, 5 Hours and $80: How I automated a large-scale update with AI</title>
      <link>https://blog.theopnv.com/posts/2026/06/multi-repositories-update/</link>
      <pubDate>Tue, 23 Jun 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.theopnv.com/posts/2026/06/multi-repositories-update/</guid>
      <description>A reproducible AI-assisted workflow for large-scale migrations.</description>
    </item>
    <item>
      <title>Jobpocalypse: Designing Economic Systems for the AI era</title>
      <link>https://blog.theopnv.com/posts/2026/05/economics-of-ai/</link>
      <pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.theopnv.com/posts/2026/05/economics-of-ai/</guid>
      <description>AI threatens millions of jobs while political debate ignores it. Four economic models for the transition: bans, UBI taxes, token taxes, job-creation incentives.</description>
    </item>
    <item>
      <title>Surveillance 2.0: how to become a ghost</title>
      <link>https://blog.theopnv.com/posts/2026/04/privacy/</link>
      <pubDate>Tue, 14 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.theopnv.com/posts/2026/04/privacy/</guid>
      <description>&lt;p&gt;🇬🇧 &lt;em&gt;Howdy English speaker, please note that this article was translated from French using &lt;a href=&#34;https://duck.ai/&#34;&gt;Duck AI&lt;/a&gt;, a privacy-friendly AI.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;some-solutions-part-2&#34;&gt;Some Solutions (Part 2)&lt;/h2&gt;
&lt;p&gt;After learning about the constant progress of surveillance and control of communications and information by numerous entities in &lt;a href=&#34;https://blog.theopnv.com/posts/2026/02/privacy/&#34;&gt;part 1&lt;/a&gt;, here are some ideas to mitigate the consequences.&lt;/p&gt;
&lt;p&gt;They are sorted from the simplest to implement, with no particular effort, to the most complicated, which will require accepting some compromises in comfort. There is no need to overhaul all your habits at once; it is better to proceed step by step. Perfection does not exist, but it is always possible to improve gradually.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Surveillance 2.0: when privacy becomes a luxury</title>
      <link>https://blog.theopnv.com/posts/2026/02/privacy/</link>
      <pubDate>Fri, 06 Feb 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.theopnv.com/posts/2026/02/privacy/</guid>
      <description>Tech giants and governments are converging on mass surveillance, from Chat Control to AI-powered facial scans. Why privacy is becoming a luxury.</description>
    </item>
    <item>
      <title>15 tips for putting your life on autopilot</title>
      <link>https://blog.theopnv.com/posts/life-hacks/</link>
      <pubDate>Thu, 22 Dec 2022 11:30:03 +0000</pubDate>
      <guid>https://blog.theopnv.com/posts/life-hacks/</guid>
      <description>&lt;p&gt;In recent years I&amp;rsquo;ve spent more and more time trying to continuously optimize my daily routine. Fixing the pain points, and improving my productivity. At the end of the day, it&amp;rsquo;s all about freeing up more time and being able to focus more on what matters and what I like.&lt;/p&gt;
&lt;p&gt;As I was thinking about it, wrapping up 2022, I realized how aligned this life mindset is with my Automation engineering job&amp;rsquo;s principles. At the end of the day, my work is all about freeing up internal customers&amp;rsquo; time so they can focus on where they provide the highest value (and of course by doing so, saving the company more money).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Build a Node.js Server — Part 4/4: Testing</title>
      <link>https://blog.theopnv.com/posts/nodejs-server-04/</link>
      <pubDate>Sun, 29 Nov 2020 04:30:03 +0000</pubDate>
      <guid>https://blog.theopnv.com/posts/nodejs-server-04/</guid>
      <description>Part 4/4: test the Koa.js, GraphQL, and MongoDB server with Mocha and Chai, using an in-memory MongoDB instance to keep tests fast and isolated.</description>
    </item>
    <item>
      <title>Build a Node.js Server — Part 3/4: The API</title>
      <link>https://blog.theopnv.com/posts/nodejs-server-03/</link>
      <pubDate>Sun, 29 Nov 2020 03:30:03 +0000</pubDate>
      <guid>https://blog.theopnv.com/posts/nodejs-server-03/</guid>
      <description>Part 3/4: build a GraphQL API with Apollo Server and MongoDB, using GraphQL Code Generator to keep schema, types, and database models in sync.</description>
    </item>
    <item>
      <title>Build a Node.js Server — Part 2/4: Docker</title>
      <link>https://blog.theopnv.com/posts/nodejs-server-02/</link>
      <pubDate>Sun, 29 Nov 2020 02:30:03 +0000</pubDate>
      <guid>https://blog.theopnv.com/posts/nodejs-server-02/</guid>
      <description>Part 2/4: containerize the Node.js server and a MongoDB database with Docker and Docker Compose, then manage secrets with environment variables.</description>
    </item>
    <item>
      <title>Build a Node.js Server — Part 1/4</title>
      <link>https://blog.theopnv.com/posts/nodejs-server-01/</link>
      <pubDate>Sun, 29 Nov 2020 01:30:03 +0000</pubDate>
      <guid>https://blog.theopnv.com/posts/nodejs-server-01/</guid>
      <description>Part 1/4: bootstrap a Node.js server with Koa.js and TypeScript, then add ESLint, Husky git hooks, and Nodemon for a clean development workflow.</description>
    </item>
    <item>
      <title>An intro to the git basics</title>
      <link>https://blog.theopnv.com/posts/git-101/</link>
      <pubDate>Tue, 09 Oct 2018 11:30:03 +0000</pubDate>
      <guid>https://blog.theopnv.com/posts/git-101/</guid>
      <description>Learning Git - 101</description>
    </item>
    <item>
      <title>Load a C&#43;&#43; class from a shared library (Modern C&#43;&#43;)</title>
      <link>https://blog.theopnv.com/posts/cpp-dynamic-loading/</link>
      <pubDate>Mon, 26 Feb 2018 11:30:03 +0000</pubDate>
      <guid>https://blog.theopnv.com/posts/cpp-dynamic-loading/</guid>
      <description>Loading of a C&#43;&#43; class from a shared library (Modern C&#43;&#43;)</description>
    </item>
    <item>
      <title>Can Vivatechnology make Paris tech again?</title>
      <link>https://blog.theopnv.com/posts/vivatech/</link>
      <pubDate>Sat, 07 Oct 2017 11:30:03 +0000</pubDate>
      <guid>https://blog.theopnv.com/posts/vivatech/</guid>
      <description>Vivatech event review</description>
    </item>
    <item>
      <title>A modern and lightweight Arch-Linux (xfce) configuration</title>
      <link>https://blog.theopnv.com/posts/xfce/</link>
      <pubDate>Fri, 07 Jul 2017 11:30:03 +0000</pubDate>
      <guid>https://blog.theopnv.com/posts/xfce/</guid>
      <description>Arch Linux - XFCE configuration</description>
    </item>
    <item>
      <title>About</title>
      <link>https://blog.theopnv.com/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://blog.theopnv.com/about/</guid>
      <description>About Theo Penavaire, the author of this blog.</description>
    </item>
    <item>
      <title>Newsletter</title>
      <link>https://blog.theopnv.com/newsletter/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://blog.theopnv.com/newsletter/</guid>
      <description></description>
    </item>
    <item>
      <title>Privacy Policy</title>
      <link>https://blog.theopnv.com/privacy/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://blog.theopnv.com/privacy/</guid>
      <description>How this blog collects, uses, and protects personal data.</description>
    </item>
  </channel>
</rss>
