<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Joel Sleppy's blog</title><link>https://www.joelsleppy.com/blog/</link><description>All posts from Joel Sleppy's blog.</description><atom:link href="https://www.joelsleppy.com/blog/feed.xml" rel="self"/><language>en-us</language><lastBuildDate>Wed, 30 Sep 2026 00:00:00 +0000</lastBuildDate><item><title>Hares on the Mountain by Shirley Collins</title><link>https://www.joelsleppy.com/blog/hares-on-the-mountain/</link><description>Chords and lyrics for Shirley Collins' modern take on the centuries-old British folk song Hares on the Mountain.</description><pubDate>Wed, 30 Sep 2026 00:00:00 +0000</pubDate><guid>https://www.joelsleppy.com/blog/hares-on-the-mountain/</guid></item><item><title>The hidden kwarg you need to parse email files in Python</title><link>https://www.joelsleppy.com/blog/parse-eml-with-python/</link><description>Without setting this poorly-documented argument, you will get junk results when parsing email (.eml) files using Python.</description><pubDate>Wed, 28 Jan 2026 00:00:00 +0000</pubDate><guid>https://www.joelsleppy.com/blog/parse-eml-with-python/</guid></item><item><title>Use Django Auth to Secure Any Application</title><link>https://www.joelsleppy.com/blog/use-django-auth-to-protect-other-applications/</link><description>Use Django's authentication and permissions to secure any other application.</description><pubDate>Sun, 07 Dec 2025 00:00:00 +0000</pubDate><guid>https://www.joelsleppy.com/blog/use-django-auth-to-protect-other-applications/</guid></item><item><title>Structured log collection from Docker containers</title><link>https://www.joelsleppy.com/blog/docker-logging/</link><description>How to ship JSON formatted logs from your app's stdout to fluentbit and VictoriaLogs for visualization and analysis.</description><pubDate>Sun, 26 Oct 2025 00:00:00 +0000</pubDate><guid>https://www.joelsleppy.com/blog/docker-logging/</guid></item><item><title>Watch out: All SvelteKit page data ends up on the client</title><link>https://www.joelsleppy.com/blog/all-sveltekit-data-ends-up-on-the-client/</link><description>In contrast to a traditional server rendered web app, you need to be aware that all SvelteKit page data ends up on the client.</description><pubDate>Wed, 08 Oct 2025 00:00:00 +0000</pubDate><guid>https://www.joelsleppy.com/blog/all-sveltekit-data-ends-up-on-the-client/</guid></item><item><title>Cool Things About Remote Docker Hosts</title><link>https://www.joelsleppy.com/blog/remote-docker-host/</link><description>Some interesting consequences of Docker being a client-server tool.</description><pubDate>Thu, 10 Jul 2025 00:00:00 +0000</pubDate><guid>https://www.joelsleppy.com/blog/remote-docker-host/</guid></item><item><title>Building a Square Foot Garden</title><link>https://www.joelsleppy.com/blog/square-foot-garden/</link><description>Documenting how I built a Square Foot Garden</description><pubDate>Fri, 02 May 2025 00:00:00 +0000</pubDate><guid>https://www.joelsleppy.com/blog/square-foot-garden/</guid></item><item><title>Get (production) ready with me: Deploying a project with Docker Compose</title><link>https://www.joelsleppy.com/blog/get-production-ready-with-me/</link><description>Finding the best way to deploy to production with Docker Compose.</description><pubDate>Thu, 20 Mar 2025 00:00:00 +0000</pubDate><guid>https://www.joelsleppy.com/blog/get-production-ready-with-me/</guid></item><item><title>How to run concurrent Python code with asyncio</title><link>https://www.joelsleppy.com/blog/how-to-run-concurrent-python-code-with-asyncio/</link><description>The correct, non-obvious way to run Python code concurrently with asyncio.</description><pubDate>Mon, 30 Dec 2024 00:00:00 +0000</pubDate><guid>https://www.joelsleppy.com/blog/how-to-run-concurrent-python-code-with-asyncio/</guid></item><item><title>Notes on Paul Graham's "How to Get Startup Ideas"</title><link>https://www.joelsleppy.com/blog/notes-on-paul-graham-how-to-get-startup-ideas/</link><description>My summary of Paul Graham's 2012 essay "How to Get Startup Ideas"</description><pubDate>Fri, 11 Oct 2024 00:00:00 +0000</pubDate><guid>https://www.joelsleppy.com/blog/notes-on-paul-graham-how-to-get-startup-ideas/</guid></item><item><title>Notes on Refactoring UI</title><link>https://www.joelsleppy.com/blog/notes-on-refactoring-ui/</link><description>Notes on the excellent web design book Refactoring UI.</description><pubDate>Sat, 18 Mar 2023 00:00:00 +0000</pubDate><guid>https://www.joelsleppy.com/blog/notes-on-refactoring-ui/</guid></item><item><title>Django ORM Cheatsheet</title><link>https://www.joelsleppy.com/blog/django-orm-cheatsheet/</link><description>A compact reference for the most useful parts of the Django ORM.</description><pubDate>Sun, 22 May 2022 00:00:00 +0000</pubDate><guid>https://www.joelsleppy.com/blog/django-orm-cheatsheet/</guid></item><item><title>Planets by Emily Haines &amp; The Soft Skeleton</title><link>https://www.joelsleppy.com/blog/planets-by-emily-haines-the-soft-skeleton/</link><description>My transcription of the song Planets by Emily Haines &amp; The Soft Skeleton.</description><pubDate>Sat, 11 Sep 2021 00:00:00 +0000</pubDate><guid>https://www.joelsleppy.com/blog/planets-by-emily-haines-the-soft-skeleton/</guid></item><item><title>I apologize for the poor sound quality I've subjected you to over the years</title><link>https://www.joelsleppy.com/blog/i-apologize-for-the-poor-sound-quality-ive-subjected-you-to-over-the-years/</link><description>A recent Hacker News post inspired me to test my setup for video calls. It was awful, and Bluetooth was to blame. Here's how I fixed it.</description><pubDate>Wed, 21 Apr 2021 00:00:00 +0000</pubDate><guid>https://www.joelsleppy.com/blog/i-apologize-for-the-poor-sound-quality-ive-subjected-you-to-over-the-years/</guid></item><item><title>Automated deploys with Fabric</title><link>https://www.joelsleppy.com/blog/automated-deploys-with-fabric/</link><description>How to automate SSH sessions with Fabric to deploy a Django application.</description><pubDate>Mon, 12 Apr 2021 00:00:00 +0000</pubDate><guid>https://www.joelsleppy.com/blog/automated-deploys-with-fabric/</guid></item><item><title>Removing Tags and Patches from Clothing with a Seam Ripper</title><link>https://www.joelsleppy.com/blog/removing-tags-and-patches-from-clothing-with-a-seam-ripper/</link><description>How to remove tags and patches from clothing with a seam ripper for comfort and style.</description><pubDate>Sat, 06 Feb 2021 00:00:00 +0000</pubDate><guid>https://www.joelsleppy.com/blog/removing-tags-and-patches-from-clothing-with-a-seam-ripper/</guid></item><item><title>Gunicorn Async Workers with gevent</title><link>https://www.joelsleppy.com/blog/gunicorn-async-workers-with-gevent/</link><description>How to run gunicorn async workers with gevent and a PostgreSQL client.</description><pubDate>Tue, 26 Jan 2021 00:00:00 +0000</pubDate><guid>https://www.joelsleppy.com/blog/gunicorn-async-workers-with-gevent/</guid></item><item><title>Gunicorn Application Preloading</title><link>https://www.joelsleppy.com/blog/gunicorn-application-preloading/</link><description>Learn how to use preloading to reduce memory use in a Gunicorn app, and when not to use it.</description><pubDate>Thu, 21 Jan 2021 00:00:00 +0000</pubDate><guid>https://www.joelsleppy.com/blog/gunicorn-application-preloading/</guid></item><item><title>Gunicorn Sync Workers</title><link>https://www.joelsleppy.com/blog/gunicorn-sync-workers/</link><description>Understand the memory use and throughput of Gunicorn sync workers under different workloads.</description><pubDate>Tue, 19 Jan 2021 00:00:00 +0000</pubDate><guid>https://www.joelsleppy.com/blog/gunicorn-sync-workers/</guid></item><item><title>sitemap.xml in a wagtail-bakery Site</title><link>https://www.joelsleppy.com/blog/sitemapxml-in-a-wagtail-bakery-site/</link><description>How to generate a sitemap.xml from your wagtail-bakery static site.</description><pubDate>Sun, 03 Jan 2021 00:00:00 +0000</pubDate><guid>https://www.joelsleppy.com/blog/sitemapxml-in-a-wagtail-bakery-site/</guid></item><item><title>Syntax Highlighted Code Blocks with Wagtail CMS</title><link>https://www.joelsleppy.com/blog/syntax-highlighted-code-blocks-with-wagtail-cms/</link><description>How to add code blocks with syntax highlighting to a Wagtail project.</description><pubDate>Sat, 02 Jan 2021 00:00:00 +0000</pubDate><guid>https://www.joelsleppy.com/blog/syntax-highlighted-code-blocks-with-wagtail-cms/</guid></item><item><title>Baking a Static Site from Wagtail CMS</title><link>https://www.joelsleppy.com/blog/baking-a-static-site-from-wagtail-cms/</link><description>How to build a Wagtail project as a static site and host it on Netlify.</description><pubDate>Fri, 01 Jan 2021 00:00:00 +0000</pubDate><guid>https://www.joelsleppy.com/blog/baking-a-static-site-from-wagtail-cms/</guid></item></channel></rss>