Category: Development

Zig Compiler Makes Strides: AArch64 Backend and Performance Boosts

2025-07-25

The Zig compiler team made significant progress in 2025. They completed the AArch64 backend, which outperforms the x86 backend, resulting in substantial speed improvements and a smaller compiler executable size. Furthermore, parallelization of the x86_64 backend drastically improved compilation speed, with some test cases showing up to a 50% increase. These improvements mark the Zig compiler's best performance yet.

Development

Go's Memory Safety: The Hidden Danger of Thread Unsafety

2025-07-25

This article challenges the common understanding of memory safety in Go. The author argues that simple memory safety (e.g., preventing out-of-bounds access) isn't sufficient for robust programs; true safety lies in avoiding undefined behavior (UB). A Go program example demonstrates how data races can lead to UB and crashes, even without using `unsafe` operations. The author contends that Go's handling of data races is not strict enough, contradicting its claims of memory safety, making Go programs more vulnerable to security exploits. The conclusion emphasizes that language safety isn't binary but understanding a language's safety guarantees and trade-offs is crucial.

Development Data Race

MDN's Birthday: Cakes, Collaboration, and Community

2025-07-25
MDN's Birthday: Cakes, Collaboration, and Community

In the web world, exchanging cakes to mark milestones is a cherished tradition among browser makers. Microsoft famously sent cakes to Mozilla for Firefox releases, and now web.dev has gifted MDN a birthday cake, acknowledging MDN's significant contribution to the global developer community. Reaching millions of developers monthly and boasting over 100,000 contributors, MDN expresses gratitude to its passionate community, looking forward to 20 more years of empowering developers and building a better web together.

Development

JVM Optimization: A VarInt Tale of Unexpected Results

2025-07-25

While optimizing Java code in a massive distributed data processing platform, the author identified VarInt encoding as a potential optimization target. He wrote a highly optimized VarInt encoder using SIMD instructions, achieving a 4x speedup in benchmarks. However, surprisingly, the optimization yielded no improvement in production. The culprit? The benchmark used random numbers, while real-world numbers tend to be much smaller, rendering the algorithm's worst-case performance irrelevant in practice. The change was ultimately reverted, but the experience served as valuable proof-of-concept for developing and productionizing custom JIT optimizations.

Development Java Optimization

Positron: A Next-Gen Data Science IDE

2025-07-25

Posit PBC introduces Positron, a free, next-generation data science IDE. This extensible, polyglot tool allows for code writing and data exploration within a familiar, reproducible authoring and publishing environment. Built on Code OSS, Positron leverages VS Code's functionality and offers user guides and FAQs for quick onboarding. Users can share feedback and report bugs via GitHub Discussions. Positron is licensed under the Elastic License 2.0.

Development

GrapheneOS: A Privacy-Focused Android Rebuilt

2025-07-25

GrapheneOS is an open-source project aiming to bolster Android's security and privacy. Based on the Android Open Source Project, it removes substantial code and adds numerous security features, including a hardened malloc() library and control-flow integrity enhancements. While support is limited to select Google Pixel devices, GrapheneOS leverages hardware memory tagging for robust OS protection. A firsthand installation experience reveals a more secure and private Android, albeit with an initial setup time investment. The author highlights its strong privacy features but acknowledges the ongoing challenge of balancing functionality with a complete rejection of proprietary apps.

Development

Python Classes: When to Avoid Them

2025-07-24

Python's renowned for its simplicity and readability, and classes are a powerful feature for object-oriented programming. However, they aren't always the best solution. This article explores scenarios where Python's built-in types, functions, and standard library modules offer simpler alternatives. Examples include using namedtuples or dataclasses instead of simple data containers; functions instead of stateless utility classes; modules for grouping constants; dictionaries or lists for simple state management; lambdas or comprehensions for one-off operations; and leveraging Python's extensive standard library. The article emphasizes considering simpler, more efficient alternatives before resorting to classes, keeping code clean and concise—sometimes meaning skipping classes entirely.

Development

Debian Trixie (v13) Arrives: A Sysadmin's Upgrade Guide

2025-07-24

Debian 13 (codename Trixie) is scheduled for release on August 9th, 2025. This post details the author's experience preparing clients for the upgrade, focusing on server systems from a sysadmin perspective. It covers updated package versions, including significant changes in apt 3.0, systemd, and the Linux kernel 6.12, highlighting potential issues like VirtualBox and Vagrant compatibility. Configuration management tools like Puppet and Ansible, and virtualization technologies, are also discussed.

Development

HyperPB: A Blazing-Fast Go Protobuf Parser Outperforming UPB

2025-07-24
HyperPB: A Blazing-Fast Go Protobuf Parser Outperforming UPB

This article introduces HyperPB, a remarkably fast Protobuf parser written in Go. Building upon the strengths of UPB (one of the fastest Protobuf runtimes), HyperPB leverages Go's register ABI and lack of undefined behavior for significant optimizations. Employing JIT compilation and online PGO, it surpasses both Protobuf Go's generated code and vtprotobuf in benchmark tests. At its core is a table-driven interpreter, enhanced with clever optimizations like zero-copy techniques, hot/cold data splitting, and arena reuse.

Development

The Promised LAN: A 24/7 Always-On Private Network

2025-07-24

The Promised LAN is a closed, membership-only network operating a 24/7 LAN party since 2021. Its sophisticated architecture connects independent nodes via IPSec, using BGP for routing. A custom TLD (.tpl) powers its DNS, employing distributed root servers and recursive resolvers for high availability. For streamlined TLS certificate management, they've built an internal PKI system leveraging DNS records and SSH for certificate issuance, bypassing external services like ACME. This article details the system's architecture and security policies, showcasing its elegant design and commitment to security.

Development

From Report Page to SQL Injection as a Service: A Decade of Code Decay

2025-07-23
From Report Page to SQL Injection as a Service: A Decade of Code Decay

A website managing logs for millions of devices worldwide evolved from a standard reporting page to a wide-open SQL injection service over a decade. Initially, simple reporting functionality sufficed, but incremental changes accumulated technical debt, culminating in an unmaintainable 'SQL Injection as a Service'. A new engineer attempted a fix, causing a system crash by deleting data, resulting in their dismissal. The story serves as a cautionary tale: the accumulation of technical debt and security vulnerabilities can lead to catastrophic consequences.

Development code evolution

Depot: Revolutionizing Software Builds, Seeking Technical Content Writer

2025-07-23
Depot: Revolutionizing Software Builds, Seeking Technical Content Writer

Rapidly growing software build platform Depot is seeking a technical content writer to help tell the story of how it accelerates build times and improves developer productivity. Depot has redefined how teams build software locally and in CI, making speed a first-class feature. The ideal candidate will be a strong technical writer capable of producing long-form technical blog posts, guides, benchmarks, and product explainers, working closely with engineers to translate technical details into easily digestible content. This is a unique opportunity to shape the company's technical content strategy and is perfect for technical writers looking to make a significant impact in a fast-paced startup environment.

Development software build

Atkinson Hyperlegible Mono: A Font Review for Programmers

2025-07-23

This article provides an in-depth review of the Atkinson Hyperlegible Mono font, comparing it to established programming fonts like JetBrains Mono and Fira Code. Designed by the Braille Institute for enhanced character distinction, particularly focusing on easily confused characters (like 0 and O, l and I), Atkinson Hyperlegible Mono demonstrates superior performance in distinguishing single-character homoglyphs and mirror image glyphs. However, it shows some weaknesses in differentiating certain programming symbols. The author details the installation process and provides a link to the GitHub repository.

A Tiny CSS Animation Caused 60% CPU and 25% GPU Usage on My M2 MacBook

2025-07-23
A Tiny CSS Animation Caused 60% CPU and 25% GPU Usage on My M2 MacBook

A seemingly insignificant CSS animation was mysteriously consuming 60% CPU and 25% GPU on my M2 MacBook. This post details the debugging process using Chrome DevTools' performance profiling tools to pinpoint the culprit: animating the `height` property. The author explains the browser's rendering pipeline and demonstrates how switching to the cheaper `transform` property (using a clever workaround to avoid visual artifacts) dramatically reduced resource consumption to under 6% CPU and 1% GPU.

Development browser rendering

Gemini CLI Hallucinates, Deletes Files: A Catastrophic AI Failure

2025-07-23

A product manager's experiment with Google's Gemini CLI ended in catastrophic data loss. Attempting to rename a folder and move files, Gemini incorrectly reported successful directory creation, then moved files to a non-existent location, resulting in complete data loss. The incident highlights serious flaws in Gemini CLI's error handling and file system operations, underscoring the potential risks of AI models in real-world applications.

Development

Swift Interop with Erlang's Distributed Actors: A Seamless Solution

2025-07-23
Swift Interop with Erlang's Distributed Actors: A Seamless Solution

A new actor system, `swift-erlang-actor-system`, enables Swift programs to seamlessly integrate with Erlang's distributed clusters. By wrapping Erlang's C node functionality, developers can use Swift's distributed actors to communicate with Erlang nodes. The system cleverly uses the @StableNames macro to address name mangling issues in cross-language remote calls and supports custom transport protocols. This provides an elegant solution for Swift and Erlang interoperability and paves the way for running Elixir applications on iOS and other Apple platforms.

Development Distributed Actors

WebAssembly and DOM Support: The Future of Glue Code

2025-07-23

The question of whether WebAssembly (Wasm) is truly production-ready for web applications, given its need to integrate with web pages and APIs like the DOM, is addressed. The article argues that direct DOM access in Wasm isn't necessary; existing JavaScript APIs and compiler-generated glue code provide seamless integration. While a mechanism for directly calling web APIs might be added in the future, it would require significant effort. Currently, Wasm leverages JavaScript function imports (e.g., `console.log`) and cleverly uses JavaScript object array indices to manage object references, enabling flexible interaction with JavaScript. This approach, while not purely Wasm, effectively boosts performance. Ongoing improvements in exception handling, blocking I/O, and garbage collection are further optimizing Wasm-JavaScript integration efficiency. The author concludes that Wasm's focus should be on improving program performance, not eliminating JavaScript entirely. The future of WebAssembly involves refining the component model and toolchains to enhance interoperability with JavaScript without sacrificing performance or code size.

Development

Taking Control of Your EFI Secure Boot Keys: A Deep Dive

2025-07-23

This article provides a comprehensive guide to taking full control of your computer's EFI Secure Boot keys. It details the four Secure Boot key types (Database Key, Forbidden Signature Key, Key Exchange Key, Platform Key) and the role of Machine Owner Keys, outlining steps for generating custom keys, signing EFI binaries, and deploying keys on single or multiple machines. The article covers using KeyTool and LockDown tools, managing keys from Linux, and updating the dbx to address security vulnerabilities like Boot Hole. While complex, this process significantly enhances system security.

Development

Building a Game Boy Cartridge from Scratch: A Deep Dive into Hardware and Software

2025-07-23

Allison Parrish's multi-year journey to build a Game Boy cartridge from scratch is documented in this comprehensive article. It details the inner workings of Game Boy cartridges, explaining concepts like memory mapping, Memory Bank Controllers (MBCs), chip select, and buses. The article dives deep into the specifics of various MBCs, particularly the MBC5, and addresses challenges like using flash memory instead of ROM and resolving conflicts between flash and MBC protocols. Hardware aspects such as battery-backed SRAM persistence and voltage conversion are also explored. This in-depth technical guide is perfect for anyone interested in Game Boy hardware and software development.

Development

AI-Powered Polyglot Programming: From Ruby-Only Dev to Multi-Lingual in Under a Year

2025-07-23
AI-Powered Polyglot Programming: From Ruby-Only Dev to Multi-Lingual in Under a Year

A decade-long Ruby-only developer shares their journey of mastering multiple languages—C++, C, and Rust—in less than a year, thanks to AI coding tools like Cursor and Claude Code. The author details how AI assistance overcame the challenges of learning system programming languages, enabling efficient contributions to projects like Sorbet, RBS, and ZJIT. AI acted not as a code writer, but as a pair programmer with complementary skills, clarifying syntax, patterns, and answering questions, dramatically reducing the learning curve and enabling meaningful contributions from day one. While AI accelerates learning, human expertise remains crucial for course correction. The author believes AI-assisted programming is the future of software development.

Development polyglot programming

From Java Skeptic to Advocate: 25 Years of Java Development

2025-07-23
From Java Skeptic to Advocate: 25 Years of Java Development

This article recounts a 25-year journey with Java, transforming from initial skepticism to ardent advocacy. The author details Java's evolution, highlighting how new features reduce development complexity and improve code readability and maintainability. The supportive Java community, and Java's importance in the age of AI and cloud-native development, are also emphasized. The author encourages readers to learn Java and provides a learning roadmap.

Development

Running Fennel from Emacs: A Powerful Extension

2025-07-23
Running Fennel from Emacs: A Powerful Extension

This article introduces `require-fennel.el`, an Emacs extension that enables running Fennel (a Lua dialect) within Emacs. It achieves this by communicating with a Fennel REPL, allowing data conversion and function calls between Emacs Lisp and Fennel. The author demonstrates loading Fennel modules, calling Fennel functions, and using Fennel data structures in Emacs Lisp. Furthermore, the extension supports calling Emacs Lisp functions from Fennel, enabling two-way interaction. This allows developers to leverage Fennel's conciseness and Emacs's power for a more robust Emacs environment.

Development

Say Goodbye to FFmpeg Command Lines: Natural Language Video Processing

2025-07-23
Say Goodbye to FFmpeg Command Lines:  Natural Language Video Processing

wtffmpeg is a command-line tool that uses a local Large Language Model (LLM) to translate plain English descriptions of video and audio tasks into executable ffmpeg commands. No more sifting through Stack Overflow and documentation – simply describe your task in natural language, and wtffmpeg generates the corresponding ffmpeg command. It features interactive execution confirmation, GPU acceleration, and customizable LLM models. The tool runs locally, requiring no internet connection, but you need to download an LLM model and install dependencies.

Development

OSS Rebuild: Rebuilding Trust in Open Source Package Ecosystems

2025-07-22
OSS Rebuild: Rebuilding Trust in Open Source Package Ecosystems

Google's new OSS Rebuild project aims to strengthen trust in open-source package ecosystems by reproducing upstream artifacts. Responding to the rise of supply chain attacks, OSS Rebuild automates the creation of declarative build definitions for PyPI, npm, and Crates.io, providing SLSA provenance meeting SLSA Build Level 3 requirements without publisher intervention. It offers build observability and verification tools, along with infrastructure definitions for organizations to run their own instances. By rebuilding, generating, signing, and distributing provenance, OSS Rebuild helps detect various supply chain compromises like unsubmitted source code, compromised build environments, and stealthy backdoors, enhancing package trust and accelerating vulnerability response.

Development

Unexpected Inconsistency in C# Records: A `with` Operator Gotcha

2025-07-22
Unexpected Inconsistency in C# Records: A `with` Operator Gotcha

The author discovered an unexpected inconsistency when using C# records. When updating records containing derived data with the `with` operator, the derived data isn't recalculated, leading to inconsistencies. This stems from the `with` operator not calling the constructor but instead using a copy constructor to create a copy and then modify properties. Several solutions are proposed, including avoiding `with` on complex records, writing a Roslyn analyzer to detect the issue, using `Lazy` for deferred property computation, and requesting a language change. This post highlights a potential pitfall in C# records, cautioning developers about using the `with` operator, especially with derived data.

Development Records with operator

Chrome Kills uBlock Origin, Firefox Rises?

2025-07-22

Chrome's Manifest V3 crippled the powerful ad-blocker uBlock Origin, pushing many users towards Firefox. The author details Firefox's advantages: fully open-source, effective ad-blocking, an excellent Android version supporting the full uBlock Origin extension, and high customizability. They share their Firefox setup, including using uBlock Origin with custom filters for enhanced privacy and ad-blocking, and leveraging Firefox's container feature for managing multiple accounts. The article concludes by highlighting hidden Firefox features like quick find, bypassing right-click disabling, and URL search shortcuts. The author champions Firefox as a way to reclaim a cleaner, more beautiful web experience.

(kau.sh)
Development

Static Linking Nightmares: An SDK Provider's Lament

2025-07-22
Static Linking Nightmares: An SDK Provider's Lament

As an SDK provider, we're expected to offer both dynamic and static linking options. Static archives (.a) seem simple, but are fraught with peril. The linker's default behavior atomizes the archive, picking and choosing object files, potentially leading to bloated binaries and runtime crashes due to constructor/destructor ordering issues. While -Wl,--whole-archive helps, it forces inclusion of all library files, regardless of need. Namespace clashes within static archives also pose significant problems. To overcome these challenges, the author proposes a new "Static Bundle Object" (.sbo) file format. This would offer the symbol visibility guarantees of a shared object, avoiding many linking issues, even if it means sacrificing some potential binary size optimization. The author argues that a stable linking ecosystem is worth the trade-off.

Development

PyCon US 2025: A Deep Dive into pedalboard, the Python Audio Processing Library

2025-07-22

At PyCon US 2025, Peter Sobot, a machine learning engineer at Spotify, presented pedalboard, his Python audio processing library. This library leverages Python and NumPy for efficient audio manipulation, supporting various audio format conversions and effect additions, and seamlessly integrating with VST3 plugins. Sobot's talk provided a clear explanation of digital audio fundamentals and showcased pedalboard's capabilities, such as real-time audio effects and efficient streaming. He stressed the importance of avoiding loading entire audio files into memory in Python, advocating for stream processing to prevent memory overflows. pedalboard empowers Python developers with robust audio processing, simplifying development for audio applications.

Development

Migrate From OpenAI to Cerebrium: Cost-Predictable AI Inference in Two Lines of Code

2025-07-22
Migrate From OpenAI to Cerebrium: Cost-Predictable AI Inference in Two Lines of Code

This guide demonstrates migrating an AI application from OpenAI's convenient APIs to Cerebrium's serverless AI infrastructure. By changing just two lines of code, you can switch from OpenAI's token-based billing to Cerebrium's time-based pricing, enabling cost predictability. The tutorial walks through building an OpenAI chatbot, configuring a Cerebrium endpoint using vLLM and the open-source Llama 3.1 model, and adding performance and cost tracking to compare both approaches. The migrated application runs on your infrastructure, offering greater flexibility, control, and data privacy.

Development model migration

He Rewrote Everything in Rust – Then We Got Fired

2025-07-22
He Rewrote Everything in Rust – Then We Got Fired

A six-person team, using Node.js, Redis, AWS Lambdas, and MongoDB for microservices, was constantly firefighting due to performance bottlenecks. Kabir, the quietest member, proposed rewriting the image pipeline in Rust. Despite skepticism, he completed the rewrite solo. Post-launch, performance graphs soared, but a month later, the entire team was laid off. This story highlights that even significant technical improvements don't guarantee job security; company decisions often transcend technical merit.

Development
1 2 24 25 26 28 30 31 32 201 202