41554 blogs · [ { "id": "01a0d882-7ac6-70cc-b1af-9290a3de176a", "title": "A master class in decorators, patching and tracing", "url": "https://grahamdumpleton.me/posts/2026/09/a-master-class-in-decorators-patching-and-tracing/", "published_at": "2026-09-25T00:00:00+00:00" }, { "id": "01a08d45-d0b4-712d-a024-769f5f6a7171", "title": "OpenTelemetry export in wrapture", "url": "https://grahamdumpleton.me/posts/2026/09/opentelemetry-export-in-wrapture/", "published_at": "2026-09-18T00:00:00+00:00" }, { "id": "01a08ca5-3182-7218-8879-fdced960c77a", "title": "Finding slow code with wrapture", "url": "https://grahamdumpleton.me/posts/2026/09/finding-slow-code-with-wrapture/", "published_at": "2026-09-17T00:00:00+00:00" }, { "id": "01a0877e-7b33-7176-8017-fd8e4b152912", "title": "Tracing Flask with wrapture", "url": "https://grahamdumpleton.me/posts/2026/09/tracing-flask-with-wrapture/", "published_at": "2026-09-16T00:00:00+00:00" }, { "id": "01a0821c-70b8-7239-a57e-d73fd99be8bf", "title": "Zero-code tracing with wrapture", "url": "https://grahamdumpleton.me/posts/2026/09/zero-code-tracing-with-wrapture/", "published_at": "2026-09-15T00:00:00+00:00" }, { "id": "01a0821c-70b8-7239-a57e-d73fd9d4d6f7", "title": "Live tracing with wrapture", "url": "https://grahamdumpleton.me/posts/2026/09/live-tracing-with-wrapture/", "published_at": "2026-09-14T00:00:00+00:00" }, { "id": "01a0821c-70b8-7239-a57e-d73fda5ad871", "title": "Beyond callables in wrapture", "url": "https://grahamdumpleton.me/posts/2026/09/beyond-callables-in-wrapture/", "published_at": "2026-09-11T00:00:00+00:00" }, { "id": "01a0821c-70b8-7239-a57e-d73fda78bc0e", "title": "Phased behaviour in wrapture", "url": "https://grahamdumpleton.me/posts/2026/09/phased-behaviour-in-wrapture/", "published_at": "2026-09-10T00:00:00+00:00" }, { "id": "01a0821c-70b8-7239-a57e-d73fda965339", "title": "Recording calls with wrapture", "url": "https://grahamdumpleton.me/posts/2026/09/recording-calls-with-wrapture/", "published_at": "2026-09-09T00:00:00+00:00" }, { "id": "01a0821c-70b8-7239-a57e-d73fdadc6af3", "title": "Unit testing with wrapture", "url": "https://grahamdumpleton.me/posts/2026/09/unit-testing-with-wrapture/", "published_at": "2026-09-08T00:00:00+00:00" }, { "id": "01a0821c-70b8-7239-a57e-d73fdb9b7c8c", "title": "Introducing wrapture", "url": "https://grahamdumpleton.me/posts/2026/08/introducing-wrapture/", "published_at": "2026-09-07T00:00:00+00:00" }, { "id": "01a0821c-70b8-7239-a57e-d73fdc171b7c", "title": "WSGISwitchInterval in mod_wsgi 6.0.0", "url": "https://grahamdumpleton.me/posts/2026/05/wsgi-switch-interval-in-mod-wsgi-6-0-0/", "published_at": "2026-06-02T00:00:00+00:00" }, { "id": "01a0821c-70b8-7239-a57e-d73fdbcf0844", "title": "Free-threading vs the GIL in mod_wsgi 6.0.0", "url": "https://grahamdumpleton.me/posts/2026/05/free-threading-vs-the-gil-in-mod-wsgi-6-0-0/", "published_at": "2026-05-26T07:00:00+00:00" }, { "id": "01a0821c-70b8-7239-a57e-d73fdcfa3cfc", "title": "Free-threading in mod_wsgi 6.0.0", "url": "https://grahamdumpleton.me/posts/2026/05/free-threading-in-mod-wsgi-6-0-0/", "published_at": "2026-05-25T01:00:00+00:00" }, { "id": "01a09501-ac44-7308-8b21-1ad236cfe3ed", "title": "Trying out wrapture", "url": "https://grahamdumpleton.me/posts/2026/09/trying-out-wrapture/", "published_at": null }, { "id": "01a0b0f4-abfb-73be-82c3-5f834b6aaafe", "title": "Introducing jupyterlab-workshop", "url": "https://grahamdumpleton.me/posts/2026/09/introducing-jupyterlab-workshop/", "published_at": null }, { "id": "01a0b0f4-abfb-73be-82c3-5f834c6144af", "title": "Hands-on learning in the age of AI", "url": "https://grahamdumpleton.me/posts/2026/09/hands-on-learning-in-the-age-of-ai/", "published_at": null }, { "id": "01a0c50f-e222-72df-84cf-5eb1c20bffff", "title": "Writing a workshop for JupyterLab", "url": "https://grahamdumpleton.me/posts/2026/09/writing-a-workshop-for-jupyterlab/", "published_at": null } ] posts Claim your blog
Back to Graham Dumpleton
Blog · corpus.blog/blogs/grahamdumpleton.me/posts

Graham Dumpleton

grahamdumpleton.me

2026

Undated