<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: rhdunn</title><link>https://news.ycombinator.com/user?id=rhdunn</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 22 Apr 2026 08:52:27 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=rhdunn" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by rhdunn in "NSA is using Anthropic's Mythos despite blacklist"]]></title><description><![CDATA[
<p>Some relevant links:<p>[1] <a href="https://www.npr.org/2026/04/11/nx-s1-5778508/anthropic-project-glasswing-ai-cybersecurity-mythos-preview" rel="nofollow">https://www.npr.org/2026/04/11/nx-s1-5778508/anthropic-proje...</a><p>> Improvement in AI models' capabilities became noticeable early 2026, said Daniel Stenberg.<p>> He estimates that about 1 in 10 of the reports are security vulnerabilities, the rest are mostly real bugs. Just three months into 2026, the cURL team Stenberg leads has found and fixed more vulnerabilities than each of the previous two years.<p>[2] <a href="https://www.linkedin.com/posts/danielstenberg_curl-activity-7450451335860117504-SM48" rel="nofollow">https://www.linkedin.com/posts/danielstenberg_curl-activity-...</a><p>> The new #curl, AI, security reality shown with some graphs. Part of my work-in-progress presentation at foss-north on April 28.</p>
]]></description><pubDate>Mon, 20 Apr 2026 13:58:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=47834448</link><dc:creator>rhdunn</dc:creator><comments>https://news.ycombinator.com/item?id=47834448</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47834448</guid></item><item><title><![CDATA[New comment by rhdunn in "Turtle WoW classic server announces shutdown after Blizzard wins injunction"]]></title><description><![CDATA[
<p>So it's similar to Defence of the Ancients that resulted in DotA and other MOBAs. It wonder if they'll be able to create a version of this with the new mechanics/gameplay loop but with different art/assets.</p>
]]></description><pubDate>Sun, 19 Apr 2026 16:30:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=47825492</link><dc:creator>rhdunn</dc:creator><comments>https://news.ycombinator.com/item?id=47825492</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47825492</guid></item><item><title><![CDATA[New comment by rhdunn in "Qwen3.6-35B-A3B: Agentic coding power, now open to all"]]></title><description><![CDATA[
<p>The Q5 quantization (26.6GB) should easily run on a 32GB 5090. The Q4 (22.4GB) should fit on a 24GB 4090, but you may need to drop it down to Q3 (16.8GB) when factoring in the context.<p>You can also run those on smaller cards by configuring the number of layers on the GPU. That should allow you to run the Q4/Q5 version on a 4090, or on older cards.<p>You could also run it entirely on the CPU/in RAM if you have 32GB (or ideally 64GB) of RAM.<p>The more you run in RAM the slower the inference.</p>
]]></description><pubDate>Thu, 16 Apr 2026 14:41:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=47793711</link><dc:creator>rhdunn</dc:creator><comments>https://news.ycombinator.com/item?id=47793711</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47793711</guid></item><item><title><![CDATA[New comment by rhdunn in "Lean proved this program correct; then I found a bug"]]></title><description><![CDATA[
<p>Tools like this (formal verification, sparse, etc.) and built-in mechanism (types, generics, RAII, rust's borrow checker) can only verify issues within the scope of that framework. There are also trade-offs and limitations with each type and each implementation.<p>Type checking allows you to (outside of type casting such as in languages like C/C++ and casting to object for generic containers in Java) verify that an object is of a given type. That allows you to be sure that a well-formed program isn't doing things like putting a random object in a list.<p>Languages like C#, Scala, and Kotlin improve Java generics by making the generic type of a container or other interface/type part of the type system. This allows generic types of a generic type to preserve the inner type. This makes it possible to implement things like monads and mapping functions to preserve the generic type.<p>A similar thing is possible with union types, sealed interfaces/traits, etc. that allow you to check and verify the return type instead of defaulting it to a generic object/any type.<p>Likewise with other features like nullable/non-null annotations (or corresponding nullable type annotations like in Kotlin and recent C# versions).<p>All of these can be abused/circumvented, but if you keep your code within that framework the compiler will stop that code compiling. Likewise, these solve a limited set of bugs. For example, nullable types can't verify memory management and related bugs.</p>
]]></description><pubDate>Tue, 14 Apr 2026 06:16:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=47761889</link><dc:creator>rhdunn</dc:creator><comments>https://news.ycombinator.com/item?id=47761889</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47761889</guid></item><item><title><![CDATA[New comment by rhdunn in "Battle for Wesnoth: open-source, turn-based strategy game"]]></title><description><![CDATA[
<p>My only gripe with the game is that healing doesn't give XP to the healing units. This means you need to place them in combat to level up instead of placing them behind the fighters like they are intended to be, and with them initially having low health they are very squishy. I know you can kinda cheese it by reducing a monster to 1-2 HP and then getting them to attack, but it feels like going against their role.</p>
]]></description><pubDate>Mon, 06 Apr 2026 18:33:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=47664954</link><dc:creator>rhdunn</dc:creator><comments>https://news.ycombinator.com/item?id=47664954</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47664954</guid></item><item><title><![CDATA[New comment by rhdunn in "Gemma 4 on iPhone"]]></title><description><![CDATA[
<p>For llama-server (and possibly other similar applications) you can specify the number of GPU layers (e.g. `--n-gpu-layers`). By default this is set to run the entire model in VRAM, but you can set it to something like 64 or 32 to get it to use less VRAM. This trades speed as it will need to swap layers in and out of VRAM as it runs, but allows you to run a larger model, larger context, or additional models.</p>
]]></description><pubDate>Mon, 06 Apr 2026 10:06:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=47658930</link><dc:creator>rhdunn</dc:creator><comments>https://news.ycombinator.com/item?id=47658930</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47658930</guid></item><item><title><![CDATA[New comment by rhdunn in "Show HN: I made a YouTube search form with advanced filters"]]></title><description><![CDATA[
<p>That search (e.g. `ford fiesta water pump`) is consistent for me as well, except for an "explore more" section in the middle of the results.<p>So it does seem to be specific searches where it gives up after the first 7-10 results (or decides to show you some more related results after 20-30 additional unrelated results).<p>I wonder if this is algorithmic. E.g. people searching for a specific "how to replace/fix ..." are not going to click on results from their recommended feed, so the algorithm could have learned to keep those results fixed. However, someone looking for a piece of entertainment (trailer, book review, etc.) may be more inclined to click on other unrelated content, so those searches are more inclined to show results from the user's recommended feed.</p>
]]></description><pubDate>Mon, 06 Apr 2026 06:56:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=47657731</link><dc:creator>rhdunn</dc:creator><comments>https://news.ycombinator.com/item?id=47657731</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47657731</guid></item><item><title><![CDATA[New comment by rhdunn in "Show HN: I made a YouTube search form with advanced filters"]]></title><description><![CDATA[
<p>Examples:<p>- `dune book review`<p>- `sierpinski triangle`<p>- `full adder` -- better results, but includes an unrelated "previously watched" section<p>One of the main issues I've encountered is that when searching for something you generally see:<p>- 7 or so relevant results<p>- shorts (which I'm not interested in)<p>- "people also watched" / "previously watched" results -- I'm not interested in that, I just want what I'm looking for<p>- "channels new to you" -- can include results, so maybe okay<p>- "explore more" -- mostly irrelevant results to what I'm looking for<p>- "previously watched" -- may be fine, but mostly unrelated<p>After the first 7-10 results it generally becomes unusable.</p>
]]></description><pubDate>Mon, 06 Apr 2026 06:38:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=47657657</link><dc:creator>rhdunn</dc:creator><comments>https://news.ycombinator.com/item?id=47657657</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47657657</guid></item><item><title><![CDATA[New comment by rhdunn in "Axios compromised on NPM – Malicious versions drop remote access trojan"]]></title><description><![CDATA[
<p>XPath 1.0 is a pain to write queries for. XPath 2.0 adds features that make it easier to write queries. XPath 3.1 adds support for maps, arrays, and JSON.<p>And the default Python XPath support is severely limited, not even a full 1.0 implementation. You can't use the Python XPath support to do things like `element[contains(@attribute, 'value')]` so you need to include an external library to implement XPath.</p>
]]></description><pubDate>Wed, 01 Apr 2026 06:21:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=47597498</link><dc:creator>rhdunn</dc:creator><comments>https://news.ycombinator.com/item?id=47597498</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47597498</guid></item><item><title><![CDATA[New comment by rhdunn in "Axios compromised on NPM – Malicious versions drop remote access trojan"]]></title><description><![CDATA[
<p>XPath is used in processing XML (JATS and other publishing/standards XML files) and can be used to proces HTML content.<p>RDF and the related standards are still used in some areas. If the "Batteries Included" standard library ignores these then those standards will need an external library to support them.<p>Schema.org is used by Google and other search engines to describe content on the page such as breadcrumbs, publications, paywalled content, cinema screenings, etc. If you are generating websites then you need to produce schema.org metadata to improve the SEO.<p>Did you notice that a new PNG standard was released in 2025 (last year, with a working draft in 2022) adding support for APNG, HDR, and Exif metadata? Yes, it hasn't changed frequently, but it does change. So if you have PNG support in the standard library you need to update it to support those changes.<p>And if HTML support is optional then you will need an external library to support it. Hence a "Batteries Included" standard library being incomplete.</p>
]]></description><pubDate>Wed, 01 Apr 2026 06:16:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=47597462</link><dc:creator>rhdunn</dc:creator><comments>https://news.ycombinator.com/item?id=47597462</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47597462</guid></item><item><title><![CDATA[New comment by rhdunn in "Axios compromised on NPM – Malicious versions drop remote access trojan"]]></title><description><![CDATA[
<p>That's my point. You can have a large standard library like those languages I mentioned, but that isn't going to include everything nor cover every use case, so you'll have external libraries (via PyPi for Python, NuGet for .NET, and Maven for Java/JVM).</p>
]]></description><pubDate>Tue, 31 Mar 2026 19:09:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=47592021</link><dc:creator>rhdunn</dc:creator><comments>https://news.ycombinator.com/item?id=47592021</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47592021</guid></item><item><title><![CDATA[New comment by rhdunn in "Axios compromised on NPM – Malicious versions drop remote access trojan"]]></title><description><![CDATA[
<p>The HTML "Living Standard" is constantly updated [1-6].<p>The PNG spec [7] has been updated several times in 1996, 1998, 1999, and 2025.<p>The XPath spec [8] has multiple versions: 1.0 (1999), 2.0 (2007), 3.0 (2014), and 3.1 (2017), with 4.0 in development.<p>The RDF spec [9] has multiple versions: 1.0 (2004), and 1.1 (2014). Plus the related specs and their associated versions.<p>The schema.org metadata standard [10] is under active development and is currently on version 30.<p>[1] <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/selectedcontent" rel="nofollow">https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/...</a> (New)<p>[2] <a href="https://web.dev/baseline/2025" rel="nofollow">https://web.dev/baseline/2025</a> -- popover API, plain text content editable, etc.<p>[3] <a href="https://web.dev/baseline/2024" rel="nofollow">https://web.dev/baseline/2024</a> -- exclusive accordions, declarative shadow root DOM<p>[4] <a href="https://web.dev/baseline/2023" rel="nofollow">https://web.dev/baseline/2023</a> -- inert attribute, lazy loading iframes<p>[5] <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/search" rel="nofollow">https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/...</a> (Baseline 2023)<p>[6] <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/details" rel="nofollow">https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/...</a> (2020)<p>[7] <a href="https://en.wikipedia.org/wiki/PNG" rel="nofollow">https://en.wikipedia.org/wiki/PNG</a><p>[8] <a href="https://en.wikipedia.org/wiki/XPath" rel="nofollow">https://en.wikipedia.org/wiki/XPath</a><p>[9] <a href="https://en.wikipedia.org/wiki/Resource_Description_Framework" rel="nofollow">https://en.wikipedia.org/wiki/Resource_Description_Framework</a><p>[10] <a href="https://schema.org/" rel="nofollow">https://schema.org/</a></p>
]]></description><pubDate>Tue, 31 Mar 2026 19:05:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=47591978</link><dc:creator>rhdunn</dc:creator><comments>https://news.ycombinator.com/item?id=47591978</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47591978</guid></item><item><title><![CDATA[New comment by rhdunn in "Axios compromised on NPM – Malicious versions drop remote access trojan"]]></title><description><![CDATA[
<p>There are several issues with "Batteries Included" ecosystems (like Python, C#/.NET, and Java):<p>1. They are not going to include everything. This includes things like new file formats.<p>2. They are going to be out of date whenever a standard changes (HTML, etc.), application changes (e.g. SQLite/PostgreSQL/etc. for SQL/ORM bindings), or API changes (DirectX, Vulcan, etc.).<p>3. Things like data structures, graphics APIs, etc. will have performance characteristics that may be different to your use case.<p>4. They can't cover all nice use cases such as the different libraries and frameworks for creating games of different genres.<p>For example, Python's XML DOM implementation only implements a subset of XPath and doesn't support parsing HTML.<p>The fact that Python, Java, and .NET have large library ecosystems proves that even if you have a "Batteries Included" approach there will always be other things to add.</p>
]]></description><pubDate>Tue, 31 Mar 2026 17:19:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=47590585</link><dc:creator>rhdunn</dc:creator><comments>https://news.ycombinator.com/item?id=47590585</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47590585</guid></item><item><title><![CDATA[New comment by rhdunn in "CSS is DOOMed"]]></title><description><![CDATA[
<p>The question is really about where the boundary between presentation (CSS) and interactivity (JavaScript) lies.<p>For static content like documents the distinction is easy to determine. When you think about applications, widgets, and other interactive elements the line starts to blur.<p>Before things like flex layout, positioning content with a 100% height was hard, resulting in JavaScript being used for layout and positioning.<p>Positioning a dropdown menu, tooltip, or other content required JavaScript. Now you can specify the anchor position of the element via CSS properties. Determining which anchor position to use also required JavaScript, but with things like if() can now be done directly in CSS.<p>Implementing disclosure elements had to be done with a mix of JavaScript and CSS. Now you can use the details/summary elements and CSS to style the open/close states.<p>Animation effects when opening an element, on hover, etc. such as easing in colour transitions can easily be done in CSS now. Plus, with the reduced motion media query you can gate those effects to that user preference in CSS.</p>
]]></description><pubDate>Sun, 29 Mar 2026 09:23:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=47561607</link><dc:creator>rhdunn</dc:creator><comments>https://news.ycombinator.com/item?id=47561607</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47561607</guid></item><item><title><![CDATA[New comment by rhdunn in "When Do We Become Adults, Really?"]]></title><description><![CDATA[
<p>So people who play games for a living are not adults? There are many people who create videos in Minecraft with complex builds, drawing inspiration from things like architecture, nature, etc.<p>And there are many adults who play video games to unwind after work.<p>And it's not just men who play video games. There are a lot of women who play video games including Minecraft and other games, including a huge range of more casual games.</p>
]]></description><pubDate>Sun, 29 Mar 2026 09:07:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=47561535</link><dc:creator>rhdunn</dc:creator><comments>https://news.ycombinator.com/item?id=47561535</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47561535</guid></item><item><title><![CDATA[New comment by rhdunn in "Wine 11 rewrites how Linux runs Windows games at kernel with massive speed gains"]]></title><description><![CDATA[
<p>Wine has a lot of tests that are run across platforms to check conformance -- <a href="https://test.winehq.org/data/" rel="nofollow">https://test.winehq.org/data/</a>. These are a large part of why it has good compatibility.</p>
]]></description><pubDate>Tue, 24 Mar 2026 20:06:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=47508350</link><dc:creator>rhdunn</dc:creator><comments>https://news.ycombinator.com/item?id=47508350</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47508350</guid></item><item><title><![CDATA[New comment by rhdunn in "It Took Me 30 Years to Solve This VFX Problem – Green Screen Problem [video]"]]></title><description><![CDATA[
<p>The idea behind a greenscreen is that you can make that green colour transparent in the frames of footage allowing you to blend that with some other background or other layered footage. This has issues like not always having a uniform colour, difficulty with things like hair, and lighting affecting some edges. These have to be manually cleaned up frame-by-frame, which takes a lot of time that is mostly busy work.<p>An alternative approach (such as that used by the sodium lighting on Mary Poppins) is that you create two images per frame -- the core image and a mask. The mask is a black and white image where the white pixels are the pixels to keep and the black pixels the ones to discard. Shades of gray indicate blended pixels.<p>For the mask approach you are filming a perfect alpha channel to apply to the footage that doesn't have the issues of greenscreen. The problem is that this requires specialist, licensed equipment and perfect filming conditions.<p>The new approach is to take advantage of image/video models to train a model that can produce the alpha channel mask for a given frame (and thus an entire recording) when just given greenscreen footage.<p>The use of CGI in the training data allows the input image and mask to be perfect without having to spend hundreds of hours creating that data. It's also easier to modify and create variations to test different cases such as reflective or soft edges.<p>Thus, you have the greenscreen input footage, the expected processed output and alpha channel mask. You can then apply traditional neural net training techniques on the data using the expected image/alpha channel as the target. For example, you can compute the difference on each of the alpha channel output neurons from the expected result, then apply backpropagation to compute the differences through the neural network, and then nudge the neuron weights in the computed gradient direction. Repeat that process across a distribution of the test images over multiple passes until the network no longer changes significantly between passes.</p>
]]></description><pubDate>Tue, 17 Mar 2026 21:10:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=47418368</link><dc:creator>rhdunn</dc:creator><comments>https://news.ycombinator.com/item?id=47418368</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47418368</guid></item><item><title><![CDATA[New comment by rhdunn in "The Appalling Stupidity of Spotify's AI DJ"]]></title><description><![CDATA[
<p>Here's the post: <a href="https://www.anthropic.com/engineering/building-c-compiler" rel="nofollow">https://www.anthropic.com/engineering/building-c-compiler</a>. It was written by a researcher at Anthropic.</p>
]]></description><pubDate>Sun, 15 Mar 2026 15:26:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=47388326</link><dc:creator>rhdunn</dc:creator><comments>https://news.ycombinator.com/item?id=47388326</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47388326</guid></item><item><title><![CDATA[New comment by rhdunn in "The Appalling Stupidity of Spotify's AI DJ"]]></title><description><![CDATA[
<p>AI assisted coding is really good as an enhanced auto-complete, often better as it picks up patterns in the code and will complete whole lines or chunks of code. There, I'll assess the results like any other auto-completed suggestions.<p>For other things like when asking questions I won't just blindly copy what the LLM is suggesting. I'll often rewrite it in a style that best fits the style of the codebase I'm working on, or to better fit it into what I'm trying to achieve. Also, if I've asked it for how to do a specific one-line query and it has rewritten a whole chunk of code, I'll only make use of that one line, or specific fix/change. -- This also helps me to understand the response from the LLM.<p>I'll then do testing to make sure that the code is working correctly, with unit tests where relevant.</p>
]]></description><pubDate>Sun, 15 Mar 2026 15:22:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=47388289</link><dc:creator>rhdunn</dc:creator><comments>https://news.ycombinator.com/item?id=47388289</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47388289</guid></item><item><title><![CDATA[New comment by rhdunn in "The Appalling Stupidity of Spotify's AI DJ"]]></title><description><![CDATA[
<p>I'm not in the US, but have listened to various of their tiny desk concerts that they put up on YouTube.</p>
]]></description><pubDate>Sun, 15 Mar 2026 15:12:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=47388178</link><dc:creator>rhdunn</dc:creator><comments>https://news.ycombinator.com/item?id=47388178</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47388178</guid></item></channel></rss>