The Mint’s design for the $1 Steve Jobs commemorative coin.
The US Mint has revealed the design for a commemorative $1 coin honoring late Apple co-founder and CEO Steve Jobs.
The coin features a young Jobs sitting crosslegged in front of a California landscape of rolling hills, the Mint said. Of course, he’s wearing a turtleneck. There’s also an inscription: “Make something wonderful.” The 2007 quote has been used to frame Jobs’ worldview and legacy by his estate.
It will cost $13.25 from the Mint website but you’ll have to wait until 2026 to get one.
The coin is part of a yearslong project paying tribute to American innovation that started in 2018, and nothing to do with current CEO Tim Cook’s fawning overtures to Donald Trump. Each state can nominate its own icon to memorialize. Wisconsin, one of the other states featured in 2026, selected the Cray-1 supercomputer from the mid 1970s.
When nominating Jobs in February, California Governor Gavin Newsom said he “encapsulates the unique brand of innovation that California runs on.”
As trade tensions grow between the US and China, Microsoft is reportedly preparing to move the manufacturing of its Surface laptops and tablets out of China. Nikkei reports that Microsoft is aiming to move manufacturing of Surface devices and data center servers out of China “starting from 2026 at the earliest.”
The move will reportedly include components, parts, and product assembly for future Surface hardware and server products. The report claims Microsoft has already shifted some of its existing server production outside China, and is pushing to also produce more Xbox consoles outside of the country.
News of Microsoft’s potential manufacturing changes comes just days after President Trump threatened China with an additional 100 percent tariff and more export controls on software. The US and China have also started charging new port fees on each other’s ships in recent days, just a week after Beijing tightened export rules on rare earths.
Microsoft is far from the only company trying to expand its manufacturing outside of China. Apple is also reportedly preparing to manufacture a series of new devices in Vietnam. Bloomberg reports that Apple’s rumored smart home display hub, indoor security cameras, and a “more advanced tabletop robot” are set to be manufactured in Vietnam, in an effort to shift manufacturing away from China.
We started the development of CodeCanvas back in 2022, with the strong belief that cloud development environments (CDEs) would make development faster, smoother, and more efficient.
With this goal in mind, we launched CodeCanvas publicly in 2024 and started accumulating users. We dove into the issues they faced in their development workflows and how we could address them as a product.
Over the last year, we have implemented many new features and fixes to make a product that would truly help developers. Today, we’re announcing that we have decided to discontinue the development of CodeCanvas in its current form.
Why we are making this decision
The rapid development of AI during the last several years has drastically changed the software development landscape. While CDEs make for a perfect environment to run AI agents in because of their isolated nature, we have concluded that the current CDE setup of CodeCanvas is too niche, if not obsolete, in the increasingly AI-enabled tech industry of today.
User and customer needs have changed and we cannot meet them with CodeCanvas the way it is right now, so we chose to drastically shift our focus and sunset CodeCanvas.
What’s next
Here’s what’s going to happen to CodeCanvas as a product:
We will no longer be providing new CodeCanvas licenses or subscription upgrades starting October 16, 2025.
We will continue providing support for our existing users until January 1, 2026. Before this deadline, our team will gladly consult our paid clients regarding migration options.
Our existing users will be able to use CodeCanvas for six months, until March 31, 2026.
After March 31, 2026, CodeCanvas public artifacts will no longer be available and your instance will stop working.
If you have any questions or require assistance, please reach out to us.
Closing words
As a team, we have reflected on what professional developers need in the AI-enabled tech landscape of today. To meet those needs, we have decided to develop a new, more modern solution.
We are now creating an AI-first, cloud-native product that will help professional teams adopt AI and work with autonomous AI agents, and CDEs will play an important role in the final product design. Stay tuned for more updates!
We would like to extend our gratitude to every single user of CodeCanvas. Our goal in creating CodeCanvas was to make development more enjoyable for you as developers, and you gave us lots of useful information that will help us make our new product even better. Thank you for being part of our journey – we hope to see you again once our new solution is up and running!
Software updates are an important part of keeping applications secure, stable, and competitive. But they also serve as a valuable business tool, as each new release is an opportunity to remind customers of your product and encourage them to maintain or renew their subscription. [...]
The article demonstrates how to implement a secure MCP OAuth desktop client using Microsoft Entra ID. The MCP server is built with ASP.NET Core and secured using Microsoft Entra ID. The MCP client is a .NET console application that must acquire an OAuth access token to interact with the MCP server.
A client application was developed to authenticate and interact with an MCP server secured by Microsoft Entra ID. It uses Azure OpenAI and obtains a delegated access token via a public OpenID Connect client. The application then calls a function exposed by the MCP server. The server is a simple ASP.NET Core application that implements the MCP Server API.
The Microsoft.Identity.Client Nuget package is used to implement the public OpenID Connect client. As a desktop app, or the console application used in this demo cannot keep a secret, a public client is required and the client must use a delegated access token based on the user. OpenID Connect Code flow with PKCE is used to authenticate and the client must use a web browser to authenticate the user. App-to-App services cannot be used for this type of application, we have a low trust.
The SignInUserAndGetTokenUsingMSAL method is used to implement the user authentication.
private static async Task<string> SignInUserAndGetTokenUsingMSAL(
PublicClientApplicationOptions configuration, string[] scopes)
{
string authority = string.Concat(configuration.Instance, configuration.TenantId);
// Initialize the MSAL library by building a public client application
application = PublicClientApplicationBuilder.Create(configuration.ClientId)
.WithAuthority(authority)
.WithDefaultRedirectUri()
.Build();
AuthenticationResult result;
try
{
var accounts = await application.GetAccountsAsync();
result = await application.AcquireTokenSilent(scopes, accounts.FirstOrDefault())
.ExecuteAsync();
}
catch (MsalUiRequiredException ex)
{
result = await application.AcquireTokenInteractive(scopes)
.WithClaims(ex.Claims)
.ExecuteAsync();
}
return result.AccessToken;
}
The CreateMcpTransportAsync method uses the Microsoft Entra ID client to acquire the access token and sets the Authorization header in the HttpClient with the Bearer token. This token is validated on the MCP server. The server expects a delegated access token with the “mcp:tools” scp claim. No application access tokens are accepted.
private static PublicClientApplicationOptions? appConfiguration = null;
// The MSAL Public client app
private static IPublicClientApplication? application;
public static async Task<IClientTransport> CreateMcpTransportAsync(HttpClient httpClient, IConfigurationRoot configuration)
{
appConfiguration = configuration.Get<PublicClientApplicationOptions>();
string[] scopes = ["api://96b0f495-3b65-4c8f-a0c6-c3767c3365ed/mcp:tools"];
// Sign-in user using MSAL and obtain an access token for MS Graph
var accessToken = await SignInUserAndGetTokenUsingMSAL(appConfiguration!, scopes);
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
var httpMcpServer = configuration["HttpMcpServerUrl"];
var transport = new SseClientTransport(new()
{
Endpoint = new Uri(httpMcpServer!),
Name = "MCP Desktop Client",
}, httpClient);
return transport;
}
When the applications are started, the console application opens up the browser to authenticate.
Notes
With this setup, user delegated access tokens are forced all the way. No App-to-App security is possible. The MCP Server is used to integrated into the client application as a remote server. DCR is not used in the setup and should not be used in this setup. Trust is the main problem with supporting DCR. The security can still be further improved and there are some interesting OAuth issues open about this.