►
From YouTube: Jupyter in SageMathCloud, May 3, 2017
Description
Jupyter/IPython developers meeting with SageMathCloud.
A
B
So
basically,
I
spent
the
last
two
and
a
half
months
working
on
implementing
the
I
guess
classical
Jupiter
client
trying
to
follow
the
user
interface
and
functionality
very
very
closely,
but
in
the
context
of
sage
math
cloud
and
trying
to
incorporate
better
kind
of
integration
with
the
system
that
we
already
have
we're
using
some
of
the
functionality
we
have
and
the
main
motivation
is
wanting.
B
Real-Time
sync
to
work
really
well
because
it
was
kind
of
hacked
in
on
top
of
the
existing
jupiter
notebook
and
in
the
live
version
of
sage,
math,
quad
and
sometimes
we'd
run
into
issues.
So
we
wanted
something
that
was
more
robust
for
real-time
collaboration
and
it's
getting
it's
not
released
yet.
But
the
plan
is
to
release
it
this
weekend
and
since
then
it's
not
done
yet
there's
still
a
couple
of
days
before
the
weekend,
but
it's
getting
pretty
close
to
being
done.
B
So
I
thought
it
would
be
useful
to
get
some
feedback
by
people
that
have
used
the
Jupiter
notebook
a
lot.
So
I'll
show
you
a
really
quick
demo.
It
should
look
very
familiar,
even
though
it's
a
reimplementation
and
as
I
mentioned,
you
can
try
it
out
yourself
by
doing
kind
of
the
same
thing,
so
I'll
click
the
screen
share
button
which.
C
D
B
E
B
I
got
rid
of
the
I
guess
round
button
for
restarting
the
kernel,
because
you
probably
don't
need
to
restart
the
chrono
a
lot.
It
looks
exactly
like
our
redo
button.
If
you
do
like
a
equals
and
then
do
undo,
and
then
you
go
up
here
and
click
redo,
then
you
know
it's
sort
of
the
same
thing,
but
there's
still
kernel
restart
kernel
right
here
there,
some
other
buttons
I
added,
so
I,
didn't
add
very
much.
But
I
added
resize
buttons
for
the
font,
so
it's
easier
when
you're
doing
demos.
B
E
E
A
B
E
B
100%
plan
to
implement
the
double
press
keyboard
shortcut
exactly
as
in
Jupiter
I,
just
I
wrote
all
the
keyboard
shortcuts
stuff
I
was
on
an
airplane
flight
and
I.
It
landed
and
I
just
stopped
midstream
and
the
double
press
I
hadn't
done
yet
because
it
kind
of
a
little
different
than
anything
I
did
before.
But
yeah
I
don't
really
want
to
break
muscle
memory
stuff.
E
B
B
What
else
to
show
you
I
mean
it?
There's
a
there's,
a
lot
of
stuff
that
you
know
we've
done
like
I
I
really
mean
this
to
the
feature
complete
with
respect
to
the
normal
standard
Jupiter,
not
with
respect
to
all
extensions.
Of
course,
there
are
a
few
things
we
have
that
you
overlap
with
the
existing
extensions,
for
example,
code
folding.
If
you
do
coke
Holdings
not
on
here,
but
if
I
go
to
my
account
settings-
oh
actually,
it
is
on
by
default.
B
So
you
can
see
that
there's
code
folding,
that's
enabled
or
disabled
in
account
settings
in
SMC.
So
there's
totally
right
there.
If
I
uncheck
that
and
then
I
go
back
over
here
code
folding
is
now
disabled
for
me
line
numbers.
Similarly,
there's
a
system-wide
line
number
thing,
but
I
decided
that's
so
very
explicit
in
the
menu
system
for
Jupiter
that
you
do
it
exactly
like
in
the
normal
Jupiter.
So
there's
just
toggling
line
numbers
there's
also
themes.
B
So
let
me
just
switch
back
to
the
default
theme.
There's
always
funny
issues
with
various
occasions
like
right
here.
You
know
the
load
line
is
put
at
the
bottom
and
it
will
properly
do
things
like
view
control
W.
It
does
actually
save,
etc
and
what
I
did
was
in
when
you're
in
write
mode?
If
you
has
escaped
once
it
switches
the
vim
edit
and
then,
if
you
escape
again,
it
switches
to
the
normal
Jupiter
command
mode,
so
I.
B
Mean
just
as
I'm
showing
you
rounded
things,
one
thing
would
how
the
other
person
from
fish
mouth
who's
on
the
video
chat
when
he
was
testing.
He
noticed
that
when
the
cursor
is
very
close
to
the
top
and
you
go
up
I'm
often
the
cursor,
like
the
thing,
doesn't
scroll
some
issue
with
code
mere
wear
when
you're
using
a
vertical
auto
pilot
height:auto,
it
doesn't
necessarily
scroll
when
your
cursor
goes
up
above,
but
it
does
now.
I
had
to
put
in
some
extra
hack
and
I
noticed
when
I
was
testing.
B
B
B
B
Okay,
then
I
missed
that
and
I
will
add
that
to
my
to-do
list,
because
that
will
yeah
I
just
completely
forgot
about
it-
that
I'm
ever
always
worrying
about
similar
things
with
sage
and
B
you're
moving
between
cells
I
just
forgot
about
that
so
up
at
top
of
cell,
in
certain
cases,
these
two
previous.
So
it's
literally
okay
and.
E
B
So
we
can
do
so
so
in
the
top
right
when
the
kernels,
starting,
which
is
a
broken
circle
and
it
spins
during
startup,
and
then
when
it's
done,
starting
it's
a
solid
circle
and
again
the
stage
the
stupid
stage
kernel
takes
forever.
To
start,
maybe
I'll
just
switch
to
a
different
kernel
like
the
Anaconda
Python
3
kernel,
but
just
starts
up
much
more
quickly.
I.
E
B
B
B
So
when
you
click
when
you
mouse
over
it
says
kernel
is
busy
also,
instead
of
an
asterisks
which
I
think
I
mean
it's
a
web
browser,
so
you
can
use
icon,
actually,
Kyle
suggests
an
icon,
I
just
used
exactly
the
same
icon,
the
solid
dot
that
you
use
in
the
upper
right
instead
of
the
asterisks,
it
just
seems
more
since
fun.
It
just
makes
more
sense
to
me
to
use
the
exact
same
indicator
in
both
places.
B
As
you
can
see
right
here
and
then
another
indication
of
what's
happening
is
when
you
start
running.
These
stop
button
is
no
longer
disabled.
So
right
now,
I'm
sure
that
you
can
barely
see
that
over
video
chat,
but
the
stop
button
is
gray
and
disabled.
But
then,
when
I
start
running,
the
stop
button
switch
is
to
be
dark.
There's
three
different
visual
indicators:
that
code
is
running
and
in
the
upper
right
here.
There's
a
small
thing
that
shows
you
when
the
evaluation
started
and.
B
B
Is
that
what
somebody's
doing
right
here
yeah
it
keeps
up
multiple
cells?
If
you
try
to
reevaluate
an
existing
cell
kills
that
one
and
restarts
it
so
yeah.
So,
for
example,
if
I
evaluate
these
four
and
it
does
first
one
the
others
queue
up,
it
does
have
an
execution
queue.
The
execution
queue
and
really
everything
related
to
execution
is
entirely
back-end.
So,
for
example,
I
could
start
these
four
things
running
I
should
put
some
output
into
it.
You
believe
me
two
plus
five
and
three
minus
seven.
B
B
B
B
Execution
model
is
it
like
ordering
a
key
and
then
the
results
are
put
in
the
front
end,
and
evidently,
if
there's
I
mean
I
can
understand
now
thinking
about
how
its
implemented,
if
there's
an
exception,
it
just
goes
on
to
the
next
one
and
shows
the
exception.
Is
that
how
Jupiter
works
or
not
I?
Don't.
A
E
D
D
D
E
B
Yeah
I
think
I
saw
a
lot
of
discussion
on
the
issue
tracker
about
this
got
people
running
this
behavior
I
can
see
why
it
does
this
because
I
mean
I'm
in
the
back
end,
it's
just
sort
of
parsing
and
processing
messages
and
executing
them
one
after
the
other.
It
doesn't
really
currently
the
code
that
I'm
running
doesn't
worry
about
whether
or
not
there
was
an
error
and
in
fact
it
kind
of
may
be
difficult
to
decide
whether
there's
an
error
for
certain
criminal
I.
Suppose
this
is
the.
A
B
It'll
just
do
them
in
the
order
that
they're
submitted
it
will
queue
them
it
just
queues
them
up,
I
mean
all
it
really.
All
the
client
does
is
for
each
cell
there's
a
JavaScript
object
and
when
they
request
that
a
cell
be
executed,
a
set
or
actually
a
field
gets
that
which
is
run
true
or
something
like
that.
I
forget,
like
some
State
thing,
gets
changed
and
then
this
propagates
to
the
back
end
the
back
end
notices,
there's
one
single
thing.
B
Listening
on
the
backend
appended,
so
it's
kind
of
a
single
point:
it
decides
in
what
order
things
run,
etc.
So
if
one
person
decides
to
execute
a
salad,
when
somebody
else
does
the
appearance
or
both
of
them
will
be
that
both
cells
with
I
mean
I,
think
if
I
just
switch
to
screen
sharing,
it
could
show
you
this
in
two
windows
simultaneously,.
B
D
A
C
D
B
B
It
you
know,
if
you
look
at
the
I,
guess
the
message
spec
or
the
document
that
explains
the
messaging
it
is
there
doc
it's
very
easy
to
see
kind
of
what
is
necessary
to
write
a
kernel,
but
it's
not
so
easy
to
see
what
you're
supposed
to
implement
in
order
to
implement
a
client
on
the
other
side.
So
I
mostly
figured
out
what
to
implement
by
looking
at
notebooks
and
seeing
what
messages
are
common
or
appear.
B
C
B
We
we
did
enable
requires
engine
inside
it.
We
decided
to
deliver
now
at
least
because
you're
conflicts
with
webpack.
It
completes
with
a
lot
of
the
packages
that
we
load,
the
web
pack
steadily.
Breaking
them
left
and
right,
and
also
so
for
one
thing
in
I
mean
we
know
what
our
users
are
actually
using
an
SMC
right
now
and
they
are
obviously
not
using
require
it's
stuff
very
much.
Maybe
they
are
I,
don't
know,
I
mean
we
look
at
what
they're
using
they're,
not
using
any
extensions,
because
we
don't
it
would
actually
undo.
B
C
B
B
C
B
It
says
much
additional
options
and
there
are
some
parameters
that
are
configurable.
What
it
does
is
it
on
the
back
end,
it's
collecting
the
output
and
when
it
exceeds
a
certain
window
or
simply
has
a
buffer
on
the
back
end,
and
when
the
output
gets
too
big,
it
just
throws
away
extra
messages
and
keeps
the
most
recent
messages.
Similarly,
if
there
are
very
large
messages-
and
they
can
be
truncated,
for
example,
their
text,
then
it
will
truncate
the
message
and
push
it.
So
when
you
click
the
output
button,
it
just
gets
the
last.
B
Each
pillow
has
a
UUID,
it's
like
it's
actually
I
didn't
using
it
not
currently
using
a
you
know:
full
UUID,
that's
kind
of
overkill
I'm,
just
using
the
first
six
characters
of
a
UUID
and
when
the
cells
created
I
do
check
that
that's
unique,
but
it's
very
in
case
you
were
to
create
three.
You
know
two
different
cells
on
two
different
clients
when
they
merge
together.
Maybe
we
sylveon
they're
highly
likely
to
be
distinct.
C
B
Yeah,
there's
there's
a
unique
UID.
The
underlying
data
structure
that
we're
using
for
the
notebook
is
a
map.
I
mean
for
the
cells.
Is
enough
from
you
ideas
to
you.
No
doubt
about
them.
One
of
the
things
is
the
position
of
the
cell,
which
is
a
floating
point
number
and
that's
what's
used
for
ordering,
so
we're
not
keeping
the
cells
as
a
list
we're
keeping
them
as
a
map
from
you
IDs
to
you,
no
doubt
about
the
cell
and
then,
when
displaying
we
order
them.
B
So,
for
example,
in
our
underlying
data,
if
you
move
one
cell
up,
all
it
does
is
switch
the
positions
of
the
cells,
it
switches
to
numbers
associated
to
themselves
their
position
by
the
way,
if
I
click
the
more
output
at
the
bottom,
it
will
take
a
little
while
to
render
as
much
as
they
can.
It
gives
a
little
message:
some
intermediate
output
is
truncated
and
how
many
messages
were
discarded
and
then
you
get
the
rest
of
the
messages.
It's
a
very
bottom.
B
E
So
we
just
okay,
nothing
which
is
not
not
feature
parity,
but
something
about.
But
if
you
have
extra
data
that
you
store
in
a
separate
file
which
is
a
pipe
so
Andy
I'm
going
to
leave
the
camera
running,
and
you
have
culinary
stars-
and
you
have
the
execution
time
and
one
and
one
and
so
forth,
you
can
one
of
the
problem
we
haven't
solved
yet,
which
is
showing
to
users
with
a
different
color
or
different
style,
or
whatever
standards
that
have
not
yet
been
executed.
E
On
this
specific
channel,
the
others
people
tend
to
execute
things
out
of
order
with
our
implementation.
We
have
an
ambiguity
of
what
the
dirty
notebook
is,
because
we
don't
know
whether
things
when
you
just
lose
the
notebook
from
a
cannon
that
has
it
was
which
was
already
there.
You
can't
tell
whether
a
set
has
been
a
succeed
or
not,
and
that
scenario
is
from
how
many
users
like
can
we
have
an
indication
of
Justices.
B
Let
me
just
going
to
make
another
very
clean
notebook
and
then
show
you
the
underlying
data
structure
in
just
so
you
can
see
that
and
I
would
be
I
mean
it
would
be
very
easy.
Obviously,
on
top
of
this
to
implement
what
you
described,
I
would
be
happy
if
you
told
me
what
you
I
wanted,
rather
than
me
just
making
up
something.
You
know
what
I
mean
so
that
when
you
do
implement
the
solution
to
that
problem,
okay,.
E
B
E
B
This
is
just
used
internally
and
again
we
save
we
export
and
import
to
the
normal
I
PI
B
in
B
format,
there's
also,
for
example,
the
start
time
of
the
calculation,
as
you
know,
milliseconds,
since
the
epoch
and
the
end
time
of
the
calculation,
the
kernel
that
was
used
and
if
there
was
more
than
one
output
message
there
of
course
be
more
here.
So,
oh
good
for
a
little
it
quite
on
three.
B
So
now
you
can
see
that
there's
output
zero
and
there
should
also
be
output.
One
right
here:
yep
there's
also
something.
B
Anymore,
just
kidding:
well,
it's
true.
You
can't
trust
what
you
see.
On
the
other
hand,
you
can
tell
that
I
was
the
one
who
changed.
I
mean
the
the
edit
that
changed
it
from
one
to
two
was
made
by
a
Williams
design.
You
know
this
point
in
time
and
the
history
is
immutable
and
you
can
imagine
you
know
you
can
just
look
and
see
why
it
changed
and
who
did
it
so.
E
E
What
you
can
also
have
is
actually,
instead
of
a
list
of
you,
ID
have
a
graph
of
UID
a
dag
and
that
can
get
more
complex
workflow,
where
you
can
imagine
having
two
different
like
I'm,
either
and
doing
this
first
initiation
cells
and
I
either
use
this
algorithm
on
algorithm.
It's
not
something
wrong:
bacon,
IP,
inv,
but
I
know
that
a
lot
of
people
were
interested
in.
Having
seems
like
that,
UI
is
I,
don't
know
what,
but
we
got
weaker
because.
B
Requests
one
thing
is,
as
I
mentioned
before:
instead
of
a
list
of
cells,
I
really
have
a
mapping
from
you,
IDs
to
cell
data
and
then
a
physician
field
and
right
now
the
position
is
just
they're
floating.
You
know
real
numbers,
so
it's
just
linearly
ordered,
but
there's
no
reason
that
it
could
just
be
a
partially
ordered
I
mean
these
could
be
like
pairs
of
numbers
and
then
you
would
have
several
cells
and
then
they're
ordered
and
then
several
more
cells
and
they're,
ordered
and
so
on.
B
E
B
Just
leaves
a
gap
if,
if
for
some
reason,
something
crazy
happened
which
can
happen
because
we
allow
offline
editing
and
we
merge
changes
together
and
by
the
way,
all
that
I
think
it's
important
to
mention
in
case
you've
used
SMC
before
January,
all
of
the
synchronization
and
history
and
so
on.
For
these
underlying
objects,
it's
not
done
as
a
string
level.
B
It's
really
done
in
an
object
level,
there's
no
possibility
of
corruption
or
anything
like
that,
like
there
used
to
be
until
this
year
so
like
when
you
change
a
particular
field,
it
really
does
just
change
that
one
field
properly.
But
what
happens?
The
back
end
will
periodically
check
whenever
there's
changes
and
if
two
positions
are
identical,
then
it
will
renumber
the
positioning
so
that
all
positions
are
unique.
Otherwise,
like
when
you
insert
itself,
for
example,
I'll
put
a
new
cell
between
these
two
by
typing
a
so
I
just
added
a
new
cell.
B
E
B
B
Simultaneous
editing,
undo
and
redo
time
travel
the
raw
file
edit
mode,
which
I
just
showed
you
so
again.
If
you
you
switch
over
and
you
see
underlying
file,
you
can
get
it.
This
is
an
alternative
way
of
editing
metadata.
For
example,
if
you
want
to
add
metadata
just
edit
it
directly
it'll
show
you
an
error
until
you
make
it
correct
when
it's
proper,
presumably.
B
B
Sorry,
the
important
an
important
point
about
the
raw
thing
is,
you
should
imagine
a
future
where
we
have
a
single
code
in
your
editor
for
the
entire
notebook
as
an
alternative
way
of
viewing
a
jupiter
notebook
and
I
mean
that's
something
in
high
on
my
list.
It
won't
be
in
the
first
release,
but
this
kind
of
illustrates
a
little
bit
of
how
that
might
feel.
But
obviously
this
is
just
editing
the
underlying
data,
so
we
just
hold
on
a
second.
B
It's
also
really
fun,
because
you
consider
and
work
with
the
notebook
and
then
see
how
the
underlying
I
pipe
and
D
file
is
evolving,
which
is
just
kind
of
I.
Don't
know
when
you,
when
you're
implementing
a
notebook,
it's
kind
of
nice
to
do
that.
So,
for
example,
so
see
here
you
see
the
source
on
the
left
over
here
and,
like
you,
want
to
add
a
comment.
So
I
can
view
this
out
right
here.
B
B
So
it's
really
synchronized
and
also
when
you
run
things,
maybe
I'll
reevaluate
this
on
the
right-hand
side
kind
of
flicker
on
the
left-hand
side,
because
it's
part
for
a
moment
it
deletes
everything
as
there's
no
output,
and
then
it
puts
the
output
in
like
that
kind
of
fun.
If
you
do
like
a
for
loop
for
I
in
range
10
print
a
time,
but
there.
B
E
B
Maybe
that
notes
important.
This
is
pretty.
B
E
B
E
B
D
B
B
Let's
see
some
other
things,
there's
a
search
and
replace
I
I
mean
it
really
did
go
through
all
these
things.
You
have
and
try
to
implement
them.
So
here's
a
search
and
replace
so
I
use
the
same
more
or
less
the
same
icons,
I
think
so.
But
what
I
did
lightly
differently
is
I.
Have
it
show
the
input
below
of
the
entire
document?
And
then,
when
you
do
a
search,
it
highlights
exactly
what
matches
where,
as
your
search
and
replace
shows
one
line
for
every
match.
B
E
B
E
B
E
B
Yeah
like
yeah
like
that,
wasn't
yeah.
Hopefully
it
feels
similar
so
like
if
you're
here,
I
always
made
it
refocus
to
find.
If
you
click
one
of
the
buttons
I
don't
know.
Hopefully
it's
close
enough.
I
mean
like
my
goal,
is
that
people
can
switch
back
and
forth
and
they
don't
feel
like
they're
using
something
that's
completely
different,
probably
switching
between
Jupiter
and
interact,
which
are
very
different,
no
offense
to
Kyle
or
Jupiter
labs,
even
which
is
a
lot
different
and
then
okay.
B
B
Think
it
made
some
calm,
I've
made
a
bug
report
and
the
official
Jupiter
repo
about
the
tagging
tool
barks.
It
had
some
funny
aspects
to
it.
When
you
make
I
was
just
testing
things
like
making
a
very
large
number
of
tags
and
then
it
kind
of
broke
really
badly
the
official
ones
so
I
made
a
report
about
that.
It
ends
up.
Do
the
exes
don't
appear
anymore
and
things
just
kind
of
run
off
to
the
right?
B
Maybe
nobody
tested
that
case
or
something
so,
let's
suits
our
thought
and
then
yeah
I
did
attachments
as
well,
except
wait
so
yeah
so
attachments.
You
need
to
embark
down
cell
I'm
struggle
of
some
markdown,
so
foo
actually
escaped
work
down.
Okay,
so
you
have
a
markdown
cell.
Then
you
can
do
edit
insert
images
except
so
we
have.
We
already
have
the
reaction
point
it
for
drag
and
drop
so
use
that
instead,
but
otherwise
it's
and
I
again
I
tried
really
hard
to
make
everything.
You
know,
file
format
compatible
and
look
the
same.
B
It
centers
it
in
the
same
way,
I
also
looked
up.
Crap
that
looks
paragraph
oh
wow
I
see
alright.
It
inserted
the
image
directly
in
the
title,
which
is
kind
of
funny,
and
I
also
did
that
I
looked
at
your
code
for
how
you
do
the
paragraph
P
that
appears
and
inker
links
and
copy
that
exactly
as
well.
So
one
of
the
things
you're
really
compatible
for
delete
attachment.
You
have
this.
B
B
See
that
that
in
when
I
was
glancing
through
the
source
code,
I
noticed
that
there
was
garbage
collection
like
that.
I
didn't
implement
that
because
I
was
a
little
unsure
about
it,
but
I
think
I
should
probably
implement
it.
The
other
thing.
E
B
E
E
B
Because
I
was
just
I
mean
yeah,
so
I
have
this
command,
I
unified
the
shortcuts
and
the
list
of
commands.
Yeah
so
I'll
add
one
file.
It
has
a
JavaScript
object
with
all
the
commits
games
and
I
try
to
name
them
the
same
as
you
have
them
names
like
the
underlying
string,
the
names
the
command
in
case
those
are
used
in
plugins
or
some
of
them
gently
used
by
yon.
B
You
can
search
this
and
then
it
shows
you
all
the
things
that
match
and
then
you
can
click
on
them
to
run
the
command
and
it
has
the
keyboard
shortcut
listed
so
I
wanted,
because
if
you
have
like
two
different
things,
one
is
for
keyboard
shortcuts
when
it's
for
those
to
come
out,
but
they
really
kind
of
didn't,
really
need
to
be
too
different
and
I
was
a
lazy
in
the
figure.
That's
when
continual
today.
E
B
E
B
E
A
B
So
if
I
were
to
view
one
of
these
well
well
it
suffice
it
to
say:
there's
a
different
renderer
for
notebooks,
which
is
like
env
viewer,
but
it's
entirely
client-side
and
it
uses
code
near
static,
rendering
mode
via
react.
I
turn
that
off,
though,
because
I
wanted
to
get
line,
numbers
and
million
other
things
too.
B
E
You
reach
a
small
UI
shoe
and
that
might
be
confusing
for
users
if
you
click
on
the
file
menu,
especially
on
Matt,
because
you
don't
have
the
scroll
bar
and
you
may
not
realize
that
you
can
scroll
you
scroll
it
and
see.
What's
after
because
then
you
have
a
mouse,
and
you
see
the
scroll
bar
there
on
my
computer
I,
don't
see
that
I
have
all
the
like.
B
If
you're
like
I,
don't
know
that
you
are
a
ski
there's,
a
default
setting
on
Mac,
which
is
don't
show
scroll
bar
unless
you're,
scrolling
and
I
have
it
set
to
always
should
scroll
bar.
But
most
people
talk,
because
if
you
fall,
it's
not
do
that.
I
totally
agree
again.
Using
these
the
way,
the
menus
work
with
two.
B
E
B
E
B
E
B
There's
an
about
page
all
right,
which
is
similar.
It
gives
information
about
the
server,
but
the
server's,
just
a
single
nodejs
process
using
spawn
interact,
I
mean
it's
all.
It's
actually
for
all
the
different
kernels
running
and
in
fact,
for
the
entire
kind
of
back
end
of
a
project.
It's
all
one
process
or
any
other
go
gs1.
B
This
just
says
something
about
that
and
there's
some
text
in
there
that
tries
to
talk
about
the
relationship
between
what
I've
written
here
and
I
mean
I,
want
to
make
it
very
clear
that
this
isn't
something
that
the
official
Jupiter
project
produced.
So
I
write
it's
a
complete
open-source
rewrite
by
stage
now
think
of
the
Jupiter
notebook.
So
you
know
users
won't
be
confused
in
that
regard,
but
if
you
want
me
to
change
the
wording
in
some
way,
let
me
know.
B
B
D
D
A
B
Good
news
I
mean
just
a
new
code
to
implement
this,
not
counting
all
the
stuff
that
it
you
know
depends
on
is
like
10,000
lines
of
code,
probably
I
mean
not
surprisingly,
to
jupiter
notebooks
of
pretty
mature.
You
know
web
application
that
you
guys
have
been
working
on
for
like
six
years
at
least
and
there's
lots
of
people.
So
it's
pretty
deep,
there's
a
lot
there.
So
it's
just
a
lot
of
work,
clogging
through
the
amount
that
I
slog
through
and,
of
course
I
missed
a
lot
of
things.
C
B
Know
if.
B
I
mean
might
might
hope
for
the
Jupiter.
You
know
straight
communion
project
whatever's
just
to
really
embrace
the
idea
there
being
many
different
clients
and,
just
like
you,
have
lots
of
kernel
to
play
NASA's
strengths
of
maybe
I'm
going
to
switch
out
of
my
screen
sharing
because
I
don't
realize
my.
B
My
main
political
point
would
be
to
say
that
one
of
the
massive
strength
of
the
project
is
as
I
get
out
is
change
Scott
sharing,
so
one
of
the
big
strengths
of
the
project
is
all
the
kernels,
and
it's
pretty
well
documented
how
to
write
a
kernel.
It
would
be
cool
if
the
documentation
around
writing
a
client
was
sort
of.
B
It
was
really
encouraged
to
write,
alternative
clients
and
remotely
well-documented,
and
you
know,
like
the
website,
listed
different
Jupiter
clients
like
interact
and
kokal
stupider
notebook
and
the
one
that
you
have
and
so
on,
and
then
Jupiter
lab
is
yet
another
one
I
mean
just
throwing
that
out
there
Dada
it
very
cool.
Yeah
I
mean
it's
really
good.
Having
lots
of
clients
right,
I
mean
I
hope.
B
D
C
So
it's
one
of
the
reasons
so
I
was
looking
at
the
Jupiter
Scala,
so
he
did
a
presentation
and
he
said
the
reason
that
he
didn't
put
more
effort
in
this
f1.
What
did
he
like
that?
There
were
multiple
front
ends
right
is
that
people
can
avoid
that
hydrogen
or
whatever,
and
so
for
him
I
was
like
okay
cool,
like
I,
can
just
work
on
the
kernel.
B
E
B
Just
to
do
it
even
some
links
like
you
know,
you,
google,
for
a
Jupiter
message
protocol
and
you
get
a
you
very
easily
find
a
very
readable
and
a
nicely
short
really
document,
and
it
does
make
a
lot
of
sense.
Clearly
even
polished
pretty
well,
because
people
are
right,
kernels
have
to
understand
it,
but
then,
when
you
want
to
know
what
to
do
with
messages,
you
end
up
basically
having
to
look
at
the
source
code,
which
your
notebook
a
lot
just
a
few
yeah.
C
B
It
would
be
nice
to
just
have
like
a
to-do
list.
You
know
implement
these
meant
something
that
can
display
these
messages,
these
messages
etc,
and
then
maybe
all
right,
I'm,
just
you
know,
having
just
spent
two
months
being
on
the
side
of
implementing
things
and
you've
done
that
for
like
years,
would
interact
to
tell
that
would
be
useful.
I
sold
in
about
a
year
and
a
half.
You
know,
there's
a
lot
I
mean
you
miss
it
there.
How
did
you
figure
out
what
meditation.
A
B
C
No,
we
we
got
things
connected,
I
mean
I,
knew
the
format
well
enough
that
it
was.
It
was
more
like
yeah
I
would
slowly
like
every
week.
We
just
made
an
issue
for
each
additional
message
we
weren't
supporting.
In
other
words,
we
would
just
drop
them
like
right.
Now
we
don't
do
anything
with
history
right,
yes,
there's
like
no
UI
first
exposed
like
not
worth
it
for
us
to
go
after
it.
Only
recently
did
we
add
introspection.
C
Yeah
I
didn't
need
that
stuff
by
the
way.
Only.
C
But
the
basics
would
be
to
do
execution
like
you
really
only
need
I
mean
no
matter
what
all
front-ends
have
to
support
the
kernel
Intel
mm-hmm
or
like
they
should.
They
should
make
a
kernel
in
pull,
request
start
and
then
you
know
just
the
execute
input
and
then
all
the
different
types
of
output
that
can
come
back.
Yeah.
B
C
E
E
B
B
B
D
E
B
Yeah,
okay,
so
invite
what
it's
it's
ninja
in
line,
but
that's
because
I
haven't
implemented
anything
else.
I
think
I
can
figure
it
out
because
I'll
just
I
can
I
can
just
straight
to.
B
D
E
B
I
have
to
miss
as
far
as
I
knew
the
only
way
to
get
any
of
this
information
was
to
type
a
question
mark
or
a
double
question
mark
and
hit
shift,
enter,
evaluate
it,
and
it
suddenly
have
something
pop
up
in
the
bottom,
which
seems
like
an
incredibly
bad
UI
and
okay.
It
should
tap
great
but
I'm.
So,
yes
to.
E
G
E
B
Me
write
like
the
mouse.
Yes
right,
I,
remember
something
that
at
all
yeah.
You
have
to
type
the
whole
thing
in
until
the
ink
search
and
even
then
it
does
nothing
yeah,
there's
yeah
you're
right,
it's
ironic,
says
something
involving
the
keyboard
can
be
used
with
the
keyboard.
Yeah,
it's
okay!
It's
okay,
yeah.
E
B
B
What
wins
your
launch?
Our
plan
is
to
launch
the
first
version
this
weekend.
I
think
it's
good
enough
to
replace
what
we
currently
host
given
that
extension,
don't
there's
no
way
to
use
extensions
right
now
with
the
notebook
as
we
host
it,
for
example,
because
as
the
order
in
which
things
could
start
it
up
in
the
environment
and
so
on,
so
people
aren't
using
them.
Therefore,
they're
not
going
to
complain
about
the
lack
of
them
beyond
the
complaint.
It's
already
giving
us
so
we'd
have
to
worry
about
extensions
too
much.
B
B
E
F
C
B
B
B
B
B
G
B
G
B
Where
am
beautiful,
chess
is
incredibly
powerful
and
useful.
In
my
experience,
like
the
real-time
synchronization
of
a
distributed,
object
basically
is
I
implemented
that
using
just
normal
objects
and
then
I
reemployment
it
using
immutable,
and
it
was
much
much
better
so
easier
to
do
certain
things,
but
I
mean
there's
also
three
senators,
two
mutable
yeah.
C
And
I
had
looked
at
some
of
those
too.
You
know
who
will
be
going
along,
it's
just
it
did
it
drag
native
and
I
cared
about
slow
definitions,
because
I
now
that
I
heavily
typed
with
slow
I
just
wanted
the
immutable
definitions
get
better,
especially
because
they,
like
records
alone,
I
wanted
to
have
sold
typing
for
mmm-hmm.
F
C
C
B
B
But
you
know
pretty
nice
so.