WEBVTT

00:00:00.001 --> 00:00:05.900
Python's data science and visualization capabilities are certainly one of the reasons for its meteoric

00:00:05.900 --> 00:00:11.800
rise over the past 10 years. But often, those visuals have been corralled into notebooks used

00:00:11.800 --> 00:00:17.960
by data scientists themselves or into static web pages. Recently, a host of excellent dashboard

00:00:17.960 --> 00:00:23.100
building and hosting frameworks have come along to turn these visuals into interactive apps for

00:00:23.100 --> 00:00:28.200
everyone. On this episode, we'll talk about H2O Wave, one of these excellent dashboard frameworks.

00:00:28.200 --> 00:00:34.580
We have Martin Taroshi from H2O.ai here to tell us about Wave. This is Talk Python To Me,

00:00:34.580 --> 00:00:55.160
episode 386, recorded October 3rd, 2022. Welcome to Talk Python To Me, a weekly podcast on Python.

00:00:55.160 --> 00:00:59.940
This is your host, Michael Kennedy. Follow me on Twitter where I'm @mkennedy, and keep up with

00:00:59.940 --> 00:01:06.080
the show and listen to past episodes at talkpython.fm. And follow the show on Twitter via at Talk Python.

00:01:06.080 --> 00:01:11.580
We've started streaming most of our episodes live on YouTube. Subscribe to our YouTube channel over

00:01:11.580 --> 00:01:17.300
at talkpython.fm/youtube to get notified about upcoming shows and be part of that episode.

00:01:18.140 --> 00:01:24.520
This episode is sponsored by Microsoft for startups founders hub. Check them out at talkpython.fm slash

00:01:24.520 --> 00:01:30.900
founders hub to get early support for your startup. And it's brought to you by Sentry. Don't let those

00:01:30.900 --> 00:01:37.600
errors go unnoticed. Use Sentry. Get started at talkpython.fm/sentry. Transcripts for this

00:01:37.600 --> 00:01:43.060
and all of our episodes are brought to you by Assembly AI. Do you need a great automatic speech to text API?

00:01:43.060 --> 00:01:48.340
Get human level accuracy in just a few lines of code. Visit talkpython.fm/assemblyai.

00:01:48.340 --> 00:01:50.920
Martin, welcome to Talk Python To Me.

00:01:50.920 --> 00:01:52.400
Thanks, Michael. Thanks for having me.

00:01:52.400 --> 00:01:58.860
Oh, it's really great to have you here. I'm super excited to learn about H2O Wave. It looks like a

00:01:58.860 --> 00:02:05.740
really cool project. That's one of these enabling, empowering projects for people who don't feel like,

00:02:05.840 --> 00:02:11.840
oh, I could take my whatever I'm building, my ML model or whatever, or my data analysis and turn it

00:02:11.840 --> 00:02:16.360
into a website or an app or any of those sorts of things. And they'll see that they can with Wave,

00:02:16.360 --> 00:02:21.660
right? Yeah, that's right. Yeah, should be tons of fun. I think it's going to be a relevant topic for a

00:02:21.660 --> 00:02:26.220
lot of people. Before we get to any of it, though, tell me about your background. How do you get into

00:02:26.220 --> 00:02:33.180
programming in Python? Like most people do. I went to college, studied programming, computer science.

00:02:33.180 --> 00:02:39.160
I started working originally as a Java developer, actually, then switched to web developer because

00:02:39.160 --> 00:02:46.940
there was a lack of front-end engineers. And once I joined H2O, I mostly work on front-end here as

00:02:46.940 --> 00:02:53.540
well. But I somehow got in charge of this Python framework. So I need to write a lot of Python

00:02:53.540 --> 00:02:55.400
on day-to-day basis as well.

00:02:55.400 --> 00:03:02.260
I think one of the big ironies of these data science tools and these nice Python visualization

00:03:02.260 --> 00:03:08.760
tools is they're there to let people write Python so they don't have to write a ton of front-end code or

00:03:08.760 --> 00:03:14.300
those kinds of things or write their own web frameworks or use Vue or React. And yet people

00:03:14.300 --> 00:03:20.520
like you who actually make them spend so much time in the JavaScript side of things, right? I mean,

00:03:20.920 --> 00:03:26.100
same thing for Jupyter. You know, it's someone's got to do it. And you're kind of doing it for

00:03:26.100 --> 00:03:28.660
everyone else who uses it and gets to avoid it, right?

00:03:28.660 --> 00:03:34.740
Yeah, that's right. I mean, you know, if you have a look at it, then front-end engineering is

00:03:34.740 --> 00:03:40.540
quite complex topic these days compared to what it has been, let's say, 20 years ago.

00:03:40.640 --> 00:03:44.620
You mean it's more than just linking to jQuery on a CDN?

00:03:44.620 --> 00:03:45.560
Definitely.

00:03:45.560 --> 00:03:51.740
It used to be so straightforward. And it really is. If you don't do it day-to-day, it's like,

00:03:51.740 --> 00:03:54.660
how do I even get started to get this app up and going? It's crazy.

00:03:54.660 --> 00:04:00.260
Yeah, exactly. And that's why we are here today to talk about how to make everyone's life easier.

00:04:00.260 --> 00:04:03.260
That's right. Well, everyone but yours. You take the pain for the rest of us.

00:04:03.260 --> 00:04:07.000
Yeah, but I kind of enjoy it. So that's not the problem.

00:04:07.640 --> 00:04:14.100
Yeah, of course. If you love it, then it's all good. Before we get into Wave, you said you did,

00:04:14.100 --> 00:04:18.300
you switched over to front-end stuff. What are your front-end technology favorites,

00:04:18.300 --> 00:04:19.800
like front-end frameworks and stuff?

00:04:19.800 --> 00:04:27.120
To be honest, I don't like frameworks at all. I like web as a platform because it also has become

00:04:27.120 --> 00:04:34.220
very powerful. We have a lot of stuff that we didn't have before. But, you know, if you want to

00:04:34.220 --> 00:04:42.100
build something enterprise-y or something that needs a longer maintenance, then you need to reach out for

00:04:42.100 --> 00:04:48.560
frameworks. So currently, I've gone in React, which is, I would say, industry standard, but also have

00:04:48.560 --> 00:04:55.180
experience with Vue or Angular. So at the end of the day, it's just a tool in our toolbox.

00:04:55.180 --> 00:04:59.320
Pick one and go with it. And other front-end question, straight JavaScript or TypeScript?

00:04:59.320 --> 00:05:01.180
Definitely TypeScript all the way.

00:05:01.180 --> 00:05:01.460
Yeah?

00:05:01.460 --> 00:05:05.340
Yeah. I mean, once you try TypeScript, then there's no way back.

00:05:05.340 --> 00:05:10.500
Okay. I've done a little bit of TypeScript, but not enough to really pick it up, I don't think.

00:05:10.500 --> 00:05:16.200
My JavaScript front-end experience is pretty limited. I try to stick with the Python side of things,

00:05:16.200 --> 00:05:18.200
the server-side type of things as much as possible.

00:05:18.440 --> 00:05:25.080
Speaking of which, sticking with Python, I guess maybe could get to the other question of what do

00:05:25.080 --> 00:05:30.180
you do day-to-day? Kind of edge our way into this project? Day-to-day work on this H2O, right?

00:05:30.180 --> 00:05:37.740
Yeah. Exactly. So basically, I work on H2O way, which is a framework for not only data scientists

00:05:37.740 --> 00:05:44.200
and people making AI models to make their life easier, as you have already said, and to allow

00:05:44.200 --> 00:05:51.080
them to build web applications without regular web knowledge like HTML, CSS, and JavaScript.

00:05:51.080 --> 00:05:58.800
And my day-to-day concept is basically helping people out community-wise, answering questions,

00:05:58.800 --> 00:06:06.720
getting new feature requests in. Then I have also two people, two developers, that I help with

00:06:06.720 --> 00:06:13.940
bringing on their issues up, unblocking them. And I also need to code, bigger features

00:06:13.940 --> 00:06:17.760
and basically picking on podcast if I have time.

00:06:17.760 --> 00:06:25.260
Yeah. It sounds a little bit like a blend between sort of a program manager, software developer

00:06:25.260 --> 00:06:29.760
on one half, and then dev evangelist almost on the other.

00:06:29.760 --> 00:06:36.480
Yeah. In country where I come from, we call it a girl for everything. So basically you need to

00:06:36.480 --> 00:06:37.980
jump on a lot of head.

00:06:37.980 --> 00:06:46.480
Yeah. Perfect. All right. Well, give us the quick elevator pitch of H2O wave. It's four people,

00:06:46.480 --> 00:06:52.900
you know, the headline, I guess the H1 of your website, if you will, is make AI apps.

00:06:52.900 --> 00:07:01.120
Yeah, that's right. So basically I've already said H2O wave is a framework that allows you to build web

00:07:01.120 --> 00:07:08.120
applications and dashboards with nothing but Python, no CSS, no HTML, no JavaScript required. However, if you wish

00:07:08.120 --> 00:07:36.120
to sprinkle a little bit of JavaScript or CSS, then you definitely can. That's not a problem. And basically we try to build a rich library of widgets or components that are ready to use. And that should cover a wide range of scenarios that people might encounter. So at the end of the day, you end up with a very little bit of Python code that does very much.

00:07:36.120 --> 00:08:03.960
Yeah. Let's set the stage a little, maybe thinking about what options do people have today? They've got an ML model that makes predictions, or maybe they've got something that will slice and dice the data and turn it into a graph, but you want to let them maybe pick the country by which you do, you pull the data from or the time range or some other aspect and make it a little bit interactive, you know, or even not, if you don't have that option, just make it static, I guess.

00:08:04.120 --> 00:08:08.120
Like, what are the different things people are doing now that might relate to this?

00:08:08.120 --> 00:08:29.560
Yeah, that's a great question. So the simplest thing that people can do is the regular tool of their interest is the notebook, which is very user friendly. You have just a single prompt, which you type into, and that behaves as a repo. And basically,

00:08:29.560 --> 00:08:57.560
what they get in response are just static images of graphs or whatever. And these then can be then copy pasted as screenshots to either PowerPoint presentations or whatnot. However, this approach is, as you have said, somewhat static, and can be not so engaging, let's say. So that's where web application come into play, which can sprinkle a little bit of interactivity. So let's say you have a

00:08:57.560 --> 00:09:07.660
So let's say you have a sidebar that has various controls like filters or maybe some sliders that adjust model values.

00:09:07.660 --> 00:09:13.200
And on the right side, you get your visualization interactively in real time.

00:09:13.200 --> 00:09:19.060
So this is something that has more storytelling power, let's say.

00:09:19.060 --> 00:09:24.260
H2O Wave was initially built with this in mind as well.

00:09:24.260 --> 00:09:25.840
Right, and Jupyter is fantastic.

00:09:25.840 --> 00:09:34.940
I mean, so many people work in Jupyter and do amazing things, but it's not necessarily what you deliver to an end user.

00:09:34.940 --> 00:09:46.500
If the CEO of your company says, hey, I want you to give me a dashboard that helps me understand, say, sales and cost this month,

00:09:46.500 --> 00:09:50.480
you probably aren't going to just point them at your Jupyter Notebook on GitHub.

00:09:50.660 --> 00:09:56.340
You probably still are not even going to point them at a version running on your server.

00:09:56.340 --> 00:09:59.120
What if they want that updated every minute?

00:09:59.120 --> 00:10:02.680
You know, with highlights or important stuff.

00:10:02.880 --> 00:10:10.040
And they want to access it on their phone in a way that is like, you know, you have more control over how it lays out.

00:10:10.040 --> 00:10:15.480
It's just, Jupyter is great, but it's not an end user technology.

00:10:15.480 --> 00:10:18.200
It's an enabling technology, right?

00:10:18.200 --> 00:10:22.160
It's like saying, well, I'm going to give PyCharm to a user to run my app.

00:10:22.160 --> 00:10:23.860
It's like, well, no, no, no, no, no, no.

00:10:24.240 --> 00:10:28.660
It's cool if you could run your code, but that's not the tool that you give them to do it with, right?

00:10:28.660 --> 00:10:31.420
You package it up into a .app or whatever you're after.

00:10:31.420 --> 00:10:32.500
Yeah, exactly.

00:10:32.500 --> 00:10:34.960
And that's kind of the gap you're trying to close, right?

00:10:34.960 --> 00:10:35.940
That's right.

00:10:35.940 --> 00:10:36.720
Well, cool.

00:10:36.720 --> 00:10:37.020
Okay.

00:10:37.560 --> 00:10:41.440
Now, when I hear that, I think of a couple of other projects.

00:10:41.440 --> 00:10:47.180
Streamlit, I interviewed Adrian back, I think it was 2019, who founded Streamlit.

00:10:47.180 --> 00:10:55.000
And Streamlit is about building these really simple dashboards, sort of interactive places,

00:10:55.000 --> 00:11:00.240
where, say, on the left, you've got a few things you can change.

00:11:00.240 --> 00:11:06.880
And on the right, you might have some kind of graph, or you might get a 404 if you're clicking through the gallery right now.

00:11:06.880 --> 00:11:08.960
But this is in that realm.

00:11:08.960 --> 00:11:12.280
And then also, plotly dash as well.

00:11:12.280 --> 00:11:16.340
Give us a sense of, like, how those compare.

00:11:16.340 --> 00:11:19.400
Because there's probably people listening who are like, well, yeah, I'm really interested in this,

00:11:19.400 --> 00:11:21.740
but I've already considered working with Streamlit.

00:11:21.740 --> 00:11:25.820
Should I choose H2O Wave, or should I stick with Streamlit, or whatever?

00:11:25.820 --> 00:11:26.640
Yeah, definitely.

00:11:26.640 --> 00:11:33.860
So basically, one of the main reasons that Wave was built, because it's very similar to the project that you mentioned,

00:11:34.060 --> 00:11:39.880
is that we were not very satisfied with either performance.

00:11:39.940 --> 00:11:48.360
And the second reason was that, for example, Streamlit apps used to be very resource-heavy.

00:11:48.360 --> 00:11:52.080
That means a lot of money in production costs.

00:11:52.080 --> 00:12:00.780
So the reason was that Streamlit used to run a separate process for every single browser tab,

00:12:01.080 --> 00:12:03.240
which, of course, demanded a lot of memory.

00:12:03.240 --> 00:12:07.900
However, I have checked before this podcast to be 100% sure.

00:12:07.900 --> 00:12:12.800
And it seems like they migrated to a single-threaded AsyncIO approach since then,

00:12:12.800 --> 00:12:18.240
which is the same approach that, let's say, Dev or H2O Wave also follow.

00:12:18.540 --> 00:12:20.720
So this is not a differentiator anymore.

00:12:20.720 --> 00:12:29.460
The biggest differentiator is that H2O Wave has most features, let's say, most widgets to use.

00:12:29.460 --> 00:12:41.360
And we also haven't seen any, let's say, regular web application beyond these filters and sliders that change your model outputs.

00:12:41.420 --> 00:12:50.460
H2O Wave, we've seen, like, web applications that you would get maybe only software engineers could build, not the data scientists.

00:12:50.700 --> 00:12:58.300
Right. So, for example, with Streamlit, what I often get, like, here I pulled up an example that they have, some real-time text thing.

00:12:58.300 --> 00:13:01.660
And what you get is kind of this interactive, this one doesn't even have a sidebar.

00:13:01.660 --> 00:13:03.000
It's pretty nice.

00:13:03.000 --> 00:13:06.260
So you can, I've got a little drop-down and a button to start working with it.

00:13:06.260 --> 00:13:11.960
But you don't have, like, a footer and a nav bar and multiple things on there with responsive layout.

00:13:11.960 --> 00:13:14.380
And, you know, like a lot of the stuff you would expect, right?

00:13:14.420 --> 00:13:18.560
It's still pretty close to what you might see on a notebook.

00:13:18.560 --> 00:13:20.100
As nice as it is.

00:13:20.100 --> 00:13:21.020
I do really like Streamlit.

00:13:21.020 --> 00:13:21.760
Yeah, exactly.

00:13:21.760 --> 00:13:24.800
We call this concept toy apps, let's say.

00:13:24.800 --> 00:13:30.100
These are more like POCs, the stuff that we have talked to a while ago.

00:13:30.100 --> 00:13:40.440
Wave is originally built with this in mind, but then somehow grew much larger that we can talk about it.

00:13:40.440 --> 00:13:45.260
Yeah, it definitely seems like it's grown a bit more.

00:13:45.260 --> 00:13:52.480
I haven't checked up on Streamlit enough to be able to follow along with exactly how many widgets they have and so on.

00:13:52.480 --> 00:13:52.920
But, yeah.

00:13:52.920 --> 00:13:56.060
Maybe compare to Plotly Dash as well.

00:13:56.060 --> 00:13:56.760
Yes.

00:13:56.760 --> 00:13:59.880
So I'm not very experienced with Plotly.

00:13:59.880 --> 00:14:00.960
Neither am I, to be honest.

00:14:00.960 --> 00:14:03.120
But assuming the same story there.

00:14:03.120 --> 00:14:09.920
So they have a few form widgets, like text boxes, folders, drop-downs, etc.

00:14:09.920 --> 00:14:12.880
That let you control the visualization.

00:14:12.880 --> 00:14:22.180
But also, if you have a look, this visualization that you present, and these are like 3D models for our listeners who can see our screen.

00:14:22.180 --> 00:14:29.980
Most likely, it's just third-party JavaScript library, which means that it's not necessarily a bundle of Plotly Dash.

00:14:29.980 --> 00:14:32.280
So no Python API.

00:14:32.280 --> 00:14:32.820
Right.

00:14:32.820 --> 00:14:38.420
If we look over here at H2O Wave, the headline is Make AI Apps.

00:14:38.420 --> 00:14:42.880
But it sounds to me like a broad range of apps could really land here.

00:14:42.960 --> 00:14:50.640
If you're interested in almost any kind of reporting, dashboard, visualization, give us some ideas of the types of apps that people are building here.

00:14:50.640 --> 00:14:56.840
The most common applications are the toy apps, as we have already discussed.

00:14:56.840 --> 00:15:04.940
But once people truly discover the power of Wave, then they started to amaze us as developers.

00:15:04.940 --> 00:15:14.020
Because they started to build production-grade applications that could be deployed and put to production and work just fine.

00:15:14.020 --> 00:15:14.260
Right.

00:15:14.260 --> 00:15:25.560
For example, H2O organized public, let's say, hackathon that aimed to save or to predict wildfires in California.

00:15:25.920 --> 00:15:28.760
I believe in California, maybe in the whole world.

00:15:28.760 --> 00:15:45.520
And one kind of software engineer built a truly wonderful Wave app that allowed them to submit their model, to preview them, to make scoreboard and everything within Wave application.

00:15:45.520 --> 00:15:49.520
And it took in like two weeks, which is like incredible.

00:15:49.520 --> 00:15:49.800
Yeah.

00:15:49.800 --> 00:15:50.600
That's amazing.

00:15:50.600 --> 00:15:51.160
Yeah.

00:15:51.160 --> 00:16:02.000
But maybe some success story from a data scientist context, let's say, we have a team at H2O that wasn't very happy with one of our data science products.

00:16:02.000 --> 00:16:04.960
So they decided, let's build one ourselves.

00:16:04.960 --> 00:16:12.360
The result was that they have built, it's called Hydrogen Torch, a framework for deep learning.

00:16:12.600 --> 00:16:19.040
And the result is a Wave application that was built within a week or two as an initial concept.

00:16:19.040 --> 00:16:22.560
And it has features like you can train your models.

00:16:22.560 --> 00:16:29.720
You can see how it predicts, let's say, computer vision models with the image annotations.

00:16:29.720 --> 00:16:33.480
It has support for audio, if I remember correctly.

00:16:33.480 --> 00:16:34.080
And it's...

00:16:34.080 --> 00:16:34.400
Wow.

00:16:34.400 --> 00:16:35.320
Yeah, exactly.

00:16:35.320 --> 00:16:40.320
And it's simply just everything that you can expect from a regular web application.

00:16:40.520 --> 00:16:46.360
And that blew my mind because the guys behind the Hydrogen Torch are not software engineers.

00:16:46.360 --> 00:16:48.400
They are purely data scientists.

00:16:48.400 --> 00:16:54.720
They are even Kaggle grandmasters for those who are aware of Kaggle platform.

00:16:54.720 --> 00:16:58.280
And they were able to build it themselves, which is...

00:16:58.280 --> 00:16:58.960
Oh, that's fantastic.

00:16:58.960 --> 00:17:00.160
...mind-blowing to me.

00:17:00.160 --> 00:17:01.120
Hydrogen Torch.

00:17:01.120 --> 00:17:01.600
Okay.

00:17:01.600 --> 00:17:02.960
Yeah, I haven't heard of that.

00:17:02.960 --> 00:17:03.960
It looks pretty cool.

00:17:03.960 --> 00:17:08.800
It has experiment flow and dataset connectors and even pre-processed datasets.

00:17:08.800 --> 00:17:09.800
Yes.

00:17:09.800 --> 00:17:15.240
And remember that these features were built by data scientists, which is something that you

00:17:15.240 --> 00:17:18.880
would typically require a whole software engineering team, right?

00:17:18.880 --> 00:17:19.880
Right.

00:17:19.880 --> 00:17:22.020
Probably didn't even use any TypeScript or React.

00:17:22.020 --> 00:17:22.640
No.

00:17:22.640 --> 00:17:24.160
That's cool.

00:17:24.160 --> 00:17:28.080
This portion of Talk Python To Me

00:17:28.080 --> 00:17:28.900
is brought to you by

00:17:28.900 --> 00:17:30.960
Microsoft for Startups Founders Hub.

00:17:30.960 --> 00:17:33.020
Starting a business is hard.

00:17:33.020 --> 00:17:34.140
By some estimates,

00:17:34.140 --> 00:17:35.680
over 90% of startups

00:17:35.680 --> 00:17:36.600
will go out of business

00:17:36.600 --> 00:17:37.960
in just their first year.

00:17:37.960 --> 00:17:39.400
With that in mind,

00:17:39.400 --> 00:17:40.500
Microsoft for Startups

00:17:40.500 --> 00:17:41.640
set out to understand

00:17:41.640 --> 00:17:43.660
what startups need to be successful

00:17:43.660 --> 00:17:45.700
and to create a digital platform

00:17:45.700 --> 00:17:47.440
to help them overcome those challenges.

00:17:47.440 --> 00:17:49.480
Microsoft for Startups Founders Hub

00:17:49.480 --> 00:17:50.140
was born.

00:17:50.140 --> 00:17:52.440
Founders Hub provides all founders

00:17:52.440 --> 00:17:54.660
at any stage with free resources

00:17:54.660 --> 00:17:56.760
to solve their startup challenges.

00:17:56.760 --> 00:17:59.400
The platform provides technology benefits,

00:17:59.400 --> 00:18:01.300
access to expert guidance

00:18:01.300 --> 00:18:02.360
and skilled resources,

00:18:02.360 --> 00:18:04.300
mentorship and networking connections,

00:18:04.300 --> 00:18:05.380
and much more.

00:18:05.380 --> 00:18:07.320
Unlike others in the industry,

00:18:07.320 --> 00:18:09.420
Microsoft for Startups Founders Hub

00:18:09.420 --> 00:18:10.860
doesn't require startups

00:18:10.860 --> 00:18:12.320
to be investor-backed

00:18:12.320 --> 00:18:14.980
or third-party validated to participate.

00:18:14.980 --> 00:18:17.660
Founders Hub is truly open to all.

00:18:17.660 --> 00:18:19.160
So what do you get if you join them?

00:18:19.160 --> 00:18:20.500
You speed up your development

00:18:20.500 --> 00:18:22.100
with free access to GitHub

00:18:22.100 --> 00:18:24.000
and Microsoft Cloud computing resources

00:18:24.000 --> 00:18:25.640
and the ability to unlock

00:18:25.640 --> 00:18:27.440
more credits over time.

00:18:27.440 --> 00:18:28.900
To help your startup innovate,

00:18:28.900 --> 00:18:30.080
Founders Hub is partnering

00:18:30.080 --> 00:18:31.360
with innovative companies

00:18:31.360 --> 00:18:32.120
like OpenAI,

00:18:32.120 --> 00:18:33.980
a global leader in AI research

00:18:33.980 --> 00:18:34.520
and development,

00:18:34.520 --> 00:18:36.500
to provide exclusive benefits

00:18:36.500 --> 00:18:37.140
and discounts.

00:18:37.140 --> 00:18:39.740
Through Microsoft for Startups Founders Hub,

00:18:39.740 --> 00:18:40.940
becoming a founder

00:18:40.940 --> 00:18:42.580
is no longer about who you know.

00:18:42.580 --> 00:18:43.400
You'll have access

00:18:43.400 --> 00:18:44.540
to their mentorship network,

00:18:44.540 --> 00:18:46.180
giving you a pool of hundreds

00:18:46.180 --> 00:18:47.640
of mentors across a range

00:18:47.640 --> 00:18:49.340
of disciplines and areas

00:18:49.340 --> 00:18:50.720
like idea validation,

00:18:50.720 --> 00:18:51.520
fundraising,

00:18:51.520 --> 00:18:52.780
management and coaching,

00:18:52.780 --> 00:18:53.840
sales and marketing,

00:18:53.840 --> 00:18:54.960
as well as specific

00:18:54.960 --> 00:18:56.120
technical stress points.

00:18:56.120 --> 00:18:57.300
You'll be able to book

00:18:57.300 --> 00:18:58.200
a one-on-one meeting

00:18:58.200 --> 00:18:58.840
with the mentors,

00:18:58.840 --> 00:18:59.620
many of whom

00:18:59.620 --> 00:19:01.340
are former founders themselves.

00:19:01.340 --> 00:19:03.380
Make your idea a reality today

00:19:03.380 --> 00:19:04.860
with the critical support

00:19:04.860 --> 00:19:06.480
you'll get from Founders Hub.

00:19:06.480 --> 00:19:07.680
To join the program,

00:19:07.680 --> 00:19:08.240
just visit

00:19:08.240 --> 00:19:09.320
talkpython.fm

00:19:09.320 --> 00:19:10.480
slash Founders Hub,

00:19:10.480 --> 00:19:11.200
all one word,

00:19:11.200 --> 00:19:12.440
no links in your show notes.

00:19:13.080 --> 00:19:13.760
Thank you to Microsoft

00:19:13.760 --> 00:19:14.740
for supporting the show.

00:19:14.740 --> 00:19:18.660
I think maybe to give,

00:19:18.660 --> 00:19:20.180
to make this a little bit concrete

00:19:20.180 --> 00:19:21.520
to help people get a sense

00:19:21.520 --> 00:19:23.600
of how you work with this

00:19:23.600 --> 00:19:24.640
and what it has to offer,

00:19:24.640 --> 00:19:26.160
I want to maybe talk

00:19:26.160 --> 00:19:26.980
through two areas.

00:19:26.980 --> 00:19:28.120
I want to talk through

00:19:28.120 --> 00:19:29.020
kind of getting started

00:19:29.020 --> 00:19:29.700
what it looks like

00:19:29.700 --> 00:19:30.940
to write some code here.

00:19:30.940 --> 00:19:33.020
Also, maybe talk through

00:19:33.020 --> 00:19:33.720
some of the widgets

00:19:33.720 --> 00:19:34.860
because as you pointed out,

00:19:34.860 --> 00:19:35.800
if you look through

00:19:35.800 --> 00:19:36.680
the widgets section,

00:19:36.680 --> 00:19:39.600
it's like a multi-level

00:19:39.600 --> 00:19:41.720
hierarchy of things,

00:19:41.720 --> 00:19:42.960
but there's

00:19:42.960 --> 00:19:44.680
several hundred widgets

00:19:44.680 --> 00:19:45.940
that you can use

00:19:45.940 --> 00:19:47.580
so that's a lot

00:19:47.580 --> 00:19:49.100
to just be able to,

00:19:49.100 --> 00:19:49.380
you know,

00:19:49.380 --> 00:19:50.120
write a few,

00:19:50.120 --> 00:19:51.320
one line of Python

00:19:51.320 --> 00:19:52.080
and bring in

00:19:52.080 --> 00:19:53.640
some amazing UI element,

00:19:53.640 --> 00:19:53.900
right?

00:19:53.900 --> 00:19:54.980
Yeah, exactly.

00:19:54.980 --> 00:19:56.480
But let's start with

00:19:56.480 --> 00:19:58.160
going through the tutorial.

00:19:58.160 --> 00:19:58.600
So,

00:19:58.600 --> 00:19:59.740
we can talk through

00:19:59.740 --> 00:20:00.900
maybe a couple of these

00:20:00.900 --> 00:20:01.580
because I think they're

00:20:01.580 --> 00:20:02.420
a little bit interesting.

00:20:02.420 --> 00:20:03.640
They're all quite short

00:20:03.640 --> 00:20:05.260
and I'll keep it simple

00:20:05.260 --> 00:20:05.800
because I know

00:20:05.800 --> 00:20:07.520
code on the internet is hard

00:20:07.520 --> 00:20:08.240
but just to kind of

00:20:08.240 --> 00:20:08.880
give you a sense of

00:20:08.880 --> 00:20:09.940
like some of the moving parts.

00:20:10.580 --> 00:20:10.740
So,

00:20:10.740 --> 00:20:12.640
in order to

00:20:12.640 --> 00:20:14.020
do any of this stuff,

00:20:14.020 --> 00:20:14.740
maybe we should

00:20:14.740 --> 00:20:16.020
also think a little bit

00:20:16.020 --> 00:20:17.000
about the architecture

00:20:17.000 --> 00:20:18.700
is you have a

00:20:18.700 --> 00:20:20.020
Wave server

00:20:20.020 --> 00:20:20.560
and you have

00:20:20.560 --> 00:20:22.080
Wave applications,

00:20:22.080 --> 00:20:22.540
right?

00:20:22.540 --> 00:20:23.560
You write these

00:20:23.560 --> 00:20:24.760
Wave applications

00:20:24.760 --> 00:20:25.280
in Python

00:20:25.280 --> 00:20:26.120
but the server itself

00:20:26.120 --> 00:20:26.660
is like a

00:20:26.660 --> 00:20:27.520
Go centralized

00:20:27.520 --> 00:20:28.540
host

00:20:28.540 --> 00:20:29.680
like MicroWSGI

00:20:29.680 --> 00:20:31.020
or G Unicorn

00:20:31.020 --> 00:20:31.760
or something

00:20:31.760 --> 00:20:32.500
but for Wave,

00:20:32.500 --> 00:20:32.720
right?

00:20:32.920 --> 00:20:33.580
Yeah, exactly.

00:20:33.580 --> 00:20:34.520
So basically,

00:20:34.520 --> 00:20:35.700
as you have said

00:20:35.700 --> 00:20:37.000
that there are two parts

00:20:37.000 --> 00:20:37.760
Wave server

00:20:37.760 --> 00:20:38.860
and Wave application.

00:20:38.860 --> 00:20:40.160
Wave server is written

00:20:40.160 --> 00:20:40.820
in Golang

00:20:40.820 --> 00:20:42.200
and it provides

00:20:42.200 --> 00:20:43.200
one of the

00:20:43.200 --> 00:20:44.360
highlight features

00:20:44.360 --> 00:20:45.340
of Wave

00:20:45.340 --> 00:20:46.200
and that is

00:20:46.200 --> 00:20:47.600
seamless integration

00:20:47.600 --> 00:20:49.100
with the OpenID Connect

00:20:49.100 --> 00:20:49.960
which is

00:20:49.960 --> 00:20:50.860
authentication

00:20:50.860 --> 00:20:52.860
protocol

00:20:52.860 --> 00:20:54.580
because most of

00:20:54.580 --> 00:20:56.360
your enterprise

00:20:56.360 --> 00:20:57.180
applications

00:20:57.180 --> 00:20:58.240
need to be secured

00:20:58.240 --> 00:20:58.640
somehow,

00:20:58.640 --> 00:20:59.100
right?

00:20:59.100 --> 00:21:00.640
And as a data scientist,

00:21:00.640 --> 00:21:02.400
you just don't want to

00:21:02.400 --> 00:21:04.040
and cannot do that

00:21:04.040 --> 00:21:04.760
yourself

00:21:04.760 --> 00:21:05.620
because it's

00:21:05.620 --> 00:21:06.940
security-wise

00:21:06.940 --> 00:21:07.520
tricky,

00:21:07.520 --> 00:21:08.180
but they...

00:21:08.180 --> 00:21:08.520
Yeah, sure.

00:21:08.520 --> 00:21:09.620
And even if you did,

00:21:09.620 --> 00:21:10.380
a lot of the

00:21:10.380 --> 00:21:11.540
OAuth flow

00:21:11.540 --> 00:21:12.740
requires you setting up

00:21:12.740 --> 00:21:13.600
certain endpoints

00:21:13.600 --> 00:21:14.680
and it's tricky.

00:21:14.680 --> 00:21:15.620
Yeah, exactly.

00:21:15.620 --> 00:21:16.520
It's tricky

00:21:16.520 --> 00:21:17.620
even for regular

00:21:17.620 --> 00:21:18.440
or for engineers.

00:21:18.440 --> 00:21:19.220
So,

00:21:19.220 --> 00:21:20.480
that's why

00:21:20.480 --> 00:21:22.020
we provide this feature

00:21:22.020 --> 00:21:22.900
out of the box

00:21:22.900 --> 00:21:23.840
and it's provided

00:21:23.840 --> 00:21:24.820
by Wave server

00:21:24.820 --> 00:21:25.580
which

00:21:25.580 --> 00:21:26.960
our Wave app

00:21:26.960 --> 00:21:27.660
which is

00:21:27.660 --> 00:21:28.780
a Python server

00:21:28.780 --> 00:21:29.580
connects to

00:21:29.580 --> 00:21:30.600
and talks to

00:21:30.600 --> 00:21:31.100
browser

00:21:31.100 --> 00:21:31.860
through

00:21:31.860 --> 00:21:32.900
as a proxy,

00:21:32.900 --> 00:21:33.420
let's say.

00:21:33.420 --> 00:21:33.860
So,

00:21:33.860 --> 00:21:34.400
every...

00:21:34.400 --> 00:21:35.140
all the data

00:21:35.140 --> 00:21:36.460
goes from

00:21:36.460 --> 00:21:37.880
Python application

00:21:37.880 --> 00:21:39.540
to Wave server

00:21:39.540 --> 00:21:40.340
and then

00:21:40.340 --> 00:21:40.940
Wave server

00:21:40.940 --> 00:21:41.720
keeps

00:21:41.720 --> 00:21:42.600
an open

00:21:42.600 --> 00:21:43.520
WebSocket connection

00:21:43.520 --> 00:21:44.120
with browser

00:21:44.120 --> 00:21:45.200
to perform

00:21:45.200 --> 00:21:46.020
real-time.

00:21:46.020 --> 00:21:46.460
Okay.

00:21:46.460 --> 00:21:47.200
So,

00:21:47.200 --> 00:21:48.100
to get started,

00:21:48.100 --> 00:21:49.460
start the Wave server,

00:21:49.460 --> 00:21:50.400
create a virtual

00:21:50.400 --> 00:21:50.940
environment,

00:21:50.940 --> 00:21:51.880
pip install

00:21:51.880 --> 00:21:53.620
H2O-Wave

00:21:53.620 --> 00:21:54.560
and then

00:21:54.560 --> 00:21:55.340
that's it.

00:21:55.340 --> 00:21:56.020
You just have that

00:21:56.020 --> 00:21:56.740
one dependency.

00:21:56.740 --> 00:21:57.900
I guess you might

00:21:57.900 --> 00:21:59.140
have to pip install

00:21:59.140 --> 00:22:00.120
H2O-Wave

00:22:00.120 --> 00:22:00.800
before you can

00:22:00.800 --> 00:22:01.380
start the server

00:22:01.380 --> 00:22:02.260
if you haven't

00:22:02.260 --> 00:22:02.620
got it

00:22:02.620 --> 00:22:03.600
globally available

00:22:03.600 --> 00:22:04.680
but then you

00:22:04.680 --> 00:22:05.140
just have to

00:22:05.140 --> 00:22:05.920
write a little bit

00:22:05.920 --> 00:22:06.260
of code.

00:22:06.260 --> 00:22:06.480
Now,

00:22:06.480 --> 00:22:07.580
there's interesting

00:22:07.580 --> 00:22:08.460
paradigms that

00:22:08.460 --> 00:22:08.960
you've chosen

00:22:08.960 --> 00:22:09.960
here.

00:22:09.960 --> 00:22:10.880
A lot of the

00:22:10.880 --> 00:22:11.460
web frameworks

00:22:11.460 --> 00:22:12.900
are stateless,

00:22:12.900 --> 00:22:13.380
right?

00:22:13.380 --> 00:22:14.300
Here's an endpoint

00:22:14.300 --> 00:22:15.300
and the only thing

00:22:15.300 --> 00:22:16.240
this endpoint knows

00:22:16.240 --> 00:22:16.860
about anything

00:22:16.860 --> 00:22:17.700
is that

00:22:17.700 --> 00:22:19.060
here's the request

00:22:19.060 --> 00:22:19.580
coming in,

00:22:19.580 --> 00:22:20.220
maybe a cookie

00:22:20.220 --> 00:22:20.840
is passed,

00:22:20.840 --> 00:22:21.480
maybe a query

00:22:21.480 --> 00:22:22.360
string is passed

00:22:22.360 --> 00:22:23.020
or a form

00:22:23.020 --> 00:22:23.580
but other

00:22:23.580 --> 00:22:24.020
than that

00:22:24.020 --> 00:22:25.560
it's separate,

00:22:25.560 --> 00:22:26.240
unknown,

00:22:26.240 --> 00:22:26.860
unrelated,

00:22:26.860 --> 00:22:27.840
no history

00:22:27.840 --> 00:22:29.120
and with these

00:22:29.120 --> 00:22:29.880
apps it's a little

00:22:29.880 --> 00:22:30.680
bit more like

00:22:30.680 --> 00:22:32.100
a single running

00:22:32.100 --> 00:22:33.060
script that

00:22:33.060 --> 00:22:33.800
has a bit of

00:22:33.800 --> 00:22:34.160
a memory,

00:22:34.160 --> 00:22:34.440
right?

00:22:34.680 --> 00:22:35.840
So basically

00:22:35.840 --> 00:22:36.900
a wave

00:22:36.900 --> 00:22:38.360
has two concepts

00:22:38.360 --> 00:22:39.380
let's say

00:22:39.380 --> 00:22:40.200
one is

00:22:40.200 --> 00:22:41.120
a wave script

00:22:41.120 --> 00:22:41.980
the other one

00:22:41.980 --> 00:22:43.060
is a wave app

00:22:43.060 --> 00:22:43.800
and the difference

00:22:43.800 --> 00:22:44.280
is that

00:22:44.280 --> 00:22:44.880
wave script

00:22:44.880 --> 00:22:46.320
is as the name

00:22:46.320 --> 00:22:47.120
suggests a script

00:22:47.120 --> 00:22:48.560
so you write

00:22:48.560 --> 00:22:49.280
a Python

00:22:49.280 --> 00:22:50.320
code

00:22:50.320 --> 00:22:52.460
you involve

00:22:52.460 --> 00:22:53.120
with like

00:22:53.120 --> 00:22:54.100
let's say

00:22:54.100 --> 00:22:54.740
python

00:22:54.740 --> 00:22:55.340
however

00:22:55.340 --> 00:22:55.820
wrote that

00:22:55.820 --> 00:22:56.120
pi

00:22:56.120 --> 00:22:57.080
not like

00:22:57.080 --> 00:22:57.780
you would do

00:22:57.780 --> 00:22:58.700
with the normal

00:22:58.700 --> 00:22:59.920
regular Python script

00:22:59.920 --> 00:23:00.600
and what

00:23:00.600 --> 00:23:01.580
that does

00:23:01.580 --> 00:23:02.180
is it

00:23:02.180 --> 00:23:02.960
converts

00:23:02.960 --> 00:23:03.340
your

00:23:03.340 --> 00:23:03.780
Python

00:23:03.780 --> 00:23:04.520
script

00:23:04.520 --> 00:23:05.900
wave data

00:23:05.900 --> 00:23:06.820
into a

00:23:06.820 --> 00:23:07.120
JSON

00:23:07.120 --> 00:23:08.080
sends it to

00:23:08.080 --> 00:23:08.620
wave server

00:23:08.620 --> 00:23:09.500
and keeps it

00:23:09.500 --> 00:23:09.780
there

00:23:09.780 --> 00:23:10.800
so that means

00:23:10.800 --> 00:23:11.440
that your

00:23:11.440 --> 00:23:12.060
wave

00:23:12.060 --> 00:23:12.960
your Python

00:23:12.960 --> 00:23:13.880
process

00:23:13.880 --> 00:23:14.740
is finished

00:23:14.740 --> 00:23:15.660
and you only

00:23:15.660 --> 00:23:16.200
serve your

00:23:16.200 --> 00:23:17.200
data from

00:23:17.200 --> 00:23:18.380
wave server

00:23:18.380 --> 00:23:19.460
to users

00:23:19.460 --> 00:23:20.060
which is

00:23:20.060 --> 00:23:20.640
much more

00:23:20.640 --> 00:23:21.220
performant

00:23:21.220 --> 00:23:22.140
than if you

00:23:22.140 --> 00:23:22.580
had to

00:23:22.580 --> 00:23:23.380
rerun the

00:23:23.380 --> 00:23:24.020
script for

00:23:24.020 --> 00:23:24.740
every single

00:23:24.740 --> 00:23:25.620
user as you

00:23:25.620 --> 00:23:26.260
would normally

00:23:26.260 --> 00:23:26.500
do

00:23:26.500 --> 00:23:28.240
and another

00:23:28.240 --> 00:23:29.180
concept is

00:23:29.180 --> 00:23:29.840
a wave app

00:23:29.840 --> 00:23:30.440
which is

00:23:30.440 --> 00:23:31.620
something that

00:23:31.620 --> 00:23:32.580
most

00:23:32.580 --> 00:23:33.660
our users

00:23:33.660 --> 00:23:34.160
use

00:23:34.160 --> 00:23:35.480
and wave app

00:23:35.480 --> 00:23:36.400
lets you

00:23:36.400 --> 00:23:37.560
add interactivity

00:23:37.560 --> 00:23:38.380
because with

00:23:38.380 --> 00:23:38.960
wave script

00:23:38.960 --> 00:23:39.680
more suited

00:23:39.680 --> 00:23:40.040
for

00:23:40.040 --> 00:23:40.620
dashboards

00:23:40.620 --> 00:23:41.260
which are

00:23:41.260 --> 00:23:41.600
just

00:23:41.600 --> 00:23:42.240
static

00:23:42.240 --> 00:23:43.040
read only

00:23:43.040 --> 00:23:44.060
web apps

00:23:44.060 --> 00:23:44.660
let's say

00:23:44.660 --> 00:23:45.620
and you can

00:23:45.620 --> 00:23:46.440
even update

00:23:46.440 --> 00:23:46.700
it

00:23:46.700 --> 00:23:47.480
as you wish

00:23:47.480 --> 00:23:48.080
but with

00:23:48.080 --> 00:23:48.840
wave application

00:23:48.840 --> 00:23:50.140
you probably

00:23:50.140 --> 00:23:50.640
want to

00:23:50.640 --> 00:23:51.440
handle your

00:23:51.440 --> 00:23:52.280
button

00:23:52.280 --> 00:23:53.000
clicks

00:23:53.000 --> 00:23:53.940
or drop

00:23:53.940 --> 00:23:54.120
down

00:23:54.120 --> 00:23:54.680
changes

00:23:54.680 --> 00:23:55.320
and

00:23:55.320 --> 00:23:56.160
all this

00:23:56.160 --> 00:23:56.820
needs to

00:23:56.820 --> 00:23:57.860
be

00:23:57.860 --> 00:23:58.760
recorded

00:23:58.760 --> 00:23:59.460
back on

00:23:59.460 --> 00:24:00.060
python

00:24:00.060 --> 00:24:00.520
server

00:24:00.520 --> 00:24:00.880
right

00:24:00.880 --> 00:24:01.600
yeah you're

00:24:01.600 --> 00:24:01.740
going to

00:24:01.740 --> 00:24:02.000
trigger

00:24:02.000 --> 00:24:02.980
elements of

00:24:02.980 --> 00:24:03.420
the page

00:24:03.420 --> 00:24:03.900
changing

00:24:03.900 --> 00:24:04.840
and things

00:24:04.840 --> 00:24:05.100
of that

00:24:05.100 --> 00:24:05.300
sort

00:24:05.300 --> 00:24:06.740
so one

00:24:06.740 --> 00:24:07.500
thing that's

00:24:07.500 --> 00:24:08.260
interesting here

00:24:08.260 --> 00:24:09.560
is you create

00:24:09.560 --> 00:24:10.040
a site

00:24:10.040 --> 00:24:11.400
by giving it

00:24:11.400 --> 00:24:12.000
an endpoint

00:24:12.000 --> 00:24:12.500
like slash

00:24:12.500 --> 00:24:12.780
hello

00:24:12.780 --> 00:24:13.420
and you can

00:24:13.420 --> 00:24:14.020
have multiple

00:24:14.020 --> 00:24:14.620
ones of these

00:24:14.620 --> 00:24:15.180
running on

00:24:15.180 --> 00:24:15.780
the wave

00:24:15.780 --> 00:24:16.240
server

00:24:16.240 --> 00:24:17.000
right these

00:24:17.000 --> 00:24:17.640
multiple scripts

00:24:17.640 --> 00:24:18.000
or multiple

00:24:18.000 --> 00:24:18.360
apps

00:24:18.360 --> 00:24:19.440
and then you

00:24:19.440 --> 00:24:19.920
start working

00:24:19.920 --> 00:24:20.280
with these

00:24:20.280 --> 00:24:20.760
widgets

00:24:20.760 --> 00:24:21.260
and these

00:24:21.260 --> 00:24:22.040
widgets can be

00:24:22.040 --> 00:24:22.960
composable and

00:24:22.960 --> 00:24:24.000
hierarchical and

00:24:24.000 --> 00:24:25.380
they feel a little

00:24:25.380 --> 00:24:26.380
bit like almost

00:24:26.380 --> 00:24:27.000
like working with

00:24:27.000 --> 00:24:27.500
flutter

00:24:27.500 --> 00:24:28.400
right you have

00:24:28.400 --> 00:24:28.840
these UI

00:24:28.840 --> 00:24:29.480
elements and

00:24:29.480 --> 00:24:30.020
you might have

00:24:30.020 --> 00:24:31.060
like a layout

00:24:31.060 --> 00:24:31.560
which has a

00:24:31.560 --> 00:24:32.080
grid and

00:24:32.080 --> 00:24:32.740
into the grid

00:24:32.740 --> 00:24:33.280
you might put

00:24:33.280 --> 00:24:34.820
a table and

00:24:34.820 --> 00:24:35.320
into the table

00:24:35.320 --> 00:24:35.740
you might put

00:24:35.740 --> 00:24:36.360
cards right

00:24:36.360 --> 00:24:37.240
you kind of

00:24:37.240 --> 00:24:37.760
build this up

00:24:37.760 --> 00:24:38.480
in code

00:24:38.480 --> 00:24:39.880
mostly you

00:24:39.880 --> 00:24:40.320
can use

00:24:40.320 --> 00:24:41.240
HTML and

00:24:41.240 --> 00:24:42.000
other

00:24:42.000 --> 00:24:42.820
templating

00:24:42.820 --> 00:24:43.700
languages but

00:24:43.700 --> 00:24:44.840
mostly you write

00:24:44.840 --> 00:24:45.660
it in code by

00:24:45.660 --> 00:24:46.660
first this example

00:24:46.660 --> 00:24:47.240
you have here you

00:24:47.240 --> 00:24:47.820
just say I'm

00:24:47.820 --> 00:24:48.220
going to create

00:24:48.220 --> 00:24:49.260
a UI dot

00:24:49.260 --> 00:24:50.020
markdown card

00:24:50.020 --> 00:24:50.300
right

00:24:50.300 --> 00:24:51.280
yes so

00:24:51.280 --> 00:24:52.120
basically the

00:24:52.120 --> 00:24:52.740
basic building

00:24:52.740 --> 00:24:53.200
a block

00:24:53.200 --> 00:24:54.060
be it the

00:24:54.060 --> 00:24:54.860
script or

00:24:54.860 --> 00:24:56.020
apps is

00:24:56.020 --> 00:24:57.260
something called

00:24:57.260 --> 00:24:58.420
card so

00:24:58.420 --> 00:24:59.040
if you want

00:24:59.040 --> 00:25:00.040
in the example

00:25:00.040 --> 00:25:01.140
in front of us

00:25:01.140 --> 00:25:01.700
you have

00:25:01.700 --> 00:25:03.100
specified UI

00:25:03.100 --> 00:25:04.300
dot markdown

00:25:04.300 --> 00:25:05.640
card which is

00:25:05.640 --> 00:25:06.420
as the name

00:25:06.420 --> 00:25:07.740
suggests a card

00:25:07.740 --> 00:25:08.280
that lets you

00:25:08.280 --> 00:25:09.100
display markdown

00:25:09.100 --> 00:25:10.280
and interpret it

00:25:10.280 --> 00:25:11.400
and that's about

00:25:11.400 --> 00:25:12.020
it you put your

00:25:12.020 --> 00:25:13.060
cards into the

00:25:13.060 --> 00:25:14.040
layout and that's

00:25:14.040 --> 00:25:14.760
it yeah you also

00:25:14.760 --> 00:25:16.380
have the idea of

00:25:16.380 --> 00:25:17.860
basically a grid

00:25:17.860 --> 00:25:18.420
layout where you

00:25:18.420 --> 00:25:19.540
can position

00:25:19.540 --> 00:25:21.160
these cards to

00:25:21.160 --> 00:25:21.980
be in a certain

00:25:21.980 --> 00:25:22.840
offset in a

00:25:22.840 --> 00:25:23.440
certain size

00:25:23.440 --> 00:25:24.520
right so in

00:25:24.520 --> 00:25:25.000
your hello world

00:25:25.000 --> 00:25:25.900
example you have

00:25:25.900 --> 00:25:26.860
the position is

00:25:26.860 --> 00:25:27.740
box one one

00:25:27.740 --> 00:25:28.360
two two which

00:25:28.360 --> 00:25:29.300
means the top

00:25:29.300 --> 00:25:29.960
left and then

00:25:29.960 --> 00:25:30.620
too wide too

00:25:30.620 --> 00:25:31.820
tall yes exactly

00:25:31.820 --> 00:25:32.960
so the box

00:25:32.960 --> 00:25:33.700
one one two two

00:25:33.700 --> 00:25:35.000
means cone one

00:25:35.000 --> 00:25:36.080
row one and

00:25:36.080 --> 00:25:37.120
width two and

00:25:37.120 --> 00:25:38.340
height two we

00:25:38.340 --> 00:25:39.720
also support

00:25:39.720 --> 00:25:40.880
another type of

00:25:40.880 --> 00:25:41.980
layout and that

00:25:41.980 --> 00:25:43.080
responsive way

00:25:43.080 --> 00:25:43.880
else for more

00:25:43.880 --> 00:25:44.960
advanced users

00:25:44.960 --> 00:25:46.180
this grid layout

00:25:46.180 --> 00:25:47.660
is more like the

00:25:47.660 --> 00:25:48.760
simplest layout

00:25:48.760 --> 00:25:49.540
that we could

00:25:49.540 --> 00:25:51.200
write but it

00:25:51.200 --> 00:25:52.440
it's fixed it

00:25:52.440 --> 00:25:53.280
means that it may

00:25:53.280 --> 00:25:54.160
not work well

00:25:54.160 --> 00:25:55.220
on every single

00:25:55.220 --> 00:25:56.220
stream but if

00:25:56.220 --> 00:25:56.820
you want if

00:25:56.820 --> 00:25:57.420
you want the

00:25:57.420 --> 00:25:58.680
more responsiveness

00:25:58.680 --> 00:25:59.880
then definitely go

00:25:59.880 --> 00:26:00.600
for responsive

00:26:00.600 --> 00:26:01.460
layout which is

00:26:01.460 --> 00:26:02.620
based on flexbox

00:26:02.620 --> 00:26:03.400
right so maybe

00:26:03.400 --> 00:26:04.540
it's five wide if

00:26:04.540 --> 00:26:05.000
you got a big

00:26:05.000 --> 00:26:06.120
screen but if

00:26:06.120 --> 00:26:06.700
it's on a phone

00:26:06.700 --> 00:26:07.480
they just all go

00:26:07.480 --> 00:26:08.520
vertical exactly

00:26:08.520 --> 00:26:10.480
okay and let's

00:26:10.480 --> 00:26:11.280
see what else do I

00:26:11.280 --> 00:26:11.720
want to call it

00:26:11.720 --> 00:26:12.260
here all right I

00:26:12.260 --> 00:26:12.860
think that one's

00:26:12.860 --> 00:26:13.560
that one's pretty

00:26:13.560 --> 00:26:14.560
good you also have

00:26:14.560 --> 00:26:15.520
this idea of

00:26:15.520 --> 00:26:17.080
editing your page

00:26:17.080 --> 00:26:18.880
from the repl so

00:26:18.880 --> 00:26:19.800
after you've run

00:26:19.800 --> 00:26:20.860
that you can then

00:26:20.860 --> 00:26:21.800
just fire up python

00:26:21.800 --> 00:26:23.400
and start working

00:26:23.400 --> 00:26:24.120
with it again how

00:26:24.120 --> 00:26:24.760
does that work

00:26:24.760 --> 00:26:26.420
it's mostly just

00:26:26.420 --> 00:26:27.300
for playing around

00:26:27.300 --> 00:26:28.020
maybe debugging

00:26:28.020 --> 00:26:29.200
yeah maybe debugging

00:26:29.200 --> 00:26:30.160
but I don't think

00:26:30.160 --> 00:26:30.940
that people will

00:26:30.940 --> 00:26:32.100
develop that way

00:26:32.100 --> 00:26:34.080
it's just to show

00:26:34.080 --> 00:26:35.560
people it's really

00:26:35.560 --> 00:26:36.500
nothing but python

00:26:36.500 --> 00:26:37.700
and no hidden

00:26:37.700 --> 00:26:39.040
content nothing like

00:26:39.040 --> 00:26:39.800
that you can

00:26:39.800 --> 00:26:40.500
basically hit up

00:26:40.500 --> 00:26:41.360
your repo and

00:26:41.360 --> 00:26:42.700
work from there as

00:26:42.700 --> 00:26:43.440
well if you want

00:26:43.440 --> 00:26:44.180
yeah but what's

00:26:44.180 --> 00:26:45.020
surprising to me is

00:26:45.020 --> 00:26:46.080
you can exit your

00:26:46.080 --> 00:26:47.660
python script and

00:26:47.660 --> 00:26:48.500
then you can open

00:26:48.500 --> 00:26:49.860
the repl import the

00:26:49.860 --> 00:26:51.000
code and then make

00:26:51.000 --> 00:26:51.660
some calls to it

00:26:51.660 --> 00:26:52.360
and it actually

00:26:52.360 --> 00:26:53.920
changes the running

00:26:53.920 --> 00:26:55.920
code that I see

00:26:55.920 --> 00:26:56.640
right yeah

00:26:56.640 --> 00:26:57.860
basically the magic

00:26:57.860 --> 00:26:59.120
behind that if you

00:26:59.120 --> 00:27:00.240
will notice we have

00:27:00.240 --> 00:27:01.140
that page that

00:27:01.140 --> 00:27:03.040
save function which

00:27:03.040 --> 00:27:04.500
basically what it

00:27:04.500 --> 00:27:05.640
does is make a

00:27:05.640 --> 00:27:06.940
diff or what has

00:27:06.940 --> 00:27:08.640
changed from your

00:27:08.640 --> 00:27:10.220
previous save and

00:27:10.220 --> 00:27:11.200
send it over to the

00:27:11.200 --> 00:27:12.780
web server and

00:27:12.780 --> 00:27:13.920
web server then

00:27:13.920 --> 00:27:14.720
deals with that and

00:27:14.720 --> 00:27:15.680
displays whatever

00:27:15.680 --> 00:27:16.380
changes you have

00:27:16.380 --> 00:27:17.260
in it so since

00:27:17.260 --> 00:27:17.940
this is a static

00:27:17.940 --> 00:27:19.240
file effectively

00:27:19.240 --> 00:27:20.900
it's just there's

00:27:20.900 --> 00:27:22.580
a singleton copy

00:27:22.580 --> 00:27:23.720
on the server that

00:27:23.720 --> 00:27:24.620
everybody's requesting

00:27:24.620 --> 00:27:25.980
exactly that's why

00:27:25.980 --> 00:27:26.820
where it's suitable

00:27:26.820 --> 00:27:27.620
for dashboards

00:27:27.620 --> 00:27:28.920
sure so another

00:27:28.920 --> 00:27:30.940
thing that jumps

00:27:30.940 --> 00:27:32.500
out is you make

00:27:32.500 --> 00:27:33.800
this change and

00:27:33.800 --> 00:27:34.960
then people who

00:27:34.960 --> 00:27:35.520
have the browser

00:27:35.520 --> 00:27:36.640
open to that page

00:27:36.640 --> 00:27:37.940
it just changes

00:27:37.940 --> 00:27:39.200
they don't have to

00:27:39.200 --> 00:27:41.360
reload right it

00:27:41.360 --> 00:27:43.060
has built-in kind

00:27:43.060 --> 00:27:44.540
of smart hot

00:27:44.540 --> 00:27:45.700
reload tell us

00:27:45.700 --> 00:27:45.960
about that

00:27:45.960 --> 00:27:47.420
exactly so this

00:27:47.420 --> 00:27:48.340
is one of the

00:27:48.340 --> 00:27:49.340
things that I

00:27:49.340 --> 00:27:50.240
think that

00:27:50.240 --> 00:27:52.080
may be appealing

00:27:52.080 --> 00:27:53.440
even to let's

00:27:53.440 --> 00:27:54.180
say regular

00:27:54.180 --> 00:27:55.100
software engineers

00:27:55.100 --> 00:27:56.320
because the

00:27:56.320 --> 00:27:56.820
problem with

00:27:56.820 --> 00:27:57.640
software engineers

00:27:57.640 --> 00:27:58.800
is like if you

00:27:58.800 --> 00:27:59.480
present them with

00:27:59.480 --> 00:28:00.460
framework like this

00:28:00.460 --> 00:28:01.940
they want to have

00:28:01.940 --> 00:28:02.700
more control

00:28:02.700 --> 00:28:03.880
right we are

00:28:03.880 --> 00:28:05.180
software developers

00:28:05.180 --> 00:28:05.860
we need to have

00:28:05.860 --> 00:28:06.640
control over

00:28:06.640 --> 00:28:08.120
everything that's

00:28:08.120 --> 00:28:08.900
why we don't like

00:28:08.900 --> 00:28:09.300
let's say

00:28:09.300 --> 00:28:09.660
WordPress

00:28:09.660 --> 00:28:10.720
that's a great

00:28:10.720 --> 00:28:11.340
undoing

00:28:11.340 --> 00:28:12.640
the shiny thing

00:28:12.640 --> 00:28:13.440
and we have to

00:28:13.440 --> 00:28:14.340
create it ourselves

00:28:14.340 --> 00:28:15.160
yeah exactly

00:28:15.160 --> 00:28:16.200
but the problem

00:28:16.200 --> 00:28:17.680
with let's say

00:28:17.680 --> 00:28:18.880
the typical approach

00:28:18.880 --> 00:28:19.740
to building web

00:28:19.740 --> 00:28:20.740
application today

00:28:20.740 --> 00:28:21.620
which is a single

00:28:21.620 --> 00:28:22.420
page applications

00:28:22.420 --> 00:28:23.760
is that all the

00:28:23.760 --> 00:28:24.740
initial triggers

00:28:24.740 --> 00:28:25.820
want to be

00:28:25.820 --> 00:28:26.880
done from

00:28:26.880 --> 00:28:27.760
client side

00:28:27.760 --> 00:28:28.420
from the browser

00:28:28.420 --> 00:28:29.580
but if you want

00:28:29.580 --> 00:28:30.880
to reflect changes

00:28:30.880 --> 00:28:31.820
that happened on

00:28:31.820 --> 00:28:32.780
the backend side

00:28:32.780 --> 00:28:34.080
then this can be

00:28:34.080 --> 00:28:34.980
a bit problematic

00:28:34.980 --> 00:28:35.980
you either need

00:28:35.980 --> 00:28:37.220
to introduce

00:28:37.220 --> 00:28:37.840
polling

00:28:37.840 --> 00:28:38.760
which means

00:28:38.760 --> 00:28:39.980
calling your

00:28:39.980 --> 00:28:41.020
web server

00:28:41.020 --> 00:28:42.600
your backend

00:28:42.600 --> 00:28:43.420
regularly

00:28:43.420 --> 00:28:44.560
but that may

00:28:44.560 --> 00:28:45.740
not be ideal

00:28:45.740 --> 00:28:46.440
because you can

00:28:46.440 --> 00:28:47.120
flood your

00:28:47.120 --> 00:28:47.980
server

00:28:47.980 --> 00:28:48.980
unnecessarily

00:28:48.980 --> 00:28:49.500
I don't know

00:28:49.500 --> 00:28:50.160
why we can only

00:28:50.160 --> 00:28:51.240
support 20 users

00:28:51.240 --> 00:28:51.740
at a time

00:28:51.740 --> 00:28:52.420
this doesn't make

00:28:52.420 --> 00:28:53.020
any sense

00:28:53.020 --> 00:28:55.540
or you can

00:28:55.540 --> 00:28:57.100
use web socket

00:28:57.100 --> 00:28:58.180
which is

00:28:58.180 --> 00:28:59.360
not so easy

00:28:59.360 --> 00:28:59.940
to implement

00:28:59.940 --> 00:29:00.460
let's say

00:29:00.460 --> 00:29:01.560
and what wave

00:29:01.560 --> 00:29:03.380
uses is exactly

00:29:03.380 --> 00:29:04.160
this web socket

00:29:04.160 --> 00:29:05.400
so it allows you

00:29:05.400 --> 00:29:06.320
to push changes

00:29:06.320 --> 00:29:07.260
from server

00:29:07.260 --> 00:29:08.220
to UI

00:29:08.220 --> 00:29:08.780
seamlessly

00:29:08.780 --> 00:29:09.580
and that's

00:29:09.580 --> 00:29:10.380
also one of

00:29:10.380 --> 00:29:11.060
the wonderful

00:29:11.060 --> 00:29:11.640
features

00:29:11.640 --> 00:29:12.340
of wave

00:29:12.340 --> 00:29:12.600
right

00:29:12.600 --> 00:29:13.220
so basically

00:29:13.220 --> 00:29:14.220
the takeaway

00:29:14.220 --> 00:29:15.380
for most people

00:29:15.380 --> 00:29:16.720
is as you

00:29:16.720 --> 00:29:17.680
develop your code

00:29:17.680 --> 00:29:18.240
as you develop

00:29:18.240 --> 00:29:18.800
your project

00:29:18.800 --> 00:29:19.320
your app

00:29:19.320 --> 00:29:20.140
you'll have it

00:29:20.140 --> 00:29:20.680
maybe open

00:29:20.680 --> 00:29:21.280
on the side

00:29:21.280 --> 00:29:21.880
in your browser

00:29:21.880 --> 00:29:22.780
you make some

00:29:22.780 --> 00:29:23.160
changes

00:29:23.160 --> 00:29:23.720
if you just

00:29:23.720 --> 00:29:24.360
hit save

00:29:24.360 --> 00:29:25.240
then it should

00:29:25.240 --> 00:29:25.840
automatically

00:29:25.840 --> 00:29:26.920
maybe you have

00:29:26.920 --> 00:29:27.420
to rerun

00:29:27.420 --> 00:29:27.920
your script

00:29:27.920 --> 00:29:28.580
but you won't

00:29:28.580 --> 00:29:29.000
have to go

00:29:29.000 --> 00:29:29.880
and refresh

00:29:29.880 --> 00:29:30.660
your browser

00:29:30.660 --> 00:29:31.420
as well

00:29:31.420 --> 00:29:31.700
right

00:29:31.700 --> 00:29:32.080
yes

00:29:32.080 --> 00:29:32.540
exactly

00:29:32.540 --> 00:29:33.880
even with

00:29:33.880 --> 00:29:34.440
the wave

00:29:34.440 --> 00:29:35.040
applications

00:29:35.040 --> 00:29:35.860
we use

00:29:35.860 --> 00:29:36.620
UVcorn

00:29:36.620 --> 00:29:37.980
as the underlying

00:29:37.980 --> 00:29:38.720
Python server

00:29:38.720 --> 00:29:39.340
which has

00:29:39.340 --> 00:29:39.960
built in

00:29:39.960 --> 00:29:40.820
a hot reload

00:29:40.820 --> 00:29:42.120
and that means

00:29:42.120 --> 00:29:42.840
that you can

00:29:42.840 --> 00:29:43.940
just save

00:29:43.940 --> 00:29:44.480
your file

00:29:44.480 --> 00:29:45.260
and everything

00:29:45.260 --> 00:29:46.260
reload

00:29:46.260 --> 00:29:47.100
automatically

00:29:47.100 --> 00:29:47.480
cool

00:29:47.480 --> 00:29:48.640
so UVcorn

00:29:48.640 --> 00:29:49.240
is watching

00:29:49.240 --> 00:29:50.200
your Python files

00:29:50.200 --> 00:29:50.700
for changes

00:29:50.700 --> 00:29:51.540
so when you save

00:29:51.540 --> 00:29:52.200
it automatically

00:29:52.200 --> 00:29:52.920
restarts it

00:29:52.920 --> 00:29:53.360
you don't even

00:29:53.360 --> 00:29:53.940
have to do that

00:29:53.940 --> 00:29:54.400
exactly

00:29:54.400 --> 00:29:55.240
if they restart

00:29:55.240 --> 00:29:55.480
it

00:29:55.480 --> 00:29:56.100
and also

00:29:56.100 --> 00:29:57.340
the browser

00:29:57.340 --> 00:29:59.440
is refreshed

00:29:59.440 --> 00:29:59.720
yep

00:29:59.720 --> 00:30:00.480
okay

00:30:00.480 --> 00:30:01.320
fantastic

00:30:01.320 --> 00:30:02.240
so that's a

00:30:02.240 --> 00:30:02.660
pretty cool

00:30:02.660 --> 00:30:03.440
little hello world

00:30:03.440 --> 00:30:04.480
the next one

00:30:04.480 --> 00:30:05.760
is to get

00:30:05.760 --> 00:30:06.180
the browser

00:30:06.180 --> 00:30:06.700
to sing

00:30:06.700 --> 00:30:07.620
99 bottles

00:30:07.620 --> 00:30:07.940
of beer

00:30:07.940 --> 00:30:08.500
on the wall

00:30:08.500 --> 00:30:10.180
this is a fun

00:30:10.180 --> 00:30:10.680
little demo

00:30:10.680 --> 00:30:11.960
but this one

00:30:11.960 --> 00:30:12.620
takes us

00:30:12.620 --> 00:30:13.500
from

00:30:13.500 --> 00:30:14.000
oh this one

00:30:14.000 --> 00:30:14.340
is still

00:30:14.340 --> 00:30:15.380
a script

00:30:15.380 --> 00:30:16.220
so far

00:30:16.220 --> 00:30:16.480
right

00:30:16.480 --> 00:30:17.120
and then

00:30:17.120 --> 00:30:17.980
the next one

00:30:17.980 --> 00:30:18.460
will convert

00:30:18.460 --> 00:30:18.960
it to an app

00:30:18.960 --> 00:30:19.200
okay

00:30:19.200 --> 00:30:20.320
so for this one

00:30:20.320 --> 00:30:21.240
the core

00:30:21.240 --> 00:30:22.160
takeaway here

00:30:22.160 --> 00:30:23.400
is basically

00:30:23.400 --> 00:30:24.380
a way

00:30:24.380 --> 00:30:25.220
to introduce

00:30:25.220 --> 00:30:26.460
like pushing

00:30:26.460 --> 00:30:27.280
updates from the

00:30:27.280 --> 00:30:27.900
server to the

00:30:27.900 --> 00:30:28.320
client

00:30:28.320 --> 00:30:29.660
so for example

00:30:29.660 --> 00:30:30.640
you know

00:30:30.640 --> 00:30:31.280
people don't know

00:30:31.280 --> 00:30:31.780
there's the

00:30:31.780 --> 00:30:32.760
99 bottles of beer

00:30:32.760 --> 00:30:33.100
in the wall

00:30:33.100 --> 00:30:34.040
99 bottles of beer

00:30:34.040 --> 00:30:34.700
take one down

00:30:34.700 --> 00:30:35.300
pass it around

00:30:35.300 --> 00:30:36.140
now there's 98

00:30:36.140 --> 00:30:36.820
then 97

00:30:36.820 --> 00:30:37.380
then 96

00:30:37.380 --> 00:30:37.800
right

00:30:37.800 --> 00:30:38.780
so you wanted

00:30:38.780 --> 00:30:39.240
to have it

00:30:39.240 --> 00:30:40.140
like keep doing

00:30:40.140 --> 00:30:40.620
that over

00:30:40.620 --> 00:30:40.940
and over

00:30:40.940 --> 00:30:41.340
and over

00:30:41.340 --> 00:30:42.940
so if this

00:30:42.940 --> 00:30:43.700
was a console

00:30:43.700 --> 00:30:44.000
app

00:30:44.000 --> 00:30:44.580
how would I

00:30:44.580 --> 00:30:45.020
do it

00:30:45.020 --> 00:30:45.780
I would probably

00:30:45.780 --> 00:30:47.060
say 4i

00:30:47.060 --> 00:30:47.740
in range

00:30:47.740 --> 00:30:48.640
and just

00:30:48.640 --> 00:30:49.720
for 99

00:30:49.720 --> 00:30:50.440
and then 90

00:30:50.440 --> 00:30:50.740
and I would

00:30:50.740 --> 00:30:51.400
just print

00:30:51.400 --> 00:30:52.280
just print

00:30:52.280 --> 00:30:52.500
print

00:30:52.500 --> 00:30:52.740
print

00:30:52.740 --> 00:30:53.100
print

00:30:53.100 --> 00:30:54.220
what you

00:30:54.220 --> 00:30:54.480
can do

00:30:54.480 --> 00:30:55.080
with wave

00:30:55.080 --> 00:30:55.540
is you

00:30:55.540 --> 00:30:56.040
can have

00:30:56.040 --> 00:30:56.620
that exact

00:30:56.620 --> 00:30:57.100
same

00:30:57.100 --> 00:30:57.500
super

00:30:57.500 --> 00:30:58.000
straightforward

00:30:58.000 --> 00:30:58.660
for loop

00:30:58.660 --> 00:30:59.560
and then

00:30:59.560 --> 00:30:59.920
you just

00:30:59.920 --> 00:31:00.340
go to your

00:31:00.340 --> 00:31:00.880
card that

00:31:00.880 --> 00:31:01.200
you put in

00:31:01.200 --> 00:31:01.620
the page

00:31:01.620 --> 00:31:02.480
and you

00:31:02.480 --> 00:31:02.820
just say

00:31:02.820 --> 00:31:03.260
content

00:31:03.260 --> 00:31:04.020
equals some

00:31:04.020 --> 00:31:04.600
f string

00:31:04.600 --> 00:31:05.140
right

00:31:05.140 --> 00:31:06.140
that verse

00:31:06.140 --> 00:31:06.760
for that

00:31:06.760 --> 00:31:07.080
number

00:31:07.080 --> 00:31:07.700
and then

00:31:07.700 --> 00:31:07.920
you just

00:31:07.920 --> 00:31:08.560
call page

00:31:08.560 --> 00:31:09.540
and then

00:31:09.540 --> 00:31:09.780
you don't

00:31:09.780 --> 00:31:09.960
want it

00:31:09.960 --> 00:31:10.300
to happen

00:31:10.300 --> 00:31:10.860
as fast

00:31:10.860 --> 00:31:11.300
as possible

00:31:11.300 --> 00:31:11.540
as you

00:31:11.540 --> 00:31:11.980
sleep

00:31:11.980 --> 00:31:12.820
right

00:31:12.820 --> 00:31:13.120
make it

00:31:13.120 --> 00:31:13.380
come out

00:31:13.380 --> 00:31:13.580
a little

00:31:13.580 --> 00:31:14.020
bit slower

00:31:14.020 --> 00:31:14.260
but

00:31:14.260 --> 00:31:15.880
that does

00:31:15.880 --> 00:31:16.720
the

00:31:16.720 --> 00:31:17.420
multi

00:31:17.420 --> 00:31:17.980
cast

00:31:17.980 --> 00:31:18.440
broadcast

00:31:18.440 --> 00:31:18.920
to all

00:31:18.920 --> 00:31:19.420
the clients

00:31:19.420 --> 00:31:19.820
watching

00:31:19.820 --> 00:31:20.440
just straight

00:31:20.440 --> 00:31:20.620
away

00:31:20.620 --> 00:31:20.800
right

00:31:20.800 --> 00:31:21.320
just loop

00:31:21.320 --> 00:31:21.640
over the

00:31:21.640 --> 00:31:21.920
code

00:31:21.920 --> 00:31:22.520
make some

00:31:22.520 --> 00:31:22.860
changes

00:31:22.860 --> 00:31:23.560
and that

00:31:23.560 --> 00:31:23.740
will

00:31:23.740 --> 00:31:24.160
automatically

00:31:24.160 --> 00:31:24.860
push it

00:31:24.860 --> 00:31:25.380
I guess

00:31:25.380 --> 00:31:25.640
you got a

00:31:25.640 --> 00:31:26.040
call to you

00:31:26.040 --> 00:31:26.520
but then it'll

00:31:26.520 --> 00:31:26.860
push it

00:31:26.860 --> 00:31:27.620
that's pretty

00:31:27.620 --> 00:31:27.980
impressive

00:31:27.980 --> 00:31:28.400
yeah

00:31:28.400 --> 00:31:29.180
and although

00:31:29.180 --> 00:31:30.060
by the way

00:31:30.060 --> 00:31:30.800
just not to

00:31:30.800 --> 00:31:31.120
forget

00:31:31.120 --> 00:31:31.900
the original

00:31:31.900 --> 00:31:33.040
author of this

00:31:33.040 --> 00:31:33.560
framework

00:31:33.560 --> 00:31:34.340
you're not me

00:31:34.340 --> 00:31:35.120
but it's my

00:31:35.120 --> 00:31:35.500
boss

00:31:35.500 --> 00:31:36.260
pretty probable

00:31:36.260 --> 00:31:37.060
which I would like

00:31:37.060 --> 00:31:37.980
to give shout out to

00:31:37.980 --> 00:31:39.040
because he's the

00:31:39.040 --> 00:31:39.880
mastermind behind

00:31:39.880 --> 00:31:40.860
all this framework

00:31:40.860 --> 00:31:41.760
yeah cool

00:31:41.760 --> 00:31:42.460
it's definitely

00:31:42.460 --> 00:31:43.360
a cool framework

00:31:43.360 --> 00:31:45.020
so this opens up

00:31:45.020 --> 00:31:45.360
a lot of

00:31:45.360 --> 00:31:45.940
possibilities

00:31:45.940 --> 00:31:47.500
for people

00:31:47.500 --> 00:31:47.980
coming to

00:31:47.980 --> 00:31:48.860
your site

00:31:48.860 --> 00:31:49.520
and getting

00:31:49.520 --> 00:31:50.340
some form

00:31:50.340 --> 00:31:51.160
of interactivity

00:31:51.160 --> 00:31:51.880
now

00:31:51.880 --> 00:31:52.620
one thing

00:31:52.620 --> 00:31:52.940
he said

00:31:52.940 --> 00:31:53.300
is like

00:31:53.300 --> 00:31:53.640
I could

00:31:53.640 --> 00:31:54.020
build

00:31:54.020 --> 00:31:54.660
say like

00:31:54.660 --> 00:31:55.320
a chat

00:31:55.320 --> 00:31:55.680
app

00:31:55.680 --> 00:31:56.420
or

00:31:56.420 --> 00:31:57.040
like

00:31:57.040 --> 00:31:57.200
some

00:31:57.200 --> 00:31:57.420
kind

00:31:57.420 --> 00:31:57.560
of

00:31:57.560 --> 00:31:57.900
bot

00:31:57.900 --> 00:31:58.640
and

00:31:58.640 --> 00:31:58.880
what

00:31:58.880 --> 00:31:59.100
I've

00:31:59.100 --> 00:31:59.340
seen

00:31:59.340 --> 00:31:59.820
so far

00:31:59.820 --> 00:32:00.280
it feels

00:32:00.280 --> 00:32:00.680
like

00:32:00.680 --> 00:32:01.880
what is

00:32:01.880 --> 00:32:02.220
happening

00:32:02.220 --> 00:32:02.620
on the

00:32:02.620 --> 00:32:02.940
server

00:32:02.940 --> 00:32:04.040
is

00:32:04.040 --> 00:32:04.880
shared

00:32:04.880 --> 00:32:05.100
with

00:32:05.100 --> 00:32:05.620
everyone

00:32:05.620 --> 00:32:06.680
rather than

00:32:06.680 --> 00:32:07.100
dedicated

00:32:07.100 --> 00:32:07.440
to a

00:32:07.440 --> 00:32:07.780
particular

00:32:07.780 --> 00:32:08.320
user

00:32:08.320 --> 00:32:08.820
or

00:32:08.820 --> 00:32:09.140
group

00:32:09.140 --> 00:32:09.300
of

00:32:09.300 --> 00:32:09.700
users

00:32:09.700 --> 00:32:10.340
how do

00:32:10.340 --> 00:32:10.440
I

00:32:10.440 --> 00:32:10.800
combine

00:32:10.800 --> 00:32:11.000
this

00:32:11.000 --> 00:32:11.240
to say

00:32:11.240 --> 00:32:11.400
like

00:32:11.400 --> 00:32:11.820
I want

00:32:11.820 --> 00:32:12.100
them to

00:32:12.100 --> 00:32:12.280
sing

00:32:12.280 --> 00:32:12.700
this song

00:32:12.700 --> 00:32:12.960
but I

00:32:12.960 --> 00:32:13.080
want

00:32:13.080 --> 00:32:13.600
everyone

00:32:13.600 --> 00:32:14.220
maybe

00:32:14.220 --> 00:32:14.740
who logs

00:32:14.740 --> 00:32:14.920
in to

00:32:14.920 --> 00:32:15.180
have their

00:32:15.180 --> 00:32:15.600
own

00:32:15.600 --> 00:32:16.600
copy

00:32:16.600 --> 00:32:16.900
right

00:32:16.900 --> 00:32:17.260
like

00:32:17.260 --> 00:32:18.100
Sarah

00:32:18.100 --> 00:32:18.520
came

00:32:18.520 --> 00:32:19.600
30 seconds

00:32:19.600 --> 00:32:19.940
later

00:32:19.940 --> 00:32:20.400
she

00:32:20.400 --> 00:32:21.160
shouldn't

00:32:21.160 --> 00:32:21.580
join

00:32:21.580 --> 00:32:21.780
the

00:32:21.780 --> 00:32:22.040
song

00:32:22.040 --> 00:32:22.380
halfway

00:32:22.380 --> 00:32:22.880
through

00:32:22.880 --> 00:32:23.360
or

00:32:23.360 --> 00:32:23.480
a

00:32:23.480 --> 00:32:23.620
third

00:32:23.620 --> 00:32:23.740
of

00:32:23.740 --> 00:32:23.780
the

00:32:23.780 --> 00:32:23.900
way

00:32:23.900 --> 00:32:24.100
through

00:32:24.100 --> 00:32:24.320
she

00:32:24.320 --> 00:32:24.540
should

00:32:24.540 --> 00:32:24.960
get it

00:32:24.960 --> 00:32:25.120
from

00:32:25.120 --> 00:32:25.500
99

00:32:25.500 --> 00:32:25.920
going

00:32:25.920 --> 00:32:26.340
down

00:32:26.340 --> 00:32:26.800
yeah

00:32:26.800 --> 00:32:27.200
that's

00:32:27.200 --> 00:32:27.460
definitely

00:32:27.460 --> 00:32:27.940
possible

00:32:27.940 --> 00:32:28.600
the reason

00:32:28.600 --> 00:32:29.040
that you

00:32:29.040 --> 00:32:29.940
see

00:32:29.940 --> 00:32:30.820
for

00:32:30.820 --> 00:32:31.500
every

00:32:31.500 --> 00:32:31.920
single

00:32:31.920 --> 00:32:32.380
dead

00:32:32.380 --> 00:32:32.720
the

00:32:32.720 --> 00:32:33.080
same

00:32:33.080 --> 00:32:33.640
output

00:32:33.640 --> 00:32:33.900
is

00:32:33.900 --> 00:32:34.420
because

00:32:34.420 --> 00:32:34.660
we

00:32:34.660 --> 00:32:34.820
are

00:32:34.820 --> 00:32:35.320
only

00:32:35.320 --> 00:32:35.720
looking

00:32:35.720 --> 00:32:36.040
at

00:32:36.040 --> 00:32:36.300
the

00:32:36.300 --> 00:32:36.660
scripts

00:32:36.660 --> 00:32:37.240
which

00:32:37.240 --> 00:32:37.640
in

00:32:37.640 --> 00:32:37.900
case

00:32:37.900 --> 00:32:38.040
of

00:32:38.040 --> 00:32:38.520
dashboards

00:32:38.520 --> 00:32:39.500
that's

00:32:39.500 --> 00:32:39.860
totally

00:32:39.860 --> 00:32:40.460
understandable

00:32:40.460 --> 00:32:41.040
right

00:32:41.040 --> 00:32:41.580
everybody

00:32:41.580 --> 00:32:41.860
should

00:32:41.860 --> 00:32:42.080
see

00:32:42.080 --> 00:32:42.300
the

00:32:42.300 --> 00:32:42.600
same

00:32:42.600 --> 00:32:42.960
dashboard

00:32:42.960 --> 00:32:43.440
because

00:32:43.440 --> 00:32:43.620
the

00:32:43.620 --> 00:32:43.820
data

00:32:43.820 --> 00:32:44.060
is

00:32:44.060 --> 00:32:44.320
always

00:32:44.320 --> 00:32:44.520
the

00:32:44.520 --> 00:32:44.780
same

00:32:44.780 --> 00:32:45.160
but

00:32:45.160 --> 00:32:45.400
with

00:32:45.400 --> 00:32:45.700
wave

00:32:45.700 --> 00:32:46.000
apps

00:32:46.000 --> 00:32:46.460
you

00:32:46.460 --> 00:32:46.720
get

00:32:46.720 --> 00:32:47.800
basically

00:32:47.800 --> 00:32:48.480
the

00:32:48.480 --> 00:32:48.860
common

00:32:48.860 --> 00:32:49.880
behavior

00:32:49.880 --> 00:32:50.300
as you

00:32:50.300 --> 00:32:50.500
will

00:32:50.500 --> 00:32:50.880
suggest

00:32:50.880 --> 00:32:51.220
so

00:32:51.220 --> 00:32:51.700
every

00:32:51.700 --> 00:32:52.540
tab

00:32:52.540 --> 00:32:53.240
can have

00:32:53.240 --> 00:32:53.840
its own

00:32:53.840 --> 00:32:54.380
thing

00:32:54.380 --> 00:32:56.240
session

00:32:56.240 --> 00:32:57.040
basically

00:32:57.040 --> 00:32:57.680
exactly

00:32:57.680 --> 00:32:58.040
so

00:32:58.040 --> 00:32:58.320
if

00:32:58.320 --> 00:32:58.460
you

00:32:58.460 --> 00:32:58.700
have

00:32:58.700 --> 00:32:59.140
a

00:32:59.140 --> 00:32:59.760
counter

00:32:59.760 --> 00:33:00.160
app

00:33:00.160 --> 00:33:00.560
that

00:33:00.560 --> 00:33:00.820
has

00:33:00.820 --> 00:33:01.060
a

00:33:01.060 --> 00:33:01.360
single

00:33:01.360 --> 00:33:01.740
button

00:33:01.740 --> 00:33:02.260
and

00:33:02.260 --> 00:33:02.520
once

00:33:02.520 --> 00:33:02.700
you

00:33:02.700 --> 00:33:03.120
click it

00:33:03.120 --> 00:33:03.280
then

00:33:03.280 --> 00:33:03.460
it

00:33:03.460 --> 00:33:03.960
increments

00:33:03.960 --> 00:33:04.400
counter

00:33:04.400 --> 00:33:04.920
you

00:33:04.920 --> 00:33:05.160
can

00:33:05.160 --> 00:33:05.540
basically

00:33:05.540 --> 00:33:05.940
have

00:33:05.940 --> 00:33:06.560
a

00:33:06.560 --> 00:33:07.000
single

00:33:07.000 --> 00:33:07.860
button

00:33:07.860 --> 00:33:08.400
instance

00:33:08.400 --> 00:33:08.880
for

00:33:08.880 --> 00:33:09.360
every

00:33:09.360 --> 00:33:09.720
single

00:33:09.720 --> 00:33:09.980
tab

00:33:09.980 --> 00:33:10.500
if you

00:33:10.500 --> 00:33:10.740
want

00:33:10.740 --> 00:33:10.860
to

00:33:10.860 --> 00:33:11.480
but

00:33:11.480 --> 00:33:11.940
we

00:33:11.940 --> 00:33:12.400
also

00:33:12.400 --> 00:33:13.260
have

00:33:13.260 --> 00:33:14.240
something

00:33:14.240 --> 00:33:14.600
called

00:33:14.600 --> 00:33:15.360
multicast

00:33:15.360 --> 00:33:15.880
and

00:33:15.880 --> 00:33:16.400
broadcast

00:33:16.400 --> 00:33:16.820
mode

00:33:16.820 --> 00:33:17.560
and

00:33:17.560 --> 00:33:18.040
that

00:33:18.040 --> 00:33:18.340
means

00:33:18.340 --> 00:33:18.600
that

00:33:18.600 --> 00:33:19.480
the value

00:33:19.480 --> 00:33:20.120
could be

00:33:20.120 --> 00:33:20.580
synced

00:33:20.580 --> 00:33:21.160
across

00:33:21.160 --> 00:33:21.800
every

00:33:21.800 --> 00:33:22.360
single

00:33:22.360 --> 00:33:22.680
tab

00:33:22.680 --> 00:33:22.860
if

00:33:22.860 --> 00:33:22.980
you

00:33:22.980 --> 00:33:23.220
wanted

00:33:23.220 --> 00:33:23.480
to

00:33:23.480 --> 00:33:23.900
but

00:33:23.900 --> 00:33:24.060
the

00:33:24.060 --> 00:33:24.420
default

00:33:24.420 --> 00:33:24.760
mode

00:33:24.760 --> 00:33:25.060
is

00:33:25.060 --> 00:33:25.340
called

00:33:25.340 --> 00:33:25.940
unicast

00:33:25.940 --> 00:33:26.240
and

00:33:26.240 --> 00:33:26.400
that

00:33:26.400 --> 00:33:26.660
means

00:33:26.660 --> 00:33:26.920
that

00:33:26.920 --> 00:33:27.420
the

00:33:27.420 --> 00:33:27.780
change

00:33:27.780 --> 00:33:27.960
is

00:33:27.960 --> 00:33:28.240
only

00:33:28.240 --> 00:33:28.800
propagated

00:33:28.800 --> 00:33:28.980
to

00:33:28.980 --> 00:33:29.200
the

00:33:29.200 --> 00:33:29.800
current

00:33:29.800 --> 00:33:30.380
client

00:33:30.380 --> 00:33:30.640
which

00:33:30.640 --> 00:33:30.860
is

00:33:30.860 --> 00:33:31.360
I see

00:33:31.360 --> 00:33:31.800
okay

00:33:31.800 --> 00:33:32.060
yeah

00:33:32.060 --> 00:33:32.220
that

00:33:32.220 --> 00:33:32.400
makes

00:33:32.400 --> 00:33:32.660
a lot

00:33:32.660 --> 00:33:32.760
of

00:33:32.760 --> 00:33:33.020
sense

00:33:33.020 --> 00:33:35.920
this

00:33:35.920 --> 00:33:36.320
portion

00:33:36.320 --> 00:33:36.320
portion

00:33:36.320 --> 00:33:36.540
of

00:33:36.540 --> 00:33:36.780
talk

00:33:36.780 --> 00:33:37.040
Python

00:33:37.040 --> 00:33:37.380
is

00:33:37.380 --> 00:33:37.600
brought

00:33:37.600 --> 00:33:37.720
to

00:33:37.720 --> 00:33:37.780
you

00:33:37.780 --> 00:33:38.020
by

00:33:38.020 --> 00:33:38.520
Sentry

00:33:38.520 --> 00:33:39.260
how

00:33:39.260 --> 00:33:39.380
would

00:33:39.380 --> 00:33:39.480
you

00:33:39.480 --> 00:33:39.660
like

00:33:39.660 --> 00:33:39.800
to

00:33:39.800 --> 00:33:40.060
remove

00:33:40.060 --> 00:33:40.200
a

00:33:40.200 --> 00:33:40.320
little

00:33:40.320 --> 00:33:40.700
stress

00:33:40.700 --> 00:33:40.920
from

00:33:40.920 --> 00:33:41.080
your

00:33:41.080 --> 00:33:41.400
life

00:33:41.400 --> 00:33:41.820
do

00:33:41.820 --> 00:33:41.960
you

00:33:41.960 --> 00:33:42.180
worry

00:33:42.180 --> 00:33:42.420
that

00:33:42.420 --> 00:33:42.740
users

00:33:42.740 --> 00:33:43.000
may

00:33:43.000 --> 00:33:43.160
be

00:33:43.160 --> 00:33:43.740
encountering

00:33:43.740 --> 00:33:44.300
errors

00:33:44.300 --> 00:33:45.120
slowdowns

00:33:45.120 --> 00:33:45.720
or crashes

00:33:45.720 --> 00:33:46.360
with your

00:33:46.360 --> 00:33:46.660
app

00:33:46.660 --> 00:33:47.380
right now

00:33:47.380 --> 00:33:48.140
would you

00:33:48.140 --> 00:33:48.380
even

00:33:48.380 --> 00:33:48.820
know it

00:33:48.820 --> 00:33:49.100
until

00:33:49.100 --> 00:33:49.320
they

00:33:49.320 --> 00:33:49.560
sent

00:33:49.560 --> 00:33:49.660
you

00:33:49.660 --> 00:33:49.840
that

00:33:49.840 --> 00:33:50.180
support

00:33:50.180 --> 00:33:50.480
email

00:33:50.480 --> 00:33:50.940
how

00:33:50.940 --> 00:33:51.140
much

00:33:51.140 --> 00:33:51.360
better

00:33:51.360 --> 00:33:51.540
would

00:33:51.540 --> 00:33:51.640
it

00:33:51.640 --> 00:33:51.740
be

00:33:51.740 --> 00:33:51.900
to

00:33:51.900 --> 00:33:52.160
have

00:33:52.160 --> 00:33:52.340
the

00:33:52.340 --> 00:33:52.640
error

00:33:52.640 --> 00:33:52.940
or

00:33:52.940 --> 00:33:53.400
performance

00:33:53.400 --> 00:33:53.840
details

00:33:53.840 --> 00:33:54.420
immediately

00:33:54.420 --> 00:33:54.840
sent

00:33:54.840 --> 00:33:54.980
to

00:33:54.980 --> 00:33:55.180
you

00:33:55.180 --> 00:33:55.660
including

00:33:55.660 --> 00:33:55.900
the

00:33:55.900 --> 00:33:56.160
call

00:33:56.160 --> 00:33:56.500
stack

00:33:56.500 --> 00:33:57.200
and values

00:33:57.200 --> 00:33:57.480
of

00:33:57.480 --> 00:33:57.780
local

00:33:57.780 --> 00:33:58.200
variables

00:33:58.200 --> 00:33:58.600
and

00:33:58.600 --> 00:33:58.740
the

00:33:58.740 --> 00:33:59.120
active

00:33:59.120 --> 00:33:59.480
user

00:33:59.480 --> 00:33:59.980
recorded

00:33:59.980 --> 00:34:00.380
in

00:34:00.380 --> 00:34:00.500
the

00:34:00.500 --> 00:34:00.860
report

00:34:00.860 --> 00:34:01.480
with

00:34:01.480 --> 00:34:01.800
Sentry

00:34:01.800 --> 00:34:02.260
this

00:34:02.260 --> 00:34:02.440
is

00:34:02.440 --> 00:34:02.620
not

00:34:02.620 --> 00:34:02.840
only

00:34:02.840 --> 00:34:03.340
possible

00:34:03.340 --> 00:34:03.880
it's

00:34:03.880 --> 00:34:04.260
simple

00:34:04.260 --> 00:34:04.760
in

00:34:04.760 --> 00:34:05.040
fact

00:34:05.040 --> 00:34:05.340
we

00:34:05.340 --> 00:34:05.560
use

00:34:05.560 --> 00:34:05.860
Sentry

00:34:05.860 --> 00:34:06.120
on

00:34:06.120 --> 00:34:06.360
all

00:34:06.360 --> 00:34:06.540
the

00:34:06.540 --> 00:34:06.740
talk

00:34:06.740 --> 00:34:07.040
Python

00:34:07.040 --> 00:34:07.360
web

00:34:07.360 --> 00:34:07.840
properties

00:34:07.840 --> 00:34:08.460
we've

00:34:08.460 --> 00:34:08.820
actually

00:34:08.820 --> 00:34:09.280
fixed

00:34:09.280 --> 00:34:09.780
a bug

00:34:09.780 --> 00:34:10.320
triggered

00:34:10.320 --> 00:34:10.580
by

00:34:10.580 --> 00:34:10.760
a

00:34:10.760 --> 00:34:11.040
user

00:34:11.040 --> 00:34:11.380
and

00:34:11.380 --> 00:34:11.620
had

00:34:11.620 --> 00:34:11.740
the

00:34:11.740 --> 00:34:12.100
upgrade

00:34:12.100 --> 00:34:12.520
ready

00:34:12.520 --> 00:34:12.680
to

00:34:12.680 --> 00:34:12.860
roll

00:34:12.860 --> 00:34:13.020
out

00:34:13.020 --> 00:34:13.180
as

00:34:13.180 --> 00:34:13.340
we

00:34:13.340 --> 00:34:13.580
got

00:34:13.580 --> 00:34:13.760
the

00:34:13.760 --> 00:34:14.080
support

00:34:14.080 --> 00:34:14.380
email

00:34:14.380 --> 00:34:15.020
that

00:34:15.020 --> 00:34:15.160
was

00:34:15.160 --> 00:34:15.300
a

00:34:15.300 --> 00:34:15.500
great

00:34:15.500 --> 00:34:15.740
email

00:34:15.740 --> 00:34:15.900
to

00:34:15.900 --> 00:34:16.060
write

00:34:16.060 --> 00:34:16.380
back

00:34:16.380 --> 00:34:17.000
hey

00:34:17.000 --> 00:34:17.140
we

00:34:17.140 --> 00:34:17.360
already

00:34:17.360 --> 00:34:17.640
saw

00:34:17.640 --> 00:34:17.820
your

00:34:17.820 --> 00:34:18.100
error

00:34:18.100 --> 00:34:18.380
and

00:34:18.380 --> 00:34:18.640
have

00:34:18.640 --> 00:34:18.980
already

00:34:18.980 --> 00:34:19.200
rolled

00:34:19.200 --> 00:34:19.340
out

00:34:19.340 --> 00:34:19.460
the

00:34:19.460 --> 00:34:19.740
fix

00:34:19.740 --> 00:34:20.460
imagine

00:34:20.460 --> 00:34:20.680
their

00:34:20.680 --> 00:34:21.180
surprise

00:34:21.180 --> 00:34:22.200
surprise

00:34:22.200 --> 00:34:22.400
and

00:34:22.400 --> 00:34:22.680
delight

00:34:22.680 --> 00:34:23.000
your

00:34:23.000 --> 00:34:23.400
users

00:34:23.400 --> 00:34:24.080
create

00:34:24.080 --> 00:34:24.260
your

00:34:24.260 --> 00:34:24.520
Sentry

00:34:24.520 --> 00:34:24.840
account

00:34:24.840 --> 00:34:25.160
at

00:34:25.160 --> 00:34:26.380
talkpython.fm

00:34:26.380 --> 00:34:26.880
slash

00:34:26.880 --> 00:34:27.420
Sentry

00:34:27.420 --> 00:34:28.220
and if

00:34:28.220 --> 00:34:28.340
you

00:34:28.340 --> 00:34:28.560
sign

00:34:28.560 --> 00:34:28.680
up

00:34:28.680 --> 00:34:28.800
with

00:34:28.800 --> 00:34:28.920
the

00:34:28.920 --> 00:34:29.160
code

00:34:29.160 --> 00:34:29.600
talk

00:34:29.600 --> 00:34:30.080
Python

00:34:30.080 --> 00:34:30.460
all

00:34:30.460 --> 00:34:30.620
one

00:34:30.620 --> 00:34:30.860
word

00:34:30.860 --> 00:34:31.420
it's

00:34:31.420 --> 00:34:31.600
good

00:34:31.600 --> 00:34:31.820
for

00:34:31.820 --> 00:34:32.280
two

00:34:32.280 --> 00:34:32.620
free

00:34:32.620 --> 00:34:32.900
months

00:34:32.900 --> 00:34:33.120
of

00:34:33.120 --> 00:34:33.640
Sentry's

00:34:33.640 --> 00:34:34.100
business

00:34:34.100 --> 00:34:34.440
plan

00:34:34.440 --> 00:34:34.960
which

00:34:34.960 --> 00:34:35.080
will

00:34:35.080 --> 00:34:35.240
give

00:34:35.240 --> 00:34:35.360
you

00:34:35.360 --> 00:34:35.500
up

00:34:35.500 --> 00:34:35.620
to

00:34:35.620 --> 00:34:36.060
20

00:34:36.060 --> 00:34:36.480
times

00:34:36.480 --> 00:34:36.680
as

00:34:36.680 --> 00:34:36.940
many

00:34:36.940 --> 00:34:37.400
monthly

00:34:37.400 --> 00:34:37.840
events

00:34:37.840 --> 00:34:38.180
as

00:34:38.180 --> 00:34:38.360
well

00:34:38.360 --> 00:34:38.520
as

00:34:38.520 --> 00:34:38.760
other

00:34:38.760 --> 00:34:39.120
features

00:34:39.120 --> 00:34:39.960
create

00:34:39.960 --> 00:34:40.200
better

00:34:40.200 --> 00:34:40.720
software

00:34:40.720 --> 00:34:41.540
delight

00:34:41.540 --> 00:34:41.700
your

00:34:41.700 --> 00:34:42.040
users

00:34:42.040 --> 00:34:42.520
and

00:34:42.520 --> 00:34:42.840
support

00:34:42.840 --> 00:34:43.000
the

00:34:43.000 --> 00:34:43.520
podcast

00:34:43.520 --> 00:34:44.220
visit

00:34:44.220 --> 00:34:45.380
talkpython.fm

00:34:45.380 --> 00:34:45.800
slash

00:34:45.800 --> 00:34:46.220
Sentry

00:34:46.220 --> 00:34:46.840
and use

00:34:46.840 --> 00:34:47.040
the

00:34:47.040 --> 00:34:47.280
coupon

00:34:47.280 --> 00:34:47.700
code

00:34:47.700 --> 00:34:48.100
talk

00:34:48.100 --> 00:34:48.460
Python

00:34:48.460 --> 00:34:51.960
maybe

00:34:51.960 --> 00:34:52.340
this is a

00:34:52.340 --> 00:34:52.500
good

00:34:52.500 --> 00:34:52.880
time

00:34:52.880 --> 00:34:53.300
to

00:34:53.300 --> 00:34:54.120
pause

00:34:54.120 --> 00:34:54.400
going

00:34:54.400 --> 00:34:54.580
through

00:34:54.580 --> 00:34:54.760
some

00:34:54.760 --> 00:34:54.860
of

00:34:54.860 --> 00:34:55.260
these

00:34:55.260 --> 00:34:55.540
code

00:34:55.540 --> 00:34:55.920
examples

00:34:55.920 --> 00:34:56.120
and

00:34:56.120 --> 00:34:56.260
some

00:34:56.260 --> 00:34:56.340
of

00:34:56.340 --> 00:34:56.440
these

00:34:56.440 --> 00:34:57.020
capabilities

00:34:57.020 --> 00:34:58.080
Bob

00:34:58.080 --> 00:34:58.400
Vani

00:34:58.400 --> 00:34:59.100
has a

00:34:59.100 --> 00:34:59.220
good

00:34:59.220 --> 00:34:59.640
question

00:34:59.640 --> 00:35:00.660
what

00:35:00.660 --> 00:35:01.300
databases

00:35:01.300 --> 00:35:01.540
are

00:35:01.540 --> 00:35:01.940
supported

00:35:01.940 --> 00:35:03.060
not

00:35:03.060 --> 00:35:03.400
necessarily

00:35:03.400 --> 00:35:03.620
even

00:35:03.620 --> 00:35:03.840
just

00:35:03.840 --> 00:35:04.280
databases

00:35:04.280 --> 00:35:04.740
but

00:35:04.740 --> 00:35:05.380
where

00:35:05.380 --> 00:35:05.560
does

00:35:05.560 --> 00:35:05.740
this

00:35:05.740 --> 00:35:05.940
code

00:35:05.940 --> 00:35:06.320
run

00:35:06.320 --> 00:35:06.560
is

00:35:06.560 --> 00:35:06.820
this

00:35:06.820 --> 00:35:07.420
PyScript

00:35:07.420 --> 00:35:07.620
and

00:35:07.620 --> 00:35:08.340
PyIodide

00:35:08.340 --> 00:35:08.740
is

00:35:08.740 --> 00:35:09.080
this

00:35:09.080 --> 00:35:09.500
on

00:35:09.500 --> 00:35:09.680
the

00:35:09.680 --> 00:35:10.040
server

00:35:10.040 --> 00:35:11.040
what

00:35:11.040 --> 00:35:11.640
capabilities

00:35:11.640 --> 00:35:11.960
do I

00:35:11.960 --> 00:35:12.200
have

00:35:12.200 --> 00:35:12.520
can I

00:35:12.520 --> 00:35:13.100
pip install

00:35:13.100 --> 00:35:13.380
whatever

00:35:13.380 --> 00:35:13.860
I want

00:35:13.860 --> 00:35:14.880
or am I

00:35:14.880 --> 00:35:15.420
limited

00:35:15.420 --> 00:35:15.880
basically

00:35:15.880 --> 00:35:16.560
there are

00:35:16.560 --> 00:35:17.260
the limit

00:35:17.260 --> 00:35:17.600
you know

00:35:17.600 --> 00:35:18.180
because

00:35:18.180 --> 00:35:18.720
all the

00:35:18.720 --> 00:35:19.100
code

00:35:19.100 --> 00:35:19.540
is running

00:35:19.540 --> 00:35:19.820
in

00:35:19.820 --> 00:35:20.300
server

00:35:20.300 --> 00:35:20.800
so

00:35:20.800 --> 00:35:20.980
that

00:35:20.980 --> 00:35:21.220
means

00:35:21.220 --> 00:35:21.540
that

00:35:21.540 --> 00:35:21.900
you

00:35:21.900 --> 00:35:22.280
can

00:35:22.280 --> 00:35:23.000
basically

00:35:23.000 --> 00:35:23.400
connect

00:35:23.400 --> 00:35:23.720
to

00:35:23.720 --> 00:35:24.040
any

00:35:24.040 --> 00:35:24.700
database

00:35:24.700 --> 00:35:25.320
of

00:35:25.320 --> 00:35:25.480
your

00:35:25.480 --> 00:35:25.960
choice

00:35:25.960 --> 00:35:26.480
the

00:35:26.480 --> 00:35:26.700
same

00:35:26.700 --> 00:35:26.920
way

00:35:26.920 --> 00:35:27.100
as

00:35:27.100 --> 00:35:27.220
you

00:35:27.220 --> 00:35:27.360
will

00:35:27.360 --> 00:35:27.600
do

00:35:27.600 --> 00:35:28.020
let's

00:35:28.020 --> 00:35:28.200
say

00:35:28.200 --> 00:35:28.340
in

00:35:28.340 --> 00:35:28.640
Django

00:35:28.640 --> 00:35:29.020
or

00:35:29.020 --> 00:35:29.480
Flask

00:35:29.480 --> 00:35:29.800
app

00:35:29.800 --> 00:35:30.340
and

00:35:30.340 --> 00:35:30.580
so

00:35:30.580 --> 00:35:30.980
basically

00:35:30.980 --> 00:35:31.620
you

00:35:31.620 --> 00:35:31.980
can

00:35:31.980 --> 00:35:32.580
ppnf

00:35:32.580 --> 00:35:32.720
out

00:35:32.720 --> 00:35:33.000
anything

00:35:33.000 --> 00:35:33.220
you

00:35:33.220 --> 00:35:33.520
want

00:35:33.520 --> 00:35:33.940
on

00:35:33.940 --> 00:35:34.100
your

00:35:34.100 --> 00:35:34.360
server

00:35:34.360 --> 00:35:34.800
I see

00:35:34.800 --> 00:35:35.340
so if

00:35:35.340 --> 00:35:35.500
it's

00:35:35.500 --> 00:35:35.840
supported

00:35:35.840 --> 00:35:36.160
with

00:35:36.160 --> 00:35:36.620
Python

00:35:36.620 --> 00:35:37.620
or

00:35:37.620 --> 00:35:38.040
in

00:35:38.040 --> 00:35:38.340
some

00:35:38.340 --> 00:35:38.840
crazy

00:35:38.840 --> 00:35:39.380
indirect

00:35:39.380 --> 00:35:39.700
way

00:35:39.700 --> 00:35:39.880
that

00:35:39.880 --> 00:35:40.060
you

00:35:40.060 --> 00:35:40.460
might

00:35:40.460 --> 00:35:41.360
write

00:35:41.360 --> 00:35:41.580
some

00:35:41.580 --> 00:35:41.800
c

00:35:41.800 --> 00:35:41.980
you

00:35:41.980 --> 00:35:42.100
can

00:35:42.100 --> 00:35:42.260
call

00:35:42.260 --> 00:35:42.440
from

00:35:42.440 --> 00:35:42.760
Python

00:35:42.760 --> 00:35:42.960
you

00:35:42.960 --> 00:35:43.060
can

00:35:43.060 --> 00:35:43.260
call

00:35:43.260 --> 00:35:43.440
it

00:35:43.440 --> 00:35:43.860
it's

00:35:43.860 --> 00:35:44.240
going

00:35:44.240 --> 00:35:44.320
to

00:35:44.320 --> 00:35:44.580
be

00:35:44.580 --> 00:35:45.040
like

00:35:45.040 --> 00:35:45.600
it's

00:35:45.600 --> 00:35:45.780
full

00:35:45.780 --> 00:35:46.120
Python

00:35:46.120 --> 00:35:46.460
so

00:35:46.460 --> 00:35:46.860
it

00:35:46.860 --> 00:35:47.040
does

00:35:47.040 --> 00:35:47.260
whatever

00:35:47.260 --> 00:35:47.440
you

00:35:47.440 --> 00:35:47.600
want

00:35:47.600 --> 00:35:47.700
it

00:35:47.700 --> 00:35:47.800
to

00:35:47.800 --> 00:35:47.980
do

00:35:47.980 --> 00:35:48.540
exactly

00:35:48.540 --> 00:35:49.120
whatever

00:35:49.120 --> 00:35:49.400
you

00:35:49.400 --> 00:35:49.720
can

00:35:49.720 --> 00:35:50.040
make

00:35:50.040 --> 00:35:50.360
Python

00:35:50.360 --> 00:35:50.760
to do

00:35:50.760 --> 00:35:51.260
then

00:35:51.260 --> 00:35:52.000
it's

00:35:52.000 --> 00:35:52.260
possible

00:35:52.260 --> 00:35:52.480
in

00:35:52.480 --> 00:35:52.700
wave

00:35:52.700 --> 00:35:53.040
as well

00:35:53.040 --> 00:35:53.240
sure

00:35:53.240 --> 00:35:53.640
that's

00:35:53.640 --> 00:35:53.820
really

00:35:53.820 --> 00:35:54.000
good

00:35:54.000 --> 00:35:54.260
to know

00:35:54.260 --> 00:35:55.080
all right

00:35:55.080 --> 00:35:55.940
so I

00:35:55.940 --> 00:35:56.140
guess

00:35:56.140 --> 00:35:56.360
maybe

00:35:56.360 --> 00:35:56.560
the

00:35:56.560 --> 00:35:57.160
third

00:35:57.160 --> 00:35:57.700
thing

00:35:57.700 --> 00:35:57.840
that

00:35:57.840 --> 00:35:58.100
really

00:35:58.100 --> 00:35:58.360
is

00:35:58.360 --> 00:35:58.800
let's

00:35:58.800 --> 00:35:58.940
talk

00:35:58.940 --> 00:35:59.100
about

00:35:59.100 --> 00:35:59.280
two

00:35:59.280 --> 00:35:59.480
things

00:35:59.480 --> 00:35:59.600
real

00:35:59.600 --> 00:35:59.820
quick

00:35:59.820 --> 00:36:00.380
before

00:36:00.380 --> 00:36:00.520
I

00:36:00.520 --> 00:36:00.620
get

00:36:00.620 --> 00:36:00.760
to

00:36:00.760 --> 00:36:00.920
the

00:36:00.920 --> 00:36:01.260
third

00:36:01.260 --> 00:36:01.460
one

00:36:01.460 --> 00:36:01.640
here

00:36:01.640 --> 00:36:02.040
one

00:36:02.040 --> 00:36:02.220
thing

00:36:02.220 --> 00:36:02.800
that's

00:36:02.800 --> 00:36:03.020
kind

00:36:03.020 --> 00:36:03.080
of

00:36:03.080 --> 00:36:03.400
interesting

00:36:03.400 --> 00:36:03.780
is

00:36:03.780 --> 00:36:04.200
what

00:36:04.200 --> 00:36:04.400
you're

00:36:04.400 --> 00:36:04.640
setting

00:36:04.640 --> 00:36:04.920
here

00:36:04.920 --> 00:36:05.040
in

00:36:05.040 --> 00:36:05.200
this

00:36:05.200 --> 00:36:05.580
example

00:36:05.580 --> 00:36:05.800
is

00:36:05.800 --> 00:36:06.020
in

00:36:06.020 --> 00:36:06.260
the

00:36:06.260 --> 00:36:06.540
for

00:36:06.540 --> 00:36:06.880
loop

00:36:06.880 --> 00:36:07.280
you're

00:36:07.280 --> 00:36:07.580
saying

00:36:07.580 --> 00:36:07.800
the

00:36:07.800 --> 00:36:08.280
content

00:36:08.280 --> 00:36:08.660
is

00:36:08.660 --> 00:36:08.940
this

00:36:08.940 --> 00:36:09.260
f

00:36:09.260 --> 00:36:09.660
string

00:36:09.660 --> 00:36:10.440
and

00:36:10.440 --> 00:36:10.560
you

00:36:10.560 --> 00:36:11.340
regenerate

00:36:11.340 --> 00:36:11.480
the

00:36:11.480 --> 00:36:11.920
entire

00:36:11.920 --> 00:36:12.160
f

00:36:12.160 --> 00:36:12.380
string

00:36:12.380 --> 00:36:12.560
and

00:36:12.560 --> 00:36:12.700
for

00:36:12.700 --> 00:36:12.900
this

00:36:12.900 --> 00:36:13.280
example

00:36:13.280 --> 00:36:13.500
it's

00:36:13.500 --> 00:36:13.620
like

00:36:13.620 --> 00:36:13.740
a

00:36:13.740 --> 00:36:14.060
tiny

00:36:14.060 --> 00:36:14.360
little

00:36:14.360 --> 00:36:14.700
it's

00:36:14.700 --> 00:36:14.860
a

00:36:14.860 --> 00:36:15.100
verse

00:36:15.100 --> 00:36:15.240
in

00:36:15.240 --> 00:36:15.360
a

00:36:15.360 --> 00:36:15.600
song

00:36:15.600 --> 00:36:15.740
and

00:36:15.740 --> 00:36:15.880
who

00:36:15.880 --> 00:36:16.240
cares

00:36:16.240 --> 00:36:16.860
but

00:36:16.860 --> 00:36:17.000
you

00:36:17.000 --> 00:36:17.100
know

00:36:17.100 --> 00:36:17.240
if

00:36:17.240 --> 00:36:17.380
this

00:36:17.380 --> 00:36:17.560
was

00:36:17.560 --> 00:36:17.900
a

00:36:17.900 --> 00:36:18.540
much

00:36:18.540 --> 00:36:18.920
more

00:36:18.920 --> 00:36:19.960
interesting

00:36:19.960 --> 00:36:20.460
like

00:36:20.460 --> 00:36:20.620
a

00:36:20.620 --> 00:36:20.820
full

00:36:20.820 --> 00:36:21.160
on

00:36:21.160 --> 00:36:21.860
Jinja

00:36:21.860 --> 00:36:22.240
style

00:36:22.240 --> 00:36:22.680
template

00:36:22.680 --> 00:36:22.880
and

00:36:22.880 --> 00:36:22.960
you

00:36:22.960 --> 00:36:23.100
want

00:36:23.100 --> 00:36:23.200
to

00:36:23.200 --> 00:36:23.700
change

00:36:23.700 --> 00:36:23.920
one

00:36:23.920 --> 00:36:24.120
little

00:36:24.120 --> 00:36:24.380
small

00:36:24.380 --> 00:36:24.840
piece

00:36:24.840 --> 00:36:27.440
round

00:36:27.440 --> 00:36:27.920
tripping

00:36:27.920 --> 00:36:28.160
that

00:36:28.160 --> 00:36:28.540
full

00:36:28.540 --> 00:36:29.100
HTML

00:36:29.100 --> 00:36:29.480
every

00:36:29.480 --> 00:36:29.780
time

00:36:29.780 --> 00:36:29.980
is

00:36:29.980 --> 00:36:30.380
not

00:36:30.380 --> 00:36:30.580
the

00:36:30.580 --> 00:36:30.780
most

00:36:30.780 --> 00:36:31.140
efficient

00:36:31.140 --> 00:36:31.820
so

00:36:31.820 --> 00:36:32.080
what

00:36:32.080 --> 00:36:32.200
you

00:36:32.200 --> 00:36:32.520
have

00:36:32.520 --> 00:36:32.820
because

00:36:32.820 --> 00:36:33.020
you're

00:36:33.020 --> 00:36:33.160
doing

00:36:33.160 --> 00:36:33.380
web

00:36:33.380 --> 00:36:33.720
sockets

00:36:33.720 --> 00:36:33.920
is

00:36:33.920 --> 00:36:34.040
you

00:36:34.040 --> 00:36:34.200
have

00:36:34.200 --> 00:36:34.380
this

00:36:34.380 --> 00:36:34.700
idea

00:36:34.700 --> 00:36:35.020
of

00:36:35.020 --> 00:36:35.640
an

00:36:35.640 --> 00:36:36.340
expression

00:36:36.340 --> 00:36:37.400
to

00:36:37.400 --> 00:36:37.680
send

00:36:37.680 --> 00:36:38.080
some

00:36:38.080 --> 00:36:39.440
values

00:36:39.440 --> 00:36:39.740
over

00:36:39.740 --> 00:36:40.020
so you

00:36:40.020 --> 00:36:40.280
pass

00:36:40.280 --> 00:36:40.500
a

00:36:40.500 --> 00:36:41.000
dictionary

00:36:41.000 --> 00:36:41.220
of

00:36:41.220 --> 00:36:41.300
the

00:36:41.300 --> 00:36:41.660
values

00:36:41.660 --> 00:36:41.860
and

00:36:41.860 --> 00:36:41.980
then

00:36:41.980 --> 00:36:42.120
you

00:36:42.120 --> 00:36:42.840
set

00:36:42.840 --> 00:36:42.980
the

00:36:42.980 --> 00:36:43.260
content

00:36:43.260 --> 00:36:43.460
to

00:36:43.460 --> 00:36:43.560
be

00:36:43.560 --> 00:36:43.680
an

00:36:43.680 --> 00:36:44.080
expression

00:36:44.080 --> 00:36:44.820
a

00:36:44.820 --> 00:36:44.960
little

00:36:44.960 --> 00:36:45.460
handlebar

00:36:45.460 --> 00:36:45.800
thing

00:36:45.800 --> 00:36:46.260
like

00:36:46.260 --> 00:36:47.620
JavaScript

00:36:47.620 --> 00:36:47.940
front

00:36:47.940 --> 00:36:48.080
and

00:36:48.080 --> 00:36:48.460
binding

00:36:48.460 --> 00:36:49.160
or

00:36:49.160 --> 00:36:49.580
a

00:36:49.580 --> 00:36:49.820
Jinja

00:36:49.820 --> 00:36:50.340
value

00:36:50.340 --> 00:36:51.020
something

00:36:51.020 --> 00:36:51.280
along

00:36:51.280 --> 00:36:51.540
those

00:36:51.540 --> 00:36:51.800
lines

00:36:51.800 --> 00:36:52.080
right

00:36:52.080 --> 00:36:52.800
tell us

00:36:52.800 --> 00:36:52.960
about

00:36:52.960 --> 00:36:53.180
this

00:36:53.180 --> 00:36:53.280
and

00:36:53.280 --> 00:36:53.380
how

00:36:53.380 --> 00:36:53.520
that

00:36:53.520 --> 00:36:53.780
works

00:36:53.780 --> 00:36:54.140
yeah

00:36:54.140 --> 00:36:54.360
so

00:36:54.360 --> 00:36:54.720
basically

00:36:54.720 --> 00:36:55.280
it

00:36:55.280 --> 00:36:55.740
works

00:36:55.740 --> 00:36:56.500
basically

00:36:56.500 --> 00:36:56.960
what

00:36:56.960 --> 00:36:57.140
do

00:36:57.140 --> 00:36:57.560
you

00:36:57.560 --> 00:36:57.900
always

00:36:57.900 --> 00:36:58.320
send

00:36:58.320 --> 00:36:58.720
just

00:36:58.720 --> 00:36:59.060
the

00:36:59.060 --> 00:36:59.960
difference

00:36:59.960 --> 00:37:00.620
you know

00:37:00.620 --> 00:37:01.080
the tips

00:37:01.080 --> 00:37:01.780
or let's

00:37:01.780 --> 00:37:01.900
say

00:37:01.900 --> 00:37:02.400
deltas

00:37:02.400 --> 00:37:02.960
what has

00:37:02.960 --> 00:37:03.360
changed

00:37:03.360 --> 00:37:04.020
to the

00:37:04.020 --> 00:37:04.760
UI

00:37:04.760 --> 00:37:05.660
and once

00:37:05.660 --> 00:37:06.160
these

00:37:06.160 --> 00:37:06.680
changes

00:37:06.680 --> 00:37:07.380
are

00:37:07.380 --> 00:37:08.300
arrived

00:37:08.300 --> 00:37:08.620
to the

00:37:08.620 --> 00:37:08.980
browser

00:37:08.980 --> 00:37:09.680
then

00:37:09.680 --> 00:37:09.960
a

00:37:09.960 --> 00:37:10.280
react

00:37:10.280 --> 00:37:10.800
takes

00:37:10.800 --> 00:37:11.120
over

00:37:11.120 --> 00:37:11.360
it

00:37:11.360 --> 00:37:11.600
and

00:37:11.600 --> 00:37:12.080
renders

00:37:12.080 --> 00:37:12.480
whatever

00:37:12.480 --> 00:37:13.060
changes

00:37:13.060 --> 00:37:13.580
have

00:37:13.580 --> 00:37:13.900
come

00:37:13.900 --> 00:37:14.360
right

00:37:14.360 --> 00:37:14.560
so

00:37:14.560 --> 00:37:14.800
in

00:37:14.800 --> 00:37:15.140
this

00:37:15.140 --> 00:37:15.520
particular

00:37:15.520 --> 00:37:15.960
case

00:37:15.960 --> 00:37:16.380
the

00:37:16.380 --> 00:37:16.660
first

00:37:16.660 --> 00:37:16.980
change

00:37:16.980 --> 00:37:17.340
would

00:37:17.340 --> 00:37:17.620
be

00:37:17.620 --> 00:37:17.840
the

00:37:17.840 --> 00:37:18.280
whole

00:37:18.280 --> 00:37:18.880
string

00:37:18.880 --> 00:37:19.480
because

00:37:19.480 --> 00:37:19.700
there

00:37:19.700 --> 00:37:19.880
is

00:37:19.880 --> 00:37:20.260
nothing

00:37:20.260 --> 00:37:20.580
else

00:37:20.580 --> 00:37:20.900
there

00:37:20.900 --> 00:37:21.640
it

00:37:21.640 --> 00:37:21.820
would

00:37:21.820 --> 00:37:22.080
be

00:37:22.080 --> 00:37:22.800
rendered

00:37:22.800 --> 00:37:23.440
but

00:37:23.440 --> 00:37:23.920
all

00:37:23.920 --> 00:37:24.040
the

00:37:24.040 --> 00:37:24.440
subsequent

00:37:24.440 --> 00:37:25.320
updates

00:37:25.320 --> 00:37:25.840
will

00:37:25.840 --> 00:37:26.320
only

00:37:26.320 --> 00:37:27.200
contain

00:37:27.200 --> 00:37:27.760
changes

00:37:27.760 --> 00:37:28.140
in the

00:37:28.140 --> 00:37:28.400
form

00:37:28.400 --> 00:37:28.660
of

00:37:28.660 --> 00:37:29.720
dictionary

00:37:29.720 --> 00:37:30.380
values

00:37:30.380 --> 00:37:31.220
which is

00:37:31.220 --> 00:37:31.760
much

00:37:31.760 --> 00:37:32.100
less

00:37:32.100 --> 00:37:32.440
to

00:37:32.440 --> 00:37:32.820
care

00:37:32.820 --> 00:37:33.160
about

00:37:33.160 --> 00:37:33.440
on

00:37:33.440 --> 00:37:33.780
the

00:37:33.780 --> 00:37:34.520
network

00:37:34.520 --> 00:37:34.900
bandwidth

00:37:34.900 --> 00:37:35.320
type

00:37:35.320 --> 00:37:35.820
and

00:37:35.820 --> 00:37:36.120
once

00:37:36.120 --> 00:37:36.380
these

00:37:36.380 --> 00:37:36.740
values

00:37:36.740 --> 00:37:37.200
arrive

00:37:37.200 --> 00:37:37.480
then

00:37:37.480 --> 00:37:37.940
react

00:37:37.940 --> 00:37:38.580
again

00:37:38.580 --> 00:37:38.980
takes

00:37:38.980 --> 00:37:39.320
over

00:37:39.320 --> 00:37:39.740
and

00:37:39.740 --> 00:37:40.100
does

00:37:40.100 --> 00:37:40.260
it

00:37:40.260 --> 00:37:40.660
magic

00:37:40.660 --> 00:37:40.960
and

00:37:40.960 --> 00:37:41.520
updates

00:37:41.520 --> 00:37:42.080
the

00:37:42.080 --> 00:37:42.300
UI

00:37:42.300 --> 00:37:42.780
correctly

00:37:42.780 --> 00:37:43.100
yeah

00:37:43.100 --> 00:37:43.480
that's

00:37:43.480 --> 00:37:43.680
really

00:37:43.680 --> 00:37:43.900
neat

00:37:43.900 --> 00:37:44.260
so

00:37:44.260 --> 00:37:45.120
really

00:37:45.120 --> 00:37:45.340
great

00:37:45.340 --> 00:37:45.500
way

00:37:45.500 --> 00:37:45.820
to be

00:37:45.820 --> 00:37:46.200
super

00:37:46.200 --> 00:37:46.660
efficient

00:37:46.660 --> 00:37:47.740
just by

00:37:47.740 --> 00:37:48.580
setting

00:37:48.580 --> 00:37:48.800
some

00:37:48.800 --> 00:37:49.280
values

00:37:49.280 --> 00:37:49.720
like

00:37:49.720 --> 00:37:50.140
on

00:37:50.140 --> 00:37:50.300
your

00:37:50.300 --> 00:37:50.560
card

00:37:50.560 --> 00:37:51.020
data

00:37:51.020 --> 00:37:51.280
dot

00:37:51.280 --> 00:37:51.500
whatever

00:37:51.500 --> 00:37:51.700
you want

00:37:51.700 --> 00:37:51.940
to call

00:37:51.940 --> 00:37:52.080
it

00:37:52.080 --> 00:37:52.220
and

00:37:52.220 --> 00:37:52.340
then

00:37:52.340 --> 00:37:52.480
call

00:37:52.480 --> 00:37:52.780
save

00:37:52.780 --> 00:37:52.980
and

00:37:52.980 --> 00:37:53.560
those

00:37:53.560 --> 00:37:54.040
correspond

00:37:54.040 --> 00:37:54.540
over

00:37:54.540 --> 00:37:54.900
to

00:37:54.900 --> 00:37:55.360
your

00:37:55.360 --> 00:37:56.340
expression

00:37:56.340 --> 00:37:56.680
right

00:37:56.680 --> 00:37:57.040
that

00:37:57.040 --> 00:37:57.660
makes up

00:37:57.660 --> 00:37:57.800
your

00:37:57.800 --> 00:37:58.260
template

00:37:58.260 --> 00:37:58.580
yeah

00:37:58.580 --> 00:37:58.880
and

00:37:58.880 --> 00:37:59.380
that's

00:37:59.380 --> 00:37:59.640
even

00:37:59.640 --> 00:38:00.360
more

00:38:00.360 --> 00:38:00.900
important

00:38:00.900 --> 00:38:01.860
in

00:38:01.860 --> 00:38:02.660
our

00:38:02.660 --> 00:38:03.140
domain

00:38:03.140 --> 00:38:03.700
because

00:38:03.700 --> 00:38:04.280
data

00:38:04.280 --> 00:38:04.700
scientists

00:38:04.700 --> 00:38:05.560
usually

00:38:05.560 --> 00:38:06.380
have

00:38:06.380 --> 00:38:07.020
a lot

00:38:07.020 --> 00:38:07.160
of

00:38:07.160 --> 00:38:07.460
data

00:38:07.460 --> 00:38:08.240
extremely

00:38:08.240 --> 00:38:08.660
a lot

00:38:08.660 --> 00:38:08.800
of

00:38:08.800 --> 00:38:09.040
data

00:38:09.040 --> 00:38:10.000
and

00:38:10.000 --> 00:38:10.540
that

00:38:10.540 --> 00:38:10.820
means

00:38:10.820 --> 00:38:11.160
that

00:38:11.160 --> 00:38:11.580
they

00:38:11.580 --> 00:38:11.720
would

00:38:11.720 --> 00:38:11.880
like

00:38:11.880 --> 00:38:12.020
to

00:38:12.020 --> 00:38:12.240
push

00:38:12.240 --> 00:38:12.440
it

00:38:12.440 --> 00:38:12.900
all

00:38:12.900 --> 00:38:13.100
into

00:38:13.100 --> 00:38:13.500
browser

00:38:13.500 --> 00:38:14.060
and

00:38:14.060 --> 00:38:14.400
render

00:38:14.400 --> 00:38:14.660
their

00:38:14.660 --> 00:38:15.120
plots

00:38:15.120 --> 00:38:15.700
but

00:38:15.700 --> 00:38:16.120
if

00:38:16.120 --> 00:38:16.480
they

00:38:16.480 --> 00:38:16.900
dip

00:38:16.900 --> 00:38:17.220
on

00:38:17.220 --> 00:38:17.520
every

00:38:17.520 --> 00:38:17.860
single

00:38:17.860 --> 00:38:18.400
update

00:38:18.400 --> 00:38:19.060
then

00:38:19.060 --> 00:38:19.560
it

00:38:19.560 --> 00:38:19.780
might

00:38:19.780 --> 00:38:19.960
not

00:38:19.960 --> 00:38:20.120
be

00:38:20.120 --> 00:38:20.400
the

00:38:20.400 --> 00:38:21.140
best

00:38:21.140 --> 00:38:21.380
way

00:38:21.380 --> 00:38:21.660
right

00:38:21.660 --> 00:38:22.100
so

00:38:22.100 --> 00:38:22.420
right

00:38:22.420 --> 00:38:22.720
if

00:38:22.720 --> 00:38:23.360
you've

00:38:23.360 --> 00:38:23.480
got

00:38:23.480 --> 00:38:23.640
a

00:38:23.640 --> 00:38:24.040
big

00:38:24.040 --> 00:38:24.460
page

00:38:24.460 --> 00:38:24.640
and

00:38:24.640 --> 00:38:25.000
a

00:38:25.000 --> 00:38:25.300
tiny

00:38:25.300 --> 00:38:25.560
little

00:38:25.560 --> 00:38:25.880
plot

00:38:25.880 --> 00:38:26.040
that

00:38:26.040 --> 00:38:26.120
you

00:38:26.120 --> 00:38:26.300
want

00:38:26.300 --> 00:38:26.420
to

00:38:26.420 --> 00:38:26.760
change

00:38:26.760 --> 00:38:27.000
you know

00:38:27.000 --> 00:38:27.140
it'd

00:38:27.140 --> 00:38:27.220
be

00:38:27.220 --> 00:38:27.440
better

00:38:27.440 --> 00:38:27.620
to

00:38:27.620 --> 00:38:28.600
change

00:38:28.600 --> 00:38:28.800
that

00:38:28.800 --> 00:38:29.080
plot

00:38:29.080 --> 00:38:29.280
but

00:38:29.280 --> 00:38:29.560
leave

00:38:29.560 --> 00:38:29.740
all

00:38:29.740 --> 00:38:29.880
the

00:38:29.880 --> 00:38:30.040
other

00:38:30.040 --> 00:38:30.320
stuff

00:38:30.320 --> 00:38:30.620
there

00:38:30.620 --> 00:38:31.580
exactly

00:38:31.580 --> 00:38:32.380
cool

00:38:32.380 --> 00:38:33.040
let's

00:38:33.040 --> 00:38:33.240
talk

00:38:33.240 --> 00:38:33.480
the

00:38:33.480 --> 00:38:33.800
last

00:38:33.800 --> 00:38:34.080
little

00:38:34.080 --> 00:38:34.320
thing

00:38:34.320 --> 00:38:34.620
here

00:38:34.620 --> 00:38:35.080
about

00:38:35.080 --> 00:38:35.640
how

00:38:35.640 --> 00:38:35.820
this

00:38:35.820 --> 00:38:36.080
looks

00:38:36.080 --> 00:38:36.600
if

00:38:36.600 --> 00:38:36.760
we

00:38:36.760 --> 00:38:37.000
make

00:38:37.000 --> 00:38:37.180
it

00:38:37.180 --> 00:38:37.420
an

00:38:37.420 --> 00:38:37.860
actual

00:38:37.860 --> 00:38:38.240
an

00:38:38.240 --> 00:38:38.560
app

00:38:38.560 --> 00:38:38.780
I

00:38:38.780 --> 00:38:39.140
think

00:38:39.140 --> 00:38:39.640
if

00:38:39.640 --> 00:38:39.740
you

00:38:39.740 --> 00:38:39.920
need

00:38:39.920 --> 00:38:40.020
to

00:38:40.020 --> 00:38:40.160
go

00:38:40.160 --> 00:38:40.320
to

00:38:40.320 --> 00:38:40.480
the

00:38:40.480 --> 00:38:41.440
list

00:38:41.440 --> 00:38:41.760
okay

00:38:41.760 --> 00:38:42.400
maybe

00:38:42.400 --> 00:38:42.580
be

00:38:42.580 --> 00:38:42.980
counter

00:38:42.980 --> 00:38:43.880
that

00:38:43.880 --> 00:38:44.160
would

00:38:44.160 --> 00:38:44.320
be

00:38:44.320 --> 00:38:44.560
simple

00:38:44.560 --> 00:38:44.840
I

00:38:44.840 --> 00:38:45.020
think

00:38:45.020 --> 00:38:45.160
the

00:38:45.160 --> 00:38:45.340
bean

00:38:45.340 --> 00:38:45.540
counter

00:38:45.540 --> 00:38:45.920
one

00:38:45.920 --> 00:38:46.320
yeah

00:38:46.320 --> 00:38:46.480
the

00:38:46.480 --> 00:38:46.620
bean

00:38:46.620 --> 00:38:46.780
counter

00:38:46.780 --> 00:38:46.980
one

00:38:46.980 --> 00:38:47.360
yeah

00:38:47.360 --> 00:38:47.480
yeah

00:38:47.480 --> 00:38:48.080
yeah

00:38:48.080 --> 00:38:48.280
this

00:38:48.280 --> 00:38:48.440
is a

00:38:48.440 --> 00:38:48.540
real

00:38:48.540 --> 00:38:48.780
simple

00:38:48.780 --> 00:38:48.940
one

00:38:48.940 --> 00:38:49.040
so

00:38:49.040 --> 00:38:49.160
the

00:38:49.160 --> 00:38:49.360
bean

00:38:49.360 --> 00:38:49.560
counter

00:38:49.560 --> 00:38:49.720
one

00:38:49.720 --> 00:38:49.880
is

00:38:49.880 --> 00:38:50.040
like

00:38:50.040 --> 00:38:50.180
a

00:38:50.180 --> 00:38:50.460
button

00:38:50.460 --> 00:38:51.000
you

00:38:51.000 --> 00:38:51.280
press

00:38:51.280 --> 00:38:51.420
it

00:38:51.420 --> 00:38:51.560
it

00:38:51.560 --> 00:38:51.720
just

00:38:51.720 --> 00:38:51.960
goes

00:38:51.960 --> 00:38:52.200
one

00:38:52.200 --> 00:38:52.340
two

00:38:52.340 --> 00:38:52.520
three

00:38:52.520 --> 00:38:52.880
four

00:38:52.880 --> 00:38:53.160
right

00:38:53.160 --> 00:38:53.380
it

00:38:53.380 --> 00:38:54.180
shows

00:38:54.180 --> 00:38:54.400
things

00:38:54.400 --> 00:38:54.600
like

00:38:54.600 --> 00:38:54.980
state

00:38:54.980 --> 00:38:55.340
though

00:38:55.340 --> 00:38:55.620
and

00:38:55.620 --> 00:38:56.120
what

00:38:56.120 --> 00:38:56.340
not

00:38:56.340 --> 00:38:56.620
but

00:38:56.620 --> 00:38:57.140
tell

00:38:57.140 --> 00:38:57.280
us

00:38:57.280 --> 00:38:57.500
how

00:38:57.500 --> 00:38:57.640
does

00:38:57.640 --> 00:38:57.760
it

00:38:57.760 --> 00:38:57.960
look

00:38:57.960 --> 00:38:58.300
different

00:38:58.300 --> 00:38:58.780
to

00:38:58.780 --> 00:38:59.660
create

00:38:59.660 --> 00:39:00.640
something

00:39:00.640 --> 00:39:00.920
like

00:39:00.920 --> 00:39:01.040
in

00:39:01.040 --> 00:39:01.180
the

00:39:01.180 --> 00:39:01.420
script

00:39:01.420 --> 00:39:01.760
I

00:39:01.760 --> 00:39:02.040
didn't

00:39:02.040 --> 00:39:02.360
do

00:39:02.360 --> 00:39:02.880
anything

00:39:02.880 --> 00:39:03.280
hardly

00:39:03.280 --> 00:39:03.620
about

00:39:03.620 --> 00:39:03.880
like

00:39:03.880 --> 00:39:04.360
URLs

00:39:04.360 --> 00:39:04.840
or

00:39:04.840 --> 00:39:05.640
or

00:39:05.640 --> 00:39:06.080
functions

00:39:06.080 --> 00:39:06.340
to

00:39:06.340 --> 00:39:06.680
call

00:39:06.680 --> 00:39:06.920
or

00:39:06.920 --> 00:39:07.340
returning

00:39:07.340 --> 00:39:07.540
I

00:39:07.540 --> 00:39:07.720
just

00:39:07.720 --> 00:39:08.120
did

00:39:08.120 --> 00:39:08.320
some

00:39:08.320 --> 00:39:08.700
stuff

00:39:08.700 --> 00:39:08.860
and

00:39:08.860 --> 00:39:09.060
then

00:39:09.060 --> 00:39:09.220
it

00:39:09.220 --> 00:39:09.580
somehow

00:39:09.580 --> 00:39:10.000
magically

00:39:10.000 --> 00:39:10.460
changed

00:39:10.460 --> 00:39:10.700
but

00:39:10.700 --> 00:39:11.540
this

00:39:11.540 --> 00:39:11.680
looks

00:39:11.680 --> 00:39:11.880
a little

00:39:11.880 --> 00:39:12.080
bit

00:39:12.080 --> 00:39:12.420
more

00:39:12.420 --> 00:39:12.820
like

00:39:12.820 --> 00:39:13.280
flask

00:39:13.280 --> 00:39:13.580
right

00:39:13.580 --> 00:39:14.200
yeah

00:39:14.200 --> 00:39:15.140
so

00:39:15.140 --> 00:39:15.700
the

00:39:15.700 --> 00:39:15.980
difference

00:39:15.980 --> 00:39:16.680
in

00:39:16.680 --> 00:39:17.280
syntax

00:39:17.280 --> 00:39:17.800
is that

00:39:17.800 --> 00:39:17.940
you

00:39:17.940 --> 00:39:18.140
need

00:39:18.140 --> 00:39:18.280
to

00:39:18.280 --> 00:39:18.560
have

00:39:18.560 --> 00:39:18.900
a

00:39:18.900 --> 00:39:19.480
single

00:39:19.480 --> 00:39:20.220
function

00:39:20.220 --> 00:39:20.760
that

00:39:20.760 --> 00:39:21.000
is

00:39:21.000 --> 00:39:21.460
synchronous

00:39:21.460 --> 00:39:22.060
because

00:39:22.060 --> 00:39:22.240
we

00:39:22.240 --> 00:39:22.460
use

00:39:22.460 --> 00:39:22.700
a

00:39:22.700 --> 00:39:23.060
single

00:39:23.060 --> 00:39:24.000
not

00:39:24.000 --> 00:39:24.920
to

00:39:24.920 --> 00:39:25.300
block

00:39:25.300 --> 00:39:25.760
your

00:39:25.760 --> 00:39:26.160
UI

00:39:26.160 --> 00:39:27.120
and

00:39:27.120 --> 00:39:27.340
that

00:39:27.340 --> 00:39:28.080
function

00:39:28.080 --> 00:39:28.680
needs

00:39:28.680 --> 00:39:29.020
to be

00:39:29.020 --> 00:39:29.540
annotated

00:39:29.540 --> 00:39:29.800
with

00:39:29.800 --> 00:39:30.120
an

00:39:30.120 --> 00:39:30.740
app

00:39:30.740 --> 00:39:31.500
annotation

00:39:31.500 --> 00:39:32.120
that

00:39:32.120 --> 00:39:32.480
takes

00:39:32.480 --> 00:39:32.900
the

00:39:32.900 --> 00:39:33.620
single

00:39:33.620 --> 00:39:34.980
required

00:39:34.980 --> 00:39:35.520
parameter

00:39:35.520 --> 00:39:36.060
which

00:39:36.060 --> 00:39:36.260
is

00:39:36.260 --> 00:39:36.660
a

00:39:36.660 --> 00:39:37.300
URL

00:39:37.300 --> 00:39:38.100
pad

00:39:38.100 --> 00:39:38.500
that

00:39:38.500 --> 00:39:38.840
you

00:39:38.840 --> 00:39:39.080
want

00:39:39.080 --> 00:39:39.340
your

00:39:39.340 --> 00:39:39.620
app

00:39:39.620 --> 00:39:39.800
to

00:39:39.800 --> 00:39:40.100
be

00:39:40.100 --> 00:39:40.600
listened

00:39:40.600 --> 00:39:40.900
on

00:39:40.900 --> 00:39:41.340
and

00:39:41.340 --> 00:39:41.620
within

00:39:41.620 --> 00:39:41.860
this

00:39:41.860 --> 00:39:42.520
function

00:39:42.520 --> 00:39:42.760
can

00:39:42.760 --> 00:39:42.840
I

00:39:42.840 --> 00:39:43.060
listen

00:39:43.060 --> 00:39:43.240
to

00:39:43.240 --> 00:39:43.520
forward

00:39:43.520 --> 00:39:43.880
slash

00:39:43.880 --> 00:39:44.560
like

00:39:44.560 --> 00:39:44.720
all

00:39:44.720 --> 00:39:44.900
these

00:39:44.900 --> 00:39:45.260
examples

00:39:45.260 --> 00:39:45.480
are

00:39:45.480 --> 00:39:45.640
like

00:39:45.640 --> 00:39:45.920
slash

00:39:45.920 --> 00:39:46.320
counter

00:39:46.320 --> 00:39:46.620
and

00:39:46.620 --> 00:39:46.960
slash

00:39:46.960 --> 00:39:47.240
hello

00:39:47.240 --> 00:39:47.600
and

00:39:47.600 --> 00:39:47.760
so

00:39:47.760 --> 00:39:48.080
yeah

00:39:48.080 --> 00:39:48.440
you

00:39:48.440 --> 00:39:48.720
can

00:39:48.720 --> 00:39:50.300
also

00:39:50.300 --> 00:39:51.160
root

00:39:51.160 --> 00:39:52.040
which

00:39:52.040 --> 00:39:52.200
will

00:39:52.200 --> 00:39:52.460
be

00:39:52.460 --> 00:39:52.980
just

00:39:52.980 --> 00:39:53.120
the

00:39:53.120 --> 00:39:53.300
forward

00:39:53.300 --> 00:39:54.220
slash

00:39:54.220 --> 00:39:54.440
and

00:39:54.440 --> 00:39:54.640
that's

00:39:54.640 --> 00:39:54.800
it

00:39:54.800 --> 00:39:54.980
yeah

00:39:54.980 --> 00:39:55.240
okay

00:39:55.240 --> 00:39:55.860
and

00:39:55.860 --> 00:39:56.340
just

00:39:56.340 --> 00:39:56.480
to

00:39:56.480 --> 00:39:56.580
get

00:39:56.580 --> 00:39:56.820
back

00:39:56.820 --> 00:39:57.260
so

00:39:57.260 --> 00:39:57.740
the

00:39:57.740 --> 00:39:58.280
annotate

00:39:58.280 --> 00:39:58.820
function

00:39:58.820 --> 00:39:59.700
will

00:39:59.700 --> 00:39:59.960
give

00:39:59.960 --> 00:40:00.160
you

00:40:00.160 --> 00:40:00.700
one

00:40:00.700 --> 00:40:01.480
parameter

00:40:01.480 --> 00:40:01.820
which

00:40:01.820 --> 00:40:02.060
is

00:40:02.060 --> 00:40:02.560
Q

00:40:02.560 --> 00:40:03.120
and

00:40:03.120 --> 00:40:03.280
that

00:40:03.280 --> 00:40:03.520
stands

00:40:03.520 --> 00:40:03.740
for

00:40:03.740 --> 00:40:04.280
query

00:40:04.280 --> 00:40:05.080
and

00:40:05.080 --> 00:40:05.600
that

00:40:05.600 --> 00:40:05.960
allows

00:40:05.960 --> 00:40:06.100
you

00:40:06.100 --> 00:40:06.260
to

00:40:06.260 --> 00:40:06.640
control

00:40:06.640 --> 00:40:06.860
your

00:40:06.860 --> 00:40:07.100
wave

00:40:07.100 --> 00:40:07.280
up

00:40:07.280 --> 00:40:07.580
so

00:40:07.580 --> 00:40:07.860
it

00:40:07.860 --> 00:40:08.160
has

00:40:08.160 --> 00:40:08.760
methods

00:40:08.760 --> 00:40:09.060
like

00:40:09.060 --> 00:40:09.380
Q

00:40:09.380 --> 00:40:09.600
that

00:40:09.600 --> 00:40:10.100
save

00:40:10.100 --> 00:40:10.580
or

00:40:10.580 --> 00:40:10.820
Q

00:40:10.820 --> 00:40:11.060
page

00:40:11.060 --> 00:40:11.340
save

00:40:11.340 --> 00:40:11.660
I

00:40:11.660 --> 00:40:11.840
would

00:40:11.840 --> 00:40:12.020
say

00:40:12.020 --> 00:40:12.220
yeah

00:40:12.220 --> 00:40:12.420
Q

00:40:12.420 --> 00:40:13.060
page

00:40:13.060 --> 00:40:13.520
save

00:40:13.520 --> 00:40:14.600
which

00:40:14.600 --> 00:40:14.800
is

00:40:14.800 --> 00:40:15.000
an

00:40:15.000 --> 00:40:15.460
equivalent

00:40:15.460 --> 00:40:15.880
of

00:40:15.880 --> 00:40:16.280
page

00:40:16.280 --> 00:40:16.800
save

00:40:16.800 --> 00:40:17.320
in our

00:40:17.320 --> 00:40:17.800
previous

00:40:17.800 --> 00:40:18.220
script

00:40:18.220 --> 00:40:18.660
example

00:40:18.660 --> 00:40:19.220
you

00:40:19.220 --> 00:40:19.700
also

00:40:19.700 --> 00:40:20.760
instead of

00:40:20.760 --> 00:40:21.500
page

00:40:21.500 --> 00:40:22.100
dictionary

00:40:22.100 --> 00:40:22.540
that you

00:40:22.540 --> 00:40:23.100
put your

00:40:23.100 --> 00:40:24.220
cards in

00:40:24.220 --> 00:40:24.660
you

00:40:24.660 --> 00:40:24.860
need

00:40:24.860 --> 00:40:24.860
need

00:40:24.860 --> 00:40:24.860
need

00:40:24.860 --> 00:40:25.080
to

00:40:25.080 --> 00:40:25.480
just

00:40:25.480 --> 00:40:25.860
prefix

00:40:25.860 --> 00:40:26.040
it

00:40:26.040 --> 00:40:26.220
with

00:40:26.220 --> 00:40:26.500
Q

00:40:26.500 --> 00:40:27.060
so

00:40:27.060 --> 00:40:27.540
you

00:40:27.540 --> 00:40:27.720
end

00:40:27.720 --> 00:40:27.880
up

00:40:27.880 --> 00:40:28.040
with

00:40:28.040 --> 00:40:28.340
Q

00:40:28.340 --> 00:40:29.000
page

00:40:29.000 --> 00:40:30.040
and

00:40:30.040 --> 00:40:30.540
then

00:40:30.540 --> 00:40:30.720
you

00:40:30.720 --> 00:40:31.100
specify

00:40:31.100 --> 00:40:31.460
your

00:40:31.460 --> 00:40:31.960
current

00:40:31.960 --> 00:40:32.140
and

00:40:32.140 --> 00:40:32.300
this

00:40:32.300 --> 00:40:32.420
is

00:40:32.420 --> 00:40:32.560
how

00:40:32.560 --> 00:40:32.680
you

00:40:32.680 --> 00:40:32.860
get

00:40:32.860 --> 00:40:33.100
the

00:40:33.100 --> 00:40:33.380
per

00:40:33.380 --> 00:40:33.760
user

00:40:33.760 --> 00:40:34.660
type

00:40:34.660 --> 00:40:34.760
of

00:40:34.760 --> 00:40:34.940
thing

00:40:34.940 --> 00:40:35.080
because

00:40:35.080 --> 00:40:35.260
that

00:40:35.260 --> 00:40:35.540
queue

00:40:35.540 --> 00:40:35.720
is

00:40:35.720 --> 00:40:35.960
probably

00:40:35.960 --> 00:40:36.240
tied

00:40:36.240 --> 00:40:36.360
to

00:40:36.360 --> 00:40:36.600
them

00:40:36.600 --> 00:40:36.820
right

00:40:36.820 --> 00:40:37.140
not

00:40:37.140 --> 00:40:37.740
necessarily

00:40:37.740 --> 00:40:38.400
the

00:40:38.400 --> 00:40:38.620
per

00:40:38.620 --> 00:40:38.880
user

00:40:38.880 --> 00:40:39.220
thing

00:40:39.220 --> 00:40:39.500
is

00:40:39.500 --> 00:40:40.040
by

00:40:40.040 --> 00:40:40.540
default

00:40:40.540 --> 00:40:40.860
but

00:40:40.860 --> 00:40:41.460
if

00:40:41.460 --> 00:40:41.660
you

00:40:41.660 --> 00:40:42.220
go

00:40:42.220 --> 00:40:42.500
to

00:40:42.500 --> 00:40:42.900
the

00:40:42.900 --> 00:40:43.320
app

00:40:43.320 --> 00:40:43.800
annotation

00:40:43.800 --> 00:40:44.060
you

00:40:44.060 --> 00:40:44.280
can

00:40:44.280 --> 00:40:44.740
specify

00:40:44.740 --> 00:40:45.220
mode

00:40:45.220 --> 00:40:45.600
there

00:40:45.600 --> 00:40:46.200
so

00:40:46.200 --> 00:40:46.460
by

00:40:46.460 --> 00:40:46.780
default

00:40:46.780 --> 00:40:48.100
and

00:40:48.100 --> 00:40:48.320
that's

00:40:48.320 --> 00:40:48.500
how

00:40:48.500 --> 00:40:48.660
it

00:40:48.660 --> 00:40:49.240
distributes

00:40:49.240 --> 00:40:50.360
the

00:40:50.360 --> 00:40:50.880
changes

00:40:50.880 --> 00:40:51.360
the

00:40:51.360 --> 00:40:51.600
queue

00:40:51.600 --> 00:40:51.800
is

00:40:51.800 --> 00:40:52.020
more

00:40:52.020 --> 00:40:52.400
like

00:40:52.400 --> 00:40:52.800
you

00:40:52.800 --> 00:40:52.980
can

00:40:52.980 --> 00:40:53.220
think

00:40:53.220 --> 00:40:53.380
of

00:40:53.380 --> 00:40:53.560
it

00:40:53.560 --> 00:40:53.880
as

00:40:53.880 --> 00:40:54.580
a

00:40:54.580 --> 00:40:54.920
source

00:40:54.920 --> 00:40:55.240
of

00:40:55.240 --> 00:40:55.600
what

00:40:55.600 --> 00:40:55.840
has

00:40:55.840 --> 00:40:56.380
changed

00:40:56.380 --> 00:40:56.800
and

00:40:56.800 --> 00:40:57.160
how

00:40:57.160 --> 00:40:57.360
to

00:40:57.360 --> 00:40:57.660
update

00:40:57.660 --> 00:40:57.880
your

00:40:57.880 --> 00:40:58.320
UI

00:40:58.320 --> 00:40:59.040
so

00:40:59.040 --> 00:40:59.360
when

00:40:59.360 --> 00:40:59.500
we

00:40:59.500 --> 00:40:59.820
go

00:40:59.820 --> 00:41:00.520
through

00:41:00.520 --> 00:41:00.860
the

00:41:00.860 --> 00:41:01.380
example

00:41:01.380 --> 00:41:02.100
you

00:41:02.100 --> 00:41:02.620
will

00:41:02.620 --> 00:41:02.880
see

00:41:02.880 --> 00:41:03.100
that

00:41:03.100 --> 00:41:03.320
it

00:41:03.320 --> 00:41:03.620
can

00:41:03.620 --> 00:41:03.960
also

00:41:03.960 --> 00:41:04.320
store

00:41:04.320 --> 00:41:04.760
some

00:41:04.760 --> 00:41:05.200
local

00:41:05.200 --> 00:41:05.620
pay

00:41:05.620 --> 00:41:06.260
or

00:41:06.260 --> 00:41:06.920
advice

00:41:06.920 --> 00:41:07.380
pay

00:41:07.380 --> 00:41:07.920
etc

00:41:07.920 --> 00:41:08.440
okay

00:41:08.440 --> 00:41:09.740
one of

00:41:09.740 --> 00:41:09.860
the

00:41:09.860 --> 00:41:10.060
things

00:41:10.060 --> 00:41:10.200
that

00:41:10.200 --> 00:41:10.460
really

00:41:10.460 --> 00:41:10.760
jumped

00:41:10.760 --> 00:41:10.960
out

00:41:10.960 --> 00:41:11.100
to

00:41:11.100 --> 00:41:11.200
me

00:41:11.200 --> 00:41:11.400
was

00:41:11.400 --> 00:41:12.200
seeing

00:41:12.200 --> 00:41:12.380
the

00:41:12.380 --> 00:41:12.840
async

00:41:12.840 --> 00:41:13.380
and

00:41:13.380 --> 00:41:13.660
await

00:41:13.660 --> 00:41:14.040
stuff

00:41:14.040 --> 00:41:14.860
everywhere

00:41:14.860 --> 00:41:15.280
so

00:41:15.280 --> 00:41:15.880
you

00:41:15.880 --> 00:41:16.080
have

00:41:16.080 --> 00:41:16.220
an

00:41:16.220 --> 00:41:16.520
async

00:41:16.520 --> 00:41:16.940
method

00:41:16.940 --> 00:41:17.160
you

00:41:17.160 --> 00:41:17.400
call

00:41:17.400 --> 00:41:17.880
await

00:41:17.880 --> 00:41:18.620
page

00:41:18.620 --> 00:41:18.880
dot

00:41:18.880 --> 00:41:19.220
save

00:41:19.220 --> 00:41:21.160
and

00:41:21.160 --> 00:41:22.160
presumably

00:41:22.160 --> 00:41:23.040
if you

00:41:23.040 --> 00:41:23.280
want to

00:41:23.280 --> 00:41:23.440
work

00:41:23.440 --> 00:41:23.620
with

00:41:23.620 --> 00:41:24.180
beanie

00:41:24.180 --> 00:41:24.340
and

00:41:24.340 --> 00:41:24.800
mongodb

00:41:24.800 --> 00:41:25.120
you

00:41:25.120 --> 00:41:25.340
could

00:41:25.340 --> 00:41:25.700
use

00:41:25.700 --> 00:41:25.900
its

00:41:25.900 --> 00:41:26.280
async

00:41:26.280 --> 00:41:26.720
api

00:41:26.720 --> 00:41:26.940
if you

00:41:26.940 --> 00:41:27.140
want to

00:41:27.140 --> 00:41:27.340
call

00:41:27.340 --> 00:41:27.760
an

00:41:27.760 --> 00:41:28.400
api

00:41:28.400 --> 00:41:28.780
endpoint

00:41:28.780 --> 00:41:29.060
with

00:41:29.060 --> 00:41:29.980
httpx

00:41:29.980 --> 00:41:30.640
you

00:41:30.640 --> 00:41:30.820
could

00:41:30.820 --> 00:41:31.260
await

00:41:31.260 --> 00:41:31.860
those

00:41:31.860 --> 00:41:32.200
calls

00:41:32.200 --> 00:41:32.480
right

00:41:32.480 --> 00:41:32.780
so

00:41:32.780 --> 00:41:33.560
it

00:41:33.560 --> 00:41:33.780
really

00:41:33.780 --> 00:41:34.140
allows

00:41:34.140 --> 00:41:34.300
you

00:41:34.300 --> 00:41:34.540
to

00:41:34.540 --> 00:41:34.840
create

00:41:34.840 --> 00:41:35.300
scalable

00:41:35.300 --> 00:41:36.320
code

00:41:36.320 --> 00:41:36.580
right

00:41:36.580 --> 00:41:37.000
yeah

00:41:37.000 --> 00:41:37.460
definitely

00:41:37.460 --> 00:41:38.180
and

00:41:38.180 --> 00:41:39.060
especially

00:41:39.060 --> 00:41:39.880
the

00:41:39.880 --> 00:41:40.160
reason

00:41:40.160 --> 00:41:40.520
why

00:41:40.520 --> 00:41:41.120
async

00:41:41.120 --> 00:41:41.400
is

00:41:41.400 --> 00:41:42.200
because

00:41:42.200 --> 00:41:43.040
if

00:41:43.040 --> 00:41:43.180
you

00:41:43.180 --> 00:41:43.360
have

00:41:43.360 --> 00:41:43.520
the

00:41:43.520 --> 00:41:43.780
code

00:41:43.780 --> 00:41:44.120
like

00:41:44.120 --> 00:41:44.340
you

00:41:44.340 --> 00:41:44.600
have

00:41:44.600 --> 00:41:44.920
the

00:41:44.920 --> 00:41:45.460
single

00:41:45.460 --> 00:41:45.780
app

00:41:45.780 --> 00:41:46.120
which

00:41:46.120 --> 00:41:46.300
is

00:41:46.300 --> 00:41:46.500
two

00:41:46.500 --> 00:41:46.960
users

00:41:46.960 --> 00:41:47.480
and

00:41:47.480 --> 00:41:47.640
the

00:41:47.640 --> 00:41:47.880
first

00:41:47.880 --> 00:41:48.160
user

00:41:48.160 --> 00:41:48.780
would

00:41:48.780 --> 00:41:49.680
create

00:41:49.680 --> 00:41:50.020
some

00:41:50.020 --> 00:41:50.360
blocking

00:41:50.360 --> 00:41:50.860
action

00:41:50.860 --> 00:41:51.340
then

00:41:51.340 --> 00:41:51.500
it

00:41:51.500 --> 00:41:51.640
would

00:41:51.640 --> 00:41:52.040
block

00:41:52.040 --> 00:41:52.540
it

00:41:52.540 --> 00:41:52.920
also

00:41:52.920 --> 00:41:53.240
the

00:41:53.240 --> 00:41:53.480
second

00:41:53.480 --> 00:41:53.780
user

00:41:53.780 --> 00:41:54.140
because

00:41:54.140 --> 00:41:54.520
server

00:41:54.520 --> 00:41:55.040
is

00:41:55.040 --> 00:41:55.480
busy

00:41:55.480 --> 00:41:55.760
right

00:41:55.760 --> 00:41:55.940
it

00:41:55.940 --> 00:41:56.180
cannot

00:41:56.180 --> 00:41:56.680
respond

00:41:56.680 --> 00:41:57.120
so

00:41:57.120 --> 00:41:57.320
that's

00:41:57.320 --> 00:41:57.480
why

00:41:57.480 --> 00:41:57.720
you

00:41:57.720 --> 00:41:58.220
need

00:41:58.220 --> 00:41:58.420
to

00:41:58.420 --> 00:41:58.700
make

00:41:58.700 --> 00:41:59.200
everything

00:41:59.200 --> 00:42:00.120
asynchromous

00:42:00.120 --> 00:42:00.940
and

00:42:00.940 --> 00:42:01.120
you're

00:42:01.120 --> 00:42:01.120
and you're

00:42:01.120 --> 00:42:01.120
you're

00:42:01.120 --> 00:42:01.840
you said

00:42:01.840 --> 00:42:02.000
you're

00:42:02.000 --> 00:42:02.260
using

00:42:02.260 --> 00:42:02.920
uveacorn

00:42:02.920 --> 00:42:03.580
behind

00:42:03.580 --> 00:42:03.780
the

00:42:03.780 --> 00:42:04.060
scenes

00:42:04.060 --> 00:42:04.420
so

00:42:04.420 --> 00:42:05.160
that's

00:42:05.160 --> 00:42:05.360
a

00:42:05.360 --> 00:42:07.140
great server

00:42:07.140 --> 00:42:07.460
for

00:42:07.460 --> 00:42:08.140
this

00:42:08.140 --> 00:42:08.300
kind

00:42:08.300 --> 00:42:08.400
of

00:42:08.400 --> 00:42:08.620
code

00:42:08.620 --> 00:42:09.020
yes

00:42:09.020 --> 00:42:09.460
exactly

00:42:09.460 --> 00:42:09.820
yeah

00:42:09.820 --> 00:42:10.240
in

00:42:10.240 --> 00:42:10.560
that's

00:42:10.560 --> 00:42:10.900
a lot

00:42:10.900 --> 00:42:11.080
of

00:42:11.080 --> 00:42:11.540
heavy lifting

00:42:11.540 --> 00:42:12.180
for us

00:42:12.180 --> 00:42:12.560
yeah

00:42:12.560 --> 00:42:13.040
absolutely

00:42:13.040 --> 00:42:13.280
it's

00:42:13.280 --> 00:42:13.720
really good

00:42:13.720 --> 00:42:14.220
to build

00:42:14.220 --> 00:42:14.520
on it

00:42:14.520 --> 00:42:15.240
is it

00:42:15.240 --> 00:42:15.420
running

00:42:15.420 --> 00:42:15.840
some kind

00:42:15.840 --> 00:42:16.280
of python

00:42:16.280 --> 00:42:16.720
framework

00:42:16.720 --> 00:42:17.140
that we

00:42:17.140 --> 00:42:17.640
don't see

00:42:17.640 --> 00:42:18.320
like a

00:42:18.320 --> 00:42:18.800
flask

00:42:18.800 --> 00:42:19.400
or fast

00:42:19.400 --> 00:42:19.740
API

00:42:19.740 --> 00:42:20.160
or something

00:42:20.160 --> 00:42:20.740
or is it

00:42:20.740 --> 00:42:21.180
just all

00:42:21.180 --> 00:42:21.620
custom

00:42:21.620 --> 00:42:22.340
it uses

00:42:22.340 --> 00:42:23.080
starlight

00:42:23.080 --> 00:42:23.720
although

00:42:23.720 --> 00:42:24.360
I'm not

00:42:24.360 --> 00:42:25.100
sure if it

00:42:25.100 --> 00:42:26.240
the actual

00:42:26.240 --> 00:42:27.040
server

00:42:27.040 --> 00:42:27.640
because

00:42:27.640 --> 00:42:28.080
I'm not

00:42:28.080 --> 00:42:28.800
very familiar

00:42:28.800 --> 00:42:29.180
with it

00:42:29.180 --> 00:42:29.360
yeah

00:42:29.360 --> 00:42:29.540
so

00:42:29.540 --> 00:42:29.940
starlight

00:42:29.940 --> 00:42:30.220
is the

00:42:30.220 --> 00:42:30.400
same

00:42:30.400 --> 00:42:30.860
foundation

00:42:30.860 --> 00:42:31.500
as

00:42:31.500 --> 00:42:32.100
fast

00:42:32.100 --> 00:42:32.420
API

00:42:32.420 --> 00:42:33.120
and other

00:42:33.120 --> 00:42:33.380
things

00:42:33.380 --> 00:42:33.700
as well

00:42:33.700 --> 00:42:33.960
so

00:42:33.960 --> 00:42:34.580
that's

00:42:34.580 --> 00:42:35.040
cool

00:42:35.040 --> 00:42:36.280
all right

00:42:36.280 --> 00:42:37.260
well there's a cool

00:42:37.260 --> 00:42:37.840
getting started

00:42:37.840 --> 00:42:38.500
people can walk

00:42:38.500 --> 00:42:39.440
through and check

00:42:39.440 --> 00:42:39.820
it out

00:42:39.820 --> 00:42:40.940
it's pretty

00:42:40.940 --> 00:42:41.380
interesting

00:42:41.380 --> 00:42:42.100
because it's a

00:42:42.100 --> 00:42:42.640
it is a

00:42:42.640 --> 00:42:42.980
different

00:42:42.980 --> 00:42:43.560
programming

00:42:43.560 --> 00:42:44.020
model

00:42:44.020 --> 00:42:45.120
compared to

00:42:45.120 --> 00:42:45.540
how

00:42:45.540 --> 00:42:46.620
many people

00:42:46.620 --> 00:42:46.880
would be

00:42:46.880 --> 00:42:47.200
familiar

00:42:47.200 --> 00:42:47.580
with

00:42:47.580 --> 00:42:48.180
flask

00:42:48.180 --> 00:42:49.120
and

00:42:49.120 --> 00:42:50.160
those types

00:42:50.160 --> 00:42:50.600
of things

00:42:50.600 --> 00:42:50.900
that are

00:42:50.900 --> 00:42:51.100
very

00:42:51.100 --> 00:42:51.520
stateless

00:42:51.520 --> 00:42:51.800
and you've

00:42:51.800 --> 00:42:51.980
got to

00:42:51.980 --> 00:42:52.220
somehow

00:42:52.220 --> 00:42:52.880
figure out

00:42:52.880 --> 00:42:53.300
how to

00:42:53.300 --> 00:42:53.600
get their

00:42:53.600 --> 00:42:54.020
session

00:42:54.020 --> 00:42:54.420
and then

00:42:54.420 --> 00:42:54.600
store

00:42:54.600 --> 00:42:54.920
then a

00:42:54.920 --> 00:42:55.360
database

00:42:55.360 --> 00:42:56.100
or a

00:42:56.100 --> 00:42:56.400
redis

00:42:56.400 --> 00:42:56.620
queue

00:42:56.620 --> 00:42:56.860
and then

00:42:56.860 --> 00:42:57.180
get that

00:42:57.180 --> 00:42:57.460
back

00:42:57.460 --> 00:42:57.780
and then

00:42:57.780 --> 00:42:58.040
you know

00:42:58.040 --> 00:42:58.760
regenerate

00:42:58.760 --> 00:42:59.000
it right

00:42:59.000 --> 00:42:59.280
it's

00:42:59.280 --> 00:42:59.740
you have

00:42:59.740 --> 00:42:59.920
this

00:42:59.920 --> 00:43:00.160
inner

00:43:00.160 --> 00:43:00.740
information

00:43:00.740 --> 00:43:01.180
more

00:43:01.180 --> 00:43:02.080
round tripped

00:43:02.080 --> 00:43:02.840
I think

00:43:02.840 --> 00:43:03.260
it'll resonate

00:43:03.260 --> 00:43:03.600
with a lot

00:43:03.600 --> 00:43:03.880
of people

00:43:03.880 --> 00:43:04.680
it's definitely

00:43:04.680 --> 00:43:05.060
easier

00:43:05.060 --> 00:43:06.720
so I want

00:43:06.720 --> 00:43:07.040
to talk

00:43:07.040 --> 00:43:07.360
about

00:43:07.360 --> 00:43:08.180
the widgets

00:43:08.180 --> 00:43:09.260
but actually

00:43:09.260 --> 00:43:10.300
before we

00:43:10.300 --> 00:43:10.660
talk about

00:43:10.660 --> 00:43:11.100
the widgets

00:43:11.100 --> 00:43:11.780
let's touch

00:43:11.780 --> 00:43:12.020
on one

00:43:12.020 --> 00:43:12.460
thing over

00:43:12.460 --> 00:43:13.400
in the

00:43:13.400 --> 00:43:14.100
examples

00:43:14.100 --> 00:43:14.400
here

00:43:14.400 --> 00:43:15.240
templates

00:43:15.240 --> 00:43:16.360
so

00:43:16.360 --> 00:43:17.160
when I

00:43:17.160 --> 00:43:17.440
write

00:43:17.440 --> 00:43:18.340
traditional

00:43:18.340 --> 00:43:18.620
web

00:43:18.620 --> 00:43:19.140
applications

00:43:19.140 --> 00:43:19.520
let's

00:43:19.520 --> 00:43:19.920
call them

00:43:19.920 --> 00:43:20.580
I'll

00:43:20.580 --> 00:43:21.000
create an

00:43:21.000 --> 00:43:21.400
HTML

00:43:21.400 --> 00:43:21.980
file

00:43:21.980 --> 00:43:22.900
and I'll

00:43:22.900 --> 00:43:23.380
probably use

00:43:23.380 --> 00:43:23.900
some template

00:43:23.900 --> 00:43:24.260
language

00:43:24.260 --> 00:43:24.540
like

00:43:24.540 --> 00:43:25.200
chameleon

00:43:25.200 --> 00:43:27.540
or

00:43:27.540 --> 00:43:27.980
Django

00:43:27.980 --> 00:43:28.560
templates

00:43:28.560 --> 00:43:29.700
and pass

00:43:29.700 --> 00:43:30.140
a dictionary

00:43:30.140 --> 00:43:30.520
over there

00:43:30.520 --> 00:43:30.920
but I

00:43:30.920 --> 00:43:32.360
mostly think

00:43:32.360 --> 00:43:32.960
about what's

00:43:32.960 --> 00:43:33.260
on the

00:43:33.260 --> 00:43:33.640
page

00:43:33.640 --> 00:43:34.340
by

00:43:34.340 --> 00:43:35.320
structuring

00:43:35.320 --> 00:43:35.780
an

00:43:35.780 --> 00:43:36.420
HTML

00:43:36.420 --> 00:43:37.100
file

00:43:37.100 --> 00:43:37.720
that has

00:43:37.720 --> 00:43:38.140
CSS

00:43:38.140 --> 00:43:38.520
and

00:43:38.520 --> 00:43:38.860
JavaScript

00:43:38.860 --> 00:43:39.220
and

00:43:39.220 --> 00:43:39.800
placeholders

00:43:39.800 --> 00:43:40.280
for my

00:43:40.280 --> 00:43:41.080
things to go

00:43:41.080 --> 00:43:41.280
into

00:43:41.280 --> 00:43:41.740
and loops

00:43:41.740 --> 00:43:42.860
and that

00:43:42.860 --> 00:43:43.140
sort of

00:43:43.140 --> 00:43:43.360
thing

00:43:43.360 --> 00:43:44.340
is there

00:43:44.340 --> 00:43:44.820
a way

00:43:44.820 --> 00:43:45.480
in

00:43:45.480 --> 00:43:45.920
HTML

00:43:45.920 --> 00:43:46.160
wave

00:43:46.160 --> 00:43:47.100
to have

00:43:47.100 --> 00:43:47.320
some

00:43:47.320 --> 00:43:47.860
template

00:43:47.860 --> 00:43:48.180
like

00:43:48.180 --> 00:43:48.460
that

00:43:48.460 --> 00:43:49.440
definitely

00:43:49.440 --> 00:43:50.240
although

00:43:50.240 --> 00:43:51.020
we

00:43:51.020 --> 00:43:51.280
do

00:43:51.280 --> 00:43:51.520
not

00:43:51.520 --> 00:43:52.020
encourage

00:43:52.020 --> 00:43:52.180
it

00:43:52.180 --> 00:43:52.420
very

00:43:52.420 --> 00:43:52.640
much

00:43:52.640 --> 00:43:53.120
because

00:43:53.120 --> 00:43:54.080
we

00:43:54.080 --> 00:43:55.140
usually

00:43:55.140 --> 00:43:56.160
tend to

00:43:56.160 --> 00:43:56.420
think

00:43:56.420 --> 00:43:56.880
about

00:43:56.880 --> 00:43:57.600
using

00:43:57.600 --> 00:43:57.800
your

00:43:57.800 --> 00:43:58.140
custom

00:43:58.140 --> 00:43:58.580
HTML

00:43:58.580 --> 00:43:59.000
as

00:43:59.000 --> 00:44:00.100
escape

00:44:00.100 --> 00:44:00.380
page

00:44:00.380 --> 00:44:00.660
and

00:44:00.660 --> 00:44:02.260
instead

00:44:02.260 --> 00:44:03.120
we try

00:44:03.120 --> 00:44:03.700
to provide

00:44:03.700 --> 00:44:04.260
you with

00:44:04.260 --> 00:44:05.120
Python

00:44:05.120 --> 00:44:06.020
APIs

00:44:06.020 --> 00:44:06.360
whenever

00:44:06.360 --> 00:44:06.920
possible

00:44:06.920 --> 00:44:07.580
but if

00:44:07.580 --> 00:44:07.940
you really

00:44:07.940 --> 00:44:08.540
really want

00:44:08.540 --> 00:44:09.260
there is

00:44:09.260 --> 00:44:10.260
also

00:44:10.260 --> 00:44:11.360
HTML

00:44:11.360 --> 00:44:12.000
templating

00:44:12.000 --> 00:44:12.540
if you

00:44:12.540 --> 00:44:12.760
need

00:44:12.760 --> 00:44:13.220
and

00:44:13.220 --> 00:44:13.380
that

00:44:13.380 --> 00:44:13.800
also

00:44:13.800 --> 00:44:14.300
work

00:44:14.300 --> 00:44:14.720
the

00:44:14.720 --> 00:44:14.960
same

00:44:14.960 --> 00:44:15.160
way

00:44:15.160 --> 00:44:15.360
as

00:44:15.360 --> 00:44:15.540
we

00:44:15.540 --> 00:44:16.120
described

00:44:16.120 --> 00:44:16.620
the

00:44:16.620 --> 00:44:17.280
script

00:44:17.280 --> 00:44:18.240
data

00:44:18.240 --> 00:44:18.680
update

00:44:18.680 --> 00:44:19.240
so

00:44:19.240 --> 00:44:19.440
it

00:44:19.440 --> 00:44:20.000
takes

00:44:20.000 --> 00:44:20.500
one

00:44:20.500 --> 00:44:21.200
dictionary

00:44:21.200 --> 00:44:22.520
with

00:44:22.520 --> 00:44:22.880
the

00:44:22.880 --> 00:44:23.600
values

00:44:23.600 --> 00:44:24.140
and

00:44:24.140 --> 00:44:24.440
then

00:44:24.440 --> 00:44:25.300
HTML

00:44:25.300 --> 00:44:26.160
with

00:44:26.160 --> 00:44:26.480
the

00:44:26.480 --> 00:44:27.200
templating

00:44:27.200 --> 00:44:27.680
language

00:44:27.680 --> 00:44:28.040
right

00:44:28.040 --> 00:44:28.660
does it

00:44:28.660 --> 00:44:29.060
do the

00:44:29.060 --> 00:44:29.500
partial

00:44:29.500 --> 00:44:30.020
updates

00:44:30.020 --> 00:44:30.780
based on

00:44:30.780 --> 00:44:31.060
that as

00:44:31.060 --> 00:44:31.260
well

00:44:31.260 --> 00:44:31.960
or does

00:44:31.960 --> 00:44:32.100
it

00:44:32.100 --> 00:44:32.620
round trip

00:44:32.620 --> 00:44:32.900
the

00:44:32.900 --> 00:44:33.420
template

00:44:33.420 --> 00:44:33.620
the

00:44:33.620 --> 00:44:33.740
whole

00:44:33.740 --> 00:44:33.960
thing

00:44:33.960 --> 00:44:34.900
I'm

00:44:34.900 --> 00:44:35.180
not

00:44:35.180 --> 00:44:35.380
sure

00:44:35.380 --> 00:44:35.640
about

00:44:35.640 --> 00:44:35.860
that

00:44:35.860 --> 00:44:36.100
one

00:44:36.100 --> 00:44:36.360
but

00:44:36.360 --> 00:44:36.500
I

00:44:36.500 --> 00:44:36.660
would

00:44:36.660 --> 00:44:37.140
say

00:44:37.140 --> 00:44:37.700
it

00:44:37.700 --> 00:44:38.380
also

00:44:38.380 --> 00:44:39.200
is

00:44:39.200 --> 00:44:39.500
capable

00:44:39.500 --> 00:44:39.900
of

00:44:39.900 --> 00:44:40.180
partial

00:44:40.180 --> 00:44:40.620
updates

00:44:40.620 --> 00:44:41.060
okay

00:44:41.060 --> 00:44:41.660
so

00:44:41.660 --> 00:44:42.140
basically

00:44:42.140 --> 00:44:42.600
the

00:44:42.600 --> 00:44:42.940
examples

00:44:42.940 --> 00:44:43.120
that

00:44:43.120 --> 00:44:43.220
you

00:44:43.220 --> 00:44:43.600
have

00:44:43.600 --> 00:44:44.160
here

00:44:44.160 --> 00:44:44.820
are

00:44:44.820 --> 00:44:45.240
you

00:44:45.240 --> 00:44:45.480
have

00:44:45.480 --> 00:44:45.600
a

00:44:45.600 --> 00:44:45.740
little

00:44:45.740 --> 00:44:46.140
tiny

00:44:46.140 --> 00:44:46.800
fragment

00:44:46.800 --> 00:44:47.360
like

00:44:47.360 --> 00:44:47.660
a

00:44:47.660 --> 00:44:48.180
fragment

00:44:48.180 --> 00:44:48.340
of

00:44:48.340 --> 00:44:48.820
HTML

00:44:48.820 --> 00:44:49.220
that'll

00:44:49.220 --> 00:44:49.400
go

00:44:49.400 --> 00:44:49.600
into

00:44:49.600 --> 00:44:49.760
the

00:44:49.760 --> 00:44:50.120
page

00:44:50.120 --> 00:44:50.400
and

00:44:50.400 --> 00:44:50.720
then

00:44:50.720 --> 00:44:51.540
that's

00:44:51.540 --> 00:44:51.880
the

00:44:51.880 --> 00:44:52.500
template

00:44:52.500 --> 00:44:53.200
sounds

00:44:53.200 --> 00:44:53.480
a little

00:44:53.480 --> 00:44:53.860
bit like

00:44:53.860 --> 00:44:54.160
view

00:44:54.160 --> 00:44:54.780
components

00:44:54.780 --> 00:44:55.060
and

00:44:55.060 --> 00:44:55.580
that

00:44:55.580 --> 00:44:56.000
style

00:44:56.000 --> 00:44:56.460
yeah

00:44:56.460 --> 00:44:57.200
and

00:44:57.200 --> 00:44:57.660
maybe

00:44:57.660 --> 00:44:58.120
one more

00:44:58.120 --> 00:44:58.420
the

00:44:58.420 --> 00:44:58.960
markdown

00:44:58.960 --> 00:44:59.260
a little

00:44:59.260 --> 00:44:59.420
bit

00:44:59.420 --> 00:44:59.800
together

00:44:59.800 --> 00:45:00.280
yeah

00:45:00.280 --> 00:45:00.820
exactly

00:45:00.820 --> 00:45:01.720
and

00:45:01.720 --> 00:45:01.960
maybe

00:45:01.960 --> 00:45:02.500
one more

00:45:02.500 --> 00:45:02.920
interesting

00:45:02.920 --> 00:45:03.920
thing

00:45:03.920 --> 00:45:04.780
to note

00:45:04.780 --> 00:45:05.560
because

00:45:05.560 --> 00:45:06.080
the

00:45:06.080 --> 00:45:06.340
app

00:45:06.340 --> 00:45:06.540
that

00:45:06.540 --> 00:45:07.320
we

00:45:07.320 --> 00:45:07.480
are

00:45:07.480 --> 00:45:07.800
currently

00:45:07.800 --> 00:45:08.400
looking at

00:45:08.400 --> 00:45:08.840
is

00:45:08.840 --> 00:45:09.260
called

00:45:09.260 --> 00:45:09.840
H2L

00:45:09.840 --> 00:45:10.080
Lave

00:45:10.080 --> 00:45:10.520
Tour

00:45:10.520 --> 00:45:11.520
and

00:45:11.520 --> 00:45:11.720
that

00:45:11.720 --> 00:45:12.540
also

00:45:12.540 --> 00:45:13.280
wave

00:45:13.280 --> 00:45:13.560
app

00:45:13.560 --> 00:45:13.920
in

00:45:13.920 --> 00:45:14.280
itself

00:45:14.280 --> 00:45:14.780
so

00:45:14.780 --> 00:45:14.920
you

00:45:14.920 --> 00:45:15.100
can

00:45:15.100 --> 00:45:15.440
see

00:45:15.440 --> 00:45:15.820
it

00:45:15.820 --> 00:45:16.960
looks

00:45:16.960 --> 00:45:17.400
nice

00:45:17.400 --> 00:45:18.000
even

00:45:18.000 --> 00:45:18.280
though

00:45:18.280 --> 00:45:18.580
you

00:45:18.580 --> 00:45:18.820
have

00:45:18.820 --> 00:45:19.020
a

00:45:19.020 --> 00:45:19.320
small

00:45:19.320 --> 00:45:19.820
screen

00:45:19.820 --> 00:45:20.460
and

00:45:20.460 --> 00:45:21.140
it's

00:45:21.140 --> 00:45:21.360
a

00:45:21.360 --> 00:45:21.900
perfect

00:45:21.900 --> 00:45:22.400
example

00:45:22.400 --> 00:45:23.060
of what

00:45:23.060 --> 00:45:23.800
wave

00:45:23.800 --> 00:45:24.000
is

00:45:24.000 --> 00:45:24.440
capable

00:45:24.440 --> 00:45:24.920
because

00:45:24.920 --> 00:45:25.580
all the

00:45:25.580 --> 00:45:25.940
code

00:45:25.940 --> 00:45:26.980
that we

00:45:26.980 --> 00:45:27.400
see

00:45:27.400 --> 00:45:27.920
in front

00:45:27.920 --> 00:45:28.300
of us

00:45:28.300 --> 00:45:28.740
is

00:45:28.740 --> 00:45:29.180
rendered

00:45:29.180 --> 00:45:29.600
in

00:45:29.600 --> 00:45:30.520
VS Code

00:45:30.520 --> 00:45:30.940
Editor

00:45:30.940 --> 00:45:31.560
we use

00:45:31.560 --> 00:45:31.780
called

00:45:31.780 --> 00:45:32.120
Monaco

00:45:32.120 --> 00:45:32.420
Editor

00:45:32.420 --> 00:45:33.200
and

00:45:33.200 --> 00:45:33.800
that

00:45:33.800 --> 00:45:34.820
implemented

00:45:34.820 --> 00:45:35.640
via

00:45:35.640 --> 00:45:36.820
incorporating

00:45:36.820 --> 00:45:37.440
custom

00:45:37.440 --> 00:45:37.860
JavaScript

00:45:37.860 --> 00:45:38.520
into

00:45:38.520 --> 00:45:38.960
wave

00:45:38.960 --> 00:45:39.360
so

00:45:39.360 --> 00:45:39.500
that

00:45:39.500 --> 00:45:39.680
means

00:45:39.680 --> 00:45:40.000
if

00:45:40.000 --> 00:45:40.120
you

00:45:40.120 --> 00:45:40.360
really

00:45:40.360 --> 00:45:40.620
need

00:45:40.620 --> 00:45:40.880
to

00:45:40.880 --> 00:45:41.680
include

00:45:41.680 --> 00:45:42.020
some

00:45:42.020 --> 00:45:42.500
third-party

00:45:42.500 --> 00:45:43.100
libraries

00:45:43.100 --> 00:45:43.640
in

00:45:43.640 --> 00:45:43.960
JavaScript

00:45:43.960 --> 00:45:44.620
then we

00:45:44.620 --> 00:45:45.100
got you

00:45:45.100 --> 00:45:45.660
covered as

00:45:45.660 --> 00:45:45.880
well

00:45:45.880 --> 00:45:46.220
that's

00:45:46.220 --> 00:45:46.480
really

00:45:46.480 --> 00:45:46.820
awesome

00:45:46.820 --> 00:45:47.280
yeah

00:45:47.280 --> 00:45:47.520
so

00:45:47.520 --> 00:45:47.980
this

00:45:47.980 --> 00:45:48.820
H2O

00:45:48.820 --> 00:45:49.180
wave

00:45:49.180 --> 00:45:49.620
tour

00:45:49.620 --> 00:45:50.200
lets you

00:45:50.200 --> 00:45:50.700
run the

00:45:50.700 --> 00:45:50.880
code

00:45:50.880 --> 00:45:51.260
locally

00:45:51.260 --> 00:45:51.460
and

00:45:51.460 --> 00:45:51.900
explore

00:45:51.900 --> 00:45:52.160
it

00:45:52.160 --> 00:45:52.400
and

00:45:52.400 --> 00:45:53.240
search

00:45:53.240 --> 00:45:53.440
through

00:45:53.440 --> 00:45:53.600
the

00:45:53.600 --> 00:45:53.820
different

00:45:53.820 --> 00:45:54.240
examples

00:45:54.240 --> 00:45:54.580
which

00:45:54.580 --> 00:45:54.720
is

00:45:54.720 --> 00:45:54.880
really

00:45:54.880 --> 00:45:55.320
fantastic

00:45:55.320 --> 00:45:55.840
so

00:45:55.840 --> 00:45:56.080
if

00:45:56.080 --> 00:45:56.180
you

00:45:56.180 --> 00:45:56.360
go

00:45:56.360 --> 00:45:56.740
to

00:45:56.740 --> 00:45:57.100
the

00:45:57.100 --> 00:45:57.400
website

00:45:57.400 --> 00:45:57.740
there's

00:45:57.740 --> 00:45:58.100
a

00:45:58.100 --> 00:45:58.460
getting

00:45:58.460 --> 00:45:58.740
started

00:45:58.740 --> 00:45:58.940
that

00:45:58.940 --> 00:45:59.280
shows

00:45:59.280 --> 00:45:59.440
you

00:45:59.440 --> 00:45:59.640
how

00:45:59.640 --> 00:45:59.860
to

00:45:59.860 --> 00:46:00.500
get

00:46:00.500 --> 00:46:00.720
this

00:46:00.720 --> 00:46:00.940
up

00:46:00.940 --> 00:46:01.080
and

00:46:01.080 --> 00:46:01.400
running

00:46:01.400 --> 00:46:02.180
what

00:46:02.180 --> 00:46:02.320
we

00:46:02.320 --> 00:46:02.480
get

00:46:02.480 --> 00:46:02.640
is

00:46:02.640 --> 00:46:02.980
a

00:46:02.980 --> 00:46:03.220
nav

00:46:03.220 --> 00:46:03.380
bar

00:46:03.380 --> 00:46:03.680
across

00:46:03.680 --> 00:46:03.860
the

00:46:03.860 --> 00:46:04.180
top

00:46:04.180 --> 00:46:04.320
and

00:46:04.320 --> 00:46:04.500
then

00:46:04.500 --> 00:46:04.740
like

00:46:04.740 --> 00:46:04.920
a

00:46:04.920 --> 00:46:05.120
drop

00:46:05.120 --> 00:46:05.280
down

00:46:05.280 --> 00:46:05.660
combo

00:46:05.660 --> 00:46:06.100
box

00:46:06.100 --> 00:46:06.240
and

00:46:06.240 --> 00:46:06.420
a

00:46:06.420 --> 00:46:06.780
next

00:46:06.780 --> 00:46:07.120
previous

00:46:07.120 --> 00:46:07.460
button

00:46:07.460 --> 00:46:07.920
on

00:46:07.920 --> 00:46:08.100
the

00:46:08.100 --> 00:46:08.580
right

00:46:08.580 --> 00:46:09.020
side

00:46:09.020 --> 00:46:09.200
of

00:46:09.200 --> 00:46:09.320
the

00:46:09.320 --> 00:46:09.620
page

00:46:09.620 --> 00:46:09.780
we

00:46:09.780 --> 00:46:09.980
have

00:46:09.980 --> 00:46:10.200
the

00:46:10.200 --> 00:46:10.860
rendered

00:46:10.860 --> 00:46:11.260
output

00:46:11.260 --> 00:46:11.520
that's

00:46:11.520 --> 00:46:11.840
live

00:46:11.840 --> 00:46:12.060
and

00:46:12.060 --> 00:46:12.180
then

00:46:12.180 --> 00:46:12.300
on

00:46:12.300 --> 00:46:12.440
the

00:46:12.440 --> 00:46:12.740
left

00:46:12.740 --> 00:46:12.960
side

00:46:12.960 --> 00:46:13.100
we

00:46:13.100 --> 00:46:13.220
have

00:46:13.220 --> 00:46:13.380
the

00:46:13.380 --> 00:46:13.640
code

00:46:13.640 --> 00:46:13.760
that

00:46:13.760 --> 00:46:13.940
makes

00:46:13.940 --> 00:46:14.040
it

00:46:14.040 --> 00:46:14.300
happen

00:46:14.300 --> 00:46:14.960
so

00:46:14.960 --> 00:46:15.140
what

00:46:15.140 --> 00:46:15.300
you're

00:46:15.300 --> 00:46:15.460
telling

00:46:15.460 --> 00:46:15.580
me

00:46:15.580 --> 00:46:15.680
is

00:46:15.680 --> 00:46:16.000
that

00:46:16.000 --> 00:46:16.220
little

00:46:16.220 --> 00:46:16.660
square

00:46:16.660 --> 00:46:16.840
on

00:46:16.840 --> 00:46:17.040
the

00:46:17.040 --> 00:46:17.700
left

00:46:17.700 --> 00:46:18.440
pane

00:46:18.440 --> 00:46:18.620
of

00:46:18.620 --> 00:46:18.860
my

00:46:18.860 --> 00:46:19.100
two

00:46:19.100 --> 00:46:19.300
pane

00:46:19.300 --> 00:46:19.680
window

00:46:19.680 --> 00:46:20.320
that's

00:46:20.320 --> 00:46:20.700
basically

00:46:20.700 --> 00:46:21.040
VS

00:46:21.040 --> 00:46:21.280
code

00:46:21.280 --> 00:46:21.680
yes

00:46:21.680 --> 00:46:22.040
you can

00:46:22.040 --> 00:46:22.320
edit

00:46:22.320 --> 00:46:22.560
it

00:46:22.560 --> 00:46:23.360
you have

00:46:23.360 --> 00:46:23.720
open

00:46:23.720 --> 00:46:23.960
one

00:46:23.960 --> 00:46:25.280
if you

00:46:25.280 --> 00:46:25.540
can

00:46:25.540 --> 00:46:25.840
try

00:46:25.840 --> 00:46:26.080
to

00:46:26.080 --> 00:46:26.420
type

00:46:26.420 --> 00:46:26.640
into

00:46:26.640 --> 00:46:27.020
it

00:46:27.020 --> 00:46:27.500
hit

00:46:27.500 --> 00:46:28.560
W

00:46:28.560 --> 00:46:29.280
and

00:46:29.280 --> 00:46:29.540
let's

00:46:29.540 --> 00:46:29.680
say

00:46:29.680 --> 00:46:30.120
button

00:46:30.120 --> 00:46:30.620
or

00:46:30.620 --> 00:46:30.860
maybe

00:46:30.860 --> 00:46:31.160
not

00:46:31.160 --> 00:46:31.820
maybe

00:46:31.820 --> 00:46:32.000
I

00:46:32.000 --> 00:46:32.660
remember

00:46:32.660 --> 00:46:32.840
it

00:46:32.840 --> 00:46:33.420
wrongly

00:46:33.420 --> 00:46:35.220
maybe

00:46:35.220 --> 00:46:35.460
my

00:46:35.460 --> 00:46:35.620
ad

00:46:35.620 --> 00:46:36.020
blockers

00:46:36.020 --> 00:46:36.640
make

00:46:36.640 --> 00:46:36.760
it

00:46:36.760 --> 00:46:37.060
angry

00:46:37.060 --> 00:46:37.240
as

00:46:37.240 --> 00:46:37.400
well

00:46:37.400 --> 00:46:37.540
you

00:46:37.540 --> 00:46:37.700
never

00:46:37.700 --> 00:46:38.020
know

00:46:38.020 --> 00:46:38.900
okay

00:46:38.900 --> 00:46:40.700
but

00:46:40.700 --> 00:46:40.860
yeah

00:46:40.860 --> 00:46:41.060
that's

00:46:41.060 --> 00:46:41.360
cool

00:46:41.360 --> 00:46:42.020
yeah

00:46:42.020 --> 00:46:42.240
you get

00:46:42.240 --> 00:46:42.460
like

00:46:42.460 --> 00:46:43.260
highlighting

00:46:43.260 --> 00:46:43.980
and

00:46:43.980 --> 00:46:45.160
indentations

00:46:45.160 --> 00:46:45.740
and

00:46:45.740 --> 00:46:46.220
yeah

00:46:46.220 --> 00:46:47.000
you can

00:46:47.000 --> 00:46:47.340
you can

00:46:47.340 --> 00:46:47.740
edit it

00:46:47.740 --> 00:46:48.340
and your

00:46:48.340 --> 00:46:48.680
changes

00:46:48.680 --> 00:46:49.060
should be

00:46:49.060 --> 00:46:49.380
reflected

00:46:49.380 --> 00:46:49.700
on the

00:46:49.700 --> 00:46:49.860
right

00:46:49.860 --> 00:46:50.240
side

00:46:50.240 --> 00:46:50.680
as well

00:46:50.680 --> 00:46:50.940
yeah

00:46:50.940 --> 00:46:51.500
kind of

00:46:51.500 --> 00:46:51.980
instructive

00:46:51.980 --> 00:46:52.260
yeah

00:46:52.260 --> 00:46:53.220
you can

00:46:53.220 --> 00:46:53.400
just

00:46:53.400 --> 00:46:53.540
set

00:46:53.540 --> 00:46:53.660
there

00:46:53.660 --> 00:46:53.780
and

00:46:53.780 --> 00:46:53.940
edit

00:46:53.940 --> 00:46:54.560
that's

00:46:54.560 --> 00:46:54.620
a

00:46:54.620 --> 00:46:54.760
really

00:46:54.760 --> 00:46:54.940
cool

00:46:54.940 --> 00:46:55.060
way

00:46:55.060 --> 00:46:55.160
to

00:46:55.160 --> 00:46:55.320
play

00:46:55.320 --> 00:46:55.500
with

00:46:55.500 --> 00:46:55.640
it

00:46:55.640 --> 00:46:55.880
right

00:46:55.880 --> 00:46:56.060
you

00:46:56.060 --> 00:46:56.140
know

00:46:56.140 --> 00:46:56.300
you

00:46:56.300 --> 00:46:56.700
have

00:46:56.700 --> 00:46:56.940
stuff

00:46:56.940 --> 00:46:57.160
that'll

00:46:57.160 --> 00:46:57.420
say

00:46:57.420 --> 00:46:57.760
take

00:46:57.760 --> 00:46:57.880
you

00:46:57.880 --> 00:46:58.080
to

00:46:58.080 --> 00:46:58.460
repl

00:46:58.460 --> 00:46:58.860
or

00:46:58.860 --> 00:46:59.340
whatever

00:46:59.340 --> 00:47:00.120
and

00:47:00.120 --> 00:47:00.240
there's

00:47:00.240 --> 00:47:00.360
all

00:47:00.360 --> 00:47:00.500
these

00:47:00.500 --> 00:47:00.820
pains

00:47:00.820 --> 00:47:00.980
like

00:47:00.980 --> 00:47:01.440
okay

00:47:01.440 --> 00:47:01.640
what

00:47:01.640 --> 00:47:01.740
do

00:47:01.740 --> 00:47:01.880
I

00:47:01.880 --> 00:47:02.260
click

00:47:02.260 --> 00:47:02.440
to

00:47:02.440 --> 00:47:02.720
actually

00:47:02.720 --> 00:47:02.980
make

00:47:02.980 --> 00:47:03.180
this

00:47:03.180 --> 00:47:03.600
show up

00:47:03.600 --> 00:47:03.740
and

00:47:03.740 --> 00:47:03.880
where

00:47:03.880 --> 00:47:04.000
is

00:47:04.000 --> 00:47:04.080
it

00:47:04.080 --> 00:47:04.260
supposed

00:47:04.260 --> 00:47:04.440
to

00:47:04.440 --> 00:47:04.640
go

00:47:04.640 --> 00:47:04.880
this

00:47:04.880 --> 00:47:05.060
is

00:47:05.060 --> 00:47:05.720
this

00:47:05.720 --> 00:47:05.760
is

00:47:05.760 --> 00:47:05.840
a

00:47:05.840 --> 00:47:05.980
really

00:47:05.980 --> 00:47:06.200
cool

00:47:06.200 --> 00:47:06.400
way

00:47:06.400 --> 00:47:06.740
to

00:47:06.740 --> 00:47:07.420
explore

00:47:07.420 --> 00:47:07.640
I

00:47:07.640 --> 00:47:07.860
think

00:47:07.860 --> 00:47:08.300
yeah

00:47:08.300 --> 00:47:08.640
okay

00:47:08.640 --> 00:47:09.380
so

00:47:09.380 --> 00:47:09.720
the

00:47:09.720 --> 00:47:09.920
thing

00:47:09.920 --> 00:47:10.000
I

00:47:10.000 --> 00:47:10.140
wanted

00:47:10.140 --> 00:47:10.280
to

00:47:10.280 --> 00:47:10.460
talk

00:47:10.460 --> 00:47:10.680
about

00:47:10.680 --> 00:47:10.880
was

00:47:10.880 --> 00:47:11.080
these

00:47:11.080 --> 00:47:11.420
templates

00:47:11.420 --> 00:47:11.620
so

00:47:11.620 --> 00:47:11.740
there

00:47:11.740 --> 00:47:11.920
is

00:47:11.920 --> 00:47:12.100
some

00:47:12.100 --> 00:47:12.360
way

00:47:12.360 --> 00:47:12.560
to

00:47:12.560 --> 00:47:12.820
do

00:47:12.820 --> 00:47:13.100
little

00:47:13.100 --> 00:47:13.460
bits

00:47:13.460 --> 00:47:13.680
but

00:47:13.680 --> 00:47:13.980
it

00:47:13.980 --> 00:47:14.160
it

00:47:14.160 --> 00:47:14.460
sounds

00:47:14.460 --> 00:47:14.780
to me

00:47:14.780 --> 00:47:15.160
more

00:47:15.160 --> 00:47:15.800
like

00:47:15.800 --> 00:47:16.140
it's

00:47:16.140 --> 00:47:16.720
it's

00:47:16.720 --> 00:47:16.960
a little

00:47:16.960 --> 00:47:17.140
bit

00:47:17.140 --> 00:47:17.320
this

00:47:17.320 --> 00:47:17.760
component

00:47:17.760 --> 00:47:18.100
model

00:47:18.100 --> 00:47:18.320
like

00:47:18.320 --> 00:47:18.540
this

00:47:18.540 --> 00:47:18.740
little

00:47:18.740 --> 00:47:19.240
section

00:47:19.240 --> 00:47:19.440
this

00:47:19.440 --> 00:47:19.720
card

00:47:19.720 --> 00:47:19.840
that

00:47:19.840 --> 00:47:19.960
we're

00:47:19.960 --> 00:47:20.040
going

00:47:20.040 --> 00:47:20.100
to

00:47:20.100 --> 00:47:20.240
put

00:47:20.240 --> 00:47:20.580
somewhere

00:47:20.580 --> 00:47:20.820
on

00:47:20.820 --> 00:47:20.960
the

00:47:20.960 --> 00:47:21.340
screen

00:47:21.340 --> 00:47:22.020
here's

00:47:22.020 --> 00:47:22.180
its

00:47:22.180 --> 00:47:22.500
little

00:47:22.500 --> 00:47:22.880
fragment

00:47:22.880 --> 00:47:23.080
of

00:47:23.080 --> 00:47:23.540
HTML

00:47:23.540 --> 00:47:23.960
that

00:47:23.960 --> 00:47:24.080
is

00:47:24.080 --> 00:47:24.200
an

00:47:24.200 --> 00:47:24.620
expression

00:47:24.620 --> 00:47:25.060
that

00:47:25.060 --> 00:47:25.240
goes

00:47:25.240 --> 00:47:25.420
with

00:47:25.420 --> 00:47:25.620
it

00:47:25.620 --> 00:47:25.820
yeah

00:47:25.820 --> 00:47:27.940
very very

00:47:27.940 --> 00:47:28.180
neat

00:47:28.180 --> 00:47:28.640
the other

00:47:28.640 --> 00:47:28.820
one

00:47:28.820 --> 00:47:29.040
that's

00:47:29.040 --> 00:47:29.220
pretty

00:47:29.220 --> 00:47:29.580
nice

00:47:29.580 --> 00:47:30.260
is

00:47:30.260 --> 00:47:31.040
markdown

00:47:31.040 --> 00:47:31.640
right

00:47:31.640 --> 00:47:31.880
you have

00:47:31.880 --> 00:47:32.120
nice

00:47:32.120 --> 00:47:32.440
support

00:47:32.440 --> 00:47:32.700
for

00:47:32.700 --> 00:47:33.340
just

00:47:33.340 --> 00:47:34.180
markdown

00:47:34.180 --> 00:47:34.640
out of

00:47:34.640 --> 00:47:35.040
the box

00:47:35.040 --> 00:47:35.700
so

00:47:35.700 --> 00:47:35.920
I

00:47:35.920 --> 00:47:36.080
think

00:47:36.080 --> 00:47:36.320
that's

00:47:36.320 --> 00:47:36.580
great

00:47:36.580 --> 00:47:37.160
if you

00:47:37.160 --> 00:47:37.320
have

00:47:37.320 --> 00:47:37.720
various

00:47:37.720 --> 00:47:38.340
there's

00:47:38.340 --> 00:47:38.880
hundreds

00:47:38.880 --> 00:47:39.640
of examples

00:47:39.640 --> 00:47:40.280
and some

00:47:40.280 --> 00:47:40.680
people can

00:47:40.680 --> 00:47:41.060
go play

00:47:41.060 --> 00:47:41.260
there

00:47:41.260 --> 00:47:41.360
but

00:47:41.360 --> 00:47:41.580
there's

00:47:41.580 --> 00:47:42.280
a couple

00:47:42.280 --> 00:47:42.640
for the

00:47:42.640 --> 00:47:42.900
different

00:47:42.900 --> 00:47:43.200
how

00:47:43.200 --> 00:47:43.640
markdown

00:47:43.640 --> 00:47:43.980
gets

00:47:43.980 --> 00:47:44.580
applied

00:47:44.580 --> 00:47:44.860
and

00:47:44.860 --> 00:47:45.560
used

00:47:45.560 --> 00:47:46.320
let's

00:47:46.320 --> 00:47:46.580
see

00:47:46.580 --> 00:47:47.240
another

00:47:47.240 --> 00:47:47.600
thing

00:47:47.600 --> 00:47:47.820
you know

00:47:47.820 --> 00:47:48.220
you talked

00:47:48.220 --> 00:47:48.520
about

00:47:48.520 --> 00:47:49.220
you told

00:47:49.220 --> 00:47:49.440
me to

00:47:49.440 --> 00:47:49.700
type

00:47:49.700 --> 00:47:50.080
like

00:47:50.080 --> 00:47:50.660
wbutton

00:47:50.660 --> 00:47:51.140
and hit

00:47:51.140 --> 00:47:51.560
and tab

00:47:51.560 --> 00:47:52.120
so

00:47:52.120 --> 00:47:52.680
that's

00:47:52.680 --> 00:47:53.320
part

00:47:53.320 --> 00:47:53.680
of

00:47:53.680 --> 00:47:54.000
one

00:47:54.000 --> 00:47:54.100
of

00:47:54.100 --> 00:47:54.300
the

00:47:54.300 --> 00:47:54.960
code

00:47:54.960 --> 00:47:56.080
extensions

00:47:56.080 --> 00:47:56.800
or plugins

00:47:56.800 --> 00:47:57.140
depending

00:47:57.140 --> 00:47:57.540
on the

00:47:57.540 --> 00:47:57.980
editor

00:47:57.980 --> 00:47:58.480
you're

00:47:58.480 --> 00:47:59.080
using

00:47:59.080 --> 00:47:59.720
so

00:47:59.720 --> 00:47:59.960
you have

00:47:59.960 --> 00:48:00.560
VS Code

00:48:00.560 --> 00:48:00.900
and you

00:48:00.900 --> 00:48:01.220
have

00:48:01.220 --> 00:48:01.900
PyCharm

00:48:01.900 --> 00:48:02.780
plugins

00:48:02.780 --> 00:48:03.340
that

00:48:03.340 --> 00:48:03.860
allow us

00:48:03.860 --> 00:48:04.400
to create

00:48:04.400 --> 00:48:05.040
things

00:48:05.040 --> 00:48:05.660
like

00:48:05.660 --> 00:48:05.940
if I

00:48:05.940 --> 00:48:06.200
got a

00:48:06.200 --> 00:48:06.540
form

00:48:06.540 --> 00:48:06.720
or

00:48:06.720 --> 00:48:06.960
something

00:48:06.960 --> 00:48:07.300
right

00:48:07.300 --> 00:48:08.200
I

00:48:08.200 --> 00:48:08.340
could

00:48:08.340 --> 00:48:08.640
type

00:48:08.640 --> 00:48:08.980
like

00:48:08.980 --> 00:48:10.180
wform

00:48:10.180 --> 00:48:11.220
tab

00:48:11.220 --> 00:48:11.900
and

00:48:11.900 --> 00:48:12.020
it

00:48:12.020 --> 00:48:12.180
would

00:48:12.180 --> 00:48:12.440
go

00:48:12.440 --> 00:48:12.860
potentially

00:48:12.860 --> 00:48:13.460
create

00:48:13.460 --> 00:48:14.300
some

00:48:14.300 --> 00:48:14.560
kind

00:48:14.560 --> 00:48:14.760
of

00:48:14.760 --> 00:48:15.300
UI

00:48:15.300 --> 00:48:15.900
element

00:48:15.900 --> 00:48:16.640
instead

00:48:16.640 --> 00:48:16.780
of

00:48:16.780 --> 00:48:16.900
me

00:48:16.900 --> 00:48:17.160
having

00:48:17.160 --> 00:48:17.320
to

00:48:17.320 --> 00:48:17.420
do

00:48:17.420 --> 00:48:17.580
that

00:48:17.580 --> 00:48:17.720
right

00:48:17.720 --> 00:48:17.860
or

00:48:17.860 --> 00:48:17.980
if

00:48:17.980 --> 00:48:18.020
you

00:48:18.020 --> 00:48:18.120
want

00:48:18.120 --> 00:48:18.200
to

00:48:18.200 --> 00:48:18.320
get

00:48:18.320 --> 00:48:18.520
a

00:48:18.520 --> 00:48:19.160
scaffold

00:48:19.160 --> 00:48:19.520
up

00:48:19.520 --> 00:48:19.840
a

00:48:19.840 --> 00:48:20.720
starter

00:48:20.720 --> 00:48:21.360
application

00:48:21.360 --> 00:48:21.860
yes

00:48:21.860 --> 00:48:22.360
that's

00:48:22.360 --> 00:48:22.600
right

00:48:22.600 --> 00:48:23.160
so

00:48:23.160 --> 00:48:23.580
we

00:48:23.580 --> 00:48:23.760
have

00:48:23.760 --> 00:48:24.400
VS Code

00:48:24.400 --> 00:48:24.860
extension

00:48:24.860 --> 00:48:25.100
and

00:48:25.100 --> 00:48:25.420
PyCharm

00:48:25.420 --> 00:48:25.720
plugin

00:48:25.720 --> 00:48:26.060
which

00:48:26.060 --> 00:48:26.420
have

00:48:26.420 --> 00:48:27.460
the same

00:48:27.460 --> 00:48:27.980
features

00:48:27.980 --> 00:48:29.200
and

00:48:29.200 --> 00:48:29.920
the

00:48:29.920 --> 00:48:30.400
features

00:48:30.400 --> 00:48:30.920
are

00:48:30.920 --> 00:48:31.380
one

00:48:31.380 --> 00:48:31.660
is

00:48:31.660 --> 00:48:32.640
called

00:48:32.640 --> 00:48:33.280
snippet

00:48:33.280 --> 00:48:33.880
snippet

00:48:33.880 --> 00:48:34.320
or

00:48:34.320 --> 00:48:34.960
the

00:48:34.960 --> 00:48:35.380
templates

00:48:35.380 --> 00:48:36.020
that

00:48:36.020 --> 00:48:37.280
allows

00:48:37.280 --> 00:48:37.540
you

00:48:37.540 --> 00:48:37.900
to

00:48:37.900 --> 00:48:38.560
streamline

00:48:38.560 --> 00:48:38.940
your

00:48:38.940 --> 00:48:39.480
typing

00:48:39.480 --> 00:48:40.000
a

00:48:40.000 --> 00:48:40.160
little

00:48:40.160 --> 00:48:40.440
bit

00:48:40.440 --> 00:48:40.860
so

00:48:40.860 --> 00:48:40.940
you

00:48:40.940 --> 00:48:41.100
don't

00:48:41.100 --> 00:48:41.300
need

00:48:41.300 --> 00:48:41.520
to

00:48:41.520 --> 00:48:42.060
think

00:48:42.060 --> 00:48:42.480
about

00:48:42.480 --> 00:48:43.100
how

00:48:43.100 --> 00:48:43.720
what

00:48:43.720 --> 00:48:43.860
are

00:48:43.860 --> 00:48:44.000
the

00:48:44.000 --> 00:48:44.340
possible

00:48:44.340 --> 00:48:45.000
attributes

00:48:45.000 --> 00:48:45.880
in

00:48:45.880 --> 00:48:46.060
the

00:48:46.060 --> 00:48:46.380
button

00:48:46.380 --> 00:48:46.760
for

00:48:46.760 --> 00:48:47.160
example

00:48:47.160 --> 00:48:47.880
you

00:48:47.880 --> 00:48:48.140
can

00:48:48.140 --> 00:48:48.560
just

00:48:48.560 --> 00:48:49.580
yeah

00:48:49.580 --> 00:48:50.120
there

00:48:50.120 --> 00:48:50.280
is

00:48:50.280 --> 00:48:50.500
a

00:48:50.500 --> 00:48:50.820
little

00:48:50.820 --> 00:48:51.200
demo

00:48:51.200 --> 00:48:51.740
so

00:48:51.740 --> 00:48:52.060
you

00:48:52.060 --> 00:48:52.340
can

00:48:52.340 --> 00:48:52.660
just

00:48:52.660 --> 00:48:53.260
type

00:48:53.260 --> 00:48:54.240
w

00:48:54.240 --> 00:48:54.900
underscore

00:48:54.900 --> 00:48:55.440
and

00:48:55.440 --> 00:48:55.800
your

00:48:55.800 --> 00:48:56.380
card

00:48:56.380 --> 00:48:56.680
name

00:48:56.680 --> 00:48:57.160
and

00:48:57.160 --> 00:48:57.320
it

00:48:57.320 --> 00:48:57.640
will

00:48:57.640 --> 00:48:58.540
basically

00:48:58.540 --> 00:48:59.300
give

00:48:59.300 --> 00:48:59.540
you

00:48:59.540 --> 00:48:59.900
all the

00:48:59.900 --> 00:49:00.180
code

00:49:00.180 --> 00:49:00.480
that

00:49:00.480 --> 00:49:00.620
is

00:49:00.620 --> 00:49:00.880
needed

00:49:00.880 --> 00:49:01.640
and

00:49:01.640 --> 00:49:02.020
the

00:49:02.020 --> 00:49:02.420
second

00:49:02.420 --> 00:49:02.900
part

00:49:02.900 --> 00:49:03.280
is

00:49:03.280 --> 00:49:05.320
autocomplete

00:49:05.320 --> 00:49:05.760
because

00:49:05.760 --> 00:49:06.500
most of

00:49:06.500 --> 00:49:07.120
the stuff

00:49:07.120 --> 00:49:07.360
in

00:49:07.360 --> 00:49:07.680
wave

00:49:07.680 --> 00:49:07.920
is

00:49:07.920 --> 00:49:08.260
based

00:49:08.260 --> 00:49:08.600
on

00:49:08.600 --> 00:49:09.320
dictionaries

00:49:09.320 --> 00:49:09.880
which

00:49:09.880 --> 00:49:10.240
are

00:49:10.240 --> 00:49:10.820
dynamic

00:49:10.820 --> 00:49:11.080
in

00:49:11.080 --> 00:49:11.220
their

00:49:11.220 --> 00:49:11.480
nature

00:49:11.480 --> 00:49:11.920
so

00:49:11.920 --> 00:49:12.280
there

00:49:12.280 --> 00:49:12.440
is

00:49:12.440 --> 00:49:12.680
not

00:49:12.680 --> 00:49:13.020
much

00:49:13.020 --> 00:49:13.300
that

00:49:13.300 --> 00:49:13.580
the

00:49:13.580 --> 00:49:14.120
type

00:49:14.120 --> 00:49:14.500
system

00:49:14.500 --> 00:49:14.780
can

00:49:14.780 --> 00:49:15.160
infer

00:49:15.160 --> 00:49:15.880
so

00:49:15.880 --> 00:49:16.320
we

00:49:16.320 --> 00:49:16.560
help

00:49:16.560 --> 00:49:16.700
with

00:49:16.700 --> 00:49:16.920
that

00:49:16.920 --> 00:49:17.340
a little

00:49:17.340 --> 00:49:17.520
bit

00:49:17.520 --> 00:49:17.880
as well

00:49:17.880 --> 00:49:18.180
yeah

00:49:18.180 --> 00:49:18.880
it's

00:49:18.880 --> 00:49:19.200
amazing

00:49:19.200 --> 00:49:19.620
how much

00:49:19.620 --> 00:49:20.380
those

00:49:20.380 --> 00:49:20.720
sort

00:49:20.720 --> 00:49:20.840
of

00:49:20.840 --> 00:49:21.340
focused

00:49:21.340 --> 00:49:21.800
templates

00:49:21.800 --> 00:49:21.980
are

00:49:21.980 --> 00:49:22.180
like

00:49:22.180 --> 00:49:22.620
I'm

00:49:22.620 --> 00:49:22.820
here

00:49:22.820 --> 00:49:22.960
to

00:49:22.960 --> 00:49:23.180
create

00:49:23.180 --> 00:49:23.500
UI

00:49:23.500 --> 00:49:23.880
widgets

00:49:23.880 --> 00:49:24.300
I'm

00:49:24.300 --> 00:49:24.500
telling

00:49:24.500 --> 00:49:24.620
you

00:49:24.620 --> 00:49:24.780
this

00:49:24.780 --> 00:49:25.100
reminds

00:49:25.100 --> 00:49:25.260
me

00:49:25.260 --> 00:49:25.500
a lot

00:49:25.500 --> 00:49:25.640
of

00:49:25.640 --> 00:49:25.960
Flutter

00:49:25.960 --> 00:49:26.120
I

00:49:26.120 --> 00:49:26.240
don't

00:49:26.240 --> 00:49:26.340
know

00:49:26.340 --> 00:49:26.420
if

00:49:26.420 --> 00:49:26.560
you've

00:49:26.560 --> 00:49:26.700
done

00:49:26.700 --> 00:49:27.000
anything

00:49:27.000 --> 00:49:27.200
with

00:49:27.200 --> 00:49:27.540
Flutter

00:49:27.540 --> 00:49:28.140
just

00:49:28.140 --> 00:49:28.340
a

00:49:28.340 --> 00:49:28.480
little

00:49:28.480 --> 00:49:28.720
bit

00:49:28.720 --> 00:49:29.000
but

00:49:29.000 --> 00:49:29.640
the

00:49:29.640 --> 00:49:30.640
style

00:49:30.640 --> 00:49:30.960
of

00:49:30.960 --> 00:49:31.300
the

00:49:31.300 --> 00:49:31.440
way

00:49:31.440 --> 00:49:31.560
you

00:49:31.560 --> 00:49:31.740
create

00:49:31.740 --> 00:49:32.060
these

00:49:32.060 --> 00:49:33.600
nested

00:49:33.600 --> 00:49:34.020
UI

00:49:34.020 --> 00:49:34.720
widgets

00:49:34.720 --> 00:49:35.080
and

00:49:35.080 --> 00:49:35.940
the

00:49:35.940 --> 00:49:36.320
editor

00:49:36.320 --> 00:49:36.660
tools

00:49:36.660 --> 00:49:36.780
to

00:49:36.780 --> 00:49:36.940
build

00:49:36.940 --> 00:49:37.080
them

00:49:37.080 --> 00:49:37.840
it's

00:49:37.840 --> 00:49:38.000
really

00:49:38.000 --> 00:49:38.280
nice

00:49:38.280 --> 00:49:38.740
I like

00:49:38.740 --> 00:49:39.240
it

00:49:39.240 --> 00:49:39.420
I

00:49:39.420 --> 00:49:39.800
certainly

00:49:39.800 --> 00:49:40.000
if

00:49:40.000 --> 00:49:40.180
people

00:49:40.180 --> 00:49:40.300
are

00:49:40.300 --> 00:49:40.420
going

00:49:40.420 --> 00:49:41.180
to

00:49:41.180 --> 00:49:41.460
build

00:49:41.460 --> 00:49:41.800
real

00:49:41.800 --> 00:49:42.080
apps

00:49:42.080 --> 00:49:42.280
with

00:49:42.280 --> 00:49:42.580
this

00:49:42.580 --> 00:49:43.480
they

00:49:43.480 --> 00:49:43.720
should

00:49:43.720 --> 00:49:44.080
be

00:49:44.080 --> 00:49:44.840
considering

00:49:44.840 --> 00:49:45.120
these

00:49:45.120 --> 00:49:45.620
extensions

00:49:45.620 --> 00:49:45.920
or

00:49:45.920 --> 00:49:46.340
plugins

00:49:46.340 --> 00:49:46.720
right

00:49:46.720 --> 00:49:47.100
yeah

00:49:47.100 --> 00:49:48.000
so

00:49:48.000 --> 00:49:48.400
Phil

00:49:48.400 --> 00:49:48.660
on the

00:49:48.660 --> 00:49:48.900
audience

00:49:48.900 --> 00:49:49.120
has

00:49:49.120 --> 00:49:49.260
an

00:49:49.260 --> 00:49:49.520
idea

00:49:49.520 --> 00:49:49.860
says

00:49:49.860 --> 00:49:50.240
less

00:49:50.240 --> 00:49:50.700
intelligent

00:49:50.700 --> 00:49:50.920
more

00:49:50.920 --> 00:49:51.200
basic

00:49:51.200 --> 00:49:51.380
this

00:49:51.380 --> 00:49:51.520
might

00:49:51.520 --> 00:49:51.820
provide

00:49:51.820 --> 00:49:51.940
an

00:49:51.940 --> 00:49:52.120
easy

00:49:52.120 --> 00:49:52.360
way

00:49:52.360 --> 00:49:52.580
to

00:49:52.580 --> 00:49:52.840
build

00:49:52.840 --> 00:49:53.020
a

00:49:53.020 --> 00:49:53.320
personal

00:49:53.320 --> 00:49:53.720
media

00:49:53.720 --> 00:49:54.100
streaming

00:49:54.100 --> 00:49:54.440
service

00:49:54.440 --> 00:49:54.740
on my

00:49:54.740 --> 00:49:55.080
Raspberry

00:49:55.080 --> 00:49:55.480
Pi

00:49:55.480 --> 00:49:55.620
and

00:49:55.620 --> 00:49:55.740
a

00:49:55.740 --> 00:49:55.980
remote

00:49:55.980 --> 00:49:56.320
control

00:49:56.320 --> 00:49:56.760
interface

00:49:56.760 --> 00:49:56.940
to

00:49:56.940 --> 00:49:57.340
control

00:49:57.340 --> 00:49:57.520
and

00:49:57.520 --> 00:49:57.680
view

00:49:57.680 --> 00:49:57.860
from

00:49:57.860 --> 00:49:58.040
my

00:49:58.040 --> 00:49:58.360
phone

00:49:58.360 --> 00:49:58.580
what

00:49:58.580 --> 00:49:58.680
do

00:49:58.680 --> 00:49:58.720
you

00:49:58.720 --> 00:49:59.020
think

00:49:59.020 --> 00:49:59.720
can

00:49:59.720 --> 00:49:59.820
you

00:49:59.820 --> 00:49:59.960
build

00:49:59.960 --> 00:50:00.060
a

00:50:00.060 --> 00:50:00.580
control

00:50:00.580 --> 00:50:00.860
go

00:50:00.860 --> 00:50:01.060
for

00:50:01.060 --> 00:50:01.260
it

00:50:01.260 --> 00:50:03.220
cool

00:50:03.220 --> 00:50:03.780
I'd

00:50:03.780 --> 00:50:03.960
say

00:50:03.960 --> 00:50:04.100
it

00:50:04.100 --> 00:50:04.400
sounds

00:50:04.400 --> 00:50:05.160
pretty

00:50:05.160 --> 00:50:05.640
possible

00:50:05.640 --> 00:50:06.020
Joe

00:50:06.020 --> 00:50:06.220
the

00:50:06.220 --> 00:50:06.400
quick

00:50:06.400 --> 00:50:06.640
note

00:50:06.640 --> 00:50:06.920
that

00:50:06.920 --> 00:50:07.760
we

00:50:07.760 --> 00:50:07.920
are

00:50:07.920 --> 00:50:08.140
really

00:50:08.140 --> 00:50:08.560
interested

00:50:08.560 --> 00:50:08.920
in

00:50:08.920 --> 00:50:09.520
everything

00:50:09.520 --> 00:50:09.740
that

00:50:09.740 --> 00:50:09.920
our

00:50:09.920 --> 00:50:10.340
community

00:50:10.340 --> 00:50:10.720
does

00:50:10.720 --> 00:50:11.260
so

00:50:11.260 --> 00:50:11.520
if

00:50:11.520 --> 00:50:11.640
you

00:50:11.640 --> 00:50:11.840
have

00:50:11.840 --> 00:50:12.160
some

00:50:12.160 --> 00:50:12.480
cool

00:50:12.480 --> 00:50:12.680
way

00:50:12.680 --> 00:50:12.960
up

00:50:12.960 --> 00:50:13.280
don't

00:50:13.280 --> 00:50:13.580
hesitate

00:50:13.580 --> 00:50:14.060
and

00:50:14.060 --> 00:50:14.520
bring

00:50:14.520 --> 00:50:14.640
it

00:50:14.640 --> 00:50:14.860
up

00:50:14.860 --> 00:50:15.280
you

00:50:15.280 --> 00:50:16.280
can

00:50:16.280 --> 00:50:16.480
go

00:50:16.480 --> 00:50:16.880
to

00:50:16.880 --> 00:50:17.520
GitHub

00:50:17.520 --> 00:50:17.880
and

00:50:17.880 --> 00:50:18.360
discussions

00:50:18.360 --> 00:50:19.240
and

00:50:19.240 --> 00:50:19.780
there

00:50:19.780 --> 00:50:19.920
we

00:50:19.920 --> 00:50:20.100
have

00:50:20.100 --> 00:50:20.300
a

00:50:20.300 --> 00:50:20.800
discussion

00:50:20.800 --> 00:50:21.300
dedicated

00:50:21.300 --> 00:50:21.760
to

00:50:21.760 --> 00:50:22.300
a

00:50:22.300 --> 00:50:22.640
community

00:50:22.640 --> 00:50:23.260
showcase

00:50:23.260 --> 00:50:23.760
so

00:50:23.760 --> 00:50:24.740
yeah

00:50:24.740 --> 00:50:26.020
definitely

00:50:26.020 --> 00:50:26.260
good

00:50:26.260 --> 00:50:26.540
idea

00:50:26.540 --> 00:50:27.340
a lot

00:50:27.340 --> 00:50:27.420
of

00:50:27.420 --> 00:50:27.620
things

00:50:27.620 --> 00:50:27.700
I

00:50:27.700 --> 00:50:27.780
want

00:50:27.780 --> 00:50:27.800
to

00:50:27.800 --> 00:50:27.980
ask

00:50:27.980 --> 00:50:28.060
you

00:50:28.060 --> 00:50:28.280
about

00:50:28.280 --> 00:50:28.520
but

00:50:28.520 --> 00:50:29.040
we're

00:50:29.040 --> 00:50:29.180
going to

00:50:29.180 --> 00:50:29.680
run out

00:50:29.680 --> 00:50:29.780
of

00:50:29.780 --> 00:50:30.060
time

00:50:30.060 --> 00:50:30.960
so

00:50:30.960 --> 00:50:31.580
let's

00:50:31.580 --> 00:50:31.720
talk

00:50:31.720 --> 00:50:31.920
about

00:50:31.920 --> 00:50:32.380
deployment

00:50:32.380 --> 00:50:33.660
so

00:50:33.660 --> 00:50:34.260
and

00:50:34.260 --> 00:50:35.360
is

00:50:35.360 --> 00:50:35.580
this

00:50:35.580 --> 00:50:35.720
a

00:50:35.720 --> 00:50:35.860
thing

00:50:35.860 --> 00:50:36.000
I

00:50:36.000 --> 00:50:36.180
have

00:50:36.180 --> 00:50:36.320
to

00:50:36.320 --> 00:50:36.620
buy

00:50:36.620 --> 00:50:36.940
in

00:50:36.940 --> 00:50:37.120
order

00:50:37.120 --> 00:50:37.320
to

00:50:37.320 --> 00:50:37.540
use

00:50:37.540 --> 00:50:38.020
H2O

00:50:38.020 --> 00:50:38.240
wave

00:50:38.240 --> 00:50:38.960
so

00:50:38.960 --> 00:50:39.260
suppose

00:50:39.260 --> 00:50:39.560
I

00:50:39.560 --> 00:50:39.980
have

00:50:39.980 --> 00:50:40.820
a

00:50:40.820 --> 00:50:41.160
virtual

00:50:41.160 --> 00:50:41.520
Linux

00:50:41.520 --> 00:50:41.940
server

00:50:41.940 --> 00:50:42.660
at

00:50:42.660 --> 00:50:43.140
Linode

00:50:43.140 --> 00:50:43.600
I

00:50:43.600 --> 00:50:43.760
want

00:50:43.760 --> 00:50:43.860
to

00:50:43.860 --> 00:50:44.100
run

00:50:44.100 --> 00:50:44.900
this

00:50:44.900 --> 00:50:45.220
there

00:50:45.220 --> 00:50:45.400
could

00:50:45.400 --> 00:50:45.500
I

00:50:45.500 --> 00:50:45.620
do

00:50:45.620 --> 00:50:45.740
it

00:50:45.740 --> 00:50:46.340
definitely

00:50:46.340 --> 00:50:46.980
wave

00:50:46.980 --> 00:50:47.320
is

00:50:47.320 --> 00:50:48.200
100%

00:50:48.200 --> 00:50:48.540
free

00:50:48.540 --> 00:50:48.720
of

00:50:48.720 --> 00:50:49.160
charge

00:50:49.160 --> 00:50:49.500
so

00:50:49.500 --> 00:50:49.660
you

00:50:49.660 --> 00:50:49.920
can

00:50:49.920 --> 00:50:50.240
use

00:50:50.240 --> 00:50:50.500
it

00:50:50.500 --> 00:50:50.760
even

00:50:50.760 --> 00:50:50.960
for

00:50:50.960 --> 00:50:51.440
commercial

00:50:51.440 --> 00:50:52.040
projects

00:50:52.040 --> 00:50:52.880
our

00:50:52.880 --> 00:50:53.240
license

00:50:53.240 --> 00:50:53.800
permitted

00:50:53.800 --> 00:50:54.820
and

00:50:54.820 --> 00:50:55.020
you

00:50:55.020 --> 00:50:55.260
can

00:50:55.260 --> 00:50:55.760
deploy

00:50:55.760 --> 00:50:56.580
wherever

00:50:56.580 --> 00:50:56.840
we

00:50:56.840 --> 00:50:57.080
want

00:50:57.080 --> 00:50:57.380
we

00:50:57.380 --> 00:50:58.040
even

00:50:58.040 --> 00:50:58.720
had

00:50:58.720 --> 00:50:59.180
some

00:50:59.180 --> 00:50:59.460
blog

00:50:59.460 --> 00:50:59.840
posts

00:50:59.840 --> 00:51:00.300
about

00:51:00.300 --> 00:51:01.200
deploying

00:51:01.200 --> 00:51:01.540
wave

00:51:01.540 --> 00:51:01.820
apps

00:51:01.820 --> 00:51:02.140
on

00:51:02.140 --> 00:51:02.580
Heroku

00:51:02.580 --> 00:51:03.540
and

00:51:03.540 --> 00:51:04.180
we

00:51:04.180 --> 00:51:04.440
plan

00:51:04.440 --> 00:51:04.740
to

00:51:04.740 --> 00:51:05.320
also

00:51:05.320 --> 00:51:05.640
add

00:51:05.640 --> 00:51:06.100
for

00:51:06.100 --> 00:51:07.120
AWS

00:51:07.120 --> 00:51:07.920
EC2

00:51:07.920 --> 00:51:08.180
or

00:51:08.180 --> 00:51:08.680
Linode

00:51:08.680 --> 00:51:09.040
or

00:51:09.040 --> 00:51:09.540
whatever

00:51:09.540 --> 00:51:10.340
and

00:51:10.340 --> 00:51:11.060
however

00:51:11.060 --> 00:51:11.500
if

00:51:11.500 --> 00:51:11.820
you

00:51:11.820 --> 00:51:12.720
are

00:51:12.720 --> 00:51:13.520
enterprise

00:51:13.520 --> 00:51:14.020
then

00:51:14.020 --> 00:51:14.820
part of

00:51:14.820 --> 00:51:15.000
our

00:51:15.000 --> 00:51:15.320
business

00:51:15.320 --> 00:51:15.640
model

00:51:15.640 --> 00:51:15.940
is

00:51:15.940 --> 00:51:16.160
that

00:51:16.160 --> 00:51:16.580
we

00:51:16.580 --> 00:51:17.160
we

00:51:17.160 --> 00:51:17.540
basically

00:51:17.540 --> 00:51:18.220
provide

00:51:18.220 --> 00:51:18.660
a

00:51:18.660 --> 00:51:18.960
cloud

00:51:18.960 --> 00:51:19.660
solution

00:51:19.660 --> 00:51:20.000
for

00:51:20.000 --> 00:51:20.660
for

00:51:20.660 --> 00:51:21.060
app

00:51:21.060 --> 00:51:21.480
deployment

00:51:21.480 --> 00:51:22.120
for

00:51:22.120 --> 00:51:22.300
you

00:51:22.300 --> 00:51:22.860
so

00:51:22.860 --> 00:51:23.460
that's

00:51:23.460 --> 00:51:23.820
that's

00:51:23.820 --> 00:51:24.600
okay

00:51:24.600 --> 00:51:25.020
so

00:51:25.020 --> 00:51:25.240
if

00:51:25.240 --> 00:51:25.480
I

00:51:25.480 --> 00:51:25.800
have

00:51:25.800 --> 00:51:26.040
like

00:51:26.040 --> 00:51:26.260
a

00:51:26.260 --> 00:51:26.580
team

00:51:26.580 --> 00:51:26.720
of

00:51:26.720 --> 00:51:26.920
data

00:51:26.920 --> 00:51:27.480
scientists

00:51:27.480 --> 00:51:28.060
and

00:51:28.060 --> 00:51:28.280
I

00:51:28.280 --> 00:51:28.640
don't

00:51:28.640 --> 00:51:28.800
want

00:51:28.800 --> 00:51:28.980
a

00:51:28.980 --> 00:51:29.520
dedicated

00:51:29.520 --> 00:51:30.680
H2o

00:51:30.680 --> 00:51:31.040
wave

00:51:31.040 --> 00:51:31.780
DevOps

00:51:31.780 --> 00:51:32.280
person

00:51:32.280 --> 00:51:32.780
I

00:51:32.780 --> 00:51:32.940
can

00:51:32.940 --> 00:51:33.120
just

00:51:33.120 --> 00:51:33.420
pay

00:51:33.420 --> 00:51:33.580
you

00:51:33.580 --> 00:51:33.800
all

00:51:33.800 --> 00:51:34.120
some

00:51:34.120 --> 00:51:34.420
sort

00:51:34.420 --> 00:51:34.520
of

00:51:34.520 --> 00:51:34.780
money

00:51:34.780 --> 00:51:35.140
and

00:51:35.140 --> 00:51:35.320
you'll

00:51:35.320 --> 00:51:35.520
set

00:51:35.520 --> 00:51:35.720
up

00:51:35.720 --> 00:51:36.180
some

00:51:36.180 --> 00:51:36.460
number

00:51:36.460 --> 00:51:36.620
of

00:51:36.620 --> 00:51:36.980
apps

00:51:36.980 --> 00:51:37.780
how's

00:51:37.780 --> 00:51:37.900
the

00:51:37.900 --> 00:51:38.140
pricing

00:51:38.140 --> 00:51:38.360
work

00:51:38.360 --> 00:51:38.580
there

00:51:38.580 --> 00:51:39.020
I'm

00:51:39.020 --> 00:51:39.260
not

00:51:39.260 --> 00:51:39.740
sure

00:51:39.740 --> 00:51:40.380
because

00:51:40.380 --> 00:51:40.980
I'm

00:51:40.980 --> 00:51:41.240
not

00:51:41.240 --> 00:51:41.600
working

00:51:41.600 --> 00:51:41.880
on

00:51:41.880 --> 00:51:42.140
the

00:51:42.140 --> 00:51:42.500
cloud

00:51:42.500 --> 00:51:42.860
side

00:51:42.860 --> 00:51:43.040
of

00:51:43.040 --> 00:51:43.480
things

00:51:43.480 --> 00:51:44.300
but

00:51:44.300 --> 00:51:44.760
just

00:51:44.760 --> 00:51:44.900
to

00:51:44.900 --> 00:51:45.060
give

00:51:45.060 --> 00:51:45.200
you

00:51:45.200 --> 00:51:45.460
maybe

00:51:45.460 --> 00:51:45.940
more

00:51:45.940 --> 00:51:46.580
just

00:51:46.580 --> 00:51:46.720
to

00:51:46.720 --> 00:51:46.880
shed

00:51:46.880 --> 00:51:47.140
more

00:51:47.140 --> 00:51:47.480
light

00:51:47.480 --> 00:51:48.120
on

00:51:48.120 --> 00:51:48.780
our

00:51:48.780 --> 00:51:49.380
initial

00:51:49.380 --> 00:51:50.020
intentions

00:51:50.020 --> 00:51:51.020
with

00:51:51.020 --> 00:51:51.400
wave

00:51:51.400 --> 00:51:51.860
we

00:51:51.860 --> 00:51:52.120
wanted

00:51:52.120 --> 00:51:52.380
to

00:51:52.380 --> 00:51:52.720
solve

00:51:52.720 --> 00:51:53.460
basically

00:51:53.460 --> 00:51:53.800
three

00:51:53.800 --> 00:51:54.240
problems

00:51:54.240 --> 00:51:54.520
one

00:51:54.520 --> 00:51:54.920
was

00:51:54.920 --> 00:51:55.720
building

00:51:55.720 --> 00:51:56.240
nice

00:51:56.240 --> 00:51:56.740
UIs

00:51:56.740 --> 00:51:57.260
second

00:51:57.260 --> 00:51:57.640
was

00:51:57.640 --> 00:51:58.320
authentication

00:51:58.320 --> 00:51:58.940
out of

00:51:58.940 --> 00:51:59.360
the box

00:51:59.360 --> 00:51:59.960
because

00:51:59.960 --> 00:52:00.480
this is

00:52:00.480 --> 00:52:01.020
painful

00:52:01.020 --> 00:52:01.500
and the

00:52:01.500 --> 00:52:01.720
third

00:52:01.720 --> 00:52:01.980
one

00:52:01.980 --> 00:52:02.240
was

00:52:02.240 --> 00:52:02.700
deployment

00:52:02.700 --> 00:52:03.400
because

00:52:03.400 --> 00:52:03.720
if you

00:52:03.720 --> 00:52:03.960
are a

00:52:03.960 --> 00:52:04.160
data

00:52:04.160 --> 00:52:04.520
scientist

00:52:04.520 --> 00:52:04.840
you

00:52:04.840 --> 00:52:05.240
probably

00:52:05.240 --> 00:52:05.540
don't

00:52:05.540 --> 00:52:05.760
know

00:52:05.760 --> 00:52:06.060
much

00:52:06.060 --> 00:52:06.320
about

00:52:06.320 --> 00:52:06.480
it

00:52:06.480 --> 00:52:06.760
right

00:52:06.760 --> 00:52:07.060
right

00:52:07.060 --> 00:52:07.220
so

00:52:07.220 --> 00:52:07.440
that

00:52:07.440 --> 00:52:07.620
is

00:52:07.620 --> 00:52:07.940
where

00:52:07.940 --> 00:52:08.260
our

00:52:08.260 --> 00:52:08.760
cloud

00:52:08.760 --> 00:52:09.420
platform

00:52:09.420 --> 00:52:09.760
comes

00:52:09.760 --> 00:52:10.140
to play

00:52:10.140 --> 00:52:10.460
which

00:52:10.460 --> 00:52:11.140
allows

00:52:11.140 --> 00:52:11.320
you

00:52:11.320 --> 00:52:11.520
to

00:52:11.520 --> 00:52:11.880
easily

00:52:11.880 --> 00:52:12.560
deploy

00:52:12.560 --> 00:52:13.040
your

00:52:13.040 --> 00:52:13.640
web apps

00:52:13.640 --> 00:52:14.040
using

00:52:14.040 --> 00:52:14.780
CLI

00:52:14.780 --> 00:52:15.320
it's

00:52:15.320 --> 00:52:15.760
basically

00:52:15.760 --> 00:52:16.140
like

00:52:16.140 --> 00:52:17.260
so

00:52:17.260 --> 00:52:18.040
your

00:52:18.040 --> 00:52:18.380
business

00:52:18.380 --> 00:52:18.780
model

00:52:18.780 --> 00:52:19.480
is

00:52:19.480 --> 00:52:20.180
basically

00:52:20.180 --> 00:52:21.100
H2O wave

00:52:21.100 --> 00:52:21.560
is free

00:52:21.560 --> 00:52:22.580
open source

00:52:22.580 --> 00:52:23.040
people can

00:52:23.040 --> 00:52:23.440
deploy it

00:52:23.440 --> 00:52:23.660
where they

00:52:23.660 --> 00:52:23.920
want

00:52:23.920 --> 00:52:24.240
but if

00:52:24.240 --> 00:52:24.360
they

00:52:24.360 --> 00:52:24.520
don't

00:52:24.520 --> 00:52:24.640
want

00:52:24.640 --> 00:52:24.780
to

00:52:24.780 --> 00:52:25.200
manage

00:52:25.200 --> 00:52:25.620
the

00:52:25.620 --> 00:52:26.640
running

00:52:26.640 --> 00:52:27.000
and

00:52:27.000 --> 00:52:27.780
upgrading

00:52:27.780 --> 00:52:28.200
and

00:52:28.200 --> 00:52:28.920
backups

00:52:28.920 --> 00:52:29.280
and all

00:52:29.280 --> 00:52:29.520
that

00:52:29.520 --> 00:52:30.200
they can

00:52:30.200 --> 00:52:30.640
buy that

00:52:30.640 --> 00:52:30.900
as a

00:52:30.900 --> 00:52:31.160
service

00:52:31.160 --> 00:52:31.380
from

00:52:31.380 --> 00:52:31.520
you

00:52:31.520 --> 00:52:32.000
exactly

00:52:32.000 --> 00:52:32.320
yeah

00:52:32.320 --> 00:52:32.600
that

00:52:32.600 --> 00:52:32.780
sounds

00:52:32.780 --> 00:52:33.000
fair

00:52:33.000 --> 00:52:33.580
is

00:52:33.580 --> 00:52:33.720
it

00:52:33.720 --> 00:52:33.960
hard

00:52:33.960 --> 00:52:34.260
to set

00:52:34.260 --> 00:52:34.460
up

00:52:34.460 --> 00:52:34.820
if

00:52:34.820 --> 00:52:34.920
I

00:52:34.920 --> 00:52:35.080
want

00:52:35.080 --> 00:52:35.160
to

00:52:35.160 --> 00:52:35.360
host

00:52:35.360 --> 00:52:35.460
it

00:52:35.460 --> 00:52:35.860
myself

00:52:35.860 --> 00:52:36.520
not

00:52:36.520 --> 00:52:36.820
really

00:52:36.820 --> 00:52:37.540
basically

00:52:37.540 --> 00:52:38.100
the

00:52:38.100 --> 00:52:38.940
simplest

00:52:38.940 --> 00:52:39.420
thing

00:52:39.420 --> 00:52:39.580
that

00:52:39.580 --> 00:52:39.700
you

00:52:39.700 --> 00:52:39.880
need

00:52:39.880 --> 00:52:40.040
to

00:52:40.040 --> 00:52:40.360
do

00:52:40.360 --> 00:52:41.080
is

00:52:41.080 --> 00:52:41.640
just

00:52:41.640 --> 00:52:42.040
run

00:52:42.040 --> 00:52:42.760
hit

00:52:42.760 --> 00:52:43.200
wave

00:52:43.200 --> 00:52:43.480
run

00:52:43.480 --> 00:52:44.180
and then

00:52:44.180 --> 00:52:44.460
your

00:52:44.460 --> 00:52:45.160
app.py

00:52:45.160 --> 00:52:45.820
and that

00:52:45.820 --> 00:52:45.980
should

00:52:45.980 --> 00:52:46.540
basically

00:52:46.540 --> 00:52:48.100
run your

00:52:48.100 --> 00:52:48.920
application

00:52:48.920 --> 00:52:49.980
you expose

00:52:49.980 --> 00:52:50.260
your

00:52:50.260 --> 00:52:50.780
correct

00:52:50.780 --> 00:52:51.200
ports

00:52:51.200 --> 00:52:51.720
and that

00:52:51.720 --> 00:52:52.560
I suppose

00:52:52.560 --> 00:52:53.080
I could put

00:52:53.080 --> 00:52:53.620
it behind

00:52:53.620 --> 00:52:54.620
Nginx

00:52:54.620 --> 00:52:55.420
successfully

00:52:55.420 --> 00:52:56.420
I do

00:52:56.420 --> 00:52:56.820
got to do

00:52:56.820 --> 00:52:57.340
something special

00:52:57.340 --> 00:52:58.280
for like

00:52:58.280 --> 00:52:58.680
the web

00:52:58.680 --> 00:52:58.980
socket

00:52:58.980 --> 00:52:59.360
aspect

00:52:59.360 --> 00:52:59.780
of it

00:52:59.780 --> 00:53:00.220
I don't

00:53:00.220 --> 00:53:00.580
think so

00:53:00.580 --> 00:53:01.080
because

00:53:01.080 --> 00:53:01.980
I don't

00:53:01.980 --> 00:53:02.280
think so

00:53:02.280 --> 00:53:02.520
either

00:53:02.520 --> 00:53:03.000
because

00:53:03.000 --> 00:53:03.460
you just

00:53:03.460 --> 00:53:03.820
need to

00:53:03.820 --> 00:53:04.300
expose

00:53:04.300 --> 00:53:04.660
the

00:53:04.660 --> 00:53:04.920
web

00:53:04.920 --> 00:53:05.240
server

00:53:05.240 --> 00:53:05.700
part

00:53:05.700 --> 00:53:05.980
the

00:53:05.980 --> 00:53:06.340
web

00:53:06.340 --> 00:53:07.220
application

00:53:07.220 --> 00:53:07.640
part

00:53:07.640 --> 00:53:08.320
doesn't

00:53:08.320 --> 00:53:08.580
need to

00:53:08.580 --> 00:53:08.700
be

00:53:08.700 --> 00:53:08.880
exposed

00:53:08.880 --> 00:53:09.620
at all

00:53:09.620 --> 00:53:10.040
and since

00:53:10.040 --> 00:53:10.180
the

00:53:10.180 --> 00:53:10.300
web

00:53:10.300 --> 00:53:10.520
server

00:53:10.520 --> 00:53:10.740
is

00:53:10.740 --> 00:53:10.860
the

00:53:10.860 --> 00:53:11.060
one

00:53:11.060 --> 00:53:11.300
that

00:53:11.300 --> 00:53:11.680
handles

00:53:11.680 --> 00:53:11.960
web

00:53:11.960 --> 00:53:12.300
sockets

00:53:12.300 --> 00:53:12.640
then

00:53:12.640 --> 00:53:13.220
it

00:53:13.220 --> 00:53:13.440
shouldn't

00:53:13.440 --> 00:53:13.740
work

00:53:13.740 --> 00:53:14.020
right

00:53:14.020 --> 00:53:14.340
I think

00:53:14.340 --> 00:53:14.440
it

00:53:14.440 --> 00:53:14.620
just

00:53:14.620 --> 00:53:14.900
tells

00:53:14.900 --> 00:53:15.100
the

00:53:15.100 --> 00:53:15.440
browser

00:53:15.440 --> 00:53:15.700
hey

00:53:15.700 --> 00:53:15.880
we're

00:53:15.880 --> 00:53:16.200
upgrading

00:53:16.200 --> 00:53:16.360
to

00:53:16.360 --> 00:53:16.540
web

00:53:16.540 --> 00:53:16.880
sockets

00:53:16.880 --> 00:53:17.260
let's

00:53:17.260 --> 00:53:17.400
keep

00:53:17.400 --> 00:53:17.660
going

00:53:17.660 --> 00:53:18.400
and

00:53:18.400 --> 00:53:18.640
that

00:53:18.640 --> 00:53:18.880
should

00:53:18.880 --> 00:53:19.060
go

00:53:19.060 --> 00:53:19.240
through

00:53:19.240 --> 00:53:19.680
Nginx

00:53:19.680 --> 00:53:19.940
I would

00:53:19.940 --> 00:53:20.200
guess

00:53:20.200 --> 00:53:21.020
okay

00:53:21.020 --> 00:53:21.360
that way

00:53:21.360 --> 00:53:21.700
like I

00:53:21.700 --> 00:53:21.840
could

00:53:21.840 --> 00:53:22.020
do

00:53:22.020 --> 00:53:23.960
let's

00:53:23.960 --> 00:53:24.340
encrypt

00:53:24.340 --> 00:53:24.680
over

00:53:24.680 --> 00:53:25.560
and all

00:53:25.560 --> 00:53:25.840
that

00:53:25.840 --> 00:53:26.520
management

00:53:26.520 --> 00:53:26.860
stuff

00:53:26.860 --> 00:53:27.060
at the

00:53:27.060 --> 00:53:27.460
Nginx

00:53:27.460 --> 00:53:27.740
level

00:53:27.740 --> 00:53:28.180
yes

00:53:28.180 --> 00:53:28.740
exactly

00:53:28.740 --> 00:53:29.040
yeah

00:53:29.040 --> 00:53:29.420
this

00:53:29.420 --> 00:53:30.200
sounds

00:53:30.200 --> 00:53:30.360
good

00:53:30.360 --> 00:53:30.680
the reason

00:53:30.680 --> 00:53:31.040
I ask

00:53:31.040 --> 00:53:31.380
is I

00:53:31.380 --> 00:53:31.560
know

00:53:31.560 --> 00:53:31.880
there's a

00:53:31.880 --> 00:53:32.140
bunch of

00:53:32.140 --> 00:53:32.740
data scientists

00:53:32.740 --> 00:53:33.160
who don't

00:53:33.160 --> 00:53:33.520
want to do

00:53:33.520 --> 00:53:33.760
that

00:53:33.760 --> 00:53:34.780
but there's

00:53:34.780 --> 00:53:35.180
also

00:53:35.180 --> 00:53:36.300
people like

00:53:36.300 --> 00:53:36.660
me

00:53:36.660 --> 00:53:37.600
who are

00:53:37.600 --> 00:53:37.980
mostly

00:53:37.980 --> 00:53:38.440
programmers

00:53:38.440 --> 00:53:39.000
but have

00:53:39.000 --> 00:53:39.400
a business

00:53:39.400 --> 00:53:39.940
with a bunch

00:53:39.940 --> 00:53:40.480
of dashboards

00:53:40.480 --> 00:53:40.820
that might

00:53:40.820 --> 00:53:41.120
be cool

00:53:41.120 --> 00:53:41.500
to build

00:53:41.500 --> 00:53:42.840
and I've

00:53:42.840 --> 00:53:43.340
already got

00:53:43.340 --> 00:53:44.320
eight servers

00:53:44.320 --> 00:53:45.120
and a bunch

00:53:45.120 --> 00:53:45.400
of stuff

00:53:45.400 --> 00:53:45.720
I could

00:53:45.720 --> 00:53:46.560
easily host it

00:53:46.560 --> 00:53:46.900
on one of

00:53:46.900 --> 00:53:47.000
them

00:53:47.000 --> 00:53:48.160
so for me

00:53:48.160 --> 00:53:48.740
I could set

00:53:48.740 --> 00:53:49.060
it up

00:53:49.060 --> 00:53:49.760
and use it

00:53:49.760 --> 00:53:50.600
like I'm

00:53:50.600 --> 00:53:51.400
asking in a

00:53:51.400 --> 00:53:52.500
indirect but more

00:53:52.500 --> 00:53:53.040
broad sense

00:53:53.040 --> 00:53:53.700
like you know

00:53:53.700 --> 00:53:54.300
this is useful

00:53:54.300 --> 00:53:54.740
for people

00:53:54.740 --> 00:53:55.400
beyond just

00:53:55.400 --> 00:53:56.000
the traditional

00:53:56.000 --> 00:53:56.780
I want

00:53:56.780 --> 00:53:57.300
slightly more

00:53:57.300 --> 00:53:57.720
than Jupyter

00:53:57.720 --> 00:53:58.820
crowd right

00:53:58.820 --> 00:53:59.580
yes exactly

00:53:59.580 --> 00:54:00.900
we even

00:54:00.900 --> 00:54:01.800
think that it

00:54:01.800 --> 00:54:02.500
might be useful

00:54:02.500 --> 00:54:03.780
for maybe

00:54:03.780 --> 00:54:04.480
people like

00:54:04.480 --> 00:54:05.540
you who are

00:54:05.540 --> 00:54:06.160
more of a

00:54:06.160 --> 00:54:07.020
software engineer

00:54:07.020 --> 00:54:08.020
my boss

00:54:08.020 --> 00:54:09.100
likes to say

00:54:09.100 --> 00:54:10.100
that we would

00:54:10.100 --> 00:54:10.660
like to compete

00:54:10.660 --> 00:54:11.200
in Django

00:54:11.200 --> 00:54:12.840
although our

00:54:12.840 --> 00:54:13.920
it's not really

00:54:13.920 --> 00:54:15.220
direct competition

00:54:15.220 --> 00:54:16.160
let's say

00:54:16.160 --> 00:54:16.780
I would say

00:54:16.780 --> 00:54:17.980
because

00:54:17.980 --> 00:54:19.420
Django

00:54:19.420 --> 00:54:20.440
requires you

00:54:20.440 --> 00:54:20.960
to know

00:54:20.960 --> 00:54:21.460
HTML

00:54:21.460 --> 00:54:22.560
and CSS

00:54:22.560 --> 00:54:23.100
and JavaScript

00:54:23.100 --> 00:54:24.120
whereas we

00:54:24.120 --> 00:54:24.740
don't

00:54:24.740 --> 00:54:24.980
but

00:54:24.980 --> 00:54:25.820
at the

00:54:25.820 --> 00:54:26.940
people side

00:54:26.940 --> 00:54:27.960
we want to

00:54:27.960 --> 00:54:29.040
target also

00:54:29.040 --> 00:54:30.560
Python developers

00:54:30.560 --> 00:54:30.960
sure

00:54:30.960 --> 00:54:31.700
if you're

00:54:31.700 --> 00:54:32.240
doing pure

00:54:32.240 --> 00:54:32.860
HTML

00:54:32.860 --> 00:54:33.960
Django

00:54:33.960 --> 00:54:34.620
servers up

00:54:34.620 --> 00:54:35.520
you can start

00:54:35.520 --> 00:54:36.040
bringing in

00:54:36.040 --> 00:54:36.580
designers

00:54:36.580 --> 00:54:38.360
and front end

00:54:38.360 --> 00:54:38.860
people right

00:54:38.860 --> 00:54:39.260
there's like

00:54:39.260 --> 00:54:40.060
there's a

00:54:40.060 --> 00:54:40.900
different kind

00:54:40.900 --> 00:54:41.260
of app

00:54:41.260 --> 00:54:42.200
that often

00:54:42.200 --> 00:54:42.740
gets built

00:54:42.740 --> 00:54:43.420
but

00:54:43.420 --> 00:54:44.340
can be built

00:54:44.340 --> 00:54:45.060
but

00:54:45.060 --> 00:54:45.960
especially

00:54:45.960 --> 00:54:46.320
if you're

00:54:46.320 --> 00:54:46.780
talking about

00:54:46.780 --> 00:54:47.220
businesses

00:54:47.220 --> 00:54:48.780
80% of the

00:54:48.780 --> 00:54:49.300
apps that they

00:54:49.300 --> 00:54:49.960
actually build

00:54:49.960 --> 00:54:50.620
are just like

00:54:50.620 --> 00:54:51.640
forms over

00:54:51.640 --> 00:54:52.020
data

00:54:52.020 --> 00:54:52.900
I need to

00:54:52.900 --> 00:54:53.860
see what's in

00:54:53.860 --> 00:54:54.400
the database

00:54:54.400 --> 00:54:55.060
select a

00:54:55.060 --> 00:54:55.300
thing

00:54:55.300 --> 00:54:55.980
filter thing

00:54:55.980 --> 00:54:56.340
click

00:54:56.340 --> 00:54:57.480
do something

00:54:57.480 --> 00:54:57.940
to it

00:54:57.940 --> 00:54:58.320
and that's

00:54:58.320 --> 00:54:58.820
the entire

00:54:58.820 --> 00:54:59.440
app right

00:54:59.440 --> 00:55:00.160
and it

00:55:00.160 --> 00:55:00.800
sounds like

00:55:00.800 --> 00:55:01.520
these wave

00:55:01.520 --> 00:55:02.000
apps might

00:55:02.000 --> 00:55:02.720
be a good

00:55:02.720 --> 00:55:03.360
fit for

00:55:03.360 --> 00:55:04.380
it doesn't

00:55:04.380 --> 00:55:05.020
have to

00:55:05.020 --> 00:55:06.300
look like

00:55:06.300 --> 00:55:06.760
Airbnb

00:55:06.760 --> 00:55:07.820
landing page

00:55:07.820 --> 00:55:08.600
what it needs

00:55:08.600 --> 00:55:09.100
to do is

00:55:09.100 --> 00:55:10.080
show me this

00:55:10.080 --> 00:55:10.640
stuff and let

00:55:10.640 --> 00:55:11.200
people get to

00:55:11.200 --> 00:55:11.540
it quick

00:55:11.540 --> 00:55:12.180
and select

00:55:12.180 --> 00:55:12.880
them and make

00:55:12.880 --> 00:55:13.500
some actions

00:55:13.500 --> 00:55:14.320
real quickly

00:55:14.320 --> 00:55:15.100
right without

00:55:15.100 --> 00:55:16.180
spending weeks

00:55:16.180 --> 00:55:16.660
to do it

00:55:16.660 --> 00:55:17.140
exactly

00:55:17.140 --> 00:55:17.720
would it be good

00:55:17.720 --> 00:55:17.980
for those

00:55:17.980 --> 00:55:18.460
kind of apps

00:55:18.460 --> 00:55:19.080
definitely

00:55:19.080 --> 00:55:19.960
we also

00:55:19.960 --> 00:55:20.480
have

00:55:20.480 --> 00:55:21.420
sector stories

00:55:21.420 --> 00:55:22.240
related to

00:55:22.240 --> 00:55:22.820
that because

00:55:22.820 --> 00:55:23.680
we had some

00:55:23.680 --> 00:55:24.800
let's say

00:55:24.800 --> 00:55:25.700
product people

00:55:25.700 --> 00:55:26.700
with some

00:55:26.700 --> 00:55:27.740
engineering skills

00:55:27.740 --> 00:55:28.420
or with

00:55:28.420 --> 00:55:29.080
end skills

00:55:29.080 --> 00:55:29.840
they needed

00:55:29.840 --> 00:55:30.380
some

00:55:30.380 --> 00:55:31.060
let's say

00:55:31.060 --> 00:55:32.020
small internal

00:55:32.020 --> 00:55:32.820
app that

00:55:32.820 --> 00:55:33.440
would allow

00:55:33.440 --> 00:55:34.360
them for

00:55:34.360 --> 00:55:34.760
example

00:55:34.760 --> 00:55:35.760
to bring

00:55:35.760 --> 00:55:36.840
people to

00:55:36.840 --> 00:55:37.900
give trial

00:55:37.900 --> 00:55:38.480
access to

00:55:38.480 --> 00:55:38.920
people to

00:55:38.920 --> 00:55:39.660
our platform

00:55:39.660 --> 00:55:41.400
and this

00:55:41.400 --> 00:55:42.380
needed to be

00:55:42.380 --> 00:55:43.160
done by

00:55:43.160 --> 00:55:44.080
backend developers

00:55:44.080 --> 00:55:44.800
before because

00:55:44.800 --> 00:55:45.420
there was no

00:55:45.420 --> 00:55:46.080
infrastructure

00:55:46.080 --> 00:55:46.920
supporting it

00:55:46.920 --> 00:55:48.100
so one

00:55:48.100 --> 00:55:48.540
of our

00:55:48.540 --> 00:55:49.100
product

00:55:49.100 --> 00:55:49.720
managers

00:55:49.720 --> 00:55:51.380
went ahead

00:55:51.380 --> 00:55:52.620
and built

00:55:52.620 --> 00:55:52.940
a wave

00:55:52.940 --> 00:55:53.500
app that

00:55:53.500 --> 00:55:54.320
did exactly

00:55:54.320 --> 00:55:54.680
that

00:55:54.680 --> 00:55:56.380
listed all

00:55:56.380 --> 00:55:57.260
the pending

00:55:57.260 --> 00:55:58.920
trial users

00:55:58.920 --> 00:56:00.020
and allowed

00:56:00.020 --> 00:56:00.740
you to

00:56:00.740 --> 00:56:01.500
basically

00:56:01.500 --> 00:56:02.340
give them

00:56:02.340 --> 00:56:02.860
access

00:56:02.860 --> 00:56:03.720
and that's

00:56:03.720 --> 00:56:04.180
it right

00:56:04.180 --> 00:56:05.100
it's a very

00:56:05.100 --> 00:56:06.140
small application

00:56:06.140 --> 00:56:07.340
but it will

00:56:07.340 --> 00:56:07.780
build in

00:56:07.780 --> 00:56:08.780
no time

00:56:08.780 --> 00:56:09.620
with tremendous

00:56:09.620 --> 00:56:10.040
value

00:56:10.040 --> 00:56:10.340
yeah

00:56:10.340 --> 00:56:11.460
and you have

00:56:11.460 --> 00:56:11.980
all the widgets

00:56:11.980 --> 00:56:12.440
you need

00:56:12.440 --> 00:56:12.900
you've got

00:56:12.900 --> 00:56:13.400
buttons

00:56:13.400 --> 00:56:13.960
you can

00:56:13.960 --> 00:56:14.880
type in

00:56:14.880 --> 00:56:15.760
various things

00:56:15.760 --> 00:56:16.560
you can

00:56:16.560 --> 00:56:16.800
sort of

00:56:16.800 --> 00:56:17.160
build up

00:56:17.160 --> 00:56:17.360
this

00:56:17.360 --> 00:56:17.880
interaction

00:56:17.880 --> 00:56:18.260
right

00:56:18.260 --> 00:56:18.600
you've got

00:56:18.600 --> 00:56:19.400
dropdowns

00:56:19.400 --> 00:56:19.960
and search

00:56:19.960 --> 00:56:20.580
and the

00:56:20.580 --> 00:56:20.880
make it

00:56:20.880 --> 00:56:21.140
happen

00:56:21.140 --> 00:56:21.820
type of

00:56:21.820 --> 00:56:22.060
buttons

00:56:22.060 --> 00:56:22.440
do you have

00:56:22.440 --> 00:56:23.060
a grid

00:56:23.060 --> 00:56:23.640
yes

00:56:23.640 --> 00:56:24.280
it's called

00:56:24.280 --> 00:56:24.700
table

00:56:24.700 --> 00:56:25.560
if you will

00:56:25.560 --> 00:56:26.500
search for it

00:56:26.500 --> 00:56:26.960
and I have

00:56:26.960 --> 00:56:27.940
one of the

00:56:27.940 --> 00:56:28.680
I'll do the

00:56:28.680 --> 00:56:28.980
table

00:56:28.980 --> 00:56:29.640
search

00:56:29.640 --> 00:56:30.280
there you go

00:56:30.280 --> 00:56:30.600
yeah

00:56:30.600 --> 00:56:31.420
and basically

00:56:31.420 --> 00:56:32.080
this is one of

00:56:32.080 --> 00:56:32.640
the fundamental

00:56:32.640 --> 00:56:34.060
components for

00:56:34.060 --> 00:56:34.780
data scientists

00:56:34.780 --> 00:56:35.360
right because

00:56:35.360 --> 00:56:36.360
you want to

00:56:36.360 --> 00:56:37.420
showcase your

00:56:37.420 --> 00:56:38.140
data sets

00:56:38.140 --> 00:56:39.480
this is like

00:56:39.480 --> 00:56:39.920
the perfect

00:56:39.920 --> 00:56:40.920
component for it

00:56:40.920 --> 00:56:41.700
yeah

00:56:41.700 --> 00:56:42.580
even have

00:56:42.580 --> 00:56:43.040
little cool

00:56:43.040 --> 00:56:43.540
circular

00:56:43.540 --> 00:56:44.860
progress bars

00:56:44.860 --> 00:56:45.420
which is

00:56:45.420 --> 00:56:46.060
those are

00:56:46.060 --> 00:56:46.600
really nice

00:56:46.600 --> 00:56:47.180
looking widgets

00:56:47.180 --> 00:56:48.100
yeah very good

00:56:48.100 --> 00:56:48.620
and then I guess

00:56:48.620 --> 00:56:49.500
you even have

00:56:49.500 --> 00:56:51.160
it wasn't page

00:56:51.160 --> 00:56:51.720
it was filtering

00:56:51.720 --> 00:56:52.420
but yeah very

00:56:52.420 --> 00:56:53.160
very cool

00:56:53.160 --> 00:56:54.160
yes we support

00:56:54.160 --> 00:56:55.220
search filter

00:56:55.220 --> 00:56:55.740
sort

00:56:55.740 --> 00:56:56.820
even pagination

00:56:56.820 --> 00:56:57.520
if you want

00:56:57.520 --> 00:56:58.120
and have

00:56:58.120 --> 00:56:59.280
really a lot

00:56:59.280 --> 00:56:59.680
of data

00:56:59.680 --> 00:56:59.980
yeah

00:56:59.980 --> 00:57:01.320
we didn't even

00:57:01.320 --> 00:57:02.160
really get a chance

00:57:02.160 --> 00:57:03.580
to go through

00:57:03.580 --> 00:57:04.160
all the

00:57:04.160 --> 00:57:05.440
widgets

00:57:05.440 --> 00:57:06.820
but you've

00:57:06.820 --> 00:57:07.100
got

00:57:07.100 --> 00:57:08.520
most things

00:57:08.520 --> 00:57:09.180
I can imagine

00:57:09.180 --> 00:57:09.680
you want to

00:57:09.680 --> 00:57:10.300
use to build

00:57:10.300 --> 00:57:11.480
build an app

00:57:11.480 --> 00:57:12.000
you've got

00:57:12.000 --> 00:57:13.020
a color picker

00:57:13.020 --> 00:57:13.440
you've got

00:57:13.440 --> 00:57:14.160
choice groups

00:57:14.160 --> 00:57:14.860
like a radio

00:57:14.860 --> 00:57:15.220
button

00:57:15.220 --> 00:57:16.160
I'm presuming

00:57:16.160 --> 00:57:16.620
you've got

00:57:16.620 --> 00:57:17.060
images

00:57:17.060 --> 00:57:17.920
you've got

00:57:17.920 --> 00:57:19.020
file upload

00:57:19.020 --> 00:57:19.840
do you have

00:57:19.840 --> 00:57:20.720
a video player

00:57:20.720 --> 00:57:21.440
not yet

00:57:21.440 --> 00:57:23.000
but it should

00:57:23.000 --> 00:57:23.600
land soon

00:57:23.600 --> 00:57:24.360
because we are

00:57:24.360 --> 00:57:24.860
working on

00:57:24.860 --> 00:57:25.660
a video

00:57:25.660 --> 00:57:26.560
annotator

00:57:26.560 --> 00:57:27.120
component

00:57:27.120 --> 00:57:27.960
which would

00:57:27.960 --> 00:57:29.200
basically be

00:57:29.200 --> 00:57:30.020
also usable

00:57:30.020 --> 00:57:30.640
as a video

00:57:30.640 --> 00:57:30.960
player

00:57:30.960 --> 00:57:31.280
okay

00:57:31.280 --> 00:57:31.720
so you have

00:57:31.720 --> 00:57:32.640
a text

00:57:32.640 --> 00:57:33.560
annotator

00:57:33.560 --> 00:57:33.920
and this would

00:57:33.920 --> 00:57:34.780
be kind of

00:57:34.780 --> 00:57:35.200
same thing

00:57:35.200 --> 00:57:35.560
and also

00:57:35.560 --> 00:57:35.960
an image

00:57:35.960 --> 00:57:36.460
annotator

00:57:36.460 --> 00:57:37.680
that's on

00:57:37.680 --> 00:57:38.020
the ml

00:57:38.020 --> 00:57:38.340
side

00:57:38.340 --> 00:57:38.700
where you

00:57:38.700 --> 00:57:39.020
say

00:57:39.020 --> 00:57:39.780
here's the

00:57:39.780 --> 00:57:39.920
thing

00:57:39.920 --> 00:57:40.160
I'm going

00:57:40.160 --> 00:57:40.400
to feed

00:57:40.400 --> 00:57:40.920
my model

00:57:40.920 --> 00:57:41.960
tell it

00:57:41.960 --> 00:57:42.380
that this

00:57:42.380 --> 00:57:42.740
is a

00:57:42.740 --> 00:57:43.160
person

00:57:43.160 --> 00:57:44.300
and that

00:57:44.300 --> 00:57:44.540
is a

00:57:44.540 --> 00:57:44.840
cat

00:57:44.840 --> 00:57:45.520
don't let

00:57:45.520 --> 00:57:45.800
it think

00:57:45.800 --> 00:57:46.140
the cat

00:57:46.140 --> 00:57:46.380
is a

00:57:46.380 --> 00:57:46.660
person

00:57:46.660 --> 00:57:46.920
or

00:57:46.920 --> 00:57:47.500
whatever

00:57:47.500 --> 00:57:47.960
right

00:57:47.960 --> 00:57:48.560
yes

00:57:48.560 --> 00:57:49.020
exactly

00:57:49.020 --> 00:57:49.400
okay

00:57:49.400 --> 00:57:49.920
yeah

00:57:49.920 --> 00:57:50.140
cool

00:57:50.140 --> 00:57:50.500
so

00:57:50.500 --> 00:57:50.980
you'll

00:57:50.980 --> 00:57:51.140
probably

00:57:51.140 --> 00:57:51.260
have

00:57:51.260 --> 00:57:51.380
the

00:57:51.380 --> 00:57:51.580
video

00:57:51.580 --> 00:57:51.860
player

00:57:51.860 --> 00:57:52.540
as a

00:57:52.540 --> 00:57:52.960
building

00:57:52.960 --> 00:57:53.280
block

00:57:53.280 --> 00:57:53.500
there

00:57:53.500 --> 00:57:53.720
right

00:57:53.720 --> 00:57:54.180
yes

00:57:54.180 --> 00:57:54.360
that

00:57:54.360 --> 00:57:54.520
sounds

00:57:54.520 --> 00:57:54.800
fun

00:57:54.800 --> 00:57:55.800
okay

00:57:55.800 --> 00:57:56.120
any

00:57:56.120 --> 00:57:56.360
other

00:57:56.360 --> 00:57:56.700
widgets

00:57:56.700 --> 00:57:56.980
you want

00:57:56.980 --> 00:57:57.180
to give

00:57:57.180 --> 00:57:57.560
a quick

00:57:57.560 --> 00:57:58.400
shout out

00:57:58.400 --> 00:57:58.620
to

00:57:58.620 --> 00:57:59.180
I said

00:57:59.180 --> 00:57:59.320
there

00:57:59.320 --> 00:57:59.520
I mean

00:57:59.520 --> 00:57:59.720
there's

00:57:59.720 --> 00:58:00.080
a whole

00:58:00.080 --> 00:58:00.420
host

00:58:00.420 --> 00:58:00.580
of

00:58:00.580 --> 00:58:01.020
plotting

00:58:01.020 --> 00:58:01.560
I guess

00:58:01.560 --> 00:58:01.920
also

00:58:01.920 --> 00:58:02.320
you can

00:58:02.320 --> 00:58:02.660
integrate

00:58:02.660 --> 00:58:02.860
with

00:58:02.860 --> 00:58:03.080
things

00:58:03.080 --> 00:58:03.300
like

00:58:03.300 --> 00:58:03.900
Altair

00:58:03.900 --> 00:58:04.240
and

00:58:04.240 --> 00:58:04.680
plotly

00:58:04.680 --> 00:58:04.820
and

00:58:04.820 --> 00:58:05.360
matplotlib

00:58:05.360 --> 00:58:05.660
you don't

00:58:05.660 --> 00:58:05.900
have to

00:58:05.900 --> 00:58:06.100
stick

00:58:06.100 --> 00:58:06.260
with

00:58:06.260 --> 00:58:06.440
just

00:58:06.440 --> 00:58:06.640
your

00:58:06.640 --> 00:58:06.960
widgets

00:58:06.960 --> 00:58:07.420
yes

00:58:07.420 --> 00:58:07.660
and

00:58:07.660 --> 00:58:08.080
if

00:58:08.080 --> 00:58:08.480
anyone

00:58:08.480 --> 00:58:09.340
go to

00:58:09.340 --> 00:58:09.660
overlay

00:58:09.660 --> 00:58:10.080
sections

00:58:10.080 --> 00:58:10.940
and we have

00:58:10.940 --> 00:58:11.560
things like

00:58:11.560 --> 00:58:12.080
dialogue

00:58:12.080 --> 00:58:13.980
sidebars

00:58:13.980 --> 00:58:14.460
etc

00:58:14.460 --> 00:58:15.080
notification

00:58:15.080 --> 00:58:15.760
bars

00:58:15.760 --> 00:58:16.580
whatever

00:58:16.580 --> 00:58:17.040
you can

00:58:17.040 --> 00:58:17.380
think of

00:58:17.380 --> 00:58:17.920
if

00:58:17.920 --> 00:58:18.220
there

00:58:18.220 --> 00:58:18.420
is

00:58:18.420 --> 00:58:18.760
something

00:58:18.760 --> 00:58:19.080
that

00:58:19.080 --> 00:58:19.540
you

00:58:19.540 --> 00:58:19.980
need

00:58:19.980 --> 00:58:20.260
and

00:58:20.260 --> 00:58:20.500
it

00:58:20.500 --> 00:58:20.600
is

00:58:20.600 --> 00:58:20.740
not

00:58:20.740 --> 00:58:21.020
there

00:58:21.020 --> 00:58:21.220
you

00:58:21.220 --> 00:58:21.440
can

00:58:21.440 --> 00:58:21.780
always

00:58:21.780 --> 00:58:22.080
file

00:58:22.080 --> 00:58:22.340
a

00:58:22.340 --> 00:58:22.560
feature

00:58:22.560 --> 00:58:23.000
request

00:58:23.000 --> 00:58:23.260
yep

00:58:23.260 --> 00:58:23.540
and

00:58:23.540 --> 00:58:23.960
that'll

00:58:23.960 --> 00:58:24.160
land

00:58:24.160 --> 00:58:24.320
on

00:58:24.320 --> 00:58:24.440
your

00:58:24.440 --> 00:58:24.800
desk

00:58:24.800 --> 00:58:25.800
or

00:58:25.800 --> 00:58:25.920
on

00:58:25.920 --> 00:58:26.060
your

00:58:26.060 --> 00:58:26.340
screen

00:58:26.340 --> 00:58:27.880
you'll

00:58:27.880 --> 00:58:28.100
think

00:58:28.100 --> 00:58:28.280
about

00:58:28.280 --> 00:58:28.400
it

00:58:28.400 --> 00:58:28.640
perfect

00:58:28.640 --> 00:58:29.640
well

00:58:29.640 --> 00:58:29.920
it

00:58:29.920 --> 00:58:30.200
certainly

00:58:30.200 --> 00:58:30.640
looks like

00:58:30.640 --> 00:58:31.040
a capable

00:58:31.040 --> 00:58:31.580
platform

00:58:31.580 --> 00:58:32.340
and

00:58:32.340 --> 00:58:32.860
ability

00:58:32.860 --> 00:58:33.140
to take

00:58:33.140 --> 00:58:33.260
it

00:58:33.260 --> 00:58:33.360
and

00:58:33.360 --> 00:58:33.500
just

00:58:33.500 --> 00:58:33.700
go

00:58:33.700 --> 00:58:33.980
run

00:58:33.980 --> 00:58:34.120
with

00:58:34.120 --> 00:58:34.220
it

00:58:34.220 --> 00:58:34.300
and

00:58:34.300 --> 00:58:34.580
deploy

00:58:34.580 --> 00:58:34.780
it

00:58:34.780 --> 00:58:35.200
pretty

00:58:35.200 --> 00:58:35.560
excellent

00:58:35.560 --> 00:58:35.820
and

00:58:35.820 --> 00:58:36.020
if

00:58:36.020 --> 00:58:36.680
people

00:58:36.680 --> 00:58:36.880
out

00:58:36.880 --> 00:58:37.000
there

00:58:37.000 --> 00:58:37.100
and

00:58:37.100 --> 00:58:37.200
they

00:58:37.200 --> 00:58:37.420
don't

00:58:37.420 --> 00:58:37.560
want

00:58:37.560 --> 00:58:37.640
to

00:58:37.640 --> 00:58:37.940
deploy

00:58:37.940 --> 00:58:38.140
it

00:58:38.140 --> 00:58:38.660
then

00:58:38.660 --> 00:58:38.760
you

00:58:38.760 --> 00:58:38.980
have

00:58:38.980 --> 00:58:39.100
a

00:58:39.100 --> 00:58:39.320
business

00:58:39.320 --> 00:58:39.520
for

00:58:39.520 --> 00:58:39.700
them

00:58:39.700 --> 00:58:40.240
business

00:58:40.240 --> 00:58:41.020
offering

00:58:41.020 --> 00:58:41.460
yes

00:58:41.460 --> 00:58:42.720
yeah

00:58:42.720 --> 00:58:43.180
very cool

00:58:43.180 --> 00:58:43.940
all right

00:58:43.940 --> 00:58:44.600
real quickly

00:58:44.600 --> 00:58:45.340
because

00:58:45.340 --> 00:58:46.080
like I said

00:58:46.080 --> 00:58:46.340
we're getting

00:58:46.340 --> 00:58:46.980
short on time

00:58:46.980 --> 00:58:47.920
two things

00:58:47.920 --> 00:58:49.140
let me pull up

00:58:49.140 --> 00:58:49.640
the actual

00:58:49.640 --> 00:58:50.500
app here

00:58:50.500 --> 00:58:50.860
so

00:58:50.860 --> 00:58:51.620
you have

00:58:51.620 --> 00:58:52.340
themes

00:58:52.340 --> 00:58:53.200
right

00:58:53.200 --> 00:58:53.440
if

00:58:53.440 --> 00:58:53.820
you

00:58:53.820 --> 00:58:54.420
it's like

00:58:54.420 --> 00:58:54.940
five or six

00:58:54.940 --> 00:58:55.760
different ways

00:58:55.760 --> 00:58:56.160
in which

00:58:56.160 --> 00:58:56.920
your site

00:58:56.920 --> 00:58:57.400
can look

00:58:57.400 --> 00:58:57.720
and you can

00:58:57.720 --> 00:58:58.240
just apply

00:58:58.240 --> 00:58:58.680
a theme

00:58:58.680 --> 00:58:59.060
or you can

00:58:59.060 --> 00:58:59.220
create

00:58:59.220 --> 00:59:00.020
custom themes

00:59:00.020 --> 00:59:00.820
or if

00:59:00.820 --> 00:59:01.000
you want

00:59:01.000 --> 00:59:01.180
to go

00:59:01.180 --> 00:59:01.540
crazy

00:59:01.540 --> 00:59:02.220
you can

00:59:02.220 --> 00:59:02.600
actually

00:59:02.600 --> 00:59:03.180
include

00:59:03.180 --> 00:59:03.660
custom

00:59:03.660 --> 00:59:04.060
CSS

00:59:04.060 --> 00:59:04.620
right

00:59:04.620 --> 00:59:05.180
yes

00:59:05.180 --> 00:59:05.600
but

00:59:05.600 --> 00:59:06.580
you

00:59:06.580 --> 00:59:07.420
probably

00:59:07.420 --> 00:59:08.320
most likely

00:59:08.320 --> 00:59:08.820
don't want

00:59:08.820 --> 00:59:09.060
to do

00:59:09.060 --> 00:59:09.260
that

00:59:09.260 --> 00:59:09.480
but

00:59:09.480 --> 00:59:09.800
if

00:59:09.800 --> 00:59:09.900
you

00:59:09.900 --> 00:59:10.140
want

00:59:10.140 --> 00:59:10.300
to

00:59:10.300 --> 00:59:10.700
you

00:59:10.700 --> 00:59:10.880
are

00:59:10.880 --> 00:59:11.200
free

00:59:11.200 --> 00:59:11.340
to

00:59:11.340 --> 00:59:11.560
go

00:59:11.560 --> 00:59:12.960
okay

00:59:12.960 --> 00:59:13.240
yeah

00:59:13.240 --> 00:59:13.500
there's

00:59:13.500 --> 00:59:13.800
a way

00:59:13.800 --> 00:59:13.980
to

00:59:13.980 --> 00:59:14.240
create

00:59:14.240 --> 00:59:14.460
a

00:59:14.460 --> 00:59:14.920
UI

00:59:14.920 --> 00:59:15.240
widget

00:59:15.240 --> 00:59:15.500
that

00:59:15.500 --> 00:59:15.720
is

00:59:15.720 --> 00:59:16.300
a

00:59:16.300 --> 00:59:16.560
meta

00:59:16.560 --> 00:59:17.680
element

00:59:17.680 --> 00:59:17.940
where

00:59:17.940 --> 00:59:18.060
you

00:59:18.060 --> 00:59:18.220
can

00:59:18.220 --> 00:59:18.440
say

00:59:18.440 --> 00:59:18.800
include

00:59:18.800 --> 00:59:19.040
this

00:59:19.040 --> 00:59:19.440
JavaScript

00:59:19.440 --> 00:59:19.780
either

00:59:19.780 --> 00:59:19.960
off

00:59:19.960 --> 00:59:20.120
your

00:59:20.120 --> 00:59:20.420
server

00:59:20.420 --> 00:59:20.720
or

00:59:20.720 --> 00:59:21.580
CDN

00:59:21.580 --> 00:59:22.720
or CSS

00:59:22.720 --> 00:59:23.380
yeah

00:59:23.380 --> 00:59:24.440
and also

00:59:24.440 --> 00:59:24.900
the other

00:59:24.900 --> 00:59:25.340
question

00:59:25.340 --> 00:59:25.780
the other thing

00:59:25.780 --> 00:59:26.380
I want to touch on

00:59:26.380 --> 00:59:26.580
is

00:59:26.580 --> 00:59:27.160
JavaScript

00:59:27.160 --> 00:59:27.680
support

00:59:27.680 --> 00:59:27.980
yes

00:59:27.980 --> 00:59:28.440
so

00:59:28.440 --> 00:59:28.980
basically

00:59:28.980 --> 00:59:29.820
we support

00:59:29.820 --> 00:59:30.900
arbitrary

00:59:30.900 --> 00:59:31.320
JavaScript

00:59:31.320 --> 00:59:31.980
as well

00:59:31.980 --> 00:59:32.960
you just include

00:59:32.960 --> 00:59:33.780
your script

00:59:33.780 --> 00:59:34.600
as if you

00:59:34.600 --> 00:59:35.480
did in

00:59:35.480 --> 00:59:36.300
let's say

00:59:36.300 --> 00:59:36.740
Django

00:59:36.740 --> 00:59:37.260
or

00:59:37.260 --> 00:59:37.820
whatever

00:59:37.820 --> 00:59:38.480
other

00:59:38.480 --> 00:59:39.100
other

00:59:39.100 --> 00:59:39.740
server-side

00:59:39.740 --> 00:59:40.260
frameworks

00:59:40.260 --> 00:59:41.340
you are

00:59:41.340 --> 00:59:41.620
good to

00:59:41.620 --> 00:59:41.840
go

00:59:41.840 --> 00:59:42.440
the

00:59:42.440 --> 00:59:43.180
example

00:59:43.180 --> 00:59:43.480
should

00:59:43.480 --> 00:59:43.860
be

00:59:43.860 --> 00:59:44.500
called

00:59:44.500 --> 00:59:45.180
inline

00:59:45.180 --> 00:59:45.600
script

00:59:45.600 --> 00:59:45.860
or

00:59:45.860 --> 00:59:46.480
script

00:59:46.480 --> 00:59:47.040
if you

00:59:47.040 --> 00:59:47.680
whatever

00:59:47.680 --> 00:59:48.200
you wish

00:59:48.200 --> 00:59:48.740
there we go

00:59:48.740 --> 00:59:49.060
how about

00:59:49.060 --> 00:59:49.420
this one

00:59:49.420 --> 00:59:49.760
yeah so

00:59:49.760 --> 00:59:50.040
what's

00:59:50.040 --> 00:59:50.360
interesting

00:59:50.360 --> 00:59:50.820
is there's

00:59:50.820 --> 00:59:51.120
a way

00:59:51.120 --> 00:59:51.560
to set

00:59:51.560 --> 00:59:51.820
up

00:59:51.820 --> 00:59:52.100
in

00:59:52.100 --> 00:59:52.480
JavaScript

00:59:52.480 --> 00:59:53.180
to push

00:59:53.180 --> 00:59:53.540
back

00:59:53.540 --> 00:59:54.200
into

00:59:54.200 --> 00:59:54.780
the

00:59:54.780 --> 00:59:55.060
wave

00:59:55.060 --> 00:59:55.400
app

00:59:55.400 --> 00:59:56.180
and trigger

00:59:56.180 --> 00:59:56.500
that

00:59:56.500 --> 00:59:57.120
that

00:59:57.120 --> 00:59:57.560
function

00:59:57.560 --> 00:59:58.180
to run

00:59:58.180 --> 00:59:58.540
with new

00:59:58.540 --> 00:59:58.980
arguments

00:59:58.980 --> 00:59:59.260
right

00:59:59.260 --> 00:59:59.660
yeah

00:59:59.660 --> 01:00:00.200
exactly

01:00:00.200 --> 01:00:00.720
so

01:00:00.720 --> 01:00:01.100
that's

01:00:01.100 --> 01:00:01.620
how you

01:00:01.620 --> 01:00:01.900
can

01:00:01.900 --> 01:00:02.520
basically

01:00:02.520 --> 01:00:03.260
reach

01:00:03.260 --> 01:00:03.600
the gap

01:00:03.600 --> 01:00:03.980
between

01:00:03.980 --> 01:00:04.340
JavaScript

01:00:04.340 --> 01:00:04.660
and

01:00:04.660 --> 01:00:05.000
Python

01:00:05.000 --> 01:00:06.260
you can

01:00:06.260 --> 01:00:06.500
send

01:00:06.500 --> 01:00:06.960
your data

01:00:06.960 --> 01:00:07.320
back to

01:00:07.320 --> 01:00:07.600
Python

01:00:07.600 --> 01:00:07.960
yeah so

01:00:07.960 --> 01:00:08.240
you just

01:00:08.240 --> 01:00:08.440
say

01:00:08.440 --> 01:00:08.720
in

01:00:08.720 --> 01:00:09.120
JavaScript

01:00:09.120 --> 01:00:09.960
you just

01:00:09.960 --> 01:00:10.140
say

01:00:10.140 --> 01:00:11.080
wave.emit

01:00:11.080 --> 01:00:11.700
and the

01:00:11.700 --> 01:00:12.140
event

01:00:12.140 --> 01:00:13.140
and then

01:00:13.140 --> 01:00:13.900
you know

01:00:13.900 --> 01:00:14.360
arguments

01:00:14.360 --> 01:00:14.780
basically

01:00:14.780 --> 01:00:15.080
right

01:00:15.080 --> 01:00:15.480
exactly

01:00:15.480 --> 01:00:16.020
okay

01:00:16.020 --> 01:00:16.760
it's always

01:00:16.760 --> 01:00:17.200
nice to have

01:00:17.200 --> 01:00:17.780
these escape

01:00:17.780 --> 01:00:18.300
hatches

01:00:18.300 --> 01:00:19.100
you know

01:00:19.100 --> 01:00:20.240
like it's

01:00:20.240 --> 01:00:21.260
it's 85%

01:00:21.260 --> 01:00:21.660
of what I

01:00:21.660 --> 01:00:22.000
need I

01:00:22.000 --> 01:00:22.560
just need a

01:00:22.560 --> 01:00:23.020
little bit

01:00:23.020 --> 01:00:24.020
something different

01:00:24.020 --> 01:00:24.740
here and if I

01:00:24.740 --> 01:00:25.360
could just put

01:00:25.360 --> 01:00:26.080
two lines of

01:00:26.080 --> 01:00:26.660
JavaScript I

01:00:26.660 --> 01:00:27.160
know I could

01:00:27.160 --> 01:00:27.860
get there or I

01:00:27.860 --> 01:00:28.400
need to style

01:00:28.400 --> 01:00:29.260
this just a

01:00:29.260 --> 01:00:29.600
little bit

01:00:29.600 --> 01:00:29.980
differently

01:00:29.980 --> 01:00:30.840
exactly

01:00:30.840 --> 01:00:31.700
cool

01:00:31.700 --> 01:00:32.440
all right

01:00:32.440 --> 01:00:32.700
Martin

01:00:32.700 --> 01:00:33.520
well very

01:00:33.520 --> 01:00:34.080
cool project

01:00:34.080 --> 01:00:34.620
that you're

01:00:34.620 --> 01:00:34.960
working on

01:00:34.960 --> 01:00:35.280
here

01:00:35.280 --> 01:00:36.420
congrats on

01:00:36.420 --> 01:00:37.100
getting it

01:00:37.100 --> 01:00:37.360
out there

01:00:37.360 --> 01:00:37.760
it looks like

01:00:37.760 --> 01:00:38.480
it's pretty

01:00:38.480 --> 01:00:38.860
popular

01:00:38.860 --> 01:00:39.640
people are

01:00:39.640 --> 01:00:40.040
definitely

01:00:40.040 --> 01:00:40.580
digging it

01:00:40.580 --> 01:00:41.680
and also I

01:00:41.680 --> 01:00:42.220
love the

01:00:42.220 --> 01:00:42.840
command K

01:00:42.840 --> 01:00:44.740
stuff that

01:00:44.740 --> 01:00:45.160
you have

01:00:45.160 --> 01:00:45.480
here

01:00:45.480 --> 01:00:47.780
on your

01:00:47.780 --> 01:00:48.340
homepage where

01:00:48.340 --> 01:00:48.700
you can just

01:00:48.700 --> 01:00:49.100
instantly

01:00:49.100 --> 01:00:50.580
jump in and

01:00:50.580 --> 01:00:51.120
like search

01:00:51.120 --> 01:00:51.480
around that

01:00:51.480 --> 01:00:51.920
that's pretty

01:00:51.920 --> 01:00:52.200
cool

01:00:52.200 --> 01:00:53.500
but 3000

01:00:53.500 --> 01:00:54.180
GitHub stars

01:00:54.180 --> 01:00:56.080
looks like a

01:00:56.080 --> 01:00:56.680
cool framework

01:00:56.680 --> 01:00:58.120
not exactly a

01:00:58.120 --> 01:00:59.320
direct head-to-head

01:00:59.320 --> 01:01:00.120
competitor Django

01:01:00.120 --> 01:01:01.020
and Flask but

01:01:01.020 --> 01:01:01.800
not that far off

01:01:01.800 --> 01:01:02.240
either right

01:01:02.240 --> 01:01:02.640
not the

01:01:02.640 --> 01:01:03.040
end map

01:01:03.040 --> 01:01:04.060
let's hold it

01:01:04.060 --> 01:01:04.480
one day

01:01:04.480 --> 01:01:05.740
give it a year

01:01:05.740 --> 01:01:05.980
or two

01:01:05.980 --> 01:01:06.900
okay cool

01:01:06.900 --> 01:01:07.640
I love it

01:01:07.640 --> 01:01:07.840
yeah

01:01:07.840 --> 01:01:08.220
all right

01:01:08.220 --> 01:01:08.620
now before

01:01:08.620 --> 01:01:08.980
you get out

01:01:08.980 --> 01:01:09.180
of here

01:01:09.180 --> 01:01:09.560
got the

01:01:09.560 --> 01:01:09.960
final two

01:01:09.960 --> 01:01:10.540
questions for

01:01:10.540 --> 01:01:11.000
you if we're

01:01:11.000 --> 01:01:11.300
going to write

01:01:11.300 --> 01:01:11.740
some code

01:01:11.740 --> 01:01:12.280
what editor

01:01:12.280 --> 01:01:12.960
do you use

01:01:12.960 --> 01:01:13.760
I prefer

01:01:13.760 --> 01:01:14.640
VS Code

01:01:14.640 --> 01:01:16.020
the wonderful

01:01:16.020 --> 01:01:17.100
VIM extension

01:01:17.100 --> 01:01:18.220
I cannot live

01:01:18.220 --> 01:01:18.700
without it

01:01:18.700 --> 01:01:19.120
anymore

01:01:19.120 --> 01:01:20.920
however I

01:01:20.920 --> 01:01:21.860
do think that

01:01:21.860 --> 01:01:23.000
the PyCharm has

01:01:23.000 --> 01:01:23.980
much better

01:01:23.980 --> 01:01:24.840
language support

01:01:24.840 --> 01:01:26.200
I prefer VS Code

01:01:26.200 --> 01:01:26.940
because I need to

01:01:26.940 --> 01:01:27.520
jump between

01:01:27.520 --> 01:01:28.600
multiple languages

01:01:28.600 --> 01:01:29.500
cool got it

01:01:29.500 --> 01:01:30.660
and I'm sure

01:01:30.660 --> 01:01:31.300
that you run

01:01:31.300 --> 01:01:32.160
the wave

01:01:32.160 --> 01:01:33.180
extension or

01:01:33.180 --> 01:01:33.540
plugin

01:01:33.540 --> 01:01:35.300
there's all

01:01:35.300 --> 01:01:35.560
right

01:01:35.560 --> 01:01:36.480
yes of course

01:01:36.480 --> 01:01:36.980
of course

01:01:36.980 --> 01:01:37.520
and the

01:01:37.520 --> 01:01:37.900
notable

01:01:37.900 --> 01:01:39.080
PyPI package

01:01:39.080 --> 01:01:40.060
something you

01:01:40.060 --> 01:01:40.860
find interesting

01:01:40.860 --> 01:01:41.520
or you want to

01:01:41.520 --> 01:01:41.880
recommend

01:01:41.880 --> 01:01:42.680
there are many

01:01:42.680 --> 01:01:43.680
of course

01:01:43.680 --> 01:01:44.660
but maybe

01:01:44.660 --> 01:01:45.780
one that I

01:01:45.780 --> 01:01:46.360
would like

01:01:46.360 --> 01:01:47.120
to give a

01:01:47.120 --> 01:01:47.740
shout out to

01:01:47.740 --> 01:01:48.040
is

01:01:48.040 --> 01:01:48.820
planerite

01:01:48.820 --> 01:01:50.400
and basically

01:01:50.400 --> 01:01:51.180
end-to-end

01:01:51.180 --> 01:01:51.780
testing

01:01:51.780 --> 01:01:52.920
framework

01:01:52.920 --> 01:01:53.900
nothing like

01:01:53.900 --> 01:01:54.420
Cypress

01:01:54.420 --> 01:01:55.720
I found that

01:01:55.720 --> 01:01:56.760
it can be

01:01:56.760 --> 01:01:57.580
used for much

01:01:57.580 --> 01:01:58.380
more than just

01:01:58.380 --> 01:01:58.780
end-to-end

01:01:58.780 --> 01:01:59.220
testing

01:01:59.220 --> 01:02:00.140
we use it

01:02:00.140 --> 01:02:01.080
for visual

01:02:01.080 --> 01:02:01.600
regression

01:02:01.600 --> 01:02:02.200
testing

01:02:02.200 --> 01:02:02.820
we use it

01:02:02.820 --> 01:02:03.760
for generating

01:02:03.760 --> 01:02:04.680
our imagery

01:02:04.680 --> 01:02:06.360
into documentation

01:02:06.360 --> 01:02:07.540
and I have

01:02:07.540 --> 01:02:08.860
even done

01:02:08.860 --> 01:02:09.840
a lot of

01:02:09.840 --> 01:02:10.080
tests

01:02:10.080 --> 01:02:11.720
using that

01:02:11.720 --> 01:02:12.240
as well

01:02:12.240 --> 01:02:13.300
so it's

01:02:13.300 --> 01:02:14.320
pretty versatile

01:02:14.320 --> 01:02:15.060
tool

01:02:15.060 --> 01:02:15.760
it's like the

01:02:15.760 --> 01:02:16.460
new Selenium

01:02:16.460 --> 01:02:17.580
sort of

01:02:17.580 --> 01:02:18.060
exactly

01:02:18.060 --> 01:02:18.560
yeah

01:02:18.560 --> 01:02:19.740
I did interview

01:02:19.740 --> 01:02:20.540
Andy Knight

01:02:20.540 --> 01:02:21.360
three four months

01:02:21.360 --> 01:02:22.320
ago about this

01:02:22.320 --> 01:02:23.220
playwright is really

01:02:23.220 --> 01:02:23.820
neat it's

01:02:23.820 --> 01:02:24.880
I had to do

01:02:24.880 --> 01:02:25.940
visual testing

01:02:25.940 --> 01:02:26.740
or testing

01:02:26.740 --> 01:02:27.220
where I kind of

01:02:27.220 --> 01:02:28.140
interact with the UI

01:02:28.140 --> 01:02:29.260
definitely what I

01:02:29.260 --> 01:02:29.720
would pick these

01:02:29.720 --> 01:02:29.940
days

01:02:29.940 --> 01:02:30.320
yeah

01:02:30.320 --> 01:02:30.740
excellent

01:02:30.740 --> 01:02:31.840
all right

01:02:31.840 --> 01:02:33.500
final call

01:02:33.500 --> 01:02:33.800
action

01:02:33.800 --> 01:02:34.400
people want to

01:02:34.400 --> 01:02:34.840
get started

01:02:34.840 --> 01:02:36.000
with wave

01:02:36.000 --> 01:02:36.600
what do they do

01:02:36.600 --> 01:02:37.200
either go

01:02:37.200 --> 01:02:38.420
to our docs

01:02:38.420 --> 01:02:39.320
which is wave

01:02:39.320 --> 01:02:39.980
that they stole

01:02:39.980 --> 01:02:40.480
that AI

01:02:40.480 --> 01:02:41.840
or they can

01:02:41.840 --> 01:02:43.720
turn on our

01:02:43.720 --> 01:02:44.620
GitHub repository

01:02:44.620 --> 01:02:45.920
and they will

01:02:45.920 --> 01:02:46.680
find their way

01:02:46.680 --> 01:02:47.800
there I believe

01:02:47.800 --> 01:02:48.580
and maybe

01:02:48.580 --> 01:02:50.120
just a quick

01:02:50.120 --> 01:02:50.600
note

01:02:50.600 --> 01:02:51.400
we are

01:02:51.400 --> 01:02:52.380
participating

01:02:52.380 --> 01:02:53.320
in Hectoberfest

01:02:53.320 --> 01:02:54.080
so if you feel

01:02:54.080 --> 01:02:54.600
like you would

01:02:54.600 --> 01:02:54.920
like to

01:02:54.920 --> 01:02:56.000
contribute to

01:02:56.000 --> 01:02:56.640
open source

01:02:56.640 --> 01:02:57.800
then you are

01:02:57.800 --> 01:02:58.480
more than welcome

01:02:58.480 --> 01:02:58.940
nice

01:02:58.940 --> 01:02:59.640
okay

01:02:59.640 --> 01:03:00.800
I'm sure a lot

01:03:00.800 --> 01:03:01.220
people are

01:03:01.220 --> 01:03:01.840
familiar with

01:03:01.840 --> 01:03:02.520
Hectoberfest

01:03:02.520 --> 01:03:02.940
but maybe

01:03:02.940 --> 01:03:03.940
some aren't

01:03:03.940 --> 01:03:04.780
what's the

01:03:04.780 --> 01:03:05.220
story there

01:03:05.220 --> 01:03:05.700
so basically

01:03:05.700 --> 01:03:06.560
Hectoberfest

01:03:06.560 --> 01:03:07.560
is a month

01:03:07.560 --> 01:03:07.960
long

01:03:07.960 --> 01:03:08.880
celebration

01:03:08.880 --> 01:03:09.700
of open

01:03:09.700 --> 01:03:10.160
source

01:03:10.160 --> 01:03:11.260
and it

01:03:11.260 --> 01:03:11.920
encourages

01:03:11.920 --> 01:03:12.820
people to

01:03:12.820 --> 01:03:13.700
contribute back

01:03:13.700 --> 01:03:14.580
open source

01:03:14.580 --> 01:03:15.600
and if they

01:03:15.600 --> 01:03:16.720
do for

01:03:16.720 --> 01:03:18.540
valid pull

01:03:18.540 --> 01:03:18.920
request

01:03:18.920 --> 01:03:19.900
then they might

01:03:19.900 --> 01:03:20.440
be eligible

01:03:20.440 --> 01:03:21.900
for swag

01:03:21.900 --> 01:03:22.840
or t-shirt

01:03:22.840 --> 01:03:23.140
cool

01:03:23.140 --> 01:03:23.880
and it is

01:03:23.880 --> 01:03:24.260
October

01:03:24.260 --> 01:03:25.140
recording on

01:03:25.140 --> 01:03:25.920
October 3rd

01:03:25.920 --> 01:03:26.840
so awesome

01:03:26.840 --> 01:03:27.480
get out there

01:03:27.480 --> 01:03:28.700
and be part

01:03:28.700 --> 01:03:28.880
of it

01:03:28.880 --> 01:03:29.200
that sounds

01:03:29.200 --> 01:03:29.480
fun

01:03:29.480 --> 01:03:30.520
well

01:03:30.520 --> 01:03:31.060
wave sounds

01:03:31.060 --> 01:03:31.460
like a really

01:03:31.460 --> 01:03:31.940
cool framework

01:03:31.940 --> 01:03:32.440
we have so

01:03:32.440 --> 01:03:33.100
many choices

01:03:33.100 --> 01:03:34.540
and I love

01:03:34.540 --> 01:03:34.980
that it takes

01:03:34.980 --> 01:03:35.480
advantage of

01:03:35.480 --> 01:03:35.880
some of these

01:03:35.880 --> 01:03:36.580
modern python

01:03:36.580 --> 01:03:37.440
ideas like

01:03:37.440 --> 01:03:38.240
async and await

01:03:38.240 --> 01:03:39.420
whatever else

01:03:39.420 --> 01:03:39.720
you want to

01:03:39.720 --> 01:03:40.140
bring into

01:03:40.140 --> 01:03:40.300
it

01:03:40.300 --> 01:03:40.500
so

01:03:40.500 --> 01:03:41.380
very cool

01:03:41.380 --> 01:03:41.640
work

01:03:41.640 --> 01:03:42.080
thanks for

01:03:42.080 --> 01:03:42.300
being on

01:03:42.300 --> 01:03:42.480
the show

01:03:42.480 --> 01:03:42.740
to share

01:03:42.740 --> 01:03:43.060
it with us

01:03:43.060 --> 01:03:43.440
thanks for

01:03:43.440 --> 01:03:43.800
having me

01:03:43.800 --> 01:03:44.060
Michael

01:03:44.060 --> 01:03:44.740
yeah you bet

01:03:44.740 --> 01:03:45.120
bye

01:03:45.120 --> 01:03:45.420
bye

01:03:45.420 --> 01:03:47.280
this has been

01:03:47.280 --> 01:03:47.900
another episode

01:03:47.900 --> 01:03:48.520
of talk

01:03:48.520 --> 01:03:49.080
python to

01:03:49.080 --> 01:03:49.260
me

01:03:49.260 --> 01:03:50.300
thank you

01:03:50.300 --> 01:03:50.600
to our

01:03:50.600 --> 01:03:51.080
sponsors

01:03:51.080 --> 01:03:51.880
be sure to

01:03:51.880 --> 01:03:52.140
check out

01:03:52.140 --> 01:03:52.360
what they're

01:03:52.360 --> 01:03:52.680
offering

01:03:52.680 --> 01:03:53.180
it really

01:03:53.180 --> 01:03:53.740
helps support

01:03:53.740 --> 01:03:54.100
the show

01:03:54.100 --> 01:03:55.500
starting a

01:03:55.500 --> 01:03:56.000
business is

01:03:56.000 --> 01:03:56.320
hard

01:03:56.320 --> 01:03:57.320
Microsoft for

01:03:57.320 --> 01:03:57.740
startups

01:03:57.740 --> 01:03:58.460
founders

01:03:58.460 --> 01:03:58.920
hub

01:03:58.920 --> 01:03:59.520
provides

01:03:59.520 --> 01:04:00.260
all founders

01:04:00.260 --> 01:04:00.880
at any

01:04:00.880 --> 01:04:01.420
stage with

01:04:01.420 --> 01:04:02.400
free resources

01:04:02.400 --> 01:04:03.220
and connections

01:04:03.220 --> 01:04:04.020
to solve

01:04:04.020 --> 01:04:04.480
startup

01:04:04.480 --> 01:04:04.940
challenges

01:04:04.940 --> 01:04:06.020
apply for

01:04:06.020 --> 01:04:06.560
free today

01:04:06.560 --> 01:04:06.920
at

01:04:06.920 --> 01:04:08.100
talkpython.fm

01:04:08.100 --> 01:04:08.620
slash

01:04:08.620 --> 01:04:09.440
founders hub

01:04:09.440 --> 01:04:10.660
take some

01:04:10.660 --> 01:04:11.280
stress out of

01:04:11.280 --> 01:04:11.700
your life

01:04:11.700 --> 01:04:12.640
get notified

01:04:12.640 --> 01:04:13.580
immediately about

01:04:13.580 --> 01:04:14.400
errors and

01:04:14.400 --> 01:04:15.320
performance issues

01:04:15.320 --> 01:04:16.040
in your web

01:04:16.040 --> 01:04:16.400
or mobile

01:04:16.400 --> 01:04:16.900
applications

01:04:16.900 --> 01:04:17.160
with

01:04:17.160 --> 01:04:17.500
sentry

01:04:17.500 --> 01:04:18.580
just visit

01:04:18.580 --> 01:04:19.960
talkpython.fm

01:04:19.960 --> 01:04:20.400
slash

01:04:20.400 --> 01:04:20.940
sentry

01:04:20.940 --> 01:04:21.680
and get

01:04:21.680 --> 01:04:22.200
started for

01:04:22.200 --> 01:04:22.480
free

01:04:22.480 --> 01:04:23.300
and be sure

01:04:23.300 --> 01:04:23.740
to use the

01:04:23.740 --> 01:04:24.320
promo code

01:04:24.320 --> 01:04:25.280
talkpython

01:04:25.280 --> 01:04:26.100
all one word

01:04:26.100 --> 01:04:27.520
want to level up

01:04:27.520 --> 01:04:27.980
your python

01:04:27.980 --> 01:04:28.860
we have one of

01:04:28.860 --> 01:04:29.340
the largest

01:04:29.340 --> 01:04:30.220
catalogs of

01:04:30.220 --> 01:04:30.800
python video

01:04:30.800 --> 01:04:31.400
courses over

01:04:31.400 --> 01:04:32.060
at talkpython

01:04:32.060 --> 01:04:32.900
our content

01:04:32.900 --> 01:04:33.700
ranges from

01:04:33.700 --> 01:04:34.260
true beginners

01:04:34.260 --> 01:04:35.020
to deeply

01:04:35.020 --> 01:04:35.780
advanced topics

01:04:35.780 --> 01:04:36.400
like memory

01:04:36.400 --> 01:04:37.140
and async

01:04:37.140 --> 01:04:38.160
and best of all

01:04:38.160 --> 01:04:38.840
there's not a

01:04:38.840 --> 01:04:39.560
subscription in

01:04:39.560 --> 01:04:39.820
sight

01:04:39.820 --> 01:04:40.520
check it out

01:04:40.520 --> 01:04:40.920
for yourself

01:04:40.920 --> 01:04:41.160
at

01:04:41.160 --> 01:04:43.120
training.talkpython.fm

01:04:43.120 --> 01:04:43.640
be sure to

01:04:43.640 --> 01:04:44.260
subscribe to

01:04:44.260 --> 01:04:44.620
the show

01:04:44.620 --> 01:04:45.200
open your

01:04:45.200 --> 01:04:46.020
favorite podcast

01:04:46.020 --> 01:04:46.920
app and search

01:04:46.920 --> 01:04:47.380
for python

01:04:47.380 --> 01:04:48.160
we should be

01:04:48.160 --> 01:04:48.500
right at the

01:04:48.500 --> 01:04:48.720
top

01:04:48.720 --> 01:04:49.660
you can also

01:04:49.660 --> 01:04:50.140
find the

01:04:50.140 --> 01:04:50.780
itunes feed

01:04:50.780 --> 01:04:51.240
at slash

01:04:51.240 --> 01:04:51.740
itunes

01:04:51.740 --> 01:04:52.420
the google

01:04:52.420 --> 01:04:52.940
play feed

01:04:52.940 --> 01:04:53.420
at slash

01:04:53.420 --> 01:04:53.860
play

01:04:53.860 --> 01:04:54.500
and the

01:04:54.500 --> 01:04:55.200
direct rss

01:04:55.200 --> 01:04:55.700
feed at

01:04:55.700 --> 01:04:56.620
/rss

01:04:56.620 --> 01:04:58.060
on talkpython.fm

01:04:58.060 --> 01:04:59.680
we're live

01:04:59.680 --> 01:04:59.680
we're live

01:04:59.680 --> 01:04:59.680
we're live

01:04:59.680 --> 01:04:59.980
streaming

01:04:59.980 --> 01:05:02.600
we're live

01:05:02.600 --> 01:05:04.160
if you want to

01:05:04.160 --> 01:05:04.700
be part of the

01:05:04.700 --> 01:05:04.920
air

01:05:04.920 --> 01:05:05.600
be sure to

01:05:05.600 --> 01:05:06.260
subscribe to

01:05:06.260 --> 01:05:06.660
our youtube

01:05:06.660 --> 01:05:07.260
channel at

01:05:07.260 --> 01:05:08.360
talkpython.fm

01:05:08.360 --> 01:05:09.360
slash youtube

01:05:09.360 --> 01:05:10.620
this is your host

01:05:10.620 --> 01:05:11.220
michael kennedy

01:05:11.220 --> 01:05:12.060
thanks so much

01:05:12.060 --> 01:05:12.480
for listening

01:05:12.480 --> 01:05:13.380
i really appreciate

01:05:13.380 --> 01:05:13.660
it

01:05:13.660 --> 01:05:14.460
now get out there

01:05:14.460 --> 01:05:14.960
and write some

01:05:14.960 --> 01:05:15.580
python code

01:05:15.580 --> 01:05:16.520
you

01:05:16.520 --> 01:05:17.020
you

01:05:17.020 --> 01:05:17.020
you

01:05:17.020 --> 01:05:17.520
you

01:05:17.520 --> 01:05:17.520
you

01:05:17.520 --> 01:05:17.520
you

01:05:17.520 --> 01:05:34.120
you

01:05:34.120 --> 01:05:36.120
Thank you.

