Simon Willison’s Weblog

Subscribe

January 2020

57 posts: 5 entries, 18 links, 5 quotes, 29 beats

Jan. 15, 2020

There is enough wood; Green estimates that it takes about 13 minutes for 20 North American forests to collectively grow enough wood for a 20-story building

David Roberts

# 4:03 pm / building

Jan. 16, 2020

Museum Cleveland Hungarian Museum — Galleria at Erieview, 1301 East 9th Street, Cleveland, OH 44114

Demos, Prototypes, and MVPs (via) I really like how Jacob describes the difference between a demo and a prototype: a demo is externally facing and helps explain a concept to a customer; a prototype is internally facing and helps prove that something can be built.

# 8:24 pm / jacob-kaplan-moss, prototyping

How to do Zero Downtime Deployments of Docker Containers. I’m determined to get reliable zero-downtime deploys working for a new project, because I know from experience that even a few seconds of downtime during a deploy changes the project mentality from “deploy any time you want” to “don’t deploy too often”. I’m using Docker containers behind Traefik, which means new containers should have traffic automatically balanced to them by Traefik based on their labels. After much fiddling around the pattern described by this article worked best for me: it lets me start a new container, then stop the old one and have Traefik’s “retry” mechanism send any requests to the stopped container over to the new one instead.

# 11:12 pm / deployment, zero-downtime, docker, traefik

Jan. 17, 2020

Your own hosted blog, the easy, free, open way (even if you’re not a computer expert) (via) Jeremy Howard and the fast.ai team have released fast_template—a GitHub repository designed to be used as a template to create new repositories with a complete Jekyll blog configured for use with GitHub pages. GitHub’s official document recommends you install Ruby on your machine to do this, but Jeremy points out that with the right repository setup you can run a blog entirely by editing files through the GitHub web interface.

# 1:12 am / blogging, github, jeremy-howard

Museum New Orleans Historic Voodoo Museum — 724 Dumaine Street, New Orleans, LA 70116

Jan. 18, 2020

Museum Ray Bandar's Bone Palace — Marietta Drive, San Francisco, CA 94127

Code is made of pain, lies, and bad ideas, all so we can pretend that electrified sand will do what we tell it to

Yoz Grahame

# 7:04 am / yozgrahame

Ray Bandar’s Bone Palace (via) The hundredth museum I’ve posted to Niche Museums, and this one is my absolute favourite. Ray Bandar spent sixty years collecting over 7,000 animal skulls and putting them on display in his house and basement. Natalie managed to score us a tour a few weeks before the entire collection was donated to the California Academy of Sciences. It was the most amazing room I’ve ever been in.

# 7:05 am / museums

Jan. 21, 2020

Tracking FARA by deploying a data API using GitHub Actions and Cloud Run

I’m using the combination of GitHub Actions and Google Cloud Run to retrieve data from the U.S. Department of Justice FARA website and deploy it as a queryable API using Datasette.

[... 1,599 words]

Weeknotes: Datasette Cloud and zero downtime deployments

Yesterday’s piece on Tracking FARA by deploying a data API using GitHub Actions and Cloud Run was originally intended to be my weeknotes, but ended up getting a bit too involved.

[... 1,431 words]

Jan. 24, 2020

Generated Columns in SQLite (via) SQLite 3.31.0 released today, and generated columns are the single most notable new feature. PostgreSQL 12 added these in October 2019, and MySQL has had them since 5.7 in October 2015. MySQL and SQLite both offer either “stored” or “virtual” generated columns, with virtual columns being calculated at runtime. PostgreSQL currently only supports stored columns.

# 4:20 am / mysql, postgresql, sql, sqlite

2020 Web Milestones (via) A lot of stuff is happening in 2020! Mike Sherov rounds it up—highlights include the release of Chromium Edge (Microsoft’s Chrome-powered browser for Windows 7+), Web Components supported in every major browser, Deno 1.x, SameSite Cookies turned on by default (which should dramatically reduce CSRF exposure) and Python 2 and Flash EOLs.

# 4:43 am / chrome, csrf, flash, internet-explorer, javascript, python, web, deno, samesite

Jan. 25, 2020

Museum The Marine Mammal Center — 2000 Bunker Road, Fort Cronkhite, Sausalito, CA 94965

Jan. 28, 2020

Release datasette-auth-existing-cookies 0.2a — Datasette plugin that authenticates users based on existing domain cookies
Release datasette-auth-existing-cookies 0.3b — Datasette plugin that authenticates users based on existing domain cookies

Jan. 29, 2020

Release datasette-sentry 0.1 — Datasette plugin for configuring Sentry
Release datasette-sentry 0.1.1 — Datasette plugin for configuring Sentry

Weeknotes: datasette-auth-existing-cookies and datasette-sentry

Work on Datasette Cloud continues—I’m tantalizingly close to having a MVP I can start to invite people to try out.

[... 701 words]

Jan. 30, 2020

Release datasette Datasette 0.34 — An open source multi-tool for exploring and publishing data

I used to tolerate and expect complexity. Working on Go the past 10 years has changed my perspective, though. I now value simplicity above almost all else and tolerate complexity only when it's well isolated, well documented, well tested, and necessary to make things simpler overall at other layers for most people.

Brad Fitzpatrick

# 5:17 pm / brad-fitzpatrick, complexity, go

Jan. 31, 2020

Release sqlite-utils 2.1 — Python CLI utility and library for manipulating SQLite databases
Release geojson-to-sqlite 0.1a — CLI tool for converting GeoJSON files to SQLite (with SpatiaLite)

gpt2-headlines.ipynb. My earliest experiment with GPT-2, using gpt-2-simple by Max Woolf to generate new New York Times headlines based on a GPT-2 fine-tuned against headlines from different decades of that newspaper.

# 2:13 am / ai, max-woolf, openai, generative-ai, llms, gpt-2

Release geojson-to-sqlite 0.1 — CLI tool for converting GeoJSON files to SQLite (with SpatiaLite)
Release geojson-to-sqlite 0.1.1 — CLI tool for converting GeoJSON files to SQLite (with SpatiaLite)

geojson-to-sqlite (via) I just put out the first release of geojson-to-sqlite—a CLI tool that can convert GeoJSON files (consisting of a Feature or a set of features in a FeatureCollection) into a table in a SQLite database. If you use the --spatialite option it will initalize the table with SpatiaLite and store the geometries in a spacially indexed geometry field—without that option it stores them as GeoJSON.

# 6:40 am / cli, gis, projects, spatialite, sqlite, geojson

2020 » January

MTWTFSS
  12345
6789101112
13141516171819
20212223242526
2728293031