Category: Development

Retry Algorithm Showdown: Linear, Exponential, and Capped Exponential Backoff

2025-01-05

This article compares three common retry algorithms: linear backoff, exponential backoff, and capped exponential backoff. Linear backoff increases the wait time by a fixed amount with each retry; exponential backoff doubles (or multiplies) the wait time with each retry; capped exponential backoff is similar to exponential backoff but with a maximum delay. The article also discusses adding random jitter to prevent "thundering herd" problems when multiple clients retry simultaneously.

MyST Markdown: Open-Source Tools Revolutionizing Scientific Communication

2025-01-05
MyST Markdown: Open-Source Tools Revolutionizing Scientific Communication

MyST Markdown is an open-source, community-driven ecosystem of tools designed to transform scientific communication. It supports authoring blogs, online books, scientific papers, reports, and journal articles, offering powerful features like embedded live graphs, Jupyter integration, PDF export, and compatibility with hundreds of journals. At its core is a flexible Markdown extension that seamlessly integrates code, computational results, and interactive elements, creating dynamic and engaging documents. Whether you're a scientist, engineer, or technical writer, MyST empowers you to share your research and knowledge more effectively.

PyPI's Project Quarantine: A New Weapon Against Malware

2025-01-05
PyPI's Project Quarantine: A New Weapon Against Malware

The Python Package Index (PyPI) has introduced a 'Project Quarantine' feature to combat the persistent problem of malware. This feature allows PyPI administrators to flag potentially harmful projects, preventing easy installation by users and mitigating harm. Instead of outright deletion, projects are hidden from the simple index, remaining modifiable by owners (but not releasable), with administrators retaining the power to lift quarantine. Future plans include automating quarantine based on multiple credible reports, improving efficiency and shrinking the window of opportunity for malware spread.

Development

Slime Mold Simulation with WebGPU: A TypeScript and Compute Shader Implementation

2025-01-05
Slime Mold Simulation with WebGPU: A TypeScript and Compute Shader Implementation

SuboptimalEng has created a stunning slime mold simulation using WebGPU and TypeScript. This project recreates Sebastian Lague's classic work, leveraging compute shaders for efficient simulation of the slime mold's growth and movement. A detailed setup guide, screenshots, and resource links are included, and the project is deployed to GitHub Pages for easy access. This is a fantastic example to learn WebGPU and compute shaders.

The Fight Over Copyright in Open Source: Who Controls Your Code?

2025-01-04
The Fight Over Copyright in Open Source: Who Controls Your Code?

This essay delves into the complexities of copyright ownership in Free and Open Source Software (FOSS). Traditionally, many FOSS projects assign copyrights to non-profits, but this practice has become controversial. The author argues that most FOSS contributors' copyrights are actually owned by their employers, weakening the protection afforded by copyleft licenses. Shifting away from centralized copyright assignment could leave corporations in control, potentially hindering GPL enforcement. The article urges FOSS contributors to carefully consider copyright ownership, suggesting proactive measures to protect their rights and uphold the interests of the open-source community, preventing copyleft from becoming ineffective.

Development

Labwc: A Lightweight Wayland Compositor Focused on Simplicity

2025-01-04
Labwc: A Lightweight Wayland Compositor Focused on Simplicity

Labwc is a lightweight wlroots-based Wayland window compositor inspired by openbox. It prioritizes simple, efficient window stacking and minimal window decorations. Unlike many compositors, it relies on clients to provide features like panels, screenshots, and wallpapers, maintaining its lightweight nature. Adhering to wlroots and sway's coding style, Labwc exclusively supports Wayland protocols, rejecting dbus, sway/i3-IPC, etc., to avoid protocol fragmentation and promote Wayland adoption.

Development Window Manager

Go Assembly Bugs: Frame Pointer Clashes in Two Cases

2025-01-04

This post dissects two Go crashes stemming from buggy assembly code that clobbered the frame pointer. One bug overwritten the frame pointer register (BP on AMD64) within the go-metro library, the other incorrectly saved the frame pointer on the stack in Apache Arrow's ARM64 assembly. The author recommends using assembly generators like Avo to avoid manual register and stack manipulation. The article delves into ABIs and calling conventions, offering insights into preventing similar issues, highlighting the importance of understanding and adhering to Go's assembly guidelines.

Development Assembly Frame Pointer

ELKS: An Embeddable Linux Kernel Subset for 8086

2025-01-04
ELKS: An Embeddable Linux Kernel Subset for 8086

ELKS provides a Linux-like OS for Intel IA16 architecture-based systems (16-bit processors: 8086, 8088, etc.). It supports networking and HDD installation (MINIX and FAT filesystems), runs with as little as 256KB RAM, and works on old IBM PCs and modern SBCs, SoCs, and FPGAs. Downloadable disk images and build instructions are available, along with an online demo.

Development

Efficient Recorder: An Open-Source, Privacy-Focused Screen Recorder

2025-01-04
Efficient Recorder: An Open-Source, Privacy-Focused Screen Recorder

Inspired by a tweet, developer Jan Wilmake created Efficient Recorder, an open-source project aiming to build a privacy-focused alternative to Rewind.ai. This command-line interface (CLI) tool simultaneously records screen, system audio, and microphone audio, streaming data directly to an S3 bucket. It features intelligent audio recording (switching sample rates based on speech detection), automated screenshot and webcam capture, and efficient resource management to minimize system overhead. Efficient Recorder allows customization of settings such as screenshot and webcam intervals, and image quality.

Development screen recording

MoonBit on Golem Cloud: Building a Collaborative List Editor

2025-01-04

This blog post details building a collaborative list editor on Golem Cloud using the new programming language MoonBit. The author breaks down the application into three Golem components: list, archive, and email notifier. MoonBit's features are leveraged to implement list manipulation, archiving, and timeout email notifications. The post thoroughly explains MoonBit usage, Golem component architecture design, and accessing system time and environment variables using WASI. The application is successfully built and deployed, showcasing MoonBit's potential on the Golem Cloud platform.

Development

YC-backed Infisical Hiring Solutions Engineer

2025-01-04
YC-backed Infisical Hiring Solutions Engineer

Infisical, a Y Combinator-backed open-source secret management platform, is hiring a Solutions Engineer. Processing over 100M secrets daily, they serve clients ranging from large enterprises to fast-growing startups. The role requires experience in development or systems engineering and a customer-facing background. Responsibilities include ensuring customer success, expanding into new use cases, and improving the product. Infisical offers competitive salary and equity, plus benefits.

Development Solutions Engineer

One Dog vs. the Windows 3.1 Graphics Stack

2025-01-04

The author attempts to run Windows 3.11 on a 2008 Asus Eee PC 1000H netbook, encountering video output issues. The default VGA mode looks awful on the higher-resolution screen, and the included Super VGA driver is incompatible. The article delves into the intricacies of Windows 3.x Enhanced mode, VGA hardware, the VBE standard, and the SVGAPatch. Through reverse engineering and debugging, the author analyzes the display driver and Virtual Display Device (VDD), improving SVGAPatch to resolve some compatibility problems. However, challenges remain, highlighting the complexities of legacy systems.

Development

Open Source Magic: Auto Smiley, the Computer Vision Smile Generator

2025-01-04
Open Source Magic: Auto Smiley, the Computer Vision Smile Generator

F.A.T. Lab released Auto Smiley, an open-source application leveraging computer vision to detect smiles. When you smile, it automatically inserts ":)" into your currently active application. Built with openFrameworks and MPT, it's available for Windows and Mac, showcasing F.A.T. Lab's rapid prototyping and creative technology prowess. This speed project highlights their commitment to open source and public domain resources.

Prettier Now Supports PGN File Formatting

2025-01-04
Prettier Now Supports PGN File Formatting

A new Prettier plugin, `prettier-plugin-pgn`, has been released, adding support for formatting Portable Game Notation (PGN) files. PGN is a standard text format for recording chess games. This plugin handles variations, annotations, and multiple games within a single PGN file, making life easier for chess players and developers. Installation is straightforward via npm or globally.

Development Code Formatting

Finishing Side Projects with LLMs and Cursor

2025-01-04
Finishing Side Projects with LLMs and Cursor

This blog post details how the author dramatically improved their side project completion rate using LLMs and the Cursor IDE. Facing time constraints, they leveraged AI to refine project specifications, bootstrap code generation, and iterate effectively. A habit tracker website serves as a case study, walking through the process from initial spec (refined with ChatGPT) to deployment via GitHub Actions. Key strategies include using Vite for project setup, Cursor's agent mode for code generation, iterative development with a divide-and-conquer approach, and providing ample context to the LLMs. The author emphasizes the importance of choosing the right LLM and Cursor mode for different tasks, ultimately delivering a functional v1 of the habit tracker.

Beam: SSH-based File and Pipe Transfer Tool

2025-01-04
Beam: SSH-based File and Pipe Transfer Tool

Beam is a tool for transferring files and pipes over SSH, requiring only an SSH client; no binary installation is needed. It supports pipe transfer, offers high security with public key authentication, and uses simple SSH commands for sending and receiving data. Random channel names can enhance security. While the Beam server is located in Germany, transfer speeds might be limited, and end-to-end encryption isn't supported (data is briefly decrypted on the server), its lightweight nature and simple self-hosting make it a convenient file transfer solution.

5 Ways to Render Outlines in Unity

2025-01-04
5 Ways to Render Outlines in Unity

This article explores five distinct techniques for rendering object outlines in the Unity game engine: rim lighting, vertex extrusion, blurred buffer, jump flood algorithm, and edge detection. Each technique offers trade-offs between performance, visual fidelity, and implementation complexity. Rim lighting is simple but works best on spherical objects. Vertex extrusion produces good results but struggles with sharp edges. The blurred buffer method is great for soft outlines but can be performance-intensive. The jump flood algorithm excels at rendering wide outlines efficiently. Edge detection provides a full-screen outlining effect but requires careful tuning to avoid artifacts. The optimal choice depends on project needs and performance constraints.

Under the Hood of ChatGPT: A Programmer's Perspective

2025-01-04
Under the Hood of ChatGPT: A Programmer's Perspective

This article provides a deep dive into how ChatGPT works, specifically geared towards programmers. Skipping over general AI/ML concepts, it focuses on OpenAI's ChatGPT model, explaining its architecture, the use of Transformer networks, and how Reinforcement Learning from Human Feedback (RLHF) fine-tunes it for conversational tasks. The article also details tokenization, model training, response generation, and the role of RLHF in ensuring accurate and contextually relevant responses.

Development

RailsConf 2025: A Final Farewell and a New Beginning

2025-01-04
RailsConf 2025: A Final Farewell and a New Beginning

Ruby Central has announced that RailsConf 2025, taking place July 8th-10th in Philadelphia, will be the last. After nearly 20 years, this final gathering celebrates the legacy of Rails and its community. As a strategic shift, Ruby Central will host only RailsConf in 2025, postponing RubyConf to Spring 2026, where it will become the flagship event. This allows for a higher quality experience and increased support for open-source projects like RubyGems and Bundler. Rails will maintain a strong presence at future RubyConfs, alongside RailsWorld, creating a spring/fall rhythm for major Ruby and Rails events.

Development

Do Files Want to Be Actors? io_uring and the Convergence of Computing Paradigms

2025-01-04
Do Files Want to Be Actors? io_uring and the Convergence of Computing Paradigms

In high-performance Linux applications, io_uring is revolutionizing OS interaction. It uses submission and completion queues, allowing asynchronous I/O without waiting for syscalls. Simply queue operations and continue computation. This remarkably mirrors the Actor model: objects send messages for concurrent computation. io_uring's sending operations to file descriptors and asynchronously receiving responses strikingly resembles this. This suggests a shift towards asynchronous, self-managing OS behavior; traditional syscall methods might be an outdated abstraction.

Development

Recursion Demystified: A Project-Based Approach

2025-01-04

The Recursive Book of Recursion challenges the intimidating reputation of recursive algorithms. Using Python and JavaScript examples, it progressively explains recursion's fundamentals, common algorithms (factorials, Fibonacci sequences, tree traversal, maze solving, etc.), and optimization techniques (tail call optimization, memoization). It covers advanced topics like divide-and-conquer, permutations, combinations, and dynamic programming, culminating in fractal art generation. Project-based and highly accessible, this book is perfect for beginners and experienced programmers alike.

Development

Wine 10.0-rc4 Released: Enhanced Stability and Compatibility

2025-01-04
Wine 10.0-rc4 Released: Enhanced Stability and Compatibility

The release candidate Wine 10.0-rc4 marks a significant step towards the upcoming major update of this open-source compatibility layer. This release focuses heavily on improved stability and compatibility, promising a smoother experience for running Windows applications. The development team has invested significant effort in bug fixes and performance enhancements, paving the way for a robust final release. Expect exciting improvements in the final version.

Development Compatibility Layer

Breaking Up with Long Tasks: Mastering Asynchronous Loops for Web Performance

2025-01-04
Breaking Up with Long Tasks: Mastering Asynchronous Loops for Web Performance

This article delves into optimizing JavaScript loops to prevent blocking the main thread and improve web performance. The author highlights that using `for...of` loops or methods like `forEach` directly on large arrays can create long tasks, leading to a sluggish user experience. The solution involves using `scheduler.yield` or `setTimeout(0)` with `async/await` to break down long tasks into smaller ones, yielding control after each iteration to maintain responsiveness. The article further explores batch processing and frame rate optimization strategies to balance responsiveness and processing efficiency. Ultimately, it recommends choosing an appropriate batch size and strategy based on specific application needs for optimal user experience.

Implementing a Pseudorandom Number Generator with XORSHIFT32

2025-01-04

This devlog details the implementation of a pseudorandom number generator (PRNG) using the XORSHIFT32 algorithm. The author uses 1804289383 as the initial state, a number previously used in other engine implementations. The implementation is straightforward, involving bit shifts on the initial state. The code defines the initial state and includes a `getRandomNumber()` function that performs the XORSHIFT32 algorithm.

Transcendental Syntax: Building Logical Abstractions from a Low-Level Language

2025-01-04
Transcendental Syntax: Building Logical Abstractions from a Low-Level Language

This GitHub project implements Jean-Yves Girard's 'Transcendental Syntax,' a method for constructing logical abstractions from a low-level, logic-agnostic language. It uses a base language called 'stellar resolution,' where elementary objects (programs) are 'constellations.' These constellations are used in a higher-level language, 'Stellogen' (a metaprogramming language for constellations), to define proofs and formulas. The project is under development, with the guide currently only available in French.

Development logic metaprogramming

Weird: Own Your Digital Home

2025-01-04
Weird: Own Your Digital Home

In the digital age, we often rent virtual space on giant platforms like Facebook and GitHub, losing true digital sovereignty. Weird aims to change that by offering free website hosting, allowing you to own your domain and website, building a safe and personalized digital home. With simple link lists, you can participate in the social knowledge graph and establish your digital identity. While still in early testing, Weird is steadily improving and will eventually support features like Web Passports and ATProto logins.

Pimosa: All-in-One Video, Photo, & Music Editing App

2025-01-04
Pimosa: All-in-One Video, Photo, & Music Editing App

Pimosa is an all-in-one video, photo, and music editing app for macOS and Windows boasting over 20 tools. Features include video compression, conversion, resizing, merging, flipping, rotating, and speed adjustment; audio conversion, merging, extraction, and metadata editing; and image compression, conversion, resizing, and basic editing. Batch processing, built-in players, and a clean UI are highlights. User reviews are overwhelmingly positive, praising its efficiency and convenience.

Blazing Fast JavaScript/TypeScript Compiler and Bundler on JVM: swc4j

2025-01-04
Blazing Fast JavaScript/TypeScript Compiler and Bundler on JVM: swc4j

swc4j is an ultra-fast JavaScript and TypeScript compilation and bundling tool on the JVM. Part of the Javet portfolio, it processes JavaScript and TypeScript code before execution in Node.js or V8 on the JVM. Features include AST parsing, plugin support, code transformations, minification, multiple target ES versions, source maps, and robust code sanitization (keyword restrictions, object protection, etc.). Easily integrated into projects via Maven or Gradle, swc4j offers a streamlined workflow for compiling and bundling.

Development

B-Trees: A Deep Dive into Database Optimization

2025-01-04
B-Trees: A Deep Dive into Database Optimization

This article delves into the practical application of B-trees, particularly their optimization strategies within databases. By comparing B-trees and binary search trees in disk storage, the author explains how the high fan-out of B-trees reduces the number of disk I/O operations, thereby enhancing database performance. The article details B-tree optimizations such as slotted pages, separator key truncation, overflow pages, and sibling pointers, and how these techniques improve data locality, space utilization, and query efficiency. Finally, the author points out that real-world B-tree applications are far more complex than theoretical models, requiring consideration of specific hardware and operating system constraints.

Development B-tree

F-Droid Fake Signer PoC: Bypassing Certificate Pinning

2025-01-04
F-Droid Fake Signer PoC: Bypassing Certificate Pinning

This project is a proof-of-concept demonstrating vulnerabilities in F-Droid's APK signature verification. Attackers can exploit these flaws to forge signatures, bypassing F-Droid's certificate pinning and allowing malicious apps to masquerade as legitimate ones. The vulnerabilities stem from inconsistencies in how F-Droid handles certificate order and verification within the APK signing block. By manipulating these inconsistencies, attackers can inject false certificate information, tricking F-Droid into accepting them as valid. While fixes have been proposed and implemented, further vulnerabilities and bypasses have been discovered, highlighting ongoing challenges in securing APK signing verification.

1 2 181 182 183 185 187 188 189 202 203