Original, source-backed articles about running small systems, static sites, HTTP, DNS, TLS, and operations.
Posts are original articles written for this site. Each one is script-free, source-backed, and tied to the same operational reality the rest of the site records: how a small, static, publicly served system is built, secured, and kept honest.
Frame policy names who may embed your page
Clickjacking deceives a user about which interface receives an action. A hostile parent can place a framed application behind a misleading visual layer so that a click reaches a real control in that application. The parent need not read the child’s DOM for the user to interact with it. Same-origin read restrictions therefore do not replace a decision about whether the application may be embedded at all.
...
XXE follows external references with the parser’s authority
XML external entity processing can make a parser resolve a document-controlled reference using the application’s access. Depending on the parser and its configuration, this can expose files or initiate requests to other services. XML support alone does not establish vulnerability: identify the actual parser, enabled features, resolver and downstream processing before deciding what an input can do.
...
Raft elections need a majority of voters
Raft leader elections require a strict majority of the configured voting members. With fixed membership and one durable vote per server per term, two candidates cannot both win the same term: their majorities would overlap at a voter that cannot support both. This is an election guarantee, not a claim that every node always agrees about the current leader.
...
Gossip converges under explicit assumptions
Gossip spreads information through repeated peer contact. It can tolerate some lost exchanges because surviving copies can be sent again. Eventual convergence still needs assumptions: relevant peers must become reachable, updates must remain available, and the merge rule must handle the states that can arise. Random contact alone does not guarantee agreement by a fixed deadline.
...
Consistent hashing shrinks the rebalance
Consistent hashing limits placement changes when membership changes; it does not itself move data, make replicas agree, or distribute a hot key’s requests. In the classic clockwise ring, a key belongs to the first node point at or after its hash position, wrapping to the smallest point when necessary.
...
Vector clocks distinguish causal order from concurrency
A vector records progress for each tracked participant. Comparing these counters distinguishes causal order from concurrency; the application still decides how to reconcile concurrent values.
One timestamp is not enough A scalar timestamp can impose an order, but that order alone cannot prove causality. With stable participant identities and the usual event-clock rules, each process increments its own component for a local event. Receiving a message merges components by maximum and then increments the receiver’s component. These rules record information flow. They do not measure elapsed time or establish a physical-time ordering between machines that exchanged no information.
...
Query planners bet on cost, not certainty
A query planner chooses an execution path using estimated work. It does not run every candidate, time them, and keep the winner. PostgreSQL compares possible scans, joins, sorts, and other operations using statistics and a cost model. The chosen plan is therefore a prediction under current assumptions. Understanding a wrong prediction requires identifying which assumption failed, rather than treating a sequential scan or a nested loop as inherently suspicious.
...
Full table scans can win on small tables
An index trades storage and write work for a possible reduction in read work. A full scan can win when the table is small or a predicate selects much of it, but neither row count nor selectivity decides alone. Projection, ordering, caching, row width, and available access paths change the comparison. Start with the query’s actual result contract.
...