<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Noah Miller</title>
    <description>The latest articles on DEV Community by Noah Miller (@noah_miller_f28b7276c4435).</description>
    <link>https://dev.to/noah_miller_f28b7276c4435</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3987013%2Fcb00a46d-0822-4a13-9bc7-6ff96e998d2c.png</url>
      <title>DEV Community: Noah Miller</title>
      <link>https://dev.to/noah_miller_f28b7276c4435</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/noah_miller_f28b7276c4435"/>
    <language>en</language>
    <item>
      <title>I Wasted Two Hours Prompting AI Before I Realized I Was Using the Wrong Tool</title>
      <dc:creator>Noah Miller</dc:creator>
      <pubDate>Fri, 11 Sep 2026 02:34:17 +0000</pubDate>
      <link>https://dev.to/noah_miller_f28b7276c4435/i-wasted-two-hours-prompting-ai-before-i-realized-i-was-using-the-wrong-tool-i16</link>
      <guid>https://dev.to/noah_miller_f28b7276c4435/i-wasted-two-hours-prompting-ai-before-i-realized-i-was-using-the-wrong-tool-i16</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;A real account of how I kept generating the wrong mug, and what finally fixed it.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Yeah, It Was a Mug 🫖
&lt;/h2&gt;

&lt;p&gt;My product photo problem was embarrassingly specific: a ceramic mug, matte white, sitting on my kitchen counter in front of a drying rack, a half-visible sponge, and what I can only describe as "ambient dish guilt."&lt;/p&gt;

&lt;p&gt;Not exactly the clean lifestyle shot I needed for a product listing.&lt;/p&gt;

&lt;p&gt;The mug itself was fine. Nice glaze. Good proportions. The kind of thing that photographs well if you ever get around to clearing the counter first. I hadn't.&lt;/p&gt;

&lt;p&gt;So instead of doing the reasonable thing — which apparently is to move the sponge — I decided to let AI handle it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqd19rexyweoojmtxip6n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqd19rexyweoojmtxip6n.png" alt="A ceramic mug sitting on a cluttered kitchen counter, drying rack and sponge visible in the background, harsh overhead lighting" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Prompt Spiral 🌀
&lt;/h2&gt;

&lt;p&gt;I opened a text-to-image tool and described my mug.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"A white ceramic mug on a clean wooden table, warm morning light, minimalist, product photography."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;What I got back was: a mug. Technically. A different mug. Different proportions, different handle shape, a slight sheen on it that looked more "stock photo prop" than "thing someone actually made."&lt;/p&gt;

&lt;p&gt;Fine. I got more specific.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Matte white ceramic mug, slightly irregular rim, handmade look, on a pale oak surface, soft diffused lighting."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Different mug again. Still wrong.&lt;/p&gt;

&lt;p&gt;I tried adding brand descriptors. I tried "artisan." I tried "Scandinavian minimalist" and then "Japanese wabi-sabi" and at some point "not the sponge" which is not a real prompt and produced predictably chaotic results.&lt;/p&gt;

&lt;p&gt;The problem wasn't my prompting. The problem was that I was describing a mug to a model that had never seen my mug. Every generation started from zero. Every prompt was me trying to reconstruct, in words, an object that was sitting twelve inches from my keyboard.&lt;/p&gt;

&lt;p&gt;At some point I counted: fifteen generations. Maybe more. All of them fine. None of them mine.&lt;/p&gt;




&lt;h2&gt;
  
  
  Every One Was a Different Mug 🪤
&lt;/h2&gt;

&lt;p&gt;It took me longer than I'd like to admit to name the actual issue.&lt;/p&gt;

&lt;p&gt;Text-to-image tools are great at producing images from concepts. They are not great at producing &lt;em&gt;your specific thing&lt;/em&gt; from a description, because your thing has specifics that language flattens. The curve of the handle. The weight of the glaze. The way the rim sits.&lt;/p&gt;

&lt;p&gt;I was trying to re-create a visual from words, and that process has one unavoidable failure mode: it generates the average of all mugs, not this mug.&lt;/p&gt;

&lt;p&gt;What I actually needed wasn't a new image. I needed to keep the image I had and change everything around it — the mood, the lighting, the scene — while keeping the mug exactly as it was.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Actual Tool for This Job 💡
&lt;/h2&gt;

&lt;p&gt;Image-to-image AI works differently. You upload your photo. The model uses it as a starting point — the subject, the composition, the specific shape of the thing you actually own. Then your prompt tells it what to change.&lt;/p&gt;

&lt;p&gt;Not "generate a mug." More like: &lt;em&gt;"same mug, warm café scene, golden hour light, lifestyle photography."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That's a fundamentally different instruction. The model isn't guessing what a mug looks like. It already knows, because you showed it.&lt;/p&gt;

&lt;p&gt;I tried &lt;a href="https://imgtoimgai.io/" rel="noopener noreferrer"&gt;imgtoimgai.io&lt;/a&gt;, uploaded the original photo, and wrote: &lt;em&gt;"cozy café table, warm morning light, lifestyle product shot, keep the mug."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The mug it returned was my mug. Same handle. Same rim. Same glaze. But now it was sitting on a worn wooden café table with soft golden light coming through a blurred window behind it. The drying rack was a distant memory.&lt;/p&gt;

&lt;p&gt;I did not move the sponge. I did not do another fifteen generations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F504m75a2wtxr7hrlhndi.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F504m75a2wtxr7hrlhndi.jpg" alt="Side-by-side comparison: top shows the original mug photo with messy kitchen background; bottom shows the same mug transformed into a warm café scene with golden hour lighting, the mug shape and glaze identical in both" width="800" height="667"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Three Things It Actually Works For 🎯
&lt;/h2&gt;

&lt;p&gt;Once I understood what the tool was doing, I used it for a few other things that had been sitting in my "too annoying to fix" pile.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Product shots with wrong vibes.&lt;/strong&gt; You have a real photo of the thing — good. But it's sitting on a kitchen counter under fluorescent light and looks like a police evidence photo. Upload it, describe the scene and mood you actually want — a café table, a studio shelf, a sunset patio — and the model re-renders the whole atmosphere while keeping your specific product in frame.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Portraits in the wrong setting.&lt;/strong&gt; I had a decent headshot taken in a parking garage. The face was fine. Everything else looked like a parking garage. Asked for a warm indoor portrait with soft natural light. Two minutes. Good enough for a speaker bio, which was the whole bar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sketches turned into reference images.&lt;/strong&gt; I'd roughed out a layout for a product label — more of a diagram than a drawing. Uploaded it, described the finished style I was going for, and got something close enough to drop into a brief and show a designer. Not the final design. A useful, specific starting point instead of a vague description.&lt;/p&gt;

&lt;p&gt;None of these outputs were perfect. That is not the point. The point is that the object in the output was recognizably the object in the input, which is the one thing that text-to-image genuinely cannot give you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo8k9mwoyl6zbq7rmk091.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo8k9mwoyl6zbq7rmk091.png" alt="Three before-and-after pairs: product shot (mug on counter → mug in café scene), portrait (headshot in bad setting → warm natural-light interior), sketch (rough layout drawing → styled reference image)" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  "Good Enough" Is the Actual Bar 🧭
&lt;/h2&gt;

&lt;p&gt;My mug listing went up with a café-scene lifestyle photo. Nobody has mentioned the kitchen counter. A few people have mentioned the mug.&lt;/p&gt;

&lt;p&gt;I probably spent forty-five minutes on the whole thing, including the fifteen generations I did before switching tools. If I'd started with image-to-image, it would have been ten.&lt;/p&gt;

&lt;p&gt;I am not a designer. I do not know what most of the settings do. My version of "product photography" is "doesn't look like I took this next to a sink."&lt;/p&gt;

&lt;p&gt;But that bar, it turns out, is meetable.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Try it at &lt;/em&gt;&lt;a href="https://imgtoimgai.io/" rel="noopener noreferrer"&gt;&lt;em&gt;imgtoimgai.io&lt;/em&gt;&lt;/a&gt;&lt;em&gt; — upload your photo, describe the change, get your thing back.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>productivity</category>
      <category>design</category>
    </item>
    <item>
      <title>The 3 Mechanisms Behind Every AI Answer</title>
      <dc:creator>Noah Miller</dc:creator>
      <pubDate>Thu, 03 Sep 2026 04:59:44 +0000</pubDate>
      <link>https://dev.to/noah_miller_f28b7276c4435/the-3-mechanisms-behind-every-ai-answer-1oe</link>
      <guid>https://dev.to/noah_miller_f28b7276c4435/the-3-mechanisms-behind-every-ai-answer-1oe</guid>
      <description>&lt;p&gt;Let me start with a deceptively simple question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why can AI answer our questions at all? How does it "know" anything?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There are papers and textbooks that answer this in exhaustive technical detail — and most of them are genuinely hard to get through. But for the vast majority of developers and curious non-specialists, you only need to understand three mechanisms. Once these click, a lot of AI behavior that seems magical starts to make sense.&lt;/p&gt;




&lt;h2&gt;
  
  
  Mechanism 1: Parameters (Compressed Knowledge)
&lt;/h2&gt;

&lt;p&gt;At the macro level, every large language model is essentially &lt;strong&gt;a mathematical model of human knowledge&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Here's how it works: the model takes all the text it's trained on and breaks it down into small units called &lt;strong&gt;tokens&lt;/strong&gt; (roughly: words or word fragments). It then calculates the mathematical relationships between every pair of tokens. This process is called &lt;em&gt;training&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Those relationships are encoded as &lt;strong&gt;parameters&lt;/strong&gt; — the famous billions of numbers you see cited in model announcements. For example, GLM 5.3 has 744 billion parameters. Each one is a tiny weight that captures some aspect of how tokens relate to one another.&lt;/p&gt;

&lt;p&gt;Training, in essence, is the process of finding those 744 billion weights — the ones that best represent the structure of human knowledge as seen in the training data.&lt;/p&gt;

&lt;p&gt;Once training is done, when you ask the model a question, it uses those weights to find the most probable sequence of tokens to generate as a response.&lt;/p&gt;

&lt;p&gt;The mental model to hold here: &lt;strong&gt;LLMs are a compression-and-generation engine&lt;/strong&gt;. Human knowledge gets compressed into parameters during training, then decompressed into language when you query the model.&lt;/p&gt;




&lt;h2&gt;
  
  
  Mechanism 2: Reasoning (Derived Knowledge)
&lt;/h2&gt;

&lt;p&gt;More parameters generally means better performance — more parameters mean finer-grained representations of more knowledge, which translates to more accurate outputs.&lt;/p&gt;

&lt;p&gt;But there are two hard limits on just scaling parameters forever:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cost.&lt;/strong&gt; Training and inference costs scale fast. So does latency.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Redundancy.&lt;/strong&gt; Not all knowledge needs to be memorized. A lot of it can be &lt;em&gt;derived&lt;/em&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Consider a simple example: if a model knows a city's birth rate and death rate, it doesn't need to have the net population growth rate stored as a separate fact — it can calculate it on the fly.&lt;/p&gt;

&lt;p&gt;This is the reasoning mechanism. Given the knowledge encoded in its parameters, the model applies logical rules to &lt;strong&gt;infer things it was never explicitly trained on&lt;/strong&gt;. Modern "reasoning models" (o1, DeepSeek-R1, etc.) are largely an amplification of this mechanism — they're designed to spend more compute at inference time working through chains of logic before producing an answer.&lt;/p&gt;




&lt;h2&gt;
  
  
  Mechanism 3: Web Access (Retrieved Knowledge)
&lt;/h2&gt;

&lt;p&gt;No matter how many parameters a model has, and no matter how strong its reasoning, there will always be questions it can't answer.&lt;/p&gt;

&lt;p&gt;The classic example: &lt;em&gt;"What was the closing price of the S&amp;amp;P 500 today?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That fact wasn't in the training data. It can't be derived through logic. The model simply doesn't know — and it shouldn't pretend to.&lt;/p&gt;

&lt;p&gt;This is where the third mechanism kicks in. Via &lt;strong&gt;agents or application frameworks&lt;/strong&gt;, the model can reach out to the internet, query an API, or search a database to fetch what it doesn't know internally.&lt;/p&gt;

&lt;p&gt;Tools like web search, code execution, and external API calls are all expressions of this mechanism. Rather than the model "knowing" everything, it knows how to &lt;em&gt;find&lt;/em&gt; what it doesn't know.&lt;/p&gt;




&lt;h2&gt;
  
  
  Putting It Together
&lt;/h2&gt;

&lt;p&gt;These three mechanisms form a layered system:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Mechanism&lt;/th&gt;
&lt;th&gt;What it provides&lt;/th&gt;
&lt;th&gt;When it's used&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Parameters&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Knowledge baked in during training&lt;/td&gt;
&lt;td&gt;The baseline — always active&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Reasoning&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Inferences from existing knowledge&lt;/td&gt;
&lt;td&gt;When the answer can be derived&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Web Access&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Real-time or external knowledge&lt;/td&gt;
&lt;td&gt;When parameters + reasoning fall short&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Most AI answers you get are a blend of all three. The model pulls from its parameters, reasons across them, and if equipped with tools, fetches what's missing.&lt;/p&gt;

&lt;p&gt;Understanding this stack doesn't just satisfy curiosity — it changes how you prompt, how you architect AI features, and how you debug why a model gets something wrong. A hallucination is often a parameter problem (the training data was wrong or sparse). A stale answer is a web-access problem. A logical error is a reasoning problem. The diagnosis changes based on which mechanism failed.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
