Category: Development

Escaping YAML Hell: KSON, a Configuration Language Designed for Humans

2025-09-18
Escaping YAML Hell: KSON, a Configuration Language Designed for Humans

Tired of the endless headaches of YAML configuration files? This article tells the story of a programmer's fall from YAML's sweet trap into a painful abyss, and introduces KSON—an open-source project dedicated to improving the configuration experience. KSON is compatible with JSON and YAML, and adds many human-friendly features such as tolerance for indentation errors and strong code editor support, aiming to make configuration a joy, not a nightmare.

Development

Geizhals Donates $10,000 to Secure the Future of Perl 5

2025-09-18
Geizhals Donates $10,000 to Secure the Future of Perl 5

Geizhals Preisvergleich, a German price comparison website founded in 1997, has donated $10,000 to The Perl and Raku Foundation to support the Perl 5 Core Maintenance Fund. Built on Perl from its inception, Geizhals' donation underscores its commitment to open source and the long-term stability of Perl. The fund addresses critical bug fixes, ensuring Perl remains stable and secure for countless users and organizations. This generous contribution highlights the vital role of community support in maintaining essential open-source infrastructure.

Development Donation

AI-Assisted Coding: Mastering the Unit of Work

2025-09-18

Effective AI-assisted coding isn't just about intelligent models; it's about meticulously managing units of work. The author argues that breaking down tasks into appropriately sized units is crucial. Too small, and efficiency suffers; too large, and context loss leads to error accumulation. The ideal unit should possess clear business value, like user stories, enabling human review and error correction, minimizing AI error compounding. The StoryMachine project aims to define more effective units of work to enhance AI-assisted coding efficiency and accuracy, ultimately making AI development less of a gamble and more effortless.

Development context management

KDE Plasma: A Surprisingly Delightful Linux Desktop Experience

2025-09-18

The author recently switched their gaming rig's desktop environment to KDE Plasma, initially for their wife's convenience. However, they were pleasantly surprised by its comprehensive features and impressive speed. KDE Plasma's network applet provides extensive network information; its integrated screenshot tool is powerful; and its window rules in System Settings allow for extensive customization of application windows. Furthermore, KDE Plasma boasts many pre-integrated tools, such as Flatpak permission configuration, hardware information viewing, and sleep prevention—features that typically require separate software installations on Windows and macOS. While encountering minor initial issues, the author ultimately found KDE Plasma a highly satisfying experience, calling it the best Linux desktop environment they've used in years.

Prevent Remote Desktop Sleep: A Simple systemd-inhibit Trick

2025-09-18
Prevent Remote Desktop Sleep: A Simple systemd-inhibit Trick

Frustrated by remote desktop sessions being interrupted by your computer going to sleep? This article presents a clever solution using the `systemd-inhibit` command and bash aliases. Two simple commands, `block` and `unblock`, are created. `block` starts a background process preventing sleep, while `unblock` kills that process, allowing the system to sleep. No complex configuration needed; just add two lines to your `.bashrc` or `.zshrc` to solve this common problem and improve your workflow.

Development remote desktop

Fast Fourier Transforms (FFT) Explained: The Cooley-Tukey Algorithm

2025-09-18

This post delves into Fast Fourier Transform (FFT) algorithms, focusing on the Cooley-Tukey algorithm. It begins by defining the Discrete Fourier Transform (DFT) and highlighting its naive O(n^2) time complexity. The author then meticulously derives the Cooley-Tukey algorithm, which reduces complexity by breaking down the DFT into smaller DFTs, achieving O(n log n) for inputs of length 2^n. An interactive visualization demonstrates the algorithm's workings. The post also corrects the common misuse of 'FFT' as a synonym for 'DFT', clarifying that FFT refers to the algorithm, not the transform itself.

Development

C Programming Practices: Purity, Speed, and Correctness

2025-09-18

This document presents notes on C programming practices, covering coding style, function and variable naming conventions, formatting, commenting, and clever C tricks like bit counting and loop unrolling. The author emphasizes striving for code purity, speed, and correctness, offering insights into utilizing header files, compilers effectively, and revisiting common programming paradigms like the use of GOTO statements. The goal is to improve the quality and efficiency of C programming.

Development

Saying Goodbye to CSS Classes: Building a Classless Website

2025-09-18
Saying Goodbye to CSS Classes: Building a Classless Website

Following a previous post advocating for leveraging browser built-in elements, the author put this philosophy into practice by completely removing all CSS classes from his personal website. He experimented with more granular default styles, nested selectors, modern CSS features like `:where()` and `:has()`, and custom elements and attributes as replacements. While this requires more careful planning and isn't suitable for all projects, the experiment led the author to question the necessity of CSS classes and has had a lasting influence on his future work. A small concession was made for a syntax highlighting plugin which utilizes classes.

Development Custom Elements

Debugging Chez Scheme Programs: A Comprehensive Guide

2025-09-18

This guide by R. Kent Dybvig provides a comprehensive approach to debugging Chez Scheme programs. It starts with fundamental techniques like understanding error messages, simplifying code and input, and strategically placing print statements. The guide then progresses to advanced methods, including using Chez Scheme's tracing facilities and debugger to inspect program state and identify elusive bugs. Whether you're a beginner or experienced programmer, this guide offers valuable insights for efficient debugging.

Development

pnpm Update: Delayed Dependency Updates and Advanced Dependency Finding

2025-09-18
pnpm Update: Delayed Dependency Updates and Advanced Dependency Finding

The latest pnpm release introduces two significant features: First, a new `minimumReleaseAge` setting delays the installation of newly released dependencies to mitigate security risks. Second, it adds support for finder functions in `.pnpmfile.cjs` allowing for custom search rules via `pnpm list` or `pnpm why` with the `--find-by` flag, enabling more granular dependency searching; for example, finding packages with a specific React version in their peerDependencies. Bug fixes include resolving deprecation warnings in Node.js 24 and ensuring a non-zero exit code when a process is cancelled with Ctrl-C.

Development

Website Cookie Policy Explained

2025-09-18
Website Cookie Policy Explained

This website uses two types of cookies: essential cookies for basic website functionality, and comment cookies to track user activity across multiple sessions, including username, email, and URL. Essential cookies store user cookie consent preferences for 30 days; comment cookies are session cookies that expire at the end of the session.

Development User Tracking

Manually Decoding GZIP: A Deep Dive into the Deflate Algorithm

2025-09-18

The author attempts to manually decode the string "TOBEORNOTTOBEORTOBEORNOT" compressed with GZIP, providing a deep dive into the Deflate algorithm. The article details the GZIP data structure, including magic numbers, compression methods, timestamps, and other fields. It focuses on the core of Deflate compression—the LZ77 algorithm. LZ77 uses characters and copy commands (length and distance) for encoding, effectively reducing data size. By manually parsing the compressed data, the author reconstructs the original string step-by-step. The conclusion: bit encoding is more efficient than byte encoding for data compression, but manual decoding is complex.

Development

Malicious npm Packages Published via Compromised GitHub Actions Workflow

2025-09-18
Malicious npm Packages Published via Compromised GitHub Actions Workflow

A malicious GitHub Actions workflow exfiltrated an npm token with broad publishing rights from a shared repository, leading to the publication of malicious versions of 20 packages, including the popular @ctrl/tinycolor. While the author's GitHub account and repository weren't directly compromised, a collaborator with admin access to a shared repository allowed the attack to succeed. The attackers exploited a GitHub Actions secret containing the npm token. GitHub and npm security teams swiftly responded, unpublishing the malicious packages. The author released clean versions to clear caches. The incident highlights the risks of shared repositories and static tokens, prompting a move towards npm's Trusted Publishing (OIDC) for enhanced security.

Development

Blender Founder Ton Roosendaal Steps Down as CEO

2025-09-18

Ton Roosendaal, founder and CEO of the open-source 3D software Blender, announced he will step down on January 1, 2026. He will transition to the newly established Blender Foundation supervisory board. Current COO Francesco Siddi will take over as CEO, joined by new board members Sergey Sharybin (Head of Development), Dalai Felinto (Head of Product), and Fiona Cohen (Head of Operations). Roosendaal stated that they've been preparing for this since 2019 and is confident in the team to lead Blender into the next decade.

Development CEO Transition

Rendezvous Hashing: A Distributed Hashing Algorithm with Excellent Load Balancing

2025-09-18

Rendezvous hashing solves the distributed hash table problem by generating a prioritized server list for each key and selecting the first server. Unlike consistent hashing, it offers superior load balancing but has an O(N) lookup time. It's a good choice for small to medium-sized distributed caches, but adding servers in larger systems requires careful management to maintain the "first choice" invariant. Its popularity lagged behind consistent hashing, possibly due to a lack of a 'killer app' moment, despite its earlier invention and inherent advantages.

libxml2 Maintainer Steps Down

2025-09-18
libxml2 Maintainer Steps Down

Nick Wellnhofer, the maintainer of libxml2, announced his resignation, leaving the project largely unmaintained. He will address regressions in the 2.15 release until the end of 2025. The news prompted widespread appreciation and concern from the community. Many developers expressed gratitude for the long-term maintenance of libxml2, and one offered to take over maintenance, albeit with some technical questions requiring clarification from the former maintainer.

Development

arXivLabs: Building New arXiv Features with Community Collaborators

2025-09-18
arXivLabs: Building New arXiv Features with Community Collaborators

arXivLabs is a platform enabling developers and researchers to build and share new arXiv features directly on the arXiv website. This initiative embraces values of openness, community, excellence, and user data privacy, aiming to enhance the arXiv experience for all. Got an idea to improve arXiv? Join arXivLabs!

Development

Hypervisor Internals and High-Performance Fuzzing in a Day

2025-09-18

This one-day course provides a crash course on the inner workings of hypervisors and techniques for writing them for high-performance fuzzing. It covers the fundamentals of hardware-assisted virtualization technologies like VMCS/VMCB, guest-host world switches, EPT/NPT, and useful features such as exception interception for virtual machine introspection during fuzzing. The course combines lectures with hands-on exercises using provided materials and source code in the Hypervisor-101-in-Rust/hypervisor directory.

Development hypervisor

Wasm 3.0 Released: GC, 64-bit Addresses, and More

2025-09-18
Wasm 3.0 Released: GC, 64-bit Addresses, and More

Three years in the making, the WebAssembly (Wasm) 3.0 standard is finally here! This substantial update boasts significant features, including 64-bit address spaces, expanding the addressable memory to 16 exabytes; support for multiple memory instances, enhancing large application and data handling; a garbage collection (GC) mechanism, greatly simplifying the process of compiling high-level languages to Wasm; typed references for improved type safety and efficiency; and tail calls, exception handling, and improved vector instructions. These enhancements make Wasm significantly better suited for compiling high-level languages like Java and OCaml, broadening its applications.

Development

C# 14's Null-Conditional Assignment Operator: A Farewell to Redundant `if` Statements

2025-09-18
C# 14's Null-Conditional Assignment Operator: A Farewell to Redundant `if` Statements

C# 14 introduces a game-changing feature: the null-conditional assignment operator. This elegantly solves the long-standing problem of NullReferenceExceptions in C#. Previously requiring multiple `if` statements to check for null values, assignments are now streamlined to a single line, dramatically improving code readability and reducing verbosity. For instance, `config?.Settings?.RetryPolicy = new ExponentialBackoffRetryPolicy();` replaces cumbersome `if` checks. While the operator doesn't support increment/decrement operators and overuse should be avoided, it's a valuable addition in C# 14, worth exploring once .NET 10 is released.

ClickHouse Performance Optimization on Intel Xeon Ultra-High Core Count Processors

2025-09-17
ClickHouse Performance Optimization on Intel Xeon Ultra-High Core Count Processors

Intel's latest processors boast hundreds of cores, presenting both immense opportunities and challenges for analytical databases like ClickHouse. Intel Shanghai engineers systematically analyzed ClickHouse performance on ultra-high core count servers, identifying and optimizing five key bottlenecks: lock contention, memory optimization, insufficient parallelism, SIMD instruction utilization, and false sharing. By reducing lock hold times, improving the memory allocator, parallelizing serial phases, employing smarter SIMD algorithms, and optimizing memory layout, they significantly improved ClickHouse's scalability on ultra-high core count systems, achieving up to 10x speedups for individual queries and a 10% overall geometric mean improvement. This work highlights the need for multi-faceted database optimization in the ultra-high core count era, addressing both algorithmic and memory layout considerations.

UUIDv47: Database-Friendly UUIDs with Sortable Ordering and API Compatibility

2025-09-17
UUIDv47: Database-Friendly UUIDs with Sortable Ordering and API Compatibility

UUIDv47 ingeniously stores sortable UUIDv7 in databases while presenting a UUIDv4 façade to APIs. It achieves this by XOR-masking the UUIDv7 timestamp with a keyed SipHash-2-4 stream linked to the UUID's random bits. This offers database efficiency and API compatibility. The C library is easy to integrate, featuring key-recovery resistance for enhanced security.

Development

Algebraic Types Aren't Scary: A Simple Explanation Using Set Theory

2025-09-17

This article provides a clear and accessible explanation of algebraic types, using the perspective of set theory where types are viewed as sets of values. It delves into product types (similar to structs or classes) and sum types (like Option or Result types), comparing their implementation in an interpreter using algebraic types versus object-oriented approaches (inheritance or the Visitor pattern). The author argues that algebraic types offer superior conciseness, readability, and maintainability, avoiding unnecessary complexity. The conclusion emphasizes product and sum types as fundamental ways to combine types, sufficient for most programming tasks.

Microsoft: A 'Bad Actor' in the Software Supply Chain?

2025-09-17
Microsoft: A 'Bad Actor' in the Software Supply Chain?

This article revisits software supply chain security issues, from Internet Explorer to npm, arguing that Microsoft's insufficient efforts to secure npm have led to rampant malware, threatening software development companies. The author points out critical security vulnerabilities in npm's postinstall scripts, easily exploited for attacks, while Microsoft, as the owner of npm, has taken little action. This makes software development less fun and more of a chore. The article calls for industry-wide efforts to build a secure software supply chain.

Development

DataTables.net Suffers Major Outage Due to Domain Hijacking

2025-09-17

The DataTables.net website experienced a significant outage due to a domain hijacking attack. The attacker, using a sophisticated phishing campaign and forged identification documents, successfully transferred the domain. While the server and code remained untouched, the disruption to the CDN severely impacted users. The author has since restored services and encourages users to adopt security measures like Subresource Integrity (SRI).

Development domain hijacking

Stategraph: Rethinking Terraform State Management as a Distributed Systems Problem

2025-09-17
Stategraph: Rethinking Terraform State Management as a Distributed Systems Problem

Terraform has long used filesystem semantics to solve a distributed systems problem, resulting in inefficient state management. Stategraph addresses this by treating Terraform state as a directed acyclic graph, leveraging graph database features for subgraph isolation, precise locking, and incremental refresh. This dramatically improves concurrent throughput, solving lock contention and slow refresh times, enabling large teams to collaborate effectively. Stategraph uses PostgreSQL as its backend and is compatible with existing Terraform workflows, requiring no configuration changes for migration.

Development

Tabby: A Powerful Terminal Emulator and SSH Client

2025-09-17
Tabby: A Powerful Terminal Emulator and SSH Client

Tabby (formerly Terminus) is a highly configurable terminal emulator, SSH, Telnet, and serial client for Windows, macOS, and Linux. It boasts features like theming, customizable shortcuts, split panes, tab persistence, and supports various shells including PowerShell, WSL, and Git-Bash. Furthermore, Tabby offers extensive plugin support, including Docker integration, quick command sending, output saving, and even AI assistant integration for enhanced productivity. A versatile alternative to existing terminal applications, Tabby is ideal for developers and system administrators.

Development SSH client

Fedora 43 Beta: A Sleek Upgrade with New Languages and Tools

2025-09-17
Fedora 43 Beta: A Sleek Upgrade with New Languages and Tools

Fedora 43 Beta is here, boasting improvements across the board. The installer gets a major overhaul with the Anaconda WebUI as the default, a switch to DNF5, and the removal of modular packages for a streamlined experience. Core development tools are updated, including GCC 15.2, glibc 2.42, and LLVM 21. Python 3.14, Go 1.25, Idris 2, and even the experimental Hare language are now supported. Database upgrades include PostgreSQL 18 and MySQL 8.4 as the default. GNOME moves entirely to Wayland, and font rendering is improved. Several deprecated components have been removed, paving the way for a cleaner, more modern Fedora experience.

Development

Building a Docker Container from Scratch: Unveiling the Secrets of Mount Namespaces

2025-09-17
Building a Docker Container from Scratch: Unveiling the Secrets of Mount Namespaces

This article provides a clear and concise explanation of how to build a simple Docker-like container using only stock Linux tools: unshare, mount, and pivot_root. It focuses on the crucial role of the mount namespace in container isolation, and the complementary roles of other namespaces (PID, cgroup, UTS, network). Through step-by-step practical exercises, readers will understand how mount namespaces isolate mount tables and how mount propagation affects interactions between namespaces. Ultimately, readers will be able to create fully featured, Docker-style containers using only standard Linux commands.

Development Linux Namespaces

In Defense of C++: Still Relevant in 2025?

2025-09-17
In Defense of C++: Still Relevant in 2025?

This blog post refutes common criticisms of C++, arguing that its complexity is manageable, its age is irrelevant given continuous development (C++20, C++23), and its perceived unsafety is mitigated by modern tools and practices. The author contends that while a steep learning curve exists, the long-term benefits outweigh the initial challenges, particularly for systems programming and game development. Ultimately, the post emphasizes C++'s enduring relevance and widespread use in various applications, concluding that it remains a powerful and important language in 2025.

Development
1 2 3 4 6 8 9 10 214 215