#440: Can't Register for VibeCon
About the show
Sponsored by PropelAuth: pythonbytes.fm/propelauth77
Connect with the hosts
- Michael: @mkennedy@fosstodon.org / @mkennedy.codes (bsky)
- Brian: @brianokken@fosstodon.org / @brianokken.bsky.social
- Show: @pythonbytes@fosstodon.org / @pythonbytes.fm (bsky)
Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 10am PT. Older video versions available there too.
Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it.
Brian #1: Switching to direnv, Starship, and uv
Last week I mentioned that I’m ready to try direnv again, but secretly, I still had some worries about the process. Thankfully, Trey has a tutorial to walk me past the troublesome parts.
direnv - an extension for your shell. It augments existing shells with a new feature that can load and unload environment variables depending on the current directory.
Switching from virtualenvwrapper to direnv, Starship, and uv
- Trey Hunner**
Trey has solved a bunch of the problems I had when I tried direnv before
Show the virtual environment name in the prompt
Place new virtual environments in local
.venv
instead of in.direnv/python3.12
Silence all of the “loading”, “unloading” statements every time you enter a directory
Have a script called
venv
to create an environment, activate it, create a
.envrc
file
- I’m more used to a
create
script, so I’ll stick with that name and Trey’s contents
- I’m more used to a
A
workon
script to be able to switch around to different projects.
- This is a carry over from “virtualenvwrapper’, but seems cool. I’ll take it.
Adding
uv
to the mix for creating virtual environments.
- Interestingly including
--seed
which, for one, installspip
in the new environment. (Some tools need it, even if you don’t)
- Interestingly including
Starship
- Trey also has some setup for Starship. But I’ll get through the above first, then MAYBE try Starship again.
- Some motivation
- Trey’s setup is pretty simple. Maybe I was trying to get too fancy before
- Starship config in toml files that can be loaded with direnv and be different for different projects. Neato
- Also, Trey mentions his dotfiles repo. This is a cool idea that I’ve been meaning to do for a long time.
See also:
Michael #2: rqlite - Distributed SQLite DB
- via themlu, thanks!
- rqlite is a lightweight, user-friendly, distributed relational database built on SQLite.
- Built on SQLite, the world’s most popular database
- Supports full-text search, Vector Search, and JSON documents
- Access controls and encryption for secure deployments
Michael #3: A Python dict that can report which keys you did not use
- by Peter Bengtsson
- Very cool for testing that a dictionary has been used as expected (e.g. all data has been sent out via an API or report).
- Note: It does NOT track d.get(), but it’s easy to just add it to the class in the post.
- Maybe someone should polish it up and put it on pypi (that person is not me :) ).
Brian #4: Some Markdown Stuff
Textual 4.0.0
adds Markdown.append which can be used to efficiently stream markdown content
- The reason for the major bump is due to an interface change to Widget.anchor
- Refreshing to see a symantic change cause a major version bump.
html-to-markdown
Converts html to markdown
A complete rewrite fork of markdownify
- Lots of fun features like “streaming support”
- Curious if it can stream to Textual’s Markdown.append method. hmmm.
Joke: Vibecon is hard to attend
Episode Transcript
Collapse transcript
00:00 Hello and welcome to Python Bytes, where we deliver Python news and headlines directly
00:04 to your earbuds. This is episode 440, recorded July 15th, 2025. I am Michael Kennedy.
00:11 And I am Brian Okken.
00:12 And this episode is brought to you by Propel Auth. I'm going to tell you more about them later, but
00:19 make Auth easy for your app and don't spend time on things that are not your core
00:24 value proposition. Get Auth by your apps with them. Links to the top of your podcast player show notes.
00:29 if you want to connect with us brian i don't even know where people should connect with us anymore
00:34 we're on mastodon we're on blue sky we're here on youtube people can comment on the youtube channel
00:41 on the youtube video that actually is a place that a lot of the feedback happens so any of those
00:45 places and if you want to be part of the live show pythonbytes.fm live usually mondays at 10 a.m
00:52 Today, we're 25 hours later, I guess.
00:56 I don't know.
00:57 Tuesday, because sometimes life intervenes, but generally Monday at 10 a.m.
01:02 And if you want a really nice summary and a little bit of extra information around the
01:07 episode, not just a rehash of the show notes, but something different, be sure to sign up
01:13 for the Friends of the Show.
01:14 Just visit pythonbytes.fm, newsletter button right in the front.
01:17 Enter your email.
01:18 We'll treat it kindly.
01:19 We won't share it or sell it.
01:21 But we will send you cool stuff.
01:24 Brian puts together for you.
01:25 Speaking of cool things, Brian, let's switch over to you and see what we're talking about.
01:29 Okay.
01:30 Well, I want to, let's see.
01:32 First, I want to add something to the screen.
01:34 How do I do?
01:36 There we go.
01:37 I want to bring up a rehash an old episode.
01:40 So in episode 438, so just a couple episodes ago, one of the things we talked about was I talked about Durinv.
01:50 Where was that at?
01:51 there's a lot of stuff on the show notes. Anyway, my CLI world from Frank Wiles. And one of the
01:57 things was during and, and so I've been thinking about it also while we're here, I'll
02:01 just go ahead and show people that, you can see the stuff, cool stuff like my book, your course
02:07 and, where do people subscribe again? people subscribe right at the top. Oh,
02:13 be part of the live show and scroll down and there's, newsletter right there.
02:17 Anyway, so I wanted to talk about the dir env a little bit again, and I think I may have said what it's not before.
02:27 So dir env is just a tool.
02:31 It says unclutter your.profile.
02:33 And the main thing people use it for is these.envrc files or optionally.env files that basically use that to load up environmental variables when you go into a directory.
02:47 That's really mostly it.
02:49 But in Python world, we use that also to do other work.
02:54 I guess everybody else uses it to do other work as well.
02:57 But one of the things we do is invoke virtual environments when you go in.
03:01 And that's really what I'll be using it for.
03:05 So I really want to talk about, where is this?
03:09 Trey Hunters.
03:11 There it is.
03:13 Trey Hunter's blog post called, and this is an older one from, oh, not too old, last year,
03:18 switching from virtual inv wrapper to Durinv, Starship, and uv. Well, I don't really care about
03:24 the from virtual inv wrapper because I didn't use it before. So I'm thinking this is just switching
03:30 to Durinv and uv. And when reading this, and I can't remember who brought this up, but when
03:39 reading this, it brings up a lot of the things that I didn't like about DuraEnv the first time I
03:44 tried it. And Trey fixes all of those things. So let's look at a few of the things that he fixes.
03:50 So he does talk about making it work with ZShell. I've made it work with Bash as well. So it works
03:56 fine with most of the, at least all the Linux type shells that I've used. So the first off,
04:03 the default doesn't show you the virtual environment prompt because DuraEnv doesn't
04:08 allow you to modify the shell prompt.
04:10 So how do you get around that?
04:13 And there's just a short script that Trey wrote to put in your zshellrc or in your bashrc
04:21 file.
04:22 And then now your prompt is back where it shows your virtual environment.
04:25 So that's cool.
04:26 Also, apparently the default is to put the virtual environments replaced in a different
04:32 directory, like a.durinv Python 312.
04:35 And that's not, I mean, I don't know about most people, but at least me, I've always just stuck my virtual environment
04:42 right in the project directory that I'm working on.
04:44 So he has some switches for that.
04:47 Also, Durinv, when you enter and exit, it is very verbose about telling you that it's loading stuff.
04:53 You can turn that off, shows you how to turn that off.
04:56 And then that's just the Durinv setup.
05:01 And he's with virtual environments, but he's set it up with uv next.
05:08 So after that, it's uv and showing how to use all of this with uv.
05:13 The thing that I think is kind of one of the things I wanted to point out
05:16 that's pretty cool that I don't know if we've talked about is when you're creating a virtual environment with uv,
05:21 you don't get pip with it because you're going to use uv pip install instead of pip install.
05:29 However, some tools, some extra tools need it to be there for some reason.
05:34 And so you can say --seed, which it probably does other stuff too, but it adds
05:39 pip to your virtual environment.
05:41 So it'd be kind of cool if it just said --pip or something.
05:44 Seed works.
05:45 You just have to know that.
05:46 Anyway, that's as far as I'm going to get so far.
05:50 He's also talking about Starship.
05:51 And I guess I think I will follow the Starship tutorial too, because one of the things I like
05:57 is he is, he likes, he teaches people a lot.
06:00 So he doesn't want his shell prompt to be too crazy.
06:07 And so he's going to have a fairly boring Starship configuration.
06:13 And I'm glad because I'd like to see how to do it boring first and then look at his other stuff.
06:18 Yeah, those things can be overwhelming.
06:20 But I really like having some of these things, like a prompt that shows you which virtual environment is active,
06:26 which version of Python you're using.
06:28 It's really neat.
06:29 Yeah.
06:30 Yeah, anyway, so if you've tried Durinvib before and it sort of annoyed you,
06:34 maybe this tutorial might be for you.
06:37 It might be for me as well.
06:38 I haven't, I'm not entirely sure.
06:40 I recently updated, I used all my zshell plus warp, which warp is a super cool terminal thing.
06:48 And for some reason, things weren't working quite the way that I was expecting.
06:52 And with some of my Python virtual environment stuff installed versus system Python,
06:58 That was really, it was odd.
06:59 I think I was running pytest from the wrong place or something like that.
07:02 And it was driving me nuts.
07:03 And I didn't realize, I don't know, I think I had pytest extensions installed into,
07:08 plugins installed into a different place than I was trying to run it from.
07:12 And that was the challenge.
07:13 But I recently added to my profile, this thing will automatically activate
07:18 virtual environments if you go into a place that's got somewhere in the directory tree
07:22 of virtual environment.
07:23 And if you CD out of it, it'll automatically deactivate it, which is pretty dirty and V,
07:28 But I ended up doing that just with like a simple bash function.
07:31 Cool.
07:32 So anyway, I, however you go about it, I totally, totally recommend it because I
07:36 can see here exactly all the git status, all the, you know, the branch, everything.
07:41 It's great.
07:42 That's not what I want to talk about.
07:43 That was just a fun little follow up.
07:44 what I want to talk about something from them Lou and they say, Hey there,
07:50 here's a cool topic for Python.
07:52 So we've all heard of SQLite and almost all of us have SQLite installed knowingly or unknowingly because Python itself ships with SQLite.
08:02 It builds itself as the world's most popular database.
08:05 I think Excel might be the world's most popular database, but you know, pretty close, right?
08:09 Yeah.
08:10 They can, they're definitely Titans, but the story you're told is I'm using SQLite for development or like a local storage, like a local settings
08:21 file for an app, but it's not appropriate for production.
08:24 This thing I'm about to talk about called RQL Lite instead of SQL Lite is pretty neat.
08:31 And that's what Demi recommended, distributed SQL Lite.
08:35 Written and go, but who cares?
08:36 You can use it however you want, right?
08:38 So come down here and let me open up their main website here.
08:44 So rqlite.io.
08:46 And if you go over here, you can see that it's got a couple of things.
08:49 Vault tolerance, high availability, SQL Lite.
08:52 How crazy is that?
08:53 So basically what it is, is it's a data access layer on top of SQLite, but it also sets up
09:00 distributed, a distributed version of SQLite with replication.
09:05 Oh, wow.
09:06 Isn't that crazy?
09:07 Yeah, that's awesome.
09:09 Yeah, I think it's super cool.
09:11 So yeah, replacing Postgres with RQLite has simplified the software we ship to customers,
09:17 says Mark Campbell.
09:18 Yeah, so you come in there and see some of the things it does.
09:20 deploy in seconds, nothing complex to run. And then it gives you basically an HTTP API to talk
09:27 to the database because it might live somewhere else in a cluster, right? But that really routes
09:32 just internally to SQLite and it integrates with Docker Kubernetes super easily. Full text search,
09:37 vector search, JSON documents, lots of different things. So if you up here to, I think getting
09:44 started, you got quick start. Yeah. It talks about you just, there's different ways you can install it.
09:49 You could brew install the thing, or this is the way I've been doing all of my database servers
09:55 lately, all my server type things, you know, Nginx, MongoDB, et cetera, Postgres is to just run a
10:03 local version using Docker. So I don't have to install it or have it mess with my machine. So
10:07 instead of brew install, I would just Docker run this thing and give it a volume and it's good to
10:12 go, right? Persistent volume. So you don't lose the data. And then you just talk to it a lot like
10:16 SQLite, but you can create a cluster of them, which is what's wild. And in the example they show,
10:23 it's like, look, this is all local hosts, but you probably would set them up to be running
10:27 in different places, which is, it's pretty wild. So you also have got like all the rules around
10:35 eventual versus strong consistency and everything you do with clusters. So they've got a nice little
10:39 write-up on trade-offs you can make for like reliability, performance, staleness, et cetera,
10:44 client libraries, Python ones, IRQL, RQ Lite, and so on.
10:50 One for SQLAlchemy.
10:51 Yeah, a lot of neat stuff here.
10:52 If you're looking for a distributed database and you're using SQL Lite, I think people should look at this.
10:59 And thanks to them, Lou, for sending this in.
11:02 Actually, a hook into the SQLAlchemy to RQ Lite is pretty cool.
11:07 Yeah, it's pretty neat.
11:09 Yeah, you got read-only nodes and all sorts of different things about how you can set up the clusters.
11:13 You don't have to do clusters, by the way, if you want to just run a single instance of it,
11:17 it says plenty of people do that.
11:19 But if you want to have like the fault tolerance, high availability, then, you know, set up a cluster.
11:23 Cool. Neat.
11:25 Do you know what else is awesome?
11:26 I would guess that it's our sponsor.
11:28 Yes. PropelAuth.
11:29 This episode is sponsored by PropelAuth.
11:32 PropelAuth is the easiest way to turn authentication into your advantage.
11:36 For B2B SaaS companies, great authentication is non-negotiable, but it can often be a hassle.
11:41 With PropelAuth, it's more than just functional.
11:43 it's powerful. PropelAuth comes with tools like managed UIs, enterprise SSO, robust user management
11:50 features, and actionable insights. As your product grows, PropelAuth adapts with it, supporting more
11:56 advanced authentication features. And the best part, PropelAuth has native support for major
12:02 Python libraries like FastAPI, Flask, and Django. You can easily integrate them into your product.
12:07 When auth is effortless, your team can focus on scaling, not troubleshooting. That means more
12:12 releases, happier customers, and more growth for your business. Check them out to get started today.
12:17 The link is in your podcast player show notes. It's a clickable chapter URL as you're hearing
12:23 this segment, and it's at the top of the episode page at pythonbytes.fm. Thank you to PropelAuth
12:28 for supporting Python Bytes. Yes, definitely. Thank you. Thank you. Now, Brian, I feel like I've
12:34 snuck this one out from under you, this next one I want to talk about. Okay. We have a Python
12:40 dictionary that can report which keys you used and which ones you did not use.
12:45 Why do I feel like I got this from you?
12:47 This is like perfect for testing.
12:50 Okay.
12:51 So imagine I'm working with an API or some kind of data reporting library and you send it some
12:58 kind of dictionary, right?
13:00 And you want to make sure, like, I want to make sure that it uses these three important pieces
13:04 of information that are contained in the dictionary.
13:07 and if you run your code run either through a test or however you want to but probably through a test
13:12 then you could ask which keys were used and which ones were not used and if one you're like nope
13:17 it's really important that they take this piece of information into account and you see that it's not
13:21 used well that's a pretty big hint that something's going on and you might say like we'll just mock it
13:27 out and we can check but it's not that the function is called it's that the function is called with a
13:33 certain combination of different parameters over time, which I think is where it gets tricky,
13:39 right? It's not like get item was called or get is called. It's that get was called with these
13:44 seven values, but not this eighth value, right? And that's kind of like where I think this has,
13:48 at least as far as I know, kind of a unique idea. Yeah, that's pretty neat. Now, what I'm pointing
13:54 at is this blog post by Peter Bankson, and it's very nice, but it's also very short. And it's not
14:02 like exactly a python package you just uv pip install and then run with it instead it's more of
14:08 just a simple little dictionary that people wrote and then you can just access like what keys were
14:14 accessed which keys were not accessed and it's got some sweet uh step operations for that right like
14:21 the difference of a set and so on yeah so you might want to you might want to extend this a
14:25 little bit right like copy this in for example one of the things they note um and there's some nice
14:30 comment the comment conversation at the bottom one of the things missing is this works for square
14:34 bracket access which calls dunder get item but not dot get access but you know what if you look at
14:41 the way that get item is implemented and you rewrite the one that does get i'll tell you what
14:46 it's like three lines of code and it's super easy right like there's it basically just captures a key
14:51 that was used into a set and then delegates to the underlying dictionary implementation so there's
14:57 not a lot going on there.
14:58 Right.
14:59 So you can add that out.
15:00 Another thing that's nice is, there was a conversation about what would this
15:03 look like if it was a typed tracking dictionary?
15:07 And so, someone in the comments provided a, a typed version with multiple generics.
15:13 How about that?
15:14 Okay.
15:14 Yeah, sure.
15:15 Yeah.
15:16 Yeah.
15:16 So I think, you would definitely want to add the dot get function to this, but
15:21 like I said, just, it's like three lines of Python and it's not hard.
15:24 So check that out.
15:25 But yeah, I think this is a neat idea.
15:28 If you're looking to test how a dictionary is being used on a key by key basis.
15:33 Yeah, it seems like it's ripe for a small tracking dictionary package.
15:38 Yeah, exactly.
15:39 I think this is going to be like a sweet kernel of an idea for somebody who wants to put something on PyPI.
15:44 And I put this in the show notes.
15:46 Maybe someone wants to polish it up and put it on PyPI.
15:48 That person is not me.
15:52 Yeah, yeah.
15:53 Or me, that person is Brian.
15:55 Exactly. I don't, but maybe someone else does.
15:58 Yeah. Okay.
15:59 Well, we are streaming this episode, and I would also like to talk about streaming Markdown.
16:08 It's a transition there. Yeah.
16:10 Anyway, so Will McGugan reported a few days ago that the textual that he and his team are working.
16:19 I guess I'm not sure if there's a team there anymore.
16:21 But anyway, textual has a new version out.
16:25 4.0.0. So what's the, what's the big change? The big change is a markdown append. So this is kind
16:31 of a neat thing. I thought it was cool to have, to be able to see if we can get this to run.
16:37 The gist of it is that you've got a markdown. You can report to a markdown widget that as you append
16:43 to it, it just keeps going. So you can in real time, add stuff to it and it just sort of scrolls
16:49 down. Anyway, that's the big thing. Maybe you don't care about this, but I brought this up.
16:58 That's like all of our topics, but I brought this up because I really like the thing that he did
17:03 in bumping the major version. So he says why, the reason for the major version bump is because
17:10 while he was implementing this, there was a different, another part of the interface,
17:14 widget anchor that already existed and that has changed semantics.
17:19 So he, and it works better also, but the semantics changed, changed, caused the major version bump.
17:26 I wish more people did this.
17:28 I think that a lot of people only change the major version if they change the
17:33 actual signature, the API signature.
17:38 And I think that behavior changes are completely, They're even more important to change the version
17:44 because it's going to sort of run fine.
17:47 It's just going to do something different.
17:48 And that's something you really want to point out to users.
17:52 So applaud him for doing that.
17:54 Yeah, Brian, I remember when I first learned C++ and I had some, for me at the time, complicated program.
18:00 I was so proud of myself when I got it to compile.
18:03 Yeah.
18:03 Then its behavior.
18:05 I had to figure out all the bugs.
18:06 And this is kind of like that, right?
18:07 It's like it technically still has the same API signature, But it's down to the harder things to detect that are breaking changes, right?
18:16 Which is semantics and behavior.
18:18 Yeah.
18:18 And that's the real one that gets you is if it seems like it runs fine right away,
18:24 but there's a major version bump, you got to check a look at your test to make sure that.
18:28 And probably it's just that you're not using WidgetHanker.
18:31 And if you're not using it, you don't have to worry about it.
18:34 But anyway, so there's that.
18:35 And I was like, what can we stream with this?
18:38 What would I want to stream into Markdown?
18:40 Well, I've got another project that I wanted to highlight called HTML to Markdown.
18:47 So this is a HTML converter that apparently there was another tool, which I think I ran
18:53 across before called Markdownify that converts webpages or HTML stuff to Markdown.
19:01 And to be able to, so I thought, and one of the features of it, okay, so they completely
19:07 rewrote the fork.
19:09 But why?
19:10 There's a bunch of extra features like HTML5 support, type safety, metadata extraction.
19:17 And look at this, streaming support, memory efficient processing for large documents with progress callbacks.
19:23 I'm curious if you could take a web scraper or something or somehow take something that's streaming HTML
19:31 or use this to grab something large and have it reported to a textual widget.
19:39 That'd be kind of fun.
19:40 so that's very fun yeah nice i can also see if you are doing some kind of chat chat bot or llm type
19:48 of thing on the textual side yeah and you wanted to output the responses in markdown like that's a
19:54 real common yeah even exchange for even brings that up uh like the efficiently stream markdown
20:00 content like you might get from an llm like you might yeah okay yeah makes a lot of sense so cool
20:07 all right hey i want to jump back to your first item real quick okay did you give this article a
20:12 shout out as well because i know that you were thinking about it oh yeah i just didn't highlight
20:17 it so i didn't bring it up yet so yeah there's yeah you want to talk about it yeah sure i don't
20:22 know a whole lot about but it's very neat so um mario python by night also did uh it's the terminal
20:26 bootstrapping starship just during v and uv and talks about how you can sort of get things set up
20:32 with that as well so just it's already in the show notes just one more thing to throw out there
20:37 Yeah, and so that's what's causing me to say, maybe I should take another look at Durinv and Starship
20:44 because other people that I admire are using it.
20:47 So yeah, maybe it's worth looking at.
20:51 Not like me, who just vibed my way to a turn it on, turn it off automatically sort of bash function.
20:58 Yeah.
20:59 You ready?
20:59 Yeah, actually, you got any extras before we jump to the vibe?
21:03 Well, the only extra I wanted to bring up is the reason why I'm wearing an annoyingly bright T-shirt today.
21:12 Usually I do a darker color because it shows up better on the better.
21:16 But this is my Oregon Country Fair shirt that I got last Friday.
21:19 So I'm going to stand up so that you guys can see it.
21:22 And it's a lovely Oregon Country Fair shirt.
21:24 It was a blast.
21:26 But I'm definitely feeling my age a little bit.
21:28 But we got there, it's 11 to 7, and we got there right before 11 to get a decent parking spot.
21:36 But usually we get there earlier to get a decent parking spot.
21:40 A lot of people, it was pretty hot this weekend.
21:44 So it's till 7 o'clock, but like, I don't know, like 3 or 4 o'clock, we were like, I think we're fried enough.
21:51 Let's go home.
21:53 It has been very warm and very sunny in the Pacific Northwest.
21:57 Contrary to what people think about the rain and the clouds.
22:00 Yeah, no, I think there's other parts of the country getting more rain than us right now.
22:05 Oh, indeed.
22:06 All right.
22:07 You ready for the joke?
22:08 Yes.
22:09 Okay.
22:09 So let me set the stage.
22:11 I know many of you out there already know this.
22:13 We've had several jokes.
22:14 So if you've been progressing along the joke timeline with us, you will know what vibe coding
22:20 is.
22:20 Just for the folks who don't though, vibe coding is when you go to an agentic programming model
22:25 like cursor windsurf juni for the jetbrains idees that kind of thing and you just just tell it what
22:33 to do you don't need to touch the keyboard you use text to speech you just like build me this app
22:38 now i do it this way now make it that and the joke is that it comes up with a bunch of mistakes
22:44 or it works on your machine but you're not enough of a programmer to actually know okay that like
22:50 this might work here, but it's not really going to work. So that's the joke. And the joke is,
22:55 switch back, there's an announcement for this new conference. Very exciting.
22:59 VibeCon. Introducing VibeCon, the world's largest vibe coding conference. Make sure you register
23:05 today. HTTP 127.0.0.1 colon 8080 slash register. It says VibeCoding is hard to attend. VibeCon
23:13 is hard to attend. That's already funny. This is on Reddit, but if you scroll down into the comments,
23:19 So good.
23:20 Someone's just a sequel and backslash and vibe.html.
23:23 Someone's no, no, that's wrong.
23:24 File colon triple slash C colon forward slash and vibe.html.
23:29 What boomer posted this?
23:30 Modern vibe coders gather up at HEP bracket colon colon one.
23:35 You know, the IPv6.
23:38 That's funny.
23:38 Oh my goodness.
23:39 This is sweet, isn't it?
23:41 Can someone give me the prompt to generate the registration form so I can sign up?
23:48 That's funny.
23:49 Yeah, somebody said tried to register and they took a screenshot that local, the page, you know, connection refuses.
23:55 Oh my God.
23:56 Tried to register for ViveCon.
23:58 I guess my vibes weren't local enough.
24:00 Yeah, that's funny.
24:01 Yeah.
24:02 Okay, so let's say I'm dense.
24:04 Why is, what is that URL, that 127.001?
24:08 If you're doing web development locally, that's where it will run.
24:12 Okay.
24:13 I don't know what server typically picks 8080.
24:16 Maybe this is Node.js.
24:17 probably it is because like flask is 5 000 um some of them are 8 000 yeah so but it's definitely like
24:24 if you ran it locally you said build me this thing it would work perfectly locally because this is
24:30 like the dev address but obviously it's listening on the local loopback not it's not a real server
24:34 i love it yeah yeah i haven't done a lot of vibe vibing lately but yeah no definitely uh vibe con
24:43 is definitely hard hard to uh to attend and pat on the honest says they run a lot of local apis on
24:49 8080 like internal all right well fun as always yes thanks for being here brian thanks everyone's
24:56 listening and if you're not subscribed to the podcast please click follow or the subscribe for
25:02 free whatever your podcast app button says to you know keep getting automatic downloads to our free
25:07 podcast and if you're not subscribed on youtube you want to get notified you want to catch the
25:13 things and all the stuff we're doing here go over there and subscribe as well thanks and bye all