<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: IceDane</title><link>https://news.ycombinator.com/user?id=IceDane</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 29 Apr 2026 07:59:57 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=IceDane" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by IceDane in "AI should elevate your thinking, not replace it"]]></title><description><![CDATA[
<p>It's awful, and seeing even engineers I respected become so AI pilled they're shipping slop without review has made me lose respect for them. It also can't help but make me wonder: what am I missing? Am I holding it wrong? Am I too focused on irrelevant details?<p>So far, my conclusion is that while LLMs can be s productivity boost, you have to direct them carefully. They don't really care about friction and bad abstractions in your codebase and will happily keep piling cards on top of the crooked house of cards they've generated.<p>Just like before AI, you need a cycle of building and refactoring running on repeat with careful reviews. Otherwise you will end up with something that even an LLM will have a hard time working in.</p>
]]></description><pubDate>Mon, 27 Apr 2026 06:45:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=47918444</link><dc:creator>IceDane</dc:creator><comments>https://news.ycombinator.com/item?id=47918444</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47918444</guid></item><item><title><![CDATA[New comment by IceDane in "GoDaddy gave a domain to a stranger without any documentation"]]></title><description><![CDATA[
<p>How about reading the article?</p>
]]></description><pubDate>Sun, 26 Apr 2026 22:25:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=47915384</link><dc:creator>IceDane</dc:creator><comments>https://news.ycombinator.com/item?id=47915384</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47915384</guid></item><item><title><![CDATA[New comment by IceDane in "AI should elevate your thinking, not replace it"]]></title><description><![CDATA[
<p>It's staggering to me how many times I've heard this argument that LLMs are just the next level of abstraction. Some people are even comparing them to compilers.</p>
]]></description><pubDate>Sun, 26 Apr 2026 22:20:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=47915331</link><dc:creator>IceDane</dc:creator><comments>https://news.ycombinator.com/item?id=47915331</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47915331</guid></item><item><title><![CDATA[New comment by IceDane in "AI should elevate your thinking, not replace it"]]></title><description><![CDATA[
<p>Outsource manual labor, not your brain.</p>
]]></description><pubDate>Sun, 26 Apr 2026 22:19:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=47915313</link><dc:creator>IceDane</dc:creator><comments>https://news.ycombinator.com/item?id=47915313</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47915313</guid></item><item><title><![CDATA[New comment by IceDane in "An AI agent deleted our production database. The agent's confession is below"]]></title><description><![CDATA[
<p>This person is a card-carrying moron and has no idea how anything works. Even if we concede that maybe there should be some grace period or soft deletions or whatever..<p>Also, the post is 100% written by an LLM, which is ironic enough on its own. But that then makes it a bit more curious that you find this argument in this slop, because any LLM would say so. But if you badger it enough, it will concede to your demands, so you just know this clown was yelling at his LLM while writing this post.<p>He really should've thrown this post at a fresh session and asked for an honest, critical review.</p>
]]></description><pubDate>Sun, 26 Apr 2026 22:04:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=47915176</link><dc:creator>IceDane</dc:creator><comments>https://news.ycombinator.com/item?id=47915176</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47915176</guid></item><item><title><![CDATA[New comment by IceDane in "An AI agent deleted our production database. The agent's confession is below"]]></title><description><![CDATA[
<p>This is the stupidest thing I've read for months, which is wild with the Trump admin and all the AI hype.<p>Not only do they blame all of this on a stupid tool, but they also clearly couldn't even write this themselves. This is so obviously written by an LLM. Then there's the moronic notion of having the LLM explain itself.<p>Was the goal of this post to sabotage the business? Because I can barely come up with anything dumber than this post. Nobody with a brain and basic understanding of computers and LLMs would trust this person after this.<p>PS: "Confirm deletion" on an api call??? Lol. How vehemently it is argued in spite of how dumb that is is a typical example of someone badgering the LLM until it agrees. You can get them to take any position as long as you get mad enough.</p>
]]></description><pubDate>Sun, 26 Apr 2026 21:55:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=47915075</link><dc:creator>IceDane</dc:creator><comments>https://news.ycombinator.com/item?id=47915075</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47915075</guid></item><item><title><![CDATA[New comment by IceDane in "Proton Meet isn't what they told you it was"]]></title><description><![CDATA[
<p>This is the worst form of Article I've ever seen. Did the author read this? Is there even really an author or did Chatgpt just write all of it and generate the page?</p>
]]></description><pubDate>Fri, 03 Apr 2026 10:29:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=47625036</link><dc:creator>IceDane</dc:creator><comments>https://news.ycombinator.com/item?id=47625036</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47625036</guid></item><item><title><![CDATA[New comment by IceDane in "Automatically generate all 3D print files for organizing a drawer"]]></title><description><![CDATA[
<p>Okay, so this is just a text prompt that could have been actual UI elements where I select dimensions, fed to an LLM in the poorest way possible so it doesn't even work properly, where you ask it to kinda sorta solve a binpacking problem.<p>Imma pass.</p>
]]></description><pubDate>Fri, 27 Mar 2026 22:45:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=47549383</link><dc:creator>IceDane</dc:creator><comments>https://news.ycombinator.com/item?id=47549383</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47549383</guid></item><item><title><![CDATA[New comment by IceDane in "The Appalling Stupidity of Spotify's AI DJ"]]></title><description><![CDATA[
<p>I can scarcely imagine a way to formulate an argument that is better at convincing the reader that the author is a grumpy dude on the spectrum.</p>
]]></description><pubDate>Sun, 15 Mar 2026 16:37:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=47389038</link><dc:creator>IceDane</dc:creator><comments>https://news.ycombinator.com/item?id=47389038</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47389038</guid></item><item><title><![CDATA[New comment by IceDane in "Some notes on starting to use Django"]]></title><description><![CDATA[
<p>There is no way to autogenerate migrations that work in all cases. There are lots of things out there that can generate migrations that work for most simple cases.</p>
]]></description><pubDate>Wed, 28 Jan 2026 05:54:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=46791579</link><dc:creator>IceDane</dc:creator><comments>https://news.ycombinator.com/item?id=46791579</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46791579</guid></item><item><title><![CDATA[New comment by IceDane in "High-Level Is the Goal"]]></title><description><![CDATA[
<p>It is blatantly obvious to anyone with just a little bit of experience that the reddit devs barely know what they are doing. This applies to their frontend as well as backend. For some reason, reddit is also the only major social network where downtime is expected. Reddit throwing 500 errors under load happens literally every week.</p>
]]></description><pubDate>Sat, 17 Jan 2026 08:13:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=46656208</link><dc:creator>IceDane</dc:creator><comments>https://news.ycombinator.com/item?id=46656208</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46656208</guid></item><item><title><![CDATA[New comment by IceDane in "My Gripes with Prolog"]]></title><description><![CDATA[
<p>I thought the same thing.<p>I, too, am a big fan of prolog and have (at least) yearly binges where I write a lot of it for fun and profit (and some frustration), but I do not consider myself to be an expert. But even I can see that the author has what I would consider a pretty basic understanding of prolog. Which makes it even more surprising they are <i>writing a book</i> that uses prolog.</p>
]]></description><pubDate>Fri, 16 Jan 2026 09:10:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=46644565</link><dc:creator>IceDane</dc:creator><comments>https://news.ycombinator.com/item?id=46644565</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46644565</guid></item><item><title><![CDATA[New comment by IceDane in "Deprecate like you mean it"]]></title><description><![CDATA[
<p>It's extremely convenient for you to become offended at this stage so you can avoid actually addressing my points, since your claims are borderline nonsense. Any person that understands dependent types and is unfortunate enough to read through all the drivel you have posted in this thread will also immediately realize this, so it doesn't really matter. You are right that your words stand on their own in that regard.<p>In the end, you leave this thread knowing this as well, if you are at all capable of introspection.</p>
]]></description><pubDate>Wed, 24 Dec 2025 12:51:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=46375146</link><dc:creator>IceDane</dc:creator><comments>https://news.ycombinator.com/item?id=46375146</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46375146</guid></item><item><title><![CDATA[New comment by IceDane in "Deprecate like you mean it"]]></title><description><![CDATA[
<p>Thank you for (once again) making it clear to any reader that you are not to be taken seriously. If only we could edit older comments so that the reader didn't have to suffer through all your nonsense to find out.</p>
]]></description><pubDate>Sun, 14 Dec 2025 17:34:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=46264914</link><dc:creator>IceDane</dc:creator><comments>https://news.ycombinator.com/item?id=46264914</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46264914</guid></item><item><title><![CDATA[New comment by IceDane in "Deprecate like you mean it"]]></title><description><![CDATA[
<p>> Or even a real one. The hypothetical part is that you'd be able to understand it. The languages with complex type systems are complete bears to work with, as I am sure you can image.<p>I have written Haskell professionally for several years and worked with Idris and other similar languages. I'm perfectly aware of what is possible.<p>> The compiler would give you an error if you got the syntax wrong, and in isolation it's fair that you could, say, get the domain name wrong as long as it is syntactically valid. I suppose what I failed to convey, making some assumptions about your understanding of type systems, is that the types would not just specify RFC-compliance. You would also spec out other dependencies such that you also couldn't even provide the wrong domain name without a compiler error. So, no, the implementation of the function couldn't be wrong.<p>Wow, wouldn't that be something. This is hilariously wrong. You can build tiny functions and then compose those into larger functions and then the larger functions are all correct but <i>only as long as their components are correct</i>. It would be lovely if there was some magic construct that prevented you from writing incorrect code. Maybe it could be extended to hacker news comments, and then we could have just skipped this entire discussion.<p>> You could mis-spec the contract, of course. Then the function could be "wrong". Maybe this is the intent behind what you are trying to say here. But the idea has always been here that I would also read and accept the contract, so it wouldn't actually be "wrong". It would be exactly what we both expect. My side will be written to what the contact specifies. If you try to deviate from the contract later, you'll face the wrath of the compiler.<p>A truly baffling take. Bravo! Even on Hacker News, that was truly something. I don't even know where to begin. I guess I don't really have to, since when it comes to explaining the ease with which you transfer words straight from your ass to hacker news comments, it does a better job than I could possibly hope to do.<p>> As you point out, that's not the case in Typescript. If you try to change the contract (even if by accident) the compiler/typechecker will never say a word. I won't know until my code starts breaking. Your tests are the only thing you have to keep you in line with what we agreed upon. Tests define the contract in its case.<p>At this point, it's fairly clear that you are just thoroughly confused about how any of this works and what is actually possible. If you disagree, I'd love to hear how you would implement some sort of construct that allows you to write a function of the type `String -> Email` that doesn't throw if the email is invalid, can process arbitrary user input (not just string literals in your code), and somehow makes it a compiler error if your code is ever incorrect at all. PS: Explicitly returning and carrying around proof of validity doesn't count.</p>
]]></description><pubDate>Sun, 14 Dec 2025 16:14:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=46264110</link><dc:creator>IceDane</dc:creator><comments>https://news.ycombinator.com/item?id=46264110</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46264110</guid></item><item><title><![CDATA[New comment by IceDane in "Deprecate like you mean it"]]></title><description><![CDATA[
<p>Let's imagine we are working with some hypothetical language in which what you describe is possible.<p>At some point, you will have to write a function where you validate/parse some arbitrary string, and it then returns some sort of `Email` type as a result. That function will probably return something like `Option<Email>` because you could feed it an invalid email.<p>The implementation for that function can also be wrong, in exactly the same way the implementation for the typescript equivalent could be wrong. You would have to test it just the same. The guarantees provided by the typescript function are exactly equivalent, except for the fact that you do technically have an escape hatch where you can "force" the creation of a branded `Email` without using the provided safe constructor, where the other language might completely prevent this - but I've already addressed this. In practice, it doesn't matter. You only make the safe constructor available to the user, so they would have to explicitly go out of their way to construct an invalid branded `Email`, and if they do, well, that's not really your problem.</p>
]]></description><pubDate>Sat, 13 Dec 2025 10:31:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=46253575</link><dc:creator>IceDane</dc:creator><comments>https://news.ycombinator.com/item?id=46253575</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46253575</guid></item><item><title><![CDATA[New comment by IceDane in "Deprecate like you mean it"]]></title><description><![CDATA[
<p>You clearly don't understand the patterns I described. Look up branding and try reading e.g. "parse, don't validate".</p>
]]></description><pubDate>Fri, 12 Dec 2025 16:05:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=46245416</link><dc:creator>IceDane</dc:creator><comments>https://news.ycombinator.com/item?id=46245416</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46245416</guid></item><item><title><![CDATA[New comment by IceDane in "Deprecate like you mean it"]]></title><description><![CDATA[
<p>More than anything, this reveals your lack of understanding of modern languages and type systems.<p>TypeScript, for example, is one of the most widely used languages in the world. It has an incredibly powerful type system which you can use to model a lot of your invariants. By leaning on patterns such as correct-by-construction and branding, you can carry around type-level evidence that e.g. a number is within a certain range, or that the string you are carrying around is in fact a `UserId` and not just any other random string.<p>Can you intentionally break these guarantees if you go out of your way? Of course. But that's irrelevant, in the same way it is irrelevant that `any` can be used to break the type system guarantees. In practice, types are validated at the boundaries and everything inside can lean on those guarantees. The fact that someone can reach in and destroy those guarantees intentionally doesn't matter in practice.</p>
]]></description><pubDate>Fri, 12 Dec 2025 09:48:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=46242507</link><dc:creator>IceDane</dc:creator><comments>https://news.ycombinator.com/item?id=46242507</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46242507</guid></item><item><title><![CDATA[New comment by IceDane in "Denial of service and source code exposure in React Server Components"]]></title><description><![CDATA[
<p>How is it painful? You need to bump a minor version? It took me less than 5 minutes 90% of which was waiting for CI. There's even a tool you can run to do it for you.</p>
]]></description><pubDate>Fri, 12 Dec 2025 07:02:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=46241581</link><dc:creator>IceDane</dc:creator><comments>https://news.ycombinator.com/item?id=46241581</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46241581</guid></item><item><title><![CDATA[New comment by IceDane in "Denial of service and source code exposure in React Server Components"]]></title><description><![CDATA[
<p>No, there aren't. The react team isn't going to axe half the team because there's a high severity CVE.</p>
]]></description><pubDate>Fri, 12 Dec 2025 06:59:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=46241564</link><dc:creator>IceDane</dc:creator><comments>https://news.ycombinator.com/item?id=46241564</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46241564</guid></item></channel></rss>