41554 blogs · [ { "id": "01a0875f-fa25-70ed-bf62-fe1d9d594aa6", "title": "Certified 100% Slop", "url": "https://chriswarrick.com/blog/2026/05/06/certified-100-percent-slop/", "published_at": "2026-05-06T19:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80aa8cc1b9", "title": null, "url": "https://chriswarrick.com/", "published_at": "2026-05-06T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80aae6db6c", "title": "Archives", "url": "https://chriswarrick.com/blog/", "published_at": "2026-05-06T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80c64b712a", "title": "Posts for the year 2026", "url": "https://chriswarrick.com/blog/2026/", "published_at": "2026-05-06T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80ca445a09", "title": "Tags and Categories", "url": "https://chriswarrick.com/blog/tags/", "published_at": "2026-05-06T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80cb31341c", "title": "Posts about AI", "url": "https://chriswarrick.com/blog/tags/ai/", "published_at": "2026-05-06T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80d4794f5f", "title": "Posts about Programming", "url": "https://chriswarrick.com/blog/tags/cat_programming/", "published_at": "2026-05-06T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80d7277bec", "title": "Posts about Claude", "url": "https://chriswarrick.com/blog/tags/claude/", "published_at": "2026-05-06T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80d7faf855", "title": "Posts about Copilot", "url": "https://chriswarrick.com/blog/tags/copilot/", "published_at": "2026-05-06T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80deff357d", "title": "Posts about GitHub", "url": "https://chriswarrick.com/blog/tags/github/", "published_at": "2026-05-06T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80e7b6605f", "title": "Posts about LLM", "url": "https://chriswarrick.com/blog/tags/llm/", "published_at": "2026-05-06T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80f12606dd", "title": "Posts about programming", "url": "https://chriswarrick.com/blog/tags/programming/", "published_at": "2026-05-06T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80dbde95c2", "title": "Posts about Docker", "url": "https://chriswarrick.com/blog/tags/docker/", "published_at": "2026-03-06T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80e76eb9ee", "title": "Posts about Linux", "url": "https://chriswarrick.com/blog/tags/linux/", "published_at": "2026-03-06T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80ffce1b7b", "title": "Posts about Windows", "url": "https://chriswarrick.com/blog/tags/windows/", "published_at": "2026-03-06T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d81006eb4e6", "title": "Posts about WSL", "url": "https://chriswarrick.com/blog/tags/wsl/", "published_at": "2026-03-06T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d8104867d77", "title": null, "url": "https://chriswarrick.com/guides/", "published_at": "2026-03-06T00:00:00+00:00" }, { "id": "01a0875f-fa25-70ed-bf62-fe1d9dab5a80", "title": "Docker In WSL: A No-Frills Guide", "url": "https://chriswarrick.com/blog/2026/03/04/docker-in-wsl-a-no-frills-guide/", "published_at": "2026-03-04T17:20:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d81040f119d", "title": "upass screenshots", "url": "https://chriswarrick.com/galleries/upass/", "published_at": "2026-02-16T21:18:39+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d810faf7305", "title": null, "url": "https://chriswarrick.com/listings/yabg-intro/jamstack-org-generators.js.html", "published_at": "2026-02-16T21:18:39+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d8110c0a065", "title": null, "url": "https://chriswarrick.com/listings/yabg-intro/speedtest/cleanup.ps1.html", "published_at": "2026-02-16T21:18:39+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d8111fe876d", "title": null, "url": "https://chriswarrick.com/listings/yabg-intro/speedtest/logs/nikola-fedora.log.html", "published_at": "2026-02-16T21:18:39+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d8112ac21fc", "title": null, "url": "https://chriswarrick.com/listings/yabg-intro/speedtest/logs/nikola-windows.log.html", "published_at": "2026-02-16T21:18:39+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d8112d42714", "title": null, "url": "https://chriswarrick.com/listings/yabg-intro/speedtest/logs/yabg-r2r-fedora.log.html", "published_at": "2026-02-16T21:18:39+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d8113b89884", "title": null, "url": "https://chriswarrick.com/listings/yabg-intro/speedtest/logs/yabg-r2r-windows.log.html", "published_at": "2026-02-16T21:18:39+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d8113be21e7", "title": null, "url": "https://chriswarrick.com/listings/yabg-intro/speedtest/logs/yabg-release-fedora.log.html", "published_at": "2026-02-16T21:18:39+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d8113dcb34b", "title": null, "url": "https://chriswarrick.com/listings/yabg-intro/speedtest/logs/yabg-release-windows.log.html", "published_at": "2026-02-16T21:18:39+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d81145fb169", "title": null, "url": "https://chriswarrick.com/listings/yabg-intro/speedtest/README.md.html", "published_at": "2026-02-16T21:18:39+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d8114eccd16", "title": null, "url": "https://chriswarrick.com/listings/yabg-intro/speedtest/setup-linux.sh.html", "published_at": "2026-02-16T21:18:39+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d8115475db9", "title": null, "url": "https://chriswarrick.com/listings/yabg-intro/speedtest/setup-windows.ps1.html", "published_at": "2026-02-16T21:18:39+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d811631ccda", "title": null, "url": "https://chriswarrick.com/listings/yabg-intro/speedtest/test-nikola.ps1.html", "published_at": "2026-02-16T21:18:39+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d8116733574", "title": null, "url": "https://chriswarrick.com/listings/yabg-intro/speedtest/test-yabg.ps1.html", "published_at": "2026-02-16T21:18:39+00:00" }, { "id": "01a0875f-fa25-70ed-bf62-fe1d9e9be093", "title": "I Wrote YetAnotherBlogGenerator", "url": "https://chriswarrick.com/blog/2026/02/16/i-wrote-yet-another-blog-generator/", "published_at": "2026-02-16T21:15:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80d2700a65", "title": "Posts about C#/.NET", "url": "https://chriswarrick.com/blog/tags/cat_csharp-dotnet/", "published_at": "2026-02-16T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80d88520e9", "title": "Posts about C#", "url": "https://chriswarrick.com/blog/tags/csharp/", "published_at": "2026-02-16T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80dcd4e1c0", "title": "Posts about .NET", "url": "https://chriswarrick.com/blog/tags/dotnet/", "published_at": "2026-02-16T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80ec3dbd05", "title": "Posts about Nikola", "url": "https://chriswarrick.com/blog/tags/nikola/", "published_at": "2026-02-16T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80f4225ada", "title": "Posts about Python", "url": "https://chriswarrick.com/blog/tags/python/", "published_at": "2026-02-16T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80f7bfa7a5", "title": "Posts about static site generators", "url": "https://chriswarrick.com/blog/tags/static-site-generators/", "published_at": "2026-02-16T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80ff624a94", "title": "Posts about web development", "url": "https://chriswarrick.com/blog/tags/web-development/", "published_at": "2026-02-16T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d8100d86cf3", "title": "Posts about YetAnotherBlogGenerator", "url": "https://chriswarrick.com/blog/tags/yetanotherbloggenerator/", "published_at": "2026-02-16T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d8103258ecb", "title": null, "url": "https://chriswarrick.com/galleries/", "published_at": "2026-02-16T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d810632c768", "title": "Listings (/listings/)", "url": "https://chriswarrick.com/listings/", "published_at": "2026-02-16T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d8106bf03a6", "title": "Listings (/listings/android-chrome-custom-tabs/)", "url": "https://chriswarrick.com/listings/android-chrome-custom-tabs/", "published_at": "2026-02-16T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d810740e85e", "title": "Listings (/listings/code-writing-code/)", "url": "https://chriswarrick.com/listings/code-writing-code/", "published_at": "2026-02-16T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d81084da19c", "title": "Listings (/listings/datalist/)", "url": "https://chriswarrick.com/listings/datalist/", "published_at": "2026-02-16T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d8108834151", "title": "Listings (/listings/entry_points_project/)", "url": "https://chriswarrick.com/listings/entry_points_project/", "published_at": "2026-02-16T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d81088dfd4c", "title": "Listings (/listings/entry_points_project/my_project/)", "url": "https://chriswarrick.com/listings/entry_points_project/my_project/", "published_at": "2026-02-16T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d810b5c983d", "title": "Listings (/listings/gynvaels-mission-11-en/)", "url": "https://chriswarrick.com/listings/gynvaels-mission-11-en/", "published_at": "2026-02-16T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d810f20e29a", "title": "Listings (/listings/yabg-intro/)", "url": "https://chriswarrick.com/listings/yabg-intro/", "published_at": "2026-02-16T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d81107288f1", "title": "Listings (/listings/yabg-intro/speedtest/)", "url": "https://chriswarrick.com/listings/yabg-intro/speedtest/", "published_at": "2026-02-16T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d81116434c8", "title": "Listings (/listings/yabg-intro/speedtest/logs/)", "url": "https://chriswarrick.com/listings/yabg-intro/speedtest/logs/", "published_at": "2026-02-16T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d8106c94cc2", "title": null, "url": "https://chriswarrick.com/listings/android-chrome-custom-tabs/CustomTabsActivity.java.html", "published_at": "2026-02-09T23:32:55+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d8107e34652", "title": null, "url": "https://chriswarrick.com/listings/code-writing-code/write_properties.py.html", "published_at": "2026-02-09T23:32:55+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d810876e50b", "title": null, "url": "https://chriswarrick.com/listings/datalist/datalist-demo.html.html", "published_at": "2026-02-09T23:32:55+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d81098696b3", "title": null, "url": "https://chriswarrick.com/listings/entry_points_project/my_project/__init__.py.html", "published_at": "2026-02-09T23:32:55+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d810a84ae50", "title": null, "url": "https://chriswarrick.com/listings/entry_points_project/my_project/__main__.py.html", "published_at": "2026-02-09T23:32:55+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d810b1cf6f8", "title": null, "url": "https://chriswarrick.com/listings/entry_points_project/setup.py.html", "published_at": "2026-02-09T23:32:55+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d810be30955", "title": null, "url": "https://chriswarrick.com/listings/gynvaels-mission-11-en/mission11-genexpr.py.html", "published_at": "2026-02-09T23:32:55+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d810ce09fed", "title": null, "url": "https://chriswarrick.com/listings/gynvaels-mission-11-en/mission11-genexpr.txt.html", "published_at": "2026-02-09T23:32:55+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d810cf13449", "title": null, "url": "https://chriswarrick.com/listings/gynvaels-mission-11-en/mission11-solver.py.html", "published_at": "2026-02-09T23:32:55+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d810dd42aec", "title": null, "url": "https://chriswarrick.com/listings/gynvaels-mission-11-en/mission11.py.html", "published_at": "2026-02-09T23:32:55+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d810e83b7c3", "title": null, "url": "https://chriswarrick.com/listings/gynvaels-mission-11-en/ziprunner.py.html", "published_at": "2026-02-09T23:32:55+00:00" }, { "id": "01a0875f-fa25-70ed-bf62-fe1d9f13cf25", "title": "Deploying Python Web Applications with Docker", "url": "https://chriswarrick.com/blog/2026/02/06/deploying-python-web-applications-with-docker/", "published_at": "2026-02-06T19:45:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80d4f54a4d", "title": "Posts about Python", "url": "https://chriswarrick.com/blog/tags/cat_python/", "published_at": "2026-02-06T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80db4a1c32", "title": "Posts about Django", "url": "https://chriswarrick.com/blog/tags/django/", "published_at": "2026-02-06T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80e056c2ed", "title": "Posts about gunicorn", "url": "https://chriswarrick.com/blog/tags/gunicorn/", "published_at": "2026-02-06T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80e388699c", "title": "Posts about Internet", "url": "https://chriswarrick.com/blog/tags/internet/", "published_at": "2026-02-06T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80eb7f3f42", "title": "Posts about nginx", "url": "https://chriswarrick.com/blog/tags/nginx/", "published_at": "2026-02-06T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d811792661a", "title": null, "url": "https://chriswarrick.com/projects/", "published_at": "2026-02-01T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d8117d18406", "title": null, "url": "https://chriswarrick.com/projects/cheqlist/", "published_at": "2026-02-01T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d8118277b20", "title": "Date Calculator", "url": "https://chriswarrick.com/projects/datecalc/", "published_at": "2026-02-01T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d81191826cf", "title": "Date Conditionals", "url": "https://chriswarrick.com/projects/datecond/", "published_at": "2026-02-01T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d8119313b52", "title": "Display Menu", "url": "https://chriswarrick.com/projects/displaymenu/", "published_at": "2026-02-01T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d8119e34810", "title": "KwShortener for Django", "url": "https://chriswarrick.com/projects/django-kwshortener/", "published_at": "2026-02-01T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d811b5f7d75", "title": null, "url": "https://chriswarrick.com/projects/nap/", "published_at": "2026-02-01T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d811c329f73", "title": null, "url": "https://chriswarrick.com/projects/nikola/", "published_at": "2026-02-01T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d811cd23eaf", "title": null, "url": "https://chriswarrick.com/projects/pkgbuilder/", "published_at": "2026-02-01T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d811d9495fd", "title": "Terminal Think Music", "url": "https://chriswarrick.com/projects/think/", "published_at": "2026-02-01T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d811dcb92b6", "title": "LaTeX Todo List", "url": "https://chriswarrick.com/projects/todolist/", "published_at": "2026-02-01T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d811e4e1302", "title": null, "url": "https://chriswarrick.com/projects/upass/", "published_at": "2026-02-01T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80c4f4b67f", "title": "Posts for the year 2025", "url": "https://chriswarrick.com/blog/2025/", "published_at": "2025-11-23T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80d3d5a743", "title": "Posts about Linux", "url": "https://chriswarrick.com/blog/tags/cat_linux/", "published_at": "2025-11-23T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80ddba8373", "title": "Posts about Fedora", "url": "https://chriswarrick.com/blog/tags/fedora/", "published_at": "2025-11-23T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80fa6f87ca", "title": "Posts about Ubuntu", "url": "https://chriswarrick.com/blog/tags/ubuntu/", "published_at": "2025-11-23T00:00:00+00:00" }, { "id": "01a0875f-fa25-70ed-bf62-fe1d9f469970", "title": "Distro Hopping, Server Edition", "url": "https://chriswarrick.com/blog/2025/11/09/distro-hopping-server-edition/", "published_at": "2025-11-09T18:00:00+00:00" }, { "id": "01a0875f-fa25-70ed-bf62-fe1d9fa49dd7", "title": "PowerShell: the object-oriented shell you didn’t know you needed", "url": "https://chriswarrick.com/blog/2024/04/29/powershell-the-object-oriented-shell-you-didnt-know-you-needed/", "published_at": "2024-04-29T16:45:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80c38bea7c", "title": "Posts for the year 2024", "url": "https://chriswarrick.com/blog/2024/", "published_at": "2024-04-29T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80f07b349b", "title": "Posts about PowerShell", "url": "https://chriswarrick.com/blog/tags/powershell/", "published_at": "2024-04-29T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d8101b98f3f", "title": "Posts about zsh", "url": "https://chriswarrick.com/blog/tags/zsh/", "published_at": "2024-04-29T00:00:00+00:00" }, { "id": "01a0875f-fa25-70ed-bf62-fe1d9fe984b2", "title": "Python Packaging, One Year Later: A Look Back at 2023 in Python Packaging", "url": "https://chriswarrick.com/blog/2024/01/15/python-packaging-one-year-later/", "published_at": "2024-01-15T18:50:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80ed3aa214", "title": "Posts about packaging", "url": "https://chriswarrick.com/blog/tags/packaging/", "published_at": "2024-01-15T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80eea56e5a", "title": "Posts about PDM", "url": "https://chriswarrick.com/blog/tags/pdm/", "published_at": "2024-01-15T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80eef714e4", "title": "Posts about pip", "url": "https://chriswarrick.com/blog/tags/pip/", "published_at": "2024-01-15T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80f23bb62d", "title": "Posts about PyPA", "url": "https://chriswarrick.com/blog/tags/pypa/", "published_at": "2024-01-15T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80fe8d7ae0", "title": "Posts about virtual environments", "url": "https://chriswarrick.com/blog/tags/virtual-environments/", "published_at": "2024-01-15T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80c2da6a01", "title": "Posts for the year 2023", "url": "https://chriswarrick.com/blog/2023/", "published_at": "2023-04-18T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80e490aa24", "title": "Posts about JavaScript", "url": "https://chriswarrick.com/blog/tags/javascript/", "published_at": "2023-04-18T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80ec615521", "title": "Posts about Node.js", "url": "https://chriswarrick.com/blog/tags/nodejs/", "published_at": "2023-04-18T00:00:00+00:00" }, { "id": "01a0c5c8-7ad3-7388-ab55-6d80ece2df9c", "title": "Posts about npm", "url": "https://chriswarrick.com/blog/tags/npm/", "published_at": "2023-04-18T00:00:00+00:00" } ] posts Claim your blog
Back to Blog | Chris Warrick
Blog · corpus.blog/blogs/chriswarrick.com/posts

Blog | Chris Warrick

chriswarrick.com

2026

2025

2024

2023