<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Patrick Desjardins Blog</title><link>https://patrickdesjardins.com/blog</link><description>Technical blog posts by Patrick Desjardins</description><language>en</language><lastBuildDate>Thu, 18 Jun 2026 00:00:00 +0000</lastBuildDate><item><title>Replacing NextJS With a Rust Static Site Generator</title><link>https://patrickdesjardins.com/blog/replacing-nextjs-with-a-rust-static-site-generator</link><description>I recently moved this website away from NextJS as the static generation engine. The site was working, but it had become heavier than what I needed. Most pages are static. Most content is markdown. The build was doing a lot of framework work for a problem that had become much smaller than the framewo…</description><pubDate>Thu, 18 Jun 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/replacing-nextjs-with-a-rust-static-site-generator</guid></item><item><title>Audiobook machine version 3 using an ELECROW ESP32 Rotary Display 240x240</title><link>https://patrickdesjardins.com/blog/audiomachine-version3-using-esp32-rotary-display</link><description>I built an audiobook machine for my daughter in January 2022 using a Raspberry Pi and RFID cards (). In early 2026, I built a second version for my son using an ESP32 and a TFT display (). Over time, I wanted to replace my daughter&apos;s original device because the RFID cards became cumbersome whenever…</description><pubDate>Sat, 13 Jun 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/audiomachine-version3-using-esp32-rotary-display</guid></item><item><title>How to Transfer Files Between Computers Using HDMI (Part 8: Registration, CRC, and a Working Transfer)</title><link>https://patrickdesjardins.com/blog/how-to-transfer-files-between-computers-using-HDMI-Part-8-registration-and-crc</link><description> ended on a frustrating note. Pagination was supposed to fix missing frames, but the real capture path still failed. I could loop the video twelve times, record 850 megs of footage, and still be short six frames. The decoder would report something like: &gt; We have not receive all frames. We received…</description><pubDate>Fri, 05 Jun 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/how-to-transfer-files-between-computers-using-HDMI-Part-8-registration-and-crc</guid></item><item><title>How a GPU Turned Kokoro TTS Bottleneck From Minutes Into Seconds</title><link>https://patrickdesjardins.com/blog/how-a-gpu-turned-kokoro-bottleneck-from-minutes-into-seconds</link><description>I recently ran into a very practical performance problem in a study-generation pipeline. The application takes lesson notes from Trilium, turns them into teaching scripts, generates flashcards, synthesizes narration with Kokoro TTS, renders a simple MP4 with ffmpeg, and uploads the result to YouTube…</description><pubDate>Mon, 01 Jun 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/how-a-gpu-turned-kokoro-bottleneck-from-minutes-into-seconds</guid></item><item><title>Automatic Audio Note Summary with Flash Card using AI</title><link>https://patrickdesjardins.com/blog/automatic-audio-note-summary-with-flash-card-using-ai</link><description>I recently  and I am taking my notes in  which allows accessing notes through an API. Since I save all my courses in a hierarchy of course → lesson → objective, I can automatically generate summaries from my own notes. My idea was not to generate notes from the course content itself but rather t…</description><pubDate>Tue, 26 May 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/automatic-audio-note-summary-with-flash-card-using-ai</guid></item><item><title>React to React Native using AI</title><link>https://patrickdesjardins.com/blog/react-to-react-native-using-ai</link><description>Early in my career, I started with VB5 and VB6 before moving to web development using PHP. Since then, I have stayed focused on the web because the ease of distribution and the ability to reach millions of users across devices always felt like a major advantage. Throughout those years, the iPhone ap…</description><pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/react-to-react-native-using-ai</guid></item><item><title>Codex usage as bad as Claude</title><link>https://patrickdesjardins.com/blog/codex-usage-as-bad-as-claude</link><description>A month ago : &gt;I’ve ended up using Codex every day. Last weekend I even used it for 5 hours straight and never hit a limit. That honeymoon phase lasted about three weeks. Lately, I’ve noticed I can barely use it for normal coding for more than 30 to 45 minutes before hitting a wall. Even worse,…</description><pubDate>Wed, 22 Apr 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/codex-usage-as-bad-as-claude</guid></item><item><title>What is Code Quality in the Era of AI?</title><link>https://patrickdesjardins.com/blog/what-is-code-quality-in-the-era-of-aI</link><description>I have been coding for over 28 years now. I have worked with Visual Basic, Java, C++, PHP, JavaScript, TypeScript, Python, and even a little bit of Rust. Having worked at over 15 companies and on at least double that many projects, I have seen a great deal of code. Throughout my education, my profes…</description><pubDate>Mon, 20 Apr 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/what-is-code-quality-in-the-era-of-aI</guid></item><item><title>Silicon Valley: Pursuit of Leadership</title><link>https://patrickdesjardins.com/blog/silicon-valley-pursuit-of-leadership</link><description>Silicon Valley is an interesting place to be. It sits at the center of innovation with large companies and funders shaping entire industries. After spending enough time here, it is easy to believe that the world operates like Silicon Valley. However, when you stay connected with family and friends o…</description><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/silicon-valley-pursuit-of-leadership</guid></item><item><title>Speed Parallel of AI to Cars</title><link>https://patrickdesjardins.com/blog/speed-parallel-of-ai-to-cars</link><description>I recently had an interesting conversation with one of our VPs. I was describing that we need to embrace the direction of AI. Today, AI is moving people from walking speed to car speed. When you think about it, that level of speed on a highway is significant, and it comes with real risk. Humans had…</description><pubDate>Mon, 13 Apr 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/speed-parallel-of-ai-to-cars</guid></item><item><title>New AI Work Process of 5 Days</title><link>https://patrickdesjardins.com/blog/new-ai-work-process-of-5-days</link><description>I am currently leading a squad of four engineers, and we are working in an unconventional way: one week at a time. While short sprints have existed in the past, we are taking a slightly different twist. The reason I introduced this new work lifecycle was that we are developing a product with an AI-f…</description><pubDate>Thu, 09 Apr 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/new-ai-work-process-of-5-days</guid></item><item><title>Automating The Gatekeeper</title><link>https://patrickdesjardins.com/blog/automating-the-gatekeeper</link><description>As AI continues to transform the development of software, we must fundamentally shift our habits to keep pace. Many traditional workflows have not yet adapted to this new reality, including early requirement gathering, permission systems, and the standard practices for design and code reviews. I hav…</description><pubDate>Mon, 06 Apr 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/automating-the-gatekeeper</guid></item><item><title>The AI-First Lifecycle</title><link>https://patrickdesjardins.com/blog/the-ai-first-lifecycle</link><description>Today, I want to talk about how software engineering is changing with AI. More specifically, how the entire software lifecycle needs to adapt. Right now, most of the attention is on coding. We see constant updates about tools like Claude, Codex, or Cursor, and how they improve developer productivity…</description><pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/the-ai-first-lifecycle</guid></item><item><title>The AI Meeting Paradox</title><link>https://patrickdesjardins.com/blog/the-ai-meeting-paradox</link><description>Today I want to talk about how AI is transforming meetings. I have noticed more and more people using it during discussions. In the past, it was already common to have laptops open in meetings, and sometimes a few people would search Google while someone was speaking. Today it feels different. Many…</description><pubDate>Mon, 30 Mar 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/the-ai-meeting-paradox</guid></item><item><title>The Vibe Coding Plateau</title><link>https://patrickdesjardins.com/blog/the-vibe-coding-plateau</link><description>Today, I want to talk about the difference between having a vibe coding project as a side project and using the same approach at work. The main difference is the long-term consequences of the code, but also the fact that the code will continue to be worked on by other people. I notice that many deve…</description><pubDate>Fri, 27 Mar 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/the-vibe-coding-plateau</guid></item><item><title>Kokoro TTS: Free using GPU with Many Voices</title><link>https://patrickdesjardins.com/blog/Kokoro-tts-free-using-gpu-with-many-voices</link><description>I recently had many voices to generate from English text. By many, I mean about 5,000 paragraphs. One requirement I had was to produce a non-robotic voice. After searching, I was open to using a service like OpenAI TTS and paying for it, but it was quite a large amount of text to generate. Since I h…</description><pubDate>Wed, 25 Mar 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/Kokoro-tts-free-using-gpu-with-many-voices</guid></item><item><title>Gemini brings my son&apos;s name in the wrong context</title><link>https://patrickdesjardins.com/blog/Gemini-my-son-wrong-context</link><description>For a little while, I moved from ChatGPT to Gemini for questions that were not related to a specific code base. Recently, I was doing some research in a new thread about houses in different areas of the United States. Suddenly, I noticed that Gemini added a note: &gt; If you are moving to a new propert…</description><pubDate>Sat, 21 Mar 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/Gemini-my-son-wrong-context</guid></item><item><title>The Consequences of Easy Access to AI</title><link>https://patrickdesjardins.com/blog/the-consequences-of-easy-access-to-ai</link><description>The Dunning–Kruger effect occurs when individuals with limited knowledge in a domain believe that they have suddenly become experts in it. With easy access to AI tools, the Dunning–Kruger effect appears stronger than ever. Software engineering has always had areas, such as user interface design,…</description><pubDate>Thu, 19 Mar 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/the-consequences-of-easy-access-to-ai</guid></item><item><title>AI and Playwright MCP</title><link>https://patrickdesjardins.com/blog/ai-playwright-mcp</link><description>User interfaces and automation have always been tricky. After all, part of the process requires seeing the final result, as theoretically styling can fall into many traps. For a long time, people created unit tests using Jest or other UI frameworks and, with utility functions, could test React compo…</description><pubDate>Mon, 16 Mar 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/ai-playwright-mcp</guid></item><item><title>Cancelled Claude Code Pro</title><link>https://patrickdesjardins.com/blog/cancelled-claude-code-pro</link><description>At the beginning of the year, I subscribed to a year of Claude Code Pro (200$). Last weekend, I cancelled it. The reason is simple: I was hitting the limit every evening after 30 to 60 minutes. Instead of upgrading from Pro to Max, which would have increased the price by 10x, I decided to try OpenAI…</description><pubDate>Thu, 12 Mar 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/cancelled-claude-code-pro</guid></item><item><title>AI Blinders remain why human still have an edge for now</title><link>https://patrickdesjardins.com/blog/AI-blinders-remain-why-humans-still-have-an-edge-for-now</link><description>&gt; The black side panels added to a horse&apos;s head during a race are primarily called blinkers (or blinders in the United States). These devices are plastic cups attached to a fabric hood placed over the horse&apos;s head and under the bridle to limit the animal&apos;s wide peripheral vision Much like a racehors…</description><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/AI-blinders-remain-why-humans-still-have-an-edge-for-now</guid></item><item><title>20$ of Codex Pro vs 20$ Claude Pro</title><link>https://patrickdesjardins.com/blog/20-codex-20-claude</link><description>I have paid $20 a month for Claude Pro since the start of the year. I usually only have time to code at night once my kids are sleeping, which gives me a tight window of two to three hours. The problem is how Claude handles usage. You get a set amount of data you can use every five hours. Even if yo…</description><pubDate>Fri, 06 Mar 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/20-codex-20-claude</guid></item><item><title>AI Coding, Trust and Review</title><link>https://patrickdesjardins.com/blog/ai-trust-and-review</link><description>The more I use AI, the more I believe it represents the future of accelerated development; however, I am also increasingly wary of its tendency to &quot;drift&quot; in the wrong direction. While it consistently finds solutions, they aren&apos;t always the optimal ones, a reality that persists whether using Claude,…</description><pubDate>Wed, 04 Mar 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/ai-trust-and-review</guid></item><item><title>Transforming Software Development one Agent at a Time</title><link>https://patrickdesjardins.com/blog/transforming-software-development-one-agent-at-time</link><description>My journey into professionally developing agents that perform software engineering tasks is going beyond having the system simply write code. As I work more and more with agents, I realize that they are excellent at following very clear directives, but they often won’t think further. A part of me…</description><pubDate>Mon, 02 Mar 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/transforming-software-development-one-agent-at-time</guid></item><item><title>How to make your AI agents remember and forget?</title><link>https://patrickdesjardins.com/blog/how-to-make-agent-ai-remember-and-forget</link><description>Like humans, an agent interacting with a large language model has memory constraints. Similarly, some models have larger capacity to retain information and act upon it. The LLM receives a limited number of tokens describing the memory it can use to reason and generate accurate responses. This capaci…</description><pubDate>Wed, 25 Feb 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/how-to-make-agent-ai-remember-and-forget</guid></item><item><title>Code Quality in 2026 with AI</title><link>https://patrickdesjardins.com/blog/code-quality-2026-with-ai</link><description>I have been working extensively with multiple AI agents coding in parallel. Imagine dozens of agents operating at the speed of ten engineers. The volume of new code reaches thousands of lines every day. The question is inevitable: how do we preserve quality? The answer may surprise some, but it is n…</description><pubDate>Mon, 23 Feb 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/code-quality-2026-with-ai</guid></item><item><title>Multi-Agents and the Future</title><link>https://patrickdesjardins.com/blog/multi-agents-and-the-future</link><description>I joined Roblox few months ago. My job description contained this paragraph: &gt;  Driving technical excellence and strategic innovation across Roblox&apos;s core operations. Lead the development of high-impact internal products that empower teams and shape the future of how Roblox operates. Use AI to trans…</description><pubDate>Thu, 19 Feb 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/multi-agents-and-the-future</guid></item><item><title>Making a Systemd Journal Dashboard</title><link>https://patrickdesjardins.com/blog/making-systemd-journal-dashboard</link><description>I’m running several projects on my mini PC: 1. Discord bot 2. YouTube Radio 3. My personal note-taking server using Trilium 4. An AI RAG system I developed for Trilium 5. A Google Home audiobook service All of them write their logs to the Linux systemd journal. To inspect logs, I had to manually S…</description><pubDate>Thu, 12 Feb 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/making-systemd-journal-dashboard</guid></item><item><title>Running Local LLM on a Nvidia 5080 for Coding</title><link>https://patrickdesjardins.com/blog/runninglocal-llm-nvidia-5080-for-coding</link><description>Few weekends ago, I wanted to see what would be the best model of coding that I could run locally on my Intel 9 with 32 gig of ram and my Nvidia 5080 with 8gig of vram. The idea was to run  to QWEN 3.0 to have a local Claude. The result was impressive in term of how fast the response occured but the…</description><pubDate>Mon, 09 Feb 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/runninglocal-llm-nvidia-5080-for-coding</guid></item><item><title>YouTube Streaming Radio with More AI</title><link>https://patrickdesjardins.com/blog/youtube-streaming-radio-with-auto-ai-summary-with-more-ai</link><description>I recently built a  that allows me to queue YouTube videos from my phone and stream only the audio back to me. I&apos;ve been using it during my commute for over two weeks now. I&apos;ve since improved several parts of the system, such as having AI suggest other videos to queue based on the last few tracks I…</description><pubDate>Thu, 05 Feb 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/youtube-streaming-radio-with-auto-ai-summary-with-more-ai</guid></item><item><title>YouTube Streaming Radio with Auto AI Summary</title><link>https://patrickdesjardins.com/blog/youtube-streaming-radio-with-auto-ai-summary</link><description>I go to the office every day of the week. I , and my commute is only 15–20 minutes, perfect for listening to an audiobook you can find on YouTube. Many of the videos I like are roughly that length. However, streaming a YouTube video from my phone has a few inconveniences. The first issue is that I…</description><pubDate>Fri, 30 Jan 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/youtube-streaming-radio-with-auto-ai-summary</guid></item><item><title>Audiobook Machine Version 2 with ESP-32</title><link>https://patrickdesjardins.com/blog/audiobook-machine-version-2-with-esp-32</link><description>Several years ago, I built an audiobook machine using a Raspberry Pi and RFID cards (see the  about the project). My daughter has been using it almost every night. I recorded more than 50 different stories, and it quickly became a hit. However, the machine was clunky. It had a few issues with wires…</description><pubDate>Thu, 22 Jan 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/audiobook-machine-version-2-with-esp-32</guid></item><item><title>Trilium with RAG for AI Prompting</title><link>https://patrickdesjardins.com/blog/trilium-rag-ai-prompt</link><description>I recently . I like Trilium a lot for its simplicity and because it is easy to move to another system later. At the same time, it remains flexible without becoming complex. Trilium has a BETA feature that allows you to provide a ChatGPT API key to perform AI prompting. Unfortunately, it never worked…</description><pubDate>Mon, 19 Jan 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/trilium-rag-ai-prompt</guid></item><item><title>Recapitulation 2025</title><link>https://patrickdesjardins.com/blog/recapitulation-2025</link><description>I realized that I skipped the recapitulation of 2024 and 2023. The last one was . Another year with a lower amount of writing with 22 blog posts. 2024 had 18 and 2023 exactly 25. Far from the average of one per 1.5 per week in the first 7 years. Nonetheless, I continue enjoying the time I spend on t…</description><pubDate>Sun, 28 Dec 2025 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/recapitulation-2025</guid></item><item><title>Trilium Note Taking with Mini-PC server host</title><link>https://patrickdesjardins.com/blog/trilium-note-taking-with-mini-pc-server-host</link><description>I have been using Microsoft OneNote since I joined Microsoft as a software engineer in 2014. I am paying Microsoft for storage as my notes increased largely when I did my Master&apos;s degree. I was uploading PDFs, annotating with a pen and taking note with a pen as well. However, I am slowly taking only…</description><pubDate>Fri, 12 Dec 2025 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/trilium-note-taking-with-mini-pc-server-host</guid></item><item><title>Python Retirement Simulator using past Sp500 performance</title><link>https://patrickdesjardins.com/blog/python-retirement-simulator-sp-500</link><description>I have recently read more about Monte Carlo simulation and the . I opted for Python and a framework called  to try different hyperparameters. I never used Optuna, but I recall from my machine learning master&apos;s degree that it is ideal to optimize toward a maximum value, which in my case would be the…</description><pubDate>Thu, 06 Nov 2025 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/python-retirement-simulator-sp-500</guid></item><item><title>Software Engineering and Remote Work</title><link>https://patrickdesjardins.com/blog/software-engineering-and-remote-work</link><description>I will skim some of the context, but in recent years, I have been in many different companies and teams with different operational models, including remote, hybrid, and in-office. In one of my experiences, the team was entirely on-site and then moved to a hybrid model. In this short article, I&apos;ll de…</description><pubDate>Wed, 29 Oct 2025 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/software-engineering-and-remote-work</guid></item><item><title>TypeScript Injection of Value Using Decorator</title><link>https://patrickdesjardins.com/blog/typescript-decorator-injection-value</link><description>TypeScript is a great language for writing code that is type-safe and easy to read. However, sometimes you need to inject a value into a class or function. This can be done using a decorator. In this article, we will see how we can inject from a single source of truth values into a class. We will al…</description><pubDate>Tue, 21 Oct 2025 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/typescript-decorator-injection-value</guid></item><item><title>SSE Streaming using HTTP Post?</title><link>https://patrickdesjardins.com/blog/sse-streaming-using-http-post</link><description> known as SSE uses by default HTTP GET with the EventSource JavaScript object. However, when handling a large volume of data, HTTP GET using a query string falls short. Relying on HTTP Post and a large body is better. In this article, I&apos;ll show how to use SSE with HTTP POST when connecting to an API…</description><pubDate>Mon, 13 Oct 2025 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/sse-streaming-using-http-post</guid></item><item><title>Python Coroutine vs Future</title><link>https://patrickdesjardins.com/blog/python-coroutine-future</link><description>Most of my day, I use TypeScript and JavaScript. The concept of asynchronous programming is relatively straightforward, involving async functions that must be awaited. To set everything in perspective for a TypeScript developer, here is a simple code: function mySyncFunction(): string { return &quot;Test…</description><pubDate>Thu, 04 Sep 2025 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/python-coroutine-future</guid></item><item><title>Python Asynchronous with to_thread</title><link>https://patrickdesjardins.com/blog/python-asynchronous-to_thread</link><description>Up to recently, I was using an older style to invoke a synchronous function in Python that required using a worker pool. However, there is a more elegant way, more concise and straightforward possibility using Python 3.9+. The new function is part of async.io and is named to_thread. Before Python ve…</description><pubDate>Thu, 28 Aug 2025 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/python-asynchronous-to_thread</guid></item><item><title>Python Modulo</title><link>https://patrickdesjardins.com/blog/python-modulo</link><description>I was writing code in Python that required a modulo. The code worked until the number was negative. -321 % 10 Applying a modulo 10 to a number is an easy way to get the last digit. 321 modulo 10 is 1. I was expecting -321 modulo 10 to be 1. That is the case in JavaScript, not in Python. In Python, -…</description><pubDate>Tue, 26 Aug 2025 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/python-modulo</guid></item><item><title>3D Printed a Race Lap Counter</title><link>https://patrickdesjardins.com/blog/3dprinting-race-lap-counter</link><description>My son received a Carrera race track for his birthday. He loves it! I recently started learning CAD and 3D printing and quickly built a simple dual-flap system that flips when the car crosses the finish line. It was simple, cost less than 1$ to print. However, looking at the design, I could see some…</description><pubDate>Tue, 19 Aug 2025 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/3dprinting-race-lap-counter</guid></item><item><title>Python Asynchronous Queue</title><link>https://patrickdesjardins.com/blog/python-asynchronous-queue</link><description>The library asyncio offers a queue. A producer injects data into the queue. A consumer reads data from the queue. The queue is first-in, first-out (FIFO) and is useful when there is incoming data that is difficult to synchronize with the output process. For example, a system might receive data and s…</description><pubDate>Fri, 15 Aug 2025 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/python-asynchronous-queue</guid></item><item><title>Python Asynchronous Code</title><link>https://patrickdesjardins.com/blog/python-asynchronous-code</link><description>Python offers various methods for handling code that executes in a non-sequential manner. Python can use asynchronous programming, threading (threading module), and multiprocessing (multiprocessing module) to achieve concurrency. In this article, we will focus on the library called asyncio, which is…</description><pubDate>Wed, 13 Aug 2025 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/python-asynchronous-code</guid></item><item><title>Electronic Water Bottle 3D Printed Machine </title><link>https://patrickdesjardins.com/blog/electronic-water-bottle-3d-printed</link><description>When I was young, I had a dot-matrix printer, followed by an inkjet, a color inkjet, and, for over 15 years, a laser printer. A month ago, I bought my first 3d printer. I am late to the party, as they became more available a few years ago, but I never found the appeal, as many people seem to print t…</description><pubDate>Fri, 18 Jul 2025 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/electronic-water-bottle-3d-printed</guid></item><item><title>Discord Bot that Uses LLM to Access User Statistics</title><link>https://patrickdesjardins.com/blog/discord-bot-that-uses-LLM-to-access-user-statistics</link><description>I own a Discord server where I have over 140 members. I have a bot that perform several automation like role assignation, finding games for the users, provide daily statistics, and more. The latest feature gives the user the ability to ask questions about their statistics using a large language mode…</description><pubDate>Tue, 15 Jul 2025 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/discord-bot-that-uses-LLM-to-access-user-statistics</guid></item><item><title>Adding an Embedded Vector Search in my Next JS SSG blog</title><link>https://patrickdesjardins.com/blog/adding-embedded-vector-search-next-js-ssg-blog</link><description>The last time I had a search on my blog was when it was hosted using WordPress. Using Next JS static site generation (SSG) for my blog and hosting it on GitHub Pages, I needed a way to implement search functionality without relying on a backend. I implemented a vector search using Python that genera…</description><pubDate>Sun, 01 Jun 2025 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/adding-embedded-vector-search-next-js-ssg-blog</guid></item><item><title>My Basic Go Stock Game First Iteration </title><link>https://patrickdesjardins.com/blog/my-basic-go-stock-game-first-iteration</link><description>Last month, I started learning the programming language Go (golang). Anytime I am learning, I always do two things: write about it and start projects. Writing helps me write my thoughts, what I&apos;ve learned, but also it always opens my mind to other ideas and questions to further my comprehension. Doi…</description><pubDate>Tue, 22 Apr 2025 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/my-basic-go-stock-game-first-iteration</guid></item><item><title>Unit Testing with Go Shaped How to Design my Functions</title><link>https://patrickdesjardins.com/blog/unit-testing-go-functions</link><description>I have developed in many ways throughout the years from a very strict object-oriented approach with Java and C# to a more functional approach using JavaScript, TypeScript, and Python. In the first project, I started using Go, and I was in the mindset of creating a function that takes an object as a…</description><pubDate>Mon, 07 Apr 2025 00:00:00 +0000</pubDate><guid isPermaLink="true">https://patrickdesjardins.com/blog/unit-testing-go-functions</guid></item></channel></rss>