news
Programming Leftovers
-
Sandor Dargo ☛ C++26: std::polymorphic
In the previous article, we looked at std::indirect — C++26’s answer to the “I need a heap-allocated member with value semantics” problem. indirect<T> always stores exactly a T. But what if you need to store a Circle or a Rectangle through a Shape base class — and copy it without slicing?
That’s std::polymorphic<T>, the other half of P3019R14. It owns a heap-allocated object whose dynamic type may be T or any type derived from T. Copying performs a type-erased deep copy that preserves the dynamic type. No virtual clone() needed.
-
Unmitigated Risk ☛ The Amnesia Cycle and Why AI Is Turning Developers Back Into Testers
We develop a specialty because a problem is hard. We get good enough at it to encode pieces of the expertise into process, tools, and automation. Eventually the machinery works well enough that the underlying expertise starts to look unnecessary. We distribute the responsibility, automate more of it, and convince ourselves that the problem has largely been solved.
Then the system grows, the environment changes, or a new technology arrives and exposes all of the judgment that never made it into the machinery.
The responsibility never left. It just changed costume.
-
Jamie Tanna ☛ Why I still hand write my commit messages
For over a decade, I've been a proponent of writing detailed Git commit messages. I find it a valuable use of my time, and continue to double down on it, even in a world where you can get a Large Language Model (LLM) to write it for you.
In the past, I've written about at least 89 strong feelings I have about Git commits, so I'm naturally biased to the benefit of commit messages, but why does this still hold in the current age, where a lot of people are delegating that to an AI agent, if at all?
-
Dirk Eddelbuettel ☛ Dirk Eddelbuettel: RcppMsgPack 0.2.5 on CRAN: Minor Maintenance
Another maintenance release of RcppMsgPack got onto CRAN today. MessagePack itself is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it is faster and smaller. Small integers are encoded into a single byte, and typical short strings require only one extra byte in addition to the strings themselves. RcppMsgPack brings both the C++ headers of MessagePack as well as clever code (in both R and C++) Travers wrote to access MsgPack-encoded objects directly from R.
-
LWN ☛ Go 1.27 released
Go 1.27, the most recent version of the Go programming language, has been released with a number of new tools, the addition of support for the ML-DSA post-quantum algorithm, new JSON-processing packages, language updates, and more.
-
Lerd: A Free, Open Source Herd Alternative for Linux and macOS
If you're on macOS, Laravel Herd is pretty much the default now. On Linux, local dev has long been a mess: Sail stacks eating a gigabyte of RAM each, hand-rolled nginx configs, or a system PHP that breaks every time two projects disagree on a version. And Herd doesn't run there.
Even on macOS there's a catch. The core Herd experience is free, but the parts you end up needing daily, the dump viewer, mail capture, the database services, sit behind a Pro subscription.
-
R / R-Script
-
Stats and R ☛ McNemar's test in R
In a previous article, we showed how to perform the Chi-square test of independence in R in order to test whether two qualitative variables are related. As mentioned in that article (and in the one showing how to do the Chi-square test of independence by hand), this test requires that observations are independent. When observations are dependent, that is, when the two measurements are collected on the same subjects (paired samples), the McNemar’s or Cochran’s Q tests should be used instead.
This article is dedicated to the first one: the McNemar’s test. It is used to compare two related (paired) proportions measured on a qualitative variable with only two possible levels. In practice, it is mostly used when the same subjects are measured twice (typically before and after an intervention), or when two raters or two conditions are applied to the same subjects.
-
-
Python
-
Juha-Matti Santala ☛ Q is for Q - Python A to Z
Second Django ORM post of the week! First, an important distinction before we start: this blog post is about Django’s Q objects and not about the task queue project Django Q (or its fork Django Q2). Maybe I’ll write about them the next time I need to come up with something for letter Q because that’s not a large pool of ideas.
-
-
Rust
-
Rust Weekly Updates ☛ This Week In Rust: This Week in Rust 665
Hello and welcome to another issue of This Week in Rust!
-