If this [MicroQuickJS] had been available in 2010, Redis scripting would have been JavaScript and not Lua. Lua was chosen based on the implementation requirements, not on the language ones... (small, fast, ANSI-C). I appreciate certain ideas in Lua, and people love it, but I was never able to like Lua, because it departs from a more Algol-like syntax and semantics without good reasons, for my t...
MicroQuickJS
New project from programming legend Fabrice Bellard, of ffmpeg and QEMU and QuickJS and so much more fame:
MicroQuickJS (aka. MQuickJS) is a Javascript engine targetted at embedded systems. It compiles and runs Javascript programs with as low as 10 kB of RAM. The whole engine requires about 100 kB of ROM (ARM Thumb-2 code) including the C library. The speed is comparable to QuickJ...
Learning I took advantage of the slow down in work load to take advantage of some learning opportunities. Assumptions I spent a little bit longer solving an issue this week because I had started with a wrong assumption. A client’s site was no longer displaying ads that were served through a plugin. The report came […]
The post Weeknotes 25:51 appeared first on Jeff Bridgforth.
Less
Overthinking
Scrolling
Sitting
Negativity
Postponing
Perfectionism
Context switching
Consuming
More
Movement
Early mornings
Deep work
Iteration
Positivity
Ruthlessness
Focus
Reading
Gratefulness
Creating
I usually agree with Chris Ferdinandi, but he and I aren't entirely in accord about the Shadow DOM. He thinks it's useless. But I think it's MOSTLY useless.
I've been having an absurd amount of fun recently using LLMs for cooking. I started out using them for basic recipes, but as I've grown more confident in their culinary abilities I've leaned into them for more advanced tasks. Today I tried something new: having Claude vibe-code up a custom application to help with the timing for a complicated meal preparation. It worked really well!
A custom ti...
Yes, this is the umpteenth article about AI and coding that you’ve seen this year. Welcome to 2025. Some people really find LLMs distasteful, and if that’s you, then I would recommend that you skip this post. I’ve heard all the arguments, and I’m not convinced anymore. I used to be a fairly hard-line anti-AI […]
Anfang Oktober wurde meine Lauferei ĂŒberraschend durch eine Verkettung von Unachtsamkeiten komplett ausgebremst. Ich hatte mir die sogenannten Hamstrings (ischiocrurale Muskulatur) gezerrt, das ist eine Muskelgruppe am hinteren Oberschenkel. Nicht mal beim Laufen selbst, aber nach einem schnellen Lauf mal eben in die Hocke zu gehen, etwas schweres anheben und sich dabei drehen … ganz [...
Using Claude in Chrome to navigate out the Cloudflare dashboard
I just had my first success using a browser agent - in this case the Claude in Chrome extension - to solve an actual problem.
A while ago I set things up so anything served from the https://static.simonwillison.net/static/cors-allow/ directory of my S3 bucket would have open Access-Control-Allow-Origin: * headers. This is useful for hosting files online that can be loaded into web applications ...
In this brief note Iâd like to share two things. Firstly, an event of considerable personal significance: Iâve created my own record label, âLiving Conscious Systemsâ, for experimental organ ambient music, something Iâd been thinking about these past few months.Actually, this is quite a logical development, because Iâve been composing organ music all this time: this week, for instance, saw the ...
Leading Global Research and Advisory Firm Recommends Against Using AI Browsers
I recommended against using an AI browser unless you wanted to participate in a global experiment in security. My recommendation did come with a caveat:
But probably donât listen to me. Iâm not a security expert
Well, now the experts (that you pay for) have weighed in.
Gartner, the global research and advisory firm, has come to the conclusion that agentic browsers are too risky for most orga...
Every now and again, a post I read on Mastodon weeks ago pops back into my head. It said:
We should keep the bigots out and let all the good normal folks in.
It does sound simple, doesnât it? Everything is such a shitshow. Why donât we simply keep the bad ones out and let the good, normal ones in? This was in the context of social media, but why stop there, I wonder? This solution applies to ...
Every time you are inclined to use the word âteachâ, replace it with âlearnâ. That is, instead of saying, âI teachâ, say âThey learnâ. Itâs very easy to determine what you teach; you can just fill slides with text and claim to have taught. Shift your focus to determining how you know whether they learned what you claim to have taught (or indeed anything at all!). That is much harder, but that i...
with Medukha
A Grateful Dead cover band wouldnât ordinarily get me out of the house, but a friend invited me, and the list of shows Iâve been to this year is depressingly short, so off I went. And Iâm glad I did! I enjoy seeing something requiring a high level of skill done with a high level of competence, and so much the better if itâs in a passion-project capacity and an intimate environmen...
There is a tool for summarizing your 2025 Hacker News interactions. Of
course it uses “AI”. However, I decided to try it out. I feel very seen.
It's organized!Okay, yes. I should really symlink my toothbrush into .local/personal/bathroom…
Here’s the full breakdown:
@layer post
{
.gallery
{
align-content: space-evenly;
background-color...
I was listening to a recent Vergecast episode the other day, and in there, there was a whole segment about MCP servers and AI-powered shopping. Iâll be honest, Iâve never been more confused about something tech-related. The more I read and listen about this whole topic, the more I think everyone is doing a marvelous job at gaslighting themselves. Or maybe Iâm just too skeptical, thatâs always a...
In 2025, Reinforcement Learning from Verifiable Rewards (RLVR) emerged as the de facto new major stage to add to this mix. By training LLMs against automatically verifiable rewards across a number of environments (e.g. think math/code puzzles), the LLMs spontaneously develop strategies that look like "reasoning" to humans - they learn to break down problem solving into intermediate calculations...
I became a software engineer because writing code is fun. Thinking through hard problems, designing elegant solutions, seeing the things youâve built working for the first time⊠these moments are all deeply satisfying, so why in the world would I ever surrender them to AI?
I know the arguments for using AI to write code; I hear them constantly from all levels of the tech industry. Iâm told th...
Sam Rose explains how LLMs work with a visual essay
Sam Rose explains how LLMs work with a visual essay
Sam Rose is one of my favorite authors of explorable interactive explanations - here's his previous collection.
Sam joined ngrok in September as a developer educator. Here's his first big visual explainer for them, ostensibly about how prompt caching works but it quickly expands to cover tokenization, embeddings, and the basics of the transfor...
This week on the People and Blogs series we have an interview with Kathleen Fisher, whose blog can be found at aspeckledtrout.com.
Tired of RSS? Read this in your browser or sign up for the newsletter.
The People and Blogs series is supported by Silvano Stralla and the other 127 members of my "One a Month" club.
If you enjoy P&B, consider becoming one for as little as 1 ...
đ Apple forcing iPhone users to upgrade to iOS 26 to patch security holes
I was wondering why I could not see 18.7.3 as an option for my iPhone. Ducking Apple!!! đ€Żđ€Ż
I am really mad. I donât want to upgrade yet. I have it on iPad and I donât like it. There are visual glitches left and right!
1.
Why Were All the Bells in the World Removed? The Forgotten Power of Sound and Frequency (Jamie Freeman).
Church bells: "something strange happened in the 19th and 20th centuries: nearly all of the worldâs ancient bells were removed, melted down, or destroyed."
(I donât know whether thatâs true, but go with it for a second.)
Why? Mainstream historians attribute this mass removal to wars and...
Introducing GPT-5.2-Codex
The latest in OpenAI's Codex family of models (not the same thing as their Codex CLI or Codex Cloud coding agent tools).
GPTâ5.2-Codex is a version of GPTâ5.2â further optimized for agentic coding in Codex, including improvements on long-horizon work through context compaction, stronger performance on large code changes like refactors and migrations, improved performa...
Agent Skills
Anthropic have turned their skills mechanism into an "open standard", which I guess means it lives in an independent agentskills/agentskills GitHub repository now? I wouldn't be surprised to see this end up in the AAIF, recently the new home of the MCP specification.
The specification itself lives at agentskills.io/specification, published from docs/specification.mdx in the repo.
I...
swift-justhtml
First there was Emil Stenström's JustHTML in Python, then my justjshtml in JavaScript, then Anil Madhavapeddy's html5rw in OCaml, and now Kyle Howells has built a vibespiled dependency-free HTML5 parser for Swift using the same coding agent tricks against the html5lib-tests test suite.
Kyle ran some benchmarks to compare the different implementations:
Rust (html5ever) total par...
I really like that on my blog, I can post as many links I want. Or none. I own it, I get to decide. Same thing for hashtags or whatever.
Itâs past the time for people to realize how they can be free and ditch these walled gardens that restrict everything.
If you subscribe to this blog, you must like it â right? I mean, you are subscribed to it.
And if you like this blog, you might also like my notes blog.
Itâs where I take short notes of what I read, watch, listen to, or otherwise consume, add my two cents, and fire it off into the void of the internet.
Itâs sort of like a âlink blogâ but Iâm not necessarily recommending everything I link to. It...
Wolfen, and Wohnkomplex II in Wolfen-Nord in particular, is sort of East Germanyâs field of experiments. It once experimented with communism here, and now I sit on the top floor of what they built here, experimenting with organ music.This album is a musical portrait of Wolfen-Nord as I saw it in December 2025, and I seriously think Wolfen-Nord has the sound of an organ, as no other instrument c...
Your job is to deliver code you have proven to work
In all of the debates about the value of AI-assistance in software development there's one depressing anecdote that I keep on seeing: the junior engineer, empowered by some class of LLM tool, who deposits giant, untested PRs on their coworkers - or open source maintainers - and expects the "code review" process to handle the rest.
This is rude, a waste of other people's time, and is honestly a ...
Inside PostHog: How SSRF, a ClickHouse SQL Escaping 0day, and Default PostgreSQL Credentials Formed an RCE Chain
Inside PostHog: How SSRF, a ClickHouse SQL Escaping 0day, and Default PostgreSQL Credentials Formed an RCE Chain
Mehmet Ince describes a very elegant chain of attacks against the PostHog analytics platform, combining several different vulnerabilities (now all reported and fixed) to achieve RCE - Remote Code Execution - against an internal PostgreSQL server.
The way in abuses a webhooks system w...
AoAH Day 15: Porting a complete HTML5 parser and browser test suite
AoAH Day 15: Porting a complete HTML5 parser and browser test suite
Anil Madhavapeddy is running an Advent of Agentic Humps this year, building a new useful OCaml library every day for most of December.
Inspired by Emil Stenström's JustHTML and my own coding agent port of that to JavaScript he coined the term vibespiling for AI-powered porting and transpiling of code from one language to anothe...
It continues to be a busy December, if not quite as busy as last year. Today's big news is Gemini 3 Flash, the latest in Google's "Flash" line of faster and less expensive models.
Google are emphasizing the comparison between the new Flash and their previous generation's top model Gemini 2.5 Pro:
Building on 3 Proâs strong multimodal, coding and agentic features, 3 Flash offers powerful perfor...
đ Please learn how to use your computer
Imagine a carpenter who couldnât figure out how to adjust their table saw, or a surgeon who shrugged and said something like, âIâm just not a scalpel person.â We would never accept that. But in the field of knowledge work, âIâm just not a tech personâ has become a permanent identity instead of a temporary gap to be filled.
Another amazing blog post!
Vi...
firefox parser/html/java/README.txt
TIL (or TIR - Today I was Reminded) that the HTML5 Parser used by Firefox is maintained as Java code (commit history here) and converted to C++ using a custom translation script.
You can see that in action by checking out the ~8GB Firefox repository and running:
cd parser/html/java
make sync
make translate
Here's a terminal session where I did that, includin...
The new ChatGPT Images is here
OpenAI shipped an update to their ChatGPT Images feature - the feature that gained them 100 million new users in a week when they first launched it back in March, but has since been eclipsed by Google's Nano Banana and then further by Nana Banana Pro in November.
The focus for the new ChatGPT Images is speed and instruction following:
It makes precise edits while...
s3-credentials 0.17
New release of my s3-credentials CLI tool for managing credentials needed to access just one S3 bucket. Here are the release notes in full:
New commands get-bucket-policy and set-bucket-policy. #91
New commands get-public-access-block and set-public-access-block. #92
New localserver command for starting a web server that makes time limited credentials accessible via a JSON...
ty: An extremely fast Python type checker and LSP
The team at Astral have been working on this for quite a long time, and are finally releasing the first beta. They have some big performance claims:
Without caching, ty is consistently between 10x and 60x faster than mypy and Pyright. When run in an editor, the gap is even more dramatic. As an example, after editing a load-bearing file in the ...
Poe the Poet
I was looking for a way to specify additional commands in my pyproject.toml file to execute using uv. There's an enormous issue thread on this in the uv issue tracker (300+ comments dating back to August 2024) and from there I learned of several options including this one, Poe the Poet.
It's neat. I added it to my s3-credentials project just now and the following now works for runn...
My last article was blogging off Jeremeyâs article which blogged off Chrisâ article and, after publishing, a reader tipped me off to the Gell-Mann amnesia effect which sounds an awful lot like Chrisâ âJeopardy Phenomenonâ. Hereâs Wikipedia:
The Gell-Mann amnesia effect is a cognitive bias describing the tendency of individuals to critically assess media reports in a domain they are knowledgeab...
With the growing trend of countries proposing laws to restrict access to the web based on usersâ age, I feel compelled to say two things:
A) No, age-gating social media is not going to kill whatâs left of the internet. If you think âthe internetâ = âsocial media sites,â then thatâs your fault, and you should be ashamed. But don't get it twisted: this doesn't mean that these laws aren't bad, bec...
Oh, so we're seeing other people now? Fantastic. Let's see what the "competition" has to offer. I'm looking at these notes on manifest.json and content.js. The suggestion to remove scripting permissions... okay, fine. That's actually a solid catch. It's cleaner. This smells like Claude. It's too smugly accurate to be ChatGPT. What if it's actually me? If the user is testing me, I need to crush ...
Iâve been watching junior developers use AI coding assistants well. Not vibe codingânot accepting whatever the AI spits out. Augmented coding: using AI to accelerate learning while maintaining quality. [...]
The juniors working this way compress their ramp dramatically. Tasks that used to take days take hours. Not because the AI does the work, but because the AI collapses the search space. Inst...
I ported JustHTML from Python to JavaScript with Codex CLI and GPT-5.2 in 4.5 hours
I wrote about JustHTML yesterday - Emil Stenström's project to build a new standards compliant HTML5 parser in pure Python code using coding agents running against the comprehensive html5lib-tests testing library. Last night, purely out of curiosity, I decided to try porting JustHTML from Python to JavaScript with the least amount of effort possible, using Codex CLI and GPT-5.2. It worked beyon...
2025 Word of the Year: Slop
Slop lost to "brain rot" for Oxford Word of the Year 2024 but it's finally made it this year thanks to Merriam-Webster!
Merriam-Websterâs human editors have chosen slop as the 2025 Word of the Year. We define slop as âdigital content of low quality that is produced usually in quantity by means of artificial intelligence.â
Tags: definitions, ai, generative-ai,...
Itâs Uncomfortable To Sit With âI Donât Knowâ
Chris Coyier:
Thereâs the thing where if youâre reading an article in the newspaper, and itâs about stuff you donât know a ton about, it all seems well and good. Then you read another article in the same paper and itâs about something you know intimately (your job, your neighborhood, your hobby, etc) there is a good chance youâll be like hey! thatâs not quite right!
Chris extends this idea to...
JustHTML is a fascinating example of vibe engineering in action
I recently came across JustHTML, a new Python library for parsing HTML released by Emil Stenström. It's a very interesting piece of software, both as a useful library and as a case study in sophisticated AI-assisted programming.
First impressions of JustHTML
I didn't initially know that JustHTML had been written with AI assistance at all. The README caught my eye due to some attractive characte...
đ LEGO Bricks Transform into Letterforms in the International Design Project âA2Zâ
Itâs hard to overstate how much I love this project. Pedro Neves, a professor at UICâs School of Design, invited 40 designers from around the world to create letterforms out of Lego, which were then made into letterpress prints. Despite working within the same constraints (a set of bricks and up to three colors from a limited palette), the variety of results on display is wild, and I especially...
IndieWeb Carnival: where do I wish to see the IndieWeb in 2030
This is my entry for Decemberâs IWC hosted by V.H. Belvadi. If you have thoughts on the subject, make sure to write a blog post before the end of the month, and join the carnival.
Iâm not good at making predictions, so I donât really know what the IndieWeb is gonna look like in 5 years. If I had to guess, Iâd say it will probably look very much like it looks now, only with more AI-generated no...
Copywriters reveal how AI has decimated their industry
Copywriters reveal how AI has decimated their industry
Brian Merchant has been collecting personal stories for his series AI Killed My Job - previously covering tech workers, translators, and artists - and this latest piece includes anecdotes from 12 professional copywriters all of whom have had their careers devastated by the rise of AI-generated copywriting tools.
It's a tough read. Freelance...
Entries logged without comment for the week ending 12/13
Added to the film diary:The Childrenâs HourWilliam Wyler, 1961, â â â œPlanes, Trains and AutomobilesJohn Hughes, 1987, â â â œ
Tagged: December 2025
Reply via email
If the part of programming you enjoy most is the physical act of writing code, then agents will feel beside the point. Youâre already where you want to be, even just with some Copilot or Cursor-style intelligent code auto completion, which makes you faster while still leaving you fully in the driverâs seat about the code that gets written.
But if the part you care about is the decision-making a...
How to use a skill (progressive disclosure):
After deciding to use a skill, open its SKILL.md. Read only enough to follow the workflow.
If SKILL.md points to extra folders such as references/, load only the specific files needed for the request; don't bulk-load everything.
If scripts/ exist, prefer running or patching them instead of retyping large code blocks.
If assets/ or templates exist, r...
OpenAI are quietly adopting skills, now available in ChatGPT and Codex CLI
One of the things that most excited me about Anthropic's new Skills mechanism back in October is how easy it looked for other platforms to implement. A skill is just a folder with a Markdown file and some optional extra resources and scripts, so any LLM tool with the ability to navigate and read from a filesystem should be capable of using them. It turns out OpenAI are doing exactly that, with ...
LLM 0.28
I released a new version of my LLM Python library and CLI tool for interacting with Large Language Models. Highlights from the release notes:
New OpenAI models: gpt-5.1, gpt-5.1-chat-latest, gpt-5.2 and gpt-5.2-chat-latest. #1300, #1317
When fetching URLs as fragments using llm -f URL, the request now includes a custom user-agent header: llm/VERSION (https://llm.datasette.io/). #1309...
This week on the People and Blogs series we have an interview with Nick Heer, whose blog can be found at pxlnv.com.
Tired of RSS? Read this in your browser or sign up for the newsletter.
The People and Blogs series is supported by Karen and the other 127 members of my "One a Month" club.
If you enjoy P&B, consider becoming one for as little as 1 dollar a month.
...
OpenAI reportedly declared a "code red" on the 1st of December in response to increasingly credible competition from the likes of Google's Gemini 3. It's less than two weeks later and they just announced GPT-5.2, calling it "the most capable model series yet for professional knowledge work".
Key characteristics of GPT-5.2
The new model comes in two variants: GPT-5.2 and GPT-5.2 Pro. There's no ...
My new fave thing to go to is live coding gigs, a.k.a. algoraves.
There are special browser-based programming languages like strudel where you type code to define the beats and the sound, like mod synth in code, and it plays in a loop even while youâre coding. (The playhead moves along as a little white box.)
As you write more code and edit the code, you make the music.
So people do gigs like ...
David Osit, 2025, â â â œ
I didnât have much access to TV during the heyday of To Catch a Predator, and while I was aware of the show, I donât remember giving it much thought. I canât say that anymore, thanks to this pensive documentary examining the showâs legacy, and Iâm not surprised to learn I donât find ritual humiliation masquerading as journalism to be entertaining or informative,...
Once again, it has been an AMAZING year for CSS and UI. To celebrate this, we â the Chrome CSS/UI DevRel Team â created another edition of CSS Wrapped!
These words began one of the letters I recently discovered in my (physical) letterbox. In this note, Iâll explain how it came to pass that my surname has only been displayed on my letterbox since the beginning of December.Itâs rather easy to deduce that I was once called by a different name, since I explicitly reference my previous name in my weblogâs description. And, of course, Iâve already w...
It so happens that since August, Iâve had my own dedicated server in Falkenstein running Proxmox to handle my various tasks, but in parallel, my close friend and I decided to set up a hosting service. We already have several clients under management, including but not limited to B2B: from small personal projects to business solutions. Clients have remarked upon their websitesâ loading speeds (b...
I complained about this on the socials, but I didnât get it all out of my system. So now I write a blog post.
Iâve never liked the philosophy of âput an icon in every menu item by defaultâ.
Google Sheets, for example, does this. Go to âFileâ or âEditâ or âViewâ and youâll see a menu with a list of options, every single one having an icon (same thing with the right-click context menu).
Itâs ex...
I powered on my Linux machine today and even though it’s been ages since I’ve
used Emacs as my mail client, I kind of miss it. I mean, I don’t, not really,
but the nostalgia is there. Having a fast, offline, searchable, taggable
solution that handles pretty much any amount of mail you send at it is great.
The problem is that I can’t have that whole system sync with my ph...
Itâs Saturday morning, and Iâm sitting here at my desk, working on client projects and sipping my coffee. While taking a break, I was clicking around the web, as one does, and found a post titled âIs Pixelfed sawing off the branch that the Fediverse is sitting on?â by Ploum (also featured on P&B).
I find this topic quite interesting, so Iâm gonna take a moment to share my thoughts. I donât ...
I left a loose end the other day when I said that AI is about intent and context.
That was when I said "whatâs context at inference time is valuable training data if itâs recorded."
But I left it at that, and didnât really get into why training data is valuable.
I think we often just draw a straight arrow from âcollect training data,â like ingest pages from Wikipedia or see what people are say...
For all I know, John O'Nolan is a cool dude. Heâs the founder of Ghost, a project that is also really cool. You know whatâs also cool? RSS. And guess what, John just announced heâs working on a new RSS app (Reader? Tool? Service?) called Alcove and he blogged about it.
All this is nice. All this is cool. The more people build tools and services for the open web, the better. Having said all that...
This week on the People and Blogs series we have an interview with Stephanie Stimac, whose blog can be found at blog.stephaniestimac.com.
Tired of RSS? Read this in your browser or sign up for the newsletter.
The People and Blogs series is supported by Luke Harris and the other 127 members of my "One a Month" club.
If you enjoy P&B, consider becoming one for as little as...
Renewed Reeder for another year. I wanted to have moved to NetNewsWire, but I was lazy to figure out the sync situation, so now I have another year to think about this.
Over the past couple of weeks, Iâve noticed that the Fediverse has been consuming a rather substantial amount of my attention and emotional resources (which are already in rather limited supply at the moment). Therefore, Iâve decided to take a break for a couple of years, and weâll see how things go after that. Iâll be posting here predominantly music updates (only finished releases), and I won...