Python Bytes - #298 "Unstoppable" Python
Episode Date: August 24, 2022Topics covered in this episode: Uncommon Uses of Python in Commonly Used Libraries Skyplane Cloud Transfers 7 things I've learned building a modern TUI framework ‘Unstoppable’ Python Extras Jok...e See the full show notes for this episode on the website at pythonbytes.fm/298
Transcript
Discussion (0)
Hello and welcome to Python Bytes, where we deliver Python news and headlines directly to your earbuds.
This is episode 298, just too short of 300, coming in fast.
Recorded August 23rd, 2022. I'm Michael Kennedy.
And I'm Brian Ocken. Wow, close to 300. That's amazing.
Yeah, that's, what is that, coming up on six years here pretty soon?
Really? That's amazing.
Well, 52 times. Yeah, I don't know. Yeah years here pretty soon. That's insane. That's amazing. Well, 52 times.
Yeah, I don't know.
Yeah, so pretty awesome.
And got some fun folks we see in the audience
who are out here frequently.
Will McGugan is here.
Will is going to be a guest on the next episode.
So if you want to hear from Will,
be sure to at least listen to the next episode
if you don't come to the live one.
Yeah, should be good.
Yeah, it'll be fantastic. Yeah, it'll be fantastic.
Also, before we get going on the topics,
I just want to say thank you to Microsoft for Startups Founders Hub
for sponsoring this and so many of the episodes this year.
Super great to have their support.
Very cool.
It's uncommon, Brian, to have such great supporters, wouldn't you say?
It is uncommon.
Nice segue. I like it. So I'd like to talk about uncommon uses
of Python in commonly used libraries. Actually, this is just a pretty cool article. It's by
Eugene Yan. And he goes through a handful of things. I'm just going to pull out one,
but it goes through using superclasses and a whole bunch of things. The idea was to learn
how to build more maintainable and usable Python libraries.
He's been reading some of the most widely used Python packages
and learning some things along the way,
which is an awesome way to learn is to read other code.
I agree. I think it's fantastic.
Yeah, so he goes through super
and a handful of other things.
When to use a mixin.
I don't know if I'd use that.
Anyway, the thing I want to pull out
is using relative imports all the time.
And this is something I picked up not too long ago,
but it really isn't talked about much.
So the idea is that if you do an import,
like import something or from some library import, you don't if you put a dot in
front of at the beginning is like the first dot then it looks in your in your path your current
search uh the directory of the the file that it's in so in the example he has a base by a base dot
pi from scikit-learn and it it uses it says from dot utils dot validation import something
and and these are uh because it says dot utils it'll look for utils in the current directory
and not somewhere else because there's probably a utils like somewhere else also uh looking for
the search path um so this is neat you can can do multiple, you can do multiple dots.
Also.
I don't ever,
I don't think I ever do that.
I do the current directory and down or the current project and down.
So this is.
Dot dot will get you up,
up one and then down a different path or something like that.
Right.
It will.
So if you do dot dot something and you don't do slashes,
you don't,
it's not a direct,
a pat.
It's kind of like a path,
but it's not like dot is the current directory. of like a path but it's not uh like dot is
the current directory dot dot is like one up and you can do three but wow um i think there's
something wrong with your project if you're doing that um but uh but maybe not maybe not there is um
a couple links in there for further reading there's a guido's decision on relative imports
which is part of the um part of part of the, the PEP three 28
write-up and actually the, this PEP three 28 write-up is this little bit about Guido's decision
where he's talked about the leading dot or leading two dots. There's a really good, easy way to get
a handle on how to use this. And, um, I, I use this a lot now and try to put it in, uh, projects,
uh, you know, projects at work and personal projects as well.
So the dot thing is cool.
And yeah, it isn't talked about much.
So I like it.
Yeah, it's fantastic.
It only works in packages and not just a pile of module files, right?
Oh, yeah.
Yeah.
So you have to have Dunder init files within the directory and that's i guess one of the things that i wish we
had another name for because in python we talk about a package or a sub package these are um
this could be just a directory with python files in it that has dunder init and the done and that
that makes it a package in python but we also definition. Yeah. Yeah. We also talk about the package repository and PyPI.
It's the Python package index.
Those are not just directories with Dunder and Nitz.
They're packaged up with a whole bunch of other meditated and stuff like that.
So there's two things that we call packages, but yeah, they have to have Dunder and Nitz
in them for this to work.
So anyway.
Yeah.
Brent, Brandon on the audience asks, so are we arguing for relative imports?
For the current directory, I am. I think that within a project, if you're like internal stuff, you're not, I mean, if it's part of the external API of the project, I will always go through the external API to get at something. But there's a whole, there's a lot of times where you're just developing a bunch of Python modules together. And they're internally, they're going to talk to other
subcomponents and that isn't necessarily part of the external API. And this is the best way to get
at it. So yeah. Yeah. All right. Sounds good. Next up, let's go to the Skyplane. So this one comes to us from, let me make sure I give the proper credit.
This one comes to us from RMRF, the Sudur.
Thank you for sending this in.
Really appreciate it.
The project is called Skyplane, 114 times faster cloud transfers.
At first I was like, what does that mean exactly?
Like, what's the baseline for this?
I'll say so, probably what they're basing that on in a minute.
This is interesting for two reasons.
It's interesting because it's a tool that I think many Python developers would find useful,
especially those folks doing a lot of work in the cloud.
It is also useful or interesting because it is itself a Python project. Okay. So
if you want to contribute to it or understand it or extend it or work it and do other things,
that's totally possible. It's worked on by a pretty big group of folks. The idea is it gives
you blazing fast bulk transfers, file transfers between any cloud, any, it needs a little like star or an asterisk by it
that says any means any of the big three cloud providers. Okay. Whereas, you know, this is like
AWS, it's Azure and it's Google GCP. Okay. So those three, however, what I'm not clear on
is whether you can point it at the S3 compatible places like
Linode and DigitalOcean also have cloud storage that are S3 like, but I'm pretty sure it won't
work based on the way I'm about to tell you what's going to happen next. Okay. Okay. So if you go
over, there's an architecture section. And if you look in there, they've got this Sky Retreat 2022, where Paris
Jane introduces Skyplane to the folks there. It's about a 15 minute video, but you really got to
watch just two minutes of it to get the zen. So they laid out a scenario. This is, I believe in
their world, they're doing data science. And so what they need is they need the data very near
to them. And there's a woman in the Middle East using some AWS S3 in point there.
And she has 80 gigs of data.
And Paras is on the East Coast of the US and wants closer access to that data for their
other work that they're doing.
So there's a way with the AWS CLI to just copy from Bahrain or wherever it is over to Virginia. And they run that
and it says the, after running for a while, it says estimated time to completion one hour, right?
I don't know. Is that good or bad? Like it's, it's a lot of data, right? 80 gigs halfway around the
world. It's miraculous that this is possible, but is that good or not? So then they say, well,
let's try it with Skyplane. They were getting like 20 megabit, I think.
They run it with Skyplane,
they're getting 30 gigabit transfers from the Middle East.
And it took 30 seconds instead of an hour.
That's quite a bit faster.
That is pretty awesome.
Yeah.
Exactly.
And so instead of going across the open internet,
it was transferring basically over like dedicated fiber
for just AWS
data center connects or something like that, right? But what it does is it will spin up a
virtual machine or many virtual machines in the different data centers. So I think what happened
here, not 100% sure, but I think it fired up some VMs in Virginia, copied it from S3 in Bahrain
directly through the internal data center transfer,
and then pushed it into like nearly local S3 storage.
And you can do the same thing
from like AWS East Coast to Azure West Coast, right?
You would fire up a VM, I think in that scenario,
and both of the data centers and those VMs
would talk directly over the high-speed data center network.
Instead of like the S3 one,
we'll copy it down to your machine,
and then you push it back out of your machine
to the new destination.
Yeah.
So it basically manages data center to data center traffic.
That's pretty cool.
Makes sense.
It's pretty cool.
It has, yeah, yeah, yeah.
And it's like all the CLI.
It's like one CLI command,
and that's creating the various virtual machines, provisioning them, setting up the encryption,
doing all the stuff, and then it shuts back down.
So, and as far as security goes, what you do is you basically install the AWS CLI or
the Azure CLI, and you just log into those local CLIs and it uses those behind the scenes
to do the setup of like create the VM
and then SSH over to it, do the work or something like that.
So it has a lot of integrity checking.
So it does like checksums and verifies the files are there.
The file sizes are the same and all that kind of stuff.
It does end-to-end encryption sort of.
So the VM, as it gets it out of cloud storage,
encrypts it and then sends it over to the network.
And then when it has to decrypt it
to drop it back into the other place.
But it also, on top of that, goes over TLS.
However, some people might be storing encrypted data
in the cloud because they don't trust
that it's not going to get looked at.
So even the stuff in S3 or wherever,
Azure Blob Storage could be encrypted, in which
case you can turn all this off and it'll go a lot faster because it's already encrypted end to end.
It'll set up like virtual private networks if it's within a data center. And there's a bunch
of cool things that are kind of nice that you don't have to worry about. Anyway, this is the
sky plane. So if you're transferring data between different clouds or even different data centers within a single cloud, it looks like it'll do a lot of nice work for you.
Now, it's believable it is faster.
I'm curious if it's cheaper also.
Any comment?
Oh, that's a really good point, actually.
If you go and say AWS to Azure or vice versa, I think it's the same price.
But if you're going Azure to Azure, it probably is cheaper because I don't know if they really charge you for the S3 CLI.
If you say do a transfer, you're still like flowing through, but you know, the within
data center transfer is cheaper than outside of, out of the, yeah, exactly.
Oh, cool.
So maybe, I don't know.
They didn't talk about it, but possibly.
Yeah.
Wow.
That's awesome.
That's what I got for you.
Yeah.
Skyplane.
You know what else is awesome? Speaking of Azure.
Microsoft for startups. Yeah.
Yeah, absolutely. They are, like I said, big supporters of the show, big fans of the show.
And this episode, like many of them, is, or you've dreamed of going to something like a Y Combinator type of accelerator, this is a really great way to get some of the benefits of that. resources for running your startup in the cloud, in Azure, but also many other cloud resources,
like a bunch of GitHub credits for automation and actions, as well as access to places like
OpenAI. But another thing I think is really important is having access to mentors and people
who have been there and have the right connections, right? Like, I think honestly, that might be the
hardest thing about doing a startup because as developers, we can build it. Often we can build it, but then it's,
well, how do you build the right thing? How do you, you know, in terms of customer fit, how do you
get access to the right networks so that you can find people for investing or get better,
maybe coaching for like sales and marketing.
All those things are incredibly hard,
especially if your expertise is in software.
So through Microsoft for Startup Founders Hub,
you get access to their entire mentorship network,
access a pool of hundreds of mentors across a bunch of disciplines like idea validation,
fundraising, management, coaching, sales and marketing,
and a bunch of technical areas as well.
So you'll be able to book a one-on-one meetings with these mentors,
many of whom are founders themselves.
You'll make your idea a reality today with the critical support
you'll get from Microsoft for Startups, Founders Hub.
To join the program, there are very few restrictions.
You don't have to be third-party validated.
You don't have to necessarily have funding.
You just visit pythonbytes.fm slash foundershub2022 in your show notes you apply for free you get accepted you get all these benefits
and it seems like a great program yeah i'm excited to see what comes out of this
yeah absolutely all right what's what do you got for us here brian well uh
it wouldn't be complete if we didn't talk about Will McCougan a little bit.
Absolutely. Hey, Will.
So there's an article that is from the textualize.io
blog. And it's seven things I've learned about building
a modern TUI framework. And this is pretty interesting because I
think that, I mean uh will more than anybody else
has went has really thought about like okay i want to i want to have something be really responsive
and really good to work with on the command line which is it's been there for a long time we just
haven't developed it much so there's a whole bunch of cool learnings that he talks about
like terminals are fast and and they're faster than we realize. But there's a whole bunch of like things that you can that are different about terminals
and other places like Flickr and tearing and stuff and how to deal with that.
There's a whole bunch of learnings in here.
The thing that like popped out is something that everybody can use that I wanted to talk
about was a little blip that he talked about that is dict views are amazing.
So the thing he talks about here is that, so maybe, I don't know if everybody knows the term
dict views or views into a dictionary, but things like if you ask for, if you have a dictionary and
you ask for the keys or you ask for items, that is a view. It's called a view into dictionary.
And they are super fast. And one of the things he points out
is that they act like sets also.
And you can use set operators.
Like here's the little carrot symbol.
And I can't remember.
I'll have to look it up.
The carrot symbol is a symmetric difference.
Basically, just give me a set of the stuff that's different about the two different sets or two dictionaries.
And you can do this in code, but he's doing it using using views because those those operators are happening with with C code.
Python has optimized those.
So they they work super fast.
And they're way faster than anything you could write in Python.
So just taking the items of two dictionaries and using set operations on them.
And then you can go back to dictionaries if you want.
You don't have to use that.
But super cool.
I didn't know that about dictionaries and views.
So super nice. Obviously, use.items and.keys all the time. um i i hadn't had i didn't know that about dictionaries and views so yeah nice obviously
use dot items and dot keys all the time didn't know they had this name and i didn't know you
could do set operations on them quite cool right yeah super neat um then he he goes covers a whole
bunch of other stuff like uh lru caching and that how that is. One of the things that I thought was great where he talks about Unicode in art,
Unicode art in doc strings of just like a picture says,
you know, a picture gives you a thousand words or whatever.
But he gives an example here for talking about
splitting the screen into sub regions.
And yeah, there's no way to I mean,
describing it in text is good. But this little picture goes, you can just mentally go, Oh,
yeah, I get it. If you give it a cut x and a cut y, you end up with four regions, obviously,
but it isn't obvious just looking at the API. But with with a little picture, you're like,
Oh, yeah, that's cool. So he's got a little uh for people listening he's got a picture showing uh just a spatially what what it would look like using ascii characters
so neat yeah i love it i love when people put art like that in there uh i'm looking for where
it is i have to i guess i'm gonna have to look this up but in c python there's actually this
huge diagram in the malloc in the the minute of the memory
management section that shows you it's like this it shows you all the different uh data structures
and concepts that are used to manage memory like the the pools the blocks and the arenas and all
that stuff in like a huge diagram in code comments it's perfect nice and he gives a um shout out to
just one uh tool that's around you must use it called monodraw it's a mac tool but so there are
drawing tools that you can use to generate uh ascii art so or our unicode art okay as it were
yeah so yeah yeah nice oh maybe i'll be able to find it here let's see i'd love to share it with
everyone if i can find it oh yes here we go. I'd love to share it with everyone if I
could find it. Oh yes. Here we go. I'll put the link in here. You ready for this, Brian?
Yeah. You can show it.
Yeah. Yeah. I just got to, I had to find it. Hold on. There we go. Look at this.
Oh yeah.
Here's the object allocator in Python and it shows here's the object specific ones,
and then there's like object specific. And then you can see these tiers. Then there's the object,
the Python object allocator, the raw memory, and it even goes down to like, it's an ant dick, and then there's like object-specific, and then you can see these tiers, then there's the object, the Python object allocator,
the raw memory,
and it even goes down to like,
here's the OS and the physical memory,
and then I think maybe further down,
we might be able to find like,
some of the stuff about arenas or whatever,
but isn't that nuts?
Yeah, but also it's awesome,
because you,
I mean,
you can visually,
now you can read the text,
and it makes more sense,
instead of just having.
Yeah, it has a short description,
and then a proper picture, of here's what's happening.
Yeah.
Yeah.
Absolutely.
Very good.
Cool.
So yeah, yeah.
That's a great, great example and great recommendation.
Sometimes a little bit of ASCII art like this, it really does help.
It goes a long ways.
Yeah.
But there's a whole bunch of other great tips in Will's article.
So I encourage people to check it out.
Right on.
Another thing that goes a long way is python there's an info world article that refers to python as
unstoppable the title is python popularity is still soaring but the subtitle is unstoppable
python once again ranked number one in the august updates for both the tob and pypl indexes i don't know that's pipel or i don't know how to
say this but uh another secondary programming language index and uh yeah how cool is that
very cool also a really nice rocket image i was gonna say this is uh it characterizes the other
programming language is hot air balloons and python is a rocket. Yeah. So, yeah.
Some interesting things to take away from here.
Let's see.
That Python first took the top spot just last October.
So that was actually big news, right?
Yeah.
Now that makes it the only language besides C and Java to ever hold the number one position from the tov index and not only is it still number one but it's actually gained a couple of percentage points on the current rankings uh year over year so um
for example come down here you can see it's actually up you know 3.56 i think that's year
over yeah that's year over year nice uh which which is pretty awesome um also but java have
gained also so other i guess we're whittling down
taking away from i think it's taking from the lower languages down here right like objective
c or here we go what a surprise you that pearl and fortran have lost um by the way also that it has
the ratings i don't know if that's quite what you would consider market share, but Python is at 15%. You know, C is at 14%.
Things that sometimes get compared, like R is less than 1%.
Ruby is less than 1%.
Those are pretty interesting comparisons.
Yeah, they're also not really general purpose languages.
I mean, R isn't at least.
Yeah, yeah, yeah, that's for sure.
Let's see.
Yeah, the TOB commentary accompanying the index was
python seems to be unstoppable it's hard to find a field of programming in which python is not used
extensively extensively nowadays except for safety critical embedded systems so that's that's pretty
cool um let's see rust is now number 22 closing in on the top 20 and carbon have you been tracking carbon no this is i believe it's google
who's behind carbon um yeah it's a language that's intended to be to supplant c++ but be very c++
like an experimental successor to c++ strives for the c++ performance and compatibility
while avoiding its technical debt and extreme difficulty to improve.
Ouch.
Yeah.
Yeah. Not saying extreme difficulty to use, but like, it's just, it's where it is.
You know what I mean?
Yeah.
Yeah.
It's like a language on top of a language on top of 50 years.
Anyway.
But so carbon has entered the index at a number, a position 192.
They've got some work to do.
Yeah.
But it's still interesting.
Something to watch.
Yeah, and you look at the other programming index,
again, no idea how to say it.
P-Y-P-L, the popularity of programming language
is what the acronym stands for.
It's an index created by analyzing how often tutorials,
language tutorials are searched on
google so that's one metric um python is like massively ahead of second place java third place
javascript and then it drops quick quick quick down from there like for example ruby one percent
people are interested in tutorials how to do it versus almost 30 for python yeah anyway uh that's just another another uh
factor that was part of this info world article so you know i on one of the live streams not too
long ago somebody said oh i heard that there's not a whole lot of jobs or interest in python
maybe what else should i learn but you know what i'm not so sure you're getting great advice if
if that's uh where what you're. Okay. Popular is not everything,
but it's an important part of like,
can I have a job?
Can I find developers doing this?
Will there be a library for my thing X
I want to talk to with it and so on?
I love Python, obviously.
But it's hard to answer those,
like for a job,
which languages should I,
whether languages should I learn?
I don't want to answer that.
Depends on what you're trying to get into.
But just as a roundabout developer, I think it is important to learn more than one language.
I don't think that it would, I wouldn't want somebody to just stop with Python and say, oh, I'm good.
No, no, no.
Yeah, yeah.
Well, and you also, if you want to build mobile apps, you might want to look elsewhere.
I will, except I might have something in an extra section for you on that. Okay, cool. But did I, did I switch
the order? Did I jump in front of you? I think I may have. I don't think so. You got one more
thing to go. No. Tell us about some magic. Oh no, this is part, one of my extras. So. Oh,
this is one of your extras. Okay. Well let's, that's it then. Jump into your extras. All right.
I didn't want to cover this. Really quick comment.
I think this is kind of amusing from SE Steve in the audience.
Extreme difficulty to use is just a side benefit of C++.
Yeah.
I mean, yeah.
Yeah.
Think about all the jobs people get to keep without much effort over time.
Exactly.
You still need C++.
I mean, if there was a lot of competition for c++ developers um uh i don't know what i
would i would do i'm enjoying the lack of competition yeah um so exactly um i just ran
across this the magic of my matt plotlib style sheets uh article and i just wanted to bring it
up for people that might might want to to try it out so i've um i've used matplotlib matplotlib style sheets before
and they're just great so you could just say like um so let's say you've got a current plot
and by default it's just um it's not bad it just it is what it is um and then if you just drop in
one line of code use styles plot style use and then you drop a style sheet name there's a whole
bunch of built-in ones you can use it just looks nicer it's got like i love it sounds subtle but
it looks so much better yeah um but i didn't know that it's pretty easy to write your own i didn't
i mean i figured maybe style sheets were complicated so the rest of this article just
talks about um uh really how to how to write your own style sheet.
So if anybody's interested in in customizing the style sheet for their for their group or something might be a good thing to just have, you know, be able to roll your own style sheet.
So, yeah, fantastic. The 10-year-old in me enjoyed that if you want the lines to end in a square instead of a rounded line, you give it a solid cap style of butt.
It makes it chop off the end.
That's funny.
That is funny.
All right.
Yeah, this is not one of my extras, but I might as well add it as a follow on here is,
um,
XKCD plots have landed.
Yeah.
And Matt plot lib,
right?
Like this,
I'm sure this is probably accomplished the same way,
but look at that.
Isn't this,
aren't these fantastic?
I use these at work because they're just,
it especially,
I,
I especially like it.
If,
if I've just made up,
like made up the data or my sample size is small.
I don't want anybody to take it as a research project.
It's just I'm showing something informally.
Right, right.
Sometimes there's a whole ton of value to present it not quite polished.
Yeah.
There's an app I use called, let's see, why does it not want to make a new,
Balsamic?
It doesn't let me type anymore.
Oh, well.
It's called Balsamic.
And it will generate wireframes of like web browsers and buttons
or it'll do mobile apps or whatever.
And it intentionally has this shape.
Like it looks very XKCD-like.
Like, okay, don't, this is not the answer.
This is not the final thing.
It's just to give you
an idea of like here's the layout and so on yeah and it's i think it's balsamic with a q
uh if people are looking yes it's funky small it's spelled funky yeah i think what happened is the
my keyboard's battery died so anyway that's why i can't type anymore i'm not on a laptop so when
the battery dies that's it but that's fine because i already got all the stuff i want to talk about
anyway um we talked about i wouldn't try to learn Python to write mobile apps.
And I still stand by that.
But we discussed way back on episode, which one was it?
On 295, a couple weeks ago, we talked about Flet.
And Flet lets you write Flutter apps in Python.
It is super neat.
Yeah.
Where, just looking at an example or whatever,
pull up the tutorial,
but like the code that you write,
I mean, if you've ever done Flutter,
it feels very much like that.
But what you write is Python and it's glorious.
Anyway, the extra that I want to talk about is
I had Theodore Fitzner,
who is the creator of Flet on talk python last week and people want to hear
what he had to say about it in our conversation they should check that out nice yeah all right
that's it for my extras i believe it's you uh you ready for a joke i am but i just i want to like
pause and just say what i think that's one of the cool things about how we've done Python Bytes and TalkPython and Test and Code.
We do these small segments within Python Bytes,
but if we want to just also do a deep dive,
we've got the other podcasts to do a deep dive
into something that's good.
Absolutely.
It's super nice and kind of on purpose, right?
We kind of designed this one
so we could just quick talk a bunch of fun stuff
and then the other one,
if you really want to spend an hour on something like that's
what it's for. Yeah. So hopefully people listen to both or all three, rather.
All three. Yeah, exactly.
Yeah, yeah, yeah.
Yeah. All right. Now something funny.
Now, you know, we talked about the cloud stuff and you specifically ask about price. So here's
the joke. This one has two pictures. One, somebody who is new to AWS and somebody who
is experienced at AWS. The new person, it shows this like cartoon character walking. One step,
steps on a rake. The rake whacks up and smashes him in the face. It's new to AWS. Accidental,
$50,252 monthly bill. The experienced one with the rake is like, you know, sometimes skateboarders will jump up and they'll like grind down like a stair
railing.
They'll do something amazing.
Oh, it's a kickflip they're showing, yeah.
Yeah.
Sorry, off the stairs.
A kickflip off the stairs.
And like that often goes good, but not always.
So here they're doing like an amazing kickflip with the rake.
Off a rake.
At the end, they land at the bottom, smacks them in the face.
This is accidental 50 252
yeah yeah and then down here uh there's a funny comment from somebody who how they forgot to
turn off something so they just but luckily their card expired so they just let their
ec2 account um expire and you know um Amazon was talking about doing like healthcare stuff and whatnot.
So this person here, Jess, Jess the Unstill, she says, just wait, soon enough, if you don't
pay your EC2 AWS bill, they won't even let you visit your doctor.
Sometimes things are funny.
Interesting idea, though, to attach your AWS account to a credit card with a low balance.
So that's, that's one way.
Interesting.
Yes, exactly.
It might be a benefit.
Yeah.
It just might be a benefit actually.
Yeah.
Quite cool.
Anyway, I, I thought this was kind of funny, but you also have heard of real stories of
startups shutting down because they accidentally did get like a $60,000 bill.
They're like, we can't pay this.
Well, also just, yeah. Or're like, we can't pay this.
Well, also just, yeah.
Or, or somebody just misconfigured it and suddenly they're, they're making like, uh, the transfers are like, you know, three times larger than they're supposed to be or something
like that.
Yep.
Absolutely.
So every time I run this command, it spins up a cool, uh, VM to do the test in the cloud.
I forgot to shut it down.
Whoops.
Now I have a hundred VMs, right?
Yeah.
Yeah.
So concrete advice,
you can set up billing alerts
at different tiers.
Like once it crosses a hundred dollars,
send me a message.
Once it crosses $200,
send me a message.
Those numbers will differ for people,
but I would strongly recommend
that you set that up
at your cloud provider.
Like if it goes beyond
a reasonable amount of what I normally would like to pay or expect to pay.
Yeah.
Let me know soon.
Yeah. Not like tomorrow. Let me know right away.
Exactly. In fact, can you make my smoke alarm go off? Because I really need to get up and get going.
Yeah. So anyway.
All right. Well, fantastic to be here with you brian good to be with you too
talk to you next week yep yep see you later thanks everyone for listening oh really quick
one piece of follow-up out here from kim and the audience if a huge aws bill accidentally happens
i'd rather um i can speak to the aws directly before giving in in despair yeah indeed yeah
i've heard of i've heard of success stories
where people just talk and they work with them.
On the other top-
It's worth a try.
On the drawing topic,
Will recommends that, where'd it go?
Acceladraw has a similar look.
So I'll have to check that out too.
Yeah, I haven't heard of that one.
That's cool.
All right.
All right.
Talk to you later.
See you all later.
Bye.