Complete archive
Archive
3,240 articles, newest first · page 30 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
May 13, 2025 Confidence Intervals for Accuracy on Small Evaluation Sets A score on a few hundred items is a sample from a binomial, and the interval around it is usually wider than the differences being reported. How to compute it and when the independence assumption fails. inference systems · intermediate - May 13, 2025 Reproducible Mobile Builds and Independent Artifact Verification Which build inputs leak into a mobile binary, how path and timestamp normalisation makes two builds comparable, and what a third party can actually prove by rebuilding. mobile computing · advanced
- May 12, 2025 Index-Based Linked Lists for Relocatable and Persistent Storage Replacing pointers with offsets makes a linked structure relocatable, mmap-safe, and serialisable, and forces explicit handling of free slots and stale indices. data structures · intermediate
- May 12, 2025 Live Patching a Running Kernel: The Consistency Problem Redirecting a function to a replacement is easy; deciding when no thread is still inside the old one is not. How quiescence is established and why stacks must be checked. operating systems · advanced
- May 10, 2025 Build Identifiers and Separate Debug Information How a 160-bit hash in a note section binds a stripped binary to its symbols, and how debuggers find the matching file through debuglink paths and symbol servers. systems programming · intermediate
- May 10, 2025 First-Committer-Wins Validation in Snapshot Isolation How snapshot isolation validates writes against concurrent committers, why a write-write check is sufficient for its own guarantees, and the serializability it leaves on the table. databases · foundational
- May 10, 2025 Linker Scripts: Why Sections Have Two Addresses How a linker script assigns load and virtual addresses, why initialised data needs a copy step at startup, and what happens to sections the script does not mention. embedded systems · foundational
- May 10, 2025 Symbol Versioning and the Minimum glibc a Binary Requires Versioned symbols record the library release that first defined each function a binary calls. How that floor is written into the file, why it cannot be lowered after linking, and how to check it before shipping. systems programming · advanced
- May 9, 2025 Append-Only Logs and the Queue Abstraction Destructive reads and append-only retention produce different broker state, different fan-out costs, and different limits on what a consumer can ask for. backend systems · foundational
- May 9, 2025 Build IDs, Separate Debug Files, and Symbol Resolution at Scale How an address in a stripped production binary becomes a function name, why the build ID is the identity that makes it possible, and where symbolication pipelines lose information. observability · foundational
- May 9, 2025 Hardware Breakpoints, Watchpoints, and the Comparators Behind Them Why a target supports only a handful of breakpoints, how an address comparator matches an instruction fetch, and what a data watchpoint does to the pipeline when it fires. embedded systems · intermediate
- May 8, 2025 Mapping Granularity in a Flash Translation Layer Page-level, block-level, and hybrid address mapping, the DRAM each one costs, and how a controller rebuilds its table from page spare areas after power loss. filesystems · foundational
- May 8, 2025 Permission Grants and Where They Are Enforced How install-time and runtime permission models differ, which layer checks a grant at the moment of use, and why a granted permission can still fail at the call site. mobile computing · intermediate
- May 8, 2025 Two-Colouring a Graph: Why BFS Decides Bipartiteness and Odd Cycles Do Not The equivalence between bipartite graphs and odd-cycle-free graphs, how a colouring traversal detects the failure in linear time, and what the check does not decide. algorithms · intermediate
- May 7, 2025 AIMD Congestion Control and the Collapse It Prevented Why additive increase with multiplicative decrease converges to a fair operating point, how the window is discovered without measuring the network, and where the control loop breaks. computing history · advanced
- May 7, 2025 Build Graph Construction and Topological Ordering How a build system turns declared targets and prerequisites into a directed acyclic graph, how cycles are detected, and why the order a build actually runs in is not the topological order. developer tools · foundational
- May 7, 2025 Stride Prefetchers and the Timing Problem of Prefetch Distance How a stream prefetcher detects a recurring address delta, why prefetching too early evicts useful lines, and how accuracy, coverage, and timeliness trade against each other. memory systems · intermediate
- May 6, 2025 Atomic Read-Modify-Write and the Mutual Exclusion Problem Why a flag plus a check cannot keep two threads out of the same critical section, and what a single indivisible read-modify-write instruction changes about the problem. operating systems · foundational
- May 6, 2025 Map-Side Buffer Budgets and the Cost of Spilling Why the sort buffer is a fixed per-task budget, what the spill threshold implies for merge passes, and how much extra I/O a spill actually costs. data engineering · intermediate
- May 6, 2025 Retractions and Updating Results How a stream of window results becomes a changelog, what a retraction record must contain, and why consumers must know the difference between a delta and a replacement. data engineering · advanced
- May 6, 2025 Second-Level Address Translation: Composing Two Page Walks in Hardware How EPT and nested paging remove the shadow-table trap per guest page-table write, what the extra walk costs in memory references, and why accessed and dirty bits become a virtualization problem. virtualization · intermediate
- May 6, 2025 The Portable Core Boundary: What Shared Code Must Not Reference Portability follows from the set of symbols a module names rather than the language it is written in, so a shared core is built by inverting platform dependencies at the edge. mobile computing · foundational
- May 6, 2025 The TLB, Associativity, and What a Miss Actually Costs How the translation cache is organised, why it is small and fully associative, what the hardware does on a miss, and which access patterns destroy its hit rate. memory systems · foundational
- May 6, 2025 Where the 2^n Comes From: Subset Construction and the Limits of Determinization Why determinizing an n-state NFA can require exponentially many states, how to exhibit a language that forces the blow-up, and which partial determinization schemes keep it bounded in practice. computation theory · intermediate
- May 5, 2025 Clock Networks, Global Buffers, and Skew Budgets Why a clock reaches every register through a dedicated balanced tree, what skew and jitter cost a timing budget, and when a clock must be routed on general interconnect instead. hardware engineering · foundational
- May 5, 2025 How an Out-of-Bounds Write Reaches Allocator Metadata Why the bytes just past a heap object belong to the allocator, how a single byte can turn a length field into an address, and which layouts keep bookkeeping out of the blast radius. memory systems · foundational
- May 5, 2025 Kernel Launch Capture and Replay Recording a launch sequence once and replaying it as a single submission removes per-launch host overhead, at the cost of fixed topology and a separate memory model. inference systems · advanced
- May 4, 2025 Interrupt Moderation and Event Delivery at High Rates Why one interrupt per completed transfer collapses at high packet rates, how coalescing timers and counters bound the damage, and what a polled-mode driver gives up. computer architecture · intermediate
- May 4, 2025 ROC-AUC and PR-AUC Under Class Imbalance What each area actually integrates, why ROC-AUC stays flat as positives become rare, and the conditions under which the two order two models differently. machine learning · intermediate
- May 3, 2025 Expand, Migrate, Contract: Changing an Interface Without a Flag Day When callers cannot be changed in one deploy, the change is split into three phases that are each independently safe: add the new shape, move every user, remove the old. software engineering · intermediate
- May 3, 2025 Layer Sensitivity and Bit Allocation Under an Average-Width Budget How per-layer sensitivity is measured, why a greedy allocation on a non-additive error metric misleads, and how to spend a fixed average bit width across a network. inference systems · advanced
- May 3, 2025 POSIX Real-Time Priority Classes and the Bandwidth Cap What SCHED_FIFO and SCHED_RR actually guarantee, why an unprivileged process cannot use them freely, and how a runtime cap keeps a runaway real-time thread from hanging the machine. operating systems · intermediate
- May 1, 2025 VPC Address Space, Subnets, and the Implicit Router How a CIDR block becomes an isolated forwarding domain, where the router joining its subnets actually runs, and why several addresses in every subnet are never usable. cloud infrastructure · foundational
-
April
Apr 30, 2025 Fan Curves, System Impedance, and Where a Cooler Actually Operates How a fan's pressure-flow curve intersects the chassis impedance curve to fix the operating point, and why the resulting airflow determines the heat sink's resistance. hardware engineering · intermediate - Apr 30, 2025 Handing a Transfer to a System Daemon So It Outlives the App Why background uploads and downloads are owned by a system process rather than the app, what the delegate relaunch guarantees, and where the handoff loses data. mobile computing · intermediate
- Apr 30, 2025 Load Balancing and Thread Migration on Symmetric Multiprocessors How per-CPU run queues are kept in balance without a global lock, when a thread is worth moving, and why affinity and NUMA topology constrain the answer. operating systems · intermediate
- Apr 30, 2025 Newton Iterations for Implicit Spatial Operators How an implicit step on a nonlinear PDE becomes a Newton solve on a sparse system, what convergence the iteration has, and why the Jacobian is assembled from the stencil. scientific computing · advanced
- Apr 30, 2025 Software Pipelining and Loop-Carried Dependences How modulo scheduling overlaps iterations of a loop, why the recurrence constraint sets a hard lower bound on cycles per iteration, and how unrolling and register pressure limit the schedule. computer architecture · intermediate
- Apr 30, 2025 The Circular Log: Head, Tail, and the Distance Between Them How an append-only log wraps around a finite volume, the segment state machine that makes wrapping safe, and why the gap between the write head and the reclaim frontier sets the achievable throughput. filesystems · intermediate
- Apr 29, 2025 Cross-Site Request Forgery and the Problem of Ambient Authority Why a browser attaches cookies to requests it did not intend to make, which request shapes are reachable without a script, and how token binding restores an intent check. security · intermediate
- Apr 29, 2025 Domain Separation and Labelled Key Derivation Why one master secret must never produce two interchangeable keys, how labels are encoded into a KDF, and which label collisions still cause cross-protocol failures. cryptography · foundational
- Apr 29, 2025 Mean Imputation and the Variance It Removes Substituting the column mean for a missing value preserves the mean exactly and shrinks the variance and the covariance, changing coefficients, standard errors, and fit. machine learning · intermediate
- Apr 29, 2025 The Contract a Compute API Encodes Kernels, launch geometry, memory objects, and queues: the four obligations every GPU acceleration interface must satisfy, and why each one is spelled differently across vendors. gpu computing · foundational
- Apr 28, 2025 Connection IDs, Migration, and Validating a New Path Why QUIC addresses packets by connection rather than by four-tuple, how NEW_CONNECTION_ID hands out routable identifiers, and what PATH_CHALLENGE proves about a peer that has moved. internet protocols · intermediate
- Apr 28, 2025 Dangerous Structures: Detecting Serialization Cycles Under Snapshot Isolation Why snapshot isolation needs only two edge types to find every nonserializable cycle, how pivot detection works, and what the false positive rate costs. databases · advanced
- Apr 28, 2025 Hierarchical Heartbeat Aggregation and the Cost of Intermediate Levels Why a tree of monitors cuts liveness traffic from quadratic to linear, what the extra level adds to detection time, and how the aggregate view loses the identity of the observer. distributed systems · advanced
- Apr 27, 2025 Head-Based Sampling by Trace-ID Threshold Why comparing the low bits of a trace identifier against a fraction gives an unbiased sample, and how propagation keeps the decision consistent across services. observability · foundational
- Apr 27, 2025 Session Affinity, Sticky Routing, and Version Overlap How affinity keeps a client on one instance, why it biases a canary sample, and what has to be true of the session payload and its keys for a pinned session to survive promotion. devops · intermediate
- Apr 26, 2025 Clock Skew and the Limits of Cross-Host Event Ordering Where host clocks diverge, how much error an unsynchronized timeline carries, and which ordering conclusions survive when timestamps from different machines are merged. security · foundational
- Apr 26, 2025 Container Images as Frozen Environments and Their Limits Layer digesting, reproducibility of the build itself, kernel sharing, and the hardware facts a container cannot pin down. scientific computing · intermediate
- Apr 26, 2025 Contention Ceilings and the Limits of Parallel Scaling Why adding workers to a shared counter, lock, or cache line stops helping, how the serial fraction bounds speedup, and which designs remove the ceiling instead of raising it. backend systems · advanced
- Apr 25, 2025 Attack-Defense Trees and Countermeasure Selection as a Two-Player Problem How adding defender nodes changes attack tree semantics from satisfiability to a game, what min-max evaluation computes, and why the defender moving first or second changes the answer. security · advanced
- Apr 25, 2025 Change Logs and Tombstones for Offline-First Sync How a local database records what changed while offline, why deletes need an explicit marker, and how a sync cursor avoids replaying the entire history on every launch. mobile computing · intermediate
- Apr 25, 2025 Painting, Tiles, and Raster Cost: What a Repaint Actually Recomputes Display lists, invalidation rectangles, and tile rasterization: which changes force re-recording, which force re-rastering, and why blur and text dominate the bill. web platform · intermediate
- Apr 25, 2025 Sixth Normal Form and the Cost of One Attribute per Relation How a decomposition into key-plus-one-attribute relations removes every update anomaly by construction, what the extra joins cost, and which workloads make that cost worth paying. databases · advanced
- Apr 24, 2025 Bit-Packed Integer Arrays and Vectorized Decoding How fixed-width packing puts k-bit integers into words, why decoding costs more than encoding, and how SIMD shuffles make unpacking cheap. data structures · advanced
- Apr 24, 2025 Serializing Device State Across a Migration Emulated devices carry configuration registers, queue indices, and pending interrupts that must be reconstructed exactly on the destination. The format is versioned, and the failure mode is a guest that resumes with a device it does not recognise. virtualization · intermediate
- Apr 23, 2025 Bulkhead Isolation and the Design of Partial Degradation Partitioning capacity so one dependency cannot consume all of it, and deciding in advance which features are worth serving when the partition is full. backend systems · advanced
- Apr 22, 2025 Conflict Resolution When Two Regions Accept Writes Last-writer-wins, version vectors, and application merge: what each guarantees about concurrent cross-region updates, and which invariants each one breaks. cloud infrastructure · intermediate
- Apr 22, 2025 Content Addressing: Why a Layer Is Named by Its Digest How digest-addressed storage makes image layers immutable, what deduplication falls out of it, and why garbage collection needs a reachability walk. virtualization · foundational