On this Episode of Eat Sleep Code, guest Michael Crump talks about why Azure is important to .NET developers. We learn how Azure goes beyond virtualization, hosting databases and deploying websites. Michael talks about his experience with Azure coming from a C# client app background and the “ah-ha!” moment with the benefits of moving to the cloud.
00:13 Ed Charbeneau: Hello, and welcome to Eat Sleep Code, the Official Telerik Podcast. I'm your host, Ed Charbeneau, and with me today is Michael Crump. How you doing, Michael?
00:23 Michael Crump: I'm doing great. How about you, Ed?
00:25 EC: Not bad at all. We're just catching up from a trip to Visual Studio Live in Redmond. We had a chance to hang out there for little bit, so we thought we'd record a podcast about some Azure stuff today.
00:39 MC: Awesome.
00:41 EC: So, Michael, me and you have gone way back. We've known each other for quite a while doing the speaking circuit around conferences. We've worked together, but for the people in the audience that are listening that don't know you, what are you up to these days?
01:00 MC: Yes. Now, I am over at Microsoft. I've been here for about a good year and a half and originally landed in Windows, and now, I've moved over to Azure. Just like, it seems like everybody else has in the past couple of months. And I'm taking a look now in the developer experience part of Azure, so I am trying to make sure that developers that are working with our platform have a great experience using it, they're able to find the tools and the services that they need to use, they're able to get up to speed really quickly, and able to start building their first app in the cloud, if that's what they're looking for.
01:47 EC: Awesome. Azure has a lot of stuff for developers. It's pretty much the developer platform in the cloud. What types of things are you specializing in or talking about in regards to Azure?
02:04 MC: Yeah. What I'm trying to do right now is I'm trying to focus in a lot more on the different types of app services that somebody can use. Some of those app services such as, web and mobile applications, understanding where they may need a virtual machine, setting up and hooking up SQL databases, using familiar tools, and yeah, just trying to help them understand the value of using the cloud.
02:36 EC: Yeah, so being an ASP.NET developer for a long time, I've interacted with Azure in some capacity but I'm just not as familiar with it as I wish I was. It's cool to see that you're out talking about these different services that are available. I'd like to hear more.
03:00 MC: Yeah. I think this is where this session, this Azure for.NET Developers, I think it was named Azure for.NET Developers in Plain English session that I came up with, and a couple of people laughed a little bit about the title in plain English. And the reason that I named that session that, and that I started going around, I've been talking to people and trying to spread this information is that I came from a desktop background. I was building a lot of applications using WinForms and even WPF, anything like Win32. And from there, I started working on UWP. As I was starting to hear about this Azure thing in the background, I'm seeing maybe documentation or other people talking about it, I started thinking, "Is this something that's actually for me? Is this something that I could do? Do I have to relearn skill sets?" I'm seeing everybody talk about using different types of CLIs that were particularly for MAC, and I just wanna know if this is something for me, can I use this? And also, is this something that helps with my business? And then finally, why is this actually so hard?
04:31 MC: And from there, I started documenting my process of learning and getting up to speed with Azure, which it consisted of all kinds of different sorts of training. Lots of video training to listening to podcast. And even from there, a lot of time just in the documentation, and then a lot of time inside of the Azure portal. And the way that I started wrapping my head around this was thinking about the cloud as something that you can physically touch versus some of the standard definitions, I think one of them that I said it and I've mentioned a couple times is that every time I looked at the cloud, they had a definition such as, "Oh, the cloud is a practice of using a network on remote servers, hosted on the Internet to store blah, blah, blah, rather than a local server or a personal computer." And I saw all of these definitions and I was thinking, "Okay, well, if I start thinking of Azure as something that I can physically touch, something that is in these 38 regions, and I can physically go there and I could see that they not only have the buildings but they have the servers, they have the racks, they have the power supply, they have the personnel that I could start to grasp a little bit better there.
06:02 EC: Yeah, I like that you're coming at this from the point of view of a desktop developer or a mobile developer. Where myself, I've worked with the web pretty much my entire career as a web developer. The transition to Azure is a little more direct, I think, for web development. We're already used to being part of the cloud infrastructure and stuff like that. I like that you're coming at it from a different perspective than my own. And I think there's a lot of people out there that can relate to what you're talking about.
06:40 MC: Yeah, and when talking about infrastructure, this leads into what I call it, at least in the talk, was service model bingo. And the reason that I called it that was that everybody starts talking about, "Okay, you have this on-premises thing, and then you have infrastructure as a service, and platform as a service, and software as a service, and mobile backend as a service." And they kept going through all of these different types of service models, yet they didn't explain them, I felt, in a way that would click with people. At least the way that I was able to understand it was by grouping it into three different categories: Applications, operating systems, and hardware. And we've all seen tons of these service models, where they have all the diagrams. But I think if we think of that as apps, OS, and hardware, and with on-prem, you control all of this. And that this was, again, what I was coming from with a lot of the desktop applications, and when I worked full-time as a developer, which was before my time at Telerik, we hosted everything. Everything was all under our control. And then as you start moving up to infrastructure as a service, that one, as the name suggests there, you're providing the computing infrastructure, that was my way that I was starting to learn that.
08:13 MC: An example of that was virtual machines. And then with platform as a service, again, as the name suggests, provides you the computing platforms, which typically includes an operating system. The runtime, the database, a web server, and then with software as a service, with that one, you're provided with access to application software and they usually refer to that as on-demand. And when I think of an example of that one, I think of Office 365. With each one of these giving a quick sample of what they are, I believe helps that stick into our head a little bit better than everybody just saying IIS. 'Cause I remember when people were first saying IIS to me, I was like, "Oh, what? I'm not exactly sure what that is. What does that stand for?" And you started to figure out what each of these things stand for, but when you start to associate the name with the definition, and with an example, I think it starts sticking.
09:17 EC: Yeah, I think a lot the stuff you were saying is written with upper-level management, C-level people in mind. And not often do you see it written for developers. You don't get the full picture as a developer where you belong in the equation. You read the thing, the overview of this thing, and its got a lot of buzzwords and not a lot of technical meat to it. It's nice to see that you're breaking it down and relating it to what we do. When you look at all these "as a service things", you just start wondering what do you do to interact with it? Can I use Visual Studio? What languages do I need to write this stuff in? How do I call a service from my application? And stuff like that.
10:13 MC: Yeah, and that's where I started to see more, and more, and more people. That when I would look in their documents, or something maybe they created and they shared, like a Word document or something like that. It tended to be very focused towards IT Pros, and Azure currently has this Azure For Developers guide that exists. And we're working on refreshing that, that is something that will be coming. But I wanted to make sure that at least if there's new content coming out, that there is content that's for the IT Pro crowd, but there's also content that's for the developer crowd and the crowd that I'm going to be speaking to. And something that's easier for them to get up to speed using the platform.
11:07 EC: Yeah, I think you might see a lot of that stuff written the way it is, like you said for IT Pros and such. It's not usually the case that the developer's writing the check for these type of things, so you see it being sold there. But I think we're such a large part of the equation. Being developers, I think we need to be part of that story as well to help sell it within the company that we work for.
11:35 MC: Absolutely. When I gave this talk, one whole section was on VMs, and I spent probably about 15 minutes of my 60-minute talk chatting about VMs. And I originally thought, "As I'm running this, maybe developers may feel that this is more along the lines of something for IT Pros." But then I got to thinking about, "What do I do there? How am I using Azure VMs currently?" And I was thinking of my process before. If I wanted to create a VM to test out a Visual Studio 15.3 preview, which it just came live just a couple of days ago, the final version. But if I wanted to check out preview software of Visual Studio, I would download the ISO. Right there, it's a couple of gigs and then I would start making sure that I have my stuff for either using VirtualBox or VMware, and then the operating system, and I would go through the process of making sure my current hard disk or the hit disk that I'm gonna be attaching to has enough space. I would start building out, installing the operating system, going through these long processes of putting all that together, and then finally spinning up a VM.
13:00 MC: Whereas now, I'm able to just search for that version of Visual Studio and provide a couple of different input parameters, and create that virtual machine, and it's now living. I can click a button to pull down the RDP, and use remote desktop connection, and then remote into that VM for really just a couple of dollars, and then just destroy it if I don't need it, but just for some sort of a quick test or something like that.
13:37 EC: Yeah, I've seen people use those two when they're on the go and they don't quite have a laptop that's beefy enough to run stuff, or maybe they just want a centralized location where they can remote into and do some development. I've seen people use it for that as well.
13:52 MC: Yeah, and here recently, I needed a Linux machine running Apache for some software that is basically like Evernote but it lets you run it on your local machine. And I was able to select that Apache-Linux VM, and run it, and then attach my website to it. And it's only costing, really a couple of dollars a month because I only need this thing running for, it's not gonna really get very much traffic, it's using just a standard hard disk. It's actually on one of the shared plans, and I'm wanting to say it may have been $13 a month. But for what it's providing me, and again, this is a machine. It's just out there, I think this one's on the West US, and I don't have to worry about losing power. We always have these VMs or something that we shove under our desk. Maybe, in your case, you guys working from home may have it in the corner of a room somewhere. And here, we keep some of these machines if it's our personal projects, maybe underneath our computer desk and it's like, "Okay, well, I finally don't have to worry about going through all of these other additional firewalls that I have to get to to get to this machine inside of a Microsoft building. Now, it's here in the cloud, I can set up my firewall rules and I can rock and roll from there."
15:37 EC: Yeah, those things can be really handy in the cloud. Sometimes more than they are physically because you can set up virtual machines on your main desktop machine that you use everyday. The problem is, they usually not very performant. The virtual machine has to share resources with the main box, and it can get pretty sluggish, and you can run into some issues with video and allocating space on the hard drive, and stuff like that. It can get fairly monotonous to install those things. What usually ends up happening to alleviate some of those problems is you start up like a dual boot situation, run it parallels, or you're just booting from one Windows OS to another one or maybe some Linux is in there. And then, that gets kinda hairy if you're on a machine that you're not repaving. It's already something that you've been using for a while, you have to worry about, "Am I partitioning the right hard drive that's in this machine?" [chuckle] You don't wanna accidentally wipe out something that's not backed up. It's easy, just go out to Azure, spend something up in the cloud, and log into it.
16:52 MC: And also, this has happened. I've been in software professionally since 2002. And since I've been in software and I've been working with VMs, I don't think I have ever actually created a VM and estimated the disk space properly. [laughter] Almost every time, I've had to go back in, and you start attaching different disk, and then, hopefully, I have enough space on my current disk. Now, everybody's rocking SSDs, and I'm lucky enough to have a FAT12 but that space can go very quickly. Always, we get stuck with, "I didn't have enough space on my local hard disk and I need more space inside the VM." And so, I go through that struggle of, "Oh, where can I free up some space?" to get that to work, and obviously, Azure is nice because after you create a VM, you can go in and you can attach any size of hard disk that you would might. So you never run out there.
18:00 EC: Yeah, I had an interesting one last week. I couldn't get any of my external monitors to work. And no matter what I plugged my laptop into, none of them would come up. It turned out it was something to do with a virtual machine software that wouldn't let go of past monitors that were plugged in. It was just hosing the whole system up, and I ended up having to disable the VM software to get the monitor back on. Waste a good part of my morning, so there's always fun stuff to deal with as a developer. [chuckle]
18:34 MC: Exactly, and one other piece to that is whenever I create a VM and I have it exactly like I wanted. Let's just say, I have one with Node.js and MongoDB. And I finally got that machine working exactly like I would like for it to be. Having that ability to recreate that VM, thankfully, you can do that through these automation scripts in Azure, but being able to have another version of that VM that I can store safely in another spot for any time I want. This version Node or this version MongoDB machine backed up and running, I can do that, and I can also, thankfully, I can do that through Bash or I can do that through Bash on Windows, that is, or through PowerShell or Command Prompt. Or if you're in the other side of the world, the Mac world, you can obviously use Terminal, and Linux, and things like that.
19:40 EC: In the CLI, you can run that directly from the cloud as well, can't you?
19:44 MC: Exactly, and that was announced at Build, that was the Cloud Shell that was demoed. And yeah, the Cloud Shell, it uses the Azure CLI 2.0, and I believe you can also use the 1.0 if you're familiar with that but I would recommend at least taking a look at the Azure 2.0. It's a lot easier there to manage resources, and it uses a format of something like AZ for Azure and then noun/verb. If you think of that as a VM, it would be "AZ VM list". It follows a format that's pretty easy to use, and your stop-and-start, there's no difference once you type out the command and you have to add in a resource group and stuff. You use start, and then stop, you can just arrow key up, and then replace the word if you want to stop or start.
20:46 MC: It's pretty easy to get up and running. And it's also, the cool thing is that that CLI is available for absolutely everybody even though I've been showing a lot of Bash on Windows using that Shell. I've found that a lot of people really wanna use, especially Windows users, are very interested in using PowerShell. And to continue and work with PowerShell, with not only just the VMs but just anything inside of Azure. I think that's a good point also, is that everything that you can do inside of the portal, you can also do through the command line. And a lot of people, they don't really, they may not know that and they may think, "Well, if I want to run, or I want to spin up this web app, or shut down this service, I need to go back to the portal." And they'll quickly learn as they start working with it, they have the power to do that through the command line.
21:44 EC: Yeah, that's handy stuff, especially being somebody who travels a lot. Having that cloud CLI is really cool because if you have stuff that's out there running and there's an issue, you can reboot things, you can start logging, kick off a logging process, all sorts of stuff right from a tablet or Wi-Fi at the airport, wherever you're at. And you can get that going pretty quickly. It's nice to know about the stuff with the portal, not having to access things from the portal 'cause there's really a lot of services and different pieces of Azure that are available through the portal, and it can be a bit noisy at times. If you can get the CLI open and focus on the task at hand, it can probably be really helpful.
22:38 MC: Yeah, and one other thing is that, that's also available through the mobile app. There is a Azure mobile app that is for iOS and Android. And so, yeah, maybe when you're starting to think about it, you're like, "Yeah, I don't know when I would do this." But I think one of the jokes was, I'm at dinner with my family and I need to spin up the CLI to [chuckle] do some managing of some resources. I don't know if I would do it then, but you have the adaptability to spin up a CLI directly on your phone, which I think is pretty cool to at least have that ability.
23:24 EC: It never fails that things go wrong when you're not home or at work. For example, every time I travel, my home Internet goes out.
23:34 MC: And you're trying to configure it from a hotel or something.
23:39 EC: Yeah, usually, I'm trying to do tech support over the phone with a 15 or 10-year-old.
23:47 EC: And just isn't working. And I know when I worked in IT type of a role, every time I was away from the office or one of my co-workers would be away from the office, anything we owned would pretty much get knocked offline or something would go awry, we called it closet goats. [chuckle]
24:12 MC: Nice.
24:13 EC: We said the closet goats would be eating the cables while we were gone, and remind each other to go feed the closet goats so nothing would go wrong when we'd step out of the office. You could use your remote command line to feed the closet goats, so things don't break down [chuckle] when you're away from the office.
24:34 MC: Yeah, and these things... The world has been changing here, and nowadays, you gotta have a little bit more flexibility, especially when you're starting to work with something as big as Azure, and that also leads me into where we were just talking a little bit about the command line. But also, the absolute power that Visual Studio has and that Visual Studio developers have, with also working with Azure. I believe we touched briefly on creating web apps using this thing called app services. But one thing that I actually demoed was being able to create ASP.NET MVC application. Not adding anything to it, just having a plain ASP.NET app. The only thing is at adding in maybe individual authentication, and creating that out, running it locally. And then after we run it locally, basically right-click and go to our publish settings, and look at the various different ways that you can deploy that to IIS, to local file systems, to VMs, and then to finally to app services.
26:01 MC: And then deploying that app, I'm still in Visual Studio, through Visual Studio, and at once that application has been deployed, I can start debugging it live. And if I want to go ahead, and I can obviously navigate out to the site, I can make my changes, I can sync those changes back up to the site. But then, having that ability to go in, and start doing things, and start using things such as, the Cloud Explorer to start pulling down different logs, logs that people may be familiar with if they've worked with IIS. Opening in this in the portal, and then seeing the different types of deployments slots. All through Visual Studio, and this isn't even including some of the cool things that you can do with SQL Server. I think Visual Studio developers, they may not be as aware of just how much you can actually do with Azure without ever touching the Azure portal when you start poking about using Visual Studio, and Cloud Explorer, and the Azure CLI 2.0, and using things like Bash and PowerShell, Command Prompt. There's a lot you can do as a Windows developer today.
27:26 EC: Yeah, I'll tell you an experience I had with it, it's very quick to get set up if you need something that's public facing. For example, if you're... And this is a situation I was in, I had a hackathon and I wanted people to be able to access the application I was writing. You can't really do localhost on that deal. You've got to have it out on a public server, somewhere people can actually ping it and see what you're working on. I just fired up Visual Studio, did a file new project, and checked the box for Azure. And there was an app service created and pushed my MVC application right to it, and it's up and it's public almost immediately. If you're in a hackathon and you need to get something up and running that needs to be entered in a contest or something like that, it's a really quick way to do it. My only advice is to make sure you log into your Azure account and set your... What do you call it? The resource level to something appropriate because the default one, it may not be the right one for something like a hackathon. Don't go burning up a bunch of Azure dollars, if you're just doing something for a hobby or something like that. Just fire that thing up, and then go into Azure, and set your resource level, and then get to work.
29:02 MC: And I think the speed is a great thing here, is that, for example, I have made this joke on Twitter, there was a company which I obviously will not name, that they had a message on their site that said, "We're down for maintenance." And I think I tweeted it out, and there was a couple people that commented on it saying something like, "That's crazy in this day and age." And I agree completely, and I took that, thinking of that company that actually shut down their services, and thinking about some companies today and how they would never do that. And in this talk, I added in some deployment slots and I think I created three: A staging, a development, and then a production. Obviously, I'm missing test there, but just for a quick demo, I created a couple of different deployment slots and we actually deployed, again, through Visual Studio, to our staging site.
30:14 MC: And then from there, I went into the portal, 'cause I had been showing some visual stuff there. And I clicked one button, and where I had used some crazy, large font saying, "This is the new version". I clicked one button and then within a couple of minutes, I think it may have been less than that, it had swapped out my staging site with my production site. And it was minds blown, because the level of effort was just a couple of different clicks, obviously deploying the site to the new, to the staging environment, and then one button and being done with it. And folks are pretty amazed that was actually, that I was able to pull that off and then continuous deployment with a GitHub account. I think I'm able to show that whole demo in less than one minute of, "Here's my GitHub repo. This is my website. Now I'm gonna make a change, I'm gonna push it. I'm gonna push it to GitHub repo, and I'm going to show you the build kicking off and then the build redeploying. And I can set that up in about a minute." Stuff like that, that's like, "Oh, wow. That's super fast". If you wanted to go back to your boss and be like, "Oh, yeah. All day today, I've been setting up these deployment slots". [chuckle]
31:49 EC: That's a pretty nice workflow. I've done that before with personal websites, and like I said, hackathons work really good for it just 'cause it's so speedy. But if you can get that set up in a work environment, that's really amazing. To be able to just push it to a Git repo. Just one thing to be aware of is, you're talking about local GitHub repos, just be aware what you push to the actual GitHub.com and make sure your Azure keys are not in that GitHub repo if you're pushing it to GitHub.com or it's public. But I've done this privately before.
32:33 MC: That is very true. And that's also, with ASP.NET, MVC, at least the default template, there is a default connection, where it's hooking that up to SQL Server. And where I would create a SQL database, use an Azure. And I would actually be managing that through SQL Management studio, creating things like, my user that's gonna be logging in, obviously, wouldn't have that full permission each and every time. And as I was doing that, people were always thinking, "Well, how do you wire up the Azure database to your application, your MVC application, and both these are living in the cloud?" and I'm like, "Well, actually, there is, if you just look at the web.config, you'll see that there is this thing called default connection. And that, out of the box, it's set up for a local thing."
33:39 MC: Well, you can switch over into the portal, and you can copy your connection string out. And then, add in the username and password for whatever user. And then drop that into your app. And all of a sudden, your big secret, which is the user that's connecting to that database is now stored inside of the cloud. But yet, it's gonna be called every time that app runs. And you obviously don't have to worry about pushing that in the source control. Little things like that, little tips, tricks, I think really helps people start to understand, "Oh, that was that easy? All I needed was just a connection, a string there to add into my app service?" And that was it. That's actually it, no rocket science here. [chuckle]
34:31 EC: Yeah, ASP.NET course is written in a way to help facilitate that type of stuff as well. The way it overloads your settings is done in a way that's met with Azure development mind. It'll read the environment variables last in your application and pulls things like connection strings and stuff out of your Azure environment variables. Stuff that you don't have stored in source control are on your local machines, so you can't accidentally deploy your app with the development database attached to it and things like that.
35:10 MC: Yeah, that would not be good.
35:14 EC: Of course, none of us have ever done that before, right?
35:16 MC: Never, never.
35:20 MC: Yeah, I don't want to even mention all the things that I've done in my life.
35:25 EC: None of us have ever furiously refreshed the page, wondering why it's not changing because we've accidentally logged into the development database. [chuckle]
35:36 MC: Or wrote a SQL query that deleted too much data that it shouldn't have. And yet, you're like, "Oh, I though that would, oh no, that didn't work. That, actually now, I gotta figure how to restore this data."
35:51 MC: We all have these fails in our life. Maybe we should talk about those more, maybe we should let people know that, especially in social media and Twitter. That way, people feel that we're all human here.
36:09 EC: Yeah, we need a tech fail episode.
36:14 MC: You know what? I think, pretty much anybody would be qualified to be on there as long as they're willing to share what has really happened in their career so far. But yeah, going back to the databases and things like that, I was happy that I could use SQL Management Studio to work with my SQL database in Azure, and that it really wasn't as different as if I had created this locally. And I don't know if you remember it, but setting up SQL Server, it's a scary thing if you're not into that sort of thing. [chuckle] You're trying to figure out, "Okay. Well, I'm hoping that I'm creating, I'm setting up SQL Server correctly." You're just hoping that it just auto fills in as much as possible before you hit the next button as you're walking through the wizard. And I'm happy that the scary wizard that's taking care of me is being taken care of for me by Azure. And that, I only have to put in some of the details that I care about, instead of answering too many questions there, and I can use the tool that I'm familiar with and I know just enough SQL that I can get done what I need to do there.
37:40 EC: Yeah, the local installation for SQL server, I'm trying to think the last time I did it, but it's gotten better over the years but it's still a lot of work. There's still a lot of questions that you have to answer, "What's my server instance name? What are all the security?" Roles and all that stuff has to be entered in there. Any type of abstraction built on top of that, I'm all for it.
38:10 MC: Security roles freak me out, and typically, if I'm doing some sort of demo or something for myself, admin is the way we go. [chuckle] Admin just takes care of all of it, but obviously, if I'm showing some demos to somebody or doing something else, that I'll wanna make sure I get those right, so I spend a lot more time with docs.
38:37 EC: Essay, password, essay.
38:39 MC: Exactly, but with all of this, as I was going through this, and this talk is really demo heavy. One of the things that kept coming up there was, at least with some of the questions was drilling into, "How much does all of these cost? Okay, 'cause you've sold me that this is a pretty cool thing. I like the demos that I'm seeing. How much does this cost? Is this really cheaper versus me just spinning it up on my own, or having my own IT department take care of these data centers, etcetera? And I will say there is a pricing calculator that I would like, if you're wondering if this is for you, there's a pricing calculator that you can go to and you can drill down. For example, a VM, you can drill down to the region, and how many cores you own, how much RAM, what type of hard disk, and it will create an estimate there for you.
39:43 MC: And I would say, for a lot of people, if you're trying just to take a quick look at what the cost is on something, you can take a look at the pricing calculator, which we'll drop a link to that in the notes here. And see if that fits for you, but also you have a credit by creating an Azure account that you can begin going out there and playing with. And then there is also a couple of different sandboxes. There's some sandboxes for app services, where you don't even have to... It just uses your MSA. And also like Azure functions that also uses MSA, and so, no credit cards or cards for some of those things. There is quite a few options that you can do to get started there.
40:32 EC: Yeah. We'll make sure we put resources together for people that wanna check all this stuff out. And do you have some resources already built up? I think, you mentioned something about doing this talk is like an open source project, so other people can take it and shop it around to their user groups or conferences. Do you have some resources for that as well? You wanna talk about that?
41:03 MC: Yeah, absolutely. I remember before, I would get to go to maybe, when I worked as a developer, so I worked at McKesson, healthcare. They're currently, I think taking over almost everything, at least the smaller independent pharmacies. But I worked for McKesson, and at McKesson, I would usually get to go to maybe one conference a year. And so, I would go to maybe one big conference a year. And when I went, I always liked taking the material that somebody presented on, and then coming back and presenting it to my group. And I did that for a couple of reasons. One, is that I wanted to get a little bit better with doing talks because I was doing some user group talks and things like that, and I wanted to get better trying to... On how to do presentations. And then, it was part of sharing knowledge about the event that I just went to, and also, for the boss, making sure that they see that I got value out of this. Not only did I got value but I'm bringing that back to the company.
42:14 MC: And so, when they decide who's gonna go for an event the next year, your name is usually at the very top of the list. With that in mind, what I've been doing with my talks here lately is that I've been putting everything related to the talk in a GitHub folder so things, obviously, such as slides, which almost everybody gives away slides and source code. But also taking that a couple of other levels, and open sourcing like my full demo script. And whenever I present at a conference or user group anywhere, I have a full demo script because I forget really cool things that I really want to show the audience, and it's never more than two pages, front and back. And it's one sheet of paper, and you can flip back and forth. And if I forget how to do something or if I remember that at this certain spot, this demo could fail, and here's how I can work around it quickly because I don't want to waste the attendees time, especially if they just spent thousands of dollars to get there. I don't want them to leave and saying, "Crump's session sucked."
43:27 MC: I put all of my notes here. And then I also put my machine prop, which is... If I was gonna do this talk tomorrow, here's what I would need. I would need two browser windows opened at this website, I would need ZoomIt, to zoom in and out. And I put all of this information inside of the repo, where attendees can take the talk or anybody can take the talk, and then they can present on it as if really it's their own. And the only thing that I really ask is that if they present on it or somebody presents on it, just shoot me an email, let me know that you did it because then I can at least leave saying, "Hey, this is actually turning out to be successful. People are using this".
44:12 EC: A lot of times, I'll try to include some resources like that and people will give me a shout and say, "Yeah, I used this at my meetup group or whatever." And a lot of times, it comes in handy 'cause I can help promote whatever it is they're using it for, whether they included it in another open source project or if they have a talk coming up in their meetup group, and it helps if I can help them share that on Twitter or whatever it is.
44:40 MC: Yeah, and I think people really like that. It's something that I enjoy seeing from other folks.
44:46 EC: The feedback's always helpful to help you improve the content. I'm sure you're like me, the same presentation never goes the same way twice, 'cause it keeps getting better every time you give it.
45:00 MC: That's true, the more time that I present on a topic, then I'm better at it and I think people enjoy it more.
45:12 EC: Absolutely. We'll put all this stuff in the show notes. Michael, where can we find you online?
45:19 MC: Yes, you can find me a couple of places. The best place is probably gonna be Twitter, just simply @mbcrump. And I'm currently doing a thing, where I've been doing some tips and tricks. And anyway, you may enjoy that if you're just starting to use Azure. Tips and tricks right now at the portal. You can find me there. I have a blog, just michaelcrump.net. And yeah, I'm in one of those two places.
45:48 EC: Awesome. Well, thanks again, Mike, for joining me on the show today. We'll be talking to you again, I'm sure. We run into each other from time to time, so I'm sure we'll have a chance to record again, and thanks for talking about Azure with us. It's some pretty cool stuff, we'll have to see what people do with the open source talk.
46:11 MC: Oh yeah, that's awesome. I hope they will enjoy it. Anyway, it's great being on your show. Thanks for having me.
46:18 EC: All right, thanks a lot, man. Goodbye.
Subscribe to be the first to get our expert-written articles and tutorials for developers!