Monday, May 15, 2017

Microsoft Build 2017 - Part 1

I know I've been spending a lot of time talking about Angular 2 (or 4) lately, but last week I was afforded the opportunity to attend Microsoft's annual Build conference in Seattle and, boy was I impressed.  I want to take a few posts to tell the world (and remind myself) about all the cool stuff I saw.  And since this is my blog I'm going to do just that.

So let me start with the Day 1 Keynote.  Yes, it was 3-ish hours long and there was a lot that I felt could have been cut out, but there was a ton of information they put out there that blew me away.  I seriously watched parts of the keynote with my mouth hanging open.  It was embarrassing.  So what was so cool?  Well, let's start with the Azure Stack because I've been in situations where this particular technology would have solved issues that we weren't able to solve at the time.

Azure Stack

Azure Stack is all the stuff we know and love in Azure, but deployed to other servers.  I remember a couple of years ago I was interviewing for a senior developer role with a company that was all excited about switching to Azure because they "could deploy it wherever they wanted".  I didn't take that job primarily because of that fundamental misunderstanding of what Azure iswas.  If Azure Stack had been available then I'd have been laughed out of the room for explaining to the Director of IT that what he had described was impossible... and also that company would probably still be in business.  At any rate, there are a variety of reasons that companies have avoided switching to cloud-based solutions and Azure Stack solves a few of them.  The examples provided in the keynote all had to do with remote-based workers and non-connected branches (like cruise ships), but the first thing that came to my mind were government organizations.  On at least two occasions I've had first hand experience with government agencies being unable to use Azure in particular because of legal restrictions on where their data can be housed.  They had to be able to show at any given moment that all of their information was stored in a particular state or country.  With Azure Stack they'd be able to do that because they'd be managing the physical servers running Azure!  This is an incredible option now!

Furthermore, SaaS companies using Azure (like my current employer) this opens up a whole new area of opportunities.  We can now sell our products to companies that are unwilling or unable to shift to a cloud-hosted solution like Azure.  We can write our code once and use it in the cloud as well as make it available for those offline solutions.

Outside of the keynote I also checked in with the Azure Stack booth and confirmed that Azure Stack is literally all of the functionality of Azure, but portable to any data center or proprietary servers.  I also asked for confirmation that Azure Stack customers would be able to - but not forced - to update when a new version of the software is released, and that was confirmed.  That means that late adopters of SaaS products can exist if they use Azure Stack.  SO COOL!  (Yeah, I'm gonna nerd out on most of this stuff so just get used to it now.)

Azure IoT Edge

OK, I have to admit that while I thought the MS demo for this was pretty neat, I didn't immediately see a benefit of using it on anything I worked on.  From what I understand - and this is mostly based on the demo they showed - this basically allows us to offload some processing from the cloud to individual IoT devices.  That is pretty darn cool, especially when you're talking about latency potentially costing money.  If you have a device - and endpoint - that needs some telemetry to know when to change things (maybe slow down or speed up production based on something else happening down the line) you can export that telemetry to the device itself and save the latency.  In the case of the demo this potentially led to millions of dollars in savings if a machine shuts itself down before something goes terribly wrong.  Pretty cool stuff, but again I didn't see any immediate application for anything I'm working on.

Azure Browser CLI

This one was cool for an obvious reason, and a not-so-obvious reason.  First the obvious reason: DUDE, THEY PUT AN AZURE CLI IN THE FREAKIN' BROWSER!  C'MON, THAT'S AWESOME!  OK, so what that means is that now anyone who is more comfortable scripting their commands than using the Azure Portal can now use the CLI in the browser itself.  There's nothing to install and nothing to add; it's already live and it already works.  Very cool for keyboard jockeys like me.

OK, so the not-so-obvious reason: they did it in bash... from Linux.  And what's more is they said during the presentation that basically "we'll get to doing it in Powershell eventually".  That's HUGE.  All my life Microsoft has taken the stance of "Windows first, second, and forever" and everything else can go suck a lemon.  When they have ported some stuff to other platforms in the past it's always been 1) a port, and 2) usually missing some features.  This time around they basically said "Linux does this pretty well so we're gonna start there and if the Powershell team decides they want to implement a Powershell version they can later".  That is simply an amazing turnaround and I could not possibly love it more.

Azure Portal Mobile App

This was another one that I didn't see an immediate use for, but I know several of the guys (sadly, yes, all guys because we do have a gender issue in technology) around me got very excited when this came up.  The app brings the Azure Portal to our devices so we can... do Azure Portal stuff on the go, I guess?  I can see this being useful if you're in DevOps and\or you're administering things from the portal frequently.  In my day-to-day I don't need to do this so while I see that it is cool, it really isn't that cool for me.

Visual Studio for Mac

I won't lie to you. I am 100% not excited about this one.  I mean, don't get me wrong, I know some Mac people and they're pretty OK.  My wife was a Mac person before I converted her.  But I don't know any developers who prefer Visual Studio who also prefer Macs.  I'm sure they exist, but I don't know any.  And I'm not one (I just don't care for Mac's OSs).  So it's not that this isn't exciting, it just isn't exciting for me.

I will say that I heard some pretty bad reviews from people who used the beta version of this so even if I was a Mac person I'm not sure I'd be too thrilled about this.

PowerPoint Translator

I don't think this feature got enough love in the keynote because frankly it's amazing.  As a side job I used to teach adults how to use computers.  I taught them everything from what a computer is through using Access.  I speak English and Spanish, but I still couldn't reach all of my students.  If I'd had PowerPoint Translator back then I could have reached more people.  Not many more, but more.  I've also talked to some friends of mine who are trainers in similar areas and they are very excited about this technology.

Just having the ability to provide closed captioning in another language as you speak is... well, it's amazing is what it is.  It's not the Universal Translator from Star Trek, but holy cow it's a huge step in the right direction.  I know we have things like Google Translate and Facebook has a translation feature, but this puts all of the power of a translation service directly into PowerPoint presentations with very little additional work - and no technical know-how - from the trainer.  I know there are corporate applications as well, but the first thing that struck me was the ability to reach more people with important information, like training immigrants how to use computers to find work.

Cortana

When I told my brother about all the cool stuff they were showing with regards to Cortana he said "Cortana needs to die". I tried to convince him that what I was seeing was really cool, but he didn't want to hear it.  I hope he comes around and at least looks into it because it really is really cool.  What do I mean?  I'm glad you asked!

Let me start by asking you this: did you know Cortana was available on iOS and Android devices?  You did?  Well... way to steal my thunder then... jerk.  I didn't.  Right off the bat, that's pretty cool.  I know iOS has Siri and Android has... whatever you call it when you say "OK, Google" and it does stuff, so this is just one more voice-activated AI-ish type deal you can have on your phone.  However, with Cortana on your devices you can actually integrate all of your stuff better.  And you can create new "skills" (yeah, I think it's a stupid term for it, too) for Cortana to learn to do stuff for you.  So let's say your company produces a SaaS for finding picnic baskets in Jellystone Park.  You can write a bot (more on that later, maybe not in this post, but definitely later) that then interacts with a Cortana skill so you can have users say to their phone "Cortana, ask Yogi where to find the closest picnic basket".  And with that, Cortana can check with your bot and return information however you deem most appropriate.  The demo from the keynote is pretty cool, but I don't think they did a good job of separating Microsoft Teams (which I think is also new, but I wasn't entirely sure) from Cortana's capabilities.  They also didn't do a great job differentiating between the bot and the Cortana skill so I had to do some more digging.

At the Cortana Skills booth is where I learned about bots and a little bit more about skills.  Basically the bot does the heavy lifting and can be integrated into lots of different channels besides Cortana.  But Cortana gets to do some of the fun stuff when you write a skill.  The booth guy was helpful, but ultimately it sounded like I needed to learn more about bots.  Then I went to the Cortana Skills presentation on day 2 and got even more information.  I hope that presentation gets posted to Channel 9 because it was actually really helpful to watch a developer write a skill and deploy it.  He showed us in the demo how we can change Cortana's output to include things like a card in the search results (similar to what Bing does right now if you search for something).  Cortana isn't just voice activated, but it is intended to be primarily voice activated so you have to consider that as well.  All-in-all I saw some pretty neat applications for some things I'm working on now and in the near future.

OK, this post has gotten a bit out of hand.  I'm not even through the whole keynote yet and I feel like I've written a novel.  I'm gonna wrap this one up here and try to add another one tomorrow.  I have a lot more to cover and some of the really cool stuff is yet to come, not to mention the fact that I haven't even touched on the Day 2 Keynote.  Man, it was a packed 3 days.