41554 blogs · [ { "id": "01a0878a-327c-732c-b82d-c4503124c570", "title": "How to build a simple event-driven architecture", "url": "https://www.jamesbeith.co.uk/til/2026-02-04/how-to-build-a-simple-event-driven-architecture/", "published_at": "2026-02-04T05:00:00+00:00" }, { "id": "01a0878a-327c-732c-b82d-c4503195a413", "title": "How to create a Django GeneratedField for extracting a timestamp from a UUIDv7", "url": "https://www.jamesbeith.co.uk/til/2025-12-04/how-to-create-a-django-generatedfield-for-extracting-a-timestamp-from-a-uuidv7/", "published_at": "2025-12-04T05:30:00+00:00" }, { "id": "01a0878a-327c-732c-b82d-c4503286208b", "title": "How to use reserved domains in tests to prevent DNS queries", "url": "https://www.jamesbeith.co.uk/til/2025-07-01/how-to-use-reserved-domains-in-tests-to-prevent-dns-queries/", "published_at": "2025-07-01T06:45:00+00:00" }, { "id": "01a0878a-327c-732c-b82d-c450336218de", "title": "How to optimise the order of HTML head elements using Capo", "url": "https://www.jamesbeith.co.uk/til/2025-06-23/how-to-optimise-the-order-of-html-head-elements-using-capo/", "published_at": "2025-06-23T01:00:00+00:00" }, { "id": "01a0878a-327c-732c-b82d-c45033d1b700", "title": "How to write a custom alias for the Python debugger", "url": "https://www.jamesbeith.co.uk/til/2025-06-19/how-to-write-a-custom-alias-for-the-python-debugger/", "published_at": "2025-06-19T06:45:00+00:00" }, { "id": "01a0878a-327c-732c-b82d-c4503497f7d1", "title": "How to catch missing referenced files in Django static files manifest", "url": "https://www.jamesbeith.co.uk/til/2025-02-27/how-to-catch-missing-referenced-files-in-django-static-files-manifest/", "published_at": "2025-02-27T01:00:00+00:00" }, { "id": "01a0878a-327c-732c-b82d-c4503566e97a", "title": "How to use Django database function expressions directly", "url": "https://www.jamesbeith.co.uk/til/2024-10-02/how-to-use-django-database-function-expressions-directly/", "published_at": "2024-10-02T06:00:00+00:00" }, { "id": "01a0878a-327c-732c-b82d-c45035ca2e68", "title": "How to enqueue Celery tasks using RabbitMQ message priorities", "url": "https://www.jamesbeith.co.uk/til/2024-08-28/how-to-enqueue-celery-tasks-using-rabbitmq-message-priorities/", "published_at": "2024-08-28T03:30:00+00:00" }, { "id": "01a0878a-327c-732c-b82d-c45036545798", "title": "How to encode Unicode characters to store in AWS S3 object metadata", "url": "https://www.jamesbeith.co.uk/til/2024-08-05/how-to-encode-unicode-characters-to-store-in-aws-s3-object-metadata/", "published_at": "2024-08-04T23:00:00+00:00" }, { "id": "01a0878a-327c-732c-b82d-c45036e32aca", "title": "How to create a Django model index with an upper case empty string condition", "url": "https://www.jamesbeith.co.uk/til/2024-05-02/how-to-create-a-django-model-index-with-an-upper-case-empty-string-condition/", "published_at": "2024-05-02T05:50:00+00:00" }, { "id": "01a0878a-327c-732c-b82d-c45037106c24", "title": "How to structure Django projects", "url": "https://www.jamesbeith.co.uk/blog/how-to-structure-django-projects/", "published_at": "2018-06-25T11:00:00+00:00" } ] posts Claim your blog
Back to jamesbeith.co.uk
Blog · corpus.blog/blogs/jamesbeith.co.uk/posts

jamesbeith.co.uk

jamesbeith.co.uk

2026

2025

2024

2018