<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:webfeeds="http://webfeeds.org/rss/1.0" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0"><channel><webfeeds:logo>https://www.poppastring.com/blog/images/zenicon.jpg</webfeeds:logo><webfeeds:analytics id="G-74ZMZ5YS6F" engine="GoogleAnalytics" /><title>Mark Downie - PoppaString</title><link>https://www.poppastring.com/blog/</link><description>The most persistent function of this site is a platform to talk about software and technology, and the various ways it can transform the lives of everyday people.</description><image><url>https://www.poppastring.com/blog/images/zenicon.jpg</url><title>Mark Downie - PoppaString</title><link>https://www.poppastring.com/blog/</link></image><copyright>Mark Downie</copyright><lastBuildDate>Tue, 07 Apr 2026 01:03:51 GMT</lastBuildDate><managingEditor>blog@poppastring.com</managingEditor><webMaster>blog@poppastring.com</webMaster><item><trackback:ping>https://www.poppastring.com/blog/feed/trackback/c018c30e-a857-4857-869a-ae0fec144a11</trackback:ping><pingback:server>https://www.poppastring.com/blog/feed/pingback</pingback:server><pingback:target>https://www.poppastring.com/blog/post/c018c30e-a857-4857-869a-ae0fec144a11</pingback:target><dc:creator /><wfw:comment>https://www.poppastring.com/blog/old-protocols-new-pipes/comments#comments-start</wfw:comment><wfw:commentRss>https://www.poppastring.com/blog/feed/rss/comments/c018c30e-a857-4857-869a-ae0fec144a11</wfw:commentRss><title>Old Protocols, New Pipes</title><guid isPermaLink="false">https://www.poppastring.com/blog/post/c018c30e-a857-4857-869a-ae0fec144a11</guid><link>https://www.poppastring.com/blog/old-protocols-new-pipes</link><pubDate>Tue, 07 Apr 2026 01:03:51 GMT</pubDate><description>&lt;div&gt;&lt;p&gt;I built an MCP server this week. Not a toy exactly, not even a proof of concept; I wanted a working tool that lets a Copilot agent publish blog posts to a twenty-year-old blogging engine: thirteen tools, an XML-RPC client, multi-blog profile support, credential persistence, and auto-discovery of blog APIs. I built the &lt;a href="https://github.com/poppastring/blog-mcp-server"&gt;whole thing&lt;/a&gt; in a single session with GitHub Copilot, describing what I wanted more than typing code.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://github.com/poppastring/dasblog-core"&gt;DasBlog Core&lt;/a&gt; blogging engine is an open-source project I've &lt;a href="https://www.poppastring.com/blog/Upgrading-old-code-with-Copilot"&gt;maintained and upgraded&lt;/a&gt; for years. It speaks &lt;a href="http://xmlrpc.com/metaWeblogAPI"&gt;MetaWeblog&lt;/a&gt;, &lt;a href="https://www.blogger.com/developers"&gt;Blogger&lt;/a&gt;, and &lt;a href="https://www.movabletype.org/"&gt;Movable Type&lt;/a&gt; APIs over XML-RPC, protocols designed over 20 years ago so that desktop clients like Open Live Writer could talk to blog servers.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://modelcontextprotocol.io/"&gt;Model Context Protocol&lt;/a&gt; was published in 2024 so that agents could actually use tools. The MCP server I built sits between the agent and my blog. It translates natural language requests from an agent into XML-RPC calls that DasBlog knows how to respond to.&lt;/p&gt;

&lt;p&gt;DasBlog was never designed for this. Nobody writing XML-RPC handlers in 2003 was imagining that an AI would one day call &lt;code data-enlighter-language="xml"&gt;metaWeblog.newPost&lt;/code&gt; on behalf of a human having a conversation in a terminal or an IDE. Here is what that bridge looks like:&lt;/p&gt;

&lt;pre data-enlighter-language="csharp" data-enlighter-linenumbers="false"&gt;public async Task&amp;amp;lt;string&amp;amp;gt; CreatePostAsync(BlogPost post, bool publish)
{
    var postStruct = Struct(MapFromPost(post));
    var result = await Rpc.InvokeAsync("metaWeblog.newPost",
        Str(Profile.BlogId), Str(Profile.Username), Str(Profile.Password), postStruct, Bool(publish));

    return result.AsString();
}&lt;/pre&gt;

&lt;p&gt;A few lines of C# connecting a 2024 protocol to a 2003 API.&lt;/p&gt;

&lt;p&gt;Anil Dash wrote a &lt;a href="https://anildash.com/2026/01/22/codeless/"&gt;piece called "Codeless"&lt;/a&gt; earlier this year framing the current moment as the latest abstraction in a long history of letting developers focus on the problem rather than the plumbing. He makes a compelling case, and the part about putting power in the hands of product managers resonates with me personally as I have moved into a product role. But he also concedes something quietly:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;"Codeless approaches are probably not a great way to take over a big legacy codebase, since they rely on accurately describing an entire problem, which can often be difficult to completely capture."&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;This is exactly where I started. The software I needed already existed. The interesting question is not whether AI can generate greenfield applications from a strategic plan. It is whether AI can connect what you already have to what comes next.&lt;/p&gt;

&lt;p&gt;Greenfield is easy to demo. You describe a feature, the agents generate code, you "ship" it. But brownfield development is where I believe the real test lives. Brownfield means case-sensitive method names that will silently fail if you get the capitalization wrong. It means timezone conversion bugs buried in a refactoring that someone started and never finished 22 years ago. It means an API that has no &lt;code data-enlighter-language="xml"&gt;deletePost&lt;/code&gt; method in one protocol but does in another, so your abstraction layer has to quietly delegate to a different client for that one operation.&lt;/p&gt;

&lt;p&gt;I encountered all of these building this MCP server. Copilot helped me write the code, but the knowledge that made it work was mine: understanding how DasBlog stores entries, knowing that XML-RPC &lt;code data-enlighter-language="xml"&gt;dateTime.iso8601&lt;/code&gt; carries no timezone information, recognizing that the Movable Type API is additive. You cannot bridge what you do not know.&lt;/p&gt;

&lt;p&gt;This is where I think the conversation about AI and software development overlooks the brownfield reality. The abstractions Anil describes are real and valuable. But an abstraction built over ignorance will not simplify things in the long term. It only hides complexity with indirection.&lt;/p&gt;

&lt;p&gt;The twenty-year-old XML-RPC layer in DasBlog only became useful again because someone (me) understood what it did, knew why it existed, and how to connect it to something new. Copilot wrote most of the glue, but it could not know which pieces belonged together or that a bridge was needed.&lt;/p&gt;

&lt;p&gt;There are tens of thousands of systems like DasBlog sitting in production environments right now. Internal tools, legacy APIs, department-level applications that do their jobs quietly and well. Scott Hanselman once called the people who build and maintain these systems &lt;a href="https://www.hanselman.com/blog/dark-matter-developers-the-unseen-99"&gt;dark matter developers&lt;/a&gt;, the unseen majority who are not chasing the latest beta but are getting work done with mature, well-understood technology.&lt;/p&gt;

&lt;p&gt;They were not building for this moment, but many of them have structured interfaces, documented protocols, and stable systems. &lt;a href="https://www.poppastring.com/blog/we-are-still-engineers"&gt;The real work now is in understanding what you have&lt;/a&gt; well enough to connect it to what has become possible.&lt;/p&gt;

&lt;figure class="hero-image"&gt;&lt;img src="https://www.poppastring.com/blog/content/binary/sagrada-familia-construction-barcelona-spain.jpg" alt="Construction cranes and scaffolding netting surround the ornate stone towers of Gaudí's Sagrada Familia in Barcelona, a basilica begun in 1882 and still under construction."&gt;&lt;/figure&gt;&lt;/div&gt;</description><comments>https://www.poppastring.com/blog/old-protocols-new-pipes/comments#comments-start</comments><category>Artificial Intelligence</category><category>Musings</category></item><item><trackback:ping>https://www.poppastring.com/blog/feed/trackback/6a5cf8a6-3059-4c5d-8c5d-5b56e89b4e02</trackback:ping><pingback:server>https://www.poppastring.com/blog/feed/pingback</pingback:server><pingback:target>https://www.poppastring.com/blog/post/6a5cf8a6-3059-4c5d-8c5d-5b56e89b4e02</pingback:target><dc:creator /><wfw:comment>https://www.poppastring.com/blog/three-new-mai-models/comments#comments-start</wfw:comment><wfw:commentRss>https://www.poppastring.com/blog/feed/rss/comments/6a5cf8a6-3059-4c5d-8c5d-5b56e89b4e02</wfw:commentRss><title>Three New MAI Models</title><guid isPermaLink="false">https://www.poppastring.com/blog/post/6a5cf8a6-3059-4c5d-8c5d-5b56e89b4e02</guid><link>https://www.poppastring.com/blog/three-new-mai-models</link><pubDate>Sun, 05 Apr 2026 01:24:15 GMT</pubDate><description>&lt;div&gt;&lt;p&gt;&lt;a href="https://microsoft.ai/news/today-were-announcing-3-new-world-class-mai-models-available-in-foundry/"&gt;Microsoft announced three new first‑party MAI models&lt;/a&gt; this week, all available through Foundry. The releases cover transcription, voice generation, and image creation through &lt;strong&gt;Microsoft Foundry&lt;/strong&gt; and the &lt;strong&gt;MAI Playground&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;The transcription model (&lt;strong&gt;MAI‑Transcribe‑1&lt;/strong&gt;) focuses on accuracy across a broad set of languages while running faster and cheaper than the usual options. The voice model (&lt;strong&gt;MAI‑Voice‑1&lt;/strong&gt;) generates natural speech from very small samples. The model can produce a full minute of audio in about a second, and it does so with unusually efficient GPU use. If you want to check it out, try it in &lt;a href="https://copilot.microsoft.com/labs/audio-expression"&gt;Copilot Audio Expressions&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;MAI‑Image‑2&lt;/strong&gt; also improves image generation speed across Copilot and Foundry, delivering roughly twice the performance while keeping quality in line with previous models. Just ask Copilot (web or Windows) to generate an image and it will use MAI‑Image‑2 where available.&lt;/p&gt;&lt;p&gt;Microsoft is also pricing these models well below the usual market rates. Transcription at thirty‑six cents per hour is roughly a &lt;strong&gt;40 to 60 percent&lt;/strong&gt; savings compared to the typical dollar‑per‑hour services. Voice generation at twenty‑two dollars per million characters comes in at about &lt;strong&gt;half&lt;/strong&gt; the cost of most high‑quality TTS models. Image output at thirty‑three dollars per million tokens is often &lt;strong&gt;70 percent cheaper&lt;/strong&gt; than comparable offerings from the major providers. The MAI lineup is clearly positioned as the lower‑cost option.&lt;/p&gt;&lt;p&gt;What stands out is not any single capability, but the shift in direction. Microsoft is building more of its own stack rather than betting everything on &lt;a href="https://openai.com/"&gt;OpenAI&lt;/a&gt;. That shift, I assume, has deeper implications for cost, direction, and long‑term strategy. Even more significantly, each model was built by small team about 10 and tuned for efficiency, which seems to be the through‑line of this entire effort. Suggesting that high‑quality models no longer require massive research groups.&lt;/p&gt;&lt;p&gt;&lt;figure&gt;&lt;a href="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/58b78ddfc27c_DD4B/school-bus-exit_2.jpg"&gt;&lt;img width="1600" height="988" title="School bus exit" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" alt="A weathered metal sign mounted on a yellow brick wall reads *School Bus Exit* with a right‑pointing arrow beneath the text." src="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/58b78ddfc27c_DD4B/school-bus-exit_thumb.jpg" border="0"&gt;&lt;/figure&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;As a note, I do work at Microsoft, but I am not part of the team that develops these models.&lt;/p&gt;&lt;/div&gt;</description><comments>https://www.poppastring.com/blog/three-new-mai-models/comments#comments-start</comments><category>LLM</category></item><item><trackback:ping>https://www.poppastring.com/blog/feed/trackback/f5fac8f4-06e6-492e-9ac9-f1057171840a</trackback:ping><pingback:server>https://www.poppastring.com/blog/feed/pingback</pingback:server><pingback:target>https://www.poppastring.com/blog/post/f5fac8f4-06e6-492e-9ac9-f1057171840a</pingback:target><dc:creator /><wfw:comment>https://www.poppastring.com/blog/we-are-still-engineers/comments#comments-start</wfw:comment><wfw:commentRss>https://www.poppastring.com/blog/feed/rss/comments/f5fac8f4-06e6-492e-9ac9-f1057171840a</wfw:commentRss><title>We are still engineers</title><guid isPermaLink="false">https://www.poppastring.com/blog/post/f5fac8f4-06e6-492e-9ac9-f1057171840a</guid><link>https://www.poppastring.com/blog/we-are-still-engineers</link><pubDate>Fri, 06 Mar 2026 06:31:41 GMT</pubDate><description>&lt;div&gt;&lt;p&gt;&lt;a href="https://www.linkedin.com/in/stevesanderson-uk/"&gt;Steve Sanderson&lt;/a&gt; from the GitHub Copilot coding agent team &lt;a href="https://www.youtube.com/watch?v=L1w6wBxhpgE"&gt;walks through the techniques and mental models&lt;/a&gt; that make the Copilot tools feel like a genuine part of a new engineering process. He shows the newest Copilot CLI features, but for me, the real value is in the principles that still matter when everything around us is accelerating.&lt;p&gt;After sharing tools and techniques Steve talks about one of my core uncertainties, that is…&lt;blockquote&gt;&lt;p&gt;The sheer rate at which code is created ... who is going to read it? How do we know it is actually correct? I do not think this is a solved problem ... we do not know the answer right now.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Later he touches on how these tools are reshaping the physical act of writing software.&lt;blockquote&gt;&lt;p&gt;Something that bothers me a little bit is when I go back into my IDE and I start trying to write code with my actual fingers, like an animal, it is a weird experience for me now. I am not sure what buttons to press and I just look at my hands and think, make the code come out of them somehow, and I am not sure how to do it. Genuinely my muscle memory is starting to change in some way and I feel that when I want a load of code to come up on the screen I should say it in English. &lt;strong&gt;It feels weird to type it out now. I am not proud of that.&lt;/strong&gt; &lt;p&gt;I do not think that necessarily is a great thing. I do not know what to do ... is it a problem or not? Do I need to do some daily manual exercises to keep myself sharp or something? Or is there no point? I honestly do not know ... I do not feel qualified to predict the future so I am not going to. &lt;strong&gt;Despite all these unknowns I do not think I would be willing to let anyone take this from me.&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;He returns to the &lt;a href="https://www.poppastring.com/blog/homo-sapiens-10"&gt;oldest part of engineering&lt;/a&gt;, the part that has nothing to do with typing or tooling and everything to do with reasoning.&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;We are still engineers. Fundamentally we are still doing the same job. We are still using our brains to make decisions about how to solve problems. There is still an almost infinite space of possibilities for what you could actually build.&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;So even as world is accelerating, I keep coming back to the same truth. The responsibility to understand what we are building still rests with us. That is the part of the craft that no model can meaningfully duplicate. Download the the &lt;a href="https://github.com/features/copilot/cli/"&gt;GitHub Copilot CLI&lt;/a&gt; and the &lt;a href="https://github.com/github/copilot-sdk"&gt;Copilot SDK&lt;/a&gt;, and take some time to watch the entire &lt;a href="https://www.youtube.com/watch?v=L1w6wBxhpgE"&gt;AI-Powered App Development NDC keynote here&lt;/a&gt;.&lt;p&gt;&lt;a href="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/e641c9042043_1377B/columbus-museum-of-art_2.jpg"&gt;&lt;img width="2000" height="1213" title="Columbus Museum of Art" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" alt="A modern art museum with a dramatic cantilevered upper section clad in green metal panels extends over a glass-walled entrance. Tall, narrow windows line the projecting structure, and the glass doors below display the words WELCOME and Museum of Art. Leafless trees and nearby buildings sit under a clear blue sky." src="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/e641c9042043_1377B/columbus-museum-of-art_thumb.jpg" border="0"&gt;&lt;/a&gt;&lt;/div&gt;</description><comments>https://www.poppastring.com/blog/we-are-still-engineers/comments#comments-start</comments><category>Artificial Intelligence</category><category>Musings</category></item><item><trackback:ping>https://www.poppastring.com/blog/feed/trackback/295e35ba-ed8b-420b-a707-0c1ff8a53940</trackback:ping><pingback:server>https://www.poppastring.com/blog/feed/pingback</pingback:server><pingback:target>https://www.poppastring.com/blog/post/295e35ba-ed8b-420b-a707-0c1ff8a53940</pingback:target><dc:creator /><wfw:comment>https://www.poppastring.com/blog/upgrading-old-code-with-copilot/comments#comments-start</wfw:comment><wfw:commentRss>https://www.poppastring.com/blog/feed/rss/comments/295e35ba-ed8b-420b-a707-0c1ff8a53940</wfw:commentRss><title>Upgrading old code with Copilot</title><guid isPermaLink="false">https://www.poppastring.com/blog/post/295e35ba-ed8b-420b-a707-0c1ff8a53940</guid><link>https://www.poppastring.com/blog/upgrading-old-code-with-copilot</link><pubDate>Fri, 27 Feb 2026 09:21:50 GMT</pubDate><description>&lt;div&gt;&lt;p&gt;I finally did it! &lt;a href="https://github.com/poppastring/dasblog-core/releases/tag/v10.0.1552"&gt;DasBlog Core has been officially upgraded to .NET 10!&lt;/a&gt; This is probably the single biggest release I've shipped, and it warranted a proper version bump. The truth is that I do all this work out of a deep, stubborn love for neglected software, but if I am honest I would not have had the time or energy to take this on without &lt;a href="https://learn.microsoft.com/visualstudio/ide/visual-studio-github-copilot-get-started"&gt;Copilot&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Prior to these LLMs and Agents code was expensive. Not just in dollars, but in time, in the accretive collection of knowledge, and the cognitive load required to hold a dozen patterns in your head just in getting started. For most of my career I felt this at a personal level too, limited by the fundamentals of my typing, taking deliberate steps just to improve my WPM. These constraints are gone. The cost of producing code has in some ways collapsed. This also means we no longer need to carry as much concern with getting it wrong the first time, because correcting has and will probably continue to get cheaper. Trying a new framework or stack is starting to become a trivial concern. &lt;em&gt;The penalty for iteration is dropping precipitously.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;Copilot accelerated what I consider the tedious parts of writing software, things like &lt;a href="https://github.com/poppastring/dasblog-core/pull/729"&gt;test coverage&lt;/a&gt;, non-critical bugs, and &lt;a href="https://github.com/poppastring/dasblog-core/pull/745"&gt;code consistency&lt;/a&gt;. It handled the &lt;a href="https://github.com/poppastring/dasblog-core/pull/718"&gt;scaffolding and the repetition&lt;/a&gt; of a UI framework upgrade while I could use my energy on the shape of the system, along with the philosophy and intent. That shift is not at all subtle. It changes where and for how long I need to focus, and what work I can do in parallel.&lt;/p&gt;&lt;p&gt;All that said, the future is fuzzy. We are going to be generating more and more code. I mean orders of magnitude more. The tools that help us generate code are improving faster than the tools that help us understand it, and the gap in understanding systems is where the real lag will be. I also found myself “writing” far more code but with much less direct connection to the detail. I relegated myself to a reviewer looking for patterns of neglect. Code was easier to produce, but also, presumably, easier for me to lose the thread of why it even exists. Code authorship has always mattered, but now it feels less central, and I find myself wondering what we lose when that connection fades.&lt;/p&gt;

&lt;p&gt;With all this new code, and less direct connection to it, we need new ways of managing the scale. We need new ways of understanding what we have built. We need new tools for navigating and communicating the complexity. I imagine the difference will be as stark as the distance between assembly and C#.&lt;/p&gt;

&lt;p&gt;I am saying all this but &lt;a href="https://www.poppastring.com/blog/what-about-jevons-paradox"&gt;I am still optimistic&lt;/a&gt;. Some of the best ideas never made it far enough to be validated, they stalled out for lack of expertise or because they did not fit the incentives of venture capital. I for one will be happy to see those barriers collapse. &lt;/p&gt;

&lt;p&gt;My hope, selfishly, is that Visual Studio remains the place where we are most comfortable improving performance. That it becomes the place where you handle brownfield development, where you test code, where you understand how the system behaves under real constraints. My hope, selfishly, is that Visual Studio remains the place where we are most comfortable improving performance.&lt;p&gt;&lt;figure&gt;&lt;a href="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/8d6b13062d89_12EDA/spirit-of-tuskegee,_2.jpg"&gt;&lt;img width="1600" height="1347" title="Spirit of Tuskegee" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" alt="A vintage blue‑and‑yellow Stearman Kaydet biplane hangs from the ceiling of a museum gallery. The upper wing shows the word &amp;ldquo;ARMY&amp;rdquo; in large black letters with a U.S. Army Air Corps roundel. The radial engine and wooden propeller are visible at the nose, and the aircraft&amp;rsquo;s bright yellow wings and tail stand out against the neutral interior of the space." src="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/8d6b13062d89_12EDA/spirit-of-tuskegee,_thumb.jpg" border="0"&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;</description><comments>https://www.poppastring.com/blog/upgrading-old-code-with-copilot/comments#comments-start</comments><category>DasBlog</category><category>Musings</category></item><item><trackback:ping>https://www.poppastring.com/blog/feed/trackback/5517b7ce-c57d-4824-ac07-7ae562821938</trackback:ping><pingback:server>https://www.poppastring.com/blog/feed/pingback</pingback:server><pingback:target>https://www.poppastring.com/blog/post/5517b7ce-c57d-4824-ac07-7ae562821938</pingback:target><dc:creator /><wfw:comment>https://www.poppastring.com/blog/leadership-from-birds/comments#comments-start</wfw:comment><wfw:commentRss>https://www.poppastring.com/blog/feed/rss/comments/5517b7ce-c57d-4824-ac07-7ae562821938</wfw:commentRss><title>Leadership from Birds</title><guid isPermaLink="false">https://www.poppastring.com/blog/post/5517b7ce-c57d-4824-ac07-7ae562821938</guid><link>https://www.poppastring.com/blog/leadership-from-birds</link><pubDate>Mon, 26 Jan 2026 05:22:36 GMT</pubDate><description>&lt;div&gt;&lt;p&gt;A colleague shared a newsletter with me titled The &lt;a href="https://mikefisher.substack.com/p/the-shape-of-leadership"&gt;Shape of Leadership&lt;/a&gt; by Mike Fisher, here is an excerpt:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;The V-formation is the one most of us are familiar with in organizations. It maps cleanly to how we think about leadership: someone sets direction, others align behind them, and progress is made through coordination and efficiency. Everyone knows where they’re going. Roles are clear. Responsibility is explicit. When it works, it’s a beautiful thing.&lt;/p&gt;
    &lt;p&gt;There’s a reason migrating birds use it. Flying long distances is expensive. Energy matters. Small inefficiencies compound over thousands of miles. &lt;b&gt;The V-formation minimizes wasted effort by design. Each bird benefits from the work of the bird ahead of it, and the group as a whole goes farther than any individual could alone. In leadership terms, this is what strong alignment looks like.&lt;/b&gt; A clear vision reduces wasted motion. When people understand the destination and their role in getting there, they don’t have to guess. They don’t have to hedge. They can put their energy into execution instead of interpretation...&lt;/p&gt;
    &lt;p&gt;Murmurations, on the other hand, feel almost like the opposite extreme. There’s no visible plan. No clear leader. No stable shape. And yet, they are remarkably resilient. When a predator strikes, the flock doesn’t panic. It doesn’t wait for instructions. It responds instantly, each bird adjusting based on the movement of the birds nearest to it.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;What’s fascinating is that murmurations aren’t chaotic at all. They operate on a small set of simple rules: maintain distance from your neighbors, match their velocity, and pay attention to sudden changes. That’s it. No bird has a global view of the flock, but the flock as a whole behaves intelligently.&lt;/b&gt;&lt;/p&gt;
&lt;b&gt;
This is what strong cultures look like.&lt;/b&gt;&lt;/blockquote&gt;
&lt;p&gt;Most corporate leaders do not choose the shape of their environments or their teams. They inherited them. They absorb the patterns that were in place long before they arrived, especially when those patterns have a history of success. The quiet assumption is that whatever worked in the past must be correct, so the inherited shape might go unchallenged. The problem though is that the conditions shift. The work shifts. Teams shift. Yet the shape of leadership often stays the same.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.poppastring.com/blog/managing-software-inertia"&gt;Systems, including the ways we lead, carry their own inertia&lt;/a&gt;, and they intuitively preserve whatever state produced success in the past. This is not a conspiracy or a character flaw. Success creates momentum, and momentum takes deliberate effort to redirect, especially when it is in service of finding and securing unrealized opportunities. It requires planning, patience, execution and a willingness to recognize when the moment has changed.&lt;/p&gt;
&lt;h3&gt;It comes back to culture&lt;/h3&gt;
&lt;p&gt;A team’s culture becomes most evident in what people do when no one is asking and no one is watching. It shows up in the choices made in unobserved moments, in the habits that persist without direction, and in the behaviors that surface when pressure is low (or indeed, high). What emerges in those moments is the real system, not the one written in documents or described in meetings. And if a team consistently falls back into a familiar V‑formation, even when unwarranted, it is usually because the culture has rewarded and reinforced that pattern over time.&lt;/p&gt;
&lt;p&gt;Culture sets the boundaries of what feels acceptable, what feels risky, and what feels necessary. So when a team reverts to old patterns, when the intended formation collapses under pressure, or when outcomes fail to match stated values, it is the culture doing exactly what it was historically shaped to do.&lt;/p&gt;
&lt;p&gt;Transforming culture is by no means easy. It is not a matter of slogans or revised instruction sets. It happens when teams practice different behaviors long enough for those behaviors to become the instinct. Meeting the moment requires leaders who can create the conditions where those new patterns can take root.&lt;/p&gt;&lt;p&gt;&lt;figure&gt;&lt;a href="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/Leadership-from-the-birds_B105/journey-through-connection_2.jpg"&gt;&lt;img width="2000" height="1106" title="Journey through connection 2025" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" alt="Text includes the words Continue your journey through Connection. With the Connection italicized for emphasis. Suggests forward movement and thematic focus on connection, from within a curated exhibit in Indianapolis." src="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/Leadership-from-the-birds_B105/journey-through-connection_thumb.jpg" border="0"&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;</description><comments>https://www.poppastring.com/blog/leadership-from-birds/comments#comments-start</comments><category>Leadership</category><category>Musings</category><category>Product Development</category></item><item><trackback:ping>https://www.poppastring.com/blog/feed/trackback/45f31932-b08f-4302-b730-c3754410879b</trackback:ping><pingback:server>https://www.poppastring.com/blog/feed/pingback</pingback:server><pingback:target>https://www.poppastring.com/blog/post/45f31932-b08f-4302-b730-c3754410879b</pingback:target><dc:creator /><wfw:comment>https://www.poppastring.com/blog/colordriven-code-navigation/comments#comments-start</wfw:comment><wfw:commentRss>https://www.poppastring.com/blog/feed/rss/comments/45f31932-b08f-4302-b730-c3754410879b</wfw:commentRss><title>Color‑Driven Code Navigation</title><guid isPermaLink="false">https://www.poppastring.com/blog/post/45f31932-b08f-4302-b730-c3754410879b</guid><link>https://www.poppastring.com/blog/colordriven-code-navigation</link><pubDate>Thu, 22 Jan 2026 09:10:45 GMT</pubDate><description>&lt;div&gt;&lt;p&gt;Color has become one of the most important tools in my daily development workflow.&lt;/p&gt;&lt;p&gt;When I am moving across dozens of solutions, projects, and file types, a consistent color system gives me instant orientation. &lt;a href="https://devblogs.microsoft.com/visualstudio/visual-studio-2026-insiders-is-here/"&gt;Visual Studio&lt;/a&gt; has made this easier than ever with a combination of tab coloring by project rules, file extension patterns, regular expressions, and both solution level and user level themes. By leaning into a couple of simple color palettes I have built a visual map that helps me understand where I am in the codebase before I read a single file name or line of code.&lt;/p&gt;

&lt;h3&gt;Themes by Solution (and User)&lt;/h3&gt;
&lt;p&gt;When I am working with multiple solutions I use themes to associate colors with each solution. This gives me a top level color identity, a visual anchor that helps me recognize which codebase I am in before I read a single project name.&lt;/p&gt;&lt;p&gt;How do I do this? Visual Studio's Unified Settings feature allows me to save settings by user or by solution. Navigate to &lt;strong&gt;Tools &amp;gt; Options and select Environment &amp;gt; Visual Experience&lt;/strong&gt;. To ensure this does not impact every instance, set &lt;strong&gt;Applies to Solution&lt;/strong&gt;. This saves your preferences in the &lt;strong&gt;&lt;em&gt;settings.VisualStudio.json&lt;/em&gt;&lt;/strong&gt; file in the solution root directory.&lt;p&gt;&lt;figure&gt;&lt;a href="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/0305855132cb_13A06/visual-studio-unified-solution-settings_2.png"&gt;&lt;img width="1495" height="659" title="Visual Studio Unified solution Settings" style="border: 0px currentcolor; border-image: none; float: none; display: inline; max-width: 80%; background-image: none;" alt="Visual Studio &amp;quot;Visual Experience&amp;quot; settings showing a dropdown for color theme selection with options including Dark, Cool Breeze, Icy Mint, Moonlight Glow, and Blue Train, scoped to the DasBlog solution." src="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/0305855132cb_13A06/visual-studio-unified-solution-settings_thumb.png" border="0"&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p&gt;Once you get into the IDE you have several options for tab organization that are worth experimenting with for project, file extension, and regular expression.&lt;p&gt;&lt;figure&gt;&lt;a href="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/0305855132cb_13A06/visual-studio-settings-tab-colorization_2.png"&gt;&lt;img width="827" height="395" title="Visual Studio settings for Tab colorization" style="border: 0px currentcolor; border-image: none; float: none; display: inline; max-width: 40%; background-image: none;" alt="Visual Studio dropdown menu for &amp;quot;Tab colorization method&amp;quot; with four options: None, Project, File Extension, and Regular Expression, used to customize tab appearance based on file context." src="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/0305855132cb_13A06/visual-studio-settings-tab-colorization_thumb.png" border="0"&gt;&lt;/a&gt;&lt;/figure&gt;

&lt;h3&gt;Tab Color – Project&lt;/h3&gt;&lt;p&gt;Associating tabs with the project is especially helpful for solutions with more than half a dozen projects. The file name is not always enough context and hovering over a tab to figure out the root location is not always efficient. Color gives me a structural map, letting me see boundaries of responsibility within the solution at a glance. To update the default color of each project right click on the document tab and assign with &lt;strong&gt;Set Tab Color&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;Tab Color - File Extension&lt;/h3&gt;&lt;p&gt;For single project solutions I typically group by file extension. Extension based colors create quick, low friction cues that tell me what kind of work I am about to do the moment I open a file. To update the default color for, let’s say .cs files right click on the document tab and update it with &lt;strong&gt;Set Tab Color&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;Tab Color - Regular Expression&lt;/h3&gt;&lt;p&gt;My favorite and most versatile option is the use of regular expressions. It lets me surface patterns in folders, names, extensions, or a combination of all three. One of my favorites is assigning a distinct tab color for controllers in ASP.NET projects. &lt;/p&gt;&lt;p&gt;&lt;figure&gt;&lt;a href="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/0305855132cb_13A06/visual-studio-unified-configure-regular-expression_2.png"&gt;&lt;img width="588" height="540" title="Visual Studio Configure Regular Expression" style="border: 0px currentcolor; border-image: none; float: none; display: inline; max-width: 40%; background-image: none;" alt="Visual Studio settings panel for tab layout and color options, showing placement choices (Left, Top, Right), multi-row tab display toggles, and a highlighted option to configure regular expressions" src="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/0305855132cb_13A06/visual-studio-unified-configure-regular-expression_thumb.png" border="0"&gt;&lt;/a&gt;&lt;/figure&gt;

&lt;pre data-enlighter-language="yaml" data-enlighter-linenumbers="false"&gt;Controller\.cs$
^.*\.cs$
^.*\.fs$
^.*\.vb$
^.*\.json$
^.*\.txt$
&lt;/pre&gt;

&lt;p&gt;This creates a &lt;strong&gt;ColorByRegexConfig.txt&lt;/strong&gt; file in the &lt;strong&gt;.vs&lt;/strong&gt; folder. After defining this file you can apply a specific color by right clicking on the tab and selecting &lt;strong&gt;Set Tab Color&lt;/strong&gt;.&lt;p&gt;&lt;figure&gt;&lt;a href="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/0305855132cb_13A06/visual-studio-set-tab-color_4.png"&gt;&lt;img width="1035" height="949" title="Visual Studio Set Tab Color" style="border: 0px currentcolor; border-image: none; float: none; display: inline; max-width: 40%; background-image: none;" alt="Visual Studio tab context menu for &amp;quot;BlogManager.cs&amp;quot; showing options like Save, Close, Move to New Window, Duplicate, Pin Tab, and Set Tab Color with color choices: None, Lavender, Gold, Cyan, Burgundy, and Green." src="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/0305855132cb_13A06/visual-studio-set-tab-color_thumb_1.png" border="0"&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p&gt;Color is not useful to everyone, but when it is available it can become a grounding part of your workflow. For me it is a small shift in how Visual Studio presents information, but it has a big impact on how quickly I can move through a codebase and find the work that matters most.&lt;p&gt;&lt;figure&gt;&lt;a href="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/0305855132cb_13A06/visual-studio-in-color_4.png"&gt;&lt;img width="1957" height="939" title="Visual Studio in color" class="hero-image" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" alt="Visual Studio with overlapping windows showing a custom theme file in the background and a C# controller file in the foreground, with using directives for ASP.NET and DasBlog namespaces." src="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/0305855132cb_13A06/visual-studio-in-color_thumb_1.png" border="0"&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;</description><comments>https://www.poppastring.com/blog/colordriven-code-navigation/comments#comments-start</comments><category>Visual Studio</category></item><item><trackback:ping>https://www.poppastring.com/blog/feed/trackback/30a0bc1a-1667-4dab-bf72-30bada38edef</trackback:ping><pingback:server>https://www.poppastring.com/blog/feed/pingback</pingback:server><pingback:target>https://www.poppastring.com/blog/post/30a0bc1a-1667-4dab-bf72-30bada38edef</pingback:target><dc:creator /><wfw:comment>https://www.poppastring.com/blog/i-misunderstood-skills-entirely/comments#comments-start</wfw:comment><wfw:commentRss>https://www.poppastring.com/blog/feed/rss/comments/30a0bc1a-1667-4dab-bf72-30bada38edef</wfw:commentRss><title>I Misunderstood Skills Entirely</title><guid isPermaLink="false">https://www.poppastring.com/blog/post/30a0bc1a-1667-4dab-bf72-30bada38edef</guid><link>https://www.poppastring.com/blog/i-misunderstood-skills-entirely</link><pubDate>Wed, 31 Dec 2025 08:54:29 GMT</pubDate><description>&lt;div&gt;&lt;p&gt;I found this excerpt from &lt;a href="https://angiejones.tech/did-skills-kill-mcp/"&gt;Did Skills Kill MCP?&lt;/a&gt; really helpful:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Saying skills killed MCP is about as accurate as saying GitHub Actions killed Bash…&lt;/p&gt;&lt;p&gt;&lt;strong&gt;MCP is where capability lives&lt;/strong&gt;. It’s what allows an AI agent to actually do things instead of just talking about them. When an agent can run shell commands, edit files, call APIs, query databases, read from drives, store or retrieve memory, or pull live data, that’s MCP at work. MCP Servers are code. They run as services and expose callable tools. If an agent needs to interact with the real world in any meaningful way, MCP is almost certainly involved.&lt;p&gt;For example, if an agent needs to query the GitHub API, send a Slack message, or fetch production metrics, that requires real integrations, real permissions, and real execution. Instructions alone can’t do that.&lt;p&gt;Skills live at a different layer. &lt;strong&gt;Skills are about process and knowledge. They’re markdown files that encode how work should be done.&lt;/strong&gt; They capture team conventions, workflows, and domain expertise. A Skill might describe how deployments should happen, how code reviews are handled, or how incidents are triaged. This is institutional knowledge made explicit.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;- &lt;a href="https://angiejones.tech/author/angieluvboo/"&gt;Angie Jones&lt;/a&gt;, &lt;p&gt;&lt;figure&gt;&lt;a href="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/18de9af15c18_1379F/skills_2.jpg"&gt;&lt;img width="1553" height="780" title="A picture taken nea Quarry Trails Metro Park in Columbus" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" alt="Six square signs mounted on a corrugated metal wall, each showing a white pictogram of a different activity: weightlifting, hiking, kayaking, running, rock climbing, and cycling &amp;mdash; arranged left to right as a visual catalog of outdoor and fitness pursuits." src="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/18de9af15c18_1379F/skills_thumb.jpg" border="0"&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;</description><comments>https://www.poppastring.com/blog/i-misunderstood-skills-entirely/comments#comments-start</comments><category>Artificial Intelligence</category><category>Tools</category></item><item><trackback:ping>https://www.poppastring.com/blog/feed/trackback/be000649-afc7-4010-a6b3-7040c195c640</trackback:ping><pingback:server>https://www.poppastring.com/blog/feed/pingback</pingback:server><pingback:target>https://www.poppastring.com/blog/post/be000649-afc7-4010-a6b3-7040c195c640</pingback:target><dc:creator /><wfw:comment>https://www.poppastring.com/blog/i-miss-riding-the-cuts/comments#comments-start</wfw:comment><wfw:commentRss>https://www.poppastring.com/blog/feed/rss/comments/be000649-afc7-4010-a6b3-7040c195c640</wfw:commentRss><title>I Miss Riding the Cuts</title><guid isPermaLink="false">https://www.poppastring.com/blog/post/be000649-afc7-4010-a6b3-7040c195c640</guid><link>https://www.poppastring.com/blog/i-miss-riding-the-cuts</link><pubDate>Tue, 23 Dec 2025 04:57:33 GMT</pubDate><description>&lt;div&gt;&lt;p&gt;My brother gifted me a &lt;a href="https://www.yobicycle.com/mountain-bike/diamondback-ascent-49525/specs"&gt;Diamond Back Ascent&lt;/a&gt; in the early 90s, I remember it was snowing when he dropped it off, but literally overnight the world opened up to me. My range expanded from the adjacent cul‑de‑sacs and estates to neighboring woods, forests, quarries, towns and cities. The roads were always narrow and never particularly safe, so I usually stuck to the pavements, which wasn’t technically allowed. In the end though, I found myself drawn to the local &lt;a href="https://canalrivertrust.org.uk/"&gt;canal system&lt;/a&gt;, what we colloquially called &lt;a href="https://canalrivertrust.org.uk/specialist-teams/planning-and-design/planning-and-waterway-jargon-busters/waterway-jargon-buster"&gt;&lt;strong&gt;the cut&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Back then I lived close to the &lt;a href="https://canalrivertrust.org.uk/canals-and-rivers/wyrley-and-essington-canal"&gt;Wyrley &amp;amp; Essington Canal&lt;/a&gt; which ran through the remnants of industries that had once relied on the delivery of cheap coal. The &lt;a href="https://www.youtube.com/watch?v=GAfakHnTmhE"&gt;neglected towpaths always ran beside shuttered factories and half‑collapsed brickworks&lt;/a&gt;, and a mountain bike made easy work of the decay. Everyone seemed to know their local stretch of the cut, but the &lt;a href="https://canalrivertrust.org.uk/canals-and-rivers"&gt;scale and interconnection of the national network&lt;/a&gt; wasn’t always obvious. I would ride for miles without seeing anyone, surrounded by a mix of green countryside and abandoned &lt;a href="https://www.britannica.com/place/Black-Country"&gt;Black Country&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;figure&gt;&lt;a href="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/b83ce634c060_F10E/wyrley-essington-canal_2.jpg"&gt;&lt;img width="1800" height="1015" title="Wyrley Essington Canal" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" alt="A calm canal scene bordered by lush greenery, with a narrow dirt path running along the left side. Flowering bushes and tall trees reflect in the still water. In the background, a red brick arched bridge spans the canal, partially framing a distant building. Overhead, power lines stretch across a partly cloudy sky, adding a subtle contrast to the peaceful, rural setting." src="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/b83ce634c060_F10E/wyrley-essington-canal_thumb.jpg" border="0"&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;Some weekends I’d wake up early and follow the cut out toward &lt;a href="https://go.walsall.gov.uk/parks-and-green-spaces/visit-our-countryside-and-nature-reserves/rough-wood-chase-local-nature"&gt;Rough Wood&lt;/a&gt;, letting the narrow towpath guide me through the quiet stretches behind nearby estates while also reveling in the occasional curated canal facing private garden. It felt like a portal to another world, in fact it would be years before I even knew how to get to Rough Wood via car or public transport.&lt;/p&gt;
&lt;p&gt;Every now and then I’d push farther to the west side of town toward &lt;a href="https://www.wolvesandbilstonac.co.uk/"&gt;Aldersley Stadium, now known as Wolverhampton &amp;amp; Bilston Athletics Club&lt;/a&gt;. The route was something I built slowly, threading together stretches of the Wyrley &amp;amp; Essington, the &lt;a href="https://canalrivertrust.org.uk/canals-and-rivers/old-main-line"&gt;Old Main Line&lt;/a&gt;, and the &lt;a href="https://canalrivertrust.org.uk/canals-and-rivers/staffordshire-and-worcestershire-canal"&gt;Staffordshire &amp;amp; Worcestershire Canal&lt;/a&gt;. None of it was signposted or obvious. Looking back, I’m still not sure how I figured it out, it was just the path that emerged after enough weekends spent exploring the cuts.&lt;/p&gt;&lt;p&gt;&lt;figure&gt;&lt;a href="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/b83ce634c060_F10E/wolverhampton-top-lock-one_4.jpg"&gt;&lt;img width="2000" height="984" title="Wolverhampton Top Lock 1" class="hero-image" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" alt="A red-brick canal-side house with white-framed windows and multiple chimneys sits beside a calm waterway, reflecting the building and surrounding greenery. A weeping willow and other lush trees frame the scene, while a small lock gate and brick wall hint at the canal&amp;rsquo;s navigational use. The sky is partly cloudy, adding to the peaceful, semi-rural atmosphere." src="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/b83ce634c060_F10E/wolverhampton-top-lock-one_thumb_1.jpg" border="0"&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;During my time in Birmingham as a student at &lt;a href="https://www.bcu.ac.uk/"&gt;UCE (now Birmingham City University)&lt;/a&gt;, I was often short of money for public transport, so I fell back on the canals to get me from one part of the city to another. Birmingham is said to have more miles of canal than Venice, but back then the comparison would have been purely academic, the network was rough, functional at best, and mostly overlooked. I would bike from my place in Moseley, south of the city, join the &lt;a href="https://canalrivertrust.org.uk/canals-and-rivers/grand-union-canal"&gt;Grand Union Canal&lt;/a&gt;, follow it into the &lt;a href="https://en.wikipedia.org/wiki/Birmingham_and_Warwick_Junction_Canal"&gt;Birmingham and Warwick Junction Canal&lt;/a&gt;, and then take the &lt;a href="https://canalrivertrust.org.uk/canals-and-rivers/tame-valley-canal"&gt;Tame Valley Canal&lt;/a&gt; out toward &lt;a href="https://www.bcu.ac.uk/news-events/news/remembering-perry-barr"&gt;Perry Barr on the north side&lt;/a&gt;. It was a quiet thread through a growing city, a route I stitched together systematically using old an &lt;a href="https://www.ratedtrips.com/books/aa-maps-and-atlases"&gt;AA Road Atlas&lt;/a&gt;, only slipping onto the congested streets when the towpath ended or had been reclaimed by the remnants of industry.&lt;/p&gt;
&lt;p&gt;Of course a lot has changed since the 90s. The towpaths that were once muddy, uneven, and forgotten have been resurfaced and lit. &lt;a href="https://canalrivertrust.org.uk/our-cause/looking-after-canals-and-rivers/restoration"&gt;The canals are now deliberate public spaces, and the transformation is even more striking in Birmingham&lt;/a&gt;. Warehouses have become apartments, factories have become cafés, and these once‑neglected corridors have shifted into a welcoming centerpiece. It’s hard to reconcile that with the rough routes I used to ride.&lt;/p&gt;
&lt;p&gt;Today my wife and I walk and bike along our two rivers in Columbus, the &lt;a href="https://www.sciotomile.com/"&gt;Scioto&lt;/a&gt; and &lt;a href="https://ohiodnr.gov/go-and-do/plan-a-visit/find-a-property/olentangy-scenic-river"&gt;Olentangy&lt;/a&gt;, they converge conveniently in the heart of the city. It often brings the memory of those old canal rides back to me, while the cut may look different now, the sense of freedom they originally gave me hasn’t faded. They were the first places that let me move through a town on my own terms, and I’m eager to see how those old routes feel when I finally return to Birmingham.&lt;/p&gt;&lt;/div&gt;</description><comments>https://www.poppastring.com/blog/i-miss-riding-the-cuts/comments#comments-start</comments><category>Musings</category></item><item><trackback:ping>https://www.poppastring.com/blog/feed/trackback/d7c4cee3-426e-463f-91d3-7b5a7076d381</trackback:ping><pingback:server>https://www.poppastring.com/blog/feed/pingback</pingback:server><pingback:target>https://www.poppastring.com/blog/post/d7c4cee3-426e-463f-91d3-7b5a7076d381</pingback:target><dc:creator /><wfw:comment>https://www.poppastring.com/blog/does-the-math-work/comments#comments-start</wfw:comment><wfw:commentRss>https://www.poppastring.com/blog/feed/rss/comments/d7c4cee3-426e-463f-91d3-7b5a7076d381</wfw:commentRss><title>Does the math work?</title><guid isPermaLink="false">https://www.poppastring.com/blog/post/d7c4cee3-426e-463f-91d3-7b5a7076d381</guid><link>https://www.poppastring.com/blog/does-the-math-work</link><pubDate>Thu, 04 Dec 2025 10:01:13 GMT</pubDate><description>&lt;div&gt;&lt;p&gt;The Verge has delivered some of the year’s best interviews with a variety of tech CEOs, and this end‑of‑year &lt;a href="https://www.theverge.com/podcast/829868/ibm-arvind-krishna-watson-llms-ai-bubble-quantum-computing"&gt;conversation between IBM CEO Arvind Krishna and Nilay Patel&lt;/a&gt; may actually be my favorite. This quote on AGI in particular has me reflecting even more deeply &lt;a href="https://www.poppastring.com/blog/private-ai-investment-is-on-a-gdpscale"&gt;on the scale of private AI investment&lt;/a&gt;:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;So, let’s ground this in today’s costs because anything in the future is speculative. It takes about $80 billion to fill up a one-gigawatt data center. That’s today’s number. If one company is going to commit 20-30 gigawatts, that’s $1.5 trillion of CapEx. To the point we just made, you’ve got to use it all in five years because at that point, you’ve got to throw it away and refill it. Then, if I look at the total commits in the world in this space, in chasing AGI, it seems to be like 100 gigawatts with these announcements. That’s $8 trillion of CapEx. It’s my view that there’s no way you’re going to get a return on that because $8 trillion of CapEx means you need roughly $800 billion of profit just to pay for the interest. &lt;strong&gt;Arvind Krishna&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;This is a back of the napkin calculation but it assumes that this kind of large‑scale capital expenditure will be financed with debt. So a common rule of thumb is that you need ~10% annual profit relative to capital expenditure just to cover interest payments and keep the investment viable.&lt;/p&gt;&lt;p&gt;In my opinion that number makes the scale of the AGI challenge effectively insurmountable. For reference, in 2024, the combined profits of Microsoft, Alphabet, Amazon, Meta, NVIDIA, and Apple amounted to about $394 billion. That is still well below the $800 billion in annual profit required simply to service interest on the $8 trillion debt. The sustainability threshold implied here just seems overwhelming.&lt;p&gt;I read the interview but you can &lt;a href="https://youtu.be/iZgdGg8-T0M"&gt;listen and watch the whole thing here&lt;/a&gt;.&lt;p&gt;&lt;figure&gt;&lt;a href="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/Does-the-math-work_142A8/content_2.jpg"&gt;&lt;img width="1300" height="826" title="Cash Register" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" alt="A vintage mechanical cash register with round, color-coded buttons arranged in vertical columns, each labeled with numbers or symbols like &amp;quot;1&amp;quot;, &amp;quot;10&amp;quot;, &amp;quot;20&amp;quot;, and a red &amp;quot;5&amp;quot;. Above the buttons is a display panel marked &amp;quot;Dollars&amp;quot;, &amp;quot;Cents&amp;quot;, and &amp;quot;Clerk&amp;quot;, with an arrow pointing right. The register is housed in a dark metal casing and mounted against a white brick wall." src="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/Does-the-math-work_142A8/content_thumb.jpg" border="0"&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;</description><comments>https://www.poppastring.com/blog/does-the-math-work/comments#comments-start</comments><category>Artificial Intelligence</category></item><item><trackback:ping>https://www.poppastring.com/blog/feed/trackback/22ac6f4a-3182-47c3-b560-24e1dd76d014</trackback:ping><pingback:server>https://www.poppastring.com/blog/feed/pingback</pingback:server><pingback:target>https://www.poppastring.com/blog/post/22ac6f4a-3182-47c3-b560-24e1dd76d014</pingback:target><dc:creator /><wfw:comment>https://www.poppastring.com/blog/an-aiorchestrated-espionage-campaign/comments#comments-start</wfw:comment><wfw:commentRss>https://www.poppastring.com/blog/feed/rss/comments/22ac6f4a-3182-47c3-b560-24e1dd76d014</wfw:commentRss><title>An AI-orchestrated espionage campaign</title><guid isPermaLink="false">https://www.poppastring.com/blog/post/22ac6f4a-3182-47c3-b560-24e1dd76d014</guid><link>https://www.poppastring.com/blog/an-aiorchestrated-espionage-campaign</link><pubDate>Fri, 14 Nov 2025 07:34:16 GMT</pubDate><description>&lt;div&gt;&lt;p&gt;Fascinating (frightening?) report from &lt;a href="https://www.anthropic.com/"&gt;Anthropic&lt;/a&gt; describing how they eventually &lt;a href="https://www.anthropic.com/news/disrupting-AI-espionage"&gt;disrupted the first reported AI-orchestrated cyber espionage campaign&lt;/a&gt;.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;In mid-September 2025, we detected suspicious activity that later investigation determined to be a highly sophisticated espionage campaign. The attackers used AI’s “agentic” capabilities to an unprecedented degree—using AI not just as an advisor, but to execute the cyberattacks themselves.&lt;p&gt;The threat actor—whom we assess with high confidence was a Chinese state-sponsored group—manipulated our &lt;a href="https://www.claude.com/product/claude-code"&gt;Claude Code&lt;/a&gt; tool into attempting infiltration into roughly thirty global targets and succeeded in a small number of cases. The operation targeted large tech companies, financial institutions, chemical manufacturing companies, and government agencies. We believe this is the first documented case of a large-scale cyberattack executed without substantial human intervention.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Quick aside: The phrase ‘state‑sponsored group’ may sound novel, but history shows otherwise. During the era of maritime exploration, governments issued licenses to privateers who raided enemy trade. They were not formal navies, yet they sailed under state authority and operated in the space between national policy and private agency. One of the most famous British privateers was &lt;a href="https://en.wikipedia.org/wiki/Francis_Drake"&gt;Sir Francis Drake, commissioned by Queen Elizabeth I&lt;/a&gt; to raid settlements and shipping in the Americas. To the Spanish he was simply a pirate.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;The barriers to performing sophisticated cyberattacks have dropped substantially—and we predict that they’ll continue to do so.&lt;/strong&gt; With the correct setup, threat actors can now use agentic AI systems for extended periods to do the work of entire teams of experienced hackers: analyzing target systems, producing exploit code, and scanning vast datasets of stolen information more efficiently than any human operator. &lt;strong&gt;Less experienced and resourced groups can now potentially perform large-scale attacks of this nature…&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;This raises an important question: if AI models can be misused for cyberattacks at this scale, why continue to develop and release them? The answer is that the very abilities that allow Claude to be used in these attacks also make it crucial for cyber defense.&lt;/strong&gt; When sophisticated cyberattacks inevitably occur, our goal is for Claude—into which we’ve built strong safeguards—to assist cybersecurity professionals to detect, disrupt, and prepare for future versions of the attack. Indeed, our Threat Intelligence team used Claude extensively in analyzing the enormous amounts of data generated during this very investigation.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Artificial intelligence carries immense promise, yet it clearly brings risks familiar from earlier technology breakthroughs. When nuclear weapons emerged, nations had to confront a technology that could deter conflict while holding the power to devastate the world. While these present threats are not existential, AI presents a similar paradox. It can drive progress and solve problems, yet it can, in a very real sense, be turned against us. The issue is not whether AI is good or bad, but how we choose to govern its use.&lt;/p&gt;&lt;p&gt;&lt;figure&gt;&lt;a href="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/ab5ac1d77ce2_1179B/claude-mar%C3%A9chals-mosaic-panels_2.jpg"&gt;&lt;img width="1400" height="961" title="Mosaic by Claude Mar&amp;eacute;chal in Paris France" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" alt="Mosaic by Claude Mar&amp;eacute;chal in Paris, France, featuring vibrant swirling patterns of multicolored tiles. Two prominent red and maroon abstract forms stand out against a dynamic background of white, yellow, orange, and other hues, creating a striking and intricate composition." src="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/ab5ac1d77ce2_1179B/claude-mar%C3%A9chals-mosaic-panels_thumb.jpg" border="0"&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;</description><comments>https://www.poppastring.com/blog/an-aiorchestrated-espionage-campaign/comments#comments-start</comments><category>Artificial Intelligence</category><category>Musings</category></item><item><trackback:ping>https://www.poppastring.com/blog/feed/trackback/35e5a715-e256-46d3-ba08-52e122f24588</trackback:ping><pingback:server>https://www.poppastring.com/blog/feed/pingback</pingback:server><pingback:target>https://www.poppastring.com/blog/post/35e5a715-e256-46d3-ba08-52e122f24588</pingback:target><dc:creator /><wfw:comment>https://www.poppastring.com/blog/private-ai-investment-is-on-a-gdpscale/comments#comments-start</wfw:comment><wfw:commentRss>https://www.poppastring.com/blog/feed/rss/comments/35e5a715-e256-46d3-ba08-52e122f24588</wfw:commentRss><title>Private AI Investment is on a GDP-Scale</title><guid isPermaLink="false">https://www.poppastring.com/blog/post/35e5a715-e256-46d3-ba08-52e122f24588</guid><link>https://www.poppastring.com/blog/private-ai-investment-is-on-a-gdpscale</link><pubDate>Sat, 08 Nov 2025 10:04:05 GMT</pubDate><description>&lt;div&gt;&lt;p&gt;Like you, I’ve been blown away by the projected capital investments in AI. The only way I can wrap my head around the numbers is to anchor them to something more tangible in recent history. I keep &lt;a href="https://en.wikipedia.org/wiki/List_of_most_expensive_U.S._public_works_projects"&gt;coming back to the Interstate Highway System, which, adjusted for inflation, cost over $600 billion&lt;/a&gt;. Spread over multiple decades (since 1956), its annualized impact was roughly 0.10% of U.S. GDP.&lt;/p&gt;&lt;p&gt;By contrast, moderate &lt;a href="https://about.fb.com/news/2025/11/meta-data-centers-drive-economic-growth-across-us/"&gt;projections are at over $1 trillion&lt;/a&gt; (with a “T”) for AI investment deployed over the next 10 years, which clocks in at 0.40% of GDP annually. That’s four times the relative scale, compressed into a fraction of the time. This is bigger, faster, and more concentrated. The Interstate was a slow, deliberate public investment with obvious and predictable returns (in hindsight). To sense the scale of impact consider that Interstates make up about 1–2% of U.S. road miles but carry a disproportionate share of vehicle travel (roughly 20–30% of total vehicle‑miles traveled), and this number is substantially larger for heavy‑truck and freight miles. AI investment, by comparison, is a flash flood of private capital. Its sheer velocity demands a different kind of analysis, and no matter how I crunch it, it is difficult to see how all this investment pays off.&lt;/p&gt;&lt;p&gt;If AI investments deliver on its promise, we’re looking at a &lt;a href="https://budgetmodel.wharton.upenn.edu/issues/2025/9/8/projected-impact-of-generative-ai-on-future-productivity-growth"&gt;potential GDP uplift ranging from 0.20% to 0.80% annually&lt;/a&gt;. Those might sound like small numbers, but they represent a tectonic shift. Still, that multiplier isn’t automatic. It hinges on diffusion i.e. how quickly AI tools reach and reshape small firms, public services, and lagging sectors. That’s why you’re seeing companies push AI into every nook and crevice of their operations. It’s why executives are predictably shoehorning and measuring the use and value of AI-infused workflows in the most inorganic ways.&lt;/p&gt;&lt;p&gt;The &lt;a href="https://www.bea.gov/data/gdp/gdp-industry"&gt;United States is, by deliberate policy, a service-driven economy&lt;/a&gt;. Services account for the overwhelming majority of it’s GDP, and that structural reality raises the stakes for AI adoption. Unlike past waves of capital investment that primarily transformed manufacturing or physical infrastructure, AI is positioned as a direct force multiplier for our critical service work infrastructure. Gains in information processing, decision support, customer interaction, and back-office automation translate immediately into productivity where most of our economic value is created.&lt;p&gt;If the U.S. wants to remain the world’s leading service economy, it cannot afford to lag in AI adoption and diffusion. Other nations must see the same opportunity and are racing to embed AI into finance, healthcare, logistics, and professional services. Adopting AI has become the foundation of maintaining leadership in the very sectors that define the US economy.&lt;figure&gt;&lt;a href="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/bf9662ed8297_11E24/silicon-engine-skyline.jpg"&gt;&lt;img width="1792" height="1024" title="Silicon engine Skyline" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" alt="Miniature futuristic city of metallic skyscrapers set on a circular computer‑chip platform; copper circuit traces radiate outward against a dark background with warm highlights emphasizing metallic textures." src="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/bf9662ed8297_11E24/silicon-engine-skyline_thumb.jpg" border="0"&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;</description><comments>https://www.poppastring.com/blog/private-ai-investment-is-on-a-gdpscale/comments#comments-start</comments><category>Artificial Intelligence</category><category>Musings</category></item><item><trackback:ping>https://www.poppastring.com/blog/feed/trackback/5e406dcb-8cc0-41ef-8a49-e7c7026693ab</trackback:ping><pingback:server>https://www.poppastring.com/blog/feed/pingback</pingback:server><pingback:target>https://www.poppastring.com/blog/post/5e406dcb-8cc0-41ef-8a49-e7c7026693ab</pingback:target><dc:creator /><wfw:comment>https://www.poppastring.com/blog/define-a-default-startup-project-in-your-slnx-file/comments#comments-start</wfw:comment><wfw:commentRss>https://www.poppastring.com/blog/feed/rss/comments/5e406dcb-8cc0-41ef-8a49-e7c7026693ab</wfw:commentRss><title>Define a default startup project in your slnx file</title><guid isPermaLink="false">https://www.poppastring.com/blog/post/5e406dcb-8cc0-41ef-8a49-e7c7026693ab</guid><link>https://www.poppastring.com/blog/define-a-default-startup-project-in-your-slnx-file</link><pubDate>Thu, 23 Oct 2025 06:22:31 GMT</pubDate><description>&lt;div&gt;&lt;p&gt;Earlier this year &lt;a href="https://devblogs.microsoft.com/dotnet/introducing-slnx-support-dotnet-cli/"&gt;we introduced SLNX&lt;/a&gt;, an XML-based solution file format that replaces the old, proprietary .sln layout with a much more concise, readable XML representation. It preserves the same solution data by folding common defaults into the format so files are smaller and easier to inspect and merge while retaining full build behavior. Tooling support is already available in Visual Studio and the dotnet CLI, however, our plan is to make this &lt;a href="https://devblogs.microsoft.com/visualstudio/visual-studio-2026-insiders-is-here/"&gt;the default experience for Visual Studio 2026&lt;/a&gt; forward.&lt;/p&gt;&lt;p&gt;One legitimate complaint is that the format does not inherently support ordering, more specifically, you could not define the start up project (you can in Visual Studio but it gets saved in your personal .suo file).&lt;/p&gt;&lt;p&gt;The immediate &lt;a href="https://github.com/microsoft/vs-solutionpersistence/pull/120"&gt;fix we applied is deliberately simple and explicit: add a DefaultStartup="true" attribute to the project&lt;/a&gt; element you want to launch first. &lt;/p&gt;

&lt;p&gt;&lt;pre data-enlighter-linenumbers="false" data-enlighter-language="xml"&gt;&amp;amp;lt;Solution&amp;amp;gt;
  &amp;amp;lt;Project DefaultStartup="true" Path="ConsoleApp1/ConsoleApp1.csproj" /&amp;amp;gt;
  &amp;amp;lt;Project Path="SomeTestSolution/SomeTestSolution.csproj" /&amp;amp;gt;
&amp;amp;lt;/Solution&amp;amp;gt;
&lt;/pre&gt;

&lt;p&gt;That attribute is applied by the solution model at load time so Visual Studio treats that project as the default startup on first open, while existing .suo state continues to take precedence for individual developer environments.&lt;br&gt;&lt;/p&gt;&lt;a href="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/c7eb4d5500ba_123BD/visual-studio-2026_2.png"&gt;
&lt;figure&gt;
&lt;img width="1400" height="787" title="Visual Studio 2026 Icon" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" alt="Stylized Visual Studio ribbon logo reminiscent of an abstract infinity symbol in pink-to-purple gradient centered on a soft purple-blue gradient background with rounded gradient corner shapes for depth." src="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/c7eb4d5500ba_123BD/visual-studio-2026_thumb.png" border="0"&gt;

&lt;/figure&gt;
&lt;/a&gt;&lt;/div&gt;</description><comments>https://www.poppastring.com/blog/define-a-default-startup-project-in-your-slnx-file/comments#comments-start</comments><category>Visual Studio</category></item><item><trackback:ping>https://www.poppastring.com/blog/feed/trackback/d957d559-bfee-49a0-a787-ce4e3274b0a0</trackback:ping><pingback:server>https://www.poppastring.com/blog/feed/pingback</pingback:server><pingback:target>https://www.poppastring.com/blog/post/d957d559-bfee-49a0-a787-ce4e3274b0a0</pingback:target><dc:creator /><wfw:comment>https://www.poppastring.com/blog/heres-how-to-turn-off-copilot/comments#comments-start</wfw:comment><wfw:commentRss>https://www.poppastring.com/blog/feed/rss/comments/d957d559-bfee-49a0-a787-ce4e3274b0a0</wfw:commentRss><title>Here’s how to turn off Copilot</title><guid isPermaLink="false">https://www.poppastring.com/blog/post/d957d559-bfee-49a0-a787-ce4e3274b0a0</guid><link>https://www.poppastring.com/blog/heres-how-to-turn-off-copilot</link><pubDate>Sun, 21 Sep 2025 06:13:39 GMT</pubDate><description>&lt;div&gt;&lt;p&gt;Every time I talk about &lt;a href="https://learn.microsoft.com/visualstudio/ide/visual-studio-github-copilot-get-started"&gt;Copilot&lt;/a&gt;, its value, its impact, the way it can improve a developer workflow, someone jumps in with the complaint: “Just let me switch it off.” As if they’re somehow locked into a tool they didn’t choose. Let’s be clear. You’ve always had the option to disable it. You can remove it entirely. And now, you can fine-tune exactly how and when it shows up.&lt;/p&gt;&lt;p&gt;So this is the post I’ll point to every time someone insists they’re stuck with Copilot. If you genuinely can’t use the tool or simply don’t want to, here’s how to turn it off&lt;/p&gt;

&lt;h3&gt;Switch off Copilot in Visual Studio:&lt;/h3&gt;


&lt;p&gt;

&lt;ol&gt;&lt;li&gt;Launch the Visual Studio Installer by selecting &lt;strong&gt;Tools&lt;/strong&gt; &amp;gt; &lt;strong&gt;Get Tools and Features&lt;/strong&gt; from the Visual Studio menu.&lt;/li&gt;&lt;/ol&gt;&lt;ol start="2"&gt;
&lt;li&gt;In the Visual Studio Installer, select the &lt;strong&gt;Individual components&lt;/strong&gt; tab. In the search box, type &lt;strong&gt;"copilot"&lt;/strong&gt; to locate the GitHub Copilot component.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Uncheck GitHub Copilot, GitHub Copilot Chat, GitHub Copilot Completions&lt;/strong&gt; to remove it from your VS installation.&lt;/li&gt;&lt;li&gt;Click the &lt;strong&gt;Modify&lt;/strong&gt; button to apply the changes. This will uninstall GitHub Copilot from your Visual Studio instance.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Restart Visual Studio&lt;/strong&gt;&lt;/li&gt;&lt;/ol&gt;


&lt;figure&gt;&lt;strong&gt;&lt;a href="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/Heres-how-to-turn-off-Copilot_13238/visual-studio-copilot_2.png"&gt;&lt;img width="998" height="627" title="Disable Visual Studio Copilot" style="border: 0px currentcolor; border-image: none; display: inline; max-width: 60%; background-image: none;" alt="Screenshot of Visual Studio Installer showing modification options for Visual Studio Enterprise 2026 Insiders version 18.0.0 Insiders. The 'Individual components' tab is selected with 'Copilot' searched. Under 'AI Assistance,' GitHub Copilot is listed with a checkbox. Under 'Extensions,' GitHub Copilot Chat and GitHub Copilot Completions are shown with both checkboxes selected." src="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/Heres-how-to-turn-off-Copilot_13238/visual-studio-copilot_thumb.png" border="0"&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/figure&gt;&lt;p&gt;That’s it, really simple.&lt;/p&gt;&lt;h3&gt;Reducing Interruptions from Copilot&lt;/h3&gt;&lt;p&gt;Maybe you do not need to switch off Copilot, you just might prefer a quieter workspace while deep in thought. Then Visual Studio offers streamlined options to help you stay immersed in your code and get the level of assistance that matches your style or task. Your options include:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;No completions while typing.&lt;/strong&gt; &lt;/li&gt;&lt;li&gt;&lt;strong&gt;Only receive code completions when you request it.&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Hide next edit suggestions and only preview when you are ready.&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;For more details on how to control Copilot please check out this post, &lt;a href="https://devblogs.microsoft.com/visualstudio/better-control-over-your-copilot-code-suggestions/"&gt;Better Control over Your Copilot Code Suggestions&lt;/a&gt;.&lt;/p&gt;&lt;h3&gt;Ok, now let me get this off my chest…&lt;/h3&gt;&lt;p&gt;There is a kind of knee-jerk rejection that shows up whenever I suggest AI tools, not specifically Copilot, might be remotely helpful to some segments of the developer population. There is a very vocal minority that can see no inherent value in AI for anything. Some people treat my reaction to AI the way I treat excitement around crypto. With skepticism and doubt. Meanwhile I see thousands of developers using AI daily and getting valuable stuff done.&lt;/p&gt;&lt;p&gt;Now, I do think it is important to recognize concerns about the environmental impact of LLMs, I also support promoting and supporting ethically sourced datasets with fair compensation for authors and artists. However, most of the critiques I receive fail to reflect our current reality. AI brings real utility and continues to reshape developer tools, but criticism often reduces anyone who sees even a glimpse of value to a corporate shill.&lt;p&gt;Despite all this, developers continue to adopt Copilot (and other AI tools) at an extraordinary pace. That said, if AI features aren’t serving your workflow you should absolutely have the freedom to turn them off. But if you dismiss this all as hype or just a passing trend, you might be overlooking what’s actually driving this shift.&lt;p&gt;Anyway this is my &lt;a href="https://www.youtube.com/watch?v=7ZfqdrI5HgI&amp;amp;t=20s"&gt;“taps the sign”&lt;/a&gt; blog post on this topic.&lt;p&gt;&lt;figure&gt;&lt;a href="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/Heres-how-to-turn-off-Copilot_13238/area-closed-do-not-enter_2.jpg"&gt;&lt;img width="1400" height="829" title="Sign stating Area Closed Do Not Enter" class="hero-image" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" alt="A weathered sign mounted on a wooden beam reads &amp;quot;AREA CLOSED DO NOT ENTER&amp;quot; in bold green capital letters against a white background with a green border. The sign is slightly scuffed and reflects sunlight. Behind it, dry grass stretches across an open field under a clear blue sky, suggesting a restricted outdoor area, possibly for safety or conservation." src="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/Heres-how-to-turn-off-Copilot_13238/area-closed-do-not-enter_thumb.jpg" border="0"&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;</description><comments>https://www.poppastring.com/blog/heres-how-to-turn-off-copilot/comments#comments-start</comments><category>Visual Studio</category></item><item><trackback:ping>https://www.poppastring.com/blog/feed/trackback/b5cc627e-e228-4066-b768-dbbe9295c8f2</trackback:ping><pingback:server>https://www.poppastring.com/blog/feed/pingback</pingback:server><pingback:target>https://www.poppastring.com/blog/post/b5cc627e-e228-4066-b768-dbbe9295c8f2</pingback:target><dc:creator /><wfw:comment>https://www.poppastring.com/blog/visual-studio-insiders/comments#comments-start</wfw:comment><wfw:commentRss>https://www.poppastring.com/blog/feed/rss/comments/b5cc627e-e228-4066-b768-dbbe9295c8f2</wfw:commentRss><title>Visual Studio Insiders</title><guid isPermaLink="false">https://www.poppastring.com/blog/post/b5cc627e-e228-4066-b768-dbbe9295c8f2</guid><link>https://www.poppastring.com/blog/visual-studio-insiders</link><pubDate>Wed, 10 Sep 2025 08:19:11 GMT</pubDate><description>&lt;div&gt;&lt;p&gt;With the launch of &lt;a href="https://devblogs.microsoft.com/visualstudio/visual-studio-2026-insiders-is-here/"&gt;Visual Studio 2026 Insiders&lt;/a&gt;&lt;strong&gt;&lt;/strong&gt;, our team is embracing the reality of a &lt;a href="https://www.poppastring.com/blog/if-llms-can-code-why-are-we-building-more-ides"&gt;rapidly evolving developer landscape&lt;/a&gt; head-on. That’s why with the launch of Visual Studio 2026 we’ve introduced a new release cadence designed for developers who move fast, iterate quickly, and expect their tools to keep pace.&lt;h3&gt;Insiders Channel&lt;/h3&gt;&lt;p&gt;The &lt;a href="https://visualstudio.com/insiders"&gt;&lt;strong&gt;Insiders Channel&lt;/strong&gt;&lt;/a&gt; delivers &lt;strong&gt;monthly updates&lt;/strong&gt; packed with experimental features, performance upgrades, and UI innovations. It’s where we test for the future. The Insiders Channel replaces the "Preview Channel" that was available with Visual Studio 2022. This channel will be &lt;strong&gt;the first to receive experimental features&lt;/strong&gt; like Copilot integrations, UI redesigns, and performance upgrades. &lt;strong&gt;Monthly cadence&lt;/strong&gt; ensures fast feedback loops and continuous refinement. Side-by-side install with other channels is still supported, so you can test without disrupting your primary workflow.&lt;/p&gt;&lt;h3&gt;Stable Channel (coming later this year)&lt;/h3&gt;&lt;p&gt;&lt;p&gt;The &lt;a href="https://visualstudio.com/downloads"&gt;Stable Channel&lt;/a&gt; will eventually replace the "Current Channel" that was available with Visual Studio 2022, features will flow into the Stable Channel after being available in the Insiders Channel. The Stable Channel will be available when Visual Studio 2026 becomes generally available. Even if you're on the Stable Channel, you can still explore upcoming capabilities through &lt;strong&gt;Preview Features&lt;/strong&gt;. Unlike the Insiders Channel, Preview Features let you toggle individual experiments on or off at your discretion. Just head to &lt;strong&gt;Tools &amp;gt; Manage Preview Features&lt;/strong&gt; to browse the list. &lt;/p&gt;&lt;h3&gt;LTSC - Long-Term Servicing Channel (coming later this year)&lt;/h3&gt;&lt;p&gt;While the Insiders and Stable Channels focus on velocity and continuous improvement, &lt;strong&gt;Long-Term Servicing Channel (LTSC)&lt;/strong&gt; is built for those who need their development environment to remain steady and dependable over time. We’re planning to introduce a &lt;strong&gt;Long-Term Servicing Channel (LTSC)&lt;/strong&gt; specifically for developers using the Professional, Enterprise, and Build Tools editions of Visual Studio 2026. More details on availability and servicing timelines will be shared soon. In the meantime, we encourage developers to explore the Insiders Channel to preview what’s coming.&lt;p&gt;I am excited for what’s ahead, and we’re building Visual Studio to help this generation of developers meet this uncertain future.&lt;p&gt;&lt;figure&gt;&lt;a href="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/Visual-Studio-Insider_12F61/entrance-dublin-north-market_2.jpg"&gt;&lt;img width="1400" height="818" title="Entrance sign found in the Dublin North market" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" alt="&amp;quot;Wall with the word 'ENTRANCE' in large white letters and a red arrow with light bulbs pointing right, set against a blue geometric background." src="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/Visual-Studio-Insider_12F61/entrance-dublin-north-market_thumb.jpg" border="0"&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;</description><comments>https://www.poppastring.com/blog/visual-studio-insiders/comments#comments-start</comments><category>Visual Studio</category></item><item><trackback:ping>https://www.poppastring.com/blog/feed/trackback/0394b6c3-d285-436e-b684-bb31210584b3</trackback:ping><pingback:server>https://www.poppastring.com/blog/feed/pingback</pingback:server><pingback:target>https://www.poppastring.com/blog/post/0394b6c3-d285-436e-b684-bb31210584b3</pingback:target><dc:creator /><wfw:comment>https://www.poppastring.com/blog/prioritizing-your-backlog/comments#comments-start</wfw:comment><wfw:commentRss>https://www.poppastring.com/blog/feed/rss/comments/0394b6c3-d285-436e-b684-bb31210584b3</wfw:commentRss><title>Prioritizing your backlog</title><guid isPermaLink="false">https://www.poppastring.com/blog/post/0394b6c3-d285-436e-b684-bb31210584b3</guid><link>https://www.poppastring.com/blog/prioritizing-your-backlog</link><pubDate>Fri, 05 Sep 2025 07:04:28 GMT</pubDate><description>&lt;div&gt;&lt;p&gt;The Product Managers I attempt to emulate aren't just juggling timelines and features, they are constantly finding throughlines in ambiguous spaces and aligning competing interests to ensure that the product's core intent is delivered. This prioritization process isn’t just about ranking tasks, it’s also about choosing what not to build, what not to pursue, and where we can never afford to compromise. At its core, product leadership means asking:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;What creates real value now?&lt;li&gt;What builds strategic advantage later?&lt;li&gt;What’s noise, distraction, or legacy baggage we need to avoid?&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Recognizing what qualifies as noise takes time, experience and a health dose of intuition, but in the meantime, frameworks like ICE (Impact × Confidence × Ease) or RICE ([Reach × Impact × Confidence] ÷ Effort) can help cut through the clutter. Think of engineering focus as your most limited and precious resource. Product Managers must act as its steward, guarding, curating, and directing it in defense of your most important objectives.&lt;/p&gt;&lt;p&gt;&lt;figure&gt;&lt;a href="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/1206cc4129b6_12AF8/museum-of-montserrat-catalan-spain_2.jpg"&gt;&lt;img width="1400" height="876" title="Museum of Montserrat Catalan Spain" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" alt="Art installation featuring numerous lit light bulbs suspended from the ceiling in dense vertical rows, with a mirrored wall reflecting the lights to create a sense of depth and symmetry in a modern indoor space." src="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/1206cc4129b6_12AF8/museum-of-montserrat-catalan-spain_thumb.jpg" border="0"&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;</description><comments>https://www.poppastring.com/blog/prioritizing-your-backlog/comments#comments-start</comments><category>Product Management</category></item><item><trackback:ping>https://www.poppastring.com/blog/feed/trackback/fd656dd3-23d1-4d52-aa79-6317c9bb5938</trackback:ping><pingback:server>https://www.poppastring.com/blog/feed/pingback</pingback:server><pingback:target>https://www.poppastring.com/blog/post/fd656dd3-23d1-4d52-aa79-6317c9bb5938</pingback:target><dc:creator /><wfw:comment>https://www.poppastring.com/blog/mcp-server-integration-in-visual-studio/comments#comments-start</wfw:comment><wfw:commentRss>https://www.poppastring.com/blog/feed/rss/comments/fd656dd3-23d1-4d52-aa79-6317c9bb5938</wfw:commentRss><slash:comments>2</slash:comments><title>MCP server integration in Visual Studio</title><guid isPermaLink="false">https://www.poppastring.com/blog/post/fd656dd3-23d1-4d52-aa79-6317c9bb5938</guid><link>https://www.poppastring.com/blog/mcp-server-integration-in-visual-studio</link><pubDate>Tue, 22 Jul 2025 03:52:58 GMT</pubDate><description>&lt;div&gt;&lt;p&gt;I’ve been tinkering with &lt;a href="https://devblogs.microsoft.com/visualstudio/agent-mode-is-now-generally-available-with-mcp-support/"&gt;&lt;strong&gt;MCP server support in Visual Studio&lt;/strong&gt;&lt;/a&gt; recently, and the latest improvements have helped a bunch. Firstly, you can set up your integration in the IDE, which of course, is entirely the point of a good IDE. I am going to run through the steps of adding the GitHub MCP server.&lt;/p&gt;&lt;h3&gt;Set Up a GitHub MCP Server&lt;/h3&gt;
&lt;p&gt;Add an &lt;code&gt;mcp.json&lt;/code&gt; file to your solution or PC, Visual Studio will detect it automatically in the following locations: &lt;ul&gt;&lt;li&gt;[SOLUTIONDIR]\.vs\mcp.json [Visual Studio only, for the specified solution]&lt;/li&gt;&lt;li&gt;[SOLUTIONDIR]\.mcp.json [Tracked in Source Control]&lt;/li&gt;&lt;li&gt;[SOLUTIONDIR]\.vscode\mcp.json [Supports VS Code and is scoped to the solutions]&lt;/li&gt;&lt;li&gt;%USERPROFILE%\.mcp.json [Global MCP server configuration, applies to all Visual Studio solutions]&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;Add the following text to the json file at your selected location:&lt;/p&gt;


&lt;pre data-enlighter-linenumbers="false" data-enlighter-language="json"&gt;{
  "servers": {
    "github": {
      "url": "https://api.githubcopilot.com/mcp/"
    }
  }
}
&lt;/pre&gt;

&lt;p&gt;Immediately open in Visual Studio (if you are using 2026 it should be super fast). The positive thing about Visual Studio is that it allows you to start and generally manage MCP servers directly with CodeLens controls which allows you to restart and reconnect to this MCP server (note that you need :&lt;/p&gt;&lt;p&gt;&lt;figure&gt;&lt;a href="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/MCP-server-integration-in-Visual-Studio_10149/image_6.png"&gt;&lt;img width="999" height="265" title="image" style="border: 0px currentcolor; border-image: none; display: inline; max-width: 60%; background-image: none;" alt="image" src="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/MCP-server-integration-in-Visual-Studio_10149/image_thumb_2.png" border="0"&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p&gt;&lt;p&gt;The first time you try this the CodeLens will make it clear that &lt;em&gt;Authentication is required&lt;/em&gt; and will show a popup allowing you &lt;em&gt;Revoke Access&lt;/em&gt; or, more appropriately &lt;em&gt;&lt;strong&gt;Authenticate&lt;/strong&gt;&lt;/em&gt;. Seamless authentication was top of mind and so &lt;a href="https://learn.microsoft.com/visualstudio/ide/work-with-github-accounts"&gt;keychain support is baked into the process&lt;/a&gt; meaning Visual Studio will pull your credentials for supported MCP servers, today that includes GitHub and Entra ID with more OAuth providers to follow. This is much easier, no more passing and potentially fumbling with tokens from your GitHub settings.&lt;p&gt;&lt;figure&gt;&lt;a href="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/MCP-server-integration-in-Visual-Studio_10149/image_8.png"&gt;&lt;img width="896" height="565" title="image" style="margin: 0px; border: 0px currentcolor; border-image: none; display: inline; max-width: 60%; background-image: none;" alt="image" src="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/MCP-server-integration-in-Visual-Studio_10149/image_thumb_3.png" border="0"&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p&gt;&lt;h3&gt;Use Your MCP Servers&lt;/h3&gt;&lt;p&gt;When you open the Copilot Chat panel, look for the Tools dropdown. There you’ll find your connected MCP servers waiting. My advice is to only select the MCP servers you actually plan to use, there is an upper limit. Hit the arrow to expose a fresh menu, manage your server inputs in the new modal dialog, and watch Copilot pull in project context from your select GitHub repository (or indeed all public repositories). &lt;p&gt;&lt;figure&gt;&lt;a href="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/MCP-server-integration-in-Visual-Studio_10149/image_10.png"&gt;&lt;img width="1290" height="463" title="image" style="margin: 0px; border: 0px currentcolor; border-image: none; display: inline; max-width: 70%; background-image: none;" alt="image" src="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/MCP-server-integration-in-Visual-Studio_10149/image_thumb_4.png" border="0"&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p&gt;Note, make sure you’re in &lt;strong&gt;Agent Mode&lt;/strong&gt; (or @ reference the agent while in &lt;strong&gt;Ask Mode&lt;/strong&gt;), this is the only way to talk to, and take action on, your MCP servers from Copilot Chat.&lt;h3&gt;New LLMs for Visual Studio&lt;/h3&gt;&lt;p&gt;While I am on this topic it is worth mentioning that &lt;a href="https://www.anthropic.com/news/claude-4"&gt;&lt;strong&gt;Claude Sonnet 4&lt;/strong&gt; and &lt;strong&gt;Claude Opus 4&lt;/strong&gt;&lt;/a&gt;&lt;em&gt; are now generally available in Visual Studio, offering enhanced and alternate AI capabilities. I would suggest testing Claude Sonnet 4 in Agent Mode for faster, more focused interactions.
Try either Claude Sonnet 4 and Opus 4 in Ask Mode for deeper reasoning of coding issues. &lt;/em&gt;However, I would suggest taking a look at the &lt;a href="https://docs.github.com/en/copilot/concepts/copilot-billing/understanding-and-managing-requests-in-copilot#model-multipliers"&gt;pricing for premium LLMs&lt;/a&gt;, Claude Opus 4 is currently 10x more expensive than Claude Sonnet 4. &lt;p&gt;We’re rapidly approaching the point where picking the right LLM for the task, and the budget, requires its own kind of planning and resource deployment strategy. What, for example, would be more effective: a $200/hour veteran software engineer using a standard model, or a $75/hour rookie armed with a top-tier LLM? My guess is that it will always depend on the situation, but either way, the terrain ahead demands not just adaptation, but a reimagining of how we learn, work, and collaborate alongside with our new crop of tools.&lt;p&gt;&lt;em&gt;&lt;strong&gt;Note:&lt;/strong&gt; Content updated on November 11th&lt;/em&gt;&lt;p&gt;&lt;figure&gt;&lt;a href="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/MCP-server-integration-in-Visual-Studio_CA08/starliner-diner_2.jpg"&gt;&lt;img width="1944" height="1440" title="starliner-diner" class="hero-image" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" alt="starliner-diner" src="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/MCP-server-integration-in-Visual-Studio_CA08/starliner-diner_thumb.jpg" border="0"&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;</description><comments>https://www.poppastring.com/blog/mcp-server-integration-in-visual-studio/comments#comments-start</comments><category>Visual Studio</category></item><item><trackback:ping>https://www.poppastring.com/blog/feed/trackback/fae3cf72-4623-4903-bf91-d9c27b72f9ab</trackback:ping><pingback:server>https://www.poppastring.com/blog/feed/pingback</pingback:server><pingback:target>https://www.poppastring.com/blog/post/fae3cf72-4623-4903-bf91-d9c27b72f9ab</pingback:target><dc:creator /><wfw:comment>https://www.poppastring.com/blog/when-llms-remember-instead-of-reason/comments#comments-start</wfw:comment><wfw:commentRss>https://www.poppastring.com/blog/feed/rss/comments/fae3cf72-4623-4903-bf91-d9c27b72f9ab</wfw:commentRss><title>When LLMs Remember Instead of Reason</title><guid isPermaLink="false">https://www.poppastring.com/blog/post/fae3cf72-4623-4903-bf91-d9c27b72f9ab</guid><link>https://www.poppastring.com/blog/when-llms-remember-instead-of-reason</link><pubDate>Fri, 18 Jul 2025 02:33:24 GMT</pubDate><description>&lt;div&gt;&lt;p&gt;SWE-Bench Verification asserts to be ahigh-quality, human-validated subset of the SWE-Bench benchmark designed to assess LLMs on real-world code-fixing tasks. It comprises several 100 issues, each drawn from public GitHub repositories and confirmed by experts to ensure accuracy. I've admittedly relied heavily on SWE-Bench scores to assess LLM performance without critically examining the benchmark's themselves. It's the kind of passive acceptance of data I'm consciously working to move away from in multiple areas of my life.&lt;/p&gt;&lt;p&gt;I found it fascinating then that a colleague, &lt;a href="https://www.linkedin.com/in/roshanak-zilouchian-757385a/"&gt;Roshanak Zilouchian&lt;/a&gt;, chose to explore the question of how much trust we can place in coding benchmarks. The findings raise important questions about whether current benchmark scores truly reflect generalizable programming abilities. Here is a &lt;a href="https://arxiv.org/pdf/2506.12286"&gt;link to their paper (THE SWE-BENCH ILLUSION: WHEN STATE-OF-THE ART LLMS REMEMBER INSTEAD OF REASON)&lt;/a&gt; and an excerpt from the abstract:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Recent LLMs show impressive performance on SWE-Bench, leading to optimism about their capacity for complex coding tasks. However, current evaluation protocols may overstate these models’ true capabilities. It is crucial to distinguish LLMs’ generalizable problem-solving ability and other learned artifacts … &lt;strong&gt;We present empirical evidence that performance gains on SWE-Bench-Verified may be partially driven by memorization rather than genuine problem-solving.&lt;/strong&gt; We show that state-of-the-art models achieve up to 76% accuracy in identifying buggy file paths using only issue descriptions, without access to repository structure. This performance is merely up to 53% on tasks from repositories not included in SWE-Bench, pointing to possible data contamination or memorization … &lt;strong&gt;These findings raise concerns about the validity of existing results and underscore the need for more robust, contamination resistant benchmarks to reliably evaluate LLMs’ coding abilities.&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;My super pithy take away is as follows:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Models may be recalling specific training examples rather than genuinely reasoning through problems.&lt;/li&gt;&lt;li&gt;Reported gains on SWE-Bench might be overstating the true reasoning capabilities.&lt;/li&gt;&lt;li&gt;High benchmark scores may reflect dataset contamination and biased exposure rather than robust coding skills (when you already know the answer is “C” your hardly need to read the question).&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;In the rush of rapid advancement, it's easy to overlook that today’s evaluations of LLMs in software engineering urgently require rigorous, contamination-resistant benchmarks, ones that truly test for generalization, not just memorization.&lt;/p&gt;&lt;p&gt;&lt;figure&gt;&lt;a href="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/When-State-of-the-Art-LLMs-Remember-Inst_9C92/korean-mask-world-afair-xenia-ohio_2.jpg"&gt;&lt;img width="1400" height="1044" title="Korean mask photographed at a World fair in Xenia Ohio" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" alt="Korean style wooden mask " src="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/When-State-of-the-Art-LLMs-Remember-Inst_9C92/korean-mask-world-afair-xenia-ohio_thumb.jpg" border="0"&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;</description><comments>https://www.poppastring.com/blog/when-llms-remember-instead-of-reason/comments#comments-start</comments><category>LLM</category></item><item><trackback:ping>https://www.poppastring.com/blog/feed/trackback/e4fa5cba-5c7a-4321-a95f-5bcef59f6085</trackback:ping><pingback:server>https://www.poppastring.com/blog/feed/pingback</pingback:server><pingback:target>https://www.poppastring.com/blog/post/e4fa5cba-5c7a-4321-a95f-5bcef59f6085</pingback:target><dc:creator /><wfw:comment>https://www.poppastring.com/blog/solving-for-the-last-mile/comments#comments-start</wfw:comment><wfw:commentRss>https://www.poppastring.com/blog/feed/rss/comments/e4fa5cba-5c7a-4321-a95f-5bcef59f6085</wfw:commentRss><title>Solving for the last mile</title><guid isPermaLink="false">https://www.poppastring.com/blog/post/e4fa5cba-5c7a-4321-a95f-5bcef59f6085</guid><link>https://www.poppastring.com/blog/solving-for-the-last-mile</link><pubDate>Thu, 05 Jun 2025 09:04:39 GMT</pubDate><description>&lt;div&gt;&lt;p&gt;Paul Ford on the &lt;a href="https://aboard.com/the-extremely-human-last-mile/"&gt;&lt;strong&gt;The Extremely Human Last Mile&lt;/strong&gt;&lt;/a&gt;:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;I think the answer is actually really simple, and it’s something I keep mumbling to myself: &lt;strong&gt;AI is great at the first mile because it &lt;/strong&gt;&lt;strong&gt;&lt;em&gt;seems&lt;/em&gt;&lt;/strong&gt;&lt;strong&gt; human, but bad at the last mile because it’s &lt;/strong&gt;&lt;strong&gt;&lt;em&gt;not&lt;/em&gt;&lt;/strong&gt;&lt;strong&gt; human.&lt;/strong&gt;&lt;p&gt;First-mile tasks include “writing a summary,” or “looking for interesting companies in the cannabis space” or “reviewing inbound emails and classifying them in the CRM” or “finding the right SaaS tool for my church-membership drive” or “listing the kind of software components my new online hat store needs”—and for all of these, LLMs often work surprisingly well. They simulate basic human skill sets to differing degrees of talent, and they’re fast, too.&lt;p&gt;But then there’s the last mile. That includes “launching the app at the same time the marketing campaign rolls out in four languages” or “finishing the five-hundred-thousand line migration from COBOL to Java“ or “completing the oral defense of your PhD thesis.” This set of skills might be in reach of AI, but I don’t buy it yet. &lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;The last mile analogy is nearly perfect! While &lt;a href="https://www.sciencenews.org/article/five-challenges-self-driving-cars"&gt;self-driving on highways is generally the most predictable&lt;/a&gt; and structured scenario for autonomous vehicles challenges abound in the final leg of the journey. Parking in the right spot on a private driveway or navigating those unpredictable pedestrians or a traffic cop waving you through a red light. In these moments, context takes precedence over rigid rules, demanding flexibility and intuition that favor humans over our nascent crop of agents. If you're in the business of creating AI products, identifying the environments where this generation of agents can truly excel is the key to driving meaningful customer success.&lt;/p&gt;&lt;p&gt;&lt;figure&gt;&lt;a href="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/7b7b182be843_14133/dc-metro_2.jpg"&gt;&lt;img width="1600" height="1011" title="DC Metro station" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" alt="Wide-angle view of the vaulted concrete ceiling and platform of the Capitol South Washington Metro station, with a train stopped on the right side and passengers boarding and exiting. The scene features the station&amp;rsquo;s iconic Brutalist coffered design and subdued lighting." src="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/7b7b182be843_14133/dc-metro_thumb.jpg" border="0"&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;</description><comments>https://www.poppastring.com/blog/solving-for-the-last-mile/comments#comments-start</comments><category>Artificial Intelligence</category></item><item><trackback:ping>https://www.poppastring.com/blog/feed/trackback/75c6613f-f60f-4189-bb09-c952d3b34ac3</trackback:ping><pingback:server>https://www.poppastring.com/blog/feed/pingback</pingback:server><pingback:target>https://www.poppastring.com/blog/post/75c6613f-f60f-4189-bb09-c952d3b34ac3</pingback:target><dc:creator /><wfw:comment>https://www.poppastring.com/blog/updates-from-build-2025/comments#comments-start</wfw:comment><wfw:commentRss>https://www.poppastring.com/blog/feed/rss/comments/75c6613f-f60f-4189-bb09-c952d3b34ac3</wfw:commentRss><title>Updates from BUILD 2025</title><guid isPermaLink="false">https://www.poppastring.com/blog/post/75c6613f-f60f-4189-bb09-c952d3b34ac3</guid><link>https://www.poppastring.com/blog/updates-from-build-2025</link><pubDate>Sat, 24 May 2025 08:32:02 GMT</pubDate><description>&lt;div&gt;&lt;p&gt;For me, this year's &lt;a href="https://build.microsoft.com"&gt;BUILD&lt;/a&gt; was all about sharing a vision for how the end-to-end developer experience will evolve in the coming years. Naturally, AI was at the center of this discussion, but at its core, we are exploring the tools developers need to not only harness AI but also create even better tools with it in the near future. Jay Parikh, our new EVP of Core AI, shared news focusing on the vital role developers play in helping enterprises successfully embrace AI and digital transformation. One of our key tenets that I was personally pleased to hear articulated is the &lt;a href="https://www.anildash.com/2025/05/20/mcp-web20-20/"&gt;embrace of openness and choice&lt;/a&gt;, recognizing the rapid pace at which this space is evolving.&lt;/p&gt;&lt;p&gt;My aim for this post is a simple one: to highlight key developer updates from Build 2025, including the latest advancements in Visual Studio, VS Code, .NET, and Microsoft Dev Box, as well as must-watch sessions covering AI, development efficiency, and performance optimization. I hope this is helpful.&lt;/p&gt;&lt;h3&gt;Visual Studio&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://devblogs.microsoft.com/visualstudio/visual-studio-2022-v17-14-is-now-generally-available/"&gt;Visual Studio 2022 17.14&lt;/a&gt; now generally available&lt;/li&gt;&lt;li&gt;&lt;a href="https://devblogs.microsoft.com/visualstudio/agent-mode-has-arrived-in-preview-for-visual-studio/"&gt;Agent Mode has arrived in preview for Visual Studio&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;VS Code&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://code.visualstudio.com/blogs/2025/05/12/agent-mode-meets-mcp"&gt;Beyond the tool, adding MCP in VS Code&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://devblogs.microsoft.com/blog/build-apps-and-agents-with-visual-studio-code-and-azure#vs-code-for-the-web-%E2%80%93-azure"&gt;VS Code for the Web&lt;/a&gt; - A zero-install, browser-based development environment that enables you to run, debug, and deploy applications to Azure&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;.NET&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-10/overview"&gt;.NET ships new GA and preview functionality at Build 2025&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Seamlessly upgrade and modernize .NET &amp;amp; &lt;a href="https://devblogs.microsoft.com/java/public-preview-app-mod-java/"&gt;Java codebases with GitHub Copilot&lt;/a&gt; (or Accelerate Your .NET Upgrades with GitHub Copilot)&lt;/li&gt;&lt;li&gt;&lt;a href="https://devblogs.microsoft.com/dotnet/introducing-dotnet-aspire-93/"&gt;.NET Aspire 9.3 is here and enhanced with GitHub Copilot&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://devblogs.microsoft.com/blog/microsoft-partners-with-anthropic-to-create-official-c-sdk-for-model-context-protocol"&gt;Official C# MCP SDK - Available in Preview&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Microsoft Dev Box&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://devblogs.microsoft.com/develop-from-the-cloud/supercharge-ai-development-with-new-ai-powered-features-in-microsoft-dev-box/"&gt;New AI-powered features in Microsoft Dev Box&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Favorite Sessions&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=zfgIy2wXJVY"&gt;Elevating Development with .NET Aspire: AI, Cloud, and Beyond&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=gieL0bxyTUU"&gt;How developers are using AI in the real world&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=VC2UvnXWteQ"&gt;Tips &amp;amp; tricks to enhance Windows Arm64 App performance&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=58TS3PBsMgc"&gt;Debug Like a Pro: Improve Your Efficiency with Visual Studio &amp;amp; Copilot&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=Fq7myF58Odc"&gt;Top GitHub Copilot features you missed in Visual Studio 2022&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=J3IQBI5HVOw"&gt;Yet "Another Highly Technical Talk" with Hanselman and Toub&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=KIFDVOXMNDc"&gt;Scott and Mark Learn to...LIVE&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=CKAs9bRMDcQ"&gt;The Agent Awakens: Collaborative Development with GitHub Copilot&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;figure&gt;&lt;a href="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/2f995042da3e_138BC/eighth-and-pine_2.jpg"&gt;&lt;img width="1400" height="610" title="Eighth &amp;amp; Pine" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" alt="Eighth &amp;amp; Pine written in bronze letters on a side walk." src="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/2f995042da3e_138BC/eighth-and-pine_thumb.jpg" border="0"&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;</description><comments>https://www.poppastring.com/blog/updates-from-build-2025/comments#comments-start</comments><category>Artificial Intelligence</category><category>dotnet</category><category>Visual Studio</category></item><item><trackback:ping>https://www.poppastring.com/blog/feed/trackback/2df33415-08d3-4394-b984-fd0c992a8471</trackback:ping><pingback:server>https://www.poppastring.com/blog/feed/pingback</pingback:server><pingback:target>https://www.poppastring.com/blog/post/2df33415-08d3-4394-b984-fd0c992a8471</pingback:target><dc:creator /><wfw:comment>https://www.poppastring.com/blog/a-kind-of-blue/comments#comments-start</wfw:comment><wfw:commentRss>https://www.poppastring.com/blog/feed/rss/comments/2df33415-08d3-4394-b984-fd0c992a8471</wfw:commentRss><title>A Kind of Blue</title><guid isPermaLink="false">https://www.poppastring.com/blog/post/2df33415-08d3-4394-b984-fd0c992a8471</guid><link>https://www.poppastring.com/blog/a-kind-of-blue</link><pubDate>Sat, 17 May 2025 08:12:09 GMT</pubDate><description>&lt;div&gt;&lt;p&gt;I mostly run the 17.x preview version of Visual Studio which means I have also being using the earliest release of &lt;a href="https://fluent2.microsoft.design/design-principles"&gt;Fluent UI Refresh&lt;/a&gt; experience. Note: &lt;a href="https://devblogs.microsoft.com/visualstudio/a-first-look-at-the-all%e2%80%91new-ux-in-visual-studio-2026/"&gt;Fluent is now on by default for Visual Studio 2026+&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;The new themes are &lt;a href="https://www.microsoft.com/edge/learning-center/browser-themes"&gt;inspired by Microsoft Edge&lt;/a&gt; and has what our designers call a “tinted” appearance, this gives us access to a new look beyond the rudimentary Dark, Light (and Blue) theming. Here is the list of themes available as of today:-&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Light&lt;/li&gt;&lt;li&gt;Dark&lt;/li&gt;&lt;li&gt;Bubblegum&lt;/li&gt;&lt;li&gt;Cool Breeze&lt;/li&gt;&lt;li&gt;Cool Slate&lt;/li&gt;&lt;li&gt;Icy Mint&lt;/li&gt;&lt;li&gt;Juicy Plum&lt;/li&gt;&lt;li&gt;Mango Paradise&lt;/li&gt;&lt;li&gt;Moonlight Glow&lt;/li&gt;&lt;li&gt;Mystical Forest&lt;/li&gt;&lt;li&gt;Silky Pink&lt;/li&gt;&lt;li&gt;Spicy Red&lt;/li&gt;&lt;li&gt;Sunny day&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;I love the names, but do note there is no &lt;strong&gt;Blue&lt;/strong&gt; theme, and that ultimately comes down to our focus on three pillars: cohesiveness, productivity and accessibility. To put this simply the Blue theme simply did not meet our accessibility standards, so while I imagine there will be an alternative on the &lt;a href="https://marketplace.visualstudio.com/search?term=theme&amp;amp;target=VS&amp;amp;category=Tools&amp;amp;vsVersion=&amp;amp;subCategory=Themes&amp;amp;sortBy=Relevance"&gt;market place&lt;/a&gt; I am not expecting it to be official. That said I am personally digging &lt;strong&gt;Cool Breeze,&lt;/strong&gt; and &lt;strong&gt;Moonlight Glow&lt;/strong&gt; more than adequately fills my gap for a kind of blue.&lt;/p&gt;&lt;p&gt;If you’re looking to bring a touch of blue into your editor, here are a couple of themes worth trying:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=poppastring.AKindOfBlue"&gt;A Kind of Blue Theme Pack&lt;/a&gt; — Contains three calm, jazz-inspired themes. 
&lt;li&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=MadsKristensen.BlueSteel"&gt;Blue Steel&lt;/a&gt; — A sharper, cooler take on blue tones. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;I hope this helps.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Updated: 11/27/2025&lt;/strong&gt;&lt;/p&gt;&lt;figure&gt;&lt;a href="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/A-Kind-of-Blue_137EE/scioto-audubon-metro-park_2.jpg"&gt;&lt;img width="1400" height="907" title="Scioto Audubon Metro Park" style="border: 0px currentcolor; border-image: none; display: inline; background-image: none;" alt="An upward view of a red water contrasted against a blue sky." src="https://www.poppastring.com/blog/content/binary/Open-Live-Writer/A-Kind-of-Blue_137EE/scioto-audubon-metro-park_thumb.jpg" border="0"&gt;&lt;/a&gt;&lt;/figure&gt;&lt;/div&gt;</description><comments>https://www.poppastring.com/blog/a-kind-of-blue/comments#comments-start</comments><category>Visual Studio</category></item></channel></rss>