/Simon Willison

Things We Learned About LLMs In 2024 tl;dr: “A lot has happened in the world of Large Language Models over the course of 2024. Here’s a review of things we figured out about the field in the past twelve months, plus my attempt at identifying key themes and pivotal moments.”

featured in #580


Storing Times For Human Events tl;dr: “I’ve worked on various event websites in the past, and one of the unintuitively difficult problems that inevitably comes up is the best way to store the time that an event is happening. Based on that past experience, here’s my current recommendation.”

featured in #571


Everything I Built With Claude Artifacts This Week tl;dr: “I’m a huge fan of Claude’s Artifacts feature, which lets you prompt Claude to create an interactive Single Page App (using HTML, CSS and JavaScript) and then view the result directly in the Claude interface, iterating on it further with the bot and then, if you like, copying out the resulting code.” Simon shares what he built in the last 7 days. 

featured in #562


AI Tools For Software Engineers, But Without The Hype tl;dr: “Ways to use LLMs efficiently, as a software engineer, common misconceptions about them, and tips / hacks to better interact with GenAI tools.”

featured in #553


Claude And ChatGPT For Ad-Hoc Sidequests tl;dr: The author demonstrates a quick ”sidequest" task where he converted the shapefile of a largest park in NY to a GeoJSON polygon in just 6 minutes. “One of the greatest misconceptions concerning LLMs is that they’re easy to use. They aren’t: getting great results requires a great deal of experience and hard-fought intuition, combined with deep domain knowledge of the problem you are applying them to.”

featured in #501


Embeddings: What They Are And Why They Matter tl;dr: “Embeddings are based around one trick: take a piece of content—in this case a blog entry — and turn that piece of content into an array of floating point numbers.” Simon shows us what this looks like and argues that we can learn interesting things about the content this way - “it might capture colors, shapes, concepts or all sorts of other characteristics of the content that has been embedded.” Simon also shows us practical use cases of how this may show up.

featured in #459


CLI Tools Hidden In The Python Standard Library tl;dr: “This is a neat Python feature: modules with a if \_\_name\_\_ == "\_\_main\_\_": block that are available on Python's standard import path can be executed from the terminal using python -m name\_of\_module.” This made Simon: what other little tools are lurking in the Python standard library, available on any computer with a working Python installation? 

featured in #427


The Perfect Commit tl;dr: The perfect commit is a single commit that contains the following: (1) A single, focused change. (2) Tests that demonstrate the implementation works. (3) Updated documentation reflecting the change. (4) A link to an issue thread providing further context.

featured in #365


Software Engineering Practices tl;dr: Simon outlines 7 recommended “software engineering practices” for development teams, including: (1) Documentation in the same repo as the code. (2) Mechanisms for creating test data. (3) Rock solid database migrations. (4) Templates for new projects and components. (5) Automated code formatting. And more.

featured in #356


Using GPT-3 To Explain How Code Works tl;dr: "One of my favourite uses for the GPT-3 AI language model is generating explanations of how code works. It’s shockingly effective at this: its training set clearly include a vast amount of source code. Simon shows a few recent examples." 

featured in #333