<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: jffhn</title><link>https://news.ycombinator.com/user?id=jffhn</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 16 Jun 2026 02:29:12 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=jffhn" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by jffhn in "21 years and counting of 'eight fallacies of distributed computing' (2025)"]]></title><description><![CDATA[
<p>Also, the four fallacies of local computing:<p>- The CPU is infinitely fast.<p>- RAM is infinite.<p>- CPU caches don't exist.<p>- Cache lines don't exist.</p>
]]></description><pubDate>Mon, 15 Jun 2026 06:28:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=48537368</link><dc:creator>jffhn</dc:creator><comments>https://news.ycombinator.com/item?id=48537368</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48537368</guid></item><item><title><![CDATA[New comment by jffhn in "It is time to give up the dualism introduced by the debate on consciousness"]]></title><description><![CDATA[
<p>It cannot be just a product of the body, else it could not have effect on the body and our tongues could not be moving speaking about it.</p>
]]></description><pubDate>Mon, 18 May 2026 15:47:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=48181427</link><dc:creator>jffhn</dc:creator><comments>https://news.ycombinator.com/item?id=48181427</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48181427</guid></item><item><title><![CDATA[New comment by jffhn in "It is time to give up the dualism introduced by the debate on consciousness"]]></title><description><![CDATA[
<p>We don't experience the sun going up and down, we experience its direction changing relative to the horizontal plane, and it is not an illusion: it matches planetary motion. The mistake arises when interpreting the raw experience. Sensations don't lie.
Another example: Metal feels colder than plastic, but the sensation is right again: you are loosing more heat when touching metal.</p>
]]></description><pubDate>Mon, 18 May 2026 15:35:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=48181278</link><dc:creator>jffhn</dc:creator><comments>https://news.ycombinator.com/item?id=48181278</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48181278</guid></item><item><title><![CDATA[New comment by jffhn in "How do I deal with memory leaks? (2022)"]]></title><description><![CDATA[
<p>Bounded collections still allow for useless reachings of their bounds, and corresponding memory and CPU wastes (and possibly functional/domain issues).<p>The main reason I saw around me for memory leaks in GC'ed languages, is devs only thinking about the 'add' part, not the 'when-to-remove' part. I always think of both and the only leaks I got were from slowdowns causing events to pile up in scheduler queues (deliberately not bounded).</p>
]]></description><pubDate>Sat, 09 May 2026 08:30:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=48073148</link><dc:creator>jffhn</dc:creator><comments>https://news.ycombinator.com/item?id=48073148</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48073148</guid></item><item><title><![CDATA[New comment by jffhn in "Over-editing refers to a model modifying code beyond what is necessary"]]></title><description><![CDATA[
<p>Before, not after: when the code makes it hard to implement a new feature (the definition of technical debt: code that is properly designed but only for previous features), first refactor the code to make the feature easy to implement, then implement the feature.</p>
]]></description><pubDate>Thu, 23 Apr 2026 15:45:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=47877168</link><dc:creator>jffhn</dc:creator><comments>https://news.ycombinator.com/item?id=47877168</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47877168</guid></item><item><title><![CDATA[New comment by jffhn in "Every layer of review makes you 10x slower"]]></title><description><![CDATA[
<p>>Do people really argue about variable names?<p>Of course they do. A program's code is mostly a graph of names; they can be cornerstones of its clarity, or sources of confusion and bugs.<p>The first thing I do when debugging is ensuring proper names, sometimes that's enough to make the bug obvious.</p>
]]></description><pubDate>Tue, 17 Mar 2026 07:34:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=47409657</link><dc:creator>jffhn</dc:creator><comments>https://news.ycombinator.com/item?id=47409657</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47409657</guid></item><item><title><![CDATA[New comment by jffhn in "The Vietnam government has banned rooted phones from using any banking app"]]></title><description><![CDATA[
<p>>We do not hurt criminals as punishment anymore, in the civilized age<p>Singapore is quite civilized, and they conduct caning strokes.</p>
]]></description><pubDate>Sat, 10 Jan 2026 10:49:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=46564591</link><dc:creator>jffhn</dc:creator><comments>https://news.ycombinator.com/item?id=46564591</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46564591</guid></item><item><title><![CDATA[New comment by jffhn in "Maybe comments should explain 'what' (2017)"]]></title><description><![CDATA[
<p>>where each line is extracted into its own method<p>As John Carmack said: "if a lot of operations are supposed to happen in a sequential fashion, their code should follow sequentially" (<a href="https://cbarrete.com/carmack.html" rel="nofollow">https://cbarrete.com/carmack.html</a>).<p>A single method with a few lines is easy to read, like the processor reading a single cache line, while having to jump around between methods is distracting and slow, like the processor having to read various RAM locations.<p>Depending on the language you can also have very good reasons to have many lines, for example in Java a method can't return multiple primitive values, so if you want to stick to primitives for performances you inline it and use curly braces to limit the scope of its internals.</p>
]]></description><pubDate>Sun, 04 Jan 2026 16:53:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=46489739</link><dc:creator>jffhn</dc:creator><comments>https://news.ycombinator.com/item?id=46489739</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46489739</guid></item><item><title><![CDATA[New comment by jffhn in "The highest quality codebase"]]></title><description><![CDATA[
<p>I can guarantee you that I have been doing just that for 20 years, creating and working on the same codebase, and that it only got better with time (cleaner code and more robust execution), though more complex because the domain itself did.
We would have been stuck in the accidental complexity of messy hacks and their buggy side effects if we had not continuously adapted and improved things.</p>
]]></description><pubDate>Fri, 12 Dec 2025 07:54:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=46241867</link><dc:creator>jffhn</dc:creator><comments>https://news.ycombinator.com/item?id=46241867</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46241867</guid></item><item><title><![CDATA[New comment by jffhn in "Trillions spent and big software projects are still failing"]]></title><description><![CDATA[
<p>In manufacturing there are economies of scale and adding more people increases workforce, in mindfacturing there are diseconomies of scale and adding more people increases confusion, yet many managers view software with a manufacturing mindset.</p>
]]></description><pubDate>Wed, 26 Nov 2025 12:15:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=46056691</link><dc:creator>jffhn</dc:creator><comments>https://news.ycombinator.com/item?id=46056691</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46056691</guid></item><item><title><![CDATA[New comment by jffhn in "The Software Essays That Shaped Me"]]></title><description><![CDATA[
<p>When I do functional unit tests, they tend to include the same functional logic as the code to test. What I strive for is then to express it in a different and possibly clearer way, and I see the testing as mutual testing of two implementations, one more easily humanly checkable.</p>
]]></description><pubDate>Sat, 04 Oct 2025 09:48:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=45472093</link><dc:creator>jffhn</dc:creator><comments>https://news.ycombinator.com/item?id=45472093</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45472093</guid></item><item><title><![CDATA[New comment by jffhn in "If you are good at code review, you will be good at using AI agents"]]></title><description><![CDATA[
<p>Agreed. A program is made of names, these names are of the utmost importance. For understanding, and also for searchability.<p>I do a lot of code reviews, and one of the main things I ask for, after bug fixes, is renaming things for readers to understand at first read unambiguously and to match the various conventions we use throughout the codebase.<p>Ex: new dev wrote "updateFoo()" for a method converting a domain thing "foo" from its type in layer "a" to its type in layer "b", so I asked him to use "convertFoo_aToB()" instead.</p>
]]></description><pubDate>Sat, 20 Sep 2025 12:16:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=45312683</link><dc:creator>jffhn</dc:creator><comments>https://news.ycombinator.com/item?id=45312683</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45312683</guid></item><item><title><![CDATA[New comment by jffhn in "TODOs Aren't for Doing"]]></title><description><![CDATA[
<p>I only use "TODO" eventually followed by a sub-classification like "TODO bug": it maximizes discoverability by other devs and tools, and allows for a lot of variants (both technical and/or functional) while still permitting a complete scan with a single grep.</p>
]]></description><pubDate>Tue, 22 Jul 2025 16:20:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=44649261</link><dc:creator>jffhn</dc:creator><comments>https://news.ycombinator.com/item?id=44649261</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44649261</guid></item><item><title><![CDATA[New comment by jffhn in "LLM Inevitabilism"]]></title><description><![CDATA[
<p>Or: the hardware that generates beliefs about how things should be - whether based on religious or ideological dogma -, as opposed to science which is not prescriptive and can only describe how things are.</p>
]]></description><pubDate>Tue, 15 Jul 2025 16:00:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=44572539</link><dc:creator>jffhn</dc:creator><comments>https://news.ycombinator.com/item?id=44572539</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44572539</guid></item><item><title><![CDATA[New comment by jffhn in "Experts have it easy (2024)"]]></title><description><![CDATA[
<p>Domains are often not very deep, as a lot of people need to understand them.<p>I've seen smart people quickly figure things out and propose upgrades in a matter of weeks, on points lifelong experts overlooked, or were too lazy to dig.<p>Reminds me of a company that was looking for people good in both the domain and software, to bridge the experts/devs gap (which is often a bottleneck, information flow between brains being slow and unreliable).
They found out that it was much easier to teach the domain to devs, than to teach software to domain experts, i.e. that software was the hard skill.</p>
]]></description><pubDate>Sun, 18 May 2025 15:27:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=44022070</link><dc:creator>jffhn</dc:creator><comments>https://news.ycombinator.com/item?id=44022070</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44022070</guid></item><item><title><![CDATA[New comment by jffhn in "The Problem with Teens Isn't Smartphones–It's Their Families"]]></title><description><![CDATA[
<p>>the same person with a different psychological education can become suicidal or give zero damn about the same situation<p>Or even like it. Reminds me of a quote about solitude: "I live on what others die of." (Michelangelo)</p>
]]></description><pubDate>Fri, 16 May 2025 14:06:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=44005705</link><dc:creator>jffhn</dc:creator><comments>https://news.ycombinator.com/item?id=44005705</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44005705</guid></item><item><title><![CDATA[New comment by jffhn in "Bloat is still software's biggest vulnerability (2024)"]]></title><description><![CDATA[
<p>>burnout from having to deal with bloated software and the deadlines associated with that<p>I did not have the deadlines, but to bear having to deal with bloated software, my solution was vodka: since it has no color, I filled mineral water bottles with it and everyone thought I was drinking water.</p>
]]></description><pubDate>Wed, 07 May 2025 14:57:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=43916581</link><dc:creator>jffhn</dc:creator><comments>https://news.ycombinator.com/item?id=43916581</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43916581</guid></item><item><title><![CDATA[New comment by jffhn in "What I've Learned from JJ"]]></title><description><![CDATA[
<p>Jujutsu - I like the name.<p>I often see programming as going MMA with data, until you get what you want out of it.<p>Using brute force algorithms is going berserk, vibe coding is spamming summons in hope they get the job done, etc.</p>
]]></description><pubDate>Fri, 02 May 2025 10:47:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=43868137</link><dc:creator>jffhn</dc:creator><comments>https://news.ycombinator.com/item?id=43868137</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43868137</guid></item><item><title><![CDATA[New comment by jffhn in "The Insanity of Being a Software Engineer"]]></title><description><![CDATA[
<p>>My largest source of sanity in this career is to spend extra time at work doing the things that I love in my position. Ironically, I get high performance ratings because of this - but have to fight to spend my time on it.<p>Why do you have to fight if it's extra time? And couldn't you avoid the fighting by just doing it on regular time?</p>
]]></description><pubDate>Tue, 08 Apr 2025 06:29:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=43618902</link><dc:creator>jffhn</dc:creator><comments>https://news.ycombinator.com/item?id=43618902</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43618902</guid></item><item><title><![CDATA[New comment by jffhn in "War story: the hardest bug I ever debugged"]]></title><description><![CDATA[
<p>>Though abs() returning negative numbers is hilarious.<p>Math.abs(Integer.MIN_VALUE) in Java very seriously returns -2147483648, as there is no int for 2147483648.</p>
]]></description><pubDate>Thu, 27 Mar 2025 07:07:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=43491079</link><dc:creator>jffhn</dc:creator><comments>https://news.ycombinator.com/item?id=43491079</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43491079</guid></item></channel></rss>