Blog: Adam Johnson

web https://adamj.eu/
Author

Software Engineering: join my meetup in Lisbon, 8th October

Sept. 27, 2026 » Adam Johnson » [Archived Version]

I previously announced my Python optimization workshop in Lisbon, on 10th October (which still has a few places). I am now pleased to add a Python/Django meetup on the Thursday before. Here are the details: What: Software Engineering meetup When: Thursday 8th October 2026, 18:00–20:00 Where …

Read More

Python: join my optimization workshop in Lisbon, 10th October

Sept. 18, 2026 » Adam Johnson » [Archived Version]

I’m running a workshop in Lisbon next month, and you’re invited! It’s a small, in-person, hands-on session on optimizing Python code, with a Django flavour. Here are the details: What: Python optimization workshop When: Saturday 10th October 2026, 10:00–13:00 Where: Martinhal Lisbon Oriente, Parque …

Read More

Django: serve the change password well-known URL

Sept. 15, 2026 » Adam Johnson » [Archived Version]

When a password manager detects that a user’s password has been leaked or reused, it can prompt them to change it, but the password change URL varies by site. The web’s answer to such discovery problems is the reserved /.well-known/ URL namespace (RFC 8615), home to machine-readable files …

Read More

Django: introducing django-mcpz, for making MCP servers

Sept. 14, 2026 » Adam Johnson » [Archived Version]

I made another package! Say hello to django-mcpz, for building Model Context Protocol (MCP) servers in your Django project. The package tagline is easy peasy MCP servers in Django. MCP, the place to be? MCP specifies a way for LLMs to interact with external data sources. MCP servers can expose …

Read More

Django: django-upgrade 1.32.0 out now, with 44 AI-assisted bug fixes

Aug. 17, 2026 » Adam Johnson » [Archived Version]

django-upgrade is my tool for automatically upgrading your project code for new Django versions. It rewrites your Python files to fix deprecations and adopt some new features, taking a chunk of the monotony out of upgrading between Django versions. Yesterday, I released version 1.32.0, which fixes 44 bugs …

Read More

Django: introducing django-msgspec

Aug. 7, 2026 » Adam Johnson » [Archived Version]

It’s another day, another new package day here. Say hello to django-msgspec, a package of drop-in replacements for Django and Django REST Framework (DRF) components backed by msgspec. msgspec is a C-based serialization library covering JSON, MessagePack, YAML, and TOML, with optional schema validation through typed Struct classes. Its …

Read More

Django: release code words up to 6.1

July 23, 2026 » Adam Johnson » [Archived Version]

Did you know that each Django release has a “code word” associated with it? It’s hidden in plain sight, in the announcement blog post describing the list of features coming in the next version. I think this is a lovely little tradition. I last covered the list back in …

Read More

Django: introducing django-crawl

July 21, 2026 » Adam Johnson » [Archived Version]

I recently migrated one of my client projects from the legacy django-csp package to Django 6.0’s built-in Content Security Policy (CSP) support (release note). This security header is a powerful tool for preventing unwanted content from being loaded on your site, so configuration correctness is paramount. The migration …

Read More

Django: introducing django-orjson

July 14, 2026 » Adam Johnson » [Archived Version]

Just as cars painted red are known to be faster, libraries implemented in Rust are also known to be faster. Today’s example is orjson, a Rusty replacement for Python’s built-in json module, boasting 10x faster serialization and 2x faster deserialization. Such a library is great, but adopting it …

Read More

Django: introducing django-integrity-policy

May 30, 2026 » Adam Johnson » [Archived Version]

Back in January, Firefox’s Security & Privacy Newsletter for 2025 Q4 piqued my interest with this mention: Integrity-Policy: Firefox 145 has added support for the Integrity-Policy response header. The header allows websites to ensure that only scripts with an integrity attribute will load. A new security header! That’s right …

Read More