Logo

Blog

Browse by topic instead

  1. Nvidia, Kubuntu, and My Reluctant Return to Windows 11 - 14 May, 2025 My latest attempt to make Linux work on a modern Nvidia laptop ended, predictably, with a return to Windows 11.
  2. Web Components: Powerful, Yes. A Joy to Write? Not Quite (Coming from React) - 12 May, 2025 Coming from years of React development, I find Web Components incredibly powerful and standards-based, but writing them can feel surprisingly tedious.
  3. MyProtein's Downfall: A Cautionary Tale of False Advertising and Declining Quality - 10 May, 2025 From trusted sports nutrition to shady shortcuts: How MyProtein betrayed its customers with false claims and plummeting quality.
  4. The Illusion of Progress: Why AI Still Can't Replace Human Programmers - 01 May, 2025 AI still can't replace programmers—it only handles trivial code well while complex systems require human expertise.
  5. The Programmer's New Role: Guiding AI Code Generation - 07 Apr, 2025 Learn how programmers are evolving from coders to AI guides—see a Python example proving why human expertise still matters.
  6. Break django-admin commands into subcommands - 08 Mar, 2025 Learn how to organize Django management commands into intuitive subcommand namespaces, making your CLI cleaner and more developer-friendly!
  7. Redundant Linux backups with a single command - 08 Mar, 2025 Set up military-grade, cost-effective backups with Borgmatic—combining local USB and Hetzner cloud storage—in just 15 minutes, ensuring your data is safe even if your laptop takes a coffee bath.
  8. A Battle-Tested Way to Structure React Projects - 03 Mar, 2025 Learn how to structure your React projects with a focus on scalability, maintainability, and team collaboration.
  9. AI makes developing with frameworks useless - 27 Feb, 2025 Free yourself from evil frameworks by leveraging AI to code
  10. AI will replace programmers. Here's how, and why. - 22 Feb, 2025 A programmer tells you how AI will replace him
  11. How to handle 404 errors with htmx in Django - 12 Feb, 2025 Enhance user experience by gracefully handling 404 errors with htmx in Django
  12. Unorthodox Ways to Measure Economic Progress - 10 Feb, 2025 Why high divorce rates are a sign of a healthy economy
  13. Why the HTML dialog element sucks - 04 Feb, 2025 Learn why you should implement custom modals instead of relying on dialog
  14. Build a Reusable Component with Django Cotton and AlpineJS - 14 Jan, 2025 Learn how to build a reusable component with simple tools
  15. Show Django forms inside a modal using HTMX - 25 Dec, 2024 Learn how to create and edit models using Django forms inside a modal using HTMX
  16. How to show a modal in Django + HTMX - 16 Dec, 2024 Learn how to show a modal with minimal Javascript in Django + HTMX
  17. How and why to run your Docker apps without root - 25 Oct, 2024 Understand the importance of running your apps without root privileges inside your Docker container
  18. Automated container deployment without a registry - 23 Oct, 2024 Learn how to automate deployment of a containerized Django app without a registry
  19. Docker is better than Podman - 22 Oct, 2024 I experimented with Podman and realized that Docker is still better
  20. Understanding Python Decorators thanks to Django - 14 Oct, 2024 Master Python decorators by dissecting ones provided by Django
  21. A script to "Modernize" your Linux CLI - 13 Oct, 2024 Use this script to install modern CLI tools for Linux
  22. I moved my blog from Ghost to Astro - 12 Oct, 2024 Learn about the benefits of publishing with Astro instead of Ghost
  23. Show Django flash messages as toasts with Htmx - 11 Oct, 2024 Learn how to display Django messages as user friendly toasts with Htmx
  24. Build an intuitive CLI app with Python argparse - 10 Oct, 2024 Learn how to use Python's built-in argparse library to build an intuitive CLI app
  25. Forward SSH Agent Requests From WSL to Windows - 03 Oct, 2024 Learn how to use the built-in Windows ssh-agent from inside your WSL instance
  26. How to implement RESTful routing in Django - 19 Sep, 2024 Learn to leverage the REST archicture in a Django app.
  27. Generate DKIM key pairs in Python - 15 Sep, 2024 DKIM key pairs are simply RSA key pairs and you can easily generate them in Python.
  28. Robust Full-Stack Authentication with Django Allauth, React, and React Router - 04 Sep, 2024 Learn how to integrate django-allauth with React for a powerful and easy authentication system.
  29. Using Django Allauth without Username Field - 01 Sep, 2024 Learn how to use Django Allauth without a username field in your User model.
  30. How to Remove Username from Django's Default User model - 23 Aug, 2024 Learn how to allow users to authenticate with your app without a username.
  31. Why CSRF token cookies don't need to be httpOnly - 20 Jul, 2024 CSRF token cookies are typically sent without httpOnly set to true. But is that a secure practice?
  32. Send Templated Emails in NodeJS - 22 Mar, 2024 Learn how to use NodeMailer, Handlebars, and juice to send emails effortlessly in NodeJS.
  33. Populate Custom User Attributes When Signing Up Using Django Allauth - 21 Mar, 2024 Learn how to set custom attributes to your User model when signing up users with Django Allauth.
  34. Track Hubspot Events in a React SPA - 20 Mar, 2024 Learn how to use Hubspot to track user activity when using client side routing in React.
  35. How to upload files to S3 using a Presigned Upload URL - 03 Mar, 2024 Learn how to upload files directly to S3 from a front-end client to avoid API Gateway time-out issues.
  36. Identify Individual Requests in ExpressJS - 24 Jan, 2024 Learn how to debug user errors more easily by tagging each request.
  37. How to Store Passwords Securely in NodeJS - 23 Jan, 2024 Learn how to use built-in tools in NodeJS to store user passwords securely.
  38. Verify Paddle Billing Webhook Signatures in Python - 11 Jan, 2024 Learn how to verify that webhooks hitting your back-end are from Paddle and not anyone else.
  39. Generate good looking PDFs with WeasyPrint and Jinja2 - 10 Jan, 2024 Learn how to easily generate beautiful PDFs in Python
  40. Encode base64 in JavaScript and Decode in Python: Part 2 - 15 Oct, 2023 Learn how to decode a Base64 string you encoded from JavaScript in Python
  41. Encode base64 in JavaScript and Decode in Python: Part 1 - 14 Oct, 2023 Learn how to send URL safe base64 encoded data to your Python API.
  42. Log to console with Sentry - 14 Oct, 2023 Learn how to see your Sentry logs in the dev tools console for a faster debugging experience.
  43. Use Python partial objects to write cleaner higher order functions - 14 Oct, 2023 Learn how to improve readability of your code when using callback functions thanks to partial objects.