Category: Development

sd: A Blazing Fast CLI Find & Replace Utility

2025-09-02
sd: A Blazing Fast CLI Find & Replace Utility

sd is an intuitive command-line find and replace tool that's significantly faster and easier to use than sed and awk. It leverages regex syntax familiar from JavaScript and Python, offering a string-literal mode to avoid escaping hassles. sd boasts a clean, readable syntax and common-sense defaults. Its speed advantage is particularly noticeable with large files (e.g., a 1.5GB JSON file), outperforming sed by factors of 2.35x and even 11.93x. Features include in-place file modification, previewing changes, cross-project search and replace, and rich regex support, including capture groups and named capture groups. Install sd via cargo or various package managers.

Development

Firefox Launches New Tools for Focus, Privacy, and Smoother Mobile Browsing

2025-09-02

Firefox has rolled out several new features enhancing user privacy, focus, and mobile browsing experience. Android users get auto-locking private tabs for enhanced security, expanded language translation to Japanese, Chinese, Korean and more, while iOS users benefit from smarter password suggestions, a cleaner UI with an upgraded dark mode for a more focused browsing experience.

Development Mobile Browsing

GRiSP: Tiny BEAM VMs for Embedded and Real-Time Systems

2025-09-02
GRiSP: Tiny BEAM VMs for Embedded and Real-Time Systems

The GRiSP family introduces three Erlang/Elixir runtimes: Metal, a tiny BEAM for microcontrollers fitting in 16MB RAM; Alloy, a Buildroot-based real-time Linux system supporting multiple VMs; and Forge, a Yocto-based solution offering customization and long-term support. All boast fast boot times, security, and direct BEAM boot, offering a compelling option for edge computing and real-time applications.

Development Real-time systems

Next.js Logging Nightmare: A Struggle with Production Logging

2025-09-02
Next.js Logging Nightmare: A Struggle with Production Logging

The author encountered a series of challenges while attempting to add production logging to a Next.js service. Next.js's middleware mechanism is heavily restricted, and AsyncLocalStorage couldn't bridge the rendering context, resulting in logging failures in pages and layout components. The author tried various methods, including a custom server, ultimately discovering that Next.js's design limited the implementation of logging features. A comparison with SvelteKit highlights Next.js's shortcomings in logging and the inefficiency of its GitHub issue tracker. The author expresses dissatisfaction with Next.js and considers alternatives for future projects.

Development

The Thermocline of Truth in IT Projects

2025-09-02

This article explores the 'thermocline of truth' phenomenon in large IT projects: a barrier to accurate information within the organizational structure, where lower-level employees know the real progress while upper management holds an overly optimistic view. This stems from a lack of objective metrics, engineers' optimism, managers' reluctance to deliver bad news, and upper management rewarding good news and punishing bad news. The author uses personal anecdotes and real-world examples to illustrate this, emphasizing that breaking the 'thermocline' requires honesty from below, rewarding honesty from above, and avoiding unrealistic project timelines.

Development

A Programmer's Oath: Protect User, Data, and Truth

2025-09-02

Inspired by the Latin motto "Primum non nocere" (First, do no harm), the author proposes a new motto for programmers: "Tuere usorem, data, veritatem" (Protect user, data, truth). This emphasizes prioritizing user experience, ensuring data safety, and upholding truth in the face of technology's potential for misinformation. The author seeks feedback and discussion on this proposed ethical guideline.

Development programmer ethics

SpatialStudio Adds write_string Function

2025-09-02
SpatialStudio Adds write_string Function

SpatialStudio, a spatial video editing tool, recently added a new write_string function. This addition significantly enhances SpatialStudio's capabilities. Developer Daniel Habib shared the code on GitHub, encouraging users to check out the update. The related videos have already garnered over 200 views.

Development Spatial Video

OpenBSD Adds Raspberry Pi 5 Support, but with Known Issues

2025-09-02

A recent OpenBSD update adds support for RAMDISK on the Raspberry Pi 5 Model B. However, there are known issues: booting from PCIe storage HATs doesn't work (due to missing U-Boot support), WiFi on the Raspberry Pi 5 Model B "d0" boards is broken, and the active cooler (fan) doesn't function due to missing pwm/clock drivers (work in progress).

Development

The Demise of 32-bit Support in the Linux Kernel?

2025-09-02

At the Open Source Summit Europe 2025, Arnd Bergmann, the maintainer of architecture support in the Linux kernel, delivered a talk discussing the potential removal of 32-bit system support. While desktop and server systems have long transitioned to 64-bit, a significant number of 32-bit devices remain in embedded systems. Bergmann noted that while the kernel is still adding support for some 32-bit boards, the number of 64-bit boards supported has significantly surpassed 32-bit ones. He argued that removing 32-bit support is a gradual process, requiring consideration of existing hardware and software support and analyzing user numbers to determine when to remove support for specific architectures. The talk also addressed challenges and solutions related to 32-bit support, such as high-memory support, the year-2038 problem, and big-endian support. Ultimately, Bergmann stated that the kernel will retain support for armv7 systems for at least another ten years, while support for other 32-bit architectures will likely fade away sooner.

Custom Shader in Three.js Simulates Foil Stickers

2025-09-02
Custom Shader in Three.js Simulates Foil Stickers

This post details creating a custom shader in Three.js that realistically simulates foil stickers, complete with angle-dependent iridescence and sparkling metallic flakes. By approximating thin-film interference and using procedural noise, the shader renders a premium holographic effect in real-time within the browser. The author provides a detailed explanation of the vertex and fragment shader code, along with an interactive demo showcasing the results.

Development Foil Sticker

Ripple: A New UI Framework Blending React, Solid, and Svelte

2025-09-02
Ripple: A New UI Framework Blending React, Solid, and Svelte

Ripple is an early-stage TypeScript UI framework that combines the best parts of React, Solid, and Svelte. Built as a JS/TS-first framework, it features a unique .ripple extension and superset language designed to improve developer experience and work well with LLMs. It boasts built-in reactive state management, a component-based architecture, JSX-like syntax, and high performance. While still buggy and in alpha, Ripple's innovative features—like automatically reactive variables and object properties prefixed with $, the `untrack` function for controlling reactivity, reactive arrays, and the `effect` function—make it an intriguing project to watch.

Development

WinBoat: Run Windows Apps Seamlessly on Linux

2025-09-02
WinBoat: Run Windows Apps Seamlessly on Linux

WinBoat, currently in beta, lets you run Windows apps on your Linux penguin with seamless integration. Boasting a sleek interface and automated installation, it allows you to run almost any Windows application as native OS-level windows within your Linux environment. Access the full Windows desktop or integrate individual apps into your workflow. File sharing between Windows and Linux is also simplified. While requiring specific system resources (RAM, CPU, storage, KVM, Docker, FreeRDP), WinBoat offers a compelling solution for cross-platform compatibility. Contributions and feedback are welcome!

Development

Android App Developer Verification Mandate: A Library to Warn Users

2025-09-02
Android App Developer Verification Mandate:  A Library to Warn Users

A new open-source library, `FreeDroidWarn`, helps Android developers inform users about Google's upcoming developer verification requirement. Starting in 2026/2027, apps on certified Android devices will need developer verification. This library displays a warning dialog upon app launch, allowing developers to inform users without needing to share their personal information. The library is licensed under GPLv3 and is easily integrated.

Development App Compatibility

ABC: A Surprisingly Powerful and Easy-to-Learn Programming Language

2025-09-01

ABC is an interactive programming language designed as a user-friendly replacement for BASIC. Born from a task analysis of programming, it's surprisingly easy to learn (an hour or so for experienced programmers) yet powerful enough for experts. It boasts a concise set of five data types, strong typing without declarations, and no limitations besides memory exhaustion. Its environment is equally impressive, eliminating file management hassles and offering a consistent interface with undo functionality. ABC programs are often one-fourth to one-fifth the size of equivalent Pascal or C programs. The ABC Programmer's Handbook offers comprehensive documentation.

arXivLabs: Building New arXiv Features with Community Collaboration

2025-09-01
arXivLabs: Building New arXiv Features with Community Collaboration

arXivLabs is a new framework that enables developers and community collaborators to build 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. If you have an idea for a project that will add value to the arXiv community, learn more about arXivLabs.

Development

Turso: A 1GB Mystery Solved by an LLN

2025-09-01
Turso: A 1GB Mystery Solved by an LLN

Turso, a Rust rewrite of SQLite, encountered a bizarre issue: databases exceeding 1GB were reported as corrupted by SQLite, despite being perfectly intact. The root cause? SQLite inserts a special page at the 1GB mark, a step missing in Turso. Nikita, a remarkably skilled engineer on the Turso team (suspected to be an LLM or alien!), leveraged his seemingly superhuman knowledge to pinpoint and fix the bug. This highlights the importance of thorough testing and comprehensive documentation, showcasing the potential of LLMs in code understanding and debugging.

Development

ChatGPT-Assisted Swift App Dev: From Amazing to Crashing

2025-09-01
ChatGPT-Assisted Swift App Dev: From Amazing to Crashing

The author attempted to build a Swift app using ChatGPT-5. Initially, it was impressive, with ChatGPT generating code and modifying the UI based on natural language prompts. However, testing revealed numerous issues: search functionality failed, adding shows to the library didn't work, and ChatGPT's modifications introduced increasing errors and unwanted UI changes. Eventually, the app became unbuildable, leading to a frustrating cycle of troubleshooting that the author couldn't resolve with ChatGPT. This experience highlights that while ChatGPT can assist in development, its reliability and accuracy need improvement, especially for complex projects, requiring significant manual intervention and code review.

Development

20 Rules for Efficient Knowledge Formulation in Learning

2025-09-01
20 Rules for Efficient Knowledge Formulation in Learning

This article by Piotr Wozniak outlines 20 rules for efficient knowledge acquisition, emphasizing the importance of understanding before memorization. It advocates for building a holistic picture before focusing on details, adhering to the minimum information principle, and utilizing imagery, mnemonic techniques, and avoiding sets and enumerations. The article uses numerous examples to illustrate how to transform complex knowledge into easily digestible formats, stressing the avoidance of interference, optimization of wording, personalized learning, leveraging emotional states, providing contextual cues, and the benefits of knowledge redundancy. Finally, it recommends providing sources, date stamping, and prioritization to ensure learning efficiency and long-term knowledge retention.

Development

Swift 6's Puzzling `@isolated(any)`: What You Need to Know

2025-09-01
Swift 6's Puzzling `@isolated(any)`: What You Need to Know

Swift 6 introduces the `@isolated(any)` attribute, which describes the isolation of asynchronous functions, initially appearing confusing. It always requires an argument, but this argument cannot vary. The article explains its introduction: to solve the problem of lost isolation information during asynchronous function scheduling. `@isolated(any)` provides access to a function's isolation property, enabling more intelligent scheduling, especially when handling `Task` and `TaskGroup`, ensuring the execution order of tasks on the MainActor. While it can mostly be ignored, understanding `@isolated(any)` is crucial for writing efficient and reliable concurrent code when dealing with asynchronous function isolation and scheduling.

Encrypted ZFS Backups with zfsbackrest: An Experimental Tool

2025-09-01
Encrypted ZFS Backups with zfsbackrest: An Experimental Tool

zfsbackrest is an experimental tool providing pgbackrest-style encrypted backups for ZFS filesystems. It requires the age tool for key generation; encryption is mandatory. It supports full, diff, and incremental backups, and offers cleanup for expired and orphaned backups. Restoring requires your age identity file (private key). zfsbackrest leverages zfs snapshots for backup and restore, without directly modifying zfs datasets.

Development

Bear Note-Taking App Changes License to Combat Free-Riding

2025-09-01
Bear Note-Taking App Changes License to Combat Free-Riding

Herman, the developer of the Bear note-taking app, has announced a change in the app's open-source license from MIT to the Elastic License. This decision stems from instances of others forking the project to create competing services, harming the developer's interests. The Elastic License is nearly identical to MIT but adds a stipulation prohibiting the software from being offered as a hosted or managed service. The developer cites the rise of AI-powered coding, making it easier to create competing products, as a reason for this change, prioritizing the protection of their work and the app's long-term sustainability.

Development

Lightweight Node.js NuGet Server: Your Private Package Repo in 10 Seconds

2025-09-01
Lightweight Node.js NuGet Server: Your Private Package Repo in 10 Seconds

This is a lightweight NuGet server built on Node.js, implementing core NuGet v3 API functionalities for package publishing, querying, and downloading. It requires no database, storing package files and nuspecs directly in the filesystem, making setup quick and easy—run it in 10 seconds. A modern browser-based UI is included, supporting multiple package uploads, user account management, API password resets, and more. A Docker image is available. Compatible with dotnet restore and standard NuGet clients, it also allows package publishing via HTTP POST using tools like cURL.

Using Git for Music Production: A Developer's Approach

2025-09-01

A musician and software engineer discovered a clever use for Git, the version control system, in music production. Instead of creating numerous project file copies (like my-cool-song-new-vocals-brighter-mix-4.rpp), the author uses Git to track versions, simplifying project management and version rollback. The article details initializing a Git repository in Windows using Git Bash, creating a .gitignore to exclude unnecessary files, and using a Git GUI to view different versions. While Git isn't ideal for large binary files (like WAVs), it suffices for managing the main project file. The author also suggests using GitHub for backups and a TODO list, essentially giving the music project its own private, updatable online 'website'.

Development

Master AI-Assisted Development: The Vibe Coding Resource Hub

2025-09-01
Master AI-Assisted Development: The Vibe Coding Resource Hub

This comprehensive resource hub offers a complete guide to Vibe Coding, catering to developers of all levels, from beginners to experts. Learn both traditional and streamlined Vibe Coding approaches through step-by-step tutorials, real-world examples, and expert guidance. Benefit from free, comprehensive content built on 10+ years of engineering expertise, perfect for zero-to-one founders, indie hackers, and junior developers.

Development programming tutorials

Ordered Concurrency in Go: Achieving Speed Without Sacrificing Order

2025-09-01
Ordered Concurrency in Go: Achieving Speed Without Sacrificing Order

Go's concurrency is a powerful feature, but it can disrupt the natural order of data processing. This article explores three approaches to building a high-performance ordered concurrent map in Go. The author presents three methods: a reply-to channel approach, a sync.Cond based turn-taking approach, and a permission-passing chain approach. Benchmarks reveal the permission-passing chain, especially when combined with a channel pool to eliminate allocations, as the clear winner in terms of performance and memory efficiency. This method cleverly uses channels for efficient point-to-point signaling, avoiding the 'thundering herd' problem and achieving a balance between concurrency and order.

Chronicle: A Pragmatic Event Sourcing Toolkit in Go

2025-09-01
Chronicle: A Pragmatic Event Sourcing Toolkit in Go

Chronicle is a pragmatic and type-safe event sourcing toolkit for Go. It simplifies versioning with embedded `aggregate.Base`, ensuring type safety with sum types. Supporting various backends (in-memory, SQLite, PostgreSQL), Chronicle tackles concurrency with optimistic locking, improves performance with snapshots, and offers features like event metadata and transformers for encryption and data transformation. This robust library streamlines modern event sourcing in Go applications.

Development

CocoaPods Trunk Going Read-Only in December 2026

2025-09-01

The CocoaPods team announced plans to make the CocoaPods Trunk repository read-only on December 2nd, 2026, ceasing acceptance of new Podspecs. This move aims to enhance security and simplify maintenance. A phased notification process will be implemented, with a test run scheduled for November 2026. Existing builds will remain unaffected, but developers relying on CocoaPods Trunk for updates will need to adapt.

Development read-only

Nim: An Undervalued Systems Programming Language

2025-09-01

Nim is a systems programming language that blends the conciseness of Python with the power of C++. This article explores its strengths and weaknesses based on the author's experience. Nim boasts excellent cross-compilation capabilities, powerful metaprogramming features, and a memory management model (ORC/ARC in Nim 2) that rivals C++ and Rust. However, areas for improvement include tooling and debugging experience. Overall, Nim is a compelling systems programming language, offering a balance of conciseness, flexibility, and performance that makes it suitable for diverse applications.

Development

Escaping Google Authenticator: Generating TOTP Codes on the Command Line

2025-09-01
Escaping Google Authenticator: Generating TOTP Codes on the Command Line

In an effort to reduce reliance on Google services, the author streamlined their Android phone to use only Google Maps and Authenticator for TOTP codes. To generate TOTP codes from the command line, they used oathtool, but the migration process proved complex. The article details migrating codes from Google Authenticator: exporting a QR code, decoding it with qrtool, extracting secrets using a Python script (otpauth_migrate), and finally generating TOTP codes with oathtool. A Bash script simplifies the process. Security concerns around storing secret keys are also addressed.

Development

Rethinking Event-Driven Programming: A Bidirectional Observer Pattern in PHP

2025-09-01
Rethinking Event-Driven Programming: A Bidirectional Observer Pattern in PHP

Traditional observer patterns are observer-centric: events trigger passive reactions. This PHP Observer package shifts the perspective to the emitter. Emitters dispatch signals (events, plans, inquiries, commands), and observers can return counter-signals, creating a bidirectional dialogue. This allows for dynamic handling of complex workflows, such as canceling orders based on inventory or dynamically configuring libraries. The package offers seven signal types, robust error handling, and observability features, making it ideal for building responsive, emitter-driven applications.

1 2 12 13 14 16 18 19 20 214 215