<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: hbrundage</title><link>https://news.ycombinator.com/user?id=hbrundage</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 08 May 2026 17:29:05 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=hbrundage" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by hbrundage in "Graphite is joining Cursor"]]></title><description><![CDATA[
<p>I think your definition of heavy is different than lots of other folks I know -- I'm at $1500 / mo and am actively holding back.</p>
]]></description><pubDate>Sat, 20 Dec 2025 02:26:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=46333166</link><dc:creator>hbrundage</dc:creator><comments>https://news.ycombinator.com/item?id=46333166</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46333166</guid></item><item><title><![CDATA[New comment by hbrundage in "SQL needed structure"]]></title><description><![CDATA[
<p>I agree and would take it one step further — the structure of the joins is something that should most often come from the schema, not the query. In the same way that the attributes of an entity should be modelled out ahead of time, the relationships between the entities should be as well, and that yields more productive querying and better performance.<p>We built a GraphQL / SQL hybrid expression language that does just this here: <a href="https://docs.gadget.dev/guides/data-access/gelly#gelly" rel="nofollow">https://docs.gadget.dev/guides/data-access/gelly#gelly</a> , curious what yall think.</p>
]]></description><pubDate>Fri, 05 Sep 2025 10:39:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=45137092</link><dc:creator>hbrundage</dc:creator><comments>https://news.ycombinator.com/item?id=45137092</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45137092</guid></item><item><title><![CDATA[Syncing as fast as Shopify will let you with TCP-inspired flow control]]></title><description><![CDATA[
<p>Article URL: <a href="https://gadget.dev/blog/saturating-shopify-gadgets-shopify-sync-strategy">https://gadget.dev/blog/saturating-shopify-gadgets-shopify-sync-strategy</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=44904456">https://news.ycombinator.com/item?id=44904456</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 14 Aug 2025 19:17:31 +0000</pubDate><link>https://gadget.dev/blog/saturating-shopify-gadgets-shopify-sync-strategy</link><dc:creator>hbrundage</dc:creator><comments>https://news.ycombinator.com/item?id=44904456</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44904456</guid></item><item><title><![CDATA[New comment by hbrundage in "[dead]"]]></title><description><![CDATA[
<p>This is the content from the node docs reproduced without credit: <a href="https://nodejs.org/en/learn/asynchronous-work/dont-block-the-event-loop" rel="nofollow">https://nodejs.org/en/learn/asynchronous-work/dont-block-the...</a><p>Boo!</p>
]]></description><pubDate>Sun, 08 Dec 2024 18:11:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=42358814</link><dc:creator>hbrundage</dc:creator><comments>https://news.ycombinator.com/item?id=42358814</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42358814</guid></item><item><title><![CDATA[New comment by hbrundage in "Beastie Boys dismantled their gold record plaque"]]></title><description><![CDATA[
<p>The move is now to sample it and make new music!</p>
]]></description><pubDate>Thu, 22 Aug 2024 13:58:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=41320338</link><dc:creator>hbrundage</dc:creator><comments>https://news.ycombinator.com/item?id=41320338</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41320338</guid></item><item><title><![CDATA[New comment by hbrundage in "Hermes 3: The First Fine-Tuned Llama 3.1 405B Model"]]></title><description><![CDATA[
<p>Isn't 63% => 54% regression on MMLU-Pro a huge issue? They said that it excels at advanced reasoning but that seems like a big drawback there.</p>
]]></description><pubDate>Thu, 15 Aug 2024 21:39:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=41260648</link><dc:creator>hbrundage</dc:creator><comments>https://news.ycombinator.com/item?id=41260648</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41260648</guid></item><item><title><![CDATA[New comment by hbrundage in "Background job queues and priorities may be the wrong path"]]></title><description><![CDATA[
<p>Makes sense!<p>I was just talking with a Temporal solutions engineer this week and this metric is their recommended one for autoscaling on. Instead of autoscaling on queue depth, you scale on queue latency! Specifically for them they split up the time from enqueue to start, and then the time from start to done, and you scale on the former, not the total ("ScheduleToStart" in their terms).</p>
]]></description><pubDate>Sun, 15 Oct 2023 18:06:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=37891919</link><dc:creator>hbrundage</dc:creator><comments>https://news.ycombinator.com/item?id=37891919</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37891919</guid></item><item><title><![CDATA[New comment by hbrundage in "Background job queues and priorities may be the wrong path"]]></title><description><![CDATA[
<p>Its interesting to see how the Rails world still thinks in terms of the number of processes listening to a queue, instead of thinking in the cloud-native, elastic, serverless terms.<p>There's always an autoscaling delay, but Rails itself (and the community) don't seem to fit into the serverless paradigm well such that these questions around how to design your queues come up.<p>I think a lot of Lambda developers or Cloud Run developers would instead say "well my max instances is set to 500, I am pretty sure I'm going to break something else before I hit that", you know? Especially when using the cloud's nice integrations between their queues and their event-driven serverless products its super easy to get exactly as much compute as you need to keep your latency really low.</p>
]]></description><pubDate>Sun, 15 Oct 2023 18:04:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=37891911</link><dc:creator>hbrundage</dc:creator><comments>https://news.ycombinator.com/item?id=37891911</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37891911</guid></item><item><title><![CDATA[New comment by hbrundage in "Super Colliding Nix Stores: Nix Flakes for Millions of Developers"]]></title><description><![CDATA[
<p>Dang this is cool! I get why replit went so heavy on nix but I also feel like it must have a cost for them — nix is hard to learn, especially for folks new to development which I know makes up a lot of replits customer base.<p>We built a solution to the same problem with a similar approach[1], but that just snapshots any old files instead of doing nix derivations. Nix couples the build process to the content-addressability of the output, which works great if you want to put all the effort in to deterministic builds. We just read files like git does which works great for non-deterministic processes like npm install (tragically).<p>I like the idea of the Big Disk style of attaching a content addressable cache, but in our experiments we still found the network latency to the attached disk too high when reading file by file, like when booting a node app, so we’re caching a much smaller amount on a local SSD for each prod server. Maybe replit isn’t as sensitive to read perf from the cache layer, or they have fancy local per-node read through caching within the overlay setup? Regardless, cool!!<p>[1]: <a href="https://github.com/gadget-inc/dateilager">https://github.com/gadget-inc/dateilager</a></p>
]]></description><pubDate>Fri, 26 May 2023 01:20:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=36078609</link><dc:creator>hbrundage</dc:creator><comments>https://news.ycombinator.com/item?id=36078609</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36078609</guid></item><item><title><![CDATA[New comment by hbrundage in "Blocking Kiwifarms"]]></title><description><![CDATA[
<p>Practical dichotomy — that’s why this thread exists. You either platform it or you don’t, and you’re either legislated to do so or not. What middle ground do you see that allows this degree of free speech without platforming hate?</p>
]]></description><pubDate>Sat, 03 Sep 2022 22:48:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=32707031</link><dc:creator>hbrundage</dc:creator><comments>https://news.ycombinator.com/item?id=32707031</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32707031</guid></item><item><title><![CDATA[New comment by hbrundage in "Blocking Kiwifarms"]]></title><description><![CDATA[
<p>It’s a fundamental issue though — there’s no “figuring it out” that a government can do that won’t either censor or facilitate. 25 years has been long enough to find tactical policy changes that make it easier, but there aren’t any, which is why nothing has happened. The choice we have to make is either de-shrine free speech above all else or entrench hatred, and it’s bogus that we haven’t picked the thing that doesn’t kill people yet.</p>
]]></description><pubDate>Sat, 03 Sep 2022 22:38:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=32706892</link><dc:creator>hbrundage</dc:creator><comments>https://news.ycombinator.com/item?id=32706892</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32706892</guid></item><item><title><![CDATA[New comment by hbrundage in "Ask HN: What Are You Working On? (August 2022)"]]></title><description><![CDATA[
<p>A new paradigm for building web apps: a framework integrated with a runtime integrated with an IDE! <a href="https://gadget.dev" rel="nofollow">https://gadget.dev</a><p>We think that so much of software development is still the same stuff repeated over and over: auth, hosting, CRUD, search, tables, forms, etc etc. Each app always has some juicy special something about it, but that core is wrapped in layers of stuff you don’t need to redo every time. Our mission is to make the first and only lines of code you write super pertinent to the specific problem you’re solving.<p>We’re starting with Shopify apps cause we can give developers a one click, fully managed, code-extensible API integration which is a lot of work with the Shopify API otherwise. Would love to know what y’all think!</p>
]]></description><pubDate>Tue, 02 Aug 2022 01:24:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=32314196</link><dc:creator>hbrundage</dc:creator><comments>https://news.ycombinator.com/item?id=32314196</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32314196</guid></item><item><title><![CDATA[New comment by hbrundage in "ReadySet Core: next-generation SQL caching, freely available"]]></title><description><![CDATA[
<p>Postgres materialized views have to be manually refreshed on a schedule, and so are always out of date, whereas ReadySet keeps your results up to date automatically as the input changes. For PG materialized views, the compute required proportional to the size of the input data, and is paid every time, whereas with ReadySet the computation is incremental, so it's proportional to the size of the change in the data over time.<p>And finally, ReadySet's (Noria's) big innovation is that the result set can be only partial, storing only the elements of the result set (and underlying data flow graph) that are frequently accessed, instead of the whole result set like a materialized view would.</p>
]]></description><pubDate>Thu, 16 Jun 2022 21:38:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=31771315</link><dc:creator>hbrundage</dc:creator><comments>https://news.ycombinator.com/item?id=31771315</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31771315</guid></item><item><title><![CDATA[New comment by hbrundage in "Warp: Lightweight Multi-Key Transactions for Key-Value Stores"]]></title><description><![CDATA[
<p>This system doesn’t support interactive transactions does it? In that the whole read / write set needs to be known up front before a transaction can start being processed? I know that systems like FoundationDB and Calvin/Fauna work similarly and get incredible performance because sequencing is so much easier / lock free. I think those two systems couldn’t be adapted for interactive transactions really (without client side retries) but maybe warp could be which is cool!</p>
]]></description><pubDate>Sun, 29 May 2022 21:50:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=31553227</link><dc:creator>hbrundage</dc:creator><comments>https://news.ycombinator.com/item?id=31553227</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31553227</guid></item><item><title><![CDATA[New comment by hbrundage in "Happy 10th Birthday, Sidekiq"]]></title><description><![CDATA[
<p>I mean, it’s also a bug with Resque? Resque predates the introduction of the new command in Redis and hasn’t really been maintained since. “My software is as buggy as 10 year old software unless you pay” seems pretty sketchy to me!</p>
]]></description><pubDate>Tue, 05 Apr 2022 16:36:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=30921168</link><dc:creator>hbrundage</dc:creator><comments>https://news.ycombinator.com/item?id=30921168</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30921168</guid></item><item><title><![CDATA[New comment by hbrundage in "Happy 10th Birthday, Sidekiq"]]></title><description><![CDATA[
<p>So glad that Mike has set up a sustainable model for building rock solid infrastructure, however:<p>I can’t stand that you need to pay for a pro license to avoid completely avoidable data loss. Sidekiq doesn’t use RPOPLPUSH for moving jobs around until you start paying — doing the exact same thing with a different, more correct command. No new infrastructure or configuration is needed. To me this feels sketchy and like a betrayal of the pro-version business model — willfully introducing data loss in order to drive upgrades instead of just removing capabilities or features.</p>
]]></description><pubDate>Tue, 05 Apr 2022 13:02:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=30918415</link><dc:creator>hbrundage</dc:creator><comments>https://news.ycombinator.com/item?id=30918415</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30918415</guid></item><item><title><![CDATA[Clerks versus Analysts]]></title><description><![CDATA[
<p>Article URL: <a href="https://gadget.dev/articles/clerks-versus-analysts">https://gadget.dev/articles/clerks-versus-analysts</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=27383279">https://news.ycombinator.com/item?id=27383279</a></p>
<p>Points: 7</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 03 Jun 2021 15:57:24 +0000</pubDate><link>https://gadget.dev/articles/clerks-versus-analysts</link><dc:creator>hbrundage</dc:creator><comments>https://news.ycombinator.com/item?id=27383279</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27383279</guid></item><item><title><![CDATA[New comment by hbrundage in "Chrome zero-day released on GitHub – fixed on V8 but still works on latest"]]></title><description><![CDATA[
<p><a href="https://therecord.media/security-researcher-drops-chrome-and-edge-zero-day-on-twitter/" rel="nofollow">https://therecord.media/security-researcher-drops-chrome-and...</a> says this isn't a fully weaponizable exploit because you still need to escape the Chrome sandbox after using this. But, the researcher shows a screenshot of having started calc.exe which seems like something that'd happen outside the sandbox?</p>
]]></description><pubDate>Tue, 13 Apr 2021 01:30:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=26787218</link><dc:creator>hbrundage</dc:creator><comments>https://news.ycombinator.com/item?id=26787218</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26787218</guid></item><item><title><![CDATA[PGM Indexes: Learned indexes that match B-tree performance with 83x less space]]></title><description><![CDATA[
<p>Article URL: <a href="https://pgm.di.unipi.it/">https://pgm.di.unipi.it/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=25899286">https://news.ycombinator.com/item?id=25899286</a></p>
<p>Points: 583</p>
<p># Comments: 123</p>
]]></description><pubDate>Mon, 25 Jan 2021 04:45:56 +0000</pubDate><link>https://pgm.di.unipi.it/</link><dc:creator>hbrundage</dc:creator><comments>https://news.ycombinator.com/item?id=25899286</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25899286</guid></item><item><title><![CDATA[New comment by hbrundage in "Against Essential and Accidental Complexity"]]></title><description><![CDATA[
<p>A missing colour in the discussions around complexity today is the ever growing ambition for the problems we're all trying to solve. My grand unified profoundly unserious theory is that we're always going to complain about accidental complexity because we will keep discovering new reams of it by extending what we're trying to do out into the unknown parts.<p>If we continued to play in just the known parts of the problem space, we'd see it melt away further and further into Brooks' model of the world. Instead, we built distributed systems, we work in absolutely giant teams, we deploy to the strange heterogeneous runtime we call the web,  etc etc, and all of that generates new complexities to abstract away before we get back to just the essential stuff.</p>
]]></description><pubDate>Tue, 29 Dec 2020 14:19:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=25569921</link><dc:creator>hbrundage</dc:creator><comments>https://news.ycombinator.com/item?id=25569921</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25569921</guid></item></channel></rss>