<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: anematode</title><link>https://news.ycombinator.com/user?id=anematode</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 19 Oct 2026 07:01:58 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=anematode" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by anematode in "Netflix vmaf: Perceptual video quality assessment based on multi-method fusion"]]></title><description><![CDATA[
<p>VMAF is super cool, although not the end-all-be-all of video quality measurement for sure. I'm currently evaluating switching over to the new v1.0 models.<p>The (unsolicited) slop PRs on that repository are a sight to behold, though. The same slopper posted an aggressive response to my PR: <a href="https://github.com/Netflix/vmaf/pull/1586" rel="nofollow">https://github.com/Netflix/vmaf/pull/1586</a></p>
]]></description><pubDate>Sun, 18 Oct 2026 22:45:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=50146265</link><dc:creator>anematode</dc:creator><comments>https://news.ycombinator.com/item?id=50146265</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50146265</guid></item><item><title><![CDATA[New comment by anematode in "Sharing AI progress in mathematics"]]></title><description><![CDATA[
<p>Dear lord that website is laggy</p>
]]></description><pubDate>Tue, 06 Oct 2026 23:26:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=49985639</link><dc:creator>anematode</dc:creator><comments>https://news.ycombinator.com/item?id=49985639</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49985639</guid></item><item><title><![CDATA[New comment by anematode in "Coding is not solved"]]></title><description><![CDATA[
<p>lgtm!<p>... Oh by the way, did you know that Claude Code is actually a mini game engine? /s</p>
]]></description><pubDate>Mon, 28 Sep 2026 19:02:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=49882844</link><dc:creator>anematode</dc:creator><comments>https://news.ycombinator.com/item?id=49882844</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49882844</guid></item><item><title><![CDATA[New comment by anematode in "Three-LLM: Three.js-based WebGPU LLM inference engine"]]></title><description><![CDATA[
<p>That makes very little sense when you can just use WebGPU and have fine-grained control...<p>for something like LLM inference, having this kind of abstraction seems like quite a hindrance</p>
]]></description><pubDate>Thu, 03 Sep 2026 22:56:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=49558270</link><dc:creator>anematode</dc:creator><comments>https://news.ycombinator.com/item?id=49558270</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49558270</guid></item><item><title><![CDATA[New comment by anematode in "AI;DR (AI; Didn't Read)"]]></title><description><![CDATA[
<p>Even worse, in a brownfield codebase that was once fairly light with comments, that's now being subject to these modifications, the insane amounts of commentary around the parts newly touched by AI lead to an excessive emphasis on those parts, for both human and AI readers (who think, well if this one part is commented so thoroughly, it must be unusually subtle)</p>
]]></description><pubDate>Tue, 18 Aug 2026 06:20:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=49342001</link><dc:creator>anematode</dc:creator><comments>https://news.ycombinator.com/item?id=49342001</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49342001</guid></item><item><title><![CDATA[New comment by anematode in "Protobuf has LSP support. You're welcome"]]></title><description><![CDATA[
<p>JSON. /s</p>
]]></description><pubDate>Sun, 16 Aug 2026 20:33:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=49323402</link><dc:creator>anematode</dc:creator><comments>https://news.ycombinator.com/item?id=49323402</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49323402</guid></item><item><title><![CDATA[New comment by anematode in "Branchless Rust: Making a Filter 4x Faster by Removing an If"]]></title><description><![CDATA[
<p>Yes, that's one approach. Another reasonable approach is to get out a mask from the comparison using `vmovmskpd` and use that to look up a shuffle constant, since there are only 16 possibilities. This also works well on NEON, although I wonder there whether it'd make more sense to find the shuffle dynamically rather than loading it.</p>
]]></description><pubDate>Thu, 06 Aug 2026 16:39:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=49199055</link><dc:creator>anematode</dc:creator><comments>https://news.ycombinator.com/item?id=49199055</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49199055</guid></item><item><title><![CDATA[New comment by anematode in "Branchless Rust: Making a Filter 4x Faster by Removing an If"]]></title><description><![CDATA[
<p>Great link, nice find!</p>
]]></description><pubDate>Thu, 06 Aug 2026 08:33:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=49194069</link><dc:creator>anematode</dc:creator><comments>https://news.ycombinator.com/item?id=49194069</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49194069</guid></item><item><title><![CDATA[New comment by anematode in "Branchless Rust: Making a Filter 4x Faster by Removing an If"]]></title><description><![CDATA[
<p>Good question. I personally doubt that the compress instruction is easy to coax compilers into generating, as there are many edge cases to consider.<p>For example, you'll notice here that we perform a full vector store of 8 elements unconditionally, even if only a few of the elements are active. This is <i>safe</i>, though, because the output buffer is as large as the input buffer, and we're chunking by 8, so we'll never trash memory past the end; but this is a tricky analysis. Performance-wise, we rely on the CPU's store buffer to make these overlapping stores cheap.<p>Instead, you might think that you could just store the elements which are actually active, using a masked store. In fact there is also an intrinsic for this purpose (_mm512_mask_compressstoreu_pd), but it is extremely slow on some CPUs, namely Zen 4, so it's dangerous to use unless you know exactly what CPU you're using. (In my testing, there also seems to be some weird hazard on Zen 5 where multiple memory-destination compress instructions to nearby, even non-overlapping, addresses are serialized. But I haven't looked closer at this.)</p>
]]></description><pubDate>Thu, 06 Aug 2026 07:59:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=49193833</link><dc:creator>anematode</dc:creator><comments>https://news.ycombinator.com/item?id=49193833</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49193833</guid></item><item><title><![CDATA[New comment by anematode in "Branchless Rust: Making a Filter 4x Faster by Removing an If"]]></title><description><![CDATA[
<p>Nice post!<p>You can do even a bit better if you're willing to use intrinsics. In particular this kind of operation is well-suited for compress-type operations, available as a first-class operation in at least AVX512, SVE and RVV; you can also emulate them reasonably quickly on NEON and AVX2.<p>Here's an example, building on the OP's work:<p><pre><code>    pub fn filter_compress(input: &[f64], threshold: f64) -> Vec<f64> {
        use std::arch::x86_64::*;
    
        let mut out = vec![0.0; input.len()]; 
        let mut n = 0usize;
    
        let (head, tail) = input.as_chunks::<8>();
    
        for chunk in head {
            unsafe {
                let p = _mm512_loadu_pd(chunk.as_ptr());
                let m = _mm512_cmpnle_pd_mask(p, _mm512_set1_pd(threshold));
        
                let compress = _mm512_maskz_compress_pd(m, p); 
                _mm512_storeu_pd(out.as_mut_ptr().wrapping_add(n), compress);
                n += m.count_ones() as usize;
            }   
        }   
    
        for &x in tail {
            out[n] = x;
            n += (x > threshold) as usize;
        }   
        out.truncate(n);
        out 
    }
</code></pre>
For me it's about 25% less time than the branchless version with 1,000,000 elements, and 60% less with 10,000 elements where memory bandwidth effects are less relevant.</p>
]]></description><pubDate>Thu, 06 Aug 2026 04:03:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=49192285</link><dc:creator>anematode</dc:creator><comments>https://news.ycombinator.com/item?id=49192285</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49192285</guid></item><item><title><![CDATA[New comment by anematode in "Born Against, or why hobby programming communities are against LLM usage"]]></title><description><![CDATA[
<p>That's awesome :) Do you have any links to your guys' work that I could check out?</p>
]]></description><pubDate>Thu, 06 Aug 2026 03:31:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=49192097</link><dc:creator>anematode</dc:creator><comments>https://news.ycombinator.com/item?id=49192097</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49192097</guid></item><item><title><![CDATA[New comment by anematode in "Born Against, or why hobby programming communities are against LLM usage"]]></title><description><![CDATA[
<p>It's a dog-eat-dog world, eh? :)<p>Anyway, I don't see how this relates to the original discussion. Nor do I think the irony is particularly deep: As far as I'm aware, Deep Blue didn't plagiarize Kasparov, and indeed alpha-beta search is quite different than how humans calculate. But yes, I'd have been very demoralized if I were Kasparov, although he seems to be doing well now.<p>Edit: Regarding being mean-spirited, sorry to say, but I don't particularly care for the feelings of someone who has been repeatedly dishonest and used LLMs to respond to people engaging in good faith. That latter path has been exhausted now.<p>To co-opt your conflation of legality and morality: free speech, mf!</p>
]]></description><pubDate>Wed, 05 Aug 2026 20:38:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=49188684</link><dc:creator>anematode</dc:creator><comments>https://news.ycombinator.com/item?id=49188684</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49188684</guid></item><item><title><![CDATA[New comment by anematode in "Born Against, or why hobby programming communities are against LLM usage"]]></title><description><![CDATA[
<p>:EmotiTrumpet:</p>
]]></description><pubDate>Wed, 05 Aug 2026 20:30:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=49188572</link><dc:creator>anematode</dc:creator><comments>https://news.ycombinator.com/item?id=49188572</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49188572</guid></item><item><title><![CDATA[New comment by anematode in "Born Against, or why hobby programming communities are against LLM usage"]]></title><description><![CDATA[
<p>> Some times that's appropriate, like if there's a competition for hand-made or human-written something.<p>Indeed, and this is the problem: unlike woodworking, where my power-assisted creation is independent of, or complements, your handcraft, this engine is directly competing with other engines. Twiss is being disingenuous when he says he has no interest in submitting it to competitions; it plays on a rated account on Lichess, for example.</p>
]]></description><pubDate>Wed, 05 Aug 2026 20:20:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=49188433</link><dc:creator>anematode</dc:creator><comments>https://news.ycombinator.com/item?id=49188433</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49188433</guid></item><item><title><![CDATA[New comment by anematode in "Born Against, or why hobby programming communities are against LLM usage"]]></title><description><![CDATA[
<p>My implicit request, which I should have made clearer, was for him to delete (or make private) the repository and move on to greater ideals.</p>
]]></description><pubDate>Wed, 05 Aug 2026 20:14:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=49188366</link><dc:creator>anematode</dc:creator><comments>https://news.ycombinator.com/item?id=49188366</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49188366</guid></item><item><title><![CDATA[New comment by anematode in "Born Against, or why hobby programming communities are against LLM usage"]]></title><description><![CDATA[
<p>You'll notice I didn't mention copyright, and that's because I don't think it's relevant. I think your analysis is correct. Keep in mind too that Stockfish – the engine I work on, although I wasn't at the time – was the subject of a high-profile defense of the GPL in Germany: <a href="https://stockfishchess.org/blog/2021/our-lawsuit-against-chessbase/" rel="nofollow">https://stockfishchess.org/blog/2021/our-lawsuit-against-che...</a>. That case was different as it involved wholesale copying of the source code, rather than porting ideas. Ideas shouldn't be copyrightable.<p>But copyright and plagiarism are orthogonal, and questions of morality are much more tied to the latter. It would be illegal (in the United States) for me to publish a copy of <i>Nineteen Eighty-Four</i>, but not immoral. It was not immoral, in my view, for Aaron Swartz to try to liberate JSTor articles.<p>That doesn't make plagiarism acceptable, either. And therefore, I'm willing to call it out when I see it.</p>
]]></description><pubDate>Wed, 05 Aug 2026 20:10:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=49188315</link><dc:creator>anematode</dc:creator><comments>https://news.ycombinator.com/item?id=49188315</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49188315</guid></item><item><title><![CDATA[New comment by anematode in "Born Against, or why hobby programming communities are against LLM usage"]]></title><description><![CDATA[
<p>I'm the OP of the cited thread, ask me anything :P</p>
]]></description><pubDate>Wed, 05 Aug 2026 19:22:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=49187647</link><dc:creator>anematode</dc:creator><comments>https://news.ycombinator.com/item?id=49187647</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49187647</guid></item><item><title><![CDATA[New comment by anematode in "Cloudflare enforces engineering standards using AI"]]></title><description><![CDATA[
<p>Meanwhile: <a href="https://textslashplain.com/2026/08/04/security-is-hard-yall/" rel="nofollow">https://textslashplain.com/2026/08/04/security-is-hard-yall/</a><p>> The Cloudflare folks apparently want security issues reported via HackerOne (which wouldn’t let me log in because the Cloudflare CAPTCHA HackerOne uses seems to be broken…).</p>
]]></description><pubDate>Wed, 05 Aug 2026 02:19:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=49177851</link><dc:creator>anematode</dc:creator><comments>https://news.ycombinator.com/item?id=49177851</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49177851</guid></item><item><title><![CDATA[New comment by anematode in "Ten advances in mathematics and theoretical computer science"]]></title><description><![CDATA[
<p>Fully agreed. As someone who both loves chess and works on chess engines... these comparisons to chess needs to stop.</p>
]]></description><pubDate>Sat, 01 Aug 2026 08:23:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=49132310</link><dc:creator>anematode</dc:creator><comments>https://news.ycombinator.com/item?id=49132310</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49132310</guid></item><item><title><![CDATA[New comment by anematode in "Scriptc by Vercel: TypeScript-to-Native compiler, no JavaScript engine in binary"]]></title><description><![CDATA[
<p>> deferring int optimizations for later<p>This part made me laugh out loud</p>
]]></description><pubDate>Mon, 27 Jul 2026 03:45:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=49064986</link><dc:creator>anematode</dc:creator><comments>https://news.ycombinator.com/item?id=49064986</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49064986</guid></item></channel></rss>