►
From YouTube: JupyterLab Weekly Dev Meeting, June 24, 2016
Description
Meeting of the JupyterLab development team.
Meeting notes: https://jupyter.hackpad.com/JupyterLab-Weekly-Meetings-UUJ3gIQ3iBS
A
B
C
B
So,
let's
just
do
short
status
reports.
First
then,
I've
been
working
on
widgets
I.
Think
with
that
I've
finished
the
first
half
of
an
overhaul
widgets
to
be
typescript
and
to
be
able
to
use
phosphor,
which
is
to
communicate
and
be
able
to
embed
into
the
new
notebook
as
a
straight
phosphor
hierarchy.
What
this
does
is
it
allows
us
to
have
resize
events,
so
so
someone's
been
begging
for
this
for
a
long
time
to
be
able
to
resize
SVG
is
based
on
resize
events
from
the
front
from
the
phosphor
hierarchy
and
then
reviewing
a
ton.
B
Okay,
Steve
Oh,
Jason,
Jason,.
E
Or
I
guess:
I'm
next
been
continuing
to
write
the
unit
tests
for
the
pieces
of
the
notebook
and
Jupiter
lab
the
widgets
and
the
actions
associated
with
them
and
the
models
doing
some
cleanup,
while
I'm
doing
that
I
just
finished
a
major
PR
anjou
per
day
of
services
to
clean
up
the
API
there
Darian
shaking
his
head
because
you
had
to
review
it
arm
and
so
I'm
just
going
to
continue
doing
that
and
I'm
writing
documentation
as
I
go
narrative
docks
were
appropriate
yeah
in
preparation
for
this
I
applied
talk.
That's.
D
F
G
The
editor
widget
as
well
and
now
I'm
doing
a
similar
refactor
to
the
completion
widget
so
that
it
also
uses
the
interface,
the
options,
interface
and
the
render
interface
pattern
that
we're
using
everywhere
else
and
also
working
on
its
behavior,
so
that
it
works
more
like
the
ipython,
complete
and
yeah.
That's
it
for
me.
So.
D
D
I
summarized
it
in
an
issue,
but
my
obviously
different
tools
have
different
completion,
behavior,
whether
you
have
a
first
time
and
it
opens
up
some
some
options
for
completion
and
whether
the
second
tab
completes
or
cycles
through
or
takes
action
on
the
first
item-
or
all
of
that
is
obviously
very
subtly-
between
VI
and
emacs
and
visual
studio
and
sublime
and
textmate,
and
this
and
that
and
we're
never
going
to
be
able
to
be
consistent
with
everybody
because
they're.
Actually,
there
are
inconsistencies
between
tools.
D
The
one
thing
that
I
think
should
be
our
policy,
because
it's
the
only
thing
we
can
control
is
to
be
consistent
in
that
in
as
much
as
possible,
and
now
that
I
python
master,
not
a
Python
4.2,
but
I
Python
master
uses
prompt
toolkit.
The
capabilities
that
that
exposes
are
much
closer
to
what
you
get
in
a
GUI,
and
so
it's
easier
to
be
more
consistent
between,
say,
the
web,
notebook
of
the
web
console
and
the
terminal
behavior.
D
It
is
completely
most
driven
by
muscle
memory
you
get
used
to
it
and
if
there
are
subtle
differences
between
two
things,
exactly
easier
to
deal
with
huge
differences
than
with
subtle
differences.
If
you
have
to
deal
with
humongous
differences,
you
sort
of
switch
modes
if
it's
almost
the
same,
but
it
does
something
slightly
wrong,
you're
going
quickly
and
then
something
breaks.
But
if
someone
disagrees,
we
should
discuss
it
well,.
G
Actually,
there
is
one
ipython
behavior
that
I
noticed
today
that
I
hadn't
seen
before
that
I,
don't
really
think
is
intuitive
at
all.
Oh
man,
I
can't
share
my
screen.
Can
I
no
I,
think
I
install
an
extension
first,
so
I
like.
G
But
basically,
a
the
the
automatic
filling
in
of
the
what
what
Fernando
yesterday
described
is
greedy,
basically
when,
when
there's
a
match-
and
it's
the
only
match
it
automatically
fills
in
that
is
totally
intuitive,
and
it
makes
sense
to
me
and
also
the
other
thing
that
makes
sense
might
be
slightly
more
annoying
to
implement
and
I.
D
D
G
Sort
of
completion,
so
I'm
gonna
type
from
I
pry
widgets
and
I'm
typing
all
these.
I
am
now
I'm
going
to
hit
tab.
Okay,
so
filled
out
the
word
import
and
then
also
gave
me
the
drop-down.
I
think
that
completion
ought
to
end
at
words
and
I
think
in
order
to
get
this
drop-down
that
should
have
been
another
completion
and
now
I
and
not
after
hitting
the
tab
just
once
I
think
it's
good
that
it
filled
out
the
word
import,
but
I,
don't
think
it's
good
that
it
opened
up
this
drop
down
here.
H
G
H
D
The
first
time
which,
if
you're
on
a
on
a
spinning
hard
drive,
is
actually
going
to
take
a
while.
So
I
completely
agree
with
you,
it's
much
better
to
let
the
person
at
least
type
the
first
few
letters
and
then
that
way
you
can.
You
can
filter
down
to
a
smaller
list,
rather
than
show
me
every
one
of
the
two
thousand
packages
I
could
possibly
import
so
I,
yeah,
I,
agree
with
you
and
I.
Think
that's
new,
so
or
min
confirmed.
D
That's
no
writer,
so
yeah,
ok,
cool
the
trick
is
make
the
the
prompt
toolkit
stuff
is
new
enough
that
it's
we're
trying
to
make
it
match
as
much
as
possible
how
it
used
to
work,
and
we
would
hammered
on
a
bunch
of
weird
little
inconsistencies
in
the
last
few
weeks.
But
but
it
is
new,
so
it's
possible
that
it
diverges
is
still
a
little
bit
and
it
hasn't
been
released.
So
when
in
doubt
it's
worth
checking
if
you
find
something
really.
D
That
feels
odd,
like
this
double
check
by
switching
your
get
your
check
out
to
Fort
Portal.
Oh
then
there's
tax
for
the
releases.
So
if
you're
running
from
Python
master,
you
can
just
check
out
the
420
tag
and
double
check,
because
that's
the
one
that
was
released
that
it's
sort
of
official
and
that
should
be
the
base
reference
for
questions
like
this.
Okay.
I
B
I
G
Totally
reasonable
to
me:
okay!
Well,
if
that's
the
case
in
42,
then
this
is
I,
guess
probably
introduced
by
some
newer
version
of
rom
toolkit
or
some
new
code.
That's
been
added,
but
basically
it.
H
D
Great
thanks,
but
but
are
there
otherwise?
So
this
way
we
agree
on
this
one:
are
there
otherwise
objections
to
kind
of
the
principle
that
we
should
strive
within
reason
for
consistency
between
our
tools,
rather
than
attempting
consistency
with
random,
like
we're
going
to
be
consistent
with
sublime
when
we're
going
to
be
consistent
with
text
mater
we're
going
to
be
consistent
with
the
eye,
because
I
don't
think
that
policy
is
a
viable
or
sustainable
one,
whereas
we
can
say
will
try
to
be
consistent
among
our
various
interfaces.
Does
anyone.
H
Disagree,
what
I
think
it's
I
think
it'll
be
there.
There
will
be
a
kind
of
a
gray
area
for
consistency
between
a
web
thing
and
prompt
toolkit
yeah.
You
certainly
got
more
freedom
and
prep
tool
kit
than
read
line,
but
I
think
it
might
be
a
little
a
little
fuzzy,
especially
with
even
even
in
the
web
context.
H
H
So
I
mean
I
think
there
will
be
some
some
fuzziness
in
terms
of
like
complete
as
you
type,
and
there
are
some
of
those
things
that
you
might
want
in
some
cases
and
not
another,
send
it's
less
the
UI
like
the
fact
that
it's
on
the
web
or
not
and
more
the
fact
that
it's
your
editing
a
file
versus
writing
in
a
console.
A
different
type
of
interaction,
makes
the.
G
Yeah,
so
when
you're
in
a
console,
it's
a
lot
like
being
in
the
terminal
session,
you're
already
used
to
using
tabs
and
tab
completion
makes
total
sense.
But
when
you're
in
a
document
like
in
an
IDE,
you
don't
normally
do
tab
completion
to
bring
up
the
menu.
The
menu
just
automatically
happens
in
most
IDEs.
So
that
already
is
a
I
mean
in
in
in
in
a
visual
studio
and
in
sublime
as
I'm
typing
stuff
pops
up
I'm.
H
G
G
Whereas,
like
in
a
console
setting,
I
totally
expect
to
first
hit
tab
before
something
like
that
happens,
but
but
yeah
I,
don't
know,
I
mean
there's,
there's
definitely
there's
definitely
I
think
a
really
good
case
to
be
made
for
consistency
across
different
Jupiter
properties,
even
but
not
sort
of
in
an
ideological
way.
It
might
turn
out
to
be
the
case
that
the
sensible
default
in
nope
turns
out
to
be
actually
show
it
by
default
and
not
have
to
eat
at
first.
It
might
turn
out
that
people
want
that
I,
don't
know
yeah
I.
C
I
mean
I,
don't
have
much
of
an
update.
We
take
a
vote
of
the
week
off
and
will
continue
to
do
so
today
after
this
meeting,
but
I
guess
the
state
of
state
of
prosper
running
up
into
the
basically
doing
the
last
budget
ow
just
knock
panel,
which
the
last
outstanding
thing
once
I
get
it
that
out
then
I'll
cut
like
a
08
or
09
released
or
whatever,
and
we
can
start
moving
this
stuff.
The
super
lab
verona
new
stuff
test
suite
is
now
reasonably
complete
for
everything
that
exists
in
buffer.
C
B
C
Create
a
widget
now,
but
basically
one
of
the
things
that
we
did
recently
has
got
rid
of
all
the
static
methods.
All
the
static
creation
methods
now
they're
taking
edges
so
so
widget
now
like
the
primary
way
to
set
a
custom
node
on
a
widget,
is
to
pass
them
to
the
constructor.
Otherwise
you
get
a
deal
so.
D
Of
III
widgets
I
I
keep
getting
hitting
and
like
yesterday
when
darien
and
I
were
trying
to
debug
this
stuff.
I
tried
to
run
again
so
my
pie,
widgets
code
and
I
got
again
one
of
those
red
warnings
about
JavaScript
installation
issues
is
something
in
flux
with
that
on
master.
B
What
sorry,
what
what
are
you
running,
you're
running
Jupiter,
lab
master,
yeah,
okay,
yeah,
so
Jupiter
a
master
is
requiring
basically
I
ty
widgets,
a
master,
so
yeah
there's
something
in
flex
there
I
pretty
soon
pretty
soon,
I
mean
we're
completely
rewriting
I
play.
Widgets
rewriting,
is
and
moving
everything
to
typescript
and
taking
an
opportunity
to
refactor
and
revamp
some
of
the
code
while
we're
at
it
and
I
mean.
B
Now,
yep
there's
things
in
flux
right
now,
I'm,
not
sure
exactly
where
the
Masters
I'm
running
on
my
own
branch
with
has
a
lot
of
different
versions.
So,
okay,
it
might
be
that
some
things
in
flux
right
there
right
now,
but
hopefully
early
next
week,
will
merge
and
sort
of
get
things
set,
stable
and
said
again.
Ok,.
D
B
F
B
Okay,
so
there's
pretty.
F
B
Okay,
right
now
we
only
support
plugins
that
are
part
of
the
repo,
essentially
they're,
not
support
plugins,
that
you
load
dynamically,
so
I
the
example.
That's
in
the
in
the
notebook
md.
You
know
copy
this
stuff
into
this
file
and
this
one
line
in
this
other
file,
and
then
things
should
work.
I
think
might
be
what
you're
looking
for
it's
a
it's
a
plugin
that
will
add
a
button
to
the
toolbar.
F
B
B
E
B
Can
cheat
as
that?
Essentially,
what
lab
is
is
what
we're
embedding
into
the
server
as
a
server
extension,
and
we
would
lift
a
little
bit
beyond
it
now,
but
lab
is
essentially
a
standalone
jupiter
lab
I,
whereas
Jupiter
lab
the
server
extension
has
a
little
bit
of
Python
bits
to
serve
that
up
from
from
the
Jupiter
notebook
server.
F
B
F
B
B
Think
we
should
definitely
iterate
elsewhere,
but
it
would
be
good
to
get
some
ideas
from
people
here:
okay
and
then
then
buh
buh,
buh
brian,
in
on
this
later
conversation
and
then
I
think
there
is
beside
the
logistics
of
who
who
presents
and
what
parts
people
are
presenting.
It's
only
a
30
minute
talk,
I
thought
it
was
a
lot
longer
than
that.
B
Actually,
a
30
minute
talk
Thursday
night
and
in
our
abstract
we
said
that
we're
going
to
demonstrate
the
Jupiter
lab
interface
its
code
base
and
describe
how
it
fits
within
the
overall
roadmap
of
the
project.
So
one
question
is
Brian's
giving
a
keynote.
How
much
is
this
going
to
overlap
with
this
keynote?
But
that's
obvious
enough
question
we
can
answer
here,
but
yeah
I
have.
B
H
C
C
H
Yeah
I
think
tech,
some
technical
stuff
about
how
it
works,
and
how
is
part
of
the
point
of
this
stuff
is
that
it
it's
structured
in
a
way
that
makes
it
easier
to
build
new
things
or
add
things,
and
so,
especially
in
the
discussion
of
you
know,
this
is
how
it
works.
This
is
how
these
pieces
actually
talk
to
each
other,
and
this
is
these
are
the
areas
of
the
api's
and
stuff
where
you
can
build
something
that
uses
this
and
adds
a
new
thing
in
theresa.
D
B
A
big
patch
will
be
I
mean
with
all
in
30
minutes.
We
can't
go
too
deep,
but
maybe
a
big
problem.
Here's
a
taster
general
overview
and
come
join
us
on
the
sprint
and
we'll
go
much
deeper
because
this
will
be
Thursday
night.
You
know
come
ask
us
questions
on
Friday
or
join
us
through
this
rental
on
Saturday
them,
yeah
go
lucky
one.
D
One
thing
that
I
would
so
I
would
start
by
sort
of
saying
that
in
a
sense
right
off
the
bat
from
the
users
perspective,
we're
not
doing
anything.
Sort
of
that
is
radically
different,
but
rather
this
is
a
refinement
of
something
that
we
had
already
been
growing
towards.
So
today
we
call
a
Jupiter
notebook,
but
in
reality
it's
already
Jupiter
lab
because
it
already
has
a
notebook
and
a
file
manager
and
a
terminal
and
a
text
editor
right
and
then
a
cutie
console
that
you
can
call
up
from
within
it.
It's
just
that.
D
It
only
runs
if
your
local,
because
it's
QT
application,
but
those
ideas
were
already
there.
What
we're
saying
is
now
we
want
to
give
you
a
way
of
using
those
ideas
in
a
way
that
they
can
interoperate
so
putting
them
on
the
page
together
and
saying,
like
that,
screenshot
that
I
that
I
put
on
the
name
list
a
couple
days
ago
with,
like
here's,
the
notebook
and
here's,
the
console
and
here's
a
terminal
and
here's
the
text
editor
and
here's
the
file
manager
and
now.
D
D
Your
communication
machine
right,
the
common
underlying
infrastructure
and
the
API
is
now
are
explicitly
designed
and
thought
for
that
to
be
possible,
so
that
other
things
of
this
nature,
so
we
there's
a
path
between
the
functionality
that
people
have
today,
but
it
kind
of
accreted
in
a
rather
haphazard
way.
The
UI
doesn't
let
you
organize
it
very
well.
The
underlying
API
can't
really
talk
to
each
other,
but
they're.
There
now
are
brought
cleanly
in
an
extensible
in
an
extensible
way.
D
That
then
opens
the
door
for
lots
of
new
ideas,
and
so
it
from
there
you
can
describe
what
is
that?
What
are
some
technical
pieces?
How
do
things
communicators
a
messaging
protocol,
there's
ways
for
things
to
talk
to
each
other's
ways,
for
things
to
register
themselves,
etc
without
obviously
doing
an
hour-long
developer
talk
and
then
giving
hints
of
not
just
what's
out
of
the
box
there.
But
what
are
some
other
things
that
then
become
possible?
You
could
put
things
like
this.
We
can
now
imagine
widgets
that
control
a
display
panel
on
the
side.
D
So
it's
drawing
a
continuous
path
between
functional
that
people
know
what
we
understood
about
how
we
should
generalize
what
the
architecture
of
the
project
in
terms
of
kernels
and
protocols
and
messaging
and
document
format
supports,
and
what
that
then
opens
up
for
people
in
the
future
for
us
to
give
to
people
and
for
other
people
to
build
upon
in
terms
of
an
API
that
was
designed
for
extensibility
for
community
development.
For
new
tools
to
be
put
on
top
of
it.
B
I,
like
that
I'm
trying
to
capture
a
lot
of
it
on
a
cat,
that's
it
that's
a
good
way
that,
instead
of
saying
oh,
we
were,
we
messed
up
and
we're
reinventing
ourselves,
and
this
is
something
new
instead
say.
This
is
a
fruition
of
the
ideas
that
have
been
we've
been
iterating
on
for
the
last
10
15
years,
yeah.
D
Continuity,
there's
a
conceptual
con
dooney
and
there's
even
functional
continuity.
It's
just
that
today
those
pieces
are
scattered
and
they
don't
really
fit
very
well
they're
an
awkward
fit,
and
now
they
fit
more
and
you
can
even
demonstrate
helping
with
a
fit
by
showing
their
on
the
same
page.
And
you
can
you
can
manage
that
I
mean
it's,
not
hypothetical,
its
wheel
right.
D
And
my
argument
would
be
that
it's
precisely
the
kind
of
environment
or
things
like
that
words
can
then
be
displayed
much
more
easily
and
much
more
cleanly
right.
The
Dashwood's
build
upon
the
notebook
already
and
they
they
present
yet
another
view
so
having
having
a
common
architecture
for
viewing.
Those
things
precisely
makes
those
things
a
more
natural
fit.
Dashboards
are
one
obvious
continuation
path:
Richard
debuggers
visual
output
displayed
panels
for
document-oriented
workloads
that
are
non
notebook,
workflows
where
you
have
text
documents
attached
to
kernels
and
their
display
outputs
or
put
elsewhere.
B
C
C
B
B
Where
to
point
people
yeah
another
question.
D
That's
probably
right
and
asking
it
and
the
way
I
think
about
it
is,
is
that
bachelors
are
effectively
another
view
of
a
notebook
of
the
underlying
architecture
this
and
they
work.
They
work
very
hard
to
make
that
possible
within
the
current
system
and
API
that
we
have.
These
are
api's
that
make
such
custom
views
ideally
will
be
cleaner
and
easier
to
build.
So
this
good,
and
that
will
actually
be
a
good
litmus.
D
E
Want
to
bring
it
one
other
point
that
might
come
up
is
how
to
enable
a
third
party
extension,
for
example,
and
be
greater.
Will
you
be
able
to
just
pip
install
that?
Or
would
you
also
need
to
have
NPM
available?
Now?
We
do.
We
don't
have
a
good
story
yet
on
how
to
add
things
without
extra
web
packing
a
bundle
on,
because
we've
seen
on
notebook
master
that
require
Jas
and
web
pack
do
not
get
along.
E
You
can
force
feed
explicitly
parts
of
them
to
each
other,
but
they
don't
just
you
know
they
don't
go
willingly.
So
this
as
a
problem
for
things
like
BQ
plot
that
rely
on
require
jas
to
get
content
on
the
page
that
we
should
have
a
policy
and
a
plan
for
how
to
handle
these
things
and
whether
we
need
to
require
npm
as
part
of
the
extension
process
and.
D
It's
okay
to
say
that
a
few
of
these
things
are
still
in
flux,
but
a
sort
of
acknowledging
where
the
problems
are
and
inviting
inviting
people
to
say
if
this
is
something
you
care
about,
come
and
talk
to
us
tomorrow
or
doing
the
sprint
and
help
us
hammer
these
points
before
we
make
the
wrong
decision.
So
I
think
it's
perfectly
okay
to
say
that
on
some
of
these
kind
of
more
deep
long-term
infrastructure
building
questions,
we
haven't
figured
out
all
the
answers.
That's
okay!
This
is
still
new,
we're
labeling
it
very
explicitly
as
pre
alpha.
B
B
Yes,
so
that
sets
up
a
conversation
for
the
dev
conversations
over
the
next
week
or
two
is
starting
to
think
about
the
d'architecture.
So
we
maybe
even
have
a
proposal
for
how
that
could
work
before
sci-fi,
because
you're
right,
that's
going
to
be
the
first
thing
people
are
gonna
ask
is
how
do
I
integrate
this
with
my
own
stuff
without
having
to
contribute
to
the
depot
and
have
a
hard-coded
etcetera
now.
D
I
think
one
one
question
that
that
is
a
variant
on
what's
Steve
just
said,
is
the
bigger
question
of
what
is
the
migration
path
for
extensions
and
what
is
going
to
be
the
story
for
that?
We
discussed
it
fairly
extensively
at
the
dev
meeting.
I
think
you
should
have
a
very
crisp
short
version
of
that
of
that
story
for
people,
because
the
number
of
extensions
out
in
the
wild
for
the
existing
system
is
larger
than
probably
any
of
us
would
have
wanted
it
to
become.
H
Think
we
might,
we
might
be
able
to
get
at
both
of
the
problems
of
needing
to
run
webpack
again
and
also
kind
of
how
do
you
extend
stuff?
If
we,
if
we
take
a
more
conservative
like
clearly
defined
extension
points
approach,
they
don't
necessarily
need
to
load
all
those
modules.
You
say
you
know
you
hook
up
to
an
event
and
we
use
standard
hooks
and
events
type
stuff
for
extensions
rather
than
what
we
did
with
the
previous
approach,
which
was
it's
a
page.
H
B
H
B
So
part
of
the
part
is
the
underlying
idea
of
the
entire
platform.
Is
that
everything
that
you're
seeing
is
an
extension?
And
so
your
extension
is
a
first
class
citizen
right
along
with
the
file
browser
and
it's
a
notebook
and
the
terminal,
and
you
know
so
in
some
sense,
our
extension
point
is
extension
mechanism
is
baked
into
the
platform
and
that's
what
we're
using
to
build
the
entire
application.
B
F
One
thing
that
might
be
worth
exploring
is
sylvan
had
done
the
widget
cookie
cutter
stuff
and
that
seemed
to
have
worked
pretty
well.
Maybe
it's
something
you
know
if
we
could
do
something
like
that
with
an
extension
and
give
people
like
this
is
what
you
need
to
be
able
to
support
in
order
to
be
a
valid
extension.
It
sort
of
gets
at
mins
conservative,
but
it
also
kind
of
gives
people
some
direction
as
opposed
to
well.
We
don't
know
how
you're
going
to
get
there
from
here.
I.
H
Think,
in
particular,
for
for
address,
yeah
I
think
that
that
is
a
good
note
tonight.
I
think
for
this
in
particular
for
the
conservative.
You
know
these
are
the
extension
points,
I
think
part
of
what
I'm
thinking
about
with.
That
is
extensions
that
don't
need.
You
know
that
you
can
load
at
run
time
with
require,
whatever
whatever
says
new
dynamic
loading
tool
will
be
next
week.
H
Don't
need
to
be
built
into
the
application
with
web
pack,
but
maybe
maybe
a
certain
class
of
things
does,
but
it
certainly
should
be
everything-
and
maybe
you
draw
this
line
of
here's
where
usually
got
a
bit
of
JavaScript
it
wants
to.
You
know,
do
something
on
save
that
wants
to.
You
know
just
handle
some
some
events
and
modify
something
that
that's
clearly
defined
and
can
be
loaded
there
on
time
and
just
talks
through.
You
know
the
standard,
JavaScript
event
api's
or
whatever.
H
H
H
Have
to
do
with
extension,
points
involve
modifying
like
clap,
like
basically
Python
style
stuff,
where
you're
setting
attributes
on
a
class
or
something,
and
that
doesn't
work
because
the
dynamically
loaded,
a
class
object,
is
not
the
original
one.
But
if
extensions
didn't
work
that
way
like
you,
you
still
get.
The
dynamically
loaded
class
is
still
correct.
So
if
you
were
like
reading
some
property
there
and
then
calling
you
know
registering
event
handlers
on
on
instances
on
the
page
and
this,
these
things
wouldn't
have
come
up
in
the
way
that
they
are.
D
I,
don't
know
Jason
I,
don't
know
the
code
base
well
enough
to
know
whether
this
is
viable
or
not,
but
I'm
wondering
if,
if
it
might
be
possible-
and
I
understand
that
kind
of
there's
the
at
the
bottom
there's-
the
everything
is
an
extension
issue
that
everything
has
been
designed
in
a
very
agnostic
way.
So
in
principle,
there's
kind
of
no
distinction
between
what
very
core
pieces
are
like
say:
the
file
manager
or
the
main
things
like
the
notebook
itself.
D
I
have
to
do
versus
what
whatever
random
code
user,
quite
as
an
extension,
could
do,
but
as
if
that's
the
technical
reality,
but
there
could
be
a
policy
distinction
where
we
say
the
system
is
still
evolving
and
until
we
know
what
does
that?
What
the
stability
and
the
cleanliness
of
that
entire
system
is
going
to
look
like
this
is
the
part
that
is
designated
as
sort
of
extension
safe
and
that
is
considered
public
and
yes,
technically,
it's
true
that
they're
all
on
equal
grounds
and
there's
no
intrinsic
barrier
that
prevents
you
from
doing
that.
D
B
B
The
underlying
extension
mechanism
works
the
same,
but
the
point
is
each
plugin.
Each
extension
offers
things
to
the
environment,
and
so
so,
in
a
sense,
each
extension
has
its
own
interface
for
how
to
extend
it
or
how
to
interact
with
it.
I,
don't
remember:
what's
your
field
Steve
or
grocer
darian,
but
are
there
parts
of
the
there?
Are
there
plugins
that
you
feel
are
going
to
be
API
staple
in
two
weeks.
D
C
C
Make
any
I'm
not
going
to
make
any
promises,
but
I
can
tell
you,
is
that
the
stuff?
That's
in
foster
master
right
now,
I,
don't
anticipate
changing
in
any
substantial
ways,
I'm
pretty
happy
with
how
most
things
are
there
at
this
point,
I'm
so
yeah,
but
yeah
I'm
going
to
I
can
neither
confirm
nor
deny
the
yeah.
B
Okay,
so
thanks
a
lot
for
the
feedback
guided
where
we've
got
just
a
few
minutes
before
the
hour.
So
thanks
a
lot
for
the
feedback.
I
think
that
was
really
helpful
and
useful
for
us
to
have
things
to
think
about
as
we
work
on
the
stock
and
we'll
get
together
with
Brian
some
other
time,
the
next
week
to
sort
of
iterate
more
on
which
what
the
talk
should
look
like
and
stuff
good.
D
D
Well,
a
couple
kind
of
things
on
lab
itself
can
ask
a
couple
questions
sure:
do
we
have
any
way
of
knowing
what's
running
so
that
in
recovering
things
that
are
wrong
same
I
say
I
have
a
lab
session.
I
have
a
notebook
and
a
console
in
a
whatever
and
things.
My
browser
crashes
right
if
I
hit
the
lab
URL
again
I
get
an
empty
lot
page.
The
starting
empty
lat
page
with
the
old
notebook
I
could
go
to
the
running
tab
and
I
see
I
have
these
I.
D
I
D
Like
your,
where
do
you
get
to
make
that
capability?
Is
it
something
that
is
easy,
or
is
it
one
of
those
things
that
is
going
to
require
a
lot
because
I'm
kind
of
beginning
to
think,
of
course,
feature
parity
in
the
sense
of
beginning
to
be
really
usable
and
I
see
pieces
getting
there,
but
I
still
see
a
few.
In
my
mind,
this
is
one
of
the
those
really
key
things
that
is
sort
of
make
or
break
for
real-world
usage.
E
B
B
We
can
stay
sort
in
the
local,
local
storage
or
your
browser,
and
we
run
into
issues
with
that
with
I
pie
widgets,
where
a
lot
of
times
you
actually
don't
want
to
store
it
in
the
local
state
of
the
browser
we
could
make
lamp
have
a
session
URL
and-
and
you
know,
if
you
hit
that
one
session
you're
all
it
pulls
that
stayed
out
of
the
browser
anyway,
there's
a
lot
of
questions
about
where
that
stage
should
be
stored
and
and
then
pull
back
out
that
are
unanswered.
At
this
point.
Okay,.
E
B
E
D
That's
what
we
had
right
now
I
mean
right
now,
because
we
don't
have
a
concept
of
a
complete
session
in
at
the
UI
level
in
in
the
old
notebook.
You
could
see.
The
list
of
running
note
send
a
list
of
running
terminals.
I
think
what
Jason
is
getting
to
is
actually
the
concept
of
a
session
ID
that
would
contain
potentially
even
I
have
these
two
consoles
and
this
one
terminal
and
these
three
notebooks
open
in
this
session
and
give
me
a
way
of
accessing
that
but
I.
This
is
a
pretty.
D
This
discussion
has
many
ramifications,
so
I
don't
think
we're
going
to
make
in
a
decision
now.
I
just
wanted
to
flag,
but
I
think
this
is
one
of
those
pretty
high
priority
ones.
The
the
other,
an
even
simpler
question,
though,
is,
is
there
a
way
to
I,
couldn't
find
a
way
to
rename
a
file
open
with
the
editor,
because,
right
now
it
is
there.
D
D
C
D
D
Everything
starts
untitled,
txt
I
was
sort
of
stuck
like
okay.
How
do
I
rename
this
thing
to
I
ended
up
renaming
another
terminal,
but
but
it
makes
it
makes
the
editor
a
little
weird
to
use
I'm
thinking
kind
of
the
baseline
functionality
for
for
us
to
start
advertising
to
people
hate
play
with
this.