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
@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.) Neat, succinct example of using https://github.com/jxnl/instructor and GPT-4o to extract opening hours from a photo of a shop window sign 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: https://simonwillison.net/2024/Aug/14/prompt-caching-with-claude/ 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 https://simonwillison.net/2024/Aug/13/mlx-whisper/ @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: https://notes.billmill.org/link_blog/2024/08/mlx-whisper.html 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 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! Sent out the latest edition of my newsletter (a week of content from my blog repackaged as en email): https://simonw.substack.com/p/django-http-debug-mostly-written 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 New TIL: Using sqlite-vec with embeddings in sqlite-utils and Datasette https://til.simonwillison.net/sqlite/sqlite-vec 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: https://www.404media.co/where-facebooks-ai-slop-comes-from/ A few of my own notes here: https://simonwillison.net/2024/Aug/10/where-facebooks-ai-slop-comes-from/ @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? 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: https://simonwillison.net/2024/Aug/8/gpt-4o-system-card/ I particularly enjoyed this bit about "scheming" @simon "...it is unlikely that GPT-4o is capable of catastrophic scheming." So either it's bad at it or really good at it. 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: https://simonwillison.net/2024/Aug/8/gemini-15-flash-price-drop/ @simon
Show previous comments
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: https://simonwillison.net/2024/Aug/8/django-http-debug/ 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: https://til.simonwillison.net/django/pytest-django @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? https://minnesotareformer.com/2024/08/06/former-geography-teacher-tim-walz-is-really-into-maps/ > 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.” OK, turns out Tim Walz is a former geography teacher and a GIS and data visualization nerd https://minnesotareformer.com/2024/08/06/former-geography-teacher-tim-walz-is-really-into-maps/ > 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.” 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: https://simonwillison.net/2024/Aug/6/openai-structured-outputs/ @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. Weeknotes: a staging environment, a Datasette alpha and a bunch of new LLMs https://simonwillison.net/2024/Aug/6/staging/ every now and then i feel like im taking crazy pills because i remember when aaron swartz killed himself because he was going to go to jail forever because he scraped JSTOR, and eleven years later your manager tells you “sshhhh it’s fine just scrape all of it don’t worry the CEO said it’s fine” |
@simon 7zip is a compression software
https://letmegooglethat.com/?q=7z
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 http://www.gaia-gis.it/gaia-sins/windows-bin-amd64/ 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 http://www.gaia-gis.it/gaia-sins/windows-bin-amd64/ 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?
@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.