Complete archive
Archive
3,240 articles, newest first · page 34 of 54. For subject-based browsing use topics; for keyword lookup try search. Dates shown are assigned archive dates that order the library; they are not historical publication records.
-
2025
Jan 30, 2025 Weak References, Finalization, and Ephemerons How a collector clears references that must not keep objects alive, why finalization needs its own reachability class, and the fixed-point iteration that ephemeron tables require. language runtimes · advanced - Jan 29, 2025 Allocation Churn and the Locality of Recycled Memory Why the reuse distance of a freed block, not the speed of the allocator, sets the performance of allocate-and-free loops in long-running programs. performance engineering · intermediate
- Jan 29, 2025 Peer, Optional, and Override Constraints in Resolution Three mechanisms that break the assumption that manifests fully determine the graph: peer requirements scoped to an ancestor, optional edges with three outcomes, and overrides that rewrite the input. developer tools · advanced
- Jan 28, 2025 Capture-Avoiding Substitution and the Substitution Lemma Why naive textual replacement of a variable silently changes the meaning of a term, how renaming repairs it, and what the substitution lemma guarantees about the interaction with reduction. computation theory · foundational
- Jan 28, 2025 Context Dilution: When More Retrieved Passages Lower Answer Quality Why irrelevant context degrades generation rather than merely failing to help, how position in the prompt changes attention, and what to cut before raising k. inference systems · advanced
- Jan 28, 2025 Fencing Tokens: Why a Lock Is Advisory Until the Resource Checks It How a monotonic token attached to a grant lets the protected resource reject a stale holder, and why no amount of clock discipline makes the check unnecessary. distributed systems · intermediate
- Jan 28, 2025 Move Semantics and the Affine Type Discipline Why a move is a byte copy plus a compile-time promise, how C++ and Rust enforce that promise differently, and what a moved-from value is still allowed to do. programming languages · foundational
- Jan 27, 2025 Commit-Graph Files and Generation Numbers Why ancestry queries are slow without an index, how topological levels and corrected commit dates bound a search, and where the graph goes stale. developer tools · intermediate
- Jan 27, 2025 Executing Provenance Records to Certify That a Result Still Reconstructs Turning a recorded dependency graph into a re-runnable pipeline that hashes outputs and compares them to stored digests, so a result carries continuous evidence that it is still reproducible. scientific computing · advanced
- Jan 27, 2025 Quorum Placement and the Latency of the Second-Fastest Replica How the geometry of replica placement decides commit latency for majority quorums, and why adding a distant replica to a three-node group can be free or fatal. cloud infrastructure · intermediate
- Jan 26, 2025 Producer Batching, Compression, and Acknowledgment Pipelining A produce request has a fixed cost per round trip and per replica, and batching, compression, and in-flight limits each trade latency for a different part of that cost. backend systems · intermediate
- Jan 26, 2025 Read-Path Verification and What Happens When a Block Fails The ordering constraints a verifying read must satisfy, the error classes a mismatch can be sorted into, and why retrying a failed checksum is usually pointless. filesystems · intermediate
- Jan 24, 2025 Thompson Construction: Turning a Regular Expression into an Epsilon NFA Why the construction inserts empty transitions between fragments, how each operator rewires two boundary states, and where the 2n state bound comes from. computation theory · foundational
- Jan 24, 2025 Three-Address Code as the Contract Between Front End and Back End Why compilers flatten expression trees into single-operator instructions with named temporaries, what optimization gains from that shape, and which machine constructs the form cannot express directly. compilers · foundational
- Jan 23, 2025 Constant-Time AES: Removing the Secret-Dependent Table Lookup Why a 256-byte S-box leaks key bits through cache behaviour, and how bit-slicing and vector permutes replace the lookup without changing the cipher. cryptography · advanced
- Jan 23, 2025 Criss-Cross Merges, Virtual Ancestors, and Rename Conflicts What happens when a branch pair has several merge bases, how a synthetic ancestor is built, and why rename conflicts cannot be resolved automatically. developer tools · advanced
- Jan 23, 2025 Hybrid Key Exchange with X25519 and ML-KEM-768 What happens to a TLS or SSH handshake when a lattice KEM is concatenated with an elliptic curve exchange, and which composition rules the transcript must obey. cryptography · intermediate
- Jan 23, 2025 Optimistic Concurrency and the Conflict Check That Arrives Too Late How version-token conflict detection works in a replicated store, why it cannot prevent a conflicting write, and what the abandoned Bayou and Coda designs revealed about the cost of checking after the fact. computing history · foundational
- Jan 22, 2025 Bundling Instructions for VLIW Issue Slots How a compiler packs independent operations into fixed-width bundles, why empty slots become explicit no-ops, and how slot assignment and stop bits constrain the scheduler. compilers · advanced
- Jan 22, 2025 Deferred Shading and the Tile-Binned Alternative Why recording surface attributes instead of shaded colour defers the expensive lighting work, and how binning fragments per screen tile reaches the same locality without the bandwidth. gpu computing · advanced
- Jan 22, 2025 Diagonalization and the Time Hierarchy Theorem How a machine that runs itself on its own description separates two time bounds, why the constructibility condition cannot be dropped, and what the theorem does not prove. computation theory · intermediate
- Jan 21, 2025 Additive Increase, Multiplicative Decrease, and the Fairness of the Sawtooth Why the increase is additive and the decrease is multiplicative, how the resulting sawtooth converts loss rate into throughput, and where the convergence argument stops holding. networking · foundational
- Jan 21, 2025 Iterative Resolution: Walking the Tree from Root Hints to Answer The referral chain a recursive resolver follows, how the cache shortens it, why the answer arrives as an RA response rather than a chain, and where the walk can stall. internet protocols · foundational
- Jan 21, 2025 Stack Canaries and the Value That Terminates the Overflow A per-process guard word placed between the buffer and the saved return address converts a silent hijack into a detected abort, and its design depends on which byte patterns an overflow cannot write. security · intermediate
- Jan 20, 2025 Mapping Runtime Dependencies from Traffic and Query Logs Why static call graphs miss the dependencies that decide whether a legacy component can be removed, and how to reconstruct the real graph from query logs, flow records, and scheduler output. software architecture · foundational
- Jan 18, 2025 MX Resolution, Preference Ordering, and Null MX How a sending server turns a domain into a list of hosts, why the preference values are ordered the way they are, and what an empty MX list asserts. internet protocols · intermediate
- Jan 18, 2025 Tiled Stencils and Shared Memory Halos How an overlapping tile plus a barrier turns repeated global reads into repeated shared-memory reads, how halo overhead scales with tile size, and what register blocking adds. gpu computing · intermediate
- Jan 17, 2025 Authorization Models for Multi-Tenant Data Isolation How tenant identity must be bound into every query and token, why row-level filtering fails when it is optional, and what isolation guarantees separate deployments actually provide. security · advanced
- Jan 17, 2025 Formula Size and the Tree-Shaped Restriction on Circuits What is lost when every gate may feed only one consumer, why parity needs a quadratic formula, and how circuit size converts to formula size at a quadratic cost. computation theory · intermediate
- Jan 17, 2025 Minimum Mean Cycle and the Shape of Negative-Weight Answers How to find the cycle with the smallest weight per edge when every cycle has negative total weight, why the answer is a ratio rather than a sum, and how a parametric search reduces it to negative-cycle detection. algorithms · advanced
- Jan 17, 2025 The PLT and GOT Protocol That Defers Symbol Resolution How a call to an external function becomes a jump through a writable table, what the resolver stub pushes, and what is given up when binding happens eagerly instead. systems programming · intermediate
- Jan 17, 2025 The Release of Unverified Plaintext Problem in AEAD APIs Why a decryption function that returns plaintext before the tag is checked reintroduces chosen-ciphertext attacks, and how streaming interfaces force the verification decision into the caller. cryptography · advanced
- Jan 16, 2025 The Superblock: Magic Number, Geometry, and Feature Flags How a filesystem announces its own layout at a fixed disk offset, why its feature bits are split into three classes with different contracts, and what a driver does when it meets a bit it does not understand. filesystems · foundational
- Jan 16, 2025 What a Kill Fault Looks Like to the Kernel: Signals, Freezes, and Orphans The difference between SIGTERM, SIGKILL, and freezing a process, what each leaves behind in sockets and locks, and why reaping behaviour decides whether a container restarts cleanly. devops · foundational
- Jan 15, 2025 File Pruning from Per-File Min and Max Statistics How bounds recorded per column chunk let a scan skip whole files, why the pruning rate collapses on high-cardinality or unsorted columns, and how the statistics get into the manifest in the first place. data engineering · foundational
- Jan 15, 2025 Row-Buffer Locality Inside GPU DRAM How DRAM banks, open-row policies, and bank groups shape what a memory controller can schedule, and why many concurrent streams lower achieved bandwidth without moving more bytes. gpu computing · advanced
- Jan 15, 2025 Vectorized Execution: Batches, Selection Vectors, and Push vs Pull Why processing tuples in column batches amortizes interpretation overhead, how selection vectors represent filtered rows, and what a push-based pipeline changes. databases · advanced
- Jan 14, 2025 Capability Sets and UID Mapping in Rootless Containers How a user namespace turns UID 0 into an unprivileged identity, which capabilities survive the mapping, and why setuid binaries break in ways that look like permission bugs. virtualization · intermediate
- Jan 14, 2025 Head-of-Line Blocking in a Shared Worker Pool Why one slow request class poisons the latency of every class behind it in a FIFO queue, and which partitioning or scheduling schemes actually remove the convoy. backend systems · foundational
- Jan 14, 2025 malloc, free, and the Conventions That Replace a Type System What the allocator stores around every block, why the ownership rule must be maintained by hand, and which C idioms encode it well enough to survive review. programming languages · foundational
- Jan 14, 2025 Module Initialization Order and Cyclic Dependencies How linkers, loaders, and language runtimes order module initialisation, why import cycles produce partially initialised modules, and where the guarantees stop. programming languages · advanced
- Jan 13, 2025 Counter Block Layout and the Nonce Budget in CTR Mode How CTR turns a block cipher into a stream cipher, why the counter block must never repeat across messages under one key, and how the split between nonce and counter fixes the maximum message length. cryptography · foundational
- Jan 13, 2025 Two-Phase Commit and Exactly-Once Sinks Why a stream job cannot deliver exactly once without the sink participating, and how a prepare-then-commit protocol ties checkpoint state to external writes. data engineering · intermediate
- Jan 12, 2025 Data Shape Debt and the Migration That Outlives the Code Stored records encode design mistakes that redeployment cannot undo, and the expand-contract sequence that makes an online change safe leaves debts of its own. software architecture · intermediate
- Jan 10, 2025 Flash Wait States and the Cost of Fetching Instructions from Embedded Flash Why an on-chip flash array cannot feed a fast core at one word per cycle, how wait states and prefetch buffers change that, and where the timing stops being uniform. embedded systems · foundational
- Jan 10, 2025 Where the Checkpoint Goes: Offset Ordering and Two Failure Directions Committing a read position before or after the sink write chooses between losing data and repeating it, and the choice propagates through every downstream consumer. data engineering · intermediate
- Jan 9, 2025 Fitting FDDI Management into an 802 Frame: Ancillary Data and the Unused ALT Field How FDDI carried station management frames, what the alternative media access control field was specified to select, and why a general-purpose slot in a frame header did not produce the architectural flexibility its designers expected. computing history · advanced
- Jan 8, 2025 Assembling a Container Root with pivot_root and Overlay Mounts Why chroot is the wrong tool for changing a container root, how pivot_root swaps the namespace root atomically, and how an overlay upper layer turns a read-only image into a writable filesystem. operating systems · advanced
- Jan 7, 2025 Separating Injected Faults from Organic Failures in Telemetry How to mark injected traffic so it survives every hop, why filtering at query time beats deleting at ingestion, and how to keep an exercise out of the alert path without blinding it. devops · advanced
- Jan 6, 2025 Eytzinger Layout: Storing a Search Tree in Level Order How laying out a binary search tree in breadth-first order removes pointer chasing, enables branch-free traversal and prefetching, and what it costs on updates. algorithms · foundational
- Jan 4, 2025 Pagination, Ranking Stability, and the Shuffling Result Set How a search result list is split into pages without re-ranking the whole set, why stable pagination and live index updates conflict, and what the page offset actually costs. information retrieval · intermediate
- Jan 4, 2025 Texel Grids, Normalized Coordinates, and Wrap Addressing Where texel centers sit inside a texture, how a normalized coordinate addresses them without an off-by-half error, and what each wrap mode does past the edge. computer graphics · foundational
- Jan 4, 2025 What the Discrete Fourier Transform Computes The DFT as a projection onto a fixed set of complex exponentials, why the transform matrix is orthogonal, and where the n log n cost of the fast algorithm comes from. scientific computing · foundational
- Jan 3, 2025 Delta Encoding and Variable-Byte Postings How storing document identifier differences instead of absolute identifiers shrinks a postings list, when the vByte continuation-bit scheme wins over fixed-width storage, and where it stops paying. information retrieval · foundational
- Jan 3, 2025 Nested Paging: The Two-Dimensional Walk and the Cost of a Single Guest Access How EPT and NPT turn every guest memory access into two page walks, what an EPT violation reports, and why the hardware page-walk cache decides whether nested paging is cheap or ruinous. virtualization · foundational
- Jan 1, 2025 Symptom-Based Alerting and the Cause Signals It Replaces Why paging on the metric that explains a failure produces more pages than paging on the failure itself, and how to tell a symptom from a cause when writing a rule. observability · foundational
-
2024
Dec 31, 2024 Repair Traffic in Erasure-Coded Sets and What Regenerating Codes Change Why rebuilding one fragment costs k fragments of reads, how the repair bandwidth bound is derived, and what local parity and regenerating codes buy against it. filesystems · intermediate - Dec 30, 2024 Quota Arithmetic: Why a Shared Pool Cannot Promise Every Tenant Its Share Requests, limits, and overcommit interact through the scheduler and the cgroup hierarchy. How to compute whether a set of quotas fits a pool, and where the arithmetic stops being safe. virtualization · intermediate
- Dec 30, 2024 The Inter-Region Latency Floor Set by Fiber Paths Why the minimum round-trip time between two regions is fixed by geography and glass rather than by provisioning, and how to compute that floor before choosing a topology. cloud infrastructure · foundational
- Dec 27, 2024 Factor Independence and the Paths That Bypass MFA Why the assurance of two factors is the product of their independence, and how fallback, enrolment, and recovery paths quietly collapse a two-factor system to one. security · advanced