Speaker 1: Hey, folks, welcome back to another episode of JavaScript Jabber.
Speaker 1: This week, I'm your host Charles max Wood, and we
Speaker 1: are here with Matthias Matts and Matthias. Do you want
Speaker 1: to just let people know who are I know you're
Speaker 1: the CEO at Whole Punch. You do the peer to
Speaker 1: peer stuff, right, You've got some other stuff going on.
Speaker 2: But who are you?
Speaker 3: Like?
Speaker 2: What's your story? Sure?
Speaker 3: Yeah? First of all, thanks for having me. Awesome to
Speaker 3: be here. I always love to talk about JavaScript basically.
Speaker 4: So yeah, like I said, I'm the CEO a Whole
Speaker 4: Punch not but first and foremost, I'm always like a
Speaker 4: JavaScript hacker. I've been doing JavaScript for ten fifteen years now.
Speaker 4: I started when I was in university. That's when I
Speaker 4: started programming. We had a mandatory Java. At some point,
Speaker 4: you know, I google Java and I got JavaScript and
Speaker 4: I started doing that and I never looked at ever since.
Speaker 4: I've been a pretty significant contributor to the no jets project.
Speaker 4: I've done tons of open source modules for NPM. I
Speaker 4: think I have around fifteen hundred on there now, like
Speaker 4: quite a significant amount.
Speaker 3: I usually say, if you.
Speaker 4: Have box, I'm sorry because I've probably made some of
Speaker 4: those and I am a big lover of JavaScript because
Speaker 4: I think it's one of those languages that just oddly
Speaker 4: enough that people use it to make things where the
Speaker 4: point is not to write code, is to write things,
Speaker 4: if you know what I mean. Like it's not art,
Speaker 4: it's like engineering, which I can't. I used a lot
Speaker 4: to do all kinds of things, like I said, fifteen
Speaker 4: hundred modules, but I'm especially in love with it for
Speaker 4: doing distributed systems and peer to peer because I think
Speaker 4: it's a perfect candidate for that because it runs everywhere,
Speaker 4: it's easy, it's very good at moving data around with
Speaker 4: the abstractions.
Speaker 3: So I've done a lot of that, and recently.
Speaker 4: Before years ago, I started a company with a couple
Speaker 4: of friends called Whole Punch that is focused around Peter
Speaker 4: peer engineering with JavaScript. So it's really fun. We've been
Speaker 4: going for a while with accurring a lot. Yeah, and
Speaker 4: so now we're just doing all kinds of things with
Speaker 4: JavaScript and native code and mixing that name with the
Speaker 4: JavaScript and making like crazy Pewter peer things and yeah,
Speaker 4: tons of fun and tons of really cool projects. We're
Speaker 4: really trying to disrupt the status coe and it's it's
Speaker 4: it's yeah, it's going quite low.
Speaker 2: Awesome.
Speaker 1: Yeah, I'd love to dive into some of the peer
Speaker 1: to peer stuff. Are you doing like web RTC or
Speaker 1: is it different than that?
Speaker 4: So it's really funny because I actually think when I
Speaker 4: think about my transition in JavaScript is kind of like
Speaker 4: like experience in JavaScript. The more I've done JavaScript, the
Speaker 4: more I moved away from the browser and more like
Speaker 4: just writing JavaScript outside outside the barrows APIs, which I
Speaker 4: think is a journey. There's a lot of people have
Speaker 4: because the language is just really good for that. So
Speaker 4: as anybody else, I've done a lot of dabbling with
Speaker 4: to see and building things and then at whole punching
Speaker 4: me and general I'm very into like building serious the
Speaker 4: technology that is like not that repudcy isn't serious, but
Speaker 4: like things where we can kind of like reporty Cy
Speaker 4: is usually meant build to like tag.
Speaker 3: On things to like another.
Speaker 4: It's kind of like you know, uh, it has like
Speaker 4: a chat video thing and stuff like that, but it's
Speaker 4: not really meant to be the backbone of your applications.
Speaker 4: So we're like more about building things where everything is
Speaker 4: peer to peer is like as a primitive build into everything,
Speaker 4: so you don't like you actually don't do.
Speaker 3: HDP, you don't do TCP, you only use Pewter pre
Speaker 3: data structures. But with JavaScript that do that.
Speaker 4: So so we actually don't do any of that, but
Speaker 4: we build a ton of primitives out for doing like
Speaker 4: you know, like hope punching. That's part of our name
Speaker 4: in the company that connect. That means connecting people behind firewalls,
Speaker 4: like you do in webar dec but like much better
Speaker 4: because the report se stuff is a bit dated there.
Speaker 3: Moving terabytes all day around with that kind of stuff
Speaker 3: media files.
Speaker 4: And then and then, and this is my favorite thing
Speaker 4: about JavaScript, presenting that to like users with some manpis
Speaker 4: that are somewhat familiar with them so they can just
Speaker 4: do what JavaScript is also really good at, like building
Speaker 4: your eyes and plugging that data in, which is very
Speaker 4: hard skilled to have. Also, and we have a lot
Speaker 4: of talent people in the community obviously, so we're like
Speaker 4: about like JavaScript and to end and then like allowing
Speaker 4: people to build applications. Obviously there's a lot of CN
Speaker 4: and C plus plus and there also to make that.
Speaker 2: Stuff go right sounds good.
Speaker 1: So so yeah, so you're not doing web RTC, you're
Speaker 1: doing you're building BitTorrent and Dropbox.
Speaker 4: Yeah, and I actually started when I first started dabbling
Speaker 4: in Pewter peers. I built that peer client for for
Speaker 4: bitttern because I was like, that's like a fun little
Speaker 4: thing to do, and that was a.
Speaker 3: Crazy cool experience.
Speaker 4: I always tell this to people if you ever, it
Speaker 4: is really fun because bitturn has one.
Speaker 3: Of those things.
Speaker 4: I did it like that was like ten fifteen years
Speaker 4: ago when bittern was really really big and it was
Speaker 4: everywhere and like you know, rate day was a website
Speaker 4: you could go to.
Speaker 3: Now I think it's probably blocked everywhere.
Speaker 1: Yeah, I don't know, but yeah, not that I've ever
Speaker 1: used pirate a because I would never do anything illegal.
Speaker 3: It's good for donalding Linux, I heard. But it was
Speaker 3: really cool. It was really cool for.
Speaker 4: That whole you know experience where you just sit on
Speaker 4: your laptop You're like, what should I play with? But
Speaker 4: all the data is actually out there because it's distributed
Speaker 4: and everywhere, so you can can't just sit there and
Speaker 4: build a little program on your computer. You can go
Speaker 4: to Wikipedia and just read this BAC. It was It's
Speaker 4: like it's actually not very complicated once you you know,
Speaker 4: understand the first bits of it. I just went a
Speaker 4: couple of weekends in a row doing that. But I
Speaker 4: and I've mentioned this many times on all interviews, but
Speaker 4: like that whole feeling of like it's just me my computer, JavaScript,
Speaker 4: everything is everywhere. Once I can just sit here and
Speaker 4: write code and never have to give you anything else.
Speaker 4: That was like that triggered triggered me massively to to
Speaker 4: dive into this, and uh, yeah, I build a little
Speaker 4: torn client from that that's still out there. Was called
Speaker 4: the pure Flex pretty popular, but yeah, it was like
Speaker 4: a crazy good experience and I've never looked back ever since.
Speaker 2: Right makes sense.
Speaker 1: So we're going to be talking about the Bear JavaScript
Speaker 1: run time. But you were talking before about the pair
Speaker 1: system that you have for.
Speaker 2: Yeah, for peer to peer stuff.
Speaker 1: And one thing that I was curious about is it
Speaker 1: because I'm gonna ask you what it is, but I
Speaker 1: also want to figure out what it is. And then
Speaker 1: how that led to you creating another runtime because it
Speaker 1: seems like, you know, we've got Node and Dino and
Speaker 1: bun and so you know you're doing something maybe a
Speaker 1: little different. Why does that lead you to, oh, we
Speaker 1: need another one of these things?
Speaker 3: Yeah? Excited? Oh yeah, Like I said, I've been doing
Speaker 3: not what I love Node for a long time, and
Speaker 3: we build out our high stack that's like no modules
Speaker 3: like anybody else, native code of the stuff.
Speaker 4: Note has a really good native language or facing with
Speaker 4: C and stuff that we're big fans of. We build
Speaker 4: all stuff out was great and at some point, as
Speaker 4: anybody else who builds no GS apps, you want.
Speaker 3: To distribute them, right, so you make an app these.
Speaker 4: Project modules modules are really easy, and you want to
Speaker 4: make an application, and actually, like make an application is
Speaker 4: I think still surprisingly tricky. It's like where if you're
Speaker 4: building a web application, there's tons of stuff out there
Speaker 4: for that, Like you can you can make a little
Speaker 4: app and maybe you can go and get a server
Speaker 4: and you can host engine X and or whatever. But
Speaker 4: if you want to make something that's like a desktop app,
Speaker 4: you can use Electron. But it's it's it's it's the
Speaker 4: process that once you start doing the end all the bits,
Speaker 4: like you know, making the app, packaging and uh, getting
Speaker 4: the stuff in there, getting the native stuff to Ron,
Speaker 4: distributing and getting updates in there, getting that to Ron,
Speaker 4: it's like it's not as simple as making a Note module,
Speaker 4: and like it's a real investment.
Speaker 3: So you end up just making one app.
Speaker 4: Where I would normally make like one hundred modules, I
Speaker 4: probably made like one or two apps because that that investment,
Speaker 4: it's just so intense every time. So so we had
Speaker 4: all the code for pew tore peers, so we decided,
Speaker 4: like why not make an engine. That's what the pair
Speaker 4: system is, pair and bear we'd like like to make
Speaker 4: puns on that.
Speaker 3: So it's two different things.
Speaker 4: But the pair pair system was like an idea to say,
Speaker 4: what if we instead you could just make kind of
Speaker 4: like you make a module and like a website. You
Speaker 4: can just make a little thing on your computer. It
Speaker 4: just has the modules. You run it through this cool
Speaker 4: thing which is called pair that you can go to
Speaker 4: pairs dot com and you can you can try it
Speaker 4: out and it just packages up into like a little
Speaker 4: app with all the tooling, and then that app is
Speaker 4: distributed to peer on our PTP network.
Speaker 3: So like you don't have to have any like hosting anything.
Speaker 3: You can just kind of like.
Speaker 4: You do with like like I said, with you know,
Speaker 4: normal normal things. You just package it up, run at
Speaker 4: a simple command and you get a link out and
Speaker 4: that link. If anybody else has this this run time install,
Speaker 4: they can just paste it and they can run the
Speaker 4: ABB anywhere. And then instead of spending in tons and
Speaker 4: tons of time making and you can just make them
Speaker 4: as easier as you make modules. And like again no
Speaker 4: hosting costs no in think because it's.
Speaker 3: Just distributed putre peer like you know in bittern.
Speaker 4: So so so we deep that on that quite a
Speaker 4: bit and we made something really cool for that, which is,
Speaker 4: like I said, called pair that does all that stuff.
Speaker 3: It's super cool and.
Speaker 4: As part of that journey for us, and I think
Speaker 4: this is actually a huge missing step up the gaoscript,
Speaker 4: We're like, it's super cool to make these apps, right,
Speaker 4: So we have an app that we build that called Keat,
Speaker 4: which is a chat app. We do that as a
Speaker 4: puture pewer chat aup is super cool. Also, let's building
Speaker 4: all this stuff as no just developers. As soon as
Speaker 4: you make an app like that and you make it
Speaker 4: and it's cool, looks great and it has all the
Speaker 4: cool stuff, the first thing people.
Speaker 3: Ask you is like, cool, when is it nonmobile?
Speaker 4: The answer was always like, oh, yeah, you know, we
Speaker 4: don't have a mobile team yet and I can kind
Speaker 4: of scale it up. And it was like you know
Speaker 4: that that whole feeling when it's like a fork in
Speaker 4: the in the in the process come to a degree
Speaker 4: like we have all this stuff figured out for doing
Speaker 4: desktop development and make a cool notejas things for this
Speaker 4: top and for servers, but like getting that stuff to
Speaker 4: run our phone, just like you will find some like
Speaker 4: two year old project and maybe got something to work
Speaker 4: at some point and it hasn't been maintained because it
Speaker 4: was an experiment and stuff like that. So and there
Speaker 4: was already really good you know, UI tooling on mobile
Speaker 4: like reac native is really good. All the things are
Speaker 4: really good on on on on phones to make UI
Speaker 4: apps kind of like react this really good on this
Speaker 4: stup for making UY apps.
Speaker 3: So we're really missing that part. We're like, well, what
Speaker 3: about the bag end?
Speaker 4: So in period, the back end runs everywhere, like you
Speaker 4: don't want to run it on a server, You want
Speaker 4: to run that ud the device. But the bag end
Speaker 4: has much different capability needs than than a front end,
Speaker 4: Like you need to be able to load native code
Speaker 4: so you can like you know, do stuff like video
Speaker 4: trends coding if you want to do that on the phone,
Speaker 4: do stuff like native networking if you want to do that.
Speaker 3: In the phone for modules.
Speaker 4: So so we very quickly decided like, let's try to
Speaker 4: get not jets running, and we just couldn't do it
Speaker 4: because it's like it's just not made for it, and
Speaker 4: the module system is not made for and like making
Speaker 4: bills for like again, I totally started to understand why
Speaker 4: these partics pop up and never really go anywhere because
Speaker 4: there's there's too much stuff, there's too much things to fight,
Speaker 4: and so instead we were like, well, actually, what is
Speaker 4: the thing we want to we really love from no
Speaker 4: DS And for us, that's like the module system MPM.
Speaker 4: That's amazing, it works. It's like one of the most
Speaker 4: well designed things ever. Uh and and the native system
Speaker 4: for know like how to interface from note to see
Speaker 4: the thing not not a lot of people do, but
Speaker 4: when you do it, you're you know, it's it's amazingly
Speaker 4: well designed. No years, so we're like, what if we
Speaker 4: just made a new run time that actually didn't have
Speaker 4: any of the other stuff, because all the other stuff
Speaker 4: is actually what made it hard.
Speaker 3: The other stuff is.
Speaker 4: Like things like AGP bindings, things like fastest and bindings.
Speaker 4: Even though that sounds kind of insane not to have it,
Speaker 4: that's the thing that makes it really hard to port,
Speaker 4: and instead just had a module system. So no APIs
Speaker 4: a module system, a native system. And then it had
Speaker 4: a stated goal of saying, with those two things, how
Speaker 4: can we make something that actually runs everywhere, So like
Speaker 4: something that you can write a module once it runs
Speaker 4: on this top a mobile phone, your smart light bulb,
Speaker 4: if it has to run time anywhere. And we made
Speaker 4: this little thing for for our PTP engine pair and
Speaker 4: at some point we were like, wow, this is actually
Speaker 4: insanely cool by itself, so we decided to split it
Speaker 4: up into Bear. So that's why the pair bear Plunk
Speaker 4: came in.
Speaker 3: So we.
Speaker 4: Officially released this I think it was last week. It's
Speaker 4: been really exciting, so that's that's the bear JAS run time.
Speaker 4: It's bare because it does nothing but but does everything,
Speaker 4: so it only ships a module system. It only ships
Speaker 4: this native thing and then it just we just made
Speaker 4: I think we already made like two hundred modules for it.
Speaker 4: So if you want to use like file systems, you
Speaker 4: just install a file system module that runs again, because
Speaker 4: it's using these bindings everywhere. On mobile we use a
Speaker 4: binding for doing push notifications. That's the thing you obviously
Speaker 4: don't want to use that on desktop. Then on desktop
Speaker 4: you want to do other things like maybe we on
Speaker 4: an HTP server, you can do that. You can also
Speaker 4: do it the mobile.
Speaker 3: Uh.
Speaker 4: And we just did this because you know, we wanted
Speaker 4: to unlock our own development. I am a big believer
Speaker 4: in modular design, and that's that's part of it. But
Speaker 4: I was very excited when we did it because I'm like, Wow,
Speaker 4: this is actually what I've been missing my entirety is career.
Speaker 3: I think. So it's it's it's super cool and super.
Speaker 2: Yeah.
Speaker 1: So I guess what I'm curious about, just to start
Speaker 1: off with.
Speaker 4: Is.
Speaker 1: So it it's it's a bare bones JavaScript implementation as
Speaker 1: opposed to say note or bun or whatever that pulls
Speaker 1: in a ton of stuff. I mean sometimes that ton
Speaker 1: of stuff is nice to have, but yeah.
Speaker 4: Yeah, it's basically saying it's flipping in it around a
Speaker 4: little bit, saying it's just JavaScript, what anything? So like
Speaker 4: JavaScript without anything, it's actually hard to define, right. I
Speaker 4: don't even think like where does the specs stop and end?
Speaker 4: Because you know, stuff like where the people might think
Speaker 4: that's part of JavaScript because it's there in the browser,
Speaker 4: but it's not really, it's something it's like a different
Speaker 4: spec it's not a language thing. But then there's other
Speaker 4: things where you're like something like a type the array
Speaker 4: in JavaScript, you know, like you and AI that ray
Speaker 4: is that part of the language, and that's that's very
Speaker 4: part of the core of language. Is it's actually really
Speaker 4: hard as unless you really going through like what this
Speaker 4: JavaScript is. So for us, we're like, we just want
Speaker 4: something that just runs the JavaScript and has the only
Speaker 4: thing bigd in is like a module system. You want
Speaker 4: to be able to somehow load things, so like import.
Speaker 4: It's very important and clear rules about how that import works.
Speaker 4: So we still follow the note note modules algorithm, which
Speaker 4: means you can stall things from MPM because then you
Speaker 4: get free compatit and stuff. But everything else, and this
Speaker 4: might be a little bit controversial, but everything else actually
Speaker 4: just makes your life harder because like if you have
Speaker 4: something like a file system build in like you know
Speaker 4: in NOGS you can do require f as you get
Speaker 4: a file system. Right, that's something where you're like, wow,
Speaker 4: that's the feature, and it is a feature. But for
Speaker 4: me as a SUM as a developer, it's also a
Speaker 4: what's the word liability us If you just get that
Speaker 4: from the runtime if the runtimes give you that API,
Speaker 4: what's the version of that API you're getting, Like, are
Speaker 4: you getting the latest one? That's like in NOE twenty
Speaker 4: four A, you're getting into one from No.
Speaker 3: Eighteen.
Speaker 4: Well you might know it because you're installed note on
Speaker 4: your computer, but if you're running it on somebody else computer,
Speaker 4: you don't know. As that API changes, it becomes actually
Speaker 4: really hard to code against. And the only solution is
Speaker 4: that that ABHI basically never changes, which is then why
Speaker 4: we have a lot of this stuff in nogs will.
Speaker 4: Really why is the FS module still using callbacks for
Speaker 4: example as the default, Well, that's because we don't want
Speaker 4: to break all stuff. If instead there is nothing built
Speaker 4: in only the javas respect which is very build around
Speaker 4: never changing. And you then load modules, then modules can
Speaker 4: just change. You can just kind of like React changes
Speaker 4: all the time, right, You can just publish a new
Speaker 4: major version and then people on the old major version
Speaker 4: can just stay and now one that's fine, and then
Speaker 4: people who want to get the new stuff can just
Speaker 4: move a new on and you never break anything. So
Speaker 4: you can just have this rapid rapid iteration of like
Speaker 4: crazy designs that never break anything. In practice, The plot
Speaker 4: side of that is then you also don't have to
Speaker 4: ship that code around. So that's really useful for stuff
Speaker 4: like mobile where you have different kind of footprints, like
Speaker 4: a mobile. If you're running an application that uses JavaScript
Speaker 4: on mobile, maybe you don't want to load like open
Speaker 4: ass a cell from not yes because you're not using
Speaker 4: and that's a big dependency and liability and also something
Speaker 4: you have to get approval for in the app stores
Speaker 4: and things like that. Or if note adds something else,
Speaker 4: you just want to run run the JavaScript and then
Speaker 4: you just want to pull in exactly what you need.
Speaker 4: So that was our design goal from the beginning. And
Speaker 4: for me, that's one of those things again when you
Speaker 4: hear about it sounds like an empty feature, but I
Speaker 4: think it's you know what I mean with the normal
Speaker 4: distribution with the guy in the middle, it's kind of
Speaker 4: like no modules on both ends. And the guy in
Speaker 4: the middle is like, I love all the modules, Like
Speaker 4: you actually want to have nothing ship with rue time.
Speaker 4: You want to have nothing ship with your run time,
Speaker 4: and then you just want to pull in all the things.
Speaker 4: And and I'm talking a lot, but I'm excited about it.
Speaker 4: But like and add the benefit of that is like again,
Speaker 4: if you look at something like Bond, I think Bond
Speaker 4: it changed course a little bit, but one of the
Speaker 4: original things about Bond that was like a cool thing
Speaker 4: was like, it's not based on V eight.
Speaker 3: It's based on jobasrip core I think the one from Webcait.
Speaker 4: And it has different profiles and it's very good at
Speaker 4: other stuff, and like VA is better and other stuff.
Speaker 3: So it's kind of like there's like a major for you,
Speaker 3: Like you want to use j's core, well, the.
Speaker 4: Need to probably use Bond, you want to use VAH
Speaker 4: should probably use note when you do a runtime like
Speaker 4: this where basically saying there's nothing in here except the
Speaker 4: language and the module system, then changing jouascrip inmentations and
Speaker 4: all of a sudden really easy because you're not really
Speaker 4: doing much.
Speaker 3: Except for that.
Speaker 4: So our guys made a cooler library called lip jas,
Speaker 4: which is basically just like a binding an abstraction layer
Speaker 4: for any engine because that's really easy, easy to define, okay,
Speaker 4: and that means that in there we can support any
Speaker 4: JAS engine basically. So we already have it working on
Speaker 4: MB eight because we is awesome. We have it working
Speaker 4: on JavaScript core. So you know, if you want to
Speaker 4: use that on iOS. It can just run that seamlessly.
Speaker 4: Am Song made this really cool JavaScript engine I don't
Speaker 4: know if you know what, called jerryscript, which is like
Speaker 4: a JAS engine based for embedded systems, so it runs
Speaker 4: in like have a Megabytom memory obviously like slower and
Speaker 4: other things, but like it means that they can actually run.
Speaker 3: On things like light bulbs and stuff. Bear runs with.
Speaker 2: That straight up, and that's cool.
Speaker 4: And you as a module offer when you write modules
Speaker 4: to Bear, you don't know any of this. You just
Speaker 4: run you just write JavaScript, but it just runs on
Speaker 4: this straight up. So you can actually take any band
Speaker 4: module out there, so you can take out we haven't
Speaker 4: you know, We've made a module for five systems called Bear.
Speaker 3: Affets, which is just a module you can donald.
Speaker 4: So you can actually install that and run that on
Speaker 4: Jerry script and run it on a light bulb. But
Speaker 4: you can install that and run it on jais corn,
Speaker 4: run on Iris, or you can run it on V
Speaker 4: eight or whatever. And I think that's like that to
Speaker 4: me was like wow, this is where this is gonna
Speaker 4: you know.
Speaker 3: On people. Once people realize this is like this is
Speaker 3: going to be crazy.
Speaker 1: That is crazy. Yeah, I'm imagining, you know, I mean
Speaker 1: you kind of go nuts, you put spider Monkey on there, you.
Speaker 2: Know, whatever floats your boat. That that's interesting. Yeah, So.
Speaker 4: It's like just to add on that because it's almost
Speaker 4: like I think it's one of those things where people
Speaker 4: don't realize almost like the implications of that. But for example,
Speaker 4: like if you do move Mobile development and you want
Speaker 4: to run something that reacts to a push notification on iOS,
Speaker 4: that's something you can do.
Speaker 3: On iOS.
Speaker 4: You only have like twenty megabytes of memory to do that,
Speaker 4: not to be nerded, but like that's a requirement. So
Speaker 4: if you run if you run V eight with that,
Speaker 4: it's like V eight takes fifteen megabytes of memory. You
Speaker 4: have five five megabytes of memory for application. You feel
Speaker 4: like the guy who's like programming the program to go
Speaker 4: to the moon, right You're sitting there optimizing every line
Speaker 4: to like make it fit memory right in like twenty
Speaker 4: twenty five.
Speaker 3: It's insane.
Speaker 4: So what we do is we just swap it out
Speaker 4: for jerryscript, same code. Boom, memory goes down. It's the
Speaker 4: same as writing it and the sea basically because now
Speaker 4: it's like footprint is very small and Rue's slower, but
Speaker 4: doesn't matter. It's in the push notification and now we
Speaker 4: can do all the things, right, So it's like you
Speaker 4: can pick your battles at a reason.
Speaker 1: Yeah, that's that's really interesting. So let's talk about mobile
Speaker 1: for a minute, because I mean we've done shows on
Speaker 1: things like Capacitor or Ionic, right, and so those those
Speaker 1: just use the web WebView, right, and then they connect
Speaker 1: to stuff through the JavaScript core bridge on iOS and
Speaker 1: you know it kind of does the things. And yeah,
Speaker 1: running some of these other engines, I mean, there are
Speaker 1: languages you can't run on iOS because you know it does.
Speaker 1: There are various reasons. I'm not going to get into them,
Speaker 1: but some of it's because it opens the gate to
Speaker 1: certain security things they can't sandbox it properly. And sometimes
Speaker 1: it's because, yeah, those languages just take up too much
Speaker 1: in the way of resources. But when you get down
Speaker 1: to other things like React Native, I mean, they work
Speaker 1: almost exclusively across that JavaScript bridge, but they're still using
Speaker 1: the runtime JavaScript that's built into the phone. And it
Speaker 1: sounds like what you're doing here is you're actually saying, hey,
Speaker 1: we've got this other JavaScript engine that you're going to
Speaker 1: run as part of your app, and I'm assuming if
Speaker 1: you ploy an app to the app Store, it ships
Speaker 1: with the JavaScript run time embedded in the app along
Speaker 1: with everything else. And so my question is you're nodding,
Speaker 1: so I'm assuming I'm getting it right. My question is, yeah,
Speaker 1: what kind of limitations are there to this? And then
Speaker 1: the other question is is what kind of advantage does
Speaker 1: it give you? Because I'm aware that some apps, depending
Speaker 1: on if it's JavaScript, the iOS for example, thinks of
Speaker 1: it as an as an asset, a static asset, as
Speaker 1: opposed to or at least they used to as opposed
Speaker 1: to you know, part of the app, and so you
Speaker 1: could actually do a hot reload and things like that
Speaker 1: with it. And I'm just so I'm wondering, like what
Speaker 1: doors does this actually open beyond sort of performance and
Speaker 1: having my app run there and on the desktop.
Speaker 4: So yeah, super interesting. It's actually you're very very much
Speaker 4: under my track here and in general. So so for example,
Speaker 4: our app, we our chat up key, which is our
Speaker 4: flagship app, will we deploy orders. It's a RAG native app,
Speaker 4: and we have a bunch of reagnative developers. We're very
Speaker 4: good at making stuff REACNATD. I'm big, I'm a big
Speaker 4: fan of Reagnative and the way they do stuff, and
Speaker 4: like it's it's it's it's a really cool project. Very
Speaker 4: very still very underrated project because people just sar JavaScript
Speaker 4: and sometimes you know how people are to freak out,
Speaker 4: but it's like it's it's incredibly well designed. So we
Speaker 4: actually run the way you describe where we run, and
Speaker 4: we have a module for this with React native that
Speaker 4: just integrates the runtime with reacnative, so dot the hot
Speaker 4: reloadings and whenever you update the code order stuff. It
Speaker 4: works like magically. World is super cool. So we run
Speaker 4: the run our runtime next to the Regnative runtime, kind
Speaker 4: of like you would run a back end normally, right,
Speaker 4: so you have like a separate process normally runs on
Speaker 4: a server. You run it on device because we use
Speaker 4: it mainly for future peer but we use all kinds
Speaker 4: of things where you then ship the run time with it.
Speaker 3: It's it's not that big.
Speaker 4: It's like I think it's like ten megabytes. The reason
Speaker 4: why to do this is many many reasons. One is like, yeah,
Speaker 4: like you said, you can do all kinds of performance things.
Speaker 4: The runtime has a very clear defined native interface, so
Speaker 4: you can you can make native modules, which is very
Speaker 4: important for us. Like, for example, we just made some
Speaker 4: bindings for we need our app for fmpech for doing
Speaker 4: like video conversion and stuff like that. So we write them.
Speaker 4: You write a what module wants for Bear, you write
Speaker 4: bind to the native language. It runs, and nodias and
Speaker 4: runs and Bear. Then it also runs on the phones
Speaker 4: immediately because that's by part of that contract, assuming like
Speaker 4: that the phones can you know run thus that that
Speaker 4: CE library, but honestly almost always they can, and you
Speaker 4: never touched that code again, and it's like globally universal everywhere,
Speaker 4: and that's that's the true unlock. So like we're iterating
Speaker 4: so much fast now because we never really think about
Speaker 4: that bridge of crossing the things. I think people are
Speaker 4: overfixated on making cross platform UI things, you know kind
Speaker 4: of like somebody will probably say, well, you can run
Speaker 4: reagnative on the desktop also, and then you can maybe
Speaker 4: do some of the same things, and like to some
Speaker 4: degree that's true, but it's also like by overcoupling things
Speaker 4: to U I react native visit your I framework, you're
Speaker 4: not getting that like massive iteration speed that you get
Speaker 4: from like making no jezz modules where no jets modules.
Speaker 3: The other way is like something not nothing to do
Speaker 3: at all with with UI, but.
Speaker 4: It's just like making functionalities that then you know, enhance
Speaker 4: your app and enhanced your back And so we do
Speaker 4: the same thing with Bear modules. So you just write
Speaker 4: them once they run everywhere. By composing your app logic
Speaker 4: for these modules, you're actually just making an app ad
Speaker 4: logic thing that does all kinds of things like image
Speaker 4: scaling like I said, or like just run your engine
Speaker 4: for us. It's running like a whole piece of peer
Speaker 4: stack and you literally doesn't change it between desktop and
Speaker 4: mobile or embedded devices, is exactly the same code you
Speaker 4: run it for us. That's been like one of those
Speaker 4: like wow, we went from like working you know one
Speaker 4: x ten x now one hundred x faster, Like it's
Speaker 4: crazy how fast we can literate now because we never think.
Speaker 3: About honestly, and this is like really true, we.
Speaker 4: Never think about those boundaries anymore of like where else
Speaker 4: this run and we just right it and then runs everywhere.
Speaker 4: And for the deployment stories and all that, it's just
Speaker 4: meant that our teams are just so productive because we
Speaker 4: so we have the way we start to that it's
Speaker 4: like we have a mobile team they work on really
Speaker 4: native that's obviously very focused on mobile. We have a
Speaker 4: desktop team. They've worked more like making like webuiyes that
Speaker 4: you do more on thisktop through our run time and
Speaker 4: then they all share this beare code that upsets for
Speaker 4: a team does that enhances all the apps with all
Speaker 4: the functionality, and that's like just the best kind of
Speaker 4: app development I've ever seen. And that's that's really exciting
Speaker 4: to me. And it's the first time I've seen just
Speaker 4: like those two prongs just accelerating that way together as
Speaker 4: one team basically, and I think that's that's the true
Speaker 4: unlock and that's yeah. Again, it takes a little wrapping
Speaker 4: your head around, but it's like it's it's.
Speaker 1: Really yeah, it it feels a little bit to me
Speaker 1: almost Like so people who listen to the show know
Speaker 1: that I'm primarily actually a back end developer, and I'm
Speaker 1: typically working in Ruby on rails and not on a
Speaker 1: JavaScript back end. But in fact that's that's what I
Speaker 1: I just got a new job working doing that for
Speaker 1: price Picks. But what's interesting is with this is it
Speaker 1: almost feels like you're shipping it with a highly performant,
Speaker 1: localized back end.
Speaker 4: Yeah, exactly, And and and the cool thing is that
Speaker 4: then by shipping it together like you make these kind
Speaker 4: of APIs.
Speaker 3: But like obviously the latency.
Speaker 4: Between your applications kind of like and this you know
Speaker 4: threadie running to the worker and is basically non right,
Speaker 4: it's kind of like it's the same device. So so
Speaker 4: those kind of overheads disappear. It's very easy to integrate.
Speaker 4: And again you get this like integration of all kinds
Speaker 4: of native enhancements that you want to do for your apps,
Speaker 4: and it's all through JavaScript and scenes plus plus because
Speaker 4: that's what you write the bindings in. And yeah, it's like, uh,
Speaker 4: you know, I don't want to come up too many examples,
Speaker 4: but like for example before we so no, like it's
Speaker 4: a very simple thing we do in our app is
Speaker 4: like somebody shares a video and we want to generate
Speaker 4: a preview of that that video, and we have that
Speaker 4: in our desktop ap We have that in our mobile
Speaker 4: app and our mobile to use a reagnative library.
Speaker 3: And on desktop to use I think some video thing
Speaker 3: and whatever.
Speaker 4: And the problem we always had was like you know,
Speaker 4: they would be a bog where mobile did it a
Speaker 4: little bit differently than this stop because there was like
Speaker 4: differences in the libraries and the and the stacks, and
Speaker 4: it would always come back, and we'll always come back,
Speaker 4: and we'll always come back. And now we moved it
Speaker 4: just to like it's in the Bear worker. It's olympic.
Speaker 4: It just takes it in. It produces the same thing
Speaker 4: every time. It's exactly what we want. We tested on desktop,
Speaker 4: it's one hundred percent the same thing on mobile.
Speaker 3: We moved on. We never looked back.
Speaker 4: So it's not even like that that you know, you know,
Speaker 4: anything Reagnative is doing is wrong, or anything that that
Speaker 4: desktop development is.
Speaker 3: Doing wrong or backing development is doing wrong.
Speaker 4: It's just that difference is low you down and they
Speaker 4: don't need to and I think that's what's really exciting
Speaker 4: for me.
Speaker 2: Awesome.
Speaker 1: So I want to talk a little bit about the
Speaker 1: modules for a minute, because you did mention that you
Speaker 1: can for example, no JS.
Speaker 2: They use.
Speaker 1: V eight, but they've added other things on right because
Speaker 1: V eight was originally built for Chrome and so like
Speaker 1: you said, like file system for example, like V eight
Speaker 1: did not need that for your browser, and so you
Speaker 1: know you've got these other things bolted in. So you
Speaker 1: I'm assuming you just have modules for Bear that do
Speaker 1: some of those things.
Speaker 2: Then.
Speaker 4: Yeah, so it's pretty crazy because when you do this
Speaker 4: kind of like modulo development where you kind of split
Speaker 4: things onto these like piece meals, like you know, say,
Speaker 4: it's kind of like you can imagine like the tickets
Speaker 4: and your ticket ticket tracker, like magfs module, make mag
Speaker 4: module make it. Also, it's really easy to implement actually
Speaker 4: because it comes so scoped. So our team was originally
Speaker 4: just two people, now three people, and those two guys
Speaker 4: just went through all libraries notes and just re implement
Speaker 4: them as modules. So we actually have the entire note
Speaker 4: is standard library just as modules you can pick from
Speaker 4: the shelf and install. But again, you just the difference
Speaker 4: is that if if you make another module, so let's
Speaker 4: say you made a module that's like you know, read
Speaker 4: some file and converted. Instead of you asking the run
Speaker 4: time for FS, you just require FS and you install
Speaker 4: it like you do any other module.
Speaker 3: That's the only difference.
Speaker 4: So then like the standard library you use is not
Speaker 4: really standard library, but like you know, is basically just
Speaker 4: the union of what your dependency issues.
Speaker 3: So super flexible, super easy, and yeah, so we just
Speaker 3: bang through all of it.
Speaker 4: We have all the noe gs once, but then because
Speaker 4: it's like there's no cost to adding anything. There's no
Speaker 4: like committee where we have to discuss is this worth adding?
Speaker 4: Is this like going to make it to blow it?
Speaker 4: We just added because you can just choose not to
Speaker 4: use it. We also added all kinds of our stuff,
Speaker 4: so we have for example, like you know, database bindings
Speaker 4: to rocks top if you like that, we use that
Speaker 4: a lot boomed on.
Speaker 3: You can just import us anything else.
Speaker 4: I think we have some Bluetooth stuff now also, and
Speaker 4: all the things, like all kinds of things. I know
Speaker 4: we're working on some USB you know, interaction libraries also
Speaker 4: with USB sticks and stuff. So because there's no now
Speaker 4: that as soon as that cost goes away from maintainability
Speaker 4: and stuff, it's just basically all of a sudden, by doing nothing,
Speaker 4: you can do more, which I think is really.
Speaker 3: The key to everything.
Speaker 1: Yeah, I find I find that kind of interesting just
Speaker 1: from the standpoint of you know, like I said, I
Speaker 1: primarily do Ruby, but you also see it with Node
Speaker 1: and butN and some of these other things where yeah,
Speaker 1: they have a standard library. You know, whether they think
Speaker 1: about it that way or not, you do you get
Speaker 1: all this functionality in the language that they've added in
Speaker 1: to make it useful. But yeah, when you start really
Speaker 1: thinking about a standard library, especially when the standard library
Speaker 1: gets large, then that then it's okay, how does this
Speaker 1: interoperate with all eight zillion other things that the the
Speaker 1: system does? You know, does it add overhead to installation
Speaker 1: right to the app size? Does an ad overhead to
Speaker 1: the you know, running things and doing things, and do.
Speaker 2: I have to check this in order to run that?
Speaker 1: And so yeah, you know, just having those you know,
Speaker 1: you still do that with I'm sure with your modules.
Speaker 2: But the difference is is.
Speaker 1: That I'm only pulling in the handful of things that
Speaker 1: I need, and so those are the only things I
Speaker 1: really have to worry about. And then it keeps my
Speaker 1: app size small right when it bundles the app and
Speaker 1: all those things, And so I can imagine that, Yeah,
Speaker 1: that it definitely has its payoffs. And to me at least,
Speaker 1: the thing that stands out here is what we're discussing
Speaker 1: is not should you.
Speaker 2: Use bear all the time?
Speaker 1: It's hey, where does this really come in and brings
Speaker 1: a host of benefits and where maybe you still want
Speaker 1: to use node or bun or something else that kind
Speaker 1: of has the fully functional thing or in the case
Speaker 1: of like React Native, right, You're you're going to do
Speaker 1: a whole bunch of the UI stuff in React Native,
Speaker 1: and then you're going to hand off the things that
Speaker 1: make sense to to pair or to bear sorry, and
Speaker 1: then you're you're also probably going to be working through
Speaker 1: some of like the API calls and stuff that you
Speaker 1: typically do on a mobile app anyway, and probably keep
Speaker 1: all of that and React Native and so as it
Speaker 1: comes together, it makes sense.
Speaker 3: Yeah, exactly.
Speaker 4: And I think actually it's interesting to think about you
Speaker 4: said read Native. I think UI development it's almost like
Speaker 4: the complete opposite of what I said.
Speaker 3: I think in the UI development you want to.
Speaker 4: Have a lot of stuff being given to you because
Speaker 4: UI is really stateful by the time, like you know
Speaker 4: that spots and stuff. You want to not style those.
Speaker 4: You know, you want things to look based on the device.
Speaker 4: You want to have that give into you. It's a
Speaker 4: whole different thing. But this this model really really shines
Speaker 4: for like, like you said, classic bag and development. It
Speaker 4: shows that we do we don't We kind of like
Speaker 4: just want to get a bit of the definition of
Speaker 4: BAG in development just say, well, it's like a worker.
Speaker 4: It's like how you do your application logic always something
Speaker 4: interesting about thinking about Chrome, Like you said, they're also
Speaker 4: I think because Chrome to some degree does the same thing,
Speaker 4: right because Chrome, sure ships will wear part to see
Speaker 4: in these things, but the ship it's pretty minimal. Still
Speaker 4: like there's some stuff in there, but it's pretty minimal.
Speaker 4: It's very like it doesn't change a lot. It's a
Speaker 4: big process to change it.
Speaker 3: When you.
Speaker 4: Update your browser, Chrome doesn't ask you, It just updates it.
Speaker 4: Because Chrome comes with it comes with a guarantee that
Speaker 4: that doesn't matter. They're not going to break things going forward.
Speaker 4: The reason they can do that is because of that contract.
Speaker 4: Ask anybody who has ever upgraded on no jazz per program,
Speaker 4: and again this is not your no jets at fault.
Speaker 4: It's just like something that happens for software. That's every
Speaker 4: time you upgrade a major is like incredibly anxious because
Speaker 4: you're like, you know, it's probably gonna break at that
Speaker 4: worst possible time because something that that API I used
Speaker 4: has change slightly. Right if you instead say, well, the
Speaker 4: run time's come with nothing, it's free jog wade because
Speaker 4: it's the same as the comium.
Speaker 3: It's never going to break anything.
Speaker 4: So we aggressively upgrade our bare run time every day
Speaker 4: just to get that latest V eight, get those latest
Speaker 4: things in because those guys are insane, they're shipping things
Speaker 4: all the time. So we are always on the latest,
Speaker 4: latest V eight because there's no cost to that. It's
Speaker 4: not going to break anything like those they have contract
Speaker 4: nailed down. That just means that you can again also
Speaker 4: just ship things fast to iterate fast, so you're not
Speaker 4: stuck in that upgrade anxiety. You can kind of park
Speaker 4: old code just as being old and just bump those majors.
Speaker 4: So if we want to, if we want to make
Speaker 4: a better design for fast systems like only support promises,
Speaker 4: we just do that. We don't think about it. Uh
Speaker 4: and and just and just finally, like you said there, Yeah,
Speaker 4: I'm a big you know again, big fan of no js,
Speaker 4: A right tons of no js. I think no JAZ
Speaker 4: has a big place in the world always. I haven't
Speaker 4: used much of JR ones because I'm I'm a classic person,
Speaker 4: but I do think, like even saying that, I think
Speaker 4: the entire in.
Speaker 3: My opinion.
Speaker 4: Back in development can't go towards this like small core model.
Speaker 4: I think that is the future. It's a little bit
Speaker 4: harder to market it's harder to talk about, but the
Speaker 4: benefits just greatly outweigh the disciplines.
Speaker 2: Right.
Speaker 1: So you we've kind of talked about mobile, and I
Speaker 1: think that back end story is pretty well understood because
Speaker 1: you know, if you're writing note or something else for
Speaker 1: your back end, you know that this can sit in there,
Speaker 1: next to it, or in place of it. My question
Speaker 1: is you also mentioned desktop, So what does this look
Speaker 1: like on the desktop.
Speaker 4: So, so the cool thing is it's the code always
Speaker 4: looks the same because it's just Bear code we have
Speaker 4: on desktop. We have and if you go to our
Speaker 4: website bearpairs dot com, we have an installable CLI. That
Speaker 4: installable c cli is actually just our compilation of bears
Speaker 4: is just like a basically kind of like as minimum
Speaker 4: of a bill of v age you can get with
Speaker 4: this module system.
Speaker 3: So that's the Bear thing.
Speaker 2: And Bear is b A R E like naked, not
Speaker 2: b E a R like.
Speaker 3: Somebody called it the bear naked one time.
Speaker 1: I kind of like that.
Speaker 4: So, and our logo is a bear like a ror
Speaker 4: or bear. Just to make everything more confusing, we like
Speaker 4: we like to to be smart ass. So you stall
Speaker 4: that one again, you just you can just install it
Speaker 4: every day, get the neatest one because nothing will ever
Speaker 4: break and it's really good, really powerful. And the cool
Speaker 4: thing is then if when you want to like package
Speaker 4: your app, because this is all self contained like that,
Speaker 4: you can you can even do stuff like compile it,
Speaker 4: compile this into a single binary because when there's no
Speaker 4: standard library and there's nothing in that.
Speaker 3: Becomes really easy.
Speaker 4: If we have some examples and that on the website
Speaker 4: for how to to compile it yourself. Just get a
Speaker 4: binary art like you would go so you can have
Speaker 4: your entire program and one thing, or you can embed
Speaker 4: it in other things. For our peer to peer run
Speaker 4: time pair, we actually ship our version of pair which
Speaker 4: is just the same thing just embedded into another thing,
Speaker 4: because you don't want to ship like many binaries that
Speaker 4: it's really hard, and that just becomes really easy, and
Speaker 4: you can even do things like so it's like it's minimal.
Speaker 4: It doesn't support typescript because of minimal, but you can
Speaker 4: easily just go in and make your own distribution that
Speaker 4: just supports typescript by adding that in into the into
Speaker 4: the into the thing. So it's really really flexible and
Speaker 4: it sounds really good, and it sounds too good.
Speaker 3: To be true.
Speaker 4: The only reason is too good. Only reason that that
Speaker 4: is the case is because it does nothing. So it's
Speaker 4: very to support all the things when we do nothing,
Speaker 4: it's very hard to do anything, do anything. Just all
Speaker 4: at least to do is support those like what you're loading,
Speaker 4: which is again is a hard problem, but at least
Speaker 4: it's like much easier than doing all kinds.
Speaker 1: Of Right, So if if I were to I guess
Speaker 1: the question I'm wondering about, because yeah, it sounds like
Speaker 1: you distribute it mostly the same way. Right, you embed
Speaker 1: the run time in whatever it is you're shipping, and
Speaker 1: then it right.
Speaker 2: It just runs, it does what it does, or it does.
Speaker 1: What you loaded in on a module and then called
Speaker 1: so on a desktop app, what what kind of UIs
Speaker 1: can people put on it?
Speaker 2: Because sure, I mean yeah, so.
Speaker 4: On a desktop ap if you want. It's kind of
Speaker 4: like the same story on desktop in general. As like
Speaker 4: something like no, it's like it's not it's not a
Speaker 4: r I framework. You can we actually have a native
Speaker 4: EI framework we build that just binds to like native UI,
Speaker 4: but our just to do an experiment. It's not something
Speaker 4: people should do just to see. Can you actually make
Speaker 4: adiplication that just would load things, so you would if
Speaker 4: you wanted to make like an actual desktop app, you
Speaker 4: would probably use our Pair framework for making Peter peer
Speaker 4: apps because that's actually what it does. It actually just
Speaker 4: embeds bear as UI libraries and uses bare to load.
Speaker 3: Peter Pier things. But you can do whatever you want.
Speaker 4: It's basically similar in a flow to like making an
Speaker 4: electron app if if you know that, but you can
Speaker 4: also make native apps with that. You can also do
Speaker 4: the same tricks. I don't know if our tooling works
Speaker 4: with yet, but that's definitely on our roadmap to do
Speaker 4: like a desktop rag native app that uses Bair. Also,
Speaker 4: like we wanted to, it's very easy to invest if
Speaker 4: we want to embed it everywhere. Like I said, we
Speaker 4: launched it last week, right, so so we have a
Speaker 4: long road map. But again by doing very little, we
Speaker 4: have a lot of time to do a lot of
Speaker 4: other stuff. And like this project is moving crazy fast
Speaker 4: every day, so it's super cool.
Speaker 1: Right So I can install Pair and it has UI
Speaker 1: libraries that I can use that probably what do they
Speaker 1: bind into native?
Speaker 4: They do so you can bin into anything if you
Speaker 4: wanted to. For modules, the modules we have right now
Speaker 4: just because that's easy, Like, so it's kind of like
Speaker 4: an electron like experience.
Speaker 2: I got you. So I can bind to Nome or Katie.
Speaker 2: For Linux, I can bind too.
Speaker 3: I don't think there is binding for mac os exactly,
Speaker 3: and like.
Speaker 4: Probably a lot of those bindings have to be made
Speaker 4: for Bear like I like you have to make like Gluco.
Speaker 3: That's something we're working on.
Speaker 4: But like the program myself supports that we have something
Speaker 4: that the loads like just an electronic review because that's
Speaker 4: easy and that's what.
Speaker 1: Okay, that makes sense, and so then it plays the
Speaker 1: role of the back end for the electron exactly happen
Speaker 1: kind of the same way.
Speaker 3: That makes sense exactly.
Speaker 4: But we want to take this to the full scale,
Speaker 4: like you know, either write those bindings ourselves or the
Speaker 4: community can do it. But the foundations is there for now,
Speaker 4: and I think, uh, like I said in the beginning,
Speaker 4: I think for me, like the most exciting future for
Speaker 4: JavaScript in general is like actually that it doesn't really
Speaker 4: run the UI anymore, but it just runs all.
Speaker 3: The bag ends.
Speaker 4: Because I think that's for JavaScript ironically really shines. It's
Speaker 4: also good for front end, but it's especially good for.
Speaker 1: BEG yeah, it kind of started out doing the front
Speaker 1: end work, but it was almost a utility to make
Speaker 1: the front end do what you wanted. And so yeah,
Speaker 1: I can kind of see that and I can definitely
Speaker 1: see where it shines on the back end. So so
Speaker 1: so what's next for for bear.
Speaker 4: Just honestly, just let me just turn on the light
Speaker 4: you because see it gets come and the mind.
Speaker 3: And gets.
Speaker 4: So next for us is it's actually really simple because
Speaker 4: we have the the API now right.
Speaker 3: It is the module system.
Speaker 4: So for us, every time we shift something, we're just
Speaker 4: making it faster and better, making more modules. For example,
Speaker 4: I think a really cool success. Sorry to how to
Speaker 4: under stand this stuff is like this is a little
Speaker 4: bit nerdy maybe, but like when you write things like
Speaker 4: native add ons in with V eight and we use
Speaker 4: VA mostly. Again, we can run on any engine, but
Speaker 4: we'd like to use the eight because it's just a
Speaker 4: good engine. For sample, if you wanted to do some cryptography,
Speaker 4: you usually make bindings for a cryptolibrary because you don't
Speaker 4: want to do that JavaScript you call. Those people don't
Speaker 4: realize that calling from JavaScript normally in these engines into
Speaker 4: like a native library has a cost, Like there's a
Speaker 4: transaction cost here because it has to Google between engines,
Speaker 4: and that cost means that it's actually harder to program
Speaker 4: for it, because it means that native code you call
Speaker 4: has to do more stuff to be worth it.
Speaker 3: So if like you can imagine if you just made a.
Speaker 4: C program that just added two numbers, if that cost
Speaker 4: is high, then it's not worth it, and then you're like,
Speaker 4: I need to do more. I don't like those limitations
Speaker 4: because it messes with how you think about programming. It's
Speaker 4: like you have like premature opianizations stuff. The engine that
Speaker 4: Google makes made a really cool solution for this called
Speaker 4: fast calls, which is like they have this API where
Speaker 4: you can do some native stuff and.
Speaker 3: Then you can actually make this basically free. That was
Speaker 3: very recently added.
Speaker 4: But because Bear does nothing else except this, the guys
Speaker 4: just decided to let's just write buying for this next
Speaker 4: post that through the module system, because again it's like
Speaker 4: super flexible, you can do it. And we just added
Speaker 4: that and that was all the in our app key,
Speaker 4: which is like using a bunch of these calls to
Speaker 4: do ciography because Pewter pew uses a lot of photography,
Speaker 4: Like all those calls became I think it was like
Speaker 4: the three X faster, but just like you know, shipping
Speaker 4: that one pathing, like no code changed, right, just like
Speaker 4: because the guys can just focus on this engine part.
Speaker 4: Every time you make the engine faster, everything becomes faster.
Speaker 4: So so for us, it's just about iterating even more
Speaker 4: and more of that stuff, like pushing all those bits
Speaker 4: out of these engines to make everything as fast as possible,
Speaker 4: stay on the very late as eights and then just
Speaker 4: like like I said before, expanding the module scope so
Speaker 4: we have more and more modules. We want to basically
Speaker 4: bind to everything we want to get like bindings for
Speaker 4: for like all those like cool eye libraryes you just mentioned.
Speaker 4: That's the cool project. We want to get that done
Speaker 4: and just help people build, then help people expand, and
Speaker 4: also at the same time like uh yeah, just make
Speaker 4: it run. And then we're very very serious abound actually
Speaker 4: deploying the stuff like two light bulbs and stuff in
Speaker 4: the future. I think that's like you know, we do
Speaker 4: peer to peer and peter peer means like connecting things directly.
Speaker 4: If you think about like smart homes and stuff like that.
Speaker 4: That's where that stuff is brilliant because you don't want
Speaker 4: to send all the data to Google or whatever, so
Speaker 4: running out and all your devices Peter peer stack. That's
Speaker 4: like the perfect worldface. So so we're pushing in all
Speaker 4: consideraction on this. But it's just really easy because it's
Speaker 4: it's so coop.
Speaker 1: So it's awesome, Right, I had another question, but I
Speaker 1: get so tied into what what do you do with this?
Speaker 2: I forgot where it was going with it.
Speaker 1: You said, hey, you can pull in these modules typically
Speaker 1: have to do like an NPM install in order to
Speaker 1: get those things. And you said that you can use
Speaker 1: NPM to get some of them, but for sort of
Speaker 1: the fundamental modules that kind of do the basic stuff,
Speaker 1: like the node level stuff, right, the file system, you know,
Speaker 1: whatever other things it has to do. How do those
Speaker 1: come in? Do you have a separate app store or
Speaker 1: they just you pull them in via NPM? Is there
Speaker 1: some other way or what?
Speaker 4: So, because we just so our module system again, I
Speaker 4: don't want to get tunerated, but our module system just
Speaker 4: follows the same contracts as the no modules. Because there's
Speaker 4: so many no modules, right, it's like amazing. It's I
Speaker 4: don't know if it is the biggest, but at least
Speaker 4: it's one of the biggest ecosystems and modules. So we decided,
Speaker 4: like why why we relivent that it's perfect or at
Speaker 4: least like the things that are not perfect. It's like Liverpool,
Speaker 4: So we just replemented the same thing, which means that
Speaker 4: if you install something from an MPM it normally works.
Speaker 3: The only real time it doesn't work.
Speaker 4: Is if it's like if that module is obviously requiring
Speaker 4: like the standard.
Speaker 3: Library like FS. But then you can we have this
Speaker 3: on our website.
Speaker 4: You can use a trick to have MPM map FS
Speaker 4: to our FS which is compatible on APIs right now,
Speaker 4: and then you can make things work. So our website
Speaker 4: has a list of all of our mirrored packages of
Speaker 4: standard libraries like you know f S and Node means
Speaker 4: disn't bear, but it's all just MPM modules. You just
Speaker 4: install them from MPM. You would add them to your
Speaker 4: package Jason. And then I think a really cool thing
Speaker 4: is that I think this is an AGMAS standard, but
Speaker 4: I'm not sure, but like the important map stuff in
Speaker 4: Node recently in package Jason, where you can kind of
Speaker 4: like describe I think this was added for Barser's originally,
Speaker 4: so we can say in this environment, load this packages
Speaker 4: and stuff like that that makes engineering for multiple run
Speaker 4: times really easy with NPM. And also note just so
Speaker 4: you can really easily describe in bear when loading this
Speaker 4: thing from bear load bear fs, but in nodeload fs,
Speaker 4: and then your program just becomes very runtime neutral, which
Speaker 4: is at least like the work on node end bear,
Speaker 4: which is like how you want to run things. So
Speaker 4: so yeah, so we just reuse all the existing infrastructure
Speaker 4: for that, because why not, it's awesome.
Speaker 3: There's a lot of it.
Speaker 1: Right, So if I want to use like the f
Speaker 1: S module, like just NPM install what bear fs, bear
Speaker 1: dash fs or something like that.
Speaker 4: Yeah, exactly exactly that, and then that's just like an
Speaker 4: open source library and like you know, it aims to
Speaker 4: be under pretend compared I'm sure there's slight differences here
Speaker 4: and there, but like and if you want to use
Speaker 4: like streams, we have the streams in limitation if you
Speaker 4: want to use et cetera, et cetera. So yeah, it's
Speaker 4: like again it's like, you know, there's a little hurdle
Speaker 4: that that's the cost of like doing like small core
Speaker 4: development like you have as the first step, and this
Speaker 4: is why people don't do it, because it's harder to
Speaker 4: market you have like that marketing piece that's first step
Speaker 4: is annoying, but that's how you get the flexibility. And
Speaker 4: we don't care about marketing. We just make this because
Speaker 4: it's really cool. So so yeah, so that's how we
Speaker 4: do it. And the cool thing is then if you
Speaker 4: want to install instead of some of the noticest of
Speaker 4: if you wanted to install a cool puture peer module,
Speaker 4: it's the same flow. So you learn this flow once
Speaker 4: and that's how you do everything. So how do you
Speaker 4: get like puter peer modules? How do you get it's
Speaker 4: per modules? How do you get whatever modules do you want?
Speaker 2: Awesome? All right, so.
Speaker 1: Yeah, I guess the last question I have before we
Speaker 1: do picks is if people want to learn more or
Speaker 1: they want to connect with you, or I mean maybe
Speaker 1: there's somebody out there who's like this sounds really great,
Speaker 1: sounds like you know what you're doing. I want to
Speaker 1: hire a whole punch to make my peer to peer
Speaker 1: app and I'm not going to do it myself.
Speaker 2: How do people get connected with you? For any ear
Speaker 2: and all of that?
Speaker 4: So if you go to the website, bear the pair
Speaker 4: of the com and I think maybe we can share
Speaker 4: that on the on the podcast and as a link.
Speaker 4: People don't hear my mumbling. But there's all kinds of
Speaker 4: contacts then there we we do we have so all
Speaker 4: so it's all open source misid licensing. We do everything
Speaker 4: they open on this in general. We have our chat
Speaker 4: up key where we do all our chats about implementing
Speaker 4: Bear and open their's links on the on the website
Speaker 4: to join those. You can actually just follow it in
Speaker 4: real time. I don't think you should hire us to
Speaker 4: make that. I think we should hire people to work
Speaker 4: on Bear so and on Peter Peers. Maybe that's going
Speaker 4: into your pick session, but like, please reach out if
Speaker 4: you're interested in working with this stuff. That's a very
Speaker 4: cool ecosystem. That's very viprant stuff going on. But yeah,
Speaker 4: join all the things there. We have a website there.
Speaker 4: The documentation is very light because it doesn't do much.
Speaker 4: We have a very active help and a small team.
Speaker 4: Cool thing about having a small team is that when
Speaker 4: you talk to somebody, it's like the pizza problem. You
Speaker 4: you can eat a pizza and the entire team can
Speaker 4: be in the room. So so when you talk to somebody,
Speaker 4: they probably know everything about it.
Speaker 1: Awesome, all right, Well I'm going to push us into picks. Now,
Speaker 1: if you not listen to the show, Picks is just
Speaker 1: shout out about stuff we like. I think most of
Speaker 1: the time it's not technology related, but that doesn't keep
Speaker 1: us from picking technology stuff when we like it. So
Speaker 1: I'm going to jump in and do a handful of
Speaker 1: picks here. My first pick is almost always a board game.
Speaker 1: And my friends and I last week we played a
Speaker 1: game called Colt Express and what it is is it
Speaker 1: actually has a train with cars that it's set up
Speaker 1: so it's like a three D train that sits on
Speaker 1: the table, and so you've got the locomotive and then
Speaker 1: you've got however many players there are basically put that
Speaker 1: many cars on the train. And then there's loot on
Speaker 1: the train, right, so there are little gems, there are
Speaker 1: bags of money, and there's a lock box in the locomotive,
Speaker 1: which is.
Speaker 2: Where the sheriff starts.
Speaker 1: And then what you do is you can move from
Speaker 1: the car you're into the roof. You can move laterally
Speaker 1: from one car to another. You can punch another player
Speaker 1: because all the players are robbers train rubbers. You can
Speaker 1: punch another player and that makes them drop loot, or
Speaker 1: you can shoot another player, and what when you shoot them,
Speaker 1: you add a bullet card to their deck of cards,
Speaker 1: And bullet cards are basically blanks, right, so they don't
Speaker 1: have an action associated with them. And when you take
Speaker 1: any of the other actions, you've played the card. And
Speaker 1: so when you draw a hand, if you've been shot
Speaker 1: a lot and you get a whole bunch of bullets,
Speaker 1: you just don't have as many options, and so you
Speaker 1: may wind up spending one of your actions to draw
Speaker 1: more cards to try and get the card you want.
Speaker 1: And the way it works is you go around the
Speaker 1: circle and everybody plays a card and there are different
Speaker 1: sequences that you can play that maybe they allow you
Speaker 1: to play two cards in a row instead of just one,
Speaker 1: or you know, they allow you to place it face
Speaker 1: down instead of face up, right, because if everyone's playing
Speaker 1: face up, you can sort of plan for what's coming, right.
Speaker 2: It's like, Okay, I.
Speaker 1: Know they're gonna move here, so i'm gonna move there
Speaker 1: and I'm gonna punch them kind of thing.
Speaker 2: Right.
Speaker 1: So, but if you're playing face down, right, then you
Speaker 1: have an advantage because it's it's anonymous. Of course, everybody
Speaker 1: else plays face down anyway, So then what you do
Speaker 1: is once everybody's played for the whole round. So there's
Speaker 1: usually you go around the circle like three or four times,
Speaker 1: then you flip them over and you just play it out.
Speaker 1: So you know, you play my card and I move,
Speaker 1: You play his card and he shoots, you play his
Speaker 1: card and right, and so anyway, it's a lot of
Speaker 1: fun board game. Geek waits it at one point eight three.
Speaker 1: I tell people that two is about as complicated as
Speaker 1: the casual gamers really get, sometimes a little bit more,
Speaker 1: but two is about where it has enough complexity to
Speaker 1: make it fun, but it's not so complex that that
Speaker 1: the people who aren't avid gamers are not gonna want
Speaker 1: to play it. So anyway, so this was a one
Speaker 1: point eighty three so it's reasonably simple game. But yeah, oh, also,
Speaker 1: the each player has a character that they're playing, and
Speaker 1: those characters have special abilities. Right, So the one I played,
Speaker 1: when you punch somebody and make them drop loot, you
Speaker 1: can catch it, right.
Speaker 2: You don't have to spend an action to pick it up,
Speaker 2: you know, on your next for your next move.
Speaker 1: Other people like one guy had such a powerful shot
Speaker 1: that it moved a person back a train car or
Speaker 1: I mean all kinds of stuff.
Speaker 2: So anyway, lots of fun. My buddy had the.
Speaker 1: What was it, like a super box or something, and
Speaker 1: so I had two expansions in it, and the expansions
Speaker 1: allow you to play this is typically two to six players.
Speaker 1: His expansion would allow you to play up to nine players.
Speaker 1: So anyway, way, fun game. Highly highly recommend it. It
Speaker 1: came out in twenty fourteen, so it's not a new
Speaker 1: game by any means. But anyway, really really enjoyed that.
Speaker 1: As far as other picks go. Finished in nineteen twenty three,
Speaker 1: it's the Yellowstone spin off. I really liked Yellowstone, so
Speaker 1: I watched eighteen eighty three, which was the first spin off,
Speaker 1: right kind of the origin story of the family, I
Speaker 1: have to say.
Speaker 2: And it was Tim McGraw and Faith Hill.
Speaker 1: Where the parents of that one, which you know, I
Speaker 1: grew up listening to country music. So I enjoyed that too.
Speaker 1: Eighteen eighty three was terrific. E twenty three was even better,
Speaker 1: and they're both better than Yellowstone. And I really really
Speaker 1: really like Yellowstone. So if you're looking for something to watch,
Speaker 1: some Paramount Plus and so I'm going to pick that.
Speaker 1: Speaking of Paramount Plus, one other thing I just figured
Speaker 1: out is that I didn't realize that Champions League in
Speaker 1: Europe was running, and so then I was asking questions
Speaker 1: like how do I watch it? And apparently those are
Speaker 1: on Paramount Plus in the US. I'm gonna go watch
Speaker 1: the finals whenever those are on.
Speaker 2: And then.
Speaker 1: They also carry Serie A soccer from Italy, so I'm
Speaker 1: excited about that too.
Speaker 2: So I think.
Speaker 1: That's mostly all I've got, So Matthias, why don't you
Speaker 1: go ahead and give us some picks?
Speaker 3: Cool?
Speaker 4: I was actually looking at that Yellowstone show because I
Speaker 4: haven't I don't get a lot of time to watch
Speaker 4: shows anymore, but I thought that one and I was like,
Speaker 4: that's interesting.
Speaker 3: Kind of what kind of genre is that? Actually? Is
Speaker 3: that like sci fi?
Speaker 1: Or it's a Western? But it's a modern Western. So
Speaker 1: the premise of the show is there's there's a ranch
Speaker 1: that takes up like half of Paradise Valley in Montana,
Speaker 1: and it's all owned by one family and it's been
Speaker 1: owned for like one hundred and something years, and there
Speaker 1: are all these people who are trying to get a
Speaker 1: piece of it right, so that the Native American tribe
Speaker 1: that's there right, they do all this stuff to like
Speaker 1: steal cattle in a way that's you know, semi legal
Speaker 1: from the ranch. There's they're like developers that want to
Speaker 1: build stuff and that affects the ranch. At one point,
Speaker 1: eminent domain is claimed and so they actually take some
Speaker 1: of the land to build an airport, right, and so
Speaker 1: they're trying to fight back to keep their ranch. And
Speaker 1: so I'll warn you it does get a little bit violent.
Speaker 1: Sometimes there's definitely language, there's a little bit of nudity.
Speaker 1: If none of that's going to bother you or turn
Speaker 1: you off, then it is a terrific show. Some of
Speaker 1: that does bother me, and I kind of wish that
Speaker 1: it was on vid Angel. I think some of the
Speaker 1: older seasons are vid Angel will actually let you, like
Speaker 1: you can say, don't show me any of the nudity,
Speaker 1: or you know, it'll cut the sound for the words
Speaker 1: you don't want to hear the curse words. But anyway,
Speaker 1: it's it's a really really good series.
Speaker 2: I really enjoyed it.
Speaker 4: Nice I check it out. I actually I love watching
Speaker 4: a good Western. I watched what's that show Darkwoard or
Speaker 4: something I can't remember that's like this, let's not call that.
Speaker 3: There's this.
Speaker 4: Big famous Western series. I watched them. I think I
Speaker 4: was in Netflix a while ago.
Speaker 1: But yeah, yeah, so most Westerns are like Old West Westerns,
Speaker 1: and this one gets into like state politics and yeah,
Speaker 1: there's plenty of shooting and horseback riding and wrangling cows
Speaker 1: and all that too.
Speaker 3: But yeah, anyway, nice, Yeah, I don't, like I said,
Speaker 3: I don't.
Speaker 4: Unfortunately, I don't get to watch a lot of TV
Speaker 4: right now, but because I've been working really hard on
Speaker 4: this kind of stuff. But I do when I had
Speaker 4: some down sign So I'm a huge history buff and
Speaker 4: anybody who knows me were really tired of the fact
Speaker 4: that I'm very, very big medieval history nerd. I read
Speaker 4: everything from my year one thousand to like twelve hundred.
Speaker 4: I don't know why this triggers me in a nice
Speaker 4: way of because it's like a if you don't know
Speaker 4: about history, it's kind of like we basically don't know.
Speaker 4: We know about the Roman and paranoia stuff, and then
Speaker 4: there's like a basically there's like a gap because of
Speaker 4: all the the changes in times, and then around year
Speaker 4: thousands when things actually start getting getting done against it
Speaker 4: as good good records around that, and I recently this
Speaker 4: is super nerdy. But I recently went on like a
Speaker 4: deep dive on on Southern Italy medieval history and I
Speaker 4: read a really really good book series by I think
Speaker 4: it's an English author, John Julius Norwich, and it's very
Speaker 4: old books from like the sixties, but he writes this
Speaker 4: amazing trilogy about like Sicilian history in the Middle Ages,
Speaker 4: and it's it's interesting if you're very nerdly and you're
Speaker 4: into that kind of stuff. For me, so I don't
Speaker 4: read a lot, but that the kind of book where
Speaker 4: I just started reading. I couldn't stop and I ended
Speaker 4: up actually just almost buying everything that I made because
Speaker 4: it's really good. I don't know, hopefully he's not controversial
Speaker 4: or something because I just I just read the books,
Speaker 4: but really really good stuff, and it's it's like from
Speaker 4: a point in time where you know people move from
Speaker 4: different countries. Today we're very like like what is also
Speaker 4: to be mean to be American? What does it mean
Speaker 4: to be European? But basically in the Middle Ages, and
Speaker 4: this is like a communist conception, people actually just travel
Speaker 4: a lot and move from many places to many places,
Speaker 4: and people's from other places to all the places like
Speaker 4: southern Italy for me, as I'm from the Norrix, like
Speaker 4: it has like a history of like vikings and kings
Speaker 4: settling and like the Roman Empire's history and the Eastern
Speaker 4: Roman and all that clashing in like the Middle Ages
Speaker 4: and all those culturist mixtion and the Arabs and like
Speaker 4: becoming like a half of everything. And obviously you have
Speaker 4: the Sage, which is like has a bunch of history,
Speaker 4: but like that all went through there, so like it's
Speaker 4: just like that period for me is insanely interesting to
Speaker 4: read about because it's just like.
Speaker 3: Everything happening at once.
Speaker 4: And and yeah, you should check out that book series
Speaker 4: by the offer if you're into that.
Speaker 3: That's probably like one person out there that's gonna be like,
Speaker 3: that's awesome a lot to do that.
Speaker 4: And if you then if you're into that, just google
Speaker 4: those the stuff from that and you'll find all this
Speaker 4: like really nerdly really good YouTube content that people made
Speaker 4: on that about the history of like in Italy.
Speaker 3: So that's my.
Speaker 4: Minority pick for today. I'm I'm and if somebody has
Speaker 4: good recommendations of any kind of like other deep dies
Speaker 4: on that, I'm very interested on.
Speaker 3: That's my period. I'm very fixated on very very.
Speaker 2: Cool stuff, very cool. Yeah.
Speaker 1: I lived in Italy for a couple of years, and
Speaker 1: really which part of it, Mostly in the north actually,
Speaker 1: so you're you're talking about areas that I didn't see,
Speaker 1: but I live.
Speaker 3: In I live in the south of Switzerland.
Speaker 4: I live I live very close to to nominatally obviously,
Speaker 4: it's like ten minut rights.
Speaker 1: Yeah, so I I was a missionary there the furthest
Speaker 1: north I got was Portanone and Verona.
Speaker 2: But.
Speaker 1: Where I actually lived, but I mean we went up
Speaker 1: into Trento and Bolzano and some of those that are
Speaker 1: kind of up that way.
Speaker 4: So yeah, it's like that area obviously, you know, but
Speaker 4: like that's just so rich of all kinds of history
Speaker 4: or all places like the church and like the the
Speaker 4: peoples and you know different.
Speaker 2: Yeah, that stuff is all so fascinating.
Speaker 3: Yeah.
Speaker 1: Well, and you get into the eighteen hundreds when Italy
Speaker 1: formed as a country as we know it now. I
Speaker 1: mean again, there were still there were like three or
Speaker 1: four kingdoms, and you know, I mean all all of
Speaker 1: the different fact factors that went into it. Yeah, there
Speaker 1: were people from the Church that played a pretty major
Speaker 1: role in Italy coming together as a country. Yeah, it's
Speaker 1: it's really really interesting.
Speaker 4: Yeah, it's kind of like again if you like, if
Speaker 4: you know, I think people like to you know, like
Speaker 4: you know, you read about the Romans and that kind
Speaker 4: of stuff, but it's like you can just you can
Speaker 4: keep diving and you can get more and more niche
Speaker 4: and like it's all these areas and yeah, and like
Speaker 4: with the Popes and also like the history of the
Speaker 4: South that's like a huge interlapt there and like with
Speaker 4: different massively important events that's basically shaped the entire history
Speaker 4: of the Western world.
Speaker 3: I think that's like insanely fascinating.
Speaker 1: So yeah, yeah, I don't I don't think people know that,
Speaker 1: like the popes had their own kingdoms down there for.
Speaker 2: Centuries. Yeah yeah, yeah, so very very interesting.
Speaker 1: And yeah, southern Italy especially Yeah, like you said, I
Speaker 1: mean they got invaded by everybody on the Mediterranean and
Speaker 1: some outside the Mediterranean, like you mentioned the Vikings.
Speaker 2: So I mean it's.
Speaker 1: It's interesting too because people from the from southern Italy
Speaker 1: actually look different from people from northern Italy.
Speaker 4: Yeah, it's like when you travel in Italy also, it's
Speaker 4: kind of like you can kind of food of food,
Speaker 4: you can sense when those boundaries, Like the food is
Speaker 4: very different than an Orthern food and like that's and
Speaker 4: like the Arabic culture in Sicily and like they have
Speaker 4: amazing you know, Arabic chocolate and things like that lighted. Yes,
Speaker 4: it's a crazy beautiful place and like, yeah, rich in
Speaker 4: history almost.
Speaker 1: Yeah, in some ways some of the stuff is homogeneous, right,
Speaker 1: So you know there are things that are generally true
Speaker 1: of Italy, you know, including within the food, but then
Speaker 1: every region has their own take on a lot of
Speaker 1: that stuff too, and so then it's it's okay, well,
Speaker 1: you know, they're they're making kind of the same dish,
Speaker 1: but they've got their own flair, right they put a
Speaker 1: different meat or spice or something else in it, or
Speaker 1: they eat it with a different kind of bread or
Speaker 1: you know. I mean anyway, it's it's really really fun
Speaker 1: and fascinating to get into the dialects very widely across
Speaker 1: the country. I mean, it's it's really really yeah, it's fun.
Speaker 4: If anybody's watching this, probably not, but like this, and
Speaker 4: like an executive producer and the Netflix or something, please
Speaker 4: make a show about that whole region about like those
Speaker 4: time periods. I'll watch all of it, right, right, yeah,
Speaker 4: it's really missing. It's a huge missing gap. And like
Speaker 4: this overproduction of all things, Like there's so many intense,
Speaker 4: you know, straight to TV movie amazing stories about us
Speaker 4: we like with the Pope and all that stuff, and
Speaker 4: at least somebody needs to make that.
Speaker 1: I think, yeah, absolutely, all right, well I'm gonna go
Speaker 1: ahead and wrap us up. But this was fun and
Speaker 1: I I I kind of love the meandering historical discussion
Speaker 1: that we it's I'm I mean, but I'm totally in this,
Speaker 1: not just for the technology, but for the people and
Speaker 1: the interests and and I feel like a lot of
Speaker 1: times we kind of forget to go beyond the technology
Speaker 1: into what makes the you know, the people in.
Speaker 2: The ecosystem just so interesting.
Speaker 1: So so yeah, so thanks for opening up on the
Speaker 1: stuff that you're interested in beyond tech, because that's fun.
Speaker 1: And uh yeah, we'll wrap up here until next time, folks,
Speaker 1: Max Max out