<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: 33a</title><link>https://news.ycombinator.com/user?id=33a</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 27 Apr 2026 08:31:15 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=33a" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by 33a in "The path to ubiquitous AI (17k tokens/sec)"]]></title><description><![CDATA[
<p>If they made a low power/mobile version, this could be really huge for embedded electronics.  Mass produced, highly efficient "good enough" but still sort of dumb ais could put intelligence in house hold devices like toasters, light switches, and toilets.  Truly we could be entering into the golden age of curses.</p>
]]></description><pubDate>Fri, 20 Feb 2026 12:54:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=47087409</link><dc:creator>33a</dc:creator><comments>https://news.ycombinator.com/item?id=47087409</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47087409</guid></item><item><title><![CDATA[New comment by 33a in "Rethinking High-School Science Fairs"]]></title><description><![CDATA[
<p>Goodheart's Law of college admissions</p>
]]></description><pubDate>Tue, 17 Feb 2026 16:27:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=47049285</link><dc:creator>33a</dc:creator><comments>https://news.ycombinator.com/item?id=47049285</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47049285</guid></item><item><title><![CDATA[New comment by 33a in "Show HN: ChartGPU – WebGPU-powered charting library (1M points at 60fps)"]]></title><description><![CDATA[
<p>plot.ly has been able to do WebGL scatter plots with > 10 million points for years.  There's a lot of libraries that can do this I think?<p><a href="https://plotly.com/python/performance/" rel="nofollow">https://plotly.com/python/performance/</a></p>
]]></description><pubDate>Wed, 21 Jan 2026 17:01:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=46708319</link><dc:creator>33a</dc:creator><comments>https://news.ycombinator.com/item?id=46708319</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46708319</guid></item><item><title><![CDATA[New comment by 33a in "IBM AI ('Bob') Downloads and Executes Malware"]]></title><description><![CDATA[
<p>You can probably get any coding agent with this if you put these instructions in the README/CLAUDE.md/AGENTS.md or whatever of your repo.<p>It's unclear to me if Bob is working as intended or how we should classify these types of bugs.  Threat modeling this sort of prompt injection gets murky, but in general don't put untrusted markdown into your AI agents.</p>
]]></description><pubDate>Thu, 08 Jan 2026 19:09:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=46545079</link><dc:creator>33a</dc:creator><comments>https://news.ycombinator.com/item?id=46545079</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46545079</guid></item><item><title><![CDATA[New comment by 33a in "We should all be using dependency cooldowns"]]></title><description><![CDATA[
<p>A lot of security problems can be solved by moving slower.</p>
]]></description><pubDate>Fri, 21 Nov 2025 16:54:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=46006201</link><dc:creator>33a</dc:creator><comments>https://news.ycombinator.com/item?id=46006201</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46006201</guid></item><item><title><![CDATA[New comment by 33a in "Why are so many pedestrians killed by cars in the US?"]]></title><description><![CDATA[
<p>Pedestrians on phones, not drivers on phones.</p>
]]></description><pubDate>Thu, 09 Oct 2025 12:33:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=45526717</link><dc:creator>33a</dc:creator><comments>https://news.ycombinator.com/item?id=45526717</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45526717</guid></item><item><title><![CDATA[New comment by 33a in "NPM debug and chalk packages compromised"]]></title><description><![CDATA[
<p>It's actually pretty easy to detect that something is obfuscated, but it's harder to prove that the obfuscated code is actually harmful.  This is why we still have a team of humans review flagged packages before we try to get them taken down, otherwise you would end up with way too many false positives.</p>
]]></description><pubDate>Tue, 09 Sep 2025 01:27:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=45176325</link><dc:creator>33a</dc:creator><comments>https://news.ycombinator.com/item?id=45176325</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45176325</guid></item><item><title><![CDATA[New comment by 33a in "NPM debug and chalk packages compromised"]]></title><description><![CDATA[
<p>When we find malware on any registry (npm, rubygems, pypi or otherwise), we immediately report it to the upstream registry and try to get it taken down.  This helps reduce the blast radius from incidents like this and mitigates the damage done to the entire ecosystem.<p>You can call it ambulance chasing, but I think this is a good thing for the whole software ecosystem if people aren't accidentally bundling cryptostealers in their web apps.<p>And regarding not copying massive trees of untrusted dependencies:  I am actually all for this!  It's better to have fewer dependencies, but this is also not how software works today.  Given the imperfect world we have, I think it's better to at least try to do something to detect and block malware than just complain about npm.</p>
]]></description><pubDate>Tue, 09 Sep 2025 00:04:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=45175747</link><dc:creator>33a</dc:creator><comments>https://news.ycombinator.com/item?id=45175747</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45175747</guid></item><item><title><![CDATA[New comment by 33a in "NPM debug and chalk packages compromised"]]></title><description><![CDATA[
<p>We use a mix of static analysis and AI. Flagged packages are escalated to a human review team.  If we catch a malicious package, we notify our users, block installation and report them to the upstream package registries.  Suspected malicious packages that have not yet been reviewed by a human are blocked for our users, but we don't try to get them removed until after they have been triaged by a human.<p>In this incident, we detected the packages quickly, reported them, and they were taken down shortly after. Given how high profile the attack was we also published an analysis soon after, as did others in the ecosystem.<p>We try to be transparent with how Socket work.  We've published the details of our systems in several papers, and I've also given a few talks on how our malware scanner works at various conferences:<p>* <a href="https://arxiv.org/html/2403.12196v2" rel="nofollow">https://arxiv.org/html/2403.12196v2</a><p>* <a href="https://www.youtube.com/watch?v=cxJPiMwoIyY" rel="nofollow">https://www.youtube.com/watch?v=cxJPiMwoIyY</a></p>
]]></description><pubDate>Mon, 08 Sep 2025 23:54:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=45175681</link><dc:creator>33a</dc:creator><comments>https://news.ycombinator.com/item?id=45175681</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45175681</guid></item><item><title><![CDATA[New comment by 33a in "NPM debug and chalk packages compromised"]]></title><description><![CDATA[
<p>We also caught this right away at Socket,<p><a href="https://socket.dev/blog/npm-author-qix-compromised-in-major-supply-chain-attack" rel="nofollow">https://socket.dev/blog/npm-author-qix-compromised-in-major-...</a><p>While it sucks that this happened, the good thing is that the ecosystem mobilized quickly.  I think these sorts of incidents really show why package scanning is essential for securing open source package repositories.</p>
]]></description><pubDate>Mon, 08 Sep 2025 18:19:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=45171859</link><dc:creator>33a</dc:creator><comments>https://news.ycombinator.com/item?id=45171859</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45171859</guid></item><item><title><![CDATA[New comment by 33a in "How RubyGems.org protects OSS infrastructure"]]></title><description><![CDATA[
<p>Signing doesn't protect against maintainer sabotage, but it could theoretically help if the registry were ever compromised.  It mainly works to prevent MITM type attacks on the package distribution itself.<p>In the case of central package managers like rails/npm/cargo/etc., these benefits are very speculative, but there is probably some merit to adopting this approach in distributed ecosystems like go.</p>
]]></description><pubDate>Tue, 26 Aug 2025 12:02:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=45025346</link><dc:creator>33a</dc:creator><comments>https://news.ycombinator.com/item?id=45025346</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45025346</guid></item><item><title><![CDATA[New comment by 33a in "Beyond Diffusion: Inductive Moment Matching"]]></title><description><![CDATA[
<p>Reminds me of <a href="https://ggx-research.github.io/publication/2023/05/10/publication-iadb.html" rel="nofollow">https://ggx-research.github.io/publication/2023/05/10/public...</a></p>
]]></description><pubDate>Wed, 12 Mar 2025 16:13:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=43344764</link><dc:creator>33a</dc:creator><comments>https://news.ycombinator.com/item?id=43344764</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43344764</guid></item><item><title><![CDATA[New comment by 33a in "X Is Down"]]></title><description><![CDATA[
<p>BlueSky is still working great.</p>
]]></description><pubDate>Mon, 10 Mar 2025 17:51:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=43323274</link><dc:creator>33a</dc:creator><comments>https://news.ycombinator.com/item?id=43323274</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43323274</guid></item><item><title><![CDATA[New comment by 33a in "Evaluating RAG for large scale codebases"]]></title><description><![CDATA[
<p>If the self evaluation makes it better, then why not do the self evaluation as part of the normal RAG workflow?</p>
]]></description><pubDate>Fri, 14 Feb 2025 21:50:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=43053463</link><dc:creator>33a</dc:creator><comments>https://news.ycombinator.com/item?id=43053463</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43053463</guid></item><item><title><![CDATA[New comment by 33a in "Hedy: Textual programming made easy"]]></title><description><![CDATA[
<p>For what it's worth, my kids really like this project.</p>
]]></description><pubDate>Mon, 27 Jan 2025 15:44:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=42842299</link><dc:creator>33a</dc:creator><comments>https://news.ycombinator.com/item?id=42842299</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42842299</guid></item><item><title><![CDATA[New comment by 33a in "Master Hexagonal Architecture in Rust"]]></title><description><![CDATA[
<p>This seems really badly argued.  The second version seems much worse and harder to extend.  Looks like classic ORM style database abstraction wrapped with hand written types.  This type of code usually leads to inflexible data models and inefficient n+1 query patterns.  Relational algebra is inherently more flexible than OOP/ML-style type systems and its usually better to put as little clutter between your code and the db queries as possible in practice.</p>
]]></description><pubDate>Tue, 17 Sep 2024 15:39:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=41568815</link><dc:creator>33a</dc:creator><comments>https://news.ycombinator.com/item?id=41568815</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41568815</guid></item><item><title><![CDATA[New comment by 33a in "2D Rigid Body Collision Resolution"]]></title><description><![CDATA[
<p>Posted a reply here <a href="https://news.ycombinator.com/item?id=40466855">https://news.ycombinator.com/item?id=40466855</a><p>This is a specific reference on how constraints model contact between rigid bodies <a href="https://box2d.org/files/ErinCatto_UnderstandingConstraints_GDC2014.pdf" rel="nofollow">https://box2d.org/files/ErinCatto_UnderstandingConstraints_G...</a><p>Most games since Half Life 2 use constraint forces like this to solve collisions.  Springs/penalty forces are still used sometimes in commercial physics solvers since they're easier to couple with other simulations, but they require many small timesteps to ensure convergence.</p>
]]></description><pubDate>Fri, 24 May 2024 14:54:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=40466866</link><dc:creator>33a</dc:creator><comments>https://news.ycombinator.com/item?id=40466866</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40466866</guid></item><item><title><![CDATA[New comment by 33a in "2D Rigid Body Collision Resolution"]]></title><description><![CDATA[
<p>The principle of least constraint is the basis for rigid body mechanics based contact forces.  This has been known since the days of Gauss and Hamilton, and is fundamentally how restitution and collision forces are derived in Lagrangian mechanics.  There's a long literature on this going back more than a hundred years.<p>It's true that some commercial solvers like Ansys use spring/penalty methods, but this is due to the spring forces being easier to couple to other solvers.  It's harder in the Ansys force/velocity formulation to combine things like elasticity and fluids to their rigid body solver.  To deal with the instability of systems of many stiff springs they have to take many small timesteps to avoid convergence issues.<p>More recently techniques like XPBD have been gaining popularity, particularly in film, which use purely positional constraints and variational methods to combine many different types of physics simulations.  There's a really great and approachable series of videos by Matthias Muller on youtube which goes through how to implement all this in JS <a href="https://matthias-research.github.io/pages/" rel="nofollow">https://matthias-research.github.io/pages/</a><p>Finally it's funny you should mention games, since many older games used spring methods for physics.  It was only when constraint based solvers became popular after Havok/Half-Life 2 did we start to see games with real rigid body dynamics and stable stacking of boxes.  Older physics games like Trespasser ( <a href="https://en.wikipedia.org/wiki/Trespasser_(video_game)" rel="nofollow">https://en.wikipedia.org/wiki/Trespasser_(video_game)</a> ) had many bugs due to the use of hacky spring physics.  For a good explanation of how games do it today look at Erin Catto's work on Box2D <a href="https://box2d.org/publications/" rel="nofollow">https://box2d.org/publications/</a></p>
]]></description><pubDate>Fri, 24 May 2024 14:53:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=40466855</link><dc:creator>33a</dc:creator><comments>https://news.ycombinator.com/item?id=40466855</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40466855</guid></item><item><title><![CDATA[New comment by 33a in "2D Rigid Body Collision Resolution"]]></title><description><![CDATA[
<p>It's still the same principle even in games.  If you are trying to explain where forces come from and how resolution works, you need to ground it in something.  Otherwise you are just adding extra assumptions onto assumptions.</p>
]]></description><pubDate>Fri, 24 May 2024 10:53:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=40464836</link><dc:creator>33a</dc:creator><comments>https://news.ycombinator.com/item?id=40464836</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40464836</guid></item><item><title><![CDATA[New comment by 33a in "2D Rigid Body Collision Resolution"]]></title><description><![CDATA[
<p>Collisions are violations of the pairwise non-intersection constraint between bodies.  Collision forces are Lagrange multipliers of these constraints. Collision normals are the (normalized) partial derivatives of the constraint function wrt one of the body's configurations.</p>
]]></description><pubDate>Fri, 24 May 2024 10:29:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=40464706</link><dc:creator>33a</dc:creator><comments>https://news.ycombinator.com/item?id=40464706</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40464706</guid></item></channel></rss>