Edoardo;

@edolg.net

diehard 9front fan | "plan9 fixed this 20+ years ago" (2002 ca.) | favs: 9front, openbsd, plan9 c (now "kenc"), rc shell, haskell2010 | italian (native), english (b2) | cishet, antifa https://edolg.net

I might start writing my own Gentoo installation script. I had one on Github but time has passed and I want to review the installation process anyway.

When Anthropic's software—designed, programmed, prompted, and activated by humans working for Anthropic—does stuff the humans failed to predict, stop saying the software has "gone rogue.” The software does not have agency. Only the humans do.

EVEN IF generative AI... had guardrails against abuse (it doesn't) was good for the environment (it's not) and was accurate all the time (not even close) it was still created by scraping billions of works of creative labour without consent, compensation, or even notification.

Every time a works-out-of-the-box Linux distro does something I didn't tell it to do or I find it running background stuff that I don't need, it's one step towards going full-Gentoo.

Sunday nothingburger for you: iPhone 18 Pro Max has a "Prepare to Ship" feature which intentionally discharges the 20 Wh battery. /usr/libexec/BatteryDischargeService handles this by calling [[NSProcessInfo processInfo] activeProcessorCount] and spawning that many NSThreads that spin until stopped

Screenshot of Binary Ninja decompilation output:

void worker_thread_work(void* closure_data @ x20)
{
    void* closure_data_1 = closure_data;
    int64_t closure_data__ofs0 = data_100014f98;

    if (!((uint32_t)*(uint8_t*)((char*)closure_data + closure_data__ofs0) & 1))
        return;

    int64_t iterations = 1;

    while (true)
    {
        if (iterations / 1000000 * 1000000 == iterations)
        {
            id current_thread = [[[NSThread self] currentThread] retain];
            int32_t is_cancelled = [current_thread isCancelled];
            _objc_release_x19(current_thread);

            if (is_cancelled & 1)
                break;
        }

        if (!((uint32_t)*(uint8_t*)((char*)closure_data + closure_data__ofs0) & 1))
            break;

        bool did_overflow = iterations + 1;
        iterations += 1;

        if (did_overflow)
            trap(1);
    }
}