SQLite can use more than one index for a query
I was trying to figure out if SQLite has the ability to use more than one index as part of executing a single query, or if it only ever picks a sin...
382 words
|
2 minutes
Zero Trust Architecture
Day 69 of 90 Days of DevOps - Zero Trust Architecture. Part of the Security & Compliance series covering essential DevOps concepts and hands-on practices.
413 words
|
2 minutes
Fixing "compinit: insecure directories" error
Every time I opened a terminal on my new Mac running Catalina with zsh I got the following annoying error:
97 words
|
1 minute
Convert git log output to JSON using jq
I just spent way too long messing around with ChatGPT ([transcript here](https://gist.github.com/simonw/c3b486fa90d7c32a0e8dfb47e151090a)) trying t...
394 words
|
2 minutes
How to call pip programatically from Python
I needed this for the `datasette install` and `datasette uninstall` commands, see [issue #925](https://github.com/simonw/datasette/issues/925).
324 words
|
2 minutes
Using S3 triggers to maintain a list of files in DynamoDB
This is a three-quarters-baked experiment that I ran this morning. I'm interested in efficiently tracking which new files have been added to an S3 ...
2216 words
|
11 minutes
Threat Modeling for DevOps
Day 68 of 90 Days of DevOps - Threat Modeling for DevOps. Part of the Security & Compliance series covering essential DevOps concepts and hands-on practices.
695 words
|
3 minutes
Processing a stream of chunks of JSON with ijson
A follow-up to [Using OpenAI functions and their Python library for data extraction](https://til.simonwillison.net/gpt3/openai-python-functions-dat...
712 words
|
4 minutes
Switching between gcloud accounts
I have two different Google Cloud accounts active at the moment. Here's how to list them with `gcloud auth list`:
71 words
|
1 minute
Security Policies and Governance
Day 67 of 90 Days of DevOps - Security Policies and Governance. Part of the Security & Compliance series covering essential DevOps concepts and hands-on practices.
452 words
|
2 minutes
Querying for GitHub issues open for less than 60 seconds
While [writing this thread](https://twitter.com/simonw/status/1370390336514658310) about my habit of opening issues and closing them a few seconds ...
200 words
|
1 minute
Compliance as Code
Day 66 of 90 Days of DevOps - Compliance as Code. Part of the Security & Compliance series covering essential DevOps concepts and hands-on practices.
470 words
|
2 minutes
Show files opened by pytest tests
My test suite for [Datasette](https://github.com/simonw/datasette) has grown so large that running the whole thing sometimes causes me to run out o...
225 words
|
1 minute
Deploying the CLIP embedding model on Fly
Inspired by [Drew Breunig's Faucet Finder](https://www.dbreunig.com/2023/09/26/faucet-finder.html) I decided I wanted to deploy an API somewhere th...
605 words
|
3 minutes
Open a debugging shell in GitHub Actions with tmate
> :warning: **17 Feb 2022: There have been reports of running tmate causing account suspensions**. See [this issue](https://github.com/mxschmitt/ac...
273 words
|
1 minute
SAST and DAST Implementation
Day 65 of 90 Days of DevOps - SAST and DAST Implementation. Part of the Security & Compliance series covering essential DevOps concepts and hands-on practices.
560 words
|
3 minutes
Driving an external display from a Mac laptop
For a friend's wedding I needed to run a Google Photos slideshow on some large televisions.
243 words
|
1 minute
Secrets Management and Vault
Day 64 of 90 Days of DevOps - Secrets Management and Vault. Part of the Security & Compliance series covering essential DevOps concepts and hands-on practices.
635 words
|
3 minutes
Getting Python MD5 to work with FIPS systems
[This issue](https://github.com/simonw/datasette/issues/2270) by Parand Darugar pointed out that Datasette doesn't currently run on Linux systems w...
723 words
|
4 minutes
Creating a tiled zoomable image with OpenSeadragon and vips
The San Francisco Microscopical Society has some extremely high resolution scanned images - one of them is a 1.67GB PNG file with a 25,088 × 17,283...
381 words
|
2 minutes
Container Security and Image Scanning
Day 63 of 90 Days of DevOps - Container Security and Image Scanning. Part of the Security & Compliance series covering essential DevOps concepts and hands-on practices.
430 words
|
2 minutes
Cumulative total over time in SQL
This is a quick trick for creating a cumulative chart of the total number of items created over time based just on their creation date.
103 words
|
1 minute
Embedding JavaScript in a Jupyter notebook
I recently found out modern browsers include a JavaScript API for creating public/private keys for cryptography.
280 words
|
1 minute
Security Scanning in CI/CD Pipelines
Day 62 of 90 Days of DevOps - Security Scanning in CI/CD Pipelines. Part of the Security & Compliance series covering essential DevOps concepts and hands-on practices.
468 words
|
2 minutes