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.
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.
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.
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.
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.
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.
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.
An early look at HTTP/3
This is an overview of how this site performs when served over HTTP/3.
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.
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.
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.
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.
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.
Stet.io blog
Stet.io is an online image editor I developed, it also had a blog about it and image processing techniques.