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

New Project Brings Strong Linux Compatibility To More Classic Windows Games

1 Share
An anonymous reader quotes a report from Ars Technica: For years now, Valve has been slowly improving the capabilities of the Proton compatibility layer that lets thousands of Windows games work seamlessly on the Linux-based SteamOS. But Valve's Windows-to-Linux compatibility layer generally only extends back to games written for Direct3D 8, the proprietary Windows graphics API Microsoft released in late 2000. Now, a new open source project is seeking to extend Linux interoperability further back into PC gaming history. The d7vk project describes itself as "a Vulkan-based translation layer for Direct3D 7 [D3D7], which allows running 3D applications on Linux using Wine." The new project isn't the first attempt to get Direct3D 7 games running on Linux. Wine's own built-in WineD3D compatibility layer has supported D3D7 in some form or another for at least two decades now. But the new d7vk project instead branches off the existing dxvk compatibility layer, which is already used by Valve's Proton for SteamOS and which reportedly offers better performance than WineD3D on many games. D7vk project author WinterSnowfall writes that while they don't expect this new project to be upstreamed into the main dxvk in the future, the new version should have "the same level of per application/targeted configuration profiles and fixes that you're used to seeing in dxvk proper." And though d7vk might not perform universally better than the existing alternatives, WinterSnowfall writes that "having more options on the table is a good thing in my book at least." The report notes that the PC Gaming Wiki lists more than 400 games built on the aging D3D7 APIs, spanning mostly early-2000s releases but with a trickle of new titles still appearing through 2022. Notable classics include Escape from Monkey Island and Hitman: Codename 47.

Read more of this story at Slashdot.

Read the whole story
alvinashcraft
2 hours ago
reply
Pennsylvania, USA
Share this story
Delete

Understanding global AI diffusion

1 Share

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.

Read the whole story
alvinashcraft
2 hours ago
reply
Pennsylvania, USA
Share this story
Delete

Raising the bar on battery performance: excessive partial wake locks metric is now out of beta

1 Share
Posted by Karan Jhavar - Product Manager, Android Frameworks, Dan Brown - Product Manager, Google Play, and Eric Brenner - Software Engineer, Google Play


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.

1. Aligning our definition of excessive wake locks with user expectations

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.

2.  Excessive wake locks and their impact on Google Play visibility

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.

3. What to do next

We encourage you to take the following steps to ensure your app delivers a great experience for users:

  1. 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.

  2. Discover excessive partial wake locks: Use the new wake lock names table to identify excessive partial wake locks. 

  3. 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.


Read the whole story
alvinashcraft
2 hours ago
reply
Pennsylvania, USA
Share this story
Delete

One Swift mistake everyone should stop making today

1 Share

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?

Problem, meet solution

The problem is that `replacingOccurrences(of:wi...



Read the whole story
alvinashcraft
2 hours ago
reply
Pennsylvania, USA
Share this story
Delete

Introducing Temporal Swift SDK: Building durable and reliable workflows

1 Share

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.

Writing durable workflows in Swift

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:

  • Using familiar async/await patterns and structured concurrency to build maintainable workflow code.
  • Leveraging Swift’s strong type system to catch errors at build time rather than runtime.
  • Providing macros to reduce boilerplate when authoring workflows.

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.

What is Temporal and why does it matter?

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:

  • Workflows define the overall business logic and coordination. They describe the sequence of steps, decision points, and error handling for a process. Workflows must be deterministic. Given the same inputs and history, they must always make the same decisions.
  • Activities perform the actual work, such as calling external APIs, processing data, or interacting with databases. Activities should be idempotent, meaning they can be safely retried without causing unintended side effects.

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.

Getting started

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.

Community and feedback

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.

Read the whole story
alvinashcraft
2 hours ago
reply
Pennsylvania, USA
Share this story
Delete

Build Your Microsoft Ignite Schedule: Top Sessions for Solution Architects

1 Share

Get Ready for Microsoft Ignite

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. 

Make Every Minute Count: Top Recommended Sessions for Solution Architects

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.

  1. From start to scale: Realize agentic AI value (BRKSP464)
    Learn how to plan and scale intelligent systems built on Microsoft’s Agentic AI framework, combining performance, governance, and responsible design principles.
  2. Unleashing SAP Databricks on Azure: Modernize, analyze, and innovate (BRK136)
    Explore how Azure and Databricks integrate with SAP to deliver a high-performance data architecture for enterprises.
  3. Migrate and Modernize Windows and SQL Server Workloads to Azure (LAB506-R1)
    See how Azure’s modernization framework enables secure, scalable, and cost-efficient migration for enterprise systems.
  4. Innovation Session: Security in the Agentic Era – the Core Primitive (BRK1712)
    Gain a forward-looking perspective on how the rise of Agentic AI will reshape the security landscape for IT operations and enterprise systems.
  5. Microsoft Purview Compliance Manager: AI Compliance & Resilience (THR750)
    Learn how Microsoft Purview leverages AI to simplify compliance management, automate risk assessments, and streamline audits for hybrid and multi-cloud environments.

Before diving into your developer sessions, make time for these essential moments that set the stage for everything happening at Microsoft Ignite.

  1. Opening Keynote (KEY01)
    Hear from Microsoft leaders as they unveil the latest innovations shaping the future of AI, cloud, and the developer ecosystem. This is the session that sets the tone for the entire event.
  2. Innovation Session: Scale Smarter: Infrastructure for the Agentic Era (BRK1704)
    Dive into what’s new in Azure Infrastructure—from compute and networking to hybrid management and scalability. Hear from Azure engineering experts on best practices and innovations for modern cloud operations.
  3. Innovation Session: Microsoft Fabric and Azure Databases - the data estate for AI (BRK1702)                                                                              See how Azure Data services—spanning databases, analytics, and governance—empower organizations to unify data, build intelligent apps, and unlock insight-driven decision-making at scale.

Plan Smarter with the Session Scheduler

With the add to schedule feature in the session catalog you’ll be able to:

  • Browse and filter all Microsoft Ignite sessions by topic, product, or persona.
  • Save your favorite sessions to build a personalized schedule.
  • Set reminders and block time for networking, community booths, and demos.

Stay Connected with the Azure Tech Community

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.

See You at Microsoft Ignite 2025

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.

 

 

 

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