Read more of this story at Slashdot.
Read more of this story at Slashdot.
Artificial intelligence is transforming the way we work, learn, and innovate—and it’s doing so at a pace that surpasses every major technology before it. Microsoft’s inaugural AI Diffusion Report offers a comprehensive look at how AI adoption is accelerating worldwide, drawing on data from more than 100 countries. In less than three years, more than 1.2 billion people have used AI tools, a rate of adoption faster than the internet, the personal computer, or even the smartphone. This rapid diffusion underscores AI’s potential as a general-purpose technology but also highlights the urgent need to ensure equitable access
The report introduces three indices—the AI Frontier Index, the AI Infrastructure Index, and the AI Diffusion Index—to help policymakers, researchers, and industry leaders understand where breakthroughs are happening, where capacity exists to scale, and where AI is being used to improve lives. These insights show that adoption is fastest where connectivity and digital infrastructure are strongest, while nearly four billion people still lack the basics needed to participate in the AI economy. Bridging this gap is essential to avoid deepening global divides.
Beyond the numbers, the report illustrates the need for collaborative action to expand access to digital infrastructure, strengthen skills development, and promote responsible AI policies. By investing in these foundational elements, governments and organizations can unlock AI’s potential for growth and innovation. The data makes clear that speed alone does not guarantee shared prosperity—broad accessibility does.
To explore the full findings and recommendations, read the AI Diffusion Report.
The post Understanding global AI diffusion appeared first on Microsoft On the Issues.

A great user experience is built on a foundation of strong technical performance. We are committed to helping you create stable, responsive, and efficient apps that users love. Excessive battery drain is top of mind for your users, and together, we are taking significant steps to help you build more power-efficient apps.
Earlier this year, we introduced a new beta metric in Android vitals, excessive partial wake locks, to help you identify and address sources of battery drain. This initial beta metric was co-developed in close collaboration with Samsung, combining their deep, real-world insights into user experience with battery consumption with Android's platform data.
We want to thank you for providing invaluable feedback during the beta period. Powered by your input and our continued collaboration with Samsung, we have further refined the algorithm to be even more accurate and representative. We are excited to announce that this refined metric is now generally available as a new core vitals metric to all developers in Android vitals.
We have defined a bad behavior threshold for excessive wake locks. Starting March 1, 2026, if your title does not meet this quality threshold, we may exclude the title from prominent discovery surfaces such as recommendations. In some cases, we may display a warning on your store listing to indicate to users that your app may cause excessive battery drain.
|
GOOGLE PLAY'S CORE TECHNICAL QUALITY METRICS
To maximize visibility on Google Play, keep your app below the bad behavior thresholds for these metrics. |
|
|---|---|
| User-perceived crash rate | The percentage of daily active users who experienced at least one crash that is likely to have been noticeable |
| User-perceived ANR rate | The percentage of daily active users who experienced at least one ANR that is likely to have been noticeable |
| Excessive battery usage | The percentage of watch face sessions where battery usage exceeds 4.44% per hour |
| New: Excessive partial wake locks | The percentage of user sessions where cumulative, non-exempt wake lock usage exceeds 2 hours |
Excessive partial wake locks newly join the technical quality bars that Play expects all titles to maintain for a great user experience
This is the first in a series of new metrics designed to provide deeper insight into your app's resource utilization, enabling you to improve the experience for your users across the entire Android ecosystem.
Apps can hold wake locks to prevent the user's device from entering sleep mode, letting the apps perform background work while the screen is off.
We consider a user session excessive if it holds more than 2 cumulative hours of non-exempt wake locks in a 24 hour period. These excessive sessions are a heavy contributor to battery drain. A wake lock is exempted if it is a system held wake lock that offers clear user benefits that cannot be further optimized, such as audio playback or user-initiated data transfer.
The bad behaviour threshold is crossed when 5% of an app’s user sessions over the last 28 days are excessive. If your app exceeds this threshold, you will be alerted directly on your Android vitals overview page. You can read more information about our definition on the Android Developer pages.
Android vitals will alert you to excessive wake lock issues and provide a table of wake lock tags to P90/ P99 duration to help you identify the source by wake lock name.
To help you understand your app’s partial wake lock usage, we are enhancing the excessive partial wake locks page in Android vitals with a new wake lock names table. This table breaks down wake lock sessions by their specific tag names and durations, allowing you to easily identify long wake locks in your local development environment, like Android Studio, for easier debugging. You should investigate any wake locks with P90 or P99 durations above 60 minutes.
If your title exceeds the bad behavior threshold for excessive wake locks, it may be ineligible for some discovery surfaces where users find new apps and games.
In some cases, we may also show a warning on your store listing to inform users that your app may cause their device's battery to drain faster.

Users may see a warning on your store listing if your app exceeds the bad behavior threshold. Note: The exact text and design are subject to change.
We know making technical changes to your app’s code and how it works can be time consuming, so we are making the metric available for you to diagnose and fix potential issues now, with time before the Store visibility changes begin, starting from March 1, 2026.
We encourage you to take the following steps to ensure your app delivers a great experience for users:
Visit Android vitals: Review your app's performance on the new excessive partial wake locks metric. The metric is now visible to all developers whose apps have wake lock sessions.
Discover excessive partial wake locks: Use the new wake lock names table to identify excessive partial wake locks.
Consult the documentation: For detailed guidance on best practices and fixing common issues, please check out our technical blog post, technical video and updated developer documentation on wake locks.
Thank you for your continued partnership in building high-quality, performant experiences that users can rely on every day.
There’s a Swift mistake I see time and time again, it can cause serious problems, and it’s trivial to fix. I’ve talked about it before, other people have talked about it before, and I even made a long Hacking with Swift+ video about it.
I don’t believe in making folks wait, so here’s the simple answer: if you’re using the String method replacingOccurrences(of:with) you should probably change it to replacing(_:with:) to avoid causing unintentional and frankly bizarre bugs.
If you’re not sure why, read on – I’ll start by showing you the problem in a simple way, then show you the solution.
First, think about this code:
let vacation = "🇨🇦🇺🇸"
That’s a trivial string containing two flags. As it’s a string, we can check whether it contains the Canadian flag like this:
print(vacation.contains("🇨🇦"))
And we can check whether the string includes the US flag like this:
print(vacation.contains("🇺🇸"))
Both those will print true, because both those flags are present in the string.
Similarly, we could check whether the string contains the Australian flag like this:
print(vacation.contains("🇦🇺"))
That will print false, because clearly the string "🇨🇦🇺🇸" does not contain 🇦🇺.
Now try this:
print(vacation.replacingOccurrences(of: "🇦🇺", with: "🇳🇮"))
That replaces the Australian flag with the Nicaraguan flag, which sounds innocent but is at the core of the problem I’m talking about here.
If you’re reading this and not trying the code, this will hurt your head: that code will print “🇨🇳🇮🇸” – the flags for China and Iceland.
Yes, even though we’re replacing something that doesn’t exist in the string.
What’s happening here?
The problem is that `replacingOccurrences(of:wi...
The Temporal Swift SDK is now available as an open source project.
Building reliable distributed systems requires handling failures gracefully, coordinating complex actions across multiple services, and ensuring long-running processes complete successfully. Rather than develop these resiliency features into every application or service you develop, an alternative approach is to use workflows. Workflows encapsulate your code so it runs durably and handles many common failure scenarios.
Temporal is widely used for workflow orchestration across many languages. With the release of the SDK, Temporal is now available for Swift developers building production cloud services.
An announcement post is also available on the Temporal blog with more information for their developer community.
Durable workflows run to completion even when infrastructure fails. If your server crashes mid-execution, Temporal automatically resumes the workflow from where it left off with no lost state or manual intervention required. By bringing this capability to the Swift ecosystem, developers can focus on application logic while Temporal handles state management, retries, and recovery.
The SDK provides a seamless Swift developer experience by:
Temporal workflows are particularly valuable for handling multi-step coordination in applications that must survive failures, such as data pipelines, business automation, payment processing, and operational tasks.
Temporal is an open source platform for building reliable distributed applications. At its core is the concept of durable execution, your code runs to completion even in the face of infrastructure failures. When a worker crashes or restarts, Temporal automatically resumes your workflow from where it left off, without requiring you to write complex retry logic or state management code. This is achieved through Temporal’s architecture, which separates workflow orchestration from actual work execution:
Modern distributed systems face common challenges: coordinating multiple services, handling partial failures, ensuring consistency across operations, and managing long-running processes. Traditional approaches require building custom retry logic, state machines, and coordination mechanisms. Temporal provides a platform that handles these concerns, allowing you to focus on your business logic.
To get started with the Temporal Swift SDK, explore its documentation which provides detailed guides for implementing workflows and activities. The repository also includes a rich collection of example projects, demonstrating the SDK’s capabilities across different use cases from simple task orchestration to complex multi-step business processes.
For a deeper understanding of Temporal’s core concepts and architectural patterns, check out the general Temporal documentation, which provides valuable context for building robust distributed systems. For a video introduction, watch this conference presentation from Server-Side Swift 2025 where the project was announced.
Temporal Swift SDK is an open source project and we’re eager to hear from the Swift community. Whether you’re building microservices, coordinating long-running processes, or simply curious about durable execution, we’d love to know how the Temporal Swift SDK works for you.
The project is actively developed and we welcome contributions, bug reports, and feature requests. Ready to start building reliable distributed systems? Visit the Temporal Swift SDK repository to get started.
Welcome back to our Azure Tech Community Microsoft Ignite 2025 series!
If you joined us for Your Guide to Azure Community Activations at Microsoft Ignite 2025, you already know that Microsoft Ignite isn’t just about product updates, it’s where ideas, innovation, and community come together.
With hundreds of sessions to choose from, it can be hard to know where to focus. That is why we have curated a list of sessions tailored specifically for Solution Architects to help you plan your week, strengthen your technical design strategy, and stay ahead of the latest advancements in Azure.
Use the Microsoft Ignite session scheduler feature in the session catalog to personalize your agenda, save your favorites, and organize your time at Microsoft Ignite.
Microsoft Ignite moves fast, so it pays to plan your path before you arrive. By organizing your schedule around your interests and goals, you’ll be able to maximize learning opportunities, connect with peers, and leave with actionable insights.
The recommendations below highlight our top picks for architects who want to design scalable, secure, and future-ready cloud environments.
Before diving into your developer sessions, make time for these essential moments that set the stage for everything happening at Microsoft Ignite.
With the “add to schedule” feature in the session catalog you’ll be able to:
Your Microsoft Ignite journey doesn’t stop when the sessions end, the conversation continues across the Azure Tech Community.Share the sessions you are most excited about using #MSIgnite and #AzureTechCommunity, tag azure​, and connect with other architects exploring the future of cloud design and intelligent infrastructure.
Follow the Azure Tech Community for real-time updates, photos, and highlights throughout Microsoft Ignite.
With the right plan in place, every session becomes an opportunity to learn, grow, and connect.
Explore these recommendations, save your favorites, and get ready for an unforgettable Microsoft Ignite 2025 experience.