Principal Software Engineer at Allscipts in Malvern, Pennsylvania, Microsoft Windows Dev MVP, Husband, Dad and Geek.
84977 stories
·
26 followers

Windows 11 is getting a new Task Manager design

1 Share

Microsoft is getting ready to overhaul the Task Manager in Windows 11. Like the rest of the operating system, the Task Manager is getting a new design that matches Microsoft’s new Fluent Design language. It seems Microsoft hid the new design in the bowels of recent Windows 11 builds, but engineering student Gustave Monce, who previously got Windows 11 running on a phone, uncovered the work-in-progress and shared it on Discord this week.

It’s possible to enable the new Task Manager inside the latest preview builds of Windows 11, but Microsoft hasn’t officially announced the redesign. “This is a hidden feature in the new build,” says Monce. “Everything is broken though.” It’s clearly early days for this new design, but it already includes...

Continue reading…

Read the whole story
alvinashcraft
38 minutes ago
reply
West Grove, PA
Share this story
Delete

Collective #695

1 Share



Collective 695 item image

CSS Speedrun

A small fun app to test your CSS knowledge. Find the correct CSS selectors for the 10 puzzles as fast as possible.

Play it



Collective 695 item image

Faker

Generate massive amounts of fake data in the browser and node.js. Initially deleted by its owner, the project is again available on npm under new management.

Check it out






Collective 695 item image

Essence

A desktop operating system built from scratch, for control and simplicity.

Check it out















The post Collective #695 appeared first on Codrops.

Read the whole story
alvinashcraft
38 minutes ago
reply
West Grove, PA
Share this story
Delete

Creative thinking formats to spice up your retrospectives | Linda van Sinten

1 Share

Read the full Show Notes and search through the world’s largest audio library on Scrum directly on the Scrum Master Toolbox Podcast website: http://bit.ly/SMTP_ShowNotes.

Linda describes her own success as a Scrum Masters through the behaviors she wants to see in the teams she works with. We discuss what we need to do as Scrum Masters to enable those behaviors as well as the importance of asking questions. The goal: to help teams feel enthusiastic about their work!

Featured Retrospective Format for the Week: Creative thinking formats to spice up your retrospectives

Linda prefers to use different formats in most retrospectives, and especially likes to use formats and exercises that encourage creative thinking by the team. These formats help the teams get out of “complaining” and focus on improvements. She describes some formats for us, and we refer to Story Cubes; The 4 L’s; Liberating Structures; 1-2-4-all and other formats you can use to spice up your retrospectives. 

In this segment, we also refer to the Ecocycle planning workshop

Do you wish you had decades of experience? Learn from the Best Scrum Masters In The World, Today! The Tips from the Trenches - Scrum Master edition audiobook includes hours of audio interviews with SM’s that have decades of experience: from Mike Cohn to Linda Rising, Christopher Avery, and many more. Super-experienced Scrum Masters share their hard-earned lessons with you. Learn those today, make your teams awesome!  

About ​​Linda van Sinten

Linda van Sinten is an experienced Scrum Master and creator of the Liberating Structures Visual design cards. She combines her knowledge of Scrum with the powerful skill of creating visualizations and visual tools to drive teams forward. She has trained over 500 people in making powerful visuals out of ideas, structuring strategies and product visions in Tech, Healthcare and other industries. 

You can link with ​​Linda van Sinten on LinkedIn.





Download audio: https://traffic.libsyn.com/secure/scrummastertoolbox/20220120_Linda_Th.mp3?dest-id=246429
Read the whole story
alvinashcraft
38 minutes ago
reply
West Grove, PA
Share this story
Delete

What Is Single Project in .NET MAUI?

1 Share

The .NET MAUI single project makes resource management across platforms a breeze—upload in one place, and it takes care of the rest!

Howdy! ‍♀️ I hope you are doing well! On this occasion, we will learn about a very important topic to start with .NET MAUI—the single project handle! I invite you to go for your favorite snack and take your time to read this article!

Before beginning, I would like to leave some super important points to keep in mind about MAUI:

  • Did you read the post “Time to Evolve: .NET Multi-Platform App UI (MAUI)”? If you haven’t, I recommend you take a look! It talks about .NET MAUI and how it all started!

  • .NET MAUI is a super tool which is the evolution of Xamarin—that’s why the Microsoft team is working hard to integrate the learning obtained from Xamarin into .NET MAUI, in this way working together with the community, to make a better product from both a user and developer experience!

  • Where can I find the .NET MAUI previews? Here is the link where you can see all the previews so far. I recommend that you keep up to date with them so you can find out everything that happens!

Let’s get started!

What Is Single Project?

The .NET Multi-platform App UI (.NET MAUI) single project takes care of collecting all the development experiences from the different target platforms, such as Android, iOS, macOS and Windows, and abstracting them into a single shared project.

With the goal of providing a simplified and consistent cross-platform development experience across all target platforms, this project is enabled through multi-targeting and the use of SDK-style projects in .NET 6.

To highlight some of the most important points of this type of project:

  • A simplified debug target selection to run your .NET MAUI applications.

  • Shared resource files within a single project. In the current Xamarin Forms projects, each resource must be added with the specifications required by each platform. In single project, you will only add it to one project! This saves a lot of time on image generation for example.

  • Access to API and platform-specific tools when needed. It’s important to know that, although we will have a single project with shared resources, if it’s necessary, we also have the option to access the platform directly.

  • A single cross-platform application entry point.

Let’s Talk About Resource Management in the Single Project

As we talked about above, in Xamarin projects we need to generate different types of resources to meet the expectations of each platform. The best example of this is the images. The good news is that in the .NET MAUI single project, you no longer have to add platform-specific resources—just add a single resource and it takes care of the rest!

How Do I Achieve This and What Type of Resources Are Included?

When I talk about resources, in addition to images, it mean fonts, app icons, splash screens and raw assets. These resources should be located in the “Resources” folder, and should have their build action set correctly.

Here are the build actions for each type of resource file followed by the specific resource location:

Build Action and Folder Location - Images has a MauiImage as BuildAction Resources\Images, Splash Screen has a MauiSplashScreen as BuildAction Resources\Images, App Icon has a MauiIcon as BuildAction Resources\Images, Fonts has a MauiFont as BuildAction Resources\Fonts, Raw Assets has a MauiAssets as BuildAction Resources\Assets

What Happens When I Add a Resource in the Resources Folder of the Specific Platform and Have It in the Single Project?

The resources contained in the specific platform are not generated. The Single Project will proceed to work with the others.

Let’s take the example of an image. If I add an image in the Platforms\Android\Resources\drawable-hdpi folder and I also have the image in the Resources folder of the single project, it will behave as follows:

  • The project will automatically generate all the images that are NOT hdpi, taking as a base image the one contained in the Resource folder of the single project.

  • The image corresponding to hdpi will be taken from the Android-specific resource location in this case.

Let’s Get To Know Each Type of Resource

As usual, to add a resource to your project, you can add it by dragging it to the Resources + Folder corresponding to the type of resources (Image, Fonts, Splash Screen, etc.) of your single project—and don’t forget to set the corresponding BuildAction.

Such resources are generated at build time. In the case of resources contained in the Resources/Images folder, they are resized to the corresponding resolutions for each platform and then the target device adds these resized images to its app bundle. In the case of Fonts, it creates a corresponding entry per font in your project file.

Each resource creates a corresponding entry in its project file:

Entries required by platform. Images - , Splash screen -  , App Icon - , Fonts - <MauiFont  Include="Resources\Fonts\OpenSans-Regular.tt  />, Raw assets -

Now Let’s Explore the Single Project Specific Structure

A .NET MAUI app project contains a folder and files per platform to which it can target. These folders contain specific resources according to what is required by each one, and that starts the application on each platform. Let’s explore this folder structure a bit:

Folders and files contained per platform. For Android: Resources, AndroidManifest, MainActivity & MainApplication. For iOS & MacCatalyst: Resources -only for IOS-, AppDelegate, Info.plist & Program. For Windows: App.manifest, App.xaml and Package.appmanifest.

Wrap-up

Finally, I hope you liked the article and that you understood the concept, structure and resource management of a single project! See you later!

Thanks for reading!

References: https://docs.microsoft.com/en-ca/dotnet/maui/fundamentals/single-project

Read the whole story
alvinashcraft
38 minutes ago
reply
West Grove, PA
Share this story
Delete

Building host implementations for WebAssembly interfaces

1 Share
WebAssembly and WASI show great promise for the future of computing outside the browser, and the WebAssembly component model aims to improve the portability, cross-language, and composition story for Wasm. This article introduces host implementations, and how to use tooling from the Bytecode Alliance to build and use such implementations.
Read the whole story
alvinashcraft
38 minutes ago
reply
West Grove, PA
Share this story
Delete

Don’t assume the result of read()

1 Share

I read this post and it took me very little time to spot a pretty nasty bug. Here is the relevant section:

The bug is on line #4. The code assumes that a call to read() will return less than the requested number of bytes only at the end of the file. The problem with that approach is that this is explicitly documented to not work this way:

It is not an error if the returned value n is smaller than the buffer size, even when the reader is not at the end of the stream yet. This may happen for example because fewer bytes are actually available right now (e. g. being close to end-of-file) or because read() was interrupted by a signal.

This is a super common error in many cases. And in the vast majority of the cases, that would work. Except when it wouldn’t.

The underlying implementation of File::read() will call to read() or ReadFile(). ReadFile() (Windows) is documented to read as much as you requested, unless you hit the end of file. The read() call, on Unix, is documented to allow returning less than requested:

It is not an error if this number is smaller than the number of bytes requested

Aside from signals, the file system is free to do a partial read if it has some of the data in memory and some not. I’m not sure if this is implemented in this manner, but it is allowed to do so. And the results for the code above in this case are absolutely catastrophic (decryption will fail, encryption will emit partial information with no error, etc).

I’m writing this blog post because reading the code made the error jump at me. Was bitten by this assumption too many times.

Read the whole story
alvinashcraft
39 minutes ago
reply
West Grove, PA
Share this story
Delete
Next Page of Stories