►
From YouTube: Weekly Sync 2020-06-02
Description
Meeting Minutes: https://docs.google.com/document/d/16u9Tev3O0CcUDe2nfikHmrO3Xnd4ASJ45myFgQLpvzM/edit#heading=h.rqr5tlcap27o
B
A
A
B
A
C
C
A
B
A
A
A
A
We
can
honestly
just
get
away
with
calling
the
one
so
I
think
that's
I
should
what
I
need
to
do
here
is
we
need
to
just
I
mean
we
can
get
away
with
calling
the
one.
So
basically,
if
you
just
did,
let's
see
this
yeah,
then
it
will
end
up
calling
the
first
one
in
which
case
I
think
we
can
get
rid
of
self
dot
them
so
I
mean
we
really
should
do
both.
A
A
That's
very
weird
that
it
includes
the
trailing
quotes.
I
wonder
what's
up
that.
C
A
A
A
All
right
this
case
all
right,
so
that's
just
that's
like
that's
like
the
hack
way,
but
we
should
really
do
it.
This
way
where
we
explicitly
call
both
both
instructors,
although
I
believe
there's
a
way
to
do.
This
was
super
I'm,
just
not
sure
I
think
I've
never
been
able
to
make
it
work
for
some
reason:
let's
see
to
get
a
specific
base
class
out
of
it
yeah.
We
should
just
do
this
and
that
should
give
us
both
yeah,
okay.
A
A
A
A
A
D
A
A
Context
entries
here
so
we
just
did,
let's
see
where
was
it
okay,
so
what
we
should
also
do
is
add
this
to
save
and
load
so
that
they
can,
you
know,
use
the
get
and
set
methods.
If
we
end
up
like
we
should
modify
saving
load
so
that
we
can
use
the
secret
stuff
in
that
too,
and
then
it'll
be
a
little
bit
easier
here,
but
so
for
now.
A
A
A
A
E
A
C
A
C
C
A
A
A
A
E
A
Well,
it
won't
write
the
file
back
yeah.
Won't
it
won't
write
out
the
file
unless
readwrite
is
true
and
for
sources.
That's
like
you
know.
I
might
often
be
what
we
want,
because
people
aren't
sort
of
expecting
that
we're
gonna
write
back
the
prediction
data
but
for
the
secrets
we're
probably
going
to
write
it
back,
so
we
probably
want
to
do.
F
F
A
F
A
A
A
B
A
A
B
A
This
is
a
bug
we
need
to
make
it
so
that
so,
let's
see,
let's
take
a
look
at
this,
and
somebody
can
jump
on
this
at
some
point
but
I
level
so
with
load.
For
example,
it
takes
the
sources
and
we
can
do
something
where
maybe
if
it
takes,
let's
see
with
source
of
source
context.
So
if
args
it
loads,
specific
ones
of
all
records
are
loaded,
so
we
could
probably
modify
this
so
that
it
says
alright.
A
A
A
Let's
see
so
pay
literacy
if
debtors
are
requested,
oh
yeah,
okay!
So,
oh
yes,
so
we
probably
just
need
to
add
this
to
the
channel
config
to
say
you
know
something
like
requests.
You
know
that
the
headers
as
an
input
right
and
then
what
kind
of
input
definition
they
are
because
the
headers
are
always
going
to
be,
like
you
know,
a
dictionary
structure
so.
A
A
A
C
A
A
Think
what
we
should
do
right
now
with
this
is
oh:
did
we
just
okay
I
see
this
was
a
let's
see,
so
all
right
so
can
I
just
like
commit
suggestions
right
here
that
back
these
out
and
then
we
can
merge
this
pull
request,
and
then
you
can
open
a
new
one
doing
this.
Okay,
so
and
we'll
just
actually
throw
this
in
here
too,
because
that's
just
like
a
minor
bug
fix
so.
A
C
A
Have
an
editor
to
the
change?
Look,
okay,
so
yeah!
You
probably
want
to
like
create
a
new
branch
then
and
then
push
that
branch
over
all
right,
sweet
all
right!
So
I'll
do
this
and
then
we'll
be
able
to
push
this
through,
and
then
this
will
be
in
there.
So,
let's
see,
let's
just
make
sure
this
is
all
good
here.
A
C
A
Nope,
that
sounds
good
I
think
that's
the
right
way
to
go
so
yeah,
cuz
I
think
we.
We
just
need
to
finish
up
this
big
stuff
so
that
it
can
be
consistent
with
what
we
want
to
his.
We
want
out.
We
want
yeah
all
that
stuff,
so
we
can
get
that
release
out.
A
D
A
A
A
A
A
Basically,
it
runs
the
data
flow
and
every
single
time
we
yield
from
from
the
loop
of
the
running
data
flow.
Then
we
would
use
that
as
a
record
right
so
like
we'd
use
the
string
context
handle
as
the
record
key
and
then
we'd
use
the
results
as
the
record
like
feature
data
or
whatever
that
they,
you
know
and
prediction
rate
or
something
right,
and
but
that's
like
a
little
bit
complex.
A
So
what
we
can
do
is
basically
you
would
supply
the
entry
point
style
path
to
a
function
or
just
like
a
registered
operation
and
then
the
so
that
the
config
of
this
thing
takes
so
the
create
a
new
source
where
the
config.
Actually,
let
me
maybe
just
like,
write
some
code,
because
it
won't
make
more
sense.
E
A
Up
source
right,
so
we've
got
operation
and
this
is
a
type
of
operation.
Oops
and
let's
see
maybe
this
should
be.
Let's
see
yeah,
there
should
be
yes,
the
operation
you
use
yeah
all
right
and
then
we
can
do
like.
Is
there
anything
else
that
this
thing
needs?
Basically
not
I,
don't
think
we'll
find
out,
and
then
we
do
like
this
config.
A
How,
when
we
did
the
unified
config,
we're
still
going
to
need
a
way
to
do
like
the
config
loading
and
various
things
that
are
like
the
config
loader
stuff
and
like
this
is
sort
of
it
ties
onto
that
we're
like
if
we
get
an
operation
and
we
or
well
I
guess
with
this
we'll
end
up
working
so
because
it'll
just
call
loader
and
I'll.
Do
the
entry
point
loads,
so
yeah?
Okay?
So
this
should
be
fine.
So
what
we'd
end
up
with
is
something
like.
B
A
A
A
A
A
A
A
To
do
find
relative
Python
path
to
get
data
and
that's
see,
let's
see
where
was
the
sniffing
well,
so
there
is.
Where
was
that?
Where
was
that
we
did
this
recently,
so
basically,
what
we're
doing
is
we
dump
that
we?
We
have
this
file
with
arbitrary
data
and
we're
gonna
write
this
operation
that
basically
takes
the
file
name
and
loads
in
the
data
and
returns
to
basically
like
the
structure
of
self
dot,
mem
in
memory
and
the
memory
source.
A
A
A
It's
going
to
be
something
like
this
right,
where,
if
you
copy
this
structure
here,
you're
creating
this
temporary
directories
change
directory
to
it.
You
write
out
this
function
basically
and
it's
stored
as
a
string
in
this
test
file,
and
then
you
can
reference
it
by
its
like
entry
point
and
name,
which
is
the
way
that
we
register
things
right
and
then
upon
upon
loading.
The
config.
For
this
thing,
the
unified
config
should
say,
operation
load,
so
you'll
end
up
with
the
operation.
A
A
A
A
Context
equals
memories
first
context
and
on
a
inter,
you
basically
just
run
the
operation,
but
you
need
to
run
the
operation
within
a
data
flow,
so
run
operation
within
data
flow
in
case
it
you
know
like
in
Pinter
and
in
case
it
needs
well,
you
could
do
for
now
just
run
operation,
implementation
with
self
dot
op-amp
test,
so
you
can
basically
clear
yourself.
Top
mem
equals
this
and
then
you're
going
to
need
to
find
a
way
to
do
find
a
way.
A
A
The
problem
is
like
yeah:
you'd
have
to
have
a
fixed
structure
and
it
would
have
to
know
about
that
to
be
able
to
to
be
able
to
like
if
you
had
multiple.
So
if
you've
run.
If
you
run
that
service
dev
run
command,
it
can
run
a
single
operation,
and
so
ideally
this
would
end
up
being
something
like
that
where
you
can
run
a
single
operation
and
you
can
specify
the
arguments
and
the
inputs
and
I
can
figure.
A
If
you
need
to,
however,
that
might
not
be
I,
you're
gonna
have
to
play
with
it
and
you
might
just
want
to
slim
it
down
and
just
provide
it
with
a
file
name
and
make
that
that,
for
the
moment
right.
But
the
point
here
is
that
you'll
run
this
operation
and
you
use
the
output
itself
that
mem
and
as
long
as
you
set
context
memory
source
context,
then
basically,
you
just
run
this
operation
and
you
end
up
with
whatever
the
this
function
is
basically
just
going
to
do.
A
A
E
A
E
A
Cool
all
right,
yeah,
so
hopefully
I
mean
this
is
at
a
minimum
like
you
can.
You
know,
use
this
to
load
arbitrary
file
types
at
that
best.
We'll
find
a
way
to
make
this
so
that
you
could,
you
know,
just
have
some
arbitrary
operation,
you,
you
know
we're
gonna
have
to
figure
out
how
to
do
more,
more
configuration
of
the
the
parameters
there,
but
that
that's
sort
of
like
you
know
across
that
bridge
when
we
get
there,
we
can
always
make
this
like
a
specific
one.
A
This
is
like
op
file,
source
or
something,
and
then
that
way
we
can
show
people.
Okay,
if
you
have
a
random
file
type
that
you
don't
know
how
to
get
in,
then
you
can
always
get
it
in
using
this
right
and
then
you
could
use
the
merge
command
to
like
save
it
in
a
more
standard
format
right
so
yeah,
alright
cool,
so
I
will
post
this
up.
B
A
A
All
right
cool
yeah,
so
once
we
have
this,
then
it's
gonna
be
easy
to
do.
You
know,
what's
the
arbitrary
file
type,
but
obviously
right
now
it's
either
you
know
you.
Do
you
write
a
new
source
which
is
slightly
more
heavyweight
with
what
this
would
be,
which
is
basically
just
write
one
function
and
then
the
sister
like.
A
A
C
A
A
C
A
A
Should
be
the
flow
yeah?
Okay,
so
basically
you're
just
gonna
modify
the
flow
based
on
what
they're
saying
here.
So,
for
example,
the
syntax
might
be
like
it's
kind
of
gonna
follow
this
sort
of
syntax
here
so
and
I
will
just
do
I'm
gonna.
Take
this
and
make
a
comment.
That's
just
for
the
purposes
of
the
other
one.
A
A
A
A
A
Okay,
so
when
we
do
flow,
basically,
what
we're
gonna
do
is
we're.
Gonna
modify
the
flow
dict
within
the
data
flow
and
we're
gonna
want
to
traverse
down
for
this
argument.
On
the
right
hand,
side
so
multiply
that
input,
stop
multiplicand
and
that's
where
we're
talking
about
when
it
talks
about
Traverse,
config
or
Traverse
kit,
which
is
going
to
be
like
the
opposite
of
Traverse
set
you're
gonna
walk
down
that
dictionary
and
you
can
look
at
the
code
and
Traverse
config
it,
because
it's
pretty
much
the
same
thing,
and
so
you
do.
A
A
A
So
let's
see
what
would
be
a
good
way
to
do
this
so
multiply
inputs
multiple
can't
equals
image
yeah
you
might
want
to
hold
on
off
on
this
one
for
a
while
cuz.
This
is
kind
of
like
there's
no
I,
don't
know
if
there's
a
good
syntax
for
this
I.
Can
anybody
think
of
a
good
syntax
for
this,
because
we're
trying
to
say
something
like
you
know,
seed
I
mean
it
we
can
use
like
the
literals.
A
A
A
A
A
A
Okay,
so
yeah
I,
guess
this
probably
shouldn't
be
that
much
of
a
heavy
list?
So
if
you
get
time
to
do
it,
that
would
be
great.
It's
basically
just
gonna,
be
like
add
another
thing.
Just
like
you
added
seed
go
through
every
single
one.
Do
Traverse
config
set
for
the
for
the
right
hand
equals
and
then
the
thing
you're
setting
it
to
which
is
the
next
argument
of
Traverse
set.
Is
this
thing
on
the
left
hand,
which
we
really
should
flip
this
at
some
point,
all
right,
cool.
B
F
A
F
A
B
A
A
Examples
nest
test,
I
think
it
creates
a
new
directory
and
changes
into
it
yeah
so.
E
A
But
let's
hold
off:
let's:
let's
wait,
we'll
do
it
after
like
that
can
be
as
a
part
of
that
for
us,
because
it's
just
gonna
be
changing
this
one
line.
I
went
that
full
request
goes
through
it,
but
let's
do
do
this,
which
I
believe
is
correct.
Hopefully
it's
correct,
or
else
we're
gonna
find
out
real
soon,
so
it's
kinda,
like
it
alright
great
all,
right,
sweet,
I,
think
that
will
do
it
for
now.
Yeah
I
think
that's
that's
good!
This
just
looks
great
and
now
we're
now
we're
normalizing.
So
that's
awesome.
E
A
B
F
A
A
A
That
there's
no,
what
is
it?
Okay,
it's
out
dirt
and
we
do
just
okay
DTaP
sort
of
this
right
there,
all
right,
we'll
run
this
and
logging
equals
debug.
Okay,
that
seems
like
a
lie,
but,
okay,
oh
because
it's
all
the
command
line,
ones
don't
have
TiVo
God,
okay,
we'll
run
it
I'm
and
I'll
go
debug
it
later
once
I've
got
all
the
stuff
in
that
directory,
all
right
cool,
so
who's
up
next
year.
E
A
B
A
A
G
A
Gotta
be
so
it's
got
to
be
a
good
issue,
and
sometimes
this
happens
here
and
I
think
it's
Mike,
because
we
added
some
some
get
stuff
to
that
to
the
kid
ignore
or
some
image
extension,
so
they
could
ignore.
So
can
you
try
to
go
to
the
big
it
thing
on
the
side
there,
on
the
left-hand
side,
with
the
little
the
branch
or
yeah
just
open
a
terminal
that
works
too.
A
G
A
A
Yeah,
okay,
okay,
so.
A
A
A
A
C
D
A
A
A
A
A
G
G
A
A
All
right,
sweet,
okay,
well,
all
right!
Well,
okay,
then
pip
all
right.
Let's
try
just
pip
install
and
then
do
you
usually
saw
on
things
with
get
power.
Let's
see,
we
could
plan
to
install
the
local
when
you've
installed
things
in
here
before.
Do
you
do
prefix
equals
local,
or
do
you
just
do
install
I.
B
B
A
A
A
Examples
should
I
go
here
that
sound
command,
that
you
are
so
we're
on
the
same
future.
A
Great
so,
let's
see
the
one
thing
I
am
concerned
about
here,
though,
is
that
is
that
looks
like
that.
The
picture
that
you
have
up
on
the
dataflow
deployment
tutorial
yeah,
so
the
last
picture
you
showed
here
yeah,
so
it
looks
like
this
may
not
be
connected
as
it's
supposed
to
be.
So,
let's
see
what
happened
here,
let's.
B
A
A
A
A
A
B
A
Here
we
go
so
this
is
the
create
command
right,
so
yeah.
What
we're
gonna
need
to
do
on
this
one
is
we're.
Gonna
need
to
make
it
so
that
so
that
okay
first
thing
we
need
to
do
is
we
need
to
do
that.
We
talked
about
with
the
seed
right,
and
so
we
need
to
make
it
so
that
we're
adding
those
seed
inputs.
A
A
A
A
G
A
And
so
then,
the
thing
that
we
had
just
talked
about
previously
was
that
input
flow
mapping
would
basically
be
so
like
when
we
had.
We
used
to
have
this
thing
called
transform
of
repo,
which
is
the
same
as
mapping
create
only
what
we
did
was.
We
had
said
that
the
the
key
is
coming
from
the
seed,
which
is
the
thing
that
we
just
added
here
where
we
said
you
know
the
directory
equals
the
key,
and
that's
gonna,
create
this
instance
here
and
then.
A
A
It's
gonna
be
the
same
as
we
used
to
have,
and
then
the
other
thing
that
we're
gonna
want
to
do
is,
since
we
don't
have
that
flow
stuff
that
we
just
talked
about
we're
gonna,
which
would
allow
us
to
set
the
I
would
allow
us
to
set
instead
of
value
as
value
we'd
be
able
to
do
value.
Is
this
pipe
I
package
contents
directory
we're
gonna
have
to
use
that
sed
command
like
I'll
get
there?
A
A
A
We
didn't
actually
add
get
single
to
this
command.
That's
weird!
Okay!
Now
there
we
go
alright
and
now,
if
we
do
get
diff
okay,
it
looks
like
we
end
up
with
yeah,
so
we
got
this
seed
section
back
like
we
wanted
right.
So
this
that
was
deleted
here
is
now
back
and
it
looks
like
somehow
we'd
never
had
get
single
in
there
in
the
first
place,
which
is
weird.
A
A
Okay,
that's
weird!
Well,
I!
Guess
we
didn't
have
goodsoon.
Maybe
we
were
automatically
I
didn't
get
single
in
the
past
or
something
so
yeah,
so
we've
got
get
single.
We
have
seed
values
or
correct,
and
now
we
have
this
five,
a
package
contents
directory.
So
if
we
then
do
that
the
visualize
or
the
diagram
command
so
should
be
able
to
take
that
and
we
should
be
able
to
throw
it
to
the
diagram
command
as
well.
So
do
you
or
oh
yeah,
we're
gonna,
merge
them
too.
A
Use
cases
data
for
deployment
combining
operations;
ok,
so
that
was
the
command
we
ran
yeah.
We
must
have
had
this
doing
good
single
on
its
own
before
or
something
okay,
and
then
we
generated
this
file
yeah,
because
we
should
end
up
with
something
that
looks
like
this
right,
where
we
end
up
with
this
going
over
the
package
contents.
Turning
into
the
lines
of
code
two
comments,
so
then
we
run
this
Oh.
A
Okay,
I
think,
what's
going
on
here,
said:
well,
we
have
a
pretty
big
code,
codebase
Nestor,
how
to
keep
track
of
all
this
stuff.
Okay,
so
I
think
what
happened
here
was.
This
is
why
we
need
to
automate
the
running
of
this,
of
these
examples
or
of
the
documentation,
because
it
makes
it
difficult
to
track
everything
so
diff
or
yes,
so
I
think
we're
in
should
I
here
so
I
think
what,
if
mal
see
a
live
data
flow.
A
F
A
A
A
A
G
A
That's
crazy,
stuff,
yeah
I
hope
that
it
I
hope
that
all
goes
well.
So
I
think
what
happened
here
is
that
that
okay,
so
this
merge
command
that
merges
two
data
flows
when
we
updated
the
syntax.
You
probably
remember
like
when
sock
Shan
was
doing
thing
where
we
wanted
to
edit
the
features
for
the
data
flow
pre-processing
source.
He
had.
A
We
had
to
introduce
this
new
syntax,
where
you'd
have
the
origin
like
seed
and
then
the
list
of
definitions
from
that
origin
that
would
be
accepted,
and
so,
when
we
did,
that
I
think
merge
is
not
dealing
with
that
nicely.
So
I
think
we'll
probably
want
to
just
like
we
can
just
print
out
like
what
what
the
merged
is,
and
we
can
kind
of
look
at
that
right
now,
so
JSON
dumps
merged.
A
A
So
I
think
that,
of
course,
if
we
did
that,
then
that
would
probably
ease
your
pain
here
of
having
to
rebuild
the
dogs
and
then
copy
things
over.
But
you
know
and
that's
why
we
didn't.
We
didn't
get
we
weren't
able
to
catch
this
when
we,
when
we
initially
did
the
change
so
I'll,
take
a
look
at
this
and
I'll
get
back
to
you
in
that
way.
That
way
you
you
can
move
on
to
other
things
for
the
night.
Let's
see
so
let
me
so
Sean
well
take
look
at
operations.
A
A
G
A
Right
cool
all
right,
hey!
Thank
you!
This
is
gonna,
be
really
great
as
we
and
then
we'll
have
this.
This
tutorial
will
be
up
to
date
with
all
the
latest
and
greatest
advancements
here
there
was
a
lot
more
that
went
into
it
than
we
thought
when
you
went
into
this
yeah,
it's
a
good
job
on
this,
let's
see
and
then
okay,
so
yes
and
then
we're
gonna.
Let
me
just
just
make
it
note
about
this,
so.
B
A
A
A
B
A
H
A
H
A
Let's
compare
within
a
range
because
yeah
I
hesitate
to
add
sleeps
places,
get
crap
sleep.
Is
there
any
sleep
places
sleep
one
sleep
sixty
okay,
yeah
other
than
this
one
is
because
we're
in
a
Bosch
loop,
okay,
yeah,
so
yeah
I.
Don't
think
we
don't
have
any
sleeps
in
any
chests
at
this
point,
except
for
this
example,
usage
of
acing
test
case
so
I
think
yeah.
Let's
definitely,
let's
do
if
I
compare
a
range
here
or,
like
you
know,
just
as
long
as
it's
within
a
range
of
like
a
minute
or
something,
then
we
can.
A
A
A
Yeah,
that's
like
the
I/o
open
versus
this
is
like
an
abstraction
around
that
right.
So
where
is
that
we
should
be
in
testing
testing
source
and
then
file
source
because
I
think
it's
the
file
source
test
yeah
that
goes
through
and
does
it
with
every
single
extension
that
we
know
about
so
as
long
as
I'm
gonna
wait.
Why
I
don't
know?
A
Yes,
if
these
guys
are
both
file
source
to
us
yeah
and
they
are-
and
so
is
this
JSON,
okay
but
I
think
see
yeah
okay,
we
may
not
have
had
file
source
test
on
some
of
the
other
ones,
but
test
JSON
and
test
CSV.
You
will
probably
write.
They
are
doing
every
single
X,
so
we
should
it
would
have
caught
them
if
those
where's
there
when
it
gets
wrapped.
So
it's
got
to
be
at
that
base
level
like
you're
talking
about
oh
yeah
and
I.
Think
I
mean
I.
A
A
H
H
B
A
A
Yeah
this
is
weird:
okay
yeah.
Then
this
is
funny.
So,
okay!
Well,
let's
figure
out
yeah!
That's
first!
Do
these
these
permission
denied
events
so.
H
A
A
A
A
A
A
A
All
right
so
and
then
we've
got
this
filename
that
we
can
just
use
so
test
file,
and
then
we
can
just
say
to
this
file
and
now
hopefully
we
won't
mess
with
us,
because
now
it's
it's
that's
one
like
right
operation
right
there,
and
then
this
is
the
read
and
so
now
I
should
be
open
at
the
same
time.
Okay,
so
let's
check
how
many
errors
we
have
and
then
hopefully
it
goes
down
by
one
failures
for
ears:
ton.
A
A
A
A
Come
and
yeah
that
would
be
good
too
yeah
see
oh
yeah
and
we're
well
we're
mostly
we're
doing
pretty
good
I
mean
we're
doing
pretty
good.
Of
course,
the
data
flow
stuff
is
always
that's
kind
of
that's
it's.
It's
tricky
stuff.
Okay,
so
yes,
errors,
nine,
alright,
okay,
good!
So
far!
Hopefully
that
one
got
it.
A
H
A
A
A
A
A
B
A
So
then,
I
think.
Another
thing
that
we
might
want
to
try
here
is
is
that
if
we
enable
the
CI
tests
on
Windows
so
basically
like,
if
we
look
at
at
how
github
actions
does
Windows
support
and
we
figure
out
how
to
turn
it
on
there,
they
probably
don't
have
like
you
know,
whatever
firewalls
and
stuff
that
we
might
be
experiencing
locally.
A
A
A
H
A
H
B
A
A
The
standard
built-in
HTTP
server
like
running
through
a
select
loop,
so
that
you
can
you
can
you
get
the
notification
on
the
bind
event
so
that?
Because
what
would
often
happen
is,
if
you
start
an
HTTP
server
like
if
you
start
some
server
process
bound
to
a
port,
and
then
you
try
to
make
a
connection
to
it.
It'll
be
like
I'm
not
actually
bound
at
that
port,
yet
so
like
throwing
it
through
the
Select
loop.
A
A
A
Aha,
perhaps
yeah,
so
this
is
perhaps
what
the
bigger
problem
here
is.
Is
that
I
had
not
tested
this
HTTP
test
library
on
Windows
and
it
looks
like
that's
what
the
problem
is.
Is
that
the
underlying
library
that
I've
been
using
to
write
the
HTTP
servers
that
I
was
saying
I
copied
the
way
that
golang
does
it
I
didn't
test
this
on
Windows,
and
so
it
doesn't
work
on
Windows.
A
So
an
ayat
happens
is
I
made
this
thing
so
that
we
can
spin
up
well,
you
can
look
at
it
on
github,
but
basically
like.
If
you
look
at
the
way
that
goaling
does
it
I
really
liked
that
way,
and
so
I
wanted
something
that
did
it
for
Python,
but
like
lots
of
things
like,
don't
quite
do
it
like
that,
so
it
looks
like
this
is
exactly
what
I
was
talking
about
here
with
this
select
loop,
where
did
it
go.
A
A
You
bind
that
socket
right
and
you
bind
it
to
port
0
and
when
you
bite
into
poor
zero,
that
tells
the
kernel
right,
the
OS
to
say,
assign
me
any
available
port
number
and
when
you
do
that
it
comes
back
and
then
it
says:
okay,
like
you're,
bound
to
a
port,
and
then
you
have
to
make
the
listen
call
and
the
listen
call
says
alright,
now
start
waiting
for
incoming
connections
and
and
like
at
least
some
I'm
not
familiar
with
Windows,
but
at
least
on
linux.
You.
A
A
The
number
10
and
now
you
go
into
the
kernel
and
the
kernel
says:
ok,
like
I,
am
setting
up
this
socket
that
I've
assigned
a
random
port
to
and
I'm
going
to
have
at
most
10
incoming
TCP
connections
like
queued
up
and
if
I
get
any
more
than
10
before
I
can
go
and
run
like
timeslice
run
my
user
space
process,
which
is
our
Python
code,
I'm
gonna.
Just
like
kick
them
to
the
curb
and
say:
ok,
you
have
to
come
back
later.
I'm
not
gonna,
send
the.
A
What
is
it
the
sin:
och
I'm,
just
I'm,
gonna,
I'm,
gonna,
just
drop
it
right
or
I.
Think
you
might
I
can't
remember
what
the
TCP
handshake
is,
but
they
might
just
drop
it
and
it
might
send
a
reply
saying
like
I
can't
handle
you
right
now
and
so,
but
basically
the
first
time
through
that
listen
call,
it's
gonna
get
its
file.
A
Descriptors
can
be
in
three
states,
they
can
be
in
read,
write
or
error,
and
so
the
first
time
through
after
you
issue
that
listen
system
call
it's
going
to
come
back
and
it
will
be
in
the
read
state
and
once
it's
in
the
read
state.
That
means
it's
actually
ready
so
that
if
you
issued
a
connect,
call
from
a
client
or
another
machine
that
the
kernel
will
put
that
TCP
connection
into
that
cue
right.
A
So
that
cue,
that's
ten
long,
it's
gonna
say:
okay,
I'm
I'm,
ready
to
like
okay,
here's,
here's
one
connection
that
comes
in
your
first
in
the
queue
and
then
because
the
file,
but
it
wouldn't
have
done
that
unless
it
could
be
in
the
read
State
right-
and
this
is
the
main
socket
right.
And
so
what
we
do
is.
A
A
If
these
ones
are
aired-
or
maybe
you
just
passed-
that
a
whole
bunch
of
them
I
can't
quite
remember,
but
the
point
is
it
gives
you
back
a
subset
that
are
in
each
state
and
it's
gonna
say
now
that
the
main
file
descriptor,
which
you
bound
this
is
just
listening
serversocket
and
it's
going
to
say
that's
in
the
read
state,
because
you've
got
an
incoming
connection
right,
and
so
that's
like
well
what
we're
that's
like.
That
would
be
the
second
iteration
of
this
loop,
but
the
first
iteration
of
this
loop,
and
that
was
so.
A
A
So
if
the
F
D
is
not
file
numb,
then
we
close
it.
Otherwise,
we
handle
the
request.
Oh
yes,
so
this
is.
This
is
basically
saying,
because
this
is
the
pipe
here,
and
so
if
we
call
stop
crap
background,
it
sends
something
to
the
pipe
and
then
it
says:
okay.
Well,
that's
not
our
file
number.
So
we're
going
to
close
our
socket
and
exit
out
of
here
so
we're
done
serving.
But
the
point
is
the
first
time
this
comes
through.
It's
going
to.
A
Well,
I,
guess
that's
okay,
so
it
does
the
listen
call
and
then
it
immediately
calls
surf
forever
and
when
it
calls
surf
forever,
it's
already
bound-
and
this
stuff
is
just
to
make
sure
that
we
we
either
handle
incoming
requests
or
we
close
the
server.
So
you
I
explained
a
lot
more
that
wasn't
actually
related
to
what
that
was
doing.
But
now
you
know
how
that
works
or
how
sockets
work
and
select
works.
So,
let's
see
yeah.
So
my
guess
here
is
basically
I
mean
a
long
story.
Short
I'll.
A
A
H
A
A
What
do
I
do,
and
so
I
would
say
like
play
with
play
with
play
with
the
Select
system
call
and
like
the
pole
system
call
and
stuff
and-
and
you
know,
writing
some
servers
with
with
like
the
the
more
low-level
Python
code
or
the
C
code
and
I
mean
it's
gonna
be
easier
with
Python
and
I
would
do
it
on
Linux,
so
you
don't
run
into
weird
stuff,
but
they
definitely
it's
definitely
enlightening
and
it's
fun
to
do
anyway.
So
do
you
guys
have
anything
else
you
want
to
talk
about
today
or
else
I'll.
A
F
A
Fix
issue
to
pee
test
on
Windows
and
yes,
okay,
so
yes,
I
got
that
all
right
is
there
anything
else
that
you
guys
can
remember
that
I
was
that's
on
the
hook
for
right
now.
Let's
see
I
think
we're
good
here.
Sweet
thanks,
guys,
sorry
I'm
sure
it's
late,
but
have
a
good
night
and
I'll
talk
to
you
later.