Category: Development

GPU Kill: Cross-Platform GPU Management CLI

2025-09-21
GPU Kill: Cross-Platform GPU Management CLI

GPU Kill is a command-line tool for managing GPUs across NVIDIA, AMD, Intel, and Apple Silicon systems. Easily monitor, control, and secure your GPU infrastructure. Features include real-time GPU usage monitoring, killing stuck processes, detecting crypto miners and suspicious activity, enforcing policies to prevent resource abuse, a web dashboard for cluster monitoring, remote management of GPUs across multiple servers, and AI assistant integration. Supports Linux, macOS, and Windows. Simple command-line interface and a web dashboard provide user-friendly management.

Development GPU management

Tiny C99 JSON Parser: Zero-Allocation, ~150 Lines

2025-09-21
Tiny C99 JSON Parser: Zero-Allocation, ~150 Lines

A minimal JSON parsing library written in C99, boasting only around 150 lines of code! It features zero-allocation for memory efficiency and a streamlined state. Error messages include precise line and column numbers. Number and string parsing are left to the user, allowing customization with functions like `strtod` and `atoi`. A simple example demonstrates loading a rectangle from a JSON string into a `Rect` struct. This project is free and unencumbered software released into the public domain.

Development zero-allocation

arXivLabs: Experimental Projects with Community Collaborators

2025-09-21
arXivLabs: Experimental Projects with Community Collaborators

arXivLabs is a framework that lets collaborators develop and share new arXiv features directly on the site. Individuals and organizations working with arXivLabs embrace our values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only works with partners who share them. Have an idea for a project that will add value for arXiv's community? Learn more about arXivLabs.

Development

Microsoft's DXGI Debugger: My Game Accidentally Made the Blacklist

2025-09-21
Microsoft's DXGI Debugger: My Game Accidentally Made the Blacklist

While porting Space Station 14 to ARM64 Windows, the developer encountered a bizarre crash. Debugging revealed the issue stemmed from a Microsoft DXGI optimization for windowed games, forcing "flip" mode, causing illegal instruction exceptions with GetDC() in specific circumstances (the game executable named SS14.Loader.exe). It turned out to be a bug in Microsoft's ARM64 DXGI optimization, enabled only for specific game names, and Space Station 14 was unfortunately on that list. The developer suspects this bug went unnoticed due to the limited number of native ARM64 Windows games. The issue has been reported to Microsoft, and ARM64 Windows support is temporarily postponed until the bug is fixed.

Development Windows Debugging

Vec: A Blazing Fast, Leak-Safe Dynamic Array for C

2025-09-21
Vec: A Blazing Fast, Leak-Safe Dynamic Array for C

Vec is a generic, fast, and leak-safe dynamic array for C. It uses contiguous memory, grows geometrically (×2) for amortized O(1) push operations, and offers a method-style API for an object-oriented feel. The library prioritizes safety with overflow guards, bounds-checked accessors, and well-defined behavior for edge cases. Its design balances performance and safety, providing a clean and efficient interface.

Development

Open Source Software Supply Chain Security: A Half-Century of Challenges

2025-09-21

From the 1974 Honeywell Multics system security review highlighting concerns about 'backdoors' to the 2024 XZ attack targeting Debian systems, open source software supply chain security remains a persistent problem. This article explores the complexity of the issue, extending beyond simple dependency graphs to encompass all stages of software building and distribution, including human factors. It proposes solutions such as software authentication, reproducible builds, rapid vulnerability detection and patching, and the use of safer programming languages. Crucially, it emphasizes the importance of funding open source development, as underfunding makes projects vulnerable to malicious takeover. The XZ attack serves as a stark warning: seemingly innocuous 'free help' can conceal significant risks.

Development XZ attack

The Perils of Following Orders: A Programmer's Functional Programming Purgatory

2025-09-21

A programmer, after a coworker complains about their functional programming style, is banned from using it by their manager. To keep their job, they reluctantly rewrite a simple function to list coworkers, using imperative programming. Despite their best efforts to avoid functional paradigms, they struggle to fully comply, facing further challenges during code review and ultimately needing to seek guidance from their manager. This humorous anecdote highlights the absurdity of arbitrary technical decisions in the workplace.

Bluefin LTS & GDX: The Reign of Achillobator Begins

2025-09-21
Bluefin LTS & GDX: The Reign of Achillobator Begins

After nine months, Bluefin LTS (Long Term Support) and Bluefin GDX (AI Workstation) are generally available. Bluefin LTS, built on CentOS Stream 10, offers a stable GNOME 48 desktop with long-term support and an optional Hardware Enablement branch (lts-hwe) for newer kernels. Bluefin GDX targets AI/ML professionals, integrating Nvidia drivers and CUDA, and collaborating with Red Hat on open-source AI/ML tools. Both boast improved installation and secure boot support, aiming for a stable, efficient desktop experience.

Development AI Workstation

PostgreSQL 18 Beta: UUIDv7 Makes Database Primary Keys Better

2025-09-21
PostgreSQL 18 Beta:  UUIDv7 Makes Database Primary Keys Better

PostgreSQL 18 Beta is out, and its most anticipated feature is native support for UUIDv7. UUIDv7, a timestamp-based UUID variant, solves the sorting and index locality issues inherent in traditional UUIDs used as database primary keys. It offers a compelling combination of globally unique identifiers and temporal ordering, making it ideal for distributed databases needing high performance and scalability. Other performance improvements in PostgreSQL 18 include async I/O and index optimizations.

Development

macOS APFS Disk Utility's Persistent Bug: A Workaround

2025-09-21
macOS APFS Disk Utility's Persistent Bug: A Workaround

macOS Monterey 12.0.1's Disk Utility continues to suffer from a long-standing bug: failure to unmount volumes or containers when repairing APFS disks. This article provides workarounds, including using Disk Utility in Recovery Mode or directly using the command-line tool `fsck_apfs` to check and repair APFS volumes and containers. The article details `fsck_apfs` usage, including check and repair options, and handling encrypted volumes.

Development Disk Repair

Calibration: Fighting Oversimplification and Sparse Data

2025-09-21
Calibration: Fighting Oversimplification and Sparse Data

This paper addresses a common problem in model calibration: isotonic regression, due to the calibration dataset being much smaller than the original training set, oversimplifies the probability distribution, losing the model's fine-grained distinctions. The paper analyzes this 'data sparsity induced flattening' phenomenon and proposes several diagnostic methods to distinguish between justifiable simplification due to noise and oversimplification due to data limitations. Finally, it introduces the Calibre package, which, by relaxing isotonic constraints or using smooth monotone models, maintains calibration accuracy while preserving as much of the original model's discriminatory power as possible.

AI Coding: Expert Enhancer, Not Replacement

2025-09-21

AI's role in coding is far from replacing programmers; instead, it acts as an efficiency booster for senior developers. AI excels at boilerplate code, automating repetitive tasks, and rapid iteration, but it falls short in code review, architecture design, code quality, and security. Therefore, the currently most effective combination is "senior developer + AI," not the initially envisioned "junior developer + AI." AI's best applications are in rapid prototyping, automating routine tasks, multidisciplinary work, and simple function tests. While AI holds immense potential in coding, human review of its generated code remains crucial, and expectations should align with reality.

Development

The Rise of the AI Code Cleanup Economy

2025-09-21

The widespread adoption of AI-assisted coding has brought about a significant challenge: the mess of 'vibe coding.' While AI generates code efficiently, it often lacks architectural soundness, security considerations, and an understanding of system context, leading to extensive code refactoring needs. A new profession has emerged—the AI code cleaner—specializing in fixing low-quality AI-generated code and commanding high fees. Market research indicates that most enterprise software engineers will use AI code assistants by 2028, signaling a massive growth opportunity in the AI code cleanup market. The future of software development will likely involve AI handling initial implementation, while humans manage architecture, testing, and cleanup. Engineers proficient in AI code cleanup will be in high demand.

Development

GPU-Accelerated RNNs: A CUDA Implementation of minGRU and minLSTM

2025-09-21

This blog post details a final project for Caltech's CS179: GPU Programming, verifying the claims of Feng et al.'s paper, “Were RNNs All We Needed?” The project implemented simplified minGRU and minLSTM models and a custom CUDA parallel scan algorithm. Results showed significant GPU speedups for long sequences, validating the paper's core finding that RNN recurrence can be parallelized. However, for short sequences, CUDA kernel launch overhead negated some performance gains. GPU kernel profiling revealed the final projection layer as the primary bottleneck, suggesting further optimization via a single cuBLAS GEMM call.

Development parallel algorithms

Tackling Heterogeneous Data in a Statically-Typed Game Scripting Language

2025-09-21

The author encountered challenges handling heterogeneous data while developing a statically-typed game scripting language. The article explores various solutions used in different programming languages, including null, variant types, untagged unions, sum types, and subtyping. The author ultimately chooses a Pascal-like variant record approach, balancing concise syntax with runtime type checking. This avoids the complexity of flow typing, leading to a more understandable and user-friendly language. It's a clever design that balances static type safety with ease of use, providing a more convenient scripting language solution for game development.

Development

The Bloat of Edge-Case-First Libraries: npm's Dependency Hell

2025-09-21

This article examines the proliferation of over-engineered libraries in the npm ecosystem. Many libraries prioritize handling rare edge cases, resulting in overly granular dependency trees. The author uses the example of `is-number`, which handles various number-like inputs when most applications only need to handle the `number` type. The solution proposed is for libraries to focus on common use cases, making reasonable assumptions about input types, and leaving edge case handling to projects that need them. This simplifies code, improves performance, and reduces unnecessary dependencies.

Development

The Algorithmic Challenge of Efficient Vocabulary Expansion

2025-09-21

Learning a new language efficiently requires expanding vocabulary quickly. This article explores the problem of selecting books to maximize vocabulary learning efficiency. While selecting a single book is relatively straightforward, choosing multiple books to cover more vocabulary becomes an NP-hard problem, meaning the computation time for exact solutions grows exponentially with the number of books. Fortunately, this problem falls under submodular problems, allowing the use of approximation algorithms to find near-optimal solutions within a certain accuracy. The article introduces greedy algorithms and their improvements, and recommends the efficient Python library submodlib.

Development vocabulary learning

A Microsoft Engineer's Encounter with Raymond Chen: Preprocessors and BitLocker Error Messages

2025-09-21
A Microsoft Engineer's Encounter with Raymond Chen: Preprocessors and BitLocker Error Messages

In 2009, a young Microsoft BitLocker developer sought a way to reference C++ constant values within .mc files to improve BitLocker's error messages. He reached out to an internal mailing list and received a concise yet effective reply from Raymond Chen: use the preprocessor. However, fearing a disruption to the complex Windows build system, the developer ultimately abandoned the approach. Years later, he reflects on this experience, highlighting shortcomings in Microsoft's internal tooling and his own avoidance of complex build systems.

Development

Bazel Caching, Remote Execution, and glibc Version Mismatch Crash Production

2025-09-21
Bazel Caching, Remote Execution, and glibc Version Mismatch Crash Production

This article details a production crash caused by the interaction between Bazel caching, remote execution, and differing glibc versions across environments. A developer builds and tests a change locally, CI leverages the cache to build a release, but deployment to production fails due to a missing 'GLIBC_2.28' version. The article analyzes how glibc version discrepancies break build reproducibility and presents solutions: a quick hack involves capturing local and remote glibc versions, selecting the higher one for the C++ toolchain; a more robust solution restricts Action Cache writes, forcing builds to run on remote executors; the ultimate solution utilizes sysroots, installing multiple glibc versions across environments and explicitly specifying which to use. The article stresses the importance of reproducible builds, recommending solutions based on context.

Development

From Single-Core to Multi-Core: The Evolution of macOS Parallel Processing

2025-09-20
From Single-Core to Multi-Core: The Evolution of macOS Parallel Processing

The original 128K Mac from 1984 boasted a single 8MHz Motorola 68000 processor, capable of running only one app at a time. Today's Macs, however, comfortably handle multiple substantial apps concurrently, alongside Time Machine backups and other background processes. This article chronicles that evolution, from single-tasking origins to the introduction of Switcher and MultiFinder, the leap to preemptive multitasking and multithreading in Mac OS X, and the performance optimizations brought by Grand Central Dispatch (GCD). The journey culminates in efficient management of up to 32 CPU cores, showcasing Apple's relentless pursuit of performance enhancements in macOS.

Development multi-core processor

Solving a 25-Piece Wooden Puzzle with Haskell: Part I

2025-09-20

The author received a challenging 3D puzzle consisting of 25 identical wooden pieces and, after struggling to solve it manually, decided to leverage the power of the Haskell programming language. This is the first of a two-part series focusing on modeling the problem. The author models the space as a 3D grid, using vectors to represent positions and defining data structures for a single piece and its arrangement in space. The article details how linear algebra and Haskell features are used to represent rotations and translations of the pieces, generating a candidate list of all possible arrangements. The article ends with a cliffhanger, leaving the solution of finding the correct arrangement from the candidates to the second part.

Development 3D Puzzle

Linux Kernel Performance Boost: Restartable Sequences Improved

2025-09-20

The Linux kernel's restartable sequences feature, aimed at boosting performance in threaded applications, has seen increased use alongside new kernel capabilities. However, this has revealed some issues. Developer Thomas Gleixner recently improved the code, addressing performance bottlenecks and historical oversights. These changes significantly enhance efficiency but might require ABI changes in user space, demanding thorough testing for compatibility.

Development restartable sequences

Azure's LLM Models: A Case of Degrading Performance

2025-09-20
Azure's LLM Models: A Case of Degrading Performance

A developer building a product using Azure's LLMs and audio models discovered a concerning trend: the same models are getting progressively worse over time. Using identical system prompts and messages, the accuracy of responses from both GPT-4o-mini and GPT-5-mini/nano have declined significantly. GPT-5, while initially expected to be superior, proved slower and less accurate than the older GPT-4o-mini. The developer suspects Microsoft is deliberately degrading older models to push users towards newer, less reliable versions. This practice undermines user experience and may drive developers to seek alternative platforms.

Development model degradation

Massive NPM Package Purge: A Developer's Wake-Up Call

2025-09-20
Massive NPM Package Purge: A Developer's Wake-Up Call

A significant number of npm packages have been removed from the npm registry, impacting components and tools across various frameworks like React, Angular, and NativeScript. The affected packages range from those completely removed to others having versions fixed. This event serves as a reminder for developers to be vigilant about dependency maintenance and security. It's crucial to review project dependencies and take necessary actions to prevent disruptions. Reasons for removal may include security vulnerabilities, maintenance issues, or other factors.

Development package removal

Why You Should Ditch GitHub for Your Open Source Project

2025-09-20

This article exposes the problematic aspects of using GitHub, a Microsoft-owned platform. It highlights issues such as limited user control, a centralized model, telemetry tracking, and vendor lock-in through features like GitHub Actions and Copilot. More critically, it details Microsoft's controversial partnerships with the US government and the Israeli military, including providing cloud services to ICE and AI technology to the Israeli Defense Forces, leading to internal employee protests. The author advocates for migrating open source projects to self-hosted solutions like Forgejo or Sourcehut to preserve the spirit and independence of open source.

Development

C++ Committee Dumps Safe Subset Proposal Amid Memory Safety Debate

2025-09-20
C++ Committee Dumps Safe Subset Proposal Amid Memory Safety Debate

The C++ standards committee rejected a detailed proposal for a rigorously safe subset of the language, despite ongoing concerns about memory safety. Co-author Sean Baxter attributes the rejection to the committee's unpopularity with Rust's safety model, favoring the 'Profiles' approach instead. While Profiles have support from figures like Bjarne Stroustrup, their viability is questioned, potentially missing inclusion in C++26. The decision sparks controversy, with developers suggesting that switching to Rust or alternative safer languages like Google's experimental Carbon project might be a superior solution.

Development

Systemd Service Unit Restrictions: A Common Cause of Daemon Startup Failures

2025-09-20

A classic problem for Linux system administrators is a daemon failing to start normally but working fine when manually run as root. Traditional causes include incomplete $PATH environment variables, SELinux, and AppArmor. Increasingly, systemd service unit restrictions (documented in systemd.exec) are the culprit. Directives like ProtectHome and PrivateTmp can cause cryptic 'permission denied' or 'file not found' errors, or even indirect failures like blocking DNS queries. Removing restrictions from the daemon's .service file can help diagnose the issue, but future daemons may rely on these restrictions, complicating troubleshooting.

Development daemon

System Calls: The Hidden Cost of Performance

2025-09-20
System Calls: The Hidden Cost of Performance

This article delves into the performance overhead of Linux system calls, revealing that it's far more than just a simple kernel function call. System calls disrupt CPU microarchitectural optimizations like instruction pipelining and branch prediction, leading to performance losses far exceeding what's apparent in the source code. The article analyzes kernel code, explains the performance impact of various software and hardware mitigations, and offers optimization strategies such as using vDSO, caching values, optimizing I/O, batching operations, and pushing work into the kernel to reduce system call frequency and improve software performance.

Development

Blazing Fast Cubic Bézier Easing Function Library in C++

2025-09-20

This article introduces a single-header C++20 library that represents cubic Bézier curves directly as easing functions, leading to performance improvements in animation. Implemented using the `EasingCubicBezier` template class, the library offers PRECISE (high accuracy) and FAST (high performance) modes. Benchmark tests demonstrate that this approach outperforms Blender's algorithm and numerical solutions based on the Newton-Raphson method, offering superior speed and stability, especially for real-time animation systems. This is because it avoids the overhead of solving cubic polynomial equations at runtime.

Development Bezier Curves

GitHub Actions Deprecating Node.js 20, Migrating to Node.js 24

2025-09-20
GitHub Actions Deprecating Node.js 20, Migrating to Node.js 24

GitHub Actions is announcing the deprecation of Node.js 20, with end-of-life in April 2026. A migration to Node.js 24 is planned for Fall 2025. The latest GitHub runner already supports Node.js 24, and users can test it early by setting an environment variable. From March 4th, 2026, Node.js 24 will be the default. Users can temporarily continue using Node.js 20 by setting an environment variable until its complete removal in the summer. Note: Node.js 24 is incompatible with macOS 13.4 and below, and doesn't support ARM32 self-hosted runners.

Development
1 2 4 6 7 8 9 214 215