Category: Development

Compiling Perl to WebAssembly: A Herculean Task

2025-02-11
Compiling Perl to WebAssembly: A Herculean Task

Building a startup, the author faced a challenge: client-side file metadata extraction. ExifTool, while powerful, proved difficult to statically compile and deploy across OSes due to its Perl nature. Various approaches were attempted, including statically compiling Perl, finally leading to WebAssembly. The journey was fraught with challenges, battling Perl's build system, Emscripten, and WASI, even requiring Perl source code modifications. The author successfully built a self-contained WebAssembly Perl running ExifTool, but the process exposed insufficient exception handling support in WebAssembly runtimes.

Development

Craftax: A Lightning-Fast JAX-Based Benchmark for Open-Ended RL

2025-02-11
Craftax: A Lightning-Fast JAX-Based Benchmark for Open-Ended RL

Craftax is an RL environment entirely written in JAX, reimplementing and significantly extending the game mechanics of Crafter, drawing inspiration from roguelikes like NetHack. Compatible with the gymnax interface, it integrates easily with JAX frameworks like PureJaxRL and JaxUED. Accepted as a spotlight paper at ICML 2024, Craftax offers CPU and GPU/TPU support, along with tutorials and baselines. Installation instructions and usage examples are provided.

Development Game Environment

Explosion of Papers on Benchmarking LLMs for Code Generation

2025-02-11
Explosion of Papers on Benchmarking LLMs for Code Generation

A flurry of recent arXiv preprints focuses on benchmarking large language models (LLMs) for code generation. These papers cover various aspects, including LLMs solving real-world GitHub issues, self-invoking code generation, API usage, stability analysis, and evaluations across the entire software development lifecycle. Researchers have developed diverse benchmarks like SWE-bench, HumanEval Pro, SEAL, and DevEval, along with corresponding metrics, aiming for a more comprehensive evaluation of LLM code generation capabilities and driving progress in the field.

Development

arXivLabs: Experimental Projects with Community Collaborators

2025-02-11
arXivLabs: Experimental Projects with Community Collaborators

arXivLabs is a framework that enables collaborators to develop and share new arXiv features directly on our website. Individuals and organizations working with arXivLabs have embraced our values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only partners with those who share them. Have an idea for a project that will benefit the arXiv community? Learn more about arXivLabs.

Development

arXivLabs: Experimenting with Community Collaboration

2025-02-11
arXivLabs: Experimenting with Community Collaboration

arXivLabs is a framework for collaborators to develop and share new arXiv features directly on the website. Individuals and organizations involved embrace 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. Have an idea to improve the arXiv community? Learn more about arXivLabs.

Development

Breaking WebAssembly Runtime Limitations: Asyncifying ZeroPerl

2025-02-11
Breaking WebAssembly Runtime Limitations: Asyncifying ZeroPerl

Frustrated by the lack of exnref support in most WebAssembly runtimes, rendering ZeroPerl unusable, the author decided to fix the problem instead of complaining. By leveraging Binaryen's Asyncify feature, a replacement for setjmp was implemented from scratch, bypassing libsetjmp's compatibility issues. After removing the official library, writing assembly code, and optimizing with wasm-opt, ZeroPerl now runs successfully in Wasmer, Wasmtime, and other WebAssembly runtimes. This breakthrough delivers a fully sandboxed and self-contained Perl WebAssembly module.

Development

Legion Health: AI-Powered Mental Healthcare – Hiring Backend Engineers

2025-02-11
Legion Health: AI-Powered Mental Healthcare – Hiring Backend Engineers

YC-backed Legion Health is hiring top-tier backend engineers to build a next-gen, AI-driven mental healthcare system. This system uses AI to streamline operations like scheduling, billing, and patient interaction, not diagnostics. Engineers will architect and implement a highly scalable, event-driven backend using Node.js, Supabase, and AWS, handling real-time data and ensuring HIPAA compliance and security. This is a challenging and impactful opportunity to shape the future of AI in healthcare.

Development AI Healthcare

The 20+ Year War Against Insecure Connections: A libcurl Retrospective

2025-02-11
The 20+ Year War Against Insecure Connections:  A libcurl Retrospective

Since curl's support for SSL in 1998, default certificate verification has been a cornerstone of network security. However, developers continue to disable this crucial check, leading to widespread vulnerabilities. This article recounts the evolution of libcurl, explores the dangers of disabling verification, and proposes solutions like API improvements, enhanced documentation, and proactive bug reporting. The fight for secure connections is a long-term battle.

Sentry: Redefining Enterprise Software – The Fortune 500,000 Approach

2025-02-11

Sentry, with over 50,000 paying customers, challenges traditional enterprise software models. The author argues that focusing on building a product every customer wants, at a reasonable price, and targeting the "Fortune 500,000" is a superior strategy to the legacy model of solely focusing on large enterprises. This product-led growth approach prioritizes community building, branding, and low-friction customer experience over massive sales teams. The author claims this model isn't just viable but also efficient and measurable, offering a new pathway for enterprise software companies.

(cra.mr)
Development community building

Canonical Unveils 12-Year LTS for Kubernetes

2025-02-11
Canonical Unveils 12-Year LTS for Kubernetes

Canonical announced a 12-year security maintenance and support commitment for its Kubernetes 1.32 LTS release. This long-term support covers bare metal, public clouds, OpenStack, Canonical MicroCloud, and VMware. The release boasts ease of installation, operation, and upgrades, integrating best-of-breed open-source networking, DNS, gateway, metrics server, local storage, load balancer, and ingress services. Businesses can choose between frequent updates (every four months) or the 12-year LTS for stability. It also offers FedRAMP compliance and integrates with Ubuntu Pro for comprehensive open-source stack security.

Development

Why 'Boring' Tech Is Actually the Best

2025-02-11
Why 'Boring' Tech Is Actually the Best

This article argues that 'boring' technology, exemplified by NetBSD, is superior in system administration and architecture. 'Boring' implies predictability, reducing unexpected failures and maintenance headaches. Mature technology boasts comprehensive documentation, an active community, and a proven track record, not simply age. While ubiquity isn't the measure of 'boringness', mature technologies are generally easier to understand and maintain, thus lowering costs and improving reliability. The author concludes that NetBSD's 'boringness' is precisely its greatest strength.

Development

Quarto: Literate Programming Beyond R Markdown

2025-02-11

Quarto, built on Pandoc, elevates literate programming beyond R Markdown. It seamlessly integrates code (R, Python, Julia, etc.) with human-readable text using a simple Markdown syntax. Create rich documents with executable code blocks, figures, and tables, easily rendered into various formats (HTML, PDF, etc.). Customize your output with features like code folding and execution options for a polished final product. Quarto offers a powerful yet user-friendly approach to creating reproducible and shareable documents.

Development

Systemd to Boot Directly from HTTP-Downloaded Disk Images

2025-02-11

Systemd lead developer Lennart Poettering is adding the ability to boot directly from a disk image downloaded via HTTP within the initial RAM disk (initrd) during the Linux boot process. Building on recent systemd additions, this allows downloading the root disk image via HTTP, attaching it to a loopback device, and mounting it. The goal is to allow pointing UEFI to a URL to load the Unified Kernel Image (UKI) and boot the root filesystem. The immediate use case is simplifying physical device testing by easily booting new root filesystems over HTTP on each boot. The work-in-progress pull request includes the initial code for this; future extensions may include NVMe-over-TCP support.

Development boot

Extend: Unleash Your Keyboard's Potential

2025-02-11

Extend is a powerful keyboard layout enhancement that maps common navigation and editing keys to the home row, boosting productivity. Through clever key combinations, you can easily perform text editing, window management, browser operations, and more, minimizing mouse use. The article details Extend's usage, shortcuts, and configuration across platforms, sharing advanced techniques like using Tap-Extend for single-key actions. The author likens Extend to magic, transforming your computing experience.

Development keyboard layout

A Deep Dive into Static Single Assignment (SSA) Compiler Optimizations

2025-02-11
A Deep Dive into Static Single Assignment (SSA) Compiler Optimizations

This article chronicles the decades-long evolution of Static Single Assignment (SSA) compiler optimization techniques. From the early papers on code motion and global value numbering, through Cytron's seminal work on minimizing phi instructions, to Brandis and Mössenböck's single-pass generation approach, and Click and Paleczny's Sea of Nodes IR, the article traces several key papers and discusses their strengths and weaknesses. It also touches upon Appel's work on the relationship between functional programming and SSA, Aycock and Horspool's iterative phi node removal, and more recent approaches based on abstract interpretation. The article concludes with a list of further papers and resources, providing a more comprehensive perspective for readers interested in learning more about SSA.

Btrfs Allocator Hints: Optimizing Mixed Storage Performance

2025-02-11
Btrfs Allocator Hints: Optimizing Mixed Storage Performance

Btrfs now features allocator hints, allowing users to specify devices for metadata and data allocation, optimizing performance in mixed storage setups (e.g., SSDs and HDDs). By prioritizing faster SSDs for metadata and slower HDDs for data, users can improve filesystem responsiveness and storage efficiency. This requires a patched kernel and command-line configuration. Improper configuration can lead to out-of-space errors; careful monitoring is recommended.

Development mixed storage

Basecamp Embraces Imprecision in Project Management

2025-02-11
Basecamp Embraces Imprecision in Project Management

Basecamp challenges the obsession with precise numbers in project management, advocating for embracing ambiguity and subjectivity. The article criticizes the pursuit of exact figures that ignore project realities, arguing that "63% complete" is meaningless, while "expecting completion next Tuesday" is more realistic. Basecamp's new features like Hill Charts and Move The Needle allow users to visually represent project progress using intuitive graphical markers, emphasizing subjective judgment over mechanical calculations. The article contends that in creative work, subjectivity and productivity are not adversaries but partners. Basecamp will continue to refine its approach to reflect reality more accurately.

Development subjectivity

Easter Eggs & the Joy of Software Development

2025-02-11
Easter Eggs & the Joy of Software Development

A development team injected fun into the creation of their new product, Tapestry, by incorporating several Easter eggs. Starting with a spinning fidget spinner on the beta badge and evolving into a personalized, dynamic app icon “disco” based on user feedback, the team engaged users with playful surprises. These weren't mere additions; they were cleverly integrated into testing and bug-fixing processes. The article showcases the team's humor and creativity, illustrating how to infuse joy into every stage of software development.

Development easter eggs

Solving Sudoku in tmux: A Madcap Python Compiler Project

2025-02-11
Solving Sudoku in tmux: A Madcap Python Compiler Project

Following up on his previous project compiling Python to run on tmux, the author has now created a Sudoku solver entirely within tmux. Eschewing arrays and strings, he cleverly leverages tmux's variables and keybindings, mapping each Sudoku cell to a tmux option. The solver brute-forces its way through all possibilities, resulting in extremely low efficiency. However, the project showcases the surprising capabilities of tmux and the author's ingenuity, a testament to the hacker spirit.

Development sudoku

Dagger Cloud v3: Rewriting the Frontend in Go and WebAssembly for Superior Performance

2025-02-11
Dagger Cloud v3: Rewriting the Frontend in Go and WebAssembly for Superior Performance

The Dagger team rewrote their Dagger Cloud web interface from React to a v3 version using Go and WebAssembly. This was done to unify two UI codebases (terminal and web UI), boosting development speed and performance. Despite the non-mainstream nature of the Go and WebAssembly combination, by utilizing the Go-app framework and significant memory optimizations, they successfully built a faster, smoother, and consistent user interface mirroring their terminal UI. The project highlights challenges and opportunities of using Go and WebAssembly, such as memory limits and the lack of readily available component libraries. Ultimately, Dagger Cloud v3 delivered performance improvements and increased developer efficiency for the team.

Development

nocc: A Distributed C++ Compiler for Blazing Fast Builds

2025-02-11
nocc: A Distributed C++ Compiler for Blazing Fast Builds

nocc is a distributed C++ compiler designed to dramatically speed up compilation, especially for large projects in CI/CD pipelines and collaborative development environments. By distributing compilation tasks to remote machines and leveraging shared remote caches, nocc avoids redundant compilations. Developed at VK.com to accelerate KPHP compilation, it achieved a 2-9x speedup over their previous solution. Easily integrated into existing build systems, nocc also supports precompiled headers for further performance gains.

Brave Browser's New Custom Scriptlets: Take Control of Your Browsing Experience

2025-02-11
Brave Browser's New Custom Scriptlets: Take Control of Your Browsing Experience

Brave Browser version 1.75 introduces 'custom scriptlets' for desktop users, allowing advanced users to inject their own JavaScript into websites for deep customization. Similar to Tampermonkey and Greasemonkey, this feature enables users to create scripts modifying website functionality. Initially developed for debugging Brave's ad blocker, its value led to its release. Custom scriptlets enhance privacy, security, and usability by blocking trackers, customizing appearance, and improving accessibility. However, caution is advised as untrusted scripts pose risks. The feature is located in `brave://settings/shields/filters` and requires enabling 'Developer mode'.

Xvesa Resurrection: A Tiny X Server Rises Again

2025-02-11
Xvesa Resurrection: A Tiny X Server Rises Again

Xvesa, a lightweight X server, has been resurrected from the depths of git history! The team chose to maintain it with Xfbdev, prioritizing bug fixes, security improvements, and occasional new features because TinyX servers are much smaller than Xorg can be. Version 1.2.0 was chosen over 1.3.0 due to input issues in the latter. The design emphasizes minimalism and full functionality, omitting xkb, xinput, xinerama, and gl. TCP listening is disabled by default, and shadow framebuffer is enabled. The license is GPLv3.

Development X server

Order-Independent Keyword Arguments in C++26 using Reflection

2025-02-11

This blog post explores implementing order-independent keyword arguments for C++ using C++26's proposed reflection features. The author stumbled upon this technique while experimenting with reflection and shares it as a compelling demonstration of the power of these features. The post contrasts this approach with prior, less elegant solutions, including designated initializers and helper objects. The core of the post details how to leverage reflection to achieve order-independent and optional keyword arguments, providing complete code examples and explanations. This includes handling lambda expression captures and extending the fmt library for enhanced formatting capabilities.

Development Keyword Arguments

Smooth Scroll Animations: Say Goodbye to Janky Scrolling

2025-02-10
Smooth Scroll Animations: Say Goodbye to Janky Scrolling

Tired of janky scroll animations? The new Scroll-driven Animations specification is here! Integrating with the Web Animations API and CSS Animations API, it enables silky-smooth scroll animations running off the main thread. Create stunning effects like parallax backgrounds, reading progress indicators, and image reveals with minimal code. The article features numerous demos and a video course to help you get started building amazing scroll-driven experiences.

Development Scroll Animations

Real-time App Architectures: A Comparison of Poke/Pull, Push State, Push Ops, and Event Sourcing

2025-02-10

This article explores four main patterns for building real-time applications: Poke/Pull, Push State, Push Ops, and Event Sourcing. Poke/Pull is easy to integrate but suffers from fan-out issues; Push State directly pushes state but struggles with large-scale state updates; Push Ops push operations instead of the entire state, which is more efficient; Event Sourcing pushes events, requiring client-side logic. The article also compares different transport methods (WebSockets, SSE, etc.) and their challenges in horizontally scaled systems, highlighting the role of Pub/Sub.

Malicious VS Code Extension Uses Typosquatting to Deliver Multi-Stage Malware

2025-02-10
Malicious VS Code Extension Uses Typosquatting to Deliver Multi-Stage Malware

Researchers uncovered a malicious VS Code extension, `truffelvscode`, which typosquatted the popular `truffle` extension. This extension acts as a Trojan horse for multi-stage malware. The malware downloads and executes several stages of malicious code, ultimately installing and configuring the ScreenConnect remote access tool, granting attackers remote control of the compromised system. Obfuscation techniques were used to hide the malicious code, but researchers used deobfuscation and sandbox analysis to reveal the entire attack chain. This incident highlights the importance of caution when installing VS Code extensions and underscores the growing threat of software supply chain attacks.

Development

40-Year-Old Conjecture Shattered: New Hash Table Outperforms Expectations

2025-02-10
40-Year-Old Conjecture Shattered: New Hash Table Outperforms Expectations

Graduate student Krapivin (University of Cambridge), along with Farach-Colton and Kuszmaul (New York University), have overturned Yao's conjecture, a long-held belief in computer science. Their novel hash table achieves a worst-case time complexity of (log x)² for element lookups, significantly faster than the previously believed optimal x. This groundbreaking research not only solves a classic problem in hash table design but also dramatically improves data storage efficiency, sparking significant interest within the academic community.

Development hash table

arXivLabs: Experimental Projects with Community Collaborators

2025-02-10
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 involved share arXiv's values of openness, community, excellence, and user data privacy. arXiv only partners with those who adhere to these principles. Got an idea to enhance the arXiv community? Learn more about arXivLabs.

Development
1 2 163 164 165 167 169 170 171 214 215