<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: fredrikholm</title><link>https://news.ycombinator.com/user?id=fredrikholm</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 23 May 2026 09:04:03 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=fredrikholm" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by fredrikholm in "Dcmake: A new CMake debugger UI"]]></title><description><![CDATA[
<p>Having to debug the build system to your build system is something else.</p>
]]></description><pubDate>Sun, 12 Apr 2026 06:04:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=47736584</link><dc:creator>fredrikholm</dc:creator><comments>https://news.ycombinator.com/item?id=47736584</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47736584</guid></item><item><title><![CDATA[New comment by fredrikholm in "Principles of Mechanical Sympathy"]]></title><description><![CDATA[
<p>> When I observe normies they don't seem to care. They'll force and abuse things all the time. I did wonder if it was part of my predisposition towards engineering.<p>Caring implies doing the right thing, which you can't afford lest you now be bogged down with the burden of doing it correctly, which requires effort.<p>Some people use dull knives because the thought of maintaining and sharpening them is worse than almost losing a finger every time they need to cut a tomato in half.<p>I suspect that a lot of people find proactive and sustained effort to be so draining that they'd rather continually have second rate experiences and find peace in that. Then there's people who just generally don't care.<p>I'm hoping (for my own sanity) that this is a bias on the observer as it's easy to look at someone from the outside and not see the areas where they do care and do the right more times than not. I know I've been unable to live up to my own standards plenty of times throughout the years for factors outside of caring.</p>
]]></description><pubDate>Fri, 10 Apr 2026 09:54:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=47715744</link><dc:creator>fredrikholm</dc:creator><comments>https://news.ycombinator.com/item?id=47715744</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47715744</guid></item><item><title><![CDATA[New comment by fredrikholm in "Bringing Clojure programming to Enterprise (2021)"]]></title><description><![CDATA[
<p>> You don't need a repl for this workflow and it can be easily implemented in any language. `ls *.MY_LANG | entr -c run.sh` You get feedback whenever you save the file.<p>As in restarting the entire program and re-running every subsequent query/state changing mechanism that got you there in the first place, being careful not to accidentally run other parts of the program, setting it up to be just so, having to then rewrite parts if you then want to try something somewhere else?<p>Perhaps I'm misunderstanding you, because that sounds horrible unless you're scripting something small with one path.<p>The whole point of the REPL is that you evaluate whatever functions you need to get into your desired state and work from there. The ad hoc nature of it is what makes you able to just dig into a part of the code base and get going, even if that project is massive.<p>> Personally, I find waiting more than 200ms unacceptable and really < 50ms is ideal.<p>Calling a function on a running program takes microseconds; you're not restarting anything.</p>
]]></description><pubDate>Thu, 02 Apr 2026 21:23:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=47620388</link><dc:creator>fredrikholm</dc:creator><comments>https://news.ycombinator.com/item?id=47620388</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47620388</guid></item><item><title><![CDATA[New comment by fredrikholm in "Bringing Clojure programming to Enterprise (2021)"]]></title><description><![CDATA[
<p>You evaulate code within your editor against the REPL, seeing the output in the same window you're writing in (perhaps in a different buffer).<p>The cycle is:<p><pre><code>  1. Write production code.
  2. Write some dummy code in the same file (fake data, setup).
  3. Evaluate that dummy code. See what happens.
  4. Modify  code until satisfied.
</code></pre>
Your feedback loop is now single digit seconds, without context switching. It's extremely relaxing compared to the alternatives (rerunning tests, launching the program with flags, what have you).</p>
]]></description><pubDate>Thu, 02 Apr 2026 12:52:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=47613794</link><dc:creator>fredrikholm</dc:creator><comments>https://news.ycombinator.com/item?id=47613794</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47613794</guid></item><item><title><![CDATA[New comment by fredrikholm in "4D Doom"]]></title><description><![CDATA[
<p>If you don't mind me asking, how old are you, and how did this progress? I'm in my mid thirties and am noticing some minor deterioration, but I'm writing it off to loss of sleep due to having small kids.<p>My curiosity is if this is like you suggest, ingrained patterns, or if there is actual slow down with age. I hear different opinions and am finding it difficult to navigate as I deal with my own, albeit mild, aging.</p>
]]></description><pubDate>Wed, 01 Apr 2026 07:32:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=47597959</link><dc:creator>fredrikholm</dc:creator><comments>https://news.ycombinator.com/item?id=47597959</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47597959</guid></item><item><title><![CDATA[New comment by fredrikholm in "Generators in Lone Lisp"]]></title><description><![CDATA[
<p>Thank you for great articles and what seems to be a very nice Lisp! I've written so many toy Lisps over the years that I've lost count, always fun to see when they are done more seriously.<p>A suggestion to the website index, could you add dates to the entries? I find the numbered list confusing as its not entirely clear in what order they are listed.</p>
]]></description><pubDate>Fri, 27 Mar 2026 10:28:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=47540933</link><dc:creator>fredrikholm</dc:creator><comments>https://news.ycombinator.com/item?id=47540933</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47540933</guid></item><item><title><![CDATA[New comment by fredrikholm in "Sunsetting the Techempower Framework Benchmarks"]]></title><description><![CDATA[
<p>> too many entries, most of which seem tuned to cheating benchmarks<p>Even for entries that didn't cheat, the code was sometimes unidiomatic in the sense that "real programmers can write Fortran in any language".<p>This[0] article articulates the issue with by highlighting an ASP.NET implementation that was faster than more 'honest' Java/Go implementations primarily by not using ASP.NET features, skirting some philosophical line of what it means to use something.<p>For me, the more interesting discussion of whether a language/library is faster/leaner than another exists in actual idiomatic use. In some languages you are actively sweating over individual allocations; in some you're encouraged to allocate collections and immediately throw them away. Being highly concerned with memory and performance in the latter type of language happens, but is seldom the dominant approach in the larger ecosystem.<p>[0] <a href="https://dusted.codes/how-fast-is-really-aspnet-core" rel="nofollow">https://dusted.codes/how-fast-is-really-aspnet-core</a></p>
]]></description><pubDate>Tue, 24 Mar 2026 09:04:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=47500115</link><dc:creator>fredrikholm</dc:creator><comments>https://news.ycombinator.com/item?id=47500115</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47500115</guid></item><item><title><![CDATA[New comment by fredrikholm in "How to talk to anyone and why you should"]]></title><description><![CDATA[
<p>Learning basic Levantine Arabic has brought me more smiles and free meals than I can count. It's been deeply healing in challenging the negative narratives surrounding these very warm people.</p>
]]></description><pubDate>Mon, 02 Mar 2026 15:09:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=47218957</link><dc:creator>fredrikholm</dc:creator><comments>https://news.ycombinator.com/item?id=47218957</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47218957</guid></item><item><title><![CDATA[New comment by fredrikholm in "Implementing Auto Tiling with Just 5 Tiles"]]></title><description><![CDATA[
<p>If you only had two tilesets, sure. This scales with square of n, so in a real game you're looking at a 4000-8000 long if-else chain.<p>You're going to spend 100x more time maintaining that disaster than you'd have learning a (to this problem) fundamental algorithm. Shoulders of giants.</p>
]]></description><pubDate>Sat, 14 Feb 2026 09:06:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=47012945</link><dc:creator>fredrikholm</dc:creator><comments>https://news.ycombinator.com/item?id=47012945</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47012945</guid></item><item><title><![CDATA[New comment by fredrikholm in "Implementing Auto Tiling with Just 5 Tiles"]]></title><description><![CDATA[
<p>Tiling sprites is a wonderful example of something that starts off relatively simple and then explodes into all kinds of interesting headaches.<p>In the beginning, you're looking up a set of UVs in a table indexed by some mask value.<p>In the end, you're debugging errors where one off by one error cascades into strange realms of indexing the wrong (unloaded) chunk with coordinates rolling over to positions that make no sense, looking up neighbours that look one way yet you end up drawing something completely different.<p>The suggest solution is an elegant and relatively common approach to what would otherwise be a naive series of nested 40+ if statements consisting of much swearing and sprite editing.</p>
]]></description><pubDate>Fri, 13 Feb 2026 13:32:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=47002504</link><dc:creator>fredrikholm</dc:creator><comments>https://news.ycombinator.com/item?id=47002504</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47002504</guid></item><item><title><![CDATA[New comment by fredrikholm in "SectorC: A C Compiler in 512 bytes (2023)"]]></title><description><![CDATA[
<p>Hey stop it with the ad hominems!</p>
]]></description><pubDate>Sun, 08 Feb 2026 13:38:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=46934081</link><dc:creator>fredrikholm</dc:creator><comments>https://news.ycombinator.com/item?id=46934081</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46934081</guid></item><item><title><![CDATA[New comment by fredrikholm in "The C-Shaped Hole in Package Management"]]></title><description><![CDATA[
<p>And with header only libraries (like stb) its even less than that.<p>I primarily write C nowadays to regain sanity from doing my day job, and the fact that there is zero bit rot and setup/fixing/middling to get things running is in stark contrast to the horrors I have to deal with professionally.</p>
]]></description><pubDate>Tue, 27 Jan 2026 14:05:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=46780064</link><dc:creator>fredrikholm</dc:creator><comments>https://news.ycombinator.com/item?id=46780064</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46780064</guid></item><item><title><![CDATA[New comment by fredrikholm in "cURL removes bug bounties"]]></title><description><![CDATA[
<p>> An entry fee that is reimbursed if the bug turns out to matter would stop this, real quick.<p>I refer to this as the Notion-to-Confluence cost border.<p>When Notion first came out, it was snappy and easy to use. Creating a page being essentially free of effort, you very quickly had thousands of them, mostly useless.<p>Confluence, at least in west EU, is offensively slow. The thought of adding a page is sufficiently demoralizing that it's easier to update an existing page and save yourself minutes of request time outs. Consequently, there's some ~20 pages even in large companies.<p>I'm not saying that <i>sleep(15 * SECOND)</i> is the way to counter, but once something becomes very easy to do at scale, it explodes to the point where the original utility is now lost in a sea of noise.</p>
]]></description><pubDate>Wed, 21 Jan 2026 07:19:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=46702176</link><dc:creator>fredrikholm</dc:creator><comments>https://news.ycombinator.com/item?id=46702176</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46702176</guid></item><item><title><![CDATA[New comment by fredrikholm in "“Stop Designing Languages. Write Libraries Instead” (2016)"]]></title><description><![CDATA[
<p>The omission of quotations in the title triggered my Lisp-damaged brain to man the walls, only to immediately be met with Ruby and Scheme examples. False alarm.</p>
]]></description><pubDate>Wed, 07 Jan 2026 13:12:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=46526004</link><dc:creator>fredrikholm</dc:creator><comments>https://news.ycombinator.com/item?id=46526004</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46526004</guid></item><item><title><![CDATA[New comment by fredrikholm in "The C3 Programming Language"]]></title><description><![CDATA[
<p><a href="https://craftinginterpreters.com/introduction.html" rel="nofollow">https://craftinginterpreters.com/introduction.html</a><p>AST interpreter in Java from scratch, followed by the same language in a tight bytecode VM in C.<p>Great book; very good introduction to the subject.</p>
]]></description><pubDate>Sat, 03 Jan 2026 20:03:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=46480946</link><dc:creator>fredrikholm</dc:creator><comments>https://news.ycombinator.com/item?id=46480946</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46480946</guid></item><item><title><![CDATA[New comment by fredrikholm in "The appropriate amount of effort is zero"]]></title><description><![CDATA[
<p>And nothing says they weren't thinking about the problem when it happened.<p>I've had a lot of "aha" moments not sitting by my desk, but that doesn't mean that I wasn't thinking of the problem. When people say they had an idea in the shower, I suspect it's precisely because they were undistracted enough to focus on the problem.</p>
]]></description><pubDate>Tue, 16 Dec 2025 09:13:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=46286384</link><dc:creator>fredrikholm</dc:creator><comments>https://news.ycombinator.com/item?id=46286384</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46286384</guid></item><item><title><![CDATA[New comment by fredrikholm in "Google Titans architecture, helping AI have long-term memory"]]></title><description><![CDATA[
<p>As an adult you have the luxury of not living in a false dichotomy where the only two options are VR or fighting.<p>As a parent you have the responsibility of spending time with the kids when they're young. You can watch your shows later.</p>
]]></description><pubDate>Mon, 08 Dec 2025 08:48:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=46189930</link><dc:creator>fredrikholm</dc:creator><comments>https://news.ycombinator.com/item?id=46189930</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46189930</guid></item><item><title><![CDATA[New comment by fredrikholm in "Google Titans architecture, helping AI have long-term memory"]]></title><description><![CDATA[
<p><p><pre><code>  unable to interact with other people

  just give it to them and use XR glasses for yourself</code></pre></p>
]]></description><pubDate>Sun, 07 Dec 2025 20:47:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=46184996</link><dc:creator>fredrikholm</dc:creator><comments>https://news.ycombinator.com/item?id=46184996</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46184996</guid></item><item><title><![CDATA[New comment by fredrikholm in "Why don't people return their shopping carts?"]]></title><description><![CDATA[
<p>We do that in Sweden if the kids made a mess. Same in Denmark, Norway, Finland, Netherlands and I'd assume Japan and Korea as well.<p>What's so bad about it? We had a great meal at [place], might as well help the overwhelmed person working minimum wage by giving them some breathing space.<p>Put the cart back man.</p>
]]></description><pubDate>Mon, 17 Nov 2025 19:08:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=45956854</link><dc:creator>fredrikholm</dc:creator><comments>https://news.ycombinator.com/item?id=45956854</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45956854</guid></item><item><title><![CDATA[New comment by fredrikholm in "Widespread distribution of bacteria containing PETases across global oceans"]]></title><description><![CDATA[
<p>> before we learn it's actually terrible.<p>Before <i>you</i> learn it's actually terrible if I may.</p>
]]></description><pubDate>Tue, 11 Nov 2025 21:39:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=45893242</link><dc:creator>fredrikholm</dc:creator><comments>https://news.ycombinator.com/item?id=45893242</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45893242</guid></item></channel></rss>