Category: Development

Undecidability: The Programmer's Pandora's Box

2025-05-28
Undecidability: The Programmer's Pandora's Box

This article provides a clear explanation of the concept of "undecidability" in computer science. Using accessible language and concrete examples (like determining if a number is the sum of two primes), the author explains decision problems and the role of Turing machines. The key takeaway is that undecidability doesn't mean it's impossible to tell if a program will halt, but rather that there's no universal algorithm to determine the halting behavior of all programs. This makes many problems (such as verifying program properties) require significant effort and may be unsolvable, highlighting the necessity of fields like formal verification and program analysis.

Development

LLM Shibboleths: The Secret to Unlocking AI Coding Assistants

2025-05-28

The effectiveness of Large Language Model (LLM)-powered coding assistants hinges on how you ask questions. This essay argues that experienced engineers use specific "shibboleths"—technical jargon and phrasing—to guide the AI towards high-quality code, while novices, lacking this specialized vocabulary, often receive inefficient or incorrect results. The author uses personal anecdotes to illustrate how to adapt prompting strategies based on skill level, offering tips to improve AI coding assistant efficiency. The core message emphasizes the importance of discerning and guiding AI-generated code in the age of AI.

Development

Guile Hoot 0.2.0: Building Interactive Web Pages in Scheme

2025-05-28

Guile Hoot 0.2.0, a Scheme to WebAssembly GC compiler, has been released. This release introduces a Foreign Function Interface (FFI), enabling developers to write the majority of web application code directly in Scheme, minimizing reliance on JavaScript. The article demonstrates building interactive web pages using Scheme and the FFI, progressing from a simple "Hello, world!" to an interactive counter and finally a to-do list application. Leveraging Scheme's symbolic manipulation capabilities and SXML, it builds an efficient virtual DOM with a React-like diffing algorithm for updates.

Development

LLM Codegen Parallelization: A Productivity Boost with Git Worktrees and Tmux

2025-05-28
LLM Codegen Parallelization: A Productivity Boost with Git Worktrees and Tmux

Nicholas Khami shares his experience parallelizing multiple LLM code generators (Claude Code, Codex) using Git worktrees and tmux. He found significant efficiency gains; even with inconsistent individual LLM output quality, running multiple agents concurrently drastically increases the chance of getting usable code. However, manually managing multiple worktrees and tmux sessions is cumbersome. To solve this, he and his co-founder are building `uzi`, a CLI tool to streamline the workflow, providing a smoother developer experience by automating tasks like starting agents, sending prompts, running commands, previewing, committing, and creating PRs. This promises to greatly enhance developer productivity, and the parallel processing philosophy extends beyond coding, applicable to legal contract review and marketing data analysis. The future will likely see more software integrating similar parallel execution capabilities.

Development

Compiler Explorer: The Promise of URLs That Last Forever

2025-05-28

Compiler Explorer's URLs have evolved from encoding compiler states directly in URLs to using goo.gl short links, and finally to a self-built storage solution. With goo.gl sunsetting in August 2025, the author is rescuing old goo.gl-based links, recovering over 12,000 so far. This post highlights the author's commitment to 'URLs that last forever' and reflects on the reliance on third-party services.

Development URLs Links

arXivLabs: Experimenting with Community Collaboration

2025-05-28
arXivLabs: Experimenting with Community Collaboration

arXivLabs is a framework for developing and sharing new arXiv features directly on the website, in collaboration with the community. Participants, individuals and organizations alike, embrace arXiv's values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only works with partners who share them. Got an idea to enhance the arXiv community? Explore arXivLabs.

Development

I Reverse-Engineered Waffle House's Website During a Hurricane

2025-05-28
I Reverse-Engineered Waffle House's Website During a Hurricane

During Hurricane Helene in late September 2024, while my university was closed and people were boarding up their homes, I reverse-engineered Waffle House's website. Using hidden JSON data within their Next.js site, I built a live map tracking Waffle House closures to help gauge the hurricane's impact. The site unexpectedly went viral, attracting attention from Waffle House itself and even Frank Luntz. Ultimately, trademark issues forced me to take it down, but the experience was a fun and unexpected adventure.

Development

Tesseral: Open-Source Auth Infrastructure for B2B SaaS

2025-05-28
Tesseral: Open-Source Auth Infrastructure for B2B SaaS

Tesseral is an open-source authentication infrastructure for business software (B2B SaaS). It's a multi-tenant, API-first cloud service compatible with any tech stack. Developers can use the managed service at console.tesseral.com or self-host. It bundles everything needed for user management: customizable login pages, B2B multitenancy, user impersonation, self-service configuration, various login methods (magic links, social login, SAML, SCIM), role-based access control (RBAC), multi-factor authentication (MFA), passkeys/WebAuthn, authenticator apps (TOTPs), API key management, user invitations, and webhooks. SDKs are available for React, Flask, and more, simplifying frontend and backend integration.

Development

Wetlands: A Lightweight Python Library for Managing Conda Environments

2025-05-28

Wetlands is a lightweight Python library designed to simplify Conda environment management. It creates Conda environments on demand, installs dependencies, and executes arbitrary code within them, preventing dependency conflicts. Ideal for plugin systems or integrating external modules, Wetlands uses either pixi or micromamba for fast and efficient Conda environment handling. A simple API allows developers to create, launch, import modules, execute functions, and cleanly exit environments, making dependency management in Python projects easier and more efficient.

Development

Project Zero's Deep Dive into Windows Registry: 2 Years, 53 CVEs

2025-05-28
Project Zero's Deep Dive into Windows Registry: 2 Years, 53 CVEs

Mateusz Jurczyk of Google Project Zero spent two years deeply researching the Windows Registry, uncovering 53 CVEs in the process. His research highlights the complexity of the registry as a local privilege escalation attack surface, detailing security issues stemming from its large, legacy codebase written in C. The research covers various vulnerability classes including memory corruption, information disclosure, and logic bugs, analyzing various attack entry points such as hive loading, app hives, and direct system calls. The research also emphasizes how the registry's self-healing mechanisms impact security auditing, and the challenges of unclear boundaries between strict format requirements and conventions. Finally, the post summarizes exploitation primitives and discusses strategies and difficulties in registry fuzzing.

LLMs: Accelerating Incompetence in Software Engineering

2025-05-28
LLMs: Accelerating Incompetence in Software Engineering

This essay argues that over-reliance on Large Language Models (LLMs) in software engineering can accelerate incompetence. An experienced software engineer details how LLMs, while offering speed in code generation, introduce significant risks: incorrect outputs, inability to understand context, increased technical debt, and the suppression of critical thinking and creativity. Drawing on the insights of Peter Naur and Fred Brooks, the author emphasizes that programming is about building program theory and managing program entropy, tasks beyond current LLMs' capabilities. The essay concludes that while LLMs are useful tools, they cannot replace human ingenuity and deep thinking, and over-reliance can lead to increased costs and project failures.

Development

Microsoft Opens Windows Update to Third-Party Apps

2025-05-28
Microsoft Opens Windows Update to Third-Party Apps

Microsoft is expanding Windows Update to include third-party applications. Developers can now sign up for a private preview of the Windows Update orchestration platform, enabling future support for updates to any app or driver. While initially focused on business apps, it will be open to all apps and management tools. This allows developers to leverage scheduled updates based on user activity, battery status, and sustainable energy timing, connect directly to native Windows Update notifications, and list updates in the Windows Update app history. Microsoft will support MSIX/APPX packaged apps and some custom Win32 apps.

Development Third-party Apps

CheerpJ 4.1 Released: Early Java 17 Support & Enhanced Browser-Based Java

2025-05-28
CheerpJ 4.1 Released: Early Java 17 Support & Enhanced Browser-Based Java

Leaning Technologies announced the release of CheerpJ 4.1, featuring early preview support for Java 17 and improved stability for Java 11, alongside performance optimizations, networking stack enhancements, and mobile usability improvements. CheerpJ is a WebAssembly-based JVM enabling direct execution of unmodified Java bytecode in browsers, supporting large-scale Swing/AWT applications and Java library integration (Library Mode). CheerpJ 4.1 also introduces support for JNI WebAssembly modules, allowing execution of Java applications reliant on native code like Minecraft. Future CheerpJ 5.0 will include stable Java 17 support and NPM support.

Development

LLMs: The Unforeseen Cost of Easier Coding

2025-05-28

Large Language Models (LLMs) have revolutionized code writing, surpassing even the impact of the World Wide Web. However, this hasn't changed the fundamental truth that understanding code is harder than writing it; every line is tech debt. Introducing LLMs makes convincing teams to abandon old test suites and technical decisions even harder. LLMs readily produce new functions, leading to bloated, hard-to-maintain codebases, defying DRY principles. Historically productive engineering teams rely on deep toolchain expertise, but LLMs drastically lower coding costs, resulting in an explosion of ecological diversity in software environments. While LLMs might eventually improve code readability and reasoning, the current challenges are substantial.

The Chaotic History of JavaScript Date Parsing

2025-05-28

This article unveils a quirk in JavaScript's date parsing: `2025/05/28` and `2025-05-28` represent different dates. This stems from long-standing inconsistencies in how browsers parse date strings. The article traces the evolution of date string parsing in Chrome, Firefox, and Safari since the release of the ES5 standard in 2009, highlighting their varying implementations and interpretations of the ISO 8601 standard. Ultimately, date formats like `2025-05-28` are interpreted as UTC, while others are interpreted as local time, causing confusion. The article concludes by introducing the upcoming JavaScript Temporal API, which will resolve this issue by mandating timezone information.

Development

LIEF Adds DWARF Generation: Bridging Reverse Engineering Tools

2025-05-28
LIEF Adds DWARF Generation: Bridging Reverse Engineering Tools

LIEF now boasts a comprehensive API for creating DWARF files, along with plugins for Ghidra and BinaryNinja to export reverse-engineering analysis results. This allows sharing of crucial information like function names and structures across different reverse engineering tools. Leveraging LLVM's DWARF backend, the API (available in Python, Rust, and C++) simplifies the process, even handling details like stack variable offsets. This improves collaboration and understanding in complex reverse engineering projects.

Development

The JavaScript Proof-of-Work Arms Race Against LLMs

2025-05-28

Websites increasingly use JavaScript-based proof-of-work systems, like Xe Iaso's Anubis, to combat aggressive LLMs and web scrapers. However, LLMs can leverage compromised machines for substantial CPU power to solve these challenges. The problem is that LLMs operate in a hostile environment, making it difficult to distinguish genuine proof-of-work from malicious JavaScript. This exposes LLMs to CPU mining or other attacks. Trying to identify proof-of-work systems is a losing game for LLMs, as malicious actors have an incentive to mimic them. This creates an arms race between websites and LLMs, each trying to optimize resource usage while protecting their interests.

Development

A Programmer's Secret Weapon: Handwritten Notes Outperform Code Editors

2025-05-28
A Programmer's Secret Weapon: Handwritten Notes Outperform Code Editors

A software developer shares his unique insights on using a notebook for thinking and problem-solving. He argues that handwriting thoughts and diagrams in a notebook, before writing code directly on a computer, allows for better clarity and identifying solutions. This method helps transform vague ideas into concrete plans, discover flaws and design defects in code, and leaves a valuable record of the thought process for later reference. For him, a notebook is a more important tool than a code editor.

Alpenglow Consensus Protocol: Reference Implementation Released

2025-05-28
Alpenglow Consensus Protocol: Reference Implementation Released

Anza Technology has released a reference implementation of the Alpenglow consensus protocol. This includes a local cluster example runnable with 6 nodes communicating via UDP. A simulations binary provides various tests of Alpenglow's resilience and bandwidth requirements; a public ping dataset is needed for some simulations. Micro-benchmarks and a test suite are also included. For security issues, contact quentin (at) anza (dot) xyz directly.

Development

Monorepo: A Thorny Path to Developer Productivity

2025-05-28

This article explores the challenges and opportunities of building and maintaining a monorepo. The author cautions against blindly following the success stories of large tech companies, emphasizing that a monorepo isn't a silver bullet. Success hinges on clearly defined goals, such as improved code consistency, organizational coherence, and shared tooling efficiency. The article details optimization strategies for source control (limitations of git and alternatives), build systems (prioritizing single-language strategies), testing (O(change) not O(repo)), and CI/CD workflows within a monorepo environment. The author stresses the importance of carefully handling generated code and the asynchronous nature of service deployments to avoid incidents stemming from the illusion of atomic commits. Ultimately, the author argues that while challenging, the benefits of a well-maintained monorepo are worthwhile if the organization is committed to continuous tool and process improvement.

Development

pg_test_fsync: Benchmarking Disk Write Performance for Databases

2025-05-28

This article introduces `pg_test_fsync`, a tool for quickly benchmarking disk or cloud storage write performance, particularly useful for database WAL logs and other low-latency write workloads. The author tests a consumer-grade Samsung 990 Pro SSD and an enterprise-grade Micron 7400 SSD, revealing significantly faster synchronous write speeds on the enterprise SSD due to its controller DRAM cache and power-loss protection. `fdatasync` proves faster than `fsync` or `O_SYNC`, but even `fdatasync` takes 1.6 milliseconds for a single 8kB write. The article notes that multiple small writes degrade performance, suggesting batching writes for efficiency.

Development

UEFI App Saves My PoE-Powered x86 System

2025-05-28
UEFI App Saves My PoE-Powered x86 System

In 2015, the author encountered a challenge while developing PoE-powered embedded x86 computers: the system needed 23W to boot, but standard PoE only provided 15.4W. After failing to modify the BIOS, the author cleverly used a UEFI application to send LLDP packets before the OS started, successfully negotiating higher PoE+ power. This UEFI application, called PoePwrNegotiator, written in C, is now open-sourced, providing valuable experience for developers of similar projects.

Development

Image Compression: Make Your Website Fly

2025-05-28

A single unoptimized hero image can weigh more than your entire webpage budget! This article teaches you how to quickly master image compression techniques to improve website speed and SEO. It explains the difference between lossless and lossy compression, key metrics (quality, resolution, file size), common formats (JPEG, PNG, WebP, AVIF), and steps for using the SlimImg tool to compress images. An e-commerce case study shows that by compressing product photos, average page size was reduced by 68%, and conversion rates increased by 38%.

Development

Why Elliptic Curves for Diffie-Hellman?

2025-05-27
Why Elliptic Curves for Diffie-Hellman?

This article delves into the reasons behind using elliptic curves in Diffie-Hellman key exchange. Starting with group theory, the author explains why other groups, like the Monster group, are unsuitable. Through an exploration of group objects and category theory, the article reveals that elliptic curves aren't an arbitrary choice but almost the only viable option, even showing that finite field Diffie-Hellman is a special case of elliptic curve cryptography.

LLM 0.26: Large Language Models Get Terminal Tooling

2025-05-27
LLM 0.26: Large Language Models Get Terminal Tooling

LLM 0.26 is out, bringing the biggest feature since the project started: tool support. The LLM CLI and Python library now let you give LLMs from OpenAI, Anthropic, Gemini, and local Ollama models access to any tool representable as a Python function. The article details installing and using tool plugins, running tools via the command line or Python API, and shows examples with OpenAI, Anthropic, Gemini, and even the tiny Qwen-3 model. Beyond built-in tools, custom plugins like simpleeval (for math), quickjs (for JavaScript), and sqlite (for database queries) are showcased. This tool support addresses LLM weaknesses like mathematical calculations, dramatically expanding capabilities and opening up possibilities for powerful AI applications.

Development Tool Support Plugins

Improving the APT Solver: Elegantly Handling the Removal of Manually Installed Packages

2025-05-27

This post details improvements to an APT package manager solver. Initially, manually installed packages were treated as fixed facts, while automatically installed packages were optional unit clauses. However, allowing the removal of manually installed packages broke the solver; it could unnecessarily remove them. The author solves this by initially assuming all optional clauses, then iteratively unwinding these assumptions during the solving process. This approach, while not globally optimal, proves effective in practice for dependency resolution, avoiding the exponential complexity of a global search.

Development

Running GPT-2 on the GPU with WebGL Shaders: A Hacker's Journey

2025-05-27

This Hacker News hit details the author's experience implementing GPT-2 using WebGL and shaders on the GPU. The article explores the origins and evolution of general-purpose GPU programming, comparing traditional graphics APIs (like OpenGL) with compute APIs (CUDA and OpenCL). The author cleverly leverages textures and framebuffers as a data bus, using fragment shaders as compute kernels to perform neural network operations like matrix multiplication and GELU activation. While acknowledging limitations in shared memory, texture size, and precision, the article showcases the power and potential of GPU programming and demonstrates innovative use of graphics processing techniques for general-purpose computation. The code is available on Github.

Development

Efficient Right-Truncatable Prime Counter in C

2025-05-27
Efficient Right-Truncatable Prime Counter in C

This C program efficiently calculates the number of right-truncatable primes for a given number of digits. It utilizes a custom hash table for fast primality checks and the primesieve library for optimized prime generation. A right-truncatable prime remains prime after successively removing its rightmost digit. The program handles input from 1 to 19 digits, reporting the count of right-truncatable primes for each digit length and the total execution time. For example, for 8-digit numbers, it finds 5 such primes and a total of 83 up to 8 digits.

Development

Glasskube Migrates from Docusaurus to Starlight for Technical Documentation

2025-05-27
Glasskube Migrates from Docusaurus to Starlight for Technical Documentation

Philip, an engineer at Glasskube, shares their experience migrating their technical documentation framework from Docusaurus to Starlight. The post details a comparison of the two frameworks across design, SEO, developer experience, build speed, and extensibility. Docusaurus, based on React, suffers from slower build times and limited customization; Starlight, built on Astro, boasts faster build times and Tailwind CSS support but lacks Mermaid integration and marketing page capabilities. Glasskube ultimately chose Starlight for its superior developer experience and modern look and feel, despite some shortcomings. The post also shares their learnings in writing technical documentation, covering structure, user behavior analysis, and writing style, emphasizing clarity and conciseness.

Development framework choice

Hybrid R&D Engineer: Half Research, Half Engineering

2025-05-27
Hybrid R&D Engineer: Half Research, Half Engineering

This isn't your typical early-stage startup Founding Engineer role. It's a 50/50 split between research and engineering. While experience in both is ideal, a strong quantitative background and a thirst for learning can compensate for a lack of research experience. Proficiency in web development (Javascript, Node.js) and Python is mandatory. The work is open-ended and requires comfort with uncertainty; expect many failed experiments. However, you'll enjoy significant autonomy and the freedom to tackle problems as you see fit. This role is perfect for those who thrive on freedom and challenge.

Development R&D Engineer
1 2 74 75 76 78 80 81 82 214 215