Category: 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

Bridging Formal and Informal: DSL Design in the Age of LLMs

2025-06-17

This post explores a novel direction at the intersection of DSLs and LLMs: designing DSLs that integrate seamlessly with LLM-based coding workflows. The author details their experience using LLMs to generate scripts, finding that LLMs excel at creating 'glue code' – filling in the boilerplate based on natural language descriptions, while leaving the complex logic to manual coding. This experience prompts a key question: how can we incorporate this LLM-assisted workflow into DSLs themselves? The ultimate goal is to bridge the gap between formal code and informal natural language specifications, potentially by automatically generating natural language specs based on DSL type analysis.

Development

Xlibre: A Modern Xorg Fork Challenges Wayland's Dominance

2025-06-17

Wayland, touted as a modern replacement for Xorg, faces criticism for its incomplete functionality and forceful adoption. It struggles in crucial areas like remote desktop, custom keyboard bindings, and legacy software support. This raises concerns within the open-source community as Wayland's shortcomings impact user experience, especially for those with disabilities. In response, Xlibre, a fork of Xorg, aims to modernize Xorg and provide a complete and stable alternative. Xlibre offers a glimmer of hope for the Linux desktop, but its success in challenging Wayland remains to be seen.

Development

I Set Up a BitTorrent Tracker and This Happened...

2025-06-17

Noticing many BitTorrent trackers were dead, the author had a curious idea: buy a defunct domain, set up a tracker, and see what happens. The result? Millions of peers flooded in! This highlighted the centralized risks of the BitTorrent protocol and the legal gray area of trackers regarding copyright. While the tracker itself might not constitute 'inducement' to infringe, the author shut it down out of caution.

Development tracker

COSIG: Open-Source Guides for Post-Publication Peer Review

2025-06-17

COSIG is an open-source project offering a collection of guides created by publication integrity experts. These guides empower anyone to participate in post-publication peer review, even without specialized knowledge. Currently hosting 28 guides categorized by field (biology, materials science, computer science, etc.), COSIG provides resources for identifying image manipulation, analyzing data, verifying citations, and more. Become a steward of scientific literature with COSIG.

(osf.io)
Development scientific literature

arXivLabs: Experimental Projects with Community Collaborators

2025-06-17
arXivLabs: Experimental Projects with Community Collaborators

arXivLabs is a framework that lets collaborators develop and share new arXiv features directly on the website. Individuals and organizations working with arXivLabs uphold 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. Have an idea to enhance the arXiv community? Learn more about arXivLabs.

Development
1 2 47 48 49 51 53 54 55 203 204