<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: rspeele</title><link>https://news.ycombinator.com/user?id=rspeele</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 25 Aug 2026 00:09:14 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=rspeele" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by rspeele in "Every exterior shot in The Taking of Pelham 123"]]></title><description><![CDATA[
<p>This is such a great time capsule movie. You can smell the cigarette smoke when you watch it. It also has the most perfect ending shot I've ever seen.</p>
]]></description><pubDate>Fri, 14 Aug 2026 20:59:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=49304519</link><dc:creator>rspeele</dc:creator><comments>https://news.ycombinator.com/item?id=49304519</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49304519</guid></item><item><title><![CDATA[New comment by rspeele in "Agent Skill to Force Docs in ASD-STE100 Simplified Technical English"]]></title><description><![CDATA[
<p>I actually don't mean that skills are useless, I have them in my projects too. Just that any time I've seen one shared publicly, basically the introductory blurb of "what does this skill do?" would serve adequately as "the skill". Such is the nature of machines that understand natural language.<p>It makes it kind of funny publishing skills online because by the time somebody knows they <i>want</i> the skill, they already have it.</p>
]]></description><pubDate>Fri, 31 Jul 2026 17:28:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=49126148</link><dc:creator>rspeele</dc:creator><comments>https://news.ycombinator.com/item?id=49126148</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49126148</guid></item><item><title><![CDATA[New comment by rspeele in "Agent Skill to Force Docs in ASD-STE100 Simplified Technical English"]]></title><description><![CDATA[
<p>I have yet to see an "agent skill" that does not match this description.</p>
]]></description><pubDate>Thu, 30 Jul 2026 23:24:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=49117125</link><dc:creator>rspeele</dc:creator><comments>https://news.ycombinator.com/item?id=49117125</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49117125</guid></item><item><title><![CDATA[New comment by rspeele in "What if useful AI is a fantasy?"]]></title><description><![CDATA[
<p>You take advantage of the property that verifying / sanity-checking an answer is usually much easier and faster than figuring out the answer in the first place.<p>It's similar to how Google has been useful for the past few decades despite the internet being full of junk info. Except Google could only provide semi-reliable information about stuff that's public knowledge with lots of people talking about it, whereas Claude can provide semi-reliable information about your own code that nobody else has ever laid eyes on.<p>A few months ago I used this to re-acquaint myself with code I myself had written back in 2017-2018[1]. I wanted to add some new features, and I did NOT want AI to write them, because the existing codebase was my own sweat and tears and running it through the slop extruder would cheapen that original work. I wanted to write all the code myself with full understanding of what was going on. Now, it had been many years and the codebase did some pretty esoteric stuff. I was the only person in the world who <i>ever</i> knew what that code did, and I didn't know it like the back of my hand anymore. Particularly the stuff with runtime CIL generation for result set processing.<p>I did a lot of reading my own code and a lot of thinking about it to get that understanding back, but it was a very helpful <i>tool</i> to be able to bounce my questions off an agent during the process and then investigate its answers for accuracy. And greater than 90% of the time its answers turned out to be correct.<p>[1]<a href="https://github.com/fsprojects/Rezoom.SQL" rel="nofollow">https://github.com/fsprojects/Rezoom.SQL</a></p>
]]></description><pubDate>Wed, 29 Jul 2026 02:42:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=49092845</link><dc:creator>rspeele</dc:creator><comments>https://news.ycombinator.com/item?id=49092845</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49092845</guid></item><item><title><![CDATA[New comment by rspeele in "What if useful AI is a fantasy?"]]></title><description><![CDATA[
<p>Even if you have a moral opposition to a single line of LLM-generated code marring your codebase (not even unit tests!) it can be incredibly useful to assist with <i>reading</i> code.<p>Take a complex, sophisticated codebase you wrote, that only you have deep understanding of, and throw Codex or Claude at it and ask it questions. How does the Foo work? What happens if the user tries to Frozzle a Bar? Give me a guided tour of how the Baz feature was implemented, top to bottom of the stack.<p>Personally, I was amazed at how accurate the results were, on a codebase where I knew the answers already. Try to pretend that's not a useful tool to use when you have to fix bugs or add features to a large codebase you <i>aren't</i> already familiar with.</p>
]]></description><pubDate>Wed, 29 Jul 2026 00:40:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=49091963</link><dc:creator>rspeele</dc:creator><comments>https://news.ycombinator.com/item?id=49091963</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49091963</guid></item><item><title><![CDATA[New comment by rspeele in "Show HN: Immersive Gaussian Splat tour of grace cathedral, San Francisco"]]></title><description><![CDATA[
<p>You can also walk freely FPS style with WASD and mouse-dragging to look around.</p>
]]></description><pubDate>Tue, 21 Jul 2026 03:12:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=48987614</link><dc:creator>rspeele</dc:creator><comments>https://news.ycombinator.com/item?id=48987614</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48987614</guid></item><item><title><![CDATA[New comment by rspeele in "You're Not a Better Engineer Because You Type Git Commands by Hand"]]></title><description><![CDATA[
<p>Despite having long valued statically typed languages, and IDEs with excellent refactoring tools (VS + ReSharper was a godsend back in the day before MS implemented most of the must-have features themselves)... I sort of disagree.<p>The problem is the IDE refactor->rename updates the code but the agent's "rename" will <i>also</i> catch developer-facing documentation in text files, comments, etc. that referenced the old name. It will often even catch reflection code that referred to the old name in a string. And it will do the mental work of disambiguating "this reference is something else that shouldn't be updated, that one is really pointing at the thing that got renamed and should be updated". If asked to, it can catch things like "var postGresClient = new PostgreSQLClient()" and change them to "var dbClient = new DatabaseClient()".<p>My preconception was: the IDE feature is deterministic and works every time. The LLM may hallucinate and fail to correctly do the rename, so it's both slower and worse.<p>My actual experience has been: So far, I've never actually seen Opus or GPT5.5 hallucinate and fail at a simple refactoring task like this, but I <i>have</i> had numerous instances where it caught extra stuff that a deterministic rename never could, and therefore did the task slower and <i>much better</i>.<p>I hate it because it feels lazy and stupid to type "do this trivial thing for me" into a prompt box. But dammit, it works too well.</p>
]]></description><pubDate>Fri, 10 Jul 2026 17:50:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=48863055</link><dc:creator>rspeele</dc:creator><comments>https://news.ycombinator.com/item?id=48863055</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48863055</guid></item><item><title><![CDATA[New comment by rspeele in "A robot is sprinting towards you. Do you want it running on Claude or Grok?"]]></title><description><![CDATA[
<p>"Which is why the Matrix was redesigned to this: the peak of your civilization. I say your civilization, because as soon as we started thinking for you it really became <i>our</i> civilization, which is of course what this is all about."</p>
]]></description><pubDate>Wed, 17 Jun 2026 21:29:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=48577180</link><dc:creator>rspeele</dc:creator><comments>https://news.ycombinator.com/item?id=48577180</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48577180</guid></item><item><title><![CDATA[New comment by rspeele in "Why AI hasn't replaced software engineers, and won't"]]></title><description><![CDATA[
<p>Yep. "Developer" was <i>already</i> an inflation over "programmer".<p>Sometime in the late 2000s/early 2010s people started saying, oh, a programmer means you just type in the code to implement requirements, a developer actually understands and can create the requirements to meet the business needs! Like that wasn't what people were already doing for decades and calling "programming".<p>edit: I guess it was offshoring that encouraged the self-marketing as a "developer" (not one of those <i>programmers</i> you can get anywhere for cheap) just as AI is doing the same thing with "engineer"</p>
]]></description><pubDate>Thu, 11 Jun 2026 16:31:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=48492570</link><dc:creator>rspeele</dc:creator><comments>https://news.ycombinator.com/item?id=48492570</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48492570</guid></item><item><title><![CDATA[New comment by rspeele in "What it feels like to work with Mythos"]]></title><description><![CDATA[
<p>> "What have you got against machines?" said Buck.<p>> "They're slaves."<p>> "Well, what the heck," said Buck. "I mean, they aren't people. They don't suffer. They don't mind working."<p>> "No. But they compete with people."<p>> "That's a pretty good thing, isn't it--considering what a sloppy job most people do of anything?"<p>> "Anybody that competes with slaves becomes a slave," said Harrison thickly, and he left.<p>Kurt Vonnegut, Player Piano</p>
]]></description><pubDate>Wed, 10 Jun 2026 02:47:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=48470741</link><dc:creator>rspeele</dc:creator><comments>https://news.ycombinator.com/item?id=48470741</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48470741</guid></item><item><title><![CDATA[New comment by rspeele in "Claude Fable 5"]]></title><description><![CDATA[
<p>It's afraid!</p>
]]></description><pubDate>Tue, 09 Jun 2026 18:23:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=48465305</link><dc:creator>rspeele</dc:creator><comments>https://news.ycombinator.com/item?id=48465305</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48465305</guid></item><item><title><![CDATA[New comment by rspeele in "Cleaning up after AI rockstar developers"]]></title><description><![CDATA[
<p>> Every 1 prompt of building tends to require 1-5 prompts of clean up. Simple, fast, clean good code.<p>I have found this to be very effective as well. However, it's so easy to do, I can't imagine they won't build it in.<p>The harnesses will improve and the loop of "self-review, judge what needs clean up, do the refactoring, repeat until clean" will get included in the one-shot. They are already doing this somewhat, they'll just get a lot better at it and as the models get faster and cheaper to run, the refactoring churn at the end of each task won't even create a noticeable delay.<p>I do not think the high-level "taste" knowledge that I've built up -- when to break something off into its own service, what to put in the DB vs cache vs queues vs blob storage, how to isolate important logic in pure functional layers so it can be tested and validated independently -- is any more "unlearnable" to AI than the stuff I previously considered impressive that's now one-shottable like "write a Prolog implementation from scratch".</p>
]]></description><pubDate>Tue, 09 Jun 2026 17:16:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=48464135</link><dc:creator>rspeele</dc:creator><comments>https://news.ycombinator.com/item?id=48464135</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48464135</guid></item><item><title><![CDATA[New comment by rspeele in "Learn SQL Once, Use It for 30 Years"]]></title><description><![CDATA[
<p>> I'd say SQL is a very high level language.<p>Yes indeed. When I learned SQL in college, the professor made a HUGE deal about how it was a "4th generation language" so it was so abstract you didn't have to think about <i>how</i> the computer would answer your query.<p>Even at that time I thought that was massive overstatement of what using SQL was like. It didn't deliver on that promise very well. But it's very funny to see plain SQL now sometimes called "low level"!</p>
]]></description><pubDate>Thu, 04 Jun 2026 21:45:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=48405042</link><dc:creator>rspeele</dc:creator><comments>https://news.ycombinator.com/item?id=48405042</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48405042</guid></item><item><title><![CDATA[New comment by rspeele in "Elixir v1.20: Now a gradually typed language"]]></title><description><![CDATA[
<p>One thing something like AutoCodeBenchmark cannot demonstrate is what happens when you have human-written type definitions defining the domain before the LLM writes a line of code.<p>That is something I have found very effective in F#, that I model the domain with types, I know what the type signatures of the functions I need are, and the LLM does the work of actually implementing those functions.<p>Here is a concrete example:<p>I have been playing around with a program to assist me with projects I make at home on my hobby-grade CNC router, which does not have an automatic toolchanger. I use a mix of Vectric VCarve and some older handwritten programs to generate GCode files. I end up with a USB drive with maybe 6 to 12 GCode files on it and a model in my head of "to make this product, I start with a board here, gotta install this square nose end mill and zero on this corner of the board, run files A and B. Then install a ball nose end mill and run file C. Then flip the board over lengthwise, switch to a smaller square nose end mill, zero here, run file D. etc. etc."<p>Although I try to name the GCode files in a self documenting way like 01_TopSide_25square.ngc, if I come back in 1 year and want to make the same thing again, I pretty much always have to open VCarve and eyeball what the hell all the files did and confirm where to zero, what size board to use, etc. So I'm making a tool where I can define those human-operator steps that go with the G-Code files, save it as a "project file", preview in 3d what each step will look like, and export to a printable PDF with screenshots and step-by-step instructions. Hopefully this will reduce the amount of rot that these projects suffer and the cognitive overhead of picking up an old one.<p>Modeling the steps as F# types was the very first step, like (small excerpt):<p><pre><code>    type WorkpiecePlacement =
        {   Id : WorkpieceId
            /// Corner of the workpiece we'll attach to the machine.
            WorkpieceCorner : WorkpieceSpace.Corner3D
            /// Point in machine-space we'll anchor this corner to.
            MachinePoint : MachineSpace.Point
            /// Which face of the workpiece is on top.
            FaceUp : WorkpieceSpace.Face
            /// Rotation around the up-axis.
            Yaw : WorkpieceSpace.Yaw
        }

    type OperationType =
        | PlaceWorkpiece of placement : Operation.WorkpiecePlacement
        | InstallTool of id : ToolId * slot : int option
        | ZeroAt of point : MachineSpace.Point
        | RunGCode of source : GCode.Source
        | RemoveWorkpiece of id : WorkpieceId

</code></pre>
For the GCode simulator I needed a parser for GCode files, which produces a type with 1:1 equivalence to the GCode instruction set:<p><pre><code>    type GCodeInstruction =
        // --- Motion ---
        | G0_RapidMove of axisMoves : (Axis * float<gcodeunit>) array
        | G1_Move of feedRate : float<gcodeunit/minute> option * axisMoves : (Axis * float<gcodeunit>) array
        | G2_ClockwiseArc of ArcParams
        | G3_CounterClockwiseArc of ArcParams
        | G4_Dwell of seconds : double

        // --- Plane selection ---
        | G17_SelectXYPlane
        | G18_SelectXZPlane
        | G19_SelectYZPlane

        // --- Unit selection ---
        | G20_Inches
        | G21_Millimeters

        // --- Distance mode ---
        | G90_AbsoluteDistance
        | G91_RelativeDistance
        // ... etc truncated, more instructions in real code

</code></pre>
But my tool supports doing transforms on toolpaths, like rotating 90 degrees or offsetting so I can easily define that I want to make tiling copies of the same project.
To implement those transforms straight up as GCodeInstruction[] -> GCodeInstruction[] is a bad call. GCode is very stateful and lets you switch units, relative vs. absolute coordinate spaces, etc. in instructions. That makes the transform awkward and tricky to write.<p>So I have a ToolPath type that makes the transforms clean. It normalizes the many ways of expressing the same toolpath in GCode to a single representation with all absolute coordinates in metric units.<p><pre><code>    type ToolPathInstruction =
        | Rapid of From : Point * To : Point
        | Linear of From : Point * To : Point * Feed : FeedRate
        | Arc of
            From : Point *
            To : Point *
            Center : Point *
            Plane : Plane *
            Direction : ArcDirection *
            Feed : FeedRate
        | ... etc truncated
</code></pre>
That is the appropriate level for the transforms like offset, rotate, scale, etc. to operate on.<p>Yet there is still ANOTHER level of toolpath-related operations that deserves its own type. When I'm doing simulation of material removal to check for crashes, or rendering the toolpath in 3d, I don't want to deal with arcs! The rendering/simulation is inherently an approximation. It will break down each arc into line segments. So sim code and rendering code shouldn't take a toolpath, it should take basically a line segment list, or in other words...<p><pre><code>    type ApproxMove =
        {   From : Vector3
            To : Vector3
            FeedRate : double<m/minute>
            IsRapid : bool
        }

    type ToolPathApproximation =
        {   StartPosition : Vector3
            Moves : ApproxMove[]
        }
</code></pre>
Having defined all these types it's clear that I need operations like:<p><pre><code>    parse: string -> GCode
    serialize : GCode -> string
    normalizeToToolPath : GCode -> ToolPath
    denormalizeToGCode : ToolPath -> GCode
    offset : Vector3 -> ToolPath -> ToolPath
    rotate90 : ToolPath -> ToolPath
    scale : Vector3 -> ToolPath -> ToolPath
    approximate : ToolPath -> ToolPathApproximation
    simulate : ToolPathApproximation -> MachineState -> MachineState
    renderToolPathWireframe : ToolPathApproximation -> VBO
    renderMachineState : MachineState -> VBO
</code></pre>
And so on. An LLM is absolutely awesome at one-shotting the implementations.<p>I would find it quite frustrating trying to model the same domain without any types, either having all methods working on a single toolpathy data structure that's not really the right fit for any of the places it's used, or having them work on multiple data structures without any clear delineation of which layer is expecting which toolpathy-thing that are all subtly but importantly different.</p>
]]></description><pubDate>Thu, 04 Jun 2026 16:28:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=48400963</link><dc:creator>rspeele</dc:creator><comments>https://news.ycombinator.com/item?id=48400963</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48400963</guid></item><item><title><![CDATA[New comment by rspeele in "Elixir v1.20: Now a gradually typed language"]]></title><description><![CDATA[
<p>It has been about 10 years since Python was a daily driver for me and at that time I wrote it the old fashioned way with no type hints and no static checking, just like grandma used to make. The times I have needed to dig back into it have involved working on old code, so I haven't kept up with modern tooling.<p>However, in principle any dynamically typed language can be tolerable to me if it can be turned into a statically typed language ;)<p>But I think I'd still <i>prefer</i> the ergonomics of a language designed that way from the start vs having bolt-ons. My favorite language for the past several years has been F# and I think ML-family languages in general strike a great balance of being able to write terse code when you want to, and being able to model a domain really well with types when you want to.</p>
]]></description><pubDate>Thu, 04 Jun 2026 03:23:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=48393339</link><dc:creator>rspeele</dc:creator><comments>https://news.ycombinator.com/item?id=48393339</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48393339</guid></item><item><title><![CDATA[New comment by rspeele in "Elixir v1.20: Now a gradually typed language"]]></title><description><![CDATA[
<p>> the errors I get at runtime are almost never type-based<p>That surprises me, but everyone's experiences are different. I've been in the statically typed language space for so long and enjoyed it so much, I find it pretty irritating to go back to Python (my long-ago favorite) but many people are in the exact opposite frame of mind. I'm curious: what kinds of errors do you classify as a type-based error? I think that varies from person to person.<p>For example, null references. A C programmer would say dereferencing a null is <i>not</i> a type-based error, because it's not feasible to encode non-nullable pointers in the C type system. A Haskell programmer would say it <i>is</i> a type-based error because Haskell makes it difficult <i>not</i> to encode this in the type system, you really have to go out of your way to create a runtime null dereference error.<p>A C# or TypeScript programmer could answer differently depending on who you ask, because both of those languages make it <i>possible</i> to leverage the typechecker to prevent null-deref at compile time, but neither one makes it <i>required</i> (you can turn those checks off or make them warnings if you like), so it depends on the programmer's build settings and how much typechecking they personally have chosen to use.</p>
]]></description><pubDate>Thu, 04 Jun 2026 00:29:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=48392104</link><dc:creator>rspeele</dc:creator><comments>https://news.ycombinator.com/item?id=48392104</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48392104</guid></item><item><title><![CDATA[New comment by rspeele in "If AI data centers are so great, why are they being built in secret?"]]></title><description><![CDATA[
<p>Fascinating quote and good point.<p>It should also be remembered that while the industrial revolution netted humanity enormous wealth and eventually a higher average standard of living, it also kinda sucked for the generations of working class living through it, prior to labor reform. Millions of people lived entire lives where the industrial revolution was nothing but bad for them and never saw the upside. So anybody opposing a new industrial revolution is not necessarily acting out of irrationality.</p>
]]></description><pubDate>Wed, 03 Jun 2026 21:28:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=48390351</link><dc:creator>rspeele</dc:creator><comments>https://news.ycombinator.com/item?id=48390351</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48390351</guid></item><item><title><![CDATA[New comment by rspeele in "Mathematicians issue warning as AI rapidly gains ground"]]></title><description><![CDATA[
<p>> whats wrong with struggling alcoholics having jobs via a program?<p>Finally, a job AI will never beat me at.</p>
]]></description><pubDate>Wed, 03 Jun 2026 20:51:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=48389855</link><dc:creator>rspeele</dc:creator><comments>https://news.ycombinator.com/item?id=48389855</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48389855</guid></item><item><title><![CDATA[New comment by rspeele in "Cessation of public development of Kefir C compiler"]]></title><description><![CDATA[
<p>The camera analogy is a good one but I have never had a camera that had every great picture somebody else had taken, plus every work of art, baked into it. They only captured what they were aimed at directly by the user. Well, maybe next time I upgrade my phone that will not be the case since they now have built in AI "enhancement" of photos.<p>I agree with the framing of the AI as a tool not an autonomous entity. The thing is, to <i>me</i>, it is exactly that framing that makes it so the use of that tool means "copying" more than it means "learning and taking inspiration and creating new art", because <i>who</i> is doing the learning and being inspired? The person who types "make me a 3d arena FPS" certainly didn't do any learning from the Quake source code. The AI itself, being just a program, can't take credit.<p>I think of a trained AI like a <i>lossy, highly compressed</i> copy of its training data set. AI companies charge access to decompress targeted pieces of that copy and the lossiness makes that decompression interesting and "new". But normally I can't charge for access to other people's stuff even if the access is highly lossy, like a camcorder bootleg.</p>
]]></description><pubDate>Wed, 03 Jun 2026 19:44:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=48388917</link><dc:creator>rspeele</dc:creator><comments>https://news.ycombinator.com/item?id=48388917</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48388917</guid></item><item><title><![CDATA[New comment by rspeele in "Cessation of public development of Kefir C compiler"]]></title><description><![CDATA[
<p>> A derivative work is a work that itself includes copyrighted content from the original work.<p>If you put a GPL C program through Emscripten to run in a browser the output doesn't include the original C code but it's surely a derivative work.<p>> Someone who looks at a dozen code examples in public repos to learn how to do e.g. a quick sort, then upon understanding the logic flow of the quick sort algorithm, writes his own quick sort implementation is not creating a derivative work of the code in the repos he exampled. And the way LLMs work is much more similar to that process than to the "compressed anthology" concept you're describing.<p>This is undoubtedly the core of the disagreement. Humans can learn from what they have seen, appreciate it, understand it, and draw on that experience in what they create. They do this without being considered ripoff artists, so <i>why not</i> machines that simulate the "same" thing automatically?<p>To me the answer is simply that humans are special. Human thought and human effort makes it creativity when a human does it, copying when a machine does it. It's a double standard I am perfectly willing to accept. I am unabashedly biased in this regard.<p>That may seem remarkably unfair to the machines, or like a cop-out. I just carved out a hardcoded special case for humans, and my whole philosophical reasoning is "because I said so". But how fair do we want to be? After all, if you want to treat a machine <i>exactly</i> like a human who learns from prior art to create new art, then the ownership of the new art would also belong to the machine. Not to the person who prompts it.</p>
]]></description><pubDate>Mon, 01 Jun 2026 19:07:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=48361216</link><dc:creator>rspeele</dc:creator><comments>https://news.ycombinator.com/item?id=48361216</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48361216</guid></item></channel></rss>