Podchaser Logo
Home
#367: A New Cloud Computing Paradigm at Python Bytes

#367: A New Cloud Computing Paradigm at Python Bytes

Released Tuesday, 16th January 2024
Good episode? Give it some love!
#367: A New Cloud Computing Paradigm at Python Bytes

#367: A New Cloud Computing Paradigm at Python Bytes

#367: A New Cloud Computing Paradigm at Python Bytes

#367: A New Cloud Computing Paradigm at Python Bytes

Tuesday, 16th January 2024
Good episode? Give it some love!
Rate Episode

Episode Transcript

Transcripts are displayed as originally observed. Some content, including advertisements may have changed.

Use Ctrl + F to search

0:00

Hello and welcome to Python bytes, where we deliver

0:02

Python news and headlines directly to your earbuds. This

0:04

is episode 367 recorded January 16, 2024. And

0:10

I am Brian Auchin. And I'm Michael Kennedy. And,

0:13

uh, I guess we

0:15

do have a sponsor today. So, um,

0:17

so that's awesome. And, uh,

0:19

in, but, um, Michael, do

0:21

you want to tell us why you're not? Yeah.

0:25

Well, for people who are listening, maybe they

0:27

hear a slightly different setup for me for

0:29

people who might watch the video.

0:31

Well, that right there in the

0:33

background is lovely and very icy

0:36

Portland, Oregon. Okay. And so,

0:38

uh, I'll go ahead and put this on

0:40

the screen and people can, um, well, check

0:42

out if they feel like they can check

0:44

out the YouTube, uh, stream at like one

0:46

minute, 19 seconds. This is the

0:48

entrance to my house, Brian. And it looks

0:50

like an apocalypse. Just every, I would

0:53

say every block or so there's like

0:55

a hundred foot tree that's fallen somewhere.

0:58

And it's just taken out the power in so many

1:00

ways. It's like, it

1:02

was now it's, it was 13 now

1:05

it's 18 degrees Fahrenheit. So negative nine,

1:07

something like that Celsius, no power for

1:09

five days, not a place for podcasting.

1:11

So I'm hanging out here downtown in

1:14

a, uh, in a, um, in a

1:16

hotel with the family until the power

1:18

comes back on, hopefully today, fingers crossed.

1:20

Well, hopefully, um, yeah, hopefully there's actually

1:23

quite a few people in Portland without

1:25

power and, and, uh, did experience, uh,

1:28

power outages and pipes

1:30

bursting and things like that. And, you know,

1:32

for people that are in parts of the country

1:34

where they get like wake older than us, um,

1:37

it might seem like we're just being

1:39

wusses. Um, but, um, what

1:41

we get here is, uh,

1:43

often very heavy rain or heavy snow or

1:45

freezing rain and the freezing rain just weighs

1:47

down trees and barracks power power lines and

1:50

stuff like that. Absolutely. And this had up

1:52

to a hundred mile an hour winds with

1:54

these really old trees. And, uh, also just

1:56

the city is not really built for it.

1:58

We don't get it. enough that they

2:00

have infrastructures for it. So it's like, oh, it's

2:02

no three inches. So just good luck with that.

2:05

We're not going to do anything, right? No salt,

2:07

no gravel, just hope that works out. So

2:10

anyway, it's been all right. But yeah, different

2:12

setup, Brian. So thanks everyone for the understanding,

2:16

indeed. And

2:18

also I want to say thanks to

2:20

Bright Data. We'll talk more about them

2:22

for sponsoring the show. Let's

2:26

talk about something contrarian, I guess

2:28

you would say, Brian. You

2:32

know many people I'm sure have heard of 37signals, right?

2:35

David Hennemeyer Hanson. He's the guy

2:37

who created Ruby on Rails, most

2:39

notably, but there's also Basecamp and

2:41

Hey, HeyMail, and all that

2:43

kind of stuff, right? So needless

2:45

to say, they run a ton of SaaS products in

2:48

the cloud. And I came

2:51

across what I guess was more or less some

2:53

kind of conclusion to a

2:55

bunch of conversations and stuff they've

2:57

been working on. And so I'll

3:00

work my way backwards just a little bit. But

3:02

it's pretty fascinating. And the headline on the

3:04

post is, we have left the cloud. Right. And

3:06

I thought we were all told to go

3:08

to the cloud. I mean, we saw the picture

3:10

of what happens when the clouds get angry.

3:12

So I understand why you might leave the clouds.

3:15

But more seriously, like, clouds are

3:18

supposed to save us. They save us

3:20

money. They give us agility, et cetera,

3:22

et cetera, right? Yeah. So hence the

3:24

contrarian aspect, right? Yeah. Look,

3:26

I guess it's not like 37signals

3:29

is the same sort of place as

3:31

a lot of startups. But that's

3:33

true. If you're in, they do

3:35

make that point. If you

3:37

were an early stage startup where the costs are low,

3:40

by all means cloud it up. But I

3:43

guess one of the big lessons here

3:46

is the more that you get the

3:48

cloud hooks in the abstract

3:50

sense into your app, the more it might

3:53

set you up for a tough time as

3:56

you get bigger, right? So let me get to this and

3:58

we can talk a bit more about that. So

4:00

let's – so they

4:02

say we stand to save

4:04

over $7 million in

4:07

five years from our cloud exit. And

4:09

so why do they not just say, well, that's 1.2 or 1. –

4:11

whatever it is, 1.1 million per

4:15

year because of our cloud exit? Because

4:18

what they did is they went and they bought – so

4:20

when they said they left the cloud, they didn't mean just

4:22

like we're not using

4:24

Kubernetes or we're not using Lambdas

4:26

and serverless. Like they

4:29

are – they bought physical hardware,

4:32

okay? So they've got these

4:35

big pallets. And what they

4:37

did is they bought this

4:39

Dell – 20 Dell R7625

4:41

servers, which don't mean

4:43

a lot to me, maybe due to some people. But

4:46

it basically takes up like two server

4:48

racks and that means 4,000 CPUs, 7.7

4:50

terabytes of

4:55

RAM and almost a half a petabyte

4:57

of high speed SSD

4:59

storage. And that cost them

5:01

$600,000 to buy that, which is a lot of money. However,

5:07

they were paying like

5:10

1.2 million a year in cloud

5:13

prices, in cloud to AWS

5:15

basically. And so after six

5:17

months, it's paid for – and the five years

5:19

part is they expect this hardware to last

5:21

them five years. And apparently, it's super, super fast.

5:25

So it's pretty interesting. I would really

5:28

recommend people go through and read this,

5:31

what some of the values were. And

5:33

basically, what they did is they said, we're

5:35

going to buy like a really big

5:37

server. I know it's a bunch of

5:39

kind of CPUs and stuff, but they

5:41

kind of clustered into like one compute cluster.

5:44

And then they came up with this thing

5:46

called – it's kind of like Kubernetes called

5:48

KML, which would work for Python, but I

5:51

think originally they're deploying Rails apps on it.

5:53

And it basically gives you zero downtime slices

5:56

of this giant server. And

5:59

the reason this really – fascinates me is

6:01

this whole philosophy here.

6:05

It's also not just hey, they're leaving

6:07

the cloud because many

6:09

people are running to the cloud, but

6:11

it's also they're getting a really huge

6:14

server, like one huge server rather than

6:16

a whole bunch of small distributed servers,

6:18

which also was a little

6:20

bit the way that the

6:23

cloud was initially sold, right? We'll get commodity

6:25

hardware, you buy a bunch of little small

6:27

slices all over the place, you can buy

6:29

more small slices with auto scaling if you

6:31

need and instead they're like

6:33

no, this. And sort of along

6:35

those same lines is I, a

6:38

little while ago interviewed Mark Resenovich, the

6:40

CTO of Azure at Microsoft, super cool

6:42

guy, really, really smart, but also CTO

6:45

of Azure. And he

6:47

talked about how they started out with a bunch

6:49

of small machines as well and they're just getting

6:51

bigger and bigger ones and slicing them up for

6:54

tenants to be using them. So

6:56

I think this is also a really interesting trend that

6:59

we're gonna see more of is like more

7:01

big machines rather

7:03

than a bunch of small machines that then

7:05

maybe you slice up with Docker or Kubernetes

7:07

or other things. And

7:09

Brian, we've hardly even talked about

7:12

this yet, but that has changed

7:14

the way, I gotta type holding,

7:18

holding the mic in the wrong hand here for typing.

7:20

That's changed the way that I'm running a lot of

7:22

our infrastructure. So I've been thinking about this for a

7:25

while and reading this stuff, I thought I'd make

7:27

it the first topic of our show, but also

7:30

I had eight servers for

7:32

all the TalkPython and Python

7:34

bytes infrastructure, some

7:36

database server stuff, one

7:38

that ran Python bytes, a bunch of services, a bunch

7:40

of small machines, right? And I'm like, why am I

7:43

messing with all these small machines? So I

7:45

ended up consolidating like last week all

7:47

of that into one big, big server,

7:49

just running a bunch of multi-tier

7:52

Docker setups over there

7:55

And it's glorious, right? One Machine

7:57

runs great, there's a single. The

8:00

and I type to upgrade like thirteen

8:02

different web apps and all at once.

8:04

I mean upgrade their server infrastructure, upgrade

8:07

their of potentially to ship their new

8:09

dependency. it's a rebuild them all of

8:11

kind of stuff. one command interesting so

8:14

yeah is really nice is really different.

8:16

Let me like quickly and easily thrones

8:18

more things and also I think it's

8:21

better for security right? Like I had

8:23

little pass a p I upset was

8:25

just like a little utility things running

8:28

that I didn't pay this much attention.

8:30

To his I did the other apps

8:32

and so on and they just didn't

8:34

They didn't get their dependencies updated as

8:36

frequency frequently and their Python versions revved

8:38

as frequently. And if something happened to

8:40

them rise on technically on the same

8:42

Vm I, that's an issue. but now

8:44

the third or walked up behind like

8:46

a docker container on, so it's wisely

8:48

since. Well, anyway, it's this whole as

8:50

I encourage people to read through, I

8:53

put a bunch of different. Parts

8:56

of the story in for the Thirty

8:58

Seven Signals with Less The Cloud. Is

9:00

worth reading. I'll just get you really

9:03

quick. The five eyes and in this

9:05

is kind of along segments of us

9:07

are move us on votes as steer

9:09

the five values guy in our cloud

9:11

x x it we value independence above

9:13

all else and been trapped in Amazon

9:16

cloud is not great. We serve the

9:18

internet. This business owes it's entire existence

9:20

to society who and economic aberrations that

9:22

is the internet in a positive way

9:24

and we don't want to be locked

9:26

up behind a few hyper sailors We

9:28

went to be kind of just on

9:31

the internet on our own terms been

9:33

money wisely even this have lots of

9:35

money in our they're getting better value

9:37

for money. I

9:39

mean the way or the cloud has been

9:42

sold as the answer to says companies not

9:44

so sure am that they seek adventures and

9:46

you but they they do so anyway it's

9:48

not leaving data centers they have that in

9:50

a managed data center. they just have it

9:52

on hardware that they are so they were

9:55

already think about all this am so lot

9:57

of this isn't this interesting that is that.

9:59

It. Perfect for you. Even like that

10:01

you've figured do not okay when you city

10:03

you put them all on one machine you

10:06

know it's did you don't have like up

10:08

the server in your basement or something. no

10:10

no A So what I did as i

10:12

instead of having a bunch of small the

10:14

M said digital ocean about one big Vm.

10:16

okay wanna have right? has like eight gigs

10:19

foresee views on I'm pretty sherman a switch

10:21

to like sixteen gigs and it's hippies and

10:23

even that would be cheaper than out when

10:25

I was doomed for and still it's in.

10:27

the other things interesting are in danger going

10:29

super. Long and this but that because

10:32

all those different apps are sharing. Let's

10:34

say it in the final destination of

10:36

eight, Cb use their spikes in performance

10:38

or not at the same time Like

10:40

what makes Talk Python or Python Bites

10:42

spikes and in Lodi not the same

10:44

that what makes the courses spike unload

10:46

like a new course release or like

10:49

Black Friday or something like that is

10:51

very unlikely to intersect with when a

10:53

podcast is released because the I'm Busy

10:55

three, one or the other rights in

10:57

so then basically has access to all

10:59

eight cores. Instead of that, one gets

11:01

to corps Aca, one gets one core

11:03

and even though they're sharing like basically

11:05

in aggregate, it's the same number. Because

11:08

the spikes don't line up, they get

11:10

more capacity for that whenever they're doing.

11:12

It's pretty interesting. Look, At

11:15

that receptive Ma'am bullet some

11:17

little completely go to assert

11:19

topic and that I'd like

11:21

to talk about little tiny

11:23

scripts. I'm or maybe big

11:25

scripts but single file applications

11:27

as so single file scripts

11:29

so. i wanted to talk

11:31

about pep seven twenty three in

11:33

that is inline scripted met a

11:36

data and one of the things

11:38

that we've noticed com recently in

11:40

this and this is authored by

11:42

is interesting author so the author

11:44

is effect love i think that's

11:46

a says name is the dude

11:49

from hatch i'm but so hatches

11:51

i guess move in packaging says

11:53

around packaging in the idea is

11:55

ah debt you've got a scripted

11:57

has to pet might have dependencies

12:00

also and it also might depend on Python.

12:03

We can't really tell Python currently

12:06

that a script needs a

12:08

dependency or a particular version of Python. So this

12:10

is an attempt to kind of fix that. And

12:14

there's some motivation and stuff at the top

12:16

that I skimmed through a

12:19

little bit. No, I read it.

12:21

But the real at

12:24

the end is we're going to put stuff

12:26

like Pyproject.toml but you can do it in

12:28

a script. And this isn't there yet.

12:30

But there's an example

12:32

where you just sort of do a

12:35

pound sign and then like a few

12:37

slashes and then say script. And then

12:39

after that, you can put a little

12:42

bit of like Toml right in your

12:44

as a comment. And the idea is

12:46

something like pip run. Right.

12:49

This is like the world's craziest

12:51

doc string sort of thing, right?

12:53

Almost. I don't understand. So supposedly

12:55

there's reasons behind this syntax. It's

12:58

the weirdest syntax I've ever seen.

13:00

But maybe it's not quite shebang, but

13:02

it's kind of shebang ish. Yeah. But

13:05

like in their example, they're saying, OK, well,

13:07

you've got a little script that just requires,

13:10

you know, and this is going to be

13:12

common, I think, actually, requires

13:15

requests and rich. So because

13:17

it's going to like grab something off the Internet

13:19

and it's going to print some stuff and wants

13:21

to do it with color and whatever. But

13:24

how do you do that without packaging

13:26

it? And and here's one way is

13:28

to just tell Python that it needs

13:30

these other things. So there's a

13:33

it's I don't really completely

13:35

understand this. Like how what are the at

13:37

the back end? What's going to happen? What

13:39

is I think the different

13:41

tools will treat this different because my question

13:43

is really where are these dependencies going to

13:45

be installed at? Is it like if I

13:48

just say, I Guess

13:50

it depends on the thing. So if you're

13:52

going to do if it hatch, for instance,

13:54

or pip X might handle this. So if

13:56

I say pip X, you know, run this

13:58

script and it finds. It'll probably create

14:01

a perfect for to environment area

14:03

and had to lose same thing

14:05

in a different manner but behind

14:07

the scenes. Grab military to little

14:09

virtual environments, this kind of it.

14:12

Mostly it seems like it's hiding

14:14

virtual environment and dependency installs from

14:16

users, but it's probably needed so

14:18

they were pretty sick of this.

14:20

He gets interesting. Similar

14:23

to installed as Liz point

14:25

out some for is similar

14:27

to installed on That We

14:29

talked. About not too long ago and

14:31

think it solves an interesting problem. All

14:34

of these do have that little bit

14:36

of a bootstrap the has to happen

14:38

right source or something spread for the

14:40

so work is not built into python

14:42

right and so you've gotta have like

14:44

one librarians saw that then you can

14:47

use to run in and kick off

14:49

all the other runs but as if

14:51

you somehow make that happen or get

14:53

a get your company to agree like

14:55

we're all going to have this foundation

14:57

and then it just runs. I think

14:59

that's. Pretty excellent so marry a very

15:02

and i think it affects killing it

15:04

raise his been really creative and work

15:06

and a lotta different tastes and this

15:08

is a half right so if this

15:11

was built in said pythons then then

15:13

all the sudden yeah we're a ten

15:15

have have iran so i okay for

15:17

some reason edge of the flu air

15:20

med that it is a pep and

15:22

not just an extension that so yeah

15:24

this this is gonna be this could

15:26

be super super important and the his

15:29

last updated in December. it's accepted now

15:31

i'm not sure how long it's been

15:33

accepted but it's around the packaging of

15:35

peps with package zinger interesting because we

15:38

don't really have to wait for when

15:40

search sept and we don't really have

15:42

to wait for i'm a release of

15:44

python because things like tip and hatch

15:47

and other things don't have the same

15:49

in a release cadences python serve does

15:51

this could be like there's a note

15:53

here that says a it's not going

15:56

to be cleared be declared final until

15:58

at least a couple of tools

16:01

utilize it. So, so far there's no tools

16:03

that utilize it. But their

16:05

example is possibly Pip Run and Pip X.

16:09

So, and probably Hatch as well. It's

16:11

considering who wrote it. Yeah.

16:14

Yeah, I would imagine it might show up

16:16

in, might get support from Hatch as

16:18

well. Yeah. Yeah. Funny, good, funny comments

16:20

out there in the audience he has about

16:22

being breast inspired indeed. Brian, you want

16:24

to know what else is inspiring? What?

16:27

Our sponsor, Bright Data. Yeah,

16:30

indeed. So I just want to say

16:32

thank you to Bright Data for supporting

16:34

the show. Check them out at pythonbytes.fm

16:37

slash Bright Data. And there's, go ahead.

16:39

Yeah. Do we want to put their

16:41

stuff on the? We do. And somehow

16:43

I did not quite, oh, we did

16:46

quite do it. Oh, there we go.

16:49

Awesome. Yeah. So there's tons and

16:51

tons of data out on the Internet,

16:53

unimaginable amounts of data, right? And we're

16:55

lucky to live in a time where

16:57

so much of this is behind structured

16:59

APIs and you can go and access

17:02

it with HPX or requests or whatever. But

17:04

the truth is that most of the data

17:06

is not served up over clean APIs. It's

17:08

just sitting there on a web page as

17:11

gnarly HTML. Maybe it's even worse

17:13

than that. Maybe it's obscured behind

17:16

some front-end framework like React where

17:18

when you actually look at the HTML, it just

17:21

says pull in the React app. Good luck with

17:23

that. And then something else happens somewhere along the

17:25

way, right? So getting access to that data can

17:27

be hard. What's the answer? Well, web scraping, everyone

17:30

says. Yes, true. But

17:33

just like you wouldn't want to set

17:35

up your production infrastructure in your home

17:37

office, running web scraping jobs on a

17:40

single computer even in a data center

17:42

can lead to your program being potentially

17:44

unreliable with data pinned where whatever access,

17:46

source, source you're accessing thinks you're located,

17:48

right? So maybe there's different data for

17:50

you in the EU than if you're

17:52

in Ohio, but your computer is in

17:54

Ohio. So there you go. Or

17:57

you know, it gets blocked because of rate limiting or

17:59

other. types of things like

18:01

that, right? So if you need to

18:03

do professional web scraping, check out Bright

18:05

Data. They have award-winning proxy network with

18:08

millions of different places to access data

18:10

from and powerful web scrapers. They have

18:12

even ready-to-go datasets you can download. So

18:14

they've already curated these datasets and you

18:17

can just access them and get updates

18:19

from them and not even do web

18:21

scraping, which is awesome. So they've got

18:23

a whole marketplace for that. Everyone

18:27

knows, we're probably going to come back to

18:29

it some more in privacy-conscious stuff that I

18:31

really care about. And they

18:33

are both CCPA and GDPR compliant. They

18:35

have low-code solutions as well as Python

18:37

programming models with async.io and playwrights. So

18:39

if you have serious data needs and

18:42

those websites that have the data don't

18:44

offer an API, then you need to

18:46

check out Bright Data. Give them a

18:48

try at pythonbytes.fm slash Bright Data and

18:50

please use that URL so you know

18:52

that they heard from us. Thank you

18:54

to Bright Data for supporting the show.

18:57

Links in your podcast player show notes.

19:00

Sounds pretty awesome. All

19:02

right, back to the next

19:04

thing. So this

19:06

is super exciting and it came, I believe

19:08

this was sent in by Belaz. Let me

19:11

check, yeah, Belaz sent this over. Thank you,

19:13

Belaz, for pointing this out. So I've had

19:15

Fedor Fitzner on Python before and

19:19

we've talked about Flet. And

19:21

Flet is basically Flutter

19:23

but with a Python programming API,

19:26

right? Flutter is

19:28

actually how we built the apps at

19:30

TalkPython, right, for courses. Super

19:32

cool framework. But you're writing

19:34

Dart and Dart is good but it's

19:37

not Python, right? And

19:39

so it would be great to be able

19:41

to write that kind of code. Here's an

19:43

example, by the way, Brian. We talked about

19:45

fast UI and I said, oh, that reminds

19:47

me, this sort of hierarchical code structure reminds

19:49

me of Flutter, right? And

19:53

so here's the same thing, the Flutter UI

19:55

but in Python code instead of Dart. I

19:57

know the link for this code is in

19:59

the show. shown us, you can check it

20:02

out. Right, so the big news is you

20:04

can now build APKs for Android. And for

20:06

those of you who have not suffered the

20:08

indignity of the app stores, the

20:11

way you get something into the Google Play

20:13

Store is you build what's called an APK

20:15

and then you send them that, they process

20:17

it and then that's what gets shipped out

20:19

to run on the phones, on Android. So

20:22

this means, even though Flet built Flutter

20:24

apps, you couldn't really deploy it. You

20:26

could kind of get the Flet app

20:29

and then put your Python code on there,

20:31

but that's not like your app, that's like Jupiter

20:33

or something like that kind of. So

20:36

this is awesome. This means that people can

20:38

now build APKs that go in

20:40

the app store, at least for Android, with

20:43

Flutter and Flet and Python in particular. We'll

20:46

see about iOS, it's on the roadmap. So super

20:49

exciting. Yeah. I

20:52

mean, I would have used Flet if

20:55

I was sure I could get it to build

20:57

and ship on the different things.

21:00

I'd much rather have done that than use Flutter

21:02

or Dart for Flutter, but you

21:04

got to work with the building blocks you got and

21:06

this one just got better, so exciting. Oh,

21:09

also really quick, in those show notes, there's

21:11

a video by this guy

21:14

called Neural9, this channel is called Neural9, walking

21:17

through the steps to do all that build. So you want

21:19

to see how it works, you can watch that eight minute

21:21

video. Cool, meek. So

21:24

that's for Android apps, for

21:26

command line, normal command line stuff. I

21:29

was going to talk about Harlequin. So there's

21:32

a lot of people that

21:34

use SQL and SQLite for

21:37

different purposes, of course, for

21:39

databases. But to take a

21:41

look at your SQLite data,

21:44

there is an IDE called Harlequin.

21:46

I don't think we've covered it. But

21:50

it's an open source Python project

21:52

that it looks pretty cool. We're

21:59

showing on the screen. screen, the little snippet

22:02

or screenshot. You've got kind of

22:04

your tables, your data catalog on

22:06

the left panel, and you've got

22:09

a query editor, and then some

22:11

query results at the bottom right.

22:14

And it actually looks pretty slick

22:16

for quickly going through some data.

22:19

It looks like it has hooks

22:21

to go into DuckDB and SQLite.

22:23

That's why I brought up SQLite.

22:27

And I'd probably use it for SQLite. I haven't

22:29

used DuckDB. People don't know DuckDB is

22:31

also in process very much like

22:34

SQLite, but it's columnar instead of row base.

22:36

So they're kind of in the same category,

22:38

I guess. Yeah. Okay.

22:41

Yeah, I haven't used it, but definitely

22:43

SQLite use that a lot. So this

22:45

is kind of fun. I

22:48

like command line tools. This is neat.

22:50

I wanted to... It's kind of a short

22:52

topic. Just hey, if there's a command line

22:55

interface for SQLite or DuckDB,

22:58

and that's fun. It

23:00

looks like it runs on Linux, Mac, and Windows, which

23:02

is cool. But

23:05

I was also... One of the

23:07

things I've noticed is in, for

23:09

instance, a lot of Django tutorials,

23:12

Django starts with SQLite.

23:14

And by default, it does that.

23:17

And then you can specify other

23:19

databases. But I noticed today

23:21

a discussion on Mastodon that I

23:24

wanted to bring up kind of

23:26

SQLite-related. Jeff Triplett

23:28

posted a post

23:30

by somebody else, Anze. But

23:34

okay, Jeff's comment is, this is

23:36

a nice write-up about using SQLite

23:38

in production with pitfalls and open

23:40

questions. I cringe whenever I see

23:43

some Django Python luminary recommending people

23:45

use SQLite in production. I

23:47

don't care how good you are. You won't get it

23:49

right, even if you think you did. Anyway,

23:52

so interesting commentary there. So

23:55

Anze's post was, I wrote a blog

23:57

post about using SQLite in production. in

24:00

dealing with DB as

24:02

closed errors. I'm happy

24:04

to hear your thoughts. So the

24:07

article is called Django SQLite and

24:09

Database is Locked There and it

24:11

walks through those. And kind of

24:14

the reality is Django doesn't, I

24:16

guess, lock the database

24:18

when it reads correctly, the transactions are

24:20

weird. And a lot of the discussion

24:23

around this really is, if

24:25

you're using SQLite for, a

24:30

database that's mostly read-only, most people are just

24:32

reading stuff, it'll probably work fine and it

24:34

might work great. And it might be way

24:36

less hassle than doing Postgres or something else.

24:39

But if there are a lot of transactions

24:42

that are writing to it, if you

24:44

have multiple writers, then you've got issues.

24:47

So just thought

24:50

this was an interesting discussion, I wanted to bring it

24:52

up. Yeah. Yeah,

24:54

it is interesting. I think it really depends on

24:56

the type of app you got. Is it an

24:58

analytics thing that's writing like crazy? Or

25:00

is it basically like the database to your blog,

25:03

right where it's really just

25:05

you make an entry once a week if

25:07

you're a good blogger? You know what

25:10

I mean? That kind of thing. And then it's

25:12

all reads and probably fine, right? So somewhere

25:14

in the middle, I guess, you can sort

25:16

of turn that bar or watch

25:18

that gauge turn from green to red

25:21

as it gets closer to a full

25:23

analytics system. But yeah, it's pretty interesting.

25:25

Yeah, interesting discussion. All

25:28

right. What you got in it? Oh, we're done.

25:30

We're done. We're done. But we're not doing as

25:32

many extras. Do you have extras? I've

25:35

got just a couple extras. So since

25:37

I've got my screen up, I'll run

25:39

through a couple extras. I've been, I've

25:42

kind of started Python people podcast

25:44

last summer, and then kind of

25:46

ran out of time trying to

25:48

get the PyTest course done.

25:51

And so now I'm coming back and

25:53

cleaning up some things. So there's a

25:55

few recent episodes that finally came out.

25:57

So like, I stopped in October.

26:00

and then picked it up in January. So

26:02

we've got Will Vincent and Julian Seguera and

26:04

Pamela Fox episodes out now. So check those

26:07

out. Oh, excellent. Yeah, those are all great

26:09

people. And many of

26:11

them have been on this show as well. So

26:13

very cool. Nice to see these going. They provide

26:15

a really interesting look, like

26:18

really out of bounds looks into what people are doing,

26:21

you know. Like you and

26:23

Paul talked a lot about lacrosse,

26:25

right? And empowering

26:27

women and not the

26:30

next pep. And that was really interesting.

26:32

So yeah, keep it going. Some of the fun

26:34

bits are to try to talk to, kind

26:37

of dig deeper into stuff that I

26:39

normally don't ask about in the, like

26:43

for instance, Julian Seguera. Julian's

26:45

a really pretty positive person. So I poked at

26:47

that a bit and tried to ask him, like

26:49

really, how did you get this mindset? I mean,

26:52

clearly bad stuff must happen to you. So we

26:54

talk about his, you know, how

26:56

does he get through it? And keep

26:59

maintaining a positive mindset. So it's good.

27:01

Anyway, what are your extras for us?

27:04

Let's see if I can find them here. Okay, page

27:06

find. Yes, that's the first one, page find. So

27:09

Brian, you and I, we both

27:11

Hugo, right? Yeah. Hugo is awesome.

27:13

Go Hugo, for people who don't

27:16

know. Go

27:18

hugo.io, that's right. Super,

27:20

super cool way to build static

27:22

websites, not just blogs,

27:24

but static websites that are really, really powerful. And

27:28

I learned about this one from Mark

27:30

Little. He also does a ton of

27:32

stuff with Hugo and said,

27:34

hey, you should check out page find. So what

27:36

is this? I have no idea. So page find,

27:39

this is not just a Hugo thing, but for

27:41

all static sites. It's a fully

27:44

static search library, right? So

27:46

for static sites, whether this

27:48

is flask freeze or Hugo

27:50

or Pelican or whatever, this

27:53

is like a post build step thing that

27:55

runs and it indexes all of your HTML

27:57

or the parts that you. tell

28:00

it to index or tell it to, you

28:02

know, you can basically say don't include this part or

28:04

whatever. And no

28:06

configuration, it has rich filtering,

28:09

it has custom sorting attributes

28:11

and the way it structures its, what

28:14

it does basically is JavaScript and it has an

28:16

index that then the JavaScript reads in but the

28:19

index is broken into a bunch of pieces so

28:21

the front end stuff can like pull just little

28:23

bits of it and not pull all the results

28:25

back basically right. So I

28:27

added this over to my website

28:30

where if you're over here like Brian we could see

28:32

what I said about AI and check that

28:34

out and that awesome so it finds all

28:36

the different things that we could be

28:38

talking about but it also like in

28:41

my document, in my markdown I have

28:43

like H1, H2, H3 and it will

28:45

actually subdivide the results into

28:47

sections like what is in this

28:50

section demarked by H2 on

28:52

this one page. Oh that's pretty cool. That's really

28:54

cool right? And it also does things like, I

28:57

don't know if I can see any examples here

28:59

but if you type YO it'll

29:01

do like you, yourself, etc. So it's

29:03

not even just like exact word matching,

29:05

it's like a really smart search engine

29:07

and all it takes is just running

29:10

a script for like a couple of

29:12

seconds after you build your static

29:14

site and then dropping the output into like

29:16

a known location. Is that cool or what?

29:18

It's very cool. It's one of the issues

29:20

I've had when switching to a static site

29:22

is not knowing how to deal with the

29:24

search part. Yeah so I was

29:27

psyched with marks on this over like yes this is

29:29

going in. Yeah the other part that

29:31

I'm trying to figure out is how to get

29:33

a decent contact form so that's

29:35

still to be determined. Yeah

29:38

I don't think Page5 is going to help with that but this

29:40

is cool. This is really cool. So I recommend it. I'll add

29:42

it to my stuff too. It's

29:44

incredibly fast like search for AI

29:46

and I'm on like hotel Wi-Fi

29:48

and it's nearly instant right? So

29:52

that is super super cool where there's a lot

29:54

of sites even static sites so like searching, searching,

29:56

you'll see the little spinner you're like what is

29:58

it doing? Why is it search? No,

30:00

it should be instant, right? And that just, you

30:03

know, very much in line with like plugging something

30:05

like this into Hugo means like it's still instant.

30:07

All right, I got a few more. Let's let's

30:09

blaze them. Okay. This is

30:12

not to encourage people like more of a

30:14

just an interesting, hey, careful. We've

30:17

got PyPI and pip. The JavaScript

30:19

world has NPM. There's

30:22

an article called when everything becomes too much,

30:24

the NPM package chaos of An

30:29

NPM user named Patrick JS

30:31

launched a troll campaign with a

30:33

package called everything that depended on

30:35

every NPM package there. So

30:40

when you install it, it tries to install

30:42

the millions of

30:44

NPM packages. It

30:47

destroyed it like because people were installing it

30:50

and it was just taking too

30:52

much resources and so on. So

30:55

the follies of package management. How's that? Yeah,

30:59

nice. I'll get a little out of order here. So

31:01

Matthew Fiker wanted us and we're happy

31:03

to do so announce that the

31:05

SciPy conference is

31:08

coming and will be in beautiful Tacoma,

31:10

Washington this year. So

31:12

if you're interested, check that out and put

31:14

a link to that. And

31:17

the last thing is I wrote an

31:19

essay called unsolicited advice from Mozilla and

31:21

Firefox about four things. I think three

31:23

things I think they did wrong and

31:25

four things I think they could do

31:27

to like absolutely both change

31:30

the way that the

31:32

place of Firefox in the market

31:35

and alleviate their

31:37

insane dependency on Google.

31:40

Like not anti-Google,

31:43

I do stuff with Google. I

31:45

love YouTube, things like that necessarily,

31:48

but I don't think they're congruent

31:50

with Python with Firefox's focus on

31:52

privacy very much. And also 95%

31:55

of your company's revenue from one deal

31:57

with one company that's kind of at

32:00

a whim could just change their mind. That's not a great place

32:02

to be. I like to see Firefox doing well, so I thought

32:04

a lot about it and wrote about it, including

32:06

they should just lie about their user agent.

32:09

When a website says, this site runs best on Chrome

32:11

and using this crappy old browser we don't know about,

32:13

you know why you never see that on Vivaldi or

32:15

Brave? Because their user agent is

32:17

identical to Chrome. So when you get to the

32:19

website, like, oh, this is my favorite one. Perfect.

32:23

We're good to go. How many people leave Firefox because

32:25

when they get to a site, it says, this doesn't

32:27

work well. You need to go get this other

32:29

browser. It would stop saying that if Firefox just

32:31

said, hey, we're Chrome. Things

32:33

like that, right? And sure,

32:35

it would hurt a little. It would

32:37

hurt their pride. But people leave Firefox because

32:40

the website will refuse to run, right? And

32:43

if it probably would work, but if it's

32:45

going to refuse to work, then it's not

32:47

going to work. Things like that. So

32:50

anyway, I think this is a really fun article. I had a lot of fun thinking

32:52

about it, so people can check that out. And I think, I don't want

32:55

to dwell on this too much, but

32:57

there are a lot of internal site

32:59

stuff. So a lot of people do

33:01

internal tools at companies and they'll

33:03

do that. It

33:06

should use Chrome and somebody will try it

33:08

with Firefox and they'll be like, oh, it

33:10

doesn't work. And it probably

33:12

does. It just blocks it for the

33:14

heck of it. Exactly. And no

33:16

one's going to update that site, right? It's

33:19

just, yeah. Another thing that's

33:21

just maybe interesting to put on people's radar

33:23

is another thing a friend of mine co-founded,

33:26

Wayne's, is

33:28

this thing called Island, which

33:30

is like a enterprise browser meant

33:32

just for like giving enterprises super interesting control

33:34

over things like that you're just talking about.

33:36

So this actually is super interesting. One of

33:38

the things I think Firefox could do, but

33:41

also it's just really interesting. island.io, people can

33:43

check that out. Sounds weird.

33:45

Like, why would you ever want that? And then you watch the video or listen to

33:47

it and you're like, actually, that's awesome. So, like

33:50

installed. All right. All right. Shall

33:52

we joke? Yeah, let's do a joke. All right.

33:55

Well, this is a Linux joke. honestly.

34:00

So Brian have you ever got a combination

34:04

lock for anything? In this video,

34:07

here's a little character says my new bicycle

34:10

lock. To keep my new

34:12

bicycle secure, it has three digits.

34:14

Let's see. So that's a thousand combinations of

34:16

what we could have and then

34:18

they start to rule out what are the ridiculous ones,

34:21

right? Like one, two, three and stuff like

34:23

hmm 998 maybe. I am not silly enough

34:25

to use 666 or 777 to give full

34:27

access to everyone.

34:30

You know change mod 777. It gives

34:34

it full access to the read write access to

34:36

whatever you change mod it. That's

34:39

funny. Yeah, pretty good. I mean obviously when you

34:41

777. I may be the wrong

34:47

target market for this because I'm sort

34:49

of funny but also I'm thinking did did

34:51

bike locks really have three combinations? Three letters

34:54

or were there four? You're being

34:56

way too practical. Like four or six or something like

34:58

that. I

35:00

had a smartphone smart lock once and it was

35:02

awesome. You would hold your phone up to it

35:04

and it would unlock. I got it from my

35:06

electric bike before my knees decided electric biking wasn't

35:08

for me. One

35:11

time I was out biking with a friend and

35:13

I parked it in the summer in the

35:15

sun and like the electronics bit of it got

35:17

direct sunlight. It's black because it's a lock, right?

35:19

It got super hot. Like so hot you couldn't

35:21

hardly touch it but also so hot that like

35:23

the electronics wouldn't run. I couldn't unlock it. I

35:25

had to like put it in the shade for

35:27

an hour before I could go home. I was

35:29

so frustrated. I covered it with my shirt or something.

35:31

Just sat there till it cooled off so I could go

35:34

home. That's bad. Then also

35:36

I've seen like the

35:38

combination really kind of doesn't matter. It's how

35:40

thick the rest of the lock is. I

35:43

see people just come up with these

35:45

like battery powered just cutters

35:47

and just cut the lock off. Yeah

35:50

exactly. It's probably not the combination

35:52

but if you do have one

35:54

don't use 777 because clearly that's

35:57

gonna Just

35:59

fall right off if you did., It

36:01

yeah just go twenty to for some

36:03

examples they were both of thanks to

36:05

a lot of you get power back

36:07

to how soon thanks I hope so

36:09

too. Probably the the

36:12

power of people said I'll be to

36:14

David's never knew enough about it will

36:16

were getting better and really later by

36:18

that by. Run by Run.

Rate

Join Podchaser to...

  • Rate podcasts and episodes
  • Follow podcasts and creators
  • Create podcast and episode lists
  • & much more

Episode Tags

Do you host or manage this podcast?
Claim and edit this page to your liking.
,

Unlock more with Podchaser Pro

  • Audience Insights
  • Contact Information
  • Demographics
  • Charts
  • Sponsor History
  • and More!
Pro Features