Scott Hanselman

Rollup: Microsoft HoloLens, Surface Hub, Windows 10, Xbox One game streaming and more.

January 22, 2015 Comment on this post [38] Posted in Musings | Win10
Sponsored By

Disclaimer: I currently work for Microsoft, but this blog, and the words within are all my opinion. Mistakes and dumb ideas are mine. My impartiality or lack thereof stands on its own.

I just got done watching the Windows 10: The Next Chapter live video stream. There's the Windows 10 news, updated interface, and more. As I get new Windows 10 builds I will go over them on my YouTube Channel. Please do subscribe. But let's talk about the truly magical stuff first.

"Any sufficiently advanced technology is indistinguishable from magic." - Arthur C. Clarke.

Microsoft HoloLens

Wow, an augmented virtual reality headset from Microsoft? Is this Oculus? Or Google Glass? It's something else. It's clear so you see the projected images as if they are in front of you. It's not a tiny screen like Glass or a screen that blinds/immerses you like Oculus (I have an Oculus).

This reveal totally puts the Microsoft purchase of Minecraft in context. We'll surely see Minecraft for Windows 10 and HoloLens in the future.

My first impression was, oh, Glass? Then, oh, Oculus. But this is more like immersive augmented reality. The real question is going to be, how smooth can they get the interactions? Will it be like Kinect or LeapMotion? Truly amazing. This could be the future of Windows itself.

Holy Crap It's VR Minecraft

This is clearly not something for wearing as you walk down the street (yet). Amazing.

The first step is allowing one person to see a hologram. The challenge is then letting everyone in the room seem them. I'm looking at you, Tony Stark.

Virtual stuff floating in front of a HoloLens

Microsoft Surface Hub

It looks like the Microsoft acquisition of Perceptive Pixel has culminated in a new brand for Surface - The Microsoft Surface Hub. It's a 80" 4K 100 touch points touchscreen display that runs Windows 10, a special OneNote, and includes cameras, microphones and Skype for Business (Lync/UC), and Office. Will it be priced within a small office's budget, or are we talking Tesla money here?

Two people working on a Microsoft Surface Hub

I gotta say, I'm surprised and impressed. Satya's vision is definitely clear.

Windows 10

We also learned a lot about Windows 10, including this slide that I didn't feel really HIT hard enough. I read this to say that you can upgrade from Windows 7 to Windows 10...basically everyone gets to go to Windows 10 for free and keep it. You own the license.

It says "Free upgrade for the first year" which I think is confusing because it is implying some kind of subscription or at least yearly license.

But if you read the details here it seems like you have a year to upgrade and if you/we do (from 7/8/8.1) then we get Windows 10 free and it's supported for the lifetime of the device. We all get free upgrades and they will be supported, is how I read it. But we have a year to get the free upgrade, and after that it costs.

Windows 10 upgrade will be free

We saw lots of Windows 10 features and things including:

  • Windows 10 is for PC, Xbox, Phone and Tablets
  • All new Web Browser codenamed "Spartan."'
  • Office Universal apps - Phone, Tablet, or PC, Office runs on every platform.
  • You can stream/play Xbox One games from your Xbox One to your PC.
    • "Players will also be able to play games on their PC, streamed directly from their Xbox One consoles to their Windows 10 tablets or PCs, within their home"
  • Surface and "2in1" devices will switch between desktop mode and tablet mode depending on the presence of a keyboard.
  • The Cortana personal assistant comes to Windows. This includes dictation as well!

So all these devices will run Windows 10.

Windows 10 runs everywhere

The Satya quotes that stuck out to me where very declarative and aspirational.

"We want to move from people needing Windows, to choosing Windows and loving Windows. That is our bold goal with Windows." - Satya Nadella

Now it's time to watch it all happen. 2015 could be a big year for Microsoft.


Sponsor: Big thanks to the folks at Infragistics for sponsoring the feed this week! Responsive web design on any browser, any platform and any device with Infragistics jQuery/HTML5 Controls.  Get super-charged performance with the world’s fastest HTML5 Grid - Download for free now!

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

Quake Mode Console for Visual Studio - Open a Command Prompt with a hotkey

January 21, 2015 Comment on this post [45] Posted in Tools | VS2012 | VS2013 | VS2015
Sponsored By

Back in March of 2013 when Phil Haack was deep into GitHub for Windows development we were going back and forth in email about how to quickly get into a shell from a specific project. I hate always having to paste in a "CD somedirectory" so I usually use some kind of "Command Prompt Here" right click menu.

TIP: A lot of people don't realize that you can Shift-Right-Click on a folder in Windows Explorer and you'll automatically get a "Command Prompt Here" menu item!

Anyway, Phil and I were emailing and he said (remember that GitHub for Windows (GHfW) was in development)...and I've always loved how the Quake console pops up when you press ~ in Quake.

I feel ashamed I didn't know this, but I just discovered that CTRL+ALT+D brings up the shell when in GHfW. We are considering ways to make our keyboard shortcuts more discoverable. Kind of like the `?` support we have on GitHub.com. We should totally make that a ~ shouldn't we? Like in Quake, Doom, etc.

And they did. When you're in GitHub for Windows just press ~ and you'll automatically get a new command prompt (or Bash Shell or PowerShell) and be dropped in to the current folder's directory. It's my most favorite feature about GitHub for Windows.

I mentioned this to Mads Kristensen yesterday and said we should build this feature into Visual Studio. Rather than waiting, he just created a little single purpose extension called Open Command Line. It works in Visual Studio 2012, 2013, and 2015.

Open Command Line

But it's the hotkeys that make it awesome. Now I'm not sure how I lived without it. Alt-Space and it opens up a prompt right where I need it. Go download the Open Command Line free Visual Studio extension now, and remember, it works in Visual Studio Community which is also free! You can set it to open CMD, PowerShell, or a custom prompt.

Oh, by the way, the overlay there that shows what hotkey I'm using, that's Carnac.

Related Links


Sponsor: Big thanks to the folks at Infragistics for sponsoring the feed this week! Responsive web design on any browser, any platform and any device with Infragistics jQuery/HTML5 Controls.  Get super-charged performance with the world’s fastest HTML5 Grid - Download for free now!

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

Reality TV for Developers - Where is Twitch.tv for Programmers?

January 17, 2015 Comment on this post [41] Posted in Musings
Sponsored By

Twitch.tv is basically YouTube where you can watch other folks play video games. It initially sounds ridiculous but it's actually surprisingly compelling. You can see how other people solve problems LIVE. Interestingly "watching interesting people solve interesting problems" is a good description for many of my favorite movies and TV shows.

Where is Twitch.tv for programmers? I'd like to watch a reality TV show where a competent and interesting programmer creates something interesting. There is CodersTV but somehow it isn't quite there. Minecraft's famous creator "Notch" has used Twitch to stream some of his crash coding sessions for gaming events like Ludum Dare. There is a small "Game Development" category on Twitch but it's not exactly Must-See-TV.

While I haven't seen any videos from Microsoft of developers live coding, maybe there should be. Certainly there's been a lot more transparency around design meetings lately. There was a great tweet recently that pointed out an unusual video on Channel 9, Microsoft's "inside the cockpit" website. The video is a nearly 2 hour API Review for the .NET Core Libraries.

Drink that in for a second. A compliment on a video of a two hour meeting? And the video has over 15,000 views...folks like to be a fly on a wall in meetings like this!

The ASP.NET Team has been hosting weekly Community Standup meetings using Google Hangouts. You can watch the archives here, or join us every Tuesday (unless someone is travelling, then we'll move things a bit).

Do you like this kind of video? Would you like to watch some real coding with or without running commentary? Do you enjoy seeing design meetings and real decisions being made...complete transparency?


Sponsor: Welcome this week's feed sponsor, Stackify! - The only developer-friendly solution that fully integrates .NET error & log management with application monitoring. Easily isolate issues and focus your efforts – Support less, Code more. Free trial

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

How to map an Insert Key on your Surface Pro 3 Keyboard

January 13, 2015 Comment on this post [30] Posted in Tools
Sponsored By

I'm very happy with my Surface Pro 3 and continue to use it happily. However, the Type Keyboard on the Surface Pro 3 lacks an Insert Key.

Surface Pro 3 Type Cover

For some this may feel like a real problem, but remember your computer (and the internet itself) is not a black box. You can remap the keys if you like. The Windows, via the registry, supports keymapping at its core. SharpKeys is a free little utility that lets you easily create the registry entries you want to remap the keys the way you'd like them.

Here's a screenshot of my registry where I've remapped Right Alt to be Insert. But who wants to edit the registry manually, right?

The Registry is scary

Here's SharpKeys, where I mapped Right Alt to Insert on my Surface Pro 3 Keyboard. Then SharpKeys writes the Scancode Map key for me. Just log in and log out to see your changes in action.

Disclaimer: You can do dumb stuff and mess yourself up if you disable a key you REALLY need. That's why I changed just Right Alt, since I still have Left Alt. HOWEVER, some apps (VMWare, etc) you use may need specific keys, and you'll want to be smart about what you map to other keys.

You can click Type Key and map left to right, or pick from the list yourself as I've done here.

Mapping Right Alt to Insert in SharpKeys for my Surface Pro 3

It works great! Hope this helps you.


Sponsor: Welcome this week's feed sponsor, Stackify! - The only developer-friendly solution that fully integrates .NET error & log management with application monitoring. Easily isolate issues and focus your efforts – Support less, Code more. Free trial

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

NuGet Package of the Week: Polly wanna fluently express transient exception handling policies in .NET?

January 13, 2015 Comment on this post [13] Posted in NuGet | NuGetPOW
Sponsored By

LOL at my own post title. Pardon me.

Install-Package Polly

Michael Wolfenden has a very clever open source library called Polly. Polly is a .NET 3.5 / 4.0 / 4.5 / PCL library that allows developers to express transient exception handling policies such as Retry, Retry Forever, Wait and Retry or Circuit Breaker in a fluent manner.

Handling exceptions can be a hassle sometimes. Not just setting the try/catches up, but deciding on the policy for the catch can make the exception management code more complex than the method itself!

Polly has a fluent interface to make expressing rules like that much easier. For example:

// Single exception type
Policy
.Handle<DivideByZeroException>()

// Single exception type with condition
Policy
.Handle<SqlException>(ex => ex.Number == 1205)

// Multiple exception types
Policy
.Handle<DivideByZeroException>()
.Or<ArgumentException>()

// Multiple exception types with condition
Policy
.Handle<SqlException>(ex => ex.Number == 1205)
.Or<ArgumentException>(ex => x.ParamName == "example")

Then you can add Retry() logic, which is fantastic.

// Retry multiple times, calling an action on each retry 
// with the current exception and retry count
Policy
.Handle<DivideByZeroException>()
.Retry(3, (exception, retryCount) =>
{
// do something
});

Even do retries with multiplicative back off!

// Retry a specified number of times, using a function to 
// calculate the duration to wait between retries based on
// the current retry attempt, calling an action on each retry
// with the current exception, duration and context provided
// to Execute()
Policy
.Handle<DivideByZeroException>()
.WaitAndRetry(
5,
retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)),
(exception, timeSpan, context) => {
// do something
}
);

Once you have set up a policy, you execute on it.

Policy
.Handle<SqlException>(ex => ex.Number == 1205)
.Or<ArgumentException>(ex => ex.ParamName == "example")
.Retry()
.Execute(() => DoSomething());

Polly also supports the more sophisticated "Circuit Breaker" policy. For more information on the Circuit Breaker pattern see:

Circuit breaker tries and then "Trips the circuit breaker" so you'll get a BrokenCircuitException for some amount of time. This is a great way to give an external system to chill for a minute if it's down. It also externalizes the concept so that you could theoretically handle a down database the same as you handle a down external web API.

// Break the circuit after the specified number of exceptions
// and keep circuit broken for the specified duration
Policy
.Handle<DivideByZeroException>()
.CircuitBreaker(2, TimeSpan.FromMinutes(1))

You can explore the code, of course, up on Github in the Polly repository. Go give the Polly project a star. They've recently added async support for .NET 4.5 as well!


Sponsor: Welcome this week's feed sponsor, Stackify! - The only developer-friendly solution that fully integrates .NET error & log management with application monitoring. Easily isolate issues and focus your efforts – Support less, Code more. Free trial

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.