<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Afa' — Code, Systems &amp; AI</title><link>https://afa.demanou.com/</link><description>A personal engineering notebook about software, systems, infrastructure, AI and things worth understanding.</description><language>en</language><copyright>© 2026 Afa'</copyright><managingEditor>Afa'</managingEditor><generator>Hugo</generator><atom:link href="https://afa.demanou.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Building a Complete AI Engineering Team with DSH Agent Presets</title><link>https://afa.demanou.com/posts/2026/building-a-complete-ai-engineering-team-with-dsh-agent-presets/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2026/building-a-complete-ai-engineering-team-with-dsh-agent-presets/</guid><pubDate>Sun, 20 Sep 2026 13:30:40 +0000</pubDate><category>AI, DSH, Tooling</category><description>Build a multi-agent AI engineering workflow with DSH agent presets.</description></item><item><title>Taking Oremi Izwi to the GPU: What We Learned from a Deep TTS Performance Investigation</title><link>https://afa.demanou.com/posts/2026/taking-oremi-izwi-to-the-gpu-what-we-learned-from-a-deep-tts-performance-investigation/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2026/taking-oremi-izwi-to-the-gpu-what-we-learned-from-a-deep-tts-performance-investigation/</guid><pubDate>Sat, 19 Sep 2026 13:17:42 +0000</pubDate><category>AI, GPU, Python, TTS</category><description>A deep performance investigation into moving the Oremi Izwi text-to-speech service to the GPU.</description></item><item><title>Docker Swarm: How to Fix “error creating vxlan interface: file exists”</title><link>https://afa.demanou.com/posts/2026/docker-swarm-how-to-fix-error-creating-vxlan-interface-file-exists/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2026/docker-swarm-how-to-fix-error-creating-vxlan-interface-file-exists/</guid><pubDate>Fri, 18 Sep 2026 14:58:47 +0000</pubDate><category>Docker, Networking</category><description>Fix Docker Swarm overlay networks failing with 'error creating vxlan interface: file exists'.</description></item><item><title>Fixing Docker Swarm Startup Failures on Debian 13 Due to Network Timing</title><link>https://afa.demanou.com/posts/2025/fixing-docker-swarm-startup-failures-on-debian-13-due-to-network-timing/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2025/fixing-docker-swarm-startup-failures-on-debian-13-due-to-network-timing/</guid><pubDate>Sat, 27 Sep 2025 14:32:33 +0000</pubDate><category>Docker, Linux, Networking</category><description>Diagnose and fix Docker Swarm failing to start on Debian 13 when the network is not ready at boot.</description></item><item><title>Installing NVIDIA Drivers and CUDA 12.6 on Debian 13 (RTX 5070)</title><link>https://afa.demanou.com/posts/2025/installing-nvidia-drivers-and-cuda-12-6-on-debian-13-rtx-5070/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2025/installing-nvidia-drivers-and-cuda-12-6-on-debian-13-rtx-5070/</guid><pubDate>Sat, 27 Sep 2025 12:22:10 +0000</pubDate><category>Linux, GPU, CUDA, Docker</category><description>Install NVIDIA drivers, CUDA 12.6 and Docker GPU support on Debian 13 for an RTX 5070.</description></item><item><title>Streamlining Git Commits with AI: Using Ollama Commit Extension for Better Conventional Commits</title><link>https://afa.demanou.com/posts/2025/streamlining-git-commits-with-ai-using-ollama-commit-extension-for-better-conventional-commits/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2025/streamlining-git-commits-with-ai-using-ollama-commit-extension-for-better-conventional-commits/</guid><pubDate>Sat, 19 Jul 2025 02:10:26 +0000</pubDate><category>Git, AI, Ollama</category><description>Use the Ollama commit extension to generate Conventional Commit messages locally with an LLM.</description></item><item><title>Crafting Clear FastAPI Docstrings for OpenAPI: A Human-Centered Approach</title><link>https://afa.demanou.com/posts/2025/crafting-clear-fastapi-docstrings-for-openapi-a-human-centered-approach/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2025/crafting-clear-fastapi-docstrings-for-openapi-a-human-centered-approach/</guid><pubDate>Mon, 12 May 2025 09:08:12 +0000</pubDate><category>Python, FastAPI, Web</category><description>Write FastAPI docstrings that produce clear, human-centred OpenAPI documentation.</description></item><item><title>How to Fix "The swarm does not have a leader" in Docker Swarm</title><link>https://afa.demanou.com/posts/2025/how-to-fix-the-swarm-does-not-have-a-leader-in-docker-swarm/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2025/how-to-fix-the-swarm-does-not-have-a-leader-in-docker-swarm/</guid><pubDate>Sun, 04 May 2025 06:55:41 +0000</pubDate><category>Docker, Networking</category><description>Recover a Docker Swarm cluster that has lost quorum and reports that the swarm has no leader.</description></item><item><title>How to Disable the Nouveau Kernel Driver for NVIDIA Graphics Cards in Fedora 41</title><link>https://afa.demanou.com/posts/2025/how-to-disable-the-nouveau-kernel-driver-for-nvidia-graphics-cards-in-fedora-41/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2025/how-to-disable-the-nouveau-kernel-driver-for-nvidia-graphics-cards-in-fedora-41/</guid><pubDate>Sat, 22 Mar 2025 08:25:44 +0000</pubDate><category>Linux, GPU</category><description>Disable the Nouveau kernel driver on Fedora 41 before installing the NVIDIA proprietary driver.</description></item><item><title>ChatGPT V2 Personality Prompt</title><link>https://afa.demanou.com/posts/2025/chatgpt-v2-personality-prompt/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2025/chatgpt-v2-personality-prompt/</guid><pubDate>Wed, 19 Mar 2025 15:50:23 +0000</pubDate><category>AI</category><description>A v2 system prompt that gives ChatGPT a stable, reusable personality and operating style.</description></item><item><title>Introduction to Nix Shell: Simplifying Development Environments</title><link>https://afa.demanou.com/posts/2025/introduction-to-nix-shell-simplifying-development-environments/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2025/introduction-to-nix-shell-simplifying-development-environments/</guid><pubDate>Thu, 13 Mar 2025 09:02:52 +0000</pubDate><category>Nix, Tooling</category><description>An introduction to nix-shell for reproducible development environments.</description></item><item><title>Introduction to Devbox: Simplify Development Environments with Jetify</title><link>https://afa.demanou.com/posts/2025/introduction-to-devbox-simplify-development-environments-with-jetify/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2025/introduction-to-devbox-simplify-development-environments-with-jetify/</guid><pubDate>Thu, 13 Mar 2025 08:45:00 +0000</pubDate><category>Devbox, Tooling</category><description>An introduction to Devbox for reproducible, per-project development environments.</description></item><item><title>Introduction to Holehe: A Powerful Tool for Email Reconnaissance</title><link>https://afa.demanou.com/posts/2025/introduction-to-holehe-a-powerful-tool-for-email-reconnaissance/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2025/introduction-to-holehe-a-powerful-tool-for-email-reconnaissance/</guid><pubDate>Thu, 13 Mar 2025 08:40:18 +0000</pubDate><category>Security, Python</category><description>An introduction to Holehe, a Python tool that checks where an email address is registered.</description></item><item><title>Immich Custom CSS</title><link>https://afa.demanou.com/posts/2024/immich-custom-css/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2024/immich-custom-css/</guid><pubDate>Fri, 02 Aug 2024 12:41:24 +0000</pubDate><category>CSS, Web, Immich</category><description>Custom CSS that restyles Immich, including a dark mode and an embedded font.</description></item><item><title>Kate LSP Client: Run pylsp for a python with virtual environment</title><link>https://afa.demanou.com/posts/2024/kate-lsp-client-run-pylsp-for-a-python-with-virtual-environment/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2024/kate-lsp-client-run-pylsp-for-a-python-with-virtual-environment/</guid><pubDate>Fri, 12 Apr 2024 09:58:57 +0000</pubDate><category>Python, Linux, Tooling</category><description>Configure Kate to run python-lsp-server from a project virtual environment.</description></item><item><title>Traefik Healthcheck</title><link>https://afa.demanou.com/posts/2024/traefik-healthcheck/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2024/traefik-healthcheck/</guid><pubDate>Wed, 06 Mar 2024 08:02:23 +0000</pubDate><category>Docker, Networking, Traefik</category><description>Add a healthcheck to a Traefik service in Docker Compose.</description></item><item><title>ListView</title><link>https://afa.demanou.com/posts/2023/listview/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2023/listview/</guid><pubDate>Thu, 14 Dec 2023 14:59:13 +0000</pubDate><category>Vue, TypeScript, Web</category><description>A reusable Vue list view with typed columns, sorting and a sticky header element.</description></item><item><title>LocalStorage.ts</title><link>https://afa.demanou.com/posts/2023/localstorage-ts/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2023/localstorage-ts/</guid><pubDate>Mon, 13 Nov 2023 08:45:59 +0000</pubDate><category>TypeScript, Web</category><description>A typed localStorage wrapper with namespaced keys and typed getters and setters.</description></item><item><title>LoaderBar.vue</title><link>https://afa.demanou.com/posts/2023/loaderbar-vue/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2023/loaderbar-vue/</guid><pubDate>Tue, 12 Sep 2023 12:21:03 +0000</pubDate><category>Vue, CSS, Web</category><description>A lightweight, themeable loading bar component for Vue.</description></item><item><title>Use RT3290 Bluetooth Adapter on Ubuntu 22.04</title><link>https://afa.demanou.com/posts/2023/use-rt3290-bluetooth-adapter-on-ubuntu-22-04/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2023/use-rt3290-bluetooth-adapter-on-ubuntu-22-04/</guid><pubDate>Thu, 20 Jul 2023 20:19:07 +0000</pubDate><category>Linux, Networking</category><description>Get an RT3290 Bluetooth adapter working on Ubuntu 22.04 with the Xanmod kernel.</description></item><item><title>Simple Local Storage object with typings</title><link>https://afa.demanou.com/posts/2023/simple-local-storage-object-with-typings/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2023/simple-local-storage-object-with-typings/</guid><pubDate>Thu, 29 Jun 2023 08:22:35 +0000</pubDate><category>TypeScript, Web</category><description>A simple typed localStorage object with namespaced keys and validated values.</description></item><item><title>Offline Rest Translation Service</title><link>https://afa.demanou.com/posts/2023/offline-rest-translation-service/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2023/offline-rest-translation-service/</guid><pubDate>Tue, 09 May 2023 09:49:25 +0000</pubDate><category>Python, AI, Nix, Web</category><description>An offline REST translation service with a Nix environment and a small HTTP API.</description></item><item><title>TTS with https://pypi.org/project/TTS</title><link>https://afa.demanou.com/posts/2023/tts-with-https-pypi-org-project-tts/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2023/tts-with-https-pypi-org-project-tts/</guid><pubDate>Thu, 20 Apr 2023 14:37:53 +0000</pubDate><category>Python, AI, TTS</category><description>List the French and English voices in the TTS package and synthesise speech with them.</description></item><item><title>Question Answering with transformers</title><link>https://afa.demanou.com/posts/2023/question-answering-with-transformers/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2023/question-answering-with-transformers/</guid><pubDate>Wed, 12 Apr 2023 18:02:50 +0000</pubDate><category>Python, AI, Transformers</category><description>Answer questions from a context with a Hugging Face question-answering pipeline.</description></item><item><title>Zero-Shot classification with Transformers</title><link>https://afa.demanou.com/posts/2023/zero-shot-classification-with-transformers/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2023/zero-shot-classification-with-transformers/</guid><pubDate>Thu, 16 Mar 2023 08:55:03 +0000</pubDate><category>Python, AI, Transformers</category><description>Classify text into arbitrary labels with a zero-shot classification pipeline.</description></item><item><title>Text Generation with GPT2</title><link>https://afa.demanou.com/posts/2023/text-generation-with-gpt2/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2023/text-generation-with-gpt2/</guid><pubDate>Thu, 16 Mar 2023 03:43:23 +0000</pubDate><category>Python, AI, Transformers</category><description>Generate French text with a small GPT-2 model and Transformers.</description></item><item><title>Speech-To-Text in Python</title><link>https://afa.demanou.com/posts/2023/speech-to-text-in-python/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2023/speech-to-text-in-python/</guid><pubDate>Wed, 15 Mar 2023 22:47:21 +0000</pubDate><category>Python, AI, Whisper</category><description>Transcribe audio to text in Python with OpenAI's Whisper.</description></item><item><title>Text-to-Speech in Python</title><link>https://afa.demanou.com/posts/2023/text-to-speech-in-python/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2023/text-to-speech-in-python/</guid><pubDate>Tue, 07 Mar 2023 05:56:43 +0000</pubDate><category>Python, AI, TTS</category><description>Convert text to speech in Python with picotts and pyttsx3.</description></item><item><title>Use transformers to translate English to French</title><link>https://afa.demanou.com/posts/2023/use-transformers-to-translate-english-to-french/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2023/use-transformers-to-translate-english-to-french/</guid><pubDate>Fri, 03 Mar 2023 12:45:57 +0000</pubDate><category>Python, AI, Transformers, Nix</category><description>Translate English to French with a Hugging Face pipeline inside a Nix environment.</description></item><item><title>Vue Elements</title><link>https://afa.demanou.com/posts/2023/vue-elements/</link><guid isPermaLink="true">https://afa.demanou.com/posts/2023/vue-elements/</guid><pubDate>Mon, 06 Feb 2023 14:42:09 +0000</pubDate><category>Vue, Web, CSS</category><description>A set of reusable Vue 2.7 form and layout components.</description></item></channel></rss>