<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: grogers</title><link>https://news.ycombinator.com/user?id=grogers</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 22 Apr 2026 03:12:13 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=grogers" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by grogers in "Anthropic takes $5B from Amazon and pledges $100B in cloud spending in return"]]></title><description><![CDATA[
<p>It's interesting that you mention Facebook. They have a ton of their own data centers and yet they are now also spending tens of billions on cloud. It's not that easy to build hundreds of data centers on short notice.</p>
]]></description><pubDate>Tue, 21 Apr 2026 19:54:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=47853694</link><dc:creator>grogers</dc:creator><comments>https://news.ycombinator.com/item?id=47853694</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47853694</guid></item><item><title><![CDATA[New comment by grogers in "SpaceX files to go public"]]></title><description><![CDATA[
<p>They all smear the purchases and sales from index changes, but I don't think they publish on what timescale. Most funds try to minimize tracking error. There are funds that take this to a different level. When a stock is added to the big indexes, it tends to do poorly over the next year, and on the flip side when a stock is removed it tends to perform well. Dimensional funds have automatic rules to take advantage of this type of thing. There are other companies that have funds of this style, but overall they are much less widely used than the big index funds from vanguard, blackrock, state street, etc.</p>
]]></description><pubDate>Wed, 01 Apr 2026 23:04:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=47607720</link><dc:creator>grogers</dc:creator><comments>https://news.ycombinator.com/item?id=47607720</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47607720</guid></item><item><title><![CDATA[New comment by grogers in "We rewrote JSONata with AI in a day, saved $500k/year"]]></title><description><![CDATA[
<p>Well they also shadowed production traffic and fixed some bugs that were causing mismatching results. Not saying that stuff can't still slip through, but it's a good way to evaluate it against real data in a way you can't from just test cases alone</p>
]]></description><pubDate>Fri, 27 Mar 2026 03:16:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=47538761</link><dc:creator>grogers</dc:creator><comments>https://news.ycombinator.com/item?id=47538761</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47538761</guid></item><item><title><![CDATA[New comment by grogers in "Consensus Board Game"]]></title><description><![CDATA[
<p>In this incarnation, the only one who "wants" red to win is the first column. Every other column will choose whatever color it wants to win, subject to the rules of the game.<p>It's a 2 step process:<p>1. <i>Prepare</i> - Collect a majority of rows such that each of them promises not to accept any color sent by columns to the left of the proposing column. Any colors which were already accepted are sent in reply, along with the column they were accepted in (if different colors were accepted, only the rightmost column for a given row matters). The color to be propagated by the proposer is that with the rightmost column number (or if none were accepted by that particular majority, anything may be selected)<p>2. <i>Accept</i> - for every row, set the color to the one chosen in step one for the proposing column, subject to the promises made in step 1.<p>In this case, it's not shown well in the diagram, but by having a majority of rows promise for column 2, column 1 would already have a broken majority. Even if column 4 wanted red, since it received some already accepted colors, it <i>has</i> to choose from one of them based on the rightmost column (blue in this case)</p>
]]></description><pubDate>Fri, 20 Mar 2026 00:20:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=47448506</link><dc:creator>grogers</dc:creator><comments>https://news.ycombinator.com/item?id=47448506</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47448506</guid></item><item><title><![CDATA[New comment by grogers in "Consensus Board Game"]]></title><description><![CDATA[
<p>The final diagram is a bit confusing, so it's worth pointing out one additional thing. It appears that R5 could vote green in column 2 and have green be agreed by a majority, even though in column 4, we are committing to blue as the value. However, as part of allowing blue to be selected in column 3, R5 must have already promised NOT to accept green in column 2. A more complete final diagram would show X's in all the appropriate cells.</p>
]]></description><pubDate>Thu, 19 Mar 2026 23:25:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=47447902</link><dc:creator>grogers</dc:creator><comments>https://news.ycombinator.com/item?id=47447902</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47447902</guid></item><item><title><![CDATA[New comment by grogers in "Rob Pike’s Rules of Programming (1989)"]]></title><description><![CDATA[
<p>Well it is hedged with the word "fancy". I think a charitable reading is to understand the problem domain. If N is always small then trying to minimize the big-O is just showing off and likely counterproductive in many ways. If N is large, it might be a requirement.<p>Most people don't need FFT algorithm for multiplying large numbers, Karatsuba's algorithm is fine. But in some domains the difference does matter.<p>Personally I usually see the opposite effect - people first reach for a too-naive approach and implement some O(n^2) algorithm where it wouldn't have even been more complex to implement something O(n) or O(n log n). And n is almost always small so it works fine, until it blows up spectacularly.</p>
]]></description><pubDate>Wed, 18 Mar 2026 18:35:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=47429596</link><dc:creator>grogers</dc:creator><comments>https://news.ycombinator.com/item?id=47429596</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47429596</guid></item><item><title><![CDATA[New comment by grogers in "Unlocking Python's Cores:Energy Implications of Removing the GIL"]]></title><description><![CDATA[
<p>Even treating the process as read only after forking is potentially fraught. What if a background thread is mutating some data structure? When it forks the data structure might be internally inconsistent because the work to finish the mutation might not be completed. Imagine there are locks held by various threads when it dies, trying to lock those in the child might deadlock or even worse. There's tons of these types of gotchas.</p>
]]></description><pubDate>Mon, 09 Mar 2026 22:57:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=47316902</link><dc:creator>grogers</dc:creator><comments>https://news.ycombinator.com/item?id=47316902</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47316902</guid></item><item><title><![CDATA[New comment by grogers in "AI Added 'Basically Zero' to US Economic Growth Last Year, Goldman Sachs Says"]]></title><description><![CDATA[
<p>It's not your main point, but I can't help but point out that artificial diamonds ARE diamonds. Cubic zirconia is a different mineral. Usually the distinction is "natural" vs "lab grown" diamonds.<p>When computers have super-human level intelligence, we might be making similar distinctions. Intelligence IS intelligence, whether it's from a machine or an organism. LLMs might not get us there but something machine will eventually.</p>
]]></description><pubDate>Tue, 24 Feb 2026 01:36:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=47131745</link><dc:creator>grogers</dc:creator><comments>https://news.ycombinator.com/item?id=47131745</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47131745</guid></item><item><title><![CDATA[New comment by grogers in "Pope tells priests to use their brains, not AI, to write homilies"]]></title><description><![CDATA[
<p>Take a homily written by someone 2000 miles away and it will likely feel just as relevant to me. Most humans deal with similar issues.</p>
]]></description><pubDate>Mon, 23 Feb 2026 18:05:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=47126141</link><dc:creator>grogers</dc:creator><comments>https://news.ycombinator.com/item?id=47126141</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47126141</guid></item><item><title><![CDATA[New comment by grogers in "C++ std::move doesn't move anything: A deep dive into Value Categories"]]></title><description><![CDATA[
<p>If I'm not mistaken, all the pitfalls in the article have clang-tidy lints to catch</p>
]]></description><pubDate>Sun, 11 Jan 2026 18:11:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=46578019</link><dc:creator>grogers</dc:creator><comments>https://news.ycombinator.com/item?id=46578019</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46578019</guid></item><item><title><![CDATA[New comment by grogers in "C++ std::move doesn't move anything: A deep dive into Value Categories"]]></title><description><![CDATA[
<p>> You must implement a move constructor or a move assignment operator in order for std::move to do anything<p>Bit of a nitpick, but there are sometimes other functions with overloads for rvalue references to move the contents out - think something like std::optional's `value() &&`. And you don't necessarily need to implement those move constructor/assignment functions yourself, typically the compiler generated functions are what you want (i.e. the rule of 5 <i>or 0</i>)</p>
]]></description><pubDate>Sun, 11 Jan 2026 18:09:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=46577994</link><dc:creator>grogers</dc:creator><comments>https://news.ycombinator.com/item?id=46577994</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46577994</guid></item><item><title><![CDATA[New comment by grogers in "LeCun calls Alex Wang inexperienced, predicts more Meta AI employee departure"]]></title><description><![CDATA[
<p>> so clearly an LLM that does math well only does so by ignoring the majority of the space it is trained on<p>There are probably good reasons why LLMs are not the "ultimate solution", but this argument seems wrong. Humans have to ignore the majority of their "training dataset" in tons of situations, and we seem to do it just fine.</p>
]]></description><pubDate>Sat, 03 Jan 2026 03:39:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=46472565</link><dc:creator>grogers</dc:creator><comments>https://news.ycombinator.com/item?id=46472565</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46472565</guid></item><item><title><![CDATA[New comment by grogers in "What Does a Database for SSDs Look Like?"]]></title><description><![CDATA[
<p>An often underlooked aspect of SSDs for databases is write endurance. With the wrong workload random writes can burn through your drive in months instead of years. This is the hidden gem of LSM over b-tree - low write amplification, not just better write performance. Maybe doesn't really matter on AWS since you can just pitch your instance once you've trashed the SSDs</p>
]]></description><pubDate>Sat, 20 Dec 2025 23:16:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=46340618</link><dc:creator>grogers</dc:creator><comments>https://news.ycombinator.com/item?id=46340618</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46340618</guid></item><item><title><![CDATA[New comment by grogers in "Zebra-Llama – Towards efficient hybrid models"]]></title><description><![CDATA[
<p>LLM only fairly recently underwent a step change from "maybe someday" to actually useful now. That opened many new doors that people didn't even think were possible. Getting incrementally better at something they are already pretty good at isn't that impressive. But getting drastically better at something they are currently bad at, <i>will</i> drive new models and new research.</p>
]]></description><pubDate>Sun, 07 Dec 2025 13:08:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=46181423</link><dc:creator>grogers</dc:creator><comments>https://news.ycombinator.com/item?id=46181423</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46181423</guid></item><item><title><![CDATA[New comment by grogers in "Advent of Compiler Optimisations 2025"]]></title><description><![CDATA[
<p>Yeah, -O3 generally performs well in small benchmarks because of aggressive loop unrolling and inlining. But in large programs that face icache pressure, it can end up being slower. Sometimes -Os is even better for the same reason, but -O2 is usually a better default.</p>
]]></description><pubDate>Tue, 02 Dec 2025 15:30:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=46122192</link><dc:creator>grogers</dc:creator><comments>https://news.ycombinator.com/item?id=46122192</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46122192</guid></item><item><title><![CDATA[New comment by grogers in "Constant-time support coming to LLVM: Protecting cryptographic code"]]></title><description><![CDATA[
<p>It'd be very hard for the compiler to enforce constant-time execution for generic code. As an example, if you wrote the naive password checking where the first byte that doesn't match returns false, is that a compiler error if it can't transform it into a constant time version?</p>
]]></description><pubDate>Wed, 26 Nov 2025 13:07:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=46057011</link><dc:creator>grogers</dc:creator><comments>https://news.ycombinator.com/item?id=46057011</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46057011</guid></item><item><title><![CDATA[New comment by grogers in "Cloudflare outage on November 18, 2025 post mortem"]]></title><description><![CDATA[
<p>Of course it depends on the situation. But I don't see how you could think that in this case, crashing is better than stale config.<p>Crashing on a config update is usually only done if it could cause data corruption if the configs aren't in sync. That's obviously not the case here since the updates (although distributed in real time) are not coupled between hosts. Such systems usually are replicated state machines where config is totally ordered relative to other commands. Example: database schema and write operations (even here the way many databases are operated they don't strongly couple the two).</p>
]]></description><pubDate>Wed, 19 Nov 2025 14:28:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=45979903</link><dc:creator>grogers</dc:creator><comments>https://news.ycombinator.com/item?id=45979903</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45979903</guid></item><item><title><![CDATA[New comment by grogers in "Cloudflare outage on November 18, 2025 post mortem"]]></title><description><![CDATA[
<p>Instead of crashing when applying the new config, it's more common to simply ignore the new config if it cannot be applied. You keep running in the last known good state. Operators then get alerts about the failures and can diagnose and resolve the underlying issue.<p>That's not always foolproof, e.g. a freshly (re)started process doesn't have any prior state it can fall back to, so it just hard crashes. But restarts are going to be rate limited anyways, so even then there is time to mitigate the issue before it becomes a large scale outage</p>
]]></description><pubDate>Wed, 19 Nov 2025 14:05:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=45979635</link><dc:creator>grogers</dc:creator><comments>https://news.ycombinator.com/item?id=45979635</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45979635</guid></item><item><title><![CDATA[New comment by grogers in "A race condition in Aurora RDS"]]></title><description><![CDATA[
<p>It sounds like part of the problem was how the application reacted to the reverted fail over. They had to restart their service to get writes to be accepted, implying some sort of broken caching behavior where it kept trying to send queries to the wrong primary.<p>It's at least possible that this sort of aborted failover happens a fair amount, but if there's no downtime then users just try again and it succeeds, so they never bother complaining to AWS. Unless AWS is specifically monitoring for it, they might be blind to it happening.</p>
]]></description><pubDate>Sat, 15 Nov 2025 17:16:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=45938910</link><dc:creator>grogers</dc:creator><comments>https://news.ycombinator.com/item?id=45938910</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45938910</guid></item><item><title><![CDATA[New comment by grogers in "A race condition in Aurora RDS"]]></title><description><![CDATA[
<p>Autocommit mode is pretty handy for ad-hoc queries at least. You wouldn't want to have to remember to close the transaction since keeping a transaction open is often really bad for the DB</p>
]]></description><pubDate>Sat, 15 Nov 2025 16:24:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=45938485</link><dc:creator>grogers</dc:creator><comments>https://news.ycombinator.com/item?id=45938485</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45938485</guid></item></channel></rss>