<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: et1337</title><link>https://news.ycombinator.com/user?id=et1337</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 23 Apr 2026 09:06:37 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=et1337" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by et1337 in "What is jj and why should I care?"]]></title><description><![CDATA[
<p>Jujutsu has a concept of mutable vs immutable commits to solve this. Usually everything in a remote branch is immutable. To work on a branch, I track it and that makes it mutable.</p>
]]></description><pubDate>Tue, 14 Apr 2026 14:43:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=47766304</link><dc:creator>et1337</dc:creator><comments>https://news.ycombinator.com/item?id=47766304</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47766304</guid></item><item><title><![CDATA[New comment by et1337 in "Number in man page titles e.g. sleep(3)"]]></title><description><![CDATA[
<p>Thousands of keystrokes saved by not having to type “man syscall”… and millions of hours lost by confused folks like OP (and myself)</p>
]]></description><pubDate>Mon, 06 Apr 2026 15:52:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=47662553</link><dc:creator>et1337</dc:creator><comments>https://news.ycombinator.com/item?id=47662553</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47662553</guid></item><item><title><![CDATA[New comment by et1337 in "Why I love NixOS"]]></title><description><![CDATA[
<p>I’ve been driving Bluefin DX for a year or two. On the plus side, it works absolutely flawlessly. This is the longest I’ve ever run a Linux distro without a Nvidia driver update causing the whole thing to explode. It truly is the year of Linux on the desktop.<p>But I can’t say I recommend it for dev work. It wants you to do everything inside devcontainers, which I like in theory but in practice come with so many annoyances. It wants you to install Flatpaks but Flathub is pretty sparse. I ended up downloading raw Linux binaries into my home directory (which actually works surprisingly well. Maybe this is the future, hah)<p>I think next time I’ll just go with vanilla Fedora.</p>
]]></description><pubDate>Mon, 23 Mar 2026 04:46:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=47485581</link><dc:creator>et1337</dc:creator><comments>https://news.ycombinator.com/item?id=47485581</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47485581</guid></item><item><title><![CDATA[New comment by et1337 in "A case against currying"]]></title><description><![CDATA[
<p>No encapsulation… huge functions with tons of local variables shared between closures… essentially global state in practice. I think ant the time, objects with member variables felt “heavy” and local variables felt “light”. But the fact that they were so lightweight just gave me more opportunities to squirrel away state into random places with no structure around it. It really wasn’t all that horrific, and it helped me ship something quickly, but it wasn’t maintainable. These days I think the “heavy boilerplate” of grouping stuff into structs and objects forces me to slow down and think a bit harder about whether I really want to enshrine a new piece of state into the app’s data model. Most of the time I don’t.</p>
]]></description><pubDate>Sun, 22 Mar 2026 22:24:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=47482868</link><dc:creator>et1337</dc:creator><comments>https://news.ycombinator.com/item?id=47482868</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47482868</guid></item><item><title><![CDATA[New comment by et1337 in "A case against currying"]]></title><description><![CDATA[
<p>I also think there’s an interesting effect when cool functional language features like currying and closures are adopted by imperative languages. They make it way too easy to create state in a way that makes you FEEL like you’re writing beautiful pure functions. Of course, in a functional language everything IS pure and this is just how things work. But in an imperative language you can trick yourself into thinking you’ve gotten away with something. At one point I stored practically all state in local variables captured by closures. It was a dark time.</p>
]]></description><pubDate>Sun, 22 Mar 2026 21:46:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=47482514</link><dc:creator>et1337</dc:creator><comments>https://news.ycombinator.com/item?id=47482514</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47482514</guid></item><item><title><![CDATA[New comment by et1337 in "A sufficiently detailed spec is code"]]></title><description><![CDATA[
<p>Right, there’s no silver bullet. I think all I can do is increase the feedback bandwidth between my brain and the real world. Regular old stuff like linters, static typing, borrow checkers, e2e tests… all the way to “talking to customers more”</p>
]]></description><pubDate>Thu, 19 Mar 2026 15:53:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=47441522</link><dc:creator>et1337</dc:creator><comments>https://news.ycombinator.com/item?id=47441522</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47441522</guid></item><item><title><![CDATA[New comment by et1337 in "A sufficiently detailed spec is code"]]></title><description><![CDATA[
<p>I think the worst case is actually that the LLM faithfully implements your spec, but your spec was flawed. To the extent that you outsource the mechanical details to a machine trained to do exactly what you tell it, you destroy or at least hamper the feedback loop between fuzzy human thoughts and cold hard facts.</p>
]]></description><pubDate>Thu, 19 Mar 2026 15:37:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=47441268</link><dc:creator>et1337</dc:creator><comments>https://news.ycombinator.com/item?id=47441268</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47441268</guid></item><item><title><![CDATA[New comment by et1337 in "Show HN: Channel Surfer – Watch YouTube like it’s cable TV"]]></title><description><![CDATA[
<p>Turn off your watch history. It disables the front page and shorts, but you can still watch any video you want and also follow your subscriptions. You still get recommendations next to each video but I find those much less problematic personally.</p>
]]></description><pubDate>Fri, 13 Mar 2026 17:54:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=47367492</link><dc:creator>et1337</dc:creator><comments>https://news.ycombinator.com/item?id=47367492</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47367492</guid></item><item><title><![CDATA[New comment by et1337 in "Shall I implement it? No"]]></title><description><![CDATA[
<p>This was a fun one today:<p>% cat /Users/evan.todd/web/inky/context.md<p>Done — I wrote concise findings to:<p>`/Users/evan.todd/web/inky/context.md`%</p>
]]></description><pubDate>Thu, 12 Mar 2026 21:42:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=47357588</link><dc:creator>et1337</dc:creator><comments>https://news.ycombinator.com/item?id=47357588</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47357588</guid></item><item><title><![CDATA[New comment by et1337 in "Avoiding Trigonometry (2013)"]]></title><description><![CDATA[
<p>Based on my experience writing many games that work great barring the occasional random physics engine explosion, I suspect that trigonometry is responsible for a significant proportion of glitches.<p>I think over the years I subconsciously learned to avoid trig because of the issues mentioned, but I do still fall back to angles, especially for things like camera rotation. I am curious how far the OP goes with this crusade in their production code.</p>
]]></description><pubDate>Thu, 12 Mar 2026 14:45:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=47351313</link><dc:creator>et1337</dc:creator><comments>https://news.ycombinator.com/item?id=47351313</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47351313</guid></item><item><title><![CDATA[New comment by et1337 in "ASML unveils EUV light source advance that could yield 50% more chips by 2030"]]></title><description><![CDATA[
<p>This video is a really cool dive into EUV for the uninitiated (me) <a href="https://youtu.be/MiUHjLxm3V0?si=kEPSicC2WXYhcQ6L" rel="nofollow">https://youtu.be/MiUHjLxm3V0?si=kEPSicC2WXYhcQ6L</a></p>
]]></description><pubDate>Mon, 23 Feb 2026 18:54:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=47126915</link><dc:creator>et1337</dc:creator><comments>https://news.ycombinator.com/item?id=47126915</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47126915</guid></item><item><title><![CDATA[New comment by et1337 in "Ask HN: What are you working on? (February 2026)"]]></title><description><![CDATA[
<p>A personal finance app called “Predictable” that takes chaotic sloshes of money and turns them into steady streams of cash. You tell it “I receive this much money weekly/monthly/on the first and fifteenth/when Mercury is in retrograde, and I have these expenses at other various intervals” and it evens everything out into a constant weekly flow of cash by, essentially, buffering. Any overflow or underflow goes to a “margin” bucket which basically tells you how much you could spend right now and still have enough for all your recurring expenses.<p>Currently making it just for myself but curious if anyone else would find it useful.</p>
]]></description><pubDate>Mon, 09 Feb 2026 01:23:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=46940489</link><dc:creator>et1337</dc:creator><comments>https://news.ycombinator.com/item?id=46940489</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46940489</guid></item><item><title><![CDATA[New comment by et1337 in "2025 Letter"]]></title><description><![CDATA[
<p>Didn’t we just have a front page article about the average founder age increasing well beyond 30 this year? Is it a non-normal distribution or what?</p>
]]></description><pubDate>Thu, 01 Jan 2026 16:55:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=46455607</link><dc:creator>et1337</dc:creator><comments>https://news.ycombinator.com/item?id=46455607</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46455607</guid></item><item><title><![CDATA[New comment by et1337 in "Unity's Mono problem: C# code runs slower than it should"]]></title><description><![CDATA[
<p>Makes sense! I think dustbunny said it best: C# is “not worth the squeeze” specifically in Godot, and specifically if you’re going for performance. But maybe that’ll change soon, who knows. The engine is still improving at a good clip.</p>
]]></description><pubDate>Mon, 29 Dec 2025 18:26:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=46423635</link><dc:creator>et1337</dc:creator><comments>https://news.ycombinator.com/item?id=46423635</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46423635</guid></item><item><title><![CDATA[New comment by et1337 in "Unity's Mono problem: C# code runs slower than it should"]]></title><description><![CDATA[
<p>My post could have been a bit longer. It seems to have been misunderstood.<p>I use GDScript because it’s currently the best supported language in Godot. Most of the ecosystem is GDScript. C# feels a bit bolted-on. (See:  binding overhead) If the situation were reversed, I’d be using C#. That’s one technical reason to prefer GDScript. But you’re free to choose C# for any number of reasons, I’m just trying to answer the question.</p>
]]></description><pubDate>Mon, 29 Dec 2025 17:52:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=46423241</link><dc:creator>et1337</dc:creator><comments>https://news.ycombinator.com/item?id=46423241</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46423241</guid></item><item><title><![CDATA[New comment by et1337 in "Unity's Mono problem: C# code runs slower than it should"]]></title><description><![CDATA[
<p>Performance is one issue with C#: <a href="https://sampruden.github.io/posts/godot-is-not-the-new-unity/" rel="nofollow">https://sampruden.github.io/posts/godot-is-not-the-new-unity...</a></p>
]]></description><pubDate>Mon, 29 Dec 2025 16:51:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=46422514</link><dc:creator>et1337</dc:creator><comments>https://news.ycombinator.com/item?id=46422514</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46422514</guid></item><item><title><![CDATA[New comment by et1337 in "Go Gray, Not Cray: Why You Should Grayscale Your Phone"]]></title><description><![CDATA[
<p>I tried it for a while, it was fun explaining it to people, but didn’t actually help much. I ended up blocking all time wasters except HN, which is almost monochrome anyway.</p>
]]></description><pubDate>Sun, 28 Dec 2025 04:24:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=46408427</link><dc:creator>et1337</dc:creator><comments>https://news.ycombinator.com/item?id=46408427</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46408427</guid></item><item><title><![CDATA[New comment by et1337 in "Scaling Go Testing with Contract and Scenario Mocks"]]></title><description><![CDATA[
<p>I think we’re in agreement. Mocks are usually all about reaching inside the implementation and checking things. I prefer highly accurate “fakes” - for example running queries against a real ephemeral Postgres instance in a Docker container instead of mocking out every SQL query and checking that query.Execute was called with the correct arguments.</p>
]]></description><pubDate>Wed, 24 Dec 2025 22:01:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=46379740</link><dc:creator>et1337</dc:creator><comments>https://news.ycombinator.com/item?id=46379740</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46379740</guid></item><item><title><![CDATA[New comment by et1337 in "Scaling Go Testing with Contract and Scenario Mocks"]]></title><description><![CDATA[
<p>They mean the dependencies. If you’re testing system A whose sole purpose is to call functions in systems B and C, one approach is to replace B and C with mocks. The test simply checks that A calls the right functions.<p>The pain comes when system B changes. Oftentimes you can’t even make a benign change (like renaming a function) without updating a million tests.</p>
]]></description><pubDate>Wed, 24 Dec 2025 15:55:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=46376628</link><dc:creator>et1337</dc:creator><comments>https://news.ycombinator.com/item?id=46376628</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46376628</guid></item><item><title><![CDATA[New comment by et1337 in "Why Twilio Segment moved from microservices back to a monolith"]]></title><description><![CDATA[
<p>If something is difficult or scary, do it more often. Smaller changes are less risky. Code that is merged but not deployed is essentially “inventory” in the factory metaphor. You want to keep inventory low. If the distance between the main branch and production is kept low, then you can always feel pretty confident that the main branch is in a good state, or at least close to one. That’s invaluable when you inevitably need to ship an emergency fix. You can just commit the fix to main instead of trying to find a known good version and patching it. And when a deployment does break something, you’ll have a much smaller diff to search for the problem.</p>
]]></description><pubDate>Sun, 14 Dec 2025 03:55:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=46260625</link><dc:creator>et1337</dc:creator><comments>https://news.ycombinator.com/item?id=46260625</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46260625</guid></item></channel></rss>