Category: Development

Pocket-Sized Productivity: Running a Full Linux Desktop on Your Phone

2025-05-17
Pocket-Sized Productivity: Running a Full Linux Desktop on Your Phone

For a recent two-week trip, the author built a complete Linux desktop environment using a Pixel 8 Pro, Xreal Air 2 Pro AR glasses, and a folding keyboard. Running arm64 binaries in a chroot on Android, they were able to use development tools like Neovim and Flutter, working from coffee shops, parks, and even airplanes. While the setup involved some complexities—rooting the phone and choosing the right Linux distro (Void Linux was the winner)—this ultra-portable workstation offers unparalleled freedom and flexibility, unshackling developers from their desks.

Development mobile development

Mystical: A Magical Circle Visualization of PostScript

2025-05-17

Mystical is a novel programming language that visualizes PostScript code as magical-circle-like ring structures. Programs are organized in rings, encompassing executable arrays, non-executable arrays, and dictionaries, each with a unique visual representation. Operators, variables, and keywords are represented by sigils (symbols) combined with text within the rings. Mystical currently lacks a dedicated interpreter; visualization needs manual translation into PostScript for execution.

Development magical circles

GitHub Diff Vulnerability: Exploiting Unicode Character Substitution

2025-05-17
GitHub Diff Vulnerability: Exploiting Unicode Character Substitution

A curl contributor, James Fuller, uncovered a vulnerability in GitHub's diff viewer. Malicious actors could substitute ASCII characters with visually identical Unicode characters, altering code without apparent change. This could lead to URL manipulation and other serious consequences. While GitHub's diff viewer lacked a warning, other platforms like Gitea flagged such changes. The curl project responded by implementing CI checks to detect malicious Unicode and cleaned up UTF-8 sequences. This highlights the need for proactive code security measures to prevent potential attacks.

Basilisk II Black Screen Bug: A Twelve-Year Debugging Odyssey

2025-05-17

Twelve years ago, a black screen bug in the Basilisk II emulator plagued users on newer Windows versions. The author, through meticulous debugging, traced the issue to a subtle memory allocation detail: the order of two memory allocations in Windows caused the emulator's ROM to fail to load. The solution involved modifying the memory allocation code, resolving this long-standing problem and showcasing debugging skills and deep OS understanding.

Development

CSS contrast-color(): Automating Color Contrast for Accessibility

2025-05-17
CSS contrast-color(): Automating Color Contrast for Accessibility

CSS's new `contrast-color()` function simplifies color choices by automatically selecting black or white text to contrast with a given background color. This article delves into its usage, compares the WCAG 2.1 and APCA algorithms for contrast calculation, and explores how to use `prefers-contrast` media queries for better accessibility. While currently limited to black/white, future iterations may offer more customizable options. The function simplifies development while improving accessibility, particularly when managing multiple color states.

Development Color Contrast

Rust at 10: A Story of Community and Infrastructure

2025-05-17
Rust at 10: A Story of Community and Infrastructure

On Rust's 10th anniversary, original author Graydon Hoare reflects on its journey. It's not just a programming language story, but a narrative of a vast community building and maintaining shared technical infrastructure. Rust's success stems from the need for robust infrastructure and the long-term investment from organizations like Mozilla, along with thousands of volunteers. Rust evolved from a simple prototype into a powerful language with a huge ecosystem and wide applications. The future requires continued talent attraction, maintaining stability and compatibility, and further enhancing quality.

Development

arXivLabs: Experimenting with Community Collaboration

2025-05-17
arXivLabs: Experimenting 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 share them. Got an idea for a project that will benefit the arXiv community? Learn more about arXivLabs.

Development

OBNC: An Oberon Compiler

2025-05-17

OBNC is a compiler for Niklaus Wirth's Oberon programming language, implementing the final 2016 version. It translates Oberon source code to C, which is then compiled and linked using the host OS's C compiler and linker. Released under the GNU General Public License (compiler) and Mozilla Public License (libraries), OBNC offers flexibility for project licensing. The package includes the compiler, build tools, documentation generator, a basic library, and an extended library (ext) adding features like command-line argument access and environment variable handling. It's implemented in C, works on POSIX-compliant systems, and requires the Boehm-Demers-Weiser garbage collector. A pre-compiled Windows version is available.

Development

Real-time Lighting and Normal Mapping on the N64: A Stunning Reverse Engineering Feat

2025-05-17

This article details an impressive technique for achieving real-time lighting and normal mapping on the Nintendo 64. By cleverly leveraging palette textures and CPU-side shading, the author circumvents the N64's hardware limitations to achieve surprisingly impressive visuals. The technique involves compressing diffuse and normal information into a shared palette, and updating the palette at runtime via the CPU to simulate lighting effects. While the method has some limitations, such as lack of point light support and shadows, its innovative nature is remarkable, opening new possibilities for graphics rendering on the N64 platform.

Development

Meta Open Sources Pyrefly: A Rust-Powered Python Type Checker

2025-05-17
Meta Open Sources Pyrefly: A Rust-Powered Python Type Checker

Meta has released an alpha version of Pyrefly, an open-source Python type checker and IDE extension built in Rust. Pyrefly aims to improve type consistency in Python code, helping catch errors early before runtime. It supports IDE integration and CLI usage, prioritizing performance and type inference, working effectively even on unannotated code. Evolving from Meta's Pyre, Pyrefly strives to be a more powerful and extensible type checker, collaborating with the Python community to improve the Python type system.

Development

NixOS: The Perfect Linux Distro? My Year of Pain and Lessons Learned

2025-05-17
NixOS: The Perfect Linux Distro? My Year of Pain and Lessons Learned

I was seduced by NixOS's promise of perfect system reproducibility through a single code configuration. After a year, I gave up. The learning curve is steep, documentation is lacking, error messages are opaque, and there are countless ways to do the same thing. While it creates a stable system, I spent countless hours wrestling with issues like Thunderbolt dock compatibility and setting up development environments across multiple tech stacks. I switched to Bazzite and Bluefin (based on Fedora Silverblue), which offer a more user-friendly experience through Flatpak, Homebrew, and Distrobox, while retaining the benefits of immutability. NixOS excels in server environments where reproducibility is paramount, but for the average desktop user, the high learning cost and complexity are not worth it. The key takeaway: sometimes, 'I don't want to care' is a perfectly valid approach to system administration.

Two Thumb Rules for Efficient Code

2025-05-17

This article presents two practical tips for improving code efficiency: moving `if` conditions upwards and `for` loops downwards. Moving `if` conditions to the caller function reduces branching, simplifies control flow, and improves readability. Moving `for` loops to where batch data is processed leverages batch processing advantages, improves performance, and potentially unlocks vectorization. These two tips complement each other, effectively enhancing code efficiency, especially when handling large amounts of data.

Development

75+ Open Problems in Computational Geometry

2025-05-17

The Open Problems Project website compiles over 75 unsolved problems in computational geometry and related fields. Started in 2001 with 30 initial problems, it's now a comprehensive resource categorized by topics such as convex hulls, graph theory, and Voronoi diagrams. While no longer accepting new submissions, the site encourages updates to existing problems, particularly those solved (fully or partially), fostering collaboration and advancement in the field.

Development open problems

Building a RISC-V Hypervisor in Starina OS: From Hello World to Booting Linux

2025-05-17
Building a RISC-V Hypervisor in Starina OS: From Hello World to Booting Linux

This post documents the author's journey building a lightweight RISC-V H-extension based hypervisor within the Starina operating system. Leveraging QEMU for RISC-V H-extension emulation, the author incrementally implemented guest mode entry, system call handling, a simple Hello World program, and finally, Linux kernel booting. Challenges including page table management, device tree setup, timer support, and MMIO were overcome, with detailed steps and solutions provided. The post concludes with a successful Linux boot within the Starina hypervisor.

Development

Publisher: Open-Source Semantic Model Server for Malloy

2025-05-17
Publisher: Open-Source Semantic Model Server for Malloy

Publisher is an open-source semantic model server built on the Malloy data language. It allows you to create rich semantic data models—defining the meaning, relationships, and context behind your data—and exposes them through a server interface. Applications, AI agents, and users can query data consistently and reliably, leveraging the shared understanding defined in the Malloy model. Publisher solves the problem of untrustworthy answers when data meaning is unclear. It uses Malloy queries, compiling them into SQL behind the scenes to deliver reliable answers without redefining data meaning in every tool. It consists of three main components: a server, an SDK, and a reference application, supporting various databases and AI applications.

Development semantic model

Popcorn: Running Elixir in the Browser

2025-05-17

Popcorn is a novel library enabling the execution of Elixir code within web browsers. Leveraging the AtomVM runtime, it executes compiled Elixir code client-side, offering APIs for Elixir-JavaScript interaction, serialization, and communication, while ensuring browser responsiveness. Currently under development, with an unstable API, it showcases three live examples: a simple Elixir REPL, interactive tutorials, and a Game of Life implementation. Developers can start using Popcorn by adding it as a dependency in their `mix.exs` and setting up JS and Elixir WASM entry points. It connects JS and Elixir via message passing and allows direct JS execution from Elixir. The Elixir side uses the `Popcorn.Wasm` module, while the JS side uses the `Popcorn` class.

Development

MCP: Rapid Adoption, Growing Pains, and a Call to Action

2025-05-17
MCP: Rapid Adoption, Growing Pains, and a Call to Action

This article is a response to a critique of the MCP protocol, a standard for calling tools from LLMs. The author argues that the critique focuses too much on transport mechanisms (e.g., WebSockets) while overlooking MCP's core value: OAuth 2.0 authentication and enabling LLMs to interact with the real world. While acknowledging issues like tool security and multi-tenant server compatibility, the author emphasizes MCP's rapid adoption and the community's efforts to address these challenges. The author concludes with a call to action for developers to participate in shaping MCP's secure and reliable future.

Development

A Catalog of Novel Operating Systems: Reimagining the Future of Computing

2025-05-17
A Catalog of Novel Operating Systems: Reimagining the Future of Computing

Following the LLM hype, a wave of new operating system creations has emerged. This article catalogs several such projects, including the UXN/Varvara personal computing stack, the web-research oriented Nette.io OS, and Lisp-based systems like Interim and ChrysaLisp. These projects demonstrate innovative approaches to OS design, such as DesktopNeo's reimagining of the desktop interface and MercuryOS's intention-based OS. These efforts represent bold explorations into the future of computing, reigniting passion for OS innovation.

Development

Fahmatrix: A Lightweight Pandas Alternative for Java

2025-05-17
Fahmatrix: A Lightweight Pandas Alternative for Java

Fahmatrix is a lightweight, modern Java library for working with tabular data, inspired by Python's Pandas and designed to simplify data understanding on the JVM. It offers an intuitive API for CSV reading and previewing, row filtering and column selection, and upcoming features like aggregations, grouping, and sorting. Fahmatrix currently has no external dependencies and can be downloaded as a JAR file from GitHub or used via Maven/Gradle (to be added in future versions). Key features include loading CSV files into DataFrames, pretty-printing data, `head()`/`tail()` functions, various aggregation functions, row filtering and column selection, groupBy and pivot tables, data export, and type inference and conversion. Fahmatrix empowers Java developers to work with tabular data efficiently without leaving the JVM.

Development

Home Assistant: A Kernel Dev's Home Automation Journey

2025-05-17

A kernel developer's year-long exploration of Home Assistant, an open-source home automation system, is detailed. The article examines Home Assistant's project health, balancing its business model with its open-source community, highlighting its active developer base and transition to the Open Home Foundation. Installation, while officially recommending a dedicated OS, proves relatively straightforward on standard Linux systems, albeit demanding some technical know-how. Home Assistant connects various home devices through integrations, varying in quality but offering powerful functionality overall. Security concerns are addressed, acknowledging potential risks but noting the project's security policy and audit mechanisms mitigating some vulnerabilities. Ultimately, Home Assistant empowers users with control over their home network and devices, presenting a compelling alternative to cloud-based services.

Development

rapidhash: Blazing Fast, High-Quality, Platform-Independent Hash Function

2025-05-17
rapidhash: Blazing Fast, High-Quality, Platform-Independent Hash Function

rapidhash, the official successor to wyhash, is an extremely fast, high-quality, and platform-independent hash function. It surpasses 70GB/s on Apple's M4 CPUs and passes all tests in both SMHasher and SMHasher3. Optimized for AMD64 and AArch64, it's compatible with gcc, clang, icx, and MSVC, without relying on machine-specific instruction sets. Collision probability is exceptionally low, approaching the theoretical ideal. This makes rapidhash a superior choice for performance-critical applications.

Development

xtool: A Cross-Platform Xcode Replacement

2025-05-17
xtool: A Cross-Platform Xcode Replacement

xtool is a cross-platform tool (Linux/WSL/macOS) that replicates core Xcode functionality using open standards. Build and deploy iOS apps with SwiftPM without needing Xcode. Key features include building SwiftPM packages into iOS apps, signing and installing apps, and programmatic interaction with Apple Developer Services. It also offers an XKit library for interacting with Apple services and iOS devices within your own apps.

Development Cross-Platform

Microsoft's New Command Palette: An Enhanced PowerToys Run

2025-05-17
Microsoft's New Command Palette: An Enhanced PowerToys Run

Microsoft has quietly released Command Palette, a revamped launcher app for Windows, succeeding its PowerToys Run. This updated tool offers quick access to commands, apps, and development tools, including search functionality for apps, files, and folders; calculations; system commands; and website/web search capabilities. Crucially, Command Palette boasts extensibility, allowing users to add custom commands and features, making it a powerful asset for developers and power users. Window Walker functionality is also integrated for easy window switching.

Development

Home Assistant: A Kernel Dev's Journey to Smart Home Freedom

2025-05-17

A kernel developer recounts their experience using Home Assistant, an open-source home automation system, to manage their smart home. The article details how Home Assistant solved real-world problems: replacing a defunct solar panel monitoring system after SunPower's bankruptcy, creating virtual sensors to calculate home energy consumption using 'Helpers', locally controlling Mitsubishi heat pumps without cloud dependency, and using a Refoss power monitor to precisely track appliance energy usage and diagnose issues. Home Assistant offers complete control but requires a technical learning curve.

Development

Rustls: Major Performance Improvements in Memory-Safe TLS Implementation

2025-05-16
Rustls:  Major Performance Improvements in Memory-Safe TLS Implementation

Rustls, a memory-safe TLS implementation prioritizing performance, has released significant performance improvements. By optimizing session resumption mechanisms—specifically, replacing mutexes to reduce contention in concurrent server connection handshakes and decreasing the number of stateless resumption tickets sent by default—Rustls 0.23.17 demonstrates dramatically improved performance on multi-core servers, achieving near-linear scalability. Server latency for core TLS handshake handling is roughly 2x lower than OpenSSL in benchmarks. This makes Rustls a highly competitive TLS solution, bringing safer and more efficient connections to the internet.

Development

Building a Code-Editing Agent in 94 Lines of Ruby

2025-05-16

This article challenges the perceived difficulty of building a code-editing agent, showcasing a fully functional one built in just 94 lines of Ruby using the RubyLLM gem. The agent leverages a Large Language Model (LLM) and three tools – read file, list files, and edit file – to perform code editing tasks. The author details the implementation of each tool and demonstrates the agent's capabilities by building an ASCII Minesweeper game. A shell command execution tool is added to enhance functionality, resulting in a self-testing code-editing agent.

Development

Solidis: A High-Performance, SOLID-Designed Redis RESP Client

2025-05-16
Solidis: A High-Performance, SOLID-Designed Redis RESP Client

Solidis is a modern RESP client built with SOLID principles, zero dependencies, and enterprise-grade performance in mind. It supports both RESP2 and RESP3 protocols and is optimized for modern JavaScript/TypeScript applications. Offering both a basic client for minimal bundle size and a featured client with pre-loaded commands, Solidis boasts features like transactions, pipelining, pub/sub, auto-reconnection, robust type safety, and extensibility. It's a powerful and efficient tool for interacting with Redis.

Development

Google Closure Library Resurrected: Saving ClojureScript's Stability

2025-05-16

The stability of Google Closure Library (GCL) started declining around 2019, with Google eventually ceasing maintenance last August. A team has forked GCL to maintain ClojureScript's ecosystem, reverting several breaking changes and aligning it with the latest Google Closure Compiler. This restores functionality to many older ClojureScript libraries and provides a solid foundation for ClojureScript in various JavaScript contexts beyond just browsers. It offers a powerful, framework-agnostic solution for tasks like DOM manipulation, internationalization, and animation, without bloating the final JavaScript artifact.

Development

KVSplit: Differentiated KV Cache Quantization for Apple Silicon

2025-05-16
KVSplit: Differentiated KV Cache Quantization for Apple Silicon

KVSplit optimizes LLMs on Apple Silicon by applying different quantization precision to keys vs. values in the attention mechanism's KV cache. This allows for significant memory reduction (up to 72%) with minimal quality loss. The K8V4 configuration (8-bit keys, 4-bit values) offers the best balance, achieving a 59% memory reduction with only a 0.86% perplexity increase and faster inference. KVSplit includes an easy installer and a comprehensive benchmark suite to evaluate different configurations, enabling longer context windows and larger models on Apple devices.

Development

PostgreSQL Insert Optimization: From 2k to 92k Inserts/second

2025-05-16

The Hatchet team achieved a 31x speedup in PostgreSQL inserts, going from 2,000 to 92,000 inserts per second. Key optimizations included connection pooling, batched inserts, and the COPY command. They found that more connections aren't always better, requiring finding an optimal balance. Batched inserts dramatically increased throughput but also added latency, necessitating tuning batch size and flush intervals. The COPY command proved significantly more efficient when data return wasn't needed. The article hints at advanced optimization techniques like multi-table transactional inserts and using UNNEST, promising a deeper dive in a future post.

Development Batch Inserts
1 2 85 86 87 89 91 92 93 214 215