<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: deredede</title><link>https://news.ycombinator.com/user?id=deredede</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 18 Apr 2026 06:13:04 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=deredede" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by deredede in "Copilot edited an ad into my PR"]]></title><description><![CDATA[
<p>GitHub (still) allows you to edit files directly in the browser without using AI.</p>
]]></description><pubDate>Mon, 30 Mar 2026 07:07:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=47571307</link><dc:creator>deredede</dc:creator><comments>https://news.ycombinator.com/item?id=47571307</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47571307</guid></item><item><title><![CDATA[New comment by deredede in "We mourn our craft"]]></title><description><![CDATA[
<p>I know how to review code without looking at the corresponding assembly and have high confidence in the behavior of the final binary. I can't quite say the same for a prompt without looking at the generated code, even with temperature 0. The difference is explainability, not determinism.</p>
]]></description><pubDate>Sat, 07 Feb 2026 20:53:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=46927874</link><dc:creator>deredede</dc:creator><comments>https://news.ycombinator.com/item?id=46927874</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46927874</guid></item><item><title><![CDATA[New comment by deredede in "Start all of your commands with a comma (2009)"]]></title><description><![CDATA[
<p>I also do this.<p>Random flags added to core tools are done with aliases, which do not affect the launched processes, not by shadowing them in ~/bin. Shadowing in ~/bin are for cases where a newer (compared to the system-wide version) or custom version of a tool is needed.</p>
]]></description><pubDate>Sat, 07 Feb 2026 12:24:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=46923290</link><dc:creator>deredede</dc:creator><comments>https://news.ycombinator.com/item?id=46923290</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46923290</guid></item><item><title><![CDATA[New comment by deredede in "Rust's Block Pattern"]]></title><description><![CDATA[
<p>I like it. IIFEs always make me nervous because they look like they beg to be removed if you don't know why they are used. Using an explicit function such as `run` looks much more intentional, and provide a single intuitive place (the documentation of the `run` function) to explain the pattern.</p>
]]></description><pubDate>Sat, 20 Dec 2025 09:36:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=46334807</link><dc:creator>deredede</dc:creator><comments>https://news.ycombinator.com/item?id=46334807</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46334807</guid></item><item><title><![CDATA[New comment by deredede in "Linux Sandboxes and Fil-C"]]></title><description><![CDATA[
<p>You can send arbitrary commands, but they will be rejected unless you provide valid credentials first.</p>
]]></description><pubDate>Sun, 14 Dec 2025 08:52:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=46261732</link><dc:creator>deredede</dc:creator><comments>https://news.ycombinator.com/item?id=46261732</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46261732</guid></item><item><title><![CDATA[New comment by deredede in "Cloudflare outage on November 18, 2025 post mortem"]]></title><description><![CDATA[
<p>Not GP but I read "I'm fine with allocation failures" as "I'm OK with my program terminating if it can't allocate (but not for other errors)".</p>
]]></description><pubDate>Wed, 19 Nov 2025 07:55:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=45976945</link><dc:creator>deredede</dc:creator><comments>https://news.ycombinator.com/item?id=45976945</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45976945</guid></item><item><title><![CDATA[New comment by deredede in "Why I love OCaml (2023)"]]></title><description><![CDATA[
<p>Not GP but bump allocation (OCaml's GC uses a bump allocator into the young heap) mitigates this somewhat, list nodes tend to be allocated near each other. It is worse than the guaranteed contiguous access patterns of a vector, but it's not completely scattered either.</p>
]]></description><pubDate>Sat, 08 Nov 2025 06:30:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=45854614</link><dc:creator>deredede</dc:creator><comments>https://news.ycombinator.com/item?id=45854614</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45854614</guid></item><item><title><![CDATA[New comment by deredede in "Linus Torvalds and the Supposedly "Garbage Code""]]></title><description><![CDATA[
<p>You can give honest, unbiased feedback without insulting either people or their work.<p>Software engineering is a collaborative process, not an adversarial one.</p>
]]></description><pubDate>Sun, 28 Sep 2025 07:28:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=45402424</link><dc:creator>deredede</dc:creator><comments>https://news.ycombinator.com/item?id=45402424</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45402424</guid></item><item><title><![CDATA[New comment by deredede in "Claude Code: Now in Beta in Zed"]]></title><description><![CDATA[
<p>You should have a drop-down for selecting a tool profile next to the drop-down for model selection. Select "Minimal" for no tools.<p>"New text thread" should also have no tools I believe.<p><a href="https://zed.dev/docs/ai/agent-panel#profiles" rel="nofollow">https://zed.dev/docs/ai/agent-panel#profiles</a></p>
]]></description><pubDate>Thu, 04 Sep 2025 07:03:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=45124409</link><dc:creator>deredede</dc:creator><comments>https://news.ycombinator.com/item?id=45124409</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45124409</guid></item><item><title><![CDATA[New comment by deredede in "We shouldn't have needed lockfiles"]]></title><description><![CDATA[
<p>I can think of plenty situations where you really want to use the dependency's types though. For instance the dependency provides some sort of data structure and you have one library that produces said data structure and a separate library that consumes it.<p>What you're describing with SML functors is essentially dependency injection I think; it's a good thing to have in the toolbox but not a universal solution either. (I do like functors for dependency injection, much more than the inscrutable goo it tends to be in OOP languages anyways)</p>
]]></description><pubDate>Wed, 06 Aug 2025 20:01:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=44816967</link><dc:creator>deredede</dc:creator><comments>https://news.ycombinator.com/item?id=44816967</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44816967</guid></item><item><title><![CDATA[New comment by deredede in "We shouldn't have needed lockfiles"]]></title><description><![CDATA[
<p>Alternative answer: both versions will be picked up.<p>It's not always the correct solution, but sometimes it is. If I have a dependency that uses libUtil 2.0 and another that uses libUtil 3.0 but neither exposes types from libUtil externally, or I don't use functions that expose libUtil types, I shouldn't have to care about the conflict.</p>
]]></description><pubDate>Wed, 06 Aug 2025 17:02:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=44814652</link><dc:creator>deredede</dc:creator><comments>https://news.ycombinator.com/item?id=44814652</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44814652</guid></item><item><title><![CDATA[New comment by deredede in "We shouldn't have needed lockfiles"]]></title><description><![CDATA[
<p>It's not "all the transitive dependencies". It's only the transitive dependencies you need to explicitly specify a version for because the one that was specified by your direct dependency is not appropriate for X reason.</p>
]]></description><pubDate>Wed, 06 Aug 2025 16:53:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=44814533</link><dc:creator>deredede</dc:creator><comments>https://news.ycombinator.com/item?id=44814533</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44814533</guid></item><item><title><![CDATA[New comment by deredede in "We shouldn't have needed lockfiles"]]></title><description><![CDATA[
<p>Sure, I'm happy with locking the parts I need to lock. Why would I lock the parts I don't need to lock?</p>
]]></description><pubDate>Wed, 06 Aug 2025 16:46:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=44814465</link><dc:creator>deredede</dc:creator><comments>https://news.ycombinator.com/item?id=44814465</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44814465</guid></item><item><title><![CDATA[New comment by deredede in "We shouldn't have needed lockfiles"]]></title><description><![CDATA[
<p>What if libinsecure 0.2.1 is the version that introduces the vulnerability, do you still want your application to pick up the update?<p>I think the better model is that your package manager let you do exactly what you want -- override libuseful's dependency on libinsecure when building your app.</p>
]]></description><pubDate>Wed, 06 Aug 2025 16:35:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=44814305</link><dc:creator>deredede</dc:creator><comments>https://news.ycombinator.com/item?id=44814305</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44814305</guid></item><item><title><![CDATA[New comment by deredede in "The Convenience Trap: Why Seamless Banking Access Can Turn 2FA into 1FA"]]></title><description><![CDATA[
<p>The article starts with this description of 2FA:<p>> an electronic authentication method in which a user is granted access to a website or application only after successfully presenting two or more distinct types of evidence (or factors) to an authentication mechanism.<p>and concludes with (emphasis mine):<p>> For the average user, the smartphone has become a single point of failure, where the theft of <i>one device and one piece of knowledge</i> (the passcode) can lead to total financial compromise.<p>Looks like 2FA to me, not 1FA.</p>
]]></description><pubDate>Tue, 29 Jul 2025 17:43:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=44726254</link><dc:creator>deredede</dc:creator><comments>https://news.ycombinator.com/item?id=44726254</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44726254</guid></item><item><title><![CDATA[New comment by deredede in "The Convenience Trap: Why Seamless Banking Access Can Turn 2FA into 1FA"]]></title><description><![CDATA[
<p>If people need "`expect` scripting and a few open source packages [to] automate it to be 1 factor", it is effectively 2 factor for 99.9% of the population.<p>Also, if someone uses a password manager to store both the password and the OTP credential, that is still an improvement to security. Intercepting (e.g. shoulder surfing) or guessing the password is no longer enough, an attacker needs to get into the password manager's vault.</p>
]]></description><pubDate>Tue, 29 Jul 2025 17:39:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=44726209</link><dc:creator>deredede</dc:creator><comments>https://news.ycombinator.com/item?id=44726209</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44726209</guid></item><item><title><![CDATA[New comment by deredede in "Jujutsu for busy devs"]]></title><description><![CDATA[
<p>Some people can't install arbitrary software on their employer's hardware.</p>
]]></description><pubDate>Tue, 22 Jul 2025 15:38:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=44648511</link><dc:creator>deredede</dc:creator><comments>https://news.ycombinator.com/item?id=44648511</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44648511</guid></item><item><title><![CDATA[New comment by deredede in "Jujutsu for busy devs"]]></title><description><![CDATA[
<p>> It's not actually how code reviews are done by the people who wrote it.<p>What do you mean by that? Even if you do review by emailing patchsets those are still managed locally using branches, to my knowledge.</p>
]]></description><pubDate>Tue, 22 Jul 2025 06:52:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=44643927</link><dc:creator>deredede</dc:creator><comments>https://news.ycombinator.com/item?id=44643927</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44643927</guid></item><item><title><![CDATA[New comment by deredede in "Jujutsu for busy devs"]]></title><description><![CDATA[
<p>> This is excruciating in git if you ever need to make a fix to an earlier PR because you have to manually rebase every subsequent change.<p>Spreading the word about `git rebase --update-refs` that will automatically update any branches that point to commits along the path (very useful with stacked branches). It is less convenient than what jujutsu offers (you need to know the branches to update, where jujutsu automatically updates any dependency), but still a very useful if you don't want to or can't switch to another tool.</p>
]]></description><pubDate>Tue, 22 Jul 2025 06:47:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=44643891</link><dc:creator>deredede</dc:creator><comments>https://news.ycombinator.com/item?id=44643891</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44643891</guid></item><item><title><![CDATA[New comment by deredede in "Parse, Don’t Validate – Some C Safety Tips"]]></title><description><![CDATA[
<p>"Parse, don't validate" is a catchy way of saying "Instead of mixing data validation and data processing, ensure clean separation by first parsing 'input data' into 'valid data', and then only process 'valid data'".<p>It doesn't mean you should completely eliminate `if` statements and error checking.</p>
]]></description><pubDate>Mon, 14 Jul 2025 07:54:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=44557477</link><dc:creator>deredede</dc:creator><comments>https://news.ycombinator.com/item?id=44557477</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44557477</guid></item></channel></rss>