Email or username:

Password:

Forgot your password?
248 posts total
Simon Willison

If you don’t have an unhealthy TikTok habit with the right algorithmic history it’s possible you are unaware of Pesto, the unbelievably chunky baby King penguin at the Melbourne Aquarium

Pesto weighs 21kg now - that’s more than our dog!

tiktok.com/@heraldsun_/video/7

(That video is a bit out of date, Pesto has now been confirmed as male)

Simon Willison

I was on another podcast! TWIML - This Week in Machine Learning & AI - where we mainly talked about using LLMs to help with programming

I extracted and edited a couple of sections from the episode transcript, about the difference between exploratory and production coding with LLMs plus some more notes on prototyping

simonwillison.net/2024/Sep/20/

Simon Willison

"If you go to a meeting with five people, and you’ve got a working prototype, the conversation will be so much more informed than if you go in with an idea and a whiteboard sketch.

I’ve always been a prototyper, but I feel like the speed at which I can prototype things in the past 12 months has gone up by an order of magnitude.

[...] I can tap a thing into my phone, and 30 seconds later, I’ve got a user interface in Claude Artifacts that illustrates the idea that I’m trying to explore."

kfet

@simon I found this episode quite entertaining and informative, thanks

#genAI #LLMs

Simon Willison

Things I’ve learned serving on the board of the Python Software Foundation

If you’re curious about what the PSF is and how it works, here’s much of what I’ve figured out so far @ThePSF
simonwillison.net/2024/Sep/18/

What is the PSF?
The PSF employs staff
A lot of this is about money
The PSF does not directly develop Python itself
PyPI—the Python Package Index
PyCon is a key commitment
Other PSF activities
Work Groups
Acting as a fiscal sponsor
Life as a board member
The kinds of things the board talks about
Want to know more?
Show previous comments
Evan der Ausländer

@simon That was really interesting! I love this kind of behind-the-scenes look at critical institutional structures we rarely think about

Simon Willison

This is one of my favorite genres of blog post: the article I wish I’d been able to read myself

Thib

Oh lord of the rings, this resonates so much with my experience of a former board member of @gnome

Many insightful takes in this post, I definitely think GNOME and the PSF should try to work together more

@simon @ThePSF

Simon Willison

Has there ever been a better pre-credit sequence than the 20 minute Spider-Gwen story at the start of Spider-Man: Across the Spider-Verse?

Show previous comments
Fabian N. T. 🦆

@simon Not many, probably. Should have won an Academy Award for animation, imho. I was literally watching with my mouth open when I saw it at the cinema.

jake lazaroff

@simon fully co-signed +“self love” by coi leray and metro boomin is an absolutely perfect soundtrack to that opening

Simon Willison

OK, I _swear_ I didn’t do this on purpose but PDF sucks so bad as a publishing format that the easiest way to build search traffic to a website turns out to be republishing information that’s otherwise locked up in a PDF

Show previous comments
Jeremiah Lee

@simon Most of my PDF creation is solving the “how do I save the current content of a webpage as a single file and not just an image” problem.

SingleFile <github.com/gildas-lormeau/Sing> and/or MHTML <en.wikipedia.org/wiki/MHTML> should be more universal than they are.

Mark T. Tomczak

@simon I actually wonder if it's a technical challenge issue.

There are so many ways to create a PDF that's readable to humans and illegible to computers that it's much, much easier to make something search-engine-friendly in HTML format. Even in the case of Google where, I imagine, they can OCR that shit, that pipeline's gotta be more of a bottleneck than interpreting token-stripped HTML because it just costs more resources to transform images of text.

And that's before we factor in the human element: Google still gets signal on popularity from clicks, and if I see a PDF in the wild, my default response is "No thank you; I do not want this information in likely-unsearchable page-by-page form that'll be harder to consume than a plain web page."

@simon I actually wonder if it's a technical challenge issue.

There are so many ways to create a PDF that's readable to humans and illegible to computers that it's much, much easier to make something search-engine-friendly in HTML format. Even in the case of Google where, I imagine, they can OCR that shit, that pipeline's gotta be more of a bottleneck than interpreting token-stripped HTML because it just costs more resources to transform images of text.

Simon Willison

I'm always interested in exposure to management advice from unconventional sources... and there's a leaked PDF floating around called "HOW TO SUCCEED IN MRBEAST PRODUCTION" which appears to be the onboarding document for new members of the MrBeast YouTube production company

It's 36 pages long, so I put together some of my own notes from reading it here: simonwillison.net/2024/Sep/15/

Show previous comments
Simon Willison

One of my favourite documents in this genre remains "THE ELEVEN LAWS OF SHOWRUNNING", about how to run production of a TV show

It's unintentionally a fantastic guide to being an engineering manager, or startup founder, or indeed any role where you need a bunch of different creative people to understand and work together to bring about a creative vision:

simonwillison.net/2019/Feb/19/

[DATA EXPUNGED]
firefriendly

@simon I found this an interesting read from a management point of view. I don’t launch people into space but have found value in the ideas around planning and testing. ntrs.nasa.gov/citations/197200

Simon Willison

I think what a lot of people miss is that if you have a commit-sized piece of work in mind, there's a very good chance that you can get an LLM to do it in under a minute

you don't have to be an AI True Believer to see how this changes what an experienced programmer can do!

Simon Willison

Just ran across this quote, it’s fun to know that the fence posts on what counts as “intelligence” in AI have been consistently in motion since at least 1979!

On my blog: simonwillison.net/2024/Sep/13/

Source on Internet Archive: archive.org/details/machineswh

I heard about it on this Wikipedia page on the “AI effect”: en.wikipedia.org/wiki/AI_effec

“There is superstition about creativity, and for that matter, about thinking in every sense, and it&#39;s part of the history of the field of artificial intelligence that every time somebody figured out how to make a computer do something - play good checkers, solve simple but relatively informal problems - there was a chorus of critics to say, but that&#39;s not thinking.”
— Pamela McCorduck, in 1979
Show previous comments
Jordan B. L. Smith

@simon Maybe the issue isn't the fence-post-movers (people saying "this isn't intelligent yet"), but the fence-post-planters: i.e., those boldly offering a definition of intelligence, usually one that depends on performing a given task.

The "is it AI yet?" game may be decades old now, but the game of defining measures of intelligence that turn out to be naive and/or racist is much older, as Stephen J. Gould describes in The Mismeasure of Man.

tdietterich

@simon This reflects the difficulty of defining "intelligence". When a previously-unsolved problem is solved via a method that is clearly ad hoc, the field naturally moves the goal posts. Problem-by-problem, we discover what is easy and what is hard for computers.

John Abbe (aka Slow)

@simon I remember when the idea was the computer couldn't learn. That one never made sense to me at all, even on simple computers you can write a program that seems to learn as it goes.

Being introduced to computing by terminal and then PC, I didn't understand that up to that time, most programmers had probably been working on batch processing of data, having put the human "computers" out of work.

Simon Willison

Here's everything I've figured out about the new OpenAI o1 family of models so far simonwillison.net/2024/Sep/12/

Simon Willison

And a new release of LLM that adds support for those models - for anyone lucky enough to have a tier 5 OpenAI API account at least llm.datasette.io/en/stable/cha

0.16 (2024-09-12)

OpenAI models now use the internal self.get_key() mechanism, which means they can be used from Python code in a way that will pick up keys that have been configured using llm keys set or the OPENAI_API_KEY environment variable. #552. This code now works correctly:

import llm
print(llm.get_model(&quot;gpt-4o-mini&quot;).prompt(&quot;hi&quot;))

New documented API methods: llm.get_default_model(), llm.set_default_model(alias), llm.get_default_embedding_model(alias), llm.set_default_embedding_model(). #553

Support for OpenAI’s new o1 family of preview models, llm -m o1-preview &quot;prompt&quot; and llm -m o1-mini &quot;prompt&quot;. These models are currently only available to tier 5 OpenAI API users, though this may change in the future. #570
Jonathan Moore

@simon o1 gets my unbirthday question which none of OpenAI's other models have: "Do all people have the same number of unbirthdays?"

chatgpt.com/share/66e3652c-7ae

ijm

@simon the "Limit additional context in retrieval-augmented generation (RAG)" and "Hidden reasoning tokens" seem to be contradictory, or at least at odds: reduce the context, but you cannot use any reasoning tokens that came up while deciding what was and wasn't relevant.
I've been trying to find ways to improve rag index vectors, effectively trying to extract some internal state from a model as a sort-of pre-compiled version of the text - and these hidden reasoning tokens seem to be exactly related to what I'm looking for, but nope we're not allowed to see'm !

@simon the "Limit additional context in retrieval-augmented generation (RAG)" and "Hidden reasoning tokens" seem to be contradictory, or at least at odds: reduce the context, but you cannot use any reasoning tokens that came up while deciding what was and wasn't relevant.
I've been trying to find ways to improve rag index vectors, effectively trying to extract some internal state from a model as a sort-of pre-compiled version of the text - and these hidden reasoning tokens seem to be exactly related...

Simon Willison

Mistral launched Pixtral 12B today, their first multi-modal (text plus images) vision LLM. It’s Apache 2 licensed and a 25GB download. I put together some notes on the release here: simonwillison.net/2024/Sep/11/

Danil

@simon I wish I can download 30GB ram... to use those

Rihards Olups

@simon At first thought this is some new weapon (probably French) that will be given to Ukraine etc.

"LLM thing or a military thing" could be one of those online games.

Simon Willison

I'm interviewed in the latest episode of the Software Misadventures podcast. It was a *really fun* conversation - we talked about my past career highlights, my experiences as an independent open source developer, my various processes for working in public, blogging and releasing code and (of course) a whole bunch about my explorations of LLMs
softwaremisadventures.com/p/si

Matt Hayes

@simon - Great podcast episode with useful real-world advice on LLMs, programming techniques and blogging! It has inspired me to experiment more with AI and blog about it (fighting my natural AI cynicism)

Simon Willison

The first edition of the PSF Board Office Hours is about to begin 🐍 🗒️ 1 PM UTC. Join us to share how we can help your community, express your perspectives, and provide feedback for the PSF! #python
pyfound.blogspot.com/2024/08/a

Simon Willison

@freakboy3742 @glyph @jacob @sgillies An example of what this might look like (we may not do this, but it's helpful to have a concrete example of the strategy) would be something like an enterprise-focused private package registry. A lot of big companies use uv. We spend time talking to them. They all spend money on private package registries, and have issues with them. We could build a private registry that integrates well with uv, and sell it to those companies.

Simon Willison

Gathered a few notes on the insightful conversation about uv happening in the Python Mastodon community right now simonwillison.net/2024/Sep/8/u

Show previous comments
Phil Gyford

@simon Thanks for pointing this out. The complete mess of Python packaging has been the worst, most embarrassing aspect of Python to me. Those more expert than me seem less bothered, but trying to explain to newbies how to choose which collection of tools to use just to start writing code has been ridiculous. I just want one good tool.

I'm usually very, very against anything VC-funded but I love what's happening with uv and I really hope it succeeds in a way that keeps people happy.

Tom Bortels

@simon

I have kinda taken "written in rust" to be a strength - but not because of rust, at least not directly.

It solves for bootstrapping, and it does so in a manner that is entirely independent of the payload.

If you screw up your python (and perl and ruby and so on before that) - you could easily get into a situation where there is no easy fix aside from a reinstall, and when the language came with the OS and the Os depended on it - you were in a pickle.

Uv entirely removes this failure mode. It isn't part of the OS, has no external dependencies, and you won't mess it up from the python side. It provides a separation of duties that mechanisms that manage python from python have lacked. And it means a python I use on platform X can be as identical as possible to platform Y - no worrying about what the vendor did to their install you're bootstrapping from.

Have I used it in anger in production yet? No. Will I? Yeah, almost certainly.

@simon

I have kinda taken "written in rust" to be a strength - but not because of rust, at least not directly.

It solves for bootstrapping, and it does so in a manner that is entirely independent of the payload.

If you screw up your python (and perl and ruby and so on before that) - you could easily get into a situation where there is no easy fix aside from a reinstall, and when the language came with the OS and the Os depended on it - you were in a pickle.

Harro van der Klauw

@simon thanks for the summary, I think it was a good discussion.

Simon Willison

Posted a video and some photos I took of the humpback whale that's currently hanging out in Pillar Point Harbor near Half Moon Bay, California - their name is Teresa T simonwillison.net/2024/Sep/8/t

Simon Willison

Put together some notes on how I used the combination of llm, files-to-prompt and Claude 3.5 Sonnet for an initial draft of documentation describing how one of my tools worked, then tidied it up with the help of Cog and added that to the README simonwillison.net/2024/Sep/7/j

files-to-prompt *.py | llm -m claude-3.5-sonnet --system 'write detailed documentation in markdown describing the format used to represent JSON and nested JSON as key/value pairs, include a table as well'

Simon Willison

My @covidsewage bot broke again after Santa Clara County changed the design of their publichealth.santaclaracounty. dashboard - you now have to click the "COVID" button inside the Power BI dashboard to get those charts, which is infuriatingly difficult because Power BI's idea of a "button" is a SVG path element with a click handler buried in a nest of weird HTML

Fixed it though! Details of the fix here: github.com/simonw/covidsewage-

My @covidsewage bot broke again after Santa Clara County changed the design of their publichealth.santaclaracounty. dashboard - you now have to click the "COVID" button inside the Power BI dashboard to get those charts, which is infuriatingly difficult because Power BI's idea of a "button" is a SVG path element with a click handler buried in a nest of weird HTML

- name: Extract iframe URL and generate screenshot
  run: |-
    url=$(shot-scraper javascript \
      &#39;https://publichealth.santaclaracounty.gov/health-information/health-data/disease-data/covid-19/covid-19-wastewater&#39; \
      &#39;document.querySelector(&quot;iframe&quot;).src&#39; \
      -b firefox \
      --user-agent &#39;Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:128.0) Gecko/20100101 Firefox/128.0&#39; \
      --raw)
    echo &quot;URL is $url&quot;
    shot-scraper $url -o /tmp/covid.png -b firefox --retina --javascript &#39;
    new Promise((takeShot) =&gt; {
      setTimeout(() =&gt; {
        // Find the &lt;visual-modern&gt; button with exact text COVID
        var el = Array.from(document.querySelectorAll(&quot;.ui-role-button-text&quot;))
          .filter((el) =&gt; el.textContent.trim() == &quot;COVID&quot;)[0]
          .closest(&quot;visual-modern&quot;);
        // Click everything in it to catch the &lt;path&gt; element
        function clickAllMatchingDescendants(rootElement, selector) {
          // Find all matching descendants
          const matchingElements = rootElement.querySelectorAll(selector);
          // Dispatch click event to each matching element
          matchingElements.forEach((element) =&gt; {
            element.dispatchEvent(
              new MouseEvent(&quot;click&quot;, {
                bubbles: true,
                cancelable: true,
                view: window,
              }),
            );
          });
        }
        clickAllMatchingDescendants(el, &quot;path&quot;);
Simon Willison

I'm quite proud of how in-depth-specifically-nerdy this evening's project was: I got my simonw/scrape-hacker-news-by-domain git scraping repo to generate better commit messages when it scrapes Hacker News, which now show up in my NetNewsWire Atom subscription

Full details in my blog post: simonwillison.net/2024/Sep/6/i

My repo now runs this command:

csv-diff simonwillison-net.json simonwillison-net-new.json \
  --key id --format json \
  --extra latest &#39;https://news.ycombinator.com/latest?id={id}&#39; \
  &gt;&gt; /tmp/commit.txt

This generates the diff between the two versions, using the id property in the JSON to tie records together. It adds a latest field linking to that URL.

The commits now look like this:

Fri Sep 6 05:22:32 UTC 2024. 1 row changed. id: 41459472 points: &quot;25&quot; =&gt; &quot;27&quot; numComments: &quot;7&quot; =&gt; &quot;8&quot; extras: latest: https://news.ycombinator.com/latest?id=41459472
Simon Willison

Calling LLMs from client-side JavaScript, converting PDFs to HTML + weeknotes
simonwillison.net/2024/Sep/6/w

Jeff Triplett

@simon TIL anthropic-dangerous-direct-browser-access - Would that make it possible to access Projects and Artifacts?

Dominik Moritz

@simon love that you found again

> Within six hours of posting it my Pipe Syntax in SQL conversion was ranked third on Google for the title of the paper, […]. Yet more evidence that HTML is better than PDF!

Simon Willison

Spotted this red-tailed hawk in a tree in our garden!

(Unless it’s a red-shouldered hawk?)

A beautiful hawk perching at the top of a tree against a blue sky
NedMan 🚀

@simon Nice, we have numerous hawks in our neighborhood as well. I think its a red-shouldered hawk.

Nick Ludlam :terminal:

@simon Ooh thats a great pic. Do you have an SLR with a nice lens for that kind of shot?

Go Up