<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: drhagen</title><link>https://news.ycombinator.com/user?id=drhagen</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 01 Nov 2026 17:37:13 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=drhagen" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by drhagen in "Show HN: To Honor Sir Patrick Stewart, Enjoy the TNG Episode Guessing Game"]]></title><description><![CDATA[
<p>It's strange how brains store information so differently. I've watched through TNG maybe 5 times as an adult—most recently last year. (Watched a lot more in middle school because my dad recorded most of them onto VHS.) I went 20/20 with an average of 1.5 guesses. The game would show me a picture of a scanner on a table, and my brain would go, "That's the scanner Data used to scan Geordi and Ro when they phase shifted by the Romulans." Search "geordi romulans" and, boom, get it in 1.<p>Why did my brain store TNG to this level of detail and not, like, quantum mechanics or the names of the people in my church? This is not particularly useful information, brain!</p>
]]></description><pubDate>Sat, 31 Oct 2026 10:43:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=50314768</link><dc:creator>drhagen</dc:creator><comments>https://news.ycombinator.com/item?id=50314768</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50314768</guid></item><item><title><![CDATA[New comment by drhagen in "C# now beats Rust on WASM size"]]></title><description><![CDATA[
<p>TFA did [0] the most important stuff for minimizing Rust binaries: release mode, LTO, strip, and abort on panic. But there is a lot more you can do if you really care about Rust binary size [1]: remove location details, purge the debug formatters, rebuild the standard library for size, abort with no error message at all, and nuttier stuff.<p>[0]: <a href="https://github.com/zion-sati/NetWasm/blob/main/docs/size-and-methodology.md#rust-a-footprint-reference-not-a-gc-comparison" rel="nofollow">https://github.com/zion-sati/NetWasm/blob/main/docs/size-and...</a><p>[1]: <a href="https://github.com/johnthagen/min-sized-rust" rel="nofollow">https://github.com/johnthagen/min-sized-rust</a></p>
]]></description><pubDate>Wed, 21 Oct 2026 10:24:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=50178561</link><dc:creator>drhagen</dc:creator><comments>https://news.ycombinator.com/item?id=50178561</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50178561</guid></item><item><title><![CDATA[New comment by drhagen in "A death, a plagiarism scandal and a quest for revenge: the tale of Otto Z"]]></title><description><![CDATA[
<p>Nuclear testing in the middle of the twentieth century threw up lots of carbon-14 in the atmosphere. It has been slowly washing out since then. Because we have measured the amount of carbon-14 every year, we can use the amount of carbon-14 in it to simply look up (approximately) what year some plant material grew up in. This version of carbon-14 dating has nothing to do with the nuclear-decay-based carbon-14 dating that most people are familiar with, which acts over thousands of years.</p>
]]></description><pubDate>Mon, 19 Oct 2026 19:44:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=50157112</link><dc:creator>drhagen</dc:creator><comments>https://news.ycombinator.com/item?id=50157112</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50157112</guid></item><item><title><![CDATA[New comment by drhagen in "Passkeys are a trap"]]></title><description><![CDATA[
<p>Admittedly, my experience comes from OAuth and Webauthn. I have yet to try to implement passkeys. My exposer to passkeys comes completely from long blog posts complaining about it.</p>
]]></description><pubDate>Sun, 11 Oct 2026 23:32:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=50049222</link><dc:creator>drhagen</dc:creator><comments>https://news.ycombinator.com/item?id=50049222</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50049222</guid></item><item><title><![CDATA[New comment by drhagen in "Passkeys are a trap. Do not use them"]]></title><description><![CDATA[
<p>> far more difficult to use in practice<p>I guess I am envisioning the user agent doing all of this. You go to a site and create click account, your browser shows a pop-up: "<website> is asking you create an EasyAuth account. Would you like to create an account on this site?" If you click yes, then the user agent does this in the background:<p>website: Sure you can have an account. Use this token <token> once and this ID <user_id> forever.<p>me: Ok, here's your token <token> for ID <user_id> and my public key is <public_key>. Signed, <digital_signature> to prove it works on my end.<p>Maybe generating a unique public key for each website is not substantially better than generating a password, but at least a signature cannot get stolen on the server side or in transit. You wouldn't have to change your public key if their database got slurped.<p>Passwords also aren't standardized, so they are pain to generate (special characters required or disallowed?). They don't reliably autofill into a website. You still have to go through a manual flow to login; user-agent doesn't just keep you logged in. I guess I would be fine if the user-agent knew how to authenticate me to every website.<p>Maybe this is what the passkey system was before it got designed-by-committee'd into oblivion. I am just always amazed by how complex authentication is when the user-agent should be able to handle this rather painlessly.</p>
]]></description><pubDate>Sun, 11 Oct 2026 23:20:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=50049109</link><dc:creator>drhagen</dc:creator><comments>https://news.ycombinator.com/item?id=50049109</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50049109</guid></item><item><title><![CDATA[New comment by drhagen in "Passkeys are a trap. Do not use them"]]></title><description><![CDATA[
<p>Ok, I guess you also need a way to say "Oh, and next time I talk to you I'll use public key <public_key>."</p>
]]></description><pubDate>Sun, 11 Oct 2026 22:32:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=50048620</link><dc:creator>drhagen</dc:creator><comments>https://news.ycombinator.com/item?id=50048620</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50048620</guid></item><item><title><![CDATA[New comment by drhagen in "Passkeys are a trap"]]></title><description><![CDATA[
<p>Can someone tell why the whole standard for authentication on the web is not just this:<p>me: Can you show me my stuff?<p>website: HTTP 401, who are you? I understand EasyAuth 1.0, if that is good for you.<p>me: Sure, here's my EasyAuth 1.0: Hi <website>, I'm <user_id>. The time is <timestamp>. Signed, <digital_signature>.</p>
]]></description><pubDate>Sun, 11 Oct 2026 22:23:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=50048540</link><dc:creator>drhagen</dc:creator><comments>https://news.ycombinator.com/item?id=50048540</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50048540</guid></item><item><title><![CDATA[New comment by drhagen in "Plain text is still one of the best technologies we have"]]></title><description><![CDATA[
<p>This is the public dividend of a standard finally winning. The article gives credit to Unicode, but it is the fact that ASCII unambiguously won that gives plain text its portability and longevity. It looks like Unicode is on its way to winning in the same way, but it is not there yet. Most text files I write are still pure ASCII because that's the only way to avoid unexpected glitches [0].<p>[0] Windows newlines not withstanding.</p>
]]></description><pubDate>Mon, 05 Oct 2026 19:50:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=49969716</link><dc:creator>drhagen</dc:creator><comments>https://news.ycombinator.com/item?id=49969716</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49969716</guid></item><item><title><![CDATA[New comment by drhagen in "cp: -r or -R?"]]></title><description><![CDATA[
<p>It always seemed like the recursive flag of cp was an implementation detail leaking into the UI. Like, I get that copying a file requires creating more than one inode, but...so? Eventually, graphical OSes agree with me—copy/paste works the same on folders as it does on files.</p>
]]></description><pubDate>Sat, 03 Oct 2026 11:39:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=49943343</link><dc:creator>drhagen</dc:creator><comments>https://news.ycombinator.com/item?id=49943343</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49943343</guid></item><item><title><![CDATA[New comment by drhagen in "Pre-Greek: The lost language hidden within Ancient Greek"]]></title><description><![CDATA[
<p>Or, we have multiple anatomy textbooks [0] from before the Late Bronze Age Collapse.<p>[0] <a href="https://en.wikipedia.org/wiki/List_of_medical_textbooks" rel="nofollow">https://en.wikipedia.org/wiki/List_of_medical_textbooks</a></p>
]]></description><pubDate>Fri, 18 Sep 2026 11:27:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=49752808</link><dc:creator>drhagen</dc:creator><comments>https://news.ycombinator.com/item?id=49752808</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49752808</guid></item><item><title><![CDATA[New comment by drhagen in "Pre-Greek: The lost language hidden within Ancient Greek"]]></title><description><![CDATA[
<p>I get that the article was already super long, but I really wanted to hear how they got all the body-parts words from the Pre-Greeks. That seems like such a random corpus to lift from another language. Pre-Greeks way more into divination?</p>
]]></description><pubDate>Fri, 18 Sep 2026 11:14:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=49752696</link><dc:creator>drhagen</dc:creator><comments>https://news.ycombinator.com/item?id=49752696</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49752696</guid></item><item><title><![CDATA[New comment by drhagen in "How an MIT research project became the Julia programming language"]]></title><description><![CDATA[
<p>When I was a grad student at MIT, my desk was across the hall from the Julia people. We even shared a lunch table. Julia is most famous for its optimizing compiler, but many people may not notice the careful work that went into designing the language itself. Matlab this was not! I remember one long conversation where one of them was teaching me about the different types of normalization of unicode. They had to pick one to canonicalize unicode variable names (more useful for a mathy programming language), and they were carefully considering the consequences of the options.</p>
]]></description><pubDate>Fri, 04 Sep 2026 10:27:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=49562722</link><dc:creator>drhagen</dc:creator><comments>https://news.ycombinator.com/item?id=49562722</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49562722</guid></item><item><title><![CDATA[New comment by drhagen in "Any Human Ever – One life, drawn at random from all who have ever lived"]]></title><description><![CDATA[
<p>Before clicking, I said to myself "Indian peasant".<p>> You have drawn a girl, born in the Ganges Plain in 1628 CE.<p>> She was born, married at 16, lost her mother at 19, was orphaned at 30, had 8 children, and died at 39 of pneumonic plague, with 6 surviving children.<p>Nailed it. Though in retrospect, I drew really well. It would have been safer to guess "toddler death".</p>
]]></description><pubDate>Thu, 03 Sep 2026 17:00:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=49553178</link><dc:creator>drhagen</dc:creator><comments>https://news.ycombinator.com/item?id=49553178</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49553178</guid></item><item><title><![CDATA[New comment by drhagen in "DKIM2 and DMARCbis Have Landed"]]></title><description><![CDATA[
<p>They spent a huge amount of complexity supporting mailing lists that claim mutated messages came FROM the original sender instead of FROM mailinglist@example.com. Is that use-case worth the additional effort?</p>
]]></description><pubDate>Wed, 08 Jul 2026 23:18:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=48838685</link><dc:creator>drhagen</dc:creator><comments>https://news.ycombinator.com/item?id=48838685</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48838685</guid></item><item><title><![CDATA[New comment by drhagen in "You can no longer Google the word 'disregard'"]]></title><description><![CDATA[
<p>"never mind" does the same thing, as does "shut up, clanker"</p>
]]></description><pubDate>Fri, 22 May 2026 17:31:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=48238893</link><dc:creator>drhagen</dc:creator><comments>https://news.ycombinator.com/item?id=48238893</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48238893</guid></item><item><title><![CDATA[New comment by drhagen in "A new book about humanity's obsession with gold"]]></title><description><![CDATA[
<p>It is interesting that gold was able to retain its value after the industrial revolution. It could have gone the way of aluminum, once twice as valuable as gold, but now used in disposable drink containers. At the time of the alchemists, there was no way to know that some metals were actually distillable from common rocks and others genuinely rare and impossible to manufacture with even quite advanced technology.<p>EDIT: Aluminum itself may not be the best counterexample to gold as it was not discovered until the industrial revolution was well underway.</p>
]]></description><pubDate>Wed, 20 May 2026 11:23:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=48206000</link><dc:creator>drhagen</dc:creator><comments>https://news.ycombinator.com/item?id=48206000</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48206000</guid></item><item><title><![CDATA[New comment by drhagen in "Opus 4.7 knows the real Kelsey"]]></title><description><![CDATA[
<p>I am an absolute nobody on the internet, so it didn't get me at all. But the names it did guess were some good bloggers, some which I had yet to follow.<p>So do this even if it has no chance of getting it right for you.</p>
]]></description><pubDate>Fri, 01 May 2026 15:22:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=47975871</link><dc:creator>drhagen</dc:creator><comments>https://news.ycombinator.com/item?id=47975871</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47975871</guid></item><item><title><![CDATA[New comment by drhagen in "A “frozen” dictionary for Python"]]></title><description><![CDATA[
<p>Great! Now make `set` have a stable order and we're done here.</p>
]]></description><pubDate>Thu, 11 Dec 2025 11:45:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=46230206</link><dc:creator>drhagen</dc:creator><comments>https://news.ycombinator.com/item?id=46230206</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46230206</guid></item><item><title><![CDATA[New comment by drhagen in "A “frozen” dictionary for Python"]]></title><description><![CDATA[
<p>If this gets wide enough use, they could add an optimization for code like this:<p><pre><code>    n = 1000
    a = {}
    for i in range(n):
        a[i] = str(i)
    a = frozendict(a)  # O(n) operation can be turned to O(1)
</code></pre>
It is relatively easy for the JIT to detect the `frozendict` constructor, the `dict` input, and the single reference immediately overwritten. Not sure if this would ever be worth it.</p>
]]></description><pubDate>Thu, 11 Dec 2025 11:42:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=46230181</link><dc:creator>drhagen</dc:creator><comments>https://news.ycombinator.com/item?id=46230181</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46230181</guid></item><item><title><![CDATA[New comment by drhagen in "We Need to Die"]]></title><description><![CDATA[
<p>A funny thing I realized: immortality is incompatible with spending a nonzero fraction of my life with children.<p>I treasure the time I spend with my kids. I can see that this season will be over soon. This won't be my whole life, but it will be a significant fraction of my life. If I were immortal, this would be a tiny blip in the inconceivably far past for 100% of my life.<p>You may think I could start again every 100 or 1000 or million years, but if a nonzero fraction of people did that, that would be exponential growth. Even ignoring resource constraints, you cannot sustain exponential growth of any kind in a 3D universe.<p>A universe with kids necessitates a universe with death.</p>
]]></description><pubDate>Tue, 09 Dec 2025 21:19:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=46210799</link><dc:creator>drhagen</dc:creator><comments>https://news.ycombinator.com/item?id=46210799</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46210799</guid></item></channel></rss>