Warehouse route optimization
A three-part breakdown of a barcode-driven warehouse picking system: how scans became pick routes, why lookup tables beat online pathfinding, and how Excel imports stayed safe against a live ERP database.
A three-part breakdown of a barcode-driven warehouse picking system: how scans became pick routes, why lookup tables beat online pathfinding, and how Excel imports stayed safe against a live ERP database.
Keep GitHub credentials off a remote machine while letting an AI agent copy a PR body into your local pasteboard.
I went looking for a seeded PRNG in TypeScript and found splitmix32, a 32-bit pseudorandom number generator so elegant it made me want to understand every single bit.
The route optimizer benchmark track: JPS was a reasonable pathfinding choice, but precomputed Dijkstra tables, SlotId compression, and an exact ILP referee fit the warehouse better.
How a barcode scan became a warehouse route: order lookup, slot choice, shelf ergonomics, and the graph hidden under a pick list.
From bars and spaces to keystrokes in your input field. How UPC-A barcodes encode data, how scanners decode them, and why your barcode reader acts like a keyboard.
Prisma's WASM query compiler failed in a Next.js 15 app because webpack transformed its `node:module` import.
Stochastic Greedy replaces greedy's full scan with random subsampling, reducing runtime from O(nk) to O(n ln(1/ε)) while losing only an additive ε in the approximation guarantee. This post covers the algorithm, its proof, and practical guidance.
Lazy Greedy keeps the greedy algorithm's (1 - 1/e) guarantee while skipping most of its oracle calls. Submodularity makes stale marginal gains sound upper bounds, so a max-heap of them is enough to certify each pick.
The greedy algorithm achieves a (1 - 1/e) approximation for monotone submodular maximization, provably the best any efficient algorithm can do. This post covers the algorithm, its proof, and when greedy fails.
An introduction to submodular functions, the mathematical framework behind diminishing returns: set functions, marginal gains, and applications from sensor placement to influence maximization.
A Gradle-based solution using afterEvaluate to permanently fix SDK Build Tools version mismatches across React Native Android dependencies.
How robotics, a failed startup, mathematical optimization, and cross-language developer tooling led me to infrastructure for AI agents.
FlashSampling fuses exact categorical sampling into the LM head. Its authors report zero logits materialization in HBM and up to 10% faster decoding.
Choosing ten distinct winners is not one random choice repeated ten times. Every name removed from the bowl changes the next draw.
A classifier can print 0.93 without being correct 93% of the time. Softmax normalizes logits. Calibration is a separate empirical claim.
The code cited the right weighted-sampling paper and kept the wrong end of its priority queue. The mismatch is more useful than a clean success story.
The network produces logits. Temperature, truncation, and a random draw turn those logits into the token users see.
With 1,000 expected hits, a 20% miss has probability at most 0.00000324. Concentration turns 'probably close' into a number.
After 10,000 events, every event has a 1% chance of occupying a 100-slot buffer. After a billion, the buffer is still fair and still holds 100.
A geometric and probabilistic refresher on the matrix calculus that actually matters in deep learning: gradients, Jacobians, affine maps, chain rules, and the softmax-cross-entropy shortcut.
A Bloom filter answers set membership in about 1.25 bytes per key. HyperLogLog, Count-Min, and MinHash make related trades for counting, frequency, and similarity.
The accept rule min(1, p/q) plus a residual draw keeps every emitted token distributed exactly as the target model would have chosen it, whatever the draft looks like, for 2.6x to 3.4x faster decoding on T5-XXL.
`Math.floor` and `Math.round` differ by one word. For four choices, one is uniform. The other makes the middle values twice as likely.
Knotkit can sample a finite list in one call. A VAE pays during training for a fast approximation. A Markov chain pays during inference for asymptotically exact samples.
Weights of 1, 2, and 7 turn into odds of 10%, 20%, and 70%. Chance remains, but the code finally admits that the options differ.
Ask PostgreSQL for 100 random rows and it may still score every candidate. `LIMIT 100` shrinks the result, not the work needed to choose it.
Karger's min-cut algorithm succeeds on one run with probability at least 2/(n(n-1)), and the same argument proves a graph has at most n(n-1)/2 minimum cuts. Freivalds' check and Miller-Rabin trade a proof for the same kind of bounded failure probability.
The data pipeline behind the warehouse system: spreadsheet exports, safe imports, gRPC streaming, typed validation errors, staging tables, and an atomic swap against the ERP database.
My preferences for communication, technical work, feedback, meetings, and contract engagements.