Category: Development

Linux Accessibility: The Untold Story of Volunteer Burnout

2025-06-19
Linux Accessibility: The Untold Story of Volunteer Burnout

A GNOME developer lashes out, detailing the struggles of improving accessibility on the Linux desktop. Despite significant funding from the GNOME Foundation and countless volunteer hours, progress is largely unacknowledged, overshadowed by negativity and unfair criticism. The article exposes companies profiting from GNOME without contributing, urging the Linux community to recognize the dedication of accessibility developers and address the systemic issues hindering progress.

Development

BeeKEM: A Novel Key Encapsulation Mechanism for Decentralized Secure Group Messaging

2025-06-19
BeeKEM: A Novel Key Encapsulation Mechanism for Decentralized Secure Group Messaging

This article delves into BeeKEM, a novel key encapsulation mechanism for decentralized secure group messaging. Unlike traditional TreeKEM, BeeKEM enhances recovery from conflicting offline updates and network splits by allowing multiple group state "epochs" to coexist simultaneously. When members receive conflicting updates, they retain all received keys, marking them as "conflicted," thus continuing to decrypt and read messages from conflicting epochs. Updates proceed by treating conflicted nodes as blank. BeeKEM unlocks new possibilities for building local-first apps with stronger privacy and autonomy.

Unregistry: A Lightweight Docker Image Registry for Effortless Transfers

2025-06-19
Unregistry: A Lightweight Docker Image Registry for Effortless Transfers

Unregistry is a lightweight container image registry that stores and serves images directly from your Docker daemon's storage. The `docker pussh` command allows pushing images to remote Docker servers over SSH, transferring only missing layers for speed and efficiency. Bypass the complexities of Docker Hub or self-hosted registries; simply use `docker pussh myapp:latest user@server` for a direct, simple transfer. It establishes an SSH tunnel, runs a temporary Unregistry container, pushes only missing layers, then closes the tunnel. Perfect for production deployments, CI/CD pipelines, and air-gapped environments.

fang: Supercharging Your Cobra CLI Apps

2025-06-19
fang: Supercharging Your Cobra CLI Apps

fang is a small, experimental library providing batteries-included enhancements for Cobra-based CLI applications. It boasts features like fully styled help and usage pages, styled errors, automatic --version handling, man page generation (using mango), shell completions, theming, and silent usage output. Integration is straightforward, requiring minimal code changes to significantly improve your CLI's user experience.

Development

arXivLabs: Experimental Projects with Community Collaboration

2025-06-18
arXivLabs: Experimental Projects with Community Collaboration

arXivLabs is a framework enabling collaborators to develop and share new arXiv features directly on the website. Individuals and organizations involved embrace arXiv's values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only partners with those who adhere to them. Have an idea to enhance the arXiv community? Learn more about arXivLabs.

Development

Dumping VAC Modules: A Deep Dive into Steam's Anti-Cheat

2025-06-18

This post details a reverse engineering journey into Valve's Anti-Cheat (VAC) system. The author meticulously analyzes the Steam service process (steamservice.dll), uncovering the intricacies of VAC module loading and execution. By modifying a specific instruction, the author forces VAC to use LoadLibrary for module loading, enabling the dumping of VAC modules. The process is explained step-by-step, including locating LoadLibraryW calls, tracing function call chains, and identifying temporary files. The successful dumping of VAC modules and the revelation of key functions within them lays the groundwork for further analysis of VAC's anti-cheat mechanisms.

Development

Automating C to Rust Porting with LLMs: A Surprisingly Effective Strategy

2025-06-18

This post details the author's experience automating the porting of C code to Rust using large language models (LLMs). After experimenting with several approaches, a strategy based on topological ordering and fuzz testing proved highly effective. Symbols in the C code were topologically sorted, then the LLM generated Rust versions of each symbol along with fuzz tests. Output comparison verified correctness. This successfully ported the Zopfli compression library from C to Rust with identical results. While not fully automated, this dramatically reduced cost and effort, offering a new approach to large codebase maintenance and upgrades.

(rjp.io)

S-expr: A Peculiar S-Expression Parser

2025-06-18
S-expr: A Peculiar S-Expression Parser

S-expr is an S-expression parsing library featuring unique extensions to S-expression syntax. It supports single-line and multi-line strings and comments, and introduces a novel concept called "transposed blocks." Transposed blocks allow code to be written with rows and columns swapped, enhancing readability for complex nested expressions. This design aims to balance the simplicity of S-expressions with improved code readability and expressiveness. While more complex than traditional Lisp, it prioritizes a balance between simplicity and usability.

Building Enterprise AI Agents with Flink SQL: Connecting LLMs to Internal Data

2025-06-18

This article explores building enterprise AI agents using Flink SQL, connecting Large Language Models (LLMs) with internal data and resources. For structured data, Flink SQL's SQL join semantics easily integrate external database data with LLM input. For unstructured data, the article proposes Retrieval-Augmented Generation (RAG), encoding data into vectors stored in a vector database, then querying and integrating via Flink SQL's vector type support. Using the example of summarizing research papers and incorporating internal research, the article demonstrates building an AI agent system with two Flink SQL jobs: one updates the vector store, the other queries and invokes the LLM. Finally, it mentions using Process Table Functions (PTFs) to integrate Anthropic's MCP standard for more flexible AI agent construction.

Development

Improving Knowledge Base Quality for RAG Systems: Best Practices for AI and Humans

2025-06-18
Improving Knowledge Base Quality for RAG Systems: Best Practices for AI and Humans

This guide outlines best practices for creating documentation that effectively serves both human readers and AI/LLMs in Retrieval-Augmented Generation (RAG) systems. High-quality documentation improves AI responses and user experience, creating a positive feedback loop. The article details how AI systems process documentation (retrieval, vector database, generation), highlighting the importance of clear, concise, and contextually complete content. Recommendations include using semantic HTML, avoiding PDFs, creating crawler-friendly content, ensuring semantic clarity, providing text equivalents for visuals, and maintaining simple layouts. The guide also addresses common content design challenges like contextual dependencies, semantic discoverability gaps, implicit knowledge assumptions, and visual information dependencies. It advocates for a hierarchical information architecture, self-contained sections, and providing error context with solutions. Ultimately, the goal is documentation that is both human-readable and AI-friendly.

Development AI documentation

ChatGPT: My Static Site Generator

2025-06-18
ChatGPT: My Static Site Generator

Tired of traditional static site generators, the author explored various options before settling on an unexpected solution: ChatGPT! Simply copy-pasting new and old blog posts into ChatGPT generates the HTML pages effortlessly, requiring no setup. While there's a risk of ChatGPT subtly altering the original text, the method's simplicity and speed are compelling—even this article was created this way. The author speculates on AI replacing traditional tools in more areas, such as documentation generators and command-line tools.

Development

DSC: A PyTorch-Compatible Tensor Library and Inference Framework

2025-06-18
DSC: A PyTorch-Compatible Tensor Library and Inference Framework

DSC is a PyTorch-compatible tensor library and inference framework for machine learning models. It boasts a C-compatible low-level API wrapped in a modern Python API similar to NumPy/PyTorch, with usability enhancements. Key features include an intuitive API, built-in neural network support, multiple backends (CPU and CUDA), minimal external dependencies, and no runtime allocations. Installation is straightforward, requiring only a C++20 compiler and GNU Make. CUDA acceleration is supported; simply set environment variables to enable it. Unit tests are run via pytest, ensuring correctness.

Development tensor library

arXivLabs: Experimenting with Community Collaboration

2025-06-18
arXivLabs: Experimenting with Community Collaboration

arXivLabs is a framework for collaborators to develop and share new arXiv features directly on the arXiv website. Individuals and organizations involved embrace arXiv's values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only partners with those who share them. Got an idea for a project that will benefit the arXiv community? Learn more about arXivLabs.

Development

Grokking NAT: Linux's Clever Workaround for IPv4 Exhaustion

2025-06-18

Imagine your home Wi-Fi network: all devices share the same public IP address. This is thanks to Network Address Translation (NAT). With limited IPv4 addresses, NAT cleverly maps private IPs to a single public IP on your router, letting multiple devices share a single public IP. This article dives into NAT's workings, exploring different types (Full Cone, Restricted Cone, Symmetric NAT) and its Linux implementation (using nftables), illustrated with a Docker example. While NAT temporarily solves IPv4 exhaustion, it introduces limitations like breaking end-to-end connectivity and complicating encryption. Ultimately, widespread IPv6 adoption is the true solution.

Development

Workout.cool: The Open-Source Fitness Platform Reborn

2025-06-18
Workout.cool: The Open-Source Fitness Platform Reborn

Workout.cool is a modern, open-source fitness coaching platform resurrected from the ashes of its predecessor, workout.lol. After the original project was abandoned due to video licensing issues, developer Snouzy took over and rebuilt it from the ground up, offering a comprehensive exercise database, progress tracking, and personalized workout plans. Built with Next.js App Router and Feature-Sliced Design, the project welcomes community contributions. It's a by-the-community, for-the-community project aiming to provide a reliable and maintainable platform for the open-source fitness community.

Development

A Programmer's Rejection of AI Coding Tools: Efficiency, Ethics, and Environment

2025-06-18

A seasoned programmer explains their refusal to use AI coding tools, not out of technological resistance, but from deep concerns about efficiency, ethics, and the environment. The author argues that the productivity gains of current AI tools are questionable and that they risk introducing more errors. Additionally, AI model training puts immense pressure on the environment, and its data sources raise ethical concerns, including intellectual property infringement. The author emphasizes the joy of "struggle and learning" in programming and the advantages of manually written code in terms of quality and maintainability. Ultimately, they choose to stick with traditional programming methods and call for stronger regulation of AI technology.

Development

Homomorphic Encryption and Local-First Software: A Trade-off?

2025-06-18
Homomorphic Encryption and Local-First Software: A Trade-off?

This article explores the challenges of using homomorphic encryption to protect private data in local-first software. While homomorphic encryption allows computation without decryption, it introduces significant performance and storage overheads. The author demonstrates the practical limitations of homomorphic encryption on CRDTs by building a homomorphically encrypted 'last-write-wins' register CRDT. The article highlights how homomorphic encryption requires operations under worst-case input assumptions, drastically increasing space and time complexity. Ultimately, the author concludes that securing local-first apps without severely degrading usability remains an open problem.

Development local-first software

A* Pathfinding Explained: From Breadth-First Search to Greedy Best-First Search

2025-06-18
A* Pathfinding Explained: From Breadth-First Search to Greedy Best-First Search

This article provides a clear explanation of the A* pathfinding algorithm. Starting with the simple Breadth-First Search (BFS), it progressively introduces Dijkstra's algorithm (handling varying movement costs), Greedy Best-First Search, and finally, the A* algorithm. Through diagrams and code examples, the article clearly shows the operation and advantages and disadvantages of different algorithms, discussing their applicability in different scenarios such as map pathfinding and game AI. A*, by incorporating a heuristic function, finds the shortest path while improving search efficiency, making it a popular pathfinding algorithm in many games.

Don't Mock What You Don't Own: A Better Way to Test Third-Party Dependencies

2025-06-18
Don't Mock What You Don't Own: A Better Way to Test Third-Party Dependencies

This article tackles a common problem in unit testing: handling third-party dependencies. Using a Docker repository client as an example, the author demonstrates the drawbacks of directly mocking third-party dependencies (like HTTP clients): tests become complex, brittle, and hard to understand. The proposed solution involves introducing a thin abstraction layer to decouple business logic from external dependencies, simplifying testing and improving code readability and maintainability. This approach not only leads to cleaner and more concise tests but also enhances the readability and maintainability of the business logic itself. While acknowledging exceptions, the author concludes that this principle helps write more elegant and maintainable tests in most cases.

List of Windows NT Native API Functions

2025-06-18

This list comprises numerous Windows NT native API functions, covering various aspects such as file systems, process management, thread management, security, and registry. These functions are core to low-level Windows operations, forming the foundation for higher-level application interfaces. Understanding them is crucial for system programmers and security researchers.

Development

Scrappy: Building Home-Grown Apps for Friends and Family

2025-06-18
Scrappy: Building Home-Grown Apps for Friends and Family

John and Pontus created Scrappy, a research prototype for making simple, personalized apps for yourself and your friends. It's a visual tool similar to Figma or Google Slides, but allows attaching behaviors to interactive objects. You drag and drop objects like buttons and text fields, and add JavaScript code to define their actions, like recording text input on a button click. Scrappy apps are multiplayer, with persistent and synced state, making collaboration with friends and family seamless. The goal is to democratize software creation, enabling more people to build apps tailored to their unique needs.

Microsoft's Open-Source CLI Text Editor: Edit – Lightweight, Fast, and VS Code-like

2025-06-18
Microsoft's Open-Source CLI Text Editor: Edit – Lightweight, Fast, and VS Code-like

Microsoft has released Edit, a lightweight, fast, and easy-to-use open-source command-line text editor. Designed with a user experience similar to VS Code, Edit aims to fill the gap in recent Windows versions which lack a built-in CLI text editor. While primarily targeted at Windows users, Edit also works on Linux and macOS. Its modeless editing, blazing-fast file opening, and minimalist feature set make it ideal for quick text edits. Though lacking advanced features like syntax highlighting, its speed and simplicity make it a compelling alternative.

Development

Incant: Add Magic Spells to Your Code

2025-06-18
Incant: Add Magic Spells to Your Code

Incant is a new library that allows developers to safely integrate language model invocations. It provides primitives like `createSelector` and `createFilter` for array operations such as picking the highest number or filtering male names. Incant reads API keys from environment variables, is easy to configure, and guarantees type safety, preventing hallucinations. However, be aware that all input data is sent to upstream inference providers, so avoid sending personal or sensitive information.

Development

Universal Rules Template for AI Coding Assistants: Supercharge Your Workflow

2025-06-18
Universal Rules Template for AI Coding Assistants: Supercharge Your Workflow

Tired of inconsistent AI behavior across different coding assistants? This template provides a robust, cross-platform framework to elevate your AI pair-programming experience. It leverages established software engineering principles and structured documentation to ensure consistent AI operation, deep project understanding, and optimal workflows across tools like Cursor, CLINE, RooCode, Windsurf, and GitHub Copilot. Move beyond simple prototypes and build sophisticated applications with AI partners that truly understand your project.

Development

lstr: Blazing Fast Directory Tree Viewer in Rust

2025-06-18
lstr: Blazing Fast Directory Tree Viewer in Rust

lstr is a blazingly fast, minimalist directory tree viewer written in Rust. Inspired by the `tree` command, lstr offers a powerful interactive mode alongside a classic view. It leverages parallel directory scanning for speed, features a clean and uncluttered interface, and provides options to display file icons, permissions, sizes, and Git status. Integration with `.gitignore`, depth control, and fuzzy finding (via fzf) are also supported. You can even integrate lstr into your shell as a visual `cd` command. Whether you prefer the classic tree-like view or the interactive TUI, lstr's efficiency and clean design will enhance your file management workflow.

Development directory tree

Rainy Day Project: A TinyBASIC to Go Compiler

2025-06-18

Over a rainy weekend, the author built a compiler that translates TinyBASIC code into Go. Leveraging Go's nex (lexer) and goyacc (parser), the project comprises three stages: lexical analysis, parsing, and code generation. The author details the grammar and code generation process, showcasing example programs and outputs. This fun, challenging project demonstrates the practical application of compiler principles.

Development

Plasma 6.4: Smoother, Friendlier, and More Powerful Desktop Experience

2025-06-17
Plasma 6.4: Smoother, Friendlier, and More Powerful Desktop Experience

KDE Plasma 6.4 is here, offering a smoother, friendlier, and more powerful desktop experience. Improvements span accessibility, color rendering, tablet support, window management, and more. Key features include customizable tile layouts per virtual desktop, an overhauled Spectacle screenshot tool, color visualization in KRunner, and enhanced support for digital artists and HDR displays. The update also refines notifications, widgets, and system monitoring. Plasma 6.4 focuses on creating a more convenient and efficient desktop environment.

Development

Faster bzip2 in Rust: Cross-Compilation Made Easy

2025-06-17
Faster bzip2 in Rust: Cross-Compilation Made Easy

The newly released bzip2 0.6.0 uses a Rust implementation (libbz2-rs-sys) by default, resulting in significant speed improvements for both compression and decompression, and simplified cross-compilation. This work addresses the continued reliance on bzip2 in many projects, with the Rust version offering solutions to longstanding compilation issues such as WebAssembly compilation and Windows/Android compatibility. Benchmark tests show that the Rust implementation generally outperforms the C implementation, and a Miri security audit ensures code reliability.

Development

Will LLMs End Programming? Lessons from Machine Translation

2025-06-17

The debate rages on: will large language models (LLMs) render programmers obsolete? This article uses machine translation as a compelling analogy. While tools like Google Translate have revolutionized translation, they haven't replaced human translators. Translation requires contextual understanding, ambiguity resolution, and cultural sensitivity—skills LLMs currently lack. Similarly, programming demands creativity and problem-solving abilities beyond the current capabilities of LLMs. The author suggests LLMs are best used as assistive tools to enhance programmer efficiency, not replace them entirely.

Development

The Grug Brained Developer: A Guide to Fighting Complexity

2025-06-17

This humorous guide to software development, written from the perspective of a "Grug" developer, offers practical strategies for combating complexity. Complexity is likened to a demonic force invading the codebase. The author advocates for saying "no" to unnecessary features and abstractions, emphasizing the 80/20 rule (delivering 80% of value with 20% of code). Key strategies include proper code factorization, strategic refactoring, effective testing, and tooling. The article is a witty and insightful read offering valuable lessons for developers of all levels.

Development Complexity
1 2 57 58 59 61 63 64 65 214 215