►
From YouTube: Layer5 Newcomers Meeting (Oct 8th, 2020)
Description
Hacktoberfest tutorial with @NupurThakur27 - Getting Started with Golang and mesheryctl
A
A
A
Right
all
right,
while
we
wait,
so
we
have
this
long-standing
tradition,
where
people
go
around
and
introduce
themselves,
we
don't
embarrass
them,
usually
at
least
try
not
to.
Unless
lee
comes
up
with
another
joke,
at
which
point
I'm
not
responsible.
A
D
Good,
I
think
ritik
is
probably
he's
probably
he's
used
to
this
he's
been
in
school
for
a
while
he's
one
of
nikora's
seniors,
so
school's
been
in
session
for
a
bit
I,
which
is
a
totally
bad
joke.
It's
we
were
so
proud
of,
took
so
much
pride
in
how
how
how
much
nepur
had
learned
and
shared
with
others
and
then
she's
doing
it
here
again.
So
obviously
she
didn't
make
it
up
like
there's
there's
she
had
something
good
to
say
the
first
time.
D
So
that's
that's
nice,
nice,
nice,
to
have
you
we
take.
We've
got
some
other
first
timers
on
the
call
as
well.
A
Yep
hi,
everyone
hey.
Would
you
like
to
introduce
yourself.
C
I
have
worked
on
ipsec
I
and
day
two
technologies
like
dot
one
x,
and
I
have
also
worked
on
a
set
of
os
variants
like
yeah.
Yes,
I
think
this
must
be
really
old
os.
You
might
not
have
heard
about
it
in
your
college,
textbooks
also
it
might
not
be
there.
I
see
all
young
people
so.
D
C
C
Yeah,
it's
fine
hi
hi
everybody
again.
This
might
sound
rhetoric,
but
I'm
here
to
see
noble's
presentation.
I
am
her
co-worker
and
friend.
So
that's
the
basic
purpose.
A
A
All
right
are
you,
spencer,.
B
B
A
Wait
all
right
anybody
else,
daniel,
if
you
haven't
been
on
one
of
these
calls
before
please
introduce
yourself.
A
A
Okay,
that's
no
show
will
you
circle
back
to
him.
C
E
Cool
hi-
this
is
my
second
meeting.
Hopefully,
that's
all
right
just
can
see
how
everyone
is
doing
and
yeah.
A
All
right,
I'm
just
chuckling,
because
I
read
these
comments
with
the
shot.
E
Yes,
I
got
my
pull
requests
merged.
I
think
yesterday
or
the
day
before
yesterday,
documentation
and
then
I
created
a
new
issue
today
and
made
another
pull
request
still
in
documentation.
So
I'm
hoping
to
get
more
with
choppy,
get
more
hanzo
with
golang
and
the
rest.
A
That's
great
lee
is
it
possible
if
I
share
my
screen
yeah.
A
All
right,
that's
great
daniel.
What
you
can
do
to
get
more
involved
is,
you
can
add
your
name.
C
Here
I
think,
there's
a
column
for
react,
js
as
well.
E
Well,
I
I
did
fill
out.
One
of
the
forms
that
was
wait
was
asking
for
my
information,
linkedin
github.
What
I'm
good.
A
Okay,
is
this
you,
by
the
way.
C
C
All
right
everybody
we're
10
minutes
in
really
should
start.
Please
add
your
name
here.
If
you
don't
see
it
already,
if
you
can't,
if
you
don't
have
access
to
this
talk,
there's
a
link
to
the
chat
I'll,
send
it
again.
If
you
don't
have
access
to
the
stock,
please
ask
for
access,
because
well
you
will
be
more
involved
in
the
meeting.
You
will
have
more
resources
to
work
with,
and
it's
just
a
generally
a
nice
place
to
start
out
with
also.
A
A
All
right,
well,
let
me
firmly
welcome.
D
C
No
I'll
answer
that
later.
A
Moving
on
with
the
moving
on
with
the
meeting,
I
would
like
to
formally
welcome
you
to
craftable
fest,
which
levels
welcome
to
the
meeting.
Welcome
to
back
to
the
fest.
A
A
Every
week
we
are
having
one
meeting
in
which
we
are
featuring,
one
mesh
page,
which
I
will
explain
the
term
later
for
now
or
for
the
sake
of
this
conversation,
our
nationality
is
somebody
who
has
been,
who
is
a
pillar
in
the
community
and
who
is
a
major
part
of
the
community,
so
one
of
the
mesh
maids
or
one
of
the
people
in
the
community
is
doing
a
tutorial
on
our
products
or
working
or
on
starting
out
with
our
products
every
week.
A
A
Today
we
have
a
really
good
tutorial,
nestle
ctl,
with
golang
by
nipper,
who
is
smiling
at
us
now
and
that's
it
if
you
want
to
know
more
about
active
affairs,
there's
a
link
here.
There
are
all
kinds
of
links
here:
just
go
and
read
this
page
and
show
you'll
be
set
up.
A
A
It's
basically
a
form
asking
for
the
kind
of
tutorials
that
you
want
the
kind
of
details
that
you
want,
the
kind
of
resources
that
you
want
and
will
gently
use,
help
us
help
you
better
and
yeah.
That's
it
for
hack
to
the
fest
moving
on,
we
haven't
run
through
the
basic
project
soon
enough
after
nipples
tutorial,
because
I'm
really
excited
about
it,
so
not
wasting
any
more
time
again.
If
you
want
to
add
your
names
here,
go
ahead.
A
A
Thank
you
srippy.
Thank
you,
everyone
for
coming
here.
I
hope
I
won't
embarrass
myself
much
so
looking
forward
to
all
the
questions.
First
rule
that
I'm
setting
here
is.
You
can
ask
any
question.
As
ricky
mentioned,
there
is
no
concept
of
stupid,
stupid
questions
so
yeah.
A
A
Yes,
so,
let's
start
with
the
presentation
that
we
as
a
community
created
for
a
better
formulation
of
this
session,
so
I
I
hope
most
of
you
who
are
here
are
familiar.
I
I
I
think
I
have
provided
the
link
to
this
okay.
I
have
not
so
give
me
a
second.
I
provide
the
link
to
this
in
the
meeting
minutes
so
that
all
of
you
can
open.
A
Yeah
it's
here,
so
you
can
just
hover
on
this
and
get
the
link.
If
any
of
you
is
wondering
where
you
can
find
the
link
so
yeah,
starting
with
the
session,
I
I
think
I
should
start
without
doing
any
formal,
thank
you
and
all
because
yeah.
I
am
really
thankful
for
all
of
you
for
coming
here.
A
We,
oh
in
this
session,
we
were
discussing
some
of
the
concept
of
golang,
which
I
obviously
in
this
time
frame.
I
could
not
teach
you
how
you
can
code
in
golang,
but
yeah.
A
I
can
give
you
a
path
or
I
can
give
you
a
few
tips
or
tricks
or
few
specific
libraries
or
something
of
that
sort
which
may
help
you
to
contribute
to
mastery
ctr,
which
you
can
find
here
and
for
any
issues
for
the
people
who
are
looking
for
measuring
ctl
issues
like
what
are
the
specific
issues
which,
as
this
is
the
mission
depository.
So
all
the
issues
which
have
the
level
of
component
slash
measurement.
A
They
are
all
obviously
the
issues
of
meshes
india,
so
yeah.
That
is
the
basic
introduction
of
meshes
repository
of
natural
cities
and
what
I'll
be
going
forward
with.
So,
let's
start
the
session.
A
A
A
Yeah
yeah,
I
I
by
mistake:
I
press,
don't
share
and
the
screen
got
freeze
there,
so
yeah.
I
was
trying
to
sharing
yes,
so
yeah.
Let's
start
with
golang,
the
agenda
of
the
session
is
obviously
the
first
will
be.
What
golang
is
and
few
of
the
important
features
that
golang
pro
provide,
or
some
of
the
few
things
that
we
would
be
interested
when
we
learned
golang,
one
of
which
is
go
module,
which
I
personally
like
a
lot
and
then
there
is
http
server
or
web
server.
A
There
will
be
a
basic
basic
web
server
that
will
be
creating
or
I'll
be
providing
a
source
code
to
that,
and
then
there
is
a
concept
of
middlewares
in
golan,
we'll
be
having
a
quite
insight
to
that.
Then
how
important
file
structure
is
in
golang
so
we'll
be
discussing
that
then
will
be
moving
forward
with
mysticity
and
what
it
is
and
how
we
can
contribute
to
it.
And
then
there
are
a
few
libraries
and
all
which
you
can
find
interesting
when
you
contribute
to
michigan
so
yeah,
I
tried
to
make
up
fun
here.
D
A
A
Let's
go
and
let's
discuss
this
specific
source
code
that
I
have
written
here.
If
you
copy
paste
this
code
and
run
it
some
of
you
may
have
olan
installed
on
your
machine.
Some
of
you
may
not
have
so
who
have
ported
it
for
you.
We
have
just
like
I
guess,
javascript
had
sandbox
or
something
go
have
go
playground,
so
I
I
I
hope
we.
It
will
be
easy
for
all
of
you
to
code
in
this
if
you
don't
have
installed.
Otherwise
it's
great.
A
A
Main
function
is
an
entry
point,
so
similarly,
we
have
a
function
written
here
as
main
so
name
is
again
an
entry
point
and
name
is
the
package
as
it's
a
single
file
that
not
a
lot
of
what
I
can
say
a
lot
of
files
right
now
as
a
basic,
so
yeah
package
to
define
a
package
inside
the
project.
Import
is
to
import
any
library
that
we
have.
A
It
could
be
something
that
golang
already
have,
or
some
libraries
which
are
open
source
fmp
is
one
of
the
standard
libraries
which
is
used
in
golang2
format,
the
standard
input
and
output,
and
one
of
the
function
that
it
provides
is
printf,
sorry,
println
or
printf
or
print.
If
these
are
all
the
function,
they
all
accept
any
parameter.
A
It
could
be
a
like
string
or
arithmetic
or
just
a
number.
So
if
you
run
this
specific
line
of
code,
it
will
print
hello
playground,
2
plus
2,
it
will
print
4
and
then
this
number
yeah
till
then
I
finished
my
sentence.
If
the
output
is
here,
so
is
there
any
doubt
with
this
basics?
Anybody
have
any
doubt
if
no
I'll
proceed
further.
B
A
A
A
D
Nipple,
this
might
be
this.
Let
me
ask
a
stupid
question
and
then
let
me
get
to
maybe
a
more
advanced
question.
Hopefully
these
are
both
helpful,
but
it
doesn't
look
like
you
have
any
syntax
on
the
end
of
the
lines
like
a
semicolon
or
anything
that.
A
That's
that's
like
that's,
not
a
stupid
question
that
only
that's
a
really
interesting
question,
so
it
what
actually
like,
if
you
have
noticed
one
thing
if
we
have,
if
we
code
in
c
plus
plus
this
curly
braces,
go
to
the
next
line
where,
whereas,
if
you
run
this
code
in
go,
it
will
throw
up
an
error
missing
function
body.
A
So
what
what
I
want
to
say
by
this
specific
thing
that
I
have
shown
you
is
a
new
line
itself
is
a
line
break
in
c
plus
plus
or
in
c.
We
used
to
have
semicolons
to
define
a
line,
break
or
something
of
that
sort.
But
here
new
line
is
defined
as
the
like.
What
breakers
or
yeah
line
breakers
am.
I
rightly.
D
Totally
and
then
so,
you
talked
about
importing
packages
from
the
standard
library
like
like
stream
like
formatting
there.
What,
if
I
want
to
use
someone
else's
package.
A
A
Okay,
yeah,
so
if
I
want
to
import
this
I'll,
just
put
it
in
my
playground
with
the
curly
braces.
A
Currently,
if
I
do
this
it,
it
may
not
run
here
in
playground,
but
on
okay,
not
with
https
with
just
github.com.
This
would
be
the
way
you
can
import
a
message:
cd
messaging
or
anything.
If
you
are
not
using
go
modules,
you
will
need
to
go
get
and
then
do
this
to
import
it
in
your
dependencies.
If
you
are
using
go
modules
which
will
be
discussing
later
by
running
just
go
build,
it
will
automatically
run
this
command
for
you
and
bring
the
dependencies.
D
And
feel
free
to
ignore
it.
You
keep
going.
D
Sort
of
the
notion
of
package
management
and
go
the
ability
to
import
standard
libraries
or
other
libraries
yeah.
A
G
A
Okay,
let's
I
won't
answer
that.
Let
the
playground
answer
it
to
you!.
C
A
G
A
Oh
yeah,
in
java
as
well,
we
have
we
can
omit
the
curly
braces
and
we'll
just
go
if
and
with
the
condition
and
the
next
line,
we'll
just
print
and
yeah.
That's
that's
it
without
anything,
but
here
as
we
don't
have
a
semicolon
to
or
decide
an
ending
of
a
sentence
or
anything.
So
calibraces
are
the
one
that
define
if
a
body
of
the
function
is
present
or
not.
If
we
don't
have
it,
how
can
we
define
that
dysfunction
of
a
body?
So
we
need
this.
B
I
have
a
newbie
question
as
well,
so
I
work
with
javascript
and
in
in
our
development
environment.
When
we
have
a
really
long
expression
or
a
function
call
we
just
break
the
lines
into
interpreter
and
then
that's
how
we
do
things.
So
if
I
am
coding
in
golang-
and
I
have
a
really
long
expression,
would
I
be
able
to
break
it
without
having
the
statement
to
end.
Like
you
just
said
it
will
assume
a
curly,
it
will
assume
a
semicolon
at
statement.
Breaks.
A
Right
so
I'll
explain
it
by
what
what
I'm
writing
here
I'll
explain
this.
I
am
defining
an
string
array
or
slice
as
we
call
in
go,
and
I
am
writing
it
in
a
straight
line
and
if
we,
if
I
want
to
declare
with
multiple
elements
and
want
to
go
on
so
and
now,
if
you
want
a
line
break,
how
would
you
do
it?
A
Is
you
will
press
enter
and
it
will
throw
an
error
for
sure,
but
how
it
will
not
is,
if
we
put
a
comma
here
so
I'll,
explain
this
specific
part
to
you
now
yeah.
So
this
defines
this
comma
defines
the
end
of
this
specific
line.
This
comma
defines
the
end
of
this
and
then
this
and
then
this,
if
we
don't
have
this
format,
we'll
throw
an
error,
but
if
we
have
this
comet
mode
through
an
error,
so
that's
how
we
can
break
our
like
multiple
parameters
or
something
that's
all
written.
A
So
moving
forward
with
the
next,
so
as
the
as
any
other
language,
it
also
have
some
of
the
basic
concept.
I
thought
that
it
won't.
It
would
be
easy
if
I
put
all
of
them
in
a
program
and
make
you
understand,
so
how
we
declare
a
variable
in
golang
is
where
and
then
the
name
and
then
the
type
of
the
variable
and
how
we
assign
a
value
of
symbols
equals
to
operator
and
that's
how
we
can
declare.
This
is
the
line
to
declare
the
value,
and
this
is
the
line
for
assigning
the
value
right.
A
A
A
Just
after
with
in
the
same
line
where
the
curly
braces
are
closed,
if
I
put
this
again,
it
will
throw
up
an
error,
so
yeah
that's
about
if
else,
conditional
statement,
looping
as
let's,
let's
say,
cmc
plus
plus
we
had
for
loop,
do
while
loop
while
loop,
but
in
golang
we
have
for
loop
and
that's
it.
We
can
use
it
in
different
forms
and
yeah.
We
like
we
can
use
it
as
well
and
we
can
use
it
as
a
classic
for
loop
but
yeah.
This
is
the
only
loop
that
we
have.
A
It
can
be
used
as
well
as
well,
but
it
go
just
have
one
for
one
looping
statement,
so
this
specific
example
is
to
demonstrate
just
the
comparison
which
you
can
find
similar
to
while
looping,
whereas
this
specific
is
the
classic
looping
for
loop
that
we
have
again.
If
we
put
a
enter
here,
it
will
throw
up
an
error
if
we
have
it
in
the
same
line,
it
won't
switch
statement
is
again.
We
have
a
curly
braces
here.
A
If
I
put
up
an
enter
here,
it
will
throw
up
an
error
just
like
other
any
other
language.
It
also
have
case
starting
with
column,
and
then
this
and
this
and
yeah.
If
I
run
this
code,
I
will
moving
forward
with
the
output
of
each
one
one
by
one.
A
A
I
we
have
assigned
as
0
again
we
have
declared
and
assigned.
We
have
done
both
just
in
one
sentence
and
then
the
for
loop
and
then
this
for
loop
and
then
the
switch
and
similarly
just
like
any
other
language.
It
also
have
few
of
the
like
data
structures
and
multiple
functions,
keywords
and
yeah.
So
these
are
some
of
the
basic
concept
which
you
could
find.
Let
me
do
one
thing
which
you
can
find:
I
have
provided
the
resources.
A
A
So
when
go
language
came
into
the
market,
it
came
with
the
restriction
of
project
path,
and
by
that
what
I
mean
is
when
we
I
will
present
my
screen
so
that
you
won't
be
able
to
see
it
properly.
A
So
yeah
yeah,
so
go
had
a
dependency
with
the
path.
By
that
I
mean
we
have
to
define
in
in
our
system
that
what
okay?
So
this
is
the
path
for
example,
slash
project
is
the
path
where
you
can
run
your
project
go
project
code
and
yeah.
That's
where
you
can
run
all
your
go
programs,
but
if
you
want
to
run
anything
outside
of
that
directory,
you
won't
be
able
to.
A
You
have
to
define
the
path
for
that
again
and
yeah.
That
was
one
of
the
problems
that
golang
had
with
the
path
dependency
and
again
it.
Obviously,
when
you
were
doing
go,
get
go,
get
is
to
down
like
download
any
specific
module
for
the
dependencies.
A
So
if
you
go
get
any
specific
package,
so
it
will
only
download
a
specific
version.
You
won't
be
able
to
use.
For
example,
hey.
I
want
to
use
version
2
of
version
2
of
this
module,
and
I
also
want
to
use
version
1
of
this
module.
You
won't
be
able
to
do
it
before
go
modules,
but
after
go
modules,
you
can
do
that.
A
Oh
anybody,
anyone
speaking
something
you
can
just
use
the
thumbs
up
reaction.
If
you
do,
if
you
do
so
and
if
you
are
like,
I
had
this
really
when
I
didn't
know
what
go
module
is
I
had
a
whole
lot
of
dependencies
issues
path,
issues
going
on
in
my
project.
I
just
defined
one
part
of
my
project
and
I
completed
that
project.
Then
I
moved
to
another
project
again,
I
have
to
change
the
path
and
yeah.
A
That
was
one
of
the
issues
I
had
and
another
issues
is:
how
can
like
one
project
have
some
dependencies?
Another
project
have
other
dependencies,
so
how
can
we
define
up
a
specific
just
like
javascript,
have
package.json
to
define
all
the
dependencies
that
that
specific
module
is
going
to
have
go.
Module
gave
the
functionality
to
have
such
a
functionality
for
a
project,
so
I
will
be
going
to
this
specific
link
that
I
provided.
You
all
can
also
go,
or
I
may
also
have
it
on
my
machine.
A
So
here
are
two
libraries
or
modules
that
I'm
importing
one
is
something
we
call
this
and
another
is
this
again.
If
I
want
to
do,
go
get
it
won't
run
even
after
I
define
the
path
in
my
profile
file,
so
how
it
would
be
easy
for
me.
I
can
just
run
the
command
go
in
it
and
the
repository
name,
which
is
longo
mode,
as
it
have
already
been.
A
A
Like
lot
of
import,
which
it
should
not
be
so,
I
am,
let
me
go
back
here
so
yeah,
let's
open
this
one.
So
when
you
initiate
the
go
module
it
will,
it
won't
have
this,
it
won't
have
this
okay,
it
will
just
have
go.
Mod,
learn,
go
mode
when
you
initiate
the
mode
and
when
you
run
go
build.
A
If
you
see
it's
finding
two
packages
that
we
had
in
our
mail,
these
two
and
then
it
found
it
and
yeah
it
have
it
now.
It
mentioned
the
go
version
that
we
have
in
a
machine,
and
it
mentioned
all
two
dependencies
that
our
main
function
require.
One
is
for
the
color
and
another
is
for
the
code,
so
by
code,
I'm
using
a
hello
world
code
and
by
color
I'm
using
a
color.
So
if
I
run
how
I
run
it
on
my
machine,
go
run,
name
go
by
bill,
so
yeah.
A
A
Yeah
here,
so,
if
you
see
the
go
path
that
I
have
defined
here,
something
else
definitely
it's
not
something
in
which
my
project
is
it's
in
a
different
directory.
It
didn't
throw
any
error.
Why?
Because
we
have
initiated,
go
mode
and
it
have
all
the
dependencies,
it's
removed
the
path
dependency
so
yeah.
I
guess
the
rendering
question
that
you
had
lee
would
be
clear
with
this
topic.
A
A
So
anybody
have
any
doubt
till
now,
with
all
the
basics
that
we
discussed
and
also
I
have
provided
the
link
for
the
go
playground
that
I
have
written
the
basic
codes,
it's
right
there.
So
do
anyone
have
any
doubt
regarding
any
of
these.
B
So
when
you,
when
you
declare
and
assign
a
variable,
let's
say
a
colon
equals
to
2
3,
then
it
also
assigns
the
type
explicitly
right.
Yeah.
A
B
A
Okay,
you
want
okay,
okay,
I
redeclared
the
variable.
It
will
work.
Give
me
a
second,
oh
it
give
me
a
second
okay.
It
won't
work
because
it
have
defined
the
type
end
and
I
can't
re-declare
it.
Okay,
it
won't
work,
my
bad
it
won't.
The
reason
is,
we
have
defined
its
type
as
in
in
this
line.
We
cannot
redefine
it
as
it's
just
an
assignment
operator,
and
if
we
try
to
redefine
it
a
is
already
defined.
We
can't
redefine
it,
so
we
can
only
redefine
the
new
value
to
it.
A
Okay,
I'll
show
you
I
I
won't
say
much
about
it.
I'll
show
you.
If
I
do
this,
it's
let's
do
fmt
println
a
so
yeah
it
work,
and
if
it's
a
compilation
error
your
id,
my
id
will
tell
me
that
I
can't
assign
write
it
to
it.
It
will
continuously
show
a
red
line
because
it's
an
n
type.
So
it's
a
compilation
error.
It
will
show
a
compilation
error,
not
a
runtime.
B
E
Yeah
just
to
jump
in
very
quickly
about
the
compile
time
errors.
It
would
be
great
if
you
maybe,
if
you're
using
a
different
editor,
maybe
go
vs
code.
You
install.
D
E
Plugin
golang,
so
when
you're
using
it,
it
will
help
with
all
the
syntax
highlighting.
A
Yeah,
like
I
am
not
using
visual
code,
but
I
have
it's
showing
a
syntax
if,
like,
if
I
even
hover
over
it,
I
can
get
this.
Give
me
a
second.
It
will
tell
me
that
cannot
use
written
type
string
as
type
so
yeah.
Okay,.
A
A
So,
let's
move
forward
with
more
about
as
last
time
when
we
discussed
measuring,
we
saw
some
apis
and
how
web
servers
are
written,
so
in
golang
how
web
server
is
written.
Let's
focus
on
that.
I
have
given
a
short
a
short
code
here.
You
all
can
go
via
this
and
it's
again
a
go
module,
so
you
can
even
run
it
on
your
machine
easily
if
you
like,
clone
it
to
your
machine.
So
I
have
commented
it
quite
nicely.
A
I
guess
if
that
makes
sense
to
you,
we
have
a
package
netslash
http,
which
provides
us
a
few
of
these
variables
that
you
are
seeing,
and
I
have
named
this
function
handler
for
a
specific
purpose.
I
will
explain-
and
I
have
there
is
another
type
of
function
that
I
am
calling
from
this
http
package
that
is
handle
function
and
then
passing
this
specific
function
in
here
and
then
I
am
calling
another
http
function
in
which
I
am
passing,
a
string
that
somehow
matches
how
we
write
a
port
number
and
then
I'm
catching
its
error
error.
A
Okay,
that's
one
of
the
way
we
can
catch
error
of
a
specific
command
and
put
it
in,
if
only
otherwise,
we
can
break
it
as
well
into
two
different
lines.
We
can
copy
this
like
cut
this
part
from
here
and
put
it
up
and
then
put,
is
and
then
cut
if
a
err
not
equals
to
nil.
So
that's.
We
are
catching
an
error
here
and
if
error
occur,
we
are
printing
it
there.
A
So
I
will
start
focusing
on
handler
what
exactly
handler
is
and
now
http
is
looking
at
it.
So
a
handler
is
a
special
kind
of
function
which,
basically,
whatever
we
have
inside
that
function,
writing
it
somewhere.
We
are
writing
it
somewhere.
If
you
see
we
are
passing
it
to
w
I'll
explain
what
w
is
so
it
will.
Whatever
it
have,
it
will
pass
it
to
the
browser
or
wherever
we
are
running
our
server.
So
that's
the
part
of
this
special
type
of
function
called
handler
this
function.
This
type
of
function
are
called
handlers.
A
How
our
program
distinguish
handlers
another
function,
if
the
parameters,
if
it
have,
if
any
function,
have
these
parameters
inside
it,
it's
a
handler
function.
What
are
these
parameters?
Http.Responsewriter
is,
as
the
name
suggests,
it's
writing
whatever.
We
want
to
pass
to
our
server
request,
whatever
we
want
to
read
from
the
browser
or
whatever
you
want
to
read
from
the
browser.
So
as
we
are
just
writing
to
the
browser,
we
are
not
using
r,
so
we
can
put
it
that
underscore
to
unuse
it
but
yeah.
A
A
A
Yeah,
I
need
some
changes
so
yeah
the
program
rain
ran
and
it's
saying
server
listening
at
8080..
So
if
I
go
to
my
port
8080
localhost
8080,
it
may
show
me
that
404
page
not
found,
but
it
didn't
show
me
something
like
this
local
host
8019
why
there
is
two
diff
different
outputs
if
this
port
is
not
available
because
our
program
is
serving
to
this
port
but
the
path
it's
serving
to
is
hello
so
yeah.
A
It's
writing
something
to
the
server
that
is
hello
world,
where
it's
writing
to
this
path,
where
our
server
is
listening
to
port
8080
and
one
more
thing
is
this:
a
specific
function
will
not
end
until
or
unless
we
force
quit
it
by
pressing
ctrl
c
or
something
so
it
will
keep
listening
till
the
program
is
running.
If
we
force
quit
the
program,
it
will
stop.
Stop
then.
A
A
So
yeah
next
topic
that
we'll
be
discussing
is
middlewares.
A
A
A
Okay
and
it
was
just
a
get
api,
but
what
if
we
want
a
user
to
log
in
first
and
then
see,
can
see
the
output,
so
we
need
and
all
our
pages
should
have
an
authentication
like
that
the
user
should
first
login
should
have
a
token
or
cookie,
and
then
only
it
can
log
in
so
for
or
if
we
want
to
log
the
timing
when
our
endpoint
was
hit
and
then
then
the
results
of
endpoint
ended.
A
So
we
want
to
log
that
we
want
something
that
we
want,
that
should
run
before
the
caller
function
or
after
the
caller
function
or
at
both
the
times.
So
when
that's
something
we
need,
that's
called
middleware.
So
if
I
go
to
this
specific
code,
that's
mentioned
here,
you
all
can
run
it
on
your
machine.
I
provided
the
link
to
it.
A
A
If
you
see
here,
I
am
passing
handler
to
another
function
called
logger
and
what
logger
is
logger
is
having
parameters
which
is
a
function
itself
and
is
returning
a
function
itself
and
what
is
the
type
of
the
function?
The
parameters?
That's
that
it
is
accepting
it's
accepting
a
handler
and
it
is
returning
a
handler
and
what
logger
is
doing
it's
printing
time
now
is
basically
a
util
function
that
I
have
written.
A
That
will
print
the
time
current
time
and
handler
when
the
handler
will
start
it
will
print
now,
then
here
is
a
keyword
called
differ.
We
have
here
a
keyword
called
differ.
It's
a
quite
useful
keyword
in
golang
by
default.
What
we
can
do
is
when
our
function
will
stop
executing
this
specific
line
of
code
or
whatever
is
written
next
to
differ,
will
run
after
the
function
is
executed.
A
So
that's
the
benefit
of
writing.
Something
in
differ,
so
why
we
are
having
differ
here
when
the
function
will
start.
It
will
call,
then
this
specific
line
when
the
handler
is
done,
executing
whatever
it
wanted
to
execute
the
deferred
line,
will
be
called
and
will
pre
print
the
after
time
when
the
code
have
been
executed.
So
that's
the
point
of
middleware.
Let's
understand
middleware
in
terms
of
measuring.
A
So
as
we
have
our
messy
api
here,
we
have
multiple
providers
or
you
can
even
choose
none.
So
if
measuring
is
the
provider
and
the
measure
provides
the
sessions
and
authentications
other
things
as
well,
but
there
are
certain
page
that
can
only
be
accessed
by
the
admin
so
for
the
authorization
or
for
the
authentication.
We
can
use
middleware
so
yeah
in
mystery.
That's
where
we
use
middle
version.
A
B
B
Yeah,
so
the
question
was:
do
you
need
to
write
the
return
type
every
time
or
will
go
auto
interpret
it
from
the
return
statement
itself.
A
A
Some
people
may
also
consider
this
logger
function
as
a
closures
closures,
so
people
who
have
idea
of
all
background
from
any
language
that
have
closures
they
may
relate
logger
to
that.
So
you
can
also
read
closures
in
golang.
That
will
give
you
more
context
of
closures,
any
other
doubt
or
should
I
proceed
with
goa
mystery
ctl
architecture.
A
Any
doubts,
I
guess,
no,
so
so
yeah
I'll
go
on.
So
what
is
measure
ctl?
It's
basically
a
client,
sorry
command
line
interface
for
measuring.
I
will
give
you
a
demo
for
that.
A
A
A
A
A
So
when
you
initiate
a
command
so
it
it
gives
this
basic
structure
to
your
application.
What
this
structure
mean
is,
for
example,
our
command
line
tool
is
message
ctl,
so
the
name
would
be
mystery.
Ctl
and
inside
that
we
have
a
subdirectory
called
cmd
and
there
will
be
multiple
commands.
Add
your
r
dot,
go
your
dot,
go!
Add
your
commands
here.
Basically,
and
then
there
will
be
a
main
dot
go.
What
main
dot
go
will
have.
A
It
will
just
have
a
main
function
with
or
let's
omit
this
root
for
now
and
focus
on
just
execute,
so
obra
provides
a
function,
execute
that
executes
every
command
that
is
available
in
root
package,
so
we
have
imported.
If
you
see
this
path
root
that
we
have
written
and
then
we
are
executing
all
the
commands
that
are
present
in
root,
I
have
given
a
short
example
of
messy
ctl
version
command.
Here
I
have
hid
like
intentionally
hidden
the
code
here
so
that
it
did
not
it
don't.
A
It
do
not
confuse
you,
so
we
can
define
a
variable
with
cobra
dot
command
by
this
syntax
and
when
we
use
use-
and
whatever
we
write
here-
is
the
command
name.
If
I
write
here,
for
example,
no
put
so
the
command
for
to
get
the
version
of
message,
ctl
would
be
measure
ctl
and
for
short
description.
If
I
do
something
here
called
measuring
ctl
help,
so
it
have
given
a
description.
Is
that
similar
to
what
it
have?
We
have
here
version
of
message?
Ctl,
I
guess
it's
exactly
similar.
So
that's
where
it's
coming.
A
Why
do
go
handle
I?
I
will
entertain
all
the
questions
that
I
have
in
chats
later.
I
first
focus
on
this,
so
short
description
is
here
and
what,
if
I
want
a
specific
help
to
a
specific
command,
I
want
help
for
version.
What
does
it
do
so
it
give
me
a
description
which
is
quite
long
and
then
how
we
can
use
it
and
some
global
flags
that
we
have
all
the
commands
that
I'm
talking
about
here
or
I
will
be
talking
here.
A
You
can
find
in
getting
started
with
nature
ctl
or
we
have
a
specification
like
design
specification
for
measuring
ctl.
There
are
some
upcoming
commands
that
we
have
in
this.
Also,
I
am
of
the
time,
so
I
will
fast
forward
this.
So
yeah
that
is
use
long
short,
pre-run
execute
is
basically
something
we
want
to
run
before
we
run.
The
command
run
is
something
that
obviously
we
want
our
version
command
to
output.
A
A
This
is
the
command
that
I
have
written
for
you,
people.
I
have
imported
logris,
it's
a
library
that
is
quite
helpful
in
logging.
The
errors
on
like
it
gives
the
the
benefit
of
using
loggers
other
than
the
like.
The
standard
library
we
have
that
is
log
is.
It
gives
different
levels
of
errors
like
info
error,
warning.
A
Apart
from
that,
it
also
helps
to
like
when
we
want
to
integrate
our
logs
to
efk
log.
This
is
quite
helpful
there
so
yeah.
I
have
created
a
command
for
myself.
That
is
os
command.
Let's
give
this
name
os
nope,
so
that
it
will
be
easy
for
you
to
understand,
and
I
have
given
a
short
description.
I
have
given
a
long
description
and
I
want
to
run
it
and
I
just
want
it
to
print
your
operating
system
version
is
runtime.gws
gives
me
the
operating
system
on
which
this
code
is
running.
A
A
C
Can
you
explain
logarithms
again.
A
Can
you
explain
logarithmic
so
yeah
yeah,
so
logaris
is
basically
a
library
that
we
use
for
logging.
We
also
have
log
as
a
okay.
A
A
We
have
to
create
logs
for
the
request
we
are
receiving
at
server
yeah,
exactly
so
to
create
the
logs.
A
So
basically,
logris
is
one
of
the
libraries
that
provides
the
functionality
to
log
the.
When
we
are
talking
in
terms
of
api,
we
use
logging
to
log
all
the
warnings,
errors
or
information
that
we
want
to
store
in
our
logs.
When
we
are
talking
about
command
line
tool
we
are
using
locking
to
out.
We
can
also
use
fmt,
it's
not
an
issue.
We
can
also
use
fmt
because
we
are
just
trying
to
print
something
on
the
terminal,
so
why
we
are
using
this,
because
when
we
try
to
debug
our
code,
it's
again
a
pro.
A
It's
also
our
application.
So
when
we
try
to
debug
our
code
when
this
information,
something
like
this
come
up,
we
can
see
that
it's
a
information,
if
I
give
it
as
logarithm.error.ln
for
now
it
will
work.
It
won't
give
me
an
ish
error
when
I
run
the
code,
but
when
I
debug
the
code
when
I
go
into
the
logs,
I
see.
Oh,
this
is
an
error
which,
actually
it's
not.
A
We
are
just
trying
to
pin
something
up,
so
logres
is
one
of
the
robust
logging
library
that
we
have
am
I
clear
till
then
you
also
mentioned
something
like
esk.
If
I
heard
right,
yeah
yeah,
yeah,
yeah,
efk,
okay.
So
with
that,
I
need
to
show
you
something
I
guess
do
you
are
you
familiar
with
kibana
or
something.
A
A
Thanks
for
this
wonderful
tutorial,
you
have
a
lot
of
questions
coming
up,
I'm
sure
about
that.
Maybe
we
can
have
an
extended
session
on
this
or
another
session
on
the
same
thing,
but
anybody
else
who
has
questions,
but
we
kind
of
do-
need
to
stop
the
meeting
because
others
have
conjugated
meetings
and
already
five
minutes
up,
so
that's
it
for
today.
Thank
you
for
coming
on
everybody.
Thank
you
for
the
great
session.