Category: Development

haiku.rag: A Retrieval-Augmented Generation Library on SQLite

2025-06-24
haiku.rag: A Retrieval-Augmented Generation Library on SQLite

haiku.rag is a Retrieval-Augmented Generation (RAG) library built on SQLite, eliminating the need for additional servers. It supports various embedding providers (Ollama, VoyageAI, OpenAI, and custom), offering hybrid search combining vector and full-text search. Features include file monitoring, extensive file format support, a CLI, and a Python client for seamless document management and retrieval.

Development

SourceHut Updates Terms of Service and Privacy Policy

2025-06-24

SourceHut has updated its Terms of Service and Privacy Policy, primarily improving the descriptions of how user data is stored, used, and shared with third parties. The update clarifies account security and adds detail on user access and control over their data. It also introduces restrictions on the use of automated tools to prevent abuse.

Development

ML Has Monads: It's All About Modules

2025-06-24
ML Has Monads: It's All About Modules

The common perception that Haskell's use of monads is a unique language feature is challenged. The author argues that monads are a matter of library design, not language design, achievable in any modular language. The article uses ML to demonstrate how monads, including the Option and IO monads, can be implemented using its module system. While acknowledging ML's capacity for monads, the author suggests that their default omission stems from potential drawbacks like hindering code flexibility and transitioning between functional and monadic styles.

Development Modules

Starship: A Customizable Prompt for Your Terminal

2025-06-24
Starship: A Customizable Prompt for Your Terminal

Starship is a cross-platform, highly customizable terminal prompt that enhances your command-line interface with rich information. Installation is straightforward; simply add the init script to your shell's configuration file. It supports various shells, including bash, zsh, fish, PowerShell, ion, elvish, tcsh, Nushell, xonsh, and cmd. Whether you're on Linux, macOS, or Windows, Starship makes your terminal both beautiful and informative.

Development terminal prompt

10x Speedup: Switching from pip to uv in Dockerized Flask/Django Apps

2025-06-24
10x Speedup: Switching from pip to uv in Dockerized Flask/Django Apps

This post details a significant performance improvement (up to 10x) achieved by switching from pip to uv for dependency management in Dockerized Flask and Django applications. The author explains how to replace requirements.txt with pyproject.toml, modify the Dockerfile to utilize uv, and leverages uv commands for efficient dependency handling. The process avoids virtual environments and runs as a non-root user, contributing to faster build times and improved efficiency. A video tutorial and example project are also provided.

Development

Solving a Variant of N-Queens in Haskell: Backtracking, Optimization, and Benchmarks

2025-06-24

This blog post details solving a variant of the N-Queens puzzle found on LinkedIn using Haskell. The puzzle involves placing N queens on a colored N x N board such that each row, column, and color region contains exactly one queen, with no two queens diagonally adjacent. The author explores several optimization techniques, including backtracking, elimination, early dead-end detection, and candidate ranking. The resulting Haskell solution is benchmarked against an SMT solver, demonstrating significant performance improvements through efficient data structures and algorithmic refinements. The code elegantly handles the problem's complexities, showcasing Haskell's strengths in functional programming.

Development N-Queens

Retro Game Dev: A Cross-Platform Roguelike Adventure

2025-06-24
Retro Game Dev: A Cross-Platform Roguelike Adventure

This post details the journey of creating a roguelike dungeon crawler playable on vintage computers like the Commodore 64 and Commodore PET. The author initially used the TRSE development environment, but shifted to C due to challenges with Pascal, cross-platform compatibility issues, and library limitations. While C offered better portability, significant conditional code was needed to handle varying system architectures, compilers, and standards. Lessons learned include starting small, using conditional compilation judiciously, prioritizing core mechanics, designing flexible resources, leveraging emulators for testing, and understanding hardware quirks. The author ultimately decided to focus on the Commodore 64 first before expanding to other platforms.

Weekend Hack: Gaussian Sampling Saves the Day

2025-06-24
Weekend Hack: Gaussian Sampling Saves the Day

A SaaS application's pricing slider caused 15-second delays from the ML model. Full pre-computation would take nearly 7 days. The author cleverly used Gaussian distribution to strategically sample price points, prioritizing the middle range with higher precision, and reducing precision towards the ends. Pre-computation finished over the weekend, successfully avoiding a demo failure.

Small Company's SOC 2 Journey: From Endless Questionnaires to Type I Success

2025-06-24
Small Company's SOC 2 Journey: From Endless Questionnaires to Type I Success

Tired of endless security questionnaires, a small company embarked on a SOC 2 certification journey. They used Vanta to connect services, fix compliance gaps, write numerous policies, implement zero-trust production access, upgrade their tech stack (Nx, Infisical, monitoring, VPN, etc.), conduct penetration testing, and evaluate all vendors. They successfully passed SOC 2 Type I and are now working on Type II. Their experience highlights the importance of policy creation, tech upgrades, and vendor assessment, showcasing how tools like Vanta streamlined the process.

Development Security Compliance

Zig•EM: A Novel Embedded Programming Framework in Zig

2025-06-24

Zig•EM is a new embedded programming framework built on the Zig programming language. This article details its installation, build system (leveraging Zig's cache for speed), project structure (featuring a unique package, bucket, and unit hierarchy), and core code constructs. Zig•EM uses a two-stage compilation process: META (host-based configuration and code generation) and TARG (target-hardware compilation) for efficient embedded development. The article also shows how to install the Zig•EM VS Code extension and provides example programs for quick onboarding.

Development Programming Framework

Giant Emojis in Your Terminal: A 1978 Tech Hack

2025-06-24

This article explores a clever way to display enlarged emojis in your terminal using the VT100's DECDHL escape sequence. By printing the top and bottom halves of an emoji on consecutive lines, you can achieve a vertical scaling effect. The article demonstrates how to combine different emojis to create novel results, such as merging an expressionless face and a face without a mouth into a new emoji. It also mentions Kitty terminal's more modern approach to resizing text. Overall, it's a fun and insightful look at manipulating emojis in the terminal, showcasing both vintage and modern terminal technology.

(dgl.cx)
Development

Deep Dive into Solid Queue: Advanced Features of a Rails Background Job Processor

2025-06-24
Deep Dive into Solid Queue: Advanced Features of a Rails Background Job Processor

Solid Queue is a robust background job processing system for Ruby on Rails, cleverly using the database—instead of external dependencies like Redis—to store and manage jobs. This article delves into Solid Queue's advanced features: job scheduling, recurring tasks, and concurrency controls. A dispatcher and scheduler handle scheduled and recurring jobs, respectively, utilizing `solid_queue_scheduled_executions` and `solid_queue_recurring_tasks` tables. Concurrency controls, implemented with Semaphore and BlockedExecution models, limit concurrent execution of specific job types, preventing resource contention. AppSignal integration is also discussed for monitoring Solid Queue's performance. Solid Queue's design prioritizes simplicity and reliability, making it a valuable addition to the Rails ecosystem.

Development

iOS 26's Savior: iPhone Recovery Without a Mac or PC

2025-06-23
iOS 26's Savior: iPhone Recovery Without a Mac or PC

iOS 26 introduces a new Recovery Assistant feature that allows you to restore your iPhone without needing a Mac or PC. This feature, automatically triggered when the iPhone encounters a startup issue, puts the device into Recovery mode and attempts to resolve the problem. It also allows for recovery via another Apple device (like an iPad), downloading and installing a newer iOS version to revive a malfunctioning iPhone. This expands upon a recovery feature first introduced on iPhone 16 models last year, offering a more convenient repair solution.

Porting Pigz to Windows: A Surprisingly Smooth Cross-Platform Journey

2025-06-23
Porting Pigz to Windows: A Surprisingly Smooth Cross-Platform Journey

Pigz, a Unix-style compression tool, was surprisingly easy to port to Windows. The article details the challenges encountered, such as differences in pthreads threading library and dirent functions, and minor variations in C library function names. The author cleverly utilized existing compatibility patches and the Premake build system to overcome these hurdles. Premake simplified the creation and maintenance of Visual Studio project files, ultimately resulting in a successful Pigz implementation on Windows.

Development

LibT9: A Lightweight C Library for T9 Typing

2025-06-23
LibT9: A Lightweight C Library for T9 Typing

LibT9 is a lightweight C library for creating T9 typing systems. It boasts no external dependencies beyond a standard C library implementation. Use it as a Linux driver (found in the driver/ directory), a CLI utility (requiring ncurses and cmake), or via a web interface (foxmoss.github.io/libt9/). The project is actively seeking contributions and future plans include punctuation support, an IBus driver, and non-word support.

Development T9 input Linux driver

Pickaxe: A TypeScript Library for Building Scalable AI Agents

2025-06-23
Pickaxe: A TypeScript Library for Building Scalable AI Agents

Pickaxe is a lightweight TypeScript library for building fault-tolerant and scalable AI agents. It handles the complexities of durable execution, queueing, and scheduling, letting you focus on core business logic. It's not a framework; everything is a function, making integration with existing codebases easy. Agents can call tools, other agents, or any functions you define. Built on Hatchet's durable task queue, Pickaxe ensures fault tolerance and recoverability, automatically resuming execution even after machine failures. It supports distributed deployment across various container platforms and offers configuration options for retries, rate limiting, concurrency control, and more.

Development

PostgreSQL's Quirky Grammar: A Deep Dive into the Parser

2025-06-23

This article delves into some less-known aspects of PostgreSQL's grammar, including custom operators, precedence in compound SELECT statements, percent types, string continuation, quoted identifiers, and Unicode escapes. The author highlights that PostgreSQL's custom operators differ significantly from other mainstream languages, presenting unique implementation challenges. For instance, the support for custom operators allows native parsing of Trino's lambda expression syntax, but introduces precedence complexities. The article also details the nuanced behavior of string continuation and comments, explaining how to handle double quotes and Unicode escape sequences within identifiers. Finally, it demonstrates the use of operator functions, showcasing how to specify the operator's schema.

Development Custom Operators

uv: 10-100x Faster Python Package & Project Manager

2025-06-23
uv: 10-100x Faster Python Package & Project Manager

uv is an extremely fast Python package and project manager written in Rust. It replaces pip, pip-tools, pipx, poetry, pyenv, twine, and virtualenv, boasting a 10-100x speed improvement over pip. uv offers comprehensive project management features, including lockfiles, workspaces, Python version management, and cross-platform support (macOS, Linux, Windows). It simplifies dependency management for both single-file scripts and large-scale projects, significantly boosting developer productivity.

Development

Minimal Boolean Formulas: Elegance and Challenges in Algorithm Design

2025-06-23

This article recounts the journey of computing the minimum number of AND or OR operators needed to express any Boolean function of five variables. Initially, a Floyd-Warshall algorithm variant was used, but it proved inefficient. The author and Alex Healy later collaborated, leveraging function symmetries and other properties to significantly optimize the algorithm, ultimately calculating the result as 28. The article details the algorithm's optimization process, including reducing computation through function symmetries and equivalence classes, and transitioning from a bottom-up construction to a top-down search. The final algorithm reduced computation time from an estimated months to under half a day.

Development boolean function

Goodbye Tedious Workflows: My tmux-Powered Dev Setup

2025-06-23

This post details a highly efficient development workflow built around tmux. The author uses clever tmux configuration and scripting to directly open files on a remote server, seamlessly jump between panes, and switch effortlessly between files—all without local clones. The post walks through the configuration, including regular expressions and scripts, and compares alternatives. The motivation stemmed from frustrations with VSCode's lag and keybinding conflicts. While complex to set up, the author argues the efficiency gains outweigh the cost.

Development remote development

Rivulet: A Programming Language Inspired by Calligraphy

2025-06-23
Rivulet: A Programming Language Inspired by Calligraphy

Rivulet is a unique programming language that eschews traditional keywords, instead adopting a visual style reminiscent of calligraphy. Code is written in flowing lines, its logic unlike most programming languages, more akin to the evolution of a natural language. The speaker will introduce Rivulet alongside other esoteric programming languages drawing from lesser-known aspects of natural and constructed languages, showcasing their ambiguity and expressive power. Rivulet code represents the number zero in seven different ways using 'strands', whose combinations form 'glyphs'. Its visual style is inspired by mazes, Anni Albers' work, and space-filling algorithms.

Development calligraphy

Speeding Up Emacs TRAMP: A Practical Guide

2025-06-23

The author shares their experience optimizing Emacs TRAMP for faster remote access. While TRAMP is powerful, remote operations are often painfully slow. The article details configuration tweaks (like `tramp-copy-size-limit`, `tramp-direct-async-process`), choosing optimal copy methods (scp vs. rsync), and optimizing packages like Magit (using `magit-dispatch`). Significant performance gains are achieved. Caching techniques to reduce TRAMP calls are also presented, along with custom functions to further enhance LSP and Magit performance. The result? Near seamless remote work. The author hints at future explorations of deeper performance optimizations.

Hacking Go's Garbage Collector: Pointer Stores from Assembly

2025-06-23
Hacking Go's Garbage Collector: Pointer Stores from Assembly

This post delves into the intricacies of manipulating Go pointers from assembly code, focusing on the crucial interaction with Go's garbage collector. Directly manipulating pointers requires explicitly informing the GC via functions like `runtime.gcWriteBarrier2` and `runtime.writeBarrier` to avoid conflicts and potential crashes. The article also tackles the challenge of allocating 128-bit aligned memory for optimal AVX instruction usage, presenting a clever workaround. However, it warns against relying on internal runtime functions, as their availability might change in future Go versions.

Development Go assembly

CyberScript: A Fast, Efficient, and Concurrent Scripting Language

2025-06-23

CyberScript is a statically-typed (with dynamic typing support) scripting language designed for speed, efficiency, and concurrency. Its concise and readable syntax, combined with a rich feature set including various data types (booleans, numbers, strings, arrays, lists, tables, maps), operators, and control flow statements, makes it a powerful tool. Advanced features like object-oriented programming, metaprogramming, asynchronous programming, concurrency, and C interoperability are also supported.

Development

From Advent of Code to Custom CPU: A Langdev Journey

2025-06-23
From Advent of Code to Custom CPU: A Langdev Journey

The author recounts their journey into systems programming and language development, starting with a challenge from Advent of Code 2015, Day 7. This led to creating their own programming language, "mango," and then a bytecode virtual machine, "turbine." To build the VM, they delved into Turing machines and CPU architecture, designing a simple instruction set and registers, implemented in C. The project showcases the author's passion for systems programming and strong technical skills, culminating in a VM capable of running basic programs. The author is seeking GitHub stars to qualify for a certain event.

Development

Holes in Topological Spaces: Homotopy and Weak Homotopy Equivalence

2025-06-23
Holes in Topological Spaces: Homotopy and Weak Homotopy Equivalence

This article explores the concept of 'holes' in topological spaces and introduces two equivalence relations: homotopy equivalence and weak homotopy equivalence. Homotopy equivalence allows spaces to be deformed while preserving the number of 'holes,' such as a coffee cup and a torus being homotopy equivalent. Weak homotopy equivalence is more relaxed, requiring only that spaces have the same homotopy groups, even if they differ in local structure. The article delves into the concept of homotopy groups and illustrates how to identify 'holes' in spaces using homotopy groups with the example of a torus. Finally, it mentions Grothendieck's conjecture that the infinity groupoid captures all information about a topological space up to weak homotopy equivalence, which is closely related to weak factorization systems and Quillen model categories.

Monster Hunter-Style Custom Select: A CSS and JS Fusion

2025-06-23
Monster Hunter-Style Custom Select: A CSS and JS Fusion

This article details a creative custom select element inspired by the Monster Hunter game UI. The author masterfully uses CSS and JavaScript to implement horizontal scrolling, dragging, and keyboard navigation. It delves into the HTML structure, CSS styling (including variables, anchor positioning, scroll snapping), and JavaScript event handling (drag, arrow keys, focus management). While acknowledging accessibility challenges, the example showcases the power of CSS and JavaScript, offering developers new design possibilities.

Development Custom Select

VS Code Extension for Claude Code: AI-Powered Coding Assistant

2025-06-23
VS Code Extension for Claude Code: AI-Powered Coding Assistant

Anthropic's Claude Code now boasts a VS Code extension, seamlessly integrating its powerful AI coding assistance directly into your IDE. The extension features auto-installation, context awareness for selected text, code diff viewing within VS Code's diff viewer, and convenient keyboard shortcuts (Alt+Cmd+K). It's also tab-aware, recognizing your open files, and allows for configuration customization. While still in early release and potentially containing bugs, it showcases the promising future of AI-assisted coding.

Development

Verlet Integration: Building a 2D Cloth Simulation with C++

2025-06-23
Verlet Integration: Building a 2D Cloth Simulation with C++

This article provides a clear and concise explanation of Verlet integration, demonstrating its application through a 2D cloth simulation implemented in C++. It begins with a review of fundamental calculus concepts, compares and contrasts Euler and Verlet integration methods, and culminates in a code implementation of an interactive cloth simulation where users can drag and tear the cloth using the mouse.

Development Verlet Integration
1 2 42 43 44 46 48 49 50 203 204