Episode Transcript
Available transcripts are automatically generated. Complete accuracy is not guaranteed.
Speaker 1 (00:05):
Hey, folks, welcome back to another episode of JavaScript Jabber.
This week on your panel's It's just Me this week
Charles max Wood. I'm also here with Aral Rocca Gomez.
Do you want to just introduce yourself, let people know
who you are and what maybe you're famous for that
(00:26):
kind of a thing.
Speaker 2 (00:29):
Yeah, sure, Hello, Well, yeah, I'm at all. I'm from Barcelona.
I love to contribute the open source, so I have
a lot of libraries and I try to contrude as
much as possible to open source.
Speaker 3 (00:42):
And the last seeing a Davy, it's a framework, Risa. Yeah,
that's the topic of awesome.
Speaker 1 (00:51):
Yeah, I got in, had started having a look and
it looks like it kind of does everything. So before
we get too far in, I did want to ask
why build another framework?
Speaker 3 (01:07):
Right?
Speaker 1 (01:07):
It seems like the running joke for a long time
was another day another framework kind of thing, So yeah,
why why create something new as opposed to just saying, oh,
here's how you're doing reakay whatever.
Speaker 3 (01:21):
Yeah, it's yeah, it's a little bit different than the
other ones.
Speaker 2 (01:25):
It's a it's a fully started framework, but it's not
like solid the start jes or or as spal kids
because all these frameworks, and really it's a top framework
from some front.
Speaker 3 (01:40):
The library like noj is using React a library, and.
Speaker 2 (01:48):
That's the same for next, but it's using bw aspal
Kit is using the spread et cetera. And in Brizil
we implement it in the other way. So we started
building the framework without any JavaScript from ten library and
the main goal at the beginning was to be possible
(02:08):
to create web applications without Java, skip playing code and
bringing all the power on the server. And here we
mix ideas from actually the makes that it's a great library,
and also ideas from server actions, but implemented in a
(02:30):
different way. And this was the first approach, but then
we realized that well, really be playing interactions also makes
sense in order to implement that. And one of the
things that we like in presides to use the web
platform as much as possible. And also we are transferring
(02:50):
hypermedia and the best thing to support this front and
part was to implement web components and but two in
a different way because we wanted that the developers can
write the components in an easy way, in the similar
way that they are breeding the server components with.
Speaker 3 (03:13):
Yeah.
Speaker 2 (03:13):
Yes, and also we are using signals for these were components.
So it is another idea of framework, so it's a
little bit different, but the main goal is that, for example,
if you have any commerce and almost everything are server interactions,
(03:37):
you can build it without any component. That is the
most powerful, more powerful thing, and then you have two
kill whites.
Speaker 3 (03:46):
That is the size of the RPC.
Speaker 1 (03:48):
Of right, So let's go ahead and start with where
you started, because you you mentioned that it was you know,
it had kind of the server what was it, server
actions and those kinds of things, and then yeah, you
brought in some of the ideas from HTMX. By the way, folks,
(04:10):
it's breeze a b r I s A. You can
find it at Breeza br I s A dot build.
But yeah, so, yeah, you want to explain how the
server actions work and how the HTMX ideas kind of
come in, and then we can move up from there
to the front end.
Speaker 3 (04:33):
Yeah sure, Yeah.
Speaker 2 (04:36):
In Briza, all the events on the server are server
actions and they are very similar that from ten events.
So you can capture not only on submit, also on click,
on a stroll, on double click, all the events and
also the propagation is working on the server components so
(04:57):
you can pass on a server component some event and
up on the parent of the server components this action
and the powerful thing here is that we move part
of the web platform on the server and you can
access to the to the event and you can access
(05:17):
to the event current target of value for example or
that attribute, or you can rest a form on the server.
In reality, the responsible to the shop is the RPC
or prison that all the code that the developers are
(05:39):
Britain executities on the server.
Speaker 3 (05:42):
So this is the powerful thing.
Speaker 2 (05:45):
And then we add some extra attributes from IDA from
a tetemis for example an indicator to handle pending the states.
Speaker 3 (05:57):
The rower states of this actions m H in a
easy way.
Speaker 2 (06:04):
Also, for example, if it's an input, we are supporting
at the bounds. If to support this the bounds on
the server. It's not the client, but it's written on
the server. And and also one.
Speaker 3 (06:21):
Of the the ideas of themics that we are supporting
is hyper media, so all the server actions are transferring
al but in a streaming okay, and but yeah, to
understand a little bit better, the how does improved if
(06:46):
we are thinking to the normal way to do a
server interaction with other frameworks. Normally, we are adding a client.
Speaker 2 (06:59):
Client to normalize the event, then realize, and then we
are calling some API endpoint. Then we are awaiting the
response of the server, and then we are rendering on
the client, also adding more client gode and in Briza
we change this approach so all the things happen on
(07:21):
the server and then you can decide if render the component,
render the page, or render another component in another place.
But all these things happen on the server and then
it's transferring to themilin and streaming and the users see
the changes much faster because it's the power of streaming
(07:42):
or that doesn't need to await the response to them
do this extra shop on the client.
Speaker 1 (07:49):
Gotcha? So how much faster are we talking? I mean,
I hate asking that question because it depends a lot
on what you're doing. But yeah, yeah, can you give
us a ballpark if you benchmarked or anything?
Speaker 2 (08:06):
To be honest, no, because now currently the current version
of Brisa, it's very experimental, it's not yet the one
to zero and for the field public version, we focus
a lot on all the ideas to be all these
ideas and now one of one of the idea is
to do all these major marks and also improve the
(08:29):
disperformance and all these things. So it's something that I
can tell you, but if you try it, Brisa, then
you're going to experiment that it's so fast.
Speaker 1 (08:37):
Yeah that makes sense. So yeah, a lot of the work,
it sounds like, is offloaded to the server. It's not
done on the front end. It seems like some of
the other systems that I've been playing with, like next
jay As for example, you brought them up a couple
of times, it does some of this, but it doesn't
a lot of the focus is still on the front end.
(08:58):
So how does Freeze balance that between what's done on
the front end what's done on the back end?
Speaker 3 (09:08):
Okay, yeah, but by the fault, it's server component.
Speaker 2 (09:11):
But in Briza, we don't like to say server components
and client component. But we are telling these people it's.
Speaker 1 (09:18):
More familiar for the understand the idea.
Speaker 3 (09:21):
But yes, but.
Speaker 2 (09:24):
Relative we like to talk about components that works on
the server but also in build time part because if
you have an esthetic side, you can do it with
with Brizia, but then the server actions is not going
to work. It's one of one of the things. But
then we are supporting these were components, and thee of
(09:48):
these were components is that is also powerful because it's
only three kilo whites including the signals itself, and we
with a lot of optimizations in thank it will be
as more timey as possible. And then if you have
hundred WEA components, it's not increase a lot, it's going
(10:11):
to decrease.
Speaker 3 (10:13):
Very very small.
Speaker 1 (10:17):
Yeah, that makes sense. So you're kind of optimizing for
how much information you have to send up to the client,
including your code, And I like that. I guess the
other question I have is how does it work as
(10:37):
far as like you know, storage and things like that
on the back end, right, are you counting on people
to use something else there to store stuff in a
database or use Firebase or something like that, or am
I completely missing something there?
Speaker 3 (10:54):
Yeah? This is okay, this is an important question. We
have support.
Speaker 2 (11:00):
Of course, you can use a database and it's not
a problem. But we are supporting a store on the server,
and this store lives on the request time by the fault.
So but in reality we understand it well. And really
there are two stores, one on the server code on
(11:23):
the server components and the other one in their components,
and then you can transfer some properties from the server
store to the client store.
Speaker 3 (11:35):
And this is powerful because then.
Speaker 2 (11:40):
After transferring some properties from one store to another one,
then on the on the actions and the sever actions.
Also you can modify this store and also we create
a new concept that is the action signals, because if
you modify this is store on the server action, then
(12:02):
the WAB components, the signals of the web components are.
Speaker 3 (12:06):
Okay or the changes.
Speaker 1 (12:09):
Yeah, that's nice. So what are you using for this store?
Is it kind of a proprietary thing or is it
you know, back it up on whatever database you want
to use, or how does that work?
Speaker 2 (12:22):
Well, this is store. This is a store on the server
is very useful for example, if you fetch something or
or you take something from the database on the top
level of the page and then all their components and
consumiting just access with a store for example.
Speaker 1 (12:41):
Yeah, I guess what I'm asking about is like the
longer term persistence. So I mean typically you see people
using like an r M with post resql or my
SQL or something like that. So does your store just
have some kind of interface to that where it's you know,
in the process of doing the store stuff also call
(13:03):
these callbacks that push stuff to the database.
Speaker 3 (13:09):
Uh. Then, well, this is a job that the developers
need to.
Speaker 2 (13:13):
Do, right, but then I can't do it, for example,
in our several action. Then they can access to the
store and save this value to the database, and then
on the initial render then they can do the same
job to the database and then incialize the store on
(13:33):
the middleware for example or in the page.
Speaker 1 (13:39):
All right, so on the front end, I saw some
stuff about web components, and I mean it, it seems
interesting to me. It looks a lot like React, and
that's probably on purpose. But yeah, so I guess I'm
(14:02):
wondering what the difference is.
Speaker 3 (14:04):
At the end of the day.
Speaker 4 (14:06):
Yeah, when we are writing these WA components, it looks
very very similar than React because this is it with signals.
Speaker 3 (14:17):
But then there are some difference. One of them is
that finally.
Speaker 2 (14:22):
They are the components and these custom elements exist on
the dome and for example, if you need to build
a form, you need to know the attaching technots, for example,
to expose this were component to be.
Speaker 3 (14:38):
Part of the form.
Speaker 2 (14:40):
And so there are some difference that we try to
improve the developer experience to be more familiar for the
developers in order to build these ware components. And the
good part also is that thanks to create this JAY
(15:02):
six component, then it's very easy to support the service
rendering of this work component thanks to the declarative shovel
bone on the server and also the type safe work
pretty well because we know the the props et cetera.
Speaker 3 (15:19):
And then.
Speaker 2 (15:22):
When the good part of briss that when you are
reading the x it's easy to identify if a component
is at component or a Ceber component because the web
component it's written as a crystal element and a Ceber component.
Speaker 3 (15:39):
It's like the free components with six and I prove
this developer experience.
Speaker 2 (15:49):
What we did is that when you are typing some components,
you can see all the components that you can consume.
And the difference here with the normal way to build
the components that the selector of this crystal element is
by based on the file name. So you have a
(16:11):
special folder. It is everything runs on the server except
one one folder, and this folder is the components folder.
And then each name of the each file it's a selector.
So if you have like a custom counter or whatever,
(16:31):
then is the selector of this crustal element.
Speaker 1 (16:38):
I'm not sure if I completely follow that. So, yeah,
you want to just kind of give me a brief clarification. Yeah,
I'm not even sure what to ask clarify.
Speaker 2 (16:57):
Yeah, okay, to understand it correctly. It's important thing because
if you are building a web component in Briza, then
if you want to use a component on a server component,
not that server component, use a component, you don't need
to do an import of the web component itself. So
automatically this custom element exists. And and to do this
(17:22):
relation between which were components you can consume on the
JASS is based on the name of the web component file.
Speaker 1 (17:32):
Okay, so it's it's doing some kind of autoloading and
intelligent discovery to know what what it's got and what's available.
And so yeah, you don't have to goport on every
single component.
Speaker 3 (17:52):
Yes, exactly.
Speaker 2 (17:53):
Yes, in build time, what we are doing is to
read all the folder of the web components. Then we
know the way components that can be consumed, and.
Speaker 5 (18:05):
Then when we detect someware component, it's uh importing Uh yeah,
this rapper to do this the cloud tip show long
of them, et cetera.
Speaker 1 (18:17):
That makes sense I mean, besides some of these uh
you know, optimizations for developer experience, which honestly, that one's
a big one for me because I'm always trying to
keep it straight. Okay, where is this I pull it in,
what do I have to do with it? What do
I have to know about it? And so if it
does all of that kind of a build time, then yeah,
(18:39):
there's a lot less a lot less concern for me
because I can just I just follow the convention and
just have it work.
Speaker 3 (18:52):
Yeah.
Speaker 2 (18:53):
One of the things that we wanted to do with
with this is to do like a sepparssion of concerns,
so that on the server components, all the importance is
for the server code, and then you can consume that
we're components as we're components that is just for some elements.
Speaker 3 (19:11):
And this was the bea basically Yeah, it makes sense.
Speaker 1 (19:17):
So I mean, do the components look and function basically
like React components or are there some differences that you
ought to be aware of that are going to trip
you up?
Speaker 2 (19:31):
They work on the as functions, so it's not working
as class. Ah well, it's very similar time.
Speaker 1 (19:40):
So what are the differences you're going to see I'm
assuming kind of the fundamental stuff all works the same.
Speaker 3 (19:45):
So the difference between that, so a React.
Speaker 1 (19:52):
Component versus a BRESA component.
Speaker 3 (19:57):
Okay, uh?
Speaker 2 (19:58):
Yeah, for example, in that we are not using capital
and we are not using renders, so they dated the
only happens one render and then thanks to signals, when
some estate change, that is some sub signal change is
reacting without ruining all the all the web component.
Speaker 1 (20:23):
So does that change the life cycle of the component then?
And do you have to be aware of some of
that stuff?
Speaker 2 (20:28):
Then all the mounting kind of mounting is working as
an normal component. But then updating this component is uh
is this signals approach?
Speaker 3 (20:42):
Yes?
Speaker 1 (20:43):
So then I guess my question is what's the primary
benefit to using Freeza instead of a reactor view?
Speaker 3 (20:53):
Is it?
Speaker 1 (20:54):
Is it the developer experience or you know, you also
mentioned the performance. Are those kind of the big reasons
why I might want to look at this?
Speaker 3 (21:07):
Yeah?
Speaker 2 (21:07):
It of course that when when when when I started
the prison, the main goal was what I said, to
build our applications without Java strip playing code, and this
for me is the most important part. For example, if
you have any commerce, and any commerce almost all the
(21:29):
interactions of sever interactions like ad item to the card
or also an infinite scroll. You can do it with
a server sever action in Briza. And and this is
the big powerful tool.
Speaker 3 (21:45):
The load in time be very very fast. And and
then also all the ideas of these surve reactions also
it's too improve this time also during this interaction thanks
to Attemli storm.
Speaker 1 (22:06):
I mean a few other things that I said.
Speaker 3 (22:07):
The developer experience no go ahead, Yeah sorry sorry. The
developer experience is very similar in really React.
Speaker 2 (22:15):
But then also for example, the developers needs to take
account that there are things that in really event is
all the client parties with components, so there are important
things that they need to know, like attach internal for
example as recommend before or the forums, et cetera.
Speaker 1 (22:37):
So one other thing I saw on here and I
kind of feel like I buried the lead here a
little bit because this is something that I know a
lot of people look for in whatever they're doing. But
it looks like you have built offerings for fun no Dino,
which kind of makes sense. But you've also got Android
iOS and desktop, So what is that look like?
Speaker 3 (23:03):
Okay, about the run time, the Jabski run time.
Speaker 2 (23:08):
At the beginning, we started only with band because ah,
when when I started to build Briza was with all
the banding. For example, we are not using bits. We
are using band or the build because it has some
powerful things like the macross that we like, and also
(23:30):
we have some features that thanks to these macros.
Speaker 1 (23:35):
But then if us fund to build it, can you
build it for Node and Dino as well without beat?
Speaker 2 (23:43):
Okay, yes, yes, yes, yes yeah, thanks to band, we
can build it also for Note and also or we
know we yeah, we are building. We are building from
a four note and also doing some abstractions to work
correctly with with you know, because we realize and also
(24:07):
things to feedback from people that we should support more
run times. And then we implemented Node and then finally
Dinner and also for the one dot zero version we
won't also improve the room time agnostic thing and also
support some clouds that we are not supporting now and
(24:30):
but this is a thing for the future.
Speaker 3 (24:33):
And then about the Android iOS or desktop thing. In reality,
what we are doing here is to.
Speaker 2 (24:40):
Support to integrate everything with touri okay in a easy way,
so that the developers with only one configuration can turn
your web application to an Android or adios or desktop
in easy way, and all these figuration is automatically by
(25:01):
the CILII of RISA.
Speaker 1 (25:05):
Yeah, I'm trying to find a link to Towery. Mhmm,
maybe I'm spelling it wrong.
Speaker 3 (25:20):
Yeah, it's always very powerful because it's a rast web
built or for the best stop.
Speaker 2 (25:27):
Application, and it's much powerful for example that Electron because
it's tiny and also.
Speaker 3 (25:38):
Mattering performance.
Speaker 1 (25:39):
Yeah, definitely, and I was spelling it wrong. It's it's
t A U r I for the folks that are
out there looking for it. Wait, some of these folks anyway,
So yeah, cool stuff. So when it does the the
build for the native apps for Android or iOS or
(26:02):
the desktop, you said it's faster than Electron, But does
it have a JavaScript run time in it? Is it
kind of like Capacitor or something like that, or Cordova
or is it more like React native or something like that.
Speaker 2 (26:21):
You can use native things thanks to Towery and Towery
you can do some buildings and then you can write
things in rest.
Speaker 3 (26:33):
All.
Speaker 2 (26:33):
The thing is documented very well in the Towery documentation.
So yeah, in Brisa, the only thing that here we
are doing is an integration that then the developers can
use in an easy way for that.
Speaker 3 (26:50):
But all the things are very native and you can.
Speaker 1 (26:55):
Yeah, makes sense. So are people using this today for
their applications? You said you're still working on it, but.
Speaker 3 (27:06):
Mm hmm. Yeah.
Speaker 2 (27:07):
Here one of the improvements that we want to do
for Android or idios, uh that is on the roadmap
of the one is to do two different builds, one
for the server part and the other one for the
execuitable not for the the Android rios, and then to
(27:30):
be connected automatically for these server actions.
Speaker 3 (27:33):
And well, yes your questions.
Speaker 1 (27:39):
So my question is do you have people actually using
prison now in production.
Speaker 3 (27:44):
Or uh huh. Yeah, now a few people it's using it.
But for example Albert that is one of the contributors.
Speaker 2 (27:56):
He has his company that is a travel agency all
with RISA, not only the public part, also the back
office with RISA. And yeah, but as I comment, curdly
is experimental preside zero dot and we put that we
(28:17):
don't recommend to use it in production. But of course
there are people that is using it, but almost all
the people is just playing with with with with it.
And also we are creating a great community in Discord.
Speaker 3 (28:29):
And there are some production projects, but I feel for now.
Speaker 1 (28:40):
That makes sense. So are you hoping that this, you know,
eventually gets to one dot oh and people can use
it in production? Or is this mostly an exercise to
just learn how to build something like this? Or I mean,
what are you hoping to get out of it in
the at the end of the day.
Speaker 3 (29:01):
Are you asking about one to zero programs?
Speaker 1 (29:05):
No, I'll ask about that in a minute. What I'm
asking about is where do you want this to take you?
Speaker 3 (29:10):
Right?
Speaker 1 (29:10):
So are you just trying to learn about how to
build things like these frameworks or are you hoping to
build a company around it? Or are you looking to Okay.
Speaker 3 (29:22):
Yeah, and I understand.
Speaker 1 (29:24):
Hey, I like to give conference talks about it, or
you know, my company that I worked for needed it.
So I just want to solve their problems. There are
a million reasons to do them. A lot of times
it's more than one, right, So yeah, I'm just curious.
Speaker 3 (29:42):
Now.
Speaker 2 (29:42):
And really one of the things is that all the
projects on my side projects I wanted to are using
this out. So my blog PA is with Riza, and
all the side projects that I want to do with
I want to do it with my own Okay, but
I'll so at the beginning when I started. Also I
(30:04):
liked the idea of learning by the way and and
also the idea of contributing to the web a little
bit better, so and bring my ideas and.
Speaker 3 (30:17):
I really did. This was the origin that why I
started in order to to to build prison.
Speaker 1 (30:24):
Gotcha. So yeah, what is on that?
Speaker 3 (30:26):
Also? Go ahead?
Speaker 2 (30:28):
Mhm no, just to comment that also thanks to Mincos
from from Angola and quick that he came to Barcelona
two years ago and and I talked with with him,
and I remember that he talked about week like his baby,
(30:51):
with a lot of passions and all these feelings.
Speaker 3 (30:54):
Uh. And then I remember that just at this moment I.
Speaker 2 (31:01):
Cameto my mind. Oh, I would like it to be
the framework, but it doesn't make sense to be the
framework without Aroma. And then it's when I started to
I tried the xtgs server actions and at the beginning
was wow. I like the DA, I like the via
of server actions and also devia of archademics, but I
(31:21):
didn't like how ter reactions is implemented in XTES. And
there are a lot of things that I think that
should be better implemented, but it's with a different part
of the part of time. So that I can't contribute
to an XTGS, and then I started writing my ideas.
Speaker 1 (31:42):
I have to say, one of the things that I
don't love about some of the things in next GS,
like server actions, is that some of them are a
little bit tricky to get running on your own. Just
to give you an idea, So I like to deploy
my own apps to my own server, and you know,
kind of live in that space. And I know people
(32:03):
think I'm crazy. It's like, just just deploy it to
vercell or just put it on the cloud, but I
want to set it up and run it, you know,
on on doctor containers wherever I want it. And some
of that stuff's just a little bit tricky to do
without the cloud infrastructure that's offered by evercell or netlefi
or something like that. And so that that's kind of
(32:25):
my hang up, the idea that there's a framework out
there that kind of has it built in and I
can just deploy however I want. I'm digging that. I
like that a lot. What is the deployment story for Briza.
Do you expect people to be using something like versell
or can you deploy it on your own?
Speaker 3 (32:46):
Yeah, we.
Speaker 2 (32:48):
Have an adaptor for Burcel then Albert that it's a
contributor that has his company with Briza, he is using
a closer. However, we don't have the adapter of clothes
or clover yet, so it's very working in progress. And
(33:10):
also you can use a doctor file with.
Speaker 3 (33:13):
Ban or with not or, but for now the only
cloud provider that we have some adapted it ourselves. But
in reality and then it's used a server.
Speaker 1 (33:26):
So so I could go set up just a small
droplet on digital or just say here's my code run
and it'll it'll run just fine.
Speaker 3 (33:42):
Exactly. Or if you decide yes, or if you decide
for example, the output as a static for example as
my blog, then you can't build it in any city
end for example.
Speaker 1 (33:56):
Yeah, I've seen that with a few of the other
frameworks as well, where yeah people do that and then
they deploy it like Amazon S three and then yeah
they can put a web server in front of it
really easily and then it just serves your stuff. So yeah,
very cool. So what is on the roadmap for one zero?
Speaker 3 (34:19):
The most important part here is to be a stable.
So now we are prioritizing all the issues that the
community is founding. So for now we are growing the
community and the goal is to to grow more.
Speaker 2 (34:39):
And also because we are interested that the people try
it RISA and found issues in order to fix that,
and probably this is the most important topic.
Speaker 3 (34:50):
But then also we have some dependency.
Speaker 2 (34:53):
For the navigation API that is experimental yet but it's
in the interrupt of these year, so probably this year
is going to be supported in all the browsers. And
because for the single pet application approach, we are using
it and we prefer to await in order to also
(35:16):
be stable this and then in the roadmap, the need
is to increase the adapters to be more room and
diagnostics also and I'm more.
Speaker 3 (35:29):
Aligned to two clouds.
Speaker 2 (35:34):
Also we need to create a Netlify adapter the closer
once and there are a lot of things to do
in these terms.
Speaker 3 (35:45):
And then also for the components, what we want to
do is UH is.
Speaker 2 (35:50):
Great mode like partial iteration, to that the developers can
decide that for example that the components UH is iterated
when it's visible for example or in elisible way, or
or by the fault that it is the nature. Then
(36:16):
also we want to support transitions that it is a
proposal from the community, because one of the things that
we did for this roadmap is we bring some ideas
that we want to do it yes or yes, because
at the beginning of the field roadmap, but we move
it to the next one. And then we asked the
(36:39):
community in discord and that they brought the proposals, et cetera.
And also, for example, there is a good proposal to
improve all the offline first things, and it's something very
interesting that we want to implement also, and also in
(37:03):
order to improve the developer experience, we also want to
improve some the current playground because the current playground on
the web site is working only for the components, but
we can improve that because and then for the developers
(37:24):
it's easy to play and see how it works. And
also in increment the number of examples we have so
examples that the developers can try it.
Speaker 3 (37:36):
But one also to.
Speaker 2 (37:38):
Improve and there are the most important part is to
improve the harder loading that we have because now it's
a little bit slow. It's fast because it's running with
bang and ban all the build process is very fast.
But currently one of the problems is that instead of
(38:02):
running only the files that change is building all the applications.
Every time, and if you have a very big website,
a web, a very big project, then unitize that it
is a little bit slower.
Speaker 3 (38:18):
And yeah, but now thanks to Band, they are improving
that and.
Speaker 2 (38:27):
Then implementing new APIs for watch files during this field process.
And also they are building a BAKE that is a
server framework of Band that improves a lot all these things,
and we want to integrate all these things.
Speaker 1 (38:48):
Cool. Was there anything else that we should get into
with Breeza.
Speaker 2 (38:57):
Well, when I recommend for the developers is to go
to the website is up build and here we have
examples that they can try in ex way, for example,
how to use.
Speaker 3 (39:13):
Sexual light in a ster reactions. And also one of
the things that we are supporting that I don't comment
is generators.
Speaker 2 (39:25):
So in order to have more control about the streaming
part you can we are supporting as in components but
also as in generators, and then you can decide each chank.
Speaker 3 (39:42):
Of the streaming and this is powerful.
Speaker 2 (39:44):
For example with a secular light of Band that is returning,
example for a list, it's returning in the streaming, so
then you can render this list in the streaming.
Speaker 3 (39:57):
And also your de developers can drive a playground and
play with is that?
Speaker 2 (40:04):
And maybe another topic, it's about international internationalization. Maybe you
can talk about it because brizge supporting internationalization, but not
all for the rotin part, so it's also supporting international
internationalization in order to translate all the content of the BASAs.
Speaker 1 (40:27):
So what's different about your internationalization because I saw it
on your website. But to be honest, and maybe this
is a naive take on things, but internationalization, I guess
it depends on the app, right, because some apps it's like, look,
I'm only building this for the US, I'm only building
it for English speaking audiences, and so I don't do
(40:48):
the internationalization. But if you're putting a product out there
that could be used across the world or even you know,
here in the US we have more and more people
speaking Spanish, right your branch into Canada, you hit French
pretty fast, right, So there are a lot of reasons
to do it, But it seems like table stakes to me.
For most of the apps that I'm building, it's like, Okay, well,
(41:10):
I want this to work for English and Spanish speakers
because they're in my market, right, and then as my
market expands, I can add in internationalization. For the other stuff.
So yeah, I guess I just kind of took it
for granted. But yeah, why why are you making it
first class? I guess is one question. And then the
other question is, yeah, what what are you doing there
(41:32):
that's different from maybe other things that I've seen?
Speaker 3 (41:37):
Okay, Yeah, Well, in international internationalization, the vaids to for
for CEO.
Speaker 2 (41:48):
In order to improve it's important to provide a different
en urils for each language you don't have, well, to
have more content content in different languages, and then the
Google and other searchers can get all the content in
different in different bases. And then for all the routine
(42:11):
we are supporting that exactly, the the isso and then
the name of the page, and also you can't translate
the page name. For example, in Spanish, about us can
be translated to sobers that it's the same in Spanish.
(42:34):
And you can define all these things in the Internal
Internationalization configuration and then it's automatically handled for by BRIZA,
so the developers don't need to do almost anything, so
it's very easy to intepret it. Also, we are supporting
(42:56):
a chair of lands, so if we know that page
is supported in different languages, then to improve the CEO,
we are supporting this tact and also.
Speaker 3 (43:09):
The lank attribute in the edgitment.
Speaker 2 (43:12):
This for one part that is all the routing part,
and then for translations we are also supporting our implementation
that it's a breach of the echmastry API the intel
and I did it in this way because before doing Brizia,
(43:35):
I have experienced with an open source library that is
next time to late that it's the most use the
library that I have.
Speaker 3 (43:42):
That it's internalization library for next years.
Speaker 2 (43:49):
And now CORD is used by a lot of people,
so it has like eight eighty thousand dollars per week and.
Speaker 3 (44:00):
Have a lot of time of years now.
Speaker 2 (44:04):
And when I did this library for many yes, I
see that there are a lot of things that I
can do in the library because I don't have the
control of the framework, and doing this integration directly on
the framework, then it's much powerful for to do for
(44:27):
the art lands, for translating the roots and.
Speaker 3 (44:36):
M and also then to bring on the client all.
Speaker 2 (44:40):
Of the keys and the cercies that we need to
consuming the component for example, instead of all the dictionary
and the code that is doing that. It's very funny,
it's eight eight hundred bytes, so it's less than one
(45:04):
killow white. And this is why we decided in order
to build our translational scene would be very very tiny,
and all the.
Speaker 3 (45:16):
Responsibilities like.
Speaker 2 (45:19):
Plualization, et cetera, and the responsibility to do that is
the ex masculad.
Speaker 1 (45:27):
Cool, very cool. Yeah, I have to say so. Most
of my development experiences, as most of the listeners already know,
is in Ruby on rails and they have built in
internationalization stuff.
Speaker 3 (45:40):
Right.
Speaker 1 (45:40):
You just provide the files that give the translations and
the keys, and it just does it. And it looks
like most yours mostly works the same way. It's hey,
you know this, this is the phrase for this, and
then it just does the thing, which is which is
super nice.
Speaker 3 (45:57):
M hm. Yeah.
Speaker 1 (45:59):
So you mentioned you did mention having a different u
URL for the different languages. Do you just expect that
in the Oh yeah, it looks like it's in the routing.
You could also do like yeah, domain routing. Yeah, so
it looks like you have all of that, and then
it also does the automatic locale yes detection. And so
(46:22):
if I've got mine my browsers set to US English,
you know, or sometimes I get a wild hair and
I'll do Italian because I speak and read Italian fluently. Right, Yeah,
this is a lot of.
Speaker 2 (46:39):
H I mean if he's not if it's a language
that is not supported, then it's logging the old.
Speaker 1 (46:44):
Which makes sense. So you mentioned that, you know in
the documentation on here is it looks like it's pretty thorough,
you know, And you've also mentioned that, Yeah, you do
your blog, which is static, and then you know the
other guy is using it for his travel agency, and
(47:04):
so it's actually probably managing data and images and stuff
for people who want to travel. Let's say I decide, okay,
you know what, I'm going to go build something in
Breza and just see how it goes. And I mean,
where do I start? Do I just start with getting
started on the documentation? Should I join Discord? Follow you
(47:27):
on Twitter? Are there other places?
Speaker 3 (47:32):
Yeah? If you are to the get the start of
the recommendation, you can see that it's only one comment,
a comment that it's the band Great Prison, and then
you kind of start.
Speaker 1 (47:44):
With so I have to use ban some project.
Speaker 2 (47:47):
But okay, yes, one of the things is that you
need you need bud for all the tooling part, and
also you can go to the campos, and then you
can try an example also with only one comment and
you can say like band great prison, and then we
have a flag that is an example, and then you
(48:11):
can put the name of the example and unload.
Speaker 1 (48:13):
It makes sense.
Speaker 3 (48:17):
And also also we invite the people also to join
to discord and any do anything.
Speaker 2 (48:27):
You you can talk on the on the general channel
and we are mum hm, well, we are responding very fast.
And also we like uh in the interaction and feedback there,
so feel free.
Speaker 1 (48:45):
Good deal. I don't know if I have anything else.
Was was there anything else that you wanted to hit
or should we just move on to the last part
of the program.
Speaker 3 (48:59):
I think we talked a little bit about everything. Of course,
there are a lot of topics and there are a
lot of topics that we didn't talk about it. But
for example, about the layout, all the structure of the pages,
and I want to comment that it's very inspired with
(49:21):
nextges and the pages folder. So it's how we are
defining the pages. And then also we are supporting more
things like suspense or UH an error not if you
have some error on the server component.
Speaker 2 (49:41):
It's it's implemented in a different way than Next years.
Because why in React, because it's not boundary that it's
not a ropper. It's like different phases that the component has.
So for example, there're sin component has like appending the
state that this is bands and then this error and
(50:03):
in order to define them. It's a little bit different
than than React. Also, we are supporting mid al ware
web sockets, so we are supporting a lot of topics.
But what I invite the developers is to go to
the documentation ry. It alsopp forestyles we are supporting ah uh.
Speaker 3 (50:31):
Also tail wind. We have an adapter for for tail
wind and also another adapter for the CCS. Also you
can use ccs in a normal way. Also we are
supporting CCS models and well but yeah, I invite the
people in order to try it, and yeah.
Speaker 1 (50:53):
Very cool. All right, Well, the last part of our
program is picks and picks are just shout outs. It's
an idea I actually stole from a podcast I don't
listen to anymore twit dot TV. I'm not going to
go into why I stopped listening to them, but I
(51:13):
like the idea, so I borrowed it. Incidentally, I'm looking
at borrowing some other ideas from another show I'm listening
to now. But picks is just shout outs about stuff
that you like. So a lot of times people do
like I do board games every time, right, so I'll
do a shout out about a board game, and then
(51:35):
but people do TV shows, they'll do technology stuff too, right,
so they'll pick, Hey, I really like these computers, or
I really like this library or whatever. So I'll go
ahead and do my picks, and then you can go
ahead and throw in anything that you want to make
sure people check out. So my first pick is a
board game. What we played last week with my buddies
(51:59):
was Heat, and I've picked before, but Heat is a
car racing board game. I'm not going to go into
all the details, but the main component of it is
that you're trying to get You're trying to win the race,
and so whoever gets the furthest past the finish line
(52:20):
on the last turn wins. And I guess there's a
campaign mode that I haven't played, where you do multiple
races and then you know, as you win the different races,
you actually get winning money that you can spend to
upgrade your car. But the trick of the game is
(52:41):
that you have heat in your engine, and if you overheat,
then your car spins out and you you have to
go back. And so typically what it is is that
you're taking a turn and then there's a speed limit
on the turn, and so if you move too many spaces,
(53:04):
every space you move past the speed limit on that turn,
you take heat into your playpile, into your discard pile actually,
and so then you shuffle your discard pile and you
have all that heat. But if you run out of heat,
you can't take any more heat out of your engine
into your hand, into your deck, then you spin out
and you go back to a line on the curve
(53:27):
and so and then you have to still pass it
with that speed limit. And so the trick is is
getting as far around that curve and then managing the
heat as you go through the next two or three curves. Right,
most of them have a long stretch where you can
you know, you can do some things to recover heat,
or sometimes you can do other things to recover heat. Anyway,
(53:50):
and you know there's some variability in your speed and
stuff like that. There are cards that make it a
little more randomized. You're not always playing numbers that you picked.
But anyway, it's a super fun game. I think we
played it in about forty five minutes to an hour.
There were five of us, and so yeah, I'm going
(54:10):
to pick Heat and then yeah, as far as other
things go, I figured out that nineteen twenty three is back.
So that's one of the Yellowstone spin off TV shows.
It's got Harrison Ford and Helen Mirren in it. I
don't know that any of the other actors or actresses
(54:31):
or people that I could just name off the top
of my head that oh they were in this thing
that I also really liked, but it's it's a really
good show. A little bit of a warning there's some
nudity and some language that said. Another pick if you're
if you want to wait for that kind of thing
to be taken out is vid Angel, and so you
(54:52):
can go sign up for vid Angel. Aroll is in Spain.
I don't know if they offer it in Spain. I
know they offer it in the United States. They're actually
based here in Provo, which is not too far from me.
But what they do is is you can load it
up works with Amazon Prime, and then I think if
you have your other subscriptions for like HBO or Paramount
(55:15):
plus or whatever on Amazon Prime then you can watch
some of those shows. Also works with Netflix, and the
way that they do it is they actually have people
who don't mind the language and the nudity and the
sex and whatever else you want taken out, and they're
pretty thorough Like. There's a lot of stuff that when
my wife and I watch we turn it back on.
(55:35):
It's like, Okay, you know, that guy gets shot with
a gun, but you know, it's not super gory. We're
not seeing anything that we don't want to see, so
it'll turn it back on. Right. Some of the language
doesn't bother us, but some of the other language does.
Especially my wife, she's a lot more sensitive to it
than I am. Right, And so we'll we'll say not
these words, but those words, right, and so your sound
(55:55):
will cut out when they say the word, you know,
and it will skip the parts that have the nudity
and sex in it. And so if anything else happens
while that's going on, yeah, you might miss some stuff,
but I haven't found that it really affects the quality
of what we're watching. So anyway, but if you want
to watch nineteen twenty three, I'm enjoying that, I'm also
(56:20):
watching the new season of Reacher. Usually I wait and
I pingj them, and this time I didn't, so I've
been waiting for episodes to come out, which is strange.
But anyway, so those are my picks. And then finally
my final pick is I just got hired new job
at Prize Picks and so they sent me a big
(56:42):
box of swag and so I got a water bottle.
I'm holding it up if you're not watching the camera.
I got some stickers, I got a backpack, I got
a T shirt. They're going to be shipping me a
laptop to work on, but I'm pretty excited to be
working on that stuff. So as we dive into that,
I will get you more stuff that you know, let
(57:05):
you know what I'm working on. But anyway, those are
my picks. A roll. What are your picks?
Speaker 3 (57:11):
Okay? Cool? Okay? My are a little bit different. I
recommend a book that for me change my life. That
is why we sleep and it's very important to know
how we are working and how the sleeps works.
Speaker 2 (57:33):
And it's from Matti Walker, and I recommend it and
it's a very important topic. I had problems of sleep
on the past, and I recommend that when for for
every everyone in reality, but also for developers, sometimes we
(57:57):
are thinking.
Speaker 3 (57:58):
That we to spend more time on the night with
with a code and then but really is better to stop.
Speaker 2 (58:11):
I have a pettyquot routine and this is much powerful
then and at them. So I recommend this book while
we live. And also another topic is a sport. I
recommend to do any sport for everyone. In my case,
(58:32):
I practice parkour for a lot of years, more than twenty.
Speaker 3 (58:37):
Yeah, and it's very important to do some sport because.
Speaker 2 (58:44):
It's like doing decisions every in every moment you no
and and also then you are focused.
Speaker 3 (58:50):
On the current moment. And when you are training some
sport then also brings a lot of power for a
different analysis than or when you're programming. Then it's.
Speaker 2 (59:09):
Then very similar because when you're programming, you are taking
decisions every time, and it's a very good way in
order to brain this in a different way, and it's
very positive and I recommend the people to do some
sport very cool.
Speaker 1 (59:26):
I have a question about that. I mean I I
do triathlons and marathons, but my question about parkour in
particular is if somebody goes, you know, I've seen videos
of parkour or you know, you know TikTok videos or
something right where somebody's jumping off of something or kicking
(59:48):
off of something or you know, doing a flip downstairs
or something like that. How do people get into parkour? Like,
are there good resources for people to okay, here, here's
baby parkour, here's you know, okay, now you're not going
to hurt yourself parkour, and then here's the risky parkoer.
Speaker 3 (01:00:09):
Yeah, career is very.
Speaker 2 (01:00:12):
Different way in order to join that years ago because
years ago was like a new thing. But now there
are schools academies in almost each city that you can
learn all the things in with crush mats in a
soft environment. And the most important part of parkour is
(01:00:35):
that you know your limits and all the decisions should
be how you feel. If, for example, you have a
bad day, you are the responsible to the side if
not to the jump today, not because it's not like
(01:00:56):
competition with other people. That also is an other topic
because now exists competition in parkor. But for me, par
the most important parties to train to ourselves and to
know your limits. And I recommend to be very progressive
in these terms. So to start in without hate, and
(01:01:23):
and then uh, step by a step you are learning.
So like programming, you you are not going to start
building a framework. You start step by a step and
then uh you're after some years, then you can do
more complex things.
Speaker 1 (01:01:41):
I guess, I guess what I'm asking for is is
there like a tutorial you like out there that says,
here are the basics of how to do parkour.
Speaker 2 (01:01:54):
There are some web pages that there are the technique,
the techniques, and the most important part is how to
d and now how to learn correctly without impact and
and then to learn the basics.
Speaker 1 (01:02:13):
Cool? Yeah, all right, well I'll just go on YouTube
and how to land without hurting myself? Cool? What else
are you going to pick?
Speaker 3 (01:02:26):
Absolutely? If you if you serve my name at Rocca h,
you can't found the both topics about programming or about
Parker in YouTube for example, my channel a Rocca it's
about Parkle.
Speaker 2 (01:02:41):
But then in Twitter everything is about programming. So it's
like two different walls. So it's it's like Britain not
that have the server wall and the playing walls. But
but yeah, two different topics.
Speaker 1 (01:02:54):
Very cool. You were going to pick something else? I think,
and I interrupted you.
Speaker 3 (01:02:59):
I wanted to recommend a movie that I like it
that it's Life is Beautiful and in Spanish is laveds Vedia.
I watch it three times or four, I think, and.
Speaker 2 (01:03:19):
It's it's like the interpretation of it's there are something
that is wrong, and you can interpret in a different way.
Speaker 3 (01:03:33):
To at least enjoy and be frustrated. And I like
the movie.
Speaker 1 (01:03:40):
And I love that movie Lavi te Bella in Italian.
And so the first part of the movie, they're not
in the the concentration camp. They're in the city. And
the city that they're in is all right, so and
I lived there for five months, and so it's it's
fun to watch the movie and go, yeah, I've been
(01:04:01):
up that street and I've you know, I've been there
and I've yeah. Anyway, but it's a tremendously good movie.
It's it's a sad movie, but it's it's also a
fun and it's a very good movie.
Speaker 3 (01:04:16):
Yeah, it's sad, but turns meet a lot. Yeah.
Speaker 1 (01:04:19):
Cool. Well you mentioned the discord. You mentioned Twitter. How
do people find you on the internet.
Speaker 2 (01:04:27):
Yeah, in internet, you can find me in Twitter or
inniches with al Raca, and then you can find Briza
with brizea dot build. That is the website, and in
the website we have all the links from Discord and everything.
Speaker 1 (01:04:47):
Yeah, I was going to say the Discord is easiest
to find just by going to the website and clicking
the link.
Speaker 3 (01:04:53):
Yes, and if not, Brizilt build live Discord and we
have a cool.
Speaker 1 (01:05:00):
We'll go ahead and wrap it up. Thanks for coming.
This was a lot of fun.
Speaker 3 (01:05:03):
Thanks for you learnt