Python Bytes - #367 A New Cloud Computing Paradigm at Python Bytes

Episode Date: January 16, 2024

Topics covered in this episode: Leaving the cloud PEP 723 - Inline script metadata Flet for Android harlequin: The SQL IDE for Your Terminal. Extras Joke See the full show notes for this episode... on the website at pythonbytes.fm/367

Transcript
Discussion (0)
Starting point is 00:00:00 Hello and welcome to Python Bytes, where we deliver Python news and headlines directly to your earbuds. This is Episode 367, recorded January 16, 2024. I am Brian Ocken. I'm Michael Kennedy. I guess we do have a sponsor today,
Starting point is 00:00:16 so that's awesome. But Michael, do you want to tell us why you're not? For people who are listening, maybe they hear a slightly different setup for me. For people who might watch the video, well, that right there in the background is lovely and very icy Portland, Oregon. Okay. And so I'll go ahead and put this on the screen. People can check out if they feel like they can check out the YouTube stream at like one minute, 19 seconds. This is the entrance to my house, Brian. And it looks like
Starting point is 00:00:50 an apocalypse. Just every, I would say every block or so there's like a hundred foot tree that's fallen somewhere. And it's just taken out the power in so many ways. It's like it was now it's, it was 13. Now it's 18 degrees Fahrenheit, so negative nine, something like that Celsius. No power, four or five days. Not a place for podcasting. So I'm hanging out here downtown in a hotel with the family until the power comes back on.
Starting point is 00:01:17 Hopefully today, fingers crossed. Well, hopefully, yeah, hopefully. There's actually quite a few people in Portland without power and, and yeah, it's did experience power outages and pipes bursting and things like that. And, you know, for people that are in parts of the country where they get like way colder than us, it might seem like we're just being wusses. But what we get here is often very heavy rain or heavy snow or freezing rain. And the freezing rain just weighs down trees and breaks power lines and stuff like that. Absolutely.
Starting point is 00:01:53 And this had up to 100 mile an hour winds with these really old trees. And also just the city is not really built for it. We don't get it enough that they have infrastructures for it. So it's like, oh, it snowed three inches. So just good luck with that. We're not going to do anything, right? No salt, no gravel. Just hope that works out.
Starting point is 00:02:10 So anyway, it's been all right. But yeah, different setup, Brian. So thanks everyone for the understanding indeed. And also I want to say thanks to Bright Data. We'll talk more about them for sponsoring the show. But let's talk about something contrarian, I guess you would say, Brian. Okay. You know how many people I'm sure have heard of 37 Signals, right?
Starting point is 00:02:35 David Henemeyer Hansen, he's the guy who created Ruby on Rails, most notably. But there's also Basecamp and Heymail and all that kind of stuff, right? Yeah. So needless to say, they all that kind of stuff, right? Yeah. So needless to say, they run a ton of SaaS products in the cloud. And I came across what I guess was more or less some kind of conclusion to a bunch of conversations and stuff they've been working on. And so I'll work my way backwards just a little bit, but it's pretty fascinating. And the headline on the post
Starting point is 00:03:05 is we have left the cloud. Brian, I thought we were all told to go to the cloud. I mean, we saw the picture of what happens when the clouds get angry. So I understand why you might leave the clouds, but more seriously, like clouds are supposed to save us. They save us money. They give us agility, et cetera, et cetera. Right. Yeah. So hence the contrarian aspect, right? Yeah. Look, I guess it's not like 37 signals is the same sort of places, uh, like a lot of startups, but you know, that's true. If you were in, in, um, they do make that point. Like if, if you are an early stage startup where the costs are low by all means clouded up but as i i guess one of the big lessons here is the more that you get like the cloud hooks in the sort of abstract sense into your app the the more it might set you
Starting point is 00:03:54 up for a tough time as you get bigger right so let me get through this and we can we can talk a bit more about that so uh let's so they say we stand to save over $7 million in five years from our cloud exit. And so why do they not just say, well, that's 1.2 or 1 point, whatever it is, 1.1 million per year because of our cloud exit. Because what they did is they went and they bought. So when they said they left the cloud, they didn't mean just like, we're not using Kubernetes or we're not using lambdas and serverless. Like they bought physical hardware.
Starting point is 00:04:32 Okay. So they've got these big pallets. And what they did is they bought this 20 Dell R7625 servers, which don't mean a lot to me, maybe due to some people, but it basically takes up like two server racks. And that means 4,000 CPUs, 7.7 terabytes of RAM, and almost a half a petabyte of high-speed SSD storage. And that cost them $600,000 to buy that, which is a lot of money. However, they were paying like 1.2 million a year in cloud prices and cloud to AWS basically. And so after six months, it's paid for. And the five years part is they expect this hardware to last them five years. And apparently it's super, super fast. So it's pretty interesting.
Starting point is 00:05:27 I would really recommend people go through and read this, what some of the values were. And basically what they did is they said, we're going to buy like a really big server. I know it's a bunch of kind of CPUs and stuff, but they kind of clustered into like one compute cluster. And then they came up with this thing called, it's kind of clustered into like one compute cluster. And then they came up with this thing called, it's kind of like Kubernetes called Camel, which would work for Python,
Starting point is 00:05:50 but I think originally they're deploying Rails apps on it and basically gives you zero downtime slices of this giant server. And the reason this really fascinates me is this whole philosophy here. It's also not just, hey, they're leaving the cloud because many people are running to the cloud, but it's also they're getting a really huge server, like one huge server rather than a whole bunch of small distributed servers, which also was like a little bit the way that the cloud was initially sold, right? We'll get commodity hardware. You buy a bunch of little small slices all over the place. You can buy more small slices with auto-scaling if you need. And instead they're like, no, this. And sort of along those same lines is I, a little while ago, interviewed Mark Resinovich, the CTO of Azure at Microsoft.
Starting point is 00:06:42 Super cool guy, really, really smart, but also CTO of Azure. And he talked about how they started out with a bunch of small machines as well, and they're just getting bigger and bigger ones and slicing them up for tenants to be using them. So I think this is also a really interesting trend that we're going to see more of, is like more big machines
Starting point is 00:07:02 rather than a bunch of small machines that then maybe you slice up with Docker or Kubernetes or other things. And Brian, we've hardly even talked about this yet, but that has changed the way I got to type holding, holding the mic in the wrong hand here for typing. That's changed the way that I'm running a lot of our infrastructure. So I've been thinking about this for a while, been reading this stuff. I thought I'd make it the first topic of our show, but also I had eight servers for all the TalkPython and Python Bytes infrastructure, you know, some database server stuff, one that ran Python Bytes, a bunch of services,
Starting point is 00:07:40 a bunch of small machines, right? And I'm like, you know, why am I messing with all these small machines? So I ended up consolidating like last week, all of that into one big, big server, just running a bunch of multi-tier Docker setups over there. And it's glorious, right? One machine runs great. There's a single command I typed to upgrade like 13 different web apps all at once. That means upgrade their server infrastructure, upgrade their potentially to ship their new dependencies, to rebuild them, all of that kind of stuff. One command.
Starting point is 00:08:13 Interesting. So yeah, it's really interesting. It's really different. It let me like quickly and easily throw in some more things. And also I think it's better for security, right? Like I had like little fast API apps that were just like little utility things running that I didn't pay this much attention to
Starting point is 00:08:30 as I did the other apps. And so, you know, they just didn't, they didn't get their dependencies updated as frequently and their Python versions revved as frequently. And if something happened to them, right, it's technically on the same VM, right? That's an issue.
Starting point is 00:08:44 But now they're all locked up behind like a Docker container. So it's a little more isolation as well. Anyway, I encourage people to read through. I put a bunch of different parts of this story in for the 37 signals we've left the cloud. It's worth reading. I'll just go through really quick the five values and then this is kind of a long segment.
Starting point is 00:09:04 So I'll move us on. But here are the five values guiding our cloud exit. We value independence above all else and being trapped in Amazon cloud is not great. We serve the internet. This business owes its entire existence to the societal and economic aberration that is the internet in a positive way.
Starting point is 00:09:26 And we don't want to just be locked up behind a few hyperscalers. We want to be kind of just on the internet on our own terms, spend money wisely, even if you have lots of money, you know, they're getting better value for money. Leading the way, the cloud has been sold as the answer to SaaS companies weren't so sure and they seek adventure and you bet that they do. So anyway, it's not leaving data centers. They have that in a managed data center. They just have it on hardware that they own.
Starting point is 00:09:53 So anyway, what do you think about all this? So a lot of this is, I think it's interesting that, that it affects you even like that you, that you're, you're not okay. When you said you,
Starting point is 00:10:04 you put them all on one machine're you're not okay when you said you you put them all on one machine you're not it's you don't have like a server in your basement or something no no so what i did is i instead of having a bunch of small vms at digital ocean i bought one big vm okay the one i have right now is like eight gigs four cpus but i'm pretty sure i'm going to switch to like 16 gigs and eight cpus and even that would be cheaper than what I was doing before. And it's still, and the other thing that's interesting, we're in danger of going super long in this,
Starting point is 00:10:30 but because all those different apps are sharing, let's say the final destination of eight CPUs, their spikes in performance are not at the same time. Like what makes TalkPython or Python Bytes spike in load is not the same that what makes the courses spike on load. Like a new course release or like Black Friday or something like that is very unlikely to intersect with when a podcast is released because I'm busy doing one or the other, right? And so it basically has access to all eight cores instead of that one gets two cores, that one gets one core. And even though they're sharing, like basically in aggregate, it's the same number
Starting point is 00:11:06 because the spikes don't line up, they get more capacity for whatever they're doing. It's pretty interesting. Yeah. Okay. It is interesting. Back to you. Well, let's completely go to a short topic.
Starting point is 00:11:20 And I'd like to talk about little tiny scripts or maybe big scripts, but single file applications. So single file scripts. So I wanted to talk about PEP 723, and that is inline script metadata. And one of the things that we've noticed recently, and this is authored, it's an interesting author.
Starting point is 00:11:42 So the author is Ofec Lev. I think that's how you say his name. He's the dude from Hatch. So Hatch is, I guess, in packaging. So this is around packaging. also and it also might depend on python and how we can't really tell python uh currently that a script needs uh a dependency or a particular version of python so this is an attempt to kind of fix that um and uh there's some some motivation and stuff at the top that i like you know kind of skimmed through a little bit no i read it but um the the the real uh at end, is we're going to put stuff like pyproject.toml, but you can do it in a script. And this isn't there yet, but there's an example where you just sort of do a pound sign and then a few slashes and then say script. And then after that, you can put a little bit of toml right in there as a comment. And the idea is something like uh pip right this is like the the world's uh uh craziest doc string sort of thing
Starting point is 00:12:52 right almost i don't understand so supposedly there's there's reasons behind this syntax it's the weirdest syntax i've ever seen but maybe it's just it's not quite shebang but it's kind of shebang ish yeah um but like they in their example they're saying okay well you've got a little a little script that just requires you know and this is going to be common i think actually uh requires requests and uh rich so because it's going to like grab something off the internet and it's going to print some stuff and wants to do it with color and whatever um but how do you do that without packaging it and and here's one way is to just tell python that it needs these other things um so there's a it's i don't really completely understand this like how what are the at the
Starting point is 00:13:37 back end what's going to happen what is i think the different tools will treat this different because my question is really where are these dependencies going to be installed at? Is it like, if I just say I guess it depends on the thing. So if you're going to do, if it hatch, for instance, or PIPX might handle this.
Starting point is 00:13:56 So if I say PIPX, you know, run this script and it finds this, it'll probably create a PIPX virtual environment area. And hatch will do the same thing in a different manner um but behind the scenes grab like create a little virtual environment this kind of it mostly it seems like it's hiding virtual environment and dependency installs from users but it's probably needed so anyway what do you think of this? I think it's interesting. Similar to installed, as Liz is pointing out. Sounds very similar to installed that we talked about not too long ago.
Starting point is 00:14:31 And I think it solves an interesting problem. All of these do have that little bit of a bootstrap that has to happen, right? For something, for this to work, it's not built into Python, right? And so you've got to have like one library installed that then you can use to run and kick off all the other runs. But if you somehow make that happen or get your company to agree, like we're all going to have this foundation and then it just runs, I think that's pretty excellent.
Starting point is 00:15:01 So yeah, yeah, very cool. And I think OFAC is killing it, right? He's being really creative and yeah, yeah, very cool. And I think OFAC is killing it, right? He's being really creative and working a lot of different things. And this is a PEP, right? So if this was built into Python, then all of a sudden, yeah, we can have it run. So, okay, so for some reason,
Starting point is 00:15:19 I flew right over my head that it's a PEP and not just an extension to Hatch. So yeah, this is going to be, this could be super, super important. And it was last updated in December. It's accepted now. I'm not sure how long it's been accepted, but it's around the packaging.
Starting point is 00:15:35 So PEPs with packaging are interesting because we don't really have to wait for, once they're accepted, we don't really have to wait for a release of Python because things like PIP pip and hatch and other things don't have the same release cadence as Python. So this could be, like there's a note here that says it's not going to be declared final until at least a couple of tools utilize it.
Starting point is 00:16:01 So far, there's no tools that utilize it. But their example is possibly PipRun and PipX. And probably Hatch as well, considering who wrote it. Yeah, I would imagine it might show up and might get support from Hatch as well.
Starting point is 00:16:18 Funny comments out there in the audience you guys about being Rust-inspired indeed. Brian, you want to know what else is inspiring? What? Our sponsor, Bright Data. Yeah. Indeed.
Starting point is 00:16:31 So I just want to say thank you to Bright Data for supporting the show. Check them out at pythonbytes.fm slash brightdata. And there's, go ahead, yeah. Do we want to put their stuff on there? We do, and somehow I did not quite, we didn't quite do it. There we go. Yeah. Do we want to put their stuff on there? We do. And somehow I did not quite, we did quite do it. There we go. Awesome. Yeah. So there's tons and tons of data out on the internet, unimaginable amounts of data, right? And we're lucky to live in a time where so much
Starting point is 00:16:57 of this is behind structured APIs and you can go and access it with HTTPS requests or whatever. But the truth is that most of the data is not served up over clean APIs. It's just sitting there on a web page as gnarly HTML. Maybe it's even worse than that. Maybe it's obscured behind some front-end framework like React, where when you actually look at the HTML, it just says, pull in the React app, good luck with that, and then something else happens somewhere along the way, right?
Starting point is 00:17:25 So getting access to that data can be hard. What's the answer? Well, web scraping, everyone says. Yes, true. But just like you wouldn't want to set up your production infrastructure in your home office, running web scraping jobs on a single computer, even in a data center, can lead to your program being potentially unreliable with data pinned where whatever access source source you're accessing thinks you're located right so maybe there's
Starting point is 00:17:51 different data if you're in the eu than if you're in ohio but your computer is in ohio so there you go or you know it gets blocked because of rate limiting or other types of things like that right so if you need to do professional web scraping, check out Bright Data. They have award-winning proxy network with millions of different places to access data from. And powerful web scrapers, they have even ready-to-go data sets you can download. So they've already like curated these data sets
Starting point is 00:18:19 and you can just access them and get updates from them and not even do web scraping, which is awesome. So they've got a whole marketplace for that. And everyone knows we're probably going to come back to it some more and privacy conscious stuff that I really care about. And they are both CCPA and GDPR compliant. They have low code solutions as well as Python programming models with async IO and playwright.
Starting point is 00:18:41 So if you have serious data needs and those websites that have the data don't offer an API, then you need to check out bright data. Give them a try at pythonbytes.fm slash bright data. And please use that URL. So you know that they heard from us. Thank you to bright data for supporting the show links in your podcast player show notes. So pretty awesome. All right, back to the next thing. So this is super exciting.
Starting point is 00:19:07 And it came, I believe this was sent in by Balazs. Let me check. Yeah, Balazs sent this over. Thank you, Balazs, for pointing this out. So I've had Fedor Fitzner on Python before. And we've talked about Flet. And Flet is basically Flutter, but with a Python programming API, right? Flutter is actually how we built the apps at TalkPython, right? For courses. Super cool framework,
Starting point is 00:19:33 but you're writing Dart and Dart is good, but it's not Python, right? And so it'd be great to be able to write that kind of code. Here's an example, by the way, Brian, we talked about fast UI and I said, oh, that reminds me, this sort of hierarchical code structure reminds me of Flutter. Right? And so here's the same thing,
Starting point is 00:19:55 the Flutter UI, but in Python code instead of Dart. I know the link for this code is in the show notes. You can check it out. Right. So the big news is you can now build APKs for Android. And for those of you who have not suffered the indignity of the app stores, the way you get something into the Google Play Store is you build what's called an APK, and then you send them that, they process it, and then that's what gets shipped out to run on the phones on Android.
Starting point is 00:20:21 So this means even though Flet built Flutter apps, you couldn't really deploy it. You could kind of get the Flet app and then put your Python code on there, but that's not like your app. That's like Jupyter or something like that, kind of. So this is awesome. This means that people can now build apps that go
Starting point is 00:20:39 in the App Store, at least for Android, with Flutter and Flet and Python in particular. We'll see about iOS. It's on the roadmap. So, super exciting. Yeah. I mean, I would have used Flet if I was sure I could
Starting point is 00:20:56 get it to build and ship on the different things. I'd much have rather done that than use Flutter or Dart for Flutter, but you've got to work with the building blocks you got. And this one just got better. So exciting. Yeah.
Starting point is 00:21:09 Oh, also really quick in those show notes, there's a video by this guy called Neural9. His channel is called Neural9. Walking through the steps to do that, all that built. So you want to see how it works. You can watch that eight minute video. Cool. Neat. So that's for Android apps for command line,
Starting point is 00:21:27 normal command line stuff. I was going to talk about Harlequin. So there's a lot of people that use a SQL and SQLite for, for different, different purposes, of course, for databases, but to take a look at your SQLite data,
Starting point is 00:21:43 there is a, an IDE called Harlequin. I don't think we've covered it. But it's an open source Python project that it looks like it's, it looks pretty cool. It's got like on the, we're showing on the screen, the little snippet or screenshot.
Starting point is 00:22:04 You've got kind of your tables, your data catalog on the left panel. You've got a query editor and then some query results at the bottom right. And it actually looks pretty slick for like quickly going through some data. It looks like it has hooks to go into DuckTB and SQLite. That's why I brought up SQLite.
Starting point is 00:22:26 And I'd probably use it for SQLite. I haven't used DuckDB. For people who don't know, DuckDB is also in process, very much like SQLite, but it's Columnar instead of Rowbase. So they're kind of in the same category, I guess. Yeah. Okay. Yeah, I haven't used it, but definitely SQLite.
Starting point is 00:22:44 I use that a lot. So this is kind of fun. I like command line tools. This is neat. It's kind of a short topic. Just, hey, if there's a command line interface for SQLite or DuckDB, and that's fun. It looks like it runs on Linux, Mac, and Windows, which is cool. But I was also, one of the things I've noticed is in, like, for instance, a lot of Django tutorials, Django starts with SQLite. And you, I mean, by default, it does that. And I think that you can, and then you can specify other databases. But I noticed today a discussion on Mastodon that I wanted to bring up, kind of SQLite related. Jeff Triplett posted a post by somebody else, Anze. But, okay, Jeff's comment is, this is a nice write-up about using SQLite in production with pitfalls and open questions.
Starting point is 00:23:46 I cringe whenever I see some Django Python luminary recommending people use SQLite in production. I don't care how good you are. You won't get it right, even if you think you did. Anyway, so interesting, interesting commentary there. So Anze's post was, I wrote a blog post about using SQLite in production and dealing with DB is closed errors. I'm happy to hear your thoughts. So the article is called Django SQLite and Databases Locked Error, and it walks through those.
Starting point is 00:24:12 And kind of the reality is Django doesn't, I guess, lock the database when it reads correctly. The transactions are weird. And a lot of the discussion around this really is if you're using, if you're using SQLite for a database, that's mostly read only, most people are just reading stuff. It'll probably work fine and it might work great. And it might be way less hassle than doing Postgres or something else. But if there are a lot of, a lot of transactions that are writing
Starting point is 00:24:43 to it, if you have multiple, multiple writers, then you've got issues. So just thought this was an interesting discussion. I wanted to bring it up. Yeah. That is interesting. I think it really depends on the type of app you got. Is it an analytics thing that's writing like crazy? Or is it basically like the database to your blog?
Starting point is 00:25:03 Right where it's really just you make an entry once a week if you're a good blogger you know what i mean that kind of thing and then then it's all reads i'm probably fine right so somewhere in the middle i guess like you can sort of turn that that bar or watch that gauge turn from green to red as it gets closer to like a full analytics system but yeah it's pretty interesting. Yeah, interesting discussion. Indeed. All right, what you got? Oh, we're done?
Starting point is 00:25:30 We're done. We're done, but we're not done because I have many extras. Do you have extras? I've got just a couple extras. So since I've got my screen up, I'll run through a couple extras. I started Python people podcast last summer and then kind of ran out of time trying to get the PyTest course done. And so now I'm coming back and cleaning up some things. So there's, there's a few recent episodes that finally came out. So like
Starting point is 00:25:58 I stopped in October and then picked it up in January. So we've got Will Vincent and Julian Sequeira and Pamela Fox episodes out now. So check those out. Oh, excellent. Yeah, those are all great people. And many of them have been on this show as well. So very cool. Nice to see these going there.
Starting point is 00:26:15 They provide a really interesting look, like really out of bounds looks into what people are doing. You and Paul talked a lot about um lacrosse right and empowering women and and not not the next pep and that was really interesting so yeah keep it going some of the fun bits uh are to try to try to talk to uh kind of dig deeper into stuff that like i normally don't ask about in in like for instance julian sequera um julian's a really pretty positive person so i poked at that a bit and tried to ask him like really how did you get this
Starting point is 00:26:50 mindset i mean clearly bad stuff must happen to you and we so we talk about um his his you know how does he get through it and you know keep maintaining a positive mindset so it's good anyway what are your extras for us uh let's see if I can find them here. Okay. Page find. Yes. That's the first one. Page find. So Brian, you and I, we both Hugo, right? Yeah. Hugo is awesome. Go Hugo for people who don't know. Go hugo.io. That's right. Super, super cool way to build static websites, not just blogs, but static websites that are really, really powerful. And I learned about this one from Mark Little. He also does a ton of stuff with Hugo and said, Hey, you should check out page find. So what, what is this? I have no idea.
Starting point is 00:27:38 So page find, this is not just a Hugo thing, but for all static sites. It's a fully static search library, right? So for static sites, whether this is Flask Freeze or Hugo or Pelican or whatever, this is like a post-build step thing that runs and it indexes all of your HTML or the parts that you tell it to index or tell it to, you know, you can basically say don't include this part or whatever. And it's no configuration. It has rich filtering. It has custom sorting attributes. And the way it structures, it's what it does basically is JavaScript. And it has an index that then the JavaScript reads in, but the index is broken into a bunch of pieces. So the front end stuff can like
Starting point is 00:28:22 pull just little bits of it and not pull all the results back basically right so i added this over to my website where if you're over here like brian we could see what i said about ai and check that out isn't that awesome so it it finds all the different things that we could be talking about but it also like in my document in my markdown i have like h1 h2 h3 and it will actually subdivide the results into sections, like what is in this section marked by H2 on this one page. Oh, that's pretty cool. That's really cool, right? And it also does things like, I don't know if I can see any examples here, but if you type Y-O,
Starting point is 00:29:02 it'll do you, yourself, et cetera. So it's not even just like exact word matching. It's like a really smart search engine. And all it takes is just running a script for like a couple of seconds after you build your static site and then dropping the output into a known location. Is that cool or what? That's very cool. It's one of the issues I've had when switching to a static site is not knowing how to deal
Starting point is 00:29:24 with the search part. Yeah, so I was psyched when Mark sent this over. I'm like, yes, this is going in. Yeah. The other part that I'm trying to figure out is how to get a decent contact form. So that's still to be determined. Yeah, I don't think PageFind's going to help with that. But this is cool.
Starting point is 00:29:40 This is really cool. So I recommend it. I'll add it to my stuff too. Neat. It's incredibly fast. Like search for AI and I'm on like my stuff too neat it it's it's incredibly fast like search for ai and i'm on like hotel wi-fi and it's nearly instant right so that's that is super super cool where there's a lot of sites even static sites you'll be like searching searching you'll see the little spinner you're like what is it doing like why is this search slow no it should be instant
Starting point is 00:30:01 right and that's you know very much in line with like plugging something like this into Hugo means like it's still instant. All right. I got a few more. Let's blaze them. Okay. This is not to encourage people, like more of a just interesting, hey, careful. We've got PyPI and Pip. The JavaScript world has
Starting point is 00:30:20 NPM. There's an article called When Everything Becomes Too Much, the NPMpm package chaos of 2024 an npm user named patrick js launched a troll campaign with a package called everything that depended on every npm package there so when you install it it tries to install the you know millions of npm packages and it just it destroyed it tries to install the millions of NPM packages. And it destroyed it because people were installing it. And it was just taking too much resources and so on.
Starting point is 00:30:54 So the follies of package management. How's that? Yeah, nice. All right, I'll get a little out of order here. So Matthew Fiker wanted us, and we're happy to do so, announce that the SciPy conference is coming and will be in beautiful
Starting point is 00:31:09 Tacoma, Washington this year. So if you're interested, check that out and put a link to that. And the last thing is I wrote an essay called Unsolicited Advice from Mozilla and Firefox about four things I think, three things I think they did wrong and four things I think they could do to
Starting point is 00:31:27 like absolutely both change the way that, um, the place of Firefox in the market and alleviate their, um, their insane dependency on Google. Like not anti-Google. I do stuff with Google. I love YouTube,
Starting point is 00:31:44 things like that necessarily, but I don't think they're congruent with Python, with Firefox's focus on privacy very much. And also 95% of your company's revenue from one deal with one company that's kind of at a whim could just change their mind. That's not a great place to be. I'd like to see Firefox doing well. So I thought a lot about it and wrote about it, including they should just lie about their user agent, right? Like when a website says this site runs best on Chrome and using this crappy old browser we don't know about, you know why you never see that on Vivaldi or Brave? Because their user agent is identical to Chrome. So when you get to the website, like, oh, this is my favorite one.
Starting point is 00:32:21 Perfect. We're good to go, right? How many people leave firefox because when they get to a site it says this doesn't work well you need to go get this other browser yeah it would stop saying that if firefox just said hey our work chrome you know things like that right and sure it would hurt a little it would hurt their pride but people leave firefox because the website will refuse to run right yeah and if if it it probably would work but if it's going to refuse to work then it's not gonna work right things like that so anyway this is i think it's a really fun article i had a lot of fun thinking about so people can check that out and i think um uh i don't want to dwell on this too much but the um there are like a lot of internal sites stuff so
Starting point is 00:33:00 a lot of people um do internal tools at companies and they'll do that. They'll be like, it should use Chrome. And somebody will try it with Firefox and they'll be like, oh, it doesn't work. And it probably does. It just blocks it for the heck of it. Exactly. And no one's going to update that site, right? Yeah.
Starting point is 00:33:18 It's just, yeah. Another thing that's just maybe interesting to put on people's radar is another thing a friend of mine co-founded, Wayne's, is this thing called Island, which is like a enterprise browser meant just for like giving enterprises super interesting control over things like that you're just talking about. So this is actually a super interesting one of the things I think Firebox could do, but also it's just really interesting. Island.io, people can check that out. Sounds weird. Like, why would you ever want that? And then you watch the video or listen to it and you could do, but also it's just really interesting. Island.io. People want to check that out. Sounds weird. Like, why would you ever want that? And then you watch the video or listen to it and you're like, actually, that's awesome. Okay.
Starting point is 00:33:51 Like installed. All right. Shall we joke? Yeah, let's do a joke. All right. Well, this is a Linux joke. It's more than a Python joke, honestly. So Brian, have you ever got a bike lock?
Starting point is 00:34:03 It wasn't really a combination lock for anything, but in this case it's a bike lock, right? Okay. So here's a little character says, my new bicycle lock to keep my new bicycle secure. It has three digits. Let's see. So that's a thousand combinations of what we could have. And then they start to rule out what are the ridiculous ones, right? Like one, two, three and stuff like Like, hmm, 9, 9, 8 maybe. I am not silly enough to use 6, 6, 6 or 7, 7, 7 to give full access to everyone. You know, change mod 7, 7, 7. Which gives it full access to the, rewrite access to whatever you change modded.
Starting point is 00:34:38 That is funny. Yeah, it's pretty good. I mean, obviously you wouldn't use 7, 7, 7. Maybe the wrong target market for this because it's sort of funny, but also I'm thinking, did bike locks really have three combinations, three in others or were there four? You're being way too practical. Was it like four or six or something like that? I had a smartphone smart lock once and it was awesome. You would hold your phone up to it and it would unlock.
Starting point is 00:35:05 I got it from my electric bike before my knees decided electric biking wasn't for me. And one time I was out biking with a friend and I parked it in the summer in the sun. And like the electronics bit of it got direct sunlight and it's black because it's a lock, right? Got super hot, like so hot you couldn't hardly touch it. But also so hot that like the electronics wouldn't run and I couldn't unlock it i had to like put it in the shade for an hour before i could go home i was so frustrated i like covered it with my shirt or something and just sat there till it cooled off so i could go home oh that's that's bad and then also i've seen um like the the combination really kind of doesn't matter it's how thick the rest of the lock is
Starting point is 00:35:42 because i've seen people just come up with these uh like uh battery powered just cutters and just cut the lock off um but yeah exactly it's probably not the combination but if you do have one don't use seven seven seven because clearly that's gonna i'll just say it'll just fall right off if you do that yeah just go with one two three four so yeah exactly anyway well uh thanks a lot i hope you get power back at your house soon that. Yeah. Just go with one, two, three, four. Yeah, exactly. Anyway. Well, uh,
Starting point is 00:36:07 thanks a lot. I hope you get power back at your house soon. Thanks. I hope so too. Uh, probably the, the power people said probably today, but you never know.
Starting point is 00:36:15 You never know. All right. Well, uh, good to be here with everybody later. Bye. Yeah. Bye everyone.
Starting point is 00:36:20 Bye Brian.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.