Hey, Welcome to React Roundup, the podcast where we keep you updated on
all things React related. This show is sponsored by Raygun and produced by Top
and Doves and Onvoid. Top and Doves is very great Top and Doves.
We get top and pay and recognition. We're working on interesting problems and making
meaningful community contributions an Onvoid which provides remote design and software development services on a
task basis, so clients only pay and tests are delivered and approved. In
today's episode, we will talk about what your hosts are working on. My
name is Lucas S. Paganini, one of your hosts in the podcast,
and joining me in today's episode are also the hosts Chris Ruand Hi everyone,
and Peter Osa. Hi everyone. Hey folks, this is Charles Maxwell.
I've been talking to a bunch of people that want to update their resume and
find a better job, and I figure, well, why not just share
my resume? So you if you go to top endevs dot com slash resume,
enter your name and email address, then you'll get a copy of the
resume that I use, that I've used through freelancing through most of my career.
As I've kind of refined it and tweaked it to get me the jobs
that I want. Like I said, topendevs dot com slash resume will get
you that and you can just kind of use the formatting. It comes in
word and pages formats and you can just fill it in from there. So
I'm going to get the ball rolling. So in my case, something I've
been working on in my spare time for a very very very very very very
very very very very very very very very long time is a book about functional
programming, and it's been like a common go project because at one side,
it's mostly started as a way for me to really digest some of the most
complex concepts of functional programming and at the same time wanting to give back to
the community because being quite frank, I have no expectations of becoming a millionaire
with a technical book about functional programming. It was really just to create something
that would be of value for others that are also learning, and for that
there's actually one book that is really really good and has helped me tremendously in
this journey, which I'm going to say now because since I can't talk about
my book since it's not ready and might take five more years to be.
Then I'm going to talk about a book that is ready and it is really
really good, which is Functional Programming Made Easier, a step by step guide
by Charles Skull Funny. This book is two thousand pages of amazing, in
depth, super technical content. Like it is deep. It is like really
really deep. This guy really takes you from surface level up until super deep
functional programming logic. And it does it in purescript. Like there's no JavaScript,
no typescript, everything is in purescript. But purescript can be compiled to
JavaScript, so technically you can write in purescript and compile to run a node
on the server side or just to run JavaScript on the browser, so it
is doable. But honestly, I think it's just good for the learning process
of the book, But I wouldn't really use purescript in my real projects.
It's just too overly complex to most people. And I think that even if
I have a good enough understanding of it, which I don't because like I
understand from the book, but I haven't built enough things with it to say
that I'm proficient in purescript. But I still wouldn't really use it because I
want other people to be able to understand my code and work on it.
And as good as purescript is, it's very niched the amount of developers that
actually know how to write in it, just for you guys to know.
It's super close to Haskell in terms of syntax, which is also kind of
niche. If you look at the amount of web developers in the world,
I would say the lass than one percent knows half called. So what I
wanted to do is a book that has all the concepts that Charles Caulfuni talks
about in this book, but everything in typescript. This is what I wanted
to do, and it's probably going to take a while, but yeah,
this is basically the thing that I've been looking on in my spare time.
So really curious to know if you guys have any particular questions about that,
and also to know what you guys are working on. Yeah, it sounds
that sounds awesome. I mean, I'm I also make courses myself, and
I just started like making a book where I made a book a book it's
like forty pages long, So yeah, I mean I need a brush up
on functional programming definitely. I mean I'm a fan of small like reusable functions.
But in terms of oh man, the stuff like currying and all this
this fancy stuff which can be super helpful, I've just I've just forgotten it
over the years. I think, Yeah, I would be I'm curious,
did you go, like, what's the path you've gone down for the I
guess the book it's set like the generation itself. Are you using should I
even say latex? Or have you gone towards like a markdown. There's so
many solutions out there now for this type of stuff. I'd be curious and
like, what tools are using there? I have never used Latex. I
think the closest I got to a complete It's not that bad, it's just
weird. I think the closest I got to a completely pure functional language was
Hascal. So a while ago I was trying to learn Haskell. When I
was I was like, okay, let me go into the core of functional
programming and then I can take it to out development. So I tried to
or house go and I didn't go super deep on it, like to the
point where I actually built a useful API, but I was able to at
least do some simple scripts like validating an email, validating document registration, like
doing some scripts like that, but I wasn't able to really like build something
as complex as an API with it, which I think the complexity with functional
programming starts when you need side effects, because it the core idea is that
everything needs to be pure, but you need to be able to have side
effects, right, Like, you can't just have functions that always return the
same thing, because what if you have a function that needs to get the
current time, It's always going to be different, So how do you do
that? You know, and there are ways for you to do that in
a pure way like it. Some may say that it's kind of a hack
because at the end of the day, you're not like really returning the same
thing all the time. But in a way, it's kind of like conforming
to the functional programming standards. But when you're building an API, which requires
a lot of that, then that's where I think most of the complexity of
functional programming lies. And I wasn't able to do that with Haskell or purescript.
I did it with FPTS a bunch of times, actually, and fpts
is a library for typescript which exposes multiple functional programming data structures. It's a
really amazing universe of data structures, Like they have almost anything that you can
think of. They have wrappers around a synchronous call. So for example,
we have promises in jobscript, but promises they are eagerly executed, and in
FPTS, they wanted to have a synchronous way of retrieving data that would be
lazily executed, so you could compose it with other operators and it would only
run at the end, like not while you're applying to the operators, because
when you're doing functions, then you do like dot then and that executes,
and then it goes to the next dot then and that executes it, then
it goes to the next dot them. But the idea with fpts is you
define all the operators that will transform your data, and the data only goes
through the entire pipeline of transformations when you call it at the end of the
entire chain. So it's kind of like you apply all the operators and you
return something that FPT calls a task, and the task is pure and simply
a function that returns a promise, but it's not a promise itself. It's
a function that returns a promise. So it's not executed yet. You need
to call it to execute. So everything else PTS is kind of like that.
It allows for lazy evaluation of a bunch of things. They also have
rappers for maybees, so we do a lot of like string or noul.
If you were to really use functional programming, you would not have nual,
you would have a maybe or other languages call it an option, which is
a wrapper around the value that could be nulable. So imagine a data structure
that is like a data structure that has a property called tag, and this
tag is a string that can either be some, are on. If it
is none, then that's a that's the entire object. It's like an object
with the property tag equals to none. If it is some, then it
has another property called value, which holds any kind of value that you want.
So and then you can have a type union which is like an option
of t is equal to none or sum of T. So when you have
an option of a string, that means that either you have none which is
not, or you have a sum which has a property called value that holds
the string. So there is no rule. Uh. And and then you
might say, okay, cool, but what the hell, like, really,
why do you need that? And the cool thing is all the operators
that come with it. So if you have an option, then fpts exposed.
This is a bunch of operators for you to work with that. So
you have like a map, and a map operator takes a function that converts
the value, but only converts if the value exists. So if the value
is none, then the function never gets called, so you don't need to
like check if it is neual, then don't do anything, and if it's
not dual, then do the transformation. You don't need that because it's already
wrapping that for you. You know, your function is only going to apply
to the value if the value is not neual, so you don't have to
write checks for new and undefined. And then you could also, for example,
use an operator called flatMap, which is going to return another option.
So imagine that you have the option of a string. Let's say that you
have like a an email, so this email my might are my not exist,
So you have the option of a strength that is an email, and
then you want to transform that email into using a function that takes the string
and it also returns an option. It also returns something that might or might
not exist, So you can use the flatMap operator. And if you use
the flatMap operator in a in an option, if the option is none,
it's not going to do anything. If the option is some is going to
apply, and then whatever returns becomes the new value. So if it returns
none, then you have none. If it returns some, then you have
the value transformating. So there are a bunch of utility functions like that,
and some of them are really, really really powerful. And I absolutely love
fpts, and I'm really thankful for Julio Guanti, which is the creator of
this universe of libraries. But the problem is that not your co workers aren't
necessarily going to keep up with your learnings of fpts. So we got to
a point where I was really proficient in it, but the rest of the
team wasn't. And okay, cool, The code was cleaner to my eyes
because I was more proficient in it to understand it, But to others,
they were like, I just want to do a cred How the how do
I do this with this? You know? Uh? And then we just
decided to not use fpts anymore, even though it's an amazing library that solves
a lot of problems. It was just not worth the overhead to the engineers.
Yeah, so I do have a question. So yeah, I think
it's a good book. So you know that I think most of them in
the industrialized a lot of people are kind of like from out so reconize us
of like op neds sense or really you come to talk about like, okay,
solid principles, which many of them usually kind of highlights from Opie concepts.
And in your book, like, is then the way you're trying to
kind of encourage a lot of people to practice like functional programming in this real
sense? Like, is then any way or is it maybe something you're kind
of planning. Maybe I wouldn't really say she's spilled the beans, but just
maybe is there I feel like thought about it, I'm front of maybe a
way to kind of sensitize or using functional program is the best way to go?
Was it very nice to go the goal? If there's any part in
my book, because thus far it's just explaining the concepts. There wasn't any
part of the book thus far there was like just trying to convince that functional
programming is the golden standard and or is terrible because I've been there already and
OP is not terrible. I actually went back to a lot of things that
like, I missed a lot of things that OP had, especially dependence injection,
Like a lot of frameworks offer dependence injection, and there was just the
ex the dependency injection within functional programming wasn't wasn't the best experience. So there
are a lot of things that I missed in OP when I went into this,
the search for the golden standard of programming that I actually that made me
think back, look back and think, oh, actually, it's not that
functional programming or OP is best. It's just you need to be able to
mix and match and figure out which one is the best in each context.
So, for example, you're creating a bunch of utilities, why would you
do them in OP? Like that makes sense? You can build like the
next low dash. Why would you do it? You're just going to create
a bunch of unnecessary dependencies. It would be much better if you just created
isolated functions. But now you're creating a component. This component holds state.
Why would you not use a class? You know, that's what they were
built for. It makes total sense to use them, And what I actually
generally do is I try to isolate as much as I can from the class
methods and properties into functions and then call those functions in the class during its
creation. So let's say that I have a method in a class that is
like really complex, Like imagine a method that is like three hundred lines long,
and then you're like, it makes sense that it belongs into this class,
is not going to be reused anywhere else, so there's no point in
making it a function, and everything inside of it is not utilities, Like
you have three hundred lines, but you already like isolated everything that you could
which were just utilities like data structure, conversions, et cetera. The three
hundred lines that you have there are all lines of actual business logic. There's
specific to your application, and it wouldn't make sense for you to just isolate
that in utility functions. You can still create a function that generates that method,
and that will at least allow you to remove those three hundred lines from
the class file and isolate that in another five and just important. So what
I generally do is every time I have a function that returns another function,
I prefix it with make so Let's say that I have a function that it's
supposed to return. A function that receives like a body of data and processes
that and returns a response. Let's say that it's like a I don't know
a calendar system, for example, So you have a post request that receives
some data and it needs to go to the database, save that data,
do a bunch of validations, and then return the calendar object, the calendar
event object that was created. So you could just have this entire method in
a class called like calendar events handler or calendar events controller whatever, or if
you just wanted to clean up that file, like the class itself is too
long and you want to be able to isolate that function just for readability,
you can create another file called like make create calendar event, and that ex
is a function called make create calendar event. And this function takes all the
dependencies. So let's say that for this function to execute, he needs a
reference to the database service, a reference to the time zone service, a
reference to the user service. Okay, so these are the parameters that you're
going to give and then it's going to return to you the function that takes
other arguments and creates the calendar event and returns it if that makes sense.
Hey, there, this is Charles Maxwood. I'm excited because I wanted to
let you know about this thing that I pulled together that I had just I've
been dying to have this for years and I never felt like I could,
and then I just realized that there's no reason why I can't. So I'm
putting together book club and we're going to read development focused books, career books,
you know, technical books, whatever. The first book that we're going
to do is going to be Clean Architecture by Uncle Bob Martin. If you're
not familiar with clean code or some of the other stuff that Bob has done,
check that out. I've also talked to him on the Clean Coders podcast,
which is on Top End Devs. But yeah, we're gonna get on.
He's going to show up to some of our meetings. And what I'm
thinking is we'll probably have like five or six people part of the conversation along
with Bob and I at the same time, and we'll just so somebody can
come on, they can ask their question, and then we'll just rotate people
through, so we'll mute one person, unmute another person, when it's their
turn to come on and be part of the discussion. So we'll do that
for like an hour hour and a half. And then the other part of
it that I'm putting together is just kind of a meet and greet gather area
on gather Town. And so after the meetup and the call, we we'll
do as we'll all go over to gather Town and you can just log in,
walk up to a group and have a conversation, and that way we
can all kind of get to know each other and make friends and get to
know people across the world. One thing that finding is that, yeah,
the meetups are starting to come back, but a lot of people don't have
the opportunity to go to a meetup and I really want to meet you guys
and talk to you. So we're gonna put all that together. It'll all
be part of that book club. You can go to top endevs dot com
slash book Club to be part of it, and I'm looking forward to seeing
you there. The first book club meeting will be in December, the beginning
of December. We're starting the first week of December, and you'll also be
part of the conversation about which book we do next. I have one in
mind, but I want to see where everybody's at. So there you go,
yeah, yeah, yeah, so yeah, I understand. Actually,
So I think one thing is that I think functional program is actually I think
the functional program we do have, they'll spend some of the weaknesses. However,
I feel that a lot of people kind of you know, feel that
Okay, Opiece, it beats a bit. It also kind of like stimline
principles are all and that when you're maybe for example, i've actually kind of
been in record if you were by if you're like, so you're kind of
creating your utility functions, you know, just they're going to be like functions
and like if you will be like, oh, why don't you put this
in the class and those methods and that kind of thing, because of well
they're kind of familiar with opiece class methods and so on. So that's why
I asked that question because it's kind of like a very big and I want
to say controversy, but I think that's that should be the world. But
yeah, that's that's absolutely great. So so I think I'm another question,
the question is do you think like, Okay, I don't know if you've
kind of had experience with a lot of people who kind of purely follow functional
program I think I might say if I kind of follow like Charls Simpson on
LinkedIn, we kind of talk so much about like functional programming. So I
don't know, do you feel like if you've actually worked with like people who
are kind of like functional programming stream language, if that a lot of people
actually do it a lot, do you feel that there's this kind of knowledge
gap in some aspects of functional programming that you feel that maybe in your books
you're kind of going to highlight because I know so people feel program is just
functions, just maybe functions, functions and functions, so like that, Yeah,
that kind of thing. What would I tell people that want to learn
more about functional programming or that might that maybe they have like a simplified view
of it, just thinking that functional programm is just creating functions. Okay,
that's a good question. So I would say, first off, a functional
programming language is a language that allows you to treat functions as first class citizens.
And that's different from just being able to create functions, because you may
be writing functions in a language, whatever language you can think of, like
I'm sure that most languages, most programming languages have the concept of functions,
but the fact that you can create a function doesn't make that language functional.
What makes it functional is being able to treat functions as first class citizens.
And what do I mean by that is being able to treat functions as data.
Like when you call a function that is like ad and then it takes
two perameters two numbers one and two in returns three. That's you expect every
single language in the world to support that right, to support the ability for
you to create a function called ad that takes super memeters with numbers and returns
another number. But functional programming languages are special because they allow you to pass
other functions just like you would pass a number or a strength. You should
be able in a functional programming language to call a function that as an argument
receives another function, and it might return yet another function as a result.
So the first requirement for a functional programming language is for you to allow you
to treat functions as first class citizens, functions as data. Then another huge
thing, which is not like It doesn't mean that it doesn't allow the opposite,
but it needs to allow immutability ideally it would enforce immutability. But technically,
like you can say that a functional programming language is functional even if it
allows mutability, just simply by also allowing for immutability. So JavaScript is functional,
but it also allows you to mutate the objects. If you were to
write functional code, you would never mutate anything. But then you say,
Lucas, what do you mean, Like I have a user object, I
need to change the name. Sure, you create another object with the new
name, but you can't mutate the original one. And there are a bunch
of libraries that facilitate your life on that. So you could use EMMER,
you could use immutable JS, you could use fpts as I was mentioning previously,
and then you would write your entire code, including your variables, like
you technically should not use let variables anywhere because they are also mutable. So
you should be able to write everything as constant, every every everything needs to
be constant. Nothing can be mutable. And it's crazy because you can actually
write everything that way. Like at first it was like that's that's got to
be impossible, like that's there's gotta be a scenario word, But it actually
is possible. So I would first say that, just so that the person
can understand that functional programming is not just creating functions. And then I would
say what do you get by knowing this and by working in a language that
allows that? And then and then I would tell the person, now you
are equipped to start learning functional programming techniques. So now you can research about
maybe about hiders, about lenses, about currying, as Chris was just talking
about, Uh, you can learn about semigroups, ords, semiards, rings,
moneds. You know, there are a lot of abstractions which all those
names that I just mentioned, they are patterns, you know. They're they're
not specific to a particular language. They're not specific to Haskell, they're not
specific to scholar, they're not specific to jeascript. They are patterns kind of
like in OP we have like the adapter pattern, we have the strategy pattern.
In functional programming you have a bunch of patterns too, And I think,
uh, functional programming developer is someone that understands the patterns that exist,
and then he can apply those patterns even in context where he's also using object
or into programming. So you can have parts of your code that are functional,
other parts that are that are OP but the thing is you got to
understand the techniques and the patterns, that's all. Yeah. I wanted to
point out a funny, like a funny side note. You mentioned there's there's
no language where you shouldn't be able to define a function. And I remember
my first days when I was learning C Sharp and I'm like, oh,
like exactly how you describe, like, oh, I just need a quick
function here, I'm gonna do this, and my mentor then he's like you
can't, and I'm like what. He's like, Yeah, there's no such
thing as as just like a plane function. And I was like what because
like I was coming from the front like front end world, where okay,
yeah, in Angular you're you're still doing class stuff, but I was in
the React functional hook world and it like it like blew my mind. I'm
like, okay, so I really have to make like a static class with
a static function and that acts as my or a static method and that acts
as my function. He's like yep, so I mean now they have they
have local functions. I'm not sure how new they are, but uh,
I just wanted to point out, like for people who are listening to I
agree with everything you guys are saying like, it's there's huge value in kind
of learning both of these paradigms because and for me, I think it's stubborn
and kind of ignorant to be like, oh, only functional programing is good,
only class OP is good. I think there's there's cool ways of solving
problems with both both ways. But I will say it's super hard. At
least it was for me. Like I spent years doing functional react hooks and
now I'm right more C sharp, and you somehow you keep you carrying like
these functional ideas that just don't always apply or they're just for the other people
who have been writing OP forever, they're like, why didn't you just do
like this? And it's like a super obvious implementation after you see it,
but you just you're just, yeah, you're just stuck in one mode or
the other. So for people who are listening, if you're intimidated or whatever,
it's I mean, it's all stuff that we face every day, and
and sometimes they're there. First of all, there is no like one best
solution. And then even even whether you know you're doing object oriented or functional,
even then, as Lucas was saying, there's there's so many different strategies
and patterns that you can do to solve these things that yeah, I don't
know, I'm kind of rambling on, but yeah, I don't know where
I'm going with that. I would just yeah, I'm just saying like,
yeah, I mean, there's volume both. I guess it's the final That's
what I'm trying to say. Definitely, definitely, definitely. But what about
you guys? So I took thirty one minutes to talk about my side.
I feel like now I'm curious, so we may even have to do like
another episode just for each of you. Yeah, yeah, ok, yeah,
I mean what I'm I'm working on, of course, I'm using React,
but the actual what I've been pushing in the last episodes is my video
generator thing. But in terms of React, it's nothing like specifically a framework
or anything for React. I'm just using it as my as the front end
framework for the for the website. And although I should say maybe that will
get interesting, like in later episodes, I can mention or whatever. I'm
trying to get into an electron app because I think the type of app makes
the most sense as a desktop app because you need some like recording, screen
recording and voice recording and all that stuff, and I'm learning all the weird
I never really learned electron, and they have kind of a I'm sure it's
not weird for experts and people who have been using it, but they have
a like you have your renderer and then you have like the actual like node
code. I don't really understand it. I have to the documentation, but
but there there's some quite interesting stuff. It's I think it's mostly around security,
but there's kind of like a messaging bridge, so you make sure like
because it runs in a browser and you it's basically so like you can't expose
the entire file system to like the world as an example. But yeah,
so I don't I don't have any think like to too crazy react specific in
my in my projects. You should check out Taudi. It's a project that
yes, uh, it's an alternative to Electron, and from what I see.
From what I see, it compiles two really really really smaller bundle sizes.
And I think the way that they do this is because Electron compiles with
the Chromium binary along with it, and Taudi compiles in a way that uses
the the browser engine that is native to the environment. You're compiling two so
and this is a gas actually, but I think it's the only thing that
makes sense because it generates bundle sizes that are like three megabytes. That's awesome.
Yeah, yeah, because that's the one like the infamous thing about Electron
yet, like yeah, it's super cool. You can now you can build
even desktop apps with JavaScript. But that's always what everyone talks about, is
you have like I think the minimum is like two hundred or something like two
hundred megabyte, so it's pretty high. I'm sure they've improved it, but
yeah, cool. I will definitely check that out. And I think they're
I think they build not they bundle not just for desktop, but for desktop
and mobile, Okay, always a bonus. Yeah, yep, cool.
So yeah, just check it out because I'm not sure if they if they
have mobile support and are adding desktop, or if they have desktop and are
adding mobile, or if they are I have both because since then new rks
you really want the desktop support then, so perhaps check that out before because
otherwise may be better to go with Electron just because like at the end of
the day, is is the de facto standard currently right, like everyone using
it and is battle tested. M okay, how about you, Peter,
Yeah, not really much. I kind of worked on articles like last week,
I looked though some CSS. I think it's be the kind of like
the landmark of my week kind of social meetings and CSS or kind of awesome
boots. I think it's about texts rapping on the risk right. I kind
of released it on the refinance block. I think I worked on rounded corners
and school bus and soso folks right to not really much just fancy saisis Yeah,
yes, okay, Peter, I have a I have a question for
you. This is like super general about CSS. What do you what are
your thoughts of the I don't want to mess it up? Block l modifier?
Is that? Like is that still are people using that? Was that
old school or I remember that from like years ago? What do you think
about it? Or yeah? Yeah, well the block Yeah, I think
it's small in the old scoopacity if we use it both the is it for
okay if you don't kind of combat on inline elements to like your block element
as as, I think it's kind of just in those cases, yeah,
as I feel it's the kind of just yeah, I just remember like I
mean they are they are. I understand the concept because like you're very specific,
you know exactly where your style will be applied. But I just remember
you can end up if you're too how should I say, if you're too
flowery with your writing, you end up with super long tags? Yeah,
yeah, exactly. So I think what once you need to understand. I
think most of the time is we just need to I think, like more
in the elements that are kind of default values. Right, so when men
aidlines and events are block that kind of I acknowledge. I think that will
actually help you to actually know I assigned that identifyer to for example, you
just assigned like a block identify it to destart this kind of pointless because you
know it's kind of a block element, right. But then you may be
a situation whereby we want to assign something to like re spam or maybe like
a paragraph, right, you need to like put the identify and then yeah,
maybe you want to kind of just some kind of fancy stuff. Then
yeah, we get so I think it's it's still used though, but I
think it depends on your knowledge on how like the defaults the default to displays
for all, like like elements, right, Yeah, I honestly didn't even
recognize the pattern when you said block element modifier because I was so used to
just saying Ben that I forgot what, uh what the letter is actually then,
But yeah, it's funny that that really is. It is going into
like not deprecation, but very like not used anymore for the community. Like
it seems that everyone that was in that train is migrating too. H every
every the entire internet seems like yeah, yeah, exactly exactly, which is
interesting because that, uh, that's also connects to the topic of functional programming,
like tailwind is not then, but functional programming in CSS if you really
think about it, I haven't seen the source, so yes, so then
would be the OP of CSS. It's literally that because you have the block,
which is a class, and then you have the elements, which are
properties inside the class. So this is OP. You think about things in
terms of objects, but in tailand you think about things in terms of what
they do and not what they are. So you think about utilities. You
think this should be spaced like that, this should have display flax, this
should et cetera, et cetera. So it's like just a bunch of utilities
that they don't give meaning, but they give functionality. Yeah, I've never
thought of styling like that way, but yeah, yeah, I think that
that that's kind of like a goodlogy about it. Yeah, that's very good.
Yeah, maybe maybe that's like your resource or or something book or something
about it. It's absin a little good that's a little good analogy. I
think that's that is kind of like if we're good, it explains to some
well maybe a yeah, an intermediate or a bit seen that probably yeah,
they will probably in a different light. Yeah that's true. Well wow,
And I don't know if I just said that at loud or if I read
that somewhere else, because to me, it feels that that's how they should
they should present TAILWIN. I think that this is the easiest way for you
to present tailwin. It's like the tailwent website should say this is functional programming
for c This is like the best way for you to introduce it. And
so I don't know if I'm just if I just created that or if I
actually read that somewhere. It seems like pretty clear that it should be that,
but yeah, yeah, I think I think that's actually true. Want
thing is that. I think the will present it that way because it's kind
of like for beginners, a little beginnings kind of what can we throw into
the problem on the standdown to place set? Have you ever wished that you
had a group of people that were just as passionate about writing code as you
are? I know I did. I did that for most of my career.
I'd go to the meetups, I try and create other opportunities, and
it was just really hard, right the meetups. I got some of that,
but they were only like once or twice a month, and it was
just really hard to find that group of people that I connected with and really
wanted to, you know, talk about code a lot, right, I
mean, I love writing code. I think it's the best. And so
I've decided to create this community and create a worldwide community that we can all
jump in and do it. So we're going to have two workshops every week.
One of those or two of those every month are going to be Q
and A calls right where you can get on you can ask me or me
and another expert questions. Uh. The rest of them are going to be
focused on different aspects of career or programming or things like that. Right,
So it'll go anywhere from like deployments and containers all the way up to managing
your Form one K and negotiating your benefits package. Well, we'll cover all
of it, okay. And then we're also going to have meetups every month
for your particular technology area. So we have shows about JavaScript, to react,
angular view and so on. We're gonna have meetups for all of those
things. I'm going to revive the freelancer show. We'll have one about that
right, so you can get started freelancing or continue freelancing if that's where you're
at. And I'm working on finding authors who can actually do weekly video tutorials
on some thing for ten minutes. That's related again to those technology areas,
so that you can stay current, keep growing. So if you're interested,
go to topendevs dot com slash sign up and you can get in right now
for thirty nine dollars. When we're done, that price is going to go
up to seventy five dollars, and the thirty nine dollars price gets you access
to two calls per week. The full price at one hundred and fifty dollars,
which is going to be seventy five dollars over the next few weeks.
That price is going to get you access to all of the calls and all
of the tutorials and everything else that we put out from top Endevs, along
with member pricing for our remote conferences that are coming up next year. So
go check it out top endevs dot com slash sign up. Okay, so
let's start wrapping things up. So I don't even know if we want to
do promos because the entire website, the entire episode website, what the entire
episode was about telling what we're working on. So I myself don't really have
promos. But Chris, if you have anything to say, yeah, I'll
just post it again. But it's still each week I make no progress.
So it's uh, but I should be working on it a little bit more.
It's my code video converter. Okay, what about you, Peter,
Well, yeah, I want to pour the articles I walked on on the
chats. Yeah they published already and just pissed it all right. I will
send those links in the comments section for all of you that stick up until
the end as most of the yeah, most of the web. Why was
the website? Why? Why is my brainthinking of website that makes no sense,
But did you walk on the website this week that strode up until the
end of this website. Thank you because we really talked about some really complex
things today. So yeah, congrats on reaching the tuoter. Yeah, I
saw you next week. Yeah,