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

Leanpub Book Launch: De-Enshittify Windows 11 by Paul Thurrott

1 Share

Welcome to the Leanpub Launch video for De-Enshittify Windows 11: How to make Windows 11 work for you, not against you by Paul Thurrott!

The post Leanpub Book Launch: De-Enshittify Windows 11 by Paul Thurrott appeared first on Thurrott.com.

Read the whole story
alvinashcraft
just a second ago
reply
Pennsylvania, USA
Share this story
Delete

GPT-5.4 First Test Results

1 Share
From: AIDailyBrief
Duration: 24:07
Views: 2,473

OpenAI's GPT-5.4 consolidates advances in reasoning, coding, and agentic workflows while adding a 1 million-token context window and native desktop/computer-use capabilities. Benchmarks show major gains for professional knowledge work and automation: faster, more token-efficient reasoning; improved tool calling via toolsearch; and desktop navigation with higher accuracy than human baselines. Real-world testing highlights exceptional coding and long-form writing abilities alongside persistent issues in frontend taste, excessive verbosity, and occasional premature task completion.

The AI Daily Brief helps you understand the most important news and discussions in AI.
Subscribe to the podcast version of The AI Daily Brief wherever you listen: https://pod.link/1680633614
Get it ad free at http://patreon.com/aidailybrief
Learn more about the show https://aidailybrief.ai/

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

Announcing Ionic Framework 8.8

1 Share

We’re excited to announce the release of Ionic Framework 8.8! This update makes customizing components easier and more flexible by adding new CSS classes, exposing internal elements through CSS Shadow Parts, and introducing new events for the Modal and Refresher components.

Many of the features in this release support community-driven projects adapting Ionic Framework to implement both the latest iOS design system (Liquid Glass) and a Material Design 3 theme, giving developers the tools to create modern, fully branded design systems.

Take a look at the new features that make customizing Ionic Framework simpler and more flexible. ⤵

🫳 New Drag Events for Sheet & Card Modals

Modals now expose new drag events that let you hook into the complete drag lifecycle. With detailed movement data available, you can respond to position, velocity, progress, and breakpoint changes in real time, enabling richer, more interactive experiences.

New Events

  • ionDragStart — fires at the start of the drag gesture without any details
  • ionDragMove — fires continuously while the modal is being dragged with currentY, deltaY, velocityY, progress, and, for sheet modals, snapBreakpoint
  • ionDragEnd — fires at the end of the drag gesture with currentY, deltaY, velocityY, progress, and, for sheet modals, snapBreakpoint

These events make it possible to coordinate surrounding UI with the gesture. As the modal moves, you can reveal or conceal headers, footers, tab bars, or other interface elements, adjust layout and styling based on progress, and react instantly as the modal shifts position or approaches a breakpoint.

For more information, refer to the Modal documentation.

🎢 Enhanced Dual Knob Support in Range

Range now includes significant improvements to dual knob behavior, bringing more predictable interactions and powerful new styling capabilities.

We fixed an issue where knob identities (A and B) would unintentionally swap when crossing over each other. Knobs now retain their static identity, ensuring consistent behavior and styling.

Beyond behavior improvements, Range now exposes additional host classes and Shadow Parts when dualKnobs is enabled, giving you complete control over styling and interaction states.

New Host Classes

When dualKnobs is enabled, the following classes will be applied to the host element:

  • range-dual-knobs — always applied
  • range-pressed-a — applied when the knob with identity A is pressed
  • range-pressed-b — applied when the knob with identity B is pressed
  • range-pressed-lower — applied when the knob with position lower is pressed
  • range-pressed-upper — applied when the knob with position upper is pressed

These classes allow you to style the component based on the existence of the dualKnobs property and which knob is currently being interacted with.

New Shadow Parts

Dual knob ranges now support two styling models:

Static Identity (A / B)
These parts always refer to the same physical knob, even if the knobs cross.

  • knob-handle-a, knob-handle-b — applied to the handle of the knob with identity A or B, respectively
  • knob-a, knob-b — applied to the knob itself with identity A or B
  • pin-a, pin-b — applied to the pin of the knob with identity A or B

Dynamic Position (Lower / Upper)
These parts reflect the knob’s current value position. If the knobs cross, these parts swap automatically.

  • knob-handle-lower, knob-handle-upper — applied to the knob handle in the lower or upper position, respectively
  • knob-lower, knob-upper — applied to the knob itself in the lower or upper position
  • pin-lower, pin-upper — applied to the pin of the knob in the lower or upper position

This makes it possible to style knobs either by consistent identity or by their relative position within the range.

New State Parts

To support advanced interaction styling, Range now applies state parts to the active knob’s handle, knob, and pin:

  • activated — applied when the knob is active
  • focused — applied when the knob is focused
  • hover — applied when the knob is hovered
  • pressed — applied when the knob is being pressed

Only one set of these state parts is applied at a time when dualKnobs is enabled, ensuring only the knob that has that state will be styled.

These updates make dual knob ranges more reliable, more accessible, and significantly more customizable. Build advanced filtering controls, price selectors, or ranges fully branded to match your design system.

For more information, refer to the Range documentation.

🔄 New Pull Events for Refresher

Refresher now emits two new events that give more visibility into the pull gesture lifecycle, letting you respond to user interactions in real time. You can detect exactly when a user starts pulling, and when the refresher has fully returned to its inactive state, including whether the pull completed successfully or was canceled.

New Events

  • ionPullStart — fires when the user begins pulling down, without any details
  • ionPullEnd — fires after the refresher returns to its inactive state, with a reason property ('complete' or 'cancel') indicating how the pull gesture ended

Deprecated Event

ionStart has been deprecated in favor of ionPullStart to improve consistency across event names. Going forward, event names follow a structure of action + timing (such as Start, Move, or End) to make their purpose more explicit and to allow for better scalability as new events are added.

The event payload is unchanged, so migrating only requires updating the event name.

Example Migration:

// Before
refresher.addEventListener('ionStart', () => {
  console.log('Pull Start');
});

// After
refresher.addEventListener('ionPullStart', () => {
  console.log('Pull Start');
});

For more information, refer to the Refresher documentation.

🎨 New CSS Shadow Parts and Classes

We’ve introduced several new CSS Shadow Parts and classes to provide granular control over component internals previously inaccessible via global CSS.

Content

The .content-fullscreen class is now added to ion-content when the fullscreen property is set to true.

Datetime

The following Shadow Parts give developers control over the headers and calendar elements in the Datetime component:

  • calendar-days-of-week — container for the day-of-the-week header (both weekdays and weekends) when using a grid style layout
  • calendar-header — container for the month/year picker, navigation buttons, and days of the week in a grid layout
  • datetime-header — contains the content for the title slot and the selected date
  • datetime-selected-date — contains the selected date
  • datetime-title — contains the title slot content
  • navigation-button — buttons used to navigate to the next or previous month in grid layout
  • previous-button — button used to navigate to the previous month in grid layout
  • next-button — button used to navigate to the next month in grid layout
  • wheel — wheel container when using a wheel style layout or in the month/year picker in grid layout

Item & List Components

To provide greater flexibility in customizing the appearance and structure of list elements, the following Shadow Parts have been added for Item, Item Divider, Item Option, and List Header components:

Item

  • inner — arranges the item content
  • container — contains the default slot

Item Divider

  • inner — arranges the divider content
  • container — contains the default slot

Item Option

  • inner — arranges the option content
  • container — contains the start, icon-only, default, and end slots

List Header

  • inner — arranges the list header content

Range

The .range-value-min and .range-value-max classes are applied to ion-range when the value reaches the configured min or max. When dualKnobs is enabled, both classes may be applied at the same time if the lower and upper knobs are set to the minimum and maximum values, respectively.

Select

The following Shadow Parts allow developers to adjust the appearance of the Select component:

  • bottom — container for helper text, error text, and counter
  • wrapper — clickable label element wrapping the entire form field
  • inner — manages the slots, selected values or placeholder, and toggle icons

Toast

The following Shadow Parts enable customization of the Toast overlay and its content:

  • wrapper — outer wrapper for the toast overlay
  • content — live region containing the header and message

✨ New and Updated Properties

Segment View

A new swipeGesture property has been added to Segment View to control whether the view can be swiped.

This setting is independent of the swipeGesture property on Segment. If you want to fully disable swiping, you must set swipeGesture to "false" on both the Segment and Segment View components.

Select

A new cancelText property has been added to the modal interface for Select.

When using interface="modal", developers can now customize the cancel button text by setting the cancelText property on ion-select. The value will be passed through to the underlying modal.

<ion-select label="Fruit" interface="modal" value="bananas" cancel-text="Close me">
  <ion-select-option value="apples">Apples</ion-select-option>
  <ion-select-option value="bananas">Bananas</ion-select-option>
  <ion-select-option value="oranges">Oranges</ion-select-option>
</ion-select>

Textarea

The disabled and readonly properties on Textarea now reflect to the host element.

When either property is set, the corresponding HTML attribute is applied to the component’s host element. This improves consistency with native behavior and enables styling via attribute selectors.

🅰 Angular Injector Support

ModalController and PopoverController in Angular now support passing a custom Injector when creating overlays.

By default, overlays use the root injector for dependency injection. With this update, you can provide a custom injector so that components rendered inside a modal or popover can access services and tokens that are scoped to a specific route or component tree.

This is especially useful when:

  • Using route-scoped services
  • Providing Angular CDK’s Dir directive for bidirectional text support
  • Accessing providers that are not registered at the root level

You can pass the current component’s injector directly:

const modal = await this.modalController.create({
  component: MyModalComponent,
  injector: this.injector,
});

Or create a custom injector with specific providers:

const customInjector = Injector.create({
  providers: [{ provide: MyService, useValue: myServiceInstance }],
  parent: this.injector,
});

const modal = await this.modalController.create({
  component: MyModalComponent,
  injector: customInjector,
});

PopoverController supports the same injector option.

This enhancement removes the need for wrapper components or other workarounds when overlays need access to locally scoped dependencies.

Check out the Angular Overlays documentation for more information.

🧩 Stencil Update

Stencil has been updated from v4.38 to v4.43. This update includes various compiler improvements and bug fixes. For a complete list of changes, check out the Stencil Changelog.

As with any dependency update, if you encounter issues related to this Stencil upgrade, please open a new issue so we can investigate.

🔮 Looking Ahead: Ionic Framework 9

Ionic Framework 8.8 marks the final minor release in the Ionic 8 lifecycle. As we look ahead, our focus is shifting to the next major evolution of the framework: Ionic Framework 9.

Modular Ionic

Ionic Framework 9 will introduce significant architectural changes aimed at making the framework more modular and easier to extend. These changes lay the foundation for greater flexibility in how developers customize and build on top of Ionic Framework.

One of the main areas to benefit from Ionic Framework 9’s new architecture is theming. Developers will be able to:

  • Create and distribute custom themes without modifying the core framework
  • Share reusable themes across projects
  • Configure component behavior based on the theme
  • Build themes inspired by design systems such as Liquid Glass

While we are not planning to ship an official Liquid Glass theme right now, the goal is to provide the underlying architecture that enables developers to implement these types of design systems themselves without waiting on us.

React Router Support

Ionic Framework 9 will add support for React Router 6, enabling developers to adopt modern React routing patterns. This update lays the groundwork for future support of React Router 7. We’ll share more details on this soon.


Ionic Framework 8.8 enhances customization today while also paving the way for the modular architecture and React Router 6 support coming in Ionic Framework 9. We can’t wait to see what you build with it! 🚀

The post Announcing Ionic Framework 8.8 appeared first on Ionic Blog.

Read the whole story
alvinashcraft
52 seconds ago
reply
Pennsylvania, USA
Share this story
Delete

Prepare your add-in for Outlook ribbon improvements

1 Share

We’re improving how add-ins appear on the ribbon in Outlook on the web and the new Outlook on Windows. These Outlook ribbon updates make add-ins easier to find and align the experience across Outlook clients. Improvements include:

  • Showing the group name specified in your manifest for the add-in’s ribbon button (instead of the add-in name from Microsoft Marketplace).
  • Adding a dropdown next to the add-in button for quick access to the add-in’s commands.
  • Adding a similar dropdown in the overflow menu.

outlook ribbon improvements image

To make sure your add-in shows the intended group name when these updates take effect, review your manifest and update the group label if needed. Where the group name is specified depends on the type of manifest your add-in uses.

"extensions": [
  {
    …
    "ribbons": [
      {
        …
        "tabs": [
          {
            …
            "groups": [
              {
                "id": "msgComposeCmdGroup",
                "label": "Contoso Add-in",
                …
              }
            ]
          }
        ]
      }
    ]
  }
]
<ExtensionPoint xsi:type="MessageComposeCommandSurface">
    <OfficeTab id="TabDefault">
        <Group id="msgComposeCmdGroup">
            <Label resid="GroupLabel"/>
            …
        </Group>
    </OfficeTab>
</ExtensionPoint>
…
<Resources>
  …
  <bt:ShortStrings>
    <bt:String id="GroupLabel" DefaultValue="Contoso Add-in"/>
  </bt:ShortStrings>
</Resources>

To learn more about these ribbon updates, watch the February 2026 recording of the Office Add-ins community call.

The post Prepare your add-in for Outlook ribbon improvements appeared first on Microsoft 365 Developer Blog.

Read the whole story
alvinashcraft
1 minute ago
reply
Pennsylvania, USA
Share this story
Delete

Available today: GPT-5.4 Thinking in Microsoft 365 Copilot

1 Share

Today, we’re bringing OpenAI’s GPT5.4 Thinking to Microsoft 365 Copilot and Microsoft Copilot Studio—available in addition to the recent GPT-5.3 Instant update. With GPT5.4 Thinking, Copilot can think deeper on complex work by combining advances in reasoning, coding, and agentic workflows—helping it work through technical prompts and longer tasks with higher-quality outputs, and less back-and-forth. Work IQ brings relevant work context into Copilot so it can reason, personalize, and help you turn deeper thinking into context-aware drafts, slides, and spreadsheets. 

We are committed to bringing you the latest cutting-edge AI innovation and model choice built for work and tailored to your business needs—with the security, compliance, and privacy that you expect from Microsoft.  

Get started today 

GPT-5.4 Thinking is now available in Copilot Studio early release cycle environments and begins rolling out today to Microsoft 365 Copilot users with priority access and Microsoft 365 Copilot Chat users with standard access. Learn more about standard versus priority access here.  

 

In Copilot Chat, you can select GPT‑5.4 Think deeper from the model selector under More, and in Copilot Studio you can select GPT‑5.4 Reasoning.

Our team will continue to refine the experience based on your feedback. Learn more about Microsoft 365 Copilot and Microsoft Copilot Studio and start transforming work with Copilot today. For model details, learn more about GPT-5.4 Thinking here.

For the latest research insights on the future of work and generative AI, visit WorkLab.

Read the whole story
alvinashcraft
1 minute ago
reply
Pennsylvania, USA
Share this story
Delete

The economics of enterprise AI: What the Forrester TEI study reveals about Microsoft Foundry

1 Share

Leaders are chasing the AI frontier, reimagining business systems as human-led and agent-operated. To do this, customers are on the hunt for smarter models, more capable agents, and market-ready solutions to operationalize AI workflows.

When Forrester modeled the economics of enterprise AI with Microsoft Foundry, the biggest driver behind the 327% ROI over three years1 was surprising: developer productivity, worth $15.7 million over the same period.

The study showed that the bottleneck to ROI can be removed by enabling developers to focus on what matters.

The hidden tax on your AI investment

In most organizations, senior engineers spend a third of their time on undifferentiated work: stitching together fragmented tools, recreating context pipelines, and navigating bespoke governance processes. None of that is competitive advantage for firms—it’s a tax on every AI initiative.

According to Forrester, organizations using Foundry avoided much of this work, improving technical team productivity up to 35%. Teams using Foundry to develop AI apps and agents saw payback in as few as six months and with benefits accelerating year over year1.

The details: What the Forrester study found

Forrester interviewed 10 decision-makers at five organizations and surveyed 154 other decision-makers and AI leaders across the U.S. and Europe with experience using Microsoft Foundry. They modeled a composite enterprise with $10 billion revenue, 25,000 employees, and 100 technical staff using Foundry. To model conservative estimates, benefits were adjusted downward and costs upward; the results reflect the composite enterprise.

Figure 1: Survey results and reported benefits

When asked “What benefits has your organization experienced with Microsoft Foundry?”, respondents cited operational outcomes:

Forrester found that platform investments compound in value. For a team that invests $11.6M in resources, the three-year present value of quantified benefits for the composite organization totaled $49.5M: Year one delivered $10.0M, year two $21.1M, year three $30.5M.

Figure 2: Benefits breakdown

When every project starts from scratch

AI initiatives will require models, enterprise knowledge, tools, and governance. Without a shared platform, teams will encounter toil. With enterprise knowledge as the example, for every AI project, teams need to create vector databases, RAG pipelines, integrations, and access-control rules, creating internal infrastructure that does not directly influence business outcomes.

With Foundry, teams develop AI applications and agents on a unified, interoperable AI platform designed to enable agents to be intelligent and trustworthy: with reusable knowledge bases on data anywhere in the enterprise, protected by built-in evaluations, and agent controls. In Forrester’s TEI study, 75% of teams cited easier model grounding or knowledge source integration with Foundry IQ.

Over three years, the productivity gain alone was worth up to $15.7 million1. One Foundry customer said,

Our developers can go super fast because they can get what they need in Microsoft Foundry … We estimate that we reduce overall development time by 30%–40%.

—Global head of technology platforms, professional services

Organizations saw compounding returns when they built once and reuse everywhere with shared templates, knowledge bases, standardized evaluations, and consistent governance. This helps to explain a counterintuitive finding: organizations that focused energy consolidating on a unified platform outperformed those which did not. Their execution is simpler and therefore stronger.

The need for platform thinking

Point solutions develop in enterprises over time. Each solves a narrow problem, but each also introduces its own governance layer, context pipeline, and integration surface. The hidden cost here builds up in the stitching between these solutions.

In the Forrester study, 32% of surveyed organizations that adopted Foundry were able to decrease costs by decommissioning legacy AI tools, and the composite organization avoided up to $4.3M in infrastructure costs over three years by eliminating duplicative workflows, integrations, and operational overhead. For example, one customer shared they were able to decommission their container-based infrastructure and eliminate spending on previous AI model development tools since the functionality was included in the Foundry platform:

One of the benefits of using Foundry versus taking those models and running them in containers in the cloud is that then you don’t have to manage the container infrastructure.

—Managing director and global head of co-innovation, professional services

Department-level budgets favor point solutions, but enterprise-level outcomes require platform thinking. That mismatch is why AI spend often fails to translate into sustained value as organizations shift from isolated pilots to scaled deployments.

Trust unlocks higher-impact work

Most enterprises start with internal-facing AI use cases before they shift to customer-facing solutions. Two-thirds of AI agents today focus on process automation, while one-third support direct human assistance1. The ratio matters. Most enterprises need to trust AI with bounded, auditable tasks before they can trust it to enhance human judgment.

Foundry Control Plane enables organizations to govern the AI lifecycle with organization-wide observability and controls. This includes centrally managed policies for model deployment, configurable guardrails, and continuous evaluations to see what’s running, fix what’s failing, and prove compliance across any environment.

Model scanning done by Microsoft on the models … is a key requirement for us. … we want to make sure we understand what the model contains and whether it contains anything that is not in line with policy.

—Principal product manager, professional services

It’s no surprise that 67% of surveyed organizations cited concerns with AI security, privacy, or governance as a top reason for adopting Microsoft Foundry, ranking it higher than model access, capabilities, and cost inefficiencies. In essence, trust is a permission slip that enables organizations to expand from isolated process automation projects into higher-impact work at scale.

What leaders should do about AI now

The Forrester TEI study makes one thing unmistakable: enterprise AI ROI compounds when AI is treated as a platform, not a series of one-off projects.

The biggest gains come from giving technical teams a reusable foundation, including models, agents, and tools that scale across use cases and eliminate repetitive work. When AI development becomes repeatable, value accelerates and confidence follows.

Learn more about the benefits of AI workflows

The Forrester Total Economic Impact™ study on Microsoft Foundry was commissioned by Microsoft and conducted by Forrester Consulting.


1The Total Economic Impact™ Of Microsoft Foundry, a commissioned study conducted by Forrester Consulting, February 2026

2Represents results for the composite organization

The post The economics of enterprise AI: What the Forrester TEI study reveals about Microsoft Foundry appeared first on Microsoft Azure Blog.

Read the whole story
alvinashcraft
1 minute ago
reply
Pennsylvania, USA
Share this story
Delete
Next Page of Stories