Interpreting photo orientation and locations in EXIF data
I upgraded my [Niche Museums](https://www.niche-museums.com/) site to use [PhotoSwipe](https://photoswipe.com/) for its photo galleries today. Here...
827 words
|
4 minutes
Helper function for pagination using AWS boto3
I noticed that a lot of my boto3 code in [s3-credentials](https://github.com/simonw/s3-credentials) looked like this:
85 words
|
1 minute
Testing things in Fedora using Docker
I got [a report](https://twitter.com/peterjanes/status/1552407491819884544) of a bug with my [s3-ocr tool](https://simonwillison.net/2022/Jun/30/s3...
145 words
|
1 minute
Downloading partial YouTube videos with ffmpeg
I spoke [at WordCamp US 2023](), and wanted to grab a copy of the video of my talk. I always try to keep my own copies of these because I've seen s...
604 words
|
3 minutes
Deploying a live Datasette demo when the tests pass
I've implemented this pattern a bunch of times now - here's the version I've settled on for my [datasette-auth0 plugin](https://github.com/simonw/d...
446 words
|
2 minutes
Integrating Podman with Kubernetes - A Comprehensive Guide
A practical guide to seamlessly integrating Podman with Kubernetes workflows, including generating Kubernetes manifests, development practices, and migration strategies.
1183 words
|
6 minutes
Use DuckDB to convert parquet to JSON and then open it in Datasette Lite
[pickapic.io](https://pickapic.io/) is a new tool funded by [stability.ai](https://stability.ai/) which asks people to generate and then vote on im...
608 words
|
3 minutes
Treating warnings as errors in pytest
I was seeing this warning in a Django project when I thought I was correctly using timezone-aware dates everywhere:
164 words
|
1 minute