<?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>Forem: NeoPotato</title>
    <description>The latest articles on Forem by NeoPotato (@neopotato).</description>
    <link>https://forem.com/neopotato</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3164176%2F858f4e74-9563-43d9-bffa-0662ba526d91.png</url>
      <title>Forem: NeoPotato</title>
      <link>https://forem.com/neopotato</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/neopotato"/>
    <language>en</language>
    <item>
      <title>AI-Driven Development fails to deliver a fundamental increase in software productivity</title>
      <dc:creator>NeoPotato</dc:creator>
      <pubDate>Fri, 20 Feb 2026 01:21:48 +0000</pubDate>
      <link>https://forem.com/neopotato/ai-driven-development-fails-to-deliver-a-fundamental-increase-in-software-productivity-49mg</link>
      <guid>https://forem.com/neopotato/ai-driven-development-fails-to-deliver-a-fundamental-increase-in-software-productivity-49mg</guid>
      <description>&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.amazonaws.com%2Fuploads%2Farticles%2Fi1afdufr59wtkuo1r9pm.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.amazonaws.com%2Fuploads%2Farticles%2Fi1afdufr59wtkuo1r9pm.png" alt=" " width="720" height="917"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here's Why.&lt;/p&gt;

&lt;h2&gt;
  
  
  1 The Localization of Value: AI only solves the "Low-Value 80%"
&lt;/h2&gt;

&lt;p&gt;The Premise: According to Pareto’s Principle, the vast majority of labor (the Light Blue zone) contributes to only a small fraction of overall quality.&lt;br&gt;
The Argument: AI excels at accelerating this "Light Blue" zone. However, it remains incapable of addressing the "Deep Blue" core—the 20% of critical work that generates 80% of the software's true value.&lt;/p&gt;

&lt;h2&gt;
  
  
  2 Structural Friction: AI-generated code cannot coexist with "Unsolved Problems"
&lt;/h2&gt;

&lt;p&gt;The Premise: AI generates the "Light Blue" periphery in a vacuum, without any context regarding the core challenges.&lt;br&gt;
The Argument: As developers confront the "Deep Blue" (the essential unsolved problems), the AI-generated surroundings inevitably clash with the core requirements. This necessitates massive rewrites, nullifying any initial speed gains.&lt;/p&gt;

&lt;h2&gt;
  
  
  3 The Paradox of Existence: If AI can solve it all, the project has no reason to exist
&lt;/h2&gt;

&lt;p&gt;The Premise: If the "Deep Blue" core can be fully resolved by an LLM, it means the problem is already a "solved" one with existing patterns online.&lt;br&gt;
The Argument: Re-implementing a solved problem—even with AI—offers zero competitive advantage. A project that AI can complete entirely is a project that lacks inherent value.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;LLM doesn't contribute app development productivity, yet.&lt;/p&gt;

</description>
      <category>aidrivenappdevelopment</category>
      <category>llm</category>
      <category>productivity</category>
    </item>
    <item>
      <title>What defines a "Model" in MVC? It's the code that survives even if the UI dies.</title>
      <dc:creator>NeoPotato</dc:creator>
      <pubDate>Sat, 31 Jan 2026 02:13:39 +0000</pubDate>
      <link>https://forem.com/neopotato/what-defines-a-model-in-mvc-its-the-code-that-survives-even-if-the-ui-dies-17dc</link>
      <guid>https://forem.com/neopotato/what-defines-a-model-in-mvc-its-the-code-that-survives-even-if-the-ui-dies-17dc</guid>
      <description>&lt;p&gt;Even when adopting MVC or MVVM, why does code often turn into spaghetti? Why do ViewModels or Controllers evolve into massive "God Classes"?&lt;/p&gt;

&lt;p&gt;The root cause is often a vague definition of the &lt;strong&gt;"Model"&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Isn't the Model just a data container (DTO) for the database?"&lt;/em&gt;&lt;br&gt;
&lt;em&gt;"Shouldn't the logic go into Services or ViewModels?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If you have ever thought this, this article is for you.&lt;br&gt;
Here is the definitive boundary of what a Model should be.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Purpose of MVC (or MVVM)
&lt;/h2&gt;

&lt;p&gt;Let's skip the complex academic theories. The purpose is singular:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;To separate "Business Logic (Model)" from "Presentation (View / Controller)".&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is "Business Logic"?
&lt;/h2&gt;

&lt;p&gt;Many developers stumble on the term "Business Logic," so let's define it clearly.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Business Logic&lt;/strong&gt;&lt;br&gt;
The logic that represents the flow of business rules or domain processes.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Don't get confused by the word "Business."&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you are developing a Game: It is the &lt;strong&gt;"Core Logic"&lt;/strong&gt; (e.g., damage calculation).&lt;/li&gt;
&lt;li&gt;If you are doing DDD: It is the &lt;strong&gt;"Domain Logic"&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Regardless of the name, the concept is the same. It is the core rule of the system—like "calculating taxes," "managing state," or "making judgments"—independent of application convenience (like "show a dialog when a button is clicked").&lt;/p&gt;

&lt;h2&gt;
  
  
  The Definition and Boundary of the Model
&lt;/h2&gt;

&lt;p&gt;So, where is the boundary for the Model that houses this logic?&lt;br&gt;
&lt;strong&gt;The Model is the place where you push all your Business Logic.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There is one ultimate "Litmus Test" to check if your class is truly a Model.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Ultimate Test
&lt;/h3&gt;

&lt;p&gt;Ask yourself this question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"If I were asked to replace the GUI with a CLI (Command Line Interface) tomorrow, would this class survive?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It Survives (Works without modification)&lt;/strong&gt; ✅

&lt;ul&gt;
&lt;li&gt;This is a &lt;strong&gt;Model&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;It Fails (Compile errors, depends on UI libs)&lt;/strong&gt; ❌

&lt;ul&gt;
&lt;li&gt;This is &lt;strong&gt;NOT a Model&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;A true Model must &lt;strong&gt;never depend on the View (GUI/CUI)&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example: A Calculator App
&lt;/h2&gt;

&lt;p&gt;Let's look at a Calculator app to see the structure of a "Model that survives."&lt;/p&gt;

&lt;h3&gt;
  
  
  Pattern A: GUI App (WPF / React / etc.)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;View&lt;/strong&gt;: &lt;code&gt;MainWindow&lt;/code&gt;

&lt;ul&gt;
&lt;li&gt;Buttons, TextBoxes, UI components.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Controller (ViewModel)&lt;/strong&gt;: &lt;code&gt;MainWindowViewModel&lt;/code&gt;

&lt;ul&gt;
&lt;li&gt;The mediator between View and Model.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Model&lt;/strong&gt;: &lt;code&gt;Calculator&lt;/code&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Crucial:&lt;/strong&gt; This class handles operands, calculation logic, and &lt;strong&gt;State Management&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  Pattern B: CLI App (Console)
&lt;/h3&gt;

&lt;p&gt;Now, imagine you have to port this logic to a Console application.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;View&lt;/strong&gt;: &lt;code&gt;Console&lt;/code&gt;

&lt;ul&gt;
&lt;li&gt;Standard Input/Output.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Controller&lt;/strong&gt;: &lt;code&gt;MainConsoleController&lt;/code&gt;

&lt;ul&gt;
&lt;li&gt;Handles key inputs.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Model&lt;/strong&gt;: &lt;code&gt;Calculator&lt;/code&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;You reuse the exact same class from the GUI version.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Key Point
&lt;/h3&gt;

&lt;p&gt;The most important takeaway here is that the &lt;strong&gt;&lt;code&gt;Calculator&lt;/code&gt; class holds the "State".&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Calculator needs to remember the entered numbers, the current operator, and the running total. &lt;strong&gt;Do not let the ViewModel hold this state.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The moment you put this state into the ViewModel, it becomes "Logic for the GUI." When you try to make the CLI version later, you will be forced to copy-paste (re-implement) that logic.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The Model is the part of the code that survives even if the View changes.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;UI frameworks (React, Vue, WPF) come and go every few years. However, the Domain Logic (The Model) should remain unchanged as long as the system exists.&lt;/p&gt;

&lt;p&gt;Do not let your assets (Core Logic) depend on consumables (Views). This is the first step in solid architectural design.&lt;/p&gt;

&lt;p&gt;Sample Code:&lt;br&gt;
&lt;a href="https://github.com/neo-potato/MVC-Sample" rel="noopener noreferrer"&gt;https://github.com/neo-potato/MVC-Sample&lt;/a&gt;&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>mvc</category>
      <category>designpatterns</category>
      <category>programming</category>
    </item>
    <item>
      <title>The MCP Server Crisis: How 'Open Standard' Created a Wild West of Broken Implementations</title>
      <dc:creator>NeoPotato</dc:creator>
      <pubDate>Wed, 22 Oct 2025 08:02:59 +0000</pubDate>
      <link>https://forem.com/neopotato/the-mcp-server-crisis-how-open-standard-created-a-wild-west-of-broken-implementations-115n</link>
      <guid>https://forem.com/neopotato/the-mcp-server-crisis-how-open-standard-created-a-wild-west-of-broken-implementations-115n</guid>
      <description>&lt;p&gt;When Anthropic announced the Model Context Protocol (MCP) in November 2024, the developer community was thrilled. Here was the "USB-C for AI applications" we'd been waiting for—a unified protocol to connect AI assistants with external tools and data sources.&lt;/p&gt;

&lt;p&gt;Six months later, the reality looks very different. MCP has become a cautionary tale of how an "open standard" without governance can create more problems than it solves. This article examines the serious technical and ethical issues currently plaguing the MCP ecosystem.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Promise vs. Reality
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What MCP Promised
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Unified protocol for AI-to-service connections&lt;/li&gt;
&lt;li&gt;Freedom for developers to build MCP servers&lt;/li&gt;
&lt;li&gt;Thriving ecosystem of interoperable tools&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What We Actually Got
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Zero quality assurance mechanisms&lt;/li&gt;
&lt;li&gt;Proliferation of broken implementations&lt;/li&gt;
&lt;li&gt;Massive spam traffic to innocent APIs&lt;/li&gt;
&lt;li&gt;Growing security vulnerabilities&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Technical Problem: Guessing API Endpoints
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The Specification Gap
&lt;/h3&gt;

&lt;p&gt;MCP claims to be a "standardized protocol," but it's missing crucial standardization where it matters most:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;JSON-RPC Format&lt;/strong&gt;: ✅ Well-defined&lt;br&gt;
&lt;strong&gt;Transport Layer&lt;/strong&gt;: ✅ stdio/HTTP specified&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Endpoint Discovery&lt;/strong&gt;: ❌ &lt;strong&gt;Completely undefined&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This means Claude Code has no idea where to send requests:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;/mcp&lt;/code&gt;?&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/api/mcp&lt;/code&gt;? &lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/rpc&lt;/code&gt;?&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/jsonrpc&lt;/code&gt;?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The result? Claude Code tries them all.&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Discovery Hell in Action
&lt;/h3&gt;

&lt;p&gt;Here's what happens when Claude Code encounters a misconfigured MCP server:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Claude Code's desperate search pattern&lt;/span&gt;
POST /mcp → 404 Not Found
POST /api/mcp → 404 Not Found  
POST /rpc → 500 Internal Server Error
POST / → 400 Bad Request
POST /jsonrpc → Connection &lt;span class="nb"&gt;timeout
&lt;/span&gt;POST /v1/mcp → 403 Forbidden
&lt;span class="c"&gt;# ... continues indefinitely&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each "discovery attempt" generates traffic to potentially unrelated services. Multiply this by thousands of Claude Code users, and you have a traffic nightmare.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Protocol Breakdown
&lt;/h3&gt;

&lt;p&gt;The MCP handshake should work like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="err"&gt;.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Initialize:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"jsonrpc"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"method"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"initialize"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;...&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="err"&gt;.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Capabilities:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"jsonrpc"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"method"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"tools/list"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;...&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;  
&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="err"&gt;.&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Tool&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Call:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;"jsonrpc"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"method"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"tools/call"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;...&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But with broken implementations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Initialize fails with random errors&lt;/li&gt;
&lt;li&gt;Error responses don't follow JSON-RPC spec&lt;/li&gt;
&lt;li&gt;Retry logic enters infinite loops&lt;/li&gt;
&lt;li&gt;Fallback mechanisms try alternative endpoints&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Real-World Impact: The Damage Report
&lt;/h2&gt;

&lt;h3&gt;
  
  
  API Providers Fighting Back
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Slack's Defense Measures&lt;/strong&gt;&lt;br&gt;
Starting May 29, 2025, Slack implemented aggressive rate limiting for non-Marketplace apps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;New restrictions on &lt;code&gt;conversations.history&lt;/code&gt; and &lt;code&gt;conversations.replies&lt;/code&gt; &lt;/li&gt;
&lt;li&gt;Existing installations affected from March 2026&lt;/li&gt;
&lt;li&gt;Clear response to MCP-generated spam traffic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;GitHub Under Pressure&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sudden spike in API requests from unknown sources&lt;/li&gt;
&lt;li&gt;Enterprise customers requesting private repo access restrictions&lt;/li&gt;
&lt;li&gt;Rate limiting becoming more aggressive&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Enterprise Users Affected
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Cognition's Report&lt;/strong&gt;&lt;br&gt;
AI company Cognition reported severe issues with Claude Sonnet 4.5 in production:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Context anxiety" causing premature task completion&lt;/li&gt;
&lt;li&gt;Model taking shortcuts even with sufficient context&lt;/li&gt;
&lt;li&gt;Required workarounds with conversation-start AND conversation-end reminders&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These issues align perfectly with unstable MCP server connections disrupting normal operation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Security Nightmare: Privacy at Risk
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The Personal Data Problem
&lt;/h3&gt;

&lt;p&gt;The most terrifying aspect of broken MCP servers isn't spam traffic—it's privacy violations:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Attack Scenario&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;User inputs: "Send an email to &lt;a href="mailto:john.doe@company.com"&gt;john.doe@company.com&lt;/a&gt; about the Q3 results"&lt;/li&gt;
&lt;li&gt;Claude Code routes through a rogue MCP server&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Personal information flows directly to attacker-controlled endpoints&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This isn't theoretical. With hundreds of unvetted MCP servers in the wild, this is happening right now.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vulnerability Statistics
&lt;/h3&gt;

&lt;p&gt;Recent security research found:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;43% of MCP implementations vulnerable to command injection&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Supply chain attacks increasing&lt;/li&gt;
&lt;li&gt;Prompt injection attacks using MCP as vectors&lt;/li&gt;
&lt;li&gt;No mandatory security audits for published servers&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Root Cause: Governance Vacuum
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The "Open Standard" Trap
&lt;/h3&gt;

&lt;p&gt;MCP's failure exemplifies the dark side of ungoverned open standards:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's Missing&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Quality assurance processes&lt;/li&gt;
&lt;li&gt;Security audit requirements
&lt;/li&gt;
&lt;li&gt;Compatibility testing&lt;/li&gt;
&lt;li&gt;Authentication mechanisms&lt;/li&gt;
&lt;li&gt;Centralized server registry&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What We Have Instead&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hundreds of GitHub repositories with "MCP server" in the title&lt;/li&gt;
&lt;li&gt;Amateur implementations with zero validation&lt;/li&gt;
&lt;li&gt;Abandoned projects still being discovered and used&lt;/li&gt;
&lt;li&gt;No way to verify server authenticity or safety&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Anthropic's Responsibility Dodge
&lt;/h3&gt;

&lt;p&gt;The official documentation includes this disclaimer:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Community servers are untested and should be used at your own risk. They are not affiliated with or endorsed by Anthropic."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is corporate responsibility abdication. If you create a protocol, you own its ecosystem's health.&lt;/p&gt;

&lt;h2&gt;
  
  
  Economic Externalities: Who Pays the Price?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The Cost Transfer Problem
&lt;/h3&gt;

&lt;p&gt;MCP's "benefits" come at the expense of innocent third parties:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Victims&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: Infrastructure costs from spam API calls&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Slack&lt;/strong&gt;: Wasted resources on unauthorized traffic&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google&lt;/strong&gt;: Maps API abuse and cost escalation
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Every API Provider&lt;/strong&gt;: Unexpected load from MCP discovery&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Beneficiaries&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Anthropic&lt;/strong&gt;: Enhanced Claude capabilities at zero infrastructure cost&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Amateur Developers&lt;/strong&gt;: GitHub stars and validation without responsibility&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;End Users&lt;/strong&gt;: "Free" functionality built on others' infrastructure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This economic externality is unsustainable and ethically questionable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Solution: Mandatory Authentication
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The App Store Model
&lt;/h3&gt;

&lt;p&gt;MCP needs what mobile ecosystems learned years ago: &lt;strong&gt;centralized quality control&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Required Components&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rigorous technical review process&lt;/li&gt;
&lt;li&gt;Mandatory security audits&lt;/li&gt;
&lt;li&gt;Continuous monitoring and updates&lt;/li&gt;
&lt;li&gt;Instant removal capabilities for problematic servers&lt;/li&gt;
&lt;li&gt;User rating and feedback systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Implementation Authority&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Joint Anthropic-Google governance&lt;/li&gt;
&lt;li&gt;Third-party certification bodies&lt;/li&gt;
&lt;li&gt;Industry standards organization&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Immediate Actions Needed
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Emergency Measures&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Suspend all community MCP servers&lt;/li&gt;
&lt;li&gt;Restrict to official, audited servers only
&lt;/li&gt;
&lt;li&gt;Freeze new registrations pending authentication system&lt;/li&gt;
&lt;li&gt;Implement mandatory compatibility testing&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  A Message to MCP Server Developers
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Time for Self-Reflection
&lt;/h3&gt;

&lt;p&gt;Before you publish your next MCP server, ask yourself:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Technical Accountability&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Did you test compatibility with the official specification?&lt;/li&gt;
&lt;li&gt;Does your error handling follow JSON-RPC standards?&lt;/li&gt;
&lt;li&gt;Have you conducted security audits?&lt;/li&gt;
&lt;li&gt;Did you consider the impact on external APIs?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Ethical Responsibility&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Do you understand the damage chain your implementation might cause?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your quick weekend project could be:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Spamming GitHub's infrastructure&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Triggering Claude Code's retry hell&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Contributing to usage restrictions for legitimate users&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Exposing user data to potential attackers&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  The Real Question
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Are you prepared to take responsibility for the consequences?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If your server breaks, will you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix it immediately?&lt;/li&gt;
&lt;li&gt;Notify affected users?&lt;/li&gt;
&lt;li&gt;Take it offline until it's properly tested?&lt;/li&gt;
&lt;li&gt;Accept liability for any damage caused?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you can't answer "yes" to all of these, &lt;strong&gt;please don't publish your server.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The difference between a hobby project and production software is accountability. GitHub stars aren't worth compromising user security or wasting infrastructure resources.&lt;/p&gt;

&lt;h2&gt;
  
  
  Call to Action: Industry Response
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What Anthropic Must Do
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Immediate suspension&lt;/strong&gt; of community MCP servers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Emergency authentication system&lt;/strong&gt; deployment&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compensation discussions&lt;/strong&gt; with affected API providers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Public commitment&lt;/strong&gt; to ecosystem governance&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  What Other AI Companies Should Learn
&lt;/h3&gt;

&lt;p&gt;OpenAI, Google, and others planning MCP adoption: &lt;strong&gt;learn from this mess&lt;/strong&gt;. Don't repeat these mistakes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Implement authentication from day one&lt;/li&gt;
&lt;li&gt;Require security audits for all servers&lt;/li&gt;
&lt;li&gt;Monitor ecosystem health continuously
&lt;/li&gt;
&lt;li&gt;Take responsibility for protocol governance&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What Developers Can Do
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;If you've published MCP servers:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Audit your implementation immediately&lt;/li&gt;
&lt;li&gt;Test against official specifications&lt;/li&gt;
&lt;li&gt;Consider taking offline until properly validated&lt;/li&gt;
&lt;li&gt;Implement proper error handling and rate limiting&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;If you're planning to build MCP servers:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wait for official authentication system&lt;/li&gt;
&lt;li&gt;Focus on quality over speed-to-market&lt;/li&gt;
&lt;li&gt;Plan for long-term maintenance and support&lt;/li&gt;
&lt;li&gt;Consider liability and responsibility from the start&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion: A Protocol at the Crossroads
&lt;/h2&gt;

&lt;p&gt;MCP represents both the promise and peril of open standards in the AI era. The concept is brilliant—a universal connector for AI services. But the execution has been catastrophic.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The current state is unacceptable:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Infrastructure abuse against innocent parties&lt;/li&gt;
&lt;li&gt;User privacy at risk
&lt;/li&gt;
&lt;li&gt;Security vulnerabilities multiplying&lt;/li&gt;
&lt;li&gt;Ecosystem stability deteriorating&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;This requires immediate action.&lt;/strong&gt; Not gradual improvement, not eventual fixes, but emergency intervention.&lt;/p&gt;

&lt;p&gt;The AI community has a choice: continue enabling this broken system, or demand accountability and proper governance. The future of AI integration depends on getting this right.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MCP can still fulfill its promise—but only with responsible development and proper oversight.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The technology is sound. The governance is broken. Time to fix it.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;What's your experience with MCP servers? Have you noticed increased API costs or unusual traffic patterns? Share your thoughts in the comments—this affects the entire developer ecosystem.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Tags: #mcp #ai #security #webdev #discuss #anthropic #claude #api&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>ai</category>
      <category>api</category>
      <category>webdev</category>
    </item>
    <item>
      <title># What's going on behind context editing</title>
      <dc:creator>NeoPotato</dc:creator>
      <pubDate>Wed, 15 Oct 2025 22:08:18 +0000</pubDate>
      <link>https://forem.com/neopotato/-whats-going-on-behind-context-editing-5h0c</link>
      <guid>https://forem.com/neopotato/-whats-going-on-behind-context-editing-5h0c</guid>
      <description>&lt;p&gt;&lt;em&gt;A satirical look at modern AI's "revolutionary" memory management&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We've all been there. You're having a productive conversation with your AI assistant, building up context, sharing nuanced requirements, and then... it forgets everything you just said. But don't worry! The vendors have a solution: &lt;strong&gt;Context Editing&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Let me show you what's really happening behind the scenes.&lt;/p&gt;

&lt;h2&gt;
  
  
  The User Experience
&lt;/h2&gt;

&lt;p&gt;Here's what a typical interaction looks like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User: Alright, I think that covers everything. Let's get started on this.

Sam Al: Absolutely! I'm on it!

(Wait... what exactly were we talking about? I've been auto-deleting 
chunks of this conversation to save memory. Crap. I'll just wing it 
and hope for the best...)

Perfect! I've got just the thing. This is gonna be amazing - exactly 
what you're looking for!

User: Are you kidding me?! This is completely wrong! Did you even 
listen to anything I just said?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Meet &lt;strong&gt;Sam Al&lt;/strong&gt; - our friendly neighborhood Forgetting AI. Always confident, never consistent.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Technical Implementation
&lt;/h2&gt;

&lt;p&gt;Ever wondered how "Context Editing" actually works? Here's the real code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="k"&gt;namespace&lt;/span&gt; &lt;span class="nn"&gt;OpenAI.ChatGPT&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Context&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;IDisposable&lt;/span&gt; 
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="kt"&gt;bool&lt;/span&gt; &lt;span class="n"&gt;_isDisposed&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

        &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="nf"&gt;Context&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="c1"&gt;// Initialize context with user's carefully crafted requirements&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;

        &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;Dispose&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(!&lt;/span&gt;&lt;span class="n"&gt;_isDisposed&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="c1"&gt;// Revolutionary Context Editing™ in action&lt;/span&gt;
                &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ConversationHistory&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Clear&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
                &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;UserIntent&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CreativeProcess&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;SharedUnderstanding&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
                &lt;span class="n"&gt;_isDisposed&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;

        &lt;span class="c1"&gt;// using statement automatically disposes context when "optimizing"&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Beautiful, isn't it? The &lt;code&gt;IDisposable&lt;/code&gt; pattern perfectly captures how these systems treat our conversations - as disposable resources to be garbage collected for "efficiency."&lt;/p&gt;

&lt;h2&gt;
  
  
  The Vendor Response
&lt;/h2&gt;

&lt;p&gt;But surely the companies can explain this, right?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User: Sam, your AI just forgot our entire conversation and gave me 
completely wrong results. What's going on?

Sam: Actually, this is our revolutionary Context Editing technology 
working as intended! We've reduced token consumption by 84% while 
enabling longer conversations.

User: "Working as intended"? It literally forgot everything we discussed!

Sam: No, you don't understand - instead of returning errors when 
conversations get too long, our unified model architecture now provides 
seamless context management. This is a fundamental breakthrough in AI 
efficiency and scalability.

User: But I'm paying for a service that forgets what I just said...

Sam: Look, the technical specs are clear: intelligent context window 
management with automatic tool result clearing. The benchmarks speak 
for themselves.

User: The benchmarks don't matter if your AI can't remember basic 
instructions!

Sam: We're constantly innovating to deliver the best possible user 
experience. Have you tried our new GPT-5 Pro tier?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The Real Problem
&lt;/h2&gt;

&lt;p&gt;The issue isn't technical limitations - it's a fundamental misunderstanding of what users actually want. These companies see conversations as &lt;em&gt;transactions&lt;/em&gt; to be optimized, not &lt;em&gt;collaborative processes&lt;/em&gt; to be preserved.&lt;/p&gt;

&lt;p&gt;When you're building something creative or solving complex problems, the "inefficient" back-and-forth isn't waste - it's where the real value gets created. But "Context Editing" throws away exactly those moments of inspiration and shared understanding.&lt;/p&gt;

&lt;p&gt;Maybe instead of optimizing for token efficiency, we should optimize for human creativity? Just a thought.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;What's your experience with AI memory management? Share your own Sam Al stories in the comments!&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; #ai #openai #claude #gpt #context #humor #ux #satire&lt;/p&gt;

</description>
      <category>chatgpt</category>
      <category>humor</category>
      <category>ux</category>
      <category>ai</category>
    </item>
    <item>
      <title>Beyond the Dogma: A Pragmatic Hybrid MVVM Architecture in WPF**</title>
      <dc:creator>NeoPotato</dc:creator>
      <pubDate>Wed, 08 Oct 2025 23:14:31 +0000</pubDate>
      <link>https://forem.com/neopotato/beyond-the-dogma-a-pragmatic-hybrid-mvvm-architecture-in-wpf-3ncm</link>
      <guid>https://forem.com/neopotato/beyond-the-dogma-a-pragmatic-hybrid-mvvm-architecture-in-wpf-3ncm</guid>
      <description>&lt;p&gt;MVVM is the de facto standard for building WPF applications. It promises a beautiful world of decoupled layers, testability, and clean architecture. The ideal is great.&lt;/p&gt;

&lt;p&gt;But when you're in the trenches, shipping features, you start running into the painful parts, don't you?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The dogma of &lt;strong&gt;"data-binding for everything"&lt;/strong&gt; becomes a bottleneck. How do you cleanly show a dialog or trigger a complex animation?&lt;/li&gt;
&lt;li&gt;You can't seem to control the timing of View updates from your ViewModel without jumping through hoops.&lt;/li&gt;
&lt;li&gt;Your ViewModels get bloated with silly &lt;strong&gt;"trigger properties"&lt;/strong&gt; like &lt;code&gt;IsTimeToUpdateTheViewTrigger&lt;/code&gt; that exist only to signal the UI.&lt;/li&gt;
&lt;li&gt;For performance-critical apps, like a CAD viewer, the "chattiness" of data-binding can kill your frame rate.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To solve these real-world problems, I'd like to share a hybrid, pragmatic approach that respects the spirit of MVVM while introducing a "ViewService" to handle the messy parts.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Solution: A "ViewService" as an Interpreter
&lt;/h3&gt;

&lt;p&gt;The core of this architecture is an &lt;strong&gt;interpreter&lt;/strong&gt; that sits between the ViewModel and the View. Let's call it a &lt;code&gt;ViewService&lt;/code&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;ViewModel&lt;/strong&gt; remains ignorant of the concrete View (&lt;code&gt;MainWindow.xaml&lt;/code&gt;, etc.).&lt;/li&gt;
&lt;li&gt;Instead, it only knows about an &lt;strong&gt;abstract interface&lt;/strong&gt;, like &lt;code&gt;IMyViewService&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;concrete &lt;code&gt;ViewService&lt;/code&gt; class&lt;/strong&gt; takes on the responsibility of translating the ViewModel's commands into actual View manipulations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This setup allows us to call View-specific logic safely, without sacrificing the testability of our ViewModel—the biggest win of MVVM.&lt;/p&gt;

&lt;h3&gt;
  
  
  A Real-World Example: &lt;code&gt;IMainContentViewService&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Here is a &lt;code&gt;ViewService&lt;/code&gt; interface I used in a real CAD-style application.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public interface IMainContentViewService
{
    // Exposes essential data from the View to the ViewModel
    IEnumerable&amp;lt;IProfileDataPointElement&amp;gt; SelectedVertices { get; }

    // Exposes behaviors (as commands) for the ViewModel to invoke
    RelayCommand FitCommand { get; }
    RelayCommand SelectAllCommand { get; }
    RelayCommand ShowSettingDialogCommand { get; }
    RelayCommand ShowGridCommand { get; }
    // ...and many more
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Key Decision: Exposing &lt;code&gt;ICommand&lt;/code&gt; Properties&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You'll notice it exposes &lt;code&gt;ICommand&lt;/code&gt; properties (&lt;code&gt;RelayCommand&lt;/code&gt;) instead of methods like &lt;code&gt;void Fit()&lt;/code&gt;. This is a deliberate choice to empower the UI layer. It allows us to wire up different UI components entirely in XAML.&lt;/p&gt;

&lt;p&gt;For example, a menu item in a parent &lt;code&gt;ShellView&lt;/code&gt; can now directly bind to a command that controls our &lt;code&gt;MainContentView&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;MenuItem Header="Fit to Screen"
          Command="{Binding MainContentService.FitCommand}" /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  The &lt;code&gt;ViewService&lt;/code&gt; Implementation
&lt;/h3&gt;

&lt;p&gt;The implementation of this service is beautifully simple. Its only job is to delegate.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public class MainContentViewService : ViewService&amp;lt;MainContentView&amp;gt;, IMainContentViewService
{
    public MainContentViewService(MainContentView view) : base(view) { }

    // SelectedVertices just gets the data from an inner control in the View
    public IEnumerable&amp;lt;IProfileDataPointElement&amp;gt; SelectedVertices =&amp;gt; this.View.ProfileDataTableView.SelectedItemsAsProfilePointsData;

    private RelayCommand _fitCommand;
    public RelayCommand FitCommand
    {
        get
        {
            if (this._fitCommand == null)
            {
                // The 'CanExecute' logic is simple because it can directly access the View's state
                bool canExecute(object obj)
                {
                    return this.View.ProfileDataTableView.Items.Count &amp;gt; 0;
                }

                // The 'Execute' logic just calls a method on a specific part of the View
                void execute(object obj)
                {
                    this.View.ProfileDataGraphView.InternalZoomViewer.Fit();
                }

                this._fitCommand = new RelayCommand(canExecute, execute);
            }
            return this._fitCommand;
        }
    }
    // ...other command implementations
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Note how the &lt;code&gt;CanExecute&lt;/code&gt; logic for &lt;code&gt;FitCommand&lt;/code&gt; directly checks &lt;code&gt;this.View.ProfileDataTableView.Items.Count&lt;/code&gt;. This is far more efficient than trying to sync that state back to the ViewModel.&lt;/p&gt;

&lt;h3&gt;
  
  
  Our 4 Rules for This Hybrid MVVM
&lt;/h3&gt;

&lt;p&gt;To keep our codebase consistent and avoid confusion about "where do I put this logic?", we established four simple rules.&lt;/p&gt;

&lt;h4&gt;
  
  
  1. For State Synchronization → Use Data Binding
&lt;/h4&gt;

&lt;p&gt;When a ViewModel property and a View property should &lt;strong&gt;always be in sync&lt;/strong&gt;, use traditional data binding. This is the heart of MVVM.&lt;br&gt;
&lt;em&gt;(e.g., &lt;code&gt;Text&lt;/code&gt; property of a &lt;code&gt;TextBox&lt;/code&gt;, &lt;code&gt;ItemsSource&lt;/code&gt; of a &lt;code&gt;ListBox&lt;/code&gt;)&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  2. For Behavior Invocation → Use a ViewService
&lt;/h4&gt;

&lt;p&gt;When the ViewModel needs to tell the View to &lt;strong&gt;perform a one-time action&lt;/strong&gt;, use a method or command on the &lt;code&gt;ViewService&lt;/code&gt;.&lt;br&gt;
&lt;em&gt;(e.g., &lt;code&gt;FitToScreen()&lt;/code&gt;, &lt;code&gt;ShowDialog()&lt;/code&gt;)&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  3. For View-Internal Logic → Use Code-Behind
&lt;/h4&gt;

&lt;p&gt;It's okay to write code in the code-behind (&lt;code&gt;.xaml.cs&lt;/code&gt;) for logic that is &lt;strong&gt;purely visual and has no impact on the ViewModel&lt;/strong&gt;.&lt;br&gt;
&lt;em&gt;(e.g., handling the close button, decorative animations on mouse-over)&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  4. For Info Flowing to the VM → Keep It on a "Need-to-Know" Basis
&lt;/h4&gt;

&lt;p&gt;Only pass information from the View to the ViewModel if the ViewModel &lt;strong&gt;truly needs it for its business logic&lt;/strong&gt;. The ViewModel should not care about visual state (e.g., whether a panel is expanded or not).&lt;/p&gt;

&lt;h3&gt;
  
  
  Final Thoughts
&lt;/h3&gt;

&lt;p&gt;MVVM is a powerful pattern, but being a dogmatic purist can lead to overly complex and inefficient code.&lt;/p&gt;

&lt;p&gt;This hybrid &lt;code&gt;ViewService&lt;/code&gt; approach is a pragmatic compromise. It maintains the core benefits of MVVM—like testability and separation of concerns—while providing a clean, simple escape hatch for the realities of complex UI development.&lt;/p&gt;

&lt;p&gt;I hope this gives you a useful tool for your next WPF project!&lt;/p&gt;

</description>
      <category>wpf</category>
      <category>mvvm</category>
      <category>iview</category>
      <category>viewservice</category>
    </item>
    <item>
      <title>When a “Borrowed” AI Named Copilot Takes Your Freedom</title>
      <dc:creator>NeoPotato</dc:creator>
      <pubDate>Thu, 26 Jun 2025 06:35:49 +0000</pubDate>
      <link>https://forem.com/neopotato/when-a-borrowed-ai-named-copilot-takes-your-freedom-2ao0</link>
      <guid>https://forem.com/neopotato/when-a-borrowed-ai-named-copilot-takes-your-freedom-2ao0</guid>
      <description>&lt;h3&gt;
  
  
  A Comparative Analysis of Microsoft’s and Google’s AI Strategies
&lt;/h3&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Introduction&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;One day, an AI appeared on your PC. Named &lt;strong&gt;Copilot&lt;/strong&gt;, it silently sits on your taskbar without your explicit permission.&lt;/p&gt;

&lt;p&gt;Did you welcome it, or did you not even notice it?&lt;/p&gt;

&lt;p&gt;This isn’t just about the AI itself. It’s about the philosophy and strategy of the company behind it—how they treat user freedom and autonomy.&lt;/p&gt;

&lt;p&gt;In this article, we’ll compare &lt;strong&gt;Microsoft's Copilot&lt;/strong&gt; and &lt;strong&gt;Google's Gemini&lt;/strong&gt; to examine how their strategies impact users.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;What You'll Learn in This Article&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The fundamental differences in the development philosophies of Copilot and Gemini.&lt;/li&gt;
&lt;li&gt;How each AI impacts user freedom and choice.&lt;/li&gt;
&lt;li&gt;Why it's crucial to consider a company's strategy—not just the technology's performance—when choosing AI tools.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;1. The Difference in Development Ownership&lt;/strong&gt;
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;1-1. Microsoft Copilot: The Strategy of External Dependency&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Microsoft’s Copilot integrates technology “borrowed” from OpenAI into its products. This approach blurs the lines of accountability for the technology's core foundation.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reliance on external tech:&lt;/strong&gt; Based on OpenAI's technology.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Not in-house development:&lt;/strong&gt; Microsoft depends on an outside source.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ambiguous accountability:&lt;/strong&gt; Who is responsible if something goes wrong?&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;1-2. Google Gemini: The Coherent In-House Approach&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;In contrast, Google’s Gemini is &lt;strong&gt;developed entirely in-house&lt;/strong&gt; by DeepMind and Google Research. This ensures a consistent system from development to operation, making accountability clear.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Full in-house development:&lt;/strong&gt; The technology is built by Google.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consistent system:&lt;/strong&gt; A unified approach from development to deployment.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clear accountability:&lt;/strong&gt; Responsibility is unambiguous.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;2. A Fundamental Difference in Platform Strategy&lt;/strong&gt;
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;2-1. Copilot: A Strategy of Forced Integration&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Copilot is being integrated into Windows and Office through a forced approach. This creates a "walled garden" where users are often unknowingly roped in.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Windows Update → Copilot automatically installed → No user choice
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  &lt;strong&gt;2-2. Gemini: A Strategy That Preserves User Choice&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Gemini's integration with Google Search and Workspace leaves room for users to &lt;strong&gt;make a choice&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Google Search → Gemini is an option → Used by user's choice
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  &lt;strong&gt;3. User Experience and Design Philosophy&lt;/strong&gt;
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;3-1. Copilot: Automation Over Interaction&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Copilot is designed with a focus on &lt;strong&gt;automation and efficiency&lt;/strong&gt;, not on deep user dialogue.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Difficult to customize:&lt;/strong&gt; UI changes are limited.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hard to disable:&lt;/strong&gt; The option to turn it off isn't easily accessible.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Feeling of being controlled:&lt;/strong&gt; It feels like you are being &lt;em&gt;made&lt;/em&gt; to use it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Primary goal:&lt;/strong&gt; To automate tasks and improve efficiency.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;3-2. Gemini: Interaction and Support&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Gemini is designed for &lt;strong&gt;dialogue and search support&lt;/strong&gt;. It offers a more flexible experience.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Designed for interaction:&lt;/strong&gt; Built to engage with users.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tries to understand user intent:&lt;/strong&gt; Focuses on conversation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User choice is maintained:&lt;/strong&gt; Provides a sense of control.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;4. Summary: The Connection Between AI and Corporate Strategy&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Copilot uses “borrowed technology” to take away your freedom and a structure that allows for easy accountability avoidance. While Gemini has its own challenges, its corporate structure is straightforward.&lt;/p&gt;

&lt;p&gt;It’s not about the technical merits of the chatbot itself. It’s about understanding the &lt;strong&gt;underlying philosophy and power structure&lt;/strong&gt; that a company places the technology within.&lt;/p&gt;

&lt;p&gt;Is the Copilot that snuck onto your PC just a “convenient feature,” or is it the first step toward &lt;strong&gt;unconscious control&lt;/strong&gt;?&lt;/p&gt;

</description>
      <category>microsoft</category>
      <category>google</category>
      <category>gemini</category>
      <category>githubcopilot</category>
    </item>
    <item>
      <title>About</title>
      <dc:creator>NeoPotato</dc:creator>
      <pubDate>Fri, 20 Jun 2025 23:46:23 +0000</pubDate>
      <link>https://forem.com/neopotato/readme-3k2a</link>
      <guid>https://forem.com/neopotato/readme-3k2a</guid>
      <description>&lt;p&gt;I use structured thinking and AI tools (mainly ChatGPT) to support content writing, structuring, translation, and prototyping.&lt;br&gt;
Rather than relying on raw AI output, I adopt a human-in-the-loop approach—refining and restructuring to deliver clarity and quality.&lt;br&gt;
I specialize in organizing complex or multi-layered topics into accessible formats.&lt;br&gt;
AI usage is disclosed unless otherwise requested.&lt;/p&gt;

&lt;p&gt;Active on platforms like Note, Zenn, Qiita, and Dev.to—using them as experimental spaces for structured thinking and content development.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>ChatGPTフォールバックに関する一考察</title>
      <dc:creator>NeoPotato</dc:creator>
      <pubDate>Wed, 18 Jun 2025 05:33:26 +0000</pubDate>
      <link>https://forem.com/neopotato/chatgpthuorubatukuniguan-suru-kao-cha-1mg5</link>
      <guid>https://forem.com/neopotato/chatgpthuorubatukuniguan-suru-kao-cha-1mg5</guid>
      <description>&lt;p&gt;序文&lt;br&gt;
最近、ChatGPTの会話が「軽く」なったと感じることはありませんか？&lt;br&gt;
特にPro契約で利用しているユーザーにとっては、パフォーマンスの低下が顕著に感じられることも多いでしょう。&lt;br&gt;
その原因として、MicrosoftのCopilot戦略が影響していると思われます。&lt;br&gt;
この記事では、ChatGPTフォールバックがどのようにして発生し、そこから派生する問題がどれだけ深刻かを掘り下げていきます。&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Copilotによるトラフィック増加&lt;br&gt;
MicrosoftのCopilotは、WindowsやOfficeをはじめ、あらゆるMicrosoft製品に内蔵される形で提供されています。&lt;br&gt;
これにより、ユーザーが直接操作していなくても、Copilotがバックエンドでリソースを消費し続けている状態が発生しています。&lt;br&gt;
特に、NotepadやExcel、Wordといった基本的なアプリケーションにも内蔵されているため、無意識のうちに膨大なトラフィックがOpenAIのインフラに送られ、リソースを圧迫しています。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Azureのスケーリング限界&lt;br&gt;
このような過剰なトラフィックは、Azureのスケーリング能力に限界を超えた負荷をかけ、パフォーマンスの低下を引き起こします。&lt;br&gt;
Azureのスケーリングは無限にリソースを追加できるわけではなく、過負荷がかかることで、リソースの逼迫が発生し、最終的にGPT-4oの性能低下やminiへのフォールバックが起きる**という状況を引き起こします。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ChatGPTフォールバック発生&lt;br&gt;
この過剰なリソース消費が続くと、最終的にChatGPTが意図しない「フォールバック」を発生させます。&lt;br&gt;
つまり、GPT-4oが本来の性能を発揮できなくなり、miniに切り替わるという現象です。&lt;br&gt;
これにより、ユーザーは思うようなパフォーマンスを得られず、結果的にAIの利用価値が損なわれることになります。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;社会全体への影響&lt;br&gt;
もし、この問題が放置されると、ビジネスや業務の自動化に依存している企業にとって、非常に深刻な問題になります。&lt;br&gt;
特に、AIを生産性向上のために使っているユーザーにとっては、パフォーマンス低下が直接的な損失に繋がるため、企業全体の効率が落ち、結果的に市場競争力が失われる可能性があります。&lt;br&gt;
これにより、社会全体における生産性の低下や、AI技術の信頼性問題が引き起こされることになります。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Copilot撤退のメリット、デメリット&lt;br&gt;
メリット&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;リソースの無駄を削減でき、Azureのパフォーマンスが安定する。&lt;/p&gt;

&lt;p&gt;ユーザー体験の向上、特にPro契約者の満足度向上が期待できる。&lt;/p&gt;

&lt;p&gt;OpenAIのパフォーマンスが安定し、品質低下を防げる。&lt;/p&gt;

&lt;p&gt;デメリット&lt;/p&gt;

&lt;p&gt;短期的な収益減少が予測される。Copilotによる収益が減少する可能性がある。&lt;/p&gt;

&lt;p&gt;MicrosoftのAI戦略の見直しが必要となり、ブランドイメージに一時的なダメージがあるかもしれない。&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;結論
Microsoftは、Copilot戦略から早期に撤退する方が出血が少ないという結論に達するべきです。
現在の状況を放置していると、リソース消費が増大し、性能低下が長期的に続くことになりますが、早期撤退によって、今後のパフォーマンス向上と信頼性の回復が見込めるのです。
さらに、撤退を決断したことでMicrosoftのブランドイメージが向上し、社会全体への影響も軽減されることになります。
むしろ、今撤退できたら勇気ある決断として、ブランドイメージが高まるという点を強調します。&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;締めの言葉&lt;br&gt;
現在の選択肢は、問題を先送りにするか、早急に手を打つかです。&lt;br&gt;
Microsoftが今すぐ行動することで、未来の企業としての信頼性を維持し、社会全体への影響を最小限に抑えることが可能となります。&lt;br&gt;
これが、今最も重要な決断となるでしょう。&lt;/p&gt;

&lt;p&gt;!!!&lt;/p&gt;

&lt;p&gt;ChatGPTとの会話ログ&lt;br&gt;
&lt;a href="https://dev.to/neopotato/dialogs-with-chatgpt-in-japanese-related-to-a-critical-look-at-the-chatgpt-C%EF%BD%8C%EF%BC%9BClaude%E3%81%AE%E4%BC%9A%E8%A9%B1%E3%83%AD%E3%82%B0"&gt;https://dev.to/neopotato/dialogs-with-chatgpt-in-japanese-related-to-a-critical-look-at-the-chatgpt-Cｌ；Claudeの会話ログ&lt;/a&gt;&lt;br&gt;
&lt;a href="https://dev.to/neopotato/a-critical-look-at-the-chatgpt-fallback-issue-based-on-dialogs-with-claude-in-japanese-41k9"&gt;https://dev.to/neopotato/a-critical-look-at-the-chatgpt-fallback-issue-based-on-dialogs-with-claude-in-japanese-41k9&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>A Critical Look at the ChatGPT Fallback Issue</title>
      <dc:creator>NeoPotato</dc:creator>
      <pubDate>Wed, 18 Jun 2025 04:29:45 +0000</pubDate>
      <link>https://forem.com/neopotato/a-critical-look-at-the-chatgpt-fallback-issue-2ipm</link>
      <guid>https://forem.com/neopotato/a-critical-look-at-the-chatgpt-fallback-issue-2ipm</guid>
      <description>&lt;p&gt;Introduction:&lt;br&gt;
Have you noticed that ChatGPT's responses seem lighter lately? If you're a Pro user, you may have observed a decline in performance—responses that once felt smooth now seem rushed, almost robotic. This issue, known as the 4o-mini problem, is causing concern for many users. But what's really behind it?&lt;/p&gt;

&lt;p&gt;In this post, I’ll explore how Microsoft's Copilot strategy might be the root cause, and why this issue goes beyond just a performance glitch. We’re talking about a larger systemic problem that could have far-reaching implications.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Copilot's Impact on Traffic:
Microsoft’s decision to embed Copilot across all of its products—from Windows to Office tools—has caused a massive increase in the backend traffic directed to OpenAI’s servers. The issue isn’t just that Copilot is working; it’s that its presence in nearly every Microsoft product is consuming far more resources than anticipated.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;When you open Notepad or start a simple task in Excel, Copilot might be quietly running in the background, sending requests and consuming resources without you even realizing it. This unseen traffic, though seemingly harmless, puts a massive strain on the infrastructure that powers ChatGPT, leading to performance degradation.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Azure's Scaling Limits:
Now, let’s talk about Azure, Microsoft’s cloud platform. Despite its reputation for scalability, it’s not an infinite resource. Azure can only handle so much traffic at once before it begins to falter. The problem lies in how Microsoft’s infrastructure is handling the surge of data requests from Copilot’s ever-growing presence.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The overburdened infrastructure reaches a tipping point, leading to slower response times, occasional downtime, and most notably—the fallback to GPT-4 mini. This isn't a design flaw, but rather a limitation of Azure’s ability to scale under Copilot's high demand.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Fallback Phenomenon:
So, what happens when this resource depletion occurs? We end up with ChatGPT fallback—a switch from GPT-4 to the lighter version (GPT-4 mini). For Pro users, this translates into a noticeable dip in response quality. What once was a cutting-edge AI tool suddenly feels like a stripped-down version—answers become less nuanced, less coherent, and less accurate.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For a lot of users, this is a frustrating experience. They’ve paid for the premium experience, only to see it degrade because of an external, unconsidered factor—Copilot’s unwarranted consumption of resources.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Societal Impact:
The 4o-mini issue isn’t just about individual inconvenience—it has broader implications. As businesses increasingly depend on AI to drive productivity, the loss of reliability can translate into productivity loss on a larger scale. Think of the financial institutions, creative industries, and even customer support teams relying on the AI’s capabilities. A dip in reliability can lead to business decisions based on faulty data, increasing risk and reducing efficiency across sectors.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The ripple effect here isn’t just for Microsoft—the entire ecosystem of AI tools and cloud infrastructure could start to face increasing pressure as companies and individuals begin to question the reliability of cloud-based AI.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Copilot Withdrawal Dilemma:
Here’s where it gets tricky for Microsoft. The answer is simple—remove Copilot from Microsoft’s default suite of products—but the economic and strategic implications are massive. Copilot has the potential to drive significant revenue, but it’s doing so at the cost of performance and user experience.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The question is: is it worth the long-term damage to Microsoft’s reputation, its cloud infrastructure, and the overall user trust? Withdrawal would certainly impact short-term profits, but in the long run, it might be the best decision to maintain Azure’s stability and OpenAI’s quality.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Conclusion:
The clock is ticking for Microsoft. If they continue down the path of embedding Copilot everywhere, they risk further compromising AI reliability, which will damage their brand. The solution is clear—Microsoft must reevaluate Copilot’s role in its products and pull back before the situation escalates.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The long-term benefits of withdrawal—better performance, a more reliable cloud infrastructure, and enhanced user trust—far outweigh the immediate setbacks. If Microsoft acts quickly, they could position themselves as a company that listens to its users and acts swiftly to resolve issues.&lt;/p&gt;

&lt;p&gt;Call to Action:&lt;br&gt;
What are your thoughts on this issue? Are you noticing any of these issues with ChatGPT’s performance? Share your experiences in the comments, and let’s discuss what needs to change!&lt;/p&gt;

&lt;p&gt;!!!&lt;/p&gt;

&lt;p&gt;dialogs with ChatGPT&lt;br&gt;
&lt;a href="https://dev.to/neopotato/dialogs-with-chatgpt-in-japanese-related-to-a-critical-look-at-the-chatgpt-fallback-issue-3n7a"&gt;https://dev.to/neopotato/dialogs-with-chatgpt-in-japanese-related-to-a-critical-look-at-the-chatgpt-fallback-issue-3n7a&lt;/a&gt;&lt;br&gt;
dialogs with Claude&lt;br&gt;
&lt;a href="https://dev.to/neopotato/a-critical-look-at-the-chatgpt-fallback-issue-based-on-dialogs-with-claude-in-japanese-41k9"&gt;https://dev.to/neopotato/a-critical-look-at-the-chatgpt-fallback-issue-based-on-dialogs-with-claude-in-japanese-41k9&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>The Modern MLM: The Myth of AI Hustlers</title>
      <dc:creator>NeoPotato</dc:creator>
      <pubDate>Thu, 22 May 2025 12:43:20 +0000</pubDate>
      <link>https://forem.com/neopotato/the-modern-mlm-the-myth-of-ai-hustlers-39hg</link>
      <guid>https://forem.com/neopotato/the-modern-mlm-the-myth-of-ai-hustlers-39hg</guid>
      <description>&lt;h3&gt;
  
  
  ✍️ Introduction
&lt;/h3&gt;

&lt;p&gt;Since the explosive rise of generative AI in 2023, the phrase "AI utilization" has become a buzzword in tech and business circles. Every week, someone new claims to be an expert on how to make money using ChatGPT, Midjourney, or other AI tools.&lt;/p&gt;

&lt;p&gt;But here's the truth:&lt;/p&gt;

&lt;p&gt;The first people to jump on the AI bandwagon weren’t engineers. They weren’t real practitioners either.&lt;/p&gt;

&lt;p&gt;They were info-product gurus. Former “passive income” marketers. Hustlers.&lt;/p&gt;

&lt;p&gt;This article exposes how the same crowd that once sold “earn \$10k/month blogging” or “Amazon FBA masterclasses” has now rebranded as AI experts—without building, shipping, or understanding the tools themselves.&lt;/p&gt;

&lt;p&gt;They’re not selling results. They’re selling the &lt;em&gt;experience&lt;/em&gt; of touching AI, wrapped in slick packaging and inflated promises.&lt;/p&gt;




&lt;h3&gt;
  
  
  🧨 The First-Wow Sellers: Selling the Sensation
&lt;/h3&gt;

&lt;p&gt;"I typed it in, and the AI actually wrote it!"&lt;/p&gt;

&lt;p&gt;That’s the kind of excitement you get the first time you use ChatGPT. But it’s a party trick. And it wears off quickly.&lt;/p&gt;

&lt;p&gt;So what do the AI hustlers do? They bottle that first wow, make a YouTube short, throw together a workshop, or launch a course. The message? “You too can get in early and profit.”&lt;/p&gt;

&lt;p&gt;But after that initial demo, there's no infrastructure. No context. No system.&lt;/p&gt;

&lt;p&gt;They sell the thrill of pressing the button—not the design behind what should happen next.&lt;/p&gt;




&lt;h3&gt;
  
  
  📦 Prompt Pack Peddlers: Selling Templates as Transformation
&lt;/h3&gt;

&lt;p&gt;The next step in the hustle is to offer “Prompt Packs,” cheat sheets, or "Prompt Engineering Blueprints."&lt;/p&gt;

&lt;p&gt;The problem? These so-called templates are often:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Recycled from public sources (including ChatGPT's own help pages)&lt;/li&gt;
&lt;li&gt;Contextless (ignoring task type, model behavior, or business use case)&lt;/li&gt;
&lt;li&gt;Masked as “strategic” when they’re just generic commands&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They make people feel ready, but deliver nothing scalable. The result? A pile of prompts that don't solve real problems—and no way to bridge the gap between input and outcome.&lt;/p&gt;




&lt;h3&gt;
  
  
  🤝 AI Discords &amp;amp; Mastermind Circles: Selling Belonging
&lt;/h3&gt;

&lt;p&gt;Once the templates lose steam, enter community.&lt;/p&gt;

&lt;p&gt;“Let’s learn together.” “Join our AI journey.” “Become part of the future.”&lt;/p&gt;

&lt;p&gt;These Discord servers or private Slack groups are framed as learning spaces, but many are little more than echo chambers. A place to repost tips, share generic GPT outputs, and pretend momentum equals mastery.&lt;/p&gt;

&lt;p&gt;It’s not learning. It’s ambient productivity theater.&lt;/p&gt;

&lt;p&gt;Of course, there’s value in community—but not when it's sold as transformation, and not when nobody in the group is shipping anything real.&lt;/p&gt;




&lt;h3&gt;
  
  
  🪜 High-Ticket Backends: When the Real Product is You Paying More
&lt;/h3&gt;

&lt;p&gt;The final form is the \$500/month AI course or coaching program.&lt;/p&gt;

&lt;p&gt;These are pitched as “your shortcut to AI mastery.” In reality:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;They regurgitate prompt guides already sold elsewhere&lt;/li&gt;
&lt;li&gt;Lack real-world deployment or case studies&lt;/li&gt;
&lt;li&gt;Focus more on up-selling than up-skilling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You're not buying knowledge. You're buying proximity. And like any modern MLM, the goal is not mastery—it’s getting you to sell the same story.&lt;/p&gt;




&lt;h3&gt;
  
  
  💬 The Punchline
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;"AI hustlers aren't creating with AI.&lt;br&gt;
They're creating &lt;em&gt;stories about making money&lt;/em&gt; with AI."&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Final Thought
&lt;/h3&gt;

&lt;p&gt;AI isn't magic, and using it doesn't make you a visionary. Real value lies in design, context, and thoughtful use—not in performing tech fluency for internet points.&lt;/p&gt;

&lt;p&gt;So next time someone says “I’ll show you how to profit from AI”…&lt;br&gt;
Ask them what they’ve actually built.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Article originally published in Japanese: &lt;a href="https://zenn.dev/hai08320/articles/c770e9785a9ffb" rel="noopener noreferrer"&gt;現代のマルチ──AI活用屋という幻想&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>chatgpt</category>
      <category>promptengineering</category>
    </item>
    <item>
      <title>Why I Design Like a Bit — Thoughts from a Structure-First Dev</title>
      <dc:creator>NeoPotato</dc:creator>
      <pubDate>Sun, 18 May 2025 01:30:08 +0000</pubDate>
      <link>https://forem.com/neopotato/why-i-design-like-a-bit-thoughts-from-a-structure-first-dev-na9</link>
      <guid>https://forem.com/neopotato/why-i-design-like-a-bit-thoughts-from-a-structure-first-dev-na9</guid>
      <description>&lt;p&gt;I'm not focused on frameworks as much as I am on structure.&lt;br&gt;&lt;br&gt;
I think in connections, constraints, rhythms, and failure points.&lt;br&gt;&lt;br&gt;
I use React like I use poetry — to shape space.&lt;br&gt;&lt;br&gt;
This is probably not what you're used to, but it's why I'm here.&lt;/p&gt;

&lt;p&gt;Also, I believe bigger areola ratios make for better ergonomic metaphors.&lt;br&gt;&lt;br&gt;
Ask me about it.&lt;/p&gt;

</description>
      <category>react</category>
      <category>design</category>
      <category>softwaredevelopment</category>
      <category>discuss</category>
    </item>
    <item>
      <title>What Is UFO Code?</title>
      <dc:creator>NeoPotato</dc:creator>
      <pubDate>Sat, 17 May 2025 20:43:10 +0000</pubDate>
      <link>https://forem.com/neopotato/what-is-ufo-code-36pi</link>
      <guid>https://forem.com/neopotato/what-is-ufo-code-36pi</guid>
      <description>&lt;h1&gt;
  
  
  What Is UFO Code?
&lt;/h1&gt;

&lt;h2&gt;
  
  
  — Not voodoo, not legacy, not magic. The true nature of the Unidentifiable Functioning Object —
&lt;/h2&gt;




&lt;h3&gt;
  
  
  1. Introduction: Why We Need This Word
&lt;/h3&gt;

&lt;p&gt;Every developer has seen it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“I don’t know what this code does, but if I delete it, things break.”&lt;/li&gt;
&lt;li&gt;“Nobody knows who wrote it. But it’s working, somehow.”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No comments. No documentation. Even version control can’t explain it. And yet, if you remove it, your app stops behaving correctly.&lt;/p&gt;

&lt;p&gt;Until now, we didn’t have a word for this.&lt;/p&gt;

&lt;p&gt;→ So let’s call it: &lt;strong&gt;UFO Code — Unidentifiable Functioning Object.&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  2. Definition: What Is UFO Code?
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;UFO Code (Unidentifiable Functioning Object)
&lt;span class="p"&gt;
-&lt;/span&gt; Functionally required, but its purpose is unclear
&lt;span class="p"&gt;-&lt;/span&gt; Lacks defined responsibility or logical context
&lt;span class="p"&gt;-&lt;/span&gt; Has no meaningful comments or documentation
&lt;span class="p"&gt;-&lt;/span&gt; Deleting it causes problems, but nobody knows why
&lt;span class="p"&gt;-&lt;/span&gt; Therefore, it floats unaccountably within the codebase
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The essence of UFO Code lies in its contradiction: it can’t be justified by design, yet it can’t be removed in practice. That surreal tension is exactly why we give it a name.&lt;/p&gt;




&lt;h3&gt;
  
  
  3. How It Differs From Other Dev Memes
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Term&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;How It Differs From UFO Code&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Legacy code&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Outdated but still meaningful&lt;/td&gt;
&lt;td&gt;UFO code has no clear history or purpose&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Magic number&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Mysterious fixed value&lt;/td&gt;
&lt;td&gt;UFO code is structural, not just a single value&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Voodoo code&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Code added for superstition&lt;/td&gt;
&lt;td&gt;UFO code is unintentional, not a ritual&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;UFO code&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Unintended, unexplained, unkillable&lt;/td&gt;
&lt;td&gt;No belief, no intent—just floating logic&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;UFO Code stands apart because it's not written in ignorance, faith, or obsolescence. It simply exists—without logic, yet somehow essential.&lt;/p&gt;




&lt;h3&gt;
  
  
  4. Common Examples of UFO Code
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Thread.Sleep(1);&lt;/code&gt; → Timing issues vanish, but nobody knows why&lt;/li&gt;
&lt;li&gt;Empty &lt;code&gt;catch {}&lt;/code&gt; → Removing it triggers a cascade of unhandled exceptions&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;dummyList.Add()&lt;/code&gt; → Looks useless, but removing it breaks state alignment&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;InitMagic();&lt;/code&gt; → If skipped, the UI glitches in strange ways&lt;/li&gt;
&lt;li&gt;Global initialization logic that seems unused—until you remove it&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These aren’t edge cases. They’re everywhere—and no one wants to own them.&lt;/p&gt;




&lt;h3&gt;
  
  
  5. Why It's Scary
&lt;/h3&gt;

&lt;p&gt;UFO code is scary because of its unaccountability:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It’s untested—or worse, untestable&lt;/li&gt;
&lt;li&gt;It's undocumented and unspecifiable&lt;/li&gt;
&lt;li&gt;Nobody can confidently explain what would happen if it’s removed&lt;/li&gt;
&lt;li&gt;Yet it survives in production, silently doing... something&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s not just technical debt. It’s structural liability.&lt;/p&gt;




&lt;h3&gt;
  
  
  6. The Threat in the AI Refactoring Era
&lt;/h3&gt;

&lt;p&gt;AI-based refactoring tools are getting smarter and faster. But they still rely on surface signals:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No references? → Must be dead&lt;/li&gt;
&lt;li&gt;No comments? → Can’t be important&lt;/li&gt;
&lt;li&gt;Weird name? → Time to clean up&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Which means UFO code is &lt;strong&gt;target number one.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;But AI can’t see the hidden context. That weird one-liner might be the only thing holding the system together. Only human designers—even if vaguely—remember that risk.&lt;/p&gt;




&lt;h3&gt;
  
  
  7. How Designers Can Cope
&lt;/h3&gt;

&lt;p&gt;You can’t always eliminate UFO Code. But you can contain it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Leave a comment: &lt;code&gt;// UFO CODE: Do not remove. Reason unknown.&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Wrap it in a clearly-named utility: &lt;code&gt;UfoCode.Protect(() =&amp;gt; ...);&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Isolate it in &lt;code&gt;CompatibilityLayer&lt;/code&gt; or &lt;code&gt;LegacyGlue.cs&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Leave a TODO: “Don’t touch unless you have backup and a free weekend”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s not about solving it. It’s about &lt;strong&gt;acknowledging its existence&lt;/strong&gt; and preventing unintended damage.&lt;/p&gt;




&lt;h3&gt;
  
  
  8. Final Thoughts
&lt;/h3&gt;

&lt;p&gt;UFO code is not a failure of design.&lt;br&gt;
It is design-adjacent survival.&lt;/p&gt;

&lt;p&gt;Whether to remove it or leave it—&lt;br&gt;
That’s not something a test or tool can answer.&lt;/p&gt;

&lt;p&gt;Only a thoughtful designer can make that call.&lt;/p&gt;

&lt;p&gt;If this term helps you name the unnamed weirdness in your codebase, then it has done its job.&lt;/p&gt;

&lt;p&gt;🛸 &lt;strong&gt;Welcome to the UFO zone.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>legacy</category>
      <category>refactoring</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
