WEBVTT

00:00:00.001 --> 00:00:05.780
Hello and welcome to Python Bytes, where we deliver Python news and headlines directly to your earbuds.

00:00:05.780 --> 00:00:11.700
This is episode 69, recorded March 15th, 2018. I'm Michael Kennedy.

00:00:11.700 --> 00:00:12.920
And I'm Brian Okken.

00:00:12.920 --> 00:00:16.940
And Brian, probably nothing to cover with notebooks or anything.

00:00:16.940 --> 00:00:19.800
Like last time we had kind of an over-the-top notebook thing, didn't we?

00:00:19.800 --> 00:00:22.520
Yeah, we did. We covered a few topics on notebooks.

00:00:22.520 --> 00:00:24.480
Good thing. We probably won't do that again this week.

00:00:24.780 --> 00:00:27.080
I just want to say a quick thanks to DigitalOcean.

00:00:27.080 --> 00:00:30.660
They're sponsoring this episode and many of the episodes of Python Bytes.

00:00:30.660 --> 00:00:33.040
So they really are helping make the show happen.

00:00:33.040 --> 00:00:36.660
Check them out at do.co slash Python.

00:00:36.660 --> 00:00:38.320
We'll talk more about that later.

00:00:38.320 --> 00:00:40.780
Maybe we'll talk about notebooks, Brian.

00:00:40.780 --> 00:00:42.820
Yeah, let's talk about them just for a little bit.

00:00:42.820 --> 00:00:46.960
So because we talked about notebooks last time,

00:00:46.960 --> 00:00:49.900
one of our listeners contacted us and said,

00:00:50.480 --> 00:00:54.900
we should take a look at a project called PYNB.

00:00:54.900 --> 00:00:55.500
It says,

00:00:55.500 --> 00:00:59.220
Jupyter Notebooks in plain Python code with embedded markdown text.

00:00:59.220 --> 00:01:01.660
So the comment from our listener was,

00:01:01.660 --> 00:01:03.520
loves Jupyter Notebooks,

00:01:03.520 --> 00:01:06.020
but he also loves using his own editor.

00:01:06.020 --> 00:01:07.760
I think he uses PyCharm.

00:01:07.760 --> 00:01:09.720
I like doing that too,

00:01:09.720 --> 00:01:10.920
but you can't,

00:01:10.920 --> 00:01:13.820
it's like not trivial to edit.

00:01:13.820 --> 00:01:17.640
I haven't even tried to try to edit a notebook in PyCharm.

00:01:17.640 --> 00:01:18.680
You probably can,

00:01:18.680 --> 00:01:20.100
but I haven't tried.

00:01:20.100 --> 00:01:20.840
But anyway,

00:01:20.840 --> 00:01:21.560
but I,

00:01:21.560 --> 00:01:23.800
I like this idea of there's,

00:01:23.800 --> 00:01:30.720
it's basically a converter that you can convert back and forth between a plain text with,

00:01:30.720 --> 00:01:35.860
or a Python code with embedded markdown back and forth to a notebook.

00:01:35.860 --> 00:01:37.420
So it looks pretty cool.

00:01:37.420 --> 00:01:38.020
Yeah,

00:01:38.020 --> 00:01:38.860
it's pretty wild.

00:01:38.860 --> 00:01:41.040
So you define like a cells function,

00:01:41.040 --> 00:01:45.500
and then you can put like docstring type equivalent of markdown,

00:01:45.500 --> 00:01:46.400
and that becomes a cell.

00:01:46.400 --> 00:01:47.640
And then you put a little bit of Python,

00:01:47.640 --> 00:01:48.940
that becomes a Python cell.

00:01:49.020 --> 00:01:51.380
the more markdown within docstrings,

00:01:51.380 --> 00:01:52.840
and that becomes like another cell.

00:01:52.840 --> 00:01:53.680
And yeah,

00:01:53.680 --> 00:01:54.340
it's super cool.

00:01:54.340 --> 00:01:55.200
So a really nice,

00:01:55.200 --> 00:01:55.720
simple example.

00:01:55.720 --> 00:01:56.560
It's quite cool.

00:01:56.560 --> 00:01:57.300
Yeah.

00:01:57.300 --> 00:01:59.000
And one of the things that it points out,

00:01:59.000 --> 00:02:00.280
which is nifty,

00:02:00.280 --> 00:02:01.960
is it allows you to,

00:02:01.960 --> 00:02:04.160
to use diffs better with,

00:02:04.160 --> 00:02:06.820
with your version control tools or things like that.

00:02:06.900 --> 00:02:07.640
So that's,

00:02:07.640 --> 00:02:08.420
yeah,

00:02:08.420 --> 00:02:09.460
it's worth checking out if you,

00:02:09.460 --> 00:02:11.360
if you want to do more with notebooks,

00:02:11.360 --> 00:02:14.120
but want to be able to store them in plain text better.

00:02:14.120 --> 00:02:17.100
It's really just right down to the essence of it,

00:02:17.100 --> 00:02:17.460
isn't it?

00:02:17.460 --> 00:02:18.080
Because the notebooks,

00:02:18.080 --> 00:02:19.360
they're pretty verbose.

00:02:19.360 --> 00:02:21.560
If you crack open the text file and look at them,

00:02:21.560 --> 00:02:22.120
you know,

00:02:22.120 --> 00:02:22.660
you look at,

00:02:22.660 --> 00:02:23.600
you look at this,

00:02:23.600 --> 00:02:24.120
and it's like,

00:02:24.120 --> 00:02:26.560
literally what you would see in the notebook is like,

00:02:26.560 --> 00:02:27.080
all you type.

00:02:27.080 --> 00:02:27.640
It's pretty cool.

00:02:27.880 --> 00:02:31.560
was one of my to-do lists was to play with some notebooks a little bit.

00:02:31.560 --> 00:02:32.620
So I'll play with this also.

00:02:32.620 --> 00:02:33.320
Yeah.

00:02:33.320 --> 00:02:34.400
So PiNB,

00:02:34.400 --> 00:02:34.960
Pi Notebook,

00:02:34.960 --> 00:02:35.500
check that out.

00:02:35.500 --> 00:02:35.720
Very,

00:02:35.720 --> 00:02:36.140
very cool.

00:02:36.140 --> 00:02:39.900
So you know how there's this really cool William Gibson quote,

00:02:39.900 --> 00:02:41.460
the future is already here.

00:02:41.460 --> 00:02:42.600
It's just not evenly distributed.

00:02:42.600 --> 00:02:43.300
Yeah.

00:02:43.300 --> 00:02:44.000
I love that.

00:02:44.000 --> 00:02:45.040
That's a cool quote.

00:02:45.040 --> 00:02:45.240
Yeah,

00:02:45.240 --> 00:02:45.640
I do too.

00:02:45.640 --> 00:02:47.020
And I often,

00:02:47.020 --> 00:02:48.120
when I think of like,

00:02:48.120 --> 00:02:48.320
oh,

00:02:48.320 --> 00:02:49.640
where's that future we were hoping for?

00:02:49.640 --> 00:02:49.940
Well,

00:02:49.940 --> 00:02:50.340
it's not,

00:02:50.340 --> 00:02:50.880
well here.

00:02:50.880 --> 00:02:51.080
Well,

00:02:51.080 --> 00:02:51.640
maybe it is.

00:02:51.640 --> 00:02:52.980
It's just not evenly distributed.

00:02:52.980 --> 00:02:56.720
So this next thing feels like it kind of falls into that realm.

00:02:56.720 --> 00:02:57.180
And it's,

00:02:57.180 --> 00:02:57.740
it's definitely,

00:02:57.740 --> 00:03:00.480
like from the futuristic world.

00:03:00.480 --> 00:03:04.400
I don't know how far futuristic is this two years in the future,

00:03:04.400 --> 00:03:06.120
10 years or a hundred years or,

00:03:06.120 --> 00:03:07.120
or something like that.

00:03:07.120 --> 00:03:08.200
Or is it just live in science fiction?

00:03:08.200 --> 00:03:10.900
But I promise this has something to do with Python.

00:03:10.900 --> 00:03:12.320
It just takes a moment to get to it.

00:03:12.320 --> 00:03:16.880
So the announcement is that Microsoft has created a quantum computing

00:03:16.880 --> 00:03:19.120
language called Q sharp.

00:03:19.120 --> 00:03:19.800
Yeah.

00:03:19.800 --> 00:03:20.080
Okay.

00:03:20.080 --> 00:03:21.180
This just sounds neat.

00:03:21.180 --> 00:03:22.280
This is awesome.

00:03:22.280 --> 00:03:22.580
Right.

00:03:22.580 --> 00:03:23.180
Yeah.

00:03:23.180 --> 00:03:25.020
And it's been out for a little while.

00:03:25.020 --> 00:03:27.360
And we were talking before the show.

00:03:27.440 --> 00:03:27.640
It's like,

00:03:27.640 --> 00:03:29.600
it was almost worth covering before just because,

00:03:29.600 --> 00:03:30.100
wow,

00:03:30.100 --> 00:03:34.400
there's a program programming language specifically designed for quantum

00:03:34.400 --> 00:03:34.880
computers.

00:03:34.880 --> 00:03:37.240
That's a pretty nice language actually.

00:03:37.240 --> 00:03:42.740
But the news is now it's available for macOS and Linux and you can try it.

00:03:42.740 --> 00:03:43.040
Right.

00:03:43.100 --> 00:03:45.060
So there's this new language called Q sharp.

00:03:45.060 --> 00:03:46.040
And if you look at it,

00:03:46.040 --> 00:03:47.840
it's a little bit like C#.

00:03:47.840 --> 00:03:51.440
It's also a little bit like either typescript in some ways,

00:03:51.440 --> 00:03:52.600
but also like Python.

00:03:52.600 --> 00:03:57.360
And I was really pleased to see like the if statements don't have parentheses around the

00:03:57.360 --> 00:03:58.860
condition and stuff like that,

00:03:58.860 --> 00:04:00.840
because we don't need them.

00:04:00.840 --> 00:04:02.480
Why are we forced to write all those parentheses?

00:04:02.480 --> 00:04:03.860
Like they're unnecessary.

00:04:03.860 --> 00:04:07.960
We all know that from Python and Q sharp is sort of borrowing some of these cool ideas.

00:04:07.960 --> 00:04:13.540
The type annotations are very much similar to Python's type annotations as well.

00:04:13.540 --> 00:04:14.620
So quite cool.

00:04:14.620 --> 00:04:15.680
There's this new language.

00:04:15.680 --> 00:04:17.960
One of the first questions you might ask is like,

00:04:17.960 --> 00:04:18.200
great,

00:04:18.200 --> 00:04:20.400
there's this quantum computer programming language,

00:04:20.400 --> 00:04:22.200
but there's no quantum computers.

00:04:22.200 --> 00:04:24.060
So what's the point?

00:04:24.060 --> 00:04:24.300
Like,

00:04:24.300 --> 00:04:25.240
why are we going to run this?

00:04:25.280 --> 00:04:25.460
I mean,

00:04:25.460 --> 00:04:27.220
I know there's like a couple of bits,

00:04:27.220 --> 00:04:27.640
but not,

00:04:27.640 --> 00:04:31.100
you can't go and get like a quantum computer to test your program on.

00:04:31.100 --> 00:04:32.040
So how do you test it?

00:04:32.040 --> 00:04:33.000
Good question.

00:04:33.000 --> 00:04:33.540
Yeah.

00:04:33.540 --> 00:04:37.800
So they've got like this emulator type thing that emulates the behavior of a quantum computer,

00:04:37.800 --> 00:04:39.580
although I suspect it's slower than a real one.

00:04:39.580 --> 00:04:40.180
Well,

00:04:40.180 --> 00:04:40.560
are there,

00:04:40.560 --> 00:04:42.680
maybe I'm just not up to date.

00:04:42.680 --> 00:04:44.420
Are there quantum computers now?

00:04:44.420 --> 00:04:46.060
There are like,

00:04:46.060 --> 00:04:48.040
I can't remember who was,

00:04:48.040 --> 00:04:49.040
it feels like IBM,

00:04:49.040 --> 00:04:51.020
but there's like a couple of bits,

00:04:51.020 --> 00:04:53.840
like a two bit quantum computer and like,

00:04:53.840 --> 00:04:54.940
like it's super,

00:04:55.100 --> 00:04:58.640
super cold environment that can do like very simple things.

00:04:58.640 --> 00:05:00.120
So,

00:05:00.120 --> 00:05:01.940
but it's not like a general purpose,

00:05:01.940 --> 00:05:02.820
you know,

00:05:02.820 --> 00:05:04.560
unless you've got like a hydrogen bath,

00:05:04.560 --> 00:05:07.600
like liquid hydrogen bath to put it in and things like that.

00:05:07.600 --> 00:05:09.080
So it's,

00:05:09.080 --> 00:05:12.160
it's based on topological qubits and quantum computers.

00:05:12.160 --> 00:05:13.260
So hence Q sharp,

00:05:13.260 --> 00:05:15.060
and it's out from macOS and Linux.

00:05:15.060 --> 00:05:15.620
It's awesome.

00:05:15.620 --> 00:05:17.260
On windows,

00:05:17.260 --> 00:05:19.840
you can play with it in visual studio standard,

00:05:19.840 --> 00:05:21.200
but on Mac and Linux,

00:05:21.200 --> 00:05:22.700
you can use Visual Studio Code.

00:05:22.700 --> 00:05:24.120
And there's like a quantum,

00:05:24.920 --> 00:05:27.760
programming code extension for Visual Studio Codes.

00:05:27.760 --> 00:05:28.380
That's pretty cool.

00:05:28.380 --> 00:05:29.380
Yeah.

00:05:29.560 --> 00:05:32.260
And so you're saying that this ties into Python somehow.

00:05:32.260 --> 00:05:33.300
Somehow.

00:05:33.300 --> 00:05:34.160
In fact,

00:05:34.160 --> 00:05:34.720
so they said,

00:05:34.720 --> 00:05:34.880
all right,

00:05:34.880 --> 00:05:37.620
we created this new language and we created this way to emulate it.

00:05:37.620 --> 00:05:40.060
And there's actually some stuff in their cloud computing platform,

00:05:40.060 --> 00:05:40.460
Azure,

00:05:40.460 --> 00:05:42.780
where like you can plug in these things.

00:05:42.780 --> 00:05:44.840
So like they all tie together in interesting ways,

00:05:44.840 --> 00:05:45.780
but they said,

00:05:45.780 --> 00:05:46.040
look,

00:05:46.100 --> 00:05:47.780
we know other languages exist.

00:05:47.780 --> 00:05:49.240
And they're really important.

00:05:49.240 --> 00:05:51.920
The one language we think is so important.

00:05:51.920 --> 00:05:53.600
It should be involved in this as well as Python.

00:05:53.600 --> 00:05:55.680
So you can now,

00:05:55.680 --> 00:05:57.280
you can now call,

00:05:57.280 --> 00:06:00.260
use Python to program quantum computers.

00:06:00.940 --> 00:06:01.400
Oh,

00:06:01.400 --> 00:06:02.180
that is awesome.

00:06:02.180 --> 00:06:02.600
Yeah.

00:06:02.600 --> 00:06:03.040
That's awesome.

00:06:03.040 --> 00:06:03.240
Right.

00:06:03.240 --> 00:06:03.900
You know,

00:06:03.900 --> 00:06:05.560
emulated quantum computers,

00:06:05.560 --> 00:06:06.820
but still super awesome.

00:06:06.820 --> 00:06:07.560
And they said,

00:06:07.560 --> 00:06:07.760
Oh,

00:06:07.760 --> 00:06:10.520
and a lot of this analysis has to do with like data science type stuff.

00:06:10.520 --> 00:06:12.140
So we'll also support Jupyter.

00:06:12.140 --> 00:06:12.920
Yeah.

00:06:12.940 --> 00:06:17.520
I predict a whole bunch of like people in college doing their thesis on this

00:06:17.520 --> 00:06:18.320
stuff like this.

00:06:18.320 --> 00:06:19.020
Yeah.

00:06:19.020 --> 00:06:19.820
That's a really good point.

00:06:19.820 --> 00:06:20.280
Put the,

00:06:20.280 --> 00:06:20.640
the,

00:06:20.640 --> 00:06:20.980
the,

00:06:20.980 --> 00:06:23.100
the sciencey aspect back in computer science,

00:06:23.100 --> 00:06:23.300
right?

00:06:23.300 --> 00:06:23.800
Yeah,

00:06:23.800 --> 00:06:24.300
definitely.

00:06:24.300 --> 00:06:25.040
That'd be neat.

00:06:25.040 --> 00:06:27.580
So do you speak Spanish,

00:06:27.580 --> 00:06:27.780
Brian?

00:06:27.780 --> 00:06:28.820
I,

00:06:28.820 --> 00:06:29.440
you know,

00:06:29.440 --> 00:06:30.840
this is embarrassing.

00:06:30.840 --> 00:06:32.420
I took two years of it in high school,

00:06:32.420 --> 00:06:34.580
but I barely can order a burrito.

00:06:34.580 --> 00:06:35.920
Yeah.

00:06:35.920 --> 00:06:37.180
My Spanish is not very good,

00:06:37.180 --> 00:06:38.380
but one of,

00:06:38.380 --> 00:06:39.300
there is,

00:06:39.300 --> 00:06:40.240
there is a fellow,

00:06:40.240 --> 00:06:40.740
um,

00:06:40.740 --> 00:06:41.740
a Valbana,

00:06:41.740 --> 00:06:42.780
I think is his name.

00:06:43.260 --> 00:06:43.660
Um,

00:06:43.660 --> 00:06:45.420
that does speak Spanish.

00:06:45.420 --> 00:06:53.460
And he gave a talk at PyCon ES in 2017 about pytest and let me know about it and,

00:06:53.460 --> 00:06:53.820
uh,

00:06:53.820 --> 00:06:55.260
showed me the slides and,

00:06:55.260 --> 00:06:56.480
and this was kind of cool.

00:06:56.480 --> 00:06:58.180
He sent it to me on Twitter and said,

00:06:58.180 --> 00:06:58.440
Hey,

00:06:58.440 --> 00:06:58.840
um,

00:06:58.840 --> 00:07:00.000
I forgot to tell you,

00:07:00.000 --> 00:07:03.460
I gave this talk last year and I think it was in September.

00:07:03.460 --> 00:07:04.380
And,

00:07:04.380 --> 00:07:04.780
uh,

00:07:04.780 --> 00:07:05.420
and I said,

00:07:05.420 --> 00:07:06.760
that looks really cool.

00:07:06.760 --> 00:07:08.140
There's a lot of neat stuff in it.

00:07:08.140 --> 00:07:09.140
Unfortunately,

00:07:09.140 --> 00:07:11.200
I don't speak Spanish.

00:07:11.200 --> 00:07:11.860
Um,

00:07:11.860 --> 00:07:13.080
but neat anyway.

00:07:13.080 --> 00:07:14.000
And he said,

00:07:14.000 --> 00:07:14.220
Oh,

00:07:14.220 --> 00:07:15.440
let me translate it for you.

00:07:15.440 --> 00:07:18.960
So he translated the slide deck for me and the slide deck.

00:07:18.960 --> 00:07:20.480
We have a link to the English slides.

00:07:20.480 --> 00:07:21.320
Um,

00:07:21.320 --> 00:07:21.960
and there's also,

00:07:21.960 --> 00:07:24.240
if you speak Spanish or want to watch anyway,

00:07:24.240 --> 00:07:25.000
um,

00:07:25.000 --> 00:07:26.980
there's a video on YouTube that we'll link to.

00:07:27.260 --> 00:07:28.340
but one of the things I,

00:07:28.340 --> 00:07:33.540
one of the reasons I wanted to bring it up is because there's some neat things in there that I'd never heard of before.

00:07:33.540 --> 00:07:35.640
There's some that I have and some that I haven't.

00:07:35.640 --> 00:07:36.540
Like for instance,

00:07:36.540 --> 00:07:37.600
he does talk about,

00:07:37.600 --> 00:07:38.280
uh,

00:07:38.280 --> 00:07:39.440
using pytest Django.

00:07:39.680 --> 00:07:40.280
So how to,

00:07:40.280 --> 00:07:40.280
how to,

00:07:40.280 --> 00:07:41.800
how to hook up pytest with,

00:07:41.800 --> 00:07:42.040
uh,

00:07:42.040 --> 00:07:43.640
Django models and stuff.

00:07:43.640 --> 00:07:46.780
And then a thing called model mommy,

00:07:46.780 --> 00:07:48.980
which is a way to mock out,

00:07:48.980 --> 00:07:49.280
uh,

00:07:49.280 --> 00:07:50.140
Django models.

00:07:50.140 --> 00:07:50.700
Uh,

00:07:50.700 --> 00:07:51.540
haven't heard of that.

00:07:51.540 --> 00:07:57.120
One of the things that doesn't get that I need to talk about in full length on my podcast is,

00:07:57.120 --> 00:07:57.380
uh,

00:07:57.380 --> 00:07:58.920
I test lazy fixture,

00:07:58.920 --> 00:07:59.960
which is,

00:07:59.960 --> 00:08:00.300
um,

00:08:00.740 --> 00:08:03.800
it's probably soon to be one of the recommended ways to,

00:08:03.800 --> 00:08:11.380
to have fixtures be able to go into a test function parameterized input.

00:08:11.380 --> 00:08:12.180
Anyway,

00:08:12.180 --> 00:08:12.980
it's a,

00:08:12.980 --> 00:08:14.520
it takes a bit of explaining,

00:08:14.520 --> 00:08:16.100
but then there's some fun,

00:08:16.100 --> 00:08:17.240
also some fun things.

00:08:17.240 --> 00:08:17.960
Uh,

00:08:17.960 --> 00:08:22.820
freeze gun is a way to freeze time for your testing into a specific spot.

00:08:22.820 --> 00:08:23.400
And the interface,

00:08:23.400 --> 00:08:24.820
it looks really cool on freeze gun.

00:08:24.820 --> 00:08:25.400
That's cool.

00:08:25.400 --> 00:08:25.700
That,

00:08:25.700 --> 00:08:26.760
I love the names here,

00:08:26.760 --> 00:08:28.120
the model mommy and the freeze gun.

00:08:28.120 --> 00:08:28.620
These are great.

00:08:28.620 --> 00:08:29.400
Yeah.

00:08:29.500 --> 00:08:31.360
And then a package called eradicate,

00:08:31.360 --> 00:08:32.180
which,

00:08:32.180 --> 00:08:32.600
um,

00:08:32.600 --> 00:08:36.220
like removes all the comments out of some code because,

00:08:36.220 --> 00:08:36.720
you know,

00:08:36.720 --> 00:08:40.140
sometimes code is easier to read if you remove the comments.

00:08:40.140 --> 00:08:41.920
So that's fun.

00:08:41.920 --> 00:08:44.980
Code comments are deodorant for code spells,

00:08:44.980 --> 00:08:46.220
right?

00:08:46.220 --> 00:08:48.760
They're there to explain why your code is fully written.

00:08:48.760 --> 00:08:49.080
Right.

00:08:49.080 --> 00:08:53.040
So a lot of the times if they're not full on documentation meant for like a help statement.

00:08:53.040 --> 00:08:53.340
Yeah,

00:08:53.340 --> 00:08:53.980
I totally agree.

00:08:53.980 --> 00:08:54.420
That's awesome.

00:08:54.420 --> 00:08:55.320
Anyway,

00:08:55.320 --> 00:08:55.820
those are,

00:08:55.820 --> 00:08:56.960
those are some fun things.

00:08:56.960 --> 00:08:59.000
So I wanted to bring it up and then a bonus topic,

00:08:59.100 --> 00:08:59.320
uh,

00:08:59.320 --> 00:09:01.500
just today was announced that,

00:09:01.500 --> 00:09:01.880
um,

00:09:01.880 --> 00:09:05.080
by test.org added a reference page,

00:09:05.080 --> 00:09:07.340
which has a one page reference,

00:09:07.340 --> 00:09:09.180
full reference to the by test API.

00:09:09.180 --> 00:09:10.140
Oh,

00:09:10.140 --> 00:09:10.540
that's cool.

00:09:10.540 --> 00:09:10.800
All,

00:09:10.800 --> 00:09:11.640
all in one place.

00:09:11.640 --> 00:09:12.520
Yeah.

00:09:12.520 --> 00:09:13.040
Super nice.

00:09:13.460 --> 00:09:13.960
All right.

00:09:13.960 --> 00:09:16.080
Speaking about stuff in one place,

00:09:16.080 --> 00:09:19.720
let me tell you about digital ocean and a cool feature they have.

00:09:19.720 --> 00:09:20.000
So,

00:09:20.000 --> 00:09:20.460
you know,

00:09:20.460 --> 00:09:22.340
that you can go to digital ocean and create virtual machines,

00:09:22.340 --> 00:09:22.560
right?

00:09:22.560 --> 00:09:23.840
Like Linux servers and stuff.

00:09:23.840 --> 00:09:24.260
Yeah.

00:09:24.260 --> 00:09:24.960
Yeah.

00:09:24.960 --> 00:09:25.220
So,

00:09:25.220 --> 00:09:26.020
you know,

00:09:26.020 --> 00:09:27.600
that's just the start a lot of time.

00:09:27.600 --> 00:09:30.840
What if you want to run get lab or you want to like set up MongoDB,

00:09:30.840 --> 00:09:34.140
or you're going to run like a discourse server,

00:09:34.140 --> 00:09:35.660
you got to install Ruby,

00:09:35.660 --> 00:09:37.120
you got to install the whole discourse stuff,

00:09:37.120 --> 00:09:37.700
the database,

00:09:37.700 --> 00:09:38.140
et cetera.

00:09:38.140 --> 00:09:40.400
So one of the things you can do at digital ocean,

00:09:40.400 --> 00:09:42.540
and when you go to create a new machine,

00:09:42.540 --> 00:09:43.320
they call them droplets,

00:09:43.320 --> 00:09:45.100
as you can create these one clip apps,

00:09:45.100 --> 00:09:46.160
one click apps.

00:09:46.300 --> 00:09:47.340
So I can click over here and say,

00:09:47.340 --> 00:09:48.840
I would like to click and say,

00:09:48.840 --> 00:09:49.180
boom,

00:09:49.180 --> 00:09:50.580
new discourse server,

00:09:50.580 --> 00:09:51.080
all set up,

00:09:51.080 --> 00:09:52.360
configure it and save,

00:09:52.360 --> 00:09:52.640
go.

00:09:52.640 --> 00:09:53.780
I want a new ghost server,

00:09:53.780 --> 00:09:54.100
go.

00:09:54.100 --> 00:09:55.640
I want a new WordPress instance,

00:09:55.640 --> 00:09:55.960
go.

00:09:55.960 --> 00:09:57.760
And just click it and it's up and running.

00:09:57.760 --> 00:09:58.220
It's pretty awesome.

00:09:58.220 --> 00:09:59.160
Really?

00:09:59.160 --> 00:09:59.920
Okay.

00:09:59.920 --> 00:10:00.480
That's neat.

00:10:00.480 --> 00:10:01.040
Yeah.

00:10:01.040 --> 00:10:01.760
You can even do Docker.

00:10:01.760 --> 00:10:02.880
Like you want a Docker server,

00:10:02.880 --> 00:10:03.200
boom,

00:10:03.200 --> 00:10:05.900
hit that button and you've got Docker 17,

00:10:05.900 --> 00:10:06.760
12 running.

00:10:06.760 --> 00:10:08.060
Yeah.

00:10:08.060 --> 00:10:08.760
On Ubuntu 1604.

00:10:08.760 --> 00:10:09.960
Perfect.

00:10:09.960 --> 00:10:10.480
Neat.

00:10:10.480 --> 00:10:12.540
I'll have to check out all the one click things they've got.

00:10:12.540 --> 00:10:13.380
Sounds cool.

00:10:13.380 --> 00:10:13.660
Yeah.

00:10:13.660 --> 00:10:16.220
So they got a bunch of stuff that helps you get going in a,

00:10:16.220 --> 00:10:16.920
a nice way.

00:10:16.920 --> 00:10:18.000
So check that out.

00:10:18.000 --> 00:10:20.900
D O C O slash D O dot C O slash Python.

00:10:20.900 --> 00:10:23.280
And let them know that they are doing the right thing,

00:10:23.280 --> 00:10:23.920
supporting our show.

00:10:23.920 --> 00:10:24.580
Great.

00:10:24.580 --> 00:10:27.060
It is once again,

00:10:27.060 --> 00:10:30.980
that season in which the stack of workflow developer survey results come

00:10:30.980 --> 00:10:31.180
back,

00:10:31.180 --> 00:10:31.600
come out.

00:10:31.600 --> 00:10:35.380
So the 2018 developer survey results are out.

00:10:35.380 --> 00:10:37.260
They said they had a hundred thousand,

00:10:37.260 --> 00:10:39.440
over a hundred thousand developers this time.

00:10:39.440 --> 00:10:41.280
I think last year they had 64,000.

00:10:41.280 --> 00:10:42.080
So this is cool.

00:10:42.080 --> 00:10:42.520
It's growing.

00:10:42.520 --> 00:10:45.560
And I thought it'd be fun to just cover some of the,

00:10:45.560 --> 00:10:45.980
um,

00:10:45.980 --> 00:10:46.740
high points.

00:10:46.740 --> 00:10:52.520
They spent a lot of time actually talking about like history of education.

00:10:52.520 --> 00:10:52.920
You know,

00:10:52.920 --> 00:10:58.280
like how much education level did your parents have a lot of that kind of social

00:10:58.280 --> 00:10:59.040
stuff.

00:10:59.040 --> 00:10:59.580
Interesting.

00:10:59.580 --> 00:10:59.960
That,

00:10:59.960 --> 00:11:00.920
that sounds neat.

00:11:00.920 --> 00:11:01.320
Yeah.

00:11:01.400 --> 00:11:01.520
Yeah.

00:11:01.520 --> 00:11:02.320
It's pretty interesting.

00:11:02.320 --> 00:11:02.720
Like,

00:11:02.720 --> 00:11:03.300
um,

00:11:03.300 --> 00:11:03.920
yeah,

00:11:03.920 --> 00:11:04.440
things like that.

00:11:04.440 --> 00:11:05.180
There's a bunch of that,

00:11:05.180 --> 00:11:08.340
but I'm going to focus mostly on like the tech tech bits.

00:11:08.340 --> 00:11:10.120
So first,

00:11:10.120 --> 00:11:12.220
one of the first questions they asked was about open source.

00:11:12.220 --> 00:11:12.600
And they said,

00:11:12.660 --> 00:11:19.460
how many of you contribute to open source and 55% of professional developers contribute to

00:11:19.460 --> 00:11:19.920
open source.

00:11:19.920 --> 00:11:21.820
That's higher than I would have expected.

00:11:21.820 --> 00:11:22.300
That's awesome.

00:11:22.300 --> 00:11:22.480
Yeah.

00:11:22.480 --> 00:11:22.960
Yeah.

00:11:22.960 --> 00:11:23.520
It's really awesome.

00:11:23.520 --> 00:11:24.640
I think for,

00:11:24.640 --> 00:11:25.040
uh,

00:11:25.040 --> 00:11:26.040
all respondents,

00:11:26.040 --> 00:11:28.360
there were some students and stuff and people who retired.

00:11:28.360 --> 00:11:29.380
So it was slightly higher.

00:11:29.380 --> 00:11:30.400
It's not surprising,

00:11:30.400 --> 00:11:33.980
but I thought the professional 55% was like the most interesting there.

00:11:33.980 --> 00:11:38.920
And then people often feel like if they didn't get a computer science degree in school,

00:11:38.920 --> 00:11:43.260
like they don't necessarily belong in programming or it's hard for them to get into programming,

00:11:43.440 --> 00:11:46.880
but it turns out that only 64% of the people have CS degrees.

00:11:46.880 --> 00:11:47.940
That's actually,

00:11:47.940 --> 00:11:48.340
um,

00:11:48.340 --> 00:11:48.640
yeah,

00:11:48.640 --> 00:11:50.800
I think that that's actually seems high to me.

00:11:50.800 --> 00:11:51.140
Um,

00:11:51.140 --> 00:11:55.200
there's only about a third or less of the people I work with have CS degrees.

00:11:55.200 --> 00:11:56.000
Yeah,

00:11:56.000 --> 00:11:56.340
I agree.

00:11:56.340 --> 00:11:58.680
I think that seems even high for my experience as well.

00:11:58.680 --> 00:12:01.180
Maybe CS degree people spend a lot of time on stack overflow.

00:12:01.180 --> 00:12:01.880
I don't know.

00:12:01.880 --> 00:12:02.460
Maybe,

00:12:02.460 --> 00:12:04.800
but why are they spending so much time?

00:12:04.800 --> 00:12:06.460
Because supposedly they have a degree.

00:12:06.460 --> 00:12:07.340
Exactly.

00:12:07.340 --> 00:12:07.800
Come on.

00:12:07.800 --> 00:12:08.960
Uh,

00:12:08.960 --> 00:12:09.880
so one of the,

00:12:09.880 --> 00:12:10.380
um,

00:12:10.380 --> 00:12:13.420
one of the social things they talked about was sort of the sense of,

00:12:13.420 --> 00:12:14.020
belonging.

00:12:14.020 --> 00:12:14.980
Oh,

00:12:14.980 --> 00:12:15.380
nice.

00:12:15.380 --> 00:12:18.260
People's perspective as developers among their peers.

00:12:18.260 --> 00:12:19.720
So they taught,

00:12:19.720 --> 00:12:21.760
they put that under the manner of experience and belonging.

00:12:21.760 --> 00:12:22.180
And they said,

00:12:22.180 --> 00:12:24.420
they had a graph and they said,

00:12:24.420 --> 00:12:24.680
okay,

00:12:24.680 --> 00:12:27.160
how much do you feel this is,

00:12:27.160 --> 00:12:28.740
is true or false over time?

00:12:28.740 --> 00:12:31.160
Like how much does this apply to you over time?

00:12:31.160 --> 00:12:31.380
Well,

00:12:31.380 --> 00:12:31.900
not over time,

00:12:31.900 --> 00:12:35.120
but if you've had one year experience versus a people with five year experience,

00:12:35.120 --> 00:12:35.960
versus people with 10 years,

00:12:35.960 --> 00:12:38.620
there's like a graph over years of experience and,

00:12:38.620 --> 00:12:39.420
and this metric.

00:12:39.420 --> 00:12:40.760
So they said,

00:12:40.760 --> 00:12:41.420
uh,

00:12:41.420 --> 00:12:44.240
your connection and sense of community with other developers.

00:12:44.240 --> 00:12:47.600
And apparently the more time you spend in the programming world,

00:12:47.600 --> 00:12:48.200
the more that,

00:12:48.200 --> 00:12:48.680
you know,

00:12:48.680 --> 00:12:49.000
matches,

00:12:49.000 --> 00:12:49.840
which makes sense.

00:12:49.840 --> 00:12:50.020
Right.

00:12:50.020 --> 00:12:50.820
But they,

00:12:50.820 --> 00:12:51.720
they also said,

00:12:51.720 --> 00:12:52.380
uh,

00:12:52.380 --> 00:12:56.000
how much do you feel like you're competing with your peers instead of actually

00:12:56.000 --> 00:12:57.020
working together?

00:12:57.020 --> 00:12:57.220
Right.

00:12:57.220 --> 00:12:59.000
How much do you see it as a zero sum game?

00:12:59.000 --> 00:12:59.340
I guess.

00:12:59.340 --> 00:13:00.520
And at,

00:13:00.520 --> 00:13:01.220
in the beginning,

00:13:01.220 --> 00:13:04.980
it's people feel quite high that it's like direct competition.

00:13:04.980 --> 00:13:06.740
That person gets more recognition.

00:13:06.740 --> 00:13:07.400
I get less,

00:13:07.400 --> 00:13:08.340
they get a raise.

00:13:08.420 --> 00:13:08.880
I don't,

00:13:08.880 --> 00:13:09.880
I don't know something like that,

00:13:09.880 --> 00:13:12.140
but over time that diminishes quite significantly.

00:13:12.140 --> 00:13:12.880
That's good.

00:13:12.880 --> 00:13:13.660
Same thing for,

00:13:13.660 --> 00:13:14.020
yeah,

00:13:14.020 --> 00:13:14.600
for sure.

00:13:14.600 --> 00:13:18.760
And then also the feeling of I'm not as good of a programmer as my peers

00:13:18.760 --> 00:13:20.160
pretty high at the beginning.

00:13:20.160 --> 00:13:20.920
Over time,

00:13:20.920 --> 00:13:23.820
people feel less and less and less like that's a true statement,

00:13:23.820 --> 00:13:25.400
which I thought it was good as well.

00:13:25.400 --> 00:13:25.740
I mean,

00:13:25.740 --> 00:13:28.480
it seems to me like all of these are going in the right direction,

00:13:28.480 --> 00:13:30.020
the longer you're in programming,

00:13:30.020 --> 00:13:33.540
which is a positive statement for the whole ecosystem.

00:13:34.080 --> 00:13:34.160
Yeah.

00:13:34.160 --> 00:13:34.380
So,

00:13:34.380 --> 00:13:38.140
but it also shows that we need to try to teach students,

00:13:38.140 --> 00:13:41.240
try to get that connectedness and the less,

00:13:41.240 --> 00:13:43.040
less competitiveness.

00:13:43.040 --> 00:13:44.620
Teach that earlier.

00:13:44.620 --> 00:13:45.140
Yeah.

00:13:45.140 --> 00:13:45.600
Right away.

00:13:45.600 --> 00:13:46.040
Right away.

00:13:46.040 --> 00:13:49.100
You want a kind of a bleak statement that totally applies to me.

00:13:49.100 --> 00:13:50.420
How much time do you spend on computers?

00:13:50.420 --> 00:13:52.500
The most popular answer,

00:13:52.500 --> 00:13:54.340
nine to 12 hours a day.

00:13:54.340 --> 00:13:56.320
Does that include your phone?

00:13:56.320 --> 00:13:59.140
I think it might even be behind a screen.

00:13:59.140 --> 00:14:00.020
I'm not entirely sure,

00:14:00.100 --> 00:14:02.800
but if like you kick back and play games or watch Netflix or whatever,

00:14:02.800 --> 00:14:08.680
it was also notable that the usage of Python has exceeded C# for the

00:14:08.680 --> 00:14:09.100
first time.

00:14:09.100 --> 00:14:10.240
They called that out specifically,

00:14:10.240 --> 00:14:10.680
I think.

00:14:10.680 --> 00:14:11.200
Yeah.

00:14:11.200 --> 00:14:11.800
Cool.

00:14:11.800 --> 00:14:16.800
Then the couple more things like there's languages and databases.

00:14:16.800 --> 00:14:18.180
They talk about the most loved,

00:14:18.180 --> 00:14:20.140
the most dreaded and the most wanted.

00:14:20.140 --> 00:14:22.220
So most love is you're using it and you love it.

00:14:22.220 --> 00:14:24.420
Dreaded is like you've had to use it or you've never,

00:14:24.420 --> 00:14:25.160
ever want to use it.

00:14:25.160 --> 00:14:26.080
It gives you fear.

00:14:26.080 --> 00:14:28.020
And then wanted is I'm not yet using it,

00:14:28.020 --> 00:14:29.080
but I want to use it.

00:14:29.360 --> 00:14:31.180
So these are all interesting ways to measure things.

00:14:31.180 --> 00:14:32.960
So languages most love.

00:14:32.960 --> 00:14:33.960
Number one is rust,

00:14:33.960 --> 00:14:36.860
even though not that many people use it among the people who use it.

00:14:36.860 --> 00:14:37.740
They love it so much.

00:14:37.740 --> 00:14:38.100
Apparently,

00:14:38.100 --> 00:14:40.900
Kotlin is number two and Python is number three.

00:14:40.900 --> 00:14:42.020
Pretty nice.

00:14:42.020 --> 00:14:42.300
Okay.

00:14:42.300 --> 00:14:42.780
Yeah.

00:14:42.780 --> 00:14:45.220
Dreaded VB six and coffee script.

00:14:45.220 --> 00:14:45.880
Keep away.

00:14:45.880 --> 00:14:47.160
Wanted.

00:14:47.160 --> 00:14:49.120
Python is number one,

00:14:49.120 --> 00:14:51.720
the most wanted language by 25%.

00:14:51.720 --> 00:14:53.400
Number two is JavaScript at 19,

00:14:53.400 --> 00:14:54.300
which is quite a drop.

00:14:54.300 --> 00:14:56.240
And then go is at 16%.

00:14:56.240 --> 00:14:57.780
So it drops off really quick.

00:14:57.780 --> 00:14:59.280
And Python is sort of ruling that.

00:14:59.820 --> 00:15:00.040
Yeah.

00:15:00.040 --> 00:15:00.720
That's great.

00:15:00.720 --> 00:15:01.160
Yeah.

00:15:01.160 --> 00:15:02.240
Databases.

00:15:02.240 --> 00:15:02.580
Yeah.

00:15:02.580 --> 00:15:03.060
Databases.

00:15:03.060 --> 00:15:03.940
Most love Postgres.

00:15:03.940 --> 00:15:05.820
Most dreaded is IBM DB2.

00:15:05.820 --> 00:15:07.320
Memcached in Oracle.

00:15:07.320 --> 00:15:12.840
And Memcached was responsible for the largest distributed denial of service attack ever.

00:15:12.840 --> 00:15:15.140
And that was put onto GitHub recently.

00:15:15.140 --> 00:15:15.480
So,

00:15:15.480 --> 00:15:16.740
and then most wanted is MongoDB.

00:15:16.740 --> 00:15:18.640
A most popular editor,

00:15:18.640 --> 00:15:19.760
Visual Studio Code.

00:15:19.760 --> 00:15:20.540
Pretty interesting.

00:15:20.540 --> 00:15:21.140
Yeah.

00:15:21.380 --> 00:15:22.560
And for developers,

00:15:22.560 --> 00:15:23.680
what OS do they use?

00:15:23.680 --> 00:15:24.300
Last thing.

00:15:24.300 --> 00:15:25.060
Windows,

00:15:25.060 --> 00:15:26.480
49%.

00:15:26.480 --> 00:15:27.440
macOS,

00:15:27.440 --> 00:15:28.260
27%.

00:15:28.260 --> 00:15:28.540
Linux,

00:15:28.540 --> 00:15:29.260
23%.

00:15:29.260 --> 00:15:30.420
Not where they deploy to,

00:15:30.420 --> 00:15:32.340
but what do they write their code on?

00:15:32.340 --> 00:15:33.240
That,

00:15:33.240 --> 00:15:36.000
and this is one that we need to pay attention to more,

00:15:36.000 --> 00:15:36.480
I think.

00:15:36.480 --> 00:15:37.720
Because,

00:15:37.720 --> 00:15:38.220
um,

00:15:38.300 --> 00:15:38.960
of all the,

00:15:38.960 --> 00:15:39.520
a lot of the,

00:15:39.520 --> 00:15:44.340
the podcasters and bloggers and all of that within the Python community,

00:15:44.340 --> 00:15:45.040
I think,

00:15:45.040 --> 00:15:45.400
uh,

00:15:45.400 --> 00:15:47.580
either Linux or macOS might be,

00:15:47.580 --> 00:15:48.120
uh,

00:15:48.120 --> 00:15:48.600
higher.

00:15:48.600 --> 00:15:49.480
Much higher.

00:15:49.840 --> 00:15:54.680
but you're teaching to a group of people that half of them are running Windows.

00:15:54.680 --> 00:15:56.420
So you just can't ignore Windows.

00:15:56.420 --> 00:15:57.100
Yeah.

00:15:57.100 --> 00:15:57.440
It's,

00:15:57.440 --> 00:15:58.820
it's a really good point that like,

00:15:58.820 --> 00:16:02.240
even though it's sort of the thought leaders and the people who see at conferences and,

00:16:02.240 --> 00:16:05.060
and speakers and whatnot are probably either Linux or Mac,

00:16:05.060 --> 00:16:08.840
the actual people doing the work and using the stuff is,

00:16:08.840 --> 00:16:10.700
is very much Windows still.

00:16:10.700 --> 00:16:12.260
So definitely not to be forgotten.

00:16:12.260 --> 00:16:13.520
Speaking of presenting.

00:16:13.520 --> 00:16:15.180
Speaking of presenting,

00:16:15.180 --> 00:16:16.260
um,

00:16:16.260 --> 00:16:17.020
Doug Hellman,

00:16:17.020 --> 00:16:17.700
um,

00:16:17.940 --> 00:16:19.720
he came up with,

00:16:19.720 --> 00:16:21.420
and there's got a new project,

00:16:21.420 --> 00:16:22.040
um,

00:16:22.040 --> 00:16:23.400
called Demo Shell.

00:16:23.400 --> 00:16:26.100
And the idea is,

00:16:26.100 --> 00:16:26.620
um,

00:16:26.620 --> 00:16:30.400
it came out like somebody named Gene Hack on Twitter said,

00:16:30.400 --> 00:16:30.720
um,

00:16:30.720 --> 00:16:31.280
Hey speakers,

00:16:31.280 --> 00:16:33.160
if you're going to do live demos in a shell,

00:16:33.160 --> 00:16:37.620
clear the screen after every command and get the prompt back to the top.

00:16:37.620 --> 00:16:40.120
So folks in the back can see what you're doing.

00:16:40.120 --> 00:16:42.040
And that's,

00:16:42.040 --> 00:16:42.520
uh,

00:16:42.520 --> 00:16:43.700
completely reasonable.

00:16:43.700 --> 00:16:44.240
Yeah,

00:16:44.240 --> 00:16:44.920
it's a great idea.

00:16:44.920 --> 00:16:46.760
But instead of fiddling with it,

00:16:46.760 --> 00:16:47.200
um,

00:16:47.320 --> 00:16:48.340
so this,

00:16:48.340 --> 00:16:48.560
uh,

00:16:48.560 --> 00:16:49.740
demo shell is this site.

00:16:49.740 --> 00:16:51.920
The idea is basically just to do that,

00:16:51.920 --> 00:16:52.660
to capture,

00:16:52.660 --> 00:16:53.060
um,

00:16:53.060 --> 00:16:54.300
a Python project,

00:16:54.300 --> 00:16:57.400
to capture your input and emulate a shell.

00:16:57.400 --> 00:17:00.620
But it really just pushes all the work off to a shell to do the work.

00:17:00.620 --> 00:17:01.260
But,

00:17:01.260 --> 00:17:01.580
um,

00:17:01.580 --> 00:17:02.740
but between commands,

00:17:02.740 --> 00:17:03.100
uh,

00:17:03.100 --> 00:17:06.300
puts your prompt back at the top and it's,

00:17:06.300 --> 00:17:06.520
um,

00:17:06.520 --> 00:17:08.160
it's in its very early stages.

00:17:08.160 --> 00:17:08.600
So,

00:17:08.600 --> 00:17:09.060
um,

00:17:09.060 --> 00:17:11.220
I actually reached out to Doug and said,

00:17:11.220 --> 00:17:11.820
Hey,

00:17:11.820 --> 00:17:13.520
do you want me to announce this yet?

00:17:13.520 --> 00:17:14.020
Are you,

00:17:14.020 --> 00:17:15.620
you ready for it?

00:17:15.620 --> 00:17:16.000
And he said,

00:17:16.000 --> 00:17:16.240
yeah,

00:17:16.240 --> 00:17:17.900
I put it up there to start the discussion.

00:17:17.900 --> 00:17:20.220
Be happy if a bunch of people showed up and,

00:17:20.220 --> 00:17:20.440
uh,

00:17:20.440 --> 00:17:20.780
started,

00:17:20.780 --> 00:17:21.140
uh,

00:17:21.140 --> 00:17:22.880
participating and adding things.

00:17:22.880 --> 00:17:23.580
But,

00:17:23.580 --> 00:17:23.860
uh,

00:17:23.860 --> 00:17:26.000
he added a warning also that,

00:17:26.000 --> 00:17:26.320
um,

00:17:26.320 --> 00:17:30.440
too much interest is going to be met with commit privileges on the repo.

00:17:30.440 --> 00:17:31.700
Essentially,

00:17:31.700 --> 00:17:33.320
if you want stuff done,

00:17:33.320 --> 00:17:34.180
he might say,

00:17:34.180 --> 00:17:34.860
Hey,

00:17:34.860 --> 00:17:36.240
just go ahead and do it.

00:17:36.240 --> 00:17:36.720
Um,

00:17:36.720 --> 00:17:38.620
but actually that's a good thing.

00:17:38.620 --> 00:17:39.160
He's up,

00:17:39.160 --> 00:17:40.600
he's up for people to help him out.

00:17:40.600 --> 00:17:40.940
So,

00:17:40.940 --> 00:17:41.500
yeah,

00:17:41.500 --> 00:17:42.740
I think it's really neat.

00:17:42.740 --> 00:17:43.480
It's a cool idea.

00:17:43.480 --> 00:17:45.340
It definitely makes a lot of sense.

00:17:45.340 --> 00:17:48.940
I've done so many training classes where it's not like stadium seating.

00:17:48.940 --> 00:17:49.920
It's like flat,

00:17:49.920 --> 00:17:50.240
right?

00:17:50.240 --> 00:17:54.400
And it's usually in some room with a crappy projector screen.

00:17:54.400 --> 00:17:55.360
That's like too small,

00:17:55.360 --> 00:17:56.620
like a third of it's off,

00:17:56.620 --> 00:17:57.060
you know,

00:17:57.060 --> 00:17:58.540
people in the back can't see it at all.

00:17:58.840 --> 00:17:59.680
And this is perfect,

00:17:59.680 --> 00:17:59.900
right?

00:17:59.900 --> 00:18:00.180
You just,

00:18:00.180 --> 00:18:01.520
everything stays at the top.

00:18:01.520 --> 00:18:02.280
It's really great.

00:18:02.280 --> 00:18:05.860
And people out there looking to find an open source project to work on,

00:18:05.860 --> 00:18:06.840
right?

00:18:06.840 --> 00:18:08.080
Go and express some interest.

00:18:08.080 --> 00:18:10.920
You might be met with commit privileges on the repo,

00:18:10.920 --> 00:18:11.820
but it's,

00:18:11.820 --> 00:18:13.620
it's still in its really small stages.

00:18:13.620 --> 00:18:14.860
There's not a lot of code there,

00:18:14.860 --> 00:18:16.180
so it's pretty easy to read.

00:18:16.180 --> 00:18:16.880
So yeah,

00:18:16.880 --> 00:18:17.280
that's awesome.

00:18:17.280 --> 00:18:17.640
It's cool.

00:18:17.640 --> 00:18:18.180
Nice.

00:18:18.180 --> 00:18:18.780
All right.

00:18:18.780 --> 00:18:23.040
So let's wrap this up with a really nice definitive statement.

00:18:23.040 --> 00:18:27.640
The last thing I want to talk to talk about is Python two's end of life.

00:18:27.640 --> 00:18:32.000
So we've spoken before how there's the Python death clock and it's,

00:18:32.000 --> 00:18:33.860
we know that in 2020,

00:18:33.860 --> 00:18:36.460
Python two will go unsupported.

00:18:36.460 --> 00:18:37.820
What exactly does that mean?

00:18:37.820 --> 00:18:39.880
How strict are they going to be about that?

00:18:39.880 --> 00:18:42.240
Is it going to be at PyCon 2020?

00:18:42.240 --> 00:18:43.600
Is it going to be the end of the year,

00:18:43.600 --> 00:18:44.320
beginning of the year?

00:18:44.320 --> 00:18:45.460
Well,

00:18:45.460 --> 00:18:45.920
my friend,

00:18:45.920 --> 00:18:46.600
Nicola Aroshi,

00:18:46.600 --> 00:18:47.220
he,

00:18:47.220 --> 00:18:49.620
who I have more news about in just a little bit,

00:18:49.620 --> 00:18:53.260
he's put this out on Twitter and got my attention.

00:18:53.900 --> 00:18:57.480
Basically there was this discussion on the Python mailing list saying,

00:18:57.480 --> 00:19:02.140
will there be a period where Python two seven is in security only status

00:19:02.140 --> 00:19:03.500
before hitting end of life.

00:19:03.500 --> 00:19:04.820
So like say 2020,

00:19:04.820 --> 00:19:07.020
will it go into like,

00:19:07.020 --> 00:19:07.400
well,

00:19:07.400 --> 00:19:08.700
we'll do security fixes for a while,

00:19:08.700 --> 00:19:10.500
but no new features and we're not changing anything.

00:19:10.500 --> 00:19:11.040
Or like,

00:19:11.040 --> 00:19:12.500
what is that going to happen earlier?

00:19:12.500 --> 00:19:14.320
Guido actually came out and said,

00:19:14.420 --> 00:19:16.440
let's not play games with semantics.

00:19:16.440 --> 00:19:17.640
The way I see it,

00:19:17.640 --> 00:19:21.380
the situation for two seven is the end of life is January 1st,

00:19:21.380 --> 00:19:23.260
2020 beginning of 2020.

00:19:23.260 --> 00:19:24.760
And there will be no updates,

00:19:24.760 --> 00:19:27.420
not even source only security patches after that date,

00:19:27.420 --> 00:19:30.140
period support from the core devs,

00:19:30.140 --> 00:19:30.880
the PSF,

00:19:30.880 --> 00:19:33.180
Python.org completely stops on that date.

00:19:33.180 --> 00:19:33.880
Yeah.

00:19:33.880 --> 00:19:34.780
There's,

00:19:34.780 --> 00:19:35.540
there's your answer.

00:19:35.540 --> 00:19:37.880
That's a pretty abundantly clear,

00:19:37.880 --> 00:19:38.240
isn't it?

00:19:38.240 --> 00:19:38.980
Yeah,

00:19:38.980 --> 00:19:40.280
but that's way out.

00:19:40.280 --> 00:19:40.800
That's like,

00:19:40.800 --> 00:19:41.360
that's like,

00:19:41.360 --> 00:19:43.240
like way in the future.

00:19:43.240 --> 00:19:44.400
That has to be at least,

00:19:44.400 --> 00:19:45.560
a year and a half away.

00:19:45.560 --> 00:19:51.860
So for those people with like millions of lines of code on Python too,

00:19:51.860 --> 00:19:55.800
they probably should start checking out things like my pie and some of the

00:19:55.800 --> 00:19:57.500
other tooling on pushing that along.

00:19:57.500 --> 00:19:57.700
Right.

00:19:57.700 --> 00:19:58.620
Yeah.

00:19:58.620 --> 00:19:59.000
Or,

00:19:59.000 --> 00:19:59.420
I mean,

00:19:59.420 --> 00:20:03.300
if you're planning on leaving your job and going to another company within the

00:20:03.300 --> 00:20:03.980
next couple of years,

00:20:03.980 --> 00:20:04.760
don't worry about it.

00:20:04.760 --> 00:20:04.940
Yeah,

00:20:04.940 --> 00:20:05.280
exactly.

00:20:05.280 --> 00:20:06.820
Or I,

00:20:06.820 --> 00:20:08.220
I know I've got a better one for you,

00:20:08.220 --> 00:20:08.380
Brian.

00:20:08.380 --> 00:20:09.080
I got a better one.

00:20:09.080 --> 00:20:13.200
Or you want to get a really sweet consulting job,

00:20:13.740 --> 00:20:15.820
migrating Python two to Python three,

00:20:15.820 --> 00:20:16.860
you know,

00:20:16.860 --> 00:20:19.920
learn all the nuances and go and,

00:20:19.920 --> 00:20:20.780
you know,

00:20:20.780 --> 00:20:23.620
when people are freaking out in November of 2019,

00:20:23.620 --> 00:20:25.740
you're going to be in sweet demand.

00:20:25.740 --> 00:20:26.540
Actually,

00:20:26.540 --> 00:20:28.020
that's not a bad idea.

00:20:28.020 --> 00:20:28.520
Right.

00:20:28.520 --> 00:20:30.860
My rate's $250 an hour to start.

00:20:30.860 --> 00:20:31.940
So let's go with that.

00:20:31.940 --> 00:20:32.880
Yeah.

00:20:33.440 --> 00:20:34.780
I can help you with this problem.

00:20:34.780 --> 00:20:35.920
It's going to take a while though.

00:20:35.920 --> 00:20:36.840
Hmm.

00:20:36.840 --> 00:20:37.560
I got,

00:20:37.560 --> 00:20:40.940
I got about a year to beef up on my conversion,

00:20:40.940 --> 00:20:42.320
do some conversion study on this.

00:20:42.320 --> 00:20:42.520
Right.

00:20:42.520 --> 00:20:42.960
All right.

00:20:42.960 --> 00:20:43.320
Yeah.

00:20:43.320 --> 00:20:44.000
Awesome.

00:20:44.000 --> 00:20:44.220
Do you,

00:20:44.220 --> 00:20:44.740
you got any,

00:20:44.740 --> 00:20:45.160
uh,

00:20:45.160 --> 00:20:47.100
news or extra things you want to throw out there?

00:20:47.100 --> 00:20:48.860
You did some recent testing code episodes,

00:20:48.860 --> 00:20:49.120
right?

00:20:49.120 --> 00:20:49.900
Yeah.

00:20:49.900 --> 00:20:50.280
So I,

00:20:50.280 --> 00:20:53.800
I guess I just wanted to shout out that I'm back into recording more often.

00:20:53.800 --> 00:20:54.300
Yeah.

00:20:55.680 --> 00:20:56.080
Yeah.

00:20:56.080 --> 00:20:57.060
Um,

00:20:57.060 --> 00:20:57.960
and I thought I'd,

00:20:57.960 --> 00:20:58.360
uh,

00:20:58.360 --> 00:20:58.940
um,

00:20:58.940 --> 00:21:01.040
I start with a little test project.

00:21:01.040 --> 00:21:03.780
So I've got a project called cards that,

00:21:03.780 --> 00:21:04.160
um,

00:21:04.160 --> 00:21:05.180
it's kind of a to do app,

00:21:05.180 --> 00:21:06.180
but I want to,

00:21:06.180 --> 00:21:08.420
I'm focusing around using it as an,

00:21:08.420 --> 00:21:13.240
just as an example bed to talk about things that I get questions about all the time.

00:21:13.240 --> 00:21:13.760
So,

00:21:13.760 --> 00:21:14.320
okay,

00:21:14.320 --> 00:21:16.440
your book is great for how to write the,

00:21:16.440 --> 00:21:17.920
the tests actually,

00:21:17.920 --> 00:21:19.920
but what tests do I write?

00:21:19.920 --> 00:21:21.380
How do I pick which tests to write?

00:21:21.380 --> 00:21:21.860
How do I,

00:21:21.860 --> 00:21:23.380
how do I pick test cases?

00:21:23.380 --> 00:21:24.280
Basically this,

00:21:24.280 --> 00:21:24.720
this,

00:21:24.720 --> 00:21:25.020
um,

00:21:25.500 --> 00:21:26.860
intro to quality assurance,

00:21:26.860 --> 00:21:27.320
uh,

00:21:27.320 --> 00:21:30.220
but for busy people that don't have a QA team,

00:21:30.220 --> 00:21:31.820
how do I do that?

00:21:31.820 --> 00:21:32.720
So that's where,

00:21:32.720 --> 00:21:33.480
where we're exploring.

00:21:33.480 --> 00:21:33.740
I'm,

00:21:33.740 --> 00:21:37.900
I'm two episodes into it and I'm just going to run with it until it runs out of steam.

00:21:37.900 --> 00:21:39.120
So check those out.

00:21:39.120 --> 00:21:40.120
Those are really awesome.

00:21:40.120 --> 00:21:41.020
I think that's great,

00:21:41.020 --> 00:21:41.420
uh,

00:21:41.420 --> 00:21:41.800
advice.

00:21:41.800 --> 00:21:43.400
And when people get that wrong,

00:21:43.400 --> 00:21:45.120
testing seems super horrible,

00:21:45.120 --> 00:21:45.580
right?

00:21:45.580 --> 00:21:45.900
You're like,

00:21:45.900 --> 00:21:47.840
what do you mean I got to test every single thing?

00:21:47.840 --> 00:21:48.060
Like,

00:21:48.060 --> 00:21:50.600
like if you're focused on testing the wrong thing,

00:21:50.600 --> 00:21:51.780
you can just feel super,

00:21:51.780 --> 00:21:53.000
like it's just super busy work.

00:21:53.000 --> 00:21:53.980
Yeah.

00:21:53.980 --> 00:21:54.680
But it's,

00:21:54.680 --> 00:21:56.440
testing should be something to help you,

00:21:56.440 --> 00:21:56.880
uh,

00:21:56.880 --> 00:21:57.920
develop faster,

00:21:57.920 --> 00:21:58.840
not slow you down.

00:21:58.840 --> 00:22:00.400
And that's where I'm focusing my energy.

00:22:00.400 --> 00:22:01.300
How about you?

00:22:01.300 --> 00:22:02.040
Anything else?

00:22:02.040 --> 00:22:02.620
Well,

00:22:02.620 --> 00:22:05.560
I just got back from PyCon Slovakia.

00:22:05.560 --> 00:22:06.180
That was pretty awesome.

00:22:06.180 --> 00:22:08.320
So I wanted to send a shout out to everyone there who I met.

00:22:08.320 --> 00:22:08.840
And that was,

00:22:08.840 --> 00:22:09.500
that was fun.

00:22:09.500 --> 00:22:12.620
So if you're in central Europe ish,

00:22:12.620 --> 00:22:13.280
uh,

00:22:13.280 --> 00:22:13.860
next year,

00:22:13.860 --> 00:22:14.720
be sure to check that out.

00:22:14.720 --> 00:22:15.820
That was a good event.

00:22:15.820 --> 00:22:16.960
And also I have a new course.

00:22:16.960 --> 00:22:17.740
You do.

00:22:17.740 --> 00:22:18.800
And I'm excited about it.

00:22:18.800 --> 00:22:19.260
Yeah.

00:22:19.260 --> 00:22:20.080
it's on the most,

00:22:20.080 --> 00:22:20.540
uh,

00:22:20.540 --> 00:22:22.060
most wanted database technology.

00:22:22.060 --> 00:22:23.080
So this is our,

00:22:23.080 --> 00:22:26.240
the first course based on Flask that I have.

00:22:26.240 --> 00:22:26.780
So this is,

00:22:26.780 --> 00:22:27.040
uh,

00:22:27.040 --> 00:22:28.700
on a thing called Eve,

00:22:28.700 --> 00:22:29.200
Eve,

00:22:29.200 --> 00:22:29.660
E,

00:22:29.660 --> 00:22:30.800
the E framework,

00:22:30.800 --> 00:22:36.880
which is a way to take Flask and a MongoDB database and turn it into a really awesome,

00:22:36.880 --> 00:22:41.520
restful API with validation and business logic and all that kind of stuff.

00:22:41.520 --> 00:22:42.160
So it's,

00:22:42.160 --> 00:22:43.040
it's a super cool way.

00:22:43.040 --> 00:22:44.340
And it's like really declarative.

00:22:44.340 --> 00:22:44.880
So you say,

00:22:44.880 --> 00:22:45.860
here's my models.

00:22:45.860 --> 00:22:46.620
Here's my end points.

00:22:46.620 --> 00:22:47.880
Here's the validation for them.

00:22:47.880 --> 00:22:49.340
Make that a rest service.

00:22:49.340 --> 00:22:49.600
Go.

00:22:49.600 --> 00:22:51.200
And it's nice.

00:22:51.200 --> 00:22:52.240
So that's out now.

00:22:52.240 --> 00:22:55.120
That's actually written by Nicola Aroshi,

00:22:55.120 --> 00:22:57.560
the guy who talked about the Python two seven statement.

00:22:57.560 --> 00:22:58.480
He,

00:22:58.480 --> 00:22:59.180
he wrote that.

00:22:59.180 --> 00:23:00.000
And we just shipped it.

00:23:00.000 --> 00:23:02.420
He's also the creator and maintainer of Eve.

00:23:02.420 --> 00:23:02.940
So,

00:23:02.940 --> 00:23:03.260
uh,

00:23:03.260 --> 00:23:04.680
he's pretty qualified to talk about it.

00:23:04.680 --> 00:23:05.340
That's great.

00:23:05.340 --> 00:23:05.740
And I'm,

00:23:05.740 --> 00:23:09.640
I've already started listening to it because I'm very interested in this topic.

00:23:09.640 --> 00:23:09.960
So,

00:23:09.960 --> 00:23:10.320
yeah.

00:23:10.320 --> 00:23:10.680
Awesome.

00:23:10.680 --> 00:23:11.200
Cool.

00:23:11.200 --> 00:23:11.440
Well,

00:23:11.440 --> 00:23:12.880
links in the show notes,

00:23:12.880 --> 00:23:13.940
check that out.

00:23:13.940 --> 00:23:15.580
And I think that might be it.

00:23:15.580 --> 00:23:16.180
Um,

00:23:16.180 --> 00:23:19.760
I'm really excited that we have a concrete statement on Python two seven and it's not like,

00:23:19.760 --> 00:23:20.820
it's just vague,

00:23:20.820 --> 00:23:21.100
right?

00:23:21.100 --> 00:23:21.800
Yeah.

00:23:21.800 --> 00:23:22.860
That's good to have it.

00:23:22.860 --> 00:23:24.220
I wonder if they updated the clock.

00:23:24.220 --> 00:23:24.800
Exactly.

00:23:24.800 --> 00:23:27.040
I was just thinking that we've got to recalibrate all the clocks.

00:23:27.040 --> 00:23:28.240
Cause they were all guessing.

00:23:28.240 --> 00:23:30.320
They probably got shorter.

00:23:30.320 --> 00:23:30.640
Awesome.

00:23:30.640 --> 00:23:31.360
All right.

00:23:31.360 --> 00:23:31.600
Well,

00:23:31.600 --> 00:23:32.060
thanks again,

00:23:32.060 --> 00:23:32.280
Brian.

00:23:32.280 --> 00:23:33.100
And thanks everyone for listening.

00:23:33.100 --> 00:23:37.360
Thank you for listening to Python bytes.

00:23:37.360 --> 00:23:39.920
Follow the show on Twitter via at Python bytes.

00:23:39.920 --> 00:23:41.060
That's Python bytes.

00:23:41.140 --> 00:23:45.720
as in B Y T E S and get the full show notes at Python bytes.

00:23:45.720 --> 00:23:45.940
Dot.

00:23:45.940 --> 00:23:46.220
F M.

00:23:46.220 --> 00:23:47.480
If you have a news item,

00:23:47.480 --> 00:23:48.060
you want featured,

00:23:48.060 --> 00:23:49.240
just visit Python bytes.

00:23:49.240 --> 00:23:49.380
Dot.

00:23:49.380 --> 00:23:50.600
F M and send it our way.

00:23:50.600 --> 00:23:53.320
We're always on the lookout for sharing something cool.

00:23:53.880 --> 00:23:55.460
On behalf of myself and Brian Okken.

00:23:55.460 --> 00:23:56.680
This is Michael Kennedy.

00:23:56.680 --> 00:24:00.320
Thank you for listening and sharing this podcast with your friends and colleagues.

