►
From YouTube: JupyterLab Team Meeting - September 28, 2022
Description
A meeting to share and discuss features, ideas, issues, and pull requests in JupyterLab and other Jupyter frontends. This meeting is open to anyone and everyone.
Join future calls via the Jupyter community calendar: https://docs.jupyter.org/en/latest/community/content-community.html#jupyter-community-meetings
Notes for upcoming meetings can be found on the agenda: https://hackmd.io/Y7fBMQPSQ1C08SDGI-fwtg
Past notes can be found on the JupyterLab team compass: https://github.com/jupyterlab/team-compass/issues?q=is%3Aissue+label%3A%22Dev+Meeting+Minutes%22
A
Okay,
hello,
hello,
everyone
welcome
to
the
Jupiter
lab
weekly
call,
it
is
September
28,
2022
and
I
did
have
to
look
that
up
before
the
call,
because
I
was
not
confident,
but
today
we
have
15
participants
on
the
call
at
the
moment.
Hooray,
that's
awesome
and
agenda
I'm,
going
to
link
that
again.
Real
quick,
please
sign
in
add
anything
there.
I
see,
we
already
have
a
few
items.
A
If
you
think
that
your
share
is
going
to
be
about
or
longer
than
five
minutes,
please
add
it
to
the
further
discussion
section,
so
we
can
get
to
it
at
the
end
and
still
make
sure
we
make
time
for
everyone
earlier.
A
Also
because
I'm,
a
nerd
I'm
going
to
remind
you
that
this
is
a
Jupiter
Community
event.
So
we
do
have
a
Jupiter
code
of
conduct
at
jupiter.org
conduct.
That
applies
to
any
of
these
events
at
all
times,
and
it
includes
me
as
well
and
yeah
with
that
I
think
we're
going
to
get
started.
Oh
actually,
before
we
get
started.
The
one
last
thing
I
want
to
do
is
say
I'm
hosting
the
call
today,
because
we're
trying
to
rotate
hosts.
You
can
find
more
about
that
on
that
issue.
A
Please
feel
free
to
sign
up
if
you
want
to
co-host
or
anything
I'm,
just
gonna
bump
that
again
now
we're
actually
going
to
get
started
and
on
the
agenda.
I
see
Frederick
here,
first
ready
to
go
what.
B
Sure
so,
hello,
everybody,
sorry
lots
of
bullet
point.
First
one
is
an
announcement
for
the
Jupiter
council
members.
You
should
have
received
one
or
maybe
two
emails
depending
on
your
spam
policy.
Sorry
for
that
for
voting
for
The
Jupiter
lab
software
steering
committee
representative,
I'm,
sorry
I
did
that
a
bit
late,
so
I
moved
the
closing
day
for
the
election
for
October.
4Th
I
know
that
initially
we
try
to
Target
October
3rd,
but
to
let
at
least
a
week
for
people
to
vote.
B
So
I
decided
to
close
the
vote
up
on
the
fourth
so
next
week
we
should
be
able
to
announce
who
is
the
representative
for
Jupiter
lab.
So
that
was
the
announcement
as
it
has
been
discussed
a
couple
of
times
now
and
in
all
Jupiter
projects.
Gita
two-factor
authentication
are
gonna,
be
enforced
on
Jupiter
lab
GitHub
organization.
B
I
propose
to
enforce
it
right
after
this
meeting,
except
if
somebody
is
a
very
good
reason
for
me
to
delay
that,
but
I
think
no,
we
have
let
everybody
at
the
time
for
doing
action
about
that
and
I
think
everybody,
that's
still
active
as
activate
that
feature,
so
should
be
fine.
So
that
was
for
the
second
bullet
point.
B
The
third
one
is
actually
just
a
question,
so
there's
been
an
issue
on
the
extension
cookie
cutters
that
we
discussed
like
I,
think
it
was
a
month
ago
now
about
changing
the
license
for
the
cookie
cutters.
The
idea
would
be
to
switch
it
to
cc0
I
think
it
was
Alex.
The
last
time
that
was
asking
about
that
and
the
question
I
have
is
like:
should
we
could
we
move
forward
or
do
we
ever
need
to
like
get
the
unanswer
for
every
authors
that
have
contributed
to
that
for
changing
the
license?
B
C
D
Yeah
during
our
previous
discussion,
it's
the
equivalent
of
anybody
can
use
it
under
any
license.
They
want
without
any
questions,
it's
a
it's
almost
like
it's
unlicensed
or
it's
the
equivalent
of
like,
like
what's
the
term
when
music
is
free
for
everybody
to
use
public
domain.
D
B
I
see
that
yeah
and
the
idea
was
also
done
to
clarify
the
fact
that
you
are
fully
free
to
change
the
license
that
come.
That's
the
default
output
of
the
cookie
cutter.
If
you,
if
you
want
and
not
start
to
explain,
okay,
you
are
free
to
change
it
because
the
license
fires
is
generated
with
you.
As
the
author
of
the
extension
that
came
out
of
the
template,
so
it's
just
to
simplify
everything.
Let's
say.
C
B
Yeah
is
it
like:
can
I
move
forward
and
open
up
your
changing
the
the
license
on
the
route
of
the
repository
to
clarify
that
and
then
propose
cruising
the
issue
I
mean
that
will
still
let
some
window
for
people
with
the
pr
open
to
to
come
and
bring
objection.
If
there
are
some
at
last
minutes
but
like
just
to
I
just
want
to
to
ask
here
before
opening
the
pr,
because
if
already
somebody
sees
trouble,
then
I
won't
open
a
PR
if
it
doesn't
make
sense.
D
My
my
only
question
is:
do
we
know
if
there's
any
rules
or
precedent
about
whether
or
not
the
current
contributors
need
to
approve
a
license
change
from
BSD
to
cc0,
because
I
know
certain
licenses,
you
can
hop
they're
written
in
a
way
that
you
can
hop
between
them
without
you
like
a
unanimous
approval,
because
they're
compatible
I
guess
is
usually
the
term,
but
is
that
true
of
going
from
dsd3
to
cc0?
Or
do
we
need
to
get
the
sign
off
on
every
single
code
contributor?
D
No
we're
changing
license
of
the
project
so
that
people
are
aware
that
when
it
generates
code,
that
code
can
be
licensed
any
way
they
want
I
believe
the
plan
was
still
to
just
generate
a
BSD
license
as
an
example
like
as
a
starting
point,
but
the
repo
itself
would
be
cc0.
That
was
my
understanding
of
our
previous
discussion.
B
And
Jason
commented
just
for
on
the
Note
if
things
make
sense,
to
open
a
PR
and
to
get
contributors
to
approve
on
that
pure
and
I.
Think
I
don't
know
of
any
other
cases.
But
it's
true
that
cc0
is
much
more
permissive
because,
for
instance,
you
are
losing
any
sense
of
copyright
so
that
definitely
it's
it
would
be
better
to
ask
for
approval,
but
then
I
agree
with
Alex.
We
may
end
up
with
the
the
question
of
okay.
B
What
do
we
do
in
two
months
times
if
there
are
still
another
some
contributors
that
haven't
approved,
but
maybe
we
can
yeah
see,
what's
happening,
okay
on
the
pr
and
come
back
with
the
question?
If,
if
it
raised.
A
I
want
to
ask
question
but
I'm
worried
derailing.
Is
it
common
to
use
Creative
Commons
licenses
with
code
I
feel
like
it's
not
even
though
I
think
it
falls
under
them?
Did
I
miss
the
reason
that
we
decided
to
go
with
that
because
there
are
other
permissive
licenses.
I
feel
like
I
see
around
more
did
or
did
I
just
miss
a
step
trying
to
read
through
stuff.
D
D
But
yeah
yeah,
like
Steve,
said
in
the
comments.
I,
don't
believe
it
is
usually
for
code,
because
most
people
write
code,
one
their
name
on
it,
even
if
it
is
free
to
share
okay.
A
Just
just
checking
thank
you.
F
To
address
a
point
that
Darian
brought
up
because
of
large
portions
of
the
actual
project
are
Incorporated
in
the
generated
code.
I
think
that's
why
it's
important
to
license
the
project.
The
the
cookie
cutter
as
a
whole,
because
it's
Incorporated
in
the
in
the
generated
output,
William
Stein
in
the
chat,
is
mentioning
wtfpl,
which
I
think
some
people
have
adopted.
My
guess
is
the
cc0
license
has
significant
and
more
legal
vetting
than
wtfpl.
F
A
B
I
was
saying,
like
I
can
probably
move
on
for
on
to
the
next
point,
and
thanks
so
I
will
open
the
pr
and
and
ping
the
contributors
for
for
asking
for
an
approval,
and
then
the
the
next
point
I
have
is
about
releasing
3.5.0.
B
We
have
had
some
discussion
with
people
at
AWS,
so
I'm
a
bit
behind
for
doing
the
announcement,
features
and
notification
features
then,
because
that
AWS
is
really
interested
to
be
able
to
test
Jupiter
lab
with
Jupiter
server
V2,
and
that's
already
that
engage
it
to
release
3.5
without
the
notification
and
announcement
features
so
that
you
can
release
it
like
starting
almost
today.
If
you
want
and
and
delayed
the
features
about
notification
and
announcement
for
another
time.
B
I
will
start
the
the
3.5
branches
and
and
move
forward
dropping
a
notification
and
announcement
features,
and
the
last
point
is
just
a
small
reminder:
there
is
the
Jupiter
lab
performance
meeting.
Sorry
I
didn't
write
it
fully
just
after
this
goal
so
feel
free
to
join.
If
you
are
interested-
and
that
was
all
for
me
thanks
a
lot.
A
A
C
Cool
so
let's
see.
C
As
Isabella
mentioned
at
the
top,
please
sign
up
to
host
this
call
if
you
feel
like
it,
there's
a
team
Compass
pinned
issue
and
if
you
cannot
modify
the
top
level
comment
to
put
your
name
in
just
write,
a
comment
and
we'll
we'll
do
it
for
you
and
if
you
have
any
questions,
I
am
happy
to
help
any
of
the
previous
hosts
are
probably
going
to
be
really
nice
as
well
and
help
yeah.
C
Please
do
it
and
the
other
thing
is
I
linked
a
lumino
PR
that
has
been
open
for
a
couple
weeks
now
and
it
has
to
do
with
processing
message,
Loop
propagation
of
messages
to
the
widget
tree
in
a
background
tab.
So
when
you
first
load
Jupiter
lab
the
application
class
instances
of
shell,
which
is
a
lumino
widget
and
the
events
propagate
downward
from
that
shell
to
all
of
the
children
nodes.
C
It's
a
bit
like
if
you're
familiar
with
react,
the
react,
root,
level
component
and
all
of
its
children,
but
with
luminal.
The
messaging
that
happens
is
really
lightweight
and
automatic.
So
you're
not
passing
things
like
props.
It's
just
your
widget.
By
virtue
of
being
a
widget
is
a
message
Handler
and
it
receives
things
like.
C
It
turns
out
that
the
UI
rendering
wasn't
happening
because
the
message
Loop
was
predicated
on
at
base
level,
using
the
request,
animation
frame
function
in
the
browser
and
in
the
non-browser
context
it
was
using
the
set
immediate
function.
What
this
PR
does
is
two
things.
One
is
that
it
allows
the
pull
class,
which
also
is
something
that
occurs
at
a
regular
interval
to
know
when
your
document
is
hidden
and
any
pull
subclasses
can
access
this
dot
hidden
and
have
behavior
that
might
be
different
than
the
superclass
and
it
adds
a
concept
of
lingering.
C
So
a
poll
will
tick
one
additional
time
in
the
background,
even
if
it's
back
off,
even
if
its
strategy
is
to
not
tick
when
hidden
just
in
case
one
time
it'll
do
it,
you
can
change
linger
to
zero.
You
can
change
Linker
to
19,
it
doesn't
matter,
but
by
default,
it'll
linger
one
more
time
and
it
also
changes
the
way.
The
message
Loop
defers
propagation
of
messages
to
not
use,
request,
animation,
frame
or
set
timeout.
C
It
instead
relies
on
the
async
nature
of
promises,
so
it
caches
a
single
resolved
promise
and
then
every
single
function
call
happens
in
the
dot,
then
of
that
cached
promise
and
it
allows
you
to
cancel
because
the
function
that
runs
lets
you
intervene
by
flipping
a
flag.
So
when
you
schedule
you
get
back
a
function
that
if
you
execute
it,
it'll
actually
unschedule
your
thing,
and
this
is
not
a
public
API
change.
This
is
internal
to
message.
Loop,
all
the
test
pass.
C
In
fact,
the
tests
are
a
bit
more
aggressive
now
to
make
sure
nothing
got
changed
and
the
performance
profile
seems
pretty
much
identical
to
the
request
animation
frame
in
some
contexts.
It
seemed
like
it
was
faster.
Sometimes
it
seemed
marginally
slower,
I
tried
it
in
Firefox
and
Chrome
I
didn't
try
it
on
Safari,
but
I.
C
Think
I
would
I
would
be
surprised
if
there's
any
difference
in
Behavior
there,
and
hopefully
what
this
means
is
nobody
notices
anything
except
for
people
who
were
loading
stuff
in
the
background
they
should
notice
it
loading
faster
and
that's
it
for
me.
Unless
somebody
has
questions.
C
Well,
I
specifically
asked
Vidar
to
review
it
because
Vidar
made
some
insightful
comments
that
led
me
down
a
rabbit,
hole
to
re-implement
the
whole
thing,
but
I'm
not
asking
anyone
to
reveal
unless
they
feel
like
it.
G
Yeah,
just
a
quick
announcement
that
there's
a
new
for
the
old
priorities
out
today
and
there
are
a
couple
of
changes
so
beats
test.
There's
the
new
extension
manager
using
by
pi
as
the
back
end
and
also
a
bunch
of
performance
improvements
and
this
horror
RTC
refactor.
So
all
of
this
using
and
you
can
try
it
on
binder
if
you
want
and
that
that's
it.
A
Awesome,
a
good
meditative
time,
I
am
checking
the
we
don't
have
anything
else
on
the
agenda,
but
we
do
have
time
if
anybody
wants
to
throw
something
in.
We
also
don't
have
anything
on
the
additional
discussion
yet
yeah.
Let
me
get
you
that
link,
but
I
would
like
to
throw
in
we've
had
a
little
bit
more
discussion
in
the
chat
about
licenses.
A
If
it's
okay,
I'm
going
to
read
some
comments,
so
they're
captured
in
the
recording,
because
I
think
this
is
a
good
discussion,
we're
okay,
what
am
I
seeing
here.
So
we
have.
There
are
several
public
domain
equivalent
licenses.
We
have
a
Wikipedia
link
that
lists
those
a
very
good
argument
or
that's
what
Jason
grout
sent
the
list
of
things
William
Stein
said.
A
very
good
argument
for
CCO
over
wtfpl
is
that
the
wtfpl
is
explicitly
banned
for
use
at
Google.
A
Jason
found
that
CCO
over
the
unlicensed
is
encouraged,
so
we're
seeing
kind
of
some
discussions.
It's
continuing.
Does
anyone
want
to
speak
more
on
those
or
is
it
good
just
happening
in
the
chat.
F
F
Some
ID
variant
licenses
which
contain
the
right
to
sub
license
are
closer
to
True
public
domain
declaration
than
the
one
in
the
unlicensed
text
and
in
fact
the
in
particular
the
MIT
zero
license
removes
the
attribution
requirement,
so
it
becomes
effectively
a
public
domain
license
according
to
the
Wikipedia
article.
So
that's
another
possibility,
but
I
think
it
MIT
license,
does
not
have
a
patent
clause
in
it.
So
it's
got
the
same
problem
as
cc0
as
far
as
Fedora
says.
A
Okay,
yeah,
that's
actually
what
I
was
wondering
why
cc0
over
MIT
in
that
case,
but
that
makes
sense
thanks
for
hunting
this
down
any
further
licensing
insight.
A
For
cookie
cutter,
the
extension
cookie
cutter
I
can
link
again
from
that.
H
A
A
A
I'm,
seeing
one
more
thing
on
the
agenda:
actually,
we
can
back
up
empty
notebooks
salon.
E
E
It's
totally
fine
to
have
an
empty
notebook
or
the
the
current
implementations
in
the
front
end
always
add
an
empty
cell.
Whenever
you
find
yourself
with
an
empty
notebook,
this
actually
is
problematic
in
especially
in
the
case
of
real-time
collaboration.
E
So
there
are
several
Corner
cases
where
you
could
find
yourself
with.
Let's
say,
a
network
with
two
cells
and
two
different
users
delete
a
different
cell
and
the
auto
merge
would
result
in
an
empty
notebook
and
everyone
will
start
adding
cells
and,
as
many
tears
as
you
may
have,
and
so
you
find
yourself
with
many
cells
that
are
empty,
because
not
everyone
has
the
same
cell,
they
create
a
new
one.
E
E
So
it's
a
bit
untidy,
and
so
what
we
would
like
to
do
is
to
allow
for
empty
notebooks
in
the
UI,
so
new
notebooks
would
still
have
a
a
new
mtcr
when
you
create
them
or
will
deleting
that
cell
would
be
totally
okay
in
terms
of
ux.
We
are
thinking
of
two
things.
First,
we
should
say
something
in
the
notebook
widget
about
rather
than
showing
a
blank
page,
so
that
the
person
doesn't
doesn't
think
that
the
notebook
widget
is
broken.
E
There
is
actually
something
it's
just
empty
and
it
is
also
Loosely
related
to
some
discussions
that
we've
had
in
the
past
to
add
buttons
at
the
bottom
of
the
notebook
to
add
new
cells,
just
like
in
vs
code.
So
in
the
case,
where
should
we
add
such
buttons?
E
In
the
case
of
an
empty
Netbook,
you
would
still
have
a
markdown
code
and
raw
buttons
for
creating
such
a
new
cell
manually,
so
yeah
I.
Just
we
just
wanted
to
bring
this
up
the
first
time,
because
there
is
already
a
traffic
request
opened
by
Carlos.
E
Incidentally,
this
pull
request
also
fixes
issues
with
race
conditions,
about
creating
that
you
know
new
cell,
which,
in
the
case
of
RTC,
can
result
very
easily
in
notebooks
having
two
empty
cells
when
you
open
the
open
them
so
yeah,
that's
it.
If
people
have
ideas
of
comments,
please
feel
free
to
share
them.
A
E
E
While
a
an
initial
technical
removal
of
that
constraint,
we'll
solve
some
of
the
issues
we
have
in
RTC,
we
can
have
a
placeholder
UI
and
then
you
know
work
together
on
the
improved
version
of
the
ux
yeah,
although
yeah
I
think
actually
Gabrielle
I
may
have
posted
some
things
on
the
issue,
just
so
that
yeah
Darian.
E
No
I
think
adjustment
in
two
different
periods:
yeah;
no,
no.
We
we
need
to
have
a
nice
TR
yeah
for
a
nice
ux.
For
for
that,
oh
definitely.
F
Fyi
I
think
there's
probably
assumptions
through
the
code
that
assume
there's
yourself
so,
for
example,
I
think
active
cell
is
always
assumed
to
point
to
a
cell
in
the
notebook
when
you
do
the
above
or
below
keyboard
shortcuts
Etc.
So
this
this
may
have
some
subtle
ramifications
throughout
the
code
base
and
interface.
Changing
changes,
no.
J
Is
is
right,
so
the
Arctic
cell
can
be
new,
but
all
over
the
place,
we
assume
is
not
known.
We,
it
can
be
known
only
because
of
the
initialization,
because
at
the
beginning
we're
not
in
the
document.
We
don't
have
a
model,
yet
it
added
later,
but
yeah
everywhere
in
the
code
will
assume
is
normal.
I
did
change
that
already
on
my
peer,
it
could
be
on
their
cases
that
are
invention,
good.
F
A
Do
we
no
ways
we
could
test
those
things
like?
Are
there
ux
tests
to
make
sure
that
that's
not
getting
overlooked
somewhere
that
that
require
I
I?
Ask
that
really
weird.
Do
you
know
what
I
mean,
though,.
J
Yeah,
these
there's
actually
a
lot
of
tests.
The
reason
it
just
did
because
there
is
a
lot
of
tests
that
check
specifically
for
not
having
an
empty
notebook
so
yeah.
That's
why
I
want
to
add
at
least
about
on
this
pair,
so
I
can
change
the
test
to
check
that
there
is
a
button
instead
of
as
at
least
one
set
and
yeah.
I
I
I,
don't
like
this
PR
for
what
it's
worth
for
two
reasons
one
is,
it
seems
like
your
motivation,
is
that
you
I
mean
why
don't
you
just
have
this
all
get
created
on
the
back
end
and
I
guess?
The
answer
is
because
you
still
haven't
done
some
stuff.
That
needs
to
be
done
in
the
back
end,
but
that's
not
a
really
good
motivation
to
change
the
whole
user
interface.
I
It's
just
a
motivation
to
fix
the
back
end
and
then
the
other
thing
is
there's
all
kinds
of
really
nice
users,
user
interface
stuff,
like
creating
a
new
cell
by
clicking
on
a
toolbar
with
an
existing
cell,
and
if
you
don't
have
any
cells,
then
that
goes
away
so,
like
a
user
will
be
like
the
way
I
know
to
make
a
new
cell
is
to
click
here
and
then
they
accidentally
delete
all
their
cells.
Now
suddenly,
they're
like
I,
have
no
idea
how
to
make
a
new
cell.
I
E
Specifically
for
the
ux
we
we,
we
mentioned
the
idea
of
having
something
at
the
bottom
of
the
notebook
which
will
be
at
the
top
when
you
have
an
empty
notebook
with
a
plus
button
for
a
new
cell.
So
you
would.
This
would
be
right
in
the
middle
differently.
E
That's
invalid,
and
so
in
order
for
the
constraints
to
be
available
to
be
represented
by
see
what
it
is.
I
think
it's
better
to
actually
not
have
this
mechanism
to
read
the
server
after
the
fact.
E
H
So
that's
my
first
question
and
my
other
notes
is
that
if
Jupiter
lab
4
is
going
to
be
a
base
for
Notebook
7,
that
would
be
a
substantial
change
for
the
for
some
of
the
users,
and
would
there
be
a
way
to
restore
the
previous
behavior
of
having
a
cell
always
present
and
while
I
understand
that
it
might
not
be
problem
from
the
majority
of
users?
H
Some
users
might
have
this
current
experience
as
part
of
the
workflow
or
some
extensions
might
assume
that
there
is
a
cell
and
that
wouldn't
be
shown
up
in
this
PR.
So
I'm
just
saying
that
there
is
a
quite
of
a
quite
a
lot
of
things
which
might
go
wrong
with
this
change
and
we
need
to
be
really
sure
that
it's
worth
it
and
right
now,
I'm,
just
not
convinced.
H
So
sorry,
just
last
one
point
that
adding
I
I
understand
that
this
removes
some
of
the
codes
special
cases
that
are
in
the
code,
but
it
adds
a
new
UI
which
we
need
to
test
and
ensure
accessibility
for
ETC,
and
maybe
there
needs
to
be
three
battles
to
add
a
cell
code
and
mark
them
cell
Etc.
So
just
let's
make
sure
that
it's
worth
it
yeah.
E
So
before
so,
no
this
purpose
does
not
add
a
UI.
It
removes
liquid
strands
to
have
an
empty
cell
to
have
one,
and
so
there
is
no
means
to
know
whether
a
certain
removal
removes
the
last
cell,
because
you
could
have
messages
Crossing
from
different
spheres,
actually
editing
together
the
same
notebook.
E
We
are
both
editing,
the
same
notebook,
I,
delete
cell
1
unit
cell
two
messages
cross,
and
we
both
are,
you
know,
end
up
with
an
empty
notebook
and
so
and
it's
actually
something
that
does
happen
so
in
mostly
around
initialization
and
and
whatnot.
So
basically,
we
don't
want
to
have
to
have
all
of
these
Logics
everywhere
real
in
sales
and
checking
whether
you
were
removing
the
last
or
whatnot.
So
that's
actually
removing
a
lot
of
special
casing.
E
The
the
new
UI
would
be
is
something
that
has
been
proposed
independently
of
this
question,
which
was
to
add
buttons
at
the
bottom
to
create
new
cells,
and
it
does
exist
in
vs
code.
So,
for
example,
I'm
going
to
share
my
screen.
E
So
something
like
this,
where
you
can,
we
would
basically
have
these
three
buttons
at
the
bottom
code,
markdown
raw,
that's
the
easiest
sort
of
experience
you
could
have
and
in
the
signal
markup
you
can
actually
just
hit
enter
and
if
the
focus
isn't
good,
you
get
taken
and
decode
itself.
So
no
click
is
required.
A
A
Okay,
any
other
other
thoughts
there,
I'm
assuming
this
is
moving
to
the
pr
or
I.
Don't
want
to
cut
this
off.
So
we
have
time.
I
I
guess
my
one
quick
other
thought
is
what
text
editors
do
like.
If
you
open
a
file,
that's
completely
blank,
it
makes
it
look
like
there's
a
single
blank
line
like
the
open
edit,
something
in
Vim
or
code
mirror,
but
there
actually
isn't
a
line
there
and
when
you
start
typing
it,
it
puts
the
line
there.
So
you
could
still
have
it
where
it
looks
like
there's
a
cell
that
isn't
actually
nothing
actually
happens.
Unless
the
user
starts
editing
like
there,
there
isn't
really
a
cell
there
unless
the
user
starts
editing.
I
I
J
That's
the
only
solution
that
I
could
think
of
by
keeping
the
they
said.
Basically,
a
standalone
set
that
we
are
up
to
the
UI,
but
is
not
on
in
the
model,
and
once
we
receive
a
Source
centered
signal,
then
we
add
it
to
another
model:
the
Water
another
suggestion
from
mic,
I,
think
cleaning
the
last
cell
I.
Don't
think
it's
our
idea
because
of
what
Silvan
just
said.
Maybe
two
users
get
it.
There
is
only
two
sets
on
the
notebook
it
uses
that
it's
one
set.
J
We
will
end
up
with
two
empty
sets.
You
know,
but
also
I,
don't
think
it's
a
good
idea,
because
I
believe
we
could
end
up
in
a
situation
where
one
user
cleans
the
cell
that
eats
all
the
cells,
and
so
we
clean
the
last
one.
Instead
of
removing
it
and
another
user
is
editing
that
cell,
for
example,
changing
it
from
a
culture
to
a
markdown.
J
E
A
A
Going
once
going
twice,
okay,
thank
you
all
that
was
a
lot
of
good
updates
and
interesting
discussion
that
I'm
going
to
be
thinking
a
lot
about.
So
thank
you
and
for
anyone
watching
in
the
future
have
a
good
rest
of
your
day.