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

Lawsuit Says Amazon Prime Video Misleads When You 'Buy' a Long-Term Streaming Rental

1 Share
"Typically when something is available to "buy," ownership of that good or access to that service is offered in exchange for money," writes Ars Technica. "That's not really the case, though, when it comes to digital content." Often, streaming services like Amazon Prime Video offer customers the options to "rent" digital content for a few days or to "buy" it. Some might think that picking "buy" means that they can view the content indefinitely. But these purchases are really just long-term licenses to watch the content for as long as the streaming service has the right to distribute it — which could be for years, months, or days after the transaction. A lawsuit recently filed against Prime Video challenges this practice and accuses the streaming service of misleading customers by labeling long-term rentals as purchases. The conclusion of the case could have implications for how streaming services frame digital content... [The plaintiff's] complaint stands a better chance due to a California law that took effect in January banning the selling of a "digital good to a purchaser with the terms 'buy,' 'purchase,' or any other term which a reasonable person would understand to confer an unrestricted ownership interest in the digital good, or alongside an option for a time-limited rental." There are some instances where the law allows digital content providers to use words like "buy." One example is if, at the time of transaction, the seller receives acknowledgement from the customer that the customer is receiving a license to access the digital content; that they received a complete list of the license's conditions; and that they know that access to the digital content may be "unilaterally revoked...." The case is likely to hinge on whether or not fine print and lengthy terms of use are appropriate and sufficient communication. [The plaintiff]'s complaint acknowledges that Prime Video shows relevant fine print below its "buy" buttons but says that the notice is "far below the 'buy movie' button, buried at the very bottom" of the page and is not visible until "the very last stage of the transaction," after a user has already clicked "buy." Amazon is sure to argue that "If plaintiff didn't want to read her contract, including the small print, that's on her," says consumer attorney Danny Karon. But he tells Ars Technica "I like plaintiff's chances. A normal consumer, after whom the California statute at issue is fashioned, would consider 'buy' or 'purchase' to involve a permanent transaction, not a mere rental... If the facts are as plaintiff alleges, Amazon's behavior would likely constitute a breach of contract or statutory fraud."

Read more of this story at Slashdot.

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

Site to Site Networking with Tailscale: Part 2 — Teaching Azure Some New Tricks

1 Share
In Part 1 , I wrestled my Unifi Dream Machine Pro into submission and got it talking on Tailscale. That gave me a subnet router for my...

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

Update Entra ID Device Extension Attributes via PowerShell & Create Dynamic Security Groups.

1 Share

2) Overview of Extension Attributes and Updating via PowerShell

What Are Extension Attributes?

  • Extension attributes (1–15) are predefined string fields available on Entra ID device objects.
  • They are exposed to Microsoft Graph as the extensionAttributes property.
  • These attributes can store custom values like department, environment tags (e.g., Prod, Dev), or ownership details.

Why Use Them?

  • Dynamic Group Membership: Use extension attributes in membership rules for security or Microsoft 365 groups.
  • Policy Targeting: Apply Defender for Endpoint (MDE) policies, Conditional Access or Intune policies to devices based on custom tags.

For details on configuration of the policies refer below documentation links.

https://learn.microsoft.com/en-us/defender-endpoint/manage-security-policies

https://learn.microsoft.com/en-us/intune/intune-service/

https://learn.microsoft.com/en-us/entra/identity/conditional-access/

Updating Extension Attributes via PowerShell and Graph API

  • Use Microsoft Graph PowerShell to authenticate and update device properties.
  • Required permission: “Device.ReadWrite.All”.

 

3) Using PowerShell to Update Extension Attributes

  1. create app registration in Entra ID with permissions Device.ReadWriteall and Grant admin Consent.

Register an app

How to register an app in Microsoft Entra ID - Microsoft identity platform | Microsoft Learn

 

Graph API permissions Reference. For updating Entra ID device properties you need “Device.ReadWrite.all” permission and Intune administrator role to run the script.

Microsoft Graph permissions reference - Microsoft Graph | Microsoft Learn

 

  1. Below is the script

Important things to note and update the script with your custom values.

a) update the path of the excel file in the script. column header is 'DeviceName'

Note: You may want to use CSV instead of excel file if Excel is not available on the admin workstation running this process.

b) update the credential details - tenantId,clientId & clientSecret in the script. Client id and client secret are created as a part of app registration.

c) update the Externsionattribute and value in the script. This is the value of the extension attribute you want to use in dynamic membership rule creation.

 

___________________________________________________________________________

#Acquire token

$tenantId = "xxxxxxxxxxxxxxxxxxxxx"

$clientId = "xxxxxxxxxxxxxxxx"

$clientSecret = "xxxxxxxxxxxxxxxxxxxx"

$excelFilePath = "C:\Temp\devices.xlsx" # Update with actual path

$tokenResponse = Invoke-RestMethod -Uri "https://login.microsoftonline.com/

$tenantId/oauth2/v2.0/token" -Method POST -Body $tokenBody

$accessToken = $tokenResponse.access_token

# Import Excel module and read device names

Import-Module ImportExcel $deviceList = Import-Excel -Path $excelFilePath

foreach ($device in $deviceList) { $deviceName = $device.DeviceName # Assumes column header is 'DeviceName'

Get device ID by name

$headers = @{ "Authorization" = "Bearer $accessToken"} $deviceLookupUri = "https://graph.microsoft.com/beta/devices?`$filter=displayName eq '$deviceName'"

try {    $deviceResponse = Invoke-RestMethod -Uri $deviceLookupUri -Headers $headers -Method

GET

} catch {    Write-Host "Error querying device: $deviceName - $_"    continue

}

if ($null -eq $deviceResponse.value -or $deviceResponse.value.Count -eq 0) { 

   Write-Host "Device not found: $deviceName"  

  continue

}

$deviceId = $deviceResponse.value[0].id

# Prepare PATCH request

$uri = "https://graph.microsoft.com/beta/devices/$deviceId"
$headers["Content-Type"] = "application/json"
$body = @{ extensionAttributes = @{ extensionAttribute6 = "MDE" } } | ConvertTo-Json -Depth 3
try {
$response = Invoke-RestMethod -Uri $uri -Method Patch -Headers $headers -Body $body
Write-Host "Updated device: $deviceName"} catch {
    Write-Host "Failed to update device: $deviceName - $_"
}

}

Write-Host "Script execution completed."

 

________________________________________________________________________________________________________________________

 

Here’s a simple summary of what the script does:

  • Gets an access token from Microsoft Entra ID using the app’s tenant ID, client ID, and client secret (OAuth 2.0 client credentials flow).
  • Reads an Excel file (update the path in $excelFilePath, and ensure the column header is DeviceName) to get a list of device names.
  • Loops through each device name from the Excel file:
    • Calls Microsoft Graph API to find the device ID by its display name.
    • If the device is found, sends a PATCH request to Microsoft Graph to update extensionAttribute6 with the value "MDE".
  • Logs the result for each device (success or failure) and prints messages to the console.

 

4) Using Extension Attributes in Dynamic Device Groups

Once extension attributes are set, you can create a dynamic security group in Entra ID:

  1. Go to Microsoft Entra admin center → Groups → New group.
  2. Select Security as the group type and choose Dynamic Device membership.
  3. Add a membership rule, for example:

  (device.extensionAttributes.extensionAttribute6 -eq "MDE")

     4. Save the group. Devices with extensionAttribute6 = MDE will automatically join.

 

5) Summary

  • Extension attributes in Entra ID allow custom tagging of devices for automation and policy targeting.
  • You can update these attributes using Microsoft Graph PowerShell.
  • These attributes can be used in dynamic device group rules, enabling granular MDE policies, Conditional Access and Intune deployments.

 

Disclaimer

  • This script is provided "as-is" without any warranties or guarantees. It is intended for educational and informational purposes only.
  • Microsoft and the author assume no responsibility for any issues that may arise from the use or misuse of this script.
  • Before deploying in a production environment, thoroughly test the script in a controlled setting and review it for compliance with your organization's security and operational policies.
Read the whole story
alvinashcraft
4 hours ago
reply
Pennsylvania, USA
Share this story
Delete

Train Like an Athlete, Lead Like a Pro: The Career Growth Most Engineers Ignore

1 Share

Imagine if a pro athlete spent all year competing in games with almost no practice.

Sounds absurd, right?

Yet that’s exactly how many of us operate in our engineering careers.

We jump from project to project, meeting to meeting, performing constantly and rarely training or reflecting on our craft as leaders.

This imbalance between practice and performance is holding back our growth. It’s time to change that.

#1 – Fix the 95/5 Imbalance

Always Performing, Never Training?

The first step is recognizing the imbalance.

Many engineers and new managers simply don’t prioritize practice — and it shows. We assume technical excellence will magically translate into leadership excellence. But leading people is a completely different ballgame.

Just like a great athlete can’t rely on raw talent alone, a great engineering leader can’t rely only on coding skills or working harder.

Don’t wait for your company to schedule that one-off training day. Proactively carve out regular time for practice and learning. Block an hour each week for leadership development — and treat it like your most important meeting of the week.

These small training investments compound into real leadership growth.

#2 – Make Practice a Part of Your Job (Deliberate Practice)

Elite athletes don’t just show up and hope to get better — they follow a training plan.

You can do the same.

Instead of learning only through trial by fire, create low-stakes ways to practice your leadership skills. Break it down. Focus on one thing at a time.

Maybe you role-play a tough conversation. Maybe you lead a small initiative outside your comfort zone. The key is deliberate effort — not just doing the job, but actively training how you do it.

I tell my clients all the time: don’t mistake experience for growth. Improvement comes from practice, reflection, and intentional reps.

Pick one leadership skill to improve each quarter — then go work that muscle.

#3 – Seek Feedback and Coaching Like an Athlete

No world-class athlete trains alone. They have coaches. They review game film. They constantly refine.

Most engineers? They’re flying solo.

If you want to grow, feedback and coaching are your secret weapons.

Start asking for feedback more often — from peers, reports, managers. It might feel awkward at first, but this is the stuff that accelerates your growth.

And if you’re serious about leveling up — find a mentor or coach. Someone who can push your thinking, help you see your blind spots, and guide your development. The best performers in every field have someone in their corner. Why not you?

#4 – Prioritize Recovery and Reflection (Not Just Grinding)

This one gets overlooked constantly — but it’s critical.

Athletes don’t train nonstop. They recover. They rest. They plan to be at their best when it counts.

You can’t perform at your highest level if you’re running on empty. But most engineers are doing just that — grinding nonstop, always on, and never pausing to reset.

Recovery is part of the job. So is reflection.

Don’t just move from sprint to sprint without taking time to look back. Make space to ask: What did I learn? What worked? What would I do differently next time?

Reflection turns experience into insight. Recovery turns hustle into sustainability. You need both.

#5 – Embrace the Lifelong Learning Mindset

Great athletes never stop learning. They’re always refining, evolving, trying new techniques.

Same goes for great engineering leaders.

Stay curious. Stay coachable. Keep a learning list and chip away at it — one book, one podcast, one conversation at a time.

And don’t be afraid to look outside your lane. Some of the best leadership lessons I’ve learned came from outside the world of engineering.

Growth isn’t a one-time event. It’s a mindset. And it’s one of the clearest markers of high-performance leaders.

Let me leave you with this

You wouldn’t expect an athlete to become a champion without practice.

So don’t expect to become a top-tier engineering leader without training your skills — deliberately, consistently, and with purpose.

If you want to lead with confidence, influence without a title, and make the leap to senior roles — it starts by getting serious about your own development.

Pick one thing this week to start training.

Then build a rhythm around it.

Because when you train like an athlete, you lead like a champion.

If you’re ready to lead with clarity, confidence, and intention… join my weekly email newsletter. Every week, I share practical insights on leadership, career growth, and building the engineering career you actually want.

And when you sign up, you’ll get my free workbook: the Engineering Career Accelerator™️ Scorecard — a simple tool with foundational insights you can check, score, and apply immediately to stand out and excel at work.

Let’s get you back in training mode. Your next level won’t happen by accident.

Let’s go.

The post Train Like an Athlete, Lead Like a Pro: The Career Growth Most Engineers Ignore appeared first on OACO.

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

Building a MCP to Build VS Code & The Impact of AI on Kent C. Dodds

1 Share

This week, VS Code engineer Tyler Leonhardt joins the podcast to give an update on the latest enhancements to MCP authentication for developers and how the VS Code team is leveraging MCP to help developer VS Code with help of the Playwright, GitHub, and other MCP servers. James also got a chance to sit down with Kent C. Dodds at the MCP Dev Days to better understand how MCP is evolving his workflow and how he sees its impact going forward.

Follow VS Code:

Special Guests: Kent C. Dodds and Tyler Leonhardt.

Links:





Download audio: https://aphid.fireside.fm/d/1437767933/fc261209-0765-4b49-be13-c610671ae141/2a9530b4-7b73-4f14-a199-19afde811617.mp3
Read the whole story
alvinashcraft
4 hours ago
reply
Pennsylvania, USA
Share this story
Delete

Announcing Files Preview v3.9.83

1 Share
Announcing Files Preview v3.9.83 for users of the preview version.

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