WEBVTT

00:00:00.001 --> 00:00:04.800
Online education has certainly gone mainstream. Developers and companies have finally gotten

00:00:04.800 --> 00:00:09.920
comfortable taking online courses. Sometimes these are recorded, self-paced courses like

00:00:09.920 --> 00:00:15.040
the ones we have at Talk Python Training. Other times, they're more like live events in webcast

00:00:15.040 --> 00:00:20.180
format. In this episode, you'll meet two guys who are taking the interactivity of online learning

00:00:20.180 --> 00:00:25.640
up a notch. Brian Clark and Cecil Phillip run a weekly event on Twitch where they are live

00:00:25.640 --> 00:00:30.240
streaming and interactive Python course. They take questions from hundreds of students and dig into

00:00:30.240 --> 00:00:36.140
the diversions that mainstream online learning simply cannot. This is Talk Python To Me, episode

00:00:36.140 --> 00:00:42.400
242, recorded on location at Microsoft Ignite in Orlando, Florida, November 7th, 2019.

00:00:42.400 --> 00:01:01.160
Welcome to Talk Python To Me, a weekly podcast on Python, the language, the libraries, the ecosystem,

00:01:01.160 --> 00:01:06.240
and the personalities. This is your host, Michael Kennedy. Follow me on Twitter where I'm @mkennedy.

00:01:06.240 --> 00:01:11.600
Keep up with the show and listen to past episodes at talkpython.fm and follow the show on Twitter via

00:01:11.600 --> 00:01:12.480
at Talk Python.

00:01:12.480 --> 00:01:14.800
Brian, Cecil, welcome to Talk Python To Me.

00:01:14.800 --> 00:01:16.540
Hey, how's it going? Thanks for having us.

00:01:16.540 --> 00:01:21.160
Yeah, it's good to have you here. I'm super excited to talk about this Twitch stuff. To me,

00:01:21.160 --> 00:01:27.820
Twitch and Mixer and all these cool live stream gaming things, they're amazing and it's just such

00:01:27.820 --> 00:01:33.920
a different world that I'm used to, but it hasn't been on my radar as a programming thing until,

00:01:33.920 --> 00:01:38.280
Cecil, you said, hey, you know what we're doing together? And I'm like, no way, that is really cool.

00:01:38.280 --> 00:01:41.700
So we're going to talk about your live stream, your live streaming of Python education and

00:01:41.700 --> 00:01:43.220
developer education in general.

00:01:43.220 --> 00:01:43.580
Yeah.

00:01:43.580 --> 00:01:47.280
But before we get there, let's just talk a little bit about you and get people a background on you.

00:01:47.280 --> 00:01:50.160
You haven't been on the show yet, Brian. So how'd you get into programming Python real quickly?

00:01:50.160 --> 00:01:54.340
Well, programming Python in particular, I'm normally programming in JavaScript.

00:01:54.340 --> 00:01:59.460
Prior to that, it was C-sharp and .NET. And I just like challenging myself to learn new languages.

00:01:59.460 --> 00:02:04.740
Also, Cecil and I are on the cloud advocacy team. And in particular, our audience is around academic.

00:02:04.740 --> 00:02:08.080
And you've got to learn a bunch of languages for that. They're like, we work with Scala. You're

00:02:08.080 --> 00:02:11.360
like, what is Scala? I got to go figure this out apparently, right? Yeah. Okay.

00:02:11.360 --> 00:02:16.720
Exactly. And the part of what we were wanting to do is at least what I started out with,

00:02:16.720 --> 00:02:20.280
and I've since learned that Cecil had a little bit of background in Python prior to starting the show,

00:02:20.280 --> 00:02:25.580
but we really wanted to take a beginner-centric approach to it. Like straight up, what's a variable?

00:02:25.580 --> 00:02:27.940
What's constant? What's that kind of stuff?

00:02:28.020 --> 00:02:31.480
I think that's so interesting because yeah, we'll get more into this, but you really do have that

00:02:31.480 --> 00:02:36.760
beginner focus. So you don't have to be like on your fifth year of doing this language to make it

00:02:36.760 --> 00:02:40.880
worthwhile, right? Exactly. Yeah. That kind of sparked the idea to, all right, I've been interested

00:02:40.880 --> 00:02:45.200
in Python. There's a lot of machine learning and AI that's around it that I want to get into more.

00:02:45.200 --> 00:02:48.880
Let me learn Python and start with that. And so that's how that kind of came to be.

00:02:48.880 --> 00:02:49.900
Yeah. Super cool. Yeah.

00:02:49.980 --> 00:02:53.580
And Cecil, maybe tell people just quickly about yourself. You've been on the show before

00:02:53.580 --> 00:02:58.680
doing all sorts of cool stuff. You were on the evangelist, the dev evangelist advocacy story,

00:02:58.680 --> 00:03:02.340
the panel. That was really fun. Yeah. Yeah. Yeah. We were on before and we talked a little bit about

00:03:02.340 --> 00:03:07.820
developer evangelism and advocacy and what that is. I'm kind of like what Brian said, right? I'm on the

00:03:07.820 --> 00:03:12.920
CA team or the cloud advocate team. And essentially, you know, the team that me and Brian are on,

00:03:12.920 --> 00:03:17.360
we talk a lot with students, with faculty members. I really just try to understand like what are some of

00:03:17.360 --> 00:03:21.320
their needs from an educational perspective when it comes to Microsoft products, when it comes to

00:03:21.320 --> 00:03:26.280
cloud technology or Visual Studio Code or, you know, machine learning and IoT and like some of these,

00:03:26.280 --> 00:03:28.100
you know, really interesting topics. Yeah.

00:03:28.100 --> 00:03:32.080
What does that mean for a student and what does that mean for you trying to establish like your

00:03:32.080 --> 00:03:37.540
career path going forward? Yeah. And traditionally that's meant, okay, we're using Windows, maybe Windows

00:03:37.540 --> 00:03:43.940
server. We're using C# or possibly C++ if you want to kind of spread out. It didn't used to mean

00:03:43.940 --> 00:03:47.220
Linux and Python, did it? Right? It's a different world.

00:03:47.220 --> 00:03:50.420
Where are you living now? It's a totally different world. And, but I think too,

00:03:50.420 --> 00:03:55.040
what I'm realizing is the more schools that you talk to, all of them have like a different origin

00:03:55.040 --> 00:03:59.360
story, right? Like all of them have a very different background. The college that I went to, I went to

00:03:59.360 --> 00:04:03.920
Florida Tech in Melbourne, Florida, which is not too far from where we are today. Yeah. And it was,

00:04:03.920 --> 00:04:07.560
everybody had a Windows machine, right? That was, that was normal. And this was a while ago,

00:04:07.560 --> 00:04:11.720
right? This is when people still had like compact Presarios for like their laptops.

00:04:11.940 --> 00:04:14.300
Did you connect to the internet silently or with noise?

00:04:14.300 --> 00:04:19.960
At home, when I went to my house, when I went home, we definitely had like a 56k modem that,

00:04:19.960 --> 00:04:24.280
you know, did the ringing thing. I remember being able to distinguish the noise. You would hear,

00:04:24.280 --> 00:04:29.720
you're like, oh, I got 38, whatever, or I got 56k. You could tell the connection noise. You're like,

00:04:29.720 --> 00:04:31.620
oh, that's a good one. We're going to do some downloading today.

00:04:31.620 --> 00:04:35.840
That's funny. That's funny. But yeah, just depending on the types of schools that you go to,

00:04:35.840 --> 00:04:39.940
like where they are and what their focus is, you'll see a lot of different types of technologies and

00:04:39.940 --> 00:04:43.960
things of that nature. Some of them are very Linux friendly, you know what I mean? Some of

00:04:43.960 --> 00:04:48.380
them are very Windows friendly. Surprisingly, over the schools that I've personally visited,

00:04:48.380 --> 00:04:51.140
I haven't seen a lot of Macintosh machines, which is interesting.

00:04:51.140 --> 00:04:54.740
It is interesting. You know, Macintosh are kind of obscenely expensive.

00:04:54.740 --> 00:04:55.500
And that is true.

00:04:55.500 --> 00:04:55.740
Right.

00:04:55.740 --> 00:04:57.080
And that's what I figured it was, right?

00:04:57.080 --> 00:05:00.460
Yeah. And as a student, right? I think of my daughters who are both in college now,

00:05:00.460 --> 00:05:05.200
they're paying their own rent. We cover their tuition, but they got to pay their rent. And things like,

00:05:05.540 --> 00:05:09.580
do I need a new phone this year, even though it's broken? It's like, I don't know if I can afford that

00:05:09.580 --> 00:05:10.560
600 bucks.

00:05:10.560 --> 00:05:10.940
Yeah.

00:05:10.940 --> 00:05:14.940
And right. And like this MacBook, I love it, but it was over three grand. It's ridiculous.

00:05:14.940 --> 00:05:18.620
Yeah. Yeah. But in the developer world, like this is the environment that we're used to.

00:05:18.620 --> 00:05:23.460
Yes. Yeah. Because we have well-paying jobs, generally speaking. So it's not that big of a deal,

00:05:23.460 --> 00:05:23.680
right?

00:05:23.680 --> 00:05:27.300
Sure. Sure. I mean, whether it's the case that we have the financial means to do it ourselves,

00:05:27.300 --> 00:05:30.280
or we have company sponsored machines or something like that.

00:05:30.280 --> 00:05:33.120
Yeah. Your companies will just say, here's your machine. Yeah, for sure.

00:05:33.220 --> 00:05:36.040
But it just shows you that there's a different perspective now that when you go to schools,

00:05:36.040 --> 00:05:38.300
like the resources that we have is not the same.

00:05:38.300 --> 00:05:41.260
So you're seeing more Windows machines there maybe, huh?

00:05:41.260 --> 00:05:42.620
Definitely more Windows machines.

00:05:42.620 --> 00:05:43.280
How about Linux?

00:05:43.280 --> 00:05:45.740
Through Chromebooks, randomly, every now and again.

00:05:45.740 --> 00:05:46.100
Okay.

00:05:46.100 --> 00:05:51.660
A few folks using Ubuntu and maybe Gen2 or something like that from a Linux perspective.

00:05:51.660 --> 00:05:55.700
Cool. Well, before we get into the topics, I don't know if the final show will have the

00:05:55.700 --> 00:05:59.460
background noise. It may. Certainly there's a lot of background noise for us right here,

00:05:59.460 --> 00:06:05.920
because we're recording on location at Microsoft Ignite. Yeah. And it's such a crazy conference.

00:06:05.920 --> 00:06:12.420
I thought of Microsoft Build as one of the really large conferences, PyCon. We get like 3,500 people

00:06:12.420 --> 00:06:17.280
attend there. This is like 10x PyCon, right? I had no idea how big it was.

00:06:17.280 --> 00:06:20.800
Somewhere around 30,000 attendees, something like that.

00:06:20.800 --> 00:06:24.520
It's something, man. So there's a lot of stuff going on. And it's a little interesting to be here

00:06:24.520 --> 00:06:28.820
as a Python person, because there is some interesting Python stuff. I just watched Steve Dower's

00:06:28.820 --> 00:06:30.300
presentation about Python security.

00:06:30.300 --> 00:06:31.060
Nice. Okay.

00:06:31.100 --> 00:06:36.520
Yeah. That was really cool. But there's also a lot of stuff that is kind of foreign to me. There's

00:06:36.520 --> 00:06:41.140
some interesting companies. But maybe tell us a little bit about some of the announcements. We have

00:06:41.140 --> 00:06:48.240
Azure On-Prem is pretty interesting. And we have VS Code Online. So there's a few relevant things maybe

00:06:48.240 --> 00:06:49.480
to point out from what's happened this week.

00:06:49.480 --> 00:06:54.280
That's the one that's the VS Code Online one is the one I'm most excited about and was really pumped

00:06:54.280 --> 00:06:59.560
to try out and just start tinkering with. In fact, to the point where I used it as a backup for my

00:06:59.560 --> 00:07:03.300
talk, where I was demonstrating an extension in Visual Studio Code.

00:07:03.300 --> 00:07:03.760
Oh, really?

00:07:03.760 --> 00:07:08.220
It's in preview, the extension. And sometimes I'm still learning Python and setting up my

00:07:08.220 --> 00:07:12.960
environment properly. I think I have something misconfigured on my laptop. And so if I had it as

00:07:12.960 --> 00:07:17.800
a backup, because that environment, I could spin it up. It's using Linux behind the scenes. And I was

00:07:17.800 --> 00:07:21.820
able to get the extension working with all the Python dependencies that I needed. And it went smoothly,

00:07:21.820 --> 00:07:22.320
thankfully.

00:07:22.680 --> 00:07:25.880
Yeah. I think this is going to be really empowering for developers, right? It's like,

00:07:25.880 --> 00:07:29.580
you go here, you click the button, like Cecil was telling us yesterday, like you can have a thing

00:07:29.580 --> 00:07:32.480
on your GitHub repository, like launch this in VS Code Online, basically.

00:07:32.480 --> 00:07:36.560
The other aspect of it that's going to be super interesting to see people use it for it,

00:07:36.560 --> 00:07:42.440
speaking of academic and just teaching and learning and that kind of stuff, is in workshops or in

00:07:42.440 --> 00:07:47.040
classrooms, being able to set up a predetermined environment that already automatically loads up

00:07:47.040 --> 00:07:51.160
the code that you might need or the demo application right from GitHub.

00:07:51.160 --> 00:07:51.640
Yeah.

00:07:51.640 --> 00:07:57.520
So that your students or just attendees there have their environment already set to go. You're not

00:07:57.520 --> 00:08:01.000
wasting time in the beginning, making sure everybody's on the same page. You're also dealing

00:08:01.000 --> 00:08:04.940
with a lot of people that'll get like work issued devices like you both were just talking about,

00:08:04.940 --> 00:08:06.980
and they have limited rights to install stuff.

00:08:06.980 --> 00:08:10.560
Right. I don't have permissions or I have a Chromebook and it won't run it or whatever,

00:08:10.560 --> 00:08:10.820
right?

00:08:10.980 --> 00:08:15.440
Exactly. So doing it all from the browser like that makes it super interesting to open up the

00:08:15.440 --> 00:08:16.000
doors that way.

00:08:16.000 --> 00:08:19.900
Yeah. Cecil, do you see this as something you could tie into your live stream?

00:08:19.900 --> 00:08:23.580
Definitely. I think maybe at some point in time, and I mean, Brian and I haven't spoken about it yet,

00:08:23.580 --> 00:08:28.300
but maybe we could find a way to kind of integrate it into the stream, maybe do a quick demo of it,

00:08:28.300 --> 00:08:32.300
you know, really just to show folks what's possible. Because kind of like what you were saying before,

00:08:32.300 --> 00:08:38.140
I think the benefit there is just to be able to get going quickly. Like there's pretty much

00:08:38.140 --> 00:08:42.580
little to no setup, right? Like I don't have to worry about installing operating system updates and

00:08:42.580 --> 00:08:46.320
having the right dependencies and those types of things happen. I'm assuming there might be a way

00:08:46.320 --> 00:08:50.780
to like set up a blueprint or a template so that now we have multiple people that are trying to create

00:08:50.780 --> 00:08:55.360
the same environment from the same repo. And so now we all just have like the same environment

00:08:55.360 --> 00:08:58.060
set up, essentially our own instance of the same environment.

00:08:58.060 --> 00:09:02.240
Yeah. It seems like a great way to help people who are just getting going, right? Like they're,

00:09:02.240 --> 00:09:06.220
coming to this stream to learn what the heck Python is and how it works, right? So it's perfect. Like

00:09:06.220 --> 00:09:07.260
click this button and we'll get you rolling.

00:09:07.260 --> 00:09:12.140
Yeah, definitely. I think two, was it two days ago? Two days from the day I was recording anyway.

00:09:12.140 --> 00:09:16.780
So again, like Brian and I have the stream and usually what we do is we take some of the code

00:09:16.780 --> 00:09:21.660
that we write on stream and we'll push it into a GitHub repo. And so after I saw the announcement,

00:09:21.660 --> 00:09:26.920
I was like, oh, well, let me go and see if I could get our code from the repo running in VS Online.

00:09:26.920 --> 00:09:27.480
Yeah, yeah.

00:09:27.480 --> 00:09:31.560
And it was super simple. There was literally like two or three buttons I had to press, right? Like,

00:09:31.960 --> 00:09:36.760
you know, create environment. I had to put in what repo I wanted it to come from. And that

00:09:36.760 --> 00:09:41.100
was it, right? And then now like I have a machine set up, there's Visual Studio Code running inside

00:09:41.100 --> 00:09:45.340
of the browser. It already had Python on it installed, so I didn't have to install it, which was super

00:09:45.340 --> 00:09:45.580
cool.

00:09:45.580 --> 00:09:47.760
Yeah, 3.8, right? Like shiny new Python.

00:09:47.760 --> 00:09:53.700
Yeah, it's Python 3.8, which as of today, I think is maybe like three weeks old, maybe not

00:09:53.700 --> 00:09:57.400
even a month old yet. So that was really cool to see that, you know, how easy that was to set

00:09:57.400 --> 00:09:57.480
up.

00:09:57.480 --> 00:10:01.340
Awesome. Yeah, I think that's a cool announcement coming out of here and I'm sure a lot of people can make

00:10:01.340 --> 00:10:05.820
use of it, especially in education where setup is challenging, right? Like Jupyter Notebooks are

00:10:05.820 --> 00:10:09.640
nice and I do like them, but I would prefer to learn with something that has auto-complete that's a

00:10:09.640 --> 00:10:13.940
little bit better. And I just like the tooling of like a more of a dev editor more than I do like

00:10:13.940 --> 00:10:18.120
Jupyter, even though JupyterLab is pretty killer. All right, so let's talk about Twitch. And Brian,

00:10:18.120 --> 00:10:21.340
I guess that started with you, right? You've been doing Twitch for a while.

00:10:21.340 --> 00:10:25.240
I'm so happy to be able to talk about it because I'm super passionate about just live streaming in

00:10:25.240 --> 00:10:25.580
general.

00:10:25.580 --> 00:10:31.060
That's awesome. So tell everyone what Twitch is out there. I know a lot of folks know, but a lot of people are like,

00:10:31.060 --> 00:10:35.620
you know, Twitch is like a thing that a person does, not necessarily a platform.

00:10:35.620 --> 00:10:39.840
It's traditionally thought of as like everybody goes there to watch other people play video games.

00:10:39.840 --> 00:10:44.520
Right. And these are like sort of the famous YouTube influencer types of the gamer world.

00:10:44.520 --> 00:10:49.320
They'll go there and they'll play, I don't know, Warcraft or Fortnite or something for 12 hours

00:10:49.320 --> 00:10:51.740
straight. And people are such fans, they'll just watch that, right?

00:10:51.740 --> 00:10:56.020
Yeah. People in our industry might think, well, you're just going there to goof off. But the surprise

00:10:56.020 --> 00:11:01.200
is there's a lot of other types of content that's available on the platform that people are streaming

00:11:01.200 --> 00:11:05.200
about between not just programming, but there's people that are building stuff hardware wise.

00:11:05.200 --> 00:11:09.340
There's people that are doing arts and crafts, creative related type of things, drawing, painting.

00:11:09.340 --> 00:11:13.240
I mean, there's all kinds of stuff on the platform that you can watch and be entertained by and learn.

00:11:13.240 --> 00:11:16.560
That's super cool. I think it's similar to YouTube in that sense. Like YouTube sounds like

00:11:16.560 --> 00:11:21.520
to a lot of people, oh, they were on YouTube all day. They did nothing, right? It could have been,

00:11:21.520 --> 00:11:26.020
you were watching like an awesome, like build this app, like the one you need to build in Django on

00:11:26.020 --> 00:11:28.100
YouTube, right? That could be like super productive YouTube.

00:11:28.100 --> 00:11:33.080
Yeah. And I think the key difference though, there with this and what draws me to live streaming

00:11:33.080 --> 00:11:38.400
is that the way, the ability as a viewer to engage with the person that might be teaching something

00:11:38.400 --> 00:11:39.340
or doing something like that.

00:11:39.340 --> 00:11:42.700
I put a bunch of stuff on YouTube and then I might get comments about it.

00:11:42.700 --> 00:11:43.020
Right.

00:11:43.020 --> 00:11:45.660
Some of them are super negative, some are unrelated, some are positive,

00:11:46.080 --> 00:11:49.980
but like it's like, that's the YouTube world, but like it's not real time. Like I create it

00:11:49.980 --> 00:11:53.220
and then I publish it and I go to bed and then I get a notification.

00:11:53.220 --> 00:11:53.560
Yep.

00:11:53.560 --> 00:11:57.320
It seems to me watching YouTube on your channel that it's very interactive.

00:11:57.320 --> 00:12:01.900
Absolutely. Yeah. So with YouTube and that stuff, it's all scripted out. And most of the time,

00:12:01.900 --> 00:12:05.040
I mean, there are, I'm not to say there aren't people that don't do this, but you're going to

00:12:05.040 --> 00:12:08.660
see just the happy path, right? How do you get from A to B building this whole app out?

00:12:08.660 --> 00:12:12.580
Right. Right. The mistake I made, I edited that out because it would look stupid.

00:12:12.580 --> 00:12:15.320
Exactly. You don't want to look like you don't know what you're talking about.

00:12:15.600 --> 00:12:20.240
And that's what kind of is intimidating as a streamer though. And to get into it is you're

00:12:20.240 --> 00:12:25.380
doing it live in front of potentially several people and you're going to be making mistakes,

00:12:25.380 --> 00:12:30.180
but that's the benefit of going there and being there in the moment. You get to see like what it

00:12:30.180 --> 00:12:33.460
is real life. You're not getting the pretty picture all the time right up front.

00:12:33.460 --> 00:12:38.200
That's super positive. I mean, I do think this is a really valuable skill that people can develop

00:12:38.200 --> 00:12:43.380
because when you're doing like recorded stuff, yeah, you learn a lot in that. That's great.

00:12:43.380 --> 00:12:47.640
But when you're doing the live presentation, you have to think about what you're saying. You got to

00:12:47.640 --> 00:12:52.580
engage with the people. You got to type and talk. It's much like in-person training, but just

00:12:52.580 --> 00:12:58.700
separated physically, right? Like I think it really gives you a skill of just like presenting in general

00:12:58.700 --> 00:13:03.660
around code that people are like, how did you just go up there and you typed and you talked and you

00:13:03.660 --> 00:13:07.740
were looking at that other person. It's well, it's because I've done like hundreds of hours,

00:13:07.740 --> 00:13:10.880
right? Like I did an in-person world. You guys do it on online, right?

00:13:10.880 --> 00:13:14.520
Yeah. It's definitely something where when I first started out, like I still have the recordings of my

00:13:14.520 --> 00:13:16.160
very first streams. Are they hard to watch?

00:13:16.160 --> 00:13:19.840
Well, it's even the most recent one is hard to watch. I can't stand here myself. I'm not going to

00:13:19.840 --> 00:13:24.000
be able to listen to this podcast either. You know, like it's just the way it is. It's very rough.

00:13:24.000 --> 00:13:28.740
You could tell that I'm not used to being able to multitask like that. And now I feel like it just,

00:13:28.740 --> 00:13:32.640
you know, it comes as second nature, but you seem super smooth. Like both of you guys do.

00:13:32.640 --> 00:13:35.880
Zesel, what do you think about this idea of like using live streaming as a way to like

00:13:35.880 --> 00:13:38.280
almost become better at presenting in general?

00:13:38.280 --> 00:13:43.860
I think it's definitely a great opportunity for particularly folks that are new because I think

00:13:43.860 --> 00:13:45.900
it makes it a lot less intimidating. Yeah.

00:13:45.900 --> 00:13:50.780
Because essentially I'm looking at my room, right? Or my camera or my computer or, you know,

00:13:50.780 --> 00:13:56.280
my office setup. And I'm not looking at a room with 10 people or 20 people or 100 people or

00:13:56.280 --> 00:13:56.980
whatever the case is.

00:13:56.980 --> 00:13:59.580
You're not getting those blank stares back that kill you. Yeah.

00:13:59.880 --> 00:14:03.900
Right. So I think from that perspective, it gives you a great opportunity to practice. It gives you a

00:14:03.900 --> 00:14:09.820
great opportunity to even just deliver content to a group of folks and just in a very natural way.

00:14:09.820 --> 00:14:13.960
Right. Because I could just imagine you being a lot more nervous when there's a stage and there's a

00:14:13.960 --> 00:14:18.660
camera and there's lights and, you know, there's sound and, you know, there's kind of like we're in a

00:14:18.660 --> 00:14:22.480
room right now and there's a lot of background noise going on. Right. Like there's a lot of emotion that

00:14:22.480 --> 00:14:26.160
kind of goes into that. And when you think about like how your emotions like, you know,

00:14:26.160 --> 00:14:30.420
affect your body and affect like the tone of your voice and the shakiness of your hands.

00:14:30.420 --> 00:14:33.620
They can just get you distracted. Right. They can break your thought patterns. And like,

00:14:33.620 --> 00:14:36.800
I knew I was going to do this thing in the presentation. Now I'm so freaked out that

00:14:36.800 --> 00:14:37.720
person's looking at me.

00:14:37.720 --> 00:14:38.580
Yeah. Yeah. Yeah. Yeah. Yeah.

00:14:38.580 --> 00:14:39.540
Right. Yeah. It's tough.

00:14:39.540 --> 00:14:43.480
Exactly. So I think it's a great opportunity for folks to do that. Even just me and Brian are

00:14:43.480 --> 00:14:47.680
learning and getting better at becoming like Python folks. Right. Yeah.

00:14:47.680 --> 00:14:50.640
And engaging in the community and really just understanding, you know,

00:14:50.640 --> 00:14:56.520
what's possible and what we can do. This portion of Talk Python To Me is brought to you by Linode.

00:14:56.520 --> 00:15:00.640
Whether you're working on a personal project or managing your enterprise's infrastructure,

00:15:00.640 --> 00:15:05.480
Linode has the pricing, support, and scale that you need to take your project to the next level.

00:15:05.480 --> 00:15:10.260
With 11 data centers worldwide, including their newest data center in Sydney, Australia,

00:15:10.260 --> 00:15:15.960
enterprise-grade hardware, S3 compatible storage, and the next generation network,

00:15:15.960 --> 00:15:20.120
Linode delivers the performance that you expect at a price that you don't.

00:15:20.120 --> 00:15:25.580
Get started on Linode today with a $20 credit and you get access to native SSD storage,

00:15:25.580 --> 00:15:31.680
a 40 gigabit network, industry-leading processors, their revamped cloud manager at cloud.linode.com,

00:15:31.680 --> 00:15:38.500
root access to your server, along with their newest API and a Python CLI. Just visit talkpython.fm

00:15:38.500 --> 00:15:43.880
slash Linode when creating a new Linode account and you'll automatically get $20 credit for your next

00:15:43.880 --> 00:15:49.380
project. Oh, and one last thing. They're hiring. Go to linode.com slash careers to find out more.

00:15:49.440 --> 00:15:50.700
Let them know that we sent you.

00:15:50.700 --> 00:15:56.720
Brian, maybe tell me what was the first stuff that you started streaming on the channel?

00:15:56.720 --> 00:16:01.160
You don't do just Python, right? I thought I saw some JavaScript stuff on one of your streams as

00:16:01.160 --> 00:16:03.640
well. Is that right? Yeah, I'm up to three shows now, actually.

00:16:03.640 --> 00:16:06.920
Okay. So I originally was just doing JavaScript-related stuff where I was building out

00:16:06.920 --> 00:16:10.980
a bot that interacts to make it more engaging for the viewers. It's built into the chat room there,

00:16:10.980 --> 00:16:15.840
which lets them do commands and all that kind of fun stuff. That's an ever-growing and iterating on

00:16:15.840 --> 00:16:18.240
that project. Is that like the bang mark and that type of stuff?

00:16:18.240 --> 00:16:18.840
Yes, absolutely.

00:16:18.840 --> 00:16:20.680
You built that and plugged that bot in?

00:16:20.680 --> 00:16:21.180
Yeah, yeah.

00:16:21.180 --> 00:16:22.960
Oh, I just thought that was a Twitch thing. That's cool.

00:16:22.960 --> 00:16:23.580
No, no, no. Yeah.

00:16:23.580 --> 00:16:25.100
All right, tell people how that works.

00:16:25.100 --> 00:16:26.020
Just real quick.

00:16:26.020 --> 00:16:29.640
Yeah, really quick. Basically, it's just listening through the Twitch API through the chat room.

00:16:29.640 --> 00:16:35.020
If you send certain keywords in there, prefix with an exclamation point, and it knows that that

00:16:35.020 --> 00:16:39.800
recognizes that's a command, it can do other things. So the first thing we ever built out was a

00:16:39.800 --> 00:16:44.060
light bulb in my office, people can change the color of that through a command in the chat room. So it's

00:16:44.060 --> 00:16:47.020
kind of interesting for a viewer to come in and be like, oh, wow.

00:16:47.020 --> 00:16:51.300
Was that just like a novelty or did they use it as productive? If they change it to red,

00:16:51.300 --> 00:16:54.460
that means slow down. If they change it to green, it means speed up or anything like that?

00:16:54.460 --> 00:16:57.800
I think a little bit of both, honestly. So some people, it's like, wow, that's cool. I'm changing

00:16:57.800 --> 00:17:03.140
somebody's light bulb color across the globe from wherever I'm in the world. But also, it's been

00:17:03.140 --> 00:17:07.920
helpful at times. If I get so focused in on that flow state where I'm working on something,

00:17:07.920 --> 00:17:11.080
people can grab my attention and be like, hey, you actually missed this or something like that by

00:17:11.080 --> 00:17:14.960
changing the color of the light. Or if somebody does something nice like follows or subscribes to

00:17:14.960 --> 00:17:17.620
the channel, it alerts me that way, that kind of thing. That's pretty awesome.

00:17:17.620 --> 00:17:21.360
I didn't start out doing that, actually. When I first started streaming, I didn't know what to stream yet.

00:17:21.360 --> 00:17:26.160
I just knew that JavaScript was my main language of choice to use. And so I just started going to,

00:17:26.160 --> 00:17:29.960
have you heard of Code Wars, Doc? No, I've heard of Code Combat, but not Code Wars.

00:17:29.960 --> 00:17:33.880
Very similar concept. It's just like little coding challenges and stuff like that. And so I was like,

00:17:33.880 --> 00:17:37.760
on the weekend nights, I was like, let me try for an hour and get my feet wet doing this.

00:17:37.760 --> 00:17:41.140
And then it led into what we have today, where we have three shows. We have the Learning Python

00:17:41.140 --> 00:17:46.700
from Scratch with Cecil. Just started up a Build Up Devs show, which is more about the social side,

00:17:46.700 --> 00:17:48.700
the human side of being developers in the industry.

00:17:48.700 --> 00:17:50.260
Yeah, that's cool. That sounds really interesting.

00:17:50.260 --> 00:17:54.700
And then my Friday streams are just me being crazy, wacky, working on the chatbot and just being a

00:17:54.700 --> 00:17:55.020
goofball.

00:17:55.020 --> 00:18:00.320
Cool. So Cecil, maybe talk a little bit about what you guys cover on there. So you're going through

00:18:00.320 --> 00:18:07.480
Nina Zakarenko's course, which is a free Python course, bring to the show. Hi, Nina. And that's a

00:18:07.600 --> 00:18:09.560
two-day course that you guys have been going on for a while, right?

00:18:09.560 --> 00:18:15.180
Our teammate, Nina Zakarenko, she's also a cloud advocate at Microsoft with us. And she has a free

00:18:15.180 --> 00:18:20.200
course. It's at learnpython.dev. Totally free. It's actually a GitHub repo. And you know, you could

00:18:20.200 --> 00:18:21.880
generate GitHub pages from a repo, right?

00:18:21.880 --> 00:18:22.180
Yeah.

00:18:22.420 --> 00:18:27.420
Essentially, it's a GitHub repo that she generated and turned into like an online workshop. And now

00:18:27.420 --> 00:18:34.100
with this workshop, there's two days. And essentially, it goes from very beginner Python concepts. And right

00:18:34.100 --> 00:18:39.320
now, we just finished our first day, maybe like two weeks ago or something like that. But it's taken us

00:18:39.320 --> 00:18:41.720
four months to do, which I think is kind of interesting.

00:18:41.960 --> 00:18:46.380
It's super interesting, right? Because I mean, it's self-paced learning. And so it's kind of like

00:18:46.380 --> 00:18:52.600
a whole day of maybe in-person, right? What do you say? It's like one day in-person. So if you were

00:18:52.600 --> 00:18:58.020
say to do that self-paced, maybe you do a couple hours a day, like a week, maybe a week to do a day,

00:18:58.020 --> 00:19:02.060
like if you're doing part-time. But you took four months. I mean, I know you don't do every day,

00:19:02.060 --> 00:19:07.340
right? But still, that's interesting. And I think it touches a little bit on giving people the sense

00:19:07.340 --> 00:19:10.260
of like the true interactive nature of what you guys got going on, right?

00:19:10.260 --> 00:19:14.580
Yeah, totally. When we first started this, I was like, oh, okay, we'll knock this out in two months

00:19:14.580 --> 00:19:20.600
and that'll be it. And then we'll do another thing, right? But it turns out that every section that we

00:19:20.600 --> 00:19:26.300
do, because we pay so much attention to what's happening in the Twitch chat room and as members

00:19:26.300 --> 00:19:30.820
that are watching kind of pop in and pop out, we get a lot of questions. We get a lot of suggestions.

00:19:30.820 --> 00:19:35.280
We get a lot of ideas about, hey, why don't you try this out and let's see what happens? Or,

00:19:35.660 --> 00:19:40.580
hey, could you re-explain this particular topic? Or did you know that there was this other language

00:19:40.580 --> 00:19:45.980
feature that wasn't necessarily covered in that section? But let's just try it on and see.

00:19:45.980 --> 00:19:49.760
Here's list comprehensions, but you can also do it with dictionaries. And I didn't talk about that,

00:19:49.760 --> 00:19:52.820
but here we can do it here as well, right? It's kind of the same idea.

00:19:52.820 --> 00:19:57.900
Right. So just from that, that's how streaming once a week for three hours on a Wednesday

00:19:57.900 --> 00:20:02.900
turns into like four months of video, which should have been like a one-day section.

00:20:02.900 --> 00:20:07.060
Right. But just because we've just been so thorough and just been answering tons of questions

00:20:07.060 --> 00:20:11.180
and, you know, like all the interactions that Brian has built into the stream from,

00:20:11.180 --> 00:20:14.720
you know, turning his light bulbs on and then there's little sounds that folks can play.

00:20:14.720 --> 00:20:20.680
Brian, you've got like funny Wednesday sounds and stuff like, yeah, like it's very like appropriate

00:20:20.680 --> 00:20:24.940
to Twitch, right? It feels like it's very, very much part of that community that those styles that

00:20:24.940 --> 00:20:25.360
you got there.

00:20:25.500 --> 00:20:29.960
Right. And that's one of the things that I think differentiates it from a webinar or live

00:20:29.960 --> 00:20:34.960
streaming on YouTube or just putting out a YouTube video because YouTube has live chat. Sure. And,

00:20:34.960 --> 00:20:39.020
you know, you could do live streaming there, but I think having the ability to customize that

00:20:39.020 --> 00:20:43.380
experience for the folks that are watching makes a huge difference and it makes them feel like they're

00:20:43.380 --> 00:20:45.560
a part of that video that we just produced.

00:20:45.780 --> 00:20:49.860
I did really get that sense that people feel part of it, that you guys welcome them when they come,

00:20:49.860 --> 00:20:56.240
that there's this deep exploration that they're a part of. And it does, you know, just to talk to the

00:20:56.240 --> 00:21:02.000
audience for a moment, like it's really quite early days in terms of where you're starting, right? Like

00:21:02.000 --> 00:21:06.240
you explain what virtual environments are and you said you started explaining like what a variable was.

00:21:06.520 --> 00:21:11.800
there's a lot of folks where there's not that level of training available, right? Like none of my

00:21:11.800 --> 00:21:17.080
courses assume you don't know what a string is necessarily. You know, I mean, it doesn't assume

00:21:17.080 --> 00:21:21.820
much, but there's like this sort of thinking like a programmer thing you got to do. And I feel like

00:21:21.820 --> 00:21:23.220
you guys are doing a good job helping.

00:21:23.220 --> 00:21:28.700
I think one of the good things with what me and Brian end up having to do is because he has experience

00:21:28.700 --> 00:21:34.440
in JavaScript, I have most of my professional experience in .NET and C#, we're able to give the

00:21:34.440 --> 00:21:38.380
perspective of, hey, we know a little bit about programming from other languages and frameworks

00:21:38.380 --> 00:21:43.120
and things of that nature. How can we apply that to Python and use that knowledge to make us good

00:21:43.120 --> 00:21:47.460
teachers? So even though we're not Python, even though we're not Python experts, and even though,

00:21:47.460 --> 00:21:50.760
you know, we don't get paid to do Python, we don't have Python things in production,

00:21:50.760 --> 00:21:55.760
we don't have open source packages that folks are using, we do understand like some of the basic

00:21:55.760 --> 00:21:59.700
constructs of programming. And so we could use that background knowledge that we have to apply this

00:21:59.700 --> 00:22:00.940
to learning like this new environment.

00:22:00.940 --> 00:22:04.200
Brian, what was your experience in Python when you came into doing this channel here?

00:22:04.200 --> 00:22:05.260
Like how much?

00:22:05.260 --> 00:22:10.020
The extent was, I could just recognize it when I would see it. I've like reviewed Python code kind

00:22:10.020 --> 00:22:10.300
of thing.

00:22:10.300 --> 00:22:10.580
Yeah.

00:22:10.580 --> 00:22:12.920
But that was the extent of my experience.

00:22:12.920 --> 00:22:20.340
Okay. I feel like this is actually, it can be an advantage, right? It can be, I'm at a similar

00:22:20.340 --> 00:22:24.780
level as the people learning what I'm doing. So if they follow along with me, I'm not like, well,

00:22:24.780 --> 00:22:27.800
I don't know what, why can't you create a virtual environment and install this? Like,

00:22:27.840 --> 00:22:31.800
obviously that's an easy step. Let's get past that to the real, right? Like you're, you're going

00:22:31.800 --> 00:22:33.220
through these steps with them.

00:22:33.220 --> 00:22:33.500
Yeah.

00:22:33.500 --> 00:22:34.820
I think that's powerful, right?

00:22:34.820 --> 00:22:35.220
Yeah.

00:22:35.220 --> 00:22:37.620
What do you think? Do people react positively to that?

00:22:37.620 --> 00:22:42.340
Yeah. And so far it's been, we've gotten a lot of positive feedback because people will even go

00:22:42.340 --> 00:22:47.020
back to the past recordings because we post stream notes and video recordings on YouTube and you can

00:22:47.020 --> 00:22:50.340
catch them on Twitch, but Twitch will only do it for a certain length of time. They'll stay on

00:22:50.340 --> 00:22:50.440
there.

00:22:50.440 --> 00:22:50.620
Yeah.

00:22:50.740 --> 00:22:54.100
And people will come in and they'll be like, Hey, I've been catching up where I'm almost up to your

00:22:54.100 --> 00:22:57.980
current episode, but thank you so much. This has been super helpful because I'm a beginner as well.

00:22:57.980 --> 00:23:02.300
And it's been a fun challenge for me, both from the aspect of like, I don't, I didn't know Python

00:23:02.300 --> 00:23:06.820
prior to this, but also to challenge myself to get back to the roots because, you know, I think we get

00:23:06.820 --> 00:23:11.760
so engulfed in, we've already learned that lower level stuff that maybe you got in college or whatever

00:23:11.760 --> 00:23:13.120
education background you might have.

00:23:13.120 --> 00:23:16.360
I just want to talk about the new features of Angular 2 or whatever, right?

00:23:16.360 --> 00:23:20.680
Exactly. Right. We get all hyped up about the new stuff and what we've already learned and take

00:23:20.680 --> 00:23:23.580
for granted that kind of thing. So it's been a fun challenge to get back to that and be like,

00:23:23.580 --> 00:23:28.480
how do I explain what a variable is to somebody? Or how do I explain what a function is? You know?

00:23:28.480 --> 00:23:31.700
And it's been really interesting from that perspective, right?

00:23:31.700 --> 00:23:35.920
Yeah. You talked about the videos being available on YouTube. And until I was talking to Cecil last

00:23:35.920 --> 00:23:40.280
night, I didn't really realize that. I just went to the Twitch channel and there's like a video section.

00:23:40.280 --> 00:23:44.580
I'm like, oh, these must be the videos that I get to look from over in the past. But there's a whole

00:23:44.580 --> 00:23:48.260
separate YouTube story around like your channel and stuff people can check out?

00:23:48.260 --> 00:23:50.660
Yes, absolutely. So because what we're trying to do is,

00:23:50.660 --> 00:23:53.920
make it so that it's not just like a one shot and then it's gone kind of thing, right?

00:23:53.920 --> 00:23:54.720
Right. Which is great.

00:23:54.720 --> 00:23:58.800
We want to be able to, for my own benefit too, go back and reference like how did we set up those

00:23:58.800 --> 00:24:00.440
virtual environments that first time, right?

00:24:00.440 --> 00:24:00.640
Yeah.

00:24:00.640 --> 00:24:06.200
And so the one way we found to do that, well, it's twofold what we're doing. Exporting to YouTube,

00:24:06.200 --> 00:24:10.880
you can do that directly from Twitch. Twitch gives you that ability. And then creating like a blog

00:24:10.880 --> 00:24:13.940
post stream note kind of thing that we've been posting on a website called Dev2,

00:24:14.180 --> 00:24:20.420
which is like a very developer centric blogging thing. So it's kind of like we went from medium.com

00:24:20.420 --> 00:24:25.660
to do a lot of our tech blogging. And now Dev2 is like a more comfortable environment for specific

00:24:25.660 --> 00:24:26.080
to us.

00:24:26.080 --> 00:24:27.960
Yeah. What do you think about the medium story these days?

00:24:27.960 --> 00:24:31.760
I've never really been too deep into blogging. So I don't know that I have a strong opinion one way

00:24:31.760 --> 00:24:36.660
or the other. I am really enjoying writing and posting on Dev2 nowadays because it's just

00:24:36.660 --> 00:24:40.080
marked down. I mean, not to say that you couldn't really do that in medium, I think, but...

00:24:40.080 --> 00:24:43.100
Yeah. There's just all that drama around medium going paid.

00:24:43.100 --> 00:24:43.720
Yes.

00:24:43.720 --> 00:24:47.560
Putting up the paywall in a lot of places. And I think that struck a lot of people as a little bit

00:24:47.560 --> 00:24:48.280
off.

00:24:48.280 --> 00:24:52.880
From that perspective, as somebody that's a casual medium, I'll go there, like people link to it.

00:24:52.880 --> 00:24:57.660
I get frustrated when I open up a website, whether it's on my phone or on a desktop,

00:24:57.660 --> 00:25:01.920
and I'm immediately presented with some type of notification, right? A platform that's supposed

00:25:01.920 --> 00:25:05.540
to be allowed people to read. Maybe if I'm midway through it, hit me up with something like that.

00:25:05.540 --> 00:25:09.500
But like immediately, that's where it's like a huge turnoff for me. But that's with any site,

00:25:09.560 --> 00:25:10.580
not let alone medium.

00:25:10.580 --> 00:25:11.240
Yeah, yeah. Sure.

00:25:11.240 --> 00:25:15.400
Cesar, what do you think about medium? Are you a fan? Did you see that as frustrating when they

00:25:15.400 --> 00:25:16.960
went paywall?

00:25:16.960 --> 00:25:21.320
Yeah, I saw that. I saw that. And I guess similar to Brian, it didn't really affect me as much

00:25:21.320 --> 00:25:23.680
because I'm not a big writer. I do a lot of video.

00:25:23.680 --> 00:25:24.580
Yeah, yeah. Me too.

00:25:24.580 --> 00:25:28.640
I'm very comfortable in doing video and those types of things, whether it's for channel line

00:25:28.640 --> 00:25:32.960
or the live stream that me and Brian are doing. I totally get it. And I understand why people

00:25:32.960 --> 00:25:38.080
would want to have a certain level of trust and a certain level of integrity when it comes to

00:25:38.080 --> 00:25:38.940
their written content.

00:25:38.940 --> 00:25:43.120
The first several years where it was taking off, people felt that I'm writing on this platform

00:25:43.120 --> 00:25:48.360
that's open for everyone. And then it became not open somewhat, which I feel like a lot of those

00:25:48.360 --> 00:25:51.160
people wouldn't have gone there in the first place had they known that was the destination.

00:25:51.160 --> 00:25:51.720
You know?

00:25:51.880 --> 00:25:56.920
Yeah, I totally agree with you. And I think one of the reasons why we do appreciate Dev2 is it's

00:25:56.920 --> 00:26:01.860
built on open source technology. The code for it is all actually open source. You could go and look

00:26:01.860 --> 00:26:06.780
at it. You could contribute to it. It's open from the ground up, right? Which is a great thing.

00:26:06.780 --> 00:26:11.540
Yeah, that's pretty awesome. Yeah. So people can find this stuff on YouTube. That's cool. And we'll put

00:26:11.540 --> 00:26:16.380
that link in the show notes and they can go back and check it out. Brian, does it cost anything to be,

00:26:16.520 --> 00:26:21.800
as a participant to like join, to watch your channel or anything like that? Like how does it

00:26:21.800 --> 00:26:21.960
work?

00:26:21.960 --> 00:26:23.640
No, everything is absolutely free.

00:26:23.640 --> 00:26:23.980
Okay.

00:26:23.980 --> 00:26:27.200
You just pop in, start tuning in. You can listen to it passively. You could stay,

00:26:27.200 --> 00:26:28.300
you know, really focused.

00:26:28.300 --> 00:26:31.080
Do you have to subscribe to get notified to get in? Or can I just like,

00:26:31.080 --> 00:26:34.300
is it just like go to like a YouTube video that's open or how does it work?

00:26:34.300 --> 00:26:37.200
Really? You just show up to the channel and you're able to catch everything. There's,

00:26:37.200 --> 00:26:41.100
there are options to subscribe. I mean, so if you want to get notified when things go live,

00:26:41.520 --> 00:26:45.720
Twitch has a feature where you follow and then you can turn on notifications for when somebody

00:26:45.720 --> 00:26:46.240
goes live.

00:26:46.240 --> 00:26:49.620
Right. Like create a free Twitch account and then you can subscribe and get an email or something

00:26:49.620 --> 00:26:49.940
like that.

00:26:49.940 --> 00:26:53.200
Absolutely. Yeah. Yeah. You create a free account. It doesn't cost anything to create an account

00:26:53.200 --> 00:26:57.640
and then you can just start watching things. The way Twitch will maybe, you know, get you to make

00:26:57.640 --> 00:26:59.960
some money is you'll see ads when you go to people's channels that way.

00:26:59.960 --> 00:27:02.200
I see. Okay. A little bit like YouTube in that regard.

00:27:02.200 --> 00:27:02.460
Yep.

00:27:02.520 --> 00:27:09.420
Okay. And as somebody else out there wants to do something like this, what's the story there? Like,

00:27:09.420 --> 00:27:13.260
do they have to be like a pro Twitch person or like, how's that work?

00:27:13.260 --> 00:27:17.860
No. I mean, it's very beginner. Well, it's not beginner friendly necessarily. It can be intimidating

00:27:17.860 --> 00:27:21.860
as somebody starting out wanting to start streaming on the platform or any platform in general.

00:27:21.860 --> 00:27:22.000
Yeah.

00:27:22.000 --> 00:27:28.320
But the general advice that I give people that are beginning is to pick a dedicated time once a week

00:27:28.320 --> 00:27:33.200
that you can consistently stick to so that you can actually get a feel for what it's like to be

00:27:33.200 --> 00:27:38.520
streaming and so that you don't necessarily, you know, lose sight of being able to continue to do

00:27:38.520 --> 00:27:43.120
it. Like what tends to happen is people think that they might want to start streaming and then they'll

00:27:43.120 --> 00:27:46.960
do one or two here and there and then they will, you know, they won't find the time to do it.

00:27:46.960 --> 00:27:51.060
It's kind of like having a TV show, right? People come to expect to see you at a certain time and date.

00:27:51.060 --> 00:27:53.980
And if you're not there, then you lose that traction that you might get.

00:27:53.980 --> 00:27:58.700
Yeah. Probably even more so than blogging or even podcasting because it's the inner live

00:27:58.700 --> 00:28:02.860
interactive is the bit that's interesting. So you've got to have it on a predictable timeframe,

00:28:02.860 --> 00:28:03.460
right?

00:28:03.460 --> 00:28:07.760
Yes, for sure. And then the other bit of advice I'd say in terms of like actually setting it up

00:28:07.760 --> 00:28:12.120
technology wise, I mean, I could go into detail about what I use, but really I just say, keep it

00:28:12.120 --> 00:28:16.120
basic. Just have a camera and share your desk, a desktop and you're good to go. You know,

00:28:16.120 --> 00:28:20.340
have whatever microphone start simple and then build upon that as you start realizing that you're

00:28:20.340 --> 00:28:22.540
really into doing this. You enjoy it.

00:28:22.540 --> 00:28:26.740
Right. Yeah. I've seen some super elaborate setups that various people have, especially in the gaming

00:28:26.740 --> 00:28:27.520
world. Yep.

00:28:27.520 --> 00:28:33.920
You know, like racing simulators and all sorts of weird and crazy awesome looking setups. But yeah,

00:28:33.920 --> 00:28:37.240
so you can get started pretty easy, huh? And I don't know. I mean, the mics that we're sitting here

00:28:37.240 --> 00:28:43.220
talking on, they probably sound pretty good. I guess the normal podcast mics and these are like $70.

00:28:43.220 --> 00:28:48.840
And I guess you probably wouldn't need much more than that. Plug it in the USB and you're good to go.

00:28:48.940 --> 00:28:52.980
For sure. You could definitely go that route, but I mean, use what you have to get started,

00:28:52.980 --> 00:28:57.160
to get a feel, to make sure that you really are interested and dedicated to continuing doing it

00:28:57.160 --> 00:29:00.200
before you make that investment. Right. I think what ends up happening is people,

00:29:00.200 --> 00:29:04.580
there's all kinds of options and things and hardware. You can geek out over it like crazy,

00:29:04.580 --> 00:29:04.880
right?

00:29:04.880 --> 00:29:05.220
Sure.

00:29:05.220 --> 00:29:09.200
Just like with that, like, I'm sure as you start getting into podcasts and you start off on certain

00:29:09.200 --> 00:29:13.100
types of hardware and then you dig deeper and you get into this elaborate setup that you got now.

00:29:13.160 --> 00:29:17.020
I spent a ridiculous amount of money on microphones to end up back on like the cheapest option.

00:29:17.020 --> 00:29:17.680
Oh, really?

00:29:17.680 --> 00:29:19.520
I spent over $1,000 on microphones.

00:29:19.520 --> 00:29:20.200
Oh my gosh.

00:29:20.200 --> 00:29:23.660
And these, like I said, are 70 bucks and I like them better than all those others. It's just like,

00:29:23.660 --> 00:29:27.760
you just got to search, right? But it would be ridiculous to do that at the beginning. But if

00:29:27.760 --> 00:29:32.260
I do this like two shows a week, every week for four years, it makes sense to like start to go

00:29:32.260 --> 00:29:33.300
see what works, right?

00:29:33.440 --> 00:29:38.080
Right. Exactly. And I think people will get intimidated and it basically, they stop themselves

00:29:38.080 --> 00:29:41.080
before they even get started because they're worried about what they're going to use setup wise.

00:29:41.080 --> 00:29:45.460
And you'd be surprised that the viewers actually, they'll know that you're a beginner streamer,

00:29:45.460 --> 00:29:48.800
but that will make them feel even more involved with it because they're like, they're there,

00:29:48.800 --> 00:29:51.160
they're first, right? They're the first post on the, on the...

00:29:51.160 --> 00:29:51.800
They want to support you.

00:29:51.800 --> 00:29:56.120
Right. And so that makes it interesting. And then they'll see you evolve over time and add to it and

00:29:56.120 --> 00:29:58.940
support you that way. And that's what the culture is all about there.

00:29:58.940 --> 00:30:00.120
It sounds pretty welcoming, really.

00:30:00.360 --> 00:30:05.060
Yes, it absolutely is. I mean, I've had, I've for the most part had a very positive and pleasant

00:30:05.060 --> 00:30:09.460
experience with the developer community on Twitch. That's not to say there isn't some negativity in

00:30:09.460 --> 00:30:12.400
the, in the usual trolling kind of that goes on that happens every now and then.

00:30:12.400 --> 00:30:12.620
It is online.

00:30:12.620 --> 00:30:16.660
Yeah, it is. We're on the internet folks, right? So, but for the most part, you'll see, you'll

00:30:16.660 --> 00:30:19.720
see it's very, very kind atmosphere on the platform there.

00:30:19.720 --> 00:30:24.340
That sounds really cool. It seems like it might be a good idea to like have a content calendar

00:30:24.340 --> 00:30:29.440
for in the early days, like before you do your first stream, like plan out what are the next,

00:30:29.640 --> 00:30:33.540
what does the next month look like? Because I can really, I can see it'd be so easy to

00:30:33.540 --> 00:30:37.380
get really into it, excited, do the one or two things you had on your mind and then go,

00:30:37.380 --> 00:30:41.140
I don't really know what to do now. Like do you guys, you have a pretty long-term plan.

00:30:41.140 --> 00:30:42.940
I guess that's what with like the course, for example.

00:30:42.940 --> 00:30:44.800
I mean, I guess it's a long-term plan.

00:30:44.800 --> 00:30:45.660
You had no idea.

00:30:45.660 --> 00:30:51.060
Again, when we first started this, it was Nina's course, learnpython.dev. It's two days

00:30:51.060 --> 00:30:56.640
and we're at month four, four plus now. And we're just in day one. I'm going to assume

00:30:56.640 --> 00:31:02.100
that we got at least another four months of content. But we have spoken a little bit about

00:31:02.100 --> 00:31:05.100
what are some other things that we'd like to do just in terms of topics.

00:31:05.100 --> 00:31:06.840
Yeah. Yeah. That'd be great. Like what else are you thinking?

00:31:06.840 --> 00:31:10.740
So, well, first of all, a lot of this too is also coming from the chat room, right? The chat

00:31:10.740 --> 00:31:16.100
room on Twitch, because we have a wide range of experience levels there from people that are

00:31:16.100 --> 00:31:21.740
brand new and I've never seen like code before to folks that write Python for a living. And,

00:31:21.740 --> 00:31:25.100
you know, again, just engaging with folks in the chat room and, you know, in the live stream,

00:31:25.100 --> 00:31:30.740
they suggest topics like, hey, can we talk about this? We did one last week on pipenv and

00:31:30.740 --> 00:31:36.540
on pyenv. And that was because some folks in the chat room, they kept asking about it. So we're

00:31:36.540 --> 00:31:39.320
like, well, let's just do it. Right. And now seems like a good time to do it.

00:31:39.320 --> 00:31:45.100
Yeah. Yeah. Yeah. You keep saying pip3-python-mvmv, right? Or something like that.

00:31:45.100 --> 00:31:48.580
And they're like, well, I've heard there's other things, right? So you could just make

00:31:48.580 --> 00:31:49.640
that the topic of the day.

00:31:49.640 --> 00:31:53.820
Yeah. And what becomes important there now too is because we want to remain beginner friendly,

00:31:53.820 --> 00:31:59.140
it's important that we have a certain amount of like foundational content there first,

00:31:59.140 --> 00:32:03.020
right? Because when the first, well, I think the first time somebody suggested it,

00:32:03.020 --> 00:32:07.840
I was like, you know, that seems like a little bit ahead of like where we want to be right now.

00:32:07.840 --> 00:32:08.180
Yeah. Yeah. Yeah.

00:32:08.180 --> 00:32:10.920
It seems a little bit intimidating. It was intimidating for me.

00:32:10.920 --> 00:32:15.600
How about we start with like some machine learning car, like can we do self-driving

00:32:15.600 --> 00:32:19.080
cars and put it on like an RC car? Like let's start there, right? Like maybe not.

00:32:19.080 --> 00:32:23.840
Folks have asked about Docker, they've asked about machine learning, about web stuff. But again,

00:32:23.840 --> 00:32:28.280
like we're in day one, right? Four months later, we're in day one. But we're just trying to make

00:32:28.280 --> 00:32:32.340
sure that cover our bases and make sure that everybody understands what is a function and

00:32:32.340 --> 00:32:36.960
understands what's conditional logic. And then what is an environment and what is pip and what is a

00:32:36.960 --> 00:32:41.740
package? And like, where does this code come from? Like, does it just come from outer space and now

00:32:41.740 --> 00:32:46.240
I just use it? Like, you know what I mean? Like what do those things look like? Because I think unless

00:32:46.240 --> 00:32:50.540
you have that foundational information, you're not going to understand the benefit of using this tool.

00:32:50.540 --> 00:32:51.140
Yeah.

00:32:51.140 --> 00:32:54.980
And so it's answering the question for like that one person, like let's answer it for everybody

00:32:54.980 --> 00:32:57.220
and just make sure that we're all on the same foundation.

00:32:57.380 --> 00:33:01.740
I find it very powerful to say, it's one thing to write down, here's what you do to do a thing.

00:33:01.740 --> 00:33:07.080
It's all, it's entirely another to see like, here was a blank screen and nothing complicated happened.

00:33:07.080 --> 00:33:11.540
And then now here's something awesome created, right? Like I think just seeing that built up

00:33:11.540 --> 00:33:15.500
is a really powerful experience that it seems like that's like a good part of the channel.

00:33:15.500 --> 00:33:19.920
Like you have screen sharing, you got the editor open using VS Code a lot of the times,

00:33:19.920 --> 00:33:22.760
right? And you're just over there working on that. That's really great for beginners.

00:33:22.760 --> 00:33:27.000
There's a lot of opportunity on both sides of the table. I've definitely learned a lot. I'm sure

00:33:27.000 --> 00:33:30.520
Brian will say the same thing. He's definitely learned a lot. It's definitely affected even our

00:33:30.520 --> 00:33:36.400
jobs, to be honest with you. This portion of Talk Python To Me is brought to you by the University

00:33:36.400 --> 00:33:42.480
of San Francisco. Learn how to use Python to analyze the digital economy in the new master's in applied

00:33:42.480 --> 00:33:46.980
economics at the University of San Francisco. Located at the epicenter of digital disruption,

00:33:46.980 --> 00:33:51.020
USF is the ideal launching pad for the next phase of your career.

00:33:51.560 --> 00:33:56.700
Their new STEM-designated economics program doesn't just provide technical training in high-demand

00:33:56.700 --> 00:34:02.480
skills like machine learning, causal inference, experimental design, and econometrics. It takes

00:34:02.480 --> 00:34:07.180
the next step, teaching you how to apply these techniques to understand the economics of platforms,

00:34:07.180 --> 00:34:13.480
auctions, pricing, and competitive business strategy in the world of big data. The program is open to

00:34:13.480 --> 00:34:19.520
beginner and to advanced coders looking to apply their skills in a new area. Applications are now open for

00:34:19.520 --> 00:34:26.400
the fall 2020 classes. To learn more and get an application fee waiver, go to talkpython.fm slash

00:34:26.400 --> 00:34:30.080
USF. That's talkpython.fm/USF.

00:34:31.360 --> 00:34:36.400
Tell us about that. How has it influenced you outside of just what you're doing on the channel

00:34:36.400 --> 00:34:36.700
itself?

00:34:36.700 --> 00:34:42.080
Sure. So under developer advocacy, it's more than just .NET and it's more than just JavaScript. There's a

00:34:42.080 --> 00:34:47.180
whole ecosystem of languages and tooling and libraries and SDKs and those types of things.

00:34:47.180 --> 00:34:53.520
We were talking about it yesterday. The Python SDK for Visual Studio is tens of millions of downloads.

00:34:53.780 --> 00:34:58.080
It's easily one of the most popular ones that's there. But now, knowing Python a little bit better,

00:34:58.080 --> 00:35:02.340
I could go in and look at some of these features and understand why would these features be beneficial

00:35:02.340 --> 00:35:03.520
and why would you care about them?

00:35:03.520 --> 00:35:07.140
Right. Or maybe even give feedback to the team like, yeah, technically this works, but it's not

00:35:07.140 --> 00:35:09.640
the way the community would first guess, right?

00:35:09.640 --> 00:35:13.940
Yeah, totally. Definitely can be able to do things like that. And now, even again, at day one,

00:35:14.000 --> 00:35:17.980
right, four months later, I'm thinking about, well, what does it feel like to publish a Python

00:35:17.980 --> 00:35:18.800
web application?

00:35:18.800 --> 00:35:19.020
Yeah.

00:35:19.020 --> 00:35:23.680
So I have a background in web development and web APIs from a .NET perspective. You know what

00:35:23.680 --> 00:35:28.280
I mean? Again, like Brian knows about Express and Node and JavaScript things. Now I'm kind of

00:35:28.280 --> 00:35:31.400
curious, what does it look like to take that existing knowledge and apply it to Python, right?

00:35:31.400 --> 00:35:33.540
How much is it the same? How much is it totally different?

00:35:33.540 --> 00:35:36.820
How much is it the same? What does it feel to actually publish something and build a web API

00:35:36.820 --> 00:35:42.660
and build a web front end and add JavaScript to it and CSS? What does that publishing tool

00:35:42.660 --> 00:35:46.600
chain look like? And how does it feel like for us publishing it to Azure? Because again,

00:35:46.600 --> 00:35:50.260
we work in Azure and Azure pays the bills, right? So we got to talk about that a little bit.

00:35:50.260 --> 00:35:52.260
Brian, how about you? How's it affected your role here?

00:35:52.260 --> 00:35:56.080
Very much the same what Cecil was saying. We're seeing opportunities where we can help contribute

00:35:56.080 --> 00:36:00.820
in those respects to Python outside of the ones that we kind of got hired on for.

00:36:00.820 --> 00:36:05.600
But in addition to that, like case in point in Microsoft Ignite here, I just gave my first talk

00:36:05.600 --> 00:36:11.380
that involved Python ever at Ignite of all places. So yeah, it's been really fun and exciting.

00:36:11.380 --> 00:36:16.400
And it's kind of nice to just add that to the developer tool belt, my skill set there, right?

00:36:16.400 --> 00:36:21.000
Yeah, I'm sure it lets you connect with that whole area of the industry that maybe just being a pure

00:36:21.000 --> 00:36:24.060
JavaScript developer didn't really, you know, you couldn't relate to as well.

00:36:24.060 --> 00:36:24.440
For sure.

00:36:24.440 --> 00:36:28.520
What's your plans for topics? Have you guys decided? I know you got four,

00:36:28.520 --> 00:36:33.220
four more months of Nina's course, but do you actually have any idea what you're doing next?

00:36:33.220 --> 00:36:34.500
No, I have no idea.

00:36:34.500 --> 00:36:34.860
Yeah?

00:36:34.860 --> 00:36:40.200
No, I'm just kidding. I mean, well, so with my other streams, I probably the Python stream series that we

00:36:40.200 --> 00:36:44.940
have, it's probably the one that we have, or the one I have that's most planned out, honestly.

00:36:44.940 --> 00:36:50.080
The other ones, I just kind of like, I have a general direction and I just kind of go with it.

00:36:50.080 --> 00:36:53.980
With ours, we're going to finish going through Nina's, looking at Cecil to make sure we're on

00:36:53.980 --> 00:36:55.020
the same page. I think we are.

00:36:55.020 --> 00:36:56.900
Yeah, you're going to decide on the spot right here.

00:36:56.900 --> 00:37:00.900
Everybody's going to hear it in the podcast now for the first time.

00:37:00.900 --> 00:37:01.540
Exclusive.

00:37:02.120 --> 00:37:05.440
So we're going to finish up the course, and I think we're going to start building out

00:37:05.440 --> 00:37:10.240
like little tools and fun ways to like integrate that, like getting to the point, like Cecil

00:37:10.240 --> 00:37:13.860
was saying, where we're going to publish something in production and run it. That would be maybe

00:37:13.860 --> 00:37:18.020
even interact with the chat room and through the Twitch stream and that kind of thing.

00:37:18.020 --> 00:37:22.740
Right, right. Maybe some sort of API out there on Flask or something that then like drives,

00:37:22.740 --> 00:37:24.660
who knows, people could talk to you and something happens.

00:37:24.660 --> 00:37:31.540
Yeah, and the other thing I've been itching to get into doing is a little bit IoT, which is what I spoke

00:37:31.540 --> 00:37:32.160
about here at Ignite.

00:37:32.160 --> 00:37:33.000
Sure, yeah, yeah, okay.

00:37:33.000 --> 00:37:37.280
In particular, like a lot of times my office at home, running all this stuff, this hardware to do the

00:37:37.280 --> 00:37:41.720
stream, it gets hot in there and I have to, you know, this is a lazy moment here, right? But I have

00:37:41.720 --> 00:37:46.460
to get up and I have to turn my fan on to cool the room off so that I, but like that's me stepping

00:37:46.460 --> 00:37:52.180
away from the show so I can go do that. So I'd love to have the IoT device listen for the temperature

00:37:52.180 --> 00:37:57.500
with Python, you know, maybe trigger the fan to go on its own kind of thing. But we'll

00:37:57.500 --> 00:37:58.280
see where we go with it.

00:37:58.280 --> 00:38:04.860
It does sound a little bit lazy, but I also find like when I'm recording a show or I'm doing

00:38:04.860 --> 00:38:08.820
something where I'm like programming, I'm deeply engaged, you don't feel like it's a little

00:38:08.820 --> 00:38:14.620
hot. Like you get like knocked out of your flow and like, dang, it is hot in here. How

00:38:14.620 --> 00:38:19.100
is it so hot? And then you're like, got to get up and it like breaks your thought, right?

00:38:19.140 --> 00:38:22.340
Like in your live streaming, I think you don't want to do that, right?

00:38:22.340 --> 00:38:25.460
Exactly. You're getting all sweaty. You got the headphones on covering your ears, you know,

00:38:25.460 --> 00:38:27.020
it's three hours later, right?

00:38:27.020 --> 00:38:31.400
Dang, I'm tired. Well, it was 95 degrees in your attic. What was I doing? And you guys are

00:38:31.400 --> 00:38:34.480
both in Florida where that's a legitimately common thing, right?

00:38:34.480 --> 00:38:34.900
Yeah.

00:38:34.900 --> 00:38:41.260
Yeah. I wanted to ask you about the interaction with the audience. So maybe Cecil, I'll go to

00:38:41.260 --> 00:38:45.180
you first on this one. What I've seen when people come in, they'll like send you feedback

00:38:45.180 --> 00:38:49.920
or say, I have a question about this or what if you, it's cool that you wrote the code this way,

00:38:49.920 --> 00:38:54.420
but what would happen if we, you made this tweak to it, right? Have you, or do you have any plans

00:38:54.420 --> 00:39:00.300
of having like deeper requirements for participation? Like, Hey everybody, like what I want you to do is

00:39:00.300 --> 00:39:03.700
write this program and then we're going to come discuss it. Or I want you to read this,

00:39:03.700 --> 00:39:08.180
this article and then we're going to dive into it or like anything like where people will need to

00:39:08.180 --> 00:39:10.980
come more prepared or is it all just like drop in and like take it in?

00:39:10.980 --> 00:39:15.380
I think we've loosely spoken about it. So again, like if you look at Nina's course,

00:39:15.380 --> 00:39:17.340
there is a practice section.

00:39:17.340 --> 00:39:17.640
Okay.

00:39:17.640 --> 00:39:22.040
So again, so it's, it's two days and each day, at least the first day was split up into eight

00:39:22.040 --> 00:39:27.040
separate modules. And at the end of the module is a practice section, which kind of is, you know,

00:39:27.040 --> 00:39:31.720
just exercises and muscle memory exercises that you could do to, you know, remember what we just did.

00:39:31.720 --> 00:39:36.980
And we don't usually do that one on stream. That's usually like an exercise that we leave for

00:39:36.980 --> 00:39:41.260
the folks that are looking at the YouTube video and the live stream to kind of do it yourself. Like we

00:39:41.260 --> 00:39:45.480
encourage, Hey, well, you know, we didn't do this little piece of it, but please you go ahead and

00:39:45.480 --> 00:39:49.220
for your own practice and, you know, just understanding, like go ahead and play around with it.

00:39:49.220 --> 00:39:53.360
But I can imagine like going forward in the future, we can have more ways for people to

00:39:53.360 --> 00:39:54.520
interact with things.

00:39:54.520 --> 00:39:58.440
I don't know if it's with the Zen of the show, right? Like if you have too much of a requirement,

00:39:58.440 --> 00:40:02.020
it might, the people who would just drop in might turn them off. Right. But

00:40:02.020 --> 00:40:06.200
we don't want to do it in a way that it makes you feel left out. Yeah.

00:40:06.200 --> 00:40:11.460
Like if you come in and week 20 and this is your first time being on the show, right? You should

00:40:11.460 --> 00:40:16.400
still feel very welcome and included in whatever it is that we're talking about. You know, subject

00:40:16.400 --> 00:40:20.600
matter may or may or may not be a little bit over your head, depending on like what your experience

00:40:20.600 --> 00:40:24.500
level is, but you should still feel welcome to like sit in the room. Right. And we're all at the

00:40:24.500 --> 00:40:25.560
table and we're all learning together.

00:40:26.020 --> 00:40:30.420
We spoke a little bit about having like a submission form for like, like questions,

00:40:30.420 --> 00:40:33.140
but for questions and for also topics. Yeah.

00:40:33.140 --> 00:40:36.180
When this thing is done, like what are some of the things that you want to learn about? And

00:40:36.180 --> 00:40:39.340
maybe you could do like a voting thing. Right. You could let them vote on it and see what one

00:40:39.340 --> 00:40:42.520
gets voted up or something like that. Yeah. Like do like a voting thing. But I think anything

00:40:42.520 --> 00:40:47.500
that we do in terms of interactivity would be very subtle. It won't be like, you have to do

00:40:47.500 --> 00:40:50.880
this else you can't sit in this chat room kind of thing. It's not going to be like,

00:40:50.880 --> 00:40:54.040
yeah, it won't make any sense unless you've deployed your app yet. Yeah. It's not going to be that

00:40:54.040 --> 00:40:57.600
serious, but you know, hopefully it'll be something fun and interesting. And you know,

00:40:57.600 --> 00:41:01.720
maybe we'll turn on some more lights in Brian's office, you know, turn on his fan and stuff like

00:41:01.720 --> 00:41:05.580
that. You know, we'll see what happens. The IoT thing is fun. It's definitely got a good Python

00:41:05.580 --> 00:41:09.620
angle, right? You could do MicroPython or CircuitPython. Are you thinking of getting something

00:41:09.620 --> 00:41:12.880
from like Adafruit or something like that, Brian? Well, it's so funny you say that because that's

00:41:12.880 --> 00:41:16.580
what the talk was about. It was the CircuitPython Express by Adafruit. Nice. Yeah. That's such a

00:41:16.580 --> 00:41:20.880
cool little device, right? Like it's 25 bucks and it's got quite a bit of smarts on it. Oh my gosh.

00:41:20.880 --> 00:41:25.760
Yeah. I'm so blown away by it. Like all everything that's built into that little device that you can

00:41:25.760 --> 00:41:29.500
do. And it's just so fun. It's great. But the same sense that we're talking about before,

00:41:29.500 --> 00:41:32.920
beginner friendly type stuff. If you're looking to get introduced to programming, introduced to

00:41:32.920 --> 00:41:39.640
electronics, that thing is a great way to go about doing it and introducing yourself or students,

00:41:39.640 --> 00:41:43.420
that kind of thing into the whole atmosphere. Yeah. I feel like the programming for that stuff is not

00:41:43.420 --> 00:41:49.440
too intense often as well. It's not like, well, we've got these 10 files and here's where the CSS is

00:41:49.440 --> 00:41:54.340
and here's the database migration. It's like, usually there's like the code.py or main.py and

00:41:54.340 --> 00:41:57.820
you kind of just put it there and it's pretty straightforward. Yeah. They did a fantastic job

00:41:57.820 --> 00:42:02.360
of making that device, like removing the friction, right? Of setting up all the things. All you do is

00:42:02.360 --> 00:42:07.360
change the code.py file and you're good to go. It'll recognize that you made changes and load it all up

00:42:07.360 --> 00:42:11.080
and get things running. It's really interesting. You know, it came from the BBC micro bit. I,

00:42:11.080 --> 00:42:15.440
that the whole idea of the micro Python stuff, I think certainly that's where it first was,

00:42:15.440 --> 00:42:21.620
was used a lot. And there were a bunch of really interesting studies around exposing kids to that.

00:42:21.620 --> 00:42:26.220
Like I think every seventh grader in the UK or something got one for one year and they did a

00:42:26.220 --> 00:42:33.160
bunch of studies and girls were way more likely to say like coding is something that I would consider as a

00:42:33.160 --> 00:42:38.580
professional profession compared to, you know, before or after, before, you know, other groups

00:42:38.580 --> 00:42:43.220
who didn't do that or whatever. And it's, it just seems like that little hands-on bit has such a

00:42:43.220 --> 00:42:47.680
powerful effect, especially for, for kids who, you know, don't want to wait for like a website to be

00:42:47.680 --> 00:42:51.560
built like really a long ways. I think that's fantastic. And anything that can help make it

00:42:51.560 --> 00:42:55.660
more welcoming and encouraging for people to, you know, of all kinds of backgrounds and experiences

00:42:55.660 --> 00:42:59.560
to join in on it is a fantastic thing. Yeah. I actually even experienced it with my own

00:42:59.560 --> 00:43:03.280
daughter as I was preparing the talk. I was, you know, tinkering with the device, getting acquainted

00:43:03.280 --> 00:43:07.620
with it. And so we have it set up to where if you shake it, it will turn the lights on or off.

00:43:07.620 --> 00:43:11.480
And she's only two years old, but she's still like, wow, look at these lights, you know, like it's going

00:43:11.480 --> 00:43:15.360
on and off. And I thought that was the coolest thing. And I'm glad I have it now because it'll be a

00:43:15.360 --> 00:43:20.040
great way to like give her the opportunity to explore that area out. And if she's interested in it,

00:43:20.040 --> 00:43:23.840
that's super cool. Cecil, do you do anything with your son? How old is he now? Cameron's seven.

00:43:23.960 --> 00:43:29.420
Yeah. We haven't done anything in terms of like getting him on the keyboard to like type stuff or

00:43:29.420 --> 00:43:33.640
anything like that. It's a little bit early because like the working with the words and the letters,

00:43:33.640 --> 00:43:36.780
probably that age is still just a little challenging, but like it's soon, right?

00:43:36.780 --> 00:43:41.900
What I have done. So like there's this little robot set that he got and robots as in like they're

00:43:41.900 --> 00:43:46.020
cardboard robots. Okay. But essentially what it does is that one, it kind of gets you in the habit of

00:43:46.020 --> 00:43:50.860
like putting pieces together. Then the robot becomes functional, right? So like there's a lever and

00:43:50.860 --> 00:43:56.120
the arms raise and the head tilts and it does like stuff like that. And then there's this one other,

00:43:56.120 --> 00:44:01.540
I guess, I don't know if it's really coding or not, but it's like a programming tool where you have

00:44:01.540 --> 00:44:06.180
like this little robot, like a real robot, like a little plastic thing with wheels on it. And there

00:44:06.180 --> 00:44:10.240
is a input device that has three buttons on it, right? There's right, left and there's forward.

00:44:10.240 --> 00:44:16.140
And you could, depending on the combination that you put in, you could use it to like, it'll detect the

00:44:16.140 --> 00:44:20.240
wall. Like there's a sensor in front of it. You can tell it what to do when it sees a wall.

00:44:20.240 --> 00:44:25.780
Right. So you put in the input by that little device and then you could have it like go through

00:44:25.780 --> 00:44:29.660
like an obstacle course. I see. I'm trying to remember what the device is called. I honestly

00:44:29.660 --> 00:44:32.500
don't remember. But the sequence is like, it's one of the many toys in this room.

00:44:32.500 --> 00:44:36.320
Right. And then left and then right, then right. And so you can like hit that key combination

00:44:36.320 --> 00:44:37.740
or something like that. Yeah.

00:44:37.740 --> 00:44:42.360
Right. Right. So you, you know, you put some blocks and whatever cases on the floor and you put in a key

00:44:42.360 --> 00:44:46.240
combination. But you know, at some point, like you're going to hit the wall of the room. Like,

00:44:46.240 --> 00:44:49.920
what does it do when it sees the wall? Right. So like he's done things where he just,

00:44:49.920 --> 00:44:54.640
he has it turned up the opposite way around and like does the obstacle course in reverse or,

00:44:54.640 --> 00:44:58.120
you know, have it go out in the hallway or, you know, just have it do different things.

00:44:58.120 --> 00:45:03.920
And it also has like a, like a backhoe thing, like a, like a scoop in front of it. So now you can have

00:45:03.920 --> 00:45:06.640
it like pick things up and move around and like put it somewhere else.

00:45:06.640 --> 00:45:08.600
Go get your Lego and carry it around or something.

00:45:08.600 --> 00:45:10.520
It's kind of programming. Kind of not.

00:45:10.620 --> 00:45:13.320
Yeah. It's like programming without the words.

00:45:13.320 --> 00:45:15.180
There's no computer programming.

00:45:15.180 --> 00:45:18.540
Right. And that's what I kind of want to do. I want to get in the mental mind,

00:45:18.540 --> 00:45:22.720
the mindset of problem solving and not necessarily like being in front of the screen. Cause no,

00:45:22.720 --> 00:45:26.660
this is something that we could do in the backyard or on the porch or in the living room. Like you

00:45:26.660 --> 00:45:29.840
don't have to be on a screen, on a tablet or on a smart device to kind of do it.

00:45:29.840 --> 00:45:32.060
That's cool. Yeah. My daughter, who's 11 and in sixth grade,

00:45:32.060 --> 00:45:37.400
she was really into codecombat.com where you go and you go into the dungeon and you solve the problem.

00:45:37.400 --> 00:45:41.200
You actually type Python, but it's like the auto complete is so incredible.

00:45:41.200 --> 00:45:46.140
Like you can say hero dot attack enemy and you type a and it auto completes that whole line.

00:45:46.140 --> 00:45:46.620
You know what I mean?

00:45:46.620 --> 00:45:46.880
Yeah.

00:45:46.880 --> 00:45:50.680
And like, yeah, it's, so there's a bunch of cool opportunities around that.

00:45:50.680 --> 00:45:55.760
So maybe Brian, let's talk a little bit about your setup. I know you said people can get started

00:45:55.760 --> 00:45:59.980
just like with whatever, but I was kind of wondering, cause when I go and watch you,

00:45:59.980 --> 00:46:05.280
you're sort of just a disembodied person stuck in the corner, right? You've got like a cool green

00:46:05.280 --> 00:46:10.580
screen and some mics and you've got like a bunch of stuff that will rain down. Like you can like do

00:46:10.580 --> 00:46:15.920
all these little sounds and you talked about the light. So maybe give people a sense like where you

00:46:15.920 --> 00:46:18.340
could go with like hardware and setup and stuff.

00:46:18.340 --> 00:46:24.020
I originally was streaming from my MacBook pro, like the 2016 kind of model. And I found that it can work

00:46:24.020 --> 00:46:28.060
on there just fine streaming from there. But you know, the fan starts spinning up and like,

00:46:28.060 --> 00:46:32.180
that's all you hear. Right. And you could tell it's just really cranking out as hard as it can to

00:46:32.180 --> 00:46:36.040
support all this, right? Sure. Okay. And so then I, of course, being the technologist

00:46:36.040 --> 00:46:40.240
enthusiast that I am. Maybe something with two G forces in there would be better.

00:46:40.240 --> 00:46:45.520
Yeah. So I built out a custom PC that I could use for gaming and for this. So it was kind of like

00:46:45.520 --> 00:46:51.240
twofold there. And that thing is more powerful to handle streaming. So like, obviously the better the

00:46:51.240 --> 00:46:55.360
hardware that can do a lot of the video encoding and uploading and having a good internet connection

00:46:55.360 --> 00:46:57.660
through your internet service provider is key.

00:46:57.880 --> 00:46:59.780
What's the resolution you stream at?

00:46:59.780 --> 00:47:01.220
I stream at 1920 by 1080.

00:47:01.220 --> 00:47:01.860
That's pretty high.

00:47:01.860 --> 00:47:05.320
Fairly high. Yeah. I mean, that's, that's really the range that you kind of want to

00:47:05.320 --> 00:47:10.820
be at. Well, mostly for gaming because I was doing some game streaming. So you could go down to 720p

00:47:10.820 --> 00:47:14.840
if you wanted to. And people won't mind that, especially for programming.

00:47:14.840 --> 00:47:17.980
Yeah. Sometimes it helps to have the smaller resolution so you can actually read like the

00:47:17.980 --> 00:47:21.600
menu items and stuff a little bit. But yeah, it's always a trade-off, right?

00:47:21.600 --> 00:47:22.000
Right.

00:47:22.100 --> 00:47:26.280
All right. So you got this pretty awesome PC that you built out.

00:47:26.280 --> 00:47:31.900
Yep. And then I have a combination of cameras, cameras that I had are really work related that

00:47:31.900 --> 00:47:34.780
I'm using for that, that we do and shoot other videos with.

00:47:34.780 --> 00:47:38.560
Are these like fancy webcams or DSLRs or...

00:47:38.560 --> 00:47:43.500
I started out with just like the Logitech C920, which is like the standard go-to one that like

00:47:43.500 --> 00:47:44.900
every streamer pretty much is using.

00:47:44.900 --> 00:47:45.280
Yeah. Okay.

00:47:45.280 --> 00:47:50.180
It's relatively priced well. And I think they have a newer model now, so you can probably even get that

00:47:50.180 --> 00:47:55.800
one, the 920 at a cheaper price than what it used to be. But then the big one that I use that I don't

00:47:55.800 --> 00:48:00.220
take advantage of the full capabilities of it because I'm a little bit limited with some of the hardware

00:48:00.220 --> 00:48:05.480
that I have, the interfaces with that. But I have a Canon XC15, which can do 4K at 60 frames per

00:48:05.480 --> 00:48:10.980
second. Okay. That's pretty awesome. But I'm only really getting 1080p at like 30 frames per second.

00:48:10.980 --> 00:48:15.220
Right. But that's just for your body, which is like a small little thing in the corner. So right.

00:48:15.220 --> 00:48:18.800
It's probably fine, right? That's why I'm not worried about it. Like I could upgrade to another

00:48:18.800 --> 00:48:22.640
device that captures that video at the higher resolution and frame rate. Maybe if you were

00:48:22.640 --> 00:48:27.620
streaming like just you and not you plus screen. Absolutely. Yeah. So yes. And then I use the green

00:48:27.620 --> 00:48:31.060
screen to help because the big thing, like you were talking about before, you want to be able to see

00:48:31.060 --> 00:48:37.520
a lot what's going on. And so I grabbed the green screen to help remove some of my background so

00:48:37.520 --> 00:48:41.880
that people could see what's behind me. If something's going on there, notifications or

00:48:41.880 --> 00:48:44.960
whatever, that'd be available. What mic do you use? What microphone? Yeah.

00:48:44.960 --> 00:48:49.000
Rody Podcaster. That's a pretty good one. That's one of the ones I've tried.

00:48:49.000 --> 00:48:50.560
I don't know. That's how you pronounce it, right?

00:48:50.560 --> 00:48:53.900
For sure. I've definitely tried that. But it's not necessarily the best, but then I have software

00:48:53.900 --> 00:49:00.660
that helps clean up a lot of my audio. I'm using VoiceMeeter, Potato, and Cantabile to help do some

00:49:00.660 --> 00:49:04.800
pre-send. I don't even know the technical terms. I'm just winging it, honestly, with this stuff,

00:49:04.800 --> 00:49:09.000
man. Yeah. But it's doing a lot of noise filtering pre-before it even gets into VoiceMeeter and then

00:49:09.000 --> 00:49:14.480
into my streaming software, which is all for-this is all-well, VoiceMeeter you could pay for. It's

00:49:14.480 --> 00:49:19.700
like Nagware, right? They will ask you. Yeah. Okay. Yeah. And then there's a free version of

00:49:19.700 --> 00:49:23.160
Cantabile. The main streaming software you're going to be using if you want to get started is called

00:49:23.160 --> 00:49:25.720
Open Broadcasting Software or OBS, OBS. Okay.

00:49:25.720 --> 00:49:30.020
That thing can be very intimidating, but once you get, there's tons of YouTube videos out there that

00:49:30.020 --> 00:49:34.320
will help you get acquainted with it. And once you get the kind of gist of it, you'll really be able to

00:49:34.320 --> 00:49:37.060
come up with some cool stuff like you've seen on the stream there.

00:49:37.060 --> 00:49:39.820
Yeah. Yeah. The stream is super cool. I think you're doing a really nice job.

00:49:39.820 --> 00:49:40.560
Thanks.

00:49:40.560 --> 00:49:45.840
Yeah. I mean, I guess give us, if somebody want to do that, what's the price tag? Is it expensive?

00:49:45.840 --> 00:49:50.100
Like how much of this stuff costs money? Obviously the road podcasters like do $300.

00:49:50.360 --> 00:49:54.660
Like I was saying before, I would start simple. Use whatever you can and then slowly iterate on

00:49:54.660 --> 00:49:59.320
there and add to it. Right. But I don't even know honestly what I'm up to because I've been,

00:49:59.320 --> 00:50:05.080
it's like every couple of months, maybe not even, I haven't even done a recent hardware update. I've

00:50:05.080 --> 00:50:09.100
just been happy with the setup now that I'm at, but I would say like every couple of months or so,

00:50:09.100 --> 00:50:12.520
I would like look to see, all right, let me see if I can upgrade the microphone or I can upgrade this

00:50:12.520 --> 00:50:15.360
aspect of it. That's what my advice would be around that.

00:50:15.360 --> 00:50:20.640
Okay, cool. And Cecil, you're pretty, pretty much just using like your podcast stuff and whatnot.

00:50:20.640 --> 00:50:25.180
I definitely had some podcasting material equipment from before.

00:50:25.180 --> 00:50:25.460
Yeah.

00:50:25.460 --> 00:50:30.340
So I have a Scarlet box, very similar to the Scarlet box you have right now, you know,

00:50:30.340 --> 00:50:35.100
and I have just have like an XLR microphone and that's really about it, right? Like I have some

00:50:35.100 --> 00:50:39.020
software on my computer that I used to use for like audio filtering and those types of things.

00:50:39.100 --> 00:50:43.920
But that's really about it. The stream is not coming off of my machine. So essentially what

00:50:43.920 --> 00:50:49.520
happens, Brian and I are not in the same location when we're streaming. So I will call him via some

00:50:49.520 --> 00:50:51.740
video conferencing software and he'll just like...

00:50:51.740 --> 00:50:53.260
Like Zoom or Skype or something like that?

00:50:53.260 --> 00:50:57.100
Zoom or Skype or whatever the case is. And then he'll like just put me in into like a frame,

00:50:57.100 --> 00:50:58.200
like on the screen.

00:50:58.200 --> 00:51:02.020
And you can do that with this open broadcast software? That is fancy. That's awesome.

00:51:02.020 --> 00:51:03.420
Yeah. Obvious is pretty cool.

00:51:03.420 --> 00:51:03.740
Yeah.

00:51:03.740 --> 00:51:07.860
So you can have different screens and different setups. So now we can have one where both of us,

00:51:07.860 --> 00:51:12.920
both of our faces are on screen. Or I think he has another scene where I could share my desktop.

00:51:12.920 --> 00:51:18.320
And so now my desktop is like in full view, right? And we just have like little floating heads in the

00:51:18.320 --> 00:51:18.520
corner.

00:51:18.520 --> 00:51:18.960
Right, right, right.

00:51:18.960 --> 00:51:23.740
And so that helps too, right? So now we could both be on screen, but now you have a full view of the

00:51:23.740 --> 00:51:26.920
code and the editor on my desktop and whatever else we're talking about.

00:51:26.920 --> 00:51:29.160
Yeah. It looks like Brian's really got it dialed in. That's awesome.

00:51:29.160 --> 00:51:32.980
Yeah. So I'm lucky. I just piggyback off of whatever he's doing. I just show up and talk.

00:51:32.980 --> 00:51:35.180
Brian does all of the hard work.

00:51:35.180 --> 00:51:38.900
We patch in the sound effects and everything that people can play so that he can hear when

00:51:38.900 --> 00:51:44.740
things happen. It's kind of hard being on a video call. You don't want to have the stream up on your

00:51:44.740 --> 00:51:49.740
machine and the volume loud so it comes through your microphone. So I patch all the audio into the

00:51:49.740 --> 00:51:54.000
video call with him so that he can hear it. And it's all through that voice meter potato software.

00:51:54.000 --> 00:51:54.660
It's super helpful.

00:51:54.660 --> 00:51:57.260
Your own little broadcasting booth. It sounds like it.

00:51:57.260 --> 00:51:58.120
It's a ton of fun, man.

00:51:58.120 --> 00:51:59.780
It's open. What's the name of the software again?

00:51:59.780 --> 00:52:04.360
Open broadcasting software. It's up on GitHub. You get it for free. It's open source. It's cool.

00:52:04.360 --> 00:52:07.880
That's awesome. All right, guys. Well, I think we're getting pretty short on our time and this

00:52:07.880 --> 00:52:13.880
booth is going to run out. So really quickly, one question each to close out the show. When you're

00:52:13.880 --> 00:52:16.520
writing some code, what editor do you use?

00:52:16.520 --> 00:52:17.520
Visual Studio Code.

00:52:17.520 --> 00:52:18.320
All right, Cecil.

00:52:18.320 --> 00:52:21.360
This is not even fair. I also use Visual Studio Code.

00:52:21.360 --> 00:52:24.980
All right, right. Not a big surprise, is it? Especially with some of the announcements today.

00:52:24.980 --> 00:52:29.280
That's cool. All right, guys. Thanks so much for being on the show and sharing your look inside the

00:52:29.280 --> 00:52:30.920
Twitch stream and all that. It's been fun.

00:52:30.920 --> 00:52:34.900
Yeah, awesome. And I'd definitely love for folks to check it out. And we'll have the links and stuff

00:52:34.900 --> 00:52:39.600
like that inside of the show notes. So hopefully you could see us every Wednesday at 11 o'clock

00:52:39.600 --> 00:52:42.480
at 11 a.m. Eastern Standard Time on Twitch.

00:52:42.480 --> 00:52:43.900
All right, awesome. Thanks. Bye.

00:52:44.700 --> 00:52:49.260
This has been another episode of Talk Python To Me. Our guests on this episode were Cecil

00:52:49.260 --> 00:52:53.880
Phillip and Brian Clark. And it's been brought to you by Linode and the University of San Francisco.

00:52:53.880 --> 00:52:59.400
Start your next Python project on Linode's state-of-the-art cloud service. Just visit

00:52:59.400 --> 00:53:05.860
 talkpython.fm/Linode, L-I-N-O-D-E. You'll automatically get a $20 credit when you create a

00:53:05.860 --> 00:53:11.560
new account. Learn how to use Python to analyze the digital economy in the Masters of Applied Economics

00:53:11.560 --> 00:53:17.980
at the University of San Francisco. Just go to talkpython.fm/USF to find out more.

00:53:17.980 --> 00:53:23.820
Want to level up your Python? If you're just getting started, try my Python Jumpstart by Building

00:53:23.820 --> 00:53:29.620
10 Apps course. Or if you're looking for something more advanced, check out our new async course that

00:53:29.620 --> 00:53:34.020
digs into all the different types of async programming you can do in Python. And of course,

00:53:34.020 --> 00:53:37.880
if you're interested in more than one of these, be sure to check out our Everything Bundle.

00:53:37.880 --> 00:53:42.780
It's like a subscription that never expires. Be sure to subscribe to the show. Open your favorite

00:53:42.780 --> 00:53:47.700
podcatcher and search for Python. We should be right at the top. You can also find the iTunes feed at

00:53:47.700 --> 00:53:54.540
/itunes, the Google Play feed at /play, and the direct RSS feed at /rss on talkpython.fm.

00:53:54.540 --> 00:53:59.160
This is your host, Michael Kennedy. Thanks so much for listening. I really appreciate it.

00:53:59.160 --> 00:54:00.960
Now get out there and write some Python code.

00:54:00.960 --> 00:54:01.460
Thank you.

00:54:01.460 --> 00:54:03.460
Thank you.

00:54:03.460 --> 00:54:05.460
Thank you.

00:54:05.460 --> 00:54:07.460
Thank you.

00:54:07.460 --> 00:54:09.460
Thank you.

00:54:09.460 --> 00:54:11.460
Thank you.

00:54:11.460 --> 00:54:13.460
Thank you.

00:54:13.460 --> 00:54:15.460
Thank you.

00:54:15.460 --> 00:54:17.460
Thank you.

00:54:17.460 --> 00:54:19.460
Thank you.

00:54:19.460 --> 00:54:21.460
Thank you.

00:54:21.460 --> 00:54:51.440
Thank you.

