<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: 20k</title><link>https://news.ycombinator.com/user?id=20k</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 20 Oct 2026 20:22:26 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=20k" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by 20k in "It's still ok to enjoy programming"]]></title><description><![CDATA[
<p>I've never particularly enjoyed programming on its own merits, but also think AI is crap. Its mainly because AI clearly accelerates the parts of programming that I've found tend to lead to software projects falling apart, ie not understanding the code<p>The last 20 years of experience have told me that that's the #1 variable that correlates with the death of a project, so I'm in no hurry to speed that along. People have been trying to find some way to skip that difficult step of actually understanding what's happened since programming was invented, and its always a bad idea - because that process of internalising a projects structure is the single most valuable thing for a project. Creating a project structure that <i>can</i> be internalised by human beings - and then doing that - is software engineering</p>
]]></description><pubDate>Mon, 19 Oct 2026 20:06:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=50157381</link><dc:creator>20k</dc:creator><comments>https://news.ycombinator.com/item?id=50157381</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50157381</guid></item><item><title><![CDATA[New comment by 20k in "C++26 Contracts: Introduction to Preconditions and Postconditions"]]></title><description><![CDATA[
<p>You absolutely can make assumptions about what happens if you set the flag, and the spec guarantees that you can!<p>There's no difference between the flag being set/unset by your build system, and #define-ing or #undef-ing the symbol in code</p>
]]></description><pubDate>Sat, 17 Oct 2026 22:51:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=50135901</link><dc:creator>20k</dc:creator><comments>https://news.ycombinator.com/item?id=50135901</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50135901</guid></item><item><title><![CDATA[New comment by 20k in "C++26 Contracts: Introduction to Preconditions and Postconditions"]]></title><description><![CDATA[
<p>That's not what the C/C++ spec says people can rely on with assert/NDEBUG. Like don't get me wrong, you can do what you want, but you can and will break code in ways that introduce memory unsafety with this approach</p>
]]></description><pubDate>Fri, 16 Oct 2026 14:41:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=50118947</link><dc:creator>20k</dc:creator><comments>https://news.ycombinator.com/item?id=50118947</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50118947</guid></item><item><title><![CDATA[New comment by 20k in "C++26 Contracts: Introduction to Preconditions and Postconditions"]]></title><description><![CDATA[
<p>You use the status of NDEBUG to control whether or not your asserts are run. I don't understand how this is complex<p>If you want to use asserts, you need to control the definition of NDEBUG. You either do this with your build system (common), or manually (slightly less common). This is literally <assert.h> 101<p>The preprocessor is widely used for a variety of things when its necessary, including #includes and #defines, because there's literally no other mechanism for this. Its bizarre to say that nobody controls the definition status of NDEBUG because people don't use the preprocessor</p>
]]></description><pubDate>Fri, 16 Oct 2026 02:31:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=50113213</link><dc:creator>20k</dc:creator><comments>https://news.ycombinator.com/item?id=50113213</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50113213</guid></item><item><title><![CDATA[New comment by 20k in "C++26 Contracts: Introduction to Preconditions and Postconditions"]]></title><description><![CDATA[
<p>Blindly replacing #include <assert.h> to look up something incompatible that doesn't respect NDEBUG seems like a <i>remarkably</i> bad idea</p>
]]></description><pubDate>Fri, 16 Oct 2026 02:27:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=50113171</link><dc:creator>20k</dc:creator><comments>https://news.ycombinator.com/item?id=50113171</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50113171</guid></item><item><title><![CDATA[New comment by 20k in "C++26 Contracts: Introduction to Preconditions and Postconditions"]]></title><description><![CDATA[
<p>Of course? You simply undefine NDEBUG in your library<p>Its trivially easy to guarantee that an assert always runs, and its well defined behaviour according to the spec. There's no reason not to if you want to use asserts in a way that guarantees that they always fire, which is a supported use case. Its common practice<p>There's no equivalent for contracts</p>
]]></description><pubDate>Thu, 15 Oct 2026 21:28:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=50110558</link><dc:creator>20k</dc:creator><comments>https://news.ycombinator.com/item?id=50110558</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50110558</guid></item><item><title><![CDATA[New comment by 20k in "C++26 Contracts: Introduction to Preconditions and Postconditions"]]></title><description><![CDATA[
<p>Its pretty easy for me to guarantee that my asserts will all always be run via NDEBUG. I can't make that same guarantee for contracts</p>
]]></description><pubDate>Thu, 15 Oct 2026 20:48:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=50109996</link><dc:creator>20k</dc:creator><comments>https://news.ycombinator.com/item?id=50109996</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50109996</guid></item><item><title><![CDATA[New comment by 20k in "C++26 Contracts: Introduction to Preconditions and Postconditions"]]></title><description><![CDATA[
<p>This is the biggest problem with contracts, there's simply no way to actually say "please always execute this check". A lot of people replying seem to think that the critique is with the concept of contract based programming, but the C++ version of contracts is just <i>weird</i><p>The programming model for C++ contracts as described by the authors, and spec, is that they are 'ghost code'. You must <i>never</i> assume that a contract check is actually executed, even if you've asked your compiler to execute your contract checks. This is because ABI/ODR problems can and will cause your contract checks to be deleted, as well as the 'observe' contract mode which is a strange one<p>So its hard to know what the use case for them is as a result. You can't use them for safety checks, because you must assume they won't be run. Hilariously, they actually introduce safety problems vs asset: Eg take two pieces of code:<p><pre><code>    assert(p != nullptr);

    assert(p->some_value());
</code></pre>
vs<p><pre><code>    contract_assert(p != nullptr);

    contract_assert(p->some_value());
</code></pre>
People mistakenly transform #1 into #2 unconditionally, not realising that this is actually a misuse of the contracts feature. It can, and will lead to undefined behaviour - while being perfectly well defined with asserts<p>I have a feeling that in 10 years the advice will be to never use contracts in anything approaching code that needs safety, as they're generally less safe than using an assert for no real reason. So what's their use case?</p>
]]></description><pubDate>Thu, 15 Oct 2026 18:18:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=50107898</link><dc:creator>20k</dc:creator><comments>https://news.ycombinator.com/item?id=50107898</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50107898</guid></item><item><title><![CDATA[New comment by 20k in "Steam Client is now faster than Epic's new vibe coded launcher"]]></title><description><![CDATA[
<p>Getting involved with epic games as a game developer feels like willingly feeding yourself into the mouth of an open shark. Yeah maybe they have a better cut, but I'm still not doing it<p>Valve rightly get a lot of flak for the gambling and high % cut, but you do get a functional useful service in return at least, that doesn't appear to be actively trying to screw you over</p>
]]></description><pubDate>Thu, 15 Oct 2026 18:11:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=50107771</link><dc:creator>20k</dc:creator><comments>https://news.ycombinator.com/item?id=50107771</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50107771</guid></item><item><title><![CDATA[New comment by 20k in "QGIS enacts moratorium on AI contributions"]]></title><description><![CDATA[
<p>I've seen this with godot. People are letting their agents blindly file AI generated PRs even though Godot specifically bans this, and then coming in and giving a very weak apology when they get called out by the devs. A lot of the bugs are <i>incredibly</i> low priority bugs as well that no reasonable person would ever really run into, with these huge long wordy slop reports<p>Its kind of appalling that people think this is an acceptable way to behave</p>
]]></description><pubDate>Mon, 12 Oct 2026 16:07:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=50058432</link><dc:creator>20k</dc:creator><comments>https://news.ycombinator.com/item?id=50058432</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50058432</guid></item><item><title><![CDATA[New comment by 20k in "REA Reverse – Engineer Anything"]]></title><description><![CDATA[
<p>If adobe use any AI tools to help develop photoshop, its all been loaded in. Or if its ever ended up anywhere on the internet, even in private</p>
]]></description><pubDate>Sat, 10 Oct 2026 06:27:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=50030233</link><dc:creator>20k</dc:creator><comments>https://news.ycombinator.com/item?id=50030233</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50030233</guid></item><item><title><![CDATA[New comment by 20k in "REA Reverse – Engineer Anything"]]></title><description><![CDATA[
<p>The issue is that LLMs very likely have access to the source code of these products as part of their training data, and are then being used to generate clones. There's no barrier in the middle to ensure copyright violations don't leak<p>The reason why 'reverse engineering' has gotten so good is because what we're actually seeing is fully automated luxury plagiarism</p>
]]></description><pubDate>Sat, 10 Oct 2026 04:53:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=50029689</link><dc:creator>20k</dc:creator><comments>https://news.ycombinator.com/item?id=50029689</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50029689</guid></item><item><title><![CDATA[New comment by 20k in "Greg Kroah-Hartman – Security in the LLM Age [video]"]]></title><description><![CDATA[
<p>This was something I noticed as well, I was hoping that an audience member would pick them up on it. It seems incredibly risky to commit anything produced by these tools when they were trained on such dodgy data</p>
]]></description><pubDate>Sat, 03 Oct 2026 14:44:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=49944747</link><dc:creator>20k</dc:creator><comments>https://news.ycombinator.com/item?id=49944747</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49944747</guid></item><item><title><![CDATA[New comment by 20k in "Greg Kroah-Hartman – Security in the LLM Age [video]"]]></title><description><![CDATA[
<p>Every 6 months without exception people claim that the new generation of tools is absolutely incredible, and the old ones were total garbage, and that you only think they're crap if you were using the old tools. This just gets repeatedly memory holed again and again, and we're expected to always uncritically buy into the idea that they're actually good now against all evidence from the real world</p>
]]></description><pubDate>Sat, 03 Oct 2026 14:35:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=49944656</link><dc:creator>20k</dc:creator><comments>https://news.ycombinator.com/item?id=49944656</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49944656</guid></item><item><title><![CDATA[New comment by 20k in "Greg Kroah-Hartman – Security in the LLM Age [video]"]]></title><description><![CDATA[
<p>That's a different kind of capability though. None of the bugs discovered seem to be particularly serious and this talk pretty much shreds the idea that they're any good for that, but the thing called out here is that AI is <i>very</i> good at shortening the time to exploit security vulnerabilities. That's the thing that's really changed with threat management</p>
]]></description><pubDate>Sat, 03 Oct 2026 14:33:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=49944625</link><dc:creator>20k</dc:creator><comments>https://news.ycombinator.com/item?id=49944625</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49944625</guid></item><item><title><![CDATA[New comment by 20k in "Greg Kroah-Hartman – Security in the LLM Age [video]"]]></title><description><![CDATA[
<p>In the context of the talk, its about the message of "Don't Panic" because in reality none of this is nearly as bad as some people are making it out to be</p>
]]></description><pubDate>Sat, 03 Oct 2026 14:31:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=49944607</link><dc:creator>20k</dc:creator><comments>https://news.ycombinator.com/item?id=49944607</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49944607</guid></item><item><title><![CDATA[New comment by 20k in "SDF vs. MSDF vs. Slug: GPU Text Rendering"]]></title><description><![CDATA[
<p>What signals this as being LLM writing for you? I'm crap at noticing specifics here</p>
]]></description><pubDate>Wed, 30 Sep 2026 15:03:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=49909957</link><dc:creator>20k</dc:creator><comments>https://news.ycombinator.com/item?id=49909957</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49909957</guid></item><item><title><![CDATA[New comment by 20k in "Google ending ChromeOS support two years early"]]></title><description><![CDATA[
<p>Apparently, you aren't meant to use data, measure anything, or look at the actual end result of how software is really being released. Line Go Up</p>
]]></description><pubDate>Tue, 29 Sep 2026 16:51:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=49896353</link><dc:creator>20k</dc:creator><comments>https://news.ycombinator.com/item?id=49896353</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49896353</guid></item><item><title><![CDATA[New comment by 20k in "A Privacy Analysis of Web and Mobile Conversational AI Agents [pdf]"]]></title><description><![CDATA[
<p>A lot of people seem to be very in denial about the fact that OpenAI and co do not give a crap about you. They don't care about the agreements you've signed. You're just a pile of cash to them</p>
]]></description><pubDate>Tue, 29 Sep 2026 11:36:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=49891487</link><dc:creator>20k</dc:creator><comments>https://news.ycombinator.com/item?id=49891487</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49891487</guid></item><item><title><![CDATA[New comment by 20k in "There is more to code review than (automatable) detection"]]></title><description><![CDATA[
<p>Its a strong signal that developers make mistakes, code review has empirically been shown to be one of the best ways of uncovering defects. If you aren't finding bugs that people have written during code review (or you're not doing code review at all like the person I was replying to!), they're slipping rightwards<p>Bugs usually include business logic edge cases, and significant problems include someone realising while reading the PR that we can actually create a much better solution to the underlying problem. Ideally that realisation would happen prior to the PR being offered, but that's also not really how humans work<p>Example: During a PR review for a graphical feature for a game, someone reading it realises that we can actually have a significantly better solution to the underlying problem. You can't catch this in testing, because it doesn't even make sense conceptually to test it. It also sucks that it happened after someone put in a lot of work, but with graphics development you expect a lot of what you write to get canned and replaced with a better solution, because the technology evolves over time. The work is iterative towards the final goal anyway<p>Its also very common to miss subtle edge cases with graphics hardware, eg someone misunderstood the intricacies of GPU hardware, or a team member has relevant experience that someone else does not have. Or they missed a problematic memory access pattern on some hardware for example. Or something simple like they've technically forgotten a barrier, that the validation layer doesn't report for some reason<p>Eg: The function "tanh" is broken on some AMD GPU hardware, and should never be used under any circumstances. The actual GPU implementation of it is just screwed. Ideally everyone would know this, but its a very common function to crop up during specific graphics algorithms (as it smoothly remaps the range [-inf, +inf] -> [-1, 1]). So occasionally I've spotted that, and had to explain that we need to use an approximation instead, and then now everyone knows . It rarely gets caught during testing setups, because people don't know they need to include that hardware in their tests in the first place</p>
]]></description><pubDate>Mon, 28 Sep 2026 17:50:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=49881729</link><dc:creator>20k</dc:creator><comments>https://news.ycombinator.com/item?id=49881729</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49881729</guid></item></channel></rss>