<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: vitus</title><link>https://news.ycombinator.com/user?id=vitus</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 28 Jul 2026 07:51:15 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=vitus" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by vitus in "Choosing a Public DNS Resolver"]]></title><description><![CDATA[
<p>IIRC the block was on archive.today's side as a protest against 1.1.1.1 intentionally not supporting ECS.<p><a href="https://news.ycombinator.com/item?id=36971650">https://news.ycombinator.com/item?id=36971650</a><p><a href="https://news.ycombinator.com/item?id=19828702">https://news.ycombinator.com/item?id=19828702</a></p>
]]></description><pubDate>Sun, 28 Jun 2026 13:49:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=48707242</link><dc:creator>vitus</dc:creator><comments>https://news.ycombinator.com/item?id=48707242</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48707242</guid></item><item><title><![CDATA[New comment by vitus in "Nobody ever gets credit for fixing problems that never happened (2001) [pdf]"]]></title><description><![CDATA[
<p>Best I can tell, it's originally from Heguanzi: <a href="https://ctext.org/he-guan-zi/shi-xian" rel="nofollow">https://ctext.org/he-guan-zi/shi-xian</a></p>
]]></description><pubDate>Fri, 12 Jun 2026 16:57:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=48506540</link><dc:creator>vitus</dc:creator><comments>https://news.ycombinator.com/item?id=48506540</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48506540</guid></item><item><title><![CDATA[New comment by vitus in "Hacker News, Sans AI"]]></title><description><![CDATA[
<p>I have evidence that it's not AI. It's just a regex.<p><a href="https://github.com/elijah-potter/blog/blob/master/pages/hnsansai/index.tsx#L104-L113" rel="nofollow">https://github.com/elijah-potter/blog/blob/master/pages/hnsa...</a></p>
]]></description><pubDate>Sat, 06 Jun 2026 01:02:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=48420340</link><dc:creator>vitus</dc:creator><comments>https://news.ycombinator.com/item?id=48420340</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48420340</guid></item><item><title><![CDATA[New comment by vitus in "Qian Xuesen: The missile genius America lost and China gained (2025)"]]></title><description><![CDATA[
<p>Shockley? The guy whose employees hated him so much they went and founded a rival company which then gave rise to Silicon Valley?<p><a href="https://en.wikipedia.org/wiki/Traitorous_eight" rel="nofollow">https://en.wikipedia.org/wiki/Traitorous_eight</a></p>
]]></description><pubDate>Thu, 21 May 2026 03:13:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=48217411</link><dc:creator>vitus</dc:creator><comments>https://news.ycombinator.com/item?id=48217411</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48217411</guid></item><item><title><![CDATA[New comment by vitus in "Copy Fail"]]></title><description><![CDATA[
<p>Hilariously, "os as g" adds one more byte than it saves, since os is only used 4 times but the alias takes 5 extra bytes to save 4. And "socket as s" comes out even.<p>If you wanted real savings, you'd use "d=bytes.fromhex" instead of defining a function -- 17 bytes!! And d('00') -> b'\0' for -2 bytes.<p>We could easily get the byte count down further by using base64.b85decode instead of bytes.fromhex (-70 or so), but ultimately we're optimizing a meaningless metric, as you mention.</p>
]]></description><pubDate>Wed, 29 Apr 2026 21:17:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=47954816</link><dc:creator>vitus</dc:creator><comments>https://news.ycombinator.com/item?id=47954816</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47954816</guid></item><item><title><![CDATA[New comment by vitus in "Her life savings mysteriously disappeared after a systems glitch"]]></title><description><![CDATA[
<p>Agreed. That said, FDIC would have not been able to cover all $150 billion or so of uninsured SVB deposits directly from the insurance fund, so had that been the only available option for making depositors whole, then FDIC would have had to pass.</p>
]]></description><pubDate>Sun, 26 Apr 2026 02:31:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=47906738</link><dc:creator>vitus</dc:creator><comments>https://news.ycombinator.com/item?id=47906738</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47906738</guid></item><item><title><![CDATA[New comment by vitus in "Her life savings mysteriously disappeared after a systems glitch"]]></title><description><![CDATA[
<p>Indeed; most personal banking customers can fall back on FDIC insurance ($250k should be more than enough to cover your emergency fund). This isn't the 1920s.</p>
]]></description><pubDate>Sun, 26 Apr 2026 02:05:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=47906615</link><dc:creator>vitus</dc:creator><comments>https://news.ycombinator.com/item?id=47906615</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47906615</guid></item><item><title><![CDATA[New comment by vitus in "DRAM has a design flaw from 1966. I bypassed it [video]"]]></title><description><![CDATA[
<p>> I didn’t know about the term happy eyeball to signify that all requests fire at the same time.<p>It's not quite the same. Usually with Happy Eyeballs, you want to try multiple protocols (e.g. QUIC vs TCP, or IPv6 vs IPv4), and you have a preference for one over the other. As such, you try to establish your connection via IPv6, wait something like 30ms, then try to establish via IPv4. Whichever mechanism completes channel setup first wins, and you can cancel the other one.<p>It's a mechanism used to drive adoption of newer protocols while limiting the impact on end users.</p>
]]></description><pubDate>Fri, 10 Apr 2026 21:23:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=47723831</link><dc:creator>vitus</dc:creator><comments>https://news.ycombinator.com/item?id=47723831</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47723831</guid></item><item><title><![CDATA[New comment by vitus in "DRAM has a design flaw from 1966. I bypassed it [video]"]]></title><description><![CDATA[
<p>> magic eyeballs<p><a href="https://en.wikipedia.org/wiki/Happy_Eyeballs" rel="nofollow">https://en.wikipedia.org/wiki/Happy_Eyeballs</a> is the usual name. It's not quite identical, since you often want to give your preferred transport a nominal headstart so it usually succeeds. But yes, there are some similarities -- you race during connection setup so that you don't have to wait for a connection timeout (on the order of seconds) if the preferred mechanism doesn't work for some reason.<p>The main term I've seen for this particular approach is "request hedging" (<a href="https://grpc.io/docs/guides/request-hedging/" rel="nofollow">https://grpc.io/docs/guides/request-hedging/</a>, which links to the paper by Dean and Barroso).</p>
]]></description><pubDate>Fri, 10 Apr 2026 10:44:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=47716090</link><dc:creator>vitus</dc:creator><comments>https://news.ycombinator.com/item?id=47716090</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47716090</guid></item><item><title><![CDATA[New comment by vitus in "DRAM has a design flaw from 1966. I bypassed it [video]"]]></title><description><![CDATA[
<p>This is approximately the section in the video titled "Memory controllers hate you" (<a href="https://www.youtube.com/watch?v=KKbgulTp3FE&t=1399s" rel="nofollow">https://www.youtube.com/watch?v=KKbgulTp3FE&t=1399s</a>), combined with the following section.<p>The actual explanation starts a couple minutes later, around <a href="https://youtu.be/KKbgulTp3FE?t=1553" rel="nofollow">https://youtu.be/KKbgulTp3FE?t=1553</a>. The short explanation is performance (essentially load balancing against multiple RAM banks for large sequential RAM accesses), combined with a security-via-obscurity layer of defense against rowhammer.</p>
]]></description><pubDate>Fri, 10 Apr 2026 10:36:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=47716030</link><dc:creator>vitus</dc:creator><comments>https://news.ycombinator.com/item?id=47716030</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47716030</guid></item><item><title><![CDATA[New comment by vitus in "Launching Cloudflare's Gen 13 servers"]]></title><description><![CDATA[
<p>Eh. It depends what your bottleneck is. If the bottleneck is now, say, CPU cache contention because you've doubled your thread count, it's entirely possible that FL1 running on the new server generation is operating in a different regime than on the previous generation. You can see some hints of that happening, since doubling thread count didn't result in a doubling of throughput.<p>In fact, I suspect based on the throughput doubling with FL2, we're back in the same regime as the baseline.<p>It would be useful to see what the latency is of FL2 on Gen12 compared to baseline (FL1 on Gen12), just to confirm.</p>
]]></description><pubDate>Tue, 24 Mar 2026 11:58:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=47501367</link><dc:creator>vitus</dc:creator><comments>https://news.ycombinator.com/item?id=47501367</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47501367</guid></item><item><title><![CDATA[New comment by vitus in "25 Years of Eggs"]]></title><description><![CDATA[
<p>It depends what dates you're looking at, but energy (gas prices and more) and food (including eggs) are generally recognized as way more volatile than the rest of the CPI.<p>Eggs were actually quite stable for the 20 years prior to 2001, so maybe don't put your life savings into egg futures...<p>Egg prices: <a href="https://fred.stlouisfed.org/series/APU0000708111" rel="nofollow">https://fred.stlouisfed.org/series/APU0000708111</a><p>CPI: <a href="https://fred.stlouisfed.org/series/CPIAUCSL" rel="nofollow">https://fred.stlouisfed.org/series/CPIAUCSL</a><p>Core CPI (without food + energy prices): <a href="https://fred.stlouisfed.org/series/CPILFESL" rel="nofollow">https://fred.stlouisfed.org/series/CPILFESL</a></p>
]]></description><pubDate>Sun, 22 Mar 2026 11:43:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=47476506</link><dc:creator>vitus</dc:creator><comments>https://news.ycombinator.com/item?id=47476506</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47476506</guid></item><item><title><![CDATA[New comment by vitus in "A Japanese glossary of chopsticks faux pas (2022)"]]></title><description><![CDATA[
<p>> Kaeshibashi<p>The preference is to use a separate pair of communal chopsticks that is not used directly for eating.<p>> Kosuribashi<p>I have heard that this one is because it's considered to be an insult implying that the chopsticks are low-quality. (That said, if your chopsticks are indeed low-quality, then avoiding splinters is probably preferable to then visibly plucking splinters out of your fingers.)</p>
]]></description><pubDate>Fri, 20 Mar 2026 21:37:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=47460960</link><dc:creator>vitus</dc:creator><comments>https://news.ycombinator.com/item?id=47460960</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47460960</guid></item><item><title><![CDATA[New comment by vitus in "Glassworm is back: A new wave of invisible Unicode attacks hits repositories"]]></title><description><![CDATA[
<p>Agreed on all those fronts. I'm just dismayed by all the comments suggesting that maintainers just merged PRs with this trojan, when the attack vector implies a more mundane form of credential compromise (and not, as the article implies, AI being used to sneak malicious changes past code review at scale).</p>
]]></description><pubDate>Sun, 15 Mar 2026 17:48:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=47389842</link><dc:creator>vitus</dc:creator><comments>https://news.ycombinator.com/item?id=47389842</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47389842</guid></item><item><title><![CDATA[New comment by vitus in "Glassworm is back: A new wave of invisible Unicode attacks hits repositories"]]></title><description><![CDATA[
<p>Looks like the repo owner force-pushed a bad commit to replace an existing one. But then, why not forge it to maintain the existing timestamp + author, e.g. via `git commit --amend -C df8c18`?<p>Innocuous PR (but do note the line about "pedronauck pushed a commit that referenced this pull request last week"): <a href="https://github.com/pedronauck/reworm/pull/28" rel="nofollow">https://github.com/pedronauck/reworm/pull/28</a><p>Original commit: <a href="https://github.com/pedronauck/reworm/commit/df8c18" rel="nofollow">https://github.com/pedronauck/reworm/commit/df8c18</a><p>Amended commit: <a href="https://github.com/pedronauck/reworm/commit/d50cd8" rel="nofollow">https://github.com/pedronauck/reworm/commit/d50cd8</a><p>Either way, pretty clear sign that the owner's creds (and possibly an entire machine) are compromised.</p>
]]></description><pubDate>Sun, 15 Mar 2026 17:00:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=47389296</link><dc:creator>vitus</dc:creator><comments>https://news.ycombinator.com/item?id=47389296</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47389296</guid></item><item><title><![CDATA[New comment by vitus in "Google just gave Sundar Pichai a $692M pay package"]]></title><description><![CDATA[
<p>> if indeed he went all-in on AI in 2015, that seems to me like a damn near prophetic vision.<p>Also note that 7 years later, when ChatGPT came out, built on top of Google Brain research (transformers), Google was caught flat-footed.<p>Even supposing that Pichai really had the right vision a decade ago, he completely failed in leading its execution until a serious threat to the company's core business model materialized.</p>
]]></description><pubDate>Sun, 08 Mar 2026 19:51:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=47300638</link><dc:creator>vitus</dc:creator><comments>https://news.ycombinator.com/item?id=47300638</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47300638</guid></item><item><title><![CDATA[New comment by vitus in "Latency numbers every programmer should know"]]></title><description><![CDATA[
<p>> That’s PCIe 3.0 x4 or PCIe 4.0 x2, which a decent commodity M.2 NVMe SSD can use and can possibly saturate, at least for reads.<p>Given that there's a separate item for sequential disk reads vs SSD reads, I think it's pretty clear that particular item meant hard drives specifically. Agreed that modern SSDs should be able to pull that off.<p>> That being said, all the connections over 100Gbps are currently multi-lane AFAIK, and the heroic efforts and multiplexing needed to exceed 100Gbps at any distance are a bit in excess of the very simple technology that got us to 100Mbps “fast Ethernet”.<p>Yeah. Terabit networking is not here yet, and it's certainly not "commodity network"-grade. We can LACP a bunch of 100G optics together, but we're probably 5-10 years out for 800G ethernet to become widely adopted and for 1600G to even be developed.</p>
]]></description><pubDate>Sat, 28 Feb 2026 18:36:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=47198707</link><dc:creator>vitus</dc:creator><comments>https://news.ycombinator.com/item?id=47198707</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47198707</guid></item><item><title><![CDATA[New comment by vitus in "Latency numbers every programmer should know"]]></title><description><![CDATA[
<p>Well, it shouldn't be slower than "Read 1,000,000 bytes sequentially from memory" (741ns) which in turn shouldn't be slower than "Read 1,000,000 bytes sequentially from disk" (359 us).<p>That said, all those numbers feel a bit off by 1.5-2 orders of magnitude -- that disk read speed translates to about 3 GB/s which is well outside the range of what HDDs can achieve.<p><a href="https://brenocon.com/dean_perf.html" rel="nofollow">https://brenocon.com/dean_perf.html</a> indicates the original set of numbers were more like 10us, 250us, and 30ms.<p>And it links to <a href="https://github.com/colin-scott/interactive_latencies" rel="nofollow">https://github.com/colin-scott/interactive_latencies</a> which seems like it extrapolates progress from 14 years ago:<p><pre><code>        // NIC bandwidth doubles every 2 years
        // [source: http://ampcamp.berkeley.edu/wp-content/uploads/2012/06/Ion-stoica-amp-camp-21012-warehouse-scale-computing-intro-final.pdf]
        // TODO: should really be a step function
        // 1Gb/s = 125MB/s = 125*10^6 B/s in 2003
</code></pre>
which means that in 2026 we'll have seen 11 doublings since gigabit speeds in 2003, so we'll all have > terabit speeds available to us.</p>
]]></description><pubDate>Sat, 28 Feb 2026 15:33:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=47196505</link><dc:creator>vitus</dc:creator><comments>https://news.ycombinator.com/item?id=47196505</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47196505</guid></item><item><title><![CDATA[New comment by vitus in "We have ipinfo at home or how to geolocate IPs in your CLI using latency"]]></title><description><![CDATA[
<p>You probably meant to say oversubscribing, not overprovisioning.<p>Oversubscription is expected to a certain degree (this is fundamentally the same concept as "statistical multiplexing"). But even oversubscription in itself is not guaranteed to result in bufferbloat -- appropriate traffic shaping (especially to "encourage" congestion control algorithms to back off sooner) can mitigate a lot of those issues. And, it can be hard to differentiate between bufferbloat at the last mile vs within the ISP's backbone.</p>
]]></description><pubDate>Sat, 31 Jan 2026 15:41:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=46837588</link><dc:creator>vitus</dc:creator><comments>https://news.ycombinator.com/item?id=46837588</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46837588</guid></item><item><title><![CDATA[New comment by vitus in "Rex is a safe kernel extension framework that allows Rust in the place of eBPF"]]></title><description><![CDATA[
<p>We do; most people don't just write eBPF by hand.<p><a href="https://github.com/llvm/llvm-project/tree/main/llvm/lib/Target/BPF" rel="nofollow">https://github.com/llvm/llvm-project/tree/main/llvm/lib/Targ...</a></p>
]]></description><pubDate>Sun, 28 Dec 2025 12:02:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=46410456</link><dc:creator>vitus</dc:creator><comments>https://news.ycombinator.com/item?id=46410456</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46410456</guid></item></channel></rss>