<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><title>Ray's Knowledge Base</title><link>https://rkb.rs.ht/</link><description>Pitfalls with their fixes, recipes, facts and decisions from real work.</description><item><title>`Series::flat(TypeId::Bool, ...)` returns an empty Series</title><link>https://rkb.rs.ht/projects/dftracer-utils/dataframe/series-flat-typeid-bool-returns-an-empty-series/</link><guid>https://rkb.rs.ht/lessons/a681fe7dee/</guid><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate></item><item><title>`StringViewSet` owns its strings, so views into a temporary one dangle</title><link>https://rkb.rs.ht/projects/dftracer-utils/dataframe/stringviewset-owns-its-strings-so-views-into-a-temporary-one/</link><guid>https://rkb.rs.ht/lessons/acf2416942/</guid><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate></item><item><title>A large clap derive command tree overflows the 2 MiB stack of test threads in debug builds</title><link>https://rkb.rs.ht/general/rust/a-large-clap-derive-command-tree-overflows-the-2-mib-stack/</link><guid>https://rkb.rs.ht/lessons/12909da5c5/</guid><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate></item><item><title>A range-for over a member of a temporary reads freed memory</title><link>https://rkb.rs.ht/general/cpp/a-range-for-over-a-member-of-a-temporary-reads-freed-memory/</link><guid>https://rkb.rs.ht/lessons/94296edbdb/</guid><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate></item><item><title>A raw string literal ends at the first `)&quot;`, even inside a quoted pattern</title><link>https://rkb.rs.ht/general/cpp/a-raw-string-literal-ends-at-the-first-even-inside-a-quoted/</link><guid>https://rkb.rs.ht/lessons/5c3ddcf86b/</guid><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate></item><item><title>After libgit2 rewrites the index, git status can miss a same-second, same-size edit</title><link>https://rkb.rs.ht/general/git/after-libgit2-rewrites-the-index-git-status-can-miss-a-same/</link><guid>https://rkb.rs.ht/lessons/d6c672dab8/</guid><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate></item><item><title>After rgit stage --hunk, check the index before committing</title><link>https://rkb.rs.ht/general/git/after-rgit-stage-hunk-check-the-index/</link><guid>https://rkb.rs.ht/lessons/5f0ebe448c/</guid><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate></item><item><title>Build a ground-truth set for PDF extraction from arXiv LaTeX sources</title><link>https://rkb.rs.ht/general/testing/build-a-ground-truth-set-for-pdf-extraction-from-arxiv-latex/</link><guid>https://rkb.rs.ht/lessons/1aedf6a93e/</guid><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate></item><item><title>Build PCRE2 as a static 8-bit library with JIT through CPM</title><link>https://rkb.rs.ht/general/cmake/build-pcre2-as-a-static-8-bit-library-with-jit-through-cpm/</link><guid>https://rkb.rs.ht/lessons/6007cb5ea3/</guid><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate></item><item><title>candle-core 0.10 and later always pull in tokenizers and the Oniguruma C library</title><link>https://rkb.rs.ht/general/candle/candle-core-0-10-and-later-always-pull-in-tokenizers-and-the/</link><guid>https://rkb.rs.ht/lessons/335a071882/</guid><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate></item><item><title>Clang calls `this` unused in a generic lambda that calls a member without `this-&gt;`</title><link>https://rkb.rs.ht/general/cpp/clang-calls-this-unused-in-a-generic-lambda-that-calls-a/</link><guid>https://rkb.rs.ht/lessons/9caab93e76/</guid><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate></item><item><title>granite-docling-258M runs at about 1 token per second through transformers on Apple Silicon</title><link>https://rkb.rs.ht/general/python/granite-docling-258m-runs-at-about-1-token-per-second/</link><guid>https://rkb.rs.ht/lessons/e6196732a5/</guid><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate></item><item><title>How git's octopus merge works, for a tool that must match it</title><link>https://rkb.rs.ht/general/git/how-git-s-octopus-merge-works-for-a-tool-that-must-match-it/</link><guid>https://rkb.rs.ht/lessons/e238d3e4e6/</guid><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate></item><item><title>libgit2 applies a hunk at its new-side start line, so a hand-built one-hunk patch needs that line on the + side</title><link>https://rkb.rs.ht/general/git/libgit2-applies-a-hunk-at-its-new-side-start-line-so-a-hand/</link><guid>https://rkb.rs.ht/lessons/bfb11a3684/</guid><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate></item><item><title>libgit2 ignores GIT_CONFIG_GLOBAL and still reads ~/.gitconfig and ~/.config/git/config</title><link>https://rkb.rs.ht/general/git/libgit2-ignores-git-config-global-and-still-reads-gitconfig/</link><guid>https://rkb.rs.ht/lessons/2b214bbe4e/</guid><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate></item><item><title>libgit2's cleanup_state also deletes BISECT_LOG, which breaks a bisect in progress</title><link>https://rkb.rs.ht/general/git/libgit2-s-cleanup-state-also-deletes-bisect-log-which-breaks/</link><guid>https://rkb.rs.ht/lessons/70463c8ef2/</guid><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate></item><item><title>pdftotext -bbox-layout splits small caps, section numbers and captions in ways a parser must undo</title><link>https://rkb.rs.ht/general/pdf/pdftotext-bbox-layout-splits-small-caps-section-numbers-and/</link><guid>https://rkb.rs.ht/lessons/cfcebd5094/</guid><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate></item><item><title>Pruning must key a literal the way the index stored the value</title><link>https://rkb.rs.ht/general/index/pruning-must-key-a-literal-the-way-the-index-stored-the/</link><guid>https://rkb.rs.ht/lessons/460f1b1259/</guid><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate></item><item><title>rait finds PDF tables with Table Transformer in Rust, and word positions fill the cells</title><link>https://rkb.rs.ht/projects/rait/pdf/rait-finds-pdf-tables-with-table-transformer-in-rust-and/</link><guid>https://rkb.rs.ht/lessons/29162278af/</guid><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate></item><item><title>rait prefers pure-Rust crates and allows C only where no good Rust option exists</title><link>https://rkb.rs.ht/projects/rait/rust/rait-prefers-pure-rust-crates-and-allows-c-only-where-no/</link><guid>https://rkb.rs.ht/lessons/6b8c4f5169/</guid><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate></item><item><title>rait's held-out PDF evaluation set: 12 arXiv papers and the scores to beat</title><link>https://rkb.rs.ht/projects/rait/testing/rait-s-held-out-pdf-evaluation-set-12-arxiv-papers-and-the/</link><guid>https://rkb.rs.ht/lessons/7729befd86/</guid><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate></item><item><title>rgit stage --hunk reports success for a hunk it did not stage</title><link>https://rkb.rs.ht/projects/rgit/staging/rgit-stage-hunk-reports-success-for-a-hunk-it-did-not-stage/</link><guid>https://rkb.rs.ht/lessons/f96b3b5f31/</guid><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate></item><item><title>Run many coding agents on one Rust repository without overloading the machine</title><link>https://rkb.rs.ht/general/agents/run-many-coding-agents-on-one-rust-repository-without/</link><guid>https://rkb.rs.ht/lessons/fdcb6e487f/</guid><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate></item><item><title>Stale gcov data makes tests crash at exit after a rebuild</title><link>https://rkb.rs.ht/general/testing/stale-gcov-data-makes-tests-crash-at-exit-after-a-rebuild/</link><guid>https://rkb.rs.ht/lessons/7f64922551/</guid><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate></item><item><title>Table Transformer structure recognition misreads small tables that are scaled up to 800 px</title><link>https://rkb.rs.ht/general/pdf/table-transformer-structure-recognition-misreads-small/</link><guid>https://rkb.rs.ht/lessons/ff383d4e63/</guid><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate></item><item><title>transformers 5 refuses the Table Transformer v1.1 config because `dilation` is null</title><link>https://rkb.rs.ht/general/python/transformers-5-refuses-the-table-transformer-v1-1-config/</link><guid>https://rkb.rs.ht/lessons/7844ab3958/</guid><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate></item><item><title>Twin-repo git comparisons flake unless every commit has a fixed date and asserts match whole tokens</title><link>https://rkb.rs.ht/general/testing/twin-repo-git-comparisons-flake-unless-every-commit-has-a/</link><guid>https://rkb.rs.ht/lessons/52a9cd1bf9/</guid><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate></item><item><title>zsh does not split an unquoted variable into words, unlike bash</title><link>https://rkb.rs.ht/general/shell/zsh-does-not-split-an-unquoted-variable-into-words-unlike/</link><guid>https://rkb.rs.ht/lessons/777c0fa71d/</guid><pubDate>Mon, 28 Sep 2026 00:00:00 +0000</pubDate></item><item><title>`??` followed by `'`, `(`, `)` and others in a C++ string is a trigraph</title><link>https://rkb.rs.ht/general/cpp/followed-by-and-others-in-a-c-string-is-a-trigraph/</link><guid>https://rkb.rs.ht/lessons/43fa6590da/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>`[[maybe_unused]]` on one structured binding name is a C++26 extension</title><link>https://rkb.rs.ht/general/cpp/maybe-unused-on-one-structured-binding-name-is-a-c-26/</link><guid>https://rkb.rs.ht/lessons/77de813d2a/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>`doxygen docs/Doxyfile` from the repo root writes a stray `doxygen/` folder</title><link>https://rkb.rs.ht/projects/dftracer-utils/docs/doxygen-docs-doxyfile-from-the-repo-root-writes-a-stray/</link><guid>https://rkb.rs.ht/lessons/4b6d101280/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>`PyObject_IsTrue(v) &gt; 0 ? true : fallback` turns False into the default</title><link>https://rkb.rs.ht/general/python/pyobject-istrue-v-0-true-fallback-turns-false-into-the/</link><guid>https://rkb.rs.ht/lessons/92a77ef537/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>A byte pre-filter on JSON lines must not assume how the writer spelled the JSON</title><link>https://rkb.rs.ht/general/json/a-byte-pre-filter-on-json-lines-must-not-assume-how-the/</link><guid>https://rkb.rs.ht/lessons/dabf49f344/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>A consumer that stops reading a bounded channel on error leaves its producers blocked forever</title><link>https://rkb.rs.ht/general/cpp/a-consumer-that-stops-reading-a-bounded-channel-on-error/</link><guid>https://rkb.rs.ht/lessons/a022984789/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>A false `[ ... ] &amp;&amp; cmd` as the last command of a shell case branch makes the script exit 1</title><link>https://rkb.rs.ht/general/shell/a-false-cmd-as-the-last-command-of-a-shell-case-branch-makes/</link><guid>https://rkb.rs.ht/lessons/a2733919ad/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>A new query leaf form must be handled in every place that reads query leaves</title><link>https://rkb.rs.ht/projects/dftracer-utils/query/a-new-query-leaf-form-must-be-handled-in-every-place-that/</link><guid>https://rkb.rs.ht/lessons/8ebf78df23/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>A test that shells out to a real CLI with side effects can change the user's real config</title><link>https://rkb.rs.ht/general/testing/a-test-that-shells-out-to-a-real-cli-with-side-effects-can/</link><guid>https://rkb.rs.ht/lessons/fb8237851b/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>A/B timings on a busy shared machine both hide and fake regressions</title><link>https://rkb.rs.ht/general/testing/a-b-timings-on-a-busy-shared-machine-both-hide-and-fake/</link><guid>https://rkb.rs.ht/lessons/f1b7c08b8d/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>Agents do not reliably load a skill, so must-follow rules need always-on context or tools</title><link>https://rkb.rs.ht/general/agents/agents-do-not-reliably-load-a-skill-so-must-follow-rules/</link><guid>https://rkb.rs.ht/lessons/6342712def/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>Agents reach rkb through tools: a Claude Code plugin with an MCP server, and a pi/omp extension</title><link>https://rkb.rs.ht/projects/rkb/integration/agents-reach-rkb-through-tools-a-claude-code-plugin-with-an/</link><guid>https://rkb.rs.ht/lessons/ffc37c3abe/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>Aggregation tier state that spans builds and processes</title><link>https://rkb.rs.ht/projects/dftracer-utils/index/aggregation-tier-state-that-spans-builds-and-processes/</link><guid>https://rkb.rs.ht/lessons/23cb9ddb24/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>An index build after a tier-served query fails with &quot;Cannot upgrade RocksDB instance&quot;</title><link>https://rkb.rs.ht/projects/dftracer-utils/index/an-index-build-after-a-tier-served-query-fails-with-cannot/</link><guid>https://rkb.rs.ht/lessons/692aa0f35b/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>An unquoted `null` in a YAML list is a null, not the string &quot;null&quot;</title><link>https://rkb.rs.ht/general/yaml/an-unquoted-null-in-a-yaml-list-is-a-null-not-the-string/</link><guid>https://rkb.rs.ht/lessons/a38845558b/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>candle compiles Metal kernels on the first GPU run of each binary</title><link>https://rkb.rs.ht/general/candle/candle-compiles-metal-kernels-on-the-first-gpu-run-of-each/</link><guid>https://rkb.rs.ht/lessons/9bf54f7054/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>Check a hand-written parser's grammar with a Lark LALR(1) copy and one shared sample file</title><link>https://rkb.rs.ht/general/parsing/check-a-hand-written-parser-s-grammar-with-a-lark-lalr-1/</link><guid>https://rkb.rs.ht/lessons/f0aec3a6a8/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>Claude Code plugins from a local marketplace: layout, updates, tool names and permissions</title><link>https://rkb.rs.ht/general/claude-code/claude-code-plugins-from-a-local-marketplace-layout-updates/</link><guid>https://rkb.rs.ht/lessons/c5698e8ae2/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>Code that assumes the dftracer schema breaks other record schemas silently</title><link>https://rkb.rs.ht/projects/dftracer-utils/views/code-that-assumes-the-dftracer-schema-breaks-other-record/</link><guid>https://rkb.rs.ht/lessons/a4be58e760/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>corfu's auto popup also opens in the minibuffer, including evil's `:` line</title><link>https://rkb.rs.ht/general/emacs/corfu-s-auto-popup-also-opens-in-the-minibuffer-including/</link><guid>https://rkb.rs.ht/lessons/4f6f1844b5/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>CTest tests that run a build in the build tree must share RESOURCE_LOCK build_tree</title><link>https://rkb.rs.ht/projects/dftracer-utils/testing/ctest-tests-that-run-a-build-in-the-build-tree-must-share/</link><guid>https://rkb.rs.ht/lessons/6a0bf5e312/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>Delete exactly one key through a range-delete-only interface</title><link>https://rkb.rs.ht/general/rocksdb/delete-exactly-one-key-through-a-range-delete-only-interface/</link><guid>https://rkb.rs.ht/lessons/5b9a467811/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>duql replaces dictionaries, resolved columns and the metadata phase with queries</title><link>https://rkb.rs.ht/projects/dftracer-utils/query/duql-replaces-dictionaries-resolved-columns-and-the-metadata/</link><guid>https://rkb.rs.ht/lessons/9b33c983d4/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>eglot freezes Emacs when a language server asks to watch files outside any version-control root</title><link>https://rkb.rs.ht/general/emacs/eglot-freezes-emacs-when-a-language-server-asks-to-watch/</link><guid>https://rkb.rs.ht/lessons/081cbec6cd/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>eglot inlay hints make cursor movement laggy in large files while the server is busy</title><link>https://rkb.rs.ht/general/emacs/eglot-inlay-hints-make-cursor-movement-laggy-in-large-files/</link><guid>https://rkb.rs.ht/lessons/977650a9f3/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>Emacs on macOS can only make the whole GUI frame see-through, not just its background</title><link>https://rkb.rs.ht/general/emacs/emacs-on-macos-can-only-make-the-whole-gui-frame-see-through/</link><guid>https://rkb.rs.ht/lessons/789b14cc9f/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>evil-collection binds SPC in many modes, which hides a global SPC leader</title><link>https://rkb.rs.ht/general/emacs/evil-collection-binds-spc-in-many-modes-which-hides-a-global/</link><guid>https://rkb.rs.ht/lessons/0704c3593f/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>For design questions, research and discuss first; new dependencies are fine when they win on performance</title><link>https://rkb.rs.ht/projects/dftracer-utils/workflow/for-design-questions-research-and-discuss-first-new/</link><guid>https://rkb.rs.ht/lessons/9ed10f34db/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>How today's filter language treats missing fields, null, types and patterns</title><link>https://rkb.rs.ht/projects/dftracer-utils/query/how-today-s-filter-language-treats-missing-fields-null-types/</link><guid>https://rkb.rs.ht/lessons/54489520b7/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>Laya asks whether the lesson is about the same problem, not whether it helps</title><link>https://rkb.rs.ht/projects/rkb/rerank/laya-asks-whether-the-lesson-is-about-the-same-problem-not/</link><guid>https://rkb.rs.ht/lessons/173a08ddf5/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>libdeflate cannot recover a cut gzip member, so decode the last member with zlib streaming</title><link>https://rkb.rs.ht/general/gzip/libdeflate-cannot-recover-a-cut-gzip-member-so-decode-the/</link><guid>https://rkb.rs.ht/lessons/2384fc588f/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>Many small parallel Accelerate sgemm calls are slower than one large call</title><link>https://rkb.rs.ht/general/macos/many-small-parallel-accelerate-sgemm-calls-are-slower-than/</link><guid>https://rkb.rs.ht/lessons/fe20188ecd/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>Never search the whole disk from the root folder</title><link>https://rkb.rs.ht/general/agents/never-search-the-whole-disk-from-the-root-folder/</link><guid>https://rkb.rs.ht/lessons/7025a6f105/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>On macOS the first GUI frame of an Emacs daemon turns the menu bar back on in terminal frames</title><link>https://rkb.rs.ht/general/emacs/on-macos-the-first-gui-frame-of-an-emacs-daemon-turns-the/</link><guid>https://rkb.rs.ht/lessons/bd6003ecb8/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>pi and omp extension events for compaction, shutdown and commands</title><link>https://rkb.rs.ht/general/pi/pi-and-omp-extension-events-for-compaction-shutdown-and/</link><guid>https://rkb.rs.ht/lessons/9fc423871b/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>Pruning evidence is sound only for the records it was built from</title><link>https://rkb.rs.ht/general/index/pruning-evidence-is-sound-only-for-the-records-it-was-built/</link><guid>https://rkb.rs.ht/lessons/cf0e3f44ea/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>Recall adds only a clear top lesson: relevance 0.85 and 0.10 above the next</title><link>https://rkb.rs.ht/projects/rkb/rerank/recall-adds-only-a-clear-top-lesson-relevance-0-85-and-0-05/</link><guid>https://rkb.rs.ht/lessons/d78a61f8ee/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>Record the old parser's output over every in-repo query before replacing the parser</title><link>https://rkb.rs.ht/general/testing/record-the-old-parser-s-output-over-every-in-repo-query/</link><guid>https://rkb.rs.ht/lessons/f561225b35/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>rkb captures sessions on signals and distills only when asked, with no model of its own</title><link>https://rkb.rs.ht/projects/rkb/distill/rkb-captures-sessions-on-signals-and-distills-only-when/</link><guid>https://rkb.rs.ht/lessons/9e1bf57e4e/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>rkb prints human text by default, and agents pass --toon</title><link>https://rkb.rs.ht/projects/rkb/output/rkb-prints-human-text-by-default-and-agents-pass-toon/</link><guid>https://rkb.rs.ht/lessons/42b86937f2/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>Run the Python suite and the docs build without installing anything</title><link>https://rkb.rs.ht/projects/dftracer-utils/testing/run-the-python-suite-and-the-docs-build-without-installing/</link><guid>https://rkb.rs.ht/lessons/6d925df652/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>The aggregation tier holds no file id, so one file's rows cannot be replaced</title><link>https://rkb.rs.ht/projects/dftracer-utils/index/the-aggregation-tier-holds-no-file-id-so-one-file-s-rows/</link><guid>https://rkb.rs.ht/lessons/9fd30501a4/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>The query cache lives beside the index in `.dftindex-cache`, not inside `.dftindex`</title><link>https://rkb.rs.ht/projects/dftracer-utils/index/the-query-cache-lives-beside-the-index-in-dftindex-cache-not/</link><guid>https://rkb.rs.ht/lessons/b892453993/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>The Rust MCP crates all depend on Tokio</title><link>https://rkb.rs.ht/general/rust/the-rust-mcp-crates-all-depend-on-tokio/</link><guid>https://rkb.rs.ht/lessons/3da7c59efe/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>Time two builds with one scratch program, using the build's own compile and link lines</title><link>https://rkb.rs.ht/general/testing/time-two-builds-with-one-scratch-program-using-the-build-s/</link><guid>https://rkb.rs.ht/lessons/85d6166574/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>Typed record decode got 35% slower until per-leaf work left the hot loop</title><link>https://rkb.rs.ht/projects/dftracer-utils/views/typed-record-decode-got-35-slower-until-per-leaf-work-left/</link><guid>https://rkb.rs.ht/lessons/17df0d8e4a/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>Which `(void)` casts may stay in dftracer-utils</title><link>https://rkb.rs.ht/projects/dftracer-utils/code-style/which-void-casts-may-stay-in-dftracer-utils/</link><guid>https://rkb.rs.ht/lessons/030a9eb845/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>Which View reads return dftracer metadata records</title><link>https://rkb.rs.ht/projects/dftracer-utils/views/which-view-reads-return-dftracer-metadata-records/</link><guid>https://rkb.rs.ht/lessons/09b402c770/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item><item><title>With rebase.updateRefs on, a backup branch made before a rebase does not keep the old history</title><link>https://rkb.rs.ht/general/git/with-rebase-updaterefs-on-a-backup-branch-made-before-a/</link><guid>https://rkb.rs.ht/lessons/a6296dd9db/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 +0000</pubDate></item></channel></rss>
