Using DuckDB in Python to access Parquet data
Did a quick experiment with [DuckDB](https://duckdb.org/) today, inspired by the [bmschmidt/hathi-binary](https://github.com/bmschmidt/hathi-binary...
291 words
|
1 minute
Set environment variables for all steps in a GitHub Action
From [this example](https://github.com/GoogleCloudPlatform/github-actions/blob/20c294aabd5331f9f7b8a26e6075d41c31ce5e0d/example-workflows/cloud-run...
89 words
|
1 minute
Simplest possible OAuth authentication with Auth0
[Auth0](https://auth0.com/) provides an authentication API which you can use to avoid having to deal with user accounts in your own web application.
576 words
|
3 minutes
Allowing a container in Docker Desktop for Mac to talk to a PostgreSQL server on the host machine
I like using [Postgres.app](https://postgresapp.com/) to run PostgreSQL on my macOS laptop. I use it for a bunch of different projects.
290 words
|
1 minute
Using the GitHub Actions cache with npx and no package.json
Some of my repositories have GitHub Actions workflows that execute commands using `npx`, for example my [graphql-scraper](https://github.com/simonw...
263 words
|
1 minute
Athena error: The specified key does not exist
I was trying to run Athena queries against compressed JSON log files stored in an S3 bucket.
267 words
|
1 minute
Testing the Access-Control-Max-Age CORS header
Today I noticed that [Datasette](https://datasette.io/) wasn't serving a `Access-Control-Max-Age` header.
543 words
|
3 minutes
Serving MBTiles with datasette-media
The [MBTiles](https://github.com/mapbox/mbtiles-spec) format uses SQLite to bundle map tiles for use with libraries such as Leaflet.
160 words
|
1 minute
Adding a CORS policy to an S3 bucket
Amazon S3 buckets that are configured to work as public websites can support CORS, allowing assets such as JavaScript modules to be loaded by JavaS...
550 words
|
3 minutes
Ensure labels exist in a GitHub repository
I wanted to ensure that when [this template repository](https://github.com/simonw/action-transcription) was used to create a new repo that repo wou...
161 words
|
1 minute
Registering new Datasette plugin hooks by defining them in other plugins
I'm experimenting with a Datasette plugin that itself adds new plugin hooks which other plugins can then interact with.
150 words
|
1 minute
Configuring auto-update for an Electron app
This is _almost_ really simple. I used [electron/update-electron-app](https://github.com/electron/update-electron-app) for it, the instructions for...
391 words
|
2 minutes
Setting cache-control: max-age=31536000 with a Cloudflare Transform Rule
I ran https://simonwillison.net/ through [PageSpeed Insights](https://pagespeed.web.dev/) and it warned me that my static assets were not being ser...
646 words
|
3 minutes
Redirecting a domain using Cloudflare Pages
I wanted to redirect https://global-power-plants.datasettes.com/ to https://datasette.io/ - I decided to spin up a Cloudflare Pages site to do the ...
682 words
|
3 minutes
Limited JSON API for Google searches using Programmable Search Engine
I figured out how to use a JSON API to run a very limited Google search today in a legit, non-screen-scraper way.
538 words
|
3 minutes
Loading lit from Skypack
[Lit 2](https://lit.dev/blog/2021-09-21-announcing-lit-2/) stable was released today, offering a tiny, feature-full framework for constructing web ...
108 words
|
1 minute
Bulk editing status in GitHub Projects
GitHub Projects has a mechanism for bulk updating the status of items, but it's pretty difficult to figure out how to do it.
137 words
|
1 minute
Writing an Azure Function that serves all traffic to a subdomain
[Azure Functions](https://docs.microsoft.com/en-us/azure/azure-functions/) default to serving traffic from a path like `/api/FunctionName` - for ex...
157 words
|
1 minute
Remember to commit when using datasette.execute_write_fn()
I was writing some code for [datasette-auth-tokens](https://github.com/simonw/datasette-auth-tokens) that used [db.execute_write_fn()](https://docs...
190 words
|
1 minute
GitHub Pages: The Missing Manual
[GitHub Pages](https://pages.github.com/) is an excellent free hosting platform, but the documentation is missing out on some crucial details.
519 words
|
3 minutes
Setting up a custom subdomain for a GitHub Pages site
This is so much easier than I was expecting it to be.
246 words
|
1 minute
Using SQL with GDAL
Inspired [by Brad Neuberg](https://twitter.com/bradneuberg/status/1633875601789681666) I decided to take a look at the SQL features in the GDAL fam...
985 words
|
5 minutes
Removing a git commit and force pushing to remove it from history
2024-08-03
I accidentally triggered a commit which added a big chunk of unwanted data to my repository. I didn't want this to stick around in the history fore...
97 words
|
1 minute
How to get Cloudflare to cache HTML
To my surprise, if you setup a [Cloudflare](https://www.cloudflare.com/) caching proxy in front of a website it won't cache HTML pages by default, ...
227 words
|
1 minute