<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: dfabulich</title><link>https://news.ycombinator.com/user?id=dfabulich</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 29 Jul 2026 12:18:17 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=dfabulich" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by dfabulich in "Modern email can be built from borrowed parts"]]></title><description><![CDATA[
<p>Today, Gmail and other major providers do this by tracking sender reputation at the domain level. If users mark your emails as spam, that hurts your domain's reputation. If a domain's reputation gets low enough, Gmail won't deliver mail from that domain.<p>It's better than nothing (much better than nothing, IMO), but but spam will continue to be an issue as long as we want/expect to receive incoming mail from strangers, and as long as we plan not to have a centralized authority for email identities.</p>
]]></description><pubDate>Mon, 27 Jul 2026 22:58:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=49076651</link><dc:creator>dfabulich</dc:creator><comments>https://news.ycombinator.com/item?id=49076651</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49076651</guid></item><item><title><![CDATA[New comment by dfabulich in "Modern email can be built from borrowed parts"]]></title><description><![CDATA[
<p>> <i>It should be really, really cheap to send an email to one person (like a fraction of a fraction of a cent), but get exponentially more expensive the more you send.</i><p>The problem is the cost of creating fake identities. As long as creating fake identities has a fixed cost (increasing linearly with the number of identities you create), there's no way to charge the "same person" exponentially more for sending more email. They'll just create new identities to send new emails.<p>Some people realize this and then start imagining how to forbid fake identities (forbidding truly anonymous email), but that requires a centralized identification authority, which many participants in the system are actively trying to avoid.<p>If you want a centralized authority for sending messages without spam, then you should just use a popular centralized messaging app. Each messaging app is controlled by a centralized authority, for better and for worse; the general consensus is that spam is a much smaller problem on centralized messaging apps than on email. But centralizing authority is a very high price to fight spam.<p>Today, each email client just reads the emails and tries to categorize spam, assigning each email a spam "score" and quarantining mail over a certain threshold. We track email identities only by top-level domain names, which do have a cost. Emails can be signed with DKIM/SPF, and we can penalize emails that don't sign themselves. We don't have "central authorities," but there are very popular email services, following a power law, and they're close enough. If Gmail thinks your domain reputation is too low, you're gonna have to buy a new domain name if you want to email anybody on Gmail.<p>Without one official centralized authority, I think that's about as good as it's ever gonna get.</p>
]]></description><pubDate>Mon, 27 Jul 2026 22:53:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=49076589</link><dc:creator>dfabulich</dc:creator><comments>https://news.ycombinator.com/item?id=49076589</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49076589</guid></item><item><title><![CDATA[New comment by dfabulich in "JEP 540: Simple JSON API (Now in Incubator)"]]></title><description><![CDATA[
<p>For the "quick one-off script" case (where Implicitly Declared Classes shine), I think the most galling ceremony in this example is explicitly converting all N items in a list of literals into JsonValues for JsonArray.<p>This would help a lot:<p><pre><code>    public interface JsonArray extends JsonValue {
        static JsonArray of(JsonValue... elements) { ... }
        static JsonArray of(String... elements) { ... }
        static JsonArray of(Double... elements) { ... }
        static JsonArray of(Integer... elements) { ... }
        static JsonArray of(Boolean... elements) { ... }
    }
</code></pre>
Then, you could at least write:<p><pre><code>    IO.println(JsonObject.of(Map.of("providers",
        JsonArray.of("SUN", "SunRsaSign", "SunEC"))));
</code></pre>
And for JsonObject, a little fluent builder API would probably knock out a lot of ceremony, too.<p><pre><code>    JsonObject json = JsonObject.builder()
        .put("name", "John")
        .put("age", 30)
        .put("active", true)
        .put("providers", JsonArray.of("SUN", "SunEC"))
        .build();
</code></pre>
The alternative today looks <i>quite</i> ceremonious:<p><pre><code>    JsonObject json= JsonObject.of(Map.of(
        "name", JsonString("John"),
        "age", JsonNumber(30),
        "active", JsonBoolean(true),
        "providers", JsonArray.of(List.of(
            JsonString("SUN"),
            JsonString("SunRsaSign"),
            JsonString("SunEC")
        ))
    ));</code></pre></p>
]]></description><pubDate>Thu, 23 Jul 2026 20:12:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=49027386</link><dc:creator>dfabulich</dc:creator><comments>https://news.ycombinator.com/item?id=49027386</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49027386</guid></item><item><title><![CDATA[New comment by dfabulich in "JEP 540: Simple JSON API (Now in Incubator)"]]></title><description><![CDATA[
<p>POJOs and records require more configuration (e.g. Jackson's @JsonProperty, @JsonDeserialize). That could plausibly be out of scope.<p>But for constructing JSON out of strings, numbers, booleans, lists, and maps, there's really not that much scope to creep into.<p>Specifically, I think it would be perfectly cromulent to have JsonArray.of() be able to support any Iterable of native Strings, Integers, Doubles, or Booleans; that doesn't feel like feature creep to me at all. It would transparently support Sets. (Right now, the API only accepts Lists of JsonValues, which is what makes the API feel so ceremonious.)</p>
]]></description><pubDate>Thu, 23 Jul 2026 18:40:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=49026212</link><dc:creator>dfabulich</dc:creator><comments>https://news.ycombinator.com/item?id=49026212</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49026212</guid></item><item><title><![CDATA[New comment by dfabulich in "JEP 540: Simple JSON API (Now in Incubator)"]]></title><description><![CDATA[
<p>A stated goal of the API is to have "low ceremony"; this seems like a <i>lot</i> of ceremony.<p><pre><code>    IO.println(JsonObject.of(Map.of("providers",
        JsonArray.of(List.of(JsonString.of("SUN"),
            JsonString.of("SunRsaSign"),
            JsonString.of("SunEC"))))));
</code></pre>
There's <i>gotta</i> be a better way!<p>Surely there could be <i>some</i> way of creating a JsonArray of native Java Strings, Booleans, Doubles, and Integers without requiring clients to explicitly convert each value into a JsonValue. And why am I forced to convert a native List into a JsonArray just so I can make it the value of a JsonObject?<p>Why can't I write this?<p><pre><code>   JsonObject.of(Map.of("providers", List.of("SUN", "SunRsaSign", SunEC"))));</code></pre></p>
]]></description><pubDate>Thu, 23 Jul 2026 17:00:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=49024796</link><dc:creator>dfabulich</dc:creator><comments>https://news.ycombinator.com/item?id=49024796</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49024796</guid></item><item><title><![CDATA[New comment by dfabulich in "Passkeys were invented by engineers with zero understanding of consumer brain"]]></title><description><![CDATA[
<p>Yes, I did. When you set up a passkey on your phone in your password manager, you'll transfer it to your other device using your password manager.<p>Either your password manager will automatically synchronize for you, or you can transfer your passkey to another password manager that will do the synchronization, via the finicky app-to-app transfer system (Credential Exchange Protocol). You can transfer from Apple to Bitwarden and vice versa.<p>The family sharing question was added later, but the answer is: all of the major password managers have finicky family-sharing features for passwords and passkeys.<p>For passwords, most people don't bother with formal family-sharing features, and just share passwords via copy and paste. For passkeys, you <i>have</i> to use the family-sharing features, which means you and your family member have to use the same password-manager vendor to share those passkeys.<p>It’s up to you to decide whether protecting yourself from being tricked into exporting your passkeys is worth sacrificing your ability to read them.</p>
]]></description><pubDate>Wed, 22 Jul 2026 21:42:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=49013851</link><dc:creator>dfabulich</dc:creator><comments>https://news.ycombinator.com/item?id=49013851</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49013851</guid></item><item><title><![CDATA[New comment by dfabulich in "Passkeys were invented by engineers with zero understanding of consumer brain"]]></title><description><![CDATA[
<p>All of the major operating systems and all of the major browsers <i>are</i> password managers. Apple, Google, Microsoft, and Mozilla are all password managers. They all have apps that let you access their password managers on other operating systems.<p>You're right that all of the major password managers like their lock in. The Credential Exchange Protocol is just barely good enough that OS vendors can say they "support" it, but tricky enough to find that ordinary users probably will never try it. (Not to mention that it doesn't even work yet on Windows or Android.)<p>As for attestation, the good news is that Apple always returns 0s for the attestation ID (because Apple, like you, opposes it as a side channel), and so any public site/app that insists on attestation would reject all Apple devices. This gives smaller password managers like Bitwarden sufficient cover to 0-out their attestation as well.</p>
]]></description><pubDate>Wed, 22 Jul 2026 21:19:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=49013589</link><dc:creator>dfabulich</dc:creator><comments>https://news.ycombinator.com/item?id=49013589</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49013589</guid></item><item><title><![CDATA[New comment by dfabulich in "Passkeys were invented by engineers with zero understanding of consumer brain"]]></title><description><![CDATA[
<p>"Most" apps? So it works in <i>some</i> apps, but not others?<p>Setting your preferred password/passkey manager on Android 17 to 1Password works fine in Chrome and Firefox to log in to any site, presenting passkeys managed in 1Password. It also works in all of Meta's native apps. (I'm pretty sure it works the same in Bitwarden.)<p>Whatever issue you're having, it's not an inherent limitation of Android passkeys. It might be a bug in your passkey manager…?</p>
]]></description><pubDate>Wed, 22 Jul 2026 20:20:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=49012850</link><dc:creator>dfabulich</dc:creator><comments>https://news.ycombinator.com/item?id=49012850</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49012850</guid></item><item><title><![CDATA[New comment by dfabulich in "Passkeys were invented by engineers with zero understanding of consumer brain"]]></title><description><![CDATA[
<p>Did you try it? That’s not correct. I just logged into GitHub with a password (+ 2FA), on an account that also has a passkey.<p>No major bank revokes your password when you setup a passkey, either.</p>
]]></description><pubDate>Wed, 22 Jul 2026 18:13:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=49011041</link><dc:creator>dfabulich</dc:creator><comments>https://news.ycombinator.com/item?id=49011041</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49011041</guid></item><item><title><![CDATA[New comment by dfabulich in "Passkeys were invented by engineers with zero understanding of consumer brain"]]></title><description><![CDATA[
<p>> <i>Every single major password manager supports export.</i><p>They all support exporting <i>passwords</i>, but, check your CSV; you won't find any <i>passkeys</i> in the CSV export for Apple, Google, Microsoft, Mozilla, 1Password, or LastPass.<p>(Bitwarden, Proton Pass, and KeepassXC do support exporting passkeys to CSV, which undermines the phishing protections, at least somewhat. It’s possible to trick you into exporting your passkeys from Bitwarden and sending the file to an attacker. It’s up to you to decide whether protecting yourself from being tricked into exporting your passkeys is worth sacrificing your ability to read them.)<p>> <i>How useful is your firefox passwords on an iphone?</i><p>Did you try it? That's the <i>primary feature</i> of the Firefox app for iPhone.<p>(Especially since the Firefox app for iPhone is just Safari's WebKit wearing a Firefox disguise.)<p>> <i>Or Mac OS's keychain I use as a daily driver on my windows gaming desktop?</i><p><a href="https://apps.microsoft.com/detail/9pktq5699m62?hl=en-US&gl=US" rel="nofollow">https://apps.microsoft.com/detail/9pktq5699m62?hl=en-US&gl=U...</a><p>> <i>With the iCloud for Windows app, you can access photos, files, passwords, and other important information from your iPhone or other Apple devices on your Windows PC.</i><p>When Apple's your password manager, you use Apple's password manager app to synchronize passwords and passkeys.</p>
]]></description><pubDate>Wed, 22 Jul 2026 17:22:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=49010211</link><dc:creator>dfabulich</dc:creator><comments>https://news.ycombinator.com/item?id=49010211</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49010211</guid></item><item><title><![CDATA[New comment by dfabulich in "Passkeys were invented by engineers with zero understanding of consumer brain"]]></title><description><![CDATA[
<p>Citation needed. Walk in with photo ID, a bank card, and your PIN, and all the major banks will send you a reset-password email.</p>
]]></description><pubDate>Wed, 22 Jul 2026 17:11:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=49010021</link><dc:creator>dfabulich</dc:creator><comments>https://news.ycombinator.com/item?id=49010021</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49010021</guid></item><item><title><![CDATA[New comment by dfabulich in "Passkeys were invented by engineers with zero understanding of consumer brain"]]></title><description><![CDATA[
<p>Sure, that's alarming, but if you set up a passkey on the "wrong" password manager, you've (temporarily) lost your passkey. You should probably be kinda alarmed about that.<p>You can click "try another way" and use your password, and then you'll have access to your bank. But then, you should try to resolve that problem. If you (or a trusted friend/family member) can figure out how to use settings to remove the passkey from your bank's account settings, you can do that, or you can ask a bank teller to help you, instead.<p>(And, luckily, you won't <i>need</i> a bank teller, because <i>you'll still have access to your account.</i>)</p>
]]></description><pubDate>Wed, 22 Jul 2026 16:31:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=49009430</link><dc:creator>dfabulich</dc:creator><comments>https://news.ycombinator.com/item?id=49009430</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49009430</guid></item><item><title><![CDATA[New comment by dfabulich in "Passkeys were invented by engineers with zero understanding of consumer brain"]]></title><description><![CDATA[
<p>I don't think you're giving those seniors good advice. When the banks ask people to "switch" to passkeys, they're not <i>removing</i> the passwords; they're <i>adding</i> passkeys as an alternate login mechanism.<p>If you lose your bank passkey, (e.g. if you put it in the wrong password manager and you can't figure out where it is) you can just sign in with your bank password.<p>In the worst case, banks actually don't make it very hard for seniors to reset your password/passkey; just show up at a branch with photo ID, your bank card, and your PIN, and a teller will help you reset your credentials. They do it all the time.<p>And, remember, seniors could also put a randomly generated <i>password</i> into the wrong password manager. In that case, they'll either have to reset their password, or they'll have figure out what they did, retrieve their password from the OS password manager, and transfer that password to their preferred password manager.<p>The exact same story applies to passkeys, except, because passkeys can't be copied and pasted, you'd have to figure out how to use the finicky app-to-app transfer system ("Credential Exchange Protocol"). That's probably too complicated for most seniors, so falling back to a password is almost certainly their best bet.</p>
]]></description><pubDate>Wed, 22 Jul 2026 15:59:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=49008863</link><dc:creator>dfabulich</dc:creator><comments>https://news.ycombinator.com/item?id=49008863</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49008863</guid></item><item><title><![CDATA[New comment by dfabulich in "Passkeys were invented by engineers with zero understanding of consumer brain"]]></title><description><![CDATA[
<p>Apple, Google, Microsoft, Mozilla, and 1Password don’t let you export passkeys to a file that you can read and backup, but Bitwarden, Proton Pass, and KeepassXC do.<p>I think Bitwarden is on HN's current happy list. (I just use Apple iCloud myself.)<p>Allowing passkeys to be exported to a plaintext file undermines the phishing protections, at least somewhat. It’s possible to trick you into exporting your passkeys from Bitwarden and sending the file to an attacker.<p>The major password managers say that this is the reason they don’t allow exporting passkeys, and it’s not <i>false</i>, but they’re also making it harder to switch password managers, which may be their ulterior motive. (You can’t even import those exported passkey files into any of the major password managers, which they would be incentivized to do, if those smaller players had significant marketshare.)<p>It’s up to you to decide whether protecting yourself from being tricked into exporting your passkeys is worth sacrificing your ability to read them.</p>
]]></description><pubDate>Wed, 22 Jul 2026 15:37:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=49008519</link><dc:creator>dfabulich</dc:creator><comments>https://news.ycombinator.com/item?id=49008519</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49008519</guid></item><item><title><![CDATA[New comment by dfabulich in "Passkeys were invented by engineers with zero understanding of consumer brain"]]></title><description><![CDATA[
<p>Then you'll login to your Apple iCloud account using your password.<p>Passkeys are just passwords that require a password manager; you can't login to a password manager without something <i>outside</i> the password manager, usually a password. (That's why they call it "LassPass" and "1Password"; there's one last password you'll still have to maintain.)<p>No password manager tries to get you to login with a passkey without setting a password, for precisely that reason. Apple, Google, and Microsoft do invite you to login to their password managers via passkey, because it's convenient and unphishable, but they always also allow you to login via password (or "backup codes", which are just backup passwords).</p>
]]></description><pubDate>Wed, 22 Jul 2026 15:31:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=49008412</link><dc:creator>dfabulich</dc:creator><comments>https://news.ycombinator.com/item?id=49008412</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49008412</guid></item><item><title><![CDATA[New comment by dfabulich in "Passkeys were invented by engineers with zero understanding of consumer brain"]]></title><description><![CDATA[
<p>This is much, much simpler than you think it is. Passkeys are just passwords that require a password manager. If you lose your passkey, you'll reset your passkey the same way you reset your password, probably with a "forgot my password" email.<p>(But you're not going to lose it, because you use a password manager, and the passkey will be stored there and synchronized to all of your other devices.)<p>The weird part is that password managers provide no way for you to copy and paste your passkeys. To present a passkey, you have to use a password manager. This makes it impossible to copy and paste your passkey to the wrong person (someone trying to trick you).<p>Major password managers don’t even allow you to export your passkeys to a file that you can read/backup yourself. Instead, the password managers each have their own finicky app-to-app mechanism for transferring passkeys from one password manager to another. (I think all the password managers kinda like that lock in.)<p>Finally, note that for logging into your password manager itself, you'll always require something outside your password manager to login, probably a password, but possibly a YubiKey; your choice. (It's your one "last password," as they call it.)<p><a href="https://danfabulich.medium.com/passkeys-are-just-passwords-that-require-a-password-manager-ebb7f2fdcadf" rel="nofollow">https://danfabulich.medium.com/passkeys-are-just-passwords-t...</a><p>P.S. It's past time to move off of LastPass. LastPass lost all of your passwords <i>again</i> last month, just like they did in 2022. The most similar service is 1Password. If you like LastPass, you'll like 1Password about the same, but 1Password hasn't had multiple terrible security breaches.</p>
]]></description><pubDate>Wed, 22 Jul 2026 15:23:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=49008296</link><dc:creator>dfabulich</dc:creator><comments>https://news.ycombinator.com/item?id=49008296</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49008296</guid></item><item><title><![CDATA[New comment by dfabulich in "What AI did to stackoverflow in a graph"]]></title><description><![CDATA[
<p><a href="https://diff.wikimedia.org/2025/10/17/new-user-trends-on-wikipedia/" rel="nofollow">https://diff.wikimedia.org/2025/10/17/new-user-trends-on-wik...</a></p>
]]></description><pubDate>Sun, 19 Jul 2026 00:50:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=48963945</link><dc:creator>dfabulich</dc:creator><comments>https://news.ycombinator.com/item?id=48963945</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48963945</guid></item><item><title><![CDATA[New comment by dfabulich in "What AI did to stackoverflow in a graph"]]></title><description><![CDATA[
<p>Wikipedia's traffic (and donations) are collapsing. <a href="https://diff.wikimedia.org/2025/10/17/new-user-trends-on-wikipedia/" rel="nofollow">https://diff.wikimedia.org/2025/10/17/new-user-trends-on-wik...</a><p>People don't like to think of it this way, but Wikipedia is funded by ads. Except, the ads only advertise one thing: requests for donations. If people don't visit Wikipedia, because the AI regurgitated Wikipedia's answers, they won't see Wikipedia's donation ads, and they won't donate.<p>Over time, if current trends continue, more and more people won't even know about Wikipedia. They won't have any "warm feeling" towards the project, because they never go there, they never use it, they never see what good it does them.</p>
]]></description><pubDate>Sun, 19 Jul 2026 00:49:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=48963936</link><dc:creator>dfabulich</dc:creator><comments>https://news.ycombinator.com/item?id=48963936</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48963936</guid></item><item><title><![CDATA[New comment by dfabulich in "What AI did to stackoverflow in a graph"]]></title><description><![CDATA[
<p>The graph proves the cause of their decline was AI, and not aggressive question moderation.<p>Ask yourself: in what year did it become difficult to ask questions on Stack Overflow? 2014? 2016? 2018? 2020? Aggressive question-closing was part of their design from the very beginning. Their high barriers to question-asking was the cause of their <i>rise</i>, as their primary user was never question writers: it was Google, and anonymous Google users. The whole thing was an SEO play from start to finish.<p>It's fun to imagine that their aggressive moderation was the "real" cause of their decline. It feels so gratifying, doesn't it? Finally those assholes got their comeuppance, because of their bad behavior!<p>But that's not why they failed. They failed because SEO businesses can't survive when AI answers the question directly, without referring you any traffic.<p>(The same thing is happening to Wikipedia, BTW, which is also aggressively moderated.)</p>
]]></description><pubDate>Sat, 18 Jul 2026 17:10:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=48959970</link><dc:creator>dfabulich</dc:creator><comments>https://news.ycombinator.com/item?id=48959970</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48959970</guid></item><item><title><![CDATA[Chrome is prototyping HTML client-side includes]]></title><description><![CDATA[
<p>https://groups.google.com/a/chromium.org/g/blink-dev/c/rjBSVWAGoHo/m/FhEGrTIkAwAJ?pli=1<p>"Declaratively control various aspect of HTML fragments:"<p><pre><code>  - Sanitize them
  - Bring them from a separate URL (aka "client side include")
  - Buffer them instead of stream
</code></pre>
There's an "explainer" doc about how it would work here: https://github.com/WICG/declarative-partial-updates/blob/main/fragment-include-explainer.md</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48941361">https://news.ycombinator.com/item?id=48941361</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 16 Jul 2026 22:55:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=48941361</link><dc:creator>dfabulich</dc:creator><comments>https://news.ycombinator.com/item?id=48941361</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48941361</guid></item></channel></rss>