Simon Willison’s Weblog

Subscribe

November 2020

68 posts: 6 entries, 21 links, 1 quote, 40 beats

Nov. 18, 2020

Release datasette-indieauth 1.0 — Datasette authentication using IndieAuth and RelMeAuth

Implementing IndieAuth for Datasette

Visit Implementing IndieAuth for Datasette

IndieAuth is a spiritual successor to OpenID, developed and maintained by the IndieWeb community and based on OAuth 2. This weekend I attended IndieWebCamp East Coast and was inspired to try my hand at an implementation. datasette-indieauth is the result, a new plugin which enables IndieAuth logins to a Datasette instance.

[... 1,225 words]

Nov. 19, 2020

Release datasette-indieauth 1.1 — Datasette authentication using IndieAuth and RelMeAuth

Security vulnerability in datasette-indieauth: Implementation trusts the “me” field returned by the authorization server without verifying it. I spotted a critical security vulnerability in my new datasette-indieauth plugin: it accepted the “me” profile URL value returned from the authorization server in the final step of the IndieAuth flow without verifying it, which means a malicious server could imitate any user. I’ve shipped 1.1 with a fix and posted a security advisory to the GitHub repository.

# 9:14 pm / projects, security

Internet Archive Software Library: Flash (via) A fantastic new initiative from the Internet Archive: they’re now archiving Flash (.swf) files and serving them for modern browsers using Ruffle, a Flash Player emulator written in Rust and compiled to WebAssembly. They are fully interactive and audio works too. Considering the enormous quantity of creative material released in Flash over the decades this helps fill a big hole in the Internet’s cultural memory.

# 9:19 pm / flash, internet-archive, jason-scott, rust, webassembly

Release datasette-indieauth 1.2 — Datasette authentication using IndieAuth and RelMeAuth

Nov. 20, 2020

The trouble with transaction.atomic (via) David Seddon provides a detailed explanation of Django’s nestable transaction.atomic() context manager and describes a gotcha that can occur if you lose track of whether your code is already running in a transaction block, since you may be working with savepoints instead—along with some smart workarounds.

# 3:57 pm / django, transactions

The open secret Jennings filled me in on is that OpenStreetMap (OSM) is now at the center of an unholy alliance of the world’s largest and wealthiest technology companies. The most valuable companies in the world are treating OSM as critical infrastructure for some of the most-used software ever written. The four companies in the inner circle— Facebook, Apple, Amazon, and Microsoft— have a combined market capitalization of over six trillion dollars.

Joe Morrison

# 9:11 pm / amazon, apple, facebook, microsoft, openstreetmap

Nov. 21, 2020

I Lived Through A Stupid Coup. America Is Having One Now (via) If, like me, you have been avoiding the word “coup” since it feels like a clear over-reaction to what’s going on, I challenge you to read this piece and not change your mind.

# 1:21 pm / politics, trump

Release datasette-graphql 1.2 — Datasette plugin providing an automatic GraphQL API for your SQLite databases

datasette-graphql 1.2 (via) A new release of the datasette-graphql plugin, fixing a minor security flaw: previous versions of the plugin could expose the schema (but not the actual data) of tables in databases that were otherwise protected by Datasette’s permission system.

# 10:21 pm / projects, security, graphql, datasette

Nov. 22, 2020

Weeknotes: datasette-indieauth, datasette-graphql, PyCon Argentina

Visit Weeknotes: datasette-indieauth, datasette-graphql, PyCon Argentina

Last week’s weeknotes took the form of my Personal Data Warehouses: Reclaiming Your Data talk write-up, which represented most of what I got done that week. This week I mainly worked on datasette-indieauth, but I also gave a keynote at PyCon Argentina and released a version of datasette-graphql with a small security fix.

[... 724 words]

Nov. 24, 2020

Datasette Client for Observable (via) Really elegant piece of code design from Alex Garcia: DatasetteClient is a client library he built designed to work in Observable notebooks, which uses JavaScript tagged template literals to allow SQL query results to be executed against a Datasette instance and displayed as inline tables in a notebook, or used to return JSON data for further processing. His example notebook includes a neat d3 stacked area chart example built against a Datasette of congresspeople, plus examples using interactive widgets to update the Notebook.

# 6:53 pm / javascript, datasette, observable, alex-garcia

Release datasette-graphql 1.2.1 — Datasette plugin providing an automatic GraphQL API for your SQLite databases

Nov. 25, 2020

Release datasette-ripgrep 0.1a0 — Web interface for searching your code using ripgrep, built as a Datasette plugin
Release datasette-ripgrep 0.1a1 — Web interface for searching your code using ripgrep, built as a Datasette plugin
Release datasette-atom 0.8.1 — Datasette plugin that adds a .atom output format
TIL Redirects for Datasette — I made some changes to my https://til.simonwillison.net/ site that resulted in cleaner URL designs, so I needed to setup some redirects. I configured the redirects using a one-off Datasette plugin called `redirects.py` which I dropped into the `plugins/` directory for the Datasette instance:

Nov. 26, 2020

Release datasette-ripgrep 0.1 — Web interface for searching your code using ripgrep, built as a Datasette plugin

Nov. 27, 2020

Unravelling `not` in Python (via) Part of a series where Brett Cannon looks at how fundamental Python syntactic sugar works, including a clearly explained dive into the underlying op codes and C implementation.

# 5:59 pm / c, python, brett-cannon

Nov. 28, 2020

Release datasette-ripgrep 0.2 — Web interface for searching your code using ripgrep, built as a Datasette plugin

datasette-ripgrep: deploy a regular expression search engine for your source code

Visit datasette-ripgrep: deploy a regular expression search engine for your source code

This week I built datasette-ripgrep—a web application for running regular expression searches against source code, built on top of the amazing ripgrep command-line tool.

[... 1,362 words]

Release datasette-ripgrep 0.2.1 — Web interface for searching your code using ripgrep, built as a Datasette plugin
Release datasette-ripgrep 0.3 — Web interface for searching your code using ripgrep, built as a Datasette plugin
Release datasette-ripgrep 0.4 — Web interface for searching your code using ripgrep, built as a Datasette plugin
Release datasette-ripgrep 0.5 — Web interface for searching your code using ripgrep, built as a Datasette plugin
Release datasette-ripgrep 0.6 — Web interface for searching your code using ripgrep, built as a Datasette plugin
Release datasette-ripgrep 0.6.1 — Web interface for searching your code using ripgrep, built as a Datasette plugin
Release datasette 0.52 — An open source multi-tool for exploring and publishing data

Nov. 29, 2020

Datasette 0.52. A relatively small release—it has a new plugin hook (database_actions(), for adding links to a new database actions menu), renames the --config option to --setting and adds a new “datasette publish cloudrun --apt-get-install” option.

# 12:56 am / projects, datasette, cloudrun

2020 » November

MTWTFSS
      1
2345678
9101112131415
16171819202122
23242526272829
30