Writing
Notes from the projects: what was measured, what broke, and what I changed because of it.
Looking for a method you can follow step by step? See the guides →
How unofficial UET GPT uses retrieved sources, reranker thresholds and refusal instructions, with model fallback and a proposed evaluation method.
How to build scraping and monitoring pipelines that fail loudly instead of quietly: SQLite WAL mode, bounded retries, a first-run baseline and confirmed sends.
Three patterns I use for AI web apps with Next.js 15, React 19 Server Components, streaming UI, and strict TypeScript.
Out of the box, Tesseract beat RapidOCR on scanned book spreads and ran 8× faster. With layout handling added, RapidOCR won on characters. Per-page numbers and the script.