Today I discovered an interesting inconsistency in Activity Streams specs while investigating [a Fedify issue].
-
@mariusor no, i'm just trying to reach a mutual understanding.
content negotiation is fine if you are serving the same information for the same identifier. you have this idea of images being documents, people being documents, etc., and i have the idea that the representations are not the thing itself.
take for example the very popular and common pattern of doing something like this:
/image
/image.avif
/image?width=600
/image/thumbnail
/image@2xthese might all be "the same image" at the end.
@mariusor again, this isn't theoretical, there are plenty of web servers doing exactly this.
you can find services of this sort all over the place:
Placehold
Placehold is a simple, fast and free image placeholder service to generate SVG, PNG, JPEG, GIF, WebP and AVIF placeholder images for your project.
(placehold.co)
and many widely-used softwares as well:
Images API
The Contentful Images API allows the retrieval and manipulation of image files referenced from assets.
(www.contentful.com)
GitHub - imgproxy/imgproxy: Fast and secure standalone server for resizing and converting remote images
Fast and secure standalone server for resizing and converting remote images - imgproxy/imgproxy
GitHub (github.com)
-
@mariusor again, this isn't theoretical, there are plenty of web servers doing exactly this.
you can find services of this sort all over the place:
Placehold
Placehold is a simple, fast and free image placeholder service to generate SVG, PNG, JPEG, GIF, WebP and AVIF placeholder images for your project.
(placehold.co)
and many widely-used softwares as well:
Images API
The Contentful Images API allows the retrieval and manipulation of image files referenced from assets.
(www.contentful.com)
GitHub - imgproxy/imgproxy: Fast and secure standalone server for resizing and converting remote images
Fast and secure standalone server for resizing and converting remote images - imgproxy/imgproxy
GitHub (github.com)
@mariusor the problem (for others) is that when you use the same URI to refer to different things, you can no longer distinguish between them. it's why the naive approach is to just use file extensions -- less ambiguity. you can trade content negotiation for explicit identification ahead-of-time. but it's quite tenuous to say that foo.jsonld and foo.png are "the same" in any meaningful sense. one is a description of an image, the other is a representation of the image. neither are the real thing