Recently in the notebook
Return to a revised explanation, a practical guide or an experiment. Essays keep their original publication dates in Writing.
Browse essaysRevised notes
Dates describe note revisions, not independent verification of every claim. This is a list of current articles, not a change-by-change log.
Speculative Decoding: Drafting, Verification, and Real Speed Gains
Work through probability correction and timing examples, compare chains, trees, and self-speculation, and connect KV-state correctness to real speed gains.
Vector Indexes: Exact Search, HNSW, and IVF
Start with a metric and an exact baseline, then see how HNSW and IVF reduce comparisons and measure the neighbors they miss.
Balanced Search Trees and Ordered Queries
Understand search-tree queries, rotations, and successor deletion, then use red-black invariants to bound height and compare ordered containers.
Graph Representations: Edge Lists, Adjacency Lists, and Matrices
Compare storage and operation costs on one small graph, handle duplicates, self-loops, and isolated vertices, and choose a representation for each algorithm.
Hash Tables: Collisions, Load, and Resizing
Understand key constraints, collision handling, load, and expected and amortized costs through a trace with deletion and rebuilding.
Following a Network Request: DNS, Connections, TLS, and HTTP
Follow a hostname through resolution and an HTTP response, understand ports, certificates, proxies, and localhost, and diagnose failures by layer.
Processes, Address Spaces, and Memory
How processes run, use virtual memory, inherit resources, and differ from containers and virtual machines.
Relational Data, SQL, and Transactions
Use orders and inventory to connect tables, keys, joins, NULL, constraints, indexes, concurrent transactions, and external side effects.
Concurrency and Asyncio: Ownership, Waiting, and Cancellation
Choose coroutines, threads, or processes, understand cooperative scheduling and shared state, and handle timeouts and failures with a bounded queue.
Constrained Optimality and Dual Certificates
Solve a two-variable quadratic program, check its active constraints and KKT multipliers, and certify optimality with a primal–dual gap.
Counting and Combinatorial Proofs
Define the objects being counted, then use bijections, double counting, inclusion–exclusion, and pigeonhole arguments to solve finite problems and bound search and output costs.
Channel Capacity: How Much a Noisy Channel Can Carry
Derive binary channel capacities from mutual information, calculate a repetition code's rate and residual error, and understand the conditions behind the coding theorem and Gaussian capacity