Sr. Content Developer at Microsoft, working remotely in PA, TechBash conference organizer, former Microsoft MVP, Husband, Dad and Geek.
163903 stories
·
33 followers

Abundant Intelligence at the Midwest AI Summit

1 Share

In this special episode, we bring you highlights from three talks at the Midwest AI Summit. Heidi Porter explores how to build reliable AI-augmented workflows using the right tools, evaluations, and guardrails. Kevin Solorio shares why building AI with frontline workers, not just for them, is key to earning trust and driving adoption, emphasizing collaboration and continuous feedback. And Chris Shinkle and Andrew Dunlap of SEP discuss how software teams can find the right level of AI autonomy based on their goals, constraints, and verification needs, sharing lessons from teams using AI to build software more effectively.

Featuring: 

Links:

Sponsors:

  • Hostinger: Create your website today. Go to hostinger.com/practical and use practical for 10 percent off now.

Resources and Events:

Chris’s new book The Art of Swarming will be published soon, written to be the seminal foundational book for the fledgling swarming industry, defining the principles and architecture that enable autonomous agentic UxS swarms with emergent unified embodied intelligence.





Download audio: https://pscrb.fm/rss/p/dts.podtrac.com/redirect.mp3/media.transistor.fm/37a0c3e9/eecd5cc2.mp3
Read the whole story
alvinashcraft
35 minutes ago
reply
Pennsylvania, USA
Share this story
Delete

Make Machines Smarter with Physical AI

1 Share
From: Microsoft Developer
Duration: 4:08
Views: 196

IoT tells you what happened, industrial AI tells you what should happen next, and physical AI makes it happen. Unlike traditional automation, physical AI gets smarter with every execution, creating learning loops for the complex tasks machines already do.
Michael MacKenzie, Vice President of Product Management for Azure IoT and Digital Operations at Microsoft, explains how the pieces fit. Azure IoT Hub connects and updates devices at global scale, Azure IoT Operations curates data and runs inference in operational technology environments, and Azure Device Registry lets IT teams apply policy, role-based access control, and certificate management to OT devices.

Resources
Learn more: https://azure.microsoft.com/solutions/iot
Explore more Essential resources! https://azure.com/AzureEssentials

Connect
- Michael Mackenzie https://www.linkedin.com/in/michael-b-mackenzie

Chapters
0:00 What IoT gave businesses in the physical world
0:40 Why dashboards alone don't make machines smarter
1:05 How IoT, industrial AI, and physical AI work together
1:35 When to use Azure IoT Hub and Azure IoT Operations
2:20 How Azure Device Registry bridges IT and OT
3:05 How physical AI learns with every execution

Read the whole story
alvinashcraft
35 minutes ago
reply
Pennsylvania, USA
Share this story
Delete

Building System Tray Windows Apps with Joe Finney

1 Share
It's Tray-Tober! Carl and Richard talk to Joe Finney about his latest project - building small, useful Windows apps that live in the system tray. Joe talks about his original project inspiration, Radio Tray - a way to have internet radio playing on his PC without creating a whole browser instance, because he needs that memory for AI! The conversation digs into how code is no longer the barrier to building; it's all about good ideas. What could the system tray do for you? Tray-Tober is about finding out - check out Tray Land on GitHub!



Download audio: https://dts.podtrac.com/redirect.mp3/api.spreaker.com/download/episode/75704076/dotnetrocks_2026_building_system_tray_windows_apps.mp3
Read the whole story
alvinashcraft
35 minutes ago
reply
Pennsylvania, USA
Share this story
Delete

Serverless Compute Operations with Azure Functions

1 Share

I'm pleased to announce that my latest Pluralsight course, "Azure Serverless Compute Operations", is now available. In it I cover how to implement, configure, deploy and monitor Azure Functions applications.

Serverless Functions and Workflows in Azure

Azure Functions has been around for a while now and regular readers of my blog will know that it is one of my favourite Azure services (I've also created several other Pluralsight courses on it, most recently my Azure Functions Deep Dive). Its straightforward programming model with easy integrations and bindings to other Azure services makes it the obvious choice for many event-driven scenarios - whether all you need is a couple of scheduled jobs, or you want to handle high volumes of messages.

The serverless hosting model offers the benefits of being very cost-effective and supporting rapid and dynamic scaling. But it's not necessarily the right choice for every application, so one thing I really appreciate about Azure Functions is that you don't have to choose between the benefits of serverless versus having some always-ready instances. The Flex Consumption hosting plan gives you the freedom to choose what makes the most sense for your application.

Perhaps my favourite feature of Azure Functions is Durable Functions, which provides a way to create reliable, observable workflows with clear orchestration that solves many of the problems you can run into if you simply rely on chaining together message handlers (the "choreography" approach). It does take a bit of learning, but it opens up new workflow patterns (such as fan-out and fan-in), and gives you much more visibility and control if things go wrong. I've written about this before in The Case for Durable Workflows.

What's in the Course

Here's a quick overview of what I cover in the course...

I start with implementing Azure Functions, where I show how to get set up for development, create a new function app, and create timer, blob and queue triggered functions.

In understanding serverless I explain the various Azure Functions hosting plans and their trade-offs, and discuss the benefits of using Durable Functions for serverless workflows.

I then move on to deploying Azure Functions, showing how to use Bicep and the Azure CLI to deploy a Flex Consumption plan and its associated resources, and then how to publish your code, test your function and update your app.

Finally, I cover operating Azure Functions, where I demonstrate how to monitor with Azure Monitor, configure scaling, and handle various kinds of failure (including in Durable Functions), as well as showing some troubleshooting tips for dealing with permissions issues and how to set up more secure connections using managed identities and RBAC.

So if you're a Pluralsight subscriber, do check out Azure Serverless Compute Operations.

Read the whole story
alvinashcraft
35 minutes ago
reply
Pennsylvania, USA
Share this story
Delete

Dev preview v0.103.3012.0

1 Share

Dev preview v0.103.3012.0

PowerToys 0.103.3012.0 is a development preview from main, containing 19 merged pull requests since v0.103.3006. This prerelease is intended for testing ahead of the next stable release.

Installer Hashes

Description Filename sha256 hash
Per user - x64 PowerToysUserSetup-0.103.3012.0-x64.exe 70B0CB57F75B7817E4FECE4F67737F17AC402C6824CD825E135BA89D629F684E
Per user - ARM64 PowerToysUserSetup-0.103.3012.0-arm64.exe 779FAE3A3E544F37EAA668DCAA03D85C91781DD8E93D23B746DE2FE279590360
Machine wide - x64 PowerToysSetup-0.103.3012.0-x64.exe A7528319E0E4F439052FB67399BDD08E240D09096AD6B8FF94232B3B529E3AD1
Machine wide - ARM64 PowerToysSetup-0.103.3012.0-arm64.exe 149FE79B513942EFC15B571B943AC5512F7F4813D196906DC42CC82CB2C26AC2

Highlights

  • Settings: Check for updates now performs a fresh check from the General page instead of showing an older saved result.
  • Settings: Unchecked boxes no longer show ghost checkmarks after their settings group is disabled and re-enabled.
  • Settings: What's new automatically retries loading release notes after transient network failures.
  • Image Resizer: The CLI now honors --filename on its first run with a fresh profile.
  • FancyZones and Image Resizer: Invalid numeric CLI arguments now produce parse errors instead of crashes.
  • Mouse Without Borders: Kept clipboard helper handoffs within the active session, including through network socket restarts.
  • ZoomIt: Improved DemoType clipboard text loading for unexpected text layouts and sizes.
  • Command Palette: Logs now include exit and restart reasons to help troubleshoot shutdowns.

Command Palette

  • Added exit and restart reasons to Command Palette logs to make shutdown troubleshooting easier in #51363.

FancyZones and Image Resizer

  • Fixed the FancyZones and Image Resizer CLIs crashing on non-numeric monitor, size, or quality values; they now report normal parse errors and exit with code 1 in #51322.

General

  • Prevented NuGet build caches from accumulating obsolete package versions by using fresh cache keys without fallback restores in #51593.
  • Moved CodeQL scanning to a dedicated nightly pipeline instead of running it in every CI build in #51604.
  • Updated the MessagePack dependency from 3.1.7 to 3.1.9 in #51644.

Image Resizer

  • Fixed the Image Resizer CLI ignoring --filename on its first run with a fresh profile in #51320.

Mouse Without Borders

  • Improved clipboard helper coordination with the active desktop session and kept its channel alive across network socket restarts in #51511.

Settings

  • Fixed unchecked Settings checkboxes showing a ghost checkmark after their settings group is disabled and re-enabled, without changing saved values in #50626 by @T03N.
  • Added automatic retries for transient What's new release-note loading failures, so brief network interruptions no longer immediately show an error in #51480.
  • Fixed the General page's Check for updates button to perform a fresh update check instead of showing a previously saved result in #51605.

ZoomIt

  • Improved DemoType clipboard text loading for unexpected text layouts and sizes while preserving existing prefix-matching behavior in #51512.

Development

  • Updated the developer-documentation website deployment action to actions/deploy-pages 5.0.1 in #50513.
  • Updated the GitHub Agentic Workflows setup action used by issue triage to 0.89.21 in #50954.
  • Pinned the GitHub Script action used by the dedupe digest workflow to a specific v9.0.0 commit in #50955.
  • Introduced explicit in-process object wrappers in Command Palette to clarify ownership and simplify maintenance in #51513.
  • Reduced UI-test artifact downloads to the selected suites and added smoke-test coverage for shared UI-test pipeline changes in #51370.
  • Staged additional Mouse Jump library code for future capture and rendering work, without enabling new user-facing functionality in this preview in #50539 by @mikeclayton.
  • Updated collection checks across PowerToys Run, FancyZones, Workspaces, and Environment Variables tests to satisfy the CA1860 analyzer in #51621.
  • Replaced manual native handle and memory cleanup with scoped ownership across Runner, Workspaces, ZoomIt, and shared IPC utilities in #51325.
Read the whole story
alvinashcraft
35 minutes ago
reply
Pennsylvania, USA
Share this story
Delete

You can just ask AI to do things

1 Share

One of the most important skills in working with AI is agency: being willing to try new and ambitious things. This is true for what you build, but it’s also true for how you build. AI models are improving so quickly that most of us are bottlenecked1 on noticing that AI agents can help automate particular tasks. Here are some examples of that from my daily work.

Asking the agent to run my dev server. Agents are very good at fixing weird dev environment issues because they work fast, have infinite patience, and have a huge breadth of knowledge. I almost never run the bash commands to start my dev server anymore.

Asking the agent to make requests to my dev server. Part of why I don’t run my dev server manually is that I don’t make requests to it manually either. Instead I’ll say “okay, now start the dev server and run through the happy paths with curl”. The relatively manual process of assembling a set of curl requests and validating the output can now be entirely automated2.

Asking the agent to watch as I make a production change. Every time I do a deploy or flip feature flags, I ask an agent to poll metrics and logs before and after the change. Agents can ingest more logs than I can and are much more patient than me (for instance, I routinely ask for an hourly poll over the rest of the day, which I would not do for most changes on my own).

Asking the agent to get a second opinion from other models. My daily driver is Claude Opus 5.5, which is a good model, but it’s not strictly better than GPT-6-Astra or Gemini Argon3. After I’ve come up with a code change, I typically will say4 “please open subagents to get Astra and Argon’s opinion”. This is made easier by the fact that GitHub Copilot5 has all the top models built in, but I suspect it’d be straightforward enough to ask Claude Code to run a headless Codex session if you’ve got subscriptions to both.

Asking the agent to do a pre-work pass through all my unread messages, logs, and so on. This is one of the most useful things I do, since I work in Australia and my American colleagues start hours before I wake up. I have a scheduled job at 6am every day for an agent to comb through unread messages, identify ones that are asking me questions or have problems I should look at, and do preliminary research (e.g. looking up relevant log lines). That way I can start my workday by scanning that report, which is a big improvement over having to collate everything myself6.

Asking the agent to improve itself. One blocker to a lot of these flows is the pain of setting up the right logs and metrics and Slack MCP servers7, or writing the skills, and so on. But in fact the agent can do all of this itself! Just as it can solve weird problems with your dev server, it can solve weird problems with its own setup. You just have to generate API keys and paste them in the right spots.

Asking the agent to manage its own sessions. If you use a desktop agent tool like GitHub Copilot (or the ChatGPT app, or Claude Code desktop, etc), you will rapidly end up with a spiderweb of sessions and subsessions. It can be tough to identify what are the threads worth picking up. Fortunately, the agent can do this for you as well. I routinely ask it to clear away sessions that haven’t had activity in the last 24 hours, or to catalog my open sessions and suggest ones that can be archived, and so on.

I don’t ask the agent to do everything. I write my own messages and reports (barring some appendices), I make my own design decisions, and I review code myself. This is partly because I think I’m better than models at some of these tasks, and partly because I’m responsible for some of these tasks, so I ought to make the decisions myself. I decide what to work on, and I tend to be ruthless with agent suggestions: of a suggested list of twenty tasks, I’ll often pick zero or one.

However, I do find myself asking the agent to do more and more for me. Often the realization strikes me as obvious: I’ll be doing some mildly tedious task for the hundredth time and think8 “oh wait, I could just get a model to do this for me”, then I’ll never do the task by hand again.


  1. As I’ve said before, I think that model progress could stall out today and we’d still see huge improvements for at least a year as we learn how to use the models we’ve got more effectively.

    ↩
  2. Why not just have integration tests? Well, often you don’t want to run the same set of operations every time, or you want to jimmy your dev server in order to test some failure mode (e.g. replacing your Redis client with a deliberately broken Redis client).

    ↩
  3. I haven’t tried Carbon yet.

    ↩
  4. I will then either scan the top-line feedback from those models myself or let my main agent session incorporate the feedback (depending on how risky the change is).

    ↩
  5. I work on GitHub Copilot. If you think I have a conflict of interest here, substitute your preferred multi-model agentic coding tool.

    ↩
  6. I do still read all my unread messages manually. Once I get confident enough in this pre-work report stuff I might stop doing that — it’s a lot of messages.

    ↩
  7. Some people might not trust the models with Slack or log data, which is fair enough. But if you do, a lot of things get a lot easier.

    ↩
  8. Or I’ll see someone else getting an agent to do it and realize I could just do the same. I hope one or two of the points in this post can help other people come to that realization.

    ↩
Read the whole story
alvinashcraft
36 minutes ago
reply
Pennsylvania, USA
Share this story
Delete
Next Page of Stories