Topical
Nightingale's yearly report on data visualization is now out.

Joseph Roche and Meike Eijsberg report on the war in Ukraine, and have some pretty good charts attached, showing that Kyiv endured 60 hours of continuous air-raid alerts in late August, ending the city's previous pattern of attacks only at night, as well as impacting life and governance.

Tools & Tutorials
"JSON Lines is a convenient format for storing structured data that may be processed one record at a time. It works well with unix-style text processing tools and shell pipelines."

An invite to use vanilla Javascript, showing a 12-line function that converts a table to a downloadable CSV without libraries or backends.

The author uses Jev with tiered goals (short-term sub-goals fed back into fast loops) to create a model for playing Doom in a human-like way instead of just holding down "shoot".
The author argues System One models could rival domain-specific classifiers, predicting big labs will soon release their own choice-only "System One" model variants.

"We see ROC-AUC so often with classification models, we know the higher the better, but there is always that, well it depends scenario. I’ve always wanted to know what the pitfall is, how to avoid it, and how to do better. Let’s go from the basics on how to code ROC-AUC from scratch to decision curve analysis!"
TL;DR: coding ROC-AUC from scratch reveals it can look excellent (0.95) yet hide a terrible PPV (0.17) under low prevalence.

"LiteParse is a standalone OSS PDF parsing tool focused exclusively on fast and light parsing. It provides high-quality spatial text parsing with bounding boxes, without proprietary LLM features or cloud dependencies. Everything runs locally on your machine."
"A JavaScript backend with full system access, a native webview window (WebKit on macOS, WebView2 on Windows, WebKitGTK on Linux), and nothing else. No Electron. No bundled Chromium. No HTTP server. No ports."

"AI functions in SQL, and fast LLM-powered classifiers in general, are having their day in the sun. But they typically rely on costly, closed LLM APIs. We’re building Quail, the QUery-Aware Inference Layer, to jointly optimize query planning and model inference for open-weight models. Across 29 QUAIL-B queries, Quail is 1.84x faster on average than well-tuned vLLM baselines — up to 14x! Star us on GitHub, and try it out in our live demo!"

"Sure, the latest state-of-the-art GPT and open-weight LLMs can do the same kinds of classification tasks as Jev, while also being capable of much more general decision-making. But Jev’s advantage is that it can handle those classification tasks much faster and more cheaply.
At the other end of the spectrum, for a narrow, well-defined problem, Jev probably won’t classify anything better, faster, or cheaper than a special-purpose classifier. But its selling point is that it is far more general than those task-specific models."

Data Thinking
My friends who (probably, rightly) hate NPS will love this article, arguing that Collected feedback is broad, noisy, and hard to interpret, often buried under issues like aesthetic dislikes or accidental clicks rather than real signal. Even when signal exists, it's rarely actionable since negative feedback like "software not working" lacks clear direction for improvement.
Dataviz, Data Analysis, & Interactive
This piece of statistics is mind-boggling: 95% of 111 top airline booking sites fail Google's Core Web Vitals on mobile, with only 5 passing. All 10 top-rated airlines fail.

A light-hearted article for us transport nerds by The European Correspondent, analysing public transport announcement jingles. Interestingly, until recently Paris had inconsistent jingles, with one line having four different tones.

"Our research, carried out at the ESRC Consumer Data Research Centre (GeoDS), is exploring the generational and inter-generational residential movements of family groups across Great Britain, using historic censuses and recent consumer registers."

"There are only twelve 4x4 sudokus! ... Or 288, depending on what counts as different solutions to you."
Brute-force search shows exactly 288 valid 4x4 sudoku solutions exist, reducing to just 12 structurally distinct ones once digit permutations are accounted for. A combinatorial rabbit-hole, pretty well written, and code shared.

"You are about to be born again.
A lottery of 102 billion animal births counted each year.
Each turn is a random draw from this pool.
The odds are real."

Ok, I'm officially a big fan of The European Correspondent 😃 This one I link to predominantly to show the clever chart below. Better seen on the live page, as it's animated.

Amanda Shendruk shows that in over 100 countries, there's at least a 10 percentage-point gap between men and women feeling safe walking alone at night.

"Summary: Three people died at Burning Man in 2026. This was about a quarter of what the crude national rate would predict (~12 deaths). Calculating the age-standardized death rate, we’d expect to see an average of 4.9 deaths. At this rate, seeing 3 deaths is not abnormal. However, Burning Man’s near zero death rate over its existence is abnormal, and likely due to selection bias of healthier attendees and other confounding demographic factors."

AI
A critique of AI: LLMs excel at statistical extrapolation, producing text that is statistically indistinguishable from human writing, but this often results in the world being described or visualised as smoother than it is under more in-depth scrutiny. This is bad for true understanding.
(via Andy Redwood)
I often link to Ed Zitron's AI-skeptic pieces. This is a critique of his arguments, mostly focussed on the accuracy of his predictions, both about AI tech and finances.
