Excited, because right over here in the back, we have Scott Hunter and Mike Harsh with Beth Massey. I want you to grill them all about .NET. Let's go to that right now. Hey guys, this is Beth, and I'm the Product Marketing Manager for .NET. And I'm here with Mike and Scott. You guys wanna introduce yourselves? Sure, I'm Mike Harsh. I'm at GPM on the Windows platform team. Scott Hunter, the director of PM on the .NET team. All right, so we had some amazing .NET announcements today, didn't we? Okay, so I think the number one on Hacker News all day has been the open sourcing of WPF WinForms and WinUI XAML Library.  Okay, so yes, it's been trending on the number one spot on Hacker News all day, which has been awesome. That's fantastic. I think there's like 225 comments already, so it's been awesome to see. So there's been some comments on Twitter too. So folks have talked about what is the story with UWP? Why is that not being open sourced? So there's a little bit of naming confusion, so I just wanna straighten that out a little bit. So Windows UI XAML is the official name that we're calling the UI SAC that's in UWP. So the UI that is built into Windows for the UWP program model, we're calling Windows UI XAML. That name is actually reused. That is the name of the NuGet control package that we released to build. And that is what was the first part of Windows UI XAML that was open sourced today. That will be the project on GitHub that we eventually put all of the Windows UI controls and the rest of the Windows UI XAML framework into. And so timing-wise, that will kind of happen throughout 2019. Okay, gotcha. So not everything is open right away, but as we make more code available in the coming months. Is it primarily the controls? Today, what's available is a set of the controls and the things that are in the Windows UI library to get packaged today. Those are all open sourced. And then we're gonna be rapidly adding more controls to that and then a little more slowly, but still hopefully in the next year, all of the rest of the framework. So the app layout itself will actually be there as well. Yeah, and the layout engines, all of the data binding, all of the things that make a UI framework, a UI framework, not just controls. Awesome. And I know this was like one really big ask from the community. So it's really nice to see that's happened today. So really exciting. Do we already have pull requests and everything actually? There's been some really interesting discussion. I've been paying a lot of attention to the WinForms repo. So I kind of, I should admit, I started my first job at Microsoft in 2000 was as a PM on the WinForms team. So I worked there for about six years. So I have a lot of passion for the WinForm space. And so I've been really paying attention very close to that repo today. And there was, I think, two really interesting discussions. I mean, Orin had the first pull request that Scott did on stage. That was really cool to see. One kind of spontaneous thing that happened with the community today was some of the icons. So the WinForms had to work all the way down to Windows 98. And Windows 98 didn't have a built-in hand icon. And so there was a hard-coded resource. And that meant that you always got the hard-coded resources. And if they changed the system, you didn't get the new ones. And so there was a pull request to say, why don't we update this and not use the hard-coded one anymore because .NET Core 3 works down to Windows 7. Obviously, Windows 98 hasn't been supported for a minute. And so that was a pretty cool thing to see. And then there's this other thing called the Task Dialog, which is a Windows feature. It's like a super message box. And there was basically a discussion around adding a new class for that to both WinForms and WPF so you can get kind of a super message box. So it's already like the community's kicking in. Good things are happening. That's awesome. Well, okay, so let's talk a little bit about .NET Core 3. And it's supporting WPF and WinForms. It's pretty cool, too, right? Yes. What's the big benefit of that, Scott? What do we get? When .NET Core was created, it was meant to solve some of the problems we've learned over the years building .NET Framework. The primary one being, sorry for my voice.  The primary one being, how many .NET Frameworks can you have on a machine? So we technically support two today, .NET Core 2, I mean, .NET Framework 2 and .NET 4X. 3.5 is actually a variant of two. So there's always been only two versions on a Windows machine at a time. So one of the benefits you get with Core is obviously you can have as many cores side by side by side as you want. No longer do you have to worry about risking and application breaking because the framework changes. I see. And we don't try to break anybody's applications, but the reality is fixing a bug, maybe you depend on a bug and you don't know you depend on a bug, that happens. I mean, stuff just happens. We wouldn't give customers more control. Another cool thing you get with .NET Core is you don't even have to depend on a framework being on the machine. You'll be able to actually take your WinForm WPF application, compile it down to a single lexie that is self-contained, contains the framework, your application, all of those things. And I think what it really means is, as a developer, you can decide to be on the latest version of a framework and not worry about IT having to go and update all the boxes. So it's like X copy deploy for WinForm. It is. It's awesome. NWPF? NWPF, right. And then there's one final other big advantage, I think, and that is Core is where we will try new APIs. And so the latest, greatest APIs are in Core today. Some of the new C-sharp features will only be in Core. So if you want to be on the bleeding edge of APIs, the bleeding edge of language features, Core is the place to be. That said, .NET Framework's not going away. It will never go away. I said this is my talk today. I'm like, it's part of Windows. We have a lot of applications on Microsoft that rely on products. I have this app on my laptop called Visual Studio. Visual Studio, exactly. Built on .NET Framework. Who's ever heard of that, Scott? Right. It will be supported as long as Windows is supported. So the idea is that .NET Framework itself is going to be safe and reliable and always supported on Windows. And that .NET Core will have more of the bleeding edge features. If you want to take something, you can. You can deploy it with the app, so you don't risk breaking other applications. And so that's why we can move faster with .NET Core. Is that what you're saying? And you can be on there. There's two .NET Core. There's the LTS train, which is the long-term supported train, which about one of those comes out a year. And there's the, I want the every other month bits. Got it. Faster track. So you can choose which track of core you want. What LTS are we on now? 2.1? 2.1. 2.1. OK. And so the next LTS will be 3.1. OK, gotcha. So we'll ship a 3.0 sometime in the July-August timeframe, I would hope, of 2019. And that means that the LTS build would show up somewhere in the October-November timeframe if we hit those dates. So what about on the server side? I mean, we've got to have some improvements in .NET Core 3 for ASP.Net developers, too, right? That's the biggest misconception, I think, that people had. We were so heavily focused on talking about desktop at build this year. Yeah. We were so excited about bringing WinForms at WPF to core that we didn't talk a lot about the server. The server is just as exciting as, to me, is the client side. One of the coolest features of all is the client side. One of the coolest features we're going to have is something that we've been, it was called, it was code named Blazor. And this was letting you actually write C-sharp code in the browser. And this is not like fake C-sharp code. This was actually the assemblies download and run in a sandbox. Is it the WebAssembly? In the browser using WebAssembly. And we've been showing that for the last year or so. The first flavor of that will ship as part of Core 3 as well. It'll be part of ASP.Net Core 3. Your code will actually run on the server, but the programming model is still the programming model where it appears that you're writing C-sharp in the browser inside of the HTML inside of that. So you write, they're called razor components, right? Razor components. Great UI, all in C-sharp. And so you have a full stack web development with C-sharp. Full stack. You don't have to write JavaScript at all. You don't have to rely on Angular, React, View. You don't have to write JavaScript. I mean, we're not trying to, this is not a war against JavaScript. Use the skills that you have. If you have a lot of C-sharp skills and you want to use those in the browser, bang, you know, use those in the browser. It's, you know, a context switching sometimes, too. You know, I mean, I think that's why the appeal of Node, you know, Node.js because you're just using JavaScript on both sides, right? So these C-sharp developers can enjoy that as well. I think that's fantastic. Actually, there's a question here that kind of relates to ASP.Net. Are there any modification and requirements for ASP.Net? So the best way to answer that question would be we just shipped ASP.Net Core 2.2 today as well. So not only do we have the 3.0 announcement, we just had the 2.2 announcement. What I would tell the customer is they should move to 2.2. All we did for 3.0, the 3.0 build that came out today basically has the exact same ASP.Net Core 2.2 bits that shipped as part of 2.2. So there's no benefit to move to 3.0 yet. Wow, preview one comes out. Sometimes next year we'll start having the next innovations beyond the 2.2 stuff. They'll start showing up in the 3.0 bits. But today, your best bet is to stay on 2.2. But we aren't anticipating any major changes that you would have to make. Our goal is to make it as easy as possible to move. There'll always be some breaking changes. 2.0 to 3.0 is there's some breaking changes. We assemble the product differently than we did before. I mean, if you're an ASP.Net customer, you're going to have a lot of changes. And so there was .Net Core and then there was ASP.Net Core which is kind of separate. Now we're shipping the whole thing as a monolith again. And that's to enable a bunch of cool scenarios. We have partners like Red Hat that have a version of .Net Core they ship. We want ASP.Net Core to be part of that. So it all has to be built from source. Cool. So how will we acquire the WinForms and WPF? New get packages or how is that going to work? You just go download the 3.0 SDK and type .Net new WinForms and you're good to go. So I'm going to show a little demo of this. I can do a little demo. I'm kind of intrigued. So you're going to take a WinForms app on framework and you're going to port it to Core. So I've got a and first off and he'd also preface Preview 1 is pretty rough. We knew it was going to be pretty rough. We primarily focused on the actual runtime. So most of the work has been done in the Core 3 runtime. The tooling is a little bit behind us. Meaning that File New in VS 2019 does not have WinForm for Core or WPF for Core. We'll have more previews. We don't have visual designers yet. But I'm going to show you how you can actually build a core project and actually use the designers from the full framework application. So if you look at my laptop I've got Visual Studio 2019 here and I've got three apps. And if I run it, this is a memory matching game. You know, you keep clicking these things until you find the the ones that match and you click through and so we thought, hey, let's just port this to Core. So it's going to be a little crazy. What I'm going to do is I'm going to go here and my command prompt and I'll do .NET new WinForms and I'll say output will do matching game core. So that basically builds me a skeleton of a WinForm application on Core. So let's go back to our solution and we'll go add that existing project. So now we have a core WinForm app in here and if I say it in a starter project it runs and builds Hello.NET Core. But really what I want to do is I want to get that game to cheat a little bit. So one of the features we've had in core for a long time is our project system is pretty cool that if you look on the screen here I've got the forums, the program CS and what not. If I look at my project file they're not in the project file. It points at the folder. It points at the folder and we glob in all the C-sharp files. I can also add it glob in from somewhere else. So what I'm going to do is I'm going to cheat a little bit here. I'm going to go take all the code and let's just erase it. I'm going to run that CS project again and I've just for screw this up on stage and paste some code over here and what I'm going to do is paste in an item group that tells the system to basically include files from a particular folder. So in our case we'll just erase this. There you go. So as I say that notice that all the files from the full framework app and the core app. So I'm cheating. I'm aliasing into the existing project. I see. So any code changes that make to these files happen in both the full framework and the core application. Scott, good engineers don't cheat. They're efficient. Now the next thing is if I build this I'm going to see a couple of errors. So let's do a build and first off I get a duplicate type assembly company attribute attribute and that's because in the .NET framework application we typically have a properties app with an assembly info. In core we said why have a file that was basically a place to put metadata. We said in core let's put the metadata in the project file. And so what's happening is in this particular case .NET core is trying to dynamically generate one from the project file and so there's two of these things. So we'll tell it to generate assembly info false better. Now my matching game uses this game logic and I need to reference that as well. So I'll just come over here and we'll add a reference. So you're basically switching project systems and so you're kind of doing some manual changes around the project system itself but not the source code. So the source code is all the same now that reference is there and now I've got the exact same app and it works just the same as it did before. Okay so that's a little manual because we don't have all the tooling yet but as you can see guys you can take some of your apps that you have today and you can see if they're running on core and how they perform and that kind of thing. The repos have instructions on how to do this for both one form and WPF and also if you hit more than just project system issues you can use the API port tool to find out which APIs aren't supported currently and you know the set of APIs that's going to be in three isn't fully baked yet too so if you open an issue with the API we can take a look at that and add that back. If you look at my gaming logic DLL or assembly if you look I actually had a porting problem and because I had a porting problem you can see that I installed the Microsoft Windows Compatibility pack. That's a NuGet package so .NET Core by itself it was designed to be cross platform which means we can't ever put Windows specific things into .NET Core so we have a NuGet package we put out a while ago in the 2-1 time frame I think and what it does is it basically brings a lot of Windows things back it brings registry back it brings directory services back management back and so if you try to find APIs missing the first thing to look at is go and grab this NuGet package stick it in. In my case the game actually saved your high score in the registry. I see. Got it. That's cool. There's another interesting announcement and feature about .NET Core 3 that I wanted to ask you about these things called XAML islands. XAML islands is a Windows feature first shipped in the release that I think it's just starting to roll out now internally we called it Redstone 5 I forget what the actual official name is because the marketing team picks forgettable names on purpose. It's just Windows 10 and there will be some additional improvements on that feature that are coming out in spring release for Windows but basically the idea is you can take a piece of Windows UI XAML control and you can embed it in a WinForms or WPF or anything like that. And then you can start to use new UI features that's what Scott Hanselman showed on stage today with the signature control that's the main canvas and the tool bar from the Windows UI XAML library and just plop that into an existing app. So that's what that feature is all about and that works in both .NET Core three apps as well as .NET framework apps. Cool. So basically you're saying I could take my app and slowly take a onesie-toosie approach to moving it forward. But our goal here is to really bring all these platforms together so you can use any feature in any app type regardless of where you started from. You shouldn't think of it as different platforms. It's just one set of APIs you can choose from based on what you want to do. So I can get a modern browser in my WinForms app now. That's right. That's very similar to that concept that's very similar to what we did in ASP.NET years ago. Well, now we don't care if you start with the WinForm app a WPF application. You want to go ahead and add a XAML UI control. Boom. Just to go to that, right? Just choose the UI tech that you're comfortable with. That's fantastic. And get all the features.  WinForms is like 2002, right? I mean it started from the beginning. And then WPF was like 2007-08. So these apps are not that old. They've got some good vintage to them. Yeah, but they're probably business critical. They have to be modified and they have to be updated. But there's still a lot of people actively doing WinForms and WPF development. There's over one million monthly active WinForms developers. I think it's two minutes. I think it's more than that. So do we get performance benefits as well as part of being on the core runtime? So you will get some performance benefits. We've, you know, obviously ASP.NET Core has been performance has been a big push with us. You've seen us take the web stack and be in the tech and power benchmarks. And as a result of that, there's been features added to language span. There's been modifications to some of the BCL to make some of those results happen. You might ask, well, why did you make those same changes into .NET Framework? Well, the reality is like we changed from the file APIs to the .NET Framework. I can never put it in .NET Framework because it would break stuff. And so there are API improvements that also .NET Core is open source, so anybody can contribute. And so maybe something that's too small that we would not look at, but somebody makes a performance fix from the community and we accept it. So you will find that, you know, core is going to be a little faster than .NET Framework. Yes, so kind of a discussion between the two of us. You kind of started to say before what the XAML library is, how does this whole thing kind of fit together with UWP? So you should really think about basically if you have a WinForms review application and you're happy with that and you want to add some new Windows 10 features to a desktop app and you have an existing desktop app, you can start adding those features. I mean, there's many of the WinRT APIs that you can't use in an existing application. If you want to build an application that, you know, is fully topped the bottom brand new and modern, you can start with UWP application. There are, there's a lot of investment we're doing in the UI stack there to kind of address some of the gaps that, you know, customers have told us about for building line of business applications. You know, like shore up some of the data story and form validation that we're actively working on. But the real reason that you would pick especially if you don't, if you're building a new application is you can target other Microsoft devices. If you want to build an app on Xbox or Surface Hub, that's your, that's your route for that. Got it. Okay. So XAML Islands are really desktop related only. Got it. Okay, that's very cool. Cool. Alright, so want to talk about a couple more announcements, Scott? I want to show one more demo real quick. Give me one second. Wow. Two demos from Mr. Hunter. Well, we showed making that game Yeah. using WinForms. Uh-oh. Is this going to be in a browser? Let me shrink this so it fits in the screen for everybody. We also took that same game. It just happened to be that game was written in a great way where all the logic of the app was written inside of that game logic assembly or class library. So it was very easy to go take the same UI and build it in the web. And so I shared that same project. It's a standard two class library. I shared it across a blazer app. And here I have the same game running in the browser. Oh, that's so hot. That's cool. That's so hot. So Wow. I thought I would just show that.  That's cool. And we keep innovating and innovating and bringing in more workloads there. Like we have ML.net as well from machine learning and AI. We've been doing a lot of work for IoT. Azure IoT runs on some .NET Core stuff. And so in the blog post on .NET Core 3 today, we talked about getting serial port access and IoT for Linux. We're going to do some fun IoT stuff today too. So there's crazy stuff all across .NET. That's very cool. So actually, let's ask, here's a question from no content, a really cute handle. I like that. Well, .NET Native will become for WPF and WinForms now since it's on .NET Core. So you want to talk a little bit about what .NET Native actually even is? Sure. Yeah, so .NET Native is the ahead of time compilation story that UWP apps use today. And so if you're super familiar with it from developing there's definitely some quirks around it because it basically looks over all your code and basically ahead of time compiles it to x86 or ARM. There's some features in .NET like reflection. If you don't have a type there that's already been generated, you basically will kind of get a missing method exception. There's some bad things can happen there.  So it is a very interesting story. But I believe that Scott can talk about the the AOT story for .NET Core is going to go in a slightly different direction, I believe. Yeah, we haven't really announced that direction, but you said which is a great point. As we started building the WebAssembly work that's the Blazor stuff. You need an AOT solution. Do we use .NET Native or do we use something else? Currently the Blazor work uses mono actually. Okay. Because that runtime had more support for WebAssembly types of things. The one thing we want to be very good when we're very clear about is when we do a new native implementation we'll do it where .NET can be .NET all the time. Like Mike said .NET Native made some sacrifices for security and performance by removing parts of .NET. Whatever we do in the future we'll give you an AOT that actually runs all of your .NET code. So it might mean that we have to use an interpreter along with some of the native code. But I want to make sure that whatever .NET we give you is the full .NET. And then if you want to go dial some of it down, if you want to go turn reflection off for security reasons or size of device or whatever because you made this decision to do that you understand that there's less compatibility there than there was before. No surprises basically. But I don't think the AOT wave will be after the .NET Core 3 wave. So we'll ship .NET Core 3 with Blazor running on the server side and hopefully we'll start previewing some of the AOT stuff after that. Cool. And I think to close the question a little bit for no content there. Basically I want to make sure that the AOT story that we developed for Core also applies to UDP. So you have again one can, you know, all this is about having consistent .NET story everywhere and we want to make sure that we kind of close that gap. We've slowly been trying to get to what we call one .NET which is one set of compilers, one set of garbage collectors, one set of jitters, one set of APIs. I see. And you'll continue to see us shrink and share stuff more and more across the various runtimes. Today the runtimes would be mono .NET Core and native. Gotcha. And because open source has really kind of like changed that culture so now we can actually kind of do this now right? I mean before it wasn't possible. Certainly easier. But it takes, AOT is hard so it'll take some time. It'll take some time. Cool. All right. By the way Skullcrusher for Life, you are awesome. Did he just build that demo while in the middle of the session? Nice. So that's, shout out to Scott. Nice job dude. One more question here. Can I now use WPF and or WinForms from PowerShell Core and or on Linux or Mac? So I don't actually know how to answer the PowerShell Core question. The Linux or Mac is so basically WinForms and WPF still rely on a bunch of Windows APIs for input, output, for drawing and so those are still Windows desktop only components so we have nothing more to share there as far as announcements. I'd like to add to that though, people ask this question all the time. So we've been talking about .NET Core 3 and desktop for a while and it's like hey, you're going to make WPF cross platform or you're going to make WinForms cross platform. I don't really think you want a WinForms app looking like a WinForms app on a Mac or a Linux machine. So I think we haven't decided or even the industry has not decided yet what the best cross platform UI story is. And so while it sounds great to say WinForms could run on a Mac, a Mac user would go, why do I have this weird X in the window? I don't have the dots over on the left side that doesn't feel like they match. Why did you make my Mac look like Windows 95? It would make a Mac look like Windows 95. So I don't think these are the right technologies for that. I don't think Microsoft today has a story on what cross platform UI is. That's something Mike and I would love to work on in the future but we're not there yet and so I but yeah, these are Windows tech. I think for the PowerShell one that PowerShell core runs on Windows Mac and Linux.   I'm sure you could use inside but if it's going to you know, basically if it's WinForms, it's going to do anything H-Win related or you know, draw something. Yeah, it's not going to work. Yeah, it's not going to work. Okay, make sense. Windows is .NET core to build self-contained executables. Is it similar to Go-Ling? That's a good question. Yeah, so that's kind of a long roadmap discussion again. So what we'll do in the 3.0 timeframe is we will give you a, we'll have some technology we have that will basically take the assemblies that make up your application and compact them into a single Exy. It still is all those individual components. They're just package better into a single Exy for you. Okay. The Go question is more of are we going to provide native Exys on those platforms? And that comes back to the AOT store we talked about earlier for WebAssembly and for .NET Native. Right. And what ahead-of-time compile AOT is something we are definitely looking at post the 3.0 wave. Okay, great. Exciting. Alright, so one more question here. Are you going to enable enable application domains and DLL unloading? So app domains is a good one. That is, that is something that obviously as we've been working with partners to support their WPF and WinForms apps, it's come up in it. No. It's pretty rare that people actually need this kind of process level isolation like features, but there are some APIs on AppDomain that are useful. And so we're working to create an AppDomain class that has a lot of API functionality that, you know, more or less but doesn't actually have the kind of code isolation of an AppDomain, but it has some of the additional features that people, we found people using from that perspective. Yeah, a lot of customers use AppDomains today to load extensions and, like, even Visual Studio. I'm sure you're using AppDomains when you install some other extension to Visual Studio. It lets them load some third-party DLLs into the application and you can unload them. We're going to build a new library on top of Core for doing that. Very cool. It won't be AppDomains. AppDomains actually combined a whole bunch of random stuff together. Yeah. And some of it didn't work very well. I see. And so we don't want to bring the stuff that didn't work very well forward to the core. But, like, just to suggest these things together that, you know, and we could make an AppDomain API shell, basically, or shim that would use the, you know, do the loading and unloading, but, you know, so it would be API compatible with the existing code but then could call the new better functioning, actually APIs under the covers. But we'll give you the same functionality that most people want to use it for, which is loading extensions. We're building a new API right now for that. Cool. Awesome. And as a general shout out to any API questions, the best thing to do is to use API port on your code and, you know, either send us a report or share that via a GitHub issue so we can keep track of these things. Because now that we have a public base to keep track, it really helps us steer the roadmap. And we had a blog post about, unfortunately I don't know it off my head, the URL, but we had a blog post in August that we had a lot of people on the team put up. And we actually had a tool you could actually run and just point it at your exe, and it would basically look at the APIs and all this, so you felt safe. It would show you the output of what it was going to send. And then you would press send, it sends us the APIs. That information helps us a lot to know what, what APIs to port. Okay, so that we can take a look and say, hey, we know a lot of people use APIX, we're going to support APIX. And this is not on my stupid, it basically just says, these APIs as many times, not necessarily what you use them for, it's not terrible news or anything like that. That's awesome.  It's a common question. Would you like to host the next session? No. Another one that comes up a lot is, what is our story for WCF? I thought before I wait for it to show up on the screen, I thought we'd just talk about it a little bit. Let's talk about WCF. A lot of .NET framework applications are using WCF or they're using .NET Remoting. They're using .NET Core at this point. But we are looking at alternatives. There is GRPC, which is an RPC model, which is very similar to a Remoting or a WCF model. Okay. And so the ASP.NET Core team is working with the GRPC project themselves to make that thing have first class .NET support and actually make it, like it feels very similar to like an ASP.NET or something else would, so we're looking at that. Okay. And we're also potentially looking at parts of service model, which is the guts, the low level bits of WCF that we could bring forward without bringing all of WCF. So we're looking at various angles of how do we solve the RPC problem. Because that is a valid concern and we need to have one on .NET. That's a good point. Do you guys want to talk a little bit about the .NET Foundation announcement today before we have a little bit of time here? Well, of anybody that should talk about the .NET Foundation announcement, so yeah, today, I just thought we were talking about .NET. Let's talk a little bit about the .NET Foundation and I think, who better to talk about it than us because we're on .NET. So one of the announcements was about the governance model changes. So basically expanding the board from three to seven people and six of them being able to run anybody that has contributed anything to any .NET Foundation project can run or can vote. I think that's going to let the Foundation really scale its efforts more, right? So why does this like, really why do I care as a developer?  So that's kind of what the Foundation is about in general, right? It's that center of gravity for open source around .NET and if we have more people that have a stake in that and help move that forward, we're only going to have more growth and more success with the platform. So that's how I took it and yes, I am the appointed member on the board from Microsoft. So I have huge passion in this area. So I think that's going to be like a fantastic new era for .NET. Well, I think another big point in the .NET Foundation is historically, if you look at the last couple of years, the .NET Foundation feels more like the Microsoft .NET Foundation. And what the governance model really is about is about making it equal for everybody. There's only a single Microsoft representative that has to be in the foundation. The rest of it is community elected. So it is not heavily tilted towards Microsoft. The Foundation historically has also been funded by Microsoft and it's going to go to a self-fund cycle as well. So it's going to become more of an independent foundation that's run by the community and not something that you could interpret the older version of the foundation as more of a Microsoft run thing. Right. And I think there's even rules in there like where only two Macs, I think, board members can be from the same company. So you can stack. Yeah. So that makes it even more open, more fair and get better. The idea is to get more ideas as well from other companies as well. And to be more open, to be more less Microsoft. We're writing this open source wave and we want the .NET and the .NET Foundation to be as open as possible. So we have a lot of things that we can do, right? When we have that extra money, we have those extra bodies, we can scale more, we can have different types of events. We can help our community do the things they really want to do. So I think that's pretty cool. I'm excited. Hey, it's been saying on the front page of Hacker News all day as well. So the community must be excited too. Yeah, I'm actually pretty excited about that. So are we worried about voter fraud for any of the positions? We only use .NET for that. So there is a question here. So there looks like they're having a discussion of what are the benefits of joining the board? So that's actually a really good question. When Scott asked me, I was like, first of all, why me? And then I was thinking about it really though. It's a volunteer position and you really are about directing the platform, directing the ecosystem. It's really about making choices that are going to benefit .NET. And when I say .NET, I mean the platform itself as well as the community around the platform. So that's kind of why you would join the board. You have some passion around .NET open source and you want to help the community. And that's how I see it joining the board. I am excited. I have some ideas and I can't wait to see who else is going to be on that board. So elections will start in January. Yeah, if you guys want to run, we'll have all the information on .NETfoundation.org websites about that. So that's very cool. Are you going to run? I guess we have one more slot for Microsoft. You have one more slot for Microsoft. I'll have to see the competition. Awesome. Cool. So we got a couple more questions here. Let's go ahead and say any plans for UI automation for core or UWP? So we do have UI testing for UWP and for Windows apps with one app driver. I'm assuming you're actually talking about the UI automation class though. I'm assuming that's what the question is. I'm not sure there's a bunch of different scenarios that UI automation, you know, it can be used for accessibility tools, it can be used for testing, it can be used for actually doing some other scripting of scenarios. So I think I don't think there's any plans right now for any of the frameworks to have UI automation at least in UWP but it would be really interesting to know what the scenarios they're looking for because that's the thing that we probably have a good answer for based, you know. Cool. Is there anything else you guys want to say to the .NET community out there on Twitch before we wrap it up? Big thing is download .NET Core 3, try the bits out, give us feedback. I mean the reality is, this is preview one, I said it was really early, really raw but we have like 10,000 people that ran that tool showing us what APIs they needed. What we need is more people to try it and give us feedback. And definitely go download .NET Core 2, which is released today so make sure you get on those new bits. Thank you so much, Mike. Thanks, Scott. Thank you, Beth.


Live from Bellevue, Washington, it's theCUBE. Covering Smartsheet Engage ATG, brought to you by Smartsheet. Welcome back to theCUBE. We are live at Smartsheet Engage 2018 in Bellevue, Washington. I am Lisa Martin with Jeff Frick and we've had a great day talking with Smartsheet executives, analysts, users, and we're excited to welcome to theCUBE for the first time for me, Mangat Site Manager, wind power generation GE Renewable Energy. Great to have you on the program. Thank you, Lisa. Thank you, Jeff. I'm really happy to be here.  So before we get into your renegade status, tell us a little bit about GE Renewable Energy and your role. You get a big role as Site Manager, what, 75 turbines across multiple locations. So let's talk about GE Renewable Energy and your role as Site Manager. Sure, no problem. So GE Renewable Energy, one of our mission statements is is to unleash limitless energy. How we do that, we harness the power of the sun, the water, and the wind. So try to produce clean, efficient energy to power countries, homes, businesses, whatever needs that power and energy. As a manager, I manage, like you said, three wind farms, three different customers, a very complex role to have. I'm coming right from not just operations, human resources, financials, so everything's required of someone like me to manage that business end to end. So it's a challenge at the same time. It's a seek opportunity in a lot of what's going on and leveraging Smartsheet as one of the tools. This is something I've been using over the past year to optimize the business and run those turbines. So it's so funny because I would say GE turbine farms and GE engines are the most quoted, often referenced IoT devices in this next gen conversation about IoT and data and how much data they throw off of any other kind of product out there. And you're sitting right in the middle of it actually managing the real machines and managing the real data. Yeah, exactly. So I mean the machines themselves are highly automated. They're spending a lot of data and we've got great systems in place to manage that information, make it transferable, viewable to a lot of the people that need it. The opportunity is not necessarily in the equipment that GE manufactures, but the backend business that drives that manufacturing, that drives those services. And so that's where, again, we leveraged Smartsheet over the last year to close a lot of data quality issues. We're ruling out and canceling out a lot of the human error of the process steps that we're seeing a lot of businesses today. We're really taking the initiative of managing our data, bringing us, making us actually competitive in the fourth industrial revolution. I mean, I've got a strong belief that if you're not managing your data correctly today, yeah, you'll market yourself out of the business, you won't stay ahead of the game. So I think, like I was saying before, the biggest opportunity right now is the backend of the business. Smartsheet does a great job at manufacturing and producing high quality products. I think there's huge opportunity in saving the backend and optimizing the process that runs that. When you say the backend, there's always a lot of conversation about going from reactive to predictive to prescriptive analytics. Again, everybody likes to talk about keeping the turbine up. Are you talking about those types of processes or is it more how that energy is fed into the grid and more kind of the connection to the broader ecosystem when you say backend? Let's talk about the proactive and reactive situation because that's really what we're trying to drive. Okay. There could be particular cases where a turbine could fail in the middle of winter or high wind season and the visibility's not great. So what we've done is we've taken Smartsheet, we've given our technicians a mobile application tool to collect data as they visit turbines. We take the information within Smartsheet, we aggregate it, we quantify it and now we're able to predict turbine behavior based on this information. A little bit faster than some of the tools that GE provides today. A perfect example is about a month ago we determined that a turbine needed a quarter million dollar repair before any GE tool told us that. And that was simply because of giving our technicians a tool, which is a Smartsheet web form and telling us what happens every day you visit that turbine that goes into the background. We take the information, aggregate it into a dashboard view and it gives us a great visual control and visual aid of our business. And that visibility. I was going to say, is he collecting different data or are you processing it in a different way with the tooling that you set up with Smartsheet that gives you that visibility? They are, so we are collecting different data. So GE gives us a lot of data on our turbine health efficiency, how it's operating, it might quantify the number of faults per megawatt hour and parade it for us, for example. But what we're creating with Smartsheet is we're creating our own organic KPIs, I'll call them, some metrics that we're creating ourselves to try to drive different behavior. So when the techs go in, we talk about parts consumptions. For example, so if this part's been consumed 20 times over the last month, you got to ask why? You know, why do you keep visiting this turbine to do that? So that visibility drives a different discussion now. So now we can engage with engineers with different type, different information. And they might be able to say, okay, you guys got some good data here, we think you're right, we should execute this repair. So you, just an example that you gave, and give me the number again, that working with Smartsheets, your team was able to find a, wouldn't you say $250 million? $250,000 repair, that's the cost of the repair, but it's a proactive repair versus reactive. So now we're not facing long lead time, finding a crane, bringing a crane on site, getting the paperwork in place to get the job done, because it's not an easy repair. But there's a very impressive snowball effect of the benefits back to the business. You found it faster, you were able to get the parts needed faster, repair it faster. Clearly that goes all the way back up the chain from a revenue perspective. But when I alluded to earlier, this Renegade status, you brought Smartsheet in from your previous job, and you've said this isn't able to find something faster than our branded technologies product would have been able to do. Talk to us about this conviction that you brought in, and is it kind of becoming viral within GE Renewable Energy? Good question. It's becoming viral, a lot of people are listening now. So we've talked to GE Digital VPs, they've talked to the ERP providers in Europe on what they're doing with GE. So we've essentially, I call it a success story, they're not going to adopt Smartsheet, they want to build their own enterprise solution, but the reason why I call it a success story is because I've changed the way that they are thinking today. That's huge, cultural change. I've presented a solution to them, I've essentially told them, you need to give us something that works for us faster. If you do this, it gives managers capacity to improve your business, really develop people that are working underneath you, engage them and empower them, and move the business forward, not on a typical five-year plan that most businesses have in place, but to step change. It takes you year over year, and you're stepping every year to something new. And I think in today's day and age, with how fast things are moving, you need that. And I'm curious to unpack a little bit on this example where you said it's this failing part that was giving you a leading indicator that there was a bigger problem. So that was just kind of a different way to look at the solution, right?  From you, does that come from techs who are in the field and have kind of a sense of maybe we should be looking at this, maybe we should be looking at that? I mean, how do you start to empower people or where do some of these different points of view that then can be backed up with data in this marching process come from? So it's all techs. Coming into the job last year, and I asked one of the techs, I said, why are you going into this turbine? And the question, why is such a powerful question to ask? They said, we're going to fix this. So what happened last time? They had no idea. So there's no information to support your visit today and you don't understand why you're going today. Is it as a result of something that was not done correctly before? So we fixed that part first. We started giving them the information upfront. We gave them a tool to collect the data. So now they are empowered to provide very direct feedback to myself as a manager and even to an engineering team like in New York, for example, something technicians never felt empowered to do before. So they are the driving factors for those data collection, the decision-making. I definitely appreciate that. I give them that feedback on a daily basis that what you guys are doing is changing the way that we manage the business. It's a very driven culture change by the front line. I mean, it's not something that I'm pushing down. I'm asking them to help me push it upwards to the senior level. And they got to love it, right? They got to love thinking that they've actually got input as opposed to just being called to go out and fix things when it breaks. Exactly, they are driving their day. They can go to work in the morning. They can look at the whole personality of a turbine, what's outstanding, what was done last time, and the conversations are very quick in the morning. It used to be a seven o'clock startup. They're not driving out till eight, eight, 39 o'clock by the time they get their stuff together. I mean, we're averaging the 7 a.m. to about a seven, 30 departure now. So each person is saving 60 to 90 minutes every day. Every day in a departure. That's a big roll-up. In fact, I was looking at some of the productivity stats that Smartsheet talks about on their website, and they say an average for individual user of Smartsheet will save about 300 hours a year. An organization can save up to 60,000 hours a year. And I believe that. That's believable. I mean, there's just a technical aspect of managing a turbine. If we even talk about issuing a purchase order, managing contractor labor invoices, the tool that we're using today is a complete end-to-end P&L management tool. So it takes invoicing from subcontractors, labor, we are inventory tracking, we are tracking any health and safety issues, everything from end to end. So it's really done a great job for us. That's all built within your Smartsheet. Correct. Yeah, wow. And it's all mobile. So I mean, I'm not at my site this week, but on a daily basis I have visibility to my business. And you're talking about 70, 80 plus machines, that's over about $100 million in assets that have to be managed effectively, efficiently, and correctly. That you have visibility into every day from wherever you are. Exactly, yes. That's a huge transformation. So we talked about you being a renegade in other groups within GE, on divisions that are curious about this. I'm curious, have you heard anything today that they have announced that excites you, or maybe was any of this part of the feedback that you provided, as we've heard all day, Jeff, that they're very responsive to customer feedback in terms of product innovation? Anything you're going to go back to the office and be excited, like the next generation or what's coming available soon, is it going to enable me to do X, Y, Z now? That's a good question. So GE is a very tough company to change. So there's, there'll be a lot of takeaways from this trip. And when I go ahead back, after the last conversation at Howard GE, Digital and the team, they are going to hire a new resource and set budget aside to help close the gaps that we've identified. So I think after this visit, and some of the things I've learned throughout the conference, and when I head back, I'll only be able to identify a few more gaps that they need to fill. And I'll push that up to them probably the next week when I get back there, so hopefully they can appreciate that candid feedback and then take that and run with it. But you were able to fund your existing project just out of your own discretionary funds. Exactly. I mean, that's one of the benefits of Smartsheet. It costs really nothing to create something. And my job is to manage wind farms. So I've taken an initiative to create, I call it a mini ERP system, using Smartsheet with an associate of mine. And it's an organic creation. It didn't take us to run three wind farms. I started last April, and it probably took us less than six months to create a working system. And that's awesome feedback for Smartsheet. The tool is very user friendly. It's lightweight. It takes away the fear of coding that Excel gives to some people. If you're a new user of any application, you can kind of walk into it and run with it. And that's one of the reasons why we took it from nothing to something in such a short period of time. Wow. That's a groundswell in action that has some significant results. But you better be careful. And imagining your success is going to go so viral, you're going to have way more than 75 turbines and three wind farms. It's possible. It's going to reach an acquisition and there's other sites around me that my bosses or my director said, hey, what are you doing next week? Let's go visit this site for a few minutes. Okay, I know what you're getting at. It's kind of a good problem to have, but thanks so much for me for stopping by and sharing with us what you're doing as a renegade. It seems pretty contagious. Appreciate it. Thank you for having me. Thanks. Thanks. For Jeff, Rick, I'm Lisa Martin. I'm live from Smart Sheet Engaged 2018. Stick around, Jeff and I will be back to wrap up the show in just a minute.


Welcome back to the first of two screencasts where we're going to look at some applications of modular arithmetic. The first is to put a proof on an old divisibility trick that you might have learned when you're in elementary or middle school. Let me phrase what that divisibility trick actually says. It says that if n is an integer such that the sum of its digits is divisible by 3, then the number n itself is divisible by 3. If you've never heard this trick before, it's pretty cool. Let me show you how it works here. So for example, look at the number 387, and we might be interested in knowing whether or not that number is divisible by 3 without using a calculator. Well, if I look at the digits of 387, that's the 3, the 8, and the 7, and add them up. I get 3 plus 8 plus 7, that equals 18. And since 3 divides 18, 3 divides 18, it will imply if this trick works that 3 divides 387. And indeed, you can check that 387 divided by 3 is 129. On the other hand, look at 5,221, and let's add up its digits. That would be 5 plus 2 plus 2 plus 1, and that comes out to equal 10. And 3 does not divide 10. And you can check too that 3 does not divide 5,221. It goes in 1740 times, but has a remainder of 1. So this is actually really an if and only if theorem here. We're going to treat it only in one direction. So if a number's digit sum is divisible by 3, then the number itself is divisible by 3. It's kind of a cool trick, but I bet you've never seen why it actually works. And that's what we're going to do in this video here is prove it. We're going to prove this as a theorem. And modular arithmetic, the O plus and O times operations that we defined in the last video, played the central role in this. Before we jump into a proof, we need to be clear about what exactly do we mean by what is a digit? Well, you can point to a number and tell me what its digits are. If you look at 1,982, the digits are 1,982. The way we're going to have to think about this in our proof here is to think of 1,982 in its base 10 decimal expansion. Now, what I mean by that is every integer that you see can be written as a sum of powers of 10 multiplied by numbers between 0 and 9. For example, 1,982 is 1 times 1,000 plus 9 times 100. This is 1,000, that's 900. 8 plus 8 times 10 that picks up the 80 and then the 2. You have the 1's digit, the 10's digit, the 100's digits, and the 1,000's digit. And we all know what those digits are. You learn that in the second or third grade, how to identify the 1's, 10's, 100's, and so on digit. But you might not realize that every integer can be expanded in this sort of way here. And just as an additional example, if I look at the number 25,173, that can be written as 2 times 10,000 plus 5 times 1,000 plus 1 times 100 plus 7 times 10 plus 3. So every number can be sort of stretched apart into digits, numbers between 0 and 9 times powers of 10. And that's going to be an essential portion of the proof that we're going to look at here in just a moment. Well, actually we're going to look at it right now. Let's just jump right into it. We're going to simplify the proof of this theorem, this divisibility trick, by only looking at four-digit numbers here. It's going to be very easy if you understand this proof to give a generic proof for any number of digits that you want. I think it's going to simplify things a little if we just restrict into four digits. Okay, so here's the proof. So we're going to let n be a four-digit integer, and we're going to assume that the sum of its digits is divisible by 3. So just as we saw with 1982 on the previous line, if n has four digits, I can write it as some number between 0 and 9 times 1,000. And that d3 is the thousandth place digit in the number, like the 1 was in 1982, plus d2 times 100. The d2 would be the 100's digit, that would be the 9 and 982, plus d1 times 10, that's the 10's place, that was the 8 in 1982, plus d0, the 1's digit, that was the 2 in 1982. We're going to label those digits d0, d1, d2, d3. So when we say that the number n has a digit sum that's divisible by 3, well its digit sum is just d3 plus d2 plus d1 plus d0. So what we're doing is we're assuming that this sum here is divisible by 3. So that sets up the assumptions here. Now what we want to prove, of course, is that 3 divides the big number itself. Now we're going to do this in kind of a special way here. We're going to do this by showing that n is congruent to 0 mod 3. Okay? Now that is equivalent to saying that 3 divides n. To say that n is congruent to 0 mod 3 means that 3 divides n minus 0, that is 3 divides n. But we're actually going to do something related but a little bit different. If n is congruent to 0 mod 3, then nz3, the set of congruence classes 0, 1, and 2 under the relation of congruence mod 3, I would like to show that nz3, the class of n equals the class of 0. Now remember, based on our theorems we've seen so far, that if tilde is congruence mod 3, okay, then these two classes will be equal if and only if n is congruent to 0 under this relation, which means these two are equal if and only if n is congruent to 0 mod 3, which is true if and only if 3 divides n. So we're using kind of a strange, somewhat convoluted way of saying 3 divides n by just noting that it's the same thing, logically equivalent, as saying that their equivalence classes in z3 are equal to each other. This is a kind of a, seems like a long way around, but it actually makes the proof really, really simple. So what we're going to do here is prove that the class of n and the class of 0 in the set z mod 3, the integers mod 3, are equal classes, and that will imply that 3 divides n. So the reason this is going to work is because we know that n can be written in a nice form like this, and switch back to my pen. Okay, so I have two equal integers, okay, I have n on this side and some alternate representation of n on the other side, but the important thing to notice is that they are equal to each other. So if I have two equal things and move to their classes, then the class of n will be equal as a set to the class of all this stuff on the right, the class of d3 times 1000 plus d2 times 100. I'm just putting an equivalence class around both sides of this equation. I can do anything I want to both sides of an equation, I will still get equal things. But now I went from equal integers to equal sets. Okay, well let's just look at the right hand side and see what we can do with it. Let me change colors so we're going to change our perspective here in just a second. Notice I have a lot of additions going on in here. Now remember what we're doing here is we're adding objects inside an equivalence class. Well, this is the same thing as using our O plus operation. This is the same thing as d3 times 1000, O plus the class d2 times 100, O plus the d1 times 10, O plus the class of d0. Remember this O plus operation is defined by when I'm adding O plus adding two classes together, I am regular adding their representatives together. This is exactly what we're doing, just kind of doing it in reverse.  And you notice I can do the same thing too for the times here. In this first class here for example, I have the class of one thing times another, but that's the same thing, let me change my color again, to the class of d3, O times the class of 1000. So these two guys right here, this single class of a regular multiplication is equal to this new multiplication of two different classes. And I'm just going to write that through the rest of this expression, or I'll need to change a line here. So that's the first class, O plus, here's the second class, that would be the class of d2, O times the class of 100, O plus the class of d1, O times the class of 10, plus finally I have the class of d0. Okay, so there's using my definitions of O plus addition and O plus multiplication. And I'm going to make one extra step here, I'm actually just going to write on this green line here to show you something very interesting. Let's look at three of these classes here, or just classes of numbers, okay, the class of 1000, the class of 100, the class of 10. And remember the equivalence class here is a mod 3, we're all dealing with z3. So look at the class of 10. Now notice that the class of 10 and z3 is going to be equal to the class of 1 in z3 because 10 and 1 are equivalent, they are congruent to each other mod 3. So this class of 10 is really just the class of 1. Let me just mark that out. But you know what, so is the class of 100 for that matter. That's the class of 1 as well because 100 and 1 are congruent to each other mod 3. 100 minus 1 is 99, and that's divisible by 3. So that class there is 1 as well, and so is the class of 1000, and that's the class of 1 as well. So those three numerical classes I have here are just reduced down to the class of 1.  We said that, I'll just do this up here, anytime I have A0 or O times 1, that's the class of A regular times 1, and that's the class of A. So whenever I'm multiplying in this new sense by the class of 1, I'm just going to get the thing I multiplied back. And so this is going to really reduce very nicely here. D3, the class of D3, O times the class of 1 is just the class of D3. And then I am O plusing that with D2, O times the class of 1, and that's just D2. And I'm O plusing that with the class of D1, O times the class of 1, and that's the class of D1. And then the last thing in the string of sums here was D0. So here's where we are in the proof at this point. I now have the class of n is equal to the O plus sum of four different equivalence classes here. What we're going to do now is just use the definition of O plus to pull these classes together. Look at these two right here, the D3 and D2 classes. D3, the class of D3, O plus the class of D2, well that is simply the class of D3 regular plus D2. And likewise, if I keep adding these things in, that, if I O plus that with D1, that will just be the class of the regular sum with D1 and likewise with D0. So I can use the definition of O plus to pull all four of those classes into one. Now, so I have now that the class of n is equal to the class of this, but what is this? This is the digit sum of n, and what did we assume about the digit sum of n? Is that that's divisible by three, okay? So this thing on the inside of the brackets is divisible by three, okay? So what is this class really? This is an equivalence class under the relation of congruence mod three. So what this ultimately equals here, this class is the same thing as the class of zero, okay? Because two classes are equal if and only if they are equivalent to each other, mod three. And that's the case here. The stuff I just underlined in the blue is divisible by three. So that's like the equivalence class of six. It's the same thing as the class of zero. And I have ultimately now proven what I set out to prove. Remember I said I wanted to show way back that three divides n. I was going to do that by showing that the class of n is equal to zero, and I did. So that's it. Cha-ching, we're done with the proof. So that is the proof that the divisibility trick you learned for three actually works. And it's very simple to extend this again to any number of digits you wish. You're just going to have larger and larger powers of ten. And the thing to notice here that what will make it eventually work, and you can prove this separately, is that ten to the nth power is always congruent to one mod three, and that's what would make the general proof work. So now we have proven that this divisibility trick works. Isn't that cool?


First of all I want to talk about your new track Havana. Yeah, which is literally just it is everywhere at the moment Isn't it just blowing up? That's so cool. Yeah, how are you finding the reception? Oh my god? It's it's amazing. I honestly I didn't expect it Havana was kind of always say this but I feel like it's kind of like the Defiant song Because nobody thought that it would be a single, you know, they were like no it doesn't it's not gonna work I don't know for radio. It's not whatever so I didn't release it as a single initially But because of the reception, you know it turned into a single and you know It's become a real highlight like in my in my year as a solo artist. So, you know, it's funny I actually had a listening party here in the UK It was like that really early stages of my album a lot of the people there are here in the UK like Havana the best Which I thought was really cool and I was like huh because in the United States That wasn't really like the winner and I had it took like the longest put together of real tracks. Yeah Why do you think that is? I don't know I think it's because it was one of those songs that for me I write the best to like pop chord progressions the pop ones are a lot easier for me to come up with melodies to and a lot easier for me to write to and These kinds of chord progressions like Havana or another song that I've called inside out that are more kind of Latin and a little bit more It's harder for me to come up with melodies. It was definitely a Challenge Oh my god, it was crazy I posted a snapchat video of me crying and instantly regretted it I was like I was like tearing but I just I just it's a new feeling for me to have other artists that whose music I love liking my music. I'm still like, oh my god. That's so cool You know I guess cuz it's like it's like a love song to like your roots Heritage isn't it? I think people love that for sure. That was that's where you wanted to get across right with the show Yeah, definitely I mean I I wanted to have a song called Havana and I had that title in my notes for a really really long time I knew I wanted to make a song called Havana. That's where it stemmed from Yep, and my executive producer Frank his name is Frank Dukes. He played the beat and I was like, oh my god That's perfect. That's the song and so yeah, it's a combination of like a love letter to my Heritage and kind of combining the kind of music I listen to growing up in the kind of music I listen to now you worked with Pharrell in the end. Yeah, how did that come about then? I have no idea that I'm so thankful to God He just came along at the right time. Well, basically he I don't know how but he was like my manager I remember my manager was like, oh Pharrell like want some studio time What it was just crazy. I didn't even know that he knew me I didn't even think he knew who I was because I feel like a lot of the people a lot of people in the beginning were kind of surprised that I had Things that I wanted to write about and I think that people just thought that I would have people just like writing for me and And stuff and so I don't know I didn't expect him to want to work with me It was just soaking up that energy was really really pretty cool. Yeah And I heard you like tricked him into doing some ad-libs in the studio You know in the first course, I was like, yeah, you wanted me to do that because he thought it would be really cool And I was like, oh, yeah, I'll do it But you know, can you like sketch him out for me? Can you just do like a track? It's like I ended up keeping all of them He could just do anything you just be like, yeah, and it just exactly so sure and it just sounds so much cooler Doesn't it? Yeah, I've not heard your hate gone to it for me It's not the same It's not the same as Pharrell, but it's still worse because of young thugs part But he did them really cool is where he was like skirt. I can't put off a skirt I sound like a dying duck Dying duck, that's the new one. Yeah, so amazing


Good morning Hank, it's Tuesday. Today's video is like nothing you ever bought at Ikea, it comes to you in only two parts. Part one, commencing. So over the weekend, Sarah and I drove to Gambier, Ohio, where I got to deliver the commencement address at my alma mater, Kenyon College. Here's part of what I said. So when I was a student here, there was widespread agreement among my peers that the so-called real world of proper adulthood was basically a disease you caught and then eventually died from. Like adulthood with its mortgages and spreadsheets and lawn maintenance seemed to be a thing to be dreaded and resisted until finally it overtook you like a zombie plague. And then like once you acquired adulthood, you would start saying things like brand awareness in a fractured media landscape. And we need a president who knows how to get things done. To be an adult meant engaging in totally unironic conversations about the weather. I remember once when I was at Kenyon, my grandmother called me to tell me that she was watching the weather channel and that it looked like it was raining in Ohio. I explained to her that I was reading Ulysses, that I wasn't even in Gambier, but in Dublin, Ireland in 1904. And that history was a nightmare from which Daedalus was trying to awake and that nothing, literally nothing mattered less than the current weather. And then after a moment she asked, well, is it raining or isn't it? To be an adult was to be a river rock blasted by an endless torrent of mundane terrors from resume formatting to electricity bills that would inevitably smooth all my hard edges until I looked and felt just like everything else. Now this is the part of the commencement address where I'm supposed to tell you that in fact adulthood isn't so bad and blah blah blah, but no, no, it is so bad. Side note, graduation gowns are not flattering. In the end this speech is mostly just a celebration of unironic conversations about the weather. If you want to watch or read the whole thing, you can do so links in the doobly-doo. Part two, sports. So Hank, I am in the midst of the greatest sports month of my life. A couple weeks ago I drove the Pace car at the Indianapolis Grand Prix, which allowed me to experience what it's like to be tailgated by 30 professional race car drivers. We're just six days away from the annual highlight of my social calendar, the Indianapolis 500. Amazingly, the fourth tier English football team Nerdfighteria sponsors AFC Wimbledon have found themselves in the playoff finals, just one victory away from being a third tier English football team. That's right Hank, on May 30th AFC Wimbledon will take the field at Wembley, a 90,000 seat stadium, and wearing DFTBA on the back of their shorts, they will play a one game playoff against the sailing ships of Plymouth, Argyle. It's hard to describe how unlikely this is, Wimbledon have the smallest stadium of any team in their league and among the smallest budgets. They'd also be the only English team owned by their fans to be as high as the third tier, so this is a massive moment for the club. And as you know, if you listen to our podcast where you can get all the week's news from both Mars and AFC Wimbledon, I am immensely excited. In fact, Hank, I am leaving directly from the Indianapolis 500 to go to the game in London. So Nerdfighters, if you live in or near London, I hope you will come to Wembley on May 30th to cheer on the dawns. If you want to go to the game but can't afford a ticket, email me and I will try to work something out. Info on all of that in the doobly-doo. Hank, I know that sports are silly. But as Pope John Paul II once said, Of all the unimportant things, football is the most important. Hank, I'll see you on Friday.


Good morning, ladies and gentlemen and welcome to Dow Jones 20,000 points. That was the second fastest 1,000-point trip in history. We've got 2.5% plus in 10-year Treasury yields, we are above 2.5%. So everybody expects that there will be inflation coming. Everybody expects that the immense quantities of easy money from the Federal Reserve will now start to turn quicker and will find their way into the real economy, which in essence could produce higher inflation. So rates are going up 2.5% on a 10-year horizon. Some traders expect that when Treasury yields go to 3% or above, that would be the limit where it would start to somehow hinder the equity market rally. The peso went down yesterday. Donald Trump wants to start building the wall in the coming months. That is possible he wants to have the first millions to start building from free money that he's got in his availability, not privately of course, but everything that is possible to be used quickly is being used quickly to start build the wall as soon as possible. And first, there will be the state actually paying for the wall. And secondly, everything will be taken back through a renegotiation of NAFTA. A renegotiation of Mexico trade deals and such. So we've got the Trump momentum rally and we've got momentum in politics. So there are a lot of executive orders. Yesterday I talked about the pipelines, Dakota access and the oil sense pipeline coming from Canada through the United States to the Gulf of Mexico. Then there were several other executive orders such as to use actually American produced steel to build pipelines and there's everything it does actually is pro-growth. It might be anti-environmental, it might be deregulation, increasing the risk tomorrow due to deregulation, but it's pro-growth. So markets are actually honoring that Donald Trump is focusing on this aspect of his politics and has been quieter recently with regards to some tweets in international regards. But that will come back I think because renegotiation and renegotiation of trade deals with other countries is two-thirds of his income side of his politics. So he wants to decrease the tax rate by 2.6 trillion US dollars. That is what he wants to, that's the cost for infrastructure building and for decreasing the tax rate from 35 percent to 15 or 20 percent. And on the other hand 1.7 trillion dollars should come from the renegotiation of trade deals. So that is something that helps the early cyclical equities like banks, they are actually detrivers behind the move one-fifth of the Dow Jones gains since the elections comes or are coming from or at least if you look at the Dow Jones and the gains since the election 22 percent of those gains come only from Goldman Sachs stock there. And we've got the banks actually are the early gainers, the early cyclicals that are gaining here and profiting from the expectation that the growth in the United States will really double until the end of the year.