In a previous post , I covered what Retrieval-Augmented Generation is and how to prepare data for ingestion. A companion post on the ingest pipeline walks through the data cleaning techniques that get content into the vector store. This post picks up where retrieval begins. Ingesting documents into a vector database is only half the problem. The other half is what happens when someone types a…
If your RAG pipeline ingests dirty data, the answers will be wrong. The embedding model and prompt chain cannot fix what was broken before indexing. I built this pipeline for a maritime email corpus: thousands of .eml files with PDF attachments, Office documents, images, and ZIP archives, turned into a searchable knowledge base. The examples here are maritime, but the patterns apply to any…
This post builds on Gear Ratio Basics and explains how gear ratios affect speed (velocity), torque, and efficiency. Understanding these concepts helps you design gear systems that work the way you need them to. 🔄 Gear Ratio and Velocity The gear ratio controls how fast the output gear turns compared to the input gear. The formula for calculating this is shown below: \[\text{Gear Ratio} =…
Large language models are impressive, but they’re limited by what they were trained on. They can’t access your internal documentation, stay current with new data, or reliably distinguish fact from fiction. Retrieval-Augmented Generation (RAG) addresses this gap. It augments a language model by giving it access to external data at runtime. When a question is asked, the system first retrieves…
Docker networking is powerful but can be confusing, especially when dealing with communication between the host machine and Docker containers. Many developers assume that network behavior inside a Docker network works the same as on the host, leading to unexpected issues. In this post, we’ll explore common pitfalls when running services with Docker Compose and how to handle them correctly. The…
Motion Extraction in Action: Real-time Video Processing with JavaScript In this blog post, we’ll explore a motion extraction technique inspired by an approach presented in this YouTube video by Steve of CodeParade . Steve’s work showcases impressive concepts in image processing, and this implementation applies similar ideas using JavaScript to manipulate video frames in real time. You can interact…
This is a personal reference for Docker commands that are not used often but frequently need to be looked up. Instead of searching every time, this list provides direct access to those less common yet essential commands. Remove All Stopped Containers docker rm $(docker ps -a -q) Explanation : This command removes all stopped containers. docker ps -a -q : Lists the IDs of all containers (stopped…
This guide demonstrates a Zero Downtime Deployment using Docker Rollout , featuring an intentional failure, rollback scenario, and a successful rollout. Additional I demonstrate the use of a Traefik reverse proxy to expose the service ports. Prerequisites: Ensure you have: Docker and Docker Compose installed. Docker Rollout installed : # Create directory for Docker cli plugins mkdir -p…
When developing applications that need to interact with external services such as OAuth providers or webhooks, it’s often necessary to expose your local environment to the internet. Tailscale Funnel provides a quick, secure, and hassle-free method to do this, allowing any port on your local machine to be accessible over the internet with minimal configuration. This guide will walk you through…
I’m using the UniFi UXG-Lite as a router in my home network. It connects to my DrayTek Vigor 167 modem (previously Vigor 130 ). In this post I publish the settings to configure the two devices and describe how you can reach the modem once the setup is running. Modem configuration My configuration is Telekom specific. Especially the VDSL2 Tag 7 can be different depending on the provider. I…