Category: Development

Lightweight, Ad-Free Jetpack Compose Compass App

2025-06-02
Lightweight, Ad-Free Jetpack Compose Compass App

MBCompass is a lightweight compass app built with Jetpack Compose. Unlike most compass apps burdened with ads and unnecessary features, MBCompass prioritizes accuracy and efficiency. It uses the device's magnetometer and accelerometer for real-time geomagnetic field updates. Features include displaying the user's current location (using OpenStreetMap), light/dark theme support, magnetic strength display, keep screen on, landscape orientation, smooth compass rotation, and sensor fusion for improved accuracy. Importantly, it's completely free, ad-free, and without in-app purchases.

Development Compass

Moonphase: A Cross-Language Early Warning System

2025-06-02
Moonphase: A Cross-Language Early Warning System

The `moonphase` project offers code snippets in various programming languages to calculate the phase of the moon. These implementations are based on the algorithm from moontool, a GUI program from the 80s by John Walker, which in turn relied on the book *Practical Astronomy With Your Calculator*. The project supports systems languages, scripting languages, and DSLs, with all implementations including test cases and calculating the illuminated fraction of the moon's surface. The project emphasizes concise, self-contained code, ready for copy-pasting into your projects.

A Self-Written C++ Standard Library: Simplicity vs. Completeness

2025-06-02
A Self-Written C++ Standard Library: Simplicity vs. Completeness

The author wrote a simplified C++ standard library for fun and shared it on Hacker News and Reddit. The post sparked a discussion, not about the library's completeness, but its naming and design philosophy. The author intentionally simplified the library's design, requiring all types to be 'well-behaved', thus avoiding complex exception handling. This significantly reduces the library's complexity but also limits its applicability. The post also explores the implementation of string splitting and iterators, comparing the differences between Python and C++. Ultimately, the author completed functionality for strings, regular expressions, and basic containers with impressively fast compilation times.

Development

arXivLabs: Experimenting with Community Collaboration

2025-06-02
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 share arXiv's values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only works with partners adhering to them. Have an idea to enhance the arXiv community? Explore arXivLabs.

Development

The Original INTERCAL-72 Compiler Source Code Rediscovered

2025-06-02
The Original INTERCAL-72 Compiler Source Code Rediscovered

The original source code for the INTERCAL-72 compiler, created by Don Woods and Jim Lyon at Princeton in 1972, has been rediscovered and made public. INTERCAL, a notorious esolang (esoteric programming language), intentionally subverts conventional programming practices with its bizarre syntax and counter-intuitive design. This rediscovery allows programmers to experience firsthand this legendary language and understand its significant influence on the evolution of esoteric programming languages.

The Cost-Benefit Reality of Formal Methods Projects

2025-06-02

This article, based on the author's experience, explores the challenges of applying formal methods (FM) in real-world projects. The author argues that the success of FM projects hinges on a cost-benefit balance. Many potential FM projects fail to materialize due to high costs, difficulties in quantifying benefits, or the inability to demonstrate short-term value. The article highlights that successful FM projects require early value delivery, translating complex technical results into client-understandable language, and prioritizing low-cost reliability assurance measures, such as testing and code reviews. The author emphasizes that FM is not a silver bullet and should be combined with other methods to improve software reliability and security.

Development cost-benefit analysis

Stack Overflow Dev Survey 2024: AI's Impact on Developer Happiness and Salaries

2025-06-01
Stack Overflow Dev Survey 2024: AI's Impact on Developer Happiness and Salaries

Stack Overflow's 15th annual developer survey reveals a mixed bag for developers in the age of AI. While AI tool adoption is soaring (76% using or planning to use them), overall developer happiness remains low (80% unhappy or complacent). Salary, not remote work, is the key driver of satisfaction, with significant salary variations across roles and regions. Concerns around AI accuracy and misinformation are also surfacing. The survey dives deep into salary trends, finding pay cuts in many roles in 2024, and explores how AI is changing workflows and developer community dynamics. It's a must-read for anyone interested in the current state of the tech workforce.

Software Research: The Myth of the 100x Bug Cost and the Lack of Empirical Evidence

2025-06-01
Software Research: The Myth of the 100x Bug Cost and the Lack of Empirical Evidence

An article examining the cost of fixing software bugs debunks a long-held myth: that fixing bugs gets exponentially more expensive over time. This myth stems from a non-existent IBM study. In reality, existing research offers weak support for this claim, with some studies showing no significant difference in resolution times. The article calls for a greater emphasis on empirical software engineering research, highlighting the importance of code reviews, short iteration cycles, and feedback loops, while criticizing academia's tendency to prioritize theory over practice.

Development empiricism

arXivLabs: Experimental Projects with Community Collaborators

2025-06-01
arXivLabs: Experimental Projects with Community Collaborators

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

ZenTransfer: A Free File Transfer Utility for Photographers

2025-06-01
ZenTransfer: A Free File Transfer Utility for Photographers

ZenTransfer is a free file transfer utility for Mac and Windows, designed for professional photographers. It empties SD cards and ensures 3-2-1 backups, organizes files into date-based folders, uploads to AWS S3, Azure, Google Cloud Platform, and relays to multiple FTP or cloud services via zentransfer.io. Currently in beta, developer Chris seeks user feedback to determine future development and feature additions. Support the project by sharing, donating, or subscribing to zentransfer.io.

Development photographer

Ladybird Browser: May Update - Performance Boost and New Features

2025-06-01
Ladybird Browser: May Update - Performance Boost and New Features

The Ladybird browser project had a productive May, merging 261 pull requests from 53 contributors. The project welcomed new sponsors and officially received tax-exempt status. Key accomplishments this month include: adding 15,961 new passing Web Platform Tests (WPT) with significantly improved runtime speed; implementing a new, more tolerant JavaScript date parser; completing clipboard API and transferable streams implementations; initial support for SharedWorker; replacing the in-house BigInt implementation with LibTomMath for performance improvements; implementing var() and attr() in CSS shorthands; and performance optimizations resulting in a 10% speedup on Speedometer 2.1.

Development Ladybird Browser

Cloudflare Durable Objects: The Ultimate Guide

2025-06-01
Cloudflare Durable Objects: The Ultimate Guide

This comprehensive guide dives deep into Cloudflare Durable Objects, a powerful serverless technology. Durable Objects let developers spin up near-infinite mini-servers globally, with built-in persistent storage and the ability to hibernate between requests. They excel in multiplayer scenarios, boast built-in WebSockets, and offer alarms for triggering code outside HTTP requests. Durable Objects simplify building stateful serverless applications and provide efficient data storage with SQLite support. The article covers architecture, APIs, cost, and real-world use cases, offering a complete guide to understanding and leveraging this revolutionary technology.

Development

Amiga OS Architecture: Lessons from a Legacy System

2025-06-01

This article delves into the Amiga OS API and ABI, focusing on its unique direct-call shared library approach, eliminating runtime linking. This is achieved by calling a table of branch instructions at a known location within the library. Exec.library, always at the same address, provides functions to get the addresses of other libraries' tables. This ABI is language-agnostic and functions even with modern memory protection. Amiga OS is further praised for its efficient kernel, messaging system, and Intuition windowing system, which enables asynchronous event handling, avoiding the program freezes common in modern systems. The design principles of Amiga OS remain relevant today.

Development

Tailscale Unveils Grants: Next-Gen Access Controls

2025-06-01
Tailscale Unveils Grants: Next-Gen Access Controls

Tailscale announces the general availability of Grants, its next-generation access control system. Grants unify network and application permissions into a single, simpler syntax, improving upon the existing ACLs. It simplifies policy writing, adds features like embedding Tailscale directly into applications via the tsnet library for identity-based authorization and custom application capabilities, and introduces a `via` field for granular traffic routing. Crucially, Tailscale will continue supporting the older ACL syntax indefinitely, allowing for incremental migration.

Development

Svelte's State Management Beats React: Farewell Prop Drilling

2025-06-01
Svelte's State Management Beats React: Farewell Prop Drilling

Managing state in React can become a headache when building complex applications. By default, React lacks built-in global state management, forcing developers to rely on third-party libraries like Zustand or Jotai to overcome prop drilling, leading to complex and hard-to-maintain projects. In contrast, Svelte offers a clean and easy-to-use state management solution—Svelte stores. It requires no additional dependencies and uses intuitive syntax, greatly simplifying state management, allowing developers to focus on business logic rather than wrestling with state passing. This article compares React and Svelte's state management approaches with code examples and highlights the advantages of Svelte stores.

Development

Quoting in JavaScript: Inspired by Lisp for Modular Front-End Development

2025-06-01
Quoting in JavaScript: Inspired by Lisp for Modular Front-End Development

This article explores how the "code is data" concept from Lisp can improve modularity in JavaScript for web app development. The author points out JavaScript's lack of Lisp's quoting mechanism, preventing direct manipulation of code snippets as data. However, by mimicking quoting—sending client-side module identifiers instead of the actual code to the client—delayed execution and modular composition are achieved. This allows backend programs to compose server-side and client-side behaviors, ensuring all server-side logic completes within a single request/response cycle and enabling progressive streaming, thus improving efficiency and maintainability of web applications.

Development

Vibe Coding with AI: Is This the End for Programmers?

2025-06-01
Vibe Coding with AI: Is This the End for Programmers?

Using AI chatbots for 'vibe coding' is rapidly changing software development. BOND, a startup, launched a new online productivity tool in under a day using AI to generate code. While this speed is impressive, it raises concerns about the future of programmers. Some believe AI will replace coders entirely, while others foresee a shift towards AI-assisted development, focusing on complex tasks and creative problem-solving. Although AI lowers the barrier to entry, human expertise remains vital for code refinement and complex projects.

Development

LLMs Unleash a Flood of Sophisticated Spam: The Moderator's Nightmare

2025-06-01

A veteran content moderator recounts two decades of battling spam, highlighting the transformative impact of Large Language Models (LLMs). LLMs have drastically lowered the barrier to entry for spammers, generating realistic, context-aware comments and summaries that are increasingly difficult to detect. This evolution encompasses not just text-based spam but also voice scams, raising serious concerns about future misuse. The author expresses alarm over the escalating challenge, urging attention to this growing problem and the need for innovative solutions to protect online spaces from the relentless tide of AI-generated misinformation.

Development

Compiler Optimization's Impact on Memory-Bound Code: -O3 Isn't Always King

2025-06-01
Compiler Optimization's Impact on Memory-Bound Code: -O3 Isn't Always King

Research from Johnny's Software Lab shows that the benefits of compiler optimizations (like GCC's -O3) aren't always dramatic in memory-bound code. They tested two kernels: one with high Instruction Level Parallelism (ILP), the other with low ILP. Results showed a 3x speedup for the high-ILP kernel with -O3. However, for the low-ILP kernel, optimization offered minimal gains because memory access became the bottleneck. This demonstrates that in highly memory-bound scenarios, even with fewer instructions, performance improvements are limited by low ILP, requiring optimization strategies tailored to code characteristics.

Browser Extension: Redirect URLs with Regex

2025-06-01
Browser Extension: Redirect URLs with Regex

This browser extension (Firefox, Chrome, etc.) lets you redirect URLs based on custom regex or wildcard patterns. It's powerful for ad blocking, forcing desktop sites, streamlining DuckDuckGo searches, and more. Examples include redirecting YouTube Shorts to regular YouTube, or Google searches with !bangs to DuckDuckGo. Pre-built rules are included for common use cases.

Development URL redirect

Figma Slides: A Presentation Disaster

2025-06-01
Figma Slides: A Presentation Disaster

The author attempted to use Figma Slides for a presentation, initially impressed by its powerful grid view, auto layout, and components. However, the actual presentation was a disaster: offline mode malfunctioned, animations were buggy, and repeated clicks were needed to advance slides. In stark contrast, the author's long-time use of Keynote, while simpler, proved consistently reliable. The experience ultimately underscored the value of dependable, if less flashy, technology.

Development Presentation Software

Structured Errors in Rust: Weighing the Tradeoffs

2025-06-01

This article explores the advantages and disadvantages of using structured errors (e.g., with `thiserror`) versus `anyhow` in Rust applications. Based on experience maintaining a large Rust web server, the author argues that custom error types, while increasing code and maintenance overhead, offer significant benefits: clearly showing all potential failure modes of a function, improving code readability and review; creating more descriptive interfaces; avoiding redundant error messages; enforcing context addition; and allowing for extra data and functionality. However, drawbacks include increased code volume, naming challenges, maintenance overhead, and potential performance concerns. The author concludes that the trade-off should be assessed case-by-case, suggesting that in large applications, the advantages of structured errors may outweigh the costs.

Development

NixOS Network Installation with nixos-anywhere: A Declarative Approach

2025-06-01
NixOS Network Installation with nixos-anywhere: A Declarative Approach

After a decade-long hiatus, the author revisits NixOS and shares their experience with network installation using nixos-anywhere. Unlike graphical or manual methods, nixos-anywhere allows declarative configuration and installation of NixOS on remote machines. Configuration files are version-controlled, ensuring reproducibility and system integrity. The article details building a custom installer ISO and using nixos-anywhere for remote installation, highlighting the benefits of NixOS's declarative configuration and version control.

tldx: Blazing Fast Domain Name Brainstorming

2025-06-01
tldx: Blazing Fast Domain Name Brainstorming

tldx is a command-line tool that rapidly generates and checks the availability of domain names. It allows customization of prefixes, suffixes, and top-level domains (TLDs), performing concurrent checks for efficiency. Simply input keywords, and tldx quickly returns available domain combinations, a boon for founders and developers seeking the perfect name. Supporting macOS, Linux, and Windows, tldx boasts easy installation via brew or manual download.

Structured Errors in Go: Bridging the Gap Between Logging and Error Handling

2025-06-01
Structured Errors in Go: Bridging the Gap Between Logging and Error Handling

This post details experiments in improving error management in medium-sized Go programs, particularly HTTP APIs. The author highlights the limitations of simple error strings for structured logging and efficient filtering. A context-based approach to structured errors is presented, embedding metadata within errors for seamless integration with structured logging. This approach, using custom error types and the context package, enhances error information richness and readability without significant code overhead, simplifying debugging. The author promotes their open-source library, `fault`, to streamline this process.

Development Structured Logging

Nature Programming Language: An Evolution of Go?

2025-06-01
Nature Programming Language: An Evolution of Go?

Nature is a general-purpose open-source programming language designed for an elegant and concise development experience, enabling developers to build secure and reliable cross-platform software simply and efficiently. It leverages Go's strengths, such as its high-performance runtime and garbage collection, while addressing some of Go's shortcomings, including a more robust type system and improved error handling. Nature has reached an early usable version, supporting Linux and macOS, and offers a rich standard library and example projects. It's suitable for game development, scientific computing, AI, operating systems, and web development.

Development

Resurrecting the Dead: Running Android Apps on Unsupported Windows Versions with Project Astoria

2025-06-01
Resurrecting the Dead: Running Android Apps on Unsupported Windows Versions with Project Astoria

This post details how to run Project Astoria, Microsoft's defunct Android app bridging solution, on various unsupported Windows versions, from Windows Desktop to the Anniversary Update and beyond. By cleverly utilizing files and registry entries from old Windows 10 Mobile builds and overcoming the 'time bomb' issue of expired builds, the author successfully gets Android apps running. The article thoroughly outlines each step, including copying files, importing registry keys, configuring services, and deploying APKs using a patched WConnectAgent tool. The author concludes by successfully running Android CPU-Z on Windows 10.

Development

$10/Month Serverless Lakehouse: A DuckLake Implementation

2025-06-01
$10/Month Serverless Lakehouse: A DuckLake Implementation

This article demonstrates building a serverless Lakehouse under $10/month using DuckLake and DuckDB. By cleverly combining Cloudflare R2 storage, Cloudflare Containers for compute, and NeonDB for metadata, a flexible, scalable, and cost-effective Lakehouse architecture is achieved. The article details the deployment process, including dependency installation, image building, secret setup, and query execution, with a link to the complete GitHub repository. This showcases building a flexible Lakehouse for smaller projects or teams without relying on complex and expensive solutions from major cloud providers.

Development

arXivLabs: Community Collaboration on New arXiv Features

2025-06-01
arXivLabs: Community Collaboration on New arXiv Features

arXivLabs is a framework for collaborators to develop and share new features directly on the arXiv website. Individuals and organizations involved share arXiv's values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only works with partners who adhere to them. Have an idea to improve the arXiv community? Learn more about arXivLabs.

Development
1 2 70 71 72 74 76 77 78 214 215