Category: Development

Why Debian Changes its Packages

2025-05-22

A year and a half ago, I wrote "Why is Debian the way it is?", prompting many questions about why Debian alters its software packages. This article outlines key reasons: adherence to Debian Policy Manual guidelines (e.g., system configuration and documentation locations); ensuring inter-program compatibility (e.g., Unix socket locations, user accounts); removing code that "phones home" or bypasses the Debian packaging system (for privacy and security); fixing or backporting bug fixes to improve user experience; avoiding inclusion of legally problematic code (according to Debian Free Software Guidelines); and adding missing manual pages. Essentially, these changes ensure system stability, security, and adherence to free software principles.

Development

Inigo Quilez's Computer Graphics Tutorial Goldmine

2025-05-22

Inigo Quilez, a veteran computer graphics expert, has been dedicated to learning and sharing his knowledge since 1994. His website offers a vast collection of computer graphics tutorials covering topics ranging from SDFs and ray marching to fractals and mathematical techniques. Tutorials feature concise code snippets and clear explanations, catering to various skill levels. He also provides video tutorials and other resources, and his code is MIT-licensed for easy reuse.

Development SDFs

DuckDB on a 2012 MacBook Pro: Did We Waste a Decade on Distributed Architectures?

2025-05-22
DuckDB on a 2012 MacBook Pro: Did We Waste a Decade on Distributed Architectures?

This article benchmarks DuckDB on a 2012 MacBook Pro to investigate whether the speed of hardware innovation has outpaced data growth, making distributed architectures unnecessary. The results show the decade-old laptop can complete complex analytical SQL queries, albeit slower than modern machines, but within reasonable timeframes. This leads to a reflection on the past decade's focus on distributed data analytics, suggesting single-node database technology was capable of handling large datasets back then, questioning the necessity of the shift towards distributed systems.

Development

Experimental Kotlin Language Server for VS Code

2025-05-22
Experimental Kotlin Language Server for VS Code

A pre-alpha, official Kotlin Language Server is now available for Visual Studio Code, implementing the Language Server Protocol for Kotlin. Built upon IntelliJ IDEA and its Kotlin plugin, this server supports most essential features but is experimental and lacks stability guarantees. Currently, only JVM-only Kotlin Gradle projects are supported out-of-the-box. Parts of the implementation are currently closed-source for faster development, with plans for full open-sourcing later. While easily installable as a VS Code extension, other editors require manual configuration. Users are encouraged to try it and provide feedback, but direct code contributions are not yet supported.

Development

From Rejection to Acceptance: The Power of Page One

2025-05-22
From Rejection to Acceptance: The Power of Page One

A paper initially rejected was dramatically revised, resulting in acceptance. The author meticulously details the changes, focusing on the crucial first page (title, abstract, Figure 1, introduction). By making the title specific and memorable, Figure 1 visually compelling, and the abstract and introduction concise and engaging, the author improved the paper's impact. Further revisions included adding baselines, ablations, and ensuring statistical significance, addressing potential reasons for rejection. The author concludes that improving communication significantly enhances scientific impact.

Finding Info in Emails with LLMs and an MCP Server

2025-05-22

The author built an MCP server to give a Large Language Model (LLM) read-only access to their emails. Through a conversation with Gemini (an LLM), the author demonstrates how simple search and retrieval tools can be used to find Donovan's son's name within emails. While Gemini's initial search strategy employed multiple keywords (like "son," "boy," "baby"), most led to Donovan's relatives. Ultimately, Gemini identified clues from initial search results, analyzing email subject lines and content, successfully pinpointing the son's name as Monty. The process highlights the power of LLMs combined with specific tools for information retrieval, and underscores the importance of precise search strategies.

Development

Pure JS CSV to Searchable HTML Table

2025-05-22
Pure JS CSV to Searchable HTML Table

Tired of wrestling with CSV data? This pure JavaScript project transforms your CSV files into beautiful, searchable, and filterable HTML tables. With minimal code, visualize your data, customize formatting, enable downloads, and embed the table seamlessly. Check out the demo and simplify your data handling today!

Development

Legacy Code Adventures: A COBOL Odyssey

2025-05-22

Maintaining 200k lines of COBOL code unearthed a treasure trove of ingenious hacks and historical quirks. The author discovered base-10 numerics, clever string parsing using data definitions, and a 'REDEFINES' statement used for internationalization (even with Spanish redefinitions!). Early exits were implemented for abrupt job termination, and a file mysteriously contained the first 800 natural numbers as string constants. The story concludes with the revelation that the UNIX 'dd' command originates from COBOL's 'DD' statement for data definition, showcasing the unexpected legacy of mainframe programming.

Development legacy code

arXivLabs: Community Collaboration on arXiv Features

2025-05-21
arXivLabs: Community Collaboration on arXiv Features

arXivLabs is a framework enabling collaborators to develop and share new arXiv features directly on the website. Participants must embrace arXiv's values of openness, community, excellence, and user data privacy. Got an idea to enhance the arXiv community? Learn more about arXivLabs.

Development

iText Core Table Rendering Optimization: From 5 Minutes to 7 Seconds

2025-05-21
iText Core Table Rendering Optimization: From 5 Minutes to 7 Seconds

Apryse engineer Guust optimized iText Core's table rendering performance. By avoiding repeated border collapse calculations and unnecessary tagging overhead, rendering time for a 50,000-cell table dropped from 5 minutes to 7 seconds. Optimizations focused on the `CollapsedTableBorders#getVerticalBorder` function and tag processing, significantly improving performance through caching, removing redundant function calls, and adding tags in bulk. This optimization is included in iText Core 9.1.0.

Development PDF rendering

Rocky Linux 10 Embraces RISC-V: A Giant Leap for Open Source

2025-05-21

Get ready for Rocky Linux 10! This release marks a significant milestone: official support for the RISC-V architecture. Thanks to the collaborative efforts of the Fedora RISC-V community and Rocky's AltArch SIG, a riscv64gc build will be included, targeting platforms like the StarFive VisionFive 2, QEMU, and SiFive HiFive Premier P550. While some features might be limited on certain platforms like the P550, out-of-the-box functionality on the VisionFive 2 and QEMU is a highlight. This community-driven initiative, started in early 2024, showcases the power of open-source collaboration with upstream Fedora RISC-V efforts.

Development

ACE-RISCV: Open-Source Confidential Computing Framework for RISC-V

2025-05-21
ACE-RISCV: Open-Source Confidential Computing Framework for RISC-V

ACE-RISCV is an open-source project delivering a confidential computing framework with a formally verified security monitor. Targeting RISC-V with portability in mind, it focuses on formal verification of the security monitor's implementation. The project supports local attestation and utilizes Post-Quantum Cryptography (PQC) including ML-KEM, SHA-384, and AES-GCM-256. Detailed build and run instructions are provided for a 64-bit RISC-V architecture.

Development

P vs. PSPACE: Is Space Computationally More Powerful Than Time?

2025-05-21
P vs. PSPACE: Is Space Computationally More Powerful Than Time?

A central question in complexity theory is the relationship between the complexity classes P and PSPACE. P encompasses problems solvable in reasonable time, while PSPACE deals with space complexity. The prevailing belief is that PSPACE is larger than P, due to space's reusability unlike time. Proving this requires demonstrating problems in PSPACE unsolvable in polynomial time. The article recounts the 1975 breakthrough by Hopcroft, Paul, and Valiant, showing space's slight advantage over time, but progress stalled. Ryan Williams' work finally broke the deadlock, offering fresh insights into resolving the P vs. PSPACE problem.

Development

Appwrite Sites: One-Stop Website Deployment and Hosting

2025-05-21
Appwrite Sites: One-Stop Website Deployment and Hosting

Appwrite launches Sites, a new product allowing you to deploy and host websites and web apps directly within Appwrite. No more juggling multiple platforms and configurations; simply build, deploy, and go live. Sites supports static sites and SSR apps, integrating Git, a global CDN, DDoS protection, and seamlessly integrating with Appwrite's databases, functions, storage, and authentication services. Several one-click deployable templates are available, with self-hosting also supported. Appwrite Sites is free until July 1st, 2025.

Development Website Deployment

Google AI Studio: Supercharged AI App Development with Gemini 2.5 Pro

2025-05-21
Google AI Studio: Supercharged AI App Development with Gemini 2.5 Pro

Google AI Studio received a major update, integrating the Gemini 2.5 Pro model for significantly enhanced code generation. Developers can quickly build and deploy AI-powered web apps using simple text, image, or video prompts. The new version also incorporates multimodal models like Imagen, Lyria RealTime, and Veo, offering one-click deployment to Cloud Run, and convenient code version comparison and rollback. Plus, new native audio support and a URL Context tool enhance interactivity and information retrieval.

Development

Go Scheduler: From Humble Beginnings to a Powerful Engine

2025-05-21
Go Scheduler: From Humble Beginnings to a Powerful Engine

This blog post delves into the evolution of Go's scheduler, tracing its journey from an inefficient single global run queue to the highly performant GMP model (Goroutine, Machine, Processor). It details the roles and mechanisms of each component in the GMP model, including goroutine creation, preemption, system call handling, and the role of netpoll in network and file I/O. Cooperative and non-cooperative preemption mechanisms are explained. By dissecting the Go runtime source code, readers gain a deeper understanding of Go's concurrency model, enabling them to write more efficient concurrent programs.

Development Scheduler

Shopify's Storefront Web Components: Easy Ecommerce Integration

2025-05-21
Shopify's Storefront Web Components: Easy Ecommerce Integration

Shopify has released Storefront Web Components, a set of HTML components that simplify integrating Shopify's e-commerce capabilities into any website. Display products, collections, and checkout with minimal HTML. These components handle the complexities of interacting with the Shopify Storefront API, eliminating the need for complex JavaScript. Create tailored shopping experiences with CSS and HTML, suitable for embedding within existing content or building entirely new pages.

Development Ecommerce Integration

LlamaDev: LlamaIndex's New Monorepo Management Tool

2025-05-21
LlamaDev: LlamaIndex's New Monorepo Management Tool

Maintaining LlamaIndex's monorepo of 650+ Python packages presented significant challenges. Initially using Poetry for individual projects and Pants for orchestration, scaling issues arose with build speed and cache server maintenance. To address this, the LlamaIndex team built LlamaDev, replacing Poetry with uv and handling dependency graphs and test triggering internally. LlamaDev drastically improves build speed, simplifies debugging, and enhances the developer experience, making it easier for contributors to join the project.

Development

Langfuse Launches Customizable Dashboards: Unleashing the Power of LLM Usage Data

2025-05-21
Langfuse Launches Customizable Dashboards: Unleashing the Power of LLM Usage Data

On Day 3 of Langfuse's launch, they introduced customizable dashboards: a powerful way to visualize LLM usage directly within the Langfuse UI. Whether you want to track latency trends, monitor user feedback, or correlate cost with performance, the new dashboards let you build the charts you need, right where you need them. For those preferring their own analytics stack, the same querying capabilities are available via their API. This post details the journey from product ideation to technical implementation, testing, and rollout, sharing lessons learned in building flexible, real-time insights into your LLM pipelines. By abstracting the data model, building a flexible and performant query engine and dashboard builder, Langfuse successfully delivered customizable dashboards, iterating through beta testing and user feedback to add more chart components, resizable widgets, improved tooling, and even Langfuse-managed dashboards offering valuable pre-built themes.

Development Dashboards

arXivLabs: Experimenting with Community Collaboration

2025-05-21
arXivLabs: Experimenting with Community Collaboration

arXivLabs is a framework for collaborating on new arXiv features, directly on the website. Individuals and organizations participating must share arXiv's values of openness, community, excellence, and user data privacy. Got an idea to improve the arXiv community? Learn more about arXivLabs.

Development

Visualizing Chromium's Include Graph: A 150MB GraphML Adventure

2025-05-21
Visualizing Chromium's Include Graph: A 150MB GraphML Adventure

This post details visualizing Chromium's massive include graph using clang-include-graph, a command-line tool. The process involved building Chromium to generate compile_commands.json, then using clang-include-graph to produce a 150MB GraphML file. This file, containing over 140,000 nodes and 1.3 million edges, was visualized with Gephi. Python scripts analyzed the graph, revealing interesting statistics like a 92-node strongly connected component responsible for 99% of the cycles. The author explores various visualization layouts and discusses the challenges of working with such a large dataset.

Development

LLM Function Calls Don't Scale: Code Orchestration Is Simpler, More Effective

2025-05-21
LLM Function Calls Don't Scale: Code Orchestration Is Simpler, More Effective

Feeding the full output of tool calls back into LLMs is costly and slow. This article argues that output schemas, enabling structured data retrieval, allow LLMs to orchestrate processing via generated code – a simpler and more effective approach. Traditional methods, where tool outputs are fed back to the LLM as messages for next-step determination, work well with small datasets but fail with real-world scale (e.g., large JSON blobs from Linear and Intercom MCP servers). The article proposes code execution as a fundamental data processing method, using variables as memory, and code to orchestrate multiple function calls for scalable data processing, overcoming the cost, speed, and potential data loss issues of LLMs handling large datasets. This necessitates secure, stateless AI runtime environments, currently in early development.

Development Code Orchestration

Devstral: Open-Source LLM Outperforms GPT-4.1-mini on Software Engineering Benchmark

2025-05-21
Devstral: Open-Source LLM Outperforms GPT-4.1-mini on Software Engineering Benchmark

Mistral AI and All Hands AI have collaborated to release Devstral, an agentic large language model (LLM) for software engineering tasks. Devstral excels on the SWE-Bench Verified benchmark, achieving a score exceeding 46.8%, more than 6% higher than previous open-source models and even surpassing GPT-4.1-mini. It tackles complex software engineering problems, such as understanding contextual relationships within large codebases and identifying subtle bugs. Devstral is lightweight, running on a single RTX 4090 or a Mac with 32GB RAM, and supports local deployment, enterprise use, and Copilot integration. The model is open-source and available via API and various download options.

Development

Collaborative Text Editing Without CRDTs or OT

2025-05-21

This blog post presents a novel approach to collaborative text editing that avoids the complexities of Conflict-free Replicated Data Types (CRDTs) and Operational Transformation (OT). The core idea is to assign globally unique IDs to each character and use "insert after" operations. The server updates its state literally based on these operations, while clients employ server reconciliation for optimistic local updates. This approach is simpler and more flexible than CRDT/OT, allowing for customized operations and features like handling rich text and access controls. An accompanying npm library, Articulated, aids in implementation.

Development collaborative editing

Windows 11's Cross-Device Resume: Say Goodbye to Interrupted Experiences

2025-05-21
Windows 11's Cross-Device Resume: Say Goodbye to Interrupted Experiences

Microsoft showcased a new cross-device resume feature for Windows 11 at Build 2025, similar to Apple's Handoff. This allows developers to seamlessly continue app usage across devices. A demo featured Spotify, letting users resume a song on their Windows PC from where they left off on their phone. WhatsApp was also shown. This feature, seemingly a successor to Project Rome, promises smoother cross-device experiences and increased app discoverability on Windows for third-party developers.

Development Cross-Device Resume

Ruby Blocks, Procs, and Lambdas: Subtle Differences in Closures

2025-05-21
Ruby Blocks, Procs, and Lambdas: Subtle Differences in Closures

This article delves into the differences between blocks, procs, and lambdas in Ruby. While all group code for execution, they differ subtly: Procs are objects, assignable and callable with methods, unlike blocks which are solely part of method call syntax; a method call allows at most one block but multiple procs; lambdas check argument counts, procs don't; and lambdas and procs handle the `return` keyword differently. The article also explains closures, the origins of the names 'proc' and 'lambda', and touches upon lambda calculus and anonymous functions.

Development

Link-Time Optimization (LTO): The Next Level of Compiler Optimization?

2025-05-21
Link-Time Optimization (LTO): The Next Level of Compiler Optimization?

This article explores Link-Time Optimization (LTO), a technique that enhances program performance by performing optimizations during the linking stage. Traditional compilers optimize within individual files, while LTO allows for more comprehensive cross-file optimizations, such as function inlining and improved code locality. While LTO can yield significant performance improvements (e.g., a 9.2% reduction in runtime and a 20% decrease in binary size in the ProjectX project test), it also requires longer compilation and linking times and more memory. The author compares experiments on ProjectX and ffmpeg to illustrate the advantages and disadvantages of LTO and suggests trying LTO on projects not aggressively optimized for speed, concluding that ultimate performance gains depend on the specific project.

evolved.lua: A Fast and Flexible ECS Library for Lua

2025-05-21
evolved.lua: A Fast and Flexible ECS Library for Lua

evolved.lua is a fast and flexible Entity-Component-System (ECS) library for Lua. It uses an archetype-based approach for storing entities and components, employing a Structure of Arrays (SoA) for efficient iteration and processing. The library supports queries, deferred operations, batch operations, and features like an entity builder for streamlined complex system creation. Install via luarocks or clone the repository; documentation includes an overview, examples, and a cheat sheet.

Development

Lune: A Standalone Luau Runtime

2025-05-21
Lune: A Standalone Luau Runtime

Lune is a standalone Luau runtime written in Rust, providing an environment similar to Node.js, Deno, or Bun for other languages. It features fully asynchronous APIs, a small footprint (approx. 5MB zipped), and comprehensive support for filesystem, networking, and standard I/O. It boasts world-class documentation and offers a familiar runtime environment for Roblox developers, including a 1:1 task scheduler port. An optional library for manipulating Roblox place & model files and their instances is also included. While it can run some Roblox games, Lune's primary focus isn't full Roblox compatibility, but rather a performant, concise Luau development environment.

Development

arXivLabs: Experimenting with Community Collaboration

2025-05-21
arXivLabs: Experimenting with Community Collaboration

arXivLabs is a platform enabling collaborators to develop and share new arXiv features directly on the website. Participants, both individuals and organizations, 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. Have an idea to enhance the arXiv community? Learn more about arXivLabs.

Development
1 2 80 81 82 84 86 87 88 214 215