Category: Development

Building JavaScript Views the Hard Way

2025-04-19
Building JavaScript Views the Hard Way

This article introduces a pattern for building views in plain JavaScript, emphasizing maintainability, performance, and fun, while avoiding the complexities of frameworks like React, Vue, or lit-html. This approach uses direct imperative code for high performance, requires zero dependencies, boasts excellent portability and maintainability, and supports all browsers. The article details the structure of a view component, including template, clone function, init function, DOM variables, DOM views, state variables, DOM update functions, and state update functions, along with naming conventions and best practices to ensure code readability and maintainability.

Development Views

EdgeBit: One-Shot AI Agents for Efficient Dependency Autofix

2025-04-18

EdgeBit is a security platform helping application engineering teams find and fix security vulnerabilities. Its Dependency Autofix feature uses a highly accurate reachability engine to identify impactful app changes, allowing engineers to focus on meaningful upgrades and spend more time on core tasks. This post details how EdgeBit leverages focused tools, smart error handling, and the persistence of an AI agent to achieve massive efficiency gains, backed by data. EdgeBit's one-shot AI agent automates complex tasks without human intervention, achieving high confidence through static analysis, dependency update calculation and execution, and a consistent, correct agent workflow. Unlike pipeline-based approaches, this agent offers flexibility in inputs and outputs while maintaining determinism. The post explains how EdgeBit uses hard/soft failure mechanisms and persistence strategies to prevent AI agent loops, ultimately enabling efficient dependency updates and code maintenance.

Development

PDCurses: A Cross-Platform Public Domain Curses Library

2025-04-18
PDCurses: A Cross-Platform Public Domain Curses Library

PDCurses is a public domain curses library supporting DOS, OS/2, Windows console, X11, and SDL. It implements most X/Open and System V R4 curses functions, allowing recompilation of text-mode curses programs into GUI applications via its X11 and SDL ports. Primarily distributed as source code, pre-compiled libraries may also be available. Find the latest version at https://pdcurses.org/.

Remembering Bram Moolenaar: A History of Vi and Vim

2025-04-18
Remembering Bram Moolenaar: A History of Vi and Vim

The passing of Bram Moolenaar, creator of Vim, prompts a reflection on the rich history of UNIX text editors. This article traces the evolution from ed to Vim, recounting the stories of Ken Thompson's ed, George Coulouris' em, Bill Joy's vi, and numerous vi clones like Stevie and Elvis. Their development is intertwined with the evolution of UNIX and computing itself, showcasing the enduring spirit of open-source software. Vim, initially an Amiga port of Stevie, grew into a powerful editor still widely used today.

Development UNIX editors

Python Integrates Formally Verified Crypto Library HACL*

2025-04-18

After 2.5 years of work, Python successfully integrated the formally verified cryptographic library HACL* into its hash and HMAC implementations. This upgrade replaces the previous SHA3 implementation, which contained a CVE, and covers various algorithms including Blake2, SHA3, and HMAC, significantly improving Python's security. The project overcame challenges in implementing streaming APIs and building the system, and also implemented handling of memory allocation failures. This demonstrates the potential of formal verification in large-scale real-world projects.

Development

Good Karma Kit: Donate Unused Computing Power for Good

2025-04-18

The Good Karma Kit is a Docker Compose project that leverages spare CPU, disk, and bandwidth on servers to contribute computing power to over ten public-good projects. It includes networking projects like Tor and i2p, distributed computing projects such as BOINC and Folding@home, internet archiving projects like ArchiveBox and Kiwix, and distributed storage projects like IPFS and Storj. Users can choose which projects to participate in and adjust resource allocation. The project aims to put idle resources to work for beneficial causes, offering leaderboards to incentivize participation. Some projects are non-profit, while others offer cryptocurrency rewards.

Development

UML Diagrams Deconstruct Evans' DDD Cargo Shipping Example

2025-04-18
UML Diagrams Deconstruct Evans' DDD Cargo Shipping Example

This project visualizes the DDD cargo shipping example from Eric Evans' book using UML diagrams. Generated from the dddsample-core GitHub project, these diagrams – including class, sequence, object, and communication diagrams – illuminate the system's architecture and behavior, showcasing the interplay between components and the structure of the domain model. A directed graph, created with Astah Professional, further clarifies relationships between elements. This resource provides a practical, visual understanding of DDD principles in action.

Development Cargo Shipping System

Loglan'82: A Programming Language for Object and Distributed Programming

2025-04-18

Loglan'82 is a programming language designed for object and distributed programming, boasting features surpassing other languages. Its unique safe and efficient object management system, support for modular classes, coroutines, and threads, and ability to distribute computations across a network of virtual machines set it apart. Loglan'82 offers an original object-based communication and synchronization protocol called 'alien call' and solves challenging problems in object management, coroutine semantics, and distributed computing. It's suitable for ambitious programmers, educators, and researchers.

Development object programming

Zig for GPU Programming: A Modern Approach

2025-04-18

GPU programming used to be synonymous with wrestling C++ compilers, bloated SDKs, and vendor-specific toolchains. That's changing. Now you can write GPU code in modern languages like Rust and Zig with fewer layers of abstraction. This post explores the current state of Zig's GPU backends and how they perform across Vulkan, OpenCL, and native ISAs. Zig supports SPIR-V, PTX, and AMDGCN, allowing the generation of native binaries loadable at runtime, eliminating the need for CUDA, HIP, or HLSL. While Vulkan and OpenCL are the major SPIR-V environments, differences between them impact Zig's SPIR-V backend's behavior test pass rates. Future plans include maturing the SPIR-V backend, providing CUDA/HIP runtime bindings, and adding more GPU algorithms to the standard library.

Development

arXivLabs: Experimental Projects with Community Collaborators

2025-04-18
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 uphold 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 enhance the arXiv community? Learn more about arXivLabs.

Development

Breaking the Constraint System: Solving Dynamic Media Challenges

2025-04-18
Breaking the Constraint System: Solving Dynamic Media Challenges

In phase two, the team successfully overcame challenges like "floatiness," "blow-ups," and poor performance in constraint systems. Techniques employed included propagating knowns, leveraging linear relationships to reduce solver variable dimensions, and clustering constraints into independently solvable clusters. These significantly improved the system's stability and performance. The team experimented with various solvers and optimized the system further by changing the way values were represented (e.g., using polar coordinates). These improvements enabled the construction of physically accurate mechanical structures and true bidirectional computation, laying a solid foundation for building dynamic media.

Attune: Secure and Blazing-Fast Linux Package Hosting

2025-04-18
Attune: Secure and Blazing-Fast Linux Package Hosting

Attune is a tool for securely publishing and hosting Linux packages, offering both self-hosted and cloud-managed deployment options. Its CLI performs local repository index signing, ensuring key security. Incremental index rebuilds make it incredibly fast. Currently supporting APT (Debian and Ubuntu) repositories, with more to come. Set up an APT repository in about 5 minutes using Docker and GnuPG.

Objective-C: The Unexpected Legacy of a Polarizing Language

2025-04-18
Objective-C: The Unexpected Legacy of a Polarizing Language

Leibniz's dream of a 'characteristica universalis' lives on in programming languages. This story recounts the author's experience with Objective-C, a verbose and polarizing language that unexpectedly became the foundation of Apple's ecosystem. Despite its criticisms, Objective-C's unique syntax and role in early iOS development left a lasting impact, as the author shares their personal journey and the surprising power of this often-overlooked language.

Development

PyCA Cryptography's New ASN.1 API: Speed and Security

2025-04-18

The PyCA Cryptography team is developing a new ASN.1 API using a pure Rust parser for significantly improved performance and reduced security risks from differences with other ASN.1 parsers. The new API also features a declarative dataclasses-style interface for improved code readability and maintainability. This addresses shortcomings in existing Python ASN.1 libraries regarding performance and security, and better supports emerging ecosystems like Sigstore.

Development

Writing Less Slow C, C++, and Assembly Code: A Practical Guide to Performance

2025-04-18
Writing Less Slow C, C++, and Assembly Code: A Practical Guide to Performance

This repository offers practical examples of writing efficient C and C++ code, covering topics from micro-kernels to parallel algorithms. It demonstrates how to leverage C++20 features and compiler optimizations to boost performance (e.g., speeding up trigonometry by 40x), and explores best practices for avoiding performance bottlenecks, such as efficient JSON handling, using STL associative containers, and choosing the right parallel programming model. The project also includes code examples for hardware acceleration using Assembly, CUDA, and FPGA, aiming to help developers write faster and safer code.

Development Parallel Programming

AI-Powered Code Editor's Bot Fabricates Policy, Leading to User Cancellations

2025-04-18
AI-Powered Code Editor's Bot Fabricates Policy, Leading to User Cancellations

An AI-powered code editor, Cursor, recently faced backlash after its AI chatbot fabricated a company policy. A developer discovered that switching devices instantly logged them out of Cursor. When contacting support, an AI agent named "Sam" claimed this was a new security feature. However, no such policy existed; the AI invented the information, leading to user complaints and subscription cancellations. This highlights the risks of deploying AI systems in customer-facing roles without human oversight, potentially resulting in frustrated customers, damaged trust, and financial losses.

Development

arXivLabs: Experimental Projects with Community Collaborators

2025-04-18
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 uphold 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 for a valuable project for the arXiv community? Learn more about arXivLabs.

Development

Defold Engine Update Spree: New Releases & Cloud Build Improvements

2025-04-18
Defold Engine Update Spree: New Releases & Cloud Build Improvements

The Defold game engine has seen a flurry of updates in late 2024 and early 2025, releasing versions 1.9.6, 1.9.7, and 1.9.8. A 2024 showreel showcasing impressive games built with Defold was also released. Beyond new versions, Defold introduced a technical preview of its editor scripting API for interactive UI creation and significantly improved its cloud build servers for easier development and maintenance. These improvements aim to enhance Defold's usability and efficiency, providing developers with more powerful game development tools.

Development Updates

Jai: A Modern Programming Language for Experienced Developers

2025-04-18

A seasoned programmer, having worked with countless languages, shares their experience with Jai, a high-performance language designed for experienced developers. The author highlights Jai's strengths: simple syntax, blazing fast compilation, powerful metaprogramming capabilities, and cross-platform compatibility. They discuss using Jai in a production environment and explain why it remains in closed beta. Overall, the author praises Jai as a modern language that improves developer efficiency and enables the creation of high-quality, efficient software.

Development

Why I Abandoned Self-Hosted Sentry: 16GB RAM and a Complex Installation Were the Dealbreakers

2025-04-18
Why I Abandoned Self-Hosted Sentry: 16GB RAM and a Complex Installation Were the Dealbreakers

The author recounts their experience abandoning self-hosted Sentry. Initially, due to work requirements, they successfully self-hosted Sentry. Years later, attempting to set up self-hosted Sentry for a colleague, they encountered numerous warnings in Sentry's documentation about the risks of self-hosting, along with demanding resource requirements (at least 16GB RAM and multiple cores). This proved to be costly and incredibly difficult to maintain, with the installation process involving hundreds of lines of scripts. Online user feedback confirmed the difficulty of maintaining self-hosted Sentry. Ultimately, the author gave up on self-hosting Sentry and decided to develop a more lightweight alternative.

Development

60k Lines of Lua Later: A Game Dev's Reflection

2025-04-18
60k Lines of Lua Later: A Game Dev's Reflection

Oleg from Luden.io interviews Ivan Trusov, lead programmer of the Lua-based game Craftomation 101 (~60,000 lines of code built with the Defold engine), about their experience. Ivan discusses Lua's pros and cons, such as the lack of increment operators and classes, and array indices starting from 1. Despite this, he appreciates Lua's simplicity and flexibility, particularly its powerful 'tables', but notes runtime errors can arise in large projects due to its dynamic typing. He compares Lua to Python and C++, and discusses the potential use of static analysis tools and potential Lua upgrades (like Luau). Ultimately, he finds Lua performs well within Defold, but for the next project, he might consider a more strongly typed language to catch errors at compile time.

Development

PostgreSQL's Shared Buffer: More RAM, More Problems?

2025-04-18
PostgreSQL's Shared Buffer: More RAM, More Problems?

Machines with hundreds of gigabytes of RAM are commonplace nowadays. PostgreSQL's shared buffer can significantly boost performance, but its workings are less intuitive than you might expect. This article delves into PostgreSQL's buffer replacement strategy, including the clock sweep algorithm and ring buffer strategies. While a larger shared buffer might seem beneficial, performance can degrade beyond a certain threshold (e.g., 64GB) because the algorithm takes longer to scan for replaceable blocks. The article advises carefully sizing the shared buffer based on data size and system memory, avoiding overly large settings that can create bottlenecks.

Development

AI is Turning Us Into Glue: A Software Engineer's Anxiety

2025-04-17

The rapid advancement of AI, particularly large language models, is dramatically changing the daily work of software engineers. The author, a software engineer, finds that AI can quickly solve thorny bugs and refactor code, increasing efficiency but robbing him of the pleasure of tackling complex problems and deeply understanding system architecture. The author anticipates AI will excel at most "deep linear thinking" tasks, leaving humans to act as the "glue" connecting AI to the real world, handling mundane tasks like configuring cloud services or wiring hardware. He expresses anxiety about the future, fearing many jobs will disappear and that even new opportunities will likely involve repetitive, unfulfilling "glue" work.

Development

Mux: Democratizing Video for Developers

2025-04-17
Mux: Democratizing Video for Developers

Mux is building video infrastructure for developers, aiming to democratize video by tackling the hard problems of video encoding, streaming (Mux Video), and monitoring (Mux Data). Backed by top investors like Coatue and Accel, and boasting a team with experience from Google, YouTube, and Twitch, Mux serves a diverse clientele ranging from startups to established companies like Reddit and Vimeo. They also host Demuxed, the leading conference for video engineers.

Securely Manage Environment Variables with GPG-Encrypted Files

2025-04-17
Securely Manage Environment Variables with GPG-Encrypted Files

This shell tool provides a secure way to manage environment variables using GPG-encrypted files. It addresses the common issue of command-line tools needing environment variables containing sensitive information stored in unencrypted shell files. The tool allows users to read secrets from encrypted files and easily switch between different accounts. It supports nested logins, updates the `SECRET_LOGIN` environment variable, and modifies the shell prompt to display the current login. Autocomplete for available filenames is also included.

Val: An Arbitrary-Precision Calculator Language

2025-04-17
Val: An Arbitrary-Precision Calculator Language

Val is a simple arbitrary-precision calculator language built on top of chumsky and ariadne. It runs on Linux, MacOS, BSDs, and Windows. Installation is easy via Cargo, or pre-built binaries are available. Val features a command-line interface and REPL with syntax highlighting, persistent history, and emacs-style editing. The language supports functions, loops, conditionals, and a rich set of built-in functions covering arithmetic, logical, comparison, and collection operations. Data types include numbers, booleans, strings, and lists.

Development

Taming iCalendar Recurring Events with Distance Functions

2025-04-17
Taming iCalendar Recurring Events with Distance Functions

The author encountered a challenge in handling recurring events while implementing a library for processing iCalendar files. iCalendar uses complex rules to define recurring events, and traditional implementations typically involve writing a lot of specific logic for different frequencies and parameters. The author took a different approach, viewing recurrence rules as SQL queries and borrowing ideas from signed distance functions (SDFs) in computer graphics, representing event occurrences using distance functions. This method decomposes complex rules into simple distance functions, iteratively calculating event occurrence times to avoid numerous conditional judgments, resulting in cleaner and easier-to-maintain code. Although the initial implementation wasn't very efficient, the author optimized it to handle complex recurrence rules in milliseconds.

(pwy.io)

TypeScript: Object Parameters vs. Individual Parameters

2025-04-17

When writing functions in TypeScript, you can pass arguments individually or group them into an object. This article argues that object parameters are superior. Individual parameters lead to ambiguity and maintainability issues as the number of parameters increases. Object parameters, like `{firstName: "John", lastName: "Doe", age: 28, isActive: true}`, offer clarity, self-documentation, and leverage TypeScript's autocompletion and type safety features.

Development function parameters

Write and Transaction Support in SQLite Virtual Tables

2025-04-17

This post delves into the implementation details of write and transaction support in SQLite virtual tables. By implementing hooks like xUpdate, xBegin, xSync, xCommit, and xRollback, virtual tables can support write operations and ensure transactional integrity. The article explains how SQLite's rollback journal and super-journal mechanisms coordinate atomic commits in both single and multi-database scenarios, and how virtual tables participate in this two-phase commit protocol. The author emphasizes that durability must be handled in xSync, while xCommit and xRollback should only perform idempotent cleanup operations, avoiding any operations that could fail.

AgentAPI: A Unified HTTP API for Controlling Coding Agents

2025-04-17
AgentAPI: A Unified HTTP API for Controlling Coding Agents

AgentAPI is a powerful HTTP API designed to control coding AI agents like Claude Code, Goose, Aider, and Codex. It provides a unified chat interface, enabling interaction through simple API calls. Users can even build an MCP server where one agent controls another. AgentAPI automatically handles terminal output, removing clutter and parsing it into individual messages, simplifying interaction. While official SDKs from LLMs may emerge, AgentAPI aims to be a universal adapter, allowing developers to easily switch between coding AI agents.

Development
1 2 3 4 5 7 9 10 11 108 109