Category: Development

GoEnums: Elegant Enum Generation for Go

2025-04-26
GoEnums: Elegant Enum Generation for Go

Tired of Go's lack of native enum support? GoEnums generates comprehensive, type-safe enum implementations from simple constant declarations. Transform basic iota constants into feature-rich enums with string conversion, validation, JSON handling, database integration, and more. GoEnums supports custom fields, case-insensitive parsing, and provides detailed documentation and examples. Simplify your Go code with GoEnums!

Development

Building a Compact C Standard Library with Newlib on Bare Metal RISC-V

2025-04-26
Building a Compact C Standard Library with Newlib on Bare Metal RISC-V

This article demonstrates building a compact C standard library using Newlib on a bare-metal RISC-V system. The author implements basic UART functions, passing them to Newlib to enable printf functionality. The process covers Newlib's concept, cross-compilation toolchain setup, UART driver, system calls, and linker script creation. The article concludes with running the application in QEMU and analyzing the debug log. This is a practical tutorial on embedded systems development, showing how to utilize the C standard library in resource-constrained environments.

Development

HTTP Feeds: Asynchronous Event Streaming with Plain HTTP

2025-04-26

HTTP Feeds is a minimal specification for asynchronous event streaming and data replication using plain HTTP APIs. It defines a simple HTTP GET endpoint that returns a chronologically ordered sequence of CloudEvents in batched responses. Using the `lastEventId` query parameter, clients can poll infinitely for real-time updates, offering a message broker alternative (like Kafka or RabbitMQ). The spec also covers long polling for lower latency, data compaction and deletion for efficiency, and handling of event IDs for robust event processing.

Development Event Streaming

CONL: The Markdown of Configuration Files?

2025-04-26

Tired of the complexities of JSON, YAML, and TOML? A software engineer created CONL, a minimalist configuration file format aiming to be the "Markdown" of configuration files. CONL is easy to read and edit, features a JSON-like data model, and is simple to implement. It supports various data types including scalars, lists, and maps, with good support for multiline strings. The author also provides implementations for Rust and Go, along with a language server and Zed extension.

Development configuration files

Rocal UI: A Clean Template Engine in Rust

2025-04-26
Rocal UI: A Clean Template Engine in Rust

Rocal UI is a simple template engine written in Rust. While primarily designed for use with the Rocal framework to build views, it's adaptable to any Rust project. Its syntax is straightforward, supporting variable embedding, if-else statements, and for loops. The `view!{}` macro generates HTML strings that can be nested, facilitating partial template usage. Get started quickly with `cargo install rocal --features="cli"` and `rocal new -n yourapp`.

Development Template Engine

Tilt: Streamlining Kubernetes Microservice Development

2025-04-26
Tilt: Streamlining Kubernetes Microservice Development

Tilt simplifies Kubernetes microservice development by automating the entire process from code changes to new processes, including file watching, container image building, and environment updates. Say goodbye to cumbersome `docker build && kubectl apply` commands. Tilt offers comprehensive tutorials and guides, supports multiple programming languages, and boasts an active community and well-maintained documentation. Even Kubernetes newcomers can quickly get started and boost their development efficiency.

Development Dev Tool

The Curious Origin of Rubber Duck Debugging: A Pixar and Xerox PARC Tale

2025-04-26

The well-known programmer debugging technique, "rubber duck debugging," has a surprisingly hazy origin story. This article traces the technique's source, from the author's initial vague recollection of Bell Labs or Xerox PARC, to its confirmed widespread use within a Pixar team. The story involves programmers explaining problems to a 'rubber duck' (actually a colleague), often solving the problem during the explanation. This isn't simply asking for help; it's using the act of explaining to clarify one's own thinking. While Xerox PARC is a likely birthplace, the exact origin remains a mystery, awaiting further investigation.

Stuffed-Naan: Hiding Data in Plain Sight (Using NaNs)

2025-04-26
Stuffed-Naan: Hiding Data in Plain Sight (Using NaNs)

Stuffed-Naan is a novel library leveraging the peculiarities of JavaScript's NaN (Not a Number) values to hide and transport data. By cleverly encoding data into the mantissa of NaN values, Stuffed-Naan preserves the original data even after mathematical operations. The article humorously introduces this library, highlighting its high compression ratio, speed, and privacy features, while also mentioning the enterprise edition's added functionalities. While quirky, it effectively exploits the characteristics of IEEE 754 floating-point numbers.

Development data hiding

NNCPNET: Reclaiming Email's Tinkering Spirit

2025-04-26

From 1995 to 2019, the author self-hosted email, evolving from UUCP to VPS. But modern email complexities (SPF, DKIM, DMARC, TLS) made it increasingly difficult. Enter NNCPNET, an email system built on top of NNCP, a secure, asynchronous, onion-routed network. Like SSH to Telnet, NNCP modernizes email transport. NNCPNET offers a Docker container (multi-arch, Raspberry Pi compatible) with Exim, NNCP, verification tools, and automated nodelist updates. It's easy to set up, requires no inbound ports or constant internet connection, and even integrates with Thunderbird via IMAP. Reclaim the joy of email experimentation!

Development email server

Reviving DOS: A USB-Bootable Writing Machine for the 21st Century

2025-04-26
Reviving DOS: A USB-Bootable Writing Machine for the 21st Century

The sheer size and complexity of modern operating systems, even open-source ones, often evokes nostalgia for the days of DOS. A simple, lightweight OS, DOS could boot from three files and configuration was a matter of editing a couple of text files. Now, a community project offers a USB-bootable DOS experience, pre-loaded with classic writing applications like WordPerfect and Arnor Protext. This provides a distraction-free writing environment for those seeking to disconnect from the internet. While limited in functionality, it offers a surprisingly efficient and focused writing experience, harkening back to a simpler time.

Development Writing Tools

RetrOS-32: A 32-bit Hobby Operating System

2025-04-26
RetrOS-32: A 32-bit Hobby Operating System

RetrOS-32 is a 32-bit operating system written in C and Assembly, featuring graphics, multitasking, and networking. It includes user creation, a filesystem, and basic applications like a terminal, calculator, and simple games. The project supports various hardware platforms and offers Docker images for cross-platform compilation. While still under development, it boasts impressive functionality and is a noteworthy open-source project.

Development

YC-backed AI-Native QA Platform Seeking Backend Engineer

2025-04-26
YC-backed AI-Native QA Platform Seeking Backend Engineer

GPT Driver, a seed-stage AI-native QA solution startup founded by mobile app veterans, is hiring a remote Backend/Platform Engineer. Their product focuses on end-to-end automated testing for mobile apps, with plans to expand to web, desktop, and non-functional testing. The role requires 3+ years of experience, familiarity with cloud-based backend systems, and experience (or strong interest) in running mobile emulators/simulators and headless browsers. Competitive compensation ($4,000-$7,000/month), remote work, and equity are offered.

Development

Type Less in Your Terminal: Introducing Empty Enter Expander

2025-04-26
Type Less in Your Terminal: Introducing Empty Enter Expander

Empty Enter Expander is a zsh tool designed to boost terminal efficiency. It lets you execute pre-defined commands with a few keystrokes. Commands are stored in a module directory; directories and filenames must start with lowercase letters, serving as shortcuts. For example, after pressing Enter, 'g, l, Enter' executes a pre-defined git log command. Users can customize commands and shortcuts by placing scripts in the appropriate subdirectories within the module directory. Configuration involves modifying the .zprofile file to set the module path and source the zsh function.

Development

CACM's Practice Section: Call for Articles

2025-04-26

Communications of the ACM (CACM) is seeking submissions for its new Practice section, focusing on enhancing the skills and job performance of computing practitioners. The section welcomes articles on technical advancements, development practices, organizational structures, successful system examples, and other relevant topics. Articles should be broadly applicable and insightful, avoiding highly specialized content or detailed tutorials on specific technologies. Submissions are limited to 10 pages (approximately 6,000 words) and can be previously blogged, but not formally published elsewhere. Authors retain copyright. Potential authors are encouraged to contact the co-chairs before submitting.

Development Call for Papers

Goodbye Slow Configuration: Parallelizing Build Configuration with Makefiles

2025-04-26

Author Tavian Barnes complains about the inefficiency of existing build systems (Autoconf, CMake, Meson, etc.) in the configuration phase, which takes far longer than the build phase. He proposes a parallelized solution based on Makefiles, significantly improving efficiency by breaking down the configuration process into multiple concurrently executable tasks. The core idea is to leverage make's parallel capabilities to parallelize the originally sequential compiler test tasks, ultimately reducing configuration time from 38 seconds to 0.4 seconds. The article details the implementation, including helper scripts, Makefile writing techniques, and parallelization strategies. This article is valuable for developers seeking faster build speeds.

Development

GS-Calc: A Spreadsheet That Handles Millions of Rows with Ease

2025-04-25

GS-Calc is a modern spreadsheet redefining what "big data" means for desktop software. It effortlessly handles massive CSV and XLSX files with millions of rows and thousands of columns, boasting unlimited worksheets and subfolders. Its performance optimizations significantly outperform other spreadsheet solutions in tasks like loading text files, copy-pasting, and VLOOKUP/MATCH functions. Beyond this, GS-Calc provides powerful features including robust pivot tables, Monte Carlo simulations, regular expression support, and Python integration, making it an ideal tool for large-scale data analysis.

Development

Functional Logo Maker from a Single Prompt: LLM Potential and Limitations

2025-04-25
Functional Logo Maker from a Single Prompt: LLM Potential and Limitations

The author generated a fully functional logo maker, including export options, from a single prompt in Aider. Code snippets demonstrate the LLM's ability to generate font links, dependencies, and inline CSS styles, even including the latest SHA hash of a linked CDN library. However, expanding the code using Sonnet 3.7 significantly increased project complexity, resulting in uncompilable code. The author explores the differences in code generation and expansion capabilities between different LLMs (like Claude and GPT-4o), and the impact of context window size, output limits, and other factors on LLM applications. The limitations of context windows and output sizes in LLMs are highlighted as key challenges.

Dive into D: A Comprehensive Guide

2025-04-25

This book provides a comprehensive guide to D programming, covering everything from basic syntax to advanced features. With a clear chapter structure, it progressively introduces core D concepts: variables, data types, operators, control flow, functions, classes, object-oriented programming, templates, and concurrency. Numerous code examples and exercises are included to help readers grasp D's programming techniques. Suitable for both beginners and experienced programmers.

Magnitude: AI-Native Testing Framework for Web Apps

2025-04-25
Magnitude: AI-Native Testing Framework for Web Apps

Magnitude is a revolutionary open-source end-to-end testing framework for web applications, powered by visual AI agents that 'see' your interface and adapt to any changes. Build test cases easily with natural language, leverage a powerful reasoning agent for planning and adjustment, and rely on a fast visual agent for reliable execution. Run tests locally or within CI/CD pipelines; the framework automatically handles problems encountered during testing. Magnitude supports various LLMs, including Gemini 2.5 pro, Anthropic, and OpenAI, and offers a free visual model, Moondream. It simplifies test creation and execution significantly.

Differential Code Coverage for Debugging: A Powerful Technique

2025-04-25

This article introduces a powerful debugging technique: differential code coverage analysis. By comparing the code coverage of passing and failing tests, you can quickly pinpoint buggy code. The author uses Go's `math/big` library as an example, demonstrating how to use `go test` and `go tool cover` to generate coverage reports and `diff` to compare the differences. This efficiently identifies the code snippet causing the test failure, significantly reducing debugging time compared to traditional methods. The technique is illustrated by finding a bug in a few lines of code out of over 15,000.

Development code coverage

arXivLabs: Experimental Projects with Community Collaborators

2025-04-25
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 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

Formalizing Russell's Principia Mathematica in Lean4

2025-04-25
Formalizing Russell's Principia Mathematica in Lean4

This project formalizes the first volume of Bertrand Russell's Principia Mathematica using the Lean theorem prover. The goal is to ensure the formalization aligns with the book's theorems, avoiding confusion. The project rigorously follows Russell's proofs, minimizing added statements. A new tactic, `Syll`, handling a more general form of syllogism, was created. While Principia Mathematica is considered a 'monumental failure', the author found the formalization process enriching.

Development Principia Mathematica

Curry: A Seamless Blend of Functional and Logic Programming

2025-04-25
Curry: A Seamless Blend of Functional and Logic Programming

Curry is a declarative multi-paradigm programming language seamlessly combining features from functional programming (nested expressions, higher-order functions, strong typing, lazy evaluation) and logic programming (non-determinism, built-in search, free variables, partial data structures). Compared to single-paradigm languages, Curry offers advantages such as optimized evaluation for logic-oriented computations and flexible, non-deterministic pattern matching with user-defined functions.

Development

arXivLabs: Community-Driven Experiments on arXiv

2025-04-25
arXivLabs: Community-Driven Experiments on arXiv

arXivLabs is a platform enabling collaborators to build and share new features directly on the arXiv website. Participants, individuals and organizations alike, embrace arXiv's values of openness, community, excellence, and user data privacy. arXiv is committed to these principles and only partners with those who share them. Got an idea for a valuable community project? Explore arXivLabs!

Development

UIT: A Modular, Low-Memory File Processing Library for the Cloud

2025-04-25
UIT: A Modular, Low-Memory File Processing Library for the Cloud

UIT is a library designed for performant, modular, and low-memory file processing at scale in the cloud. It uses a four-step process: ingest, filter/transform, merge, and output. Built upon streaming and parallelization, UIT can run efficiently in low-memory environments like Cloudflare Workers. Its modular design allows for composability and the addition of custom modules. Current modules handle tasks like ZIP file ingestion, data merging, format conversion, and searching. UIT aims to become a standard for cloud-based file processing, empowering developers with a powerful and extensible tool.

Development file processing modular

Building Your Own Linux Debugger: Part 1 - Getting Started

2025-04-25

This is the first part of a ten-part series on building a Linux debugger from scratch. Learn the core mechanics of debuggers and implement features like launch, halt, continue, breakpoint setting (memory addresses, source lines, function entry), register and memory read/write, and single stepping. The tutorial uses C/C++, Linenoise, and libelfin, with each part's code available on GitHub. Future parts will cover advanced topics such as remote debugging, shared library support, expression evaluation, and multi-threaded debugging.

Development

Substack's Mysterious 'Network Error': A WAF vs. Technical Writing Showdown

2025-04-25
Substack's Mysterious 'Network Error': A WAF vs. Technical Writing Showdown

While writing a technical post about DNS resolution on Substack, the author encountered a 'Network Error' whenever they typed certain Linux system file paths (e.g., /etc/h*sts). Investigation revealed that Substack's Web Application Firewall (WAF) was triggering its defenses against path traversal or command injection attacks. This highlights a conflict between security and usability: the WAF, designed to protect the platform, creates a frustrating obstacle for technical writers needing to discuss these system paths. The author suggests Substack improve its WAF's contextual awareness, provide clearer error messages, and offer workarounds to better balance security and the needs of technical writers.

Development

GCC 15.1 Released: Major Update to the GNU Compiler Collection

2025-04-25

The GCC developers are excited to announce the release of GCC 15.1, a major release with significant new features and improvements over GCC 14.x. GCC, once the GNU C Compiler, now stands for the GNU Compiler Collection, supporting multiple programming languages. This release is a testament to the numerous contributors who provided new features, bug fixes, and improvements. For more information, visit the GCC project website or contact the GCC development mailing list.

Development

GCC 15.1: A Sneak Peek at C++26 Features

2025-04-25
GCC 15.1: A Sneak Peek at C++26 Features

GCC 15.1, expected in April or May 2025, boasts numerous C++ improvements. Key highlights include C++26 features like pack indexing, attributes for structured bindings, enhanced support for `=delete` functions, and more. The release also addresses numerous bug fixes, improves module support, and offers compile-time speed enhancements. Other notable additions are constexpr placement new, fixes for range-based for loops, earlier diagnosis of qualified lookup failures, and new warning options. GCC 15.1 promises significant efficiency gains and enhanced capabilities for C++ developers.

Development

AI Coding Assistants: Productivity Boost or Skill Atrophy?

2025-04-25
AI Coding Assistants: Productivity Boost or Skill Atrophy?

The rise of AI assistants in coding presents a paradox: increased productivity, but also the risk of skill atrophy through disuse. Research shows over-reliance on AI diminishes critical thinking and problem-solving abilities. This article explores the benefits and drawbacks of AI-assisted coding, suggesting developers adopt "AI hygiene" practices – verifying AI output, regularly coding without AI, etc. – to maintain sharp skills and avoid becoming overly dependent on AI, ultimately aiming to become truly skilled engineers.

Development skill atrophy
1 2 103 104 105 107 109 110 111 214 215