Subscribe: Scott Hanselman's Computer Zen
Added By: Feedage Forager Feedage Grade B rated
Language: English
book runtime  book  developers  display  docs  editorconfig  monitor  net  new  project  runtime  scott hanselman  set  team  windows 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: Scott Hanselman's Computer Zen

Scott Hanselman's Blog

Scott Hanselman on Programming, User Experience, The Zen of Computers and Life in General


Use a second laptop as an extended monitor with Windows 10 wireless displays

Wed, 18 Oct 2017 05:04:38 GMT

James Clarke from the Windows team rolled into a meeting today with two Surfaces...but one had no keyboard. Then, without any ceremony, he proceeded to do this: Now, I consider myself a bit of a Windows Productivity Tips Gourmand, and while I was aware of Miracast and the general idea of a Wireless Display, I didn't realize that it worked this well and that it was built into Windows 10. In fact, I'm literally sitting here in a hotel with a separate USB3 LCD display panel to use as a second monitor. I've also used Duet Display and used my iPad Pro as a second monitor. I usually travel with a main laptop and a backup laptop anyway. Why do I lug this extra LCD around? Madness. I had this functionality all the time, built in. Use your second laptop as a second monitor On the machine you want to use as a second monitor, head over to Settings | System | Projecting to this PC and set it up as you like, considering convenience vs. security. Then, from your main machine - the one you are projecting from - just hit Windows Key+P, like you were projecting to a projector or second display. At the bottom, hit Connect to a Wireless Display. Then wait a bit as it scans around for your PC. You can extend or duplicate...just like another monitor... ...because Windows thinks it IS another monitor. You can also do this with Miracast TVs like my LG, or your Roku or sometimes Amazon Fires, or you can get a Microsoft Wireless Display Adapter and HDMI to any monitor - even ones at hotels! NOTE: It's not super fast. It's sometimes pixelly and sometimes slow, depending on what's going on around you. But I just moved Chrome over onto my other machine and watched a YouTube video, just fine. I wouldn't play a game on it, but browsing, dev, typing, coding, works just fine! Get ready for this. You can ALSO use the second machine as a second collaboration point! That means that someone else could PAIR with you and also type and move their mouse. THIS makes pair programming VERY interesting.   Here's a video of it in action: Literally just learned from @Clarkezone that I could use an extra laptop AS AN EXTENDED MONITOR. Built into Windows 10!— Scott Hanselman (@shanselman) October 18, 2017 Teams can fight but the problem of formatting code across teams is solved by EditorConfig. I'm surprised more people don't know about it and use it, so this blog post is my small way of getting the word out. TELL THE PEOPLE. Take a project and make a new .editorconfig file and put this in it. I'll use a dotnet new console example hello world app.[*.cs]indent_style = tabindent_size = tabtab_size = 4 I've set mine in this example to just *.cs, but you could also say [*.{cs,js}] or just [*] if you like, as well as have multiple sections. You'll check this file in WITH your project so that everyone on the team shares the team's values. Here in Notepad2 we can see someone has used spaces for whitespace, like a savage. Whitespace appears as pale dots in this editor. I'll open this project in Visual Studio 2017 which supports the EditorConfig file natively. Notice the warning at the bottom where VS lets me know that this project has conventions that are different than my own. VS Format Document commands will use tabs rather than spaces for this project. Here is the same doc reformatted in VS: At this point I'm comforted that the spaces have been defeated and that cooler heads have prevailed - at least for this project. .NET Extensions to EditorConfig Even better, if your editor supports it, you can include "EditorConfig Extensions" for specific files or languages. This way your team can keep things consistent across projects. If you're familiar with FxCop and StyleCop, this is like those. There's a ton of great .NET EditorConfig options you can set to ensure the team uses consistent Language Conventions, Naming Conventions, and Formatting Rules. Language Conventions are rules pertaining to the C# or Visual Basic language, for example, var/explicit type, use expression-bodied member. Formatting Rules are rules rega[...]

The Book of the Runtime - The internals of the .NET Runtime that you won't find in the documentation

Wed, 27 Sep 2017 07:34:00 GMT

The Microsoft Docs at are really fantastic lately. All the .NET Docs are on GitHub and you can contribute to them. However, in the world of software engineering (here some a bad, mixed metaphor) there's instructions on how to use a faucet and there's instructions on how to build and design plumbing from scratch. There's additional DEEP docs that don't really belong on the docs site. It's the Book of the Runtime and for now it's on GitHub. Here's the BotR FAQ. If you're interested in the internals of a system like the .NET Runtime, these docs are a gold mine for you. The Book of the Runtime is a set of documents that describe components in the CLR and BCL. They are intended to focus more on architecture and invariants and not an annotated description of the codebase. It was originally created within Microsoft in ~ 2007, including this document. Developers were responsible to document their feature areas. This helped new devs joining the team and also helped share the product architecture across the team. We realized that the BotR is even more valuable now, with CoreCLR being open source on GitHub. We are publishing BotR chapters to help a new set of CLR developers. This book likely isn't for you if you're an app developer. Who is it for? Developers who are working on bugs that impinge on an area and need a high level overview of the component. Developers working on new features with dependencies on a component need to know enough about it to ensure the new feature will interact correctly with existing components. New developers need this chapter to maintain a given component. These aren't design documents, these are docs that were written after features are implemented in order to explain how they work in practice. Recently Carol Eidt wrote an amazing walkthrough to .NET Core's JIT engine. Perhaps start at the JIT Overview and move to the deeper walkthrough. Both are HUGELY detailed and a fascinating read if you're interested in how .NET makes Dynamic Code Execution near-native speed with the RyuJIT - the next-gen Just in Time compiler. Here's a few highlights I enjoyed but you should read the whole thing yourself. It covers the high level phases and then digs deeper into the responsibilities of each. You also get a sense of why the RyuJIT is NOT the same JITter from 15+ years ago - both the problem space and processors have changed. This is the 10,000 foot view of RyuJIT. It takes in MSIL (aka CIL) in the form of byte codes, and the Importer phase transforms these to the intermediate representation used in the JIT. The IR operations are called “GenTrees”, as in “trees for code generation”. This format is preserved across the bulk of the JIT, with some changes in form and invariants along the way. Eventually, the code generator produces a low-level intermediate called InstrDescs, which simply capture the instruction encodings while the final mappings are done to produce the actual native code and associated tables. This is just one single comprehensive doc in a collection of documents. As for the rest of the Book of the Runtime, here's the ToC as of today, but there may be new docs in the repository as it's a living book. Book of the Runtime FAQ Introduction to the Common Language Runtime Garbage Collection Design Threading RyuJIT Overview Porting RyuJIT to other platforms Type System Type Loader Method Descriptor Virtual Stub Dispatch Stack Walking Mscorlib and Calling Into the Runtime Data Access Component (DAC) Notes Profiling Implementing Profilability What Every Dev needs to Know About Exceptions in the Runtime ReadyToRun Overview CLR ABI Cross-platform Minidumps Check it out! Sponsor: Check out JetBrains Rider: a new cross-platform .NET IDE. Edit, refactor, test and debug ASP.NET, .NET Framework, .NET Core, Xamarin or Unity applications. Learn more and download a 30-day trial!© 2017 Scott Hanselman. All rights reserved.       [...]