►
From YouTube: JS Party LIVE at Node+JS Interactive!
Description
The much loved podcast JS Party is hosting a live show at Node+JS Interactive! Come join the group to discuss the latest in JavaScript!
A
A
All
right
awesome
that
gets
us
in
the
mood.
Alright.
Thank
you.
So
much
for
coming
to
Jay's
party
live
at
nodejs
interactive
now.
Another
thing
that
we
end
up
doing
on
a
lot
of
episodes
is
either
some
kind
of
rap
or
poem
or
or
haiku
to
kick
off
and
get
started,
and
so
I
have
one
of
those
prepared
written
by
yours
truly,
but
first
I
got
my
slides
mixed
up.
I
want
to
talk
about
jazz
party
a
little
bit
for
those
of
you
who
may
not
have
heard
of
it.
A
Jes
party
is
a
weekly
podcast
about
JavaScript
in
the
web,
and
we
talk
a
lot
about
a
lot
of
different
things
and
we
have
a
great
diverse
cast
list
where
not
all
of
us
around
the
every
episode,
so
that
keeps
things
fresh,
but
we
have
suze
Hinton
for
us,
Ibuki,
DJ,
Kevin,
ball,
Emma,
wedeck
and
Divya
saucier,
our
and
Michael
Rogers
Christopher
Hiller,
who
is
at
this
conference
and
if
you're
in
this
room.
That
means
that
you're
not
at
his
talk
right
now.
A
A
So
yeah
in
this
we're
gonna
get
started
and
we're
just
going
to
talk
to
some
of
the
speakers
that
you've
heard
throughout
today
and
yesterday
and
we're
going
to
talk
about
their
talks
and
dig
a
little
deeper.
Ask
some
other
questions
and
really
get
more
out
of
them
and
more
out
of
their
content
and
yeah.
So,
let's,
let's
just
go
ahead
and
kick
it
off
the
first
speaker,
I
got
my
slides
mixed
up
again.
Sorry
I
forgot
that
I
have
this
in
here.
A
If,
if
you
haven't
listened
to
us
before,
these
are
some
recent
episodes
that
we
have
right
now,
if
you're
here
you're
also
not
listening
to
this
live.
But
we
are
currently
live
interviewing
Ahmad
Nasari,
the
CTO
of
NPM.
That
episode
will
be
released
next
week,
but
other
episodes
that
we've
had
include
a
discussion
on
es
modules,
modernizing
Etsy's
codebase
with
react
mentorship
with
Khalil
Lachelle
you're,
probably
using
streams
with
Matteo
Kalina.
A
Who
also
gave
a
talk
at
this
conference,
and
then
we
also
have
some
fun
episodes
like
we
should
rebrand
JavaScript,
yep
or
nope,
and
that's
a
debate
where
you're
assigned
your
thoughts
on
that.
And
then
you
have
to
defend
those
thoughts,
whether
we
should
rebrand
javascript
in
this
case
all
right.
So
let's
get
started
and
let's
interview
our
first
guest
and
that
is
Vladimir
deter,
Kim
I'm
gonna
come
on
up.
A
B
That's
right
tell
me
about
that.
So
no
js'
loader
hook
is
a
experimental
API
in
node.js,
it's
linked
with
es6
modules.
So
it's
the
future,
and
everyone
loves
that.
Yes,
basically
it's
an
API
that
enables
you
to
hook
any
modules
that
is
loaded
and
then
you
can
do
whatever
you
want
from
logging
to
actually
creating
virtual
module
and
load
them,
because
it
doesn't
hook
existing
modules
that
are
loaded,
it
tooks
modules
that
are
asked
to
be
loaded.
So
let's
say
you
are
loading
your
modules
that
is
not
present
in
your
node
modules.
A
B
That's
a
great
question:
this
is
a
review
reason
why
you
won't
want
to
know
which
modules
are
loaded.
I
was
not
part
of
the
working
group
with
designed
this
API,
so
I
can't
give
a
definitive
answer
on
why
they
created
it.
True,
what
I
can
say
that
so
at
screen,
I
do
instrumentation
of
node.js
processes
for
security,
meaning
that
I
need
to
know
which
modules
are
loaded,
because
I
need
to
inject
security
algorithms
in
these
modules,
as
they
are
loaded
and
that
a
similar
issue
that
APM's
have
as
new,
really
elastic
or
our
dynaTrace.
B
So
all
this
vent,
we
need
to
know
which
modules
are
loaded,
because
we
need
to
know
what
we
need
to
instrument.
Usually.
Historically,
we
use
a
very
ugly
patch
by
monkey
patching
some
private
method
in
node
which,
out
of
out
of
which
technically
is
not
private
anymore,
because
half
of
the
ecosystem
relies
on
that
anymore.
Now,
but
ICTs
remember
who
can
get
me
with
anger,
so
they
created
a
proper
API
for
us
to
do
that
without
breaking
everything.
Nice.
B
It's
even
before,
what's
in
the
cache
it's
when
the
module
are
loaded,
you
have
the
chance
the
opportunity
to
intercept
that
and
even
rewrite
the
modules.
So
in
the
talk
yesterday,
I
had
three
examples:
one
of
them
was
actually
rewriting
type
loading
type
script
modules.
So
if
you
create
a
loader
hook
that
transpires
type
script
to
Java
scripts,
you
could
really
tell
node
hey.
B
After
the
talk
to
mine,
told
me
about
having
a
yellow
loader,
because
there
was
a
lot
of
thing,
you
can
do
in
yellow
that
you
can't
do
in
JSON,
but
that
are
still
possible
in
JavaScript
objects.
So
the
idea
would
be
like
hey
I,
want
to
import
channel
modules
transparently
without
ever
having
to
read
the
file
and
transpire
that
I
want
my
developers
to
just
import
channels
module
and
that
pretty
much
what
this
API
can
do.
Interesting.
A
B
It
will
be
used
in
production,
at
least
for
a
PM's,
because
eventually
it
will
be
the
only
way
to
intercept
loading
modules.
So
that's
definitely
a
business
need
for
a
PMS.
Regarding
transformations,
yes,
I
mean
the
types
creat
transformation
I
would
recommend
adding
a
build
step,
but
if
you
want
to
load
other
things
like
ml,
this
is
a
great
example.
B
I,
don't
see,
any
reason
why
we
would
not
use
that
in
production
register
table
the
only
potential
issues
in
the
future
that
how
do
you
compose
multiple
loader
hooks,
and
we
know
that
the
JavaScript
ecosystem
is
really
strong
and
having
a
entropy
and
diverse
things
in
the
ecosystems.
Why
I
hope
there
will
be
a
sooner
standard
for
people
to
play
along
and
not
to
step
in
on
each
other's
feet
when
loading
modules,
very
cool.
A
B
B
What
I
do
is
that
when
it'll
module
is
loaded,
I
check
everything
that
is
exported,
because
it's
just
an
array
of
string
with
the
name
of
the
things
that
are
exported
and
I,
replace
all
of
the
exports
by
your
proxy,
which
is
native
objecting
in
JavaScript.
That
enables
you
to
trap
everything
that
happens
on
an
object,
so
I
replace
each
of
this
export
by
proxy
and
I
expose
the
proxy
handler
the
definition
of
how
the
proxy
behave
to
the
end-user
meaning.
B
Then,
when
you
load
the
modules
that
has
been
transformed,
you
also
have
access
to
a
set
of
objects
that
enables
you
to
change
the
behavior
of
all
of
the
exports.
So,
of
course,
to
make
it
smarter,
we
need
to
bet
rico.
Civet
e
on
that
to
change
deeper,
deeper,
deeper
fails,
but
as
a
first,
everything
is
good
enough.
B
A
I
use
es
module
like
syntax
in
typescript,
and
then
I
rely
on
tools
like
like
just
and
I
haven't
looked
at
what
just
is
actually
doing,
but
it
has
the
ability
to
mock
your
dependencies
like
this,
which
I
assume
is
just
relying
on
the
fact
that
it's
just
an
underlying
command
J
s
module,
that's
actually
being
running
and
being
able
to
do
that.
So
do
you
see
loader
hooks
as
like
the
solution
for
those
types
of
problems
in
the
future
when,
theoretically
we're
all
just
writing
straight?
Yes,
M.
B
Definitely
also
in
my
understanding,
loader
hooks
will
also
be
available
available
for
common
jeaious,
a
closing
parenthesis,
but
actually
there
will
be
no
other
solution
trained
working
to
things
that
are
imported
four
years
six
modules.
So
people
will
have
to
go
with
that,
and
sometimes
it's
good
to
have
a
unique
way
of
doing
that.
But
this
API
has
been
done
cleanly
history
carry
you
can
only
mock
modules
synchronously.
This
API
is
based
on
async
functions,
meaning
that
you
can
do
icing
treatment.
B
B
So,
basically
you
would
be
loading
modules
from
a
URL,
because
it's
just
plain
text
at
the
end
of
the
day
or
bytes,
and
if
you
have
stream
bytes
that
no
js'
no
zero
to
instrumented,
whether
it's
Jana
script
or
whether
somebody
you
just
need
to
find
a
way
to
get
it
locally
on
your
machine
and
to
give
that
to
node.js
to
build
a
module
for
so
yeah.
One
of
my
example
was
like
instantiating
a
guest
without
downloading
it
before
starting
the
process,
letting
node
do
not
exist
for
me
and
instantiate
it.
This
cool.
B
A
A
Yes,
modules,
really
can't
because
of
the
way
that
they
are
statically
analyzed
and
things
like
that,
and
this
seems
like
one
of
those
api's
that
is
allowing
us
to
have
not
really
have
to
take
away
a
lot
of
features
when
we
go
to
that.
So
we
can
do
things
like
that
kind
of
get
in
the
middle
of
how
modules
are
actually
loaded
and
changed
that
in
really
interesting
ways.
Another
way
is
like
the
I
think
you're.
A
B
Yeah,
actually,
someone
came
to
me
after
the
token
asked
hey.
Would
it
be
possible
to
es6
import
command,
J's
module
with
a
loader
hook
and
that's
actually
doable,
because
you
would
there's
a
method
in
no
name
create
require
that
enables
you
to
create
a
custom
require
function,
that
you
can
use
in
es6
modules
to
load
command,
J's
modules.
So
you
could
definitely
build
a
loader
that
would
do
that.
Actually,
in
my
typescript
example
to
import
a
type,
strict
and
spyler,
I
had
to
do
that
because
it's
not
exposed
as
you
near
six
modules.
B
Yeah,
if
you
want
to
create
backward
compatibility
which
command
area
through
a
loader,
you
can
the
the
entropy
of
weird
things
that
will
be
available
with
this.
Api
is
limitless,
and
that
is
that
one
of
the
thing
I
love
with
an
odious
and
javascript
ecológico
system,
in
that
it's
just
infinite
state
machine.
Where
you
just
give
a
few
rules,
it's
an
AI,
it's
a
collective
AI.
You
give
a
few
rules
and
the
pool
of
developers
around
the
world
will
hack
around
it
until
everything
is
act
around
absolutely.
B
B
B
A
A
A
D
Yeah
today
we
are
showing
about
our
work,
impunity,
appearance,
DEP
is
a
nonprofit
organization
and
NGO
from
Columbia
and
in
in
my
talk,
I
I
was
talking
about
sharing
about
when
you
think
about
Colombia,
South
America.
First,
you
don't
know
how
to
pronounce
it
if
you
are
from
out
of
Colombia,
so
it's
column
yet
not
Colombia.
As.
A
A
D
It's
different
so
and
the
other
thing
is
I
know
we
have
a
really
strong
story
about
war
and
about
the
internal
guerrilla
problem
and
I
know
you
so
narcos,
of
course,
and
Netflix
is
a
pretty
primetime
show,
but
that's
not
the
reality
in
our
country.
So
we
create
a
small
group
with
Tigers
in
2002
and
a
15
and
we
stir
from
them
and
right
now
we
are
circled
1200
women,
young
women
who
are
learning
how
to
code.
That's.
A
That's
just
crazy
the
growth
on
that.
So
that's
great.
Can
you
tell
us
what
what
is
it
plainer
am
I
saying
that
right,
pioneers
dev?
Can
you
tell
us
what
that
looks
like
like
what
what
you
do
with
that
and
what
what
is
like
the
typical
story
of
a
young
woman
who
goes
through
that
program?
What
does
it
look
like?
Okay,.
D
D
D
D
Our
our
core
was
note
because
we
have
a
really
cool
mentors
that
are
here
in
in
this
conference,
and
they
are
really
great
for
up
there
from
the
tech
culture
in
Colombia
because
they
create
the
first
conference
in
our
country
that
was
joyous.
Conf
I
was
Corgan
Iser
in
2018
and
2017
and
I
very
close
to
this
community,
and
actually
they
most
of
them.
I
know
note
is,
is
is
back-end,
but
most
of
them
has
really
strong
a
route
from
in
the
JavaScript
language,
and
most
of
them
are
front-end
developers.
D
D
One
year,
but
I
actually
as
specified
that
I
mean
they,
they
learn
how
to
how
to
search
how
to
search
and
how
to
search
in
a
stack,
overflow
and
github
and
yes
on
how
to
they
self
learn
in
their
in
their
in
other
space,
like
libraries
or
a
small
study
groups,
and
they
can
share
a
one
laptop
four
five,
five
young
women,
but
with
mentorship.
Because
we
also
have
a
mentorship
program
through
a
year.
They
can
get
the
job
very.
D
D
Right
now
we
are
in
treatment
cities
in
Colombia,
Cali,
Barranquilla
and
merging.
Imagine
actually
right
now
is
a
really
big.
We
have
a
really
big
tech
hub
right
there,
but
in
other
cities,
that's
no
story
because
they
don't
have
too
many
companies
in
there.
Oh,
actually,
it's
not
it's
not
trending
for
for
companies
to
be
there
or
don't
have
these
spaces
to
to
to
run
the
meetups.
So
we
are
really
helping
through
melody
to
reach
other
areas
from
Colombia
that
they
don't
have
too
many
opportunities.
What.
D
Did
three
things
we
need?
We
need
someone
to
want
to
share
their
knowledge,
so
you,
if
you
are,
if
you
feel
like
you,
can
share
with
us
Unidas,
you
can
write
us
or
follow
us
in
our
social
media
and
you
are
able
to
to
share
with
one
p
anita
in
made
in
colombia
or
in
other
three
series
that
we
are
right
now.
The
other
thing
is
venue,
because
we
need
a
place
to
run
these
meetups
and
the
co-working,
so
innovation
hubs
will
be
very
open
to
us
in
in
cities
like
Ali
or
another
ones.
D
We
create
we
can
shop
if
I,
like
we
put
these
t-shirts.
That
cost
like
$15
is
in
pesos
that
people
say
that
and
it's
like
35
K
and
they
say
like.
Oh
my
god,
it's
so
much,
but
it's
the
ERM.
Then
the
conversion
will
be
$15,
it
could
be
less,
but
you
can
buy
a
t-shirt
and
perhaps
with
called
sentence
out
of
Colombia
right
now,
but
you
are
supporting
our
cause
and.
D
Actually
I
know
in
Latin
America
they're
few
groups
about
girls
in
coding
areas,
but
there
are
some
places
like
Bolivia
or
Peru.
Peru
also
have
but
I
mean
Bolivia
Ecuador
and
they
have
a
space
for
something
like
pinellas.
But
we
are
creating
a
change
one
community
at
a
time,
so
open
a
meet-up
in
other
cities,
because
we
have
32
departamentos
and
the
parameters
will
be
like
puros
or
something
like
that
in
demographical
political
divisions.
But
we
have
a
really
a
jungle
or
really
poor
areas
that
they
don't
have
developed
like
the
big
cities
that
we.
A
D
We
need
we
need
people
to
share
knowledge
and
right
now,
I
know
you
are.
We
always
know
something
to
share,
but
perhaps
you
are
always
apprentice
in
life,
but
this
could
really
need
knowledge
and
time
time
is
the
most
value
of
currency
that
you
already
have.
So
if
you
have
the
time
to
share
one
hour
with
these
women,
young
women
in
Colombia
will
be
great.
D
A
D
I
I
think
yeah.
The
message
is
that
I
like
to
share
with
you
with
all
of
you.
Yes,
please
help
us
help
us
to
transform
our
country.
It
helped
us
with
your
time
and
with
your
knowledge,
because
I
know
here
will
be
the
brightest
mine
too,
to
share
about
note
and
about
JavaScript
world.
So
we
need
them.
We
need
change
these
women,
young
women
wore
lights.
Thank
you.
Love.
A
A
A
A
A
One
automating
the
discovery
and
work,
but
under
supervision
would
be
step
two
letting
the
robot
do
the
work
for
you,
but
with
supervision
would
be
step
three
and
then
supervisors
doing
the
work
supervising
unsupervised
and
pulling
out
the
fallback
support
would
be
step
four
and
then
the
robot
is
your
boss
is
step
5,
and
so
you
mentioned
that
we
probably
will
never
get
to
step
5
and
we
wouldn't
want
to
which
is,
is
probably
a
good
thing.
Yeah.
E
E
We
use
we
used
robots
for
a
lot
of
different
things
on
Google
Cloud,
the
example
I
used
in
the
talk
was
about
being
able
to
run
CIA
for
things
that
are
initiated
by
non
contributors.
So
many
people
in
the
community
use
dependency
monitors
so
things
like
renovate
and
those
aren't
first-class
members
of
a
repository.
E
They
don't
have
write
access,
but
we
don't
really
want
to
have
developers
having
to
screen
repositories
and
for
for
most
developers,
this
probably
isn't
a
huge
problem,
but
at
Google
we
have
hundreds
of
repositories
and
so
having
to
go
over
each
and
everyone
just
to
initiate
CI
to
build
and
test
the
dependency
update.
Is
it's
very
painful,
and
so
we
could
save
literally
hundreds
of
hours
developer
time
by
using
bots
to
do
that.
E
Work
and
we
do
it
BOTS
also
for
release
management,
publishing,
Docs
monitoring,
and
we
even
take
it
not
quite
to
step
five,
but
we
have
some
robots
that
do
bot
monitoring.
So,
for
instance,
our
publishing
flow
to
NPM
is
multi-step.
The
first
step
is
that
we
build
CI
and
we
tag
things
on
the
github
side.
But
there's
a
step
after
that.
That
will
publish
the
NPM
and
for
some
reason
in
between
those
two,
it
doesn't
get
all
the
way
to
the
end.
E
The
bot
comes
through
and
notices,
and
it
opens
a
bug
for
us
that
sort
of
ties
back
into
the
talk.
It's
good
to
scope,
your
BOTS.
So
while
it's
monitoring,
it
is
a
very
simple
task.
The
worst
thing
you
can
do
is
open
bugs
against
a
repo.
We
have
some
safeguards,
so
it
doesn't
try
to
open
a
lot
of
bugs,
but
yeah
yeah.
A
C
I
can
do
that
before
I.
Do,
though,
I
have
this
really
funny
story
that
I
want
to
share
about
bots
watching
BOTS?
There
was
this
tweet
thread,
and
there
was
this
tweet,
where
an
open-source
project
had
a
PO
request
that
was
CI
was
run
by
a
bot.
It
was
then
approved
by
a
different
pot.
It
was
then
deployed
by
a
different
bot
and
then
a
different
bot
came
along
and
said:
hey,
congratulations,
everybody
great
job,
so
you
know
who
watches
the
BOTS,
except
when
they're
kind
of
doing
their
own
thing,
it's
kind
of
dangerous
yeah.
A
C
Was
awesome
and
terrifying,
so
pro
bot
is
the
sort
of
tagline
on
the
website.
Is
it's
a
framework
for
building
github
apps,
so
kind
of
apps
are
awaiting
a
great
with
github
pro
bot
is
very
webhook
focused.
So
you
know
something
happens
on
github
your
pro
bot
app
will
be
set
up
to
receive
a
web
hook,
and
then
it
has
all
kinds
of
like
helper
api
is
to
say:
okay.
This
happened
on
github.
Now,
here's
how
we're
gonna
handle
it.
So
you
know
very
common
example
would
be
somebody
pushes
code.
C
A
C
Totally
yeah,
so
pro
bot
does
predate
actions
done
so
in
actions
was
coming
along,
the
other
Probot
maintainers
and
I.
We
sort
of
looked
it
and
said
wow.
This
is
awesome.
You
know
this
is
great.
This
covers
so
many
pain
points
that
Probot
has
so
like
deploying
your.
So
you
know
pro
bot
is
just
a
framework.
It's
a
node.js
framework
under
the
hood.
It's
running
an
Express
server.
So
where
do
you
deploy
that?
But
with
github
actions?
All
of
a
sudden
github
runs
your
workflow
automation
tools,
which
is
really
exciting.
Nice.
A
That's
really
cool
so
yeah,
it's
that
was
one
take
away.
That
I
took
from
from
your
talk
is:
is
that
proba
really
are
the
apps
that
you
create?
The
bots
that
you
create
are
really
just
note
apps,
and
then
you
can
put
them
under
version
control
and
keep
them
there.
It
sounds
like
you
could
do
pretty
much
the
same
thing
with
github
actions
where
they're,
just
under
version
control
in
your
repository
itself,
yeah.
C
Yeah
I
mean
there
are
definitely
a
few
things
that,
like
if
I,
were
to
build
a
workflow
automation
tool,
sometimes
I'll
use,
get
up
actions,
sometimes
I'll
use
Pro
bot,
I'd
say
that
you
know
for
things
like
persistence
or
long
running
tasks.
If
you
know
you
care,
if
the
server
suddenly
dies,
Pro
BOTS
probably
a
better
option,
but
if
you
think
to
yourself,
hey
I'm
gonna
run
this
app
in
like
a
lambda
function.
A
C
So
one
of
the
sort
of
I
have
two
things
that
I
want
to
mention,
so
I
think
the
most
exciting
one
to
me
is
in
github
actions.
You
can
really
really
easily
clone
down
the
repository
that
the
action
is.
You
know
taking
actions
against,
so
you
know
you'll
push
some
code
and
you
want
to
run
like
some
kind
of
test
coverage
tool
or
something
in
Probot.
You'd
have
to
like
download
a
whole
get.
C
You
know
object
thing
which
in
no
it
isn't
very
fun
to
do,
but
in
actions
you
can,
you
know,
add
one
line
to
a
yamo
file
and
suddenly
you
have
all
that
code
available
to
you.
So
that's
really
exciting.
That
sort
of
enables
a
whole
slew
of
new
things
and
then
another
one,
and
this
is
something
that
in
the
probic
community
we
saw
as
being
like
a
really
important
addition
that
we
wanted
to
see
in
the
platform
itself
is
some
concept
of
secrets.
A
E
So,
typically,
you
don't
want
BOTS
to
be
complex,
yeah,
so
complex
boxes
fail
and
complex
ways,
and
and
that
that
tends
to
get
sort
of
hairy
I
would
say
the
the
neatest
thing.
We
probably
do,
though,
I'm
not
that
it's
that
complex.
We
find
that
especially
so
many
repositories
issues
go
stale
either
it
gets
assigned
to
a
developer
and
that
developer
gets
overburdened
or
goes
on
leave
or
just
not
their
area
of
expertise.
They
were
miss
assigned,
so
it
just
Falls
to
the
bottom
of
their
or
their
sack
and
the
stuff
they
do.
E
The
actually
most
complex
thing
we
do
is
probably
publishing.
Just
because
there's
a
lot
of
steps,
sure
individually,
it's
all
very
simple,
but
we
have
to
publish
Docs
and
as
well
as
the
the
samples
that
sell
the
samples
for
the
the
repository
pod
story
in
the
package,
the
NPM
package
we
use
typescript.
So
that
needs
to
be
transpile.
A
E
You
notice
from
the
talk
they're
based
on
something
to
do
an
automotive
engineering
to
sort
of
do
driverless,
car,
leveling
and
understanding,
so
it's
just
really
a
way
to
frame
sort
of
risk
and
reward
yeah
honestly
more
than
anything
else,
but
it's
about
a
level
probably
of
three.
Maybe
a
four
at
this
point.
E
The
the
thing
that
that
made
the
change
for
us
is
we
we
go
as
far
now
to
auto
detect
if
we
ought
to
publish,
and
so
as
commits
come
in
to
the
main
branch
we
can
detect
that
there
are
our
new
changes
and
we
use
a
thing
called
conventional
commits.
So
at
the
front
of
every
commit,
is
a
label
be
that
chore
fix
breaking
that
allows
us
to
detect?
Is
it
a
patch
or
minor,
a
major
release?
E
A
Going
back
to
that
example
that
shuffles
commits
or
sorry
shuffles
issues
that
are
getting
stale
I
haven't
looked
at
the
api's
closely,
but
like
is
there
an
action
for
that
or
sorry
a
web
hook?
For
that
or
like?
Are
you
doing
it
like?
Is
it
proactively
searching
for
that
and
running
like
on
a
cron
job
or
something?
How
is
that
being
being
kicked
off
so.
D
E
Called
cloud
scheduler
that
Google
cloud
can
provide
us
as
we
kick
off
that
action,
but
already
Probot
uses
a
thing
called
octa
kit
that
gives
you
access
to
a
ton
of
different
github
events
and
there's
far
more
than
I
would
have
originally
thought.
It's
definitely
something
worth
checking
out.
You
can
trigger
on
all
sorts
of
things
and
it's
very
fine-grained.
It's
down
to
pull
requests
open
to
synchronization
comments
labels.
Well,
so
you
can
get
you
can
get
pretty
pretty
exact
to
when
you
want
to
take
some
sort
of
action
and
run
some
script.
Yeah
very.
A
E
We
started
doing
this
before
actions
this
around,
which
is
why
we
we
made
the
choices
we
did.
We
didn't
have
a
chance
to
evaluate
actions,
I
think
if
we
started
today
we
would
definitely
consider
actions,
but
there
are.
There
are
a
few
constraints.
So
actions
don't
deal
very
well
with
long
running
tasks,
so
that
can
be
problematic.
You
also
it's
also
hard.
If
we
ever
wanted
to
scale
up,
so
we
used,
we
used
to
think
called
Google
Cloud
functions
which
ultimately
takes
a
small
bit
of
nodejs
or
a
few
other
languages.
E
In
our
case
it
snowed
and
it
executed
for
us
on
an
event
hook.
It
starts
up
a
service
when
we
need
it
and
shuts
it
down,
so
it
costs
us
very
little
money
and
we
could
adapt
that
into
docker
containers
fairly
straightforward
like
and
then
you
know,
and
maybe
eventually
we
need
to
cook
in
Eddie's
cluster,
who
knows,
we've
also
extended
to
have
some
security
measures.
So
we
we
stored.
E
None
of
the
secrets
in
the
functions
themselves
that
are
all
stored
in
a
key
management
service
also
a
thing
that
Google
cloud
provides
and
allows
us
to
to
be
a
little
more
secure,
a
little
more
confident.
It's
also
a
lot
easier
for
us
to
rotate
our
secrets
and
so
for
a
convenience
standpoint.
It's
pretty
good
for
us,
nice.
A
C
B
C
For
sure,
but
otherwise
I
mean
I
still
see
them
as
separate
I
still
see
them.
As
you
know,
two
separate
ways
to
build
integrations
I
personally
have
written.
You
know
a
ton
of
github
actions,
I
think
they're,
wonderful,
I've
done
of
Probot
apps,
and
you
know
every
time
I
go
and
build
something
new
I'm
like
which
one
am
I
going
to
choose
today.
You
know
there
are
some
ways
to
use
app
robot
app
within
actions.
There's
a
repository
in
the
Probot
org
on
github
github,
comp
robot.
C
It's
called
I
want
to
say
actions
adapter
and
the
you
know
premise.
Is
you
wrap
your
Probot
app
in
this
like
little
node
adapter
thing?
You
run
it
in
actions,
so
it
can
kind
of
have
the
best
of
both
worlds.
I
mean,
like
I,
said
Pro
bots,
just
node,
so
you
can,
you
know,
make
some
adjustments
and
throw
it
into
a
github
action
and
call
it
a.
A
Day
so
yeah-
and
it
really
gives
you
that
flexibility
to
really
choose
anything
whereas
get
up
actions
are
more
kind
of
streamlined
for
get
up
there
running
on
github
servers.
This
like
you're
running
yours
on
Google
Lab
functions.
So
you
can.
You
can
have
way
more
flexibility
and
make
those
those
more
fine-grained
decisions
with
robot
yeah.
C
A
B
E
Speed
audio
is
a
service
that
Jason's
also
pretty
involved
in
that
proxies,
in
our
case
Jason
payloads
from
github
to
a
localhost,
and
so
it's
it's
a
rather
simple
service.
Jason
was
telling
me
I.
Think
it's
a
hundred
hundreds
of
lines
of
code,
it's
that
level
and
what
what
it
allows
us
to
do
is
locally
test
our
bots.
So
we
don't
need
to
get
Google
Cloud
involved
at
all.
We
don't
need
to
get
actions
involved
or
anything.
We
can
run
the
Express
server
locally.
E
We
can
make
a
test
repository
on
github
and
that
will
send
the
event
to
me
dot
IO
and
they
give
you
a
select.
So
it
ends
up
being
a
random
character
string
and
that
will
forward
to
localhost
3000
and
allow
us
to
test
it
locally.
You
can
debug
things,
then
that
way
you
can
play
around
a
bit.
It
doesn't
have
to
be
too
serious.
Then
it
lets
you
experiment.
The
other
really
nice
thing
that
semi
I/o
does.
Is
it
lets?
E
You
see
the
requests
that
have
been
made,
which
I
find
very
useful
when
it
comes
time
to
write
integration
tests,
unit
tests,
I
can
look
at
a
real
JSON,
payload
and
I
can
capture
that
and
I
can
use
it
again
later
that
that
I
think
is
something
I.
Don't
see
a
lot
of
examples
of,
but
it's
probably
for
me
personally,
the
most
useful
thing
about
Smee
yeah.
B
C
Like
this
sort
of
really
interesting
API
that
I'd
never
heard
about
before
it's
called
the
event
source,
API
yeah
and
it's
kind
of
like
a
I'm,
probably
get
this
wrong,
but
it's
like
a
unidirectional
WebSocket
implementation,
kind
of
and
Smee
works
by
having
this
one
server,
that's
constantly
running
and
then
multiple
clients
connect
to
it
as
I'll
say:
eventsource.
Clients
is
the
right
term,
but
it's
sort
of
this
like
we
have
this:
no
primary
Smee
server
that
then
shares
payloads
as
they
come
in
to
all
the
different
clients
listening.
C
So
you
know
we
built
it
specifically
for
Probot
apps
to
like
receive
webhook
payloads
locally,
but
you
know
I've
played
around
with,
like
really
weird
implementations
of
it.
You
know
using
it
to
capture
payloads
from
you
know
all
over
the
place
to
not
just
a
Probot
app,
but
you
know
some
running
servers
or
something
so
yeah.
It's
a
it's
a
weird
thing
that
we've
seen
people
use
for
completely
different.
You
know
intentions
and
me
ever
thought
about
yeah.
A
A
A
A
F
A
G
So
it
doesn't
have
its
own
working
group.
It
is,
it
is
what
the
like
we
call
a
strategic
initiative
and
rich
can
probably
talk
a
lot
more
about
what
that
exactly
is
than
I
do,
but
basically
in
stew,
there's
somebody
on
the
technical
steering
committee
of
no
Jess
who
is
in
charge
of
like
pushing
that
forward.
It's
like
who's
who
reports
like
what
progress
has
been
made,
and
so
on.
Yeah
cool.
F
Yeah
I'm
rich
I
work
at
the
UCSF
University
of
California
in
San,
Francisco
library,
where
my
nodejs
work
is
tolerated.
What
is
not
not
my
primary
responsibility,
yeah
so
yeah,
but
most
of
the
work
that
happens
inside
noches
well,
I,
don't
know
depends
I
wanta
fied,
but
a
lot
of
the
work
that
happens,
isn't
an
association
initiative
and
isn't
in
a
working
group.
It's
you.
D
F
G
G
Asked
web
workers
our
way
for
for
like
web
sites
to
offload
CPU
intensive
work
to
a
different
threat,
communicate
with
it
like
sent.
Javascript
data
back
and
forth
and
and
yeah
worker
threads
essentially
brings
that
to
know
Jess.
Okay,
yes,
so
you
can
like
spawn
multiple
threads
like
they're
kind
of
like
separate,
no
just
processes.
They
are
like
in
the
same
process
and
they
can
share
data
very
efficiently,
especially
if
it's
like
typed
array
data
thatÃs.
You
know
structure
very
easily
as
serializable
yeah
yeah.
F
I,
don't
know
if
you
saw
my
talk
yesterday,
but
I
totally
evaded
the
subject
of
explaining
what
they
were
by
saying,
they're
kind
of
like
web
workers,
but
they
have
some
difference.
Isn't
it
yeah,
listen,
I,
point
out
one
difference,
I
think
and
then
they're
kind
of
like
threads
in
other
programming
languages,
but
not
really-
and
you
know,
and
I
just
quickly
moved
on,
rather
than
actually
try
to
clarify
what
kind
of
gray
area
they
actually
fall
into.
Just
go.
Look
at
the
documentation
start
using
them.
Don't
worry
right,
don't
worry
about!
That's.
A
I
love
it,
those
Brits,
don't
worry
about
it.
Just
just
use
the
thing
so
yeah
not
to
to
get
into
semantics
much
about
it.
Cuz
I
will
get
all
of
this
wrong
but
like
when
I
think
about,
like
you,
have
your
main
thread
in
like
a
JavaScript
app
or
a
node
app
and
then
like
every
time.
You
do
something
asynchronous,
that's
kind
of.
Is
that
considered
like
a
thread
or
a
process,
so.
A
F
A
G
Well,
let
me
like,
for
the
most
part
note
for
the
most
part,
most
Noches
libraries
are
available,
built-in
module,
it's
like
you
can
use
require,
and
it
will
work
the
same
way
as
it
does
on
the
main
thread.
Okay,
there
are
some
restrictions
that
are
around
like
managing
per
process
state
like,
for
example,
you
can't
change
the
process
title
or
change
the
current
working
directory
is,
you
know
we
were
thinking
like
okay.
This
is
something
that
you
know.
G
F
D
A
G
Next
question,
so
so
in
no
10
they're
still
considered
experimental
remote.
Both
they
are
stable,
like
there
haven't,
been
any
like
significant
changes
to
the
API
over
the
last
half
a
year,
maybe
a
year
or
so
so
they
have
effectively
been
stable
for
a
while,
like
the
only
few
adjustments
that
we
did
before,
making
it
officially
stable
I
have
some
very
weird
edge
cases
around
timing
and,
like
the
message
transfer
thing
that
you
know
so
in
order
to
make
it
conform
to
the
web
platform
tests.
G
A
G
Well,
I
mean
like
one
thing
is:
like
workers
are
not
there
to
replace
like
the
existing
multi-process
model,
that
most
order
to
like
at
least
a
lot
of
noches
applications
use
mmm-hmm
similar
because,
like
you
know,
it
kind
of
makes
things
easier.
When
you
have
different
processes
in
some
ways
like
you
can
attach
debuggers
to
them
individually,
with
with
note
workers,
that's
you
know
it's
kind
of
tricky,
it
works,
but
it's
tricky
and
like
chrome,
dev
tools
doesn't
have
support
for
that.
F
Yeah,
it
said
I
mean
that's
kind
of
I
mean
yeah.
Every
like
every
use
case
is
different.
I
guess
I
would
I
was
I've,
been
surprised
a
few
times
where
you
know
most
mostly
making.
You
know,
example
applications
to
sort
of
demonstrate
worker
threats,
but
but
I've
been
surprised
a
few
times
in
both
directions
like
oh.
This
should
really
you
know.
Worker
threats
should
have
really
performed
a
lot
better
here
and
they
didn't
or
the
other
way
around,
where
wow
that
really
made
that
take
no
time
at
all.
F
It's
yeah,
so
I
mean
they're.
You
know
the
API
for
worker
threads
is
pretty
small,
the
surface
area.
It's
not
it's,
not
a
sprawling
API,
it's
not
a
complicated
API.
It's
that
everything
you
can.
You
can
learn
pretty
quickly
and,
and
then
I
mean
I,
just
I
find
them
just
it's
just
a
lot
of
fun
to
just
experiment.
With
so
I
mean
I
would
I
my
recommendations
go
hog-wild
and
just
like.
B
F
C
A
G
Yeah,
that
is
like
CPU
intensive
work
that
ideally
requires
a
lot
of
communication
between
the
different
threads,
because
that
is
usually
going
to
be
faster
than
communicating
with
child
processes,
depending
on
how
your
data
is
structured,
it's
also
a
lot
more
flexible,
like
you
can
send
circular
data
or,
like
generally
things
that
don't
fit
into
Jason
over
over
to
threats.
I
think
what
rich
did
in
his
talk
is
a
very
good
example
like
for
those
who
didn't
see
it.
You
want
to
explain.
F
The
main
thread,
just
you
know,
tells
the
worker
threads
to
stop
once
once
they've
like
once
they
have
a
musician
in
common,
which
basically
means
you
have
a
connection.
But
until
that
happens,
both
workers
right
there.
Just
you
know,
running
running
running,
you
know,
gathering
lists
of
people
did
that
cover
the
part
you
want
to
cover
yeah.
F
Because
those
are
like
really
those
those
queries
get
to
be
really
expensive
at
least
the
way
I
did
them.
So
for
me,
like
the
exciting
use,
cases
are
they're
like
you
know,
you
know
so
where
I
work
there's
a
lot
of
people
who
do
you
do
or
are
interested
in
doing
data
science
stuff,
and
they
all
want
to
use
Python,
which
is
a
great
language
for
that.
F
Javascript
has
been
a
terrible
language
for
that,
but
you
know
between
between
worker
threads
and
recently
also
getting
big
int
I.
You
know,
like
I
mean
we're
not
we're.
You
know,
rad
we're
not
there
yet,
but
it's
getting
you
know
it's
getting
pretty
good
for
things
like
machine
learning
and
natural
language
processing,
all
that
sort
of
stuff.
The
other
thing
I
think
about
for
worker
threads
is
all
those
JavaScript
packages
that
do
graphic
graphics,
manipulation.
F
You
know,
like
cute,
here's
an
NPM
package
that
will
you
know
you
know,
create
thumbnails
for
you
or
whatever
you
know,
I
think
I,
think
of
graphics
processing,
and
you
know
that
sort
of
thing
is
a
CPU
intensive
thing,
and
you
know
why
not
fire
off.
You
know,
for
you
know,
want
to
get
a
pool
of
four
or
a
worker
threads
or
any
processes.
G
F
With
a
cluster
module,
where
you
have
individual
processes
or
or
anything,
we
have
individual
processes
workers
you
can
you
can.
You
know,
share
memory.
If
you
know
in
certain
situations,
like
you
know,
if
you
know
the
data
isn't
a
very.
If
you
know
what
size
it
is
and
if
it's
a
very
predictable
format
that
you
can,
that
you
can
put
it
in,
you
can
share
the
memory
or
you
can
even
transfer
the
memory
so
that,
like
you,
know
I,
you
know,
you
know
if
you're
the
worker
thread
I,
give
you
the
the
shared
array.
A
F
And
it's,
which
is
really
really
cool,
I,
think.
A
F
Well,
let
me
tell
you
Nick,
if
you,
if
you
go
to
I,
don't
know
if
this
will
still
be
true
for,
like
you
know
too
much
longer.
But
if
you
go
to
Palace
family
Steakhouse
dot-com,
there
will
be
a
list
of
links
from
my
talk
and
the
very
first
link
is
a
blog
post
that
on
a
road
using
worker
threads
to
solve
Sudoku,
puzzles
and,
and
then
there's
a
bunch
of
other
things
in
there
about.
F
You
know
my
couple
blog
posts
for
me
and
the
documentation
and
some
sample
code
and
a
few
other
things
as
far
as
contributing
to
worker
threads.
My
recommendation
is
know
a
lot
about
when
this
is.
This
is
kind
of
joke,
but
not
really
know
a
lot
about
Windows
and
debugging
Windows
and
C++,
and
then
clone
the
node
repository
and
fix
tests
worker
profit,
because
that
one
has
real
has
been
pretty
stubborn.
G
G
Far
for,
like
you
know,
usually
when
you
want
to
contribute,
you
want
to
like
have
some
visible
result
of
that
like
having
like,
like
I,
think
the
way
that
they
are
right
now.
Workers
as
a
feature
are
kind
of
complete.
You
know
we
can
add
stuff
and
there's
things
that
I
want
to
work
on
like
startup
performance
or
there's
this
like
really
cool
thing,
that
the
a
Java
screen
your
provides
was
called
snapshotting.
G
It's
like
you
can
basically
take
it
up
note
instance
and
take
a
snapshot
of
that
and
then
later
deserialize
it,
which
is
kind
of
going
to
give
you
like
a
very
fast
start
up.
If
you
like
half
boilerplate
code,
that
you
run
at
the
start
of
a
thread
or
something
like
that,
that
would
be
really
cool
to
have.
It's
gonna
be
a
ton
of
work
if
somebody's
interested,
that's
great
but
yeah,
you're
gonna
have
to
read
up
a
lot
of
v8
AP
is
with
very
poor
documentation,
yeah.
A
Well,
cool
on
a
rich!
Thank
you
so
much
for
for
chatting
with
me
today
about
worker
threads
and
thank
you
to
all
of
the
guests
that
we
had
on
Jay
s
party
definitely
check
out
the
podcast
at
changeling,
comm,
/,
Jay's
party
I
think
that
QR
code
should
work
I
tested
it
though,
and
it
didn't
so
I
mean
just
because
the
screens
not
bright
enough,
but
yeah
definitely
change
like
that.
Coms
party
go
there
check
it
out
and
we
record
every
Thursday
at
noon.
Central
1:00
eastern
time
so
check
us
out
join
the
the
party.