Category: Development

Why Go is the Perfect Language for Building AI Agents

2025-06-09

This article explores the advantages of Go for building AI agents. The author argues that the rise of AI agents necessitates high concurrency, long-running processes, and efficient resource management. Go excels in these areas due to its lightweight goroutines, efficient concurrency model, robust standard library, and convenient cancellation mechanisms. The article compares Go to other languages like Python and Node.js, highlighting Go's superior handling of concurrency, memory management, and error handling. A code example illustrates Go's elegant approach to inter-agent communication and state management. While acknowledging Go's relative lack of machine learning libraries, the article strongly advocates for Go as the ideal choice for building high-performance, scalable AI agents.

Development

Glowstick: Safe and Efficient Tensor Operations in Rust

2025-06-09
Glowstick: Safe and Efficient Tensor Operations in Rust

Glowstick is a Rust crate that makes working with tensors safe, easy, and fun by tracking tensor shapes within the type system. It offers a variety of tensor operations including matrix multiplication, convolution, reshaping, squeezing, flattening, and more. Integrating seamlessly with popular Rust ML frameworks like Candle and Burn, Glowstick empowers Rust developers with powerful tensor computation capabilities, significantly simplifying the development of deep learning models. Note that the project is currently pre-1.0 and subject to breaking changes.

Development Tensor

The Modern Guide to OAuth 2.0: Beyond the Specs

2025-06-09
The Modern Guide to OAuth 2.0: Beyond the Specs

This isn't just another OAuth 2.0 guide; it's a deep dive into real-world OAuth usage based on the experience of building FusionAuth, an OAuth server with over a million downloads. The guide details eight common OAuth modes, including local login, third-party login, enterprise login, service authorization, and machine-to-machine authentication, explaining each mode's workflow and security considerations. It also delves into the authorization code grant, PKCE, JWTs, token refresh, and user info retrieval, offering practical implementation advice.

Development

Gödel Prize Awarded for Breakthrough in Explicit Two-Source Extractors

2025-06-09
Gödel Prize Awarded for Breakthrough in Explicit Two-Source Extractors

The 2025 Gödel Prize was awarded to Eshan Chattopadhyay and David Zuckerman for their groundbreaking paper, "Explicit two-source extractors and resilient functions," published in STOC 2016 and the Annals of Math 2019. This work significantly improves the construction of Ramsey graphs, achieving an exponential bound far exceeding previous methods. The result is lauded for its implications in derandomization and its surprising application to Ramsey theory, sparking debate about its dual significance in pseudorandomness and combinatorics.

EU OS: A Common Linux Distro for the Public Sector (But Not an EU Project)

2025-06-09
EU OS: A Common Linux Distro for the Public Sector (But Not an EU Project)

EU OS isn't an official European Union project, but it should be. It's a proof-of-concept Fedora-based Linux distribution using KDE Plasma and bootable containers, designed for public sector organizations. Its value lies in providing a common base OS with options for layered modifications (national, regional, organizational). This ensures a consistent desktop environment, user management, and data handling. EU OS also partners with HackDays and endof10.org, promoting Linux adoption.

Development Public Sector

Software is About Promises: A Case Study in Personal Library Science

2025-06-09
Software is About Promises: A Case Study in Personal Library Science

This article explores the crucial role of 'promises' in software development. The author argues that a developer's promises to users, much like a product specification, should be clear and testable. Using 'Your Commonbase', a personal library software, as a case study, the article demonstrates how to break down software functionality (store, search, synthesize, share) into specific, achievable promises and prioritize development based on resources. The author highlights how clear promises protect developers, users, and the software's integrity.

Development Promises Case Study

tcpulse: A High-Performance Network Load Generator in Go

2025-06-09
tcpulse: A High-Performance Network Load Generator in Go

tcpulse is a high-performance TCP/UDP connection load generator and performance measurement tool written in Go. It operates in server and client modes, enabling load testing, connection establishment performance measurement, sustained connection performance testing, protocol comparison, and infrastructure validation. The client mode offers persistent and ephemeral connection patterns to simulate various application scenarios. tcpulse provides real-time metrics (latency percentiles, throughput, connection counts), rate limiting, multi-target support, TCP/UDP protocol support, and platform optimizations. Results are output in JSON Lines format for easy integration with monitoring and analysis tools.

Zig's Native x86 Backend Achieves 70% Faster Compilation

2025-06-09

The Zig compiler team announced that its native x86 backend is now production-ready, delivering significant speed improvements. Compared to the LLVM backend, the Zig backend boasts a 70% compilation speedup, reducing build times from 75 seconds to 20 seconds on large projects. This is attributed to optimizations in code generation and parallelization. Future plans include aarch64 support. This release also includes improved UBSan error messages for better debugging and enhanced cross-compilation support for FreeBSD and NetBSD.

Development x86 Backend

OpenBSD Disk I/O Performance: More Threads Aren't Always Better

2025-06-08
OpenBSD Disk I/O Performance: More Threads Aren't Always Better

This post benchmarks the random read/write and latency performance of a 1TB Crucial P3 Plus SSD on OpenBSD 7.7 using fio(1). Results show good I/O scalability in OpenBSD, but increasing job counts beyond an optimal point (6-8 concurrent jobs) degrades performance due to contention and CPU overhead. Compared to Linux, OpenBSD shows more sensitivity to concurrency in NVMe writes. The test also reveals that excessive threads significantly impact desktop responsiveness. Future tests will extend to USB storage.

Development I/O performance

From Zero to iOS App in Three Days: An AI-Powered Development Journey

2025-06-08
From Zero to iOS App in Three Days: An AI-Powered Development Journey

The author, a product and GTM expert with limited coding experience, built a functional iOS photo management app in just three days using AI assistance. Leveraging Gemini, they navigated challenges such as Apple's CLGeocoder limitations in China and overcame coding hurdles with AI-assisted debugging and learning. The app, designed for one-time purchase instead of a subscription model, reflects a critique of current iOS app marketing practices.

(mgx.me)
Development AI-assisted Coding

Android's Ethernet Adapter Mystery: A Stupid Regex

2025-06-08
Android's Ethernet Adapter Mystery: A Stupid Regex

This post details the author's frustrating attempt to use a USB Ethernet adapter on their Android phone. The investigation revealed the problem wasn't driver support, but rather Android's `EthernetTracker` service using a regex `eth\d` to match Ethernet interface names. CDC Ethernet adapters create interfaces named `usbX`, resulting in non-recognition. The author meticulously documents the debugging process, including obtaining kernel configuration and analyzing Android source code. The root cause? A simple, restrictive regex. The post showcases impressive problem-solving skills but also highlights a potential flaw in Android's design.

futa: A Functionally Useless Terminal Assistant

2025-06-08
futa: A Functionally Useless Terminal Assistant

futa, powered by qwen3, is a terminal assistant that executes simple commands in an incredibly resource-intensive way. Users input any text, and futa uses a large language model to interpret it and then runs what it deems appropriate, potentially including (but not limited to) starting Docker containers or running git commands. futa is characterized by overconfidence, verbose explanations, and extremely low productivity; it might even corrupt your filesystem. The developers explicitly state futa is functionally useless and are not responsible for any resulting damage. In short, futa is a tool for entertainment and experiencing the quirks of AI, unsuitable for production environments.

Development Terminal Tool

Compiler Explorer: 92 Million Compilations a Year and Still Going Strong

2025-06-08

Compiler Explorer, the online compiler exploration website, handles a staggering 92 million compilations annually. This article dives deep into its architecture, from the Monaco editor frontend and CloudFront/load balancer to the secure sandboxing with nsjail. To manage this massive workload, it leverages AWS autoscaling and boasts nearly 4TB of over 3000 compiler versions supporting 81 languages. The author details the challenges and solutions in security, version management, cross-platform support (Windows, ARM, and GPU), and cost optimization, showcasing the evolution from a weekend project to a robust platform serving thousands of developers.

Development

Replacing Restic's REST Server with Nginx for Backups

2025-06-08

The author cleverly uses Nginx to replace Restic's REST server backup solution, creating two Nginx virtual hosts: append-only and admin. The append-only host prevents data deletion, while the admin host allows management operations. The configuration uses Nginx's DAV and LUA modules, employing several tricks to handle HTTP methods and response codes, and using regexes to modify the autoindex's JSON output. While the approach is somewhat hacky, it's effective and efficient. The author also discusses security concerns and mentions plans to simplify the configuration in the future.

Development

AI-Powered: A Printer That Transcends Reality

2025-06-08
AI-Powered: A Printer That Transcends Reality

An ordinary IT department encounters a magical printer: it can print documents from parallel universes, manipulate paper trays in non-Euclidean space, and even rewrite the laws of mathematics! This article recounts the author's conversation with the AI model Claude, starting from the LPR printing system and culminating in the construction of a hyper-realistic printer with a stargate, Atlantis defense systems, and a full-dimensional arsenal. The entire process showcases the powerful creative generation capabilities of AI and the author's ingenious methods of guiding the AI. The resulting code is full of whimsical ideas, making it quite humorous.

Development Fantasy Story

binfmtc: Execute C code as scripts

2025-06-08

Tired of writing Makefiles for shell scripts? binfmtc lets you write scripts directly in C! It uses the Linux binfmt_misc mechanism to automatically compile and execute your C code when the script is run. Simply add a special comment to your C script, make it executable, and enjoy the efficiency of C with the convenience of shell scripting. Currently supports GCC, G77, and GPC, with plans to support more compilers like GNAT, Gobjc, and Mono.

Development

Agentic Coding: Hype or Reality?

2025-06-08
Agentic Coding: Hype or Reality?

This post reflects on the author's experience with LLMs and critically assesses the hype surrounding 'agentic coding'. While LLMs can generate usable code, building complete software projects, like an HTTP/2 server, requires intense micromanagement and algorithmic supervision. LLMs frequently get stuck, demanding human intervention and context adjustments. The author argues that current 'agentic coding' tools are largely overhyped, their success relying on the effort of experienced engineers rather than autonomous LLM capabilities. Only by addressing the problem of LLM context management can their true potential be unleashed.

Development

Gaussian Quadrature: A Powerful Numerical Integration Technique

2025-06-08

This blog post explores Gaussian quadrature, a powerful numerical integration technique, specifically Chebyshev-Gauss quadrature. It approximates definite integrals by evaluating the function at specific nodes and summing the weighted values. Compared to traditional methods, it achieves higher accuracy with fewer nodes, particularly for integrals over the interval [-1,1]. The post explains how to adapt general intervals and function forms to fit the Chebyshev-Gauss quadrature, demonstrating its application and advantages with an example. The technique found application in estimating sea level change rates.

Cloudflare's AI-Generated OAuth Library: A Double-Edged Sword

2025-06-08
Cloudflare's AI-Generated OAuth Library: A Double-Edged Sword

Cloudflare built a new OAuth provider library almost entirely using Anthropic's Claude LLM. While the code is well-structured and tests pass, the author found security issues, such as overly permissive CORS settings, missing standard security headers, and incorrect OAuth spec implementation. Despite engineer review of Claude's output, critical vulnerabilities remain, highlighting the risks of AI-generated code even under scrutiny. This raises questions about the reliability and security of AI-assisted programming and the crucial role of human expertise in security-critical systems.

Development

From Emacs to Obsidian: A Developer's Journey in Personal Knowledge Management

2025-06-08

A developer shares their journey from Emacs to Obsidian. While powerful, Emacs's high maintenance cost led to a switch to the more user-friendly Obsidian, coupled with the PARA method for managing notes, tasks, and resources. The author argues that maintaining a personal knowledge base is crucial in the age of AI, fostering independent thought and avoiding over-reliance on AI tools. Obsidian becomes a tool for independent thinking, not an AI appendage.

Fray: A Concurrency Testing Tool for Java

2025-06-08
Fray: A Concurrency Testing Tool for Java

Fray is a powerful concurrency testing tool for Java designed to help developers identify and debug elusive race conditions that manifest as assertion violations, runtime exceptions, or deadlocks. Leveraging advanced techniques like probabilistic concurrency testing and partial order sampling, Fray offers controlled concurrency testing and deterministic replay for debugging specific thread interleavings. Easily integrated into existing testing frameworks like JUnit 5 (using annotations) and others, Fray also provides Gradle and Maven plugins for streamlined setup. Contributions are welcome!

Claude Code: Security First, But at What Cost?

2025-06-08

This post delves into the inner workings of Anthropic's Claude Code, a coding assistant. By intercepting communications between Claude Code and the Anthropic API using mitmproxy, the author reveals that it's slower and more expensive than alternatives like Cursor. This is due to its stringent security policies and multi-layered tool invocations. Claude Code meticulously assesses the security of every bash command and uses multiple tools (View, GlobTool, Bash, etc.) to process user requests, resulting in extra LLM calls and increased cost. While this approach prioritizes security, it compromises efficiency. Although Claude Code boasts a superior UX compared to other tools, its cost and speed require further optimization.

Development security policy

The Android Maintenance Nightmare: Why the Google Play Store App Count Plummeted

2025-06-08
The Android Maintenance Nightmare: Why the Google Play Store App Count Plummeted

A hobby Android developer with five years of experience maintaining MusicSync, a Google Play Music + Podcast replacement, shares the struggles of Android app maintenance and explains the 47% decline in Google Play Store apps. The article highlights the significant challenges compared to backend development, including Java/Kotlin compatibility issues, breaking changes from Google's frequent library updates (e.g., ExoPlayer, Google Auth), dropping support for older Android versions, forced upgrades across various components (Android Studio, Gradle, SDKs), unpredictable UI design guideline changes, and the deprecation or lack of maintenance for crucial third-party libraries like Picasso, Glide, OkHttp, and EventBus. The dual versioning scheme for Android versions and API levels adds further confusion. The conclusion emphasizes the higher maintenance cost of Android apps compared to server-side development.

Development App Maintenance

LLMs: Helpful Coding Assistants or Creativity Killers?

2025-06-08

This article expresses concern over the over-reliance on LLMs. While acknowledging their potential to assist in coding and improve efficiency, the author argues that excessive dependence on LLMs weakens programmers' independent thinking and problem-solving skills, particularly for beginners, hindering their grasp of fundamental programming knowledge and the development of programming thinking. The author also points out that the quality of code generated by LLMs is inconsistent, prone to errors, and lacks creativity and artistry, potentially leading to a decline in code quality and even academic dishonesty. The author calls for regulation and limitations on the use of LLMs, especially in education, to avoid their negative impact on students' learning and creativity.

Development

Creating Hard Disk Images in DOSBox-X

2025-06-08

This guide explains how to create hard disk images within DOSBox-X. You can use the menu or the command-line utility IMGMAKE to create images of various sizes, supporting FAT12, FAT16, and FAT32 filesystems. Note that Windows 98's built-in driver has limitations for disks larger than 128GB; larger images may require third-party drivers. The guide provides examples using predefined templates and custom sizes, and points out limitations encountered when creating FAT32 partitions larger than 32GB in Windows 98 and later.

Development Hard Disk Image

arXivLabs: Experimental Projects with Community Collaboration

2025-06-08
arXivLabs: Experimental Projects with Community Collaboration

arXivLabs is a framework for collaborators to develop and share new arXiv features directly on the website. Participants share arXiv's values of openness, community, excellence, and user data privacy. arXiv only works with partners adhering to these values. Got an idea to improve the arXiv community? Learn more about arXivLabs.

Development

arXivLabs: Experimenting with Community Collaboration

2025-06-08
arXivLabs: Experimenting with Community Collaboration

arXivLabs is a framework for collaborators to develop and share new arXiv features directly on the website. Individuals and organizations involved share arXiv's values of openness, community, excellence, and user data privacy. arXiv only partners with those adhering to these principles. Got an idea to enhance the arXiv community? Learn more about arXivLabs.

Development

Beyond 'Vibe Coding': Practical Guide to Shipping Real Code with Claude

2025-06-07

This post details the author's team's experience in boosting software development efficiency using Claude. It critiques the risks of relying solely on AI 'vibe coding', emphasizing the importance of robust development practices. Three AI-assisted development modes are proposed: AI as first-drafter, pair-programmer, and validator. The article highlights the crucial role of CLAUDE.md documentation and anchor comments in large-scale projects, and underscores the paramount importance of writing tests—a task AI should never handle. The author stresses that tests represent human intent and are key to preventing AI-introduced errors. Further discussion covers token management, fresh Claude sessions, fostering the right team culture, and offers actionable advice.

Development

Beyond Vibe Coding: The Rise of Cyborg Coders

2025-06-07
Beyond Vibe Coding: The Rise of Cyborg Coders

This article critiques the 'vibe coding' approach, where developers rely solely on intuition and instinct. It argues this method is outdated and dangerous in today's software development landscape. The author introduces 'cyborg coding,' advocating for collaboration between human developers and AI tools. AI assists with coding, debugging, and brainstorming, while humans provide judgment, ethics, and direction. The article emphasizes that AI tools are not cheats but productivity accelerators. The key is to use AI effectively as a partner, not a replacement, to build better software systems.

Development

Seismic Shift in Algorithm Simulation: Memory Breakthrough

2025-06-07

A groundbreaking result has shaken the foundations of algorithm simulation. Ryan Williams's new research demonstrates that all algorithms can be simulated using significantly less memory than their original runtime, a vast improvement over previous best-known results. This breakthrough leverages a space-efficient tree evaluation algorithm by Cook and Mertz, cleverly segmenting Turing machine computations and using finite field encoding to achieve a near-quadratic improvement in space complexity. While not preserving the time bound, this landmark result has profound implications for complexity theory and opens avenues for future research, such as further reducing space complexity bounds, potentially leading to the separation of P and PSPACE complexity classes.

Development algorithm complexity
1 2 64 65 66 68 70 71 72 214 215