<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url><loc>https://bradleykirton.com/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2025/11/19/server-timing-middleware/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2025/11/19/managing-a-vault-with-age/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2025/11/19/keeping-your-web-app-state-in-sync/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2025/11/10/pathsend/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2025/10/21/sshfs/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2025/08/22/extending-enums-with-multiple-values/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2025/06/06/exposing-a-machine-on-a-local-network-through-ssh-with-avahi/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2025/06/05/a-reconciliation-loop-template/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2025/05/11/importing-files-into-sqlite/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2025/03/10/css-printing-utils/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2025/02/25/error-specialisation-in-django/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2025/02/24/django-view-dispatching/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2025/02/12/storing-ansible-vault-keys-in-your-system-keyring/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2024/11/12/sharing-folders-in-virtual-box/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2024/09/28/useful-sqlite-commands/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2024/06/12/postgresql-functions-vs-procedures/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2024/05/31/installing-python-packages-from-private-repos-within-docker/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2024/05/30/building-python-site-packages-for-aws-lambda-environments/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2024/04/16/the-anatomy-of-a-good-commit-message/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2024/04/15/responsive-tables-in-tailwind/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2024/03/29/introducing-hyper-search/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2024/03/29/token-highlighting-for-web-search/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2024/02/19/adding-scripts-to-path-with-mise-en-place/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2024/02/13/how-to-run-celery-and-celery-beat-in-dokku-django-app/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2024/02/12/how-to-sort-git-branches-by-commit-date/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2024/01/31/setting-up-a-okdo-rockpi-se/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2024/01/26/notes-on-dokku/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2024/01/20/representing-object-lifecycles-using-proxy-models/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2024/01/19/installing-python-packages-from-source-control/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2024/01/18/railway-oriented-programming-in-django/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2024/01/14/thoughts-on-django-application-architecture-approaches/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2024/01/12/htmx-and-web-components/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2024/01/08/mise-en-place-for-managing-project-dependencies/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2024/01/02/my-scripts-to-rule-them-all/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2023/12/10/styling-an-active-view-link-in-a-django-template/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2023/12/04/enable-sqlite-pragmas-in-django/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2023/11/29/how-to-change-dockers-image-storage-location/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2023/08/10/avoiding-value-error-max-arg-is-an-empty-sequence/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2023/07/10/race-conditions/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2023/06/24/a-python-based-tailwindcss-experiment/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2023/06/22/styling-checkboxes-with-tailwindcss/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2023/06/22/simple-object-mapping-using-the-built-in-json-module-in-python/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2023/06/14/styling-select-inputs-with-tailwindcss/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2023/06/12/styling-radio-buttons-the-django-template-language-and-tailwindcss/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2023/06/11/setting-up-an-arduino-nicla-vision-board/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2023/06/09/styling-the-dialog-backdrop-with-tailwindcss/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2023/06/09/simple-editor-config-file-for-web-development/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2023/06/04/creating-a-custom-search-control-with-htmx-and-hyperscript/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2023/06/02/a-script-for-running-django-runserver-and-tailwindcss-watch/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2023/06/02/spell-checking-websites-from-the-command-line/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2023/05/23/dynamic-background-images-with-django-and-tailwindcss/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2023/05/21/deregistering-models-from-the-django-admin-panel/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2023/05/21/how-to-customise-adminsite-attributes/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2022/11/22/autoloading-modules-in-manage-shell/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2022/04/04/application-config-using-only-the-python-stdlib/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2021/08/13/introducing-justnow/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2021/06/01/packaging-django-projects/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2021/05/20/generating-unique-reference-numbers-in-django/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2021/04/30/optimising-django-admin-list-views/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2021/03/10/sublime-text-3-lsp-setup/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2021/01/20/server-sent-events-in-django-3/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2021/01/14/benfords-law-and-covid-19/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2020/09/15/django-debug-meta-data-scrubbing/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2020/05/14/serving-a-static-site-from-azure-functions/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://bradleykirton.com/2020/05/01/metabase-on-azure-appservice/</loc><changefreq>monthly</changefreq><priority>0.5</priority></url>
</urlset>
