<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: turboponyy</title><link>https://news.ycombinator.com/user?id=turboponyy</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 21 Jun 2026 12:55:45 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=turboponyy" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by turboponyy in "A case study in PDF forensics: The Epstein PDFs"]]></title><description><![CDATA[
<p>I guess the Gnome-specific part is that Gnome comes with the Nautilus file browser, and the instructions add a script for Nautilus.<p>But yea, this will work as long as you have imagemagick and Nautilus installed.</p>
]]></description><pubDate>Thu, 05 Feb 2026 09:15:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=46897561</link><dc:creator>turboponyy</dc:creator><comments>https://news.ycombinator.com/item?id=46897561</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46897561</guid></item><item><title><![CDATA[New comment by turboponyy in "The dank case for scrolling window managers"]]></title><description><![CDATA[
<p>I'm currently using niri (was previously using Hyprland).<p>Having used dwm-like tiling window managers for most of the time, I don't really care for the scrolling or dynamic workspace aspects of niri at all - in fact, I kinda dislike them (or haven't gotten used to them, at least). To me, it kills the point of a keyboard-centric desktop environment - which is the speed and lack of friction in making the window you want appear in front of your eyes.<p>Despite that, I still really like it. Mostly because I have so much more faith in its development. The documentation is <i>excellent</i>. The configuration file is sane, and not as arcane and ad hoc as the hyprland.conf format. The source repository looks well-maintained. Being written in Rust rather than C++ means onboarding new developers is easier. The discourse is more measured, owing to the lack of a somewhat stubborn lead maintainer in the case of Hyprland.<p>The surrounding ecosystem seems to be flourishing as well, with projects like Noctalia Shell, DankMaterialShell, and niri-flake natively supporting niri.<p>And perhaps most importantly, the out-of-the box experience is really nice. You have proper monocle and tabbed layouts without any compromises - features Hyprland has still not developed, where they are only possible with scuffed C++ plugins, or where its BDFL has stated they will never be introduced. Most features one would expect from a WM are already there and well-documented, which can't be said about Hyprland.</p>
]]></description><pubDate>Fri, 30 Jan 2026 07:48:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=46821632</link><dc:creator>turboponyy</dc:creator><comments>https://news.ycombinator.com/item?id=46821632</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46821632</guid></item><item><title><![CDATA[New comment by turboponyy in "I hate GitHub Actions with passion"]]></title><description><![CDATA[
<p>Exactly.<p>"GitHub actions bad" is a valid take - you should reduce your use to a minimum.<p>"My build failed because of GitHub actions couldn't install a dependency of my build" is  a skill issue. Don't use GitHub actions to install a program your build depends on.</p>
]]></description><pubDate>Wed, 14 Jan 2026 15:44:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=46617361</link><dc:creator>turboponyy</dc:creator><comments>https://news.ycombinator.com/item?id=46617361</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46617361</guid></item><item><title><![CDATA[New comment by turboponyy in "Git Rebase for the Terrified"]]></title><description><![CDATA[
<p>Samesies - need a Majjit before I can consider trying it out.</p>
]]></description><pubDate>Tue, 13 Jan 2026 11:52:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=46599840</link><dc:creator>turboponyy</dc:creator><comments>https://news.ycombinator.com/item?id=46599840</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46599840</guid></item><item><title><![CDATA[New comment by turboponyy in "Judge hints Vizio TV buyers may have rights to source code licensed under GPL"]]></title><description><![CDATA[
<p>> If Vizo never licensed the software to you under the GPL [...]<p>That may be true.<p>> [...] you can't say they violated the GPL.<p>That does not necessarily follow.<p>If they used GPL-licensed code in their product, they may be obligated to provide the source code to that product's consumer.</p>
]]></description><pubDate>Thu, 18 Dec 2025 15:49:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=46314184</link><dc:creator>turboponyy</dc:creator><comments>https://news.ycombinator.com/item?id=46314184</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46314184</guid></item><item><title><![CDATA[New comment by turboponyy in "Ask HN: What Are You Working On? (December 2025)"]]></title><description><![CDATA[
<p>No, you really don't <i>have</i> to. Partially complete software can have a lot of value too.<p>Anyone can fork it and quickly add the i18n (or just translate into a different language) for their own purposes. People will likely want to contribute i18n. People may fix or improve things for you.<p>Of course, it's entirely up to you - but I've appreciated half-complete software countless times before.</p>
]]></description><pubDate>Mon, 15 Dec 2025 07:13:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=46271325</link><dc:creator>turboponyy</dc:creator><comments>https://news.ycombinator.com/item?id=46271325</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46271325</guid></item><item><title><![CDATA[New comment by turboponyy in "The highest quality codebase"]]></title><description><![CDATA[
<p>I have the same disagreement. TypeScript with its structural and pseudo-dependent typing, somewhat-functionally disposed language primitives (e.g. first-class functions as values, currying) and standard library interfaces (filter, reduce, flatMap et al), and ecosystem make propagating information using values extremely ergonomic.<p>Embracing a functional style in TypeScript is probably the most productive I've felt in any mainstream programming language. It's a shame that the language was defiled with try/catch, classes and other unnecessary cruft so third party libraries are still an annoying boundary you have to worry about, but oh well.<p>The language is so well-suited for this that you can even model side effects as values, do away with try/catch, if/else and mutation a la Haskell, if you want[1].<p>[1] <a href="https://effect.website/" rel="nofollow">https://effect.website/</a></p>
]]></description><pubDate>Thu, 11 Dec 2025 16:11:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=46233197</link><dc:creator>turboponyy</dc:creator><comments>https://news.ycombinator.com/item?id=46233197</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46233197</guid></item><item><title><![CDATA[New comment by turboponyy in "The fuck off contact page"]]></title><description><![CDATA[
<p>It is unique and looks cool.<p>When it comes to providing an enjoyable blog post reading experience, it really does creep into the "fuck off" territory for me, though.</p>
]]></description><pubDate>Mon, 08 Dec 2025 12:08:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=46191316</link><dc:creator>turboponyy</dc:creator><comments>https://news.ycombinator.com/item?id=46191316</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46191316</guid></item><item><title><![CDATA[New comment by turboponyy in "Jujutsu worktrees are convenient (2024)"]]></title><description><![CDATA[
<p>Even better is "" since it's not really adding anything</p>
]]></description><pubDate>Mon, 08 Dec 2025 12:00:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=46191262</link><dc:creator>turboponyy</dc:creator><comments>https://news.ycombinator.com/item?id=46191262</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46191262</guid></item><item><title><![CDATA[New comment by turboponyy in "Experiment: Making TypeScript immutable-by-default"]]></title><description><![CDATA[
<p>`for` loops are a superfluous language feature if your collections have `map` for transformations and `forEach` for producing side effects</p>
]]></description><pubDate>Tue, 18 Nov 2025 17:05:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=45968989</link><dc:creator>turboponyy</dc:creator><comments>https://news.ycombinator.com/item?id=45968989</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45968989</guid></item><item><title><![CDATA[New comment by turboponyy in "Using Emacs as a TUI"]]></title><description><![CDATA[
<p>It's quite nice for the following reasons:<p>- Image previews (for file management with dired/dirvish)<p>- PDF viewing<p>- In-buffer images (e.g. profile pictures in git log with Magit)<p>- Browsing simple HTML pages (e.g. API docs)<p>There's probably more I've yet to discover.</p>
]]></description><pubDate>Mon, 20 Oct 2025 07:48:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=45640966</link><dc:creator>turboponyy</dc:creator><comments>https://news.ycombinator.com/item?id=45640966</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45640966</guid></item><item><title><![CDATA[New comment by turboponyy in "consumed.today"]]></title><description><![CDATA[
<p>You only need that much protein if you're trying to build muscle. The amount needed for a generally healthy diet is much lower.</p>
]]></description><pubDate>Wed, 24 Sep 2025 06:54:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=45357147</link><dc:creator>turboponyy</dc:creator><comments>https://news.ycombinator.com/item?id=45357147</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45357147</guid></item><item><title><![CDATA[New comment by turboponyy in "Node 20 will be deprecated on GitHub Actions runners"]]></title><description><![CDATA[
<p>If that's something you care about, then don't define your CI build in terms of GitHub Actions steps. Instead, call your build that takes care of using whichever version of Node you want in CI.</p>
]]></description><pubDate>Mon, 22 Sep 2025 06:22:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=45329719</link><dc:creator>turboponyy</dc:creator><comments>https://news.ycombinator.com/item?id=45329719</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45329719</guid></item><item><title><![CDATA[New comment by turboponyy in "That boolean should probably be something else"]]></title><description><![CDATA[
<p>I actually completely agree with both the article and your point that your code should directly communicate your intent.<p>The angle I'd approach it from is this: recording whether an email is verified as a boolean is actually misguided - that is, the intent is <i>wrong</i>.<p>The actual things of interest are the email entity and the verification event. If you record both, 'is_verified' is trivial to derive.<p>However, consider if you now must implement the rule that "emails are verified only if a verification took place within the last 6 months." Recording verifications as events handles this trivially, whilst this doesn't work with booleans.<p>Some other examples - what is the rate of verifications per unit of time? How many verification emails do we have to send out?<p>Flipping a boolean when the first of these events occurs without storing the event itself works in special cases, but not in general. Storing a boolean is overly rigid, throws away the underlying information of interest, and overloads the model with unrelated fields (imagine storing say 7 or 8 different kinds of events linked to some model).</p>
]]></description><pubDate>Thu, 28 Aug 2025 14:03:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=45052301</link><dc:creator>turboponyy</dc:creator><comments>https://news.ycombinator.com/item?id=45052301</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45052301</guid></item><item><title><![CDATA[New comment by turboponyy in "Efrit: A native elisp coding agent running in Emacs"]]></title><description><![CDATA[
<p>I have Emacs set up like VSCode. I feel it surpasses VSCode, even because it's Emacs.</p>
]]></description><pubDate>Thu, 14 Aug 2025 04:41:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=44896789</link><dc:creator>turboponyy</dc:creator><comments>https://news.ycombinator.com/item?id=44896789</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44896789</guid></item><item><title><![CDATA[New comment by turboponyy in "Jujutsu for busy devs"]]></title><description><![CDATA[
<p>Can you edit commits by adding on only parts of your "staging" area?<p>Because that's my workflow. I produce a few focused and semantically coherent commits that I'd like to apply to the codebase, where each keeps the codebase in a working state. I might be working on more than one thing at once, but I know which commit each set of changes should "live in."<p>An append-only log of commits is decidedly not something I want. Is jj amenable to this?</p>
]]></description><pubDate>Tue, 22 Jul 2025 09:50:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=44644979</link><dc:creator>turboponyy</dc:creator><comments>https://news.ycombinator.com/item?id=44644979</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44644979</guid></item><item><title><![CDATA[New comment by turboponyy in "A Rust shaped hole"]]></title><description><![CDATA[
<p>> While I can jump through hoops to compile JavaScript into a binary, such wouldn't feel "solid". And the very point of writing a native program in the first place is to make it feel solid<p>You can use Bun to compile to native binaries without jumping through hoops. It's not mature, but it works well enough that we use it at work.</p>
]]></description><pubDate>Wed, 16 Jul 2025 09:55:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=44580469</link><dc:creator>turboponyy</dc:creator><comments>https://news.ycombinator.com/item?id=44580469</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44580469</guid></item><item><title><![CDATA[New comment by turboponyy in "Show HN: Encode Base64"]]></title><description><![CDATA[
<p>Or, in a browser that's presumably displaying the website:<p><pre><code>    btoa("Hello World")</code></pre></p>
]]></description><pubDate>Wed, 16 Jul 2025 08:57:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=44580149</link><dc:creator>turboponyy</dc:creator><comments>https://news.ycombinator.com/item?id=44580149</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44580149</guid></item><item><title><![CDATA[New comment by turboponyy in "Show HN: VS Code extension to edit the filesystem like a text buffer"]]></title><description><![CDATA[
<p>"Look what they need to mimic a fraction of our power" - some Emacs user, probably</p>
]]></description><pubDate>Tue, 15 Jul 2025 06:13:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=44568332</link><dc:creator>turboponyy</dc:creator><comments>https://news.ycombinator.com/item?id=44568332</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44568332</guid></item><item><title><![CDATA[New comment by turboponyy in "Toys/Lag: Jerk Monitor"]]></title><description><![CDATA[
<p>> It turns out that there’s a way to test this experimentally. Do a double blind experiment, just like in science. If you can tell which monitor is 240hz more than randomly, then it matters. Ditto for the pointer updates.<p>You can easily tell - <i>easily</i>. There is a reason why monitors go 500Hz and beyond now.<p>I consider 240 FPS at 240Hz to be choppy. I can tell the difference between ~200 FPS and framerates of 300 FPS and beyond at 240Hz - telling the difference between 120Hz and 240Hz would be absolutely trivial.</p>
]]></description><pubDate>Mon, 07 Jul 2025 11:09:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=44488982</link><dc:creator>turboponyy</dc:creator><comments>https://news.ycombinator.com/item?id=44488982</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44488982</guid></item></channel></rss>