<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: wging</title><link>https://news.ycombinator.com/user?id=wging</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 06 Apr 2026 05:41:41 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=wging" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by wging in "Why the most valuable things you know are things you cannot say"]]></title><description><![CDATA[
<p>That would not fit as well.</p>
]]></description><pubDate>Sun, 05 Apr 2026 00:31:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=47644972</link><dc:creator>wging</dc:creator><comments>https://news.ycombinator.com/item?id=47644972</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47644972</guid></item><item><title><![CDATA[New comment by wging in "Why the most valuable things you know are things you cannot say"]]></title><description><![CDATA[
<p>What is wrong in that quoted sentence? Do you mean "articulacy" should instead be "articulateness"? "Articulacy" is also a word, and correct in this context.</p>
]]></description><pubDate>Sat, 04 Apr 2026 19:31:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=47642477</link><dc:creator>wging</dc:creator><comments>https://news.ycombinator.com/item?id=47642477</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47642477</guid></item><item><title><![CDATA[New comment by wging in "Why I forked httpx"]]></title><description><![CDATA[
<p>These days node supports the fetch API, which is much simpler. (It wasn't there in 2020, it seems to have been added around 2022-2023.)</p>
]]></description><pubDate>Wed, 25 Mar 2026 10:23:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=47515477</link><dc:creator>wging</dc:creator><comments>https://news.ycombinator.com/item?id=47515477</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47515477</guid></item><item><title><![CDATA[New comment by wging in "The Gervais Principle, or the Office According to “The Office” (2009)"]]></title><description><![CDATA[
<p>> Scott took it too literally<p>He does say in section (I):<p>> I was particularly told to “take it as literally as possible”</p>
]]></description><pubDate>Wed, 11 Mar 2026 06:44:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=47332344</link><dc:creator>wging</dc:creator><comments>https://news.ycombinator.com/item?id=47332344</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47332344</guid></item><item><title><![CDATA[New comment by wging in "Sir Tony Hoare has died"]]></title><description><![CDATA[
<p>But there are no citations on any of the edits claiming this, and there were two incompatible dates claimed (March 5, March 8).</p>
]]></description><pubDate>Mon, 09 Mar 2026 23:17:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=47317097</link><dc:creator>wging</dc:creator><comments>https://news.ycombinator.com/item?id=47317097</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47317097</guid></item><item><title><![CDATA[New comment by wging in "10% of Firefox crashes are caused by bitflips"]]></title><description><![CDATA[
<p>[4] looks like it's only a runner for the actual testing, which is a separate crate: <a href="https://github.com/mozilla/memtest" rel="nofollow">https://github.com/mozilla/memtest</a><p>(see: <a href="https://github.com/mozilla-firefox/firefox/blob/main/toolkit/crashreporter/client/app/Cargo.toml#L21" rel="nofollow">https://github.com/mozilla-firefox/firefox/blob/main/toolkit...</a>, which points to a specific commit in that repo - turns out to be tip of main)</p>
]]></description><pubDate>Fri, 06 Mar 2026 02:40:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=47270156</link><dc:creator>wging</dc:creator><comments>https://news.ycombinator.com/item?id=47270156</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47270156</guid></item><item><title><![CDATA[New comment by wging in "If AI writes code, should the session be part of the commit?"]]></title><description><![CDATA[
<p>Regarding the noise you mention, I wonder if memento's use of the git 'notes' feature is an acceptable way to contain or quarantine that noise. It might still not add much value, but at least it would live in a separate place that is easily filtered out when the user judges it irrelevant. Per the README of the linked repo,<p>> It runs a commit and then stores a cleaned markdown conversation as a git note on the new commit.<p>So it doesn't seem that normal commit history is affected - git stores notes specially, outside of the commit (<a href="https://git-scm.com/docs/git-notes" rel="nofollow">https://git-scm.com/docs/git-notes</a>).<p>In fact github doesn't even display them, according to some (two-year-old) blog posts I'm seeing. Not sure about other interfaces to git (magit, other forges), but git log is definitely able to ignore them (<a href="https://git-scm.com/docs/git-log#Documentation/git-log.txt---no-notes" rel="nofollow">https://git-scm.com/docs/git-log#Documentation/git-log.txt--...</a>).<p>This doesn't mean the saved artifacts would necessarily be <i>valuable</i> - just that, unlike a more naive solution (saving in commit messages or in some directory of tracked files) they may not get in the way of ordinary workflows aside from maybe bloating the repo to some degree.</p>
]]></description><pubDate>Mon, 02 Mar 2026 04:47:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=47213999</link><dc:creator>wging</dc:creator><comments>https://news.ycombinator.com/item?id=47213999</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47213999</guid></item><item><title><![CDATA[New comment by wging in "Eschewing Zshell for Emacs Shell (2014)"]]></title><description><![CDATA[
<p>Discussed previously: <a href="https://news.ycombinator.com/item?id=14825607">https://news.ycombinator.com/item?id=14825607</a></p>
]]></description><pubDate>Sat, 28 Feb 2026 05:57:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=47191011</link><dc:creator>wging</dc:creator><comments>https://news.ycombinator.com/item?id=47191011</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47191011</guid></item><item><title><![CDATA[New comment by wging in "In praise of –dry-run"]]></title><description><![CDATA[
<p>One nice way to do things, if you can get away with it, is to model the actions your application takes explicitly, and pass them to a central thing that actually handles them. Then there can be one place in your code that actually needs to understand whether it's doing a dry run or not. Ideally this would be just returning them from your core logic, "functional core, imperative shell"  style.</p>
]]></description><pubDate>Sun, 01 Feb 2026 01:57:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=46842909</link><dc:creator>wging</dc:creator><comments>https://news.ycombinator.com/item?id=46842909</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46842909</guid></item><item><title><![CDATA[New comment by wging in "Show HN: A small programming language where everything is pass-by-value"]]></title><description><![CDATA[
<p>There is some prior work on mitigating the performance cost of immutability that you might be interested in. For example, Clojure's persistent vectors allow fast modifications without destroying the original vector, because internally they're wide trees rather than just linear arrays of memory. This allows for assignments to be implemented without a copy of the full vector. <a href="https://hypirion.com/musings/understanding-persistent-vector-pt-1" rel="nofollow">https://hypirion.com/musings/understanding-persistent-vector...</a></p>
]]></description><pubDate>Mon, 26 Jan 2026 04:03:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=46761752</link><dc:creator>wging</dc:creator><comments>https://news.ycombinator.com/item?id=46761752</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46761752</guid></item><item><title><![CDATA[New comment by wging in "A 40-line fix eliminated a 400x performance gap"]]></title><description><![CDATA[
<p>It's certainly possible that what I encountered, labeled as an 'icicle graph', is a nonstandard usage of the term. But if so, that's a shame. I don't think inverting the y-axis is useful by itself, the different bucketing is what makes for an actually useful change.</p>
]]></description><pubDate>Wed, 14 Jan 2026 18:20:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=46620049</link><dc:creator>wging</dc:creator><comments>https://news.ycombinator.com/item?id=46620049</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46620049</guid></item><item><title><![CDATA[New comment by wging in "A 40-line fix eliminated a 400x performance gap"]]></title><description><![CDATA[
<p>I also like icicle graphs for this. They're flamegraphs, but aggregated in the reverse order. (I.e. if you have calls A->B->C and D->E->C, then both calls to C are aggregated together, rather than being stacked on top of B and E respectively. It can make it easier to see what's wrong when you have a bunch of distinct codepaths that all invoke a common library where you're spending too much time.)<p>Regular flamegraphs are good too, icicle graphs are just another tool in the toolbox.</p>
]]></description><pubDate>Wed, 14 Jan 2026 02:53:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=46611696</link><dc:creator>wging</dc:creator><comments>https://news.ycombinator.com/item?id=46611696</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46611696</guid></item><item><title><![CDATA[New comment by wging in "You can make up HTML tags"]]></title><description><![CDATA[
<p>A more common alternative to counting divs would be CSS classnames or (for unique elements on the page) IDs. You'd do `document.querySelector('.my-class')` to locate `<div class="my-class">` or similar, rather than using the fact that e.g. something is nested 3 divs inside <body>.<p>Even if this custom element trick didn't work, I don't see why one would need to count divs (at least if you control the markup, but if not then made-up tags aren't an option anyway). The article even mentions using class names as an option.</p>
]]></description><pubDate>Mon, 29 Dec 2025 03:42:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=46417244</link><dc:creator>wging</dc:creator><comments>https://news.ycombinator.com/item?id=46417244</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46417244</guid></item><item><title><![CDATA[New comment by wging in "Stepping down as Mockito maintainer after ten years"]]></title><description><![CDATA[
<p>I think the problem is that it's on his users to enable this flag, not something that can be done by Mockito automatically.</p>
]]></description><pubDate>Mon, 29 Dec 2025 00:19:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=46415944</link><dc:creator>wging</dc:creator><comments>https://news.ycombinator.com/item?id=46415944</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46415944</guid></item><item><title><![CDATA[New comment by wging in "How uv got so fast"]]></title><description><![CDATA[
<p>uv supports PyPI, which still has packages that are Python-2-only. So even if you're running python 3.8, it seems possible to try to declare a dependency on some <3.0 code from PyPI. That means it's an error they should detect.</p>
]]></description><pubDate>Sun, 28 Dec 2025 00:00:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=46406849</link><dc:creator>wging</dc:creator><comments>https://news.ycombinator.com/item?id=46406849</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46406849</guid></item><item><title><![CDATA[New comment by wging in "Show HN: Ez FFmpeg – Video editing in plain English"]]></title><description><![CDATA[
<p>It's based on mpv, not vlc.</p>
]]></description><pubDate>Sat, 27 Dec 2025 10:36:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=46400753</link><dc:creator>wging</dc:creator><comments>https://news.ycombinator.com/item?id=46400753</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46400753</guid></item><item><title><![CDATA[New comment by wging in "The best things and stuff of 2025"]]></title><description><![CDATA[
<p>2023, 2018, and 2016 were all submitted, just with very few comments.</p>
]]></description><pubDate>Sat, 27 Dec 2025 01:15:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=46398197</link><dc:creator>wging</dc:creator><comments>https://news.ycombinator.com/item?id=46398197</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46398197</guid></item><item><title><![CDATA[New comment by wging in "How uv got so fast"]]></title><description><![CDATA[
<p>I think the article is being careful not to say uv ignores _all_ upper bound checks, but specifically 4.0 upper bound checks. If a package says it requires python < 3.0, that's still super relevant, and I'd hope for uv to still notice and prevent you from trying to import code that won't work on python 3. Not sure what it actually does.</p>
]]></description><pubDate>Fri, 26 Dec 2025 22:08:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=46396839</link><dc:creator>wging</dc:creator><comments>https://news.ycombinator.com/item?id=46396839</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46396839</guid></item><item><title><![CDATA[New comment by wging in "When compilers surprise you"]]></title><description><![CDATA[
<p>The beginning of that article is slightly wrong: the compiler should compute N(N-1)/2 (and does), because the original code adds up all the numbers from 0 to N <i>excluding N</i>. The usual formulation in math includes the upper bound: the sum of integers from 1 to N, <i>including N</i>, is N(N+1)/2, so you have to replace N by (N-1) if you want a formula for the sum where the last number is N-1.</p>
]]></description><pubDate>Wed, 24 Dec 2025 21:09:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=46379239</link><dc:creator>wging</dc:creator><comments>https://news.ycombinator.com/item?id=46379239</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46379239</guid></item><item><title><![CDATA[New comment by wging in "Thoughts on Go vs. Rust vs. Zig"]]></title><description><![CDATA[
<p>> But in go you can just _err and never touch it.<p>You can do that in Rust too. This code doesn't warn:<p><pre><code>    let _ = File::create("foo.txt");
</code></pre>
(though if you want code that uses the File struct returned from the happy path of File::create, you can't do <i>that</i> without writing code that deals somehow with the possibility of the create() call failing, whether it is a panic, propagating the error upwards, or actual error handling code. Still, if you're just calling create() for side effects, ignoring the error is this easy.)</p>
]]></description><pubDate>Fri, 05 Dec 2025 00:42:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=46155410</link><dc:creator>wging</dc:creator><comments>https://news.ycombinator.com/item?id=46155410</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46155410</guid></item></channel></rss>