►
From YouTube: It's time to Go! Episode 1
Description
Informal chat about the Go programming language.
A
Okay,
oh
hello,
everybody!
This
is
the
very
first
it's
time
to
go
meeting
and
we're
having
some
technical
difficulties
with
the
calendar.
Sorry
about
that,
but
should
be
fine
now,
so
we
are
about
to
just
look
at
the
kubernetes
repository
because
parallel
had
some
questions,
and
I
think
I
think
maybe
I
can
answer
some
of
them
and
we
decided
to
record
it.
B
So
the
problem
statement
is,
I
would
like
to
talk
about
comparing
two
unstructured
types
and,
like
the
tricky
part,
is
that
some
of
the
fields
in
are
defaulted
by
kubernetes.
So
if
you
submit
an
object
in
kubernetes
api
and
then
you
get
to
get
it
back,
you
may
get
more
than
you
actually
initially
submitted
into
the
api,
and
I
was
thinking
about
writing
a
function
and
up
streaming.
B
Hopefully
that
would
compare
to
unstructured
type
in
a
way
that
it
takes
the
thing
that
we
get
from
the
api
and
the
thing
we
compare
it
to
and
checks
if
the
first
one
is
a
supper
super
set
of
the
second
one.
So
if
all
the
fields
in
the
second
one
are
the
same
in
the
first
one,
a
modulo
or
something
additional
that
we
didn't
find
in
the
second
one
and
yeah,
so
we
just
wanted
to
talk
about
it
and
how
this
can
be
implemented.
A
I
think
I
can
answer
that.
Okay,
so,
first
of
all
the
thing
we
touched
upon
before
is
that
kubernetes
repository
is
a
monorepo.
So
if
you
are
looking
at
kubernetes,
damn
machinery
repository,
which
is.
B
A
A
Yep,
that's
how
it
works
at
the
moment.
There
are
some
repositories
that
are
not
staged
like
gtos,
for
example,
there's
a
youtube.
Surprise
there,
maybe
a
few
more
but
generally.
This
is
the
thing
also
seeks
all
some
repositories.
C
A
A
So
it
is
yeah,
it's
a
bit
tricky
to
work
with
this
as
a
developer,
because
in
this
repository
these
directories
are
siblings
in
in
the
vendor
folder
and
they
need
to
to
these
repositories
to.
C
A
A
But
if
we
find
the
same
thing
via
guys,
one
structured
see
it
can
even
open
it
in
the
in
in
a
separate
tab,
but
it
is,
it
is
the
same
file,
so
it
its
store.
It
stores
the
object,
the
courageous
object
as
unstructured
just
one.
You
know,
and
it's
actually
wrong.
It
should
be
in
64..
A
A
So
the
question
is
how
to
compare
an
object
and
the
object
that
has
went
through
defaulting.
I'm
not
aware
of
an
api
to
do
this,
so
what
kubernetes
does
is
you
submit
an
object?
Then
it
goes
through
mutating,
the
hooks
then
by
the
dating
of
hooks
and
then
defaulting,
and
then
after
that
it
is,
I
don't
know,
persisted
or
created
you
know,
so
it's
it
can
be
an
update,
the
patch
trade
and
anything
else.
Your
api
server
supports
any
other
verb.
A
A
Yes,
exactly
this
is
not
going
to
help
I'm
just
telling
you
what
what
people
try
to
use
so
they
use.
Schemas
and,
like
you
see,
this
schema,
is
getting
some
information
by
defaulting
like
some
defaulting
functions
so
for
demon
set.
This
is
the
thing
that
you'll
be
called
and
if
you
default
some
fields
and
blah
blah
blah.
A
If
not
said,
then
sets
the
sets
it
to
this
way
and
so
on
and
so
forth.
So
this
is
handwritten
and
it
leaves
incubators
it's
it
doesn't
leave
anywhere
else.
It
doesn't
even
api
machinery,
it
doesn't
even
client,
go
defaulting,
leaves
on
the
server
so
github's
engine
from
argo
cd
imports,
kubernetes
as
a
library
and
uses
this
schema.
A
A
A
A
long
time
ago
and
yeah
there's
they,
I
don't
think
they
have
an
answer
for
that
also.
I
have
struggled
struggled
with
this
problem
like
four
years
ago,
five
years
ago,
when
I
was
building
a
controller
that
applies.
A
It's
like
a
bundle,
and
this
thing
would
read
that
bundle
from
the
object
from
the
api
from
kubernetes
api
and
would
do
a
topological
sort
in
taking
into
account
the
references
between
objects
and
apply
them
one
by
one
waiting
for
the
objects
to
become
ready.
Look
if
it's
a
deployment
and
something
depends
on
that.
It
would
create
the
deployment
wait
for
it
to
reach
the
red
state
and
then
would
proceed
with
the
graph.
A
B
Interesting,
can
we
stop
here
for
a
moment.
C
B
A
B
This
is
interesting
because
it's
like
maybe
a
topic
for
like
a
maybe
another
topic,
it's
at
some
point,
because
we
also
had
like
a
similar
issue
like
setting
up
and
then
cleaning
up
multiple
objects
using
a
controller
and
how
to
handle
dependencies
between
objects.
So
you
cannot
just
remove
everything
you
can.
You
need
to
remove
things
in
a
certain
order,
and
this
kind
of
like
strongly
relates
to
what
you
said,
but
maybe
let's
talk
about
it
some
other
time.
B
B
So
can
we
go
back
to
unstructured?
Yes,
so
if
we
go
to
the
object
definition.
B
So
what
I
was
thinking
like
first
one-
I
think
this
can
be
done
recursively,
because
it's
basically
like
a
map
string
interface
and
we
could.
B
Without
defaulting
sure
yeah,
so
if
we
just
so,
maybe
I
will
start
from
the
beginning.
First,
one
is
the
interface
we
want
to
use
because
we
can
compare
unstructured
objects
with
one
to
one
approach,
so
we
expect
them
to
be
exact,
equal,
even
the
default
fields,
or
we
can
check.
B
We
can
compare
them
in
the
superset
approach
and
to
keep
things
simple.
Let's
focus
on
the
superset
approach
now,
having
said
that,
like
unstructured
object
is
just
like
a
map
interface,
so
it
would
basically
so
but
here's
a
catch
like
this
interface
can
be
a
slice
or
another
map
string.
And
how
do
we
compare
slices
so
how
what's
our
strategy
for
slices
in
the
first
approach
with
one-to-one
matching?
B
So
if
there's
there
are
more
elements
in
the
slice
should
we
assume
that
objects
are
not
equal
or
should
we
just
look
for
this
elements
that
are
defined
in
the
second
object,
the,
and
we
expect
them
to
be
the
to
be
present
in
the
first
one
that
we
got
from
the
api
so
that
we
check
if
the
slice
has
items
that
are
in
the
second
objects,
and
we
ignore
the
ones
that
are
not
in
the
second.
B
So
this
is
like
the
question
how
this
could
work?
It's
like
yeah,
so
that
doesn't
make
sense.
C
A
A
If
you
update
it,
if
it's
a
slice
or
an
array
in
json,
if
you
updated
it,
you
like,
if
you
send
the
patch
command,
for
example,
for
the
field,
then
you
replace
the
whole
thing,
but
some
fields
have
a
different
semantics.
If
you
patch
it,
you
add
to
to
the
set-
and
this
is
captured
in
annotations
for
the
fields.
A
A
B
B
A
A
B
So
there's
another
question:
do
we
need
it?
Do
we
need
to
do
it
on
the
first
step,
or
can
we
just
like
a
first
iteration,
or
can
we
just
assume
that
if
the
lists
aren't
equal
like
one
to
one
like
we
compare
lists,
we
don't
even
sort
them
and
we
just
compare
them
and
we
expect
elements
to
be
in
the
same
order
as
we
submitted
them
to
api
api
server,
and
if
there
are
any
defaults,
they
are
just
added
to
the
elements
to
the
in
the
list
in
the
in
the
slice.
A
And
it
depends
on
what
you
want
to
do,
so
it
depends
if
code
with
such
an
assumption
is
good
enough
for
your
for
the
problem
you
are
solving.
If,
if
it
is
good
enough,
then
you
can
make
an
assumption
if
this
will
behave
not
not
in
the
way
that
you
want,
then
you
can't
make
this
assumption.
A
C
A
B
B
Of
the
object
that
is
responsible
for
creating
objects
like
deployments,
stateful
sets
ports
and
sorry
deployments,
ingress
objects,
services,
etc,
and
this
during
this
recon-
and
we
want
to
make
sure
in
this
controller
that
all
the
definitions
that
are
in
the
api
server
are
exactly
what
is
defined
in
the
controller,
so
sorry
reflect
what
is
defined
in
the
controller.
So
if,
for
example,
user
changes,
the
deployment
controller
reverts
these
changes
if
the
deployment
is
owned
by
the
controller
and
from
the
other
side.
B
If,
for
example,
somebody
reconfigures
the
crd
of
the
controller
to
make
the
change
in
the
deployment
that
the
controller
detects
that
the
objects
differ
and
applies.
The
change
and
the
problem
here
is
that
we
could
theoretically
just
issue
a
patch
and
just
just
make
sure
just
just
reapply
the
object
and
just
let
the
kubernetes
api
sort
this
out.
But
this
would
cause
too
many
api
calls,
because,
whatever
reconciliation,
we
would
have
to
reapply
all
the
objects.
It's
very
simple,
but
requires
al.
That
causes
a
lot
of
traffic.
B
So
the
idea
is
to
use
like
a
controller
runtime
cache
that
will
from
which
we
get
the
current
object.
Definition
define
and
compare
it
with
the
object
that
we
create.
We
determined
to
be
the
one
that
should
be
currently
in
use,
basing
on
some
crd
sense
and
some
other
conditions,
and
if
they
differ,
we
only
then
issue
a
actual
patch,
a
request
to
api
server
and
like
yeah,
so
does
it
make
sense?
Is
it
clear.
A
B
Like
I
was
using,
but
it's
so
to
my
best
knowledge
server
side
apply,
still
causes
an
api
and
can
be
counted,
for
example,
in
gke
against
api
limits.
Is
that
correct.
B
So
we
get
only
the
reconciliation
event,
but
we
do
not
know
exactly
which
object
changed
or
maybe,
if
the
configuration
that
we
are
using
to
generate
the
objects
changed.
So
we
just
reapply
everything
to
make
sure.
A
A
Okay,
actually
you
don't
need
to
remember.
Ideally
you
put
it
in
the
status
observed
generation
and
that's
the
typical
pattern
with
observed
generation.
Then.
The
second
thing
you
could
do
is
to
get
that
reverting
behavior
is
do
the
same
thing
with
objects.
You
look
at
observing
at
the
generation
of
the
object
and
if
you
have
seen
this
object
already-
and
it
is
okay-
so
you
just
remember
object
blah
with
generation.
A
10
is
all
good.
This
is
what
I
have
applied
and
I
was
the
last
one
who
wrote
it
basically
who
touched
it
so
I
don't
need
to
touch
it
again.
Basically,
and
then
you
just
scan
the
objects,
you
don't
issue
right,
you
should
you
first
look
at
your
cache
check,
the
all
the
objects
and,
if
someone
is
some
of
them
are
wrong.
You
you
patch
them
using
server
side
apply
and
then
you
don't
have
the
problem
with
defaulting
and
you
don't
have
the
problem
with
too
many
api
calls.
B
So
okay
bear
with
me
because
there
are
a
couple
of
things
here.
B
We
notice
that
the
generation
of
the
object
is
the
same,
but
we
do
not
know
if,
like
the
definition,
that
of
the
like,
the
configuration
of
the
controller
then
changed
in
a
way
that
requires
this
deployment
object
to
be
adjusted,
and
if
that's
the
case,
we
need
a
way
to
tell
if
we
need
to
reapply
the
object
using
the
newly
bit
configuration.
B
So
there
are
like
two
causes
for
updating
this
deployment.
One
is
that
the
configuration
of
the
controller
like
changed
and
the
other
is
that
user
change
this
deployment.
B
The
second
case
is
easy
because,
just
like
you
said
we
compared
the
generation.
The
first
one
would
require
storing
the
meta,
like
the
deployment
that
the
in
the
object
definition
that
we
use
to
create
this
object
and
then
compare
it
during
the
next
reconciliation.
If
they
are
the
same
because
we
won't
be
able,
we
won't
be,
then
comparing
the
defaulted
object,
but
the
one
that
we
used
to
create
it.
A
Yes,
so,
first
of
all
for
anyone
who's
watching
this
is
the
generation
thing
it's
incremented
by
kubernetes.
Every
time
you
touch
or
not,
you
anything
touches.
The
object
and
touches
means
mutates,
not
reads.
The
reading
is
fine,
but
for
writing.
This
is
incremented.
A
Basically,
maybe
not,
I
don't
think,
doesn't
matter
so
and
then
typically
controllers
look
at
the
generation
and
then
they
also
store
the
observed
generation
in
the
status,
and
this
is
that
integer
the
degeneration
of
the
object
it
acted
upon
when
when
it
saw
it,
so
that's
where
you
store
the
thing
that
you
know
the
generation
of
the
thing
you
act
upon
and
together
with
the
rest
of
the
status,
so
you
can
say
all
good
for
generation,
then,
and
then
next
time
you
can,
you
are
reconciling
you're
looking
at
the
generation
in
that
observed,
generation
generation,
maybe
still
10
and
then
observed
generation,
maybe
still
10.
A
And
then
you
say:
okay,
everything
is
good.
If
the
status
is
okay,
then
maybe
generation
will
be
11
and
observe
generation
will
be
10,
and
then
you
you
can
say
that
hey.
Actually,
I
haven't
seen
this
object
or
I
haven't
reconciled
it
successfully
before
because
observed
generation
is
less
than
generation.
So
something
must
have
updated
the
object,
since
I
last
acted
upon
it.
B
Okay,
now
going
back
because
I
have
more
questions.
Sorry,
I'm.
B
So
if
we
are
just
sending
a
patch
up
like
an
object
as
a
patch,
it
basically
just
lands
in
the
server
and
it's
if
it
exists,
it
gets
updated.
If
it
doesn't
exist,
it
gets
created,
plus
the
ownership
of
the
fields
is
set.
Is
there
anything
else
we
gained
by
server
side
apply
here.
A
I
don't
remember:
okay,
I
think
there
there
are
some
benefits.
Yes,
I
think
there
are
definitely
some
benefits.
That's
why
it
was
created.
C
A
Managed
fields:
yes,
so
who
who
is
the
owner
and
who
manages
the
particular
field?
I
think
this
is
only
updated
by
apply
service
apply
and
then
also
g14
is
taken
care
of
by
by
that
there
may
be
other
benefits
like
saying
the
whole
thing
as
a
patch.
I
think
it's
not
it's
not
working
perfectly
or
correctly,
even
in
some
age
cases,.
B
I
think
there
was
an
issue,
but
a
very
great
issue
by
garden
made
by
gardener.
Why
do
don't
we
use
server
side
apply?
I
can
try
to
find
it
and
send
it
to
the
channel
after
the
meeting
and
yeah.
So
maybe
somebody
will
be
interested
because
they
outlined
the
edge
cases
of
server
side
apply
pretty
nice.
A
B
Cool
now
another
question.
B
So
controllers
should
like
the
kubernetes
way
of
controllers,
is
that
they
shouldn't
hold
a
state
really
that
they
should
reconcile
the
state
of
the
api
server.
So-
and
I
was
wondering
like
because
when
we,
if
we
are,
we
have
our
own
crd.
This
is
this
is
easy
because
we
can
store,
we
could
store
the
observed
generation
of
the
object
in
the
status
we
create,
could
create
a
field
of
the
status,
but
in
the
status
field,
but
in
case
of
deployment.
B
It's
like
this
is
not
the
type
we
own.
We
would
need
to
like
redefine
it
to
have
like
this
observed
applied
generation
so
that
the
last
generation
that
our
controller
seen
on
this
object
and
applied
it
in
order
for
it
to
not
to
store
the
state
itself.
C
A
You
are
probably
using
a
sub
resource
for
stairs,
so
send
the
status
there
and
record
everything
you
have
touched
so
far
and
store
whatever
you
want
there.
All
your
step
state
can
go
there.
Also.
I
don't
think
it
would
be
a
problem
if
you
store
these
things
in
in
memory
of
your
controller,
and
why?
A
Because
a
bit
like
not
a
problem,
because
it's
just
an
optimization,
if
you
lose
this,
nothing
wrong,
you
know
happens
just
more
api
calls,
that's
the
kind
of
problem
that
we
are
solving
here,
but
nothing
will
go
wrong,
but
the
downside
is
that
if
you
have
multiple
copies
of
your
controller,
they
will
do
double
work
or
triple
work
or
you
know
same
work,
but
so
so
again
this
is
more
api
course
again.
This
is
just
nothing
will
go
wrong.
A
It
is
just
more
useless
work
or
duplicate
work
so
to
overcome
this
well,
either
store
it
in
the
status
or
store
it
in
memory
and
do
leader
election,
but
also
maybe
do
leader
election
in
any
case,
to
avoid
this
problem
with
double
work.
B
So
definitely
a
leader
election,
and
the
problem
is
that
we
would
have
to
like.
B
We
do
not
really
know
how
many
objects
and
what
kind
of
type
will
be
under
this
controller
supervision.
So
I
think
that
storing
the
state
internally
will
be
the
simplest
approach
and
so
that,
basically
like
storing
the
style
installing
the
latest
generation
applied
so
so
yeah.
I
agree,
and
this
is
like
a
good
idea.
B
So
to
summarize,
instead
of
like
playing
with
comparing
a
structure
to
type,
you
suggest
that
we
go
a
different
path,
a
simpler
path
that
we
store
the
generation
of
the
object
in
that
we
last
seen
applied
after
applying
in
the
controller
and
also
in
the
annotations
of
the
controller.
We
store
the
latest
applied
version
of
the
objects
so
that
we
can
compare
them
directly.
B
B
A
A
B
B
So
I
think
I'm
processing
this.
So
please
bear
with
me
so
so
you're
suggesting
using
my
own
words,
so
you're
suggesting
to
put
the
generation
of
the
object
and
the
latest
applied.
C
A
A
Generation
64
something
like
that,
so
you
only
need
the
generation
for
it.
You
don't
need
the
full
gamma
of
that
object.
B
So
this
is
understood-
and
I
was
just
wondering
so
we
want
to
avoid
reapplying
everything
every
time
the
configuration
of
the
controller
changes,
because,
let's
assume
that
the
controller
manages
100
objects
and
we
change
the
configuration
only
for
one
of
the
objects,
so,
instead
of
reapplying
100
of
them,
we
just
want
to
reapply
only
the
configuration
for
this
one
given
project
object,
and
this
requires
us
to
compare
the
json
that
we
used
before
with
the
json.
We
want
to
use
now
this
way
or
another.
A
Okay,
so
I
see
there
as
as
we
discussed,
there
are
two
problems:
one
is
user,
changing
things
and
the
other
one
is
configuration
being
changed
and
then
you
don't
know
what
what's
going
on?
I
think
applying
100
object
is
okay,
because
configuration
changes
like
once
a
day
or
something
like
that.
B
A
B
B
So
if
we
just
store
the
hash,
we
can
basically
store
both
information
observed
generation
and
the
hash
of
their
latest
applied
configuration
in
the
status
of
the
master
crd,
and
then
this
way
we
make
the
controller
stateless
and
just
have
that
when
we
just
just
go
without
any
comparison
of
objects
altogether,
we
just
have
a
very
simple
comparison
and
now
so
now
the
last
final
question.
B
Sorry
I
I
can
the
is
there
any
tooling
in
kubernetes
that
allows
that
produces,
like,
like
marshall
and
jason's,
always
produces
the
same
order,
for
example,
for
slices
or
for
keys,
because
I'm
afraid
that,
like
like
you
know,
the
order
of
key
of
keys
in
the
map
is
undefined,
and
this
can
like
screw
the
hashing.
B
And
you
think
that
yeah,
so
if
yeah
so
in
the
slides
order
of
slices
should
be
also
preserved.
Okay,
so
that
solves
the
problem.
Thank
you
very
much.
That
was
like
super
useful
and
I
wanted
to
like
share
like
I
do
not
know
if
you,
this
is
pretty
late
for
you.
So
if
you
like,
we
can
finish
now
and
just
talk
about
this
next
week.
B
So
I
wanted
to
like
do
a
very
short
presentation
of
the
golang
quirk
I
found
in
the
json
I
we
talked
last
week,
but
maybe
let's
do
it
next
week.
Let's
have
something
for
the
next
week
and.
A
B
I
can
start
with
determining
the
source
of
truth
configuration
basing
on
the
input
to
the
controller
on
the
user
configuration,
and
this
will
give
me
the
list
of
objects,
so
a
group
version
kind
or
and
name
namespace
or
just
name.
B
C
A
A
A
The
cash
will
be
empty
and
you
well,
the
cash
will
reflect
what
is
in
the
cluster,
so
you
cannot
use
the
cache
to
give
what
is
in
the
cluster
and
what
you
know
about.
Basically,
so
I
think
I
suggest
you
to
have
a
look
at
this
project
called
clitus,
which
is
what
the
club
agent
uses
to
do.
Githubs,
and
this
is
what
kpt
uses
for
kpt
live
apply.
A
It's
it's
developed
most
by
googlers
and
it
stores
the
inventory
of
the
name,
kind
and
namespace
and
so
on
in
in
the
configmap.
So
then
you
have
the
information
persisted
and
then
you
can
see
what
is
the
new
state?
What
is
the
state
in
the
cluster
and
what
is
the
inventory
and
then
you
can
give
them
and
see
what
should
be
deleted.
B
I'm
sorry
I
got
lost
here.
So
let's
start
please
bear
with
me.
So,
let's
start
with
informer,
so
you're
saying
that
if
the
controller
just
started
and
informer
is
empty,
if
I'm
using
the
controller,
runtime
client
to
fetch
a
client
fan
and
operation
object,
it
will
go
through
informer,
but
if
and
if
the
object
is
not
in
the
informer,
it
will
return
me
404,
even
though
the
in
the
api
server.
This
object
is
indeed
present
or
will
it
block
until
it
fetches
the
information.
B
A
B
A
Automatic,
yes,
it
is
automatic,
but
it's
not
instant,
it's
not
instantaneous.
So
if
your
controller
is
really
quick,
it
will
it
can
try
to
read
stuff
from
the
informer
before
informer
has
synchronized
with
the
cluster.
Informer
can
be
out
of
sync,
it's
a
cache
and
also
it
doesn't
guarantee
that
it
is
up
to
date,
so
your
controller
can
be
running.
Then
there
may
be
network
disconnect.
A
You
can
read
from
your
informer
still,
but
it's
not
up
to
date
anymore,
and
even
if
there
isn't
no
network
problems,
you
it's
still
not
up
to
date,
even
like,
even
if
you
are
reading
from
an
api
one
nanosecond
after
you
have
received
the
reply,
you're
already
reading,
it's
already
stale.
A
B
So
a
couple
of
things
here,
first
of
all,
first
of
all,
we
just
use
informer
as
an
optimization.
B
So
if
the
conformer
says
that
there
is
no
object,
even
though
there
is
the
worst
thing
that
will
happen
is
just
past
issuing
another
kpi
call.
Second,
one
is
that
this
is
basically
the
kubernetes
way,
because
we
are
reconciling
state
and
we
are
having
eventual
consistency
and
not
just
like
strict
consistency.
So
this
is
like
fine.
B
If
we
just
do
a
couple
of
iterations
third
thing
is
that
controller,
hopefully
won't
be
discarded
too
often,
so
we
won't
have
this
information
very
often,
and
fourth
thing
is
that
we
do
have
going
back
to
what
you
suggested
with
this
project
will
have
a
look
at
it,
and
I
I
need
to
educate
myself
here
my
and
I
just
want
to
use
my
own
words
so
that
you
could
check
my
own
thinking
in
case
when
we
know
what
the
correct
configuration
should
be
and
we
have
like
a
status
that
we
can
that
we
know
that
reflects
what
we
was
applied.
B
We
can
determine
if
objects
changed
or
not,
and
the
only
problem
that
stays
is
that
the
problem,
if
the
object
was
deleted
or
not
so
we
did.
We
part
we
segment
like
we.
We
shared
the
problems
into
like
two
three
ten
into
two
different
buckets,
detecting
to
change
and
detecting
the
removal,
detecting
removal
we
discussed-
and
this
is
clear,
detecting
or
detecting
of
the
removal.
B
Here
we
have
this
eventual
consistency.
So
even
if
we
informer
is
out
of
date,
we
can
reapply
and
we
can-
and
the
worst
thing
that
happens
is
that
we
will
issue
more
api
calls
until
informer
catches
up.
B
A
Well,
what
what
I
was
saying
about
these
problems
with
informers,
they're,
not
blockers,
they're,
just
things
to
keep
in
mind
like
that's,
so
it
seems
you
wherever
I
understand
this
stuff,
so
cool.
No,
you
yeah!
You
don't
have
this
problem,
then.
A
A
Not
sure
I
I'm
following
the
what
you're
describing
with
the
approach,
so
I
I
just
suggest
you
to
have
a
look
at
this
project
and
it
will
it
it
already.
Basically
does
what
you
what
you
want,
so
your
job
would
be
to
just
determine
when,
when
you
need
to
rerun
the
applier
from
from
this
project,
yeah
and.
B
I
will
and
it's
pretty
late
and
I
already
got
tons
of
information
from
you
and
and
that
helps
a
lot
and
I
would
definitely
educate
myself
with
the
project.
So
that
would
be
all
for
me
for
today.
Yeah.
C
A
Well,
I
hope
that
was
useful,
I'm
more
than
happy
to
help,
because
I
I
went
through
this
myself.
I
know
how
it
was
difficult
and
it's.
It
became
easier
now
with
the
server
side
apply,
but
it
wasn't
available
when
I
was
trying
to
do
this
now.
It
is
and
also
this
library,
on
top
of
it,
so
just
use
the
library
but
anyway
happy
to
answer
any
questions
of
the
chat
next
time.
B
And
separately
exactly,
and
I
think
we
can
stop
recording
now.