<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>LK Forge Blog</title><description>Engineering writeups from building LK Forge: AI-assisted development retrospectives, game AI deep dives, and honest build data.</description><link>https://lkforge.com/</link><atom:link href="https://lkforge.com/rss.xml" rel="self" type="application/rss+xml"/><language>en-us</language><item><title>How Accurately Can You Stop a Stopwatch?</title><link>https://lkforge.com/tools/timer/human-timing-accuracy/</link><guid isPermaLink="true">https://lkforge.com/tools/timer/human-timing-accuracy/</guid><description>A live experiment, currently gathering data: stop a stopwatch at exactly 10.00 seconds and your anonymized attempt joins a public dataset. Add a data point and watch the error distribution grow.</description><pubDate>Mon, 27 Jul 2026 12:00:00 GMT</pubDate></item><item><title>Are Online PDF Tools Safe? How No-Upload PDF Tools Work</title><link>https://lkforge.com/blog/are-online-pdf-tools-safe/</link><guid isPermaLink="true">https://lkforge.com/blog/are-online-pdf-tools-safe/</guid><description>Many online PDF tools upload your file to a server. How client-side, no-upload PDF tools work, why it matters for contracts and scans, and how to tell whether a site uploads your files.</description><pubDate>Sun, 26 Jul 2026 12:00:00 GMT</pubDate></item><item><title>How We Built a 12-Tool PDF Suite That Runs Entirely in Your Browser</title><link>https://lkforge.com/blog/building-a-no-upload-pdf-suite/</link><guid isPermaLink="true">https://lkforge.com/blog/building-a-no-upload-pdf-suite/</guid><description>Twelve PDF tools running fully client-side with pdf-lib, pdf.js, jspdf and SheetJS — no WebAssembly, nothing uploaded — plus the limits we chose to ship honestly.</description><pubDate>Sun, 26 Jul 2026 12:00:00 GMT</pubDate></item><item><title>PDF Compression, Honestly: What &quot;Compress PDF&quot; Really Does</title><link>https://lkforge.com/blog/how-pdf-compression-works/</link><guid isPermaLink="true">https://lkforge.com/blog/how-pdf-compression-works/</guid><description>Downsampling embedded images vs. rasterizing pages, why rasterizing removes selectable text, and why a small or text-only PDF may not shrink — or can grow.</description><pubDate>Sun, 26 Jul 2026 12:00:00 GMT</pubDate></item><item><title>PDF to Word: What Actually Transfers (and What Doesn&apos;t)</title><link>https://lkforge.com/blog/pdf-to-word-what-transfers/</link><guid isPermaLink="true">https://lkforge.com/blog/pdf-to-word-what-transfers/</guid><description>Converting a PDF to Word transfers the text, not the layout. What carries over, what is lost, why scanned PDFs need OCR, and when to use Word&apos;s own import.</description><pubDate>Sun, 26 Jul 2026 12:00:00 GMT</pubDate></item><item><title>WWF vs Scrabble Scoring: Where the Two Games Diverge</title><link>https://lkforge.com/blog/wwf-vs-scrabble-scoring/</link><guid isPermaLink="true">https://lkforge.com/blog/wwf-vs-scrabble-scoring/</guid><description>We scored all 172,835 ENABLE words in both games. A word can gain up to 11 points playing Words With Friends over Scrabble, but the Scrabble edge never exceeds 3 — and only 8.02% of words score identically in both.</description><pubDate>Tue, 21 Jul 2026 12:00:00 GMT</pubDate></item><item><title>How Random Is a Random Word Generator?</title><link>https://lkforge.com/blog/random-word-generator-randomness/</link><guid isPermaLink="true">https://lkforge.com/blog/random-word-generator-randomness/</guid><description>We ran 20,000 seeded draws against our word generator&apos;s default 365-word pool and tested the sampling with a chi-square goodness-of-fit test: chi-square 320.572, 364 degrees of freedom, p = 0.9509 — no word is favored over any other.</description><pubDate>Tue, 21 Jul 2026 12:00:00 GMT</pubDate></item><item><title>How Long Is Golden Hour? We Measured It for 27 Cities</title><link>https://lkforge.com/blog/how-long-is-golden-hour/</link><guid isPermaLink="true">https://lkforge.com/blog/how-long-is-golden-hour/</guid><description>Golden hour is almost never an hour — we measured its length for 27 cities with the NOAA solar-position algorithm; it runs from ~24 minutes at the equator to about 58 minutes in Berlin in December, and never reaches an hour.</description><pubDate>Tue, 21 Jul 2026 12:00:00 GMT</pubDate></item><item><title>The ENABLE Lexicon Study: What 172,835 Words Say About Scrabble&apos;s Tile Values</title><link>https://lkforge.com/blog/enable-lexicon-study/</link><guid isPermaLink="true">https://lkforge.com/blog/enable-lexicon-study/</guid><description>We counted every letter across the 172,835-word ENABLE list. Scrabble&apos;s tile values don&apos;t match how letters actually occur: C outranks three cheaper tiles, H beats B, and 11 letters are mispriced against frequency — with the longest isograms and richest anagram set thrown in.</description><pubDate>Tue, 21 Jul 2026 12:00:00 GMT</pubDate></item><item><title>Six Games, Three Classic Algorithms: Shipping Real Game AI in Vanilla JS</title><link>https://lkforge.com/blog/game-ai-three-algorithms/</link><guid isPermaLink="true">https://lkforge.com/blog/game-ai-three-algorithms/</guid><description>The six games here run on three textbook algorithms — minimax with alpha-beta pruning, expectimax, and breadth-first search. What it takes to ship them correct and frame-fast in vanilla JS, with the measured numbers: 0 losses across 1,200 tic-tac-toe games, 69.6% of 2048 runs reaching the tile.</description><pubDate>Sun, 19 Jul 2026 12:00:00 GMT</pubDate></item><item><title>Proving It&apos;s Actually Unbeatable: How We Benchmark a Game AI Before Publishing a Number</title><link>https://lkforge.com/blog/benchmarking-game-ai/</link><guid isPermaLink="true">https://lkforge.com/blog/benchmarking-game-ai/</guid><description>Unbeatable is a testable claim, not a slogan. The headless self-play harness that runs before any strength number ships: 1,200 tic-tac-toe games with zero losses — and the honest finding that a depth-2 search still lost 2 of 200.</description><pubDate>Sun, 19 Jul 2026 12:00:00 GMT</pubDate></item><item><title>Fast Enough to Feel Instant: Search Algorithms Inside One Browser Tab</title><link>https://lkforge.com/blog/search-in-one-browser-tab/</link><guid isPermaLink="true">https://lkforge.com/blog/search-in-one-browser-tab/</guid><description>No backend, no worker thread — adversarial search runs between two frames on the player&apos;s own device. How alpha-beta pruning (a 93% node cut, 549,945 → 36,528) and adaptive depth keep it under the frame budget at ~0.3 ms per move.</description><pubDate>Sun, 19 Jul 2026 12:00:00 GMT</pubDate></item><item><title>26 Repos in 29 Days With an AI Pipeline: What Actually Broke</title><link>https://lkforge.com/blog/26-repos-in-29-days/</link><guid isPermaLink="true">https://lkforge.com/blog/26-repos-in-29-days/</guid><description>Real numbers from a one-month AI-assisted build sprint: 26 repositories, 1,549 commits, 335 pages — the commit data, the structural failures that mattered, the 93% token-cost finding, and the rules that survived.</description><pubDate>Sun, 12 Jul 2026 12:00:00 GMT</pubDate></item></channel></rss>