Category: Development

arXivLabs: Experimenting with Community Collaboration

2025-08-20
arXivLabs: Experimenting with Community Collaboration

arXivLabs is a framework for collaborators to develop and share new arXiv features directly on the site. Individuals and organizations working with arXivLabs embrace our 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

Ship Faster, Better: Parallel AI-Assisted Development with Claude Code

2025-08-20
Ship Faster, Better: Parallel AI-Assisted Development with Claude Code

Claude Code PM revolutionizes software development by combining spec-driven development, GitHub Issues, Git worktrees, and multiple parallel AI agents. It tackles common team collaboration woes: context switching, merge conflicts, requirements drift, and invisible progress. The system transforms PRDs into epics, epics into GitHub issues, and issues into production code with full traceability. Multiple Claude instances work concurrently, enabling true team collaboration and seamless human-AI handoffs. The result? Increased speed, fewer bugs, and a dramatically improved workflow.

Tidewave Web: In-Browser AI Coding Agent for Rails & Phoenix

2025-08-20

Dashbit introduces Tidewave Web, an AI coding agent running directly in the browser alongside your Rails and Phoenix web applications. It boasts full page and code context awareness, eliminating the constant switching between tools. Tidewave directly accesses your UI state, executes code, queries databases, monitors logs, and more. Users suggest improvements via a point-and-click inspector, and Tidewave automatically builds features and tests them in the browser. Currently supporting Rails and Phoenix, future support for React, Django, and other frameworks is planned. Tidewave changes the traditional AI coding paradigm by creating a shared context between the developer, agent, and web app, boosting development efficiency.

Development Web development

Against Custom Lisp REPLs: Embrace Native REPLs and Practical Tools

2025-08-20

The author lambasts custom Lisp REPLs (like CIEL), arguing they sacrifice the power and customizability of native REPLs, such as REPL-native commands, implementation debuggers, and the ability to customize using implementation APIs. The article details enhancing native REPLs with tools like the Trivial Toplevel library and rlwrap, covering custom prompts, commands, reader macros, and dependency management with ASDF. The author advocates using native REPLs coupled with practical tools for a highly efficient and personalized Lisp development environment, rather than relying on "batteries-included" custom REPLs.

Development

BusyBee: Blazing-Fast Background Job Processing for .NET

2025-08-20
BusyBee: Blazing-Fast Background Job Processing for .NET

BusyBee is a high-performance .NET background job processing library built on native channels. It offers a simple, configurable, and observable solution for handling background tasks, boasting built-in OpenTelemetry support and flexible queue management. Features include unbounded or bounded queues with various overflow strategies, configurable timeouts, parallel processing, comprehensive logging, and rich job context information. OpenTelemetry integration allows for robust monitoring and analysis. Error and timeout handling is also supported via custom handlers.

Development background processing

Building the Simplest Semantic Layer with YAML and Python

2025-08-20
Building the Simplest Semantic Layer with YAML and Python

This article demonstrates building a minimal semantic layer using a YAML file and a Python script, querying 20 million NYC taxi records to illustrate its value. It clarifies when a semantic layer is truly beneficial and when it's overkill. The piece contrasts semantic layers with traditional databases, highlighting advantages in data governance, caching, secure access control, and LLM integration.

Development semantic layer

Constant-Time Sliding Window Aggregation: A Refined FIFO

2025-08-20

This post presents a refined FIFO data structure enabling constant-time sliding window aggregation. Traditional approaches using dual-stack structures prove inefficient. The author introduces a novel method, cleverly managing 'ingestion' and 'excretion' lists with their running and suffix products, to achieve aggregation over arbitrary monoids with worst-case constant-time complexity. This avoids the extensive copying and redundancy of prior methods, offering significant practical advantages. Python code is included for implementation.

(pvk.ca)
Development

Efficient Collaborative Text Editing: A CRDT Implementation

2025-08-20

This article presents a collaborative text editing algorithm based on CRDTs, similar to approaches used in popular libraries like Yjs and Automerge. Each character is assigned a unique identifier (site ID and clock), and a tree-based index with counters orders characters. Deletion involves adding the character's identifier to a deleted set (tombstones). Efficiency is boosted by optimizations such as merging successive inserts, storing blocks contiguously, and using a range-based representation for the deleted set. This ensures efficient handling of large text pastes and simultaneous edits.

Development

Modern CI Systems Are Too Complex: Time to Merge Build and CI Systems?

2025-08-20

This article explores the complexity of modern continuous integration (CI) platforms. The author argues that current CI systems, such as GitHub Actions and GitLab CI, are overly powerful and have evolved into complex build systems, leading to fragmented build and CI system logic and low efficiency. The author proposes integrating CI functionality into build systems and uses Mozilla's Taskcluster as an example to illustrate a more powerful, task graph-based CI platform design. This design can unify build and CI processes, improve efficiency, and reduce complexity. However, the author also points out that this merger requires more advanced build systems and broader industry adoption, which may be difficult to achieve in the short term.

Development

OpenSSH's Drunken Bishop Algorithm: Visualizing Public Key Fingerprints

2025-08-20

OpenSSH uses a clever algorithm called "Drunken Bishop" to visualize public key fingerprints. Based on random art principles, it translates the key hash into a bishop's movements on a board, resulting in an ASCII art representation. This allows users to easily spot key changes visually. The feature is controlled by the VisualHostKey flag, enabling it through config files or command-line options. The article also details its implementation in the Factor programming language.

Rails Charts Gem: Build Stunning Charts with Ease

2025-08-20
Rails Charts Gem: Build Stunning Charts with Ease

Tired of struggling to create beautiful charts in your Ruby on Rails application? The rails_charts gem is here to save the day! Built on the powerful Apache eCharts library (v. 5.4.0), it lets you generate various chart types—line charts, bar charts, pie charts, and more—with just a few lines of code. This gem simplifies the interface and provides helpers for quick chart integration. Customize charts with options for width, height, theme, styling, and even JavaScript functions like tooltips. Check it out!

Development Charts

OS Yamato: A Zen-Inspired Ephemeral Digital Space

2025-08-20
OS Yamato: A Zen-Inspired Ephemeral Digital Space

OS Yamato, a newly launched operating system, challenges the conventional notion of infinite digital storage. It embraces a philosophy of impermanence, where data (notes, photos, messages) gently fades and eventually disappears, encouraging mindful presence and appreciation for fleeting moments. Built with Vue 3 and AWS Amplify, it poetically integrates weather into the user experience, making digital memories more evocative.

Development Zen Design Ephemeral

type-machine: Simulating Structural Subtyping in Haskell

2025-08-20

Haskell programmers often struggle with data modeling, especially when dealing with record types with many fields. This blog post introduces type-machine, a Haskell library that leverages Template Haskell to simulate structural subtyping using type transformers and Is typeclasses. This simplifies record type manipulation and improves code efficiency. The library provides functions like pick, omit, and record, allowing for easy manipulation of record fields. Benchmarks demonstrate its performance advantages over alternative approaches.

Development Structural Subtyping

Generating Pixel Art Space Invaders with Algorithms

2025-08-20
Generating Pixel Art Space Invaders with Algorithms

This interactive article details the creation of a Space Invader generator using JavaScript and vector graphics. The author walks through the process, from hand-drawn pixel art to vector polygons and finally pixelated images, explaining the algorithms and techniques involved. This includes using the OKLCH color space for color generation and Anime.js for animation. The article is highly interactive, allowing readers to generate their own Space Invaders.

Development Vector Graphics

Streamlining Monorepo Development with Turborepo and pnpm

2025-08-20
Streamlining Monorepo Development with Turborepo and pnpm

This guide outlines best practices for developing, testing, and submitting code within a Turborepo-based monorepo. It covers efficient methods for navigating, installing, and creating new React packages using pnpm, leveraging Vitest for targeted testing, and ensuring code quality with ESLint and TypeScript. The guide emphasizes running linters and tests before commits and provides a clear PR title format.

Development

D2 0.7.1 Released: ASCII Output Now Supported

2025-08-19
D2 0.7.1 Released: ASCII Output Now Supported

D2, a diagramming tool, has released version 0.7.1, introducing ASCII output. Any `.txt` file will now use the ASCII renderer. This is particularly useful for small diagrams within source code comments, improving readability. The feature is accessible via the Vim extension or the command-line flag `--ascii-mode=standard`. Note that this renderer is still in alpha and may contain bugs.

Figma's Multiplayer Editing: A Simplified CRDT Approach

2025-08-19
Figma's Multiplayer Editing: A Simplified CRDT Approach

Four years ago, Figma embarked on building multiplayer functionality, opting for a custom-built system instead of the popular Operational Transform (OT) algorithm. Driven by a need for rapid iteration and concerns about OT's complexity, they created a simpler solution. This post details Figma's multiplayer system architecture, including its client/server architecture, WebSocket communication, offline editing capabilities, and data synchronization. While inspired by CRDTs (Conflict-free Replicated Data Types), Figma's implementation deviates from strict CRDT adherence, leveraging its principles while benefiting from a centralized server for efficiency and simplicity. The article contrasts OTs and CRDTs, delving into Figma's data structure design and how it handles edge cases.

Emacs Video Trimmer: video-trimmer-mode

2025-08-19
Emacs Video Trimmer: video-trimmer-mode

Inspired by Marcin Borkowski's blog post, the author created video-trimmer-mode, a lightweight Emacs plugin for video trimming. Leveraging ffmpeg, this ~300-line plugin offers a quick and easy way to cut video clips. The code is available in the author's Emacs config repo. Support this indie dev's work!

Development Video Trimming

Positron: The Next-Gen Open Source IDE for Data Science

2025-08-19
Positron: The Next-Gen Open Source IDE for Data Science

Posit PBC has launched Positron, a free, next-generation Integrated Development Environment (IDE) for data science. It seamlessly integrates data exploration and production workflows, supporting both Python and R equally. Key features include interactive notebooks, plotting tools, integrated data app workflows, and a built-in AI assistant. Built on Code OSS, Positron supports VSIX extensions for enhanced customization.

Development

Guile-Swayer: Scripting Sway/i3 with Guile

2025-08-19
Guile-Swayer: Scripting Sway/i3 with Guile

Tired of Sway/i3's configuration limitations? The Guile-Swayer project offers a powerful solution, allowing you to fully control the Sway/i3 window manager using the Guile scripting language. Developed after migrating from StumpWM to Wayland, this project replicates StumpWM's flexibility and customization. Guile-Swayer lets you bind keys to execute Guile code, subscribe to Sway events and react to them, retrieve Sway information, and more. It includes modules like workspace-grid for grid-based workspaces, workspace-groups for cross-monitor workspace grouping, and which-key for Emacs-like keybinding hints. With Guile-Swayer, create a highly personalized and efficient window management environment.

Development

Mastering Attention: Crafting Effective Prompts for LLMs

2025-08-19
Mastering Attention: Crafting Effective Prompts for LLMs

This article delves into the attention mechanism of Large Language Models (LLMs) and how to leverage it through carefully crafted prompts. It explains that LLMs don't read sequentially like humans, instead weighting relationships between all tokens simultaneously. Prompt structure, therefore, is more impactful than word choice. The article contrasts structured and unstructured prompts, illustrating how a step-by-step approach guides the model's reasoning. It simplifies the attention mechanism: calculating each word's influence on others to generate output. Heuristics for effective prompts are offered: prioritizing key information, using structured formatting, employing personas, and avoiding vagueness. The article concludes by emphasizing the economic benefits of efficient prompting—saving engineer time, improving efficiency, and reducing costs.

Development

Limitations on Applying Code Review Suggestions

2025-08-19
Limitations on Applying Code Review Suggestions

This article lists various limitations encountered when applying suggestions in GitHub code reviews. These include scenarios such as no code changes made, the pull request being closed, viewing only a subset of changes, only one suggestion per line allowed, applying to deleted lines, suggestions already applied or marked resolved, suggestions from pending reviews, multi-line comments, and the pull request being queued to merge. It also notes that some actions are currently unavailable.

Development

My Browser Odyssey: From Arc to Dia to Zen Browser

2025-08-19
My Browser Odyssey: From Arc to Dia to Zen Browser

I was a devoted Arc browser user, loving its powerful keyboard shortcuts and multi-profile functionality. However, its developer, The Browser Company, pivoted to the AI-powered Dia browser, abandoning many of Arc's strengths. Dia, while incorporating AI features, sacrificed usability and privacy, forcing me to search for an alternative. Firefox, while functional, lacks a polished user experience. Ultimately, I found Zen Browser, a Firefox-based browser with Arc's clean, fluid interface and powerful customization, solving Firefox's multi-profile management issues. It's become my new favorite. I even believe Mozilla should acquire the Zen Browser team to improve the user experience of Firefox.

Development

Beancount Ledger Reconciliation with Vim Macros: A Hacker's Tale

2025-08-19

A seasoned Vim user tackles the challenge of managing personal finances with Beancount, a text-based ledger system. Facing a mess of CSV and PDF bank statements and numerous uncategorized internal transfers, the author ingeniously leverages Vim macros to automate the reconciliation process. The article details the macro creation process, highlighting problem-solving and showcasing impressive Vim skills. Through creative use of Vim, the author transforms chaotic financial data into a clear and efficient Beancount ledger, dramatically improving productivity.

Development

The Fatal Flaw of "The Art of Multiprocessor Programming": Ignoring the futex

2025-08-19

This article critiques "The Art of Multiprocessor Programming," a well-regarded textbook, for its omission of the futex, a crucial modern concurrency technique. The author argues that the book's lack of coverage renders its content outdated and impractical. Futexes, enabling efficient mutex implementations, significantly improve concurrency performance and are widely used in operating systems like Linux, Windows, and macOS. The article details futex functionality and provides code examples demonstrating high-performance mutex construction using futexes, including spinlocks, non-recursive mutexes, and recursive mutexes. The author concludes that the book's failure to cover essential technologies like futexes makes it insufficient for modern concurrency programming needs.

Retro PC Emulation on Raspberry Pi Pico: Pico-286

2025-08-19
Retro PC Emulation on Raspberry Pi Pico: Pico-286

The Pico-286 project is a remarkable feat of emulation, bringing the classic PC experience of the late 80s and early 90s to the Raspberry Pi Pico. This lightweight project offers a fun way to explore retro computing and learn about low-level system emulation. It supports various Intel CPUs (up to 286), a range of classic peripherals (sound cards, graphics cards), and various graphics and text modes. Pico-286 even emulates the artifact colors produced by early displays! This open-source project is cross-platform and runs on Raspberry Pi Pico, Windows, and Linux.

Development

PyPI Bolsters Account Security with Expired Domain Checks

2025-08-19
PyPI Bolsters Account Security with Expired Domain Checks

To prevent domain resurrection attacks – a type of supply chain attack where an attacker buys an expired domain to hijack PyPI accounts – PyPI now checks for expired domains. This enhances account security by un-verifying email addresses associated with expired domains; over 1,800 email addresses have been unverified since early June 2025. While not a perfect solution, it significantly mitigates a major attack vector. Users are advised to add a second verified email address for enhanced security.

Development domain resurrection

Safely Using snprintf: Avoid Buffer Overflows

2025-08-19
Safely Using snprintf: Avoid Buffer Overflows

This article highlights a lesser-known feature of the `snprintf` function: its ability to determine the required buffer size before formatting, thus preventing buffer overflows. By calling `snprintf` twice – once with `NULL` and 0 to get the size, and again with a properly allocated buffer – the need for manual buffer size calculations is eliminated. The author also recommends a lightweight header-only library for easier usage.

Development buffer overflow

Reclaim WSL Disk Space: A Manual and Automated Guide

2025-08-19
Reclaim WSL Disk Space: A Manual and Automated Guide

Windows Subsystem for Linux (WSL) virtual disks can bloat over time, consuming significant disk space. This tutorial provides both manual and automated methods to compact WSL virtual hard disks (VHDX), freeing up valuable disk space. The manual method details a step-by-step process using PowerShell and DiskPart commands; the automated method provides a PowerShell script for one-click compaction. Regardless of the method chosen, you can effectively resolve WSL disk space issues and maintain efficient system operation.

Development

Left-to-Right Programming: Say Goodbye to Intellisense Hell

2025-08-19
Left-to-Right Programming: Say Goodbye to Intellisense Hell

This article criticizes the inefficiency of declarative programming in languages like Python, highlighting the difficulty of getting code completion hints with list comprehensions. The author proposes a "left-to-right" programming paradigm where programs remain valid throughout the input process, facilitating code completion and error checking. Rust, Python, and JavaScript code examples illustrate how left-to-right programming enhances readability and development efficiency. The article concludes by advocating for well-designed APIs to improve the development experience.

Development
1 2 21 22 23 25 27 28 29 214 215