<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Alberto Schiabel</title><description>Software engineer building developer tools and AI integrations.</description><link>https://jkomyno.dev/</link><language>en</language><lastBuildDate>Mon, 13 Jul 2026 00:00:00 GMT</lastBuildDate><item><title>OSC 52: how to use `pbcopy` over SSH</title><link>https://jkomyno.dev/writing/make-pbcopy-work-over-ssh-with-osc-52/</link><guid isPermaLink="true">https://jkomyno.dev/writing/make-pbcopy-work-over-ssh-with-osc-52/</guid><description>Keep GitHub credentials off a remote machine while letting an AI agent copy a PR body into your local pasteboard.</description><pubDate>Mon, 13 Jul 2026 00:00:00 GMT</pubDate><atom:updated>2026-07-13T00:00:00.000Z</atom:updated><category>Dev tooling</category></item><item><title>Why jump point search lost to a lookup table</title><link>https://jkomyno.dev/writing/why-jump-point-search-lost-to-a-lookup-table/</link><guid isPermaLink="true">https://jkomyno.dev/writing/why-jump-point-search-lost-to-a-lookup-table/</guid><description>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.</description><pubDate>Thu, 26 Feb 2026 00:00:00 GMT</pubDate><atom:updated>2026-07-05T00:00:00.000Z</atom:updated><category>Optimization</category><category>Algorithms</category><category>Rust</category></item><item><title>Splitmix32: thirteen lines of beautiful randomness</title><link>https://jkomyno.dev/writing/splitmix32-beautiful-randomness/</link><guid isPermaLink="true">https://jkomyno.dev/writing/splitmix32-beautiful-randomness/</guid><description>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.</description><pubDate>Fri, 27 Feb 2026 00:00:00 GMT</pubDate><atom:updated>2026-02-27T00:00:00.000Z</atom:updated><category>Algorithms</category><category>TypeScript</category></item><item><title>A pick list is not a route</title><link>https://jkomyno.dev/writing/a-warehouse-router-starts-with-a-barcode-scan/</link><guid isPermaLink="true">https://jkomyno.dev/writing/a-warehouse-router-starts-with-a-barcode-scan/</guid><description>How a barcode scan became a warehouse route: order lookup, slot choice, shelf ergonomics, and the graph hidden under a pick list.</description><pubDate>Wed, 25 Feb 2026 00:00:00 GMT</pubDate><atom:updated>2026-02-25T00:00:00.000Z</atom:updated><category>Optimization</category></item><item><title>Barcode scanners are keyboards with extra steps</title><link>https://jkomyno.dev/writing/barcode-scanners-are-keyboards-with-extra-steps/</link><guid isPermaLink="true">https://jkomyno.dev/writing/barcode-scanners-are-keyboards-with-extra-steps/</guid><description>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.</description><pubDate>Tue, 24 Feb 2026 00:00:00 GMT</pubDate><atom:updated>2026-02-24T00:00:00.000Z</atom:updated><category>Systems engineering</category></item><item><title>Why Prisma&apos;s `createRequire` failed under webpack</title><link>https://jkomyno.dev/writing/investigating-createrequire-is-not-a-function/</link><guid isPermaLink="true">https://jkomyno.dev/writing/investigating-createrequire-is-not-a-function/</guid><description>Prisma&apos;s WASM query compiler failed in a Next.js 15 app because webpack transformed its `node:module` import.</description><pubDate>Fri, 20 Jun 2025 00:00:00 GMT</pubDate><atom:updated>2025-06-20T00:00:00.000Z</atom:updated><category>Dev tooling</category><category>WebAssembly</category></item><item><title>Stochastic greedy: scaling submodular maximization to massive datasets</title><link>https://jkomyno.dev/writing/stochastic-greedy-for-submodular-maximization/</link><guid isPermaLink="true">https://jkomyno.dev/writing/stochastic-greedy-for-submodular-maximization/</guid><description>Stochastic Greedy replaces greedy&apos;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.</description><pubDate>Tue, 15 Feb 2022 00:00:00 GMT</pubDate><atom:updated>2022-02-15T00:00:00.000Z</atom:updated><category>Optimization</category><category>Algorithms</category></item><item><title>Lazy greedy: speeding up submodular maximization for free</title><link>https://jkomyno.dev/writing/lazy-greedy-for-submodular-maximization/</link><guid isPermaLink="true">https://jkomyno.dev/writing/lazy-greedy-for-submodular-maximization/</guid><description>Lazy Greedy keeps the greedy algorithm&apos;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.</description><pubDate>Fri, 11 Feb 2022 00:00:00 GMT</pubDate><atom:updated>2022-02-11T00:00:00.000Z</atom:updated><category>Optimization</category><category>Algorithms</category></item><item><title>The greedy algorithm for submodular maximization</title><link>https://jkomyno.dev/writing/greedy-algorithm-for-submodular-maximization/</link><guid isPermaLink="true">https://jkomyno.dev/writing/greedy-algorithm-for-submodular-maximization/</guid><description>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.</description><pubDate>Tue, 08 Feb 2022 00:00:00 GMT</pubDate><atom:updated>2022-02-08T00:00:00.000Z</atom:updated><category>Optimization</category><category>Algorithms</category></item><item><title>An introduction to submodularity</title><link>https://jkomyno.dev/writing/what-is-submodularity/</link><guid isPermaLink="true">https://jkomyno.dev/writing/what-is-submodularity/</guid><description>An introduction to submodular functions, the mathematical framework behind diminishing returns: set functions, marginal gains, and applications from sensor placement to influence maximization.</description><pubDate>Tue, 01 Feb 2022 00:00:00 GMT</pubDate><atom:updated>2022-02-01T00:00:00.000Z</atom:updated><category>Optimization</category><category>Algorithms</category></item><item><title>Fixing &quot;SDK Build Tools is Too Low&quot; in React Native</title><link>https://jkomyno.dev/writing/react-native-fix-build-tools-too-low/</link><guid isPermaLink="true">https://jkomyno.dev/writing/react-native-fix-build-tools-too-low/</guid><description>A Gradle-based solution using afterEvaluate to permanently fix SDK Build Tools version mismatches across React Native Android dependencies.</description><pubDate>Thu, 14 Sep 2017 00:00:00 GMT</pubDate><atom:updated>2017-09-14T00:00:00.000Z</atom:updated><category>Dev tooling</category></item></channel></rss>