<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: smarx</title><link>https://news.ycombinator.com/user?id=smarx</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 26 Jun 2026 23:55:51 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=smarx" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by smarx in "People Don't Understand OOP"]]></title><description><![CDATA[
<p>I think it's Kernighan, actually: <a href="https://www.laws-of-software.com/laws/kernighan/" rel="nofollow">https://www.laws-of-software.com/laws/kernighan/</a>.</p>
]]></description><pubDate>Thu, 01 Feb 2024 00:20:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=39211395</link><dc:creator>smarx</dc:creator><comments>https://news.ycombinator.com/item?id=39211395</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39211395</guid></item><item><title><![CDATA[Post mortem on Linear incident from Jan 24th, 2024]]></title><description><![CDATA[
<p>Article URL: <a href="https://linear.app/blog/linear-incident-on-jan-24th-2024">https://linear.app/blog/linear-incident-on-jan-24th-2024</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=39201287">https://news.ycombinator.com/item?id=39201287</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 31 Jan 2024 08:05:21 +0000</pubDate><link>https://linear.app/blog/linear-incident-on-jan-24th-2024</link><dc:creator>smarx</dc:creator><comments>https://news.ycombinator.com/item?id=39201287</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39201287</guid></item><item><title><![CDATA[Dynamic Programming Is Easy]]></title><description><![CDATA[
<p>Article URL: <a href="https://smarx.com/posts/2020/09/dynamic-programming-is-easy/">https://smarx.com/posts/2020/09/dynamic-programming-is-easy/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=38994685">https://news.ycombinator.com/item?id=38994685</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 14 Jan 2024 21:39:17 +0000</pubDate><link>https://smarx.com/posts/2020/09/dynamic-programming-is-easy/</link><dc:creator>smarx</dc:creator><comments>https://news.ycombinator.com/item?id=38994685</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38994685</guid></item><item><title><![CDATA[Hi, My Name Is Keyboard]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/skysafe/reblog/tree/main/cve-2023-45866">https://github.com/skysafe/reblog/tree/main/cve-2023-45866</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=38629770">https://news.ycombinator.com/item?id=38629770</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 13 Dec 2023 16:32:23 +0000</pubDate><link>https://github.com/skysafe/reblog/tree/main/cve-2023-45866</link><dc:creator>smarx</dc:creator><comments>https://news.ycombinator.com/item?id=38629770</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38629770</guid></item><item><title><![CDATA[New comment by smarx in "4th edition of Physically Based Rendering is now freely available online"]]></title><description><![CDATA[
<p>The ship has sailed on this term of art, but as a native English speaker, I agree with you that it's ungrammatical. I would use a hyphen, though: "physics-based." This answer agrees with you (and me): <a href="https://english.stackexchange.com/a/428679" rel="nofollow noreferrer">https://english.stackexchange.com/a/428679</a>.<p>Here's one way to think about _why_ it sounds wrong. "Physically based" would mean that "physically" is the answer to the question "How is it based?" To a native English speaker, that question sounds odd. A more natural question is "What is it based on?" To answer that question, you need a noun: "It's based on physics." Hence the construct "physics-based," like "evidence-based medicine" or "merit-based scholarships."</p>
]]></description><pubDate>Thu, 02 Nov 2023 16:11:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=38115663</link><dc:creator>smarx</dc:creator><comments>https://news.ycombinator.com/item?id=38115663</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38115663</guid></item><item><title><![CDATA[ASCII protocol buffers as config files]]></title><description><![CDATA[
<p>Article URL: <a href="https://rachelbythebay.com/w/2023/10/05/config/">https://rachelbythebay.com/w/2023/10/05/config/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=37786838">https://news.ycombinator.com/item?id=37786838</a></p>
<p>Points: 2</p>
<p># Comments: 2</p>
]]></description><pubDate>Fri, 06 Oct 2023 03:23:59 +0000</pubDate><link>https://rachelbythebay.com/w/2023/10/05/config/</link><dc:creator>smarx</dc:creator><comments>https://news.ycombinator.com/item?id=37786838</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37786838</guid></item><item><title><![CDATA[DALL-E 2 has a secret language]]></title><description><![CDATA[
<p>Article URL: <a href="https://twitter.com/giannis_daras/status/1531693093040230402">https://twitter.com/giannis_daras/status/1531693093040230402</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=31573282">https://news.ycombinator.com/item?id=31573282</a></p>
<p>Points: 619</p>
<p># Comments: 112</p>
]]></description><pubDate>Tue, 31 May 2022 18:46:46 +0000</pubDate><link>https://twitter.com/giannis_daras/status/1531693093040230402</link><dc:creator>smarx</dc:creator><comments>https://news.ycombinator.com/item?id=31573282</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31573282</guid></item><item><title><![CDATA[New comment by smarx in "Tell HN: Airbnb just stole me 5 minutes of my time adding dices"]]></title><description><![CDATA[
<p>I believe you failed the CAPTCHA. I assume the bottom right is the only correct answer.</p>
]]></description><pubDate>Mon, 21 Feb 2022 12:41:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=30415244</link><dc:creator>smarx</dc:creator><comments>https://news.ycombinator.com/item?id=30415244</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30415244</guid></item><item><title><![CDATA[New comment by smarx in "Messaging and chat control"]]></title><description><![CDATA[
<p>> Truly secure entity just <i>wouldn't have private keys on a server at all.</i><p>They don't. They have your <i>encrypted</i> private key, but there's no need to keep that secret. (The decryption key is derived from your password, so the password needs to be strong and secret.)<p>> Such agency can force PM to modify login process to derive password from submitted form, or to just switch private keys for non-encrypred ones, because the user won't even notice it.<p>Yes, definitely. It's hard to trust self-updating software (like JavaScript in the browser), particularly if you're concerned about targeted attacks. But creating your own private keys and then entering them <i>in the browser</i> wouldn't help you at all against that sort of attack. You would instead need a different type of client that could be trusted somehow not to leak your private key.<p>It's not uncommon for services like this to offer a downloadable version of the web client so you can pin a version and audit the code as needed. I think maybe <a href="https://github.com/ProtonMail/WebClient" rel="nofollow">https://github.com/ProtonMail/WebClient</a> is that for ProtonMail? If so, you should be able to verify that code and then use that. The fact that an encrypted copy of your private key will live on ProtonMail's servers shouldn't bother you.</p>
]]></description><pubDate>Mon, 09 Aug 2021 21:48:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=28122724</link><dc:creator>smarx</dc:creator><comments>https://news.ycombinator.com/item?id=28122724</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=28122724</guid></item><item><title><![CDATA[New comment by smarx in "Messaging and chat control"]]></title><description><![CDATA[
<p>That experiment shows that whatever is stored on ProtonMail's servers <i>plus your password</i> is sufficient to decrypt your emails. This could be explained by the private key being derived from or encrypted with your password. ProtonMail's documentation says it's the latter (<a href="https://protonmail.com/support/knowledge-base/how-is-the-private-key-stored/" rel="nofollow">https://protonmail.com/support/knowledge-base/how-is-the-pri...</a>):<p>> Your ProtonMail private key is generated in your browser. Before sending the private key to the server for storage, we encrypt it with your password (or mailbox password if you use two-password mode). This ensures that you and only you can use your private key.<p>So the only remaining question is whether ProtonMail has access to your password. If they do, they can decrypt your private key and then decrypt your emails. Often, passwords are sent in plaintext to a server for authentication. But ProtonMail uses the Secure Remote Password (SRP) protocol so they never see your password: <a href="https://en.wikipedia.org/wiki/Secure_Remote_Password_protocol" rel="nofollow">https://en.wikipedia.org/wiki/Secure_Remote_Password_protoco...</a>. (source: <a href="https://protonmail.com/blog/encrypted_email_authentication/" rel="nofollow">https://protonmail.com/blog/encrypted_email_authentication/</a>)<p>Of course, there are other threats to worry about, such as ProtonMail changing their client-side JavaScript to exfiltrate your password. But the system as they've documented it does not appear to have any way to decrypt your email server-side short of guessing your password.</p>
]]></description><pubDate>Mon, 09 Aug 2021 16:06:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=28118584</link><dc:creator>smarx</dc:creator><comments>https://news.ycombinator.com/item?id=28118584</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=28118584</guid></item><item><title><![CDATA[A Word on NFTs]]></title><description><![CDATA[
<p>Article URL: <a href="https://continuations.com/post/645017712412786688/a-word-on-nfts">https://continuations.com/post/645017712412786688/a-word-on-nfts</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=26378142">https://news.ycombinator.com/item?id=26378142</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 07 Mar 2021 18:14:18 +0000</pubDate><link>https://continuations.com/post/645017712412786688/a-word-on-nfts</link><dc:creator>smarx</dc:creator><comments>https://news.ycombinator.com/item?id=26378142</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26378142</guid></item><item><title><![CDATA[We fired our top talent. Best decision we ever made]]></title><description><![CDATA[
<p>Article URL: <a href="https://medium.freecodecamp.org/we-fired-our-top-talent-best-decision-we-ever-made-4c0a99728fde">https://medium.freecodecamp.org/we-fired-our-top-talent-best-decision-we-ever-made-4c0a99728fde</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=18871636">https://news.ycombinator.com/item?id=18871636</a></p>
<p>Points: 2</p>
<p># Comments: 1</p>
]]></description><pubDate>Thu, 10 Jan 2019 04:56:15 +0000</pubDate><link>https://medium.freecodecamp.org/we-fired-our-top-talent-best-decision-we-ever-made-4c0a99728fde</link><dc:creator>smarx</dc:creator><comments>https://news.ycombinator.com/item?id=18871636</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18871636</guid></item><item><title><![CDATA[New comment by smarx in "Show HN: Etherbots.io – Collectible fighting robots on the blockchain"]]></title><description><![CDATA[
<p>It's worse than that. They could just throw away all the sales from this contract, since it's not connected to anything.<p>They also failed to verify source code for the contract: <a href="https://etherscan.io/address/0x3c7767011C443EfeF2187cf1F2a4c02062da3998#code" rel="nofollow">https://etherscan.io/address/0x3c7767011C443EfeF2187cf1F2a4c...</a>, and the source code on GitHub is missing a file ("Ownable.sol"), making it difficult for anyone else to verify what source code is actually running.<p>I suppose the lack of verified source code doesn't matter, given my first point. People who are buying are placing a lot of trust in the "Fuel Bros Innovation Team."</p>
]]></description><pubDate>Sat, 27 Jan 2018 20:36:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=16247963</link><dc:creator>smarx</dc:creator><comments>https://news.ycombinator.com/item?id=16247963</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=16247963</guid></item><item><title><![CDATA[New comment by smarx in "Cryptographic filesystem for the cloud"]]></title><description><![CDATA[
<p>As far as I can tell, the IV is randomly chosen, as you would expect: <a href="https://github.com/cryfs/cryfs/blob/master/src/cpp-utils/crypto/symmetric/GCM_Cipher.h#L40" rel="nofollow">https://github.com/cryfs/cryfs/blob/master/src/cpp-utils/cry...</a>. Did you see something different?<p>Assuming the 128-bit IV is indeed randomly chosen, after encrypting a trillion blocks, you would have roughly a 1.5E-15   (on the order of a quadrillionth) chance of hitting a collision.<p>Unless I'm mistaken, even if you hit that one-in-a-quadrillion lottery, the result is that the two blocks encrypted with the same IV are more crackable (because you can XOR them together), not that the key itself is easier to obtain, right? (My understanding is that AES is resistant to known-plaintext attacks.)</p>
]]></description><pubDate>Wed, 01 Nov 2017 10:35:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=15600024</link><dc:creator>smarx</dc:creator><comments>https://news.ycombinator.com/item?id=15600024</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=15600024</guid></item><item><title><![CDATA[New comment by smarx in "React is the new Dojo"]]></title><description><![CDATA[
<p>I think this is what you're asking for:<p><pre><code>    <div id="root"></div>
    <script src="https://unpkg.com/react@16/umd/react.development.js"></script>
    <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
    <script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>
    <script type="text/babel">
      ReactDOM.render(
        <h1>Hello, world!</h1>,
        document.getElementById('root')
      );
    </script></code></pre></p>
]]></description><pubDate>Sat, 21 Oct 2017 16:37:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=15522420</link><dc:creator>smarx</dc:creator><comments>https://news.ycombinator.com/item?id=15522420</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=15522420</guid></item><item><title><![CDATA[New comment by smarx in "Zero-knowledge proofs, Zcash, and Ethereum"]]></title><description><![CDATA[
<p>You've given a clear, easy to understand example of <i>something</i>, and you've told people that this something is a zero-knowledge proof.<p>Anyone who doesn't know what a zero-knowledge proof is will give you positive feedback, because they had an easy time understanding the example you presented.<p>People who <i>do</i> know what a zero-knowledge proof is will correctly point out that the thing you described is not a zero-knowledge proof.<p>I think this explains the gap you're seeing between the feedback here and the feedback in "less technical forums." It's difficult to come up with real-world examples of zero-knowledge proofs, but there are two good examples on Wikipedia and one here (the "Where's Waldo?" example).</p>
]]></description><pubDate>Sun, 24 Sep 2017 02:53:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=15323033</link><dc:creator>smarx</dc:creator><comments>https://news.ycombinator.com/item?id=15323033</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=15323033</guid></item><item><title><![CDATA[New comment by smarx in "Dropbox New Plans: Pay If You Want 2FA"]]></title><description><![CDATA[
<p>Just to close the loop here, we’ve updated the page to include a checkmark for 2FA in the Pro column too. Again, all account types can use 2FA (and we recommend that they do!), and teams can additionally <i>require</i> 2FA for all their members.<p>See the updated page here: <a href="https://www.dropbox.com/plans?trigger=nr" rel="nofollow">https://www.dropbox.com/plans?trigger=nr</a>.</p>
]]></description><pubDate>Wed, 01 Feb 2017 05:01:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=13538408</link><dc:creator>smarx</dc:creator><comments>https://news.ycombinator.com/item?id=13538408</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=13538408</guid></item><item><title><![CDATA[New comment by smarx in "Dropbox New Plans: Pay If You Want 2FA"]]></title><description><![CDATA[
<p>I'm not 100% sure what that is about, but I'm pretty sure it relates to new functionality for migrating data from existing file servers.<p>The API at <a href="https://www.dropbox.com/developers" rel="nofollow">https://www.dropbox.com/developers</a> works for all account types. (Note that there are endpoints specific to team accounts when the functionality only makes sense there, like methods to add or remove members from a team, etc.)</p>
]]></description><pubDate>Wed, 01 Feb 2017 00:59:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=13537107</link><dc:creator>smarx</dc:creator><comments>https://news.ycombinator.com/item?id=13537107</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=13537107</guid></item><item><title><![CDATA[New comment by smarx in "Dropbox New Plans: Pay If You Want 2FA"]]></title><description><![CDATA[
<p>Engineering Manager at Dropbox here. Sorry for the confusion! This is an error on that page, presumably some miscommunication between groups at Dropbox. 2FA continues to be an available feature for all Dropbox users. The only difference between plans is that team plans allow administrators to <i>require</i> 2FA for all members of the team. That page will get updated soon to explain that feature properly.<p>See <a href="https://www.dropbox.com/help/363" rel="nofollow">https://www.dropbox.com/help/363</a> for more information.</p>
]]></description><pubDate>Wed, 01 Feb 2017 00:48:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=13537043</link><dc:creator>smarx</dc:creator><comments>https://news.ycombinator.com/item?id=13537043</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=13537043</guid></item><item><title><![CDATA[New comment by smarx in "Ask HN: Easy hosting for kids?"]]></title><description><![CDATA[
<p><a href="https://www.site44.com" rel="nofollow">https://www.site44.com</a> (I'm a founder.)</p>
]]></description><pubDate>Tue, 31 Jan 2017 01:09:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=13526612</link><dc:creator>smarx</dc:creator><comments>https://news.ycombinator.com/item?id=13526612</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=13526612</guid></item></channel></rss>