 I'm sorry, we're starting a few minutes late, five minutes late. How are you all doing? Fine. Okay. So which ID do you use when you work with Python? Okay. Not iPython sublime text 3. Yeah. So have you heard of Visual Studio before? Good. At least you've heard. I was assuming nobody would know that even. Anyway. So why am I talking about Python tools for Visual Studio when clearly nobody works on Visual Studio as an editor when it comes to Python? It's because Stack Overflow does annual surveys, annual developer survey, where they talk to around 26,000 people around the world to just profile developers and understand what language are they preferring, what ID they are preferring, what kind of themes they are preferring, et cetera, et cetera. And some really interesting things came out this time. So Python is the third most wanted language in terms of what developers think. Then another statistics is that Python is the sixth, I think, sixth most popular technologies as per developers all around the world. And the desktop operating system that all these developers around the world are working on is Windows 7, followed closely by Windows 8, which is total 53.3% developers. And that kind of got me courage to come and stand over here and talk to you about how you can work on Visual Studio because at least 50% developers are still on Windows. And Visual Studio is a native IDE on Visual Studio. But the good thing is that we have this whole suite of tools called Python tools, which are just made for Visual Studio, which converts this Visual Studio into a Python IDE. So throughout the next, I don't know how many minutes I will talk, but throughout the next few minutes, I'm going to show you some features that I'm going to show you. I work as a technical evangelist with Microsoft Mumbai, I sit out of Mumbai. My job is to work with the team that I belong to is a developer relation or developer ecosystem team. So anything that's related to developer and Microsoft, I'm going to show you some features that you might find interesting. My name is Sameeksha Kharee. I work, I just give a small introduction to myself. I work as a technical evangelist with Microsoft Mumbai, I sit out of Mumbai. My job is to work with the team that I belong to is a developer relation or developer ecosystem team. Anything that's related to developer and Microsoft, we come into the picture. If you have a feedback that you want to give to the product team, if let's say you're working on a solution and you think that Microsoft can do something to help you expedite that, you can talk to us and we can take your query. For example, last year's Star World was making Windows application, which needed HLS SDK. And they were making their application on JavaScript, but HLS SDK was available with only C-Sharp. So we were in touch with them and we got the product team to develop the HLS SDK for JavaScript, make the sample codes for them so that they could do that, make their app on the right time. So sort of my role is the bridge between developers in India to the sort of product team in Redmond and just general bridge between the developers and what they think about technology, especially Microsoft technologies. You can keep in touch with me via LinkedIn or Twitter. So moving forward, Python tools, it's free and it's open source. So if you feel like after this session that you want to make some contributions, please do feel free to do that. Product team will really love it. Like I said, Visual Studio, if you install Python tools for them, it converts into Python IDE and it has support for C-Python interpreter, it supports IntelliSense, iPython, then truckloads of libraries and packages that you can install, normal features like editing, debugging, cross-platform debugging, debugging onto the cloud from Visual Studio, etc. And we'll see a demo of all of this. Installation is pretty simple. First of all, if you don't have a Visual Studio installed in your desktop, you will have to install Visual Studio. And if you are a developer, you should opt for Community Visual Studio 2015 which has all the features that are required and it's free. If you are a startup or a student, you might want to search for BizSpark or DreamSpark program where you get Visual Studio and other tools for free. Or you can talk to your employer if you have an Amazon subscription. So downloading Visual Studio is the first step. Second step is that while you're downloading the Visual Studio, you can do a custom download and check mark on the Python tools for Visual Studio. That's one way of getting Python tools. Second way is if you already have a Visual Studio, you can just download the Python tools through GitHub. This entire thing is on GitHub. And you can download the interpreter as well. Third thing is that if you already have installed, you can modify the installation and then get the Python tools. So first requirement Visual Studio, second Python tools, third Python itself. So you can go to python.org and download the latest version of Python. Or you can download from the distros. Like I think there are Anaconda by Continuum, Canopy by Enthought. We recommend downloading Anaconda because that gives you the latest version of the language and it has a lot of libraries from data and science or something like that. I've not explored it in depth but one guy that I really trust says that this is an amazing stuff. So you might want to check it out. Now let's go to a small demo. I'm going to duplicate my screen. I will start by showing you the Visual Studio interface for those of you who are seeing it for the very first time. So this is Visual Studio where you have a lot of commands at the top. You have an editor on the left and your project file system on the right. Because I've installed Python tools, I'll show you the kind of templates you can work with. So you can see that I have Python installed. I have a lot of web templates. I have a generic web project, bottle framework, Django, Flask, Flask, Jade. So you can download. These templates come as a part of the tools that you have. If you have installed the sample package of it, then you have a sample application, the polls application on all three frameworks. And finally, there is this standalone project for creating a MyLine application which just comes as blank and you can keep on adding the files as and when. So currently the project that I'm open is this one, Python application. And I've added one page, module 1.py. If I want to add another page, I can go ahead, right click, add and add new items. Okay, let me take it step by step. So this solution explorer where your project is visible. Doc. Yeah. So this solution explorer actually displays the files which are very critical to your project. It will not display you automatic generated or any random files. So think of solution explorer files as a file that you will check in in a TFS or any source control or the critical files that you will give to another developer if they were to start working on your project. So, but if you do want to see the auto-generated files, you can click on show all, which should be somewhere here. Okay, there's a show all command somewhere that I can't locate right now, but you can use the show all command and you can work with that and you can display all the files which are available. So now we have seen template, templates which come from Python tools. We have seen the project structure which are there. Let's write, start writing code because our environment is already ready. So what I'm going to do is that I'm going to add another file and add a empty Python file, module 2.py. Whenever you start writing code, the first thing, one of the first things you would want to do is import libraries. So for example, if I want to import from any library, I can just write from and there's a dropdown of all the packages that are available. Let's say I want to install or work with a math library. So if I write math, not just the math comes into the picture, but every other package which has math somehow involved with it. So I'll go ahead and write math. The editor itself prompts me to write an import after that. So it's kind of suggesting me what to do next. Then I can go ahead and see what all functions I want. I can go and choose sign. Moving on. So for example, I have just imported sign function from the dropdown of all the functions and methods that were available. If I wrote cross which I did not import, this is smart tag, this small blue thing that you can see. This smart tag is available that prompts me to import that as well. So I'm going to go ahead and import this. Now I'm imported what I needed. Now I want to write a function. I'll go ahead, find IntelliSense and insert snippet. Python. I will choose def and then write a function name. Any name I can pick. I can pass a variable and think I'm good for now. So I'll just move on. I'll not write anything else in this function. I just written a function name and a variable. Now I'm going to pass some values. These are random dots that I'm writing. Now if I go and define my function and I just write X and I hover, you can see that the function already knows the type of X based on the parameters that I have passed. Now I'll write some math functions. Use smart tag to import radiance. And now time to write the main function. Now I will not go to the IntelliSense and then write the entire function. I'll just tab and the function is here. I'll quickly call the function. And now the editor already knows that the S string type, it already has figured out that the return type is string and it kind of gives me completions for it. So you can have a lot of completions that I can take from here. I'll just go ahead and print it. Press F5. Hopefully there will be no errors. So now you see that this thing is working out. So this simple editor has a lot of powerful editing commands, which makes the development pretty easy because it gives you drop-downs, completions for understanding the variables as per calls, understanding return type of the return type of the functions, etc. Another thing that I want to show you is called Python Interactive. This Python Interactive is basically, if you're working or experimenting with the library and you just want to run a bunch of code quickly and check out the results of it. So you can just go ahead and start writing your code and see the results. It's persistent. It's live. It's persistent, which means if I assign a variable to my X or if I assign a value to my X and then use some function, it can retain that value. It has full support for interpreter, which means that if I write multiple lines of code, it should execute. So if X is greater than 100, again, I missed the colon. Yeah, colon, sorry. Print, yes. Oh, yeah. I'm so sorry. I'm very new to Python. I've just started working on it. Let me quickly use this right. And it also will help us if we are working with any libraries. So for example, I'll again write from. It'll give me library. Hopefully, if there are sublibraries, then sublibraries, then import, and then all the functions of that. So if I'm working with the Azure libraries, then all the functions and classes related to that. Another thing that we can do with interactive window is that if you're working on an editor and you want to send a particular code or particular functions into the interactive window just to check out how that function is working out. So you can copy the code that you want to send to the interactive, right click on it, and send to interactive. And here I'll call the function make underscore dot underscore string and pass a parameter. What did I do now? Give me one second. Okay, let me try that. Thank you so much. Okay. And if I want to edit this function, thanks, it was really that space. And I can change it to sign and do control enter this time and then call the function. You can see the difference. So any real-time change that you want to do, you can keep doing it here. This, let me open up the environment and tell you that for each environment, you will have one interactive. So Python environment. So for example, I have Python 3.5 and Python 3.4. So each have its own interactive, and you can open as many of them as possible. So we just saw the Visual Studio, Visual Studio projects. We saw Visual Studio editing. We saw Visual Studio interactive window. And this is the environment window where you can open the pip and download or check out what packages are installed and you can write it here and then install more packages, et cetera. And we saw the templates which are available. Do you think we can move on? Are you familiar with Visual Studio at some level now? Okay. So I'll go ahead and carry on. So after writing a code, if you are working on an application that requires you to connect to some kind of cloud services, whether it's hosting a web application on the cloud or working with the storage over there, putting up some data or fetching up some data, you would want to have some kind of support in your editor if that's possible. So what we're doing is that Visual Studio has native support for cloud because I work on Azure. That's what I'm using over here. And that also has Azure SDK for Python. This SDK has a lot of libraries and a lot of objects that you can work with. Also it has two emulators, compute and storage, which means as a developer, if you're using Visual Studio as an editor and writing a Python application, that requires you to talk to the Azure cloud services of storage or compute. You don't even have to get out of your editor. You don't have to go to the portal and create website over there and then fetch something and work with that or create, go to your storage and create containers over there and then upload a picture or a blob over there. You can just be in your local IDE, work with the emulators, test everything and directly then deploy. So this is a powerful tool according to me and it, like I said, SDK gives you client libraries emulator, it can be installed on any operating system and installation is very simple like in one command. Let me show you a demo of this. So I've opened a normal sample bottle web project. If I do a F5, if internet is working, I can show that this project and how this looks. So this is a normal internet is working thankfully. This is a normal polls application. It asks you three questions and you can just give your poll for any of this. So I can go ahead and vote for it and I can see the votes into it. Right now everything is running locally and I'm still in my IDE. If I wanted to publish it to the cloud or publish it to any web application in the cloud, all I have to do is that download the SDK of course, download and install the SDK, right click on the project, click on publish, go on profile, click Microsoft Azure Web Apps and you'll have to enter your subscription ID, your subscription will be retrieved and once that happens, I will not take your time into doing all of that. Your subscription will be demonstrated over here and then existing web application comes down over here. Let me just take a moment and do that. You can either create a new website from over here and then host your application over that or you can just choose an existing website and then host your application over it. It's fetching up my subscription right now and so far I haven't gone to Azure Management Portal, I'm still inside my IDE. While it takes time, these are the screens basically. Actually I can... Did it? Okay, forget about it probably. This is the second screen that comes. I've chosen my polls one, two, three, four, that's my website. You can either create it or then pick like I said. Second screen you can just go ahead and click next, settings go on and click next and then click on publish. As soon as you do that, your website is published. I'll just go ahead and use the website that I've already deployed using the same steps and because I was dreading Internet so much that I've already also opened the website. So now you can see the URL is azurewebsite.net. So again the same poll, I can go ahead and open my poll and this time vote for spring and then you can see that the vote count is four which was when we had voted for winter when we were running it locally. So now you know that it's the same website which is there. So with just one right click, you have published your locally running website into the cloud without any hassle of going to the portal, making or downloading something or anything else with the power of Azure SDK for Python and Visual Studio support. There are a couple of more things, yes please. Locally actually on MongoDB, let me show you that. My demo is basically Bottle and MongoDB. I'll take a moment and tell you that. If you again go to what I did for this project is that I created a MongoDB on Azure Portal and if I go right click on properties, I already have done it. I'm running the already working. I can show you where I've mentioned the connection string. So I've right clicked my project, clicked on properties. So this GUI has opened up. Over here I have run, run server command and debug server command because I'm in the debug mode right now and here I've mentioned my repository name MongoDB, MongoDB host and MongoDB database. It's very simple to connect your website to the MongoDB because you've just mentioned these three things. If you have experience with Azure or not, go there, create a MongoDB, it takes like five minutes to create that. Bottom up bar, you'll get a connection string, get the connection string, break it down into host name and host name, repository name, et cetera. Put it over here and you're sorted. And I'll show you in the site which will assure that it's actually running MongoDB. So I'm in my site right now. My app was one, two, three, four. And if I go about in about, you'll see current repository is MongoDB. And I also got a Rob Mongo to actually show you by going inside MongoDB and showing you the database trees and structure that you are actually votes accounting. Unfortunately, although connection in stuff is working, MongoDB is migrating my database to somewhere. All the sandbox database, whoever is working on MongoDB currently will know that they're migrating. So even if I want to, I can't show you that but it's actually very simple. Rob Mongo to see inside your database. So for my application, it's getting saved in MongoDB. So this GUI interface of Visual Studio really makes it simple to even connect to whatever database that you want, whether it's MySQL, whether it's Azure Storage, whether it's MongoDB, whatever. Whichever database you are comfortable with, you can work with that. So so far when we're talking about Azure SDK, sure. I'm not very sure about how charging works but I'm like, I'm exactly. So Azure like you know is pay as you go, whatever you use you have to pay. There's a pricing calculator that you can go to and calculate by virtue of whatever infrastructure or services you're using, what exact amount you will have to pay. But since I'm like a little more technical, so I never paid attention to prices that much. But you can go to Azure documentation, MongoDB and you'll have all the prices stable. So Microsoft that way is very transparent when it comes to charging. So for any services which are around 45 services in Azure that we currently have distributed into 10 buckets, for any service that you're using or combination of services across this bucket that you're using, you'll have a big table prepared. Usually the pricing, I'll give you an overview of how the pricing works in case you're interested. Usually all these services comes into basic shared standard and premium sort of levels. Each of these levels have features less or more, cores of VMs less or more like it's either shared or giving you a complete virtual machine, giving you a complete cluster. And according to whatever is given to you because of that plan, you will be charged like that. So I can't give you an exact of how much it's, but you can check it out. I'm sure it's going to be on the internet. So far we've seen how to work with, how to deploy a website locally. You know that there are client libraries and you know that there are emulators, storage as well as compute that you can work with. You also know how to connect your website to MongoDB now. There's one more thing that I want to show you when it comes to cloud. If you go to view and open server explorer and your Azure subscription has already been fetched or you might have to enter your credentials, all the services will be listed down here. The services that you might want to interact with or which you already are interacting with. So web apps is a part of app service. If I open, I can just see it over here. What is the status of my service? Is it if the website running, not running? If I'm working with storage, I can open the storage, let it refresh. It might take a couple of minutes based on how one internet I have. And you can see my poll, actually this one should have my poll 1, 2, 3, 4. So if I right click, I can refresh view in browser, view settings, attach debuggers which will come to when we talk about debugging. You can stop the website, you can open it to manageable, a lot of other things that you can do. Same way with storage, you have all of this storage which are available, blobs, queues, tables. So if you're working on some code and then you're putting some data, you can open the blob from over here in C. So it's basically sort of a window to talk to Azure services from Visual Studio. I think this is all I wanted to talk about when the cloud connection is concerned. Let's move on. Debugging. Only for one slide, I'll have to sort of show you my slide. I'll just take you to demo again. There are a lot of debugging options which are available in Visual Studio. So there's general debugging like stepping in, stepping over, stepping out that are available. General editor, right click debug. Class platform debugging which is available and debugging this website that we have just hosted on Azure Web Apps. So I'll just directly take you to demos because I think those will be more interesting than theory. So what I'll do is share my screen first. What is this print screen? Never mind. I'll open up any project. Python application 4 should be fine. Let me open. Okay, fine this one. So if this is my, this is the dot, the bouncing dot code or script that we just saw. You can debug and you can step into it. It's just like F5 just that it pauses on each of the statements. And then here's an autos window that gives you a view of local variables. Local which will have the name and the value of all the variables. And a watch where you can write any code and then check it out. So I will write any Python expression. You can write any Python expression in the watch window and see it moving or see it performing some actions as per your code starts getting debug. So these are the three windows. So even if I move a lot, you can see this O moving because I'm working with the function. And over here there's a call stack which gives you the functions or which functions are working right now, which lines we are working. So all of this information are in the call stack. You can also put a breakpoint somewhere and see the values of the variables. For example, I'm here and I value is 6. I can change the value of 6 to 70. Move on. Then I can still do F11, F11. I'm still working with print S. And S is a string. And it should prompt me for more options because S is a string. Since the I variable is int and we just changed it live runtime and S is a string. So if it has to offer something, let it come. I will hover, I will see. So based on what your input of the string is, there's a XML visualizer, HTML visualizer, JSON visualizer or text visualizer. So while you're debugging, you have a lot of option to play around with as per the type of your variables. This is one way to debug. Then second thing that you can do is you can directly right click on your editor and then go ahead with start with debugging. If you're just debugging and there are no errors, that's fine. But if there are errors and you then start debugging, it should break and it's breaking because I've reduced one space here. So basically when you right click and do start with or without debugging, whether you are working with step in, step over or step out, it breaks as if you have put a break point if there are any unhandled expressions in the code. And if there are not any unhandled expressions, it will debug in a very, very normal manner. So these are the two things that I wanted to talk about. Now the third thing that I wanted to talk about in terms of debugging was that, let's say you're working with Visual Studio which is on Windows platform and then there is some script that you are running on a Linux machine or a Mac machine. And you want to debug this script which is running on either Linux or Mac through your Visual Studio tool. So it will be a cross-platform debugging that you can do using Python tools for Visual Studio. So what I have done is that I have created a virtual machine, the Linux virtual machine. And I am going to connect to this Linux virtual machine using Putty and then attach to the process where my script is going to work out. So let's take a look at how that is done. So this is again a normal one-page Python script that I have picked up from Python Wiki. It's a very simple program. It asks me to enter my name. After that, it asks me to take a guess of number from between 1 to 20. If I have entered a number which is less than the number which is randomly fetched, it will prompt me that your guess is too low which is sort of a hint. And then again prompt me to enter a number. If I enter a number which is very high than the current number, the random number which has been picked, it will tell me that the guess is too low. If I have guessed it correctly, it prompts me a message saying good job. And if it's a wrong guess, then it tells me that it's a bad message. So what we'll do right now is we'll connect to... So I made a video out of this, but I want to do it here. So I'll try. If not, then I'll show you the video. So I'm going to enter the name of my virtual machine or the host name or the IP address and click open. Meanwhile, I'll take you to my Azure portal and show you that which virtual machine we are working with. I have logged in on my Putty and entered a username. It should ask me for a password now. So right now, I'm logging into my virtual machine which I've hosted on Azure. And I've logged in successfully right now. I can do a WIM command, go inside my module 1.py, the file in which I'm running, and I can change it or sort of change the code or I can just go ahead and... I think this code is perfect. So I'll just go ahead and... Yeah, I'm doing that. Yeah, WQ. Thank you. After that, I'll just run my module and right now the same code is running in my Linux virtual machine. So I'll just enter my name. It asks me to take a guess. So I'll pick any random number and it's saying your guess is too low. Now, if I want to debug this code to get to know which is the number that they have picked and not get a guess wrong, I'll start debugging my code. So I've put the same script on my visual studio editor. I'll put a breakpoint into the statement on line number 14 where the numbers are actually increasing. I'll debug, attach to the process. So now what I'm going to do is that attach a debugger to the same process where the script is running on my Linux virtual machine. And then I have to put a qualifier to attach. So I'll put a secret that I have created in my script and I'll hit refresh. What it is doing right now is that it has picked up the secret. It knows my Linux, the host name of my virtual machine. It's going to fetch a process on which the script is running. So let's give it a moment. Let me try again. Usually it doesn't take so much of time. But then it depends on the internet connection and everything else. I think I should rather show you the video. Is it my movie or video? So we have seen the process still here. I'll hold on over here. So as soon as you enter your qualifier statement and choose Python remote debugger, it shows you the process in which the script is running. As soon as you hit refresh, that's where I was not able to get through. So the video. And then you just click on attach over there and it's as simple as that. Now attach the debugger to a Linux virtual machine running on the cloud. If you go ahead, let me take you to the part. As soon as the attach happens and you enter another guest, two windows opens up. So there's one autos window that will have your guesses and the number of guesses that you have made. So for example, if I have written six and my number of guesses one, and over here is a Python debugger interact where you can use commands and do whatever you want. So in actual demo had it worked what I would have shown you is that I would have converted my number which is six into the real number which they are searching. And then using this debugger eliminated my wrong guesses and then it would have shown me that your guess is correct. So this is essentially going to do just that. So I'll pause here and reiterate what we have just seen in terms of debugger. So quickly just like five more minutes. So what we've seen is that normal debugging happens through the autos window, the wash list window, stack window, and you can check out the local variables over there and the methods that are doing that call. You can step in to see and pause at each of the step and use F11 to go on. You can also step over and step to the end while using the step in. You can debug without, you can also run your code without a debugger in which case your code will run faster. You can associate, attach a debugger to a remote or a different cross-platform machine whether it's Linux or Mac, whether it's running on-premise or on the cloud and debug that in very, very simple steps. And I just showed you that here the network is not even that strong. So it's fairly easy for a decent network. You should be able to do that. One last quick thing that I want to show you is how to attach a debugger to a website which is running on the cloud. So I'll go back to my Bottle website that we've just seen previously. Actually this time let me take you to Django. Django also I've published on Azure. So let me see if I've already opened it for you. Yeah. So it's jango-webworld.azure-website.net. Any website that you're working with on Azure, backslash, right, PT, what is that? PTVSD, that's all you have to do. If you do that, you'll get a string which is the same string that we have applied when we were doing the cross-platform debugging except that use TCP protocol. You have to copy this string, go to your source code, debug, attach a process, choose Python remote paste. Now one quick thing. In our cross-platform script, I had defined a secret which was Python. In this case, when I'm using a template, where have I defined my secret? Because without secret, you cannot attach to a process. So what Python Tools for Visual Studio does is that when you try to attach a process, it auto-generates a file called web.config, web.debug.config. In that web.config, first of all, you will not be able to see it if you're just working with Visual Studio for the first time because it's an auto-generated file. And I mentioned at the very beginning that your project only shows you critical file. So you'll have to find the show all button and then you'll be able to see the web.config file. Go to your web.config file. I'll do cancel. Here's my web.config. And here I can see that there's a secret mentioned. Copy the secret, paste it on the debugger, and you can attach the debugger like that. After that, it will work similar. For breakpoints, you can do F12, F12, F12, whatever you want to do, you can do that. So how many more minutes? Two more minutes. I'll take that. Just a couple of more things that I wanted to show is that Visual Studio also have a support for source control. So without going to the PowerPoint presentation, I will quickly take you to any of these projects and go to Team Explorer. As soon as I do that and make a new connection, I can choose a new connection, I can add a new repository, I can clone a repository. So for example, you're working with some repository on GitHub and you want to branch it and do your own code in and put it back and sync it. All of this can be done from inside Visual Studio. So just go ahead, paste the URL of the repository that you want to clone and then clone it over here. I have cloned a lot of repositories, but I'll go ahead with Azure SDK. I can quickly click on branch. I can create a new branch over here. Okay, let me go back to... Anyways, so you get the feeling, right? You can go ahead, click the new branch. I'll go over here, go back to my solution explorer and here is my solution explorer where I've branched my repository. Once all of that is done, I can just click few more clicks and I can do a committed change into the repository. One more quick thing that I wanted to tell you was that Python Tools for Visual Studio has full support for IPython and I think that works with full support for IPython. So I just had one PPT that I wanted to show, one slider on that. And with that, it's an overview of Python Tools for Visual Studio that you have seen. You've seen editing, you've seen debugging, you've seen how it works with Cloud, you've seen that it can integrate with source control. Not just GitHub, it can also work with Visual Studio team foundation server if you have ever worked with that. There are a lot of deep dive tutorials and videos that are available on my YouTube channel, and if you have any questions, you can reach out to me or my teammates or any of the product guys from the GitHub repository and if you'd like to contribute, we'll be more than happy if you did that. So this is all from my side and now I can take questions if you have any. Yes, please. Thank you. You just mentioned that we need a Linux VM to operate the thing you showed us. Cross. VMs in Microsoft Azure but gives access to web portals for free. So do we need the Linux VMs in order to deploy them? What I was trying to show you is that there's a feature which makes it possible for you to do a cross-platform debugging. So I chose Linux virtual machine on the cloud because I don't have a Linux virtual machine in my hand or a Mac virtual machine for that matter. So if you come across a situation where you have to work on two different platforms, at that time you already have it and you need it. Actually, for us like students, we have the free access to Azure Web site deployment that service as we get it for free. Right. So the thing is, the person whoever makes the TeamSpark program I can tell him that there is a request from students that the VM should be included in the package. Exactly. At least the basic tier should be included. That's true. You can take it back and if you want you can just tweet to their handle, find out people who do TeamSpark. Because one thing I'd like to share, just one minute. WebsiteSpark was a program that gave Visual Studio professional with MS-DN that access to $50 credits per month. That has been withdrawn recently. So that's the problem, we don't get access to the VMs. But did you get a chance to work with VMs? Yeah, you already have that but I'm thinking about my friends. Yeah, sure. Do you have any sample websites built out of this Python tools for the Visual Studio? Something like a Contoso samples are there from Microsoft. So sir, the one that I was working with, the polls website, that's the one that I know of. I can look for more but if you want to try out that website that I've said just go ahead and write my polls 1234.azurecloud.app That's all. You can try that out. How would the source code and things are available? Yes sir, so you can go to Github and write PTVS which is Python tools for Visual Studio. There's an entire documentation, video series, step-by-step tutorials and even I'm going to start blogging now. So whatever I have shown you right now I'm going to put it on my personal blog too. So I think you've covered from that. So honestly speaking when I was working with, when I was looking at the resource I thought there was a lot of material. So there were a lot of bunch of us who started working on it and if you work on it I would also encourage you to write your own documents for that but they're available. Everything is available. So anybody has any more questions? Yes, please. Yes, yes, you can go to youtube.com and what is that? Type connect and just search connect and PTVS. So you know about Microsoft Virtual Academy that's so nice to hear in a minute. Oh, awesome. I was starting to feel identity crisis here. Oh my God, awesome. For those of you who do not know what an MVP is that MVP is at the most value professional from Microsoft platform and even so this time there is this meetup happening in Redmond for MVP. Are you still an MVP? I'm just curious. You should. It's happening again. No, no, one minute. I'm not sure if there are videos on YouTube to check out is YouTube. There's a connect series somewhere which Microsoft Redmond guy has started making where they are two kinds of videos, a short video that introduce you to the features and a deep dive videos that take you deep dive into the features. I think all you will need to do is go to GitHub and go to PTVS repository. That is your one stop shop for everything you will ever need to know when it comes to Python tools. Also two quick pointer or two quick last minute notes. There are two tools for UWP. UWP is my Windows 10 application apps platform. There are a ton of work which is happening. If you want you can go ahead and check it out and do let us know if there are any feedback and we will be happy to. It's open source so you can contribute to a change or fix the issues. We have a big round of applause for ma'am. We have a small gift for ma'am from the whole team of Python team. Thank you so much. What's in it? Okay, thank you. I had actually gotten people who were asking me questions. Unfortunately it's in my it's left it because I was worried about internet and stuff but please do come people who have asked me questions to the Microsoft boot after this or whenever you get time and collect your pen drives. Thank you so much for listening to it. I wasn't expecting a lot of people to ask me questions. So thanks. There is an announcement. There is one hotel key which has been found in auditorium one. So if it is your key then you should go to registration desk and take it. Thank you.