soft-shell crabvietnam crab exporter

Simon Willison’s Weblog

Newsletter

Posts in 2019

Filters: Year: 2019 × Sorted by date

Donkeys in the sanctuary.
Museum The Donkey Sanctuary — Slade House Farm, Sidmouth, EX10 0NU, United Kingdom

Scaling React Server-Side Rendering (via) Outstanding, detailed essay from 2017 on challenges and solutions for scaling React server-side rendering at Kijiji, Canada’s largest classified site (owned by eBay). There’s a lot of great stuff in here, including a detailed discussion of different approaches to load balancing, load shedding, component caching, client-side rendering fallbacks and more.

# 30th December 2019, 10:26 pm / load-balancing, scaling, react

Guide To Using Reverse Image Search For Investigations (via) Detailed guide from Bellingcat’s Aric Toler on using reverse image search for investigative reporting. Surprisingly Google Image Search isn’t the state of the art: Russian search engine Yandex offers a much more powerful solution, mainly because it’s the largest public-facing image search engine to integrate scary levels of face recognition.

# 30th December 2019, 10:23 pm / journalism, search, bellingcat

Machine Learning on Mobile and at the Edge: 2019 industry year-in-review (via) This is a fantastic detailed overview of advances made in the field of machine learning on the edge (primarily on mobile devices) over 2019. I’m really excited about this trend: I love the improved privacy implications of running models on my phone without uploading data to a server, and it’s great to see techniques like Federated Learning (from Google Labs) which enable devices to privately train models in a distributed way without having to upload their training data.

# 30th December 2019, 10:17 pm / machine-learning, mobile

sqlite-utils 2.0: real upserts

I just released version 2.0 of my sqlite-utils library/CLI tool to PyPI.

[... 1,140 words]

Release sqlite-utils 2.0 — Python CLI utility and library for manipulating SQLite databases
A beautiful pink tram.
Museum Seaton Tramway — Seaton Tramway, Harbour Road, Seaton, Devon EX12 2NQ, United Kingdom
Outside of Oakley Court.
Museum Oakley Court — Windsor Road, Water Oakley, Windsor, Berkshire, SL4 5UR, United Kingdom
Inside the Southern Food and Beverage Museum.
Museum Southern Food and Beverage Museum — 1504 Oretha Castle Haley Boulevard, New Orleans, LA 70113
The majestic Horniman walrus.
Museum Horniman Museum and Gardens — 100 London Road, Forest Hill, London SE23 3PQ, United Kingdom

For creative work, you can't cheat. My believe is that there are 5 creative hours in everyone's day. All I ask of people at Shopify is that 4 of those are channeled into the company.

— Tobi Lutke

# 26th December 2019, 7:06 pm / productivity, management, tobias-lutke, shopify

A ribbon of bats emerging from the causeway.
Museum Yolo Causeway Bat Colony — 45211 County Road 32B, Davis, CA 95618, United States

free-for.dev (via) It’s pretty amazing how much you can build on free tiers these days—perfect for experimenting with side-projects. free-for.dev collects free SaaS tools for developers via pull request, and has had contributions from over 500 people.

# 26th December 2019, 10:03 am / crowdsourcing, tools

Stonehenge.
Museum Stonehenge — Amesbury, Wiltshire, SP4 7DE, United Kingdom
Details of a Jukebox.
Museum Jukebox London — 16 Colebrooke Row, Islington, London, N1 8DB, United Kingdom

Weeknotes: Datasette 0.33

I released Datasette 0.33 yesterday. The release represents an accumulation of small changes and features since Datasette 0.32 back in November. Duplicating the release notes:

[... 678 words]

Outside Dennis Severs’ House
Museum Dennis Severs’ House — 18 Folgate Street, Spitalfields, London E1 6BX, United Kingdom

The Guardian’s nifty old-article trick is a reminder of how news organizations can use metadata to limit misinformation (via) The Guardian displays prominent banners on news stories from more than a year ago warning that it is an older article to help prevent accidental or intentional spread of misinformation using their content as ammunition. Impressively they also display the year prominently on the card images they serve as social media previews fir older articles.

# 23rd December 2019, 9:36 am / guardian, news, misinformation

Buckfast Abbey.
Museum Buckfast Abbey — Buckfast Abbey, Buckfastleigh, TQ11 0EE, United Kingdom
Release datasette Datasette 0.33 — An open source multi-tool for exploring and publishing data
A sloth in a tree with Panama City in the background.
Museum Reserva Cerro Ancón — Reserva Cerro Ancón, Panama City, Panama
A gold bar you can touch.
Museum Bank of England Museum — Bartholomew Lane, London, EC2R 8AH, United Kingdom

Building tools to bring data-driven reporting to more newsrooms. I wrote about my fellowship project so far and my goals for the next few months for the JSK Medium publication. My next priority: an invite-only hosted version for newsrooms so that figuring out how to install and manage the software isn’t the biggest barrier to entry.

# 20th December 2019, 11:17 am / data-journalism, datasette, jsk

The Mithraeum, illuminated.
Museum London Mithraeum — 12 Walbrook, London, EC4N 8AA, United Kingdom
Displays inside the museum.
Museum Museum of Funeral History — 29-31 Rosebery Avenue, Clerkenwell, EC1R 4SL, London, United Kingdom

athena-sqlite (via) Amazon Athena is the AWS tool for querying data stored in S3—as CSV, JSON or Apache Parquet files—using SQL. It’s an interesting way of buliding a very cheap data warehouse on top of S3 without having to run any additional services. Athena recently added a query federation SDK which lets you define additional custom data sources using Lambda functions. Damon Cortesi used this to write a custom connector for SQLite, which lets you run queries against data stored in SQLite files that you have uploaded to S3. You can then run joins between that data and other Athena sources.

# 18th December 2019, 9:05 am / amazon-web-services, athena, s3, sql, sqlite, parquet

GitHub Actions ci.yml for deno. Spotted this today: it’s one of the cleanest examples I’ve seen of a complex CI configuration for GitHub Actions, testing, linting, benchmarking and building Ryan Dahl’s Deno JavaScript runtime.

# 18th December 2019, 8:49 am / continuous-integration, github, ryan-dahl, github-actions, deno

Microbrowsers are Everywhere (via) Colin Bendell introduces a new-to-me term, “microbrowsers”, to describe the user-agents which hit websites to generate unfurled link previews in messenger apps. Twitter and Facebook first popularized them, but today you’re likely getting far more preview-generating traffic from chat clients such as iMessage, WhatsApp and Slack (which won’t execute script and ignore cookies, and hence won’t show up in Google Analytics). Lots of great tips here—one example: if you provide three og:image meta tags iMessage will render them as a collage.

# 18th December 2019, 8:32 am / 24-ways, metadata, urls

A Mail Rail passenger train.
Museum Mail Rail — 15-20 Phoenix Place, London WC1X 0DL, United Kingdom

Logging to SQLite using ASGI middleware

I had some fun playing around with ASGI middleware and logging during our flight back to England for the holidays.

[... 2,535 words]