Email or username:

Password:

Forgot your password?
248 posts total
Simon Willison

I have a Mac. If I want to test something on the kind of Windows machine that developers who use Windows would use (so I guess Windows 11 and not Windows Server?) what are my best options for doing that? Any good online providers where I can spend a few dollars on the ability to remote-desktop into a Windows machine?

I tried using Azure for this earlier and got to the bit with this checkbox and noped right out of there:

Licensing

l confirm I have an eligible Windows 10/11 license with multi-tenant hosting rights.  Please confirm.

Review multi-tenant hosting rights for Windows 10/11 compliance
Show previous comments
Tuula :verified:

@simon BrowserStack , basically it is OS and/or browser on a cloud mainly used for testing. Not sure how much you can install it though... and quite pricey.

Daniel

@simon Get a Windows 11 key off eBay, then click that checkbox…

Simon Willison

Have you ever used SpatiaLite on Windows? If so, how did you install it?

The MS Windows Binaries on gaia-gis.it/gaia-sins/ give you the options in the first screenshot, linking to the files in the second screenshot

Which of mod spatialite-5.1.0-win-×86.7z or spatialite-tools-5.1.0a-win-x86.7z did you download, what software did you use to decompress it and what did you do with the files inside those .7z files?

Asking because I want to bulk up Datasette's SpatiaLite installation documentation

Have you ever used SpatiaLite on Windows? If so, how did you install it?

The MS Windows Binaries on gaia-gis.it/gaia-sins/ give you the options in the first screenshot, linking to the files in the second screenshot

Which of mod spatialite-5.1.0-win-×86.7z or spatialite-tools-5.1.0a-win-x86.7z did you download, what software did you use to decompress it and what did you do with the files inside those .7z files?

MS Windows binaries

Current stable version: x86 32 bit, amd64 64 bit

Previous stable version: x86 32 bit, amd64 64 bit

Latest version supporting spatialite GUI: x86 32 bit, amd64 64 bit

That's six different links, one for each of those versions and architectures
Apache directory listing

Index of /gaia-sins/windows-bin-×86


mod spatialite-5.1.0-win-×86.7z 2023-08-05 13:42 10M

spatialite-tools-5.1.0a-win-x86.7z 2023-08-13 16:44 118M
Show previous comments
Simon Willison

Giving this another bump: I still want to hear from Windows users who have successfully installed SpatiaLite

As far as I can tell you download the mod_spaitalite 7z file from gaia-gis.it/gaia-sins/windows- then place its content somewhere on your PATH - but I’m stuck on that step, what’s the recommended way of putting files on the PATH?

I’ve found instructions that involve right clicking on things, but I’m running windows-latest in GitHub Actions so I need to do it entirely through powershell or bash

Giving this another bump: I still want to hear from Windows users who have successfully installed SpatiaLite

As far as I can tell you download the mod_spaitalite 7z file from gaia-gis.it/gaia-sins/windows- then place its content somewhere on your PATH - but I’m stuck on that step, what’s the recommended way of putting files on the PATH?

Alex Hudson

@simon in theory, winget should be able to handle a .zip install and get the path right (I think it installs to user profile by default). It doesn't handle .7z, but it knows how to install 7zip and in principle converting the file format should be straightforward... I don't know if you need to write a local manifest though, or whether it can figure it all out itself.

Simon Willison

Miscellaneous thought about Python development environment usability: maybe a good focus could be ensuring that developers don’t have to understand the concept of their $PATH in order to debug problems with their environment

I’m not sure how that could be achieved, but it’s an interesting angle to think about the problem

Show previous comments
Jaanus Kase

@simon not only Python

I use other tools, and $PATH is equally annoying there too

Carlton Gibson 🇪🇺

@simon I know @wsvincent has spent a lot of time battling this for his Django for Beginners book. (“First learn some esoterica…”, it feels like.)

capotej

@simon respectfully disagree: $PATH is such a fundamental part to how computers execute programs, we should be educating here, not abstracting

Simon Willison

Neat, succinct example of using github.com/jxnl/instructor and GPT-4o to extract opening hours from a photo of a shop window sign
mastodon.social/@lemonodor/112

Simon Willison

New feature from Anthropic today: you can ask their Claude API to cache parts of your prompt, resulting in a large price discount and performance boost provided your app reuses the same prompt at least once every five minutes.

Blogged a few notes here: simonwillison.net/2024/Aug/14/

Alex Bradbury

@simon This is an exciting evolution! DeepSeek started offering this as well in the last couple of weeks, though there's no cost for storage and you just get a lower charge based on any hits in the cache platform.deepseek.com/api-docs This has advantages, but of course leaves your cache hit rate dependent on how long DeepSeek choose to keep the cache around.

For individual personal usage I'd probably prefer the DeepSeek "do your best and don't make me think about it" pricing model.

@simon This is an exciting evolution! DeepSeek started offering this as well in the last couple of weeks, though there's no cost for storage and you just get a lower charge based on any hits in the cache platform.deepseek.com/api-docs This has advantages, but of course leaves your cache hit rate dependent on how long DeepSeek choose to keep the cache around.

Simon Willison

Some notes on mlx-whisper - it's now really easy to run transcriptions through an Apple Silicon (and GPU) optimized Whisper model using Python on macOS simonwillison.net/2024/Aug/13/

Matt Campbell

@simon Nitpick: Whisper is speech-to-text. Text-to-speech is speech synthesis.

Saurabh

@simon Do you know how this compares to whisper.cpp (which also uses the GPU on Macs)?

Bill Mill

@simon I wanted to know how the speed compares to `whisper.cpp`, since the openAI whisper is very slow on my mac, so I ran a test: notes.billmill.org/link_blog/2

mlx ran almost 3x faster than whisper.cpp with a model of the same size, and both were using the GPU. I would love to know why it's so much faster!

Simon Willison

@simon I've been using the new Datasette 1.0 JSON Write API for a small labeling website and I'm amazed by its simplicity. Thanks for adding it!
A brief description of my usage: madflex.de/using-datasette-jso

Simon Willison

Sent out the latest edition of my newsletter (a week of content from my blog repackaged as en email): simonw.substack.com/p/django-h

I experimented with using Claude to generate this table of contents summary, but ended up hand-editing almost every line of that before I hit send

AI and LLMs:

    Apple Intelligence prompts for macOS leaked

    OpenAI’s new structured output API features

    Google AI Studio data exfiltration vulnerability

    The LLM pricing war between Google, OpenAI and Anthropic

    GPT-4o voice mode safety measures

    The source of Facebook’s AI slop epidemic

    An interactive visualization explaining the Transformer architecture

    A tool to share Claude conversations as Markdown

    Using GPT-4 mini as a reranker for search results

Python:

    cibuildwheel now supports Python 3.13 wheels

    Proposed Python PEP for tag strings, useful for DSLs like SQL

SQLite:

    New high-precision date/time SQLite extension

    Using sqlite-vec for working with vector embeddings

Miscellaneous:

    Observable Plot’s new “waffle mark”

    Prompt engineering a BBC "In Our Time" archive with AI-generated metadata

    The Ladybird browser project is adopting Swift
Paula

@simon I find LLMs useful for assisting with a few things, but like you’re saying, any suggestion that they can do this on their own is utterly misguided

Simon Willison

New TIL: Using sqlite-vec with embeddings in sqlite-utils and Datasette til.simonwillison.net/sqlite/s

Simon Willison

OK gang! This is ready for you to test.

python tweet2html.py --css 1234

That will take a Twitter ID and return HTML and CSS for you to embed in your website with no calling back to Twitter.

Features:
🗣 Avatars inlined as Base64 WebP
📸 All attached photos inlined
🎥 Video poster inline, <video> to original source
🔗 Hyperlinks don't use t.co
#️⃣ Hashtags and @ mentions linked
🕰 Semantic time
♥ and 🗨 counts

Try it out at github.com/edent/Tweet2Embed

Feedback and pull requests very welcome!

OK gang! This is ready for you to test.

python tweet2html.py --css 1234

That will take a Twitter ID and return HTML and CSS for you to embed in your website with no calling back to Twitter.

Features:
🗣 Avatars inlined as Base64 WebP
📸 All attached photos inlined
🎥 Video poster inline, <video> to original source
🔗 Hyperlinks don't use t.co
#️⃣ Hashtags and @ mentions linked
🕰 Semantic time
♥ and 🗨 counts

Screenshot of an embedded Tweet - there is a video attached with a native player. All links, hashtags, and user mentions work.
Simon Willison

This 404 Media piece definitively answers the question about where all of the weird Jesus shrimp AI generated image slop on Facebook comes from, and it’s fascinating: 404media.co/where-facebooks-ai

A few of my own notes here: simonwillison.net/2024/Aug/10/

22

@simon I believe you invented the term “slop” right 😁 my question is, if “slop” is “unwanted AI-generated content” why is this called “slop” when it’s obviously getting a ton of engagement? Is the claim that all the likes are bots? If it’s actually hundreds of thousands of people liking AI-generated images then isn’t it … not unwanted?

Simon Willison

I spent some time reading the newly released GPT-4o System Card - it's a fascinating document, with all kinds of interesting new-to-me details in there. I've posted my highlights here: simonwillison.net/2024/Aug/8/g

I particularly enjoyed this bit about "scheming"

Finally, another piece of new-to-me terminology: scheming:

    Apollo Research defines scheming as AIs gaming their oversight mechanisms as a means to achieve a goal. Scheming could involve gaming evaluations, undermining security measures, or strategically influencing successor systems during internal deployment at OpenAI. Such behaviors could plausibly lead to loss of control over an AI.

    Apollo Research evaluated capabilities of scheming in GPT-4o [...] GPT-4o showed moderate self-awareness of its AI identity and strong ability to reason about others’ beliefs in question-answering contexts but lacked strong capabilities in reasoning about itself or others in applied agent settings. Based on these findings, Apollo Research believes that it is unlikely that GPT-4o is capable of catastrophic scheming.
Lafncow :blobcatcoffee:

@simon "...it is unlikely that GPT-4o is capable of catastrophic scheming."

So either it's bad at it or really good at it.

Mans R

@simon Do they actually believe that stuff?

Simon Willison

Google announced a major price drop for their Gemini 1.5 Flash model today - it's now the cheapest of the mainstream cheap-and-fast models, and it can also handle PDF files, audio and video as well as images and text.

More notes here: simonwillison.net/2024/Aug/8/g

Clifford Adams

@simon
With all these price drops I'm waiting until they start paying me to use their models. 😜

Simon Willison

I got fed up of Claude's lack of a feature to export and share a full conversation, so I built a new tool for doing that using an Observable notebook - details here: simonwillison.net/2024/Aug/8/c

Here's an example shared transcript, in which I start by asking for advice on breeding spiders to catch flies and then keep on escalating until Claude is frantically advising me not to attract any bears to deal with the mountain lions that have surrounded my house: gist.github.com/simonw/95abdfa

I got fed up of Claude's lack of a feature to export and share a full conversation, so I built a new tool for doing that using an Observable notebook - details here: simonwillison.net/2024/Aug/8/c

Here's an example shared transcript, in which I start by asking for advice on breeding spiders to catch flies and then keep on escalating until Claude is frantically advising me not to attract any bears to deal with the mountain lions that have surrounded my house:

Show previous comments
Spencer

@simon This conversation is giving me strong "there was an old lady who swallowed a fly" vibes

Simon Willison

I've released a new reusable Django app - django-http-debug - which makes it easy to quickly setup a debugging HTTP endpoint that returns a canned response and logs full details of any incoming requests, great for the initial stages of implementing things like OAuth or incoming webhooks.

Most of the code was written for me by Claude 3.5 Sonnet - full details here: simonwillison.net/2024/Aug/8/d

Django admin screenshot: add debug endpoint. Path is set to hello-world, status code is 200, content-type is text/plain; charset=utf-8, headers is {&quot;x-hello&quot;: &quot;world&quot;}, content is Hello world, The is base 64 checkbox is blank and the logging enabled checkbox is checked.
Django admin screenshot showing a list of three logged requests to the hello-world endpoint, all three have a timestamp, method and query string - the method is GET for them all but the query string is blank for one, a=b for another and c=d for a third.
Simon Willison

As part of working on this I figured out (with more help from Claude) a good pattern for writing automated tests for a reusable Django app like this that can live in the same repository and spin up a minimal Django project, just enough for the tests to run. I wrote that up in detail as this TIL: til.simonwillison.net/django/p

Glyph

@simon does this level of LLM “authorship” give you concerns about its provenance?

antrix

@simon do you use any IDE integrations to work with LLMs?

Simon Willison

Your regular reminder to never build a LLM-based chat interface with access to privileged information that can render Markdown images targetting external domains, if you don't want a prompt injection attack to be able to instantly exfiltrate that private data

Today's example is Google AI Studio: simonwillison.net/2024/Aug/7/g

It joins ChatGPT, Google Bard, writer.com, Amazon Q, Google NotebookLM and GitHub Copilot Chat in my collection of products that have made this mistake: simonwillison.net/tags/markdow

Your regular reminder to never build a LLM-based chat interface with access to privileged information that can render Markdown images targetting external domains, if you don't want a prompt injection attack to be able to instantly exfiltrate that private data

Today's example is Google AI Studio: simonwillison.net/2024/Aug/7/g

Colby Russell

@simon I guess I don't understand how this is an attack. The malicious prompt came from the attacker, but so did everything else. So the attacker already has access to the "exfiltrated" data, right?

Or is there some missing context here?

Simon Willison

@simon

minnesotareformer.com/2024/08/

> Walz also says maps help implement the nitty-gritty details of otherwise abstract policy. “You have to have a plan” for “how we’re doing power and economic justice and environmental justice,” he said. “The tools for that plan are GIS.” Those tools “transfer a vision of a fair society into one that actually has results.”
#HarrisWalz2024

Simon Willison

OK, turns out Tim Walz is a former geography teacher and a GIS and data visualization nerd
mastodon.social/@kjhealy/11291

Parsingphase

@simon So, Walz knows Where, and Harris knows Venn.

Andrew Harvey

@simon @kjhealy Do we know his opinions on the Mercator projection?

Steven Zekowski

@simon

minnesotareformer.com/2024/08/

> Walz also says maps help implement the nitty-gritty details of otherwise abstract policy. “You have to have a plan” for “how we’re doing power and economic justice and environmental justice,” he said. “The tools for that plan are GIS.” Those tools “transfer a vision of a fair society into one that actually has results.”
#HarrisWalz2024

Simon Willison

OpenAI announced "Structured Outputs in the API" today, which is a lot more exciting than it sounds and also came with a huge price drop (50% cheaper) for a new GPT-4o model - which makes it their new cheapest model for image inputs, since GPT-4o-mini is priced the same for image inputs as the previous, more expensive GPT-4o

My detailed notes here: simonwillison.net/2024/Aug/6/o

Jeff Triplett

@simon I did quite a bit of testing tonight I was surprised that structured outputs also worked with GPT-4o-mini. I didn’t crunch the numbers but I was already using it to parse text to json and I noticed an immediate improvement. I assumed we had to use the new model for pydantic support but it just worked.

Simon Willison

Weeknotes: a staging environment, a Datasette alpha and a bunch of new LLMs simonwillison.net/2024/Aug/6/s

Go Up