Category: Development

High-Performance BitTorrent Tracker in Elixir: ExTracker

2025-06-20
High-Performance BitTorrent Tracker in Elixir: ExTracker

ExTracker is a high-performance BitTorrent tracker written in Elixir. It boasts low memory usage, zero configuration, and utilizes all available cores. Currently featuring HTTPS support and database backups, it offers three deployment methods: source code, pre-built releases, and a Docker image. A test instance is already running with live statistics, though the project is still a work in progress. Future plans include features like whitelisting/blacklisting, enhanced peer management, and GeoIP support.

Development

Glaze: C++ String Interpolation with Stencil & Mustache

2025-06-19

Glaze provides a powerful C++ library for string interpolation using Stencil and Mustache templates. It allows easy formatting of structured data from C++ structs into strings. Features include variable interpolation, boolean conditional sections, container iteration, nested sections, and Mustache-style HTML escaping. Error handling and automatic numbering with `glz::stencilcount` are also included. This simplifies the generation of dynamic output, such as HTML documents or formatted text, using a concise template syntax.

Development templating engine

Literate Programming: Making Code More Readable

2025-06-19
Literate Programming: Making Code More Readable

Literate programming, a paradigm invented by Donald Knuth, prioritizes code readability for humans over immediate machine execution. This allows programmers to develop programs in a more natural, thought-driven order. Literate programs interweave natural language explanations with code snippets, enhancing understanding and collaboration. The Literate tool, described here, aims to simplify and extend Knuth and Levy's original CWEB system. It supports multiple languages, syntax highlighting, pretty-printing to HTML, Markdown-based authoring, and offers a command-line interface for compiling code and generating HTML documentation. The project is open-source and welcomes contributions.

Development Literate Programming

arXivLabs: Experimenting with Community Collaboration

2025-06-19
arXivLabs: Experimenting with Community Collaboration

arXivLabs is a framework enabling collaborators to develop and share new arXiv features directly on our website. Individuals and organizations working with arXivLabs uphold our 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 for a project that will benefit the arXiv community? Learn more about arXivLabs.

Development

Testing Robust Netcode in Godot: A Tale of Latency and Packet Loss

2025-06-19
Testing Robust Netcode in Godot: A Tale of Latency and Packet Loss

Developing the online multiplayer aspect of Little Brats! presented a significant challenge: synchronizing computers with varying latency while maintaining fast-paced gameplay. This post details the author's journey, focusing on lag compensation, prediction/reconciliation techniques, and robust testing methodologies. Using Godot's ENetMultiplayerPeer class and the Linux `tc` command for simulated network conditions (latency and packet loss), the author compares the performance of reliable and unreliable network modes, providing insightful graphs and conclusions. The process highlights the complexities of building a stable online game and offers practical advice for developers.

Beyond the '10x Engineer' Myth: Building Great Teams, Not Superstars

2025-06-19
Beyond the '10x Engineer' Myth: Building Great Teams, Not Superstars

This article debunks the '10x engineer' myth, arguing that single metrics for measuring engineer productivity are unreliable and that teams, not individuals, are key to software delivery. The author advocates for building systems that empower average engineers to achieve peak performance. This involves shortening release cycles, simplifying rollback processes, emphasizing observability, investing in internal tooling, and fostering an inclusive team culture. The ultimate goal is to boost overall team efficiency rather than relying on individual heroes, thus enabling sustainable business growth.

Development

EnrichMCP: The ORM for AI Agents

2025-06-19
EnrichMCP: The ORM for AI Agents

EnrichMCP is a Python framework that empowers AI agents to understand and interact with your data like an ORM. Built on the Model Context Protocol (MCP), it adds a semantic layer transforming your data models into typed, discoverable tools. It supports SQLAlchemy models, REST APIs, and custom logic, automatically generating typed tools, handling relationships, providing schema discovery, and validating with Pydantic. AI agents can explore data models, query data, and navigate relationships as naturally as developers using an ORM.

Development

Homegrown Lexical Closures in a Lisp-like uxn Environment

2025-06-19

The author describes niënor, a Lisp-like environment for the uxn virtual machine, focusing on its innovative approach to implementing lexically scoped closures. Instead of the complex approach of copying functions and replacing unbound variables at runtime, niënor cleverly adds environment variables as parameters to lambda functions at compile time. At runtime, a wrapper function (portal) is generated to pass these environment variables. This avoids runtime code generation and complex address calculations, providing an efficient and elegant solution for closures. The system also includes `malloc` and `free` for dynamic memory management of these closures.

Development

Public/Protected/Private: A Redundant OOP Feature?

2025-06-19

This article challenges the necessity of access modifiers (public, protected, private) in object-oriented programming. The author argues that interfaces and inheritance combined can achieve the same functionality without the need for an extra mechanism. The existence of access modifiers might stem from an oversight in the design of Simula, leading to redundant functionality. For cleaner code, the author suggests avoiding access modifiers and advocates for composition over inheritance.

Development Access Modifiers

Programming Agents: A New Way to Measure Developer Experience

2025-06-19
Programming Agents: A New Way to Measure Developer Experience

A 24-hour coding sprint highlighted the poor developer experience caused by inadequate tools and processes, including missing documentation and flawed APIs. However, programming agents offer a solution. The author used agents to objectively evaluate different languages and tools, quantifying developer experience factors such as test coverage, error reporting quality, and ecosystem stability. Agent feedback closely mirrored human developer experiences, offering a new approach to improving code quality and development workflows.

Development

Gemini: Revolutionizing Election Result Data Extraction

2025-06-19

OpenElections has long struggled with converting image PDFs of election results into CSV files. Traditional data entry and OCR software proved inefficient and costly. The author discovered Google's Gemini large language model offers a highly effective solution. Gemini handles large, multi-page PDFs, accurately recognizing text even in complex images with markings or shading. While Gemini requires batch processing for extremely large files, its accuracy and efficiency far surpass traditional methods, significantly accelerating OpenElections' data processing speed.

Development

Kubernetes at 10: Reflections and a Vision for the Future

2025-06-19

This article reflects on the ten-year journey of Kubernetes, from its origins as Google's internal Borg system to its current status as a cornerstone of the cloud-native era. The author praises its successes in container orchestration, infrastructure management, and job scheduling, but also highlights shortcomings: YAML's limitations, etcd dependency, and Helm's package manager deficiencies. Proposals for Kubernetes 2.0 include replacing YAML with HCL, supporting alternative backends to etcd, and creating a native package manager for improved usability and security. Further suggestions involve defaulting to IPv6 and built-in IPSec for simplified network topology.

Marginalia Search Engine Upgrades: Online Status and Ownership Change Detection

2025-06-19

The Marginalia Search Engine team implemented a new system, 'ping-process,' to detect server online status and significant website changes, including ownership transfers and parking. Primarily using HTTP HEAD requests and DNS queries, the system analyzes certificate details, security posture, and server headers to identify changes. Data is stored in 'snapshot' and 'event' tables, the former holding current information and the latter historical events. The system overcame scheduling and certificate validation challenges, showing early success in identifying parked domains. Future plans include refining the ownership change detection model and integrating it into crawler strategies for improved efficiency.

RoureXOS 2.0: A Lightweight OS Rewritten in Rust

2025-06-19
RoureXOS 2.0: A Lightweight OS Rewritten in Rust

The RoureXOS operating system has been rewritten in Rust for its second iteration. This lightweight OS can run in the QEMU emulator (using the provided ISO image) and on x86_64 bare metal (booting from USB). Detailed instructions cover dependency installation, kernel compilation, ISO image creation, QEMU emulation, and even networking using SLIP. The clear steps make it easy to experience this new OS.

Development

Painting Worlds with Raymarching: A GLSL Shader Journey

2025-06-19
Painting Worlds with Raymarching: A GLSL Shader Journey

This article details creating 3D scenes using Raymarching and GLSL shaders. Starting with fundamental concepts like ray marching and signed distance functions (SDFs), it guides you through building simple shapes and combining them using SDF operators (like min and smoothmin) to create complex scenes. Advanced topics covered include lighting models, soft shadows, creating infinitely repeating scenes, and generating realistic terrains using noise derivatives. The author culminates with a stunning example of an infinite Martian landscape, sharing their creative process and insights.

Development

OpenAPI: Revolutionizing API Development

2025-06-19
OpenAPI: Revolutionizing API Development

In software development, efficient application building, maintenance, and integration are paramount. The OpenAPI Specification (OAS), a universal language for describing RESTful APIs, is key to achieving this efficiency. It provides a detailed blueprint for your API, encompassing endpoints, request and response formats, and authentication methods. Benefits of OAS include: improved team collaboration, automation (e.g., auto-generating client SDKs and server stubs, interactive documentation, and automated testing), enhanced developer experience, fostering a thriving partner ecosystem, and driving an API-first development culture. Creating an OAS can be done manually, via code-first generation, or with AI assistance, each with its own pros and cons. OpenAPI and Swagger are distinct: OpenAPI is the specification itself, while Swagger is a toolset built around the OpenAPI Specification. Adopting OpenAPI is a strategic imperative for any organization building robust, scalable applications.

Development

Strudel: Code Your Music

2025-06-19
Strudel: Code Your Music

Strudel is a JavaScript-based music programming environment that brings the Tidal Cycles pattern language to JavaScript. Even without prior knowledge of JavaScript or Tidal Cycles, you can easily create dynamic music pieces. Strudel supports live coding music, algorithmic composition, and integration with your existing music setup. Tutorials and example code get you started quickly, allowing you to create stunning musical works.

Development music programming

Real-time Claude Code Token Usage Monitor: Track and Predict Your Consumption

2025-06-19
Real-time Claude Code Token Usage Monitor: Track and Predict Your Consumption

This terminal monitoring tool, Claude Code Usage Monitor, provides real-time tracking of your Claude AI token usage. It features visual progress bars for tokens and time remaining, burn rate calculations, and predictions of when you'll run out of tokens. Supporting Pro, Max5, Max20, and custom max plans, it automatically switches to custom_max when Pro limits are exceeded and includes alerts and customizable reset times. The clean interface enhances user experience.

Development

Open Source Maintainer Revolt: libxml2's Sole Maintainer No Longer Prioritizes Security Issues

2025-06-19

The sole maintainer of libxml2 has announced they will no longer treat security issues differently from bugs, sparking debate within the open-source community. The author argues this reflects growing discontent among maintainers regarding corporate exploitation of open-source software. A distinction is drawn between personal, cooperative open source (e.g., Debian, BSD) and corporate use of open source for profit. The author predicts a future where the open-source community increasingly emphasizes this distinction, potentially altering interactions with corporations.

Development community maintenance

Rediscovering the Joy of Programming Through Toy Projects

2025-06-19

The author believes that creation is key to understanding. Instead of avoiding reinventing the wheel, build your own—it teaches you more than any book. In today's increasingly commodified software development landscape, the author advocates for building simple 'toy projects' to rediscover the joy of programming. The article lists numerous toy projects, such as a regex engine, an x86 OS kernel, and game emulators, rated by difficulty and time commitment, encouraging readers to try them and learn.

Development

Zed Editor Launches Powerful New Debugger

2025-06-19
Zed Editor Launches Powerful New Debugger

The Zed editor team announced the release of its highly anticipated debugger, supporting popular languages like Rust, C/C++, JavaScript, Go, and Python. Designed to be fast, familiar, and configurable, the debugger leverages the Debug Adapter Protocol (DAP) and an innovative locator system for automatic debug session configuration. Its architecture, split into data and UI layers, ensures efficiency and scalability, laying the groundwork for future collaborative debugging. Furthermore, it features out-of-the-box inline variable values using Tree-sitter and supports keyboard-driven debugging.

Development

Escaping the Nightmare of Pasted Text: WYSINWLB

2025-06-19

The author encountered the frustrating task of manually untangling nested `` and `

` tags from pasted content. The formatting was a mess, machine-generated for appearance rather than semantic correctness, rendering the text nearly uneditable. The author argues this poor editing experience would cause average users to give up, coining the term "WYSINWLB: What You See Is Not What Lies Beneath" to highlight the problem of pasted text's deceptive simplicity.

Development text editing

Bridging Elixir and Go Backends with a Crystal Wrapper

2025-06-19
Bridging Elixir and Go Backends with a Crystal Wrapper

The Mozi team needed to connect a new Elixir Phoenix LiveView app to an existing Go backend. They explored NIFs and Ports, but ultimately chose Erlang's C Node approach, using Crystal to write a C wrapper for improved maintainability. This decouples the codebases at compile and runtime, leveraging `Node.list` in Elixir to detect C node connectivity and S6 for in-container restarts. While there's a performance penalty crossing the C/Go boundary, it's acceptable for their use case. The result is a slick three-language (Elixir, Crystal, Go) mashup that enhances maintainability.

Development

Model Context Protocol (MCP) Update: Enhanced Security and Functionality

2025-06-19

The Model Context Protocol (MCP) has released a new version with key updates including: removal of support for JSON-RPC batching; addition of support for structured tool output; classification of MCP servers as OAuth Resource Servers with added protected resource metadata to discover the corresponding Authorization server; requiring MCP clients to implement Resource Indicators as described in RFC 8707 to prevent malicious servers from obtaining access tokens; clarification of security considerations and best practices in the authorization spec and a new security best practices page; addition of support for elicitation, enabling servers to request additional information from users during interactions; addition of support for resource links in tool call results; requiring the negotiated protocol version to be specified via MCP-Protocol-Version header in subsequent requests when using HTTP; changing SHOULD to MUST in Lifecycle Operation; and other schema changes such as adding a _meta field to additional interface types, adding a context field to CompletionRequest, and adding a title field for human-friendly display names. The full changelog is available on GitHub.

Development Protocol Update

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
1 2 46 47 48 50 52 53 54 203 204