<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Einenlum</title><description>Einenlum&apos;s blog</description><link>https://www.einenlum.com/</link><language>en-us</language><item><title>Git Shitstorm: How to Make Any Developer Lose Their Mind</title><link>https://www.einenlum.com/articles/git-shitstorm/</link><guid isPermaLink="true">https://www.einenlum.com/articles/git-shitstorm/</guid><description>A developer&apos;s worst nightmare: a tool that silently corrupts your Git history</description><pubDate>Thu, 29 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Could we make chat apps cringe? Introducing Cringe Chat</title><link>https://www.einenlum.com/articles/cringe-chat/</link><guid isPermaLink="true">https://www.einenlum.com/articles/cringe-chat/</guid><description>Small experiment: what would it feel like to see how people type their messages?</description><pubDate>Mon, 26 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Tailwind Alchemist: find all tailwind colors in your codebase</title><link>https://www.einenlum.com/articles/tailwind-alchemist-find-all-tailwind-colors-in-your-codebase/</link><guid isPermaLink="true">https://www.einenlum.com/articles/tailwind-alchemist-find-all-tailwind-colors-in-your-codebase/</guid><description>When you&apos;re using libs like DaisyUI, you don&apos;t want to hardcode Tailwind color names in your codebase. I built a tool for this.</description><pubDate>Fri, 23 Jan 2026 00:00:00 GMT</pubDate></item><item><title>From PHP to Python - v2 is out! 🐘🐍</title><link>https://www.einenlum.com/articles/from-php-to-python-v2-is-out/</link><guid isPermaLink="true">https://www.einenlum.com/articles/from-php-to-python-v2-is-out/</guid><description>My book has evolved into an online course.</description><pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate></item><item><title>My PHP Wishlist</title><link>https://www.einenlum.com/articles/my-php-wishlist/</link><guid isPermaLink="true">https://www.einenlum.com/articles/my-php-wishlist/</guid><description>My personal take on what would make me like PHP even more.</description><pubDate>Sun, 18 Jan 2026 00:00:00 GMT</pubDate></item><item><title>How to use sandboxed Claude with PHP</title><link>https://www.einenlum.com/articles/how-to-use-sandboxed-claude-with-php/</link><guid isPermaLink="true">https://www.einenlum.com/articles/how-to-use-sandboxed-claude-with-php/</guid><description>How I set up my Manjaro Linux to use Claude with PHP and Laravel boost through docker sandbox</description><pubDate>Tue, 06 Jan 2026 00:00:00 GMT</pubDate></item><item><title>Yahoo, you suck. Badly.</title><link>https://www.einenlum.com/articles/yahoo-you-suck/</link><guid isPermaLink="true">https://www.einenlum.com/articles/yahoo-you-suck/</guid><description>Deleting a part of people&apos;s lives without any warning is not what you would expect from a serious company.</description><pubDate>Wed, 05 Feb 2025 22:00:00 GMT</pubDate></item><item><title>Client-side encryption for web apps (4/4): Possible improvements and conclusion</title><link>https://www.einenlum.com/articles/client-side-encryption-for-web-apps-4/</link><guid isPermaLink="true">https://www.einenlum.com/articles/client-side-encryption-for-web-apps-4/</guid><description>There are still many things we could do to improve the security of our app, but we learned a lot.</description><pubDate>Sun, 19 Jan 2025 09:00:00 GMT</pubDate></item><item><title>Client-side encryption for web apps (3/4): Key Encryption Key (KEK)</title><link>https://www.einenlum.com/articles/client-side-encryption-for-web-apps-3/</link><guid isPermaLink="true">https://www.einenlum.com/articles/client-side-encryption-for-web-apps-3/</guid><description>Here comes a new challenger: the Key Encryption Key. We&apos;ll see how it can help us solve the issue of changing a user&apos;s password without losing their data.</description><pubDate>Sat, 18 Jan 2025 08:00:00 GMT</pubDate></item><item><title>Client-side encryption for web apps (2/4): Storing the salt and DEK, and encrypting/decrypting data</title><link>https://www.einenlum.com/articles/client-side-encryption-for-web-apps-2/</link><guid isPermaLink="true">https://www.einenlum.com/articles/client-side-encryption-for-web-apps-2/</guid><description>We need to store the salt on the backend. We also need to store the DEK client-side. We will then encrypt and decrypt data.</description><pubDate>Fri, 17 Jan 2025 07:00:00 GMT</pubDate></item><item><title>Client-side encryption for web apps (1/4): PBKDF2, DEK and CryptoJS</title><link>https://www.einenlum.com/articles/client-side-encryption-for-web-apps-1/</link><guid isPermaLink="true">https://www.einenlum.com/articles/client-side-encryption-for-web-apps-1/</guid><description>In this series of articles, I document my journey to learning client-side encryption. We will cover how to derive a key from a password in the browser.</description><pubDate>Thu, 16 Jan 2025 06:00:00 GMT</pubDate></item><item><title>The beauty of goofy diagrams</title><link>https://www.einenlum.com/articles/the-beauty-of-goofy-diagrams/</link><guid isPermaLink="true">https://www.einenlum.com/articles/the-beauty-of-goofy-diagrams/</guid><description>Looking serious is not always the best way to teach things.</description><pubDate>Wed, 15 Jan 2025 00:00:00 GMT</pubDate></item><item><title>Keep it simple, silly</title><link>https://www.einenlum.com/articles/keep-it-simple-silly/</link><guid isPermaLink="true">https://www.einenlum.com/articles/keep-it-simple-silly/</guid><description>An article about pinball machines, APIs, and bringing a bar idea to life.</description><pubDate>Tue, 07 Jan 2025 00:00:00 GMT</pubDate></item><item><title>Should everything be blazingly fast?</title><link>https://www.einenlum.com/articles/should-everything-be-blazingly-fast/</link><guid isPermaLink="true">https://www.einenlum.com/articles/should-everything-be-blazingly-fast/</guid><description>Fast seems to be the new trend. Are we sure it&apos;s always worth it?</description><pubDate>Tue, 08 Aug 2023 00:00:00 GMT</pubDate></item><item><title>Implementing client-side search for my static blog</title><link>https://www.einenlum.com/articles/implementing-client-side-search-for-my-static-blog/</link><guid isPermaLink="true">https://www.einenlum.com/articles/implementing-client-side-search-for-my-static-blog/</guid><description>It was quite easy to do thanks to Pagefind.</description><pubDate>Sat, 22 Jul 2023 00:00:00 GMT</pubDate></item><item><title>How I turned a GitHub repository into a published PDF book</title><link>https://www.einenlum.com/articles/how-i-built-my-book-pdf/</link><guid isPermaLink="true">https://www.einenlum.com/articles/how-i-built-my-book-pdf/</guid><description>Here is how I transformed my Markdown book into a PDF file. If you are looking for a simple way, you might get disappointed.</description><pubDate>Tue, 18 Jul 2023 00:00:00 GMT</pubDate></item><item><title>Windows, who do you think you are?</title><link>https://www.einenlum.com/articles/windows-who-do-you-think-you-are/</link><guid isPermaLink="true">https://www.einenlum.com/articles/windows-who-do-you-think-you-are/</guid><description>My BIOS doesn&apos;t belong to you.</description><pubDate>Mon, 10 Jul 2023 00:00:00 GMT</pubDate></item><item><title>How to preview colorschemes in Neovim</title><link>https://www.einenlum.com/articles/preview-colorschemes-in-neovim/</link><guid isPermaLink="true">https://www.einenlum.com/articles/preview-colorschemes-in-neovim/</guid><description>Fzf-lua is a must-have plugin.</description><pubDate>Thu, 06 Jul 2023 00:00:00 GMT</pubDate></item><item><title>This Week I Learned: 2023W19</title><link>https://www.einenlum.com/articles/twil-2023-19/</link><guid isPermaLink="true">https://www.einenlum.com/articles/twil-2023-19/</guid><description>TWIL about Vim, Distrobox and PHPUnit.</description><pubDate>Tue, 23 May 2023 00:00:00 GMT</pubDate></item><item><title>This Week I Learned: 2023W18</title><link>https://www.einenlum.com/articles/twil-2023-18/</link><guid isPermaLink="true">https://www.einenlum.com/articles/twil-2023-18/</guid><description>TWIL about PHP, HTTP and CSS.</description><pubDate>Wed, 17 May 2023 00:00:00 GMT</pubDate></item><item><title>My book - From PHP to Python - is out!</title><link>https://www.einenlum.com/articles/my-book-from-php-to-python-is-out/</link><guid isPermaLink="true">https://www.einenlum.com/articles/my-book-from-php-to-python-is-out/</guid><description>After two years of work, my book is finally released.</description><pubDate>Tue, 09 May 2023 00:00:00 GMT</pubDate></item><item><title>This Week I Learned: 2023W13</title><link>https://www.einenlum.com/articles/twil-2023-13/</link><guid isPermaLink="true">https://www.einenlum.com/articles/twil-2023-13/</guid><description>TWIL about Python, JSON and Neovim.</description><pubDate>Tue, 04 Apr 2023 00:00:00 GMT</pubDate></item><item><title>This Week I Learned: 2023W11</title><link>https://www.einenlum.com/articles/twil-2023-11/</link><guid isPermaLink="true">https://www.einenlum.com/articles/twil-2023-11/</guid><description>TWIL about Python, vim, PHP.</description><pubDate>Wed, 22 Mar 2023 00:00:00 GMT</pubDate></item><item><title>This Week I Learned: 2023W09</title><link>https://www.einenlum.com/articles/twil-2023-09/</link><guid isPermaLink="true">https://www.einenlum.com/articles/twil-2023-09/</guid><description>TWIL about Web crawling, Python and AI.</description><pubDate>Wed, 08 Mar 2023 00:00:00 GMT</pubDate></item><item><title>This Week I Learned: 2023W08</title><link>https://www.einenlum.com/articles/twil-2023-08/</link><guid isPermaLink="true">https://www.einenlum.com/articles/twil-2023-08/</guid><description>TWIL about encrypted HTML, Psql, PHP, VS Code, Civet.</description><pubDate>Tue, 28 Feb 2023 00:00:00 GMT</pubDate></item><item><title>This Week I Learned: 2023W06</title><link>https://www.einenlum.com/articles/twil-2023-06/</link><guid isPermaLink="true">https://www.einenlum.com/articles/twil-2023-06/</guid><description>TWIL about Lighthouse, Carbonyl, PHP, JSON Resume.</description><pubDate>Mon, 20 Feb 2023 00:00:00 GMT</pubDate></item><item><title>This Week I Learned: 2023W04</title><link>https://www.einenlum.com/articles/twil-2023-04/</link><guid isPermaLink="true">https://www.einenlum.com/articles/twil-2023-04/</guid><description>TWIL about Ara, PHP, CSS, Astro and Kodezi.</description><pubDate>Wed, 01 Feb 2023 00:00:00 GMT</pubDate></item><item><title>This Week I Learned: 2023W03</title><link>https://www.einenlum.com/articles/twil-2023-03/</link><guid isPermaLink="true">https://www.einenlum.com/articles/twil-2023-03/</guid><description>TWIL about PXP, Lua, Javascript, Cryptography and Git.</description><pubDate>Mon, 23 Jan 2023 00:00:00 GMT</pubDate></item><item><title>This Week I Learned: 2023W02</title><link>https://www.einenlum.com/articles/twil-2023-02/</link><guid isPermaLink="true">https://www.einenlum.com/articles/twil-2023-02/</guid><description>TWIL about Internet protocols, Max integer, Javascript and Neovim.</description><pubDate>Mon, 16 Jan 2023 00:00:00 GMT</pubDate></item><item><title>This Week I Learned: 2023W01</title><link>https://www.einenlum.com/articles/twil-2023-01/</link><guid isPermaLink="true">https://www.einenlum.com/articles/twil-2023-01/</guid><description>TWIL about Typescript, Obsidian, Symfony, Security, Lua and Neovim.</description><pubDate>Tue, 10 Jan 2023 00:00:00 GMT</pubDate></item><item><title>What a year.</title><link>https://www.einenlum.com/articles/what-a-year/</link><guid isPermaLink="true">https://www.einenlum.com/articles/what-a-year/</guid><description>Some feedback on what happened in 2022.</description><pubDate>Fri, 23 Dec 2022 00:00:00 GMT</pubDate></item><item><title>This Week I Learned: 2022W50</title><link>https://www.einenlum.com/articles/twil-2022-50/</link><guid isPermaLink="true">https://www.einenlum.com/articles/twil-2022-50/</guid><description>TWIL about MySQL, PHP, and Vim.</description><pubDate>Tue, 20 Dec 2022 00:00:00 GMT</pubDate></item><item><title>This Week I Learned: 2022W48</title><link>https://www.einenlum.com/articles/twil-2022-48/</link><guid isPermaLink="true">https://www.einenlum.com/articles/twil-2022-48/</guid><description>TWIL about SQL, Composer, PHP and CSS.</description><pubDate>Tue, 06 Dec 2022 00:00:00 GMT</pubDate></item><item><title>This Week I Learned: 2022W47</title><link>https://www.einenlum.com/articles/twil-2022-47/</link><guid isPermaLink="true">https://www.einenlum.com/articles/twil-2022-47/</guid><description>TWIL about Rust and SQL.</description><pubDate>Mon, 28 Nov 2022 00:00:00 GMT</pubDate></item><item><title>This Week I Learned: 2022W46</title><link>https://www.einenlum.com/articles/twil-2022-46/</link><guid isPermaLink="true">https://www.einenlum.com/articles/twil-2022-46/</guid><description>TWIL about Neovim, Lua, Typescript and Python.</description><pubDate>Mon, 21 Nov 2022 00:00:00 GMT</pubDate></item><item><title>Goodbye NextJS, hello Astro!</title><link>https://www.einenlum.com/articles/goodbye-nextjs-hello-astro/</link><guid isPermaLink="true">https://www.einenlum.com/articles/goodbye-nextjs-hello-astro/</guid><description>How I drastically reduced the size of my website.</description><pubDate>Mon, 14 Nov 2022 00:00:00 GMT</pubDate></item><item><title>This Week I Learned: 2022W45</title><link>https://www.einenlum.com/articles/twil-2022-45/</link><guid isPermaLink="true">https://www.einenlum.com/articles/twil-2022-45/</guid><description>TWIL about Typescript, Fediverse, Mastodon, Security, CSS, Python, SolidJS, VSCode, Git, TailwindCSS, and Viewport.</description><pubDate>Mon, 14 Nov 2022 00:00:00 GMT</pubDate></item><item><title>This Week I Learned: 2022W44</title><link>https://www.einenlum.com/articles/twil-2022-44/</link><guid isPermaLink="true">https://www.einenlum.com/articles/twil-2022-44/</guid><description>TWIL about Neovim, Git, Lua, Cat, PHP, Laravel.</description><pubDate>Mon, 07 Nov 2022 00:00:00 GMT</pubDate></item><item><title>This Week I Learned: 2022W43</title><link>https://www.einenlum.com/articles/twil-2022-43/</link><guid isPermaLink="true">https://www.einenlum.com/articles/twil-2022-43/</guid><description>TWIL about Vim, Rust, Containers and UNIX.</description><pubDate>Mon, 31 Oct 2022 00:00:00 GMT</pubDate></item><item><title>This Week I Learned: 2022W42</title><link>https://www.einenlum.com/articles/twil-2022-42/</link><guid isPermaLink="true">https://www.einenlum.com/articles/twil-2022-42/</guid><description>TWIL about Rust, Git and fzf.</description><pubDate>Mon, 24 Oct 2022 00:00:00 GMT</pubDate></item><item><title>This Week I Learned: 2022W41</title><link>https://www.einenlum.com/articles/twil-2022-41/</link><guid isPermaLink="true">https://www.einenlum.com/articles/twil-2022-41/</guid><description>TWIL about Python, PHP, Sorting, TUI, Tailwind, Interesting Github Repositories, Rust.</description><pubDate>Mon, 17 Oct 2022 00:00:00 GMT</pubDate></item><item><title>This Week I Learned: 2022W40</title><link>https://www.einenlum.com/articles/twil-2022-40/</link><guid isPermaLink="true">https://www.einenlum.com/articles/twil-2022-40/</guid><description>TWIL about Exif, Versioning, Regex, Vim.</description><pubDate>Tue, 11 Oct 2022 00:00:00 GMT</pubDate></item><item><title>This Week I Learned: 2022W39</title><link>https://www.einenlum.com/articles/twil-2022-39/</link><guid isPermaLink="true">https://www.einenlum.com/articles/twil-2022-39/</guid><description>TWIL about Swagger, Python, Git.</description><pubDate>Mon, 03 Oct 2022 00:00:00 GMT</pubDate></item><item><title>This Week I Learned: 2022W38</title><link>https://www.einenlum.com/articles/twil-2022-38/</link><guid isPermaLink="true">https://www.einenlum.com/articles/twil-2022-38/</guid><description>TWIL about Cron, MySQL, PHP, Python.</description><pubDate>Tue, 27 Sep 2022 00:00:00 GMT</pubDate></item><item><title>This Week I Learned: 2022W36</title><link>https://www.einenlum.com/articles/twil-2022-36/</link><guid isPermaLink="true">https://www.einenlum.com/articles/twil-2022-36/</guid><description>TWIL about CSS, Randomness, Apple, Functional Programming.</description><pubDate>Wed, 14 Sep 2022 00:00:00 GMT</pubDate></item><item><title>This Week I Learned: 2022W32</title><link>https://www.einenlum.com/articles/twil-2022-32/</link><guid isPermaLink="true">https://www.einenlum.com/articles/twil-2022-32/</guid><description>TWIL about Databases, React, Solid, CRUD, BREAD, Serialization.</description><pubDate>Mon, 15 Aug 2022 00:00:00 GMT</pubDate></item><item><title>This Week I Learned: 2022W31</title><link>https://www.einenlum.com/articles/twil-2022-31/</link><guid isPermaLink="true">https://www.einenlum.com/articles/twil-2022-31/</guid><description>TWIL about Python, Pedantic, Poetry, Pip, PyPI, CSS, Fonts.</description><pubDate>Sun, 07 Aug 2022 00:00:00 GMT</pubDate></item><item><title>This Week I Learned: 2022W30</title><link>https://www.einenlum.com/articles/twil-2022-30/</link><guid isPermaLink="true">https://www.einenlum.com/articles/twil-2022-30/</guid><description>TWIL about Python, Databases, Iterators, PHP.</description><pubDate>Tue, 02 Aug 2022 00:00:00 GMT</pubDate></item><item><title>This Week I Learned: 2022W28</title><link>https://www.einenlum.com/articles/twil-2022-28/</link><guid isPermaLink="true">https://www.einenlum.com/articles/twil-2022-28/</guid><description>TWIL about Postgres, PDF, PHP, CSS, Tailwind, React.</description><pubDate>Wed, 13 Jul 2022 00:00:00 GMT</pubDate></item><item><title>My blog is back</title><link>https://www.einenlum.com/articles/blog-is-back/</link><guid isPermaLink="true">https://www.einenlum.com/articles/blog-is-back/</guid><description>After a few years of non writing, I&apos;m back. On a blog I own.</description><pubDate>Thu, 07 Jul 2022 00:00:00 GMT</pubDate></item><item><title>A free CI (using Docker-Compose) for your Gitlab repositories?</title><link>https://www.einenlum.com/articles/free-ci-gitlab/</link><guid isPermaLink="true">https://www.einenlum.com/articles/free-ci-gitlab/</guid><description>Gitlab offers good service but their documentation is not so easy to follow and understand. Here is how to use docker-compose on Gitlab, and how to have a free CI</description><pubDate>Thu, 04 Oct 2018 00:00:00 GMT</pubDate></item><item><title>Testing your app with docker-compose on CircleCI</title><link>https://www.einenlum.com/articles/docker-compose-circle-ci/</link><guid isPermaLink="true">https://www.einenlum.com/articles/docker-compose-circle-ci/</guid><description>CircleCI allows to use docker, but it&apos;s not that simple to use docker-compose with their service. This article shows how.</description><pubDate>Tue, 02 Oct 2018 00:00:00 GMT</pubDate></item><item><title>Job offers: Don’t get lost along the way</title><link>https://www.einenlum.com/articles/job-offers-dont-get-lost/</link><guid isPermaLink="true">https://www.einenlum.com/articles/job-offers-dont-get-lost/</guid><description>Sometimes I wonder what happened between the moment when recruiters started to think about a vacant job position and when they decide to promote a job offer. Small rant.</description><pubDate>Tue, 09 Jan 2018 00:00:00 GMT</pubDate></item><item><title>Lessons learned about Bus Factor (Part 5/5): Detect it before it is too late</title><link>https://www.einenlum.com/articles/bus-factor-5/</link><guid isPermaLink="true">https://www.einenlum.com/articles/bus-factor-5/</guid><description>In the previous articles we talked about different strategies to keep a balance in your team and avoid giving all the responsibility to one developer. But can we detect when the project starts to take the wrong direction? Can we find a test to prove things are improving?</description><pubDate>Sun, 01 Oct 2017 00:00:00 GMT</pubDate></item><item><title>Lessons learned about Bus Factor (Part 4/5): Stay close to the domain</title><link>https://www.einenlum.com/articles/bus-factor-4/</link><guid isPermaLink="true">https://www.einenlum.com/articles/bus-factor-4/</guid><description>Writing good code is not only about architectural patterns. It&apos;s always linked to your final users and to the domain you are working for.</description><pubDate>Sat, 30 Sep 2017 00:00:00 GMT</pubDate></item><item><title>Lessons learned about Bus Factor (Part 3/5): Write explicit code</title><link>https://www.einenlum.com/articles/bus-factor-3/</link><guid isPermaLink="true">https://www.einenlum.com/articles/bus-factor-3/</guid><description>This article shows how to refactor code to make it more explicit and help the next developer who will read your work</description><pubDate>Fri, 29 Sep 2017 00:00:00 GMT</pubDate></item><item><title>Lessons learned about Bus Factor (2/5): Balancing the level of your team</title><link>https://www.einenlum.com/articles/bus-factor-2/</link><guid isPermaLink="true">https://www.einenlum.com/articles/bus-factor-2/</guid><description>What are the non technical measures you can take to improve your Bus Factor?</description><pubDate>Thu, 28 Sep 2017 00:00:00 GMT</pubDate></item><item><title>Lessons learned about Bus Factor (1/5): Introduction</title><link>https://www.einenlum.com/articles/bus-factor-1/</link><guid isPermaLink="true">https://www.einenlum.com/articles/bus-factor-1/</guid><description>What is Bus Factor? We will here introduce the notion and how it can be useful to your organization.</description><pubDate>Wed, 27 Sep 2017 00:00:00 GMT</pubDate></item><item><title>Learning a foreign language — Common mistakes</title><link>https://www.einenlum.com/articles/learning-a-foreign-language/</link><guid isPermaLink="true">https://www.einenlum.com/articles/learning-a-foreign-language/</guid><description>I have been learning German since some time now. Here is what I learned.</description><pubDate>Fri, 18 Aug 2017 00:00:00 GMT</pubDate></item></channel></rss>