Detailed Notes
We have had many discussions about software patterns and anti-patterns over the years. However, we have not talked about creating software patterns. That is an important topic because they have to come from somewhere, and the list will grow. This session from our mentor classes shows how to build on and document your experience.
Creating Software Patterns Has Many Steps There is a difference between learning any topic when compared to teaching it. Likewise, solving a problem once is only a piece of repeating or automating that process. Patterns and Anti-patterns follow those same progressions. We do things for a while, observe them, clean them, and communicate our findings. All of that takes time and is an excellent way to become a better developer.
The Mentor-Mastermind Group This series comes from our mentoring/mastermind classes. These classes are virtual meetings that focus on how to improve our technical skills and build our businesses. The goals of each member vary. However, this diversity makes for great discussions and educational value every time we meet. We hope you enjoy viewing this series as much as we enjoy creating it. As always, this may not be all new to you, but we hope it helps you be a better developer. Drop us a line to find out when the next one is so you can join our group.
Other series you might consider:
Creating a Product Catalog Software Design Patterns Anti-patterns and How Not To Build Software
Transcript Text
[Music] so you get repetition you're finding something that you start seeing across a series of problems or solutions that you see hey i'm i see some repetition here well then you want to look at is there because you're going to see that repetition but you're also going to see like exceptions and error handling and thing of that things of that nature that are yeah because you're sort of going to come up with a germ of an idea and then with that you're gonna see okay how did these vary um and when i say exceptions and error handling it's more about it's not really the technical writing exceptions or handling errors but it's more i think of it as you're reading a paper and there's a concept that's presented to you and you say well that doesn't really work all the time or there are certain cases that we maybe do see that are outliers that we realize that yes this pattern works however here are some situations where it doesn't so we're even though we're presenting for example a pattern part of the pattern is going to say hey here's some places that this is going to be useful we may also say here's some places where it's not as useful or maybe not useful at all you know there may be uh you know sort of like some red herring type situations where you say oh that may look like it's this perfect use of this pattern but it's not so you you start with sort of a rough draft of here's my idea of what a pattern is or what this anti-pattern is and then with that you want to look at it with a critical eye of okay is this is this a j like a global pattern does it only work in certain situations and then you want to take that which is probably going to be a somewhat complex and a little bit amorphous idea and turn it into some sort of documentation that is a little more readable and easy to maintain and the good examples of this exist all over the web if you look at if you go search patterns and any patterns much like use cases and other things that show up over and over again you can see some pretty nice formats for documenting one of these so pick a format that is is readable and pretty easy to maintain you know a lot of times it's things like what's the name of the pattern what are maybe some alternate names for the pattern where is it most useful what is it how does it work and then you know here's an example of it in action something like that now that kind of a a page fits very well to like a wiki site or something like that where it should be fairly easy for you to read it and make adjustments as needed and then yeah because you're gonna it goes back to the rule of three is basically saying okay now that we've we've thought about this we've documented this pattern in any pattern let's look at it as are there some ways that maybe are there ways to extend this or to make it uh more encompassing or maybe even spawn another pattern based on what we're seeing you know are there other it's so like you've looked at it you found some repetition you found some areas that are possibilities once you've done that do you sweep through again and see or you do you sweep through again and do you see maybe some additional repetitions and possibilities particularly like if you're building out for your organization or your personal history if you're looking through and you're you're starting to say hey here's some patterns i see well maybe in those patterns there may be patterns of patterns she may see that we did this we did these 10 different patterns and this piece or this step occurred in every one of those so maybe we want to essentially abstract that out and say oh by the way here's yet another pattern that shows up and um we've talked about those a little bit before i can't really call them meta patterns or super patterns but it was basically you know if you're dealing with these types of situations here's some some patterns that you're going to look at and it may even be a pattern where it says here's the thing you want to do but also as part of your solution let's go in and it may be a combination of patterns in any patterns where it says you know here's your overarching pattern but within that you're probably going to use these three patterns and you're probably going to worry about not doing these four any patterns and things like that and these are that's why you you know going back to up above this is why you want this to be pretty readable and easy to maintain is you want to be able to you know have nice little bullet points or highlighted notes or something like that that it's easy for you to sort of like keep this as a living document and grow the ones we see out on the web or if we buy a book those are static you know those aren't going to be those aren't generally speaking going to change very much but that's opportunity when we create our own patterns in any patterns we get to continue to refine them and make them better and better and then as we're going through this we want to make sure that we do keep it yeah you think about like commenting code and things like that you want to keep that up to date well it's the same thing with your patterns and any patterns you want to review them often enough and keep the the documentation for it pretty clean and concise because if we don't it's going to make it pretty hard to share which brings us to the next point so once you've built this yeah you're doing this to some extent for your own uh becoming a better developer kind of approach but also you want to be able to give back and so what you want to do with that is think about one um it's going to cost you to do it and there's going to be some some time and some reflection that you're going to have to do to think about is this um is this something that's that's makes sense to share is this something that is uh a general kind of situation or is it something that i run into because of you know my weaknesses my challenges my experience knowledge or lack thereof so when you're sharing your knowledge you realize yeah there's going to be a little bit of cost to it and part of that though is that you want to spend some time in that doing that retrospection is is reviewing what it is that you've put together because this this actually sort of while you're investing time in it you're also investing in yourself because if you're if you're reviewing it to the point of being able to talk to somebody else about it or to teach somebody else what is this pattern or this anti-pattern then you are helping to really firm that knowledge in your mind as well it's why you know people can complain about you know teachers teach and those that can do do but you also find that teachers that teach the same thing they know that topic they can regurgitate that copy that topic pretty darn well because they've they've thought about it over and over again that's the same thing here is that we've thought about it to build our pattern or any pattern but also now we've taught about thought about uh sharing that and how would we talk to somebody else about that pattern or that any pattern and so when we communicate it we do want to make sure that we we try to avoid like buzzwords and internal concepts and in line of business specific language where possible so if we're using a pattern that is a general pattern but we've built it out of a bunch of healthcare applications we created we want to make sure that when we share that pattern we don't have a lot of healthcare-related lingo that's a part of it and this is these are somewhat general communication types of bullet points and skills but it is a little bit different um because this is this is more of a in some sense it feels like a casual kind of sharing of patterns in any patterns but you want to make sure it's formal enough that it is you know useful and reproducible and the reason you want to do this the reason why i spend these costs is really to to help out the community this is sort of like you know giving back to others because you've probably benefitted quite a bit from patterns and anti-patterns over the you know the months or years or decades that you've been professional and this is how such things get created and how the the developer community such as it is whether it's specific to a language or platform or just the overall you know sort of loose software development community that's how you you give back into that that has fed you whether you you realize or not and i think most people do now because you can you can go your favorite search engine and search just about any problem that you want to solve and you can find some discussion of it at least if not some you know right down to absolutely perfect code examples of solving that problem and that saves us who knows how much time and so it just sort of makes sense for us to say because of all the times that i've been saved i'm going to spend a little bit of time and give back and provide to the development community and as part of this is part of our like um our review and our retrospection is think about it a little bit and say is this something and this is probably sort of more upfront at the first part of it is is this useful to you this pattern or this annie pattern that you're thinking about sharing out is this something that you wish you had had before probably um is it something that you will use in the problems you solve ahead possibly and then with that it's like okay this seems to be useful well let's make sure that we we review it and strip out the specific problem language and items so that this is a a good general case pattern because sometimes we we get a little bit focused on the weeds i guess for the problem we're working on and we say oh yeah we need to do all of this and when you step back you look at you say oh well yeah i need to do those three steps within this pattern for my specific problem or my line of business but generally speaking you can maybe generalize that and just say you know you need to do you can turn it into one step and say here's something you need consider for example um you may have something that is a like i'd say a customer record that has you know first name last name account id city state zip things like that you may have specific things that you do that you say oh yeah i got to make sure that this zip code format and this address format is uh properly handled for my specific case you know that you have a a property like i say it's a us you have a proper u.s address and you have zip code and and then you find out that well once you go beyond the us those rules change a little bit and so in that case instead of having language that talks about things that are specific to a us address verification as you just say you know make sure that you have a address verification process involved as part of your pattern it may seem like a little bit of of of picking nets in a sense a little nitpicky type of approach but it it really does help to take that step and generalize the the language and the text that you use don't be afraid to do and actually definitely even if you are afraid do some sort of a code review process review with maybe some of your co-workers or peers or things like that is you know or maybe even just family members whatever to have somebody read back over it because this is something you want to be you want to think of as like this is something you're publishing to some extent this is a an ex this is going to be a reflect on you a little bit so make sure that you do things like you know grammar checking and spell checking but also just make sure that the the wording that you use the phrasing that you use that you know some other people have taken a look at it can can say yep that makes sense or i have no idea what you're saying here and then you know now you've got it is do a nice little write-up of your pattern or any pattern and in doing so this is where you basically publish it whether it's to uh you can create a blog article either on your site or uh maybe there's a certain site somewhere that it makes sense to post uh like um i'm trying to think of various places maybe it's like a you know a reddit or um you know one of those kinds of places or maybe like a uh i don't even know who would be available for like ours technica or one of those that are more technical type sites you may want to if you have a podcast you may want to do an episode on it if you've you may listen to a podcast where it makes sense to reach out to that person and be a a guest and talk about your your patterns or android patterns uh maybe you've got a a slack channel that's either uh internal or a group like developer nor or you know like a user's group or developers group for your uh your platform or wherever you are geographically that it makes sense to post these out and you know get it out there so other people can take advantage of your work and benefit from some of your experience so what do we learn what was the the point of this was really you know reiterate that hey patterns are a way for us it's a way for us to solve problems and to get there faster as opposed to us having to reinvent the wheel any patterns are similar is these are ways for us to avoid obstacles you can think of them as warning signs as you're driving down the road so you don't run into the same pothole or take the same wrong turn that somebody before did this this goes back to the idea we all individually whether we've been doing this for six months or 60 years we have experience that is unique to us and there is a value in sharing it with others and so why not and part of it is because we want to give back people have taught us people's the experience of other people has benefited us so let's take that and turn that back to the community and provide our experience in a way that is helpful to others and then the other thing is that we do get a little you know sort of as a selfish point is when we do something like this and teach others our lessons it helps firm it in our mind and helps us understand it better questions and comments if anybody's talking you are muted say hey rob so if you're new on the project and uh they got bad practices so how would you solve uh you know those but partners in in case uh people don't uh continue i mean in case you know what a good pattern might be so how do you solve that well if you i mean if they've got some bad practices then i'm going to assume that there are some anti-patterns that they have have adopted and what those can either be uh they may be things that are generally known that you can point to and say hey here's a well-known anti-pattern that we're doing and so we need to stop it or this is where you do take a look at it and say hey we we have this practice that we have done for a while and we can see where it has been a failure or not pleasant or has causes headaches and that's where you you know you walk through and say okay we've done this a bunch and it has given you taken us to the same bad place each time and so you can take a look and say well here's analyze and say well how did we get there oh in each of these cases these are the three things we did so let's talk about not doing those three things the next time we get into that situation yeah this is uh it goes back to sort of this that repetition and reviewing it and say hey this it looks like this when we do this this bad outcome occurs so let's talk about not doing that whether it's uh it may be something we just said don't do it at all or it may be something where you say you know we we still need to go down that path but we need to find a smarter way to do it and it's either it may be something that you can see as you're looking at it and you can say hey this i see where if we make these changes we can avoid these bad practices or it may be something you know in this in that case because you're sort of if you're coming into a place where there's a lot of bad practices where it may be worth it just say hey i'm this is what i see i see these things causing these bad results why don't we talk about how we can avoid doing those things does that make sense yeah it makes sense yeah thank you yeah so hopefully they will be able to be you know some uh i adopt uh how do they go and adapt to the new changes because uh sometimes you know those new changes usually are very hard to kick out if people are used to doing the things that start anyway yeah yeah okay yeah it makes sense thank you other questions and comments i see our muted i'm not hearing you mike you have to have your mic turned off maybe is mike saying something is he on music it looked like he did for a second and then he he muted so it may be an audio issue there let's see oh here's a chat he's probably running it too yeah he sent it oh here we go maybe we can do a follow-up to this one on how we can how to contribute to the community uh that's probably not a bad idea i sort of take that that publishing side of it and uh how to take it beyond just getting it out there good point okay so uh let me get this out of my way so i can actually see here yeah as always thank you as always for your time your contribution to become a better developer you know spending this time and investing yourself almost all of us that's our goal is making every developer better and as always if you have any questions comments anything for us including suggestions to you know enhance this or future topics and email us at info development or dot com there's a contact us form out at developmentor.com we have our youtube channel where we post stuff every tuesday and thursday we have our vimeo channel where we have some longer form videos that show up from time to time including a lot of these presentations and we've got a paid developer page out there on facebook.com and that being said thank you for your time and we'll talk to you next time [Music] you
Transcript Segments
[Music]
so
you get repetition
you're finding something that you start
seeing across a series of problems or
solutions that you see hey i'm i see
some repetition here
well then you want to look at
is there
because you're going to see that
repetition but you're also going to see
like exceptions and error handling and
thing of that things of that nature
that are
yeah because you're sort of going to
come up with a germ of an idea
and then with that you're gonna see
okay how did these vary
um
and when i say exceptions and error
handling it's more about it's not really
the technical
writing exceptions or handling errors
but it's more i think of it as you're
reading a paper
and
there's a concept that's presented to
you and you say well that doesn't really
work all the time or
there are
certain cases that we maybe do see that
are outliers that we realize that yes
this pattern works however
here are some situations where it
doesn't
so we're even though we're presenting
for example a pattern
part of the pattern is going to say hey
here's some places that this is going to
be useful
we may also say here's some places where
it's not as useful or maybe not useful
at all
you know there may be uh you know sort
of like some red herring type situations
where you say oh that may look like it's
this
perfect use of this pattern
but it's not so you you start with sort
of a rough draft of here's my idea of
what a pattern is or what this
anti-pattern is
and then with that you want to look at
it with a critical eye of okay is this
is this a j like a global pattern does
it only work in certain situations
and then you want to take that
which is probably going to be a somewhat
complex and a little bit amorphous idea
and turn it into some sort of
documentation that is
a little more readable and easy to
maintain
and the good examples of this exist all
over the web if you look at
if you go search patterns and any
patterns
much like use cases and other things
that show up over and over again you can
see some pretty nice formats for
documenting one of these
so pick a format that is is readable and
pretty easy to maintain
you know a lot of times it's things like
what's the name of the pattern what are
maybe some alternate names for the
pattern where is it most useful
what is it
how does it work and then you know
here's an example of it in action
something like that
now that kind of a
a page fits very well to like a wiki
site or something like that where it
should be fairly easy for you to read it
and
make adjustments as needed
and then
yeah because
you're gonna it goes back to the rule of
three is basically saying okay now that
we've we've thought about this we've
documented this pattern in any pattern
let's
look at it as are there some ways that
maybe
are there ways to extend this or to make
it
uh more encompassing or maybe even spawn
another pattern
based on what we're seeing you know are
there other it's so like you've looked
at it you found some repetition you
found some areas that are possibilities
once you've done that do you sweep
through again and see or you do you
sweep through again and do you see maybe
some additional
repetitions and possibilities
particularly like if you're building out
for your organization or your
personal history
if you're looking through and you're
you're starting to say hey here's some
patterns i see well maybe in those
patterns there may be
patterns of patterns she may see that we
did this
we did these 10 different patterns and
this piece or this step occurred in
every one of those
so maybe we want to essentially
abstract that out
and say oh by the way here's yet another
pattern that shows up
and
um we've talked about those a little bit
before i can't really call them
meta patterns or super patterns but it
was basically
you know if you're dealing with these
types of situations here's some some
patterns that you're going to look at
and it may even be a pattern where it
says
here's the thing you want to do but also
as part of your solution
let's go in and
it may be a combination of patterns in
any patterns where it says you know
here's your
overarching pattern but within that
you're probably going to use these three
patterns and you're probably going to
worry about not doing these four any
patterns and things like that
and these are that's why you you know
going back to up above this is why you
want this to be pretty readable and easy
to maintain is you want to be able to
you know have nice little bullet points
or
highlighted notes or something like that
that it's easy for you to
sort of like keep this as a living
document and grow
the ones we see out on the web or if we
buy a book
those are static you know those aren't
going to be those aren't generally
speaking going to change very much
but that's opportunity when we create
our own patterns in any patterns we get
to continue to refine them and make them
better and better
and then as we're going through this we
want to make sure that we do
keep it
yeah you think about like commenting
code and things like that you want to
keep that up to date well it's the same
thing with your patterns and any
patterns you want to review them often
enough and keep the the documentation
for it pretty clean and concise because
if we don't it's going to make it pretty
hard to share
which
brings us to the next point
so once you've built this
yeah you're doing this
to some extent for your own
uh becoming a better developer kind of
approach but also you want to be able to
give back
and so
what you want to do with that is think
about one
um it's going to cost you to do it and
there's going to be some some time and
some reflection
that you're going to have to do
to think about is this um
is this something that's that's makes
sense to share is this something that is
uh a general kind of situation or is it
something that i run into because of you
know my weaknesses my challenges my
experience knowledge or lack thereof
so when you're sharing your knowledge
you realize yeah there's going to be a
little bit of cost to it
and part of that though is that
you want to spend some time in that
doing that retrospection is is reviewing
what it is that you've put together
because this this actually sort of while
you're investing time in it you're also
investing in yourself because
if you're
if you're reviewing it to the point of
being able to
talk to somebody else about it or to
teach somebody else what is this pattern
or this anti-pattern
then you are
helping to
really firm that knowledge in your mind
as well it's why you know
people can complain about you know
teachers teach and those that can do do
but you also find that teachers that
teach the same thing
they know that topic they can
regurgitate that copy that topic pretty
darn well because they've they've
thought about it over and over again
that's the same thing here
is that we've thought about it to build
our pattern or any pattern
but also now we've taught about thought
about
uh sharing that and how would we
talk to somebody else about that pattern
or that any pattern
and so when we communicate it we do want
to make sure that we
we try to avoid like buzzwords and
internal concepts and in line of
business specific language where
possible
so if we're using a pattern
that is a general pattern
but we've built it out of a bunch of
healthcare applications we
created
we want to make sure that when we share
that pattern we don't have a lot of
healthcare-related lingo that's a part
of it
and this is these are
somewhat general communication
types of
bullet points and skills
but it is a little bit different
um
because this is this is more of a
in some sense it feels like a casual
kind of sharing of patterns in any
patterns but you want to make sure it's
formal enough that it is you know useful
and reproducible
and the reason you want to do this the
reason why i spend these costs
is really to
to help out the community this is sort
of like you know giving back to others
because you've probably
benefitted quite a bit from patterns and
anti-patterns over the you know the
months or years or decades that you've
been
professional
and this is how such things get created
and how the the developer community such
as it is whether it's specific to
a language or platform or just the
overall you know sort of loose software
development community that's how you you
give back into that that has fed you
whether you you realize or not and i
think most people do
now because you can
you can go your favorite search engine
and search just about any problem that
you want to solve
and you can find some discussion of it
at least if not some you know
right down to absolutely perfect code
examples of solving that problem
and that saves us who knows how much
time
and so it just sort of makes sense for
us to say because of all the times that
i've been saved i'm going to spend a
little bit of time and give back and
provide to the development community
and as part of this is
part of our like um
our review and our retrospection is
think about it a little bit and say is
this something and this is probably sort
of more upfront at the first part of it
is is this useful to you
this pattern or this annie pattern that
you're thinking about sharing out
is this something that you wish you had
had before
probably um is it something that you
will use
in the problems you solve ahead possibly
and then with that it's like okay this
seems to be useful well let's make sure
that we
we review it and strip out the specific
problem
language and items so that this is a a
good general case
pattern because sometimes we we get a
little bit
focused on the weeds i guess for the
problem we're working on and we say oh
yeah we need to do all of this
and when you step back you look at you
say oh well
yeah i need to do those three steps
within this pattern for my specific
problem or my line of business but
generally speaking
you can maybe generalize that and just
say
you know you need to do you can turn it
into one step and say here's something
you need consider
for example
um
you may have something that is a like
i'd say a customer record that has you
know first name last name account id
city state zip things like that
you may have specific things that you do
that you say oh yeah i got to make sure
that this
zip code format and this address format
is uh properly
handled for my specific case you know
that you have a
a property like i say it's a us you have
a proper u.s address and you have zip
code and
and then you find out that well once you
go beyond the us
those rules change a little bit
and so in that case instead of having
language that talks about things that
are specific to
a us address verification
as you just say
you know make sure that you have a
address verification
process involved as part of your pattern
it may seem like a little bit of
of of picking nets in a sense a little
nitpicky type of approach but it it
really does help to take that step and
generalize the
the
language and the text that you use
don't be afraid to do and actually
definitely
even if you are afraid do some sort of a
code review
process review
with
maybe some of your co-workers or peers
or things like that
is
you know or maybe even just family
members whatever to have somebody read
back over it because this is something
you want to be
you want to think of as like this is
something you're publishing to some
extent this is a
an ex this is going to be a reflect on
you a little bit so make sure that you
do things like you know grammar checking
and spell checking but also just make
sure that the the wording that you use
the phrasing that you use that you know
some other people have taken a look at
it can can say yep that makes sense or
i have no idea what you're saying here
and then you know now you've got it is
do a nice little write-up of your
pattern or any pattern and in doing so
this is where you basically publish it
whether it's to uh you can create a blog
article either on your site or
uh maybe there's a certain site
somewhere that it makes sense to post
uh like um
i'm trying to think of various places
maybe it's like a you know a reddit or
um you know one of those kinds of places
or maybe like a uh i don't even know who
would be available for like ours
technica or one of those that are
more technical type
sites
you may want to if you have a podcast
you may want to do an episode on it if
you've you may
listen to a podcast where it makes sense
to reach out to that person and be a a
guest and talk about your your patterns
or android patterns
uh maybe you've got a a slack channel
that's either uh internal or
a group like developer nor or you know
like a user's group or developers group
for your
uh your platform or wherever you are
geographically that it makes sense to
post these out and you know get it out
there so other people can take advantage
of your work and benefit from some of
your experience
so what do we learn
what was the the point of this
was really you know reiterate that hey
patterns are a way for us
it's a way for us to solve problems and
to get there faster as opposed to us
having to reinvent the wheel
any patterns are similar is these are
ways for us to avoid obstacles you can
think of them as warning signs as you're
driving down the road so you don't run
into the same pothole or take the same
wrong turn that somebody before did
this this goes back to the idea we all
individually whether we've been doing
this for six months or 60 years we have
experience that is unique to us and
there is a value in sharing it with
others
and so
why not
and part of it is because we want to
give back people have taught us people's
the experience of other people has
benefited us
so let's take that and turn that back to
the community and provide our experience
in a way that is helpful to others
and then the other thing is that we do
get a little you know sort of as a
selfish point is when we
do something like this and teach others
our lessons it helps firm it in our mind
and helps us understand it better
questions and comments
if anybody's talking you are muted
say hey rob so if you're new on the
project and uh
they got bad practices so how would you
solve
uh you know those but partners in in
case uh people don't uh continue i mean
in case you know what a good pattern
might be so
how do you solve that
well if you i mean if they've got some
bad practices
then i'm going to assume that there are
some anti-patterns that they have have
adopted and what those can either be
uh they may be things that are generally
known that you can point to and say hey
here's a well-known anti-pattern that
we're doing and so we need to stop it or
this is where you do take a look at it
and say hey we we have this practice
that we have done for a while
and we can see where it has been
a failure or
not pleasant or has causes headaches
and that's where you you know you walk
through and say okay we've done this a
bunch
and it has given you taken us to the
same
bad place each time
and so you can take a look and say well
here's analyze and say well how did we
get there oh in each of these cases
these are the three things we did
so
let's talk about not doing those three
things the next time we get into that
situation
yeah this is uh it goes back to sort of
this
that repetition and reviewing it and say
hey this it looks like this
when we do this
this bad outcome occurs
so let's talk about not doing that
whether it's uh it may be something we
just said don't do it at all or it may
be something where you say
you know we we still need to go down
that path but we need to find a smarter
way to do it
and it's either
it may be something that you can see as
you're looking at it and you can say hey
this i see where if we make these
changes we can avoid these bad practices
or it may be something you know in this
in that case because you're sort of if
you're coming into a place where there's
a lot of bad practices
where it may be worth it just say hey
i'm this is what i see i see these
things causing these bad results
why don't we talk about how we can avoid
doing those things
does that make sense yeah it makes sense
yeah thank you yeah
so hopefully they will be able to be
you know some uh i
adopt uh how do they go and adapt to the
new changes because
uh sometimes you know those new changes
usually are very hard to kick out if
people are used to doing the things that
start anyway
yeah yeah okay
yeah it makes sense thank you
other questions and comments
i see our muted i'm not hearing you mike
you have to have your mic turned off
maybe
is mike saying something is he on music
it looked like he did for a second and
then he he muted so it may be an audio
issue there let's see oh here's a chat
he's probably running it too yeah he
sent it oh here we go maybe we can do a
follow-up to this one on how we can how
to contribute to the community uh that's
probably not a bad idea
i sort of take that that publishing side
of it and
uh how to take it beyond just getting it
out there
good point
okay so uh let me get this out of my way
so i can actually see here yeah
as always thank you as always for your
time
your contribution to
become a better developer you know
spending this time and investing
yourself almost all of us
that's our goal is making every
developer better
and as always if you have any questions
comments
anything for us including suggestions to
you know enhance this or future topics
and email us at info development or dot
com
there's a contact us form out at
developmentor.com
we have our youtube channel where we
post stuff every tuesday and thursday we
have our vimeo channel where we have
some longer form videos that show up
from time to time including a lot of
these presentations
and we've got a paid developer page out
there on facebook.com
and
that being said
thank you for your time and we'll talk
to you next time
[Music]
you