►
From YouTube: JupyterLab Dev Meeting, June 3, 2016
Description
Meeting of the JupyterLab/IPython Notebook development team.
B
C
So
I
just
stopped
and
had
that
go
into
master
and
then
let
you
guys
have
at
it
over
the
next
four
days
and
then,
when
I
came
back
to
it,
it
was
at
a
point
where
a
few
of
you
guys
had
all
begun
using
the
console
and
had
some
actual
feedback,
which
is
great
so
basically,
all
the
weird
behaviors
that
could
be
caught
in
it.
Just
once
over
have
been
caught,
I
think,
and
so
this
week
it
was
mostly
just
cleaning
up
some
of
the
things
that
changed
a
bit.
C
When
you
guys
did
you
refactor
and
just
cleaning
up
whatever
issues
outstanding
for
completion
functionality,
and
so
now
the
completion
widget.
What
fine
in
the
notebook
and
in
the
console
which
honestly
I
am
was
hoping,
would
happen
this
quickly,
but
I
wasn't
sure.
Would
you
know
I
tried
to
write
this
thing
in
an
agnostic
way
so
that
it
would
work
on
both,
but
I
actually
was
a
little
more
pessimistic
than
I
needed
to
be
it's
there?
Now,
that's
great!
That's
really
good,
and
that's
really.
C
That's
really
all
I
have
to
report
this
week,
but
I
think
that
Jason
and
Steve
did
a
ton
of
stuff
that
managed
to
go
and
really
really
cleanly,
and
that's
really
great,
but
you
guys
will
well
Jason
will
have
to
describe
what
actually
happen
there.
So
that's
a
way.
D
I
want
to
say
the
area,
and
this
this
looks
great,
I
didn't
realize
the
console
had
been
merged.
I
I
just
I
just
found
it
via
the
commands.
Many
other
commands.
Are
we
calling
that
the
commands
think
palette
commands
a
small
recommend
palette
and,
and
it's
it
looks
great-
I
mean
just
just
on
first
blush.
I
think
it's
exactly
in
the
right
direction.
We
can.
We
can
fine-tune
as
we
go,
but
but
I
think
this
is
exactly
what
we
wanted.
Yeah
good.
C
D
Francis
yeah,
now
we
had
the
notebook.
The
notebook
was
missing
that
for
a
while
and
it
took
took
a
while
to
get
that
feature-
and
I
mean
it's:
it's
super
important
capability,
obviously
that
we
want,
but
I
understand
why
it's
not
there
on
day,
one
because
it
takes
it,
takes
extra
work
to
why
your
wire,
because
that's
a
different
channel,
it's
a
different,
so
yeah,
it's
a
different
web,
socket
channel.
So
not
right.
We
lived
without
it
on
the
notebook
for
a
while,
it's
okay,
if
it's
under
on
day
one.
B
So
Steve
and
I
worked
a
lot
on
the
notebook
Steve's
wrote
over
mass
amount
of
code.
I
was
reviewing
it,
we
merged
it
in
essentially
we
rewrote
the
architecture
for
handling
documents
and
hooking
those
up
two
Colonels
and
and
it's
in
now
and
then
building
at
and
and
we
also
in
that
included
architecture
for
notebook
extensions,
so
plugins
that
modify
notebook
behavior
and
as
part
of
that
I
pushed
in
a
version
of
the
functionality.
So
basic
widgets
work
now
in
the
notebook
brought
a
koala.
B
Example,
yep,
so
so
so
yeah,
so
we're
getting
there
as
far
as
basic
functioning,
notebook
I.
Think
at
this
point
it's
it
would
be
good
to
get
some
early
beta
testing
from
you
and
Brian
and
Cameron
etc.
And
you
know
some
of
these
first
past
issues
and
as
well
as
you
I
issues,
so
did
that
end
I,
we
released
Jupiter,
extents
overextension,
so
it
works
in
notebook
4.2,
but
it
also
works.
A
master
difference
is
a
server
extension
I
that
basically
takes
what
was
the
ark
coated
versions
in
the
notebook
and.
D
Hello:
okay,
in
terms
of
having
a
good
benchmark
for
a
harder
case
for
interactivity,
I
think
getting
pylab
notebook
plot
123
to
work
is
a
good
one,
because
that's
that's
a
more
complex
piece
of
machinery
right.
The
notebook
back
end
of
nat
pop
live,
not
the
in
line
backhand.
B
Right,
even
okay,
so
this
actually
brings
up
a
lot
of
questions
that
our
code
sort
of
raised.
First
thing
I
want
to
do
is
get
DQ
plot
working
to,
for
example,
but
we
don't
have
a
good
story
right
now
for
packaging
extra
javascript
code,
so
external
libraries
right
now
we
can
easily
include
include
code
in
version,
but
it's
hard
to
have
extra
JavaScript
code,
that's
loaded
at
runtime.
B
B
So
I'm
not
sure
exactly
how
the
matplotlib
code
works,
if,
if
it's
just
sending
javascript,
/,
io
pub
and
then
executing
from
there,
in
which
case
we'll
have
to
take
a
look
at
how
that
committed,
but
but
I
think
right
now,
for
example,
at
interact
doesn't
work,
that's
a
shorter
term
goal
for
me
and
actually
another
discussion
that
I
want
to
have
here,
but
but
on
the
original
discussion,
so
Jupiter
lab
extension
right
now
is
just
a
private
repo.
That's
in
my
github,
because
there
was
some
pushback
about
making
a
to
Wed
lead.
B
No
one
could
quickly
known.
Our
hope
is
that
we
will
consolidate
the
Jupiter
lab
extension
plus
the
JavaScript
code
sort
of
in
1v
to
repo
that
people
can
install
either
with
dashi
and
then
actually
develop
the
code
and
see
the
see
the
results
or
they
can
just
pip,
install
and
use
the
code
right
now.
What
we
have
instead
is
several
JavaScript
packages,
NPM
packages
that
all
depend
on
each
other
and
require
updates
to
each
other
to
keep
in
sync,
then
there's
a
build
of
those
packages.
That's
packaged
into
this
Jupiter
lab
server
extension.
B
That
means,
if
you
stop
install
the
server
extension
you
wanna
do
can't
develop
okay,
what
that's
the
one
that
I
just
involved!
That's
right!
You'd
bet
you
bet
even
installing
a
server
extension.
You
still
can't
develop
anything
because
you
have
to
download
the
JavaScript
packages,
modify
them
then
update
the
server
extension
to
point
to
your
locally
modify,
JavaScript
NPM
packages,
and
it's
kind
of
a
big
pain
right
now
to
easily
able
to
pull
down
something
we'll
start
developing
it.
So
what
the?
B
What
the
what
the
repo
architecture
looks
like
I
to
consolidate
all
these
into
an
NPM
package
into
a
single
NPM
package
that
also
has
a
bit
of
Python
code
to
install
as
a
server
extension.
What
that
looks
like
I
think
we
still
need
to
decide
but
I
comments
on
the
general
direction,
Fernando
of
putting
basically
everything
that's
needed
for
Jupiter
lap
in
a
single
repo
that
includes
the
server
extension
yeah.
D
D
So
if
we
consolidate
that
into
a
single
repo
with
that
repo
be
able
to
sue,
can
we
hook
up
the
main
server,
so
that
updates
in
that
repo
are
automatically
shift
to
the
front
end
and
the
way
the
way
at
least
we'll
get
if
need
be
the
way,
but
the
way
right
now,
the
things
on
the
man
on
the
main
notebook
have
become
reasonably
simple.
By
virtue
of
having
of
having
to
get
hooks
that
watch
and
we
do.
We
do
the
JavaScript
bill
for
you
yep.
D
So
at
this
point
at
this
point,
keeping
up
to
date
with
development
on
the
main
notebook.
It's
not
that
painful,
because
you
can
just
get
pull
and
at
most
there's
a
build
step,
but
it's
automatically
triggered
that
would
I
see.
D
B
See
a
future
workflow
is
being
cloned.
The
repo,
the
Jupiter
library
PO
hip
installed
a
sheet
which
installs
the
surgery
and
ending
and
then
enable
the
extension
so
Jupiter
certain
enable
whatever.
Then
you
launch
the
server
and
then
I
you
go
in
in
inside
this
repo
be
all
the
JavaScript
code.
So
you
modify
any
JavaScript
code.
You
want
and
then
do
a
build
step.
Now
we
can
have
an
automatic
thing
that
watches
your
files.
It
does
the
automatic
build
step
and
then
I
and
then
it'll
be
live
in
the
notebook
server
that
you've
launched.
D
The
developer
running
a
build
extension
step,
I
think,
is
fine
for
people
who
are
following
master
that
can
be
loaded
by
a
gif
hook,
which
is
what
we
do
so
that
in
those,
if
you
didn't
make
those
changes
yourself,
but
they
come
to
you
by
virtue
of
being
having
been
pushed
into
upstream,
then
the
bill
step
is
done
for
you
on
pole,
which
yet
because
they're
any
different
kind
of
cognitive
load
there
right
if
you're,
the
one
developing.
You
know
that
you
just
change
something:
it's
okay
for
you
to
run
a
command!
It's
different!
D
B
Think
those
who
causes
man
master
of
the
server
extension
not
master
of
notebook
that
we're
talking
about
here
and
then
the
idea
nope
no
to
work
in
the
server
extension.
Yes,
oh
no
put
50
no
would
depend
on
the
server
extension,
but
it
would
be
right
now
at
least
installable
and
don't
put
4.2,
so
you
could
could
use
it
into
a
point
to
as
well,
and
that
would
let
people
actually
just
download
the
package
and
try
it
out
and
4.2
without
having
to
try
to
run
notebook
master.
B
D
My
question
is
okay,
so
I
have
two
questions.
One
is:
do
we
want
to
change
the
UI
in
master
to
remove
that
button
and
instead
make
it
simply
such
that
if
you
install
it,
we
get
a
little
tab
as
we
have
discussed
before
you
always
do
we
still
want
to
do
that.
The
way
in
the
ipython
clustered
stabbed,
but
I've
done
that
tap
and
also
contain.
It
gives
us
also
an
area
for
information
that
can
be
used
yeah.
D
B
Certainly,
can
there's
no
official
UI
for
doing
that.
Men
pointed
out
that
they're,
basically
just
willy-nilly,
changing
the
slash
tree
HTML
file
on
the
client
side
to
add
whatever
they
want,
so
there's
no
official
UI
for
adding
tabs
or
anything
like
that.
You
can
just
modify
the
page.
However,
you
want
just
you
know:
do
whatever
you
went
to
the
Dom,
we
could.
We
could
add
another
tab.
We
could
just
make
a
try,
Jupiter
lab
button
on
the
4.2
notebook
just
by
modifying
the
page
on
the
five
notebook.
B
It's
not
a
big
deal
to
have
the
button
there,
because
the
server
extension
once
it's
released
and
sort
of
official
will
be
a
required
thing
and
in
Reno
click
I've.
So
so
that
means
that
your
button
will
work
because
the
server
extension
will
be
installed.
So
it's
not
an
issue
having
the
button
there
without
the
server
extension.
B
So
so
yet
I
think
these
are
details
that
are
pretty
easy
to
take
care
of.
Once
we
decide
on
the
direction
to
go,
I
think
first,
things
first
is
the
repo
consolidation
that'll,
make
our
lives
easier
as
developers
and
then
and
then
it'll
give
an
official
home
to
the
server
extension
right
now.
The
server
extension
doesn't
have
an
official
home
or
type
yagnik,
a
joke.
So
I
guess
there
is
a
question
about
what
the
directory
structure
and
the
in
the
consolidated
repo
looks
like
we
want
this.
B
We
want
this
repo
to
be
a
massive
NPM
package
that
people
can
install
and
use.
So
if
people
want
to
use
just
a
notebook
or
a
cell
or
something
like
that,
they
can
depend
on
this
Jupiter
lab
package
and
then
pull
out
whatever
files
that
they
want
out
of
the
directories.
So
we
wanted
to
be
have
the
structure
of
an
NPM
repo,
but
we
also
wanted
to
have
the
structure
of
a
pipe
I
package
so
that
and
clone
the
repo
and
pip
install
it.
B
We
can
do
this
by
making
a
overarching
repo
and
have
two
different
directories,
one
for
the
pipe
I
package
and
one
for
the
NPM
package.
That's
that's
similar
to
how
I
iPad
widgets
works.
Now
we
can
do
it
by
making
it
have
an
NPM
package
structure
generically
and
then
and
then
a
subdirectory
of
the
NPM
packages,
the
spicy
I
package,
and
then
it
just
has
a
setup
that
py
as
well.
So
this
is
weird
mix
of
Python
and
Java
JavaScript
I'm,
not
sure.
E
B
Have
the
disadvantage
to
that
is:
it
seriously
complicates
the
workflow
for
developers.
If
everything
is
in
one
repo,
you
can
clone
the
repo
hip,
install
dash
e,
the
server
extension
and
then
any
case
you
make
in
the
JavaScript
autumn,
matically
reflected
you
just
nvm
built
and
then
they're
reflected.
So
if
you
have
two
packages,
then
you
have
to
download
both
packages.
B
B
E
B
D
The
release
version
of
either
language
package
includes
only
includes
the
code
for
that
one
plus
whatever
is
needed
of
the
other
one.
If
any,
such
as
a
Python
one
carrying
the
built
version
of
JavaScript
Italy
need
to
carry
the
sources
you
can
find
installing
effectively
effectively
ababa
by
a
binary
right
versus,
but
the
research
papers
carried.
B
E
B
B
B
D
B
C
E
It
is
expanding
well,
but
if
it
wasn't
active
in
Chile,
yeah
part
of
what's
been
so
difficult,
even
as
I
start
to
work
with
the
students
is
telling
them,
but
I
want
you
to
go
and
work
with
the
notebook,
plugin
and
there's
no
real
way
for
them
to
do
that
in
the
actual
Jupiter
live
environment
right
like
they
have
to
work
with
this.
This
super
stressed
down
example
in
Jupiter,
j/s
notebook,
and
they
it's
really
hard
for
them
to
like
try
the
whole
thing
and
so
I'm
super
plus
one
okay.
You
Jed.
B
Room
I
thought
they
could
crack
at
that,
so
we're
gonna
call
the
repo
just
Jupiter
lab
I.
Think
so,
if
we're
putting
everything
in
there
then
might
as
well
just
call
it
Jupiter
lab
okay
grandpa.
B
B
I
think
in
our
examples,
so
it
would
be
good
for
someone
to
begin
to
take
a
look
at
how
the
basic
widgets
work,
but
one
of
one
of
the
things
that
immediately
comes
up
is
interact,
doesn't
work
because
remember
we
we
switched
how
the
widgets
are
are
being
handled
in
the
new
notebook
so
before
the
old
notebook,
which
has
had
their
own
special
magical
place.
That
was
above
the
output
and
below
the
input,
and
that
meant,
if
you
cleared
the
output,
it
would
not
clear
the
widgets
that
meant
that
interacts
at
interact.
B
I
would
work
fine,
that
you
just
clear
the
output
and
from
the
function
again
in
order
to
update
update
the
output
area
when
you
interact
and
how
to
function
so
that
doesn't
work
it
more
because
widgets
are
now
in
the
output
area.
So
a
widget
displays
itself
by
sending
a
particular
display
data,
a
mime
type
and
it's
automatically
displayed
in
line
in
the
output.
So
now
clear
output
will
clear
the
widgets
as
well
so
or
the
way
we
were
addressing.
B
That
was
resurrecting
this
idea
of
an
output
widget
that
lets
you
capture,
output,
messages
and
display
them,
and
a
particular
div,
a
particular
area
for
the
output
area
widget.
So
then
your
interact.
What
it
does
is
it
you
know:
I
ranges.
Your
controls,
this
is
all
inside
of
the
output
area
of
the
cell.
B
You're
at
interact,
will
create
some
controls
and
create
an
output
widget
below
those
controls,
run
the
function
and
capture
the
output
of
anything
that
that
function
does
and
put
it
in
this
area
of
below
the
controls,
and
then
anytime,
you
change
your
control.
It's
going
to
re-execute
the
function
clear.
This
outfit
air
ure,
execute
the
function,
capture
the
output
messages
and
put
them
back
in
in
this
little
area.
So.
D
B
Widget
mmhmm,
yeah,
and
so
the
idea
is
this
would
be
fully
nestable
that
you
could
have
output
areas
inside
of
output
areas
and
things
like
that
and
I
think
the
way
is
pretty
clearly
cleared.
How
to
recursively
include
these
things.
What's
been
a
bit
of
a
thorn
in
the
side
was
how
do
we
actually
capture
output
messages
so.
A
B
Had
a
really
hacky
way
of
rerouting
output
messages
in
the
older
book,
with
an
idea
about
capturing
out
messages
on
the
server
on
the
server
side,
the
colonel
side
and
Dave
put
a
lot
of
work
into
trying
to
get
that
functionality
working
so
that
you
could
have
a
context
manager
that
captures
output
messages
on
the
colonel
side.
That
work
is
about
half
done
or
so
and
and
and
then
we
lost
Dave
to
another
company.
B
So
so
the
big
thing
here
is:
if,
if
we
introduce
Colonel
nannies,
then
capturing
messages
on
the
server
side
becomes
a
lot
more
complicated,
because
the
colonel
nandi
is
now
going
to
be
capturing
output
from
from
the
process,
and
so
now
the
colonel,
and
he
needs
to
know
stuff
about
how
to
capture
up
which
is
and
send
them
to
a
specific,
calm
and
I
think
it's
way
too
complicated,
there's
also
issues
of
capturing
messages
on
threads.
This
is
part
of
the
work
that
dave
was
doing,
but
he
did
a
lot
of
work
towards
this.
B
So
we're
pushing
alarm
back
on
everyone
so
as
opposed
to
a
clean
way
of
doing
what
John
suggested,
which
is
also
along
the
lines
of
what
Chris
was
hinting
at
as
well,
and
that
is
just
a
message
and
a
way
to
filter
output
messages
and
rear
output
messages
on
the
client
side.
So
you
have
an
output
widget.
It
sends
a
comm
message
to
your
JavaScript
output
component.
The
JavaScript
output
component
talks
to
the
colonel
and
says:
hey
give
me
all
messages
that
are
destined
for
this
particular
message.
Id.
B
You
know
from
this
particular
execution
and
you
can
even
add
some
metadata.
That
says
if
the
message
is
tagged
with
meta
data
that
says
it
comes
from
this
particular
thread.
You
know
give
those
to
me
and
really
what
it
would
do
is
it
would
just
register
a
filter
on
the
messages
with
the
colonel
and
says,
give
me
every
message
and
I'll:
give
you
back
to
one
so
I.
Don't
want
and
I'll
take
report
processing
of
the
messages
that
I
want
and
then
and
then
it
uses
the
output
render
to
render
those
output
messages.
B
D
B
D
D
With
having
more
of
the
state
captured
server-side,
if
all
of
this
filtering
is
being
done,
client-side
the
state
of
it,
the
actual
state
of
the
document-
is
known
to
the
client,
and
we've
been
talking
about
trying
to
really
have
the
server.
That
does
the
that,
basically,
the
server
that
is
close
to
the
content
manager,
not
the
colonel,
but
the
server
that
is
close
to
content
lender,
be
the
one
who
has
the
authoritative
view
of
the
document
model
I'm
a
little
confused
with
with
how
these
thought
you
just
said,
interacts
with
that
idea.
Right.
B
Right,
yes,
it's
not
obvious
I
think
how
how
to
actually
do
that
we
could
adopt
something
like
what
sage
does,
and
that
is
put
the
responsibility
on
the
client
for
arranging
this
document
and
the
client
is
supposed
to
sync
to
the
server
and
then
the
server
takes
those
updates,
as
updates
to
the
document
state
and
then
pushes
those
back
out
to
everybody
else.
B
If
the
calm
message
went
to
everybody,
then
each
person
could
update
and
then
each
person,
if
each
person
have
the
same
process
for
updating
than
they
could
end
up
with
a
synchronized
version
without
sinking
through
the
server
yeah
I.
Think
I
mean
we're
already
going
to
have
updates
from
the
client
sent
to
the
server
saying:
hey,
I
change
the
document
model.
You
know,
update
yourself
and
broadcast
these
changes.
Yes,
so.
B
So
obviously
there's
I
would
can
say
this
is
one
of
those
just
an
action.
It
comes
client-side
and
modifies
the
document,
so
it
does
put
a
little
kink
in
the
works
that
the
server
doesn't
know
that
this
particular
output
message
is
not
going
to
be
sent
into.
The
cell
output
is
going
to
be
sent
into
this
output
widget
out,
but
I
I.
B
D
Pushing
that
responsibility
to
the
Colonel's
sounds
sounds
like
a
really
bad
idea.
We
want.
We
want
the
colonel,
colonel
behavior,
basically
a
set
a
set
of
a
set
of
response
responses
to
messages
in
that
pit.
Without
much
more
logic
than
that
I
mean
a
colonel
implementing
a
kernel
should
we
basically
be
an
event
handling
implementing
an
event
handling
loop
for
these
classes
of
events
was
this
particular
kind
of
thing
which
is
execute
code
and
then
format
and
represent
the
output
of
that
in
our
manners,
and
that's
it.
That
really
should
be
the
idea
but
Colonel.
B
This
wouldn't
be
something
that,
even
if
we
implemented
this,
this
server
side
output,
capturing
I
mean
it
would
be
a
complication,
but
it's
only
required
for
if
you
want
to
support
the
output
widget.
So
it's
not
something.
That's
you
know
basic
in
the
kernel
message:
architecture.
It's!
If
you
want
to
support
the
output
widget,
then
you
have
to
implement
capturing.
B
E
E
Yes,
what
that's
it
ends
up
being
the
cell
ID,
because
the
cell
is
what
that
that
message
ID
gets
set
when
the
code
is
run
by
a
particular
cell,
but
yes,
and
so
I'm.
Imagining
that
with
this
there's
going
to,
in
addition
to
that,
be
some
sort
of
ID,
it's
really
probably
the
column
ID
of
that
output
area,
and
we
would
then
need
to
send
back
that
in
metadata
somehow,
so
the
colonel
still
has
to
do
something.
E
B
I,
don't
see
any
of
that
happening,
I
see
what
I
see
happening
is
the
output
widget
sends
a
calm
message
to
the
output,
widget
JavaScript
client
side
component.
Then
the
output
widget
client
side
component
has
a
handle
on
the
colonel
and
it
asks
the
colonel
to
to
install
a
message.
Filter
for
this
particular
message.
Id,
say
or
just
install
a
filter
and
I
will
filter
for
this
particular
message.
B
Id
and
any
messages
that
come
back
with
a
parent
header
message:
ID
that
matches
what
I'm
supposed
to
capture
I
take
over
and
return
null
and
any
message
that
you
know
doesn't
fit
that
then
I
just
returned
back
to
you
and
which
is
treated
as
a
message.
Filter
that's
applied
before
the
colonel
wrapping
happens
leaves.
E
B
In
the
output
area
knows
what
to
filter
for
that's
right
now:
okay,
and
we
can
have
every
day-
were
some
complications
with
this,
their
complications
that
we
have
already
with
the
message
filtering.
So,
for
example,
if
you
have
an
execution
request
that
kicks
off
two
threads,
the
output
from
those
two
threads
is
intermixed
incomprehensibly,
when
it's
sent
to
the
to
the
client,
the
client
has
no
idea
which
thread
was
producing,
which
particular
output.
This
is
a
complication.
B
You
take
your
current
session
header
information
and
you
set
some
default
metadata
and
that
will
be
sent
out
with
every
display
data
message,
and
this
header
data
is
metadata
would
say
what
thread
execution
context
you're
in
so
you
can
send
metadata
with
every
output
message,
saying
I'm
in
thread
5
or
thread
6
or
thread
this
particular
goo
UID,
and
so
it's
the
threads
responsibility
when
it
spins
up
is
to
set
this
output
message
metadata
and
then
your
output
area.
I
could
say
I
want
you
to
filter
on
things
that
have
this
particular
message.
B
Id
and
this
particular
thread
metadata,
and
then
it
lets.
You
have
a
finer
grain
filtering
on
a
thread
execution
context,
instead
of
just
anything
in
response
to
a
particular
message,
and
actually
that's
probably
not
a
bad
idea
anyway
to
set,
if
you
just
make
a
convention
that
if
you
start
a
new
thread
that
you
want
to
logically
separate
from
output
from
other
threads,
to
set
some
metadata
about
the
thread
that
this
metadata
scapula,
this
outputs
coming
from
and
then
in
the
end,
then
we
could
just
make
a
generic
feature
in
the
notebooks.
B
That
says
any
time.
I
got
a
message
that
has
a
particular
thread:
metadata
I,
then,
when
I
render
it
I
precede
it
with
the
thread
ID
or
something
like
that.
So
now
you
see
all
of
your
outputs
being
displayed,
but
each
output
is
tagged
with
the
thread
it
came
from
her.
You
could
group
them
together,
etc.
B
Have
another
nice
thing
about
having
this
functionality
for
routing
Colonel
messages
output
is.
It
makes
it
much
easier,
just,
for
example,
support
sending
output
to
a
sidecar
in
a
notebook,
so
you
can
have
a
notebook
that
just
has
input
cells
and
sidecars.
So
this
is
like
the
new
mat
lab
notebook
input
cells
and
then
the
outputs
are
specific
sidecars.
It
makes
easy
to
implement
this
as
an
extension.
Instead
of
something
that's
supported
in
the
notebook,
you
have
an
extension
that
just
takes
over
any
metod.
B
F
B
F
I
think
there's
I
think
there's
use
cases
for
both.
You
know
the
the
you
student.
Certainly
the
use
case.
The
most
compelling
use
case
for
the
one
on
the
client
side
is
the
ability
to
allow
extensions
to
do
this
kind
of
thing
and
like
build
things
that
we
haven't
thought
of
without
requiring
changes
to
the
server
and
that's
I
think
the
compelling
enough
reason
on
its
own
to
support
message
filtering
on
the
client-side
message
till
then.
F
There's
also
going
to
be
cases
on
message
filtering
on
the
server
side
like
what
the
stuff
that
Dave
is
working
on.
Simply
because,
like
mechanically,
we
need
to
be
able
to
do
that
and
we
just
need
a
hook
into
the
actual
message,
generation
and
event
queue
processing
on
the
server
side.
So
hey
I,
think
there's
just
cases
for
both.
D
So
one
thing
so
two
things
actually
11
is
that
I
think
would
be
a
good
idea
to
run
this
by
men
as
well.
I
mean
the
person
who
really
kind
of
did
did
all
the
internal
low-level
work
on
the
messaging
architecture
at
the
end
of
protocol
at
the
serum
fuel
level
was
really
originally
man
and
he
has
a.
He
has
he's
very
good
at
reasoning
about
these
things,
so
it
would
be
I
think
would
be
a
good
idea
to
run
run
this
plan
by
men
and
second
I
I,
think
we'd
want.
D
E
A
couple
other
related
things,
so
my
my
students
are
starting
in
the
next
week,
basically
they're
finishing
up
on
finals
and
we're
one
of
the
teams.
The
first
project
I've
given
them
is
to
do
it.
Basically,
a
design
review
and
audit
of
the
notebook
plugin
in
jupiter
lab
compared
to
the
notebook
plugin
in
the
regular
notebook
and
basically
I've
told
them.
E
You
know
open
up
both
and
open
up
the
chrome,
dev
tools
and
go
and
make
sure
the
styling
is
the
same,
and
part
of
it
is
I
want
them
to
get
to
know
the
Dom
structure
and
the
styling
of
the
notebook
I
did
warn
them.
There's
probably
some
styles
that
we're
not
going
to
copy
directly
over,
but
there's
a
lot
that
we
should
and
I
guess.
The
way
I
described
is
if
we
don't
copy
the
style
over
from
the
classic
notebook.
That
should
be
a
deliberate
decision,
not
just
an
accident,
but.
F
B
E
So
my
first
question
is
for
you,
Jason
is
I,
told
them
right
now
go
for,
can
clone
Jupiter,
JS
notebook
and
start
to
submit
full
request
there.
They
are
probably
going
to
start
to
do
that
in
earnest.
Next
Monday,
not
not
this
coming
Monday,
but
basically
a
week
from
now
is
that
I'm
a
little
worried
they're
going
to
start
working
there
and
make
your
like
life
difficult
in
the
repo
consolidation?
What
how
should
we
plan
that
and
I.
B
Hope
to
be
done
with
the
group
of
consolidation
by
a
week
from
now,
hopefully
before
then,
but
we'll
see
how
packaging
works.
They
always
seems
to
take
longer
than
you
plan.
Oh
so
so
I'll
probably
put
the
output
widget
work
on
hold
and
work
on
the
repo
consolidation.
Since
that
seems
like
a
blocking
point
for
people
to
work
on
as
long
as
Darien
I
know,
you're
finishing
up
some
things,
would
it
bother
you
if
I
started
consolidated
reposer?
Would
that
bit
of
major
kink
and
what
you're
doing.
C
Actually,
no
I'd
be
fine.
The
the
thing
that
I
want
next
is
actually
a
thing.
Steve
thinks
he
should
probably
work
on,
so
he'll
be
pretty
closely
involved
with
what
you're
doing
anyway.
So
it
won't
be
an
issue
because,
because
the
help
functionality,
we
were
talking
about
that
sort
of
thing.
That's
actually
that's.
Actually
the
output
area
widget
and
not
inside
console,
and
since
he's
so
familiar
with
that
code,
we
were
going
to
look
at
it
together,
so
that
I
could
learn
it
from
him.
Doing
that
because
he's
he
says,
it's
a
really
quick
change.
B
E
I
will
I
will
warn
the
students
that
this
is
going
to
happen
and
I
may
have
them
start
to
like
keep
track
of
the
changes.
It
will
be
needed,
but
don't
submit
full
requests
until
the
transition
happens,
but
that's
fine
as
long
as
we
know
it's
happening
soon,
that's
easy
to
account
for,
but
then
another
thing
I
have
talked
to
sylvan
about
is
very
soon
to
have
one
of
the
student
groups
that
has
both
Dead's
and
designers.
E
Do
a
design
review
of
the
widgets
and
part
of
it
applies
both
to
the
last
stable
release
of
widgets,
where
we
actually
released
with
a
lot
of
design
and
usability
problems,
but
also
the
new
stuff
in
Jupiter,
lab
and
I.
Think
having
a
like
a
combined
team
of
four
students
who
have
both
skill
sets
like
they
could
go
through
every
widget
we
offer
in
both
classic
notebook
and
in
Jupiter
lab
and
do
the
coding
and
the
design
work
needed
to
bring
it
all
up
to
speed
that.
B
E
An
tastic
another
thing
is
all
of
these:
students:
arguable,
syfy,
Fernando
yep,
go
ahead
by
I'll
ask
later,
and
I
had
previously
talked
to
Chris
about
possibly
doing
a
training
time
on
Jupiter
lab
at
Syfy
and
I
would
love
to
see
that
happen.
I,
don't
know
it
Chris
if
you're
still
open
or
if
even
looks
like
he's
going
to
be
there.
If
he's
not,
we
could
fund
him
traveling
out
to
scifi.
For
that.
E
F
D
But
if
one
of
the
things
we're
trying
to
do
is
lower
the
barrier
to
contributions
and
bring
more
of
the
community,
this
would
be
a
prime
opportunity
to
healthy.
This
is
not
about
using
anything.
This
is
about
if
you
want
to
develop
with
what's
coming
next
on
the
system,
but
definitely
for
anyone
from
the
core
team
who's
going
to
be
there.
This.
This
would
be
very,
very
useful
and
it'll
it'll,
be
a
great
reality
check
on
on
how
easy
it
has
become
to
build
and
develop
with
the
system.
E
D
D
Therefore,
we're
going
to
do
a
training
session
for
the
people
were
building
with
it,
but
there
are
out
there
in
the
community
people
like
that,
and
and
if
we,
if
we're,
not
inclusive,
we're,
never
going
to
get
that
I
mean
if
we
keep
doing
things
that
appear
not
to
be
inclusive,
we
will
never
get
other
people
to
participate.
It's
just
the
way
it
is
so
we
have
to
be
proactive
in
being
actually
in
trying
to
now.
D
Obviously
you
can
be
at
that,
so
that
people
don't
come
with
a
false
expectation,
but
but
we
have
to
actually
be
proactive.
Otherwise,
this
we're
never
going
to
close
this
gap
ever
yeah
I
completely.
D
B
But
we
may
want
to
try
to
schedule
it
then,
at
a
time
where
you're
around
I'll,
also
be
there
haven't,
got
my
flights
yet,
but
I
could
be
there
as
early
as
Monday
afternoon
and
I'm
not
planning
on
going
to
the
tutorials
monday
and
tuesday.
I
was
planning
I'm
hacking
with
somebody
somewhere.
So
so
we
can
do
like
tuesday
as
well,
and
that
would
give
us
a
few
days
of
leave
time
for
any
different.
D
Questionnaire
policy
from
that
just
going
on
to
quickly
when
we,
the
consolidated
repo,
if
we
name
it
lab,
is
that
the
repo
that
eventually
is
going
to
carry
the
main
server
I
mean
I.
Want
us
to
think
about
the
path
forward
of
what
what
we're
going
to
do,
because
at
some
point
we're
going
to
want
we're
going
to
want
people
not
to
type
at
the
command
line.
Jupiter
notebook
right.
They
should
be
typing
tutor
lab,
and
that
will
be
the
only
entry
point.
So
is
this
really
the
repo
that
should
be
named,
lab
or
or.
B
And
I
think
it
I
think
it
should
be
named
laughs,
I,
think
the
people
really
yep
yeah
Jupiter
lab
I
think
we
should
have
a
real
separation
between
the
server
the
notebook
server
and
which
maybe
we'll
call
lab
server
at
some
point
and
the
front
end,
and
so
Jupiter
lab
is
a
front
end.
It's
not
back
end
at
this
point
and
and
so
it'll
be
a
requirement
of
the
back
end
with
five
point
out.
So
with
notebook
five-point.
Oh
the
Jupiter
lab
front.
End
extension
will
be
a
requirement.
B
Eventually
it
will.
Probably
the
server
will
grow
some
beings
needed
for
Jupiter
lab
when
we
have
settings
or
something
else,
but
I
think
yeah
Jupiter
lab.
We
should
think
of
as
a
friend
thing
that
has
a
minimal
server
extension
packaging
so
that
you
can
install
easily
into
the
into
the
back
end
and.
B
E
D
These
names
now
to
what
what
the
long
it's
one
way
of
introducing
these
concepts
to
the
community
is
what
what
these
key
repos
are
organized,
as
represents
where,
where
the
project
is
headed
in
from
the
copies
think,
but
I
think
that
the
plan
of
making
them
both
extensions
and
then
leaving
leaving
a
lab
server,
whatever
Corps
servers,
hi
repo
in
the
long
run,
which
is
basically
what
notebook
is
today,
but
that's
a
sensible
thing.
I'm.
B
Finding
that,
but
for
that
reason
I
don't
think
we
should
call
it
Jupiter,
Jas,
lab
I,
agree
she
all
of
Jupiter
lab
and
and
consolidate
around
that
name.
Okay,
so
wonderful,
no
underscores
yeah.
One
word
I
know
no
underscores
already
have
the
PI
P
I
named
reserve
ago
and
go
no
reserve
I.
Think
I
have
the
NPM
name
as
well
just
reserved
so
we'll
just
go
ahead
and
do
so
same.
It's
it's
past
one
o'clock
and
my
batteries
that
well
present
and
dropping
like
a
rock.
Is
there
anything
else
that
we
expect
up
so.
B
C
D
Online
real,
quick
for
dairy
and
just
to
idea
as
well
while,
while
I
have
you
here,
a
couple
of
things
that
I
noticed
on
the
console,
first
of
all,
scrolling
or
output
at
the
bottom.
If
you
do
like
for
I
in
range,
10
print
I
and
at
the
bottom,
it
doesn't
scroll
so
you're
going
to
want
to
manage
prolene
and
the
other
one
that'll
be.
That
is
very
useful
and
is
to
get
in
the
notebook.
D
The
behavior
that
we
have
today
with
percent
cutie
console
that
opens
a
cutie
console
attached
to
the
current
kernel
of
a
notebook.
So
that's
something
that
that
will
want
to
will
want
to
be
able
to
have
is
to
give
a
console
attached
to
this
notebook
because
then
consoles
effectively
become
scratch
pads,
which
is
what
means
little
site
our
extension.
Does
they
become
scratch
pad
so
making
it
easy
not
just
to
open
a
French
Consul,
but
a
consult
attached
to
any
given
coral,
and
as
many
as
you
want,
because
energy
and
easily
and.
C
We
actually
subscribe
not
always
so
built-in
from
day
one
was
the
ability
to
swap
kernels,
so
it
already
supports
it.
It
just
needs
to
be
hooked
up
to
some
mechanism.
That's
keeping
track
so
right
now,
if
you,
if
you
in
in
Jupiter
lab,
you
could
presumably
add
a
bunch
of
commands
that
know
about
different
kernels
and
hook
them
up
and
it'll,
be
able
to
launch
consoles
as
of
right
now
and
within
an
existing
console.
You
can
even
have
the
ability
to
have
it
switch.
It's
colonel,
so
yeah
that
that's
that's
there
yeah.