Hey, everybody, welcome to another episode of JavaScript Jabber. This week on
our panel we have Steve Edwards. Oh ajs here, so I can't use
the yo yo yo, so I had to say hello from a still cloudy
and rainy Portland. But for those of us skiers, we're still getting snow
up in the mountains blowing pretty hard. So it's great for late spring skiing.
Yeah, it was wet here. And then when I was driving my
daughter to school, we saw a couple of vehicles with snow on them that
must have come down out of the canyon or something. We also have aj
O'Neil oh, go ahead, I think, I say. Yeah. When
you get up above start to where you climb up mountain head towards timberline,
it's immediate change and you're still getting blowing snow. Nice, it's crazy.
It's great for skiing. I was up yesterday it was awesome. Nice all
right. We also have a j O'Neil yo yo yo. Then actually from
the fish room, what's the fishroom? Fish room? Yeah? Is that
an aquarium over there? Yes? Yeah, you can't really see it,
king, but no, it's pretty small. Yeah, So I've got like
ten aquariums in here right now. So during the long hiatus, I got
into aquaria. That was my my winter depression hobby. I got to pick
for you. I got a great pick for you when we get to picks.
Excellent, right. Are you an aquarius? Is that one of the
signs? Or am I just making that up? No, it's actually an
aquarium. No, I'm kidding. Yes, it's aquarius. A person who's
into aquaria is an aquarius. Wow, things I never needed to I mean,
we also have Dan Shapier. Hello from a warm in sunny Tel Aviv,
which somehow didn't prevent me from getting this really bad cold for the entire
week. You do know that getting a cold has nothing to do with temperature,
right, Yeah, that's not true. It changes in the weather.
I think like changes make you more susceptible. Yeah, it's it's stressed to
your body. When the temperature swings or when you're cold for a long period
of time, your immune system dips, so bacteria and viruses that are all
around you that weren't affecting you then suddenly affect you. Also. Also,
I became allergic to the earth. By the way, since since last time
we spoke, I have allergies now, first time, Yeah, I think
so. Yeah, I wake up in the morning. Well, actually it
hasn't been so bad. It's like three weeks or so. I wake up
in the morning. My eyes were itchy. It sneeze, sneeze, sneeze,
sneeze, sneeze. Oh, it was terrible. Well, it's hitting
close to hay fever time, which is what I get. Although here's been
so wet that it's keeping everything down. But this is the best time of
year that I get hate faver. I get that too. It up that
the rain that we get is like the light rain that you get, so
it's just enough to like everything bloom like crazy. Yeah. So I haven't
had a cold, but I've had a lot of that what AJ's complaining about
for the last few weeks. So I just I live on my zertech.
I have it at my desk because I just just take it as soon as
I say, yeah, I know what you mean. Anyway, I'm Charles
Maxwood from top End Devs. This intro is taking forever, so I'm just
gonna skip all the pleasantries go check out JavaScript Geniuses dot com. And we
have a special guest this week, and that is Lazarre Nikolov. Did I
get anywhere close? Those are right? Yeah, it's on Nicolo and things
are That's what I meant to say. You were close. You got the
syllables right, just in the wrong pronunciation. Yeah. Anyway, uh we
brought sentry well zar after listening to all that or was that just so entertaining
that you're on the edge of your seat now I'm on? All right?
Okay, good? Yeah, all the back and forth, Matt Henderson from
Century recommended that we have you on talk about web performance stuff and maybe some
of the stuff that Century provides, and so, yeah, do you want
to just fill us in on who what else we need to know about you?
We had a long discussion about Macedonia before you, yeah jumped in.
So yeah, well, thanks Matt for recommending me. Thanks Bud. But
yeah, I'm Loasa Nikoleff. I'm a part of the DEFL team here at
Century, and I'm all about web performance. That's my main focus. Very
cool. Oh, I'm really I really love web performance. I think it
right. Yeah, so so I'm a little curious just as we get into
this, you know, and and Dan fills us in periodically, it's like,
hey, there's this thing, but but what kinds of things do you
focused on at Century as far as making people's web apps more performance or more
user friendly or you know whatever it is that you know you're you're working on
these days in the web performance arena. Yeah, so I'm focused on the
educational parts, and not necessarily just a Century educational part, but just like
in general, you know how to how to develop good developing habits, so
your performance is in order. Basically that's all I do. But so you
know what, if maybe I do want to direct us first, it's slightly
a different direction because we have been speaking about performance a lot on this podcast
of late, but we've not spoken about Century in a while. I mean,
we've had some people from Centry, like I think like a year or
two ago, but maybe some of our listeners somehow are not familiar with who
Century are or what Centry is and what it's spring to the table. So
maybe we should actually start a little bit talking about Century before we then go
talk specifically about Century and performance. Yeah sounds good, Should I go for
it? Yeah? Awesome? Yeah. So, for those for those of
you who don't know, Century is an aer monitoring and APM solution for any
of your web apps and mobile apps, and I don't know desktop apps and
anything basically, So what it does is it offers I would say that like
the best in class AER monitoring. Every time something wrong happens in your app,
you get an email, you get a Slack message, you get a
team's message. If you're there, you get a you get Paige if you're
on page duty, you get a ticket in Gira, et cetera, et
cetera. You just get annoyed basically from all the sides. Uh. And
that's just for the AER monitoring. Aside from just telling you you know your
apps on fire, you just get a whole bunch of COOLU for information like
hardware info, software info, what the user is if you know you have
configured tracking users, et cetera. Yeah, all you need in order to
fix the PUNK. So that is the error site. And there's also the
performance side, or just in general a PM, because there's more than just
performance. You get monitoring for web vitals, networks resources traces, which are
becoming like a central part at Century right now. And yeah, it's it's
it's a tool that you install in your application, whatever the SDK is.
We pretty much have support for all of them, and it lets you know
and when something bad happens, and it keeps your performance in order. That's
basically what Century is. So first of all, you use the m a
PM. Can you explain what that means? Yeah, it's application performance monitoring.
Now if we if Yeah, it's continuously what Sorry, it's basically continuously
measuring and reporting metrics such as web VITYLS and what else. Yeah, Like
I mentioned resources that your website is pulling in network requests that you know the
app is uh triggering, et cetera. Now if we start with with the
legacy stuff. Sorry chuck you what you were starting to say. I was
just going to say, you know, when you asked what it measured?
I mean, we keep hearing web vitals. We talked a lot about that,
but I've also seen them track other things. Right, so core web
vitals is usually used for se O. You can go listen to a handful
of episodes we've done, but I've also seen it tracked how long certain function
calls take, or on the back end, how much time it's taking to
access the database and execute queries and things like that, or how long this
request took to a back end or an API or things like that, So
it's more than just web vitals, but a lot of the business folks,
that's what they're going to care about. They're going to care about how performance
is it and doesn't match the web vitles so that we can show up higher
in the list on Google. Although, to be fair, and I keep
saying that, I mean, on the one hand, it's a really good
thing that Google made performance or coed vitals a ranking signal because it really pushes
the entire industry to improve that aspect of web websites and web applications. But
the reality is that the impact on ranking in most cases is not that massive.
To be honest, it's often considered to be a tie breaker rather than
a decider. Like the big aspects of ranking are still things like you know,
content, content is king, so whether it's relevant content, and also
authority, like you know, if you're going to ask something related to a
health or medicines, then the CDC or something like that will come up first
and for good reasons. Or if you ask something about the news, then
CNN will likely appear high in the search results, even though their performance is
historically atrocious because it's more about those aspects. But first of all, it
still is important because it can be a tie breaker. But more significantly than
that, it actually has significant impact on user experience once they're in the page
or in the website. And lots of research has shown that when performances poor,
bouncer it is high and conversely that when performance is good, then conversion
is high. So there's definitely a significant motivation to improve that. But again
I want to pull us back a little bit because again Century is historically been
known for the error tracking and monitoring. I think that's still what most people
think about when they think about Century, So I do want to talk a
little bit about this before we dive into performance. If we can, per
my understanding these days, Century is kind of full stack. It does both
the front end and the back end and provides a holistic view of all this
information together. Is that a correct summation. Yeah. Basically, when you
have multiple projects in Century and you use centries as the case to connect them,
you automatically get a distributed traits. You can start looking at the front
end and then move on to the back end and database and go back whatever
your operation flows are configured and again per my understanding, Century is something that
I can install effectively for free on premises, or I can use kind of
your hostage server, which then I have to pay for. Is that correct?
Yeah? Yeah, it's free self hosted. Yeah, so when I
self host it, it's free. And I think it's also or at least
partially open source. It's it's like it's source available. M Yeah, so
the license is not mit ah, we came up with our own, but
that's just for you know, yeah, like protecting other businesses from you know,
figybacking on the centrin repackaging it. But it is, Yeah, it's
source available. So if I have like an error in my JavaScript, you
know, something that would get written to the console, or an AJAX call
that fails for some reason and uncought promise rejection and uncaught exception so on,
so forth, all of these things are collected and then exposed to the site
owner through the Century Management console effectively. Fine, if I again understand correctly.
Yeah, So, like every SDK has a DSN configured, which is
basically a link to where your instance is running. If you're self hosted,
you're going to have your own r hotel there, so that basically tells the
SDK whatever you capture and you know, measure send it over there. Yeah,
so when you're on premise, the data is on your service understood.
And one of the things that I recall that I really liked about Century was
the fact that it was smart enough to group errors together. Like one of
the problems with a lot of these monitoring solutions is that you could literally drown
the sea of errors because, let's face it, you know, so much
stuff is getting collected and reported, So you don't want to, you know,
have to sift through tons and tons of logs and errors and stuff like
that. You want the system to aggregate the results and then just show you,
you know, this is something that's important, this is something that you
should look at. So that's one thing that I recall about being really powerful
with centry. And another thing that I recalled being really powerful with Centriy is
the amount of information that was exposed that could help you. Okay, you
know there's and let's say an uncaught a promise to injection. Why like,
what is this promise? What? What's what's the value that it's trying to
get. So all this information is also surfaced to you as the website or
web application owner. Yeah, totally. I mean you you get all of
those information attached to the issue itself to we don't call them crashes or anything.
We just call them issues, so like it's it's all there. Yeah.
So how then did you actually pivot into performance? I mean, if
you had this focus on errors and collecting errors and reporting errors, where's this
sudden focus on performance? Where did it come from? I'm not sure to
be honest, because I think that was like a few years before I started
in Century, But I think it was natural. We got the we had
errors, we had tracing, and with tracing you can identify all the performance
pattlenecks. There's also a profiling which taps into the hole, connects into the
whole tracing and performance topics. So I'm not sure, like what is the
exact moment that from tedth Centry to start looking into performance, but we just
we just know that performance is super important. Would you say tracing what exactly
do you mean? Yeah? I mean we mean like tracing the operation flow
for specific operation that can be I don't know, a checkout flow or a
log in flow, so as functions execute, and you know API calls get
executed. Tracing is basically putting little bread crumbs along the way and then capturing
the whole all the whole path of the operation flow, so you can see
what where the operation flow went in in I don't know what micro service,
and how long it took for each of the functions or whatever you have defined
or instrumented. So sort of like a stack trace then with variation. Uh
yeah, stack trace is like a the snapshot of the of the second that
specific moment, but tracing is more of a it's like on a on a
on a timeline basis where the operation went. So for example, if we
start at the front end, we could have some spans, and spans are
how we Spans are the things that we used to define the trace, right,
so we we basically create a trace and the SDCA automatically does it for
it. But let's say we just create a trace, We get a trace
ID, and then we sprinkle around spans which are connected to the trace,
but those define what happens at a specific moment. So instead of just console
lock I'm here or console lock we reach this point, you're basically creating spans
which also have a starting point and ending point. They have tags, you
can put tags in them, et cetera. And those don't just stop at
the I don't know front end. You could send the trace heather to the
back end, then continue the trace on the back end. So then when
when you want to debug how a certain operation behaved or like what happened,
you see one timeline that combines the data from the front end and the back
end, or your back end. If your back end is a micro service
architecture, then you'll just have the data from all of the micro services there
on one timeline. Let's say. So a question about that, is it
kind of like open telemetry traces pretty much? Yeah, And we also have
an hotel adapter, so you could use the hotel instrumental instrumental to get the
data and then send it to centry as well. There is hotel sorry,
hotel, what is that? All right? That's open telemetry? That is
okay, Yeah, that's an open source standard. I would say there's also
under and implementation. I think yes, both and implementation and tooling around instrumenting
parts of your application. Basically, think about if if you want to like
have like a mental image of what is meant by traces as as describe them.
It's kind of similar, kind of similar to what you see in the
the performance tab of the Chrome dev tools. Like, so it's kind of
or like what is often known as a flame chart. You kind of see
each of those traces are like one of the levels in the flame chart.
So you have like a span that starts and ends when a certain operation takes
place, from the beginning to the end of that logical operation. But within
that you have span. So you could think of a function, so you
have a span for the execution time of that entire function, but it calls
subfunctions and they have their own spans within that span, so you can like
go through like the execution. So it's like stack trace over time as it
were. Okay, and it's now you collect this for like every session or
like is it sampled or how how does it work? Yeah, there is
a plank configuration already put in into the dcation, so you can you can
play around with the values. It's basically it's just from zero to one.
That's how a century configures it. So if you want ten percent of your
sessions to be simple, then you just sapiens your point one and the sampling
doesn't adversely impact the performance of the session, like the user doesn't notice it
that it's being sampled in this way. I wouldn't say so, but depending
on you. For example, if you're instrumenting everything all the you know,
important and non important bits and pieces in your application, then you'll probably see
some performance overhead. But as yeah, that's all in your control, basically
cool. So we were talking about the fact that you have this tracing mechanism
and from that you kind of moved into also performance monitoring. Yeah. Yeah,
because the trees contains everything, right, the trace knows where the application
went or the operation went and how long it took, so we can identify
performance bottlenecks. But then what we do at Century as well is whenever an
error happens, we attach it to the trace. So you can see on
that timeline on the flame chart, you can see where an error happens and
how the operation behaved after you know, the error got triggered. Also,
I assume how you actually got to that point of the air, because that's
often the thing you most want to know exactly. Yeah, the spens will
give you the information about what data you know was being handled and basically what
happened leading up to the air. So do you have like something like I
I can I literally see things like what you know, like a sort of
of like what the user was actually even maybe seeing on the screen or stuff
like that when the air happened. Or Yeah, we do. It's it's
like a different subproduct. It's called Session replay, uh. And it's just
an integration that you need to install in your client facing applications. Right now,
it's just web, but we're coming up with support for mobile as well.
So it's like dumb recording. It's not a screen recording, but it's
basically records the dumb and sees all the yeahs, basically the recordings along with
the whole you know, monagoring and capturing. Oh that's enough, I mean,
don't does represent what the user actually sees? Yeah, And you also
get the network request. You also get the console log, console air or
whatever you're outputting into the browsers console. It's it's like literally you're, uh,
you have access to the person's computer. That one one question I have
related to that is a lot of times there's information, be it personally identifiable
information or passwords or things like that. I'm assuming that you can configure centry
to screen all that out so doesn't show up in the Yeah. Yeah,
we're scrubbing that out automatically. Uh. And and that happens in both science.
For example, the esedicate itself does some scrubbing so there is no PI
going through the wire. But then also before we start processing the data,
Uh, there's a there's a thing called relay which takes in all the data
and does additional scrubbing on the server side as well before we put it.
And that's for the I think the CELLF hosted one has it, but then
also the the SATAS one also supports the scrubbing of the p II, but
it's configurable. For example, if you're if you're tracing, if you implement
tracing and you append the you explicitly append p I I in through the context
or tags, whatever it is is going to be sent, So you need
to think about what it is that you're actually collecting. That's the bottom line.
Yeah, like out of the box, if you don't explicitly send data,
it's not going to be sent. But if you're you know, if
you're configuring the context of the ace decat to include the locked in user or
whatever data you want to you know, attach to the to the context,
then it's going to be sent, but out of the box it's nothing gets
sent basically, So when you added ROM capabilities and by the way, RUM
in the context of performances really use measurements, which means it's data from the
field rather than synthetic data created in simulated environments. Uh. You mentioned that
you obviously collect the co ed vitals, which these days are LCP largest content
for paint, CLS, commolative layout shift, and the I n P which
is in the input interaction to the next paint. Exactly. I've been,
like I said, had a head called I'm still recovering. But what other
performance data are you collecting that's relevant to identifying performance bottlenecks in the application?
Yeah? So, Uh, there's also database monitoring, so whatever you use,
if Centric has a has an integration for your database driver, Uh,
there's a built in for postcrists. There's also for Prisma if you're using Prisma.
But if now there's a way you can you can manually attached the query
and also the result in the spand itself when you're instrumenting. So there's also
database Uh monitoring or like monitoring the queries as well. Yeah, aside from
the web files, we also measure all of the resources that your page is
pulling in the jas files, CSS files, if they're blocking or not,
images as well, how how big they are, like, is there like
a way to opportunities for you to optimize them, et cetera. So there's
quite quite a quite some data getting pulled into the centriy dashboard for you cool.
One of the biggest challenges with performance monitoring in the field or rum,
as I mentioned, is the concept of attribution, which basically means, let's
say I have a bottleneck. My my LCP largest content for paint is high,
which means it takes a long time for the primary content to be displayed
from the session start, which is fine and good, but I want to
understand why it happens and what I should change or even potentially more challenging,
the new metric I inp interaction to next paint has to do with how often
the main thread is blocked by for examping, for example, long running JavaScript
code. But there might be a lot of different JavaScript code that is running
inside the context of my session, could be first party code, it could
be third party code for example, various tag managers, pixels and whatnot.
So, and I want understand you know, which one is the one that's
causing the most harm, the most damage, and that requires some sort of
mechanism of attribution. So how do you go about that? Yeah? So,
uh, I feel like you have all the tools to fix all these
things. For example, if you're looking into I n P, then maybe
uh capturing a profile and looking at a profile of uh, you know,
of your running application can actually shed some light on what is happening in the
background and why you're you know, your website is experiencing imps at the time
of uh, I don't know, interacting with the elements. So it's not
profiling on the developer's machine. It's not like opening the Chrome dev tools and
running the profile tap. It's actually collecting profile profiles for for the actual real
user sessions exactly. Yeah, it's con fagurable. Yeah you can. You
can also pull in profiles and and you know, use them to debug I
n P s or or whatever it is. Yeah, so can you give
us like a concrete example. I'm sure that you work with various customers of
that. So, without naming names. Can you, like give us an
example of like an interesting case that you ran into and were able to debug
in this way? I don't work with customers, so I can give you
like, yeah, I can give you examples from my demos that I create.
Go for it. But yeah, I usually just use a trace trace
view because the trace you basically tells me everything I need to know in terms
of how the page loads or in terms of how my operations, my custom
operation flows are behaving because I define them in my apps. But it basically
that's that's how I go about debugging any of the like the top level stuff.
But then as I mentioned, like if I have TB problems, I'll
just use the Queries products. And the idea is that it's all here,
it's all connected to the same data. And on the sidebar you have all
of these tools that we're talking about, and it's all connected to the same
trace. And what about integrations with various development environments, Like let's say I'm
using I don't know next JS or next or remix or whatever. You know,
there are like a million frames or frameworks out there, astro, what
kind of integrations do I get? Are you just looking at it as it's
JavaScript and the web, but it's all the same. Or are you or
do you have like specific integrations for the different frameworks and metal frameworks. Yeah,
we do have specific integrations with all of the different frameworks and a lot
of them that are currently out there people that are using or not using.
We do that because we want to tap into the framework itself or the library
or the tool, whatever it is. We do that because we want to
utilize the functionalities that the tool itself is providing when it comes to either instrumenting
or monitoring for errors, et cetera. So a lot of the let's say
we're talking about instrumenting, right, we're talking about tracing. A lot of
the operations are already going to be instrumented because we tap into the tool itself
and also connecting the clients or the projects. I would say we don't really
care about that as well, because when when one project makes an API or
a request in any way to a different one, we can also the sd
case will automatically create that trace for you. So a lot of the times
it's it's enough to just install Centry in all of your projects, set up
the sd case, and and you'll get a lot of data already configured and
ready for you. But if you want to get into more details than you
do the you do the tracing basically, but where virals it's automatic session replay.
You just need to add the integration. Tracing is covered as much as
the framework can cover. But if you have more details, like if you
want to trace into a big into a greater detail, then you can all
supplements, uh, the the the trait with you additional spens by the way,
out of curiosity, do you use like the built in browsers performance dot
mark and performance dot measure or do you have like your own wrappers for the
spens? In some places we do, but we usually use For example,
for Core web vitals, there was this travelscript library and I think it was
from the Google Chrome team. Yeah, we use that under the hood to
capture the data. Okay, what are things that you are I don't know
if you you can answer that if you're not primarily working with customers, But
what are the things that you're seeing as the most common sources of performance issues
with people who are using Centry for monitoring. Yeah, well, I've talking
with people. I've noticed that there's a lot of undefined errors. For example,
in in JavaScript land, where you know you're trying to access a property
of an undefined variable or object, you get the undefined erroortat is pretty much
the most common one. And also like failed to fetch fetch errors not happening
because of I don't know, the UL doesn't exist or something like that.
I've seen it that way too many times. Maybe yeah, but those are
general errors I'm saying. I'm asking what sort of performance related issues are you
primarily saying M I don't think I can. There's a lot of N plus
one when it comes to like API requests and also dB queries. What else
I don't know. I haven't haven't seen. I haven't been exploring too much
of the customer data. I'm saying from an interesting split between two types of
issues, Like there's the issues related to let's say largest Contential Paint or RCP,
which are about how quickly a website loads, and that's not always interesting
for all web applications. I mean, it's interesting if you're building an e
commerce website, but if you're building some sort of dashboard or something like that,
or you're sitting behind the authentication, then you don't care about it as
much. Basically, RCP is really important when when your page is ranked.
If your page is not getting scanned and ranked, then you you often don't
really care as much about that, And in these days of service side rendering
SSR, it's often not even the SCP may not even be dependent on the
performance of database calls. So that's like one category of performance that I'm seeing,
which has to do with how well have I configured my CDN? How
well have I configured cashing for my files? Am I using properly optimized images?
Am I properly loading my phones and CSS and stuff like that? So
that's like one category of performance issues that I see. And the other,
which is one that you kind of mentioned a couple of times, has to
do with once that web application is already loaded, how well does it respond
to the various operations that I that either user do inside of it, in
which case it is often has to do with like when when a certain operation
is performed, how many AJAX calls does it get translated into? How how
are these are these called parallel paralyzed or or are they sequential if they hit
the database, which they often are. How optimized is that database query for
example, like you know, have I properly created the indexes for the SQL
query that I'm performing? You know, stuff like that. So these are
kind of like the two categories of performance issues that I'm primarily seeing. Does
that kind of match your understanding pretty much? Yeah? Yeah, And then
that's how we're also building the product too to help developers with these two types
of issues. Okay, So if we're going to talking about the database issues,
so you said you've got integrations with the major database providers or database platforms,
will it work like with any back end that I might have. Is
the integration at the database layer or does it need to be some sort of
know, we support Node, but we don't support GO I don't know.
Yeah, we do that through the back end, I would say, But
it depends on what is the driver that is being used to access the database.
So we're not basically monitoring the database server or instance itself, but how
the client that uses the driver to query the database. From that point of
view, so it matters if there is a if there is support for the
client itself or the back end framework or technology. That is the first thing,
and then the second thing is what driver does the back end use to
query the database for data. So that is the second thing. So which
back end technologies do you support? Oh? A lot. We have nodes,
We have Django and anything Python. We have pH stuff like Larovel,
et cetera. I've used it with rails Rails. Yeah, a lot of
the the I would say all the most the famous ones, like the most
I would assume probably. Yeah, there's like Java stuff. Yeah, I
don't know all of them, but there's like too many. Yeah, just
for what it's worth, my company uses centry on a pretty huge letter of
ville and view site. We use it pretty intensely both for we you know,
see our both letravel and view errors, JavaScript rors, you know,
bundling errors, and you know, any number of different errors from both both
ends of the application. So it's very handy. Do you also use it
for performance while the during Uh, not so much. I think we have
some other tools we use. We use it mostly for the air tracking.
We get that, like you mentioned earlier, we where he was talking about
it being annoying. We get the emails and the Slack channel updates and and
all that kind of stuff. So I think the key thing from my perspective
thinking about you know, making the web faster. What I like about this
is there there are a lot of websites that are using centriy. Like Centriy
has become, from my perspective, almost a de facto standard for error tracking
and air monitoring on the web today. And if you know, if some
of these organizations that are that are using Centry already have some sort of a
RUM tool in place, and good for them. But if they don't,
then why not just use Centry to get all this performance information and start making
your website faster. Yeah, I mean I've seen, uh, I've seen
lions that only uses for air monitoring to also you know, implement our performance
too, whether they have or don't have, you know, already other tools
in place. So I've seen them move towards centric as well. Yeah,
I've seen that on a few other places and with other competitors to Century.
You know that either went from hey we do the APM or the application performance
monitoring and then they added the error stuff or vice versa. But yeah,
effectively, people start using one part of the tool and then when they run
into some issue, right, so it'll come up that, hey, our
core of vital scores are not where we want them, right because that got
on the radar and they checked it out. Or hey, we've got this
page that just takes four ever to load, right, And so then they
figure out, oh, we've been putting all this data into this system for
a long time, and so now we have it, and so now we're
going to go look at it. And so then they start to audit what's
going on in their website. And I think that's one thing that's kind of
nice. So the tool that I use for most of my websites for error
monitoring does not have an APM component to it. And yeah, there have
been a couple of times where I've looked at things and gone, man,
I really need something to you know, pull this this piece out. And
so yeah, it's really convenient to have them both there. Another thing is
a lot of site owners and seos, especially seos, they look at the
Google Search Console, and the Google Search Console you do have a core vitals
area within it, so they can see like performance issues that they have with
various pages and their pages in their website. The problem with it is is
that the Google Search Console has like this twenty eight day smoothing window, so
you often see issues like two even three weeks after they've actually started. So
you say, hey, you know, I've got a problem, but it's
affecting your website for it's been affecting your website for two to three weeks already,
so that's problem number one. And then you make a fix, it
then takes another two to three weeks to actually see that the fix actually impacted.
So yes, you can't tell Google Search Console that like, I made
a change, please review it. But it's still it's still a chore.
So that's problem number one. And problem number two is I mentioned before,
is this whole issue of attribution, so you can see that in certain in
a certain page or group of pages, I don't know, CLS has gotten
worse, but like why what's caused it? You know, you know what,
what change have we made over the past three weeks? And there can
be so many things. It might be somebody from marketing who just made some
sort of change in the page layout or content. It might be I don't
know, issues with and one of you know, an improperly configured CDN or
maybe you know you you misconfigured your your web pack or whatever, and you
know, creating much larger bundles, or maybe somebody in marketing added another pixel,
And it can be so many things that can have the impact. And
and and this whole concept of getting good attribution, of understanding as quickly as
possible where the problem is is really key to be being able to resolve it.
And that's where a tool like Centry and like the other run providers at
these the good ones UH can provide so much value over what Google gives you
out of the box. I was just going to say, because you were
listing examples and when you mentioned added a pixel, that's the one that I've
seen come up. But the trick is is that a lot of times that
doesn't show up in your code because you're using something like Google tag Manager or
something, and so right, the change isn't in the code base, the
change is in the tool. And so just just be aware of what you're
allowing to modify your page that may or may not be the code exactly.
I mean, you know, you see that let's say you've pinpointed the time
of the degradation, and then you start doing let's say get bisect, and
you find that nothing's changed because it's not in your code. Like you said,
it might be that somebody in marketing using Google tag Manager just added another
you know pixel that's really killing your performance, but again totally not reflected in
your codebase. I've also seen in cases where a parallel happens, so it's
not just from this point on or like from this commit on and you know,
the performance gets worse, but like there's like two parallel lines where one
of the one group of the users are experiencing okay, are having an okay
experience, but then another has not so much okay, and they didn't have
anything to do with pixels or or stuff like that. It had to do
with the state of the application. So I've seen like banners that you know,
change the lcp' score because they're pretty big at the top, and some
users take the time to hit the X button, but some don't. Right,
So for some of the users, your run data is going to report
the LCP is going to be based on the banner, but for the others,
it's not going to be. The element is not going to be the
banner itself or the background or whatever it is, but it's going to be
some different part of the page. So there's like also parallels of data and
I've seen situations where a lot of organizations do all sorts of A B tests,
So they might be testing different let's say head title or header messages,
and the head different header messages have a slightly different length, and then due
to wrap around and stuff like that, all of a sudden, a different
piece of content is the largest contentful piece of content to be painted based on
where you are in the A B test. So all these things can really
drive you nuts trying to figure out, Hey, what's actually going on?
You know, why is it that all of a sudden, my page shows
poor performance even though I don't I didn't think that anything actually changed. And
again, attribution is really key in being able to solve these type of types
of scenarios. Yeah, and I would say that centrally does handle that in
a really good way. For example, in cases where an A B test
is happening, or in case where some of the elements or state of the
application can affect the web vitals, you can always you know, add tags
to the context, so all of the data that's being measured is going to
be tagged, like a banner shown true or false, or that the user
is logged in yes or no, et cetera. So that based on the
tag itself, you can filter out specific scenarios of the state of the application,
and then you can zoom in in that data and see how the I
don't know, web vitals and all the other metrics look like without these cases
in mind. So it's not just desktop versus mobile or Chrome versus Edge,
it's also do I have this spanner or don't I have this spanner? Am
I on this? Am I on the A part of the test or the
B part of the test? And stuff like that. Exactly. Yeah,
and you have the you already have the tooling in the in the s decay
and in the dashboard in centry to to do all the slices that you need
to do. So did the data makes sense? Cool? Yeah, so
you said you haven't gotten into the customer data A ton. I'm kind of
curious if there are case studies though, where somebody basically demonstrated or you know,
had some kind of major shift in their performance or a major shift in
their web vitals or a major shift in Hey, this was our money maker
page and it went it got faster, and then we made more money.
I'm just I don't know which of those you might be aware of, but
that would be cool to hear about. Yeah, totally. I mean we
internally and like you know, we always talk with the customers, and there's
sometimes we even do events like workshops where we just gether some you know,
better people in Zoom and we talk with the our clients or people who use
Centry. I remember I also did one with a person who who used Centry
in a React Native application and we talked about their experience, et cetera.
So we sometimes we do publish these kinds of interactions and conversations, either through
video format or or on a blog. So there are some stuff like that.
Yeah, how do I find those? I'm not sure if there's like
one page that lists all of them. But if there isn't, then that's
a really good idea and I'm gonna take it up and see if we can
build that. But I'm not sure. I'm not sure. Maybe either the
blog or the YouTube. There's probably a playlist on the YouTube channel. Okay,
any of the rest you have questions or should we go to picks?
I've covered my basis, Lasa, is there anything else that you specifically want
to add? I don't think so, yeah, I think we had a
really good discussion. I'm tracing and performance and stuff. Cool. I have
to say just to conclude that I'm a huge believer in real user measurements.
You're always surprised if you just go by synthetic measurements. You know, it's
highly likely that you're not actually testing what your users are really experiencing, so
and and so that's number one. And number two is that production will always
surprise you. And I've seen things, so just trying to rely on on
on synthetic tests and simulated environments, that's that's just not enough. Yeah,
have you seen the have you seen the reports? I think it's a few
years old, but there was a report where it got all of the Lighthouse
data and got all like the top I don't know how many websites with their
scores and then maps them out with their data from the Crux database, and
it turns out that like forty three of good light House scores don't even meet
the minimum of the web vitals went from the Crux data. That's interesting.
I've often seen the reverse, like pages that actually have good coed vitals but
seem not to have good simulated scores. Especially for mobile, because Google really
simulates a low end device that's slower in many cases that what users often actually
have. But the reverse can also happen. I know that Rick Viscomi from
Google I think actually even wrote an article a while back about why these scores
can be so different and why you might see such significant discrepancies between the synthetic
tests and the reviewser measurements. So yes, I think that the best option
is really to use both. That during the development cycle, you're using the
synthetic tools to make sure that you don't degrade before pushing to production, but
then you also have tools monitoring your production environment to catch all the things that
slip through, because inevitably things will slip through. And said, you know,
changes might be as results of things that have nothing to do with the
actual code. They might have to do with pixels, with images. I've
seen, for example, cash headers for files misconfigured, so or I've seen
situation where somebody accidentally turned off all the compression for all the files at the
CDN, so you suddenly are downloading you know, five times as much data
than before. So I've seen so many reasons for poor performance that might not
be caught by synthetic tools that only check during bill times. I guess you
could say really really stay based on the report that that was the crux of
the issue. Right, yeah, I think you made the same joke when
what we had Rick Vscopy on the show. Hey, if it works,
you know, keepu isn't it? Some people hadn't heard it yet. That's
sorry? All good? All right, Well, let's go ahead and move
on to the picks. Before we do that, though, Lazaar, how
do people find you on the internet if they have questions or want to chat
or whatever. Yeah, I'm I'm trying to keep a consistent user name.
But let me just change it real quick so everyone can see it. It's
at Nicolo Lasa and this is how it looks like. All right. We'll
also put that in the in the comments on our various streaming platforms, and
I can type it and in the show notes as well, and that way
people can look you up. All right, Well, let's go ahead do
the picks. Steve, do you want to start us off for picks?
Going for the high point early again? Okay? I can appreciate that.
So before I get to the dad jokes of the week, A j I
had mentioned earlier that I thought of a pick you inspired me to pick when
we were talking about your aquariums. Back in the eighties, there was this
comedian and he was the king of puns. He was, I guess you
could say, one of my idols. His name was Kippa Datta and he
has a song called Wet Dream that is all about fish puns. And you
know, it starts out how he was driving in downtown Atlanta, Atlantis,
and his Barracuda was wasn't working, so he was driving a rented Steingray.
Anyway, there's a great line in there where he's trying to pick up some
hot fish in a bar and he asked her what's her what's your sign?
And she says aquarium and he says, great, let's get tanked. But
anyway, that's a It's an all time classic. If you want to check
it out, you can find it. There's actually a video very you can
tell it's very early MTV video style on YouTube called wet Dream. So Dad
jokes of the week, Oh I just lost them, sorry, And by
stand by, did you know? It turns out that if you you can
actually hear the blood throw flowing through your veins. You just have to listen
very close to mercos veins, very closely. Sorry, I flubbed that one,
along the lines of the fish puns. What do you call a shrimp
that is always getting injured? He's accident prawn? Right. And then finally
the other day I went to see my doctor about this you should have been
dealing with, and he said, well, do you want to hear the
good news first of the bad news? I said, good news? Please?
He says, we're naming a disease after you. Yeah. You don't
want that? Yeah? Right, Yeah, it's funny. There's in the
fire Service say if there's a drill named after you, it's because something really
bad happened, which is generally true. All right, a j what are
your picks? I think his first his first pick? Is it the unmute
button? Where is it? Okay? I found it? Yeah, let's
see. I was just looking to find something to pick, because he had
no idea that we were going to have picks today. Right, I had
no idea, no idea. I was complete. I was taken aback.
Oh gosh, let's see. Well, uh that this is not really a
pick as much of a as a thing that happened. Okay, I gotta
I got a couple. I I saw the movie Being There, Steve,
have you seen that movie? Yes? That is it's such a weird movie.
My uh. When I was in college, one of my Spanish professors
had recommended she really liked it. And I'm a huge Peter Sellers fan from
the uh you know, all the Pink Panther movies, the Inspector, Clusto
stuff that he'd done. But yeah, this Being There is just it's interesting.
I I don't know that it's interesting weird. So it's it's it's critically
acclaimed, it's on it's on some lists of you know, best movies you
gotta watch. Because my wife and I we like, we've watched all of
the TV shows and movies that have come out in the last I don't know
ten years that are worth watching and there's not very many of them, and
and so and like nothing new comes out. It's all, yeah, it's
very met and so he uh. We decided to go backwards to find some
older stuff, some stuff that people really felt like had meaning was done well,
and we landed on Being There, and the reviews on it were so
high. The trailer looks so weird. But the trailer was a very accurate
depiction of the movie. It really made no sense it there was no plot.
It was basically depicting someone who is semi autistic slash echoleist who just says
a few things here and there and ends up like next to the vice president
essentially, but it is I don't know, so I don't know. That's
just something that happened, but something that something that's good is. I finished
listening to the first book of the Expanse, and I have to say,
overall, I do like the book better than the show. There for the
first half of the book, I think I like the show better because the
show gives a little bit more it Like with The Hunger Games. You only
get a certain perspective in the book, but then in the movie they get
to tell you things that are going on in the rest of the universe that
you can't see from the main character's perspective. In the book, they do
have a couple main characters, But I guess where the second half of the
book I liked it better than the show was that it's just much more focused.
The show progressively got worse and worse as they tried to just make the
characters more extreme and just introducing more characters and then just having them yell louder
and cuss stronger, and and that kind of got old. But the book
just stays focused on the few characters that are the important ones that drive the
story and doesn't try to introduce a bunch of others. And I mean,
like, the book's got plenty of language and whatnot too, but it's not
it's not the same where it's just like, Oh, she's on screen,
now cue the effort. Yep, that was her line. Yep, okay,
Now we move on to the next character. Oh, his line is
angry, got it okay? And we move on to the next character.
They in the book, at least for the first book, they develop the
characters a lot better. And so I'm I didn't think I was gonna listen
to the whole book series. I don't know if I will, but I
am going to pick up the second book at some point. I've got a
whole backlog of Audible to do. But and then last thing is again not
really a pick per se, but just an experience. So while we were
on the show here, I did try to get century self hosted installed,
ran into some Docker issues because you know Docker. But I'm I'm glad to
see that it's available for self install, and I'm glad to see that the
install script can kind of resume when it hits a hiccup. I'll play with
it a bit more and see if I can find like the right version of
Docker to host on the right type of VM to actually get it to install,
because I would like to see how that works. But the documentation looks
pretty decent. I do wish that it had like just the scripts to run
the installers without having to deal with docer. Just say, okay, like
you got to use debbian for this, but if you use deb like just
tell me what the operating system is the Docker would use, let me install
that operating system and let me just like run the scripts without having to deal
with docer because docer, man, it's such a pain in the butt,
you know. But but I'm glad to see that it's there. And I
was trying it out, and the documentation looks good, and I like,
like I said, I like that it's it. It seems to gracefully restart.
As you hit one issue, you can solve that and then restart the
install again and it'll pick up where it left off, and that's always very
nice. So Plus one to the Century self hosted on that and hopefully I'll
get it all the way and that's that's the end of my ramblings for today.
I just want to chime in on the Expanse stuff also, I'm just
going to put it out there. I very much prefer the doctor setups to
the other kinds of setups. But the Expanse in particular, you're going to
find through the whole TV series and through the whole book series that your observation
mostly holds out for all of the other books. A couple of things that
bothered me a little bit is that they so the books. Some of the
books are spaced out over years, right, so you have one book and
then a bunch of stuff happens, and then the next book starts, and
a lot of times there's a novella that fills in the gaps. Some of
the novellas aren't as good. But the other thing is is that those gaps
and the things that happen in those gaps are kind of important, and so
the way that they try and shoehorn some of the plot points to keep it
more or less continuous didn't really work, and so when they ended the TV
series, they actually left off last book and you know a bunch of other
stuff that I kind of wish they'd done so anyway, but overall, they
did an excellent job on the TV series. Uh. The other thing to
keep in mind with the TV series is I think the Sci Fi Channel did
the first two three, and then Amazon picked it up, and Amazon picked
it up, and when Amazon picked it up, we got better. So
there, I know there was one like the first season of the TV series
was pretty good, and then he was either the third or the fourth one
was pretty good. But that yeah, that's I think it was the second
one. It was just like out of nowhere. It's like they just I
don't know if the books that way. I don't know. Does is the
book like a completely different, unrelated story for the second book? No,
I don't. I don't remember for sure, but no, I don't.
I don't remember it being that So yeah, because they go into this thing
about Mars and then the the the humanoid aliens, and and then like that
storyline has dropped and it's never picked up back up against I don't know if
that, like, if the book has that or if that was just like
they were patting the TV show the continuity. I remember the second season being
mostly based on the second book. But yeah, the continuity in the books
is really really tight. So okay, cool, I'll look forward to the
second one then. Yeah, all right, Dan, what are your picks?
Okay, So I have a couple of picks today. My first.
Since we've been discussing performance and the impact of perform that performance can have on
the success of a website, there's this excellent website for web performance that Google
created well web performance and web development called web dot Dev, and they have
a section there web dot dev slash case studies. We'll put the link in
the show notes obviously, but it's got a whole like lots of case studies
of companies that improve their performance or certain aspects of their performance and the benefits
that they've gained as results of these improvements, like actual numbers and actual testimonials
and figures and stuff like that. So if you need to prove to your
let's say management while why it's worthwhile investing time, effort, and maybe money
into improving the performance of your website or web application, you know, you
can go there and you'll find a lot of relevant content. So I think
this is a useful resource in the context of what we've been talking about today.
So that would be my first pick. My second pick. I've mentioned
that we've been clearing up our library and I found various books that haven't read
in a while and was deciding which ones to keep and which ones to let
go basically donate, so which ones to reread. And I think I've mentioned
before that I'm actually reading a series of books called The Saga of the plosen
Exile. It's a series of books from the eighties written by Julian May.
She was a sci fi speculative fiction author. It's kind of an interesting work
in the sense that it's kind of midway between science fiction and fantasy in that
it's it's supposed to be like science fiction based, but it gives a lot
of fantasy vibes. But it's from my perspective, it's an excellent series of
books. There are four books in the series. Since it's from the eighties,
they're all written, so you don't have to worry about, you know,
an incomplete series of books. It goes from start to finish. It's
they're pretty thick, lots and lots of characters, lots of character development and
character interactions, and it's just a great series of books, lots of action
and adventure. But also she really gives like the flashes out the various characters.
One complaint that I've heard about the books, and I can see where
it's where it's coming from, though, I although I don't necessarily agree with
it, is that the depictions of the lgbt Q let's call it community or
people that are identify as such, especially trans people, is not ideal.
It may have to do also when the books were written, but I'm just
putting it out there in the case that it might impact the decisions of some
people to read it. As I said, I think the books are really
good. But again this is my own personal opinion, so that would be
my second pick, and I mentioned them before. It's just that it's a
long series of books, so it's taking me a while to read through them,
and I, by the way, I can't really I can't deal with
audiobooks. I have to actually read the book. I don't know when somebody
is reading it out to me. It kind of feels weird to me.
I don't know, it's maybe it's just me, but that's the way it
is. So that would be my second pick, my third pick. I'm
also very much a history buff or history fan, and especially of ancient history,
and given the fact that I live in Israel, also history of the
Middle East, which has a lot of history and a lot of ancient history.
And I found these series of lectures called The Rise of Ancient Israel with
Professor Isail Finkelstein. He's a professor of archaeology in the Tel Aviv University.
He's done some of the most significant archaeological digs in Israel, certainly in recent
years. And it's a very long series of conversations that he has with one
of his students who's actually made this basically recorded this series. There are twenty
one discussions and there are like something like forty something minutes long each and they
talk about, you know how, the evolution of the ancient kingdoms of Israel,
of you know, King David and before and after. It's really interesting
if you're into that. I do have to caveat this with the fact that
he takes the Bible as a serious source of historical information. But when there's
a conflict between the story in the Bible and the archaeological findings in the field,
he will side with your archaeological findings. H Or put another way,
he sees the Bible as not as a historical book so much as a book
of you know, a religious book and an ideological book that is based on
historical events. So considering the archeological bracity of the Bible of something I read
quite a bit to you on that's sort of well, there's a lot of
there's a lot of historical Veracity's not he's not denying it. But again,
when there are conflicts, and there are some conflicts between potentially, but you
know, the problem that he likes to state that he says a lot about
archaeology is that you can only go but what you but what you buy,
what you have found, and that maybe tomorrow you'll find something new that completely
changes your point of view. But true, but again, you can only
go on what you found. And while a lack of evidence is not an
evidence, how does it go I know exactly what you're saying, yes,
but still you know, if there's no evidence for particular events where you expect
evidence to be abundant, it does say something or at least it raises some
significant questions. Anyway, I highly recommend it. It's it's an excellent conversation.
I'll put a link to the entire playlist if you're into that. Very
highly recommended. And my final, so that's really fascinating. Yeah, there
goes my week, are right. Yeah, I would be curious, you
know, as to what you get from it. It's it's really really informative.
And my final, I won't call it pick I'll call it a mansion.
Today is the Holocaust Memorial Day in Israel, and this one's especially hard
because we still have one hundred and thirty two hostages being held in Gaza by
Hamas, So it's kind of I wouldn't call it a modern day Holocaust,
it's not quite up there, but it's it's it makes everything harder, and
you know, we don't even know how many of them are still alive,
and how many of them have been murdered or tortured to death, and it's
and it's you know, and you swing between hope hope and and you know,
feelings of hopelessness and and it's it's really hard. So anyway, those
would be the picks and mentions that I wanted to make for today and over
to you, Chuck. All right, I'm gonna put out my picks and
then we'll let let's R do his. So I always start with board game.
In this case, I'm doing a card game. This one's called Hanabi.
Hanabi is the Japanese word for fireworks, and the game is pretty simple.
You are delta hand of cards. It's usually it's always four cards.
You hold them facing everybody else, so you don't know what cards you have.
You can see what everybody else has, but you can't see what what
you have. And then what you do is you can either play a card.
So if you know what you have, or you think you have a
good idea of what you have, then you can play the card. And
what you're trying to do is you're trying to get stacks of all the colors
to go from one to five, and they're three ones, two of two,
three and four and then one five of each color. And so you
can play a card, you can discard a card. So the way we
always play is we always let everybody know I'm discarding off of the right hand
side of my hand. Right so if people don't want to get rid of
it because it's a five, and if you discard a five, you lose
because you can't play it. Then right then people will clue you, hey,
this is a and so that's the last one is you can give a
clue, and a clue is these cards are white or these cards are yellow,
or you could do these cards are two's right, and so anyway,
and then you're you have to kind of keep track of what where stuff is
in your hand without being able to see it. And so anyway, it's
a super fun cooperative game. I like it better than a lot of the
other cooperative games because like when I play cooperative games, there's one in particular
that when I play with my wife, it's it's me and her and anyone
else who's playing, and she's telling us all what to do, and I
just I don't I don't love playing the game where I'm watching somebody else play
my game. So anyway, Uh, this one's different because you can't do
that because you are missing information. So yeah, and we usually chit chat
while we're doing it. You just have to be careful because if if I'm
holding my cards up and I know that I have a particular card. I
may have inferred that from the clues I got and the fact that I can
see the other player's hands. And so if you have if you know what
a card is, you can't always say, I know that this is the
four of White, because you might have inferred that from the fact that they
told you it was a white card, and you know from the discard pile
and the other hands that right, it can't be anything else. So anyway,
super fun game, so you can buy it. It's like ten bucks
on Amazon. And then the other picks I have, I have a couple
of them. So one of them is a movie that my wife and I
saw last week or the week before. It's called Escape from Germany. And
it's a true story about Latter Day Saint missionaries that were in Germany when the
war started, and so you know, as you can imagine, they were
somewhat hostile toward Americans, and they were also hostile toward UH missionaries because they
were hostile towards certain kinds of religion, and so anyway, it's it's just
a series of miracles on how they got all those missionaries out of Germany.
And I really, really enjoyed it. So I'm going to pick that it's
done by TC Christensen, who's the guy that did the Other Side of Heaven.
And so if you liked that movie or that Brandon movie, then definitely
check it out. And then the last pick I have besides telling you to
go check out JavaScript geniuses dot com, is if you go to so Brandon
Sanderson last year he put up a YouTube video and a Kickstarter and basically said,
I was locked in my house during the pandemic, so I did what
I do. I wrote all these books, but I didn't tell anybody about
them. And so it's a series of books he's called the Secret Projects.
And I listened to the first book on Audible. It's called Tress of the
Emerald. See and I'll put an Amazon link on to the Audible books.
You can buy it with a credit. But it's this one's part of the
cosmir So he has he has a universe that he writes a number of his
books in and you can kind of see some of these worlds converging right beginning
to converge because you have crossover with some of the characters. Usually it's minor
characters, not major characters, but Anyway, this one is in that vein.
The narrator of the book is Hoyd. If you've been following along with
Brandon Sanderson's stuff, he wrote the whole thing in Hoyd's voice, and Hoyd
is one of the main characters in this book. But it is, it
was, it was. It was a fun book, really fun book to
listen to. So if you're into audio books, or if you want to
just I guess you can just pick up a copy of it. The Kickstarter
he mailed out a book every month along with a bunch of other stuff.
But now you can go and you can get the books without being part of
the Kickstarter. So a year later, right, So last year, if
you back the Kickstarter, you got this book in January, and you got
the next one in February, March, and April. And now the first
four books are out because we've gone through April, and so I'm assuming that
the fifth book and the Secret Secret Book series is going to come out pretty
quick here because we're into May. So anyway, I really really enjoyed that
book. So anyway, those are my picks. All right, lazare what
are your book? What are your picks? A question? Do the picks
need to be non technological, or they can be technical or non technical.
Okay, because I only got technical. It's all good. I'm always in
the new stuff and I'm starting to get into AI, so I'm gonna start
picking some of that stuff too. Oh cool. Yeah, yeah, So
I didn't know that I needed to prepare picks, but something on top of
my mind, I'm gonna mention century. Of course, check it out.
The free tier is generous enough for you to get started, and it's it's
it's generous, so you should check it out. But when it comes to
picks, I got one interesting and that is a project by Joanne Leon.
I'm sorry if I'm butchering your name, but it's basically and I'll drop the
links here so you can check it out. It's basically a collection of web
performance snippets that you can installed, not installed, but I move into your
web browsers so you can, you know, check out what is the LCP
element or whatever it is that that the snippet provides. There's also I m
P. There's also the whole loading category, but it's basically at death time
before you commit what you have, if you want to check out how the
performance looks like on your machine. You can check out all these beautiful snippets.
So these are at death time. One more new thing that I came
across and and and anri Elvetica told me about this is the rum archive.
Uh it's it's it's basically like crucks, but it's data taken from a Kama
and it's put together in a database. But you can query it. And
I haven't been playing too much with it, but it's basically, uh yeah,
you can use you use this database to see rump data and you can
split it into different frameworks, et cetera, so can plug that in.
And then also I've been playing with a project called UI dot a Eternity.
So it's a collection of UI components for React built with tailwind and frameer motion,
and they look really good and I tried using them, but some of
them are are really making an impact on the performance. So I'm looking into
these components right now and figuring out how I can or if I can make
them a bit more performant. Right So instead of using frameer motion, can
we do that with plane CSS so we're not introducing or shipping too much JavaScript
to the client. So these are the things that are on top of my
mind, and I would have been more prepared. But I'm sorry. No,
it's all good. Thanks for coming this. It was a lot of
fun. It's good to kind of dive into some of these tools that a
lot of people use. I also found a lot of applicability for if people
were using, like I said, things that are like century but are not
Century. Some of those features are there, some of them are not.
But yeah, I think I have a much better idea in some of these
areas, especially on the APM, the performance side on what I can grab.
So thanks for jumping in and until next time, folks, max out