<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: karatinversion</title><link>https://news.ycombinator.com/user?id=karatinversion</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 08 Apr 2026 15:17:03 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=karatinversion" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by karatinversion in "U.K. demand for a back door to Apple data threatens Americans, lawmakers say"]]></title><description><![CDATA[
<p>The people in the UK actually go to prison though</p>
]]></description><pubDate>Thu, 13 Feb 2025 19:44:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=43040386</link><dc:creator>karatinversion</dc:creator><comments>https://news.ycombinator.com/item?id=43040386</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43040386</guid></item><item><title><![CDATA[New comment by karatinversion in "Software development topics I've changed my mind on after 10 years"]]></title><description><![CDATA[
<p>There's also the fact that common methods threw exception types that were not final, and in fact overly generic. If I call a method that declares itself to throw NoSuchFileException or DirectoryNotEmptyException, I can have a pretty good idea what I might do about it. If it throws IOException without elaboration, on the other hand...</p>
]]></description><pubDate>Wed, 05 Feb 2025 11:58:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=42947285</link><dc:creator>karatinversion</dc:creator><comments>https://news.ycombinator.com/item?id=42947285</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42947285</guid></item><item><title><![CDATA[New comment by karatinversion in "Oh Shit, Git?"]]></title><description><![CDATA[
<p>I just tested it by creating a repo with two branches without a common ancestor, and I was able to move a branch pointer to either history with update-ref, so no, I don't think so</p>
]]></description><pubDate>Mon, 20 Jan 2025 16:26:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=42770192</link><dc:creator>karatinversion</dc:creator><comments>https://news.ycombinator.com/item?id=42770192</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42770192</guid></item><item><title><![CDATA[New comment by karatinversion in "Oh Shit, Git?"]]></title><description><![CDATA[
<p>You are looking for<p><pre><code>  git update-ref <branch-name> <commit-sha></code></pre></p>
]]></description><pubDate>Thu, 16 Jan 2025 23:44:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=42732411</link><dc:creator>karatinversion</dc:creator><comments>https://news.ycombinator.com/item?id=42732411</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42732411</guid></item><item><title><![CDATA[New comment by karatinversion in "No Calls"]]></title><description><![CDATA[
<p>> we don't do commissions, we just pay good salaries<p>The semi-joke I always heard about this was that if you don't pay commissions, you'll hire a sales team who are good at selling you that they are doing a good job, rather than selling the prodct.</p>
]]></description><pubDate>Thu, 16 Jan 2025 16:03:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=42727095</link><dc:creator>karatinversion</dc:creator><comments>https://news.ycombinator.com/item?id=42727095</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42727095</guid></item><item><title><![CDATA[New comment by karatinversion in "Scrabble star wins Spanish world title despite not speaking Spanish"]]></title><description><![CDATA[
<p>I don't know Spanish scrabble, but I have played Finnish scrabbe - another language that relies heavily on conjugation - and it disallows all conjugated and declined forms of words, except for nominative plurals.</p>
]]></description><pubDate>Fri, 13 Dec 2024 10:54:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=42407540</link><dc:creator>karatinversion</dc:creator><comments>https://news.ycombinator.com/item?id=42407540</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42407540</guid></item><item><title><![CDATA[New comment by karatinversion in "Why Most Published Research Findings Are False (2005)"]]></title><description><![CDATA[
<p>To say of that which is, that is is, or of that which is not, that it is not</p>
]]></description><pubDate>Wed, 25 Sep 2024 09:53:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=41645559</link><dc:creator>karatinversion</dc:creator><comments>https://news.ycombinator.com/item?id=41645559</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41645559</guid></item><item><title><![CDATA[New comment by karatinversion in "No one expects young men to do anything and they respond by doing nothing (2022)"]]></title><description><![CDATA[
<p>Luckily, the link provides just this information:<p>35-44: 62%
45-54: 70%
55-64: 75%
65+:   79%</p>
]]></description><pubDate>Mon, 22 Jul 2024 13:42:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=41034275</link><dc:creator>karatinversion</dc:creator><comments>https://news.ycombinator.com/item?id=41034275</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41034275</guid></item><item><title><![CDATA[New comment by karatinversion in "The zombie misconception of theoretical computer science"]]></title><description><![CDATA[
<p>To tie this back to TFA, even before we knew that the Halting problem was uncomputable, we could have defined<p><pre><code>  f(n) = { 1 if there is a Turing machine with at most n states that solves the Halting problem;
           0 otherwise }
</code></pre>
and we can easily show that f(n) is computable without proving that the Halting problem is undecideable. Viz., f is either constant 0; or equal to a function of the form<p><pre><code>  g_k(n) = { 1 if n >= k;
             0 if n < k },
</code></pre>
and both the constant 0 function, and all the g_k functions, are computable; thus f is computable.</p>
]]></description><pubDate>Tue, 09 Jul 2024 10:54:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=40914589</link><dc:creator>karatinversion</dc:creator><comments>https://news.ycombinator.com/item?id=40914589</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40914589</guid></item><item><title><![CDATA[New comment by karatinversion in "The Byte Order Fiasco (2021)"]]></title><description><![CDATA[
<p>As I understand it, the C spec defines what are valid programs, and for valid programs, either specifies what their observable side effects must be, or leaves them either unspecified or implementation defined. Importantly, programs with undefined behaviour are excluded from the class of valid programs; thus the spec imposes no requirement on the resulting behaviour. To quote,<p>> Permissible undefined behavior ranges from ignoring the situation completely with unpredictable results, to […]<p>And I think this is where “can’t happen” comes in: in the case of undefined behaviour, the compiler is free to emit whatever it pleases, including pretending it cannot happen!</p>
]]></description><pubDate>Sat, 06 Jul 2024 22:56:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=40893971</link><dc:creator>karatinversion</dc:creator><comments>https://news.ycombinator.com/item?id=40893971</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40893971</guid></item><item><title><![CDATA[New comment by karatinversion in "Let's stop counting centuries"]]></title><description><![CDATA[
<p>Do you also count the first decade of your life from January 1st of the year before you were born?</p>
]]></description><pubDate>Sat, 06 Jul 2024 08:53:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=40889100</link><dc:creator>karatinversion</dc:creator><comments>https://news.ycombinator.com/item?id=40889100</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40889100</guid></item><item><title><![CDATA[New comment by karatinversion in "Let's stop counting centuries"]]></title><description><![CDATA[
<p>And also, the system is a direct descendant of regnal numbering, where zero wouldn’t have made sense even if invented (there is no zeroth year of Joe Biden’s term of office).</p>
]]></description><pubDate>Sat, 06 Jul 2024 08:51:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=40889091</link><dc:creator>karatinversion</dc:creator><comments>https://news.ycombinator.com/item?id=40889091</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40889091</guid></item><item><title><![CDATA[New comment by karatinversion in "The Byte Order Fiasco (2021)"]]></title><description><![CDATA[
<p>I always thought the problem with this was that the compilers do loads of these optimisations in very mundane ways. Eg if I have a<p><pre><code>  #define FOO 17
  void bar(int x, int y) {
    if (x + y >= FOO) {
      //do stuff
    }
  }
  void baz(int x) {
    bar(x, FOO);
  }
</code></pre>
the compiler can inline the call to bar in baz, and then optimise the condition to (x>=0)… because signed integer overflow is undefined, so can’t happen, so the two conditions are equivalent.<p>The countless messages about optimisations like that would swamp ones about real dangerous optimisations.</p>
]]></description><pubDate>Sun, 30 Jun 2024 21:35:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=40840571</link><dc:creator>karatinversion</dc:creator><comments>https://news.ycombinator.com/item?id=40840571</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40840571</guid></item><item><title><![CDATA[New comment by karatinversion in "Google Maps is killing Timeline for Web"]]></title><description><![CDATA[
<p>Only if the interfaces the underlying implementations provide remain stable</p>
]]></description><pubDate>Wed, 05 Jun 2024 14:10:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=40585007</link><dc:creator>karatinversion</dc:creator><comments>https://news.ycombinator.com/item?id=40585007</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40585007</guid></item><item><title><![CDATA[New comment by karatinversion in "Three Laws of Software Complexity"]]></title><description><![CDATA[
<p>Doesn’t the fact you do use it mean the customer (the one who chooses the vendor) did not care, though?</p>
]]></description><pubDate>Wed, 29 May 2024 12:30:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=40511227</link><dc:creator>karatinversion</dc:creator><comments>https://news.ycombinator.com/item?id=40511227</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40511227</guid></item><item><title><![CDATA[New comment by karatinversion in "The problem with new URL(), and how URL.parse() fixes that"]]></title><description><![CDATA[
<p>On top of all the other problems pointed out, java's checked exceptions don't even do a good job of indicating possible failure conditions. The standard library set the tone on this with exception like IOException, which has an enormous amount of subclasses represting different IOExceptions, and is thrown by anything related to IO. So I still need to rely on documenation or code inspection to understand what exceptions might actually be thrown and what they mean, if I want to recover from errors.<p>The classic case of this is that the compiler cannot tell that<p><pre><code>    new StringReader("Example").read()
</code></pre>
doesn't throw an SSLException.</p>
]]></description><pubDate>Mon, 20 May 2024 16:10:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=40417011</link><dc:creator>karatinversion</dc:creator><comments>https://news.ycombinator.com/item?id=40417011</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40417011</guid></item><item><title><![CDATA[New comment by karatinversion in "Sleeping Tesla driver caught on Swedish highway – after 25 miles"]]></title><description><![CDATA[
<p>The iPhone launched 17 years ago. The correct rough approximation is now "20 years ago" :)</p>
]]></description><pubDate>Mon, 29 Apr 2024 13:04:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=40197796</link><dc:creator>karatinversion</dc:creator><comments>https://news.ycombinator.com/item?id=40197796</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40197796</guid></item><item><title><![CDATA[New comment by karatinversion in "Where do non-primitive recursive functions come up naturally?"]]></title><description><![CDATA[
<p>I always write a negative “is empty” check as “size > 0” for this reason</p>
]]></description><pubDate>Mon, 04 Dec 2023 15:59:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=38518867</link><dc:creator>karatinversion</dc:creator><comments>https://news.ycombinator.com/item?id=38518867</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38518867</guid></item><item><title><![CDATA[New comment by karatinversion in "Stuxnet Source Code"]]></title><description><![CDATA[
<p>There’s always movfuscator [1]<p>[1] <a href="https://github.com/Battelle/movfuscator">https://github.com/Battelle/movfuscator</a></p>
]]></description><pubDate>Mon, 04 Dec 2023 14:00:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=38517268</link><dc:creator>karatinversion</dc:creator><comments>https://news.ycombinator.com/item?id=38517268</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38517268</guid></item><item><title><![CDATA[New comment by karatinversion in "Git Branches: Intuition and Reality"]]></title><description><![CDATA[
<p>No, that’s not right. If you did that, you would need to force push to get the result pushed to the remote.</p>
]]></description><pubDate>Thu, 23 Nov 2023 18:54:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=38396142</link><dc:creator>karatinversion</dc:creator><comments>https://news.ycombinator.com/item?id=38396142</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38396142</guid></item></channel></rss>