P G Jones

A Blog About Software Development

Welcome to my blog.
Atom Feed RSS Feed
How to use Postgres with Quart

How to use Postgres with Quart, focusing on the libraries to use and setup to make type conversions and things generally easy.

Read more →

Automatic API Testing

How to use Hypothesis, and Quart-Schema, to automatically test your API.

Read more →

How to write ASGI middleware

A guide to writing ASGI middleware via an example domain based dispatcher.

Read more →

My evolution writing JSON-REST APIs

I've been writing JSON-REST APIs for a number of years, all the time wanting to have tooling that validates the JSON sent and received and automatically generates documentation. I finally have this with Quart-Schema, and this article explains how I got there.

Read more →

This site is now written in Svelte

I've rewritten the frontend of this website using Svelte + Sapper and it works great. I think Svelte + Sapper is the best of the modern web frameworks for my needs.

Read more →

Quart turns 3

The first release of Quart, 0.1.0, was three years ago today. This a brief review and an attempt to produce a roadmap towards version 1.0.

Read more →

Packaging without setup.py

I've recently started packaging without setup.py by using poetry and pyproject.toml. This explains why and how I have done so.

Read more →

Is there a startup time cost to type hinting?

Type hints in Python 3 are executed at import time at a computational cost. This cost can removed in Python >= 3.7 via from __future__ import annotations, see PEP-563. The startup time when importing quart is measured both with and without the future import with no difference observed.

Read more →

Making Flask async and Quart sync

I've proposed a change to Flask to support async(io) view functions following on from a recent change to Quart to support (non-blocking) sync view functions. This article explains this approach and why Flask and Quart are necessarily complimentrary projets.

Read more →

Verifying HTTP/2 Prioritisation in Hypercorn

Hypercorn 0.8.0 introduced support for HTTP/2 prioritisation the verification of which is demonstrated via a simple webpage.

Read more →

An early look at HTTP/3

This is an overview of how this site performs when served over HTTP/3.

Read more →

Adding an RSS feed

RSS is very useful feature that was missing from this blog, so I've added it. This explains why I've added it and how.

Read more →

How to serve HTTP 1, 2, and 3 in Python

Serving HTTP/1, HTTP/2, and HTTP/3 in Python has never been easier, as Hypercorn can serve all three. This article will show how to use Hypercorn and how Hypercorn uses three great Sans-IO libraries to work.

Read more →

How to setup CORS for a Single Page App

Modern Single Page Apps have a increasingly common architecture whereby the frontend is served on a different domain to the backend necessitating the use of CORS. This article shows how to make CORS work in this architecture.

Read more →

My experience with Push Promises (Server Push)

This is a commentrary on my usage of, and experience with, push promises and how I've added support in Quart.

Read more →

Medium blog

Before I made this site I blogged on medium.com under the handle @pgjones. I still do for articles that are related to my employment.

Read more →

Stet.io blog

Stet.io is an online image editor I developed, it also had a blog about it and image processing techniques.

Read more →