<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: paldepind2</title><link>https://news.ycombinator.com/user?id=paldepind2</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 09 May 2026 03:05:32 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=paldepind2" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by paldepind2 in "The bottleneck was never the code"]]></title><description><![CDATA[
<p>Jevons paradox starts with some resource being used more efficiently.<p>A classic example could be coal. The first steam engines used a ton of coal, but over time more efficient steam engines where created that used way less coal.<p>One might think that this caused the global coal usage to go down. But the opposite happened, as the overall cost of doing something with a steam engine went down.<p>Note, that the price of coal itself can remain fixed in this example. So Jevons principle is not (directly) about a resource changing in value.<p>If LLMs make codes cheaper to produce, then obviously more code will be produced. That's not an instance of Jevons paradox even though the article claims so.<p>You could say that LLMs means that we can create software with less of the resource that is human software engineers. So one might think that we'll need less software engineers in the future. If, on the other hand, we end up needing more software engineers, then that'll be an instance of Jevons paradox. But the article is not making that claim.</p>
]]></description><pubDate>Wed, 06 May 2026 17:08:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=48038677</link><dc:creator>paldepind2</dc:creator><comments>https://news.ycombinator.com/item?id=48038677</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48038677</guid></item><item><title><![CDATA[New comment by paldepind2 in "The bottleneck was never the code"]]></title><description><![CDATA[
<p>From the article:<p>> Jevons Paradox: when something gets cheaper, you tend to use more of it, not less.<p>That's a butchering of Jevons paradox. What's stated is not a paradox, but a very natural effect. Obviously usage of something goes up when it gets cheaper.<p>What Jevons paradox actually describes is the situation where usage of a resource becomes more efficient (which means less of it is needed for a given task), but still the total usage of that resource increases.</p>
]]></description><pubDate>Wed, 06 May 2026 14:01:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=48036379</link><dc:creator>paldepind2</dc:creator><comments>https://news.ycombinator.com/item?id=48036379</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48036379</guid></item><item><title><![CDATA[New comment by paldepind2 in "VR Is Not Dead"]]></title><description><![CDATA[
<p>Sorry if this is a basic question, but what's you workflow for feeding the papers into the LLM and getting the implementation done? The coding agents that I've used are not able to read PDFs, so I've been wondering how to do it.</p>
]]></description><pubDate>Sun, 29 Mar 2026 18:31:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=47565785</link><dc:creator>paldepind2</dc:creator><comments>https://news.ycombinator.com/item?id=47565785</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47565785</guid></item><item><title><![CDATA[New comment by paldepind2 in "A case against currying"]]></title><description><![CDATA[
<p>I completely agree with the points in this article and have come to the same conclusion after using languages that default to unary curried functions.<p>> I'd also love to hear if you know any (dis)advantages of curried functions other than the ones mentioned.<p>I think it fundamentally boils down to the curried style being _implicit_ partial application, whereas a syntax for partial application is _explicit_. And as if often the case, being explicit is clearer. If you see something like<p><pre><code>    let f = foobinade a b
</code></pre>
in a curried language then you don't immediately know if `f` is the result of foobinading `a` and `b` or if `f` is `foobinade` partially applied to some of its arguments. Without currying you'd either write<p><pre><code>    let f = foobinade(a, b)
</code></pre>
or<p><pre><code>    let f = foobinade(a, b, $) // (using the syntax in the blog post)
</code></pre>
and now it's immediately explicitly clear which of the two cases we're in.<p>This clarity not only helps humans, it also help compilers give better error messages. In a curried languages, if a function is mistakenly applied to too few arguments then the compiler can't always immediately detect the error. For instance, if `foobinate` takes 3 arguments, then `let f = foobinade a b` doesn't give rise to any errors, whereas a compiler can immediately detect the error in `let f = foobinade(a, b)`.<p>A syntax for partial application offers the same practical benefits of currying without the downsides (albeit loosing some of the theoretical simplicity).</p>
]]></description><pubDate>Sun, 22 Mar 2026 14:14:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=47477745</link><dc:creator>paldepind2</dc:creator><comments>https://news.ycombinator.com/item?id=47477745</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47477745</guid></item><item><title><![CDATA[New comment by paldepind2 in "Why haven't local-first apps become popular?"]]></title><description><![CDATA[
<p>> Local-first was the first kind of app. Way up into the 2000s, you'd use your local excel/word/etc, and the sync mechanism was calling your file annual_accounts_final_v3_amend_v5_final(3).xls<p>To be precise, these apps where not local-_first_, they where local-_only_. Local-first implies that the app first and foremost works locally, but also that it, secondly, is capable of working online and non-locally (usually with some syncing mechanism).</p>
]]></description><pubDate>Mon, 22 Sep 2025 14:27:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=45333950</link><dc:creator>paldepind2</dc:creator><comments>https://news.ycombinator.com/item?id=45333950</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45333950</guid></item><item><title><![CDATA[Show HN: Universal single-letter project commands to speed up your CLI workflow]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/paldepind/projectdo">https://github.com/paldepind/projectdo</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45263710">https://news.ycombinator.com/item?id=45263710</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 16 Sep 2025 15:36:34 +0000</pubDate><link>https://github.com/paldepind/projectdo</link><dc:creator>paldepind2</dc:creator><comments>https://news.ycombinator.com/item?id=45263710</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45263710</guid></item><item><title><![CDATA[New comment by paldepind2 in "Use Your Type System"]]></title><description><![CDATA[
<p>I never understood why people are so keen to do that in TypeScript. With that definition a `UserID` can still be silently "coerced" to a `string` everywhere. So you only get halfway there to an encapsulated type.<p>I think it's a much better idea to do:<p><pre><code>    type UserID = { readonly __tag: unique symbol }
</code></pre>
Now clients of `UserID` no longer knows anything about the representation. Like with the original approach you need a bit of casting, but that can be neatly encapsulated as it would be in the original approach anyway.</p>
]]></description><pubDate>Thu, 24 Jul 2025 18:59:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=44674676</link><dc:creator>paldepind2</dc:creator><comments>https://news.ycombinator.com/item?id=44674676</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44674676</guid></item><item><title><![CDATA[New comment by paldepind2 in "“Dynamic programming” is not referring to “computer programming”"]]></title><description><![CDATA[
<p>Yes, absolutely. I did programming competitions back in high-school (around 10 years ago) and common folklore was that back in the days knowing dynamic programming could win you a medal, but today it was just basic expected knowledge.</p>
]]></description><pubDate>Mon, 21 Jul 2025 08:46:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=44633041</link><dc:creator>paldepind2</dc:creator><comments>https://news.ycombinator.com/item?id=44633041</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44633041</guid></item><item><title><![CDATA[New comment by paldepind2 in "Why is the Rust compiler so slow?"]]></title><description><![CDATA[
<p>> I guess Google’s years of experience led to the conclusion that, for software development to scale, a simple type system, GC, and wicked fast compilation speed are more important than raw runtime throughput and semantic correctness.<p>I'm a fan of Go, but I don't think it's the product of some awesome collective Google wisdom and experience. Had it been, I think they'd have come to the conclusion that statically eliminating null pointer exceptions was a worthwhile endeavor, just to mention one thing. Instead, I think it's just the product of some people at Google making a language they way they wanted to.</p>
]]></description><pubDate>Fri, 27 Jun 2025 10:15:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=44395527</link><dc:creator>paldepind2</dc:creator><comments>https://news.ycombinator.com/item?id=44395527</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44395527</guid></item><item><title><![CDATA[New comment by paldepind2 in "I Switched from Flutter and Rust to Rust and Egui"]]></title><description><![CDATA[
<p>> A quick Google search with "flutter setstate is not refreshing" reveals a struggle that you will face quite often when running Flutter. It sounds like an easy fix, but the nature of Flutter using a bunch of nested Widgets creates, naturally, lasagna code that makes it hard to reason about this.<p>Can you expand on this OP? I've never had problems with `setState` nor "lasagna code" in Flutter. From a quick search I mostly seem to find questions from people who are still learning Flutter and getting basic things wrong.</p>
]]></description><pubDate>Fri, 27 Jun 2025 09:56:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=44395418</link><dc:creator>paldepind2</dc:creator><comments>https://news.ycombinator.com/item?id=44395418</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44395418</guid></item><item><title><![CDATA[New comment by paldepind2 in "Framework Laptop 12 review"]]></title><description><![CDATA[
<p>How often do you break your phone that you've save sooo much? Mine is at least 2 years older (I got it 2 years before the Fairphone 4 was released) and I've spend 0$ dollars repairing it.</p>
]]></description><pubDate>Wed, 18 Jun 2025 20:02:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=44312872</link><dc:creator>paldepind2</dc:creator><comments>https://news.ycombinator.com/item?id=44312872</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44312872</guid></item><item><title><![CDATA[New comment by paldepind2 in "Self-Host and Tech Independence: The Joy of Building Your Own"]]></title><description><![CDATA[
<p>RAID is not backup, but in some circumstances it's better than a backup. If you don't have RAID and your disk dies you need to replace it ASAP and you've lost all changes since your last backup. If you have RAID you just replace the disk and suffer 0 data loss.<p>That being said, the reason why I'm afraid of not using RAID is data integrity. What happens when the single HDD/SSD in your system is near its end of life? Can it be trusted to fail cleanly or might it return corrupted data (which then propagates to your backup)? I don't know and I'd be happy to be convinced that it's never an issue nowadays. But I do know that with a btrfs or zfs RAID and the checksuming done by these file systems you don't have to trust the specific consumer-grade disk in some random laptop, but instead can rely on data integrity being ensured by the FS.</p>
]]></description><pubDate>Sun, 08 Jun 2025 10:57:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=44216146</link><dc:creator>paldepind2</dc:creator><comments>https://news.ycombinator.com/item?id=44216146</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44216146</guid></item><item><title><![CDATA[New comment by paldepind2 in "Things Zig comptime won't do"]]></title><description><![CDATA[
<p>I was a bit confused by the remark that comptime is referentially transparent. I'm familiar with the term as it's used in functional programming to mean that an expression can be replaced by its value (stemming from it having no side-effects).  However, from a quick search I found an old related comment by you [1] that clarified this for me.<p>If I understand correctly you're using the term in a different (perhaps more correct/original?) sense where it roughly means that two expressions with the same meaning/denotation can be substituted for each other without changing the meaning/denotation of the surrounding program. This property is broken by macros. A macro in Rust, for instance, can distinguish between `1 + 1` and `2`. The comptime system in Zig in contrast does not break this property as it only allows one to inspect values and not un-evaluated ASTs.<p>[1]: <a href="https://news.ycombinator.com/item?id=36154447">https://news.ycombinator.com/item?id=36154447</a></p>
]]></description><pubDate>Sun, 20 Apr 2025 19:28:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=43745928</link><dc:creator>paldepind2</dc:creator><comments>https://news.ycombinator.com/item?id=43745928</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43745928</guid></item><item><title><![CDATA[New comment by paldepind2 in "Things Zig comptime won't do"]]></title><description><![CDATA[
<p>This is honestly really cool! I've heard praises about Zig's comptime without really understanding what makes it tick. It initially sounds like Rust's constant evaluation which is not particularly capable. The ability to have types represented as values at compilation time, and _only_ at compile time, is clearly very powerful. It approximates dynamic languages or run-time reflection without any of the run-time overhead and without opening the Pandora's box that is full blown macros as in Lisp or Rust's procedural macros.</p>
]]></description><pubDate>Sun, 20 Apr 2025 19:04:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=43745782</link><dc:creator>paldepind2</dc:creator><comments>https://news.ycombinator.com/item?id=43745782</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43745782</guid></item><item><title><![CDATA[New comment by paldepind2 in "You Need Subtyping"]]></title><description><![CDATA[
<p>> I'm not very familiar with these relations, but shouldn't function returns be covariant? `String => Cat` is a subtype of `String => Animal`?<p>You're right :) I mixed up covariance and contravariance for function parameters and return value in my comment.<p>> For function parameters, doesn't it depend on how the parameter is used?<p>I don't think so, but maybe there's specific circumstances I don't know of? Function parameter types is a constraint on _input_ to the function. Changing that to a subtype amounts to the function receiving arguments that satisfies a stronger constraint. That seems that something that would hold no matter how the parameter is used?</p>
]]></description><pubDate>Sat, 29 Mar 2025 11:30:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=43514626</link><dc:creator>paldepind2</dc:creator><comments>https://news.ycombinator.com/item?id=43514626</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43514626</guid></item><item><title><![CDATA[New comment by paldepind2 in "You Need Subtyping"]]></title><description><![CDATA[
<p>> Wait, if I recall correctly, covariance has long been established as a mistake.<p>Perhaps you're just missing some words here, but, just for clarity: it doesn't make any sense to say that covariance is a mistake. Covariance applied in specific places, like Java's mutable covariant arrays which leads to unsoundness, can be a mistake, but covariance itself in fine and essential in languages with subtyping. Function parameters should be covariant, function returns should be contravariant, mutable data structures should be invariant, etc.</p>
]]></description><pubDate>Sat, 29 Mar 2025 10:50:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=43514423</link><dc:creator>paldepind2</dc:creator><comments>https://news.ycombinator.com/item?id=43514423</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43514423</guid></item><item><title><![CDATA[New comment by paldepind2 in "A look at Firefox forks"]]></title><description><![CDATA[
<p>Correct me if I'm wrong, but neither vertical tabs nor tab groups are fully ready and shipped.<p>From a quick search, it seems that you need to make edits in `about:config` to enable tab groups and use nightly to access vertical tabs.</p>
]]></description><pubDate>Sat, 15 Mar 2025 10:34:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=43371548</link><dc:creator>paldepind2</dc:creator><comments>https://news.ycombinator.com/item?id=43371548</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43371548</guid></item><item><title><![CDATA[New comment by paldepind2 in "Hackintoshing as a sustainable environmental practice"]]></title><description><![CDATA[
<p>My understanding is that it will be much harder as ARM is way less standardized than the Intel x86 platform. This is something that Linus Thorvalds has talked about in the past [1]. Think about how huge an effort it is to get Linux to run on Apple’s ARM machines or how some distros have a Pi specific variant. I guess getting macOS to run on other ARM machines could be similar challenging.<p>1: <a href="https://www.pcworld.com/article/410627/why-linux-pioneer-linus-torvalds-prefers-x86-over-arm.html" rel="nofollow">https://www.pcworld.com/article/410627/why-linux-pioneer-lin...</a></p>
]]></description><pubDate>Tue, 11 Mar 2025 07:23:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=43329997</link><dc:creator>paldepind2</dc:creator><comments>https://news.ycombinator.com/item?id=43329997</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43329997</guid></item><item><title><![CDATA[New comment by paldepind2 in "Apple's Software Quality Crisis"]]></title><description><![CDATA[
<p>Absolutely. I did a little bit of iOS development at some point and was genuinely shocked by how bad the documentation was and by how often WWDC videos was the best documentation available.<p>To give a concrete example: At WWDC20 Apple showed off a new Core Data feature called "derived attributes" [1]. Only many months later did they add the bare minimum of written documentation covering a fraction of what was shown off at WWDC [2].<p>1: <a href="https://developer.apple.com/videos/play/wwdc2019/230/" rel="nofollow">https://developer.apple.com/videos/play/wwdc2019/230/</a>
2: <a href="https://developer.apple.com/forums/thread/120159" rel="nofollow">https://developer.apple.com/forums/thread/120159</a></p>
]]></description><pubDate>Tue, 04 Mar 2025 14:57:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=43255473</link><dc:creator>paldepind2</dc:creator><comments>https://news.ycombinator.com/item?id=43255473</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43255473</guid></item><item><title><![CDATA[New comment by paldepind2 in "Ask HN: Do US tech firms realize the backlash growing in Europe?"]]></title><description><![CDATA[
<p>> Suppose the war ends. Will the Europeans keep boycotting the cheap russian gas?<p>I think they absolutely will, yes. It will cost some money, just like spending more money on defense will, but from what I can see, no one in the European politic elite imagines a world where we can go back to buying gas from Russia.</p>
]]></description><pubDate>Sat, 22 Feb 2025 15:02:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=43139498</link><dc:creator>paldepind2</dc:creator><comments>https://news.ycombinator.com/item?id=43139498</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43139498</guid></item></channel></rss>