Category: Development

Golioth Investigates: A Cellular Connectivity Mystery

2025-02-26
Golioth Investigates: A Cellular Connectivity Mystery

Golioth recently encountered a perplexing cellular connectivity issue: some devices using a specific vendor's chipset experienced connection failures after OTA firmware updates. Investigation revealed the problem stemmed from some NB-IoT networks not adhering to 3GPP specifications, causing the modem to fail to obtain DNS server addresses correctly. The Golioth team, by deeply analyzing 3GPP specifications, modem trace data, and network protocols, ultimately found a workaround, but also exposed the drawbacks of closed ecosystems and lack of transparency, calling for greater industry transparency to improve cellular connectivity reliability.

Open Source: Where Dreams Go To Die

2025-02-26
Open Source: Where Dreams Go To Die

The resignation of Hector Martin, lead developer of Asahi Linux, highlights the unsustainable nature of open-source development. Years of unpaid work porting Linux to Apple Silicon led to burnout, fueled by endless user demands and lack of compensation. This article explores the broken economics of open source, where developers pour countless hours into projects without adequate reward, leading to exhaustion and project abandonment. It calls for a fundamental shift in how we value and support open-source contributions to prevent future tragedies.

Development

A Hilarious Compendium of Absurd Open Source Licenses

2025-02-26
A Hilarious Compendium of Absurd Open Source Licenses

This article compiles a collection of ridiculous, funny, and downright bad open-source licenses. From licenses that allow copying but forbid running the software, to licenses restricting use based on race and sexual orientation, the absurdity knows no bounds. Some licenses require users to be gay and commit crimes, others prohibit use with NFTs or blockchain, and still others invoke biblical morality. The author's disclaimer: Don't use these licenses!

arXivLabs: Community Collaboration on arXiv Features

2025-02-26
arXivLabs: Community Collaboration on arXiv Features

arXivLabs is a framework for developing and sharing new arXiv features directly on the website, fostering collaboration with individuals and organizations that share arXiv's values of openness, community, excellence, and user data privacy. Got an idea to improve the arXiv community? Learn more about arXivLabs.

Development

vscli: Streamline VS Code Dev Container Launches from the Command Line

2025-02-26
vscli: Streamline VS Code Dev Container Launches from the Command Line

vscli is a command-line tool designed to simplify launching Visual Studio Code dev containers. Supporting VS Code, VS Code Insiders, Cursor, and other editors, it automatically detects whether a project uses dev containers and launches the appropriate one. The `open` command opens projects, while `recent` displays a list of recently used projects. It offers flexible launch behaviors (force container, force classic, detect), supports custom configurations, and allows passing additional arguments to the editor. vscli significantly boosts developer productivity with its concise commands and extensive options.

Development

Indentation Styles: A Holy War Rages On

2025-02-26

The debate over code indentation styles continues to divide programmers. From Allman to K&R to GNU, each style has its advocates, with no clear consensus on which is superior. This article delves into the pros and cons of various indentation styles and cites recent research demonstrating that proper indentation significantly improves code readability and reduces reading time. Ultimately, consistency, regardless of the chosen style, is key.

Telescope: A Web-Based Log Viewer for ClickHouse

2025-02-26
Telescope: A Web-Based Log Viewer for ClickHouse

Telescope is a web application providing an intuitive interface for exploring log data stored in ClickHouse. It supports various log types, allowing users to easily configure connections and use queries to filter, search, and analyze logs efficiently. Currently in beta, a live demo is available, showcasing core features. Future plans include adding query presets, raw SQL support, and more.

Development log viewer

Iterated Log Coding: A Novel Floating-Point Encoding Format

2025-02-26

This article introduces a novel real number encoding format—iterated log coding. Unlike traditional floating-point representations, this format uses a sequence of sign bits to represent numbers, each sign bit indicating the positivity or negativity of the number within a specific range. This approach allows for a remarkably wide range of representable numbers, including extremely large or small values that are beyond the capabilities of traditional floating-point formats. It features a unique lexicographic ordering property. While the precision distribution is non-uniform, the method offers advantages in representing numbers within certain ranges, particularly where extremely large or small values are involved and precision requirements are less stringent.

Development floating-point encoding

Mysterious Squares in Windows Filenames: A UTF-16 Surrogate Pair Adventure

2025-02-26

This article describes a curious phenomenon in Windows: many small executables with strange squares in their names appearing in Task Manager. These files are not malicious; the issue stems from the use of UTF-16 surrogate pairs in filenames. UTF-16, to accommodate extended Unicode characters, uses surrogate pairs to represent characters beyond the Basic Multilingual Plane. When string manipulation produces isolated or malformed surrogate pairs, filenames become unrenderable. The article explains surrogate pairs and provides a Python script to generate files with unrenderable filenames, reproducing the phenomenon.

Development Surrogate Pairs

DeepGEMM: Clean and Efficient FP8 GEMM Kernels with Fine-Grained Scaling

2025-02-26
DeepGEMM: Clean and Efficient FP8 GEMM Kernels with Fine-Grained Scaling

DeepGEMM is a library for clean and efficient FP8 General Matrix Multiplications (GEMMs) on NVIDIA Hopper Tensor Cores, featuring fine-grained scaling as proposed in DeepSeek-V3. Supporting both normal and Mix-of-Experts (MoE) grouped GEMMs, it uses a lightweight Just-In-Time (JIT) compiler, eliminating the need for compilation during installation. It tackles the imprecision of FP8 tensor core accumulation via CUDA-core two-level accumulation (promotion). Despite its concise design (~300 lines of core code), DeepGEMM's performance matches or surpasses expert-tuned libraries across various matrix shapes.

Development

EdgeDB Rebrands as Gel, Embraces PostgreSQL Ecosystem

2025-02-26
EdgeDB Rebrands as Gel, Embraces PostgreSQL Ecosystem

EdgeDB, a database startup, has rebranded as Gel and announced that its 6.0 release fully supports SQL, natively supporting the PostgreSQL protocol. Gel positions itself as a frontend layer for PostgreSQL, similar to TypeScript for JavaScript, enhancing data schema and query efficiency via intelligent compilers. The rebranding aims for greater clarity and simplicity, better integrating with the thriving PostgreSQL ecosystem. Gel 6.0 marks a significant shift from solely supporting its proprietary EdgeQL query language to embracing SQL, broadening its appeal and lowering the barrier to entry.

Development

MyCoder: Command-Line AI Coding Assistant That Handles Any Coding Challenge

2025-02-25
MyCoder: Command-Line AI Coding Assistant That Handles Any Coding Challenge

MyCoder is a powerful command-line based AI agent system capable of performing arbitrary tasks, with a particular focus on coding tasks. It uses a modular tool-based architecture to interact with files, execute commands, make network requests, and spawn sub-agents for parallel task execution. With an Anthropic API key, MyCoder can fix build errors, update dependencies, refactor code, add new features, and much more. It supports interactive mode and reading prompts from files, and features smart logging and self-modification capabilities. MyCoder leverages the Claude API and uses Conventional Commits and GitHub Actions for CI/CD.

Development

ggwave: A Tiny Data-over-Sound Library

2025-02-25
ggwave: A Tiny Data-over-Sound Library

ggwave is a lightweight open-source library enabling communication of small amounts of data between air-gapped devices using sound. It employs a simple FSK-based transmission protocol with a bandwidth of 8-16 bytes/sec, incorporating error correction codes for robust demodulation. Applications range from IoT and audio QR codes to device pairing. The library is cross-platform, offering examples and easy installation across various systems. Users can leverage different audio backends based on their needs.

Development data transmission

Web Interaction Paradigm Shift: Invoker Commands Explained

2025-02-25

This explainer details a new proposal for web interaction: Invoker Commands. By adding `commandfor` and `command` attributes to `` elements, it assigns behavior to buttons in a more accessible and declarative way, reducing the amount of JavaScript required. The proposal defines a `CommandEvent`, allowing developers to customize interactions. Built-in support for `` and `` elements is included, with a focus on accessibility and security. It also supports custom commands and provides ample example code demonstrating how to simplify web interaction development using this proposal.

Development

A Glimpse into the Future of Browser-Based Python: Introducing SPy

2025-02-25
A Glimpse into the Future of Browser-Based Python: Introducing SPy

To overcome the speed limitations of Python in the browser, engineers from Anaconda and Cloudflare developed SPy. SPy isn't a simple Python port; it's a new language allowing a mix of compile-time and runtime code (blue and red code, respectively). Blue code, resembling Python, enables pre-computation at compile time, dramatically boosting performance. SPy code can be interpreted or compiled to C, then further compiled into native binaries or WebAssembly. A generative art demo showcased a 100x speed improvement by migrating from PyScript to SPy. While in early stages, SPy demonstrates impressive potential, promising near-Rust speeds for native Python execution in browsers in the future.

Development

Low-Overhead Statistical Memory Profiling in PyPy: Integrating VMProf and the GC

2025-02-25

This blog post describes a novel approach to low-overhead statistical memory profiling for PyPy. Instead of recording every allocation, it samples every nth allocated byte, cleverly integrating the sampling logic into PyPy's garbage collector's (GC) bump pointer allocator check. This ensures the fast path remains identical with and without memory sampling, minimizing overhead. Experiments demonstrate good performance across various sampling rates, offering finer control and lower overhead for memory profiling.

Development memory profiling

LLMs: The Unexpected Success of Document Ranking

2025-02-25
LLMs: The Unexpected Success of Document Ranking

This paper argues that Large Language Models (LLMs) can be effectively used for listwise document ranking, and that surprisingly, some complex problems can be solved by transforming them into document ranking problems. The author demonstrates this by using patch diffing to locate N-day vulnerabilities. By reframing the problem as ranking diffs (documents) by their relevance to a security advisory (query), LLMs can efficiently pinpoint the specific function fixing a vulnerability. This technique has been validated at multiple security conferences and can be applied to other security problems such as fuzzing target selection and prioritization. Future improvements include analyzing ranked results and generating verifiable evidence, such as automatically generating testable proof-of-concept exploits.

OCaml's Powerhouse Ecosystem: Dune & Essential Libraries

2025-02-25
OCaml's Powerhouse Ecosystem: Dune & Essential Libraries

This article showcases key components of the robust OCaml ecosystem. Dune (formerly Jbuilder) is a composable build system; Base replaces OCaml's standard library for improved performance and portability; Core extends Base with enhanced functionality; Async enables asynchronous programming; Bonsai builds declarative, incremental state machines; Incremental facilitates self-adjusting computations; Base_quickcheck provides randomized, property-based testing; and Patdiff is a diff tool optimized for code and config files. Together, these libraries form a powerful foundation for OCaml development, boosting efficiency and code quality.

Development

Free AI Coding Assistant: Gemini Code Assist Now Available for Individuals

2025-02-25
Free AI Coding Assistant: Gemini Code Assist Now Available for Individuals

Google's Gemini Code Assist is now free for individual developers, integrated into Visual Studio Code and JetBrains IDEs. Offering code completion, generation, and chat capabilities, it boasts a usage limit 90 times higher than other free assistants. With a generous 128,000 token context window, developers can work with large files seamlessly. Using natural language prompts in various languages, developers can generate code (like a simple HTML form), explain code snippets, and debug. This powerful tool allows developers to focus on creativity while Gemini handles repetitive tasks.

Development free development tool

GoatDB: A Lightweight NoDB for Deno & React

2025-02-25
GoatDB: A Lightweight NoDB for Deno & React

GoatDB is a real-time, version-controlled database ideal for Deno and React projects, offering seamless deployments. Perfect for prototyping, self-hosting, single-tenant apps, and lightweight multi-tenant setups without complex backends. Features include client-side processing, offline-first capabilities, and real-time collaboration. React hooks simplify state management, while efficient incremental queries, built-in sync, and a robust security model make it perfect for quick prototyping and collaborative projects.

Development

Browser-Use: Empowering AI to Control Your Browser

2025-02-25
Browser-Use: Empowering AI to Control Your Browser

Imagine your AI seamlessly interacting with your browser, searching information, clicking links, and even performing complex web tasks. Browser-Use is a powerful Python library enabling AI agents to directly control browsers, automating actions such as searching Reddit, adding items to a shopping cart, or even adding contacts to Salesforce. The project offers easy-to-use APIs, readily available UI examples, and comprehensive documentation. A dedicated committee is even being formed to define best practices for browser agent UI/UX design. Whether you're a developer or AI researcher, Browser-Use offers significant benefits.

Development

Hyperspace: A Mac App That Reclaims Disk Space Using APFS Clones

2025-02-25
Hyperspace: A Mac App That Reclaims Disk Space Using APFS Clones

John Siracusa, a veteran developer, has released Hyperspace, a Mac app that cleverly leverages the cloning features of the APFS file system to free up valuable disk space. Unlike other apps that delete duplicate files, Hyperspace reclaims space losslessly by converting files with identical content into clones sharing a single data instance. The article details Hyperspace's development journey and the author's experiences and challenges using SwiftUI and Swift 6. While Hyperspace's method of manipulating files carries risks, its powerful functionality and ease of use make it a boon for Mac users.

Development Mac app Disk space

Elixir Embraces Python: Pythonx Brings Multilingual Programming to Livebook

2025-02-25

To address the challenge of integrating Elixir with existing Python ecosystems in data science, this article introduces the Pythonx project. Pythonx embeds the Python interpreter within the Erlang VM, enabling automatic data conversion and code evaluation between Elixir and Python, and simplifying virtual environment management. With Pythonx, developers can seamlessly mix Elixir and Python code within Livebook notebooks, significantly improving development efficiency and enhancing Livebook's practicality. The article also discusses potential issues like the GIL and alternative solutions, and introduces Fine, a C++ library for simplifying NIF development.

Development

Novel Programming Language Ideas: Refinement Types and Compile-Time Safety

2025-02-25

A blog post explores future directions for programming languages, proposing several innovative features. These include refinement-type-based function overloading and using union types and refinement types within C-like structs for memory optimization. The post also discusses compile-time memory safety and introduces the concept of an 'assume' function, allowing programmers to bypass safety checks under specific conditions for easier debugging. These ideas aim to enhance type safety and efficiency in programming languages.

Development compile-time safety

Advanced Git Configuration: How Core Devs Configure Git

2025-02-25
Advanced Git Configuration: How Core Devs Configure Git

This post delves into lesser-known Git configuration settings that can significantly improve the Git experience. The author shares the best configurations discovered by Git core developers during a "Spring Cleaning" experiment, categorized into three groups: settings that demonstrably improve Git (like improved branch sorting, diff algorithms, push and fetch operations), harmless but occasionally helpful settings (like autocorrect prompting, showing diffs on commit, reusing conflict resolutions), and settings based on personal preference (like improved merge conflict handling, rebase defaults, and filesystem monitoring). Each setting's function is explained in detail with corresponding commands, helping readers optimize their Git configurations for increased efficiency.

Development Configuration

Bypassing TCP/UDP: An Unexpected Network Experiment

2025-02-25
Bypassing TCP/UDP: An Unexpected Network Experiment

The author attempts to create a custom network transport protocol, bypassing TCP and UDP, to explore its behavior on different operating systems and network environments. Experiments reveal that the custom protocol partially succeeds in local loopback tests, but in cross-network environments, most cloud servers and network devices drop custom protocol packets except for AWS, and there are issues such as poor cross-platform compatibility. The final conclusion: Unless necessary, stick to TCP or UDP!

Development

Major Improvements to MSVC Address Sanitizer (ASan)

2025-02-25
Major Improvements to MSVC Address Sanitizer (ASan)

Microsoft has significantly improved the quality of MSVC Address Sanitizer (ASan). They've successfully upstreamed major parts of ASan to LLVM, enabling faster integration of improvements from the LLVM community. Furthermore, they've integrated ASan into the MSVC codebase, including the compiler, linker, and tools, allowing for memory safety issue detection in continuous integration. Visual Studio 2022 version 17.13 includes numerous fixes, reducing false positives, improving error reporting, and handling multi-process scenarios.

Development

Xcode's Constant Phone Home: Privacy Concerns and Build Speed Bottlenecks

2025-02-25

Developer Jeff Johnson discovered that Xcode frequently connects to Apple servers during project builds, leading to slow build times, especially during the "Gather provisioning inputs" phase. By disabling connections to developerservices2.apple.com using Little Snitch, he resolved the build speed issue. He also found that Xcode connects to other Apple servers, such as devimages-cdn.apple.com and appstoreconnect.apple.com, upon launch and project opening, seemingly unnecessarily and potentially transmitting developer information to Apple. Jeff argues that Xcode acts as a developer analytics collection mechanism, compromising developer privacy.

Development Build Speed

HTTP/2: Why It Doesn't Matter in Ruby HTTP Servers

2025-02-25

This post discusses the relevance of HTTP/2 support in Ruby HTTP servers like Puma. The author argues that while HTTP/2's main advantage – multiplexing for faster page load times – is significant over the internet, it offers little benefit on a LAN. Low latency and long-lived connections within a LAN minimize the impact of TCP slow start. Furthermore, HTTP/2's server push feature proved detrimental and has been superseded by the more elegant 103 Early Hints. The author advocates leaving HTTP/2 handling to load balancers or reverse proxies, simplifying deployment and maintenance for the application server.

Development Network Performance
1 2 151 152 153 155 157 158 159 214 215