[go: up one dir, main page]

Simon Willison’s Weblog

Subscribe

January 2020

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

Jan. 1, 2020

Museum Jigokudani Monkey Park — 〒381-0401 Nagano, Shimotakai District, Yamanochi, Hirao, 6845, Japan

Jan. 2, 2020

Museum Hazel-Atlas Sand Mine — Somersville Road, Antioch, CA 94509

How we use “ship small” to rapidly build new features at GitHub (via) Useful insight into how GitHub develop new features. They make aggressive use of feature flags, shipping a rough skeleton of a new feature to production as early as possible and actively soliciting feedback from other employees as they iterate on the feature. They static JSON mocks of APIs to unblock their frontend engineers and iterate on the necessary data structures while the real backend is bring implemented.

# 4:30 am / deployment, github, feature-flags

Jan. 3, 2020

What do you call the parts of a story? Or: why can’t journalists spell “lead”? (via) Carl M. Johnson’s analysis of what journalists call different elements of a story, useful for data modeling a CMS for a news organization.

# 1:13 am / cms, journalism

How the Digg team was acquihired. (via) Useful insight into how a talent acquisition can play out from Will Larson, who was an engineering leader at Digg when they negotiated their acquihire exit.

# 2:27 am / digg, startups, will-larson

Museum Ilfracombe Tunnels Beaches — Bath Place, Ilfracombe, Devon, EX34 8AN, United Kingdom

Come version 80, any cookie without a SameSite attribute will be treated as "Lax" by Chrome. This is really important to understand because put simply, it'll very likely break a bunch of stuff. [...] The fix is easy, all it needs is for everyone responsible for maintaining any system that uses cookies that might be passed from an external origin to understand what's going on. Can't be that hard, right? Hello? Oh...

Troy Hunt

# 4:22 pm / chrome, cookies, csrf, samesite, troy-hunt

Jan. 4, 2020

Museum The Beat Museum — 540 Broadway, San Francisco, CA 94133

Jan. 5, 2020

Museum Sea Lions at Pier 39 — Pier 39, The Embarcadero at Beach Street, San Francisco, CA 94133
Release sqlite-utils 2.0.1 — Python CLI utility and library for manipulating SQLite databases

Jan. 6, 2020

Museum Griffith Observatory — 2800 East Observatory Road, Los Angeles, CA 90027

Building a sitemap.xml with a one-off Datasette plugin

Visit Building a sitemap.xml with a one-off Datasette plugin

One of the fun things about launching a new website is re-learning what it takes to promote a website from scratch on the modern web. I’ve been thoroughly enjoying using Niche Museums as an excuse to explore 2020-era SEO.

[... 1,078 words]

Museum Cohen Bray House — 1440 29th Ave, Oakland, CA 94601

Jan. 7, 2020

Better Python Object Serialization. TIL about functions.singledispatch, a decorator which makes it easy to create Python functions with implementations that vary based on the type of their arguments and which can have additional implementations registered after the fact—great for things like custom JSON serialization.

# 8:35 pm / functional-programming, json, python, serialization

Jan. 8, 2020

A Compiler Writing Journey (via) Warren Toomey has been writing a self-compiling compiler for a subset of C, and extensively documenting every step of the journey here on GitHub. The result is an extremely high quality free textbook on compiler construction.

# 3:33 am / c, compilers

Museum Jelly Belly Factory — 1 Jelly Belly Lane, Fairfield, CA 94533

I’ve found, in my 20 years of running the site, that whenever you ban an ironic Nazi, suddenly they become actual Nazis

Richard “Lowtax” Kyanka

# 4:11 pm / community, moderation, somethingawful

Jan. 9, 2020

Museum Bevolo Gas Light Museum — 521 Conti Street, New Orleans, LA 70130

Jan. 10, 2020

Async Support—HTTPX (via) HTTPX is the new async-friendly HTTP library for Python spearheaded by Tom Christie. It works in both async and non-async mode with an API very similar to requests. The async support is particularly interesting - it's a really clean API, and now that Jupyter supports top-level await you can run (await httpx.AsyncClient().get(url)).text directly in a cell and get back the response. Most excitingly the library lets you pass an ASGI app directly to the client and then perform requests against it - ideal for unit tests.

# 4:49 am / async, http, python, asgi, tom-christie, httpx

Portable Cloud Functions with the Python Functions Framework (via) The new functions-framework library on PyPI lets you run Google Cloud Functions written in Python in other environments—on your local developer machine or bundled in a Docker container for example. I have real trouble trusting serverless platforms that lock you into a single provider (AWS Lambda makes me very uncomfortable) so this is a breath of fresh air.

# 4:58 am / google, python, serverless

Snowpack (via) Really interesting new twist on build systems for JavaScript. Modern browsers (everything since IE11) support JavaScript modules, but actually working with them is tricky since so much of the JavaScript ecosystem expects you to be using a bundler like Webpack. Snowpack is a tool for converting npm dependencies into JavaScript modules which can then be loaded directly by the browser, taking advantage of HTTP/2 to efficiently load the resulting larger number of files.

# 5:06 am / javascript, http2

A visual introduction to machine learning. Beautiful interactive essay explaining how a decision tree machine learning module is constructed, and using that to illustrate the concept of overfitting. This is one of the best explanations of machine learning fundamentals I’ve seen anywhere.

# 5:12 am / machine-learning, explorables

Serving 100µs reads with 100% availability (via) Fascinating use-case for SQLite from Segment: they needed a massively replicated configuration database across all of their instances that process streaming data. They chose to make the configuration available as a ~50GB SQLite database file mirrored to every instance, meaning lookups against that data could complete in microseconds. Changes to the central MySQL configuration store are pulled every 2-3 seconds, resulting in a trade-off of consistency for availability which fits their use-case just fine.

# 5:15 am / scaling, sqlite, segment

Museum Museo de las Misiones de Baja California — Salvatierra 16, Centro, 23880 Loreto, Mexico

Jan. 11, 2020

Museum Fort Point — Long Avenue & Marine Drive, San Francisco, CA 94129

Jan. 12, 2020

Museum Donner Memorial State Park Visitor Center — 12593 Donner Pass Road, Truckee, CA 96161

Jan. 13, 2020

Museum Anja Community Reserve — Manambolo, Madagascar

Jan. 14, 2020

Weeknotes: Improv at Stanford, planning Datasette Cloud

Last week was the first week of the quarter at Stanford—which is called “shopping week” here because students are expected to try different classes to see which ones they are going to stick with.

[... 806 words]

Museum Palace of Fine Arts — 3601 Lyon St, San Francisco, CA 94123

Jan. 15, 2020

2020 » January

MTWTFSS
  12345
6789101112
13141516171819
20212223242526
2728293031