Category: Development

Bye Spotify: Building My Own Music Streaming Stack

2025-09-05
Bye Spotify: Building My Own Music Streaming Stack

Tired of Spotify's paltry artist payouts, fake artists, and creepy age verification? This author built a self-hosted music streaming solution offering superior sound quality, full ownership of their music, and enhanced privacy. The core components include the Navidrome music server, Lidarr for library management, and Last.fm/ListenBrainz for discovery. This setup not only improves the listening experience but also allows for more direct support of artists.

Development

Action!: A Retro IDE for the Atari 8-bit

2025-09-05
Action!: A Retro IDE for the Atari 8-bit

This article revisits Action!, a compiled language for the Atari 8-bit computer. Created by Clinton Parker, Action! was optimized for the 6502 CPU and featured an integrated development environment (IDE) including a monitor, compiler, text editor, and debugger—a rarity for 8-bit systems. While less advanced than C or Pascal, its speed, innovative editor (with features like scrolling and split-screen), and tight integration made it stand out. The author recounts their experience acquiring and using Action!, discussing its limitations and how add-ons like Action! RunTime and Action! ToolKit partially addressed them. Action! primarily saw use in hobbyist and magazine software.

Development

Poisoning LLMs: A Writer's Fight Back Against Data Scraping

2025-09-05
Poisoning LLMs: A Writer's Fight Back Against Data Scraping

Large Language Models (LLMs) train on vast amounts of data, much of it scraped from the open web without author consent. One author is fighting back by creating intentionally nonsensical mirror articles linked via nofollow tags. The hope is that LLMs, which may ignore nofollow, will ingest this gibberish, degrading their output. While not a perfect solution, the author aims to raise awareness about unauthorized data scraping and the ethical implications for content creators.

Development

Type-Safe Error Handling in Swift 6: A Layered Approach

2025-09-05

Swift 6 introduces typed throws, making error handling more type-safe. This post details a user-friendly layered error model using a custom `SystemError` protocol. This protocol includes properties like `logMessage`, `userFriendlyMessage`, and `underlyingErrors`, and provides recursive functions for looking up error types and generating error stacks. The article demonstrates defining custom error objects using structs and enums, handling Foundation errors, and decoding errors. Examples showcase leveraging typed throws and custom error handling to improve the reliability of Swift projects.

Development

Blazing Fast UR5 Inverse Kinematics Solver using IK-Geo

2025-09-05

This article presents a high-performance inverse kinematics (IK) solver for the UR5 robot arm, leveraging the IK-Geo library. Utilizing subproblem decomposition, it solves three canonical geometric subproblems to achieve speeds over 40x faster than IKFast, with accuracy reaching machine precision (10⁻¹⁶). Returning all solutions and gracefully handling singularities, it offers significant advantages for real-time control, path planning, and simulation, unlocking new capabilities in robotics.

Development Inverse Kinematics

What if OpenDocument Used SQLite?

2025-09-05

This article explores a thought experiment: what if the OpenDocument file format, specifically ODP (OpenDocument Presentation), were built around SQLite? The author argues this would yield significant advantages, including smaller file sizes, faster file saving and startup times, reduced memory usage, built-in versioning, and an improved user experience. The limitations of the current ZIP-based approach are detailed, such as difficulties with incremental updates, slow startup, high memory consumption, crash recovery issues, and limited content accessibility. The author proposes replacing ZIP with SQLite and further suggests splitting content into smaller units within database tables for incremental updates and faster startup. Version control via SQLite is also discussed, allowing for the retention of historical versions and simplifying crash recovery. In essence, the article posits that using SQLite as an application file format can dramatically enhance user experience and performance for applications like OpenOffice.

Development File Format

Hypr MCP Gateway: Simplifying OAuth2 Authentication for Your MCP Servers

2025-09-05

The Hypr MCP team built an MCP Server Gateway, a reverse proxy that simplifies adding OAuth2 authentication to LLM-based workflows. This gateway addresses shortcomings in existing Identity Provider (IdP) software's support for the MCP specification's authorization framework, such as lack of support for Dynamic Client Registration (DCR) and Authorization Server Metadata (ASM). The article details the gateway's implementation, including using Dex as an IdP, handling CORS, and building OAuth2 middleware. It also discusses challenges encountered, like inconsistencies in client handling of dynamic client registration and error responses. The Hypr MCP Gateway offers an easy-to-use, robust solution for securely connecting internal applications to LLM workflows. Check out their open-sourced project on Github.

Development

Rasterizer: A Decade-Long Journey to a GPU-Accelerated Vector Graphics Engine

2025-09-05
Rasterizer: A Decade-Long Journey to a GPU-Accelerated Vector Graphics Engine

Inspired by Adobe Flash, the author spent ten years developing Rasterizer, a GPU-accelerated 2D vector graphics engine. Up to 60x faster than CPU-based rendering, it's ideal for vector-animated UIs. Built using C++11 and Metal for macOS (with an iOS port in the pipeline), Rasterizer supports SVG and PDF files. It features innovative anti-aliasing techniques and efficient rendering strategies, including GPU-based quadratic Bézier curve solving and batch parallelism.

Development 2D engine

Fil-C's FUGC: A Parallel, Concurrent, and Accurate Garbage Collector

2025-09-05

Fil-C employs FUGC (Fil's Unbelievable Garbage Collector), a parallel concurrent on-the-fly grey-stack Dijkstra accurate non-moving garbage collector. FUGC boasts multi-threaded concurrent marking and sweeping, avoiding stop-the-world pauses through 'soft handshakes' for non-blocking interaction with mutator threads. Its grey-stack approach eliminates load barriers, requiring only a simple store barrier, while Dijkstra barriers ensure accurate marking. FUGC is non-moving, simplifying concurrent implementation and supporting C, Java, and JavaScript-style memory management including finalizers, weak references, and weak maps, drastically improving Fil-C's memory management efficiency and safety.

Development garbage collector

Experimenting with and Abandoning a Terminal UI Library

2025-09-04
Experimenting with and Abandoning a Terminal UI Library

While developing the game Kartoffels, the author attempted to create a high-performance terminal UI library, Kruci, to replace the existing Ratatui library. Kruci uses a declarative UI design and attempts to improve performance by avoiding pixel-by-pixel diffing calculations. However, Kruci encountered many challenges in handling events, state management, and Z-stacking. Ultimately, the author decided to abandon the project, concluding that optimizing Ratatui or focusing on game development would be more efficient.

(pwy.io)
Development

Efficient Font Caching with Service Workers

2025-09-04

This code snippet demonstrates how a service worker efficiently caches font resources. It uses `CacheStorage` to cache fonts and includes a versioning mechanism to prevent stale caches from interfering. When a font is requested, the service worker first checks the cache; if a hit occurs, it returns the font directly; otherwise, it fetches the font from the network and adds it to the cache, handling network request errors along the way. The code cleverly uses the `clone()` method to prevent resource consumption issues.

Development Fonts

Thunk: Enabling Your Rust Programs to Run on Ancient Windows

2025-09-04
Thunk: Enabling Your Rust Programs to Run on Ancient Windows

Thunk is a Rust tool that leverages VC-LTL5 and YY-Thunks libraries to enable your Rust programs to run on older Windows systems, even Windows XP. It achieves compatibility by adding VC-LTL to the library search path and using YY-Thunks to compensate for missing APIs in older systems. Thunk offers both command-line tool and library usage, simplifying the process of building programs and shared libraries compatible with older Windows versions. Note: Thunk doesn't guarantee perfect compatibility on older systems; use at your own risk.

Development

Building a High-Performance Map with Go: A Vector Tile Implementation

2025-09-04
Building a High-Performance Map with Go: A Vector Tile Implementation

While building a website that maps live urban activity, the author sought a more efficient way to render the map, opting for vector tiles to optimize loading speed. The article details the process of generating Mapbox Vector Tiles (MVT) from GeoJSON data, covering coordinate transformations, tile identification, geometry construction, and property addition. Implemented in Go, the resulting MVT tiles significantly reduced page size and improved map rendering speed and overall performance.

Development Map Optimization

Breaking Math.random(): An Improved Algorithm for Inverting Xorshift128+

2025-09-04
Breaking Math.random(): An Improved Algorithm for Inverting Xorshift128+

The recent vulnerability CVE-2025-7783 exploits an edge case in the Node.js ecosystem, affecting applications using axios or the deprecated request library. The attack requires five consecutive outputs of JavaScript's Math.random(), allowing prediction of future outputs using the z3 solver. This blog post presents a more efficient approach. The author demonstrates a 226-operation algorithm to invert the Xorshift128+ algorithm used by Math.random(), requiring only two full 64-bit outputs. By analyzing Xorshift128+, knowing only the least significant 26 bits of R1 allows determining the remaining bits of L1 and R2. The post also discusses adapting this to the full Math.random() function, highlighting challenges due to bit truncation and proposing a solution using three outputs. Finally, the author shares their experience using ChatGPT for research, noting its potential while acknowledging current limitations.

Development

hledger 1.50 Released: Robust Transaction Balancing and More

2025-09-04
hledger 1.50 Released: Robust Transaction Balancing and More

hledger 1.50 is released, featuring significantly improved transaction balancing using only local precisions for greater accuracy and robustness. This release also includes numerous enhancements such as CSV data commands, import archiving, timeclock improvements, and bug fixes. Timeclock syntax and parsing are more robust, concurrent sessions are fully supported, and glob patterns in the include directive are enhanced for more powerful matching.

Development financial software

From SixthSense to Physics Research: A College Student's Tech Odyssey

2025-09-04
From SixthSense to Physics Research: A College Student's Tech Odyssey

A college student, starting with a reflection on human-computer interaction, attempts to replicate the SixthSense project, which launches his journey into Computer Science and Engineering. During his studies, he discovers a stronger interest in software engineering, particularly in building practical applications and solving real-world problems. He gets involved in physics research, using Docker to streamline software installation, and employing CNNs and Transformers for electron identification, ultimately shifting his major to Computer Science and Physics. This experience showcases his journey of exploring different technological fields, finding his interests and direction, and improving his skills through hands-on experience.

Development physics research

Polars Cloud GA: Bridging the DataFrame Scale Gap

2025-09-04
Polars Cloud GA: Bridging the DataFrame Scale Gap

Polars Cloud is now generally available on AWS, along with the open beta launch of its novel distributed engine. This platform aims to bridge the gap between the ease of use of local pandas and the scalability of remote PySpark, offering a single API that seamlessly scales from laptop to cloud. Its distributed engine leverages Polars' innovative streaming architecture, enabling horizontal, vertical, and diagonal scaling strategies, significantly reducing cost, complexity, and improving performance. Future plans include on-premise support, a live cluster dashboard, task orchestration, autoscaling, catalog support, and multi-region deployment.

Development

Reliable Data Sending with JavaScript's Beacon API: Ditching Unreliable `beforeunload`

2025-09-04
Reliable Data Sending with JavaScript's Beacon API: Ditching Unreliable `beforeunload`

Sending data reliably to servers when a user leaves a website has always been a challenge. Traditional methods using the `beforeunload` event with `fetch` or `XMLHttpRequest` are unreliable, as browsers may cancel requests for a better user experience. JavaScript's Beacon API offers a 'fire-and-forget' solution; the browser doesn't wait for a response, ensuring data is sent reliably. While the Beacon API limits data size and only supports POST requests, it's perfect for sending small, critical data like analytics or page leave events. It's also great for any scenario requiring reliable asynchronous data sending, such as real-time data synchronization.

Development data sending

Poor Man's Bitemporal Database: Time Travel with SQLite

2025-09-04

This article details the author's journey building a simplified bitemporal database using SQLite for their indie B2B SaaS project. It delves into the nature of temporal data, the truthiness of facts, and the simulation of time travel. Detailed Clojure code examples demonstrate using SQLite, HoneySQL, and UUIDv7 to create an efficient and maintainable bitemporal database. The author stresses the importance of system simplicity, scalability, and data sovereignty, sharing experiences and challenges in architectural design and code implementation.

Development temporal database

FreeBSD Says No to LLM-Generated Code

2025-09-04
FreeBSD Says No to LLM-Generated Code

The FreeBSD Project's latest quarterly report reveals a new policy in the works: a ban on code and documentation generated by large language models (LLMs). This aligns with similar stances taken by NetBSD and Gentoo Linux, reflecting concerns about the reliability and security of AI-generated code. The report also details other FreeBSD projects underway, including improvements to Wi-Fi, graphics, sound, and power management; restructuring the OS into pkg packages; and developing a web-based GUI for virtualization. Despite competition from Linux, FreeBSD remains actively developed, continuously improving its features and user experience.

Development

The AI Coding Lie: Productivity Hype or Bust?

2025-09-04
The AI Coding Lie:  Productivity Hype or Bust?

A seasoned programmer with 28 years of experience challenges the claims of AI coding tools, revealing a six-week experiment that showed no significant productivity gains, and potentially even a slowdown. The author argues that the industry's hype around AI-driven productivity increases is vastly overblown, unsupported by real-world data. Using extensive data, the article demonstrates the lack of an expected surge in software development output, debunking the myth of the '10x engineer'. The author urges developers to approach AI tools critically, avoid blind adoption, and resist unrealistic marketing claims.

Development

Depot Seeks First Solutions Engineer: Accelerating Software Builds, Reshaping the Development Process

2025-09-04
Depot Seeks First Solutions Engineer: Accelerating Software Builds, Reshaping the Development Process

Rapidly growing software build platform Depot is seeking its first dedicated Solutions Engineer. This role requires an experienced developer who can help other developers dramatically improve their day-to-day efficiency. The ideal candidate will be a Depot user and comfortable working independently in a fast-paced startup environment, solving customers' most challenging build performance issues. The position involves close collaboration with customer engineering teams, providing technical guidance, analyzing build logs, and conducting technical demos. Candidates need experience with Docker, Kubernetes, and CI/CD pipelines and the ability to clearly explain complex technical concepts.

arXivLabs: Experimental Projects with Community Collaborators

2025-09-04
arXivLabs: Experimental Projects with Community Collaborators

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

Development

PyTorch Model with Metal Acceleration: Performance and Correctness

2025-09-04
PyTorch Model with Metal Acceleration: Performance and Correctness

This article presents a PyTorch-based model that attempts to leverage Metal for accelerated computation while providing pure PyTorch fallbacks to guarantee correctness. The model's core involves complex calculations including matrix multiplications, cumulative sums, and exponentiation. To enhance performance, the authors attempt to use Metal for custom kernels, but fall back to a pure PyTorch implementation if the Metal extension isn't available. This design ensures compatibility and reliability across different hardware platforms, offering developers a solution that balances performance and correctness.

Development Model Acceleration

Cursor for Xcode Joins OpenAI's Codex Team

2025-09-04

The Cursor for Xcode team, creators of the popular AI coding assistant Alex for iOS and macOS developers, announced they're joining OpenAI's Codex team. While new downloads of the Alex app will cease on October 1st, existing users can continue using it, though no new features will be added. The team will continue their mission of helping people create, now at a larger scale with OpenAI.

Development

C Compiler in 500 Lines of Python: A Single-Pass Approach

2025-09-04

The author undertook the challenge of writing a C compiler in just 500 lines of Python, targeting WebAssembly. To achieve this, a single-pass compilation strategy was employed, foregoing an Abstract Syntax Tree (AST) and generating code directly during parsing. This resulted in a concise compiler, but at the cost of several features, including floating-point numbers and structs. The resulting compiler successfully compiles and runs simple C programs, demonstrating the feasibility of a single-pass approach.

Development

Six Months on Alpine: The Musl Trade-off

2025-09-04
Six Months on Alpine: The Musl Trade-off

The author spent six months using Alpine Linux as their daily driver. Alpine is praised for its speed, excellent package management, and lightweight nature. However, the author encountered compatibility issues due to Alpine's use of the musl libc instead of glibc, particularly with experimental software requiring glibc. While workarounds like gcompat, self-compilation, or Flatpak exist, they add friction. Ultimately, the author decided to explore other distributions like Void Linux or Debian for better compatibility and stability.

Development

Fluid Simulation Meets Reality: A 2025 Demo

2025-09-04

This demo showcases a fascinating fluid simulation interacting with real-world objects. The creator cleverly uses a webcam to capture object shapes, a polarization filter to prevent screen feedback, and aligns the feed with the simulation for real-time interaction. Hands are surprisingly recognized as obstacles, adding a fun, unexpected element. The simulation itself is a wind-tunnel style model, drawing inspiration from Tidepodious' work. It's a visually impressive blend of virtual and real.

Development real-time interaction

Zed Integrates Claude Code: AI-Powered Coding in Your Editor

2025-09-04
Zed Integrates Claude Code: AI-Powered Coding in Your Editor

Zed editor has released a public beta integration with Claude Code, running natively through the new Agent Client Protocol (ACP). This represents a significant step forward in AI-powered code assistance. Developers can now run Claude Code directly within Zed's high-performance editor, view real-time multi-file edits, and review code changes granularly. ACP, an open standard, enables any agent to connect to Zed and other editors, making this Claude Code integration possible. The future will see more AI agents integrated into Zed via ACP, offering developers greater choice.

Development

Neovim Package Management: Unveiling the Secrets of `start` and `opt`

2025-09-04

Neovim's package management system allows developers to organize plugins into two types of packages: `start` and `opt`. `start` packages are automatically loaded on Neovim startup, while `opt` packages require manual loading with the `:packadd` command. This article details how to create and use both types of packages, including installation from zip archives, updating using git repositories, and handling dependencies between plugins. Additionally, it introduces Neovim's built-in `vim.pack` plugin manager, which leverages git for plugin management, providing version control and streamlined updates, significantly simplifying the plugin management workflow.

Development
1 2 10 11 12 14 16 17 18 214 215