<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: phamilton</title><link>https://news.ycombinator.com/user?id=phamilton</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 28 Sep 2026 08:20:48 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=phamilton" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by phamilton in "Postgres LISTEN/NOTIFY actually scales"]]></title><description><![CDATA[
<p>Any graphql library would work. I like async-graphql except compilation is a bear due to all the macros. We wired LISTEN up to subscriptions using tokio mpmc channels. It was a great moment of "fearless concurrency", it all just worked.</p>
]]></description><pubDate>Sat, 25 Jul 2026 18:06:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=49050028</link><dc:creator>phamilton</dc:creator><comments>https://news.ycombinator.com/item?id=49050028</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49050028</guid></item><item><title><![CDATA[New comment by phamilton in "Postgres LISTEN/NOTIFY actually scales"]]></title><description><![CDATA[
<p>Just sharing a data point and experience.<p>We had a lot of success with LISTEN/NOTIFY when we paired it with a Rust graphql subscription broker. 10s of thousands of subscriptions, but only 3 or 4 LISTEN connections (one for each host). All changes would be pushed out to all hosts, who would each manage the actual user subscriptions and choose what to actually publish.<p>This worked super well. In general, moving from hundreds of Ruby or Node hosts to just a few Rust hosts just allows so many simplifications and things that "don't scale" to actually work quite well.</p>
]]></description><pubDate>Sat, 25 Jul 2026 04:36:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=49044567</link><dc:creator>phamilton</dc:creator><comments>https://news.ycombinator.com/item?id=49044567</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49044567</guid></item><item><title><![CDATA[New comment by phamilton in "Looking Ahead to Postgres 19"]]></title><description><![CDATA[
<p>Just a set of things too minor to move off of it but annoying enough to not want to start with it.<p>My list:<p>No `explain (analyze,buffers)`. Instant DDL has some warts (e.g. fk, metadata locks). Query planning bugs (actually... query planning in general is disappointing). Exiting the repl doesn't stop queries. Implicit type casting. Replication lag from large DDL (e.g. creating an index). Lack of two phase DDL (creating constraints NOT VALID and then VALIDATE later). Lack of extensions (e.g. pg_vector). No safe access to inspect buffer cache. AWS Aurora seems to only add shiny new things to Postgres. And more.<p>Again, none of this is quite enough to migrate off of it for an established system, but certainly enough to avoid it on a new project.</p>
]]></description><pubDate>Tue, 30 Jun 2026 15:42:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=48734346</link><dc:creator>phamilton</dc:creator><comments>https://news.ycombinator.com/item?id=48734346</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48734346</guid></item><item><title><![CDATA[New comment by phamilton in "The cost YAGNI was never about"]]></title><description><![CDATA[
<p>I've always known how to do zero downtime migrations. The question has always been "Is the engineering cost worth it?"<p>> It only makes backwards compatible deployments easier insofar you're able to do the overhead for splitting the change with less effort then before.<p>Yes. That reduces the cost of implementing them.<p>To be clear, I'm not talking about "Split my db migration and my code that depends on the new table". I'm talking about things like "Set up dual writes between an old database schema and a new database schema with a thorough test suite and do shadow reads against both datasets in prod to do differential testing". That's nontrivial engineering effort that would definitely warrant a discussion in the past. Today we just do it. It's fast and lowers risk.</p>
]]></description><pubDate>Mon, 29 Jun 2026 15:19:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=48720428</link><dc:creator>phamilton</dc:creator><comments>https://news.ycombinator.com/item?id=48720428</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48720428</guid></item><item><title><![CDATA[New comment by phamilton in "The cost YAGNI was never about"]]></title><description><![CDATA[
<p>> Old things are new again.<p>This is exactly how I've felt. I've read some many old papers and books and found great techniques that are even more applicable than ever.</p>
]]></description><pubDate>Mon, 29 Jun 2026 04:06:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=48714667</link><dc:creator>phamilton</dc:creator><comments>https://news.ycombinator.com/item?id=48714667</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48714667</guid></item><item><title><![CDATA[New comment by phamilton in "The cost YAGNI was never about"]]></title><description><![CDATA[
<p>> perfect refactor-proof testing contracts are still usually pretty hard to design<p>Not sure about hard, but definitely rare and we as an industry are under-skilled in these areas.<p>We have decades of research and tools for testing and verification of software. Property tests, dependent types, formal verification and proof, etc. The paths have been there, we have just collectively prioritized other things.<p>It requires an intentional shift in how we design and build. That shift is the harder part.</p>
]]></description><pubDate>Mon, 29 Jun 2026 04:05:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=48714658</link><dc:creator>phamilton</dc:creator><comments>https://news.ycombinator.com/item?id=48714658</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48714658</guid></item><item><title><![CDATA[New comment by phamilton in "The cost YAGNI was never about"]]></title><description><![CDATA[
<p>That's not at all what I meant.<p>I mean "We can't build X because our code structure makes that difficult" has an opportunity cost of the value of X.<p>I don't think the future of dev work is being a bureaucrat. I've done more rigorous engineering the last two years than I did previously. I'm more confident in the things I shop and they were built in a fraction of the time. It's a bright future for software engineering.</p>
]]></description><pubDate>Sun, 28 Jun 2026 20:10:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=48711109</link><dc:creator>phamilton</dc:creator><comments>https://news.ycombinator.com/item?id=48711109</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48711109</guid></item><item><title><![CDATA[New comment by phamilton in "The cost YAGNI was never about"]]></title><description><![CDATA[
<p>I'm not talking about time. I'm talking about safety. The amount of times I've seen "I refactored it, but I'm not confident enough to take it to prod" is significant. Being able to go faster but still not ship it is the huge opportunity cost.</p>
]]></description><pubDate>Sun, 28 Jun 2026 19:10:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=48710462</link><dc:creator>phamilton</dc:creator><comments>https://news.ycombinator.com/item?id=48710462</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48710462</guid></item><item><title><![CDATA[New comment by phamilton in "The cost YAGNI was never about"]]></title><description><![CDATA[
<p>The cost of restructuring has also gone down.<p>The cost of shoring up behavior with tests ahead of a restructure has gone down because of AI.<p>The cost of implementing a zero downtime migration has gone down because of AI.<p>A big part of the rust hype has been the low cost of restructuring within an application, even before AI. And now even more so.<p>The opportunity cost of not being able to safely restructure has gone up substantially.<p>This is the number one thing I optimize for now: the ability to quickly and safely change significant parts of the code and product.</p>
]]></description><pubDate>Sun, 28 Jun 2026 18:55:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=48710313</link><dc:creator>phamilton</dc:creator><comments>https://news.ycombinator.com/item?id=48710313</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48710313</guid></item><item><title><![CDATA[New comment by phamilton in "GLM-5.2 – How to Run Locally"]]></title><description><![CDATA[
<p>MTP on a MoE is hit or miss. If you're bottlenecked on memory, MTP can increase the number of active experts (like any batch processing would), which can eat away gains from it.</p>
]]></description><pubDate>Tue, 23 Jun 2026 14:19:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=48645382</link><dc:creator>phamilton</dc:creator><comments>https://news.ycombinator.com/item?id=48645382</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48645382</guid></item><item><title><![CDATA[New comment by phamilton in "GLM-5.2 – How to Run Locally"]]></title><description><![CDATA[
<p>Generation is basically just memory bandwidth math.<p>Each token has to read all the active weights. I think that's around 40B parameters active. At a 4-bit quant that's 20GB. With 100GB/s (replace with whatever your bandwidth is) and you get 5 tokens per second.</p>
]]></description><pubDate>Tue, 23 Jun 2026 00:19:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=48638445</link><dc:creator>phamilton</dc:creator><comments>https://news.ycombinator.com/item?id=48638445</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48638445</guid></item><item><title><![CDATA[New comment by phamilton in "SQLite is all you need for durable workflows"]]></title><description><![CDATA[
<p>My favorite lens on SQLite is that it is actually two things:<p>1. A robust durability implementation
2. A library of high performance data structure and algorithms<p>The fact this it's SQL is nice, but those two attributes are what make it great.<p>For example, I'm implement an in-process event log that I want to be durable. I started simple, but soon saw some edge cases and instead of playing whackamole I just swapped to using sqlite as an ordered kv store that gives me ACID.<p>Another example: ingesting multiple inter related datasets. Instead of a dozen hash  maps in memory, I load them up into sqlite (no persistence) and then slice and dice as I need to.<p>It's a super useful tool.</p>
]]></description><pubDate>Fri, 29 May 2026 19:43:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=48328238</link><dc:creator>phamilton</dc:creator><comments>https://news.ycombinator.com/item?id=48328238</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48328238</guid></item><item><title><![CDATA[New comment by phamilton in "How far behind are open models?"]]></title><description><![CDATA[
<p>I wonder how Sonnet vs Opus stacks up in a similar time-based comparison.<p>How far behind are open models compared to Sonnet?<p>It may be that the absolute SOTA models are way ahead of open models, but the gap in the mid tier really does feel like it's compressing. I'd love to see empirical data about it though.</p>
]]></description><pubDate>Fri, 29 May 2026 01:28:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=48317862</link><dc:creator>phamilton</dc:creator><comments>https://news.ycombinator.com/item?id=48317862</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48317862</guid></item><item><title><![CDATA[New comment by phamilton in "Local AI needs to be the norm"]]></title><description><![CDATA[
<p>I'm running opencode with qwen3.6-35b-a3b at a 3-bit quant. I also have qwen3.5-0.8b used for context compaction. I run with 128k context.<p>It's usable. I set it loose on the postgres codebase, told it to find or build a performance benchmark for the bloom filter index and then identify a performance improvement. It took a long time (overnight), but eventually presented an alternate hashing algorithm with experimental data on false positive rate, insertion speed and lookup speed. There wasn't a clear winner, but it was a reasonable find with rigorous data.</p>
]]></description><pubDate>Mon, 11 May 2026 03:29:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=48090777</link><dc:creator>phamilton</dc:creator><comments>https://news.ycombinator.com/item?id=48090777</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48090777</guid></item><item><title><![CDATA[New comment by phamilton in "Bun's experimental Rust rewrite hits 99.8% test compatibility on Linux x64 glibc"]]></title><description><![CDATA[
<p>I have some experience in this. Reach out (email in my bio) I would love to chat.</p>
]]></description><pubDate>Sat, 09 May 2026 23:09:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=48079188</link><dc:creator>phamilton</dc:creator><comments>https://news.ycombinator.com/item?id=48079188</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48079188</guid></item><item><title><![CDATA[New comment by phamilton in "For thirty years I programmed with Phish on, every day"]]></title><description><![CDATA[
<p>Long agent runs make such a difference. We focus a lot on new models and long context, but the bigger impact is in automatic verification.<p>I've been leaning in more on e2e test suites. They are slow, brittle and inefficient. But that's almost a feature. I can step away and come back an hour later, and use that time to think about bigger problems.</p>
]]></description><pubDate>Sun, 03 May 2026 16:52:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=47998843</link><dc:creator>phamilton</dc:creator><comments>https://news.ycombinator.com/item?id=47998843</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47998843</guid></item><item><title><![CDATA[New comment by phamilton in "Mistral Medium 3.5"]]></title><description><![CDATA[
<p>Gemma4, qwen3.6, deepseek v4, mimo, glm 5/5.1 all do MTP.</p>
]]></description><pubDate>Thu, 30 Apr 2026 01:40:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=47957068</link><dc:creator>phamilton</dc:creator><comments>https://news.ycombinator.com/item?id=47957068</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47957068</guid></item><item><title><![CDATA[New comment by phamilton in "Pgrx: Build Postgres Extensions with Rust"]]></title><description><![CDATA[
<p>From the same org as pgrx is <a href="https://github.com/pgcentralfoundation/plrust" rel="nofollow">https://github.com/pgcentralfoundation/plrust</a>, which _is_ supported on RDS (but not Aurora).<p>Since it's a procedural language, you can't do things like create a new index implementation or something else super low level. But there's still a lot you _can_ do. Like implement a custom comparator for a custom type and then use that type in a btree index.</p>
]]></description><pubDate>Tue, 28 Apr 2026 17:16:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=47937432</link><dc:creator>phamilton</dc:creator><comments>https://news.ycombinator.com/item?id=47937432</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47937432</guid></item><item><title><![CDATA[New comment by phamilton in "The RAM shortage could last years"]]></title><description><![CDATA[
<p>I've definitely done some vibe-coding with the explicit intent to reduce memory usage.</p>
]]></description><pubDate>Sun, 19 Apr 2026 23:51:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=47828803</link><dc:creator>phamilton</dc:creator><comments>https://news.ycombinator.com/item?id=47828803</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47828803</guid></item><item><title><![CDATA[New comment by phamilton in "Shares in shoe brand Allbirds rise 580% after it pivots from footwear to AI"]]></title><description><![CDATA[
<p>The announcement was that it secured $50M in financing, sold the shoes business for $39M leaving $20M or so in cash.<p>An empty public company with $70M in financing to enter a hyped market was valued at $115M. The stated intent is to spend their money on a CapEx item with a fairly high demand and resale value (GPUs) in a sector that has a pretty simple playbook.<p>The 580% bump is a fun headline, but "startup secures $50M in funding at a 5.8x valuation bump" isn't unheard of.<p>Have I invested? No. Is this a ridiculously funny narrative and story? Absolutely. Is it the most ridiculous valuation I've seen? No.</p>
]]></description><pubDate>Sat, 18 Apr 2026 15:31:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=47816680</link><dc:creator>phamilton</dc:creator><comments>https://news.ycombinator.com/item?id=47816680</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47816680</guid></item></channel></rss>