56,966 blogs · [ { "id": "01a0bdcc-1c96-71fa-a004-4efe3e6b1c70", "title": "Jev Send Guard: A Tone Check Before You Hit Send", "url": "https://patrickdesjardins.com/blog/jev-send-guard-a-tone-check-before-you-hit-send", "published_at": "2026-09-19T00:00:00+00:00" }, { "id": "01a0bdcc-1c96-71fa-a004-4efe3ee0dc48", "title": "Jev in Three Places: LLM, Code Editor, Pull Request", "url": "https://patrickdesjardins.com/blog/jev-in-three-places-llm-code-editor-and-pull-request", "published_at": "2026-09-18T00:00:00+00:00" }, { "id": "01a0bdcc-1c96-71fa-a004-4efe3efd5c6a", "title": "Typesafe AI Jev Running 370 Text Rules under 2 seconds", "url": "https://patrickdesjardins.com/blog/typesafe-ai-jev-running-370-text-rules-under-2-seconds", "published_at": "2026-09-17T00:00:00+00:00" }, { "id": "01a0bdcc-1c96-71fa-a004-4efe3ff738a2", "title": "Porting the Self-Fixing Bug Workflow to a Bot With No Sentry, No Railway, No CI Runner", "url": "https://patrickdesjardins.com/blog/self-fixing-bug-discord-bot-app-log", "published_at": "2026-09-16T00:00:00+00:00" }, { "id": "01a0bdcc-1c96-71fa-a004-4efe40270252", "title": "oktopai: A 2.36x Compiler Speedup From TypeScript 7 and the Latest Teacher-Student Results", "url": "https://patrickdesjardins.com/blog/oktopai-a-2-36x-compiler-speedup-from-typescript-7-and-the-latest-teacher-student-results", "published_at": "2026-09-11T00:00:00+00:00" }, { "id": "01a0bdcc-1c96-71fa-a004-4efe40611e40", "title": "Building AudioRouter: From Google Doc to a Multi-Day Autonomous Codex Goal", "url": "https://patrickdesjardins.com/blog/building-audiorouter-from-google-doc-to-a-multi-day-autonomous-codex-goal", "published_at": "2026-09-09T00:00:00+00:00" }, { "id": "01a087bd-6d35-727e-9b24-fcabc4a5ed65", "title": "What a week of teaching a local coding model actually taught me", "url": "https://patrickdesjardins.com/blog/oktopai-week-one-teacher-student-progress", "published_at": "2026-09-05T00:00:00+00:00" }, { "id": "01a087bd-6d35-727e-9b24-fcabc5a4387e", "title": "Teaching a small local model to speak typescript", "url": "https://patrickdesjardins.com/blog/teaching-a-small-local-model-to-speak-typescript", "published_at": "2026-08-31T00:00:00+00:00" }, { "id": "01a087bd-6d35-727e-9b24-fcabc69bae4b", "title": "Oktopai: A Local Fleet of Specialized Coding Knowledge", "url": "https://patrickdesjardins.com/blog/oktopai-a-local-fleet-of-specialized-coding-knowledge", "published_at": "2026-08-26T00:00:00+00:00" }, { "id": "01a087bd-6d35-727e-9b24-fcabc6beb9c4", "title": "Building TribeMarkets with AI: Architecture and Self-Fixing Production", "url": "https://patrickdesjardins.com/blog/building-tribemarkets-with-ai-architecture-and-self-fixing-production", "published_at": "2026-08-21T00:00:00+00:00" }, { "id": "01a087bd-6d35-727e-9b24-fcabc7a85a18", "title": "Humans are Becoming Simple Megaphones", "url": "https://patrickdesjardins.com/blog/humans-are-becoming-simple-megaphones", "published_at": "2026-08-19T00:00:00+00:00" }, { "id": "01a087bd-6d35-727e-9b24-fcabc8169b3e", "title": "5-8x Coding Improvement that Could be Doubled", "url": "https://patrickdesjardins.com/blog/5-8x-coding-improvement-that-could-be-doubled", "published_at": "2026-08-14T00:00:00+00:00" }, { "id": "01a087bd-6d35-727e-9b24-fcabc8f86f9a", "title": "Using epaper for studying", "url": "https://patrickdesjardins.com/blog/using-epaper-for-studying", "published_at": "2026-07-20T00:00:00+00:00" }, { "id": "01a087bd-6d35-727e-9b24-fcabc9b27c03", "title": "HATEOAS as the Natural Interface for Autonomous Agents", "url": "https://patrickdesjardins.com/blog/hateoas-as-the-natural-interface-for-autonomous-agents", "published_at": "2026-07-17T00:00:00+00:00" }, { "id": "01a087bd-6d35-727e-9b24-fcabca171a8b", "title": "Generating Documentation with AI", "url": "https://patrickdesjardins.com/blog/generating-documentation-with-ai", "published_at": "2026-07-13T00:00:00+00:00" }, { "id": "01a087bd-6d35-727e-9b24-fcabcab38313", "title": "How to test in TypeScript 2026 edition", "url": "https://patrickdesjardins.com/blog/how-to-unit-test-private-method-in-typescript-2026-edition", "published_at": "2026-07-09T00:00:00+00:00" }, { "id": "01a087bd-6d35-727e-9b24-fcabcadc2c13", "title": "Mastodon Thread on a Static Website", "url": "https://patrickdesjardins.com/blog/mastodon-thread-static-website", "published_at": "2026-06-20T00:00:00+00:00" }, { "id": "01a087bd-6d35-727e-9b24-fcabcbbbb2de", "title": "Replacing NextJS With a Rust Static Site Generator", "url": "https://patrickdesjardins.com/blog/replacing-nextjs-with-a-rust-static-site-generator", "published_at": "2026-06-18T00:00:00+00:00" }, { "id": "01a087bd-6d35-727e-9b24-fcabccae0345", "title": "Audiobook machine version 3 using an ELECROW ESP32 Rotary Display 240x240", "url": "https://patrickdesjardins.com/blog/audiomachine-version3-using-esp32-rotary-display", "published_at": "2026-06-13T00:00:00+00:00" }, { "id": "01a087bd-6d35-727e-9b24-fcabcd807538", "title": "How to Transfer Files Between Computers Using HDMI (Part 8: Registration, CRC, and a Working Transfer)", "url": "https://patrickdesjardins.com/blog/how-to-transfer-files-between-computers-using-HDMI-Part-8-registration-and-crc", "published_at": "2026-06-05T00:00:00+00:00" }, { "id": "01a087bd-6d35-727e-9b24-fcabce1978ad", "title": "How a GPU Turned Kokoro TTS Bottleneck From Minutes Into Seconds", "url": "https://patrickdesjardins.com/blog/how-a-gpu-turned-kokoro-bottleneck-from-minutes-into-seconds", "published_at": "2026-06-01T00:00:00+00:00" }, { "id": "01a087bd-6d35-727e-9b24-fcabcefd2141", "title": "Automatic Audio Note Summary with Flash Card using AI", "url": "https://patrickdesjardins.com/blog/automatic-audio-note-summary-with-flash-card-using-ai", "published_at": "2026-05-26T00:00:00+00:00" }, { "id": "01a087bd-6d35-727e-9b24-fcabcf7dc956", "title": "React to React Native using AI", "url": "https://patrickdesjardins.com/blog/react-to-react-native-using-ai", "published_at": "2026-05-05T00:00:00+00:00" }, { "id": "01a087bd-6d35-727e-9b24-fcabcf8eac37", "title": "Codex usage as bad as Claude", "url": "https://patrickdesjardins.com/blog/codex-usage-as-bad-as-claude", "published_at": "2026-04-22T00:00:00+00:00" }, { "id": "01a087bd-6d35-727e-9b24-fcabd02ab4c0", "title": "What is Code Quality in the Era of AI?", "url": "https://patrickdesjardins.com/blog/what-is-code-quality-in-the-era-of-aI", "published_at": "2026-04-20T00:00:00+00:00" }, { "id": "01a087bd-6d35-727e-9b24-fcabd0a2fcf2", "title": "Silicon Valley: Pursuit of Leadership", "url": "https://patrickdesjardins.com/blog/silicon-valley-pursuit-of-leadership", "published_at": "2026-04-15T00:00:00+00:00" }, { "id": "01a087bd-6d35-727e-9b24-fcabd0f7eba0", "title": "Speed Parallel of AI to Cars", "url": "https://patrickdesjardins.com/blog/speed-parallel-of-ai-to-cars", "published_at": "2026-04-13T00:00:00+00:00" }, { "id": "01a087bd-6d35-727e-9b24-fcabd145f1aa", "title": "New AI Work Process of 5 Days", "url": "https://patrickdesjardins.com/blog/new-ai-work-process-of-5-days", "published_at": "2026-04-09T00:00:00+00:00" }, { "id": "01a087bd-6d35-727e-9b24-fcabd239ba5c", "title": "Automating The Gatekeeper", "url": "https://patrickdesjardins.com/blog/automating-the-gatekeeper", "published_at": "2026-04-06T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19eca0def5", "title": "The AI-First Lifecycle", "url": "https://patrickdesjardins.com/blog/the-ai-first-lifecycle", "published_at": "2026-04-02T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19ed1da89d", "title": "The AI Meeting Paradox", "url": "https://patrickdesjardins.com/blog/the-ai-meeting-paradox", "published_at": "2026-03-30T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19ed677c35", "title": "The Vibe Coding Plateau", "url": "https://patrickdesjardins.com/blog/the-vibe-coding-plateau", "published_at": "2026-03-27T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19ee020431", "title": "Kokoro TTS: Free using GPU with Many Voices", "url": "https://patrickdesjardins.com/blog/Kokoro-tts-free-using-gpu-with-many-voices", "published_at": "2026-03-25T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19ee35c521", "title": "Gemini brings my son's name in the wrong context", "url": "https://patrickdesjardins.com/blog/Gemini-my-son-wrong-context", "published_at": "2026-03-21T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19eebe534b", "title": "The Consequences of Easy Access to AI", "url": "https://patrickdesjardins.com/blog/the-consequences-of-easy-access-to-ai", "published_at": "2026-03-19T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19ef9709c6", "title": "AI and Playwright MCP", "url": "https://patrickdesjardins.com/blog/ai-playwright-mcp", "published_at": "2026-03-16T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19efd0760a", "title": "Cancelled Claude Code Pro", "url": "https://patrickdesjardins.com/blog/cancelled-claude-code-pro", "published_at": "2026-03-12T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19f0c60aa3", "title": "AI Blinders remain why human still have an edge for now", "url": "https://patrickdesjardins.com/blog/AI-blinders-remain-why-humans-still-have-an-edge-for-now", "published_at": "2026-03-09T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19f117a605", "title": "20$ of Codex Pro vs 20$ Claude Pro", "url": "https://patrickdesjardins.com/blog/20-codex-20-claude", "published_at": "2026-03-06T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19f1f6d289", "title": "AI Coding, Trust and Review", "url": "https://patrickdesjardins.com/blog/ai-trust-and-review", "published_at": "2026-03-04T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19f2acaab9", "title": "Transforming Software Development one Agent at a Time", "url": "https://patrickdesjardins.com/blog/transforming-software-development-one-agent-at-time", "published_at": "2026-03-02T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19f383e5b2", "title": "How to make your AI agents remember and forget?", "url": "https://patrickdesjardins.com/blog/how-to-make-agent-ai-remember-and-forget", "published_at": "2026-02-25T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19f398fac1", "title": "Code Quality in 2026 with AI", "url": "https://patrickdesjardins.com/blog/code-quality-2026-with-ai", "published_at": "2026-02-23T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19f3ac5149", "title": "Multi-Agents and the Future", "url": "https://patrickdesjardins.com/blog/multi-agents-and-the-future", "published_at": "2026-02-19T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19f47fad16", "title": "Making a Systemd Journal Dashboard", "url": "https://patrickdesjardins.com/blog/making-systemd-journal-dashboard", "published_at": "2026-02-12T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19f4fbc574", "title": "Running Local LLM on a Nvidia 5080 for Coding", "url": "https://patrickdesjardins.com/blog/runninglocal-llm-nvidia-5080-for-coding", "published_at": "2026-02-09T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19f53af963", "title": "YouTube Streaming Radio with More AI", "url": "https://patrickdesjardins.com/blog/youtube-streaming-radio-with-auto-ai-summary-with-more-ai", "published_at": "2026-02-05T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19f5faee3a", "title": "YouTube Streaming Radio with Auto AI Summary", "url": "https://patrickdesjardins.com/blog/youtube-streaming-radio-with-auto-ai-summary", "published_at": "2026-01-30T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19f642e9b2", "title": "Audiobook Machine Version 2 with ESP-32", "url": "https://patrickdesjardins.com/blog/audiobook-machine-version-2-with-esp-32", "published_at": "2026-01-22T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19f6b9a54f", "title": "Trilium with RAG for AI Prompting", "url": "https://patrickdesjardins.com/blog/trilium-rag-ai-prompt", "published_at": "2026-01-19T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19f73f0727", "title": "Recapitulation 2025", "url": "https://patrickdesjardins.com/blog/recapitulation-2025", "published_at": "2025-12-28T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19f768e2bf", "title": "Trilium Note Taking with Mini-PC server host", "url": "https://patrickdesjardins.com/blog/trilium-note-taking-with-mini-pc-server-host", "published_at": "2025-12-12T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19f7c140ea", "title": "Python Retirement Simulator using past Sp500 performance", "url": "https://patrickdesjardins.com/blog/python-retirement-simulator-sp-500", "published_at": "2025-11-06T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19f8362378", "title": "Software Engineering and Remote Work", "url": "https://patrickdesjardins.com/blog/software-engineering-and-remote-work", "published_at": "2025-10-29T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19f844aff4", "title": "TypeScript Injection of Value Using Decorator", "url": "https://patrickdesjardins.com/blog/typescript-decorator-injection-value", "published_at": "2025-10-21T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19f902c67d", "title": "SSE Streaming using HTTP Post?", "url": "https://patrickdesjardins.com/blog/sse-streaming-using-http-post", "published_at": "2025-10-13T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19f936bb10", "title": "Python Coroutine vs Future", "url": "https://patrickdesjardins.com/blog/python-coroutine-future", "published_at": "2025-09-04T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19f95e8087", "title": "Python Asynchronous with to_thread", "url": "https://patrickdesjardins.com/blog/python-asynchronous-to_thread", "published_at": "2025-08-28T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19fa4edb3f", "title": "Python Modulo", "url": "https://patrickdesjardins.com/blog/python-modulo", "published_at": "2025-08-26T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19faa8de4b", "title": "3D Printed a Race Lap Counter", "url": "https://patrickdesjardins.com/blog/3dprinting-race-lap-counter", "published_at": "2025-08-19T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19fb207805", "title": "Python Asynchronous Queue", "url": "https://patrickdesjardins.com/blog/python-asynchronous-queue", "published_at": "2025-08-15T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19fc093f26", "title": "Python Asynchronous Code", "url": "https://patrickdesjardins.com/blog/python-asynchronous-code", "published_at": "2025-08-13T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19fc76623d", "title": "Electronic Water Bottle 3D Printed Machine", "url": "https://patrickdesjardins.com/blog/electronic-water-bottle-3d-printed", "published_at": "2025-07-18T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19fd70d97e", "title": "Discord Bot that Uses LLM to Access User Statistics", "url": "https://patrickdesjardins.com/blog/discord-bot-that-uses-LLM-to-access-user-statistics", "published_at": "2025-07-15T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19fe30fbfa", "title": "Adding an Embedded Vector Search in my Next JS SSG blog", "url": "https://patrickdesjardins.com/blog/adding-embedded-vector-search-next-js-ssg-blog", "published_at": "2025-06-01T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19fe4f6311", "title": "My Basic Go Stock Game First Iteration", "url": "https://patrickdesjardins.com/blog/my-basic-go-stock-game-first-iteration", "published_at": "2025-04-22T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19ff13b9cb", "title": "Unit Testing with Go Shaped How to Design my Functions", "url": "https://patrickdesjardins.com/blog/unit-testing-go-functions", "published_at": "2025-04-07T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a19ffe5372b", "title": "Starting to Learn Go", "url": "https://patrickdesjardins.com/blog/starting-to-learn-go", "published_at": "2025-03-25T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a1a008af347", "title": "Python Automated Test", "url": "https://patrickdesjardins.com/blog/python-unit-test", "published_at": "2025-03-05T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a1a0091a637", "title": "My Thoughts on Python (2025)", "url": "https://patrickdesjardins.com/blog/my-thoughts-on-python-2025", "published_at": "2025-01-31T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a1a00f24b00", "title": "The Curse of the Overloaded People", "url": "https://patrickdesjardins.com/blog/the-curse-of-overloaded-people", "published_at": "2025-01-24T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a1a018c66f3", "title": "10 Points to Increase Software Quality", "url": "https://patrickdesjardins.com/blog/10-points-to-increase-software-quality", "published_at": "2025-01-14T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a1a02409954", "title": "The Evolution of my Gaming Discord Bot Using Python", "url": "https://patrickdesjardins.com/blog/the-evolution-gaming-discord-bot-using-python", "published_at": "2025-01-02T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a1a02780dab", "title": "How Long Does It Take to Write a System Design Book?", "url": "https://patrickdesjardins.com/blog/how-long-does-it-take-to-write-a-system-design-book", "published_at": "2024-11-11T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a1a03669496", "title": "The Reasons Why I Wrote a System Design Book", "url": "https://patrickdesjardins.com/blog/why-i-wrote-a-system-design-book", "published_at": "2024-11-07T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a1a0408f40e", "title": "An Overview of the Creation of a Discord Bot Using Python", "url": "https://patrickdesjardins.com/blog/python-discord-bot-introduction", "published_at": "2024-10-26T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a1a046e3e3d", "title": "Hosting a Discord Bot on a Raspberry PI", "url": "https://patrickdesjardins.com/blog/hosting-a-discord-bot-on-raspberry-pi", "published_at": "2024-09-21T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a1a04f27cf6", "title": "How to create MacOS notification for Pull Request Code Review?", "url": "https://patrickdesjardins.com/blog/git-notification-macos-pull-request", "published_at": "2024-09-06T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a1a05977dc9", "title": "NextJS API Pipe And Filter Pattern", "url": "https://patrickdesjardins.com/blog/next-js-api-pipe-and-filter-pattern", "published_at": "2024-07-25T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a1a062d228a", "title": "TypeScript 5.4 NoInfer Utility Type", "url": "https://patrickdesjardins.com/blog/typescript-noinfer-utility-type", "published_at": "2024-05-09T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a1a06828168", "title": "Git Hook in a NextJS Project using TypeScript and Lint", "url": "https://patrickdesjardins.com/blog/git-hook-nextjs-project-typescript-lint", "published_at": "2024-04-24T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a1a06d798d7", "title": "NextJS 14 Authentication and Middleware", "url": "https://patrickdesjardins.com/blog/nextjs14-authentication-and-middleware", "published_at": "2024-04-14T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a1a075def0b", "title": "Adding Console and Network Logs in Playwright", "url": "https://patrickdesjardins.com/blog/adding-console-and-network-logs-in-playwright", "published_at": "2024-04-01T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a1a07e6c8b0", "title": "How to Silence Bash Commands", "url": "https://patrickdesjardins.com/blog/how-to-silence-bash-commands", "published_at": "2024-03-21T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a1a0811d3fd", "title": "How to Debug a Kubernetes Pod", "url": "https://patrickdesjardins.com/blog/how-to-debug-a-kubernetes-pod", "published_at": "2024-03-13T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a1a083bf680", "title": "TypeScript and Jest to Mock a Module Function", "url": "https://patrickdesjardins.com/blog/typescript-and-jest-to-mock-a-module-function", "published_at": "2024-03-08T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a1a0867fc26", "title": "Coding a Blog with NextJS SSG and MDX", "url": "https://patrickdesjardins.com/blog/coding-a-blog-with-nextjs-ssg-and-mdx", "published_at": "2024-02-21T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a1a09452249", "title": "Migrating my Static Blog from Gatsby to NextJS", "url": "https://patrickdesjardins.com/blog/migrating-static-blog-gatsby-to-nextjs", "published_at": "2024-02-14T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a1a094c3d55", "title": "Display Git Pull Request Status on the Steelseries APEX 7 TKL keyboard OLED", "url": "https://patrickdesjardins.com/blog/git-to-steelseries-keyboard", "published_at": "2024-02-07T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a1a09f46207", "title": "Merge and Rebase with Auto Stash to Accelerate Pulling", "url": "https://patrickdesjardins.com/blog/git-autostash", "published_at": "2024-01-30T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a1a0a484642", "title": "Reasons for not using Property Destructuring in React when using TypeScript", "url": "https://patrickdesjardins.com/blog/typescript-react-reasons-not-to-desctruct-props", "published_at": "2024-01-26T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a1a0b01dbbb", "title": "Implementing the Map and Reduce JavaScript Functions in TypeScript", "url": "https://patrickdesjardins.com/blog/implementing-the-map-and-reduce-javascript-function-in-typescript", "published_at": "2023-12-08T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a1a0b29bff8", "title": "Learning the Linux Command Line lsof and awk by Killing a Process that Hold a Port", "url": "https://patrickdesjardins.com/blog/learning-lsof-awk-by-killing-a-process", "published_at": "2023-09-19T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a1a0bdf19e8", "title": "Typescript Consuming and Producing Redpanda Messages", "url": "https://patrickdesjardins.com/blog/typescript-consuming-producing-redpanda-message", "published_at": "2023-09-11T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a1a0c26ed76", "title": "How to Build NodeJS with OpenSSL?", "url": "https://patrickdesjardins.com/blog/how-to-build-nodejs-with-openssl", "published_at": "2023-08-15T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a1a0ce321b9", "title": "How to Transfer Files Between Computers Using HDMI (Part 7: Pagination)", "url": "https://patrickdesjardins.com/blog/how-to-transfer-files-between-computers-using-HDMI-Part-7-pagination", "published_at": "2023-07-08T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a1a0dbecfcd", "title": "How to Transfer Files Between Computers Using HDMI (Part 6: Instruction and Black and White)", "url": "https://patrickdesjardins.com/blog/how-to-transfer-files-between-computers-using-HDMI-Part-6-instruction-black-white", "published_at": "2023-06-14T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a1a0dd77b13", "title": "How to Transfer Files Between Computers Using HDMI (Part 5: Instruction Header)", "url": "https://patrickdesjardins.com/blog/how-to-transfer-files-between-computers-using-HDMI-Part-5-instruction-header", "published_at": "2023-06-04T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a1a0e1f2907", "title": "How to Transfer Files Between Computers Using HDMI (Part 4: HDMI Failure)", "url": "https://patrickdesjardins.com/blog/how-to-transfer-files-between-computers-using-HDMI-Part-4-hdmi-failure", "published_at": "2023-05-26T00:00:00+00:00" }, { "id": "01a087bd-6d36-7135-aff9-8a1a0edfc33f", "title": "How to Transfer Files Between Computers Using HDMI (Part 3: Reading Video)", "url": "https://patrickdesjardins.com/blog/how-to-transfer-files-between-computers-using-HDMI-Part-3-reading-video", "published_at": "2023-05-23T00:00:00+00:00" } ] posts Claim your blog
Back to Patrick Desjardins Blog
Blog · corpus.blog/blogs/patrickdesjardins.com/posts

Patrick Desjardins Blog

patrickdesjardins.com

2026

2025

2024

2023