Simon Willison’s Weblog

Subscribe

November 2020

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

Nov. 1, 2020

Release datasette-graphql 1.1 — Datasette plugin providing an automatic GraphQL API for your SQLite databases
Release datasette-configure-fts 1.1 — Datasette plugin for enabling full-text search against selected table columns
TIL Dropdown menu with details summary — I added dropdown menus to [Datasette 0.51](https://docs.datasette.io/en/stable/changelog.html#v0-51) - see [#1064](https://github.com/simonw/datasette/issues/1064).
Release datasette 0.51.1 — An open source multi-tool for exploring and publishing data

Datasette 0.51 (plus weeknotes)

Visit Datasette 0.51 (plus weeknotes)

I shipped Datasette 0.51 today, with a new visual design, plugin hooks for adding navigation options, better handling of binary data, URL building utility methods and better support for running Datasette behind a proxy. It’s a lot of stuff! Here are the annotated release notes.

[... 2,020 words]

Nov. 2, 2020

selenium-wire. Really useful scraping tool: enhances the Python Selenium bindings to run against a proxy which then allows Python scraping code to look at captured requests—great for if a site you are working with triggers Ajax requests and you want to extract data from the raw JSON that came back.

# 6:58 pm / data-journalism, python, scraping, selenium

Nov. 3, 2020

Release csvs-to-sqlite 1.2 — Convert CSV files into a SQLite database

Nov. 5, 2020

CSVs: The good, the bad, and the ugly (via) Useful, thoughtful summary of the pros and cons of the most common format for interchanging data.

# 5:19 pm / alex-gaynor, csv

Learning from Mini Apps (via) WeChat, Baidu, Alipay and Douyin in China are all examples of “Super apps” that can host “Mini apps” written in HTML and JavaScript by other developers and installed via in-app search or through scanning a QR code. Mini apps are granted (permission-gated) access to further system APIs via a JavaScript bridge. It’s a fascinating developer ecosystem, explored in detail here by Thomas Steiner.

# 5:21 pm / javascript, mobile

Nov. 6, 2020

Release sqlite-fts4 1.0 — Custom Python functions for working with SQLite FTS4
Release sqlite-fts4 1.0.1 — Custom Python functions for working with SQLite FTS4

nyt-2020-election-scraper. Brilliant application of git scraping by Alex Gaynor and a growing team of contributors. Takes a JSON snapshot of the NYT’s latest election poll figures every five minutes, then runs a Python script to iterate through the history and build an HTML page showing the trends, including what percentage of the remaining votes each candidate needs to win each state. This is the perfect case study in why it can be useful to take a “snapshot if the world right now” data source and turn it into a git revision history over time.

# 2:24 pm / alex-gaynor, data-journalism, elections, git, new-york-times, git-scraping

Nov. 7, 2020

Release sqlite-utils 3.0a0 — Python CLI utility and library for manipulating SQLite databases

Weeknotes: sqlite-utils 3.0 alpha, Git scraping in the zeitgeist

Visit Weeknotes: sqlite-utils 3.0 alpha, Git scraping in the zeitgeist

Natalie and I decided to escape San Francisco for election week, and have been holed up in Fort Bragg on the Northern California coast. I’ve mostly been on vacation, but I did find time to make some significant changes to sqlite-utils. Plus notes on an exciting Git scraping project.

[... 603 words]

Nov. 8, 2020

Release sqlite-utils 3.0 — Python CLI utility and library for manipulating SQLite databases

Nov. 12, 2020

Intent to Remove: HTTP/2 and gQUIC server push (via) The Chrome / Blink team announce their intent to remove HTTP/2 server push support, where servers can start pushing an asset to a client before it has been requested. It’s been in browsers for over five years now and adoption is terrible. “Over the past 28 days [...] 99.97% of connections never received a pushed stream that got matched with a request [...] These numbers are exactly the same as in June 2019”. Datasette serves redirects with Link: preload headers that cause smart proxies (like Cloudflare) to push the redirected page to the client along with the redirect, but I don’t exepect to miss that optimization if it quietly stops working.

# 1:44 am / chrome, http2, datasette

Release datasette-search-all 1.0 — Datasette plugin for searching all searchable tables at once

Nov. 14, 2020

Personal Data Warehouses: Reclaiming Your Data

Visit Personal Data Warehouses: Reclaiming Your Data

I gave a talk yesterday about personal data warehouses for GitHub’s OCTO Speaker Series, focusing on my Datasette and Dogsheep projects. The video of the talk is now available, and I’m presenting that here along with an annotated summary of the talk, including links to demos and further information.

[... 5,166 words]

Hunting for Malicious Packages on PyPI (via) Jordan Wright installed all 268,000 Python packages from PyPI in containers, and ran Sysdig to capture syscalls made during installation to see if any of them were making extra network calls or reading or writing from the filesystem. Absolutely brilliant piece of security engineering and research.

# 4:48 am / pypi, python, security

The Cleanest Trick for Autogrowing Textareas (via) This is a very clever trick. Textarea content is mirrored into a data attribute using a JavaScript one-liner, then a visibility: hidden ::after element clones that content using content: attr(data-replicated-value). The hidden element exists in a CSS grid with the textarea which allows the textarea to resize within the grid when the hidden element increases its height.

# 5:24 am / css, javascript

Release datasette-copyable 0.3.1 — Datasette plugin for outputting tables in formats suitable for copy and paste

Nov. 15, 2020

Release datasette-indieauth 0.1a0 — Datasette authentication using IndieAuth and RelMeAuth
Release datasette-indieauth 0.2a0 — Datasette authentication using IndieAuth and RelMeAuth

CoronaFaceImpact (via) Variable fonts are fonts that can be customized by passing in additional parameters, which is done in CSS using the font-variation-settings property. Here’s a ​variable font that shows multiple effects of Covid-19 lockdown on a bearded face, created by Friedrich Althausen.

# 10:41 pm / css, fonts, typography, covid19

Nov. 16, 2020

Ok Google: please publish your DKIM secret keys (via) The DKIM standard allows email providers such as Gmail to include cryptographic headers that protect against spoofing, proving that an email was sent by a specific host and has not been tampered with. But it has an unintended side effect: if someone’s email is leaked (as happened to John Podesta in 2016) DKIM headers can be used to prove the validity of the leaked emails. This makes DKIM an enabling factor for blackmail and other security breach related crimes.

Matthew Green proposes a neat solution: providers like Gmail should rotate their DKIM keys frequently and publish the PRIVATE key after rotation. By enabling spoofing of past email headers they would provide deniability for victims of leaks, fixing this unintended consequence of the DKIM standard.

# 10:02 pm / cryptography, email, security

Nov. 17, 2020

Amstelvar (via) A real showcase of what variable fonts can do: this open source font by David Berlow has 17 different variables controlling many different aspects of the font.

# 3:24 pm / fonts, typography

Release datasette-indieauth 0.3a0 — Datasette authentication using IndieAuth and RelMeAuth

Nov. 18, 2020

Release datasette-indieauth 0.3 — Datasette authentication using IndieAuth and RelMeAuth
Release datasette-indieauth 0.3.1 — Datasette authentication using IndieAuth and RelMeAuth
Release datasette-indieauth 0.3.2 — Datasette authentication using IndieAuth and RelMeAuth

2020 » November

MTWTFSS
      1
2345678
9101112131415
16171819202122
23242526272829
30