<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>MerceMay</title><description>In-depth technical writing on computing systems: algorithms, languages, operating systems, networks, databases, security, and machine learning. Item dates are assigned archive dates that order this library; they are not historical publication records.</description><link>https://mercemay.com/</link><language>en-us</language><item><title>Signed Repository Metadata and the Compromise-Resistant Update Protocol</title><link>https://mercemay.com/articles/software-engineering/dependencies/signed-metadata-and-update-frameworks/</link><guid isPermaLink="true">https://mercemay.com/articles/software-engineering/dependencies/signed-metadata-and-update-frameworks/</guid><description>Why a signature on the artifact is not enough, how role-based metadata separates signing keys by function, and what the freshness and freeze defences cost in round trips.</description><pubDate>Sun, 25 Oct 2026 00:00:00 GMT</pubDate><category>software-engineering</category><category>supply-chain-security</category><category>update-frameworks</category><category>metadata-signing</category><category>key-compromise</category></item><item><title>BGP Sessions and Route Propagation over Hybrid Links</title><link>https://mercemay.com/articles/cloud-infrastructure/cloud-networking/bgp-sessions-and-route-propagation-over-hybrid-links/</link><guid isPermaLink="true">https://mercemay.com/articles/cloud-infrastructure/cloud-networking/bgp-sessions-and-route-propagation-over-hybrid-links/</guid><description>How a gateway exchanges prefixes with a customer network over a dedicated link, why the AS path and local preference determine the winner, and how a flapping session poisons a route table.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>cloud-infrastructure</category><category>bgp</category><category>route-propagation</category><category>hybrid-networking</category><category>as-path</category><category>route-selection</category></item><item><title>Conditioning, Tolerances, and the Digits a Reproduction Can Demand</title><link>https://mercemay.com/articles/scientific-computing/reproducible-research/conditioning-significant-digits/</link><guid isPermaLink="true">https://mercemay.com/articles/scientific-computing/reproducible-research/conditioning-significant-digits/</guid><description>How the condition number sets the width of the interval a computed result actually occupies, and how that interval determines which differences between two runs are meaningful.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>scientific-computing</category><category>conditioning</category><category>floating-point</category><category>tolerance</category><category>numerical-error</category></item><item><title>How a DFA Decides Membership: Transition Tables and the Extended Transition Function</title><link>https://mercemay.com/articles/computation-theory/automata/dfa-membership-transition-tables/</link><guid isPermaLink="true">https://mercemay.com/articles/computation-theory/automata/dfa-membership-transition-tables/</guid><description>The five-tuple, the recursive lift of the transition function to whole strings, and the table layouts that make each input symbol cost one dependent load.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>computation-theory</category><category>deterministic-automata</category><category>transition-tables</category><category>regular-languages</category><category>state-machines</category></item><item><title>Signals as Deferred Interrupts and the Async-Signal-Safe Subset</title><link>https://mercemay.com/articles/computing-history/unix-lineage/signals-async-signal-safety/</link><guid isPermaLink="true">https://mercemay.com/articles/computing-history/unix-lineage/signals-async-signal-safety/</guid><description>How a signal handler interrupts an arbitrary instruction, why most library calls are unsafe inside one, and what the small permitted subset actually guarantees.</description><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><category>computing-history</category><category>signals</category><category>async-signal-safety</category><category>interrupt-handling</category><category>reentrancy</category></item><item><title>Balance Factors, and Why AVL Deletion Cascades</title><link>https://mercemay.com/articles/data-structures/balanced-trees/avl-balance-factors-and-deletion-cascades/</link><guid isPermaLink="true">https://mercemay.com/articles/data-structures/balanced-trees/avl-balance-factors-and-deletion-cascades/</guid><description>How two bits per node encode the AVL invariant, why an insertion repair stops at the first rotation while a deletion repair can climb to the root, and what the child balance factor decides.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>data-structures</category><category>avl-trees</category><category>balance-factors</category><category>tree-rotations</category><category>deletion</category></item><item><title>How a Loadable Module Resolves Symbols Against the Kernel</title><link>https://mercemay.com/articles/operating-systems/kernel-engineering/loadable-module-symbol-resolution/</link><guid isPermaLink="true">https://mercemay.com/articles/operating-systems/kernel-engineering/loadable-module-symbol-resolution/</guid><description>A module is an unlinked ELF object, not a program. How the loader binds its undefined names, why exported symbols carry version CRCs, and what vermagic refuses to load.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>operating-systems</category><category>loadable-modules</category><category>elf-relocation</category><category>symbol-resolution</category><category>module-abi</category></item><item><title>Precedence Climbing for Binary Expressions</title><link>https://mercemay.com/articles/compilers/lexing-and-parsing/precedence-climbing-binary-expressions/</link><guid isPermaLink="true">https://mercemay.com/articles/compilers/lexing-and-parsing/precedence-climbing-binary-expressions/</guid><description>How a loop with a minimum-binding-power parameter parses operator precedence and associativity in one function, and how its behaviour maps onto the grammar it replaces.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>compilers</category><category>operator-precedence</category><category>recursive-descent</category><category>associativity</category><category>expression-parsing</category></item><item><title>Quorum Intersection: Why R + W &gt; N Is Necessary but Not Sufficient</title><link>https://mercemay.com/articles/databases/replication-and-sharding/quorum-intersection-read-write-overlap/</link><guid isPermaLink="true">https://mercemay.com/articles/databases/replication-and-sharding/quorum-intersection-read-write-overlap/</guid><description>What the quorum inequalities actually prove about read-write overlap, why they say nothing about the newest value, and where per-key quorums break down across a cluster.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>databases</category><category>quorum</category><category>consistency</category><category>replication</category><category>staleness</category><category>sloppy-quorum</category></item><item><title>Refresh Token Rotation and Replay Detection</title><link>https://mercemay.com/articles/backend-systems/session-and-state/refresh-token-rotation-replay/</link><guid isPermaLink="true">https://mercemay.com/articles/backend-systems/session-and-state/refresh-token-rotation-replay/</guid><description>How rotating refresh tokens limit the value of a stolen credential, why a used token presented twice means compromise, and how a grace window keeps honest clients from tripping the alarm.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>backend-systems</category><category>tokens</category><category>oauth</category><category>revocation</category><category>replay-detection</category></item><item><title>Setup and Hold Slack: Reading a Static Timing Report</title><link>https://mercemay.com/articles/hardware-engineering/hdl-and-synthesis/static-timing-analysis-slack/</link><guid isPermaLink="true">https://mercemay.com/articles/hardware-engineering/hdl-and-synthesis/static-timing-analysis-slack/</guid><description>How arrival and required times are propagated through a timing graph, why setup and hold checks run in opposite directions, and how skew, derating, and path exceptions change the verdict.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>hardware-engineering</category><category>static-timing-analysis</category><category>timing-closure</category><category>clock-skew</category><category>slack</category></item><item><title>Testing DFA Equivalence with Union-Find Instead of a Product Table</title><link>https://mercemay.com/articles/computation-theory/automata/dfa-equivalence-union-find/</link><guid isPermaLink="true">https://mercemay.com/articles/computation-theory/automata/dfa-equivalence-union-find/</guid><description>Why two machines accept the same language exactly when no reachable pair is split by acceptance, and how merging pairs in a disjoint-set structure avoids building the product.</description><pubDate>Fri, 23 Oct 2026 00:00:00 GMT</pubDate><category>computation-theory</category><category>equivalence-checking</category><category>union-find</category><category>product-construction</category><category>deterministic-automata</category></item><item><title>Ray-Triangle Intersection and the Watertight Edge Test</title><link>https://mercemay.com/articles/computer-graphics/ray-tracing/ray-triangle-intersection-watertight-edges/</link><guid isPermaLink="true">https://mercemay.com/articles/computer-graphics/ray-tracing/ray-triangle-intersection-watertight-edges/</guid><description>How the ray-triangle test is derived from Cramer rule, why shared edges produce pinhole artifacts, and what a watertight edge function buys and costs.</description><pubDate>Thu, 22 Oct 2026 00:00:00 GMT</pubDate><category>computer-graphics</category><category>ray-triangle</category><category>barycentric-coordinates</category><category>watertight-intersection</category><category>floating-point</category></item><item><title>Tunnel Encapsulation Overhead and Path MTU Discovery</title><link>https://mercemay.com/articles/networking/network-virtualization/tunnel-encapsulation-overhead-and-mtu/</link><guid isPermaLink="true">https://mercemay.com/articles/networking/network-virtualization/tunnel-encapsulation-overhead-and-mtu/</guid><description>How many bytes each overlay scheme adds, why ICMP-based path MTU discovery breaks across a tunnel, and the options for keeping an inner frame inside the underlay MTU.</description><pubDate>Thu, 22 Oct 2026 00:00:00 GMT</pubDate><category>networking</category><category>mtu</category><category>path-mtu-discovery</category><category>encapsulation</category><category>fragmentation</category></item><item><title>Voltage and Frequency Domains: Why DVFS Is Not One Knob</title><link>https://mercemay.com/articles/computer-architecture/architecture-tradeoffs/voltage-frequency-domains-and-dvfs/</link><guid isPermaLink="true">https://mercemay.com/articles/computer-architecture/architecture-tradeoffs/voltage-frequency-domains-and-dvfs/</guid><description>How a frequency change requires a voltage change, why level shifters and synchronisers appear at domain boundaries, and what latency an operating-point transition really costs.</description><pubDate>Thu, 22 Oct 2026 00:00:00 GMT</pubDate><category>computer-architecture</category><category>dvfs</category><category>voltage-scaling</category><category>clock-domains</category><category>power-budget</category></item><item><title>Directed Graphical Models: D-Separation and the Markov Blanket</title><link>https://mercemay.com/articles/machine-learning/probabilistic-models/bayesian-networks-d-separation/</link><guid isPermaLink="true">https://mercemay.com/articles/machine-learning/probabilistic-models/bayesian-networks-d-separation/</guid><description>How a directed acyclic graph selects a factorization, why three path shapes reduce to one blocking rule, and what the Markov blanket lets an algorithm ignore.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>machine-learning</category><category>bayesian-networks</category><category>d-separation</category><category>markov-blanket</category><category>conditional-distributions</category></item><item><title>Singly Linked Lists: One Pointer per Node and the Cost of Unidirectional Traversal</title><link>https://mercemay.com/articles/data-structures/linked-structures/singly-linked-list-node-layout/</link><guid isPermaLink="true">https://mercemay.com/articles/data-structures/linked-structures/singly-linked-list-node-layout/</guid><description>How a head pointer and a next field support O(1) splicing, why deletion needs the predecessor, and what pointer chasing costs on a modern cache hierarchy.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>data-structures</category><category>linked-lists</category><category>pointers</category><category>cache-locality</category><category>pointer-chasing</category></item><item><title>Stack and Memory Budgeting for a Set of Preemptive Tasks</title><link>https://mercemay.com/articles/embedded-systems/rtos/stack-and-memory-budgeting/</link><guid isPermaLink="true">https://mercemay.com/articles/embedded-systems/rtos/stack-and-memory-budgeting/</guid><description>Why each task needs its own stack, how worst-case stack depth is computed from the call graph plus exception frames, and where a shared stack changes the accounting.</description><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><category>embedded-systems</category><category>stack-sizing</category><category>memory-budgeting</category><category>context-switch</category><category>worst-case-stack-depth</category><category>preemption</category></item><item><title>fsck and the Ordering of Repairs</title><link>https://mercemay.com/articles/filesystems/fs-implementation/fsck-pass-ordering-and-repair/</link><guid isPermaLink="true">https://mercemay.com/articles/filesystems/fs-implementation/fsck-pass-ordering-and-repair/</guid><description>Why the consistency passes run in a fixed order, how each pass builds the data the next one needs, and why some findings can only be resolved by discarding data.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>filesystems</category><category>fsck</category><category>consistency</category><category>repair</category><category>bitmaps</category><category>orphans</category></item><item><title>Network ACLs and Stateless Filtering at the Subnet Boundary</title><link>https://mercemay.com/articles/cloud-infrastructure/cloud-networking/network-acls-and-stateless-subnet-filtering/</link><guid isPermaLink="true">https://mercemay.com/articles/cloud-infrastructure/cloud-networking/network-acls-and-stateless-subnet-filtering/</guid><description>Why an ordered, stateless rule list needs an explicit rule for return traffic, how ephemeral port ranges make that rule hard to write, and where the ACL is evaluated relative to the interface.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>cloud-infrastructure</category><category>network-acls</category><category>stateless-filtering</category><category>ephemeral-ports</category><category>subnets</category><category>firewalls</category></item><item><title>Sections, Symbols, and Relocations in an ELF Object File</title><link>https://mercemay.com/articles/compilers/linkers-and-loaders/sections-symbols-relocations-elf-object/</link><guid isPermaLink="true">https://mercemay.com/articles/compilers/linkers-and-loaders/sections-symbols-relocations-elf-object/</guid><description>Why a compiled object file is more than machine code: the section header table, the symbol table and its string table, and the relocation records a linker consumes.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>compilers</category><category>elf</category><category>object-files</category><category>relocation</category><category>symbol-tables</category><category>linking</category></item><item><title>Sharded Counters, Padding, and False Sharing</title><link>https://mercemay.com/articles/performance-engineering/throughput-scaling/sharded-counters-and-false-sharing/</link><guid isPermaLink="true">https://mercemay.com/articles/performance-engineering/throughput-scaling/sharded-counters-and-false-sharing/</guid><description>Why two independent counters placed next to each other can cost more than one shared counter, how cache-line granularity forces padding, and what sharding gives up in exchange.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>performance-engineering</category><category>false-sharing</category><category>cache-lines</category><category>sharding</category><category>atomic-operations</category><category>counters</category></item><item><title>Ambiguity, Equivalence, and Other Undecidable Grammar Questions</title><link>https://mercemay.com/articles/computation-theory/formal-languages/undecidable-grammar-questions/</link><guid isPermaLink="true">https://mercemay.com/articles/computation-theory/formal-languages/undecidable-grammar-questions/</guid><description>Membership in a context-free language is decidable, but asking whether two grammars denote the same language is not, and neither is asking whether one is ambiguous.</description><pubDate>Mon, 19 Oct 2026 00:00:00 GMT</pubDate><category>computation-theory</category><category>undecidability</category><category>ambiguity</category><category>grammar-equivalence</category><category>reductions</category></item><item><title>Hash Trees and the Root of Trust in a Checksummed Filesystem</title><link>https://mercemay.com/articles/filesystems/data-integrity/hash-trees-and-root-of-trust/</link><guid isPermaLink="true">https://mercemay.com/articles/filesystems/data-integrity/hash-trees-and-root-of-trust/</guid><description>Why per-block checksums need a chain to a single trusted value, how Merkle trees make tampering localisable, and what the root itself has to be protected against.</description><pubDate>Mon, 19 Oct 2026 00:00:00 GMT</pubDate><category>filesystems</category><category>hash-trees</category><category>merkle-trees</category><category>root-of-trust</category><category>verification</category></item><item><title>Leaderless Ordering: Dependency Graphs Instead of a Single Log</title><link>https://mercemay.com/articles/distributed-systems/consensus/leaderless-ordering-dependency-graphs/</link><guid isPermaLink="true">https://mercemay.com/articles/distributed-systems/consensus/leaderless-ordering-dependency-graphs/</guid><description>How per-command sequence numbers and dependency sets let replicas commit concurrently, why conflicts still impose an order, and where recovery becomes the expensive part.</description><pubDate>Mon, 19 Oct 2026 00:00:00 GMT</pubDate><category>distributed-systems</category><category>leaderless-consensus</category><category>dependency-tracking</category><category>paxos</category><category>ordering</category></item><item><title>Progressive Delivery Controllers as Reconciliation Loops</title><link>https://mercemay.com/articles/devops/deployment-strategies/progressive-delivery-controllers/</link><guid isPermaLink="true">https://mercemay.com/articles/devops/deployment-strategies/progressive-delivery-controllers/</guid><description>How a rollout becomes a cluster object with a status field, how the controller moves traffic through a provider abstraction, and where the loop conflicts with autoscalers and GitOps sync.</description><pubDate>Mon, 19 Oct 2026 00:00:00 GMT</pubDate><category>devops</category><category>progressive-delivery</category><category>reconciliation</category><category>custom-resources</category><category>traffic-provider</category></item><item><title>Page Splits and the Write Cost of a Single B-Tree Insert</title><link>https://mercemay.com/articles/databases/storage-engines/b-tree-split-write-amplification/</link><guid isPermaLink="true">https://mercemay.com/articles/databases/storage-engines/b-tree-split-write-amplification/</guid><description>What an insert actually writes when a leaf page has no room, why the split propagates to the root, and how fill factor and right-links change the count.</description><pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate><category>databases</category><category>b-tree</category><category>page-split</category><category>write-amplification</category><category>index-maintenance</category></item><item><title>Release Gates: Verifying the Cut Before It Ships</title><link>https://mercemay.com/articles/devops/release-engineering/release-verification-and-reproducibility-gates/</link><guid isPermaLink="true">https://mercemay.com/articles/devops/release-engineering/release-verification-and-reproducibility-gates/</guid><description>What a release gate can mechanically check, why reproducibility is the only claim about a build that a second machine can settle, and how a gate fails without becoming a step people bypass.</description><pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate><category>devops</category><category>release-gates</category><category>reproducible-builds</category><category>build-verification</category><category>ci-pipelines</category></item><item><title>The Bilinear Transform and Frequency Warping</title><link>https://mercemay.com/articles/scientific-computing/signal-processing/bilinear-transform-and-warping/</link><guid isPermaLink="true">https://mercemay.com/articles/scientific-computing/signal-processing/bilinear-transform-and-warping/</guid><description>How mapping the analog frequency axis onto the unit circle produces a stable digital filter, why the cutoff moves, and how prewarping compensates for it.</description><pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate><category>scientific-computing</category><category>iir-filters</category><category>bilinear-transform</category><category>analog-prototypes</category><category>frequency-warping</category><category>stability</category></item><item><title>Zoned Block Devices and the Zone Append Model</title><link>https://mercemay.com/articles/filesystems/flash-and-block-layers/zoned-block-devices-and-zone-append/</link><guid isPermaLink="true">https://mercemay.com/articles/filesystems/flash-and-block-layers/zoned-block-devices-and-zone-append/</guid><description>How zone semantics replace the random-write abstraction with explicit sequential-write regions, what append buys, and which costs move from the device to the host.</description><pubDate>Sat, 17 Oct 2026 00:00:00 GMT</pubDate><category>filesystems</category><category>zoned-storage</category><category>zone-append</category><category>host-managed-devices</category><category>garbage-collection</category></item><item><title>Choosing Between fp16 and bf16: Exponent Range and Mantissa Budget</title><link>https://mercemay.com/articles/deep-learning/efficient-training/fp16-bf16-number-formats/</link><guid isPermaLink="true">https://mercemay.com/articles/deep-learning/efficient-training/fp16-bf16-number-formats/</guid><description>Both formats are 16 bits, but they split those bits differently. The split decides whether a training run needs loss scaling and how much precision each weight update retains.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>deep-learning</category><category>floating-point</category><category>mixed-precision</category><category>number-formats</category><category>dynamic-range</category></item><item><title>Lanczos Iteration and Shift-Invert for Extreme Eigenvalues</title><link>https://mercemay.com/articles/scientific-computing/linear-algebra/lanczos-shift-invert-eigenvalues/</link><guid isPermaLink="true">https://mercemay.com/articles/scientific-computing/linear-algebra/lanczos-shift-invert-eigenvalues/</guid><description>How a three-term recurrence reduces a large symmetric matrix to a tridiagonal one, which eigenvalues that reduction can resolve, and why shift-invert changes the question being asked.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>scientific-computing</category><category>lanczos</category><category>eigenvalues</category><category>shift-invert</category><category>krylov-methods</category></item><item><title>Minimal Version Selection and Its Compatibility Assumption</title><link>https://mercemay.com/articles/developer-tools/package-managers/minimal-version-selection/</link><guid isPermaLink="true">https://mercemay.com/articles/developer-tools/package-managers/minimal-version-selection/</guid><description>How Go chooses the maximum of declared minimum versions, why that rule needs no backtracking, and what an ecosystem gives up when its requirement language has no upper bounds.</description><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><category>developer-tools</category><category>minimal-version-selection</category><category>go-modules</category><category>version-unification</category><category>dependency-resolution</category></item><item><title>Bank Conflicts Inside GPU Shared Memory</title><link>https://mercemay.com/articles/gpu-computing/gpu-memory/shared-memory-banks-and-conflicts/</link><guid isPermaLink="true">https://mercemay.com/articles/gpu-computing/gpu-memory/shared-memory-banks-and-conflicts/</guid><description>How a shared-memory address selects one of thirty-two banks, when the hardware serves a warp in a single pass, and why padding a tile by one column removes a thirty-two-way serialization.</description><pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate><category>gpu-computing</category><category>shared-memory</category><category>bank-conflicts</category><category>padding</category><category>scratchpad-memory</category></item><item><title>Variational Inference and the Evidence Lower Bound</title><link>https://mercemay.com/articles/machine-learning/probabilistic-models/variational-inference-evidence-lower-bound/</link><guid isPermaLink="true">https://mercemay.com/articles/machine-learning/probabilistic-models/variational-inference-evidence-lower-bound/</guid><description>Why maximizing a lower bound replaces integrating a posterior, how mean-field updates are derived coordinate by coordinate, and what the bound systematically understates.</description><pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate><category>machine-learning</category><category>variational-inference</category><category>evidence-lower-bound</category><category>mean-field</category><category>kl-divergence</category></item><item><title>Reachability, Retention, and What Counts as a Leak</title><link>https://mercemay.com/articles/memory-systems/profiling-memory/reachability-and-leak-definition/</link><guid isPermaLink="true">https://mercemay.com/articles/memory-systems/profiling-memory/reachability-and-leak-definition/</guid><description>Why unreachable memory and unfreed memory are different problems, how a tracing collector decides an object is dead, and where conservative roots keep garbage alive.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate><category>memory-systems</category><category>reachability</category><category>leak-detection</category><category>garbage-collection</category><category>retention</category></item><item><title>Request Cloning and Body Streams in Fetch Handlers</title><link>https://mercemay.com/articles/web-platform/progressive-web/request-cloning-and-body-streams/</link><guid isPermaLink="true">https://mercemay.com/articles/web-platform/progressive-web/request-cloning-and-body-streams/</guid><description>Why a fetch handler cannot both return a response and store it without cloning, how tee behaves under backpressure, and which bodies the Cache API refuses to store.</description><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate><category>web-platform</category><category>fetch</category><category>streams</category><category>cache-api</category><category>request-body</category></item><item><title>Shared State Without a Shared Heap</title><link>https://mercemay.com/articles/mobile-computing/cross-platform/shared-state-store/</link><guid isPermaLink="true">https://mercemay.com/articles/mobile-computing/cross-platform/shared-state-store/</guid><description>Two platform runtimes cannot hold the same objects, so cross-platform state lives in an external store with subscription and persistence semantics that the framework must define itself.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>mobile-computing</category><category>state-management</category><category>observable-store</category><category>unidirectional-data-flow</category><category>persistence</category><category>snapshots</category></item><item><title>Token Substitution and Tree Substitution in Macro Expansion</title><link>https://mercemay.com/articles/programming-languages/metaprogramming/token-substitution-and-tree-substitution/</link><guid isPermaLink="true">https://mercemay.com/articles/programming-languages/metaprogramming/token-substitution-and-tree-substitution/</guid><description>Why the C preprocessor rewrites flat token sequences while Lisp macros rewrite parsed forms, and how that choice changes precedence bugs, argument checking, and whether expansion is guaranteed to terminate.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>programming-languages</category><category>macro-expansion</category><category>preprocessor</category><category>token-streams</category><category>syntax-trees</category><category>homoiconicity</category></item><item><title>Variadic Calls and the Default Argument Promotions</title><link>https://mercemay.com/articles/systems-programming/c-and-abi/variadic-calls-and-default-promotions/</link><guid isPermaLink="true">https://mercemay.com/articles/systems-programming/c-and-abi/variadic-calls-and-default-promotions/</guid><description>What a va_list actually points at, why float and char arguments are widened before a variadic call, and how the absence of type information turns a wrong format into undefined behaviour.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>systems-programming</category><category>varargs</category><category>argument-promotion</category><category>calling-convention</category><category>undefined-behaviour</category></item><item><title>Why Append-Only Keys Concentrate Load on One Shard</title><link>https://mercemay.com/articles/distributed-systems/partitioning/monotonic-keys-and-hot-shards/</link><guid isPermaLink="true">https://mercemay.com/articles/distributed-systems/partitioning/monotonic-keys-and-hot-shards/</guid><description>Monotonic keys place every insert at the end of the key space, so one partition absorbs the write traffic. The fixes, from bit-reversal to bucket suffixes, and what each costs.</description><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><category>distributed-systems</category><category>hot-shards</category><category>write-skew</category><category>key-design</category><category>sharding</category></item><item><title>Attributing Rendering Work: Reading Traces Without Guessing</title><link>https://mercemay.com/articles/web-platform/rendering-performance/tracing-and-attributing-rendering-work/</link><guid isPermaLink="true">https://mercemay.com/articles/web-platform/rendering-performance/tracing-and-attributing-rendering-work/</guid><description>How to tell script time from style, layout, paint, and raster in a frame trace, which entry types expose the same information to code, and how to sample without fooling yourself.</description><pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate><category>web-platform</category><category>profiling</category><category>tracing</category><category>performance-observer</category><category>frame-timing</category><category>long-animation-frames</category></item><item><title>Bus Matrix Arbitration and What DMA Contention Costs the Core</title><link>https://mercemay.com/articles/embedded-systems/microcontrollers/bus-matrix-arbitration-and-dma-contention/</link><guid isPermaLink="true">https://mercemay.com/articles/embedded-systems/microcontrollers/bus-matrix-arbitration-and-dma-contention/</guid><description>How a multi-master bus fabric picks a winner when the core and a DMA engine target the same SRAM, why round-robin is not always fair, and how contention shows up as jitter.</description><pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate><category>embedded-systems</category><category>bus-matrix</category><category>dma</category><category>arbitration</category><category>latency</category></item><item><title>Causal Masking, Additive Mask Terms, and Where the Mask Enters the Softmax</title><link>https://mercemay.com/articles/deep-learning/transformers/causal-mask-placement-softmax/</link><guid isPermaLink="true">https://mercemay.com/articles/deep-learning/transformers/causal-mask-placement-softmax/</guid><description>Why a causal constraint is expressed as negative infinity added to the logits, how padding and causality combine in one layer, and which arithmetic the mask must precede.</description><pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate><category>deep-learning</category><category>masking</category><category>causal-attention</category><category>softmax</category><category>padding</category></item><item><title>Condition Number, Residual, and Backward Error</title><link>https://mercemay.com/articles/scientific-computing/linear-algebra/condition-number-residual-backward-error/</link><guid isPermaLink="true">https://mercemay.com/articles/scientific-computing/linear-algebra/condition-number-residual-backward-error/</guid><description>Why a small residual does not imply a small error, how the condition number splits the blame between problem and algorithm, and how to estimate it without forming an inverse.</description><pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate><category>scientific-computing</category><category>condition-number</category><category>backward-error</category><category>residual</category><category>error-analysis</category></item><item><title>Constructing an S-Box: Field Inversion and Differential Uniformity</title><link>https://mercemay.com/articles/cryptography/symmetric-ciphers/sbox-construction-differential-uniformity/</link><guid isPermaLink="true">https://mercemay.com/articles/cryptography/symmetric-ciphers/sbox-construction-differential-uniformity/</guid><description>Why the AES substitution table is an inverse map in GF(2^8) followed by an affine transform, and how differential uniformity bounds the best characteristic.</description><pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate><category>cryptography</category><category>s-box</category><category>finite-fields</category><category>differential-uniformity</category><category>aes</category></item><item><title>Dynamic Task Mapping: Graphs Expanded at Run Time</title><link>https://mercemay.com/articles/data-engineering/orchestration/dynamic-task-mapping/</link><guid isPermaLink="true">https://mercemay.com/articles/data-engineering/orchestration/dynamic-task-mapping/</guid><description>What changes when the number of tasks is unknown at definition time, how map indices are keyed, and why the reduce step is the hard part.</description><pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate><category>data-engineering</category><category>dynamic-task-mapping</category><category>fan-out</category><category>map-reduce</category><category>graph-expansion</category></item><item><title>Issue Queue Wakeup and Select: The Scheduler Inside the Window</title><link>https://mercemay.com/articles/computer-architecture/out-of-order-execution/issue-queue-wakeup-and-select/</link><guid isPermaLink="true">https://mercemay.com/articles/computer-architecture/out-of-order-execution/issue-queue-wakeup-and-select/</guid><description>How a queue of waiting instructions learns that its operands are ready, how one instruction per port is chosen each cycle, and why the broadcast network is the hard part.</description><pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate><category>computer-architecture</category><category>issue-queue</category><category>wakeup-select</category><category>scheduling</category><category>issue-logic</category></item><item><title>The Cook–Levin Tableau: Encoding a Computation as a Formula</title><link>https://mercemay.com/articles/computation-theory/complexity-classes/cook-levin-tableau-encoding/</link><guid isPermaLink="true">https://mercemay.com/articles/computation-theory/complexity-classes/cook-levin-tableau-encoding/</guid><description>How a nondeterministic polynomial-time computation becomes a boolean formula whose satisfying assignments correspond exactly to accepting runs, and what the encoding costs in variables and clauses.</description><pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate><category>computation-theory</category><category>cook-levin</category><category>satisfiability</category><category>np-completeness</category><category>tableau</category><category>cnf</category></item><item><title>Bit Packing and Frame-of-Reference Blocks</title><link>https://mercemay.com/articles/information-retrieval/indexing/bit-packing-frame-of-reference-blocks/</link><guid isPermaLink="true">https://mercemay.com/articles/information-retrieval/indexing/bit-packing-frame-of-reference-blocks/</guid><description>How choosing a bit width per block of postings beats byte-aligned codes, what the block maximum costs in wasted bits, and why patched exceptions sometimes beat both.</description><pubDate>Sun, 11 Oct 2026 00:00:00 GMT</pubDate><category>information-retrieval</category><category>bit-packing</category><category>frame-of-reference</category><category>postings-compression</category><category>simd</category></item><item><title>Referential Transparency and the Substitution Test</title><link>https://mercemay.com/articles/programming-languages/functional-programming/referential-transparency-substitution-test/</link><guid isPermaLink="true">https://mercemay.com/articles/programming-languages/functional-programming/referential-transparency-substitution-test/</guid><description>What it means for an expression to be replaceable by the value it denotes, which features break that property, and what compilers and proofs gain when it holds.</description><pubDate>Sun, 11 Oct 2026 00:00:00 GMT</pubDate><category>programming-languages</category><category>referential-transparency</category><category>purity</category><category>equational-reasoning</category><category>side-effects</category></item><item><title>Where Address-Space Randomisation Gets Its Entropy</title><link>https://mercemay.com/articles/security/binary-exploitation/aslr-entropy-and-information-leaks/</link><guid isPermaLink="true">https://mercemay.com/articles/security/binary-exploitation/aslr-entropy-and-information-leaks/</guid><description>Which regions are randomised, how many bits of entropy each actually receives, and why a single leaked pointer can undo the whole arrangement.</description><pubDate>Sat, 10 Oct 2026 00:00:00 GMT</pubDate><category>security</category><category>aslr</category><category>address-randomisation</category><category>information-leak</category><category>entropy</category><category>memory-layout</category></item><item><title>Abort Paths and the Blackout Window</title><link>https://mercemay.com/articles/virtualization/live-migration/abort-paths-blackout-window/</link><guid isPermaLink="true">https://mercemay.com/articles/virtualization/live-migration/abort-paths-blackout-window/</guid><description>A migration can fail at any point, and what the guest experiences depends on which side still holds a complete state. The ordering of commit, acknowledgement, and source teardown defines what rollback is possible.</description><pubDate>Fri, 09 Oct 2026 00:00:00 GMT</pubDate><category>virtualization</category><category>failure-handling</category><category>live-migration</category><category>rollback</category><category>vm-state</category></item><item><title>Availability Multiplication in Synchronous Service Graphs</title><link>https://mercemay.com/articles/software-architecture/distributed-architecture/availability-multiplication-in-service-graphs/</link><guid isPermaLink="true">https://mercemay.com/articles/software-architecture/distributed-architecture/availability-multiplication-in-service-graphs/</guid><description>Why end-to-end availability is the product of every dependency on the request path, how fan-out changes that product, and which edges can be removed or made optional.</description><pubDate>Fri, 09 Oct 2026 00:00:00 GMT</pubDate><category>software-architecture</category><category>availability</category><category>service-dependencies</category><category>failure-domains</category><category>timeouts</category></item><item><title>Counting and Radix Sort: Choosing the Pass Count and the Digit Width</title><link>https://mercemay.com/articles/algorithms/sorting-and-selection/counting-and-radix-sort-passes/</link><guid isPermaLink="true">https://mercemay.com/articles/algorithms/sorting-and-selection/counting-and-radix-sort-passes/</guid><description>How stable counting sort works in one linear pass, how LSD radix composes passes, and how digit width trades passes against counter size.</description><pubDate>Fri, 09 Oct 2026 00:00:00 GMT</pubDate><category>algorithms</category><category>radix-sort</category><category>counting-sort</category><category>distribution-sort</category><category>stability</category></item><item><title>Futures as Write-Once Cells: Polling, Waking, and Cancellation</title><link>https://mercemay.com/articles/programming-languages/concurrency-models/futures-write-once-cells-and-polling/</link><guid isPermaLink="true">https://mercemay.com/articles/programming-languages/concurrency-models/futures-write-once-cells-and-polling/</guid><description>The shared state inside a future, why a poll-based executor needs a waker at all, and how the same cell supports both asynchronous completion and cancellation.</description><pubDate>Fri, 09 Oct 2026 00:00:00 GMT</pubDate><category>programming-languages</category><category>futures</category><category>async</category><category>polling</category><category>wakers</category><category>cancellation</category></item><item><title>Topological Order From Finish Times and Why the Reverse Is the Answer</title><link>https://mercemay.com/articles/algorithms/graph-traversal/topological-order-finish-times/</link><guid isPermaLink="true">https://mercemay.com/articles/algorithms/graph-traversal/topological-order-finish-times/</guid><description>The finish-time argument that makes reverse post-order a valid topological sort, why the reverse prefix order is not, and how cycle detection folds into the same traversal.</description><pubDate>Fri, 09 Oct 2026 00:00:00 GMT</pubDate><category>algorithms</category><category>topological-sort</category><category>directed-acyclic-graphs</category><category>depth-first-search</category><category>finish-times</category><category>dependency-ordering</category></item><item><title>Binder IPC: Parcels, Handles, and One-Way Calls</title><link>https://mercemay.com/articles/mobile-computing/mobile-platforms/binder-ipc-parcels-and-handles/</link><guid isPermaLink="true">https://mercemay.com/articles/mobile-computing/mobile-platforms/binder-ipc-parcels-and-handles/</guid><description>How a single-copy parcel transfer works, what a binder handle actually names, and why one-way calls have ordering guarantees but no completion signal.</description><pubDate>Thu, 08 Oct 2026 00:00:00 GMT</pubDate><category>mobile-computing</category><category>ipc</category><category>binder</category><category>parcel</category><category>zero-copy</category></item><item><title>Conservative Rasterization and the Guarantee of Non-Empty Coverage</title><link>https://mercemay.com/articles/computer-graphics/rasterization/conservative-rasterization/</link><guid isPermaLink="true">https://mercemay.com/articles/computer-graphics/rasterization/conservative-rasterization/</guid><description>Standard rasterization may miss a pixel that a triangle touches, which breaks shadow volumes and voxelization; conservative rasterization over-covers by a bounded margin to make touching sufficient.</description><pubDate>Thu, 08 Oct 2026 00:00:00 GMT</pubDate><category>computer-graphics</category><category>conservative-rasterization</category><category>coverage-guarantees</category><category>voxelization</category><category>shadow-volumes</category></item><item><title>Point-in-Time Correctness in Training Set Assembly</title><link>https://mercemay.com/articles/machine-learning/ml-systems/point-in-time-correctness/</link><guid isPermaLink="true">https://mercemay.com/articles/machine-learning/ml-systems/point-in-time-correctness/</guid><description>Joins between labels and features must respect event time, not ingestion time; how to build a training table that never sees the future.</description><pubDate>Thu, 08 Oct 2026 00:00:00 GMT</pubDate><category>machine-learning</category><category>point-in-time-joins</category><category>data-leakage</category><category>feature-store</category><category>sql</category></item><item><title>Reading a Directory as a Stream: readdir and Its Weak Guarantees</title><link>https://mercemay.com/articles/filesystems/fs-fundamentals/readdir-and-directory-stream-consistency/</link><guid isPermaLink="true">https://mercemay.com/articles/filesystems/fs-fundamentals/readdir-and-directory-stream-consistency/</guid><description>Directory listing is a cursor over mutable records, not a snapshot; what the offset cookie means, which entries can be missed or repeated, and why sorting requires reading everything first.</description><pubDate>Thu, 08 Oct 2026 00:00:00 GMT</pubDate><category>filesystems</category><category>readdir</category><category>directory-streams</category><category>seekdir</category><category>directory-entries</category><category>posix</category></item><item><title>Secondary Indexes Under MVCC: Version Chasing and Index Write Amplification</title><link>https://mercemay.com/articles/databases/transactions-and-mvcc/secondary-indexes-version-chasing/</link><guid isPermaLink="true">https://mercemay.com/articles/databases/transactions-and-mvcc/secondary-indexes-version-chasing/</guid><description>Why every row version needs its own index entries, how a lookup follows pointers through superseded versions, and what a non-covering index costs in a versioned store.</description><pubDate>Thu, 08 Oct 2026 00:00:00 GMT</pubDate><category>databases</category><category>secondary-indexes</category><category>mvcc</category><category>write-amplification</category><category>index-maintenance</category><category>visibility</category></item><item><title>Stack Unwinding in the Kernel Without Frame Pointers</title><link>https://mercemay.com/articles/operating-systems/kernel-engineering/stack-unwinding-without-frame-pointers/</link><guid isPermaLink="true">https://mercemay.com/articles/operating-systems/kernel-engineering/stack-unwinding-without-frame-pointers/</guid><description>Walking a call stack whose compiler optimised away the frame pointer, the unwind tables that replace it, and why unwinding from an interrupt frame needs a different entry point.</description><pubDate>Thu, 08 Oct 2026 00:00:00 GMT</pubDate><category>operating-systems</category><category>stack-unwinding</category><category>frame-pointer</category><category>unwind-tables</category><category>debugging</category></item><item><title>Bidirectional Search and the Problem of Knowing When to Stop</title><link>https://mercemay.com/articles/algorithms/shortest-paths/bidirectional-search-termination/</link><guid isPermaLink="true">https://mercemay.com/articles/algorithms/shortest-paths/bidirectional-search-termination/</guid><description>Why two frontiers can meet without the answer being final, which stopping rules are provably safe, and how the meeting point is recovered from two label arrays.</description><pubDate>Wed, 07 Oct 2026 00:00:00 GMT</pubDate><category>algorithms</category><category>bidirectional-search</category><category>dijkstra</category><category>shortest-paths</category><category>termination-conditions</category><category>graph-search</category></item><item><title>Conjugate Priors and the Arithmetic of Posterior Updating</title><link>https://mercemay.com/articles/machine-learning/probabilistic-models/conjugate-priors-posterior-updating/</link><guid isPermaLink="true">https://mercemay.com/articles/machine-learning/probabilistic-models/conjugate-priors-posterior-updating/</guid><description>How a likelihood and a prior combine into a posterior in closed form, what that closure preserves under sequential updating, and where the closed form stops being available.</description><pubDate>Wed, 07 Oct 2026 00:00:00 GMT</pubDate><category>machine-learning</category><category>bayesian-inference</category><category>conjugate-priors</category><category>exponential-families</category><category>posterior-updating</category></item><item><title>Fault Escalation and Reading the Stacked Frame After a Crash</title><link>https://mercemay.com/articles/embedded-systems/bare-metal/fault-handling-and-crash-diagnosis/</link><guid isPermaLink="true">https://mercemay.com/articles/embedded-systems/bare-metal/fault-handling-and-crash-diagnosis/</guid><description>Why an imprecise bus fault arrives as a hard fault, which status bits distinguish the causes, and how the stacked frame locates the instruction that failed.</description><pubDate>Wed, 07 Oct 2026 00:00:00 GMT</pubDate><category>embedded-systems</category><category>fault-handling</category><category>exception-model</category><category>stack-frames</category><category>memory-protection</category></item><item><title>Fill-In, Elimination Ordering, and Symbolic Factorization</title><link>https://mercemay.com/articles/scientific-computing/linear-algebra/fill-in-elimination-ordering/</link><guid isPermaLink="true">https://mercemay.com/articles/scientific-computing/linear-algebra/fill-in-elimination-ordering/</guid><description>Why eliminating a sparse matrix creates new nonzeros, how ordering heuristics bound the damage, and how the pattern of the factor is predicted before any arithmetic runs.</description><pubDate>Wed, 07 Oct 2026 00:00:00 GMT</pubDate><category>scientific-computing</category><category>sparse-matrices</category><category>fill-in</category><category>ordering</category><category>symbolic-factorization</category></item><item><title>Linear Blend Skinning and the Candy-Wrapper Collapse</title><link>https://mercemay.com/articles/computer-graphics/animation/linear-blend-skinning-volume-loss/</link><guid isPermaLink="true">https://mercemay.com/articles/computer-graphics/animation/linear-blend-skinning-volume-loss/</guid><description>Why averaging joint matrices produces volume loss and pinching on twisted limbs, how dual quaternions replace the average, and why dual quaternion skinning is not always the better choice.</description><pubDate>Wed, 07 Oct 2026 00:00:00 GMT</pubDate><category>computer-graphics</category><category>skinning</category><category>linear-blend-skinning</category><category>dual-quaternions</category><category>mesh-deformation</category></item><item><title>OFDMA Scheduling and Multi-User Transmission in Wi-Fi</title><link>https://mercemay.com/articles/networking/wireless/ofdma-scheduling-and-multi-user-transmission/</link><guid isPermaLink="true">https://mercemay.com/articles/networking/wireless/ofdma-scheduling-and-multi-user-transmission/</guid><description>How a 20 MHz channel is split into resource units, how a trigger frame coordinates simultaneous uplinks, and what the scheduling overhead costs.</description><pubDate>Wed, 07 Oct 2026 00:00:00 GMT</pubDate><category>networking</category><category>ofdma</category><category>trigger-frame</category><category>mu-mimo</category><category>scheduling</category><category>resource-units</category></item><item><title>Seek Time, Rotational Latency, and Why the Average Is Not the Middle</title><link>https://mercemay.com/articles/hardware-engineering/storage-hardware/seek-settle-and-rotational-latency/</link><guid isPermaLink="true">https://mercemay.com/articles/hardware-engineering/storage-hardware/seek-settle-and-rotational-latency/</guid><description>How a drive decomposes an access into seek, settle, and rotation, why the mean seek is not half the maximum, and how queueing turns latency into a throughput number.</description><pubDate>Wed, 07 Oct 2026 00:00:00 GMT</pubDate><category>hardware-engineering</category><category>hard-drives</category><category>seek-time</category><category>rotational-latency</category><category>queueing</category><category>io-scheduling</category></item><item><title>Exit Status Semantics and the Limits of set -e</title><link>https://mercemay.com/articles/developer-tools/command-line-craft/exit-status-and-errexit-limits/</link><guid isPermaLink="true">https://mercemay.com/articles/developer-tools/command-line-craft/exit-status-and-errexit-limits/</guid><description>What the 8-bit exit status encodes, which failures errexit deliberately ignores, and why a pipeline reports only one stage of its work.</description><pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate><category>developer-tools</category><category>exit-status</category><category>shell-semantics</category><category>error-handling</category><category>posix</category></item><item><title>Mapping ARIA Roles onto Platform Accessibility APIs</title><link>https://mercemay.com/articles/accessibility/semantics-and-tree/aria-to-platform-role-mapping/</link><guid isPermaLink="true">https://mercemay.com/articles/accessibility/semantics-and-tree/aria-to-platform-role-mapping/</guid><description>How a role token becomes an MSAA role, an AXRole, or an AT-SPI role, which properties carry states, and where the mappings diverge.</description><pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate><category>accessibility</category><category>core-aam</category><category>platform-apis</category><category>aria-roles</category><category>interoperability</category></item><item><title>Repository-Scale Codemods and the Review Problem</title><link>https://mercemay.com/articles/software-engineering/refactoring/repository-scale-codemods/</link><guid isPermaLink="true">https://mercemay.com/articles/software-engineering/refactoring/repository-scale-codemods/</guid><description>A codemod that rewrites ten thousand call sites produces a diff nobody can read. Sharding, mechanization proofs, and a declarative matcher are what make the change reviewable.</description><pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate><category>software-engineering</category><category>codemods</category><category>large-scale-change</category><category>rename</category><category>code-review</category></item><item><title>Synonym Expansion at Index Time Versus Query Time</title><link>https://mercemay.com/articles/information-retrieval/query-understanding/synonym-expansion-timing/</link><guid isPermaLink="true">https://mercemay.com/articles/information-retrieval/query-understanding/synonym-expansion-timing/</guid><description>Why expanding a thesaurus into the index and expanding it into the query produce the same postings but different costs, and how each choice changes scoring and phrase matching.</description><pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate><category>information-retrieval</category><category>synonym-expansion</category><category>query-rewriting</category><category>thesaurus</category><category>scoring</category></item><item><title>Text Metrics and Line Breaking Across Two Font Stacks</title><link>https://mercemay.com/articles/mobile-computing/cross-platform/text-layout-fidelity/</link><guid isPermaLink="true">https://mercemay.com/articles/mobile-computing/cross-platform/text-layout-fidelity/</guid><description>The same string occupies different space on two platforms because measurement, shaping, and fallback differ. Shared layout must pick one authority for metrics or accept divergence.</description><pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate><category>mobile-computing</category><category>text-layout</category><category>font-metrics</category><category>line-breaking</category><category>text-shaping</category><category>unicode</category></item><item><title>Structured Concurrency and the Task Scope</title><link>https://mercemay.com/articles/programming-languages/concurrency-models/structured-concurrency-and-task-scopes/</link><guid isPermaLink="true">https://mercemay.com/articles/programming-languages/concurrency-models/structured-concurrency-and-task-scopes/</guid><description>Why a spawned task should not outlive its parent, how a scope joins on exit and cancels siblings on failure, and what the nesting rule buys over detached threads.</description><pubDate>Mon, 05 Oct 2026 00:00:00 GMT</pubDate><category>programming-languages</category><category>structured-concurrency</category><category>task-scopes</category><category>cancellation</category><category>error-propagation</category></item><item><title>Tail Position, Accumulators, and Continuation-Passing Style</title><link>https://mercemay.com/articles/programming-languages/functional-programming/tail-calls-accumulators-and-cps/</link><guid isPermaLink="true">https://mercemay.com/articles/programming-languages/functional-programming/tail-calls-accumulators-and-cps/</guid><description>Why a call in tail position needs no return frame, how accumulator arguments turn structural recursion into a loop, and what the CPS transformation costs.</description><pubDate>Mon, 05 Oct 2026 00:00:00 GMT</pubDate><category>programming-languages</category><category>tail-calls</category><category>continuation-passing-style</category><category>accumulators</category><category>closures</category><category>trampolining</category></item><item><title>Non-Transparent Bridges and Multi-Host PCIe Topologies</title><link>https://mercemay.com/articles/hardware-engineering/buses-and-interconnects/non-transparent-bridges-and-multi-host/</link><guid isPermaLink="true">https://mercemay.com/articles/hardware-engineering/buses-and-interconnects/non-transparent-bridges-and-multi-host/</guid><description>Why two root complexes cannot simply be cabled together, how a non-transparent bridge presents a translated address window to each side, and what the doorbell handshake does not guarantee.</description><pubDate>Sun, 04 Oct 2026 00:00:00 GMT</pubDate><category>hardware-engineering</category><category>non-transparent-bridging</category><category>multi-host</category><category>address-translation</category><category>topology</category></item><item><title>Layer Normalization and the Residual Stream</title><link>https://mercemay.com/articles/deep-learning/training-dynamics/layer-normalization-residual-streams/</link><guid isPermaLink="true">https://mercemay.com/articles/deep-learning/training-dynamics/layer-normalization-residual-streams/</guid><description>How per-example statistics change the gradient path compared with batch statistics, why the placement of a normalization layer relative to a residual branch alters scale growth with depth, and what the learnable gains do.</description><pubDate>Sat, 03 Oct 2026 00:00:00 GMT</pubDate><category>deep-learning</category><category>normalization</category><category>residual-connections</category><category>gradient-flow</category><category>signal-scaling</category></item><item><title>Bootstrapping a Replica from a Snapshot and a Log Tail</title><link>https://mercemay.com/articles/distributed-systems/replication/replica-bootstrap-snapshot-and-log-tail/</link><guid isPermaLink="true">https://mercemay.com/articles/distributed-systems/replication/replica-bootstrap-snapshot-and-log-tail/</guid><description>Why a running replica cannot simply be copied file by file, how a consistent cut is captured while writes continue, and how the log position inside the snapshot stitches it to the stream.</description><pubDate>Fri, 02 Oct 2026 00:00:00 GMT</pubDate><category>distributed-systems</category><category>bootstrap</category><category>snapshots</category><category>consistent-cut</category><category>log-shipping</category><category>replication</category></item><item><title>Inter-Operator Parallelism and Stream Scheduling</title><link>https://mercemay.com/articles/inference-systems/compilation-and-graphs/inter-operator-parallelism-and-stream-scheduling/</link><guid isPermaLink="true">https://mercemay.com/articles/inference-systems/compilation-and-graphs/inter-operator-parallelism-and-stream-scheduling/</guid><description>Independent branches of a graph can run concurrently on separate queues, but overlap only helps when the branches use different resources and the dependencies are exact.</description><pubDate>Fri, 02 Oct 2026 00:00:00 GMT</pubDate><category>inference-systems</category><category>streams</category><category>concurrency</category><category>dependency-graphs</category><category>overlap</category></item><item><title>Ordering Stores to Persistent Memory: CLWB, SFENCE, and Failure Atomicity</title><link>https://mercemay.com/articles/memory-systems/persistent-memory/clwb-sfence-and-failure-atomicity/</link><guid isPermaLink="true">https://mercemay.com/articles/memory-systems/persistent-memory/clwb-sfence-and-failure-atomicity/</guid><description>Which instruction makes a store reach the media, why a flush without a fence still allows reordering, and how a persistent heap builds transactions out of a cacheline flush and an undo log.</description><pubDate>Fri, 02 Oct 2026 00:00:00 GMT</pubDate><category>memory-systems</category><category>cacheline-flush</category><category>store-ordering</category><category>persistent-memory</category><category>failure-atomicity</category></item><item><title>Propagation, Cumulativity, and Why Weak Models Need Transitive Visibility</title><link>https://mercemay.com/articles/computer-architecture/memory-consistency/propagation-and-cumulativity/</link><guid isPermaLink="true">https://mercemay.com/articles/computer-architecture/memory-consistency/propagation-and-cumulativity/</guid><description>Messages that preserve ordering are not enough: a store already observed by one thread must be observed by every thread it reaches, and multi-copy atomicity is the property that says so.</description><pubDate>Fri, 02 Oct 2026 00:00:00 GMT</pubDate><category>computer-architecture</category><category>memory-ordering</category><category>cumulativity</category><category>store-buffering</category><category>memory-models</category></item><item><title>Shadow Stacks and Protecting the Return Address</title><link>https://mercemay.com/articles/memory-systems/memory-safety/shadow-stacks-and-return-address-protection/</link><guid isPermaLink="true">https://mercemay.com/articles/memory-systems/memory-safety/shadow-stacks-and-return-address-protection/</guid><description>Why a parallel copy of the return address catches overflows that canaries miss, how the check is wired into the epilogue, and what the hardware support changes.</description><pubDate>Fri, 02 Oct 2026 00:00:00 GMT</pubDate><category>memory-systems</category><category>shadow-stack</category><category>control-flow-integrity</category><category>return-address</category><category>call-stack</category></item><item><title>Stubs, Fakes, and Mocks: What Each Double Actually Verifies</title><link>https://mercemay.com/articles/software-engineering/testing/stubs-fakes-mocks-and-what-they-verify/</link><guid isPermaLink="true">https://mercemay.com/articles/software-engineering/testing/stubs-fakes-mocks-and-what-they-verify/</guid><description>The distinction between state verification and interaction verification, why a hand-written fake survives refactoring better than a mock, and what mock assertions couple.</description><pubDate>Fri, 02 Oct 2026 00:00:00 GMT</pubDate><category>software-engineering</category><category>test-doubles</category><category>mocking</category><category>fakes</category><category>interaction-verification</category><category>test-design</category></item><item><title>Coordinated Omission and the Samples a Closed Loop Never Takes</title><link>https://mercemay.com/articles/performance-engineering/latency-analysis/coordinated-omission-closed-loop-measurement/</link><guid isPermaLink="true">https://mercemay.com/articles/performance-engineering/latency-analysis/coordinated-omission-closed-loop-measurement/</guid><description>How a benchmark that waits for each response before issuing the next one systematically excludes the worst delays from its own histogram, and the interval-based correction that recovers them.</description><pubDate>Wed, 30 Sep 2026 00:00:00 GMT</pubDate><category>performance-engineering</category><category>coordinated-omission</category><category>load-testing</category><category>latency-measurement</category><category>percentiles</category></item><item><title>Error Contracts: Problem Details, Stable Codes, and Retry Semantics</title><link>https://mercemay.com/articles/software-architecture/api-design/error-contracts-and-problem-details/</link><guid isPermaLink="true">https://mercemay.com/articles/software-architecture/api-design/error-contracts-and-problem-details/</guid><description>How to design an error payload that machines can branch on and humans can act on, and why retryability belongs in the contract rather than in the status code alone.</description><pubDate>Wed, 30 Sep 2026 00:00:00 GMT</pubDate><category>software-architecture</category><category>error-handling</category><category>api-contracts</category><category>problem-details</category><category>http-semantics</category></item><item><title>Litmus Tests as Executable Specifications</title><link>https://mercemay.com/articles/memory-systems/memory-modeling/litmus-tests-and-executable-models/</link><guid isPermaLink="true">https://mercemay.com/articles/memory-systems/memory-modeling/litmus-tests-and-executable-models/</guid><description>How a five-line concurrency test becomes a machine-checkable claim, what the litmus file format encodes, and how a model checker decides which outcomes are forbidden.</description><pubDate>Wed, 30 Sep 2026 00:00:00 GMT</pubDate><category>memory-systems</category><category>litmus-tests</category><category>memory-model</category><category>model-checking</category><category>herd</category><category>formal-verification</category></item><item><title>Measuring Fragmentation: Free Space That Cannot Be Used</title><link>https://mercemay.com/articles/memory-systems/profiling-memory/measuring-fragmentation-in-a-heap/</link><guid isPermaLink="true">https://mercemay.com/articles/memory-systems/profiling-memory/measuring-fragmentation-in-a-heap/</guid><description>How internal and external fragmentation differ, why a heap can be mostly free and still fail a large request, and which ratios turn free space into a number that predicts allocation failure.</description><pubDate>Wed, 30 Sep 2026 00:00:00 GMT</pubDate><category>memory-systems</category><category>fragmentation</category><category>heap-occupancy</category><category>free-space</category><category>allocation-failure</category></item><item><title>Migrating Stored Data While Both Formats Are Live</title><link>https://mercemay.com/articles/software-engineering/refactoring/schema-migration-dual-write-backfill/</link><guid isPermaLink="true">https://mercemay.com/articles/software-engineering/refactoring/schema-migration-dual-write-backfill/</guid><description>A dual-write phase lets code change before data does, but it trades a clean cutover for a consistency problem. Ordering, backfill, and verification decide whether it holds.</description><pubDate>Wed, 30 Sep 2026 00:00:00 GMT</pubDate><category>software-engineering</category><category>schema-migration</category><category>dual-write</category><category>backfill</category><category>data-consistency</category></item><item><title>Virtual Cursors and Browse Mode</title><link>https://mercemay.com/articles/accessibility/assistive-technology/virtual-cursor-browse-mode/</link><guid isPermaLink="true">https://mercemay.com/articles/accessibility/assistive-technology/virtual-cursor-browse-mode/</guid><description>How a screen reader maintains a separate reading cursor over a virtual buffer of the page, distinct from real keyboard focus, and why the two desynchronize.</description><pubDate>Wed, 30 Sep 2026 00:00:00 GMT</pubDate><category>accessibility</category><category>virtual-cursor</category><category>browse-mode</category><category>focus</category><category>virtual-buffer</category></item><item><title>Why RTP Timestamps Do Not Count Seconds</title><link>https://mercemay.com/articles/internet-protocols/real-time-media/rtp-timestamp-clock-rates/</link><guid isPermaLink="true">https://mercemay.com/articles/internet-protocols/real-time-media/rtp-timestamp-clock-rates/</guid><description>RTP timestamps advance at the codec clock rate, which makes arithmetic modular and stream-relative; the rules that follow for wrap, comparison, and cross-stream sync.</description><pubDate>Wed, 30 Sep 2026 00:00:00 GMT</pubDate><category>internet-protocols</category><category>rtp</category><category>timestamps</category><category>clock-rates</category><category>media-synchronization</category></item><item><title>Failure Domains and the Arithmetic Behind Replication Factor</title><link>https://mercemay.com/articles/filesystems/distributed-storage/failure-domains-and-replication-arithmetic/</link><guid isPermaLink="true">https://mercemay.com/articles/filesystems/distributed-storage/failure-domains-and-replication-arithmetic/</guid><description>How a copy count becomes a durability estimate, why that estimate collapses when failures correlate, and what placement must do to keep the arithmetic honest.</description><pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate><category>filesystems</category><category>replication</category><category>failure-domains</category><category>durability</category><category>placement</category></item><item><title>Weight-Only Quantization and the Memory-Bandwidth Bound</title><link>https://mercemay.com/articles/inference-systems/quantization/weight-only-quantization-bandwidth/</link><guid isPermaLink="true">https://mercemay.com/articles/inference-systems/quantization/weight-only-quantization-bandwidth/</guid><description>Why 4-bit weights speed up token generation while leaving prefill almost untouched, how the dequantize-on-load kernel works, and where the arithmetic intensity ceiling sits.</description><pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate><category>inference-systems</category><category>weight-only-quantization</category><category>memory-bandwidth</category><category>arithmetic-intensity</category><category>llm-inference</category></item><item><title>Resource Requests, Limits, and What the Scheduler Actually Counts</title><link>https://mercemay.com/articles/virtualization/orchestration/resource-requests-limits-and-accounting/</link><guid isPermaLink="true">https://mercemay.com/articles/virtualization/orchestration/resource-requests-limits-and-accounting/</guid><description>Why a request is a scheduling reservation rather than a runtime guarantee, how limits are enforced by cgroups, and why the two numbers produce three quality-of-service classes.</description><pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate><category>virtualization</category><category>resource-requests</category><category>cgroups</category><category>quality-of-service</category><category>overcommit</category></item><item><title>The Split Between Submission and Relay Ports</title><link>https://mercemay.com/articles/internet-protocols/email-protocols/submission-versus-relay-ports/</link><guid isPermaLink="true">https://mercemay.com/articles/internet-protocols/email-protocols/submission-versus-relay-ports/</guid><description>Why port 587 exists separately from port 25, which policies differ between the two roles, and how a server distinguishes a user from a peer MTA.</description><pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate><category>internet-protocols</category><category>smtp</category><category>submission</category><category>authentication</category><category>port-policy</category></item><item><title>Linkage, Symbol Visibility, and the Weak Definition</title><link>https://mercemay.com/articles/systems-programming/c-and-abi/linkage-symbol-visibility-and-weak-definitions/</link><guid isPermaLink="true">https://mercemay.com/articles/systems-programming/c-and-abi/linkage-symbol-visibility-and-weak-definitions/</guid><description>What the linker actually does with an external declaration, how internal and external linkage differ, and the resolution order that makes weak and common symbols dangerous.</description><pubDate>Sun, 27 Sep 2026 00:00:00 GMT</pubDate><category>systems-programming</category><category>linkage</category><category>symbol-table</category><category>linker</category><category>visibility</category></item><item><title>Adjacency Lists, Matrices, and the Cost of Asking Who Is Adjacent</title><link>https://mercemay.com/articles/algorithms/graph-traversal/adjacency-lists-matrices-memory-cost/</link><guid isPermaLink="true">https://mercemay.com/articles/algorithms/graph-traversal/adjacency-lists-matrices-memory-cost/</guid><description>How adjacency matrices, per-vertex lists, and compressed sparse row arrays differ in memory, neighbour iteration, and edge lookup, and which graph shapes favour each.</description><pubDate>Sat, 26 Sep 2026 00:00:00 GMT</pubDate><category>algorithms</category><category>adjacency-lists</category><category>adjacency-matrix</category><category>graph-representation</category><category>csr</category><category>sparse-graphs</category></item><item><title>Fixed and Independent Versioning in a Monorepo</title><link>https://mercemay.com/articles/devops/release-engineering/fixed-and-independent-versioning-in-monorepos/</link><guid isPermaLink="true">https://mercemay.com/articles/devops/release-engineering/fixed-and-independent-versioning-in-monorepos/</guid><description>How a repository containing many packages decides whether they share one version or several, what the coupling does to upgrades, and how change detection assigns a bump to each package.</description><pubDate>Sat, 26 Sep 2026 00:00:00 GMT</pubDate><category>devops</category><category>monorepo</category><category>versioning-strategy</category><category>dependency-graph</category><category>semantic-versioning</category></item><item><title>Path Building and Validity Checking in X.509 Certificate Chains</title><link>https://mercemay.com/articles/internet-protocols/tls/certificate-chain-validation/</link><guid isPermaLink="true">https://mercemay.com/articles/internet-protocols/tls/certificate-chain-validation/</guid><description>How a TLS peer turns a list of certificates into a trusted path: name chaining, basic constraints, validity windows, and why path building is search rather than parsing.</description><pubDate>Sat, 26 Sep 2026 00:00:00 GMT</pubDate><category>internet-protocols</category><category>x509</category><category>certificate-validation</category><category>path-building</category><category>pki</category></item></channel></rss>