Hybrid search runs a vector query and a keyword query in parallel against the same documents and merges the two...
Version 1.18.0 of irb introduced a welcome banner. Here is how to disable it, or how to add it to...
Getting parseable output back from an LLM has two halves: shaping the request, then parsing the response. Even with Ollama...
RAG is often equated with vector databases, embeddings, and semantic search. But RAG ("Retrieval-Augmented Generation") really is just 'put...
Getting started with Claude Code is super simple. Once you've made yourself familiar with it, you may want to...
A page scanned upside down or sideways has the potential to confuse OCR engines and vision LLMs. While both are...
When an LLM model has vision capabilities, you can attach Base64-encoded images to chat messages, and it will load...
I recently ran into this issue when processing a massive backlog of documents. The server completely stalled, sometimes taking up...
Below is a strict, but still workable Content Security Policy for your Ruby on Rails project. Use this CSP if...
When working with file uploads, we sometimes need to process intrinsic properties like the page count or page dimensions of...
TypeScript basically uses structural typing, which is conceptually quite similar to duck typing, but with static compile-time type checking...
I use the Gemini web chat interface quite extensively. One thing that is tedious is giving it all the context...
Sometimes you have a maintenance script where you want to iterate over all ActiveRecord models. Rails provides this out of...
When you query the browser for DOM elements, there are some footguns you should know about. Some lists are synchronized...
Compatibility: Angular 20+ with Jasmine 5.x and Karma 6.x As a default Angular CLI auto-generates test bootstrap...
You want to prevent input to a form field, but all the solutions have side effects: The [readonly] attribute is...
Full-text search can reach its limits in terms of flexibility and performance. In such cases, trigram indexes (pg_trgm...
Quick reference for passing data from Rails to JavaScript via Unpoly compilers. Haml Attribute Syntax # Ising hash rockets and string...
Quick guide for frequently used compiler selector patterns of Unpoly. 1. BEM Component Pattern When: Reusable UI components with multiple...
When RSpec sets out to print any given object to the console, it will never print more than 200 characters...
GoodJob and ActiveJob rescue exceptions internally, preventing exception_notification from triggering. This can cause silent job failures.To get notified, subscribe...
prettier calls itself an opinionated code formatter. I recommend using it for your JavaScript and TypeScript code. prettier only concerns...
If you run a Rails app that is using Turbo, you might observe that your integration tests are unstable depending...
Most of the time, when you are interested in any log output, you see the logs directly on your console...