 We have Wesley with us here, and thank you Wesley for joining us. Admittedly, because it's the first time we are doing things online, there's a little bit of a jitter. But we have Wesley with us now and thank you Wesley for joining us. So a little bit about Wesley. Wesley Chun is the author of Prentice Hall's bestselling core Python books. He's the core co-author of Python Web Development with Django and has written for Linux Journal, CNET and InformIT. Now, if this sounds a little bit of a scripted thing because it is. I'm just reading out of the speaker info, but he is known for a lot more things. He is also one of the fellows of the Python Software Foundation and he actually doesn't need introduction even though I'm giving it. And today's talk that he's presenting is about serverless computing with Python. So, you know, since we are already one minute past the mark, I'm going to add him to the stream. So Wesley, now I'm going to add you to the stream and you can also add your shared screen as well. So, yeah, and I'll be off the stage, but also let me tell you a couple of things. The bad says, but my name is Abhira and the other people assisting me with assisting me today are Nitin, Satish and other. So thanks to all the volunteers who are helping out, you know, because we wouldn't be doing this without any of us. And yeah, and regarding the timings, Wesley, your talk is for 25 minutes plus five minutes for Q&A. You're free to go over the 25 minute mark as well in case you would prefer to take Q&A questions later on and you need the full 30 minutes. But I'll give you a small warning at the end of 25 minutes so that you can take Q&A questions. And people, please feel free to put in your questions on the chat, hop in chat and someone from our volunteer team will give us the questions to be put on the screen, right? So there will be no interruptions for Wesley and there will be no problem for you to get your questions answered as well. So thank you for taking more than my share of time. Wesley, welcome. Great, thank you. Can everybody hear me? I'm guessing everybody can hear me? Say something so we know you can be heard. Right? Okay, great. I'm going to do a question now. Sure. Okay, as long as everyone can hear me, I'm going to start. Okay. All right, hello everyone and or instead of hello, can I say Namaskara? It's been a few years since I've been to Bangalore. I'll just pretend I'm back there again eating all your good food and everything. So anyway, I'm happy to be here talking to you about serverless computing with Python. I am a developer advocate at Google and a little bit more about me on the next page. But before I leave here, one thing I wanted you to have is in case, you know, the conference is over or you didn't get a chance to ask your question. There is a link here to this open Google doc where you can ask questions for me later or you can use this barcode as well. So just kind of like jot that down or take a picture of it since you're all on your computers and take a screenshot of it. And then ask me later, but you know, I'll try and answer as many of the questions on chat as well too. Okay, so a little bit more about me. My background is that my, you know, my goal is to enable all current and future developers everywhere, you know, around the world including India to be successful using Google Cloud and other Google developer tools and APIs. Before I joined the cloud platform team, I used to be on the G Suite team. So a lot of the videos that you see of me online are going to be of G Suite content, which is, you know, Gmail, Google Drive, calendar, doc sheets and slides. You know, of course, instead of showing you how to use those apps, I'm telling you how to code them. So that's really what those videos are. But my background is mostly being a software engineer. I was one of the original engineers that build Yahoo Mail many years ago and, you know, I've written some Python books. Believe it or not, I have a teaching background as well too. So in addition to being an engineer, I have a parallel career being a teacher also part of the Python community. And then that's my academic background. Okay, so let's see what the agenda is today. So I'm going to give you a very fast sort of like review overview review of cloud computing just so that everybody's on the same page. And so that is vendor vendor independence. So it applies to Microsoft Azure. It applies to AWS as well as Google Cloud. So it's not it's not vendor related. So it's just a very generic high level overview. Then I'll talk a little bit more specifically about Google Cloud and what are the groups of products that we have there. And then, of course, the main topic of the talk is serverless computing and where to run your code. And then after the main talk, I will give you some examples of inspirational apps that are running on serverless just to kind of give you an idea of the things that you can build. And then we'll leave you with a lot of links that you can chase down. You will also have a copy of the slides. I have a link to the PDF and the PDF has the links that are clickable. So, you know, if you can't see the URL, but you can tell it's a link. Don't worry, you should be able to click it in the PDF when you get it. Okay, so how about reviewing cloud computing? What is cloud computing? Well, you know, the easiest way I like to say it is that a company doesn't want to support something so they're going to outsource it. Okay. So, for example, it could be computing could be storage. It could be applications. And one of the most famous applications that we outsource that I worked on is email. Right. So many years ago in order to do email, you had to have an email server on your desk on your workstation. And you had to monitor it. But as the internet became, you know, more, you know, more widely used, you can't really expect people to do that. You know, my grandmother, you know, I'm not going to ask her to maintain SMTP on 425 on her computer. It is unreasonable, right? So we've chosen instead of running the mail servers ourselves to outsource that service to a company like, you know, Google for Gmail or Yahoo for Yahoo Mail or Microsoft for Outlook.com or Hotmail. Right. So we're outsourcing. The responsibility for sending and receiving mail is no longer our responsibility because now we are paying a cloud vendor to do it for us. All right. So that's what cloud computing is. And it's all of those, not just one of them. So more particularly as far as, you know, email goes, it falls into one of the cloud pillars. So these are like the well-known three service levels. You have software as a service, infrastructure as a service and platform as a service. So the email example I brought up is an example of a software as a service. That's email, right? So that's Gmail, Yahoo Mail, Hotmail. In fact, all of G Suite or Google Apps, which is, you know, Gmail, Google Drive, Calendar, Dock Sheet Slides, Salesforce, Office 365, all of those are examples of SaaS apps. They are basically cloud-based applications that you do not install on your computer, but instead you access them and you log into them via a web browser. It is an application that's in the cloud now. So I outsource the application. So that's SaaS. At the very bottom is where I'm outsourcing hardware. That's where I need virtual machines and big storage. So Compute Engine, EC2, S3, cloud storage, all of those count. Most cloud vendors have an infrastructure service. So this is at the basic, you know, the both raw hardware that you're trying to outsource because you don't want to buy it because it gets obsolete and things like that. In fact, when you buy a laptop, as soon as it arrives at your door, it's already obsolete, right? That's just how it works. Now, it's great that cloud vendors have this service, but if you're trying to get a VM and your purpose is to run an application, well, guess what? It's not as easy as that because you also have to decide what's the operating system. I have to do, you know, Windows Server or Linux, if so, which distribution and then which kernel version. So that decision has to be made. Then you have to decide on web server, database server, you know, and all these different things that you're responsible for in addition to the application code. So it's really a lot of work. So the best spot is sort of like the sweet spot is in the middle with platform as a service. This is where you don't have to worry about the hardware. You just write the applications and you upload it to, you know, Google or Heroku or AWS Lambda and then the cloud vendors run it for you. You don't have to worry about the hardware. You don't care what operating system it is. Okay. And one of the things I also want you to know is that if you're writing an application on a platform as a service system, just think about it this way. You are actually writing an application that is a SaaS app for your users. Okay. Let me take it from a different angle. You know, like if you find a bug in Gmail, you can't go and fix it because it's not your code. You have to file a ticket or a bug with Google and it's up to our engineers to fix it. So as users, we don't have control over the code for a SaaS app. So similarly for you, if you are writing an application and you run it on a past system, you have created a SaaS app for your customers. And so your customers can't fix the bug. They have to file a ticket with you and you have to fix the bug, right? Because it's your code. Okay. So there's a relationship between past and SaaS. And of course, there's also a relationship between these two as well. Now, with any large ecosystem, there's always going to be gray areas in between. And so cloud is no exception. So in between infrastructure and platform as a service, you have all these intermediate services. They're more than raw hardware. So if you look at the names, it's not VMs. It's not disk. It's more than that, right? So these are typically networking services, data services like databases, data processing, data analytics. Containers are there, right? So it's a layer that sits on top of hardware, but it's not like you can upload code to them and run it, right? You know, obviously you can upload SQL, but that's not the same as applications. And then similarly between SaaS and past, you have what I call restricted past systems. So these are past systems, but what's different about them is that they generally rely on data that live at the SaaS level. Okay. So in other words, you can use Apps Script, you can use force.com. They're great, but if you don't do so with G Suite data or Salesforce data, there's no need for you to use these systems. Just use the general ones down here because they're more multi-purpose, right? These are more specialized. So anyway, so that's what I wanted to say about the two gray areas, the gray area between infrastructure and platform, again, the data services, the network services, things that are more than hardware. And then finally, the gray area between SaaS and past, which are restricted past systems. All right. So that's cloud. So let's look at it from a different perspective. Like what are you responsible for? Okay. So as far as responsibility goes, if you're doing SaaS apps, well, guess what? You've outsourced everything, including the app. So there's really nothing for you to do except for, you know, like your personal, you know, if you're using email, right? Your personal, your email signature and anything that's kind of like a user setting. Everything else is outsourced. You don't care what operating system you don't care what language is written in. None of that. If it's a past system, you've outsourced everything, but not your application code because it's your code and the data for your application. And then at the infrastructure level, you've outsourced the hardware, you know, which is the four things down below, but then you're responsible for everything else from the operating system all the way up to your application. And of course, if you're not using the cloud, you're on premise, then you're responsible for everything. So hopefully this was a good introduction to, you know, review of cloud. I know everybody knows what cloud computing is, but I just want to mention what all of cloud is because some people think, oh, it's only the infrastructure part. You know, a cloud is only VMs and big disk. Or the other way around it's cloud is only G Suite or Office 365. There's nothing else that's cloud, right? Both of those statements are false because cloud is all of these things. All right. So now that we know what cloud is, let's talk about Google cloud. All right. So what is Google cloud? Google cloud is a large conglomerate inside Google. And we make two big products, product groups. One is the GCP, which is Google cloud platform. And then the other one is G Suite. So with cloud platform, many of you already know that's where you get the VMs, the big disk, the networking, the security, the machine learning, you know, all that stuff. On the G Suite side, of course, we know that, you know, it has Gmail, Google Drive, Calendar, Docsheets and Slides. But what some people think is that, oh, the left side GCP is for developers and then the right side is only for users. Not quite true because behind most of the G Suite applications that you know how to use, there's also a developer API. So you can code them as well. So that's what I did, you know, the last six years when I was on the G Suite team. I was actually, you know, creating instructions and tutorials and blog posts and videos to show developers how they can code G Suite. But we're only going to focus on cloud platform today. Okay. So cloud platform, there's so many products. We don't have time to talk about all of them. I do want to focus on serverless stuff. And most of the serverless stuff lies in compute. So that would be the App Engine Cloud Functions and Cloud Run. But we also have like AI and ML. We have big data, identity security, a lot of developer tools, API platforms, ecosystems, IoT stuff, data storage, databases, data transfer, a lot of that stuff, management tools, networking. So there's just like many things. It's probably around 200 or more by now. I can't even keep track of all of it. Okay. And of course, don't forget G Suite because you can code them too. All right. Where does G Suite and GCP fit into our little cloud computing picture? So the easiest way is anything that's sass-flavored lives in G Suite and anything that is below that, which is platform and below, is all GCP. So that's pretty easy to figure out. All right. So that's Google Cloud. Now let's talk about the different ways that you can run your code on Google Cloud Serverless. Okay. So like most cloud platforms, we have VMs and we have big disks. All right. You can get a micro, a very small VM for free every month from Google, from Cloud Platform, all the way up to the biggest, most expensive machine VM that you can rent has 416 vCPUs, 12 terabytes of RAM, and 256 terabytes of disks. So it's really big. And of course, it's really expensive. You know, that machine, I think it's about $82 US every hour. So it is pretty expensive, but look what you get, right? And then we have cloud storage, which is where all of your data goes. It's called the Data Lake because all of your data rivers flow into the Data Lake, right? So all your blob storage is there. And of course, our VMs support most versions of Linux as well as most of the major versions of Windows Server. So yes, you can get those. But as I was mentioning earlier, if you're writing code and applications, why do you want to do this extra work of having to determine which one of these operating systems to use? What is your tech stack and all that stuff, right? So that's why we have serverless, okay? So serverless exists. Well, okay, first it's a lie. Of course there are servers, right? But when we say serverless, what we mean by that is that it's not your problem, all right? You don't have to worry about it. You can focus on your applications and solving problems for your customers, your users and things like that. Now, why is it important? Why should you know about it? Well, according to analyst research, companies spend amount of money has been doubling every other year. They've started keeping track in 2016 and it's projecting to double again, almost double over the next year and then another two years beyond that. So it is a very hot field because a lot of companies are spending money on it, all right? So that's one important reason. Another thing is going viral is a big thing if you develop a startup and it gets really popular. Well, guess what? If you didn't buy enough machines or rent enough VMs, you won't be able to handle a new traffic so your customers will be unhappy and then they're not going to use your service, right? So fortunately, some of our cloud computing serverless products have auto scaling. So if you go viral, we will continue to scale out as traffic comes in. So we can monitor. If your app is getting a lot of traffic, we're going to spin up more instances and things like that. And then when traffic goes down, we shut those down so you don't have to pay for it. Then the opposite is true. What if you don't go viral? What if you got some money to start a company and then you spend too much on hardware and no users are there? You have no users. Well, guess what? You spend too much money on hardware. You could have spent it on another engineer and now you're also not going to be successful because you just were never known, right? Nobody knew who you were. So the other cool thing that serverless handles is this opposite situation where you don't get traffic. Guess what? If your code is not running on serverless, you don't have any instances up, which means you're not getting billed, which means you're not paying. So that's yet another reason why. All right. So what are the three serverless products we have? The first one is App Engine. This is where you want to host an entire app in the cloud. So App Engine exists because many years ago when our engineers built this, they asked a lot of companies, what was the hardest thing for you, for your company to be successful? They said, well, we spend too much time getting machines and the operating system, databases, web servers, security patches, and we were not really spending much time working in our app. Okay. So based on that feedback, we decided to try and change this model so that the developer just focuses on the code and then we take care of all of this. We handle auto scaling. You just upload the code to Google and then we take care of everything else for you. So that's really the main idea behind App Engine. By the way, just because you have an app does not mean that it doesn't have to have a web user interface. There's a lot of users that we have that just have mobile apps. And the mobile app has to talk to something and so it talks to their App Engine service. So yes, you can have an app on App Engine without a web interface. It's optional. But better is if you wrote your app to support both a web interface as well as a mobile app. All right. It's better when you do both because your users can be anywhere, right? So that's really the main idea. It's not just for web apps. Okay. So a lot of popular use cases for App Engine. Like I said, mobile back ends, a lot of social apps, mobile gaming, a lot of consumer web apps. It's used a lot in schools because it's mostly free. Students love free. And of course it's used for business apps as well. So here is your MVP or a minimal viable product. This is the world's smallest App Engine app you can write. It has only three files. It's in Python. But we support PHP and Go and Java and Node and Ruby. So it's not just Python, but Python requires the least amount of lines of code. So that's why I use that. So I have a configuration file that says I want to use Python 3.7. My main app is a web app. It uses the Flask web framework and it's just the hello world that goes to Slash on my website. And then I have, you know, what are all the Python packages that I need? So that goes in the requirements file. So you only really need these like three files and roughly about seven lines of code. If you download the SDK, you just type gcloud app deploy and in 60 seconds. So under a minute, almost always under a minute, your app is available around the world even in America, right? You get a free domain as well too. Okay. And then there's a quick start. I'll have another link to the quick start but that's the quick start. So anyway, so that's the world's smallest app engine app. And, you know, like I said, you get a free domain. Your app is up in 60 seconds. It takes care of everything for you. It really does. Okay. So here's the link to the same link as the last page. So of course we also have it available in Java, no PHP going Ruby too because we support those other languages. But this is the Python one because we're at a Python conference. All right. Moving on. Let's talk about cloud functions. So why does cloud functions exist? Well, maybe you don't have an entire app. Maybe you don't want to worry about frameworks like a LAMP stack, a mean stack. And you just want to deploy like really small functions or microservices. Okay. And the other cool thing that cloud functions does that App Engine cannot do is that it can run based on background events. Like, you know, with App Engine, I have to hit a, you know, I have to have my mobile app calling my app where I have to go to a web browser. But with cloud functions, you could say, I want my cloud function to trigger if somebody sent a message through the cloud PubSub, MesoQ or maybe somebody uploaded a file to cloud storage or maybe somebody logged into Firebase. Okay. So anytime those background events happen, you can make a cloud function execute. So it's event driven processing. So you can do that too. So HTTP calling it directly or background events. It's great. Like App Engine, it's also auto scaling and highly available. And of course, you're only paying if users are calling it. The other cool thing that it can do that things that are bolded. So all the bolded things are things that cloud functions can do, but App Engine cannot. And one of them is develop all of your code in the browser. So in App Engine, you saw that I had a command line gcloud app deploy. I had to run that on the command line. Well, cloud functions, you can also do it from the command line, but you can also do everything from the web browser. It makes it pretty easy. And there's also a second version of cloud functions just for Firebase apps, which Firebase is Google's mobile development platform for iOS and for Android. And of course, there's a Firebase database for it too. And cloud function supports JavaScript, Python, Go, and Java. By the way, doing cloud functions is much faster than anything else. So with a VM, of course, it takes time to set the VM. If you have more than one VM and you want to have a Kubernetes cluster, that also takes a lot of time to set up. App Engine is much faster than those two. The cloud functions is even faster than App Engine. You can actually, like I said, do everything in the browser. You can do Hello World in like five minutes. It doesn't even take 15 minutes. This is very fast. Again, it's because you don't have an entire app. So there's less functionality, less complexity. Okay, so to create a function, you can do it from the web browser, step one. Choose your project and then find the cloud function section in the console and click Create Function. Choose the name of the function, the memory, the trigger type. Is it Node? Is it Java? Python? You pick a language. Then you write the code in the browser and then you click to deploy and then you test it afterwards. It's pretty easy. Or you do everything locally in your computer and you deploy in the command line. Okay, pretty basic. And then, like I said, you can trigger a cloud function from many different sources. So HTTP or based on any kind of events. So that's a list of what some of the events are that's supported. So here's your Hello World MVP for cloud functions. A one-liner, very simple. If you do deploy in the command line, it's a little bit more complex than the App Engine one because, guess what, there's no config files, right? So you have to do everything on the command line. Again, 60 seconds. And then it's up available around the world so you can hit it with your browser or use curl to do it from the command line. And then here's kind of like what it looks like in the web browser. So general is where you put in the information about what kind of cloud function you want, how much memory it takes, you know, how fast the CPU or language trigger is how do you want that cloud function to execute. Then you can edit your source code. And then when you deploy, you can click on the testing tab. You can type in the input JSON payload and then click test the function and then you'll see the output from the cloud function down at the bottom. Okay, so it's pretty basic. All right, so that is it. And there's a quick start for you two. Now, the last one is Cloud Run. This is container hosting in the cloud. What is a container? Well, containers have become much more popular because with these serverless tools like App Engine and Cloud Functions, maybe you can't use one of those supported languages. Maybe you have a C library that does graphics, right? Maybe you have a binary and you can't do that with those two other serverless systems. So this is the reason why you can use any language, any library, any binary. And of course, there's a lot of well-known base images already out there. It's very, very flexible. That's one of the reasons why people choose containers. Okay, I am missing a slide. I lost my slide. The other slide I was missing was, what about serverless? So with serverless, it's called, it's about convenience. Any language, any library, any binary. And of course, there's a lot of well-known base images already out there. Very, very flexible. That's one of the reasons why people choose containers. Okay, I think somebody has to mute. I am missing a slide. I lost my slide. The other slide I was missing was, what about... I'm not going to be able to... Yeah, okay, thank you. Okay, so serverless is convenient, not flexible. Okay, so everything changes with Cloud Run. So with Cloud Run, it gives you the ability to run a container serverlessly. So you can have any language, any library, any binary, just like a regular container can. You put all your code in, by the way, you have to leave an HTTP port open to us so that Google can call your container. And it has to be stateless. All right, so just make it item potent. Bundle in the container, you can use Docker or you can use build packs. That goes into the container registry and then you can deploy with Cloud Run. Okay, pretty basic. All right, okay, so here's a slide. So serverless is inaccessible for some people because they have restrictions. Another restriction I didn't mention is they can be locked in, right? If you code everything in like deep APIs for a pass system, you won't be able to get off. So you want to really have the combination of serverless and containers, all right? So that's what Cloud Run is. It is a fully managed serverless execution environment that runs stateless HTTP containers, okay? And Ty Van Der Laken, because guess what? It's pretty obvious. So anyway, it's basically containers as a service. You can think of it that way, okay? All right, what else? How about our Cloud Run MVP? So the sample that we have is going to be similar to the App Engine one, all right? So you're going to have Flask, here's your hello world. The only thing that's different is I have a line down at the bottom to actually run it because when I had App Engine, I guess what? App Engine's web server ran my code. But since I have a container now, I actually have to start the web server application myself. So that's what the bottom two lines are for. And if the file is into my app directory, I run pip to install Flask. I think, yeah, to install Flask. And anything else that was in my requirements.txt file, you can have a Docker ignore as well. And then what you do is you build your container. So this is... So the gcloud build command is kind of like Docker build plus Docker push combined together. So it makes a... Sorry. So it makes a container, it makes a container, and then in install history, and then if you want to actually run your container, then you just run gcloud run. And then just like App Engine and Cloud Functions, you get a free domain name that you can use. Of course, you can always point your custom domain to it. All right, and there's your quick start. So to wrap up, I want to give you some examples of some inspirational apps. Wait, one more thing. So this is slightly off topic, but we have actually four serverless products. I just want to mention this one. It's in JavaScript, so I don't have too much on it. But I do need you to know that we have four serverless products, not just three. The three that I just mentioned, they're all on cloud platform. This one is actually on the G Suite side. So if you actually find yourself working with a lot of G Suite and you're comfortable with JavaScript, here is a Hello World in JavaScript for Apps Script, which is a way for you to use Google APIs with objects and not by using REST or HTTP. So basically, you're just like doing spreadsheet app.getactorsheet.get sell a one in the upper corner of a spreadsheet, put Hello World into it, and then save it, run it, and then boom, you can program it. So this is not Python, so you can kind of skip that. But one day, hopefully, we can make Python work with Apps Script as well too. But right now, it's only available in JavaScript, so I just want to mention that. So anyway, so to wrap up the talk, I want to show some inspirational apps that one of my summer interns did a couple of years ago. So he wrote a Hangouts Chat productivity tracker or a Google Chat productivity tracker. So what does that mean? So he's a student, but he also has a job because he has to pay for his school. And so what he did was he wrote a chat bot so that every day he got home from school, he would tell the app, hey, he sends a chat message that says start or log, okay, and then it goes to an App Engine app, all right, and the App Engine app will go and create a table in Cloud SQL, so he's creating a relational database. And then so what he does is he'll keep on logging events. So now that it's started, it's going to record all of these events. So whatever he does after school, like I did homework for this class, I did homework for this class, I did some contracting work for this company, I ate dinner with my friends. And then at the end of the night, he can type end. And what that'll do is that'll cause the App Engine app to terminate and to grab the data out of Cloud SQL. It will call the Cloud Natural Language Machine Learning API to analyze all of the work that he's done. And then it puts all the results into a spreadsheet and then he can go and send an invoice to whatever company he worked for. He knows how much time he spent on homework. So it basically helps him be more productive. So that's that interesting app. Here's a kind of example of how it works in Google Chat. So he just typed log, log this event, log this event, log this event, and I think he shows a spreadsheet. Okay, I know he goes really fast. He didn't spend, he didn't put too many frames on the animated GIF for the spreadsheet. But anyway, it actually works, which is pretty cool. So this is the app. You can get it from this GitHub repo right here. And he also presented it as a talk at the Google Developer Group, a user group in Silicon Valley after going back to school a couple of years ago. That was his first app. His second app is using Google Docs as an IDE. So what did he do here? So the main idea behind this app is... Yes? I'm sorry for cutting your cross. We are one minute over the 40-minute mark. Oh, okay. All right, let me just show the end slides. Okay, great. So anyway, so he wrote this for a professor who's managing students who wants to run code. They don't know how to... They're not developers professionally, so he's writing an app that... They can type the code in Google Docs. It reads everything out of the Google Doc, the code. And then it spawns a virtual machine, runs the... It solves Python, runs the code, and then puts the output back into Google Docs. So, you know, you can type Python code in a Google Doc. He runs it, and then you'll see the output in the thing. That's it. This app hasn't been published yet. I'm going to try and get it published within a couple of years. It'll take me a while because he left already and went back to school. Okay, so to wrap up, here are some links for you. So why go cloud computing? Cloud computing is taken world by storm. Why serverless? It lets you focus on just your code. It's great. There's a lot of other Google APIs besides cloud that you can consider using. And here are some links to help you, you know, get started. Python links as well to comparisons to AWS and Azure in case you're curious. And that is it. So, link to the slides is right down here. And then also you can use the barcode to get to the slides as well. If you notice that there's a purple, a progress bar at the bottom of the slides to show you how far along I am in the slide deck, that's a G Suite add-on that you write in JavaScript, but people can code that. And again, so that's my Twitter. Please drop me a line on Twitter. And then again, the link to the Google Doc. All right. So I'm sorry I went over. I don't know if we have time for questions, but that is it. Thank you very much for coming. Thank you so much, Wesley. You know, usually in a live audience, we would have had a round of applause, but I just have to suffice for me and I know everyone is slapping as well. Thank you so much. And we have unfortunately, we don't have time for question and answers, but you will be available on Zulip and on Twitter, right? So I will be available for some more time and Twitter, like forever, as long as Twitter is available, I suppose. Oh, yeah, yeah, yeah. I'll be around on Twitter. I will try and stay on the chat. I will actually try and answer the questions in chat after I'm gone here. I'll stay in the stream yard and answer the questions there, but otherwise hit me up on Twitter. I don't know how long I'm going to stay on chat only because it is almost 1.30 in the morning and I probably need to go to sleep. So thank you. Yeah, so we've noted down all the questions, guys. And we will try and get them out to Wesley so that we can get back the answers at least and we can put them on Twitter and we'll make it so that this lag is caught up. So again, talk to all so much. I think the chat session is going like bonkers because everyone's enjoyed the talk a lot. And yeah, I think we'll move on to the next thing. Thank you so much. Okay, great. Thank you.