►
From YouTube: Clojure visual-tools meeting 12: Data Rabbit
Description
In this Sep 9nd, 2022 meeting of the Clojure visual-tools group, Ryan Robitaille presented Data Rabbit and discussed it with a group of tool makers and users.
https://datarabbit.com/
Summary: https://clojureverse.org/t/clojure-visual-tools-meeting-12-summary-video-data-rabbit/
Text chat: https://clojurians.zulipchat.com/#narrow/stream/313390-visual-tools/topic/meeting.2012
A
Hello,
this
is
meeting
12
of
the
visual
tools
group,
where
different,
tooling
creators
and
users,
collaborate
on
closure,
visual
tools
and
today,
we'll
have
ryan
talking
about
data,
rabbit
and
we'll
begin
by
introducing
ourselves.
So
maybe
each
one
of
us
will
just
tell
a
little
bit
something
and
and
yeah,
maybe
mauricio.
Would
you
like
to
tell
about
yourself,
even
though
you're
famous
sure,
okay,
so
I'm
mauricio?
I
work
mostly
in
clojurescript
now
we
used
to
be
like
a
closure
developer
mostly,
but
now
it's
almost
everything.
Enclosure
is
good.
A
I
currently
am
maintaining
chlorine
for
the
atom,
editor
and
clover
for
the
visual
for
the
vs
code
editor
and
also-
and
that's
the
big
thing
I
am
also
maintaining
a
fork
of
atom
currently,
which
means
I
have
so
much
work
to
do,
to
try
to
modernize
and
avoid
the
editor
being
killed
by
microsoft,
but
anyway
yeah.
That's
me.
B
Sure,
hey
guys,
I'm
santiago,
I'm
a
data
scientist
working
in
berlin.
I
work
mostly
with
r,
but
I've
done
a
couple
of
things
in
closure
and
we
are
currently
building
up
our
machine
learning
team
with
a
closure
base.
So
we
are
still
doing
like
the
data
science
part
actually
in
r
and
some
python
stuff,
but
we
want
to
start
deploying
and
doing
all
of
the
things
surrounding
the
data
science
bits
in
closure
just
as
a
base
to
then
launch
like
a
full
closure
implementation.
B
So
I
think
this
is
my
first
time
in
this
visual
meeting.
I'm
really
looking
forward
to
the
rabbit
peter
rabbit,
because
the
stuff
on
twitter
was
awesome,
gave
me
a
lot
of
ideas.
A
Oh
never
mind
I'll
I'll.
Ask
you
a
bit
later:
yeah
adham.
Would
you
tell
about,
except
I'm
a
data
analyst
with
a
background
in
finance?
I
work
with
r
and
shinee
to
make
interactive
dashboards
and
I
started
learning
closure
recently
and
I'm
also
getting
into
the
community
and
just
falling
in
love
with
closure
and
the
ecosystem
happy
to
be
here.
A
A
Oh
yeah,
yeah,
hello,
I
think
we
we
talked
earlier
so
hello
and
maybe
daniel
schmulevich
too.
A
A
Oh
sorry,
would
you
like
to
tell
anything
else,
daniel.
A
A
Yeah
and
michael.
Would
you
like
to
tell
us
something:
I've
been
watching
the
the
invites
go
by
for
the
data
science
and
visualization
related
stuff,
for
it
feels
like
years
now,
and
this
is
just
the
first
one
I've
attended.
I
want
to
do
more
in
this
space,
but
I
haven't
been
able
to
get
enough
time
from
doing
back-end
work
to
doing
beautiful,
visualization
type
things.
So
this
is
exciting
for
me,
exciting
yeah,
thank
you
and,
and
maybe
I'll
tell
about
myself,
I'm
daniel
as
well.
A
A
Hi
yeah
I've
just
been
kind
of
following
everything
on
slack
and
read
it
it's
the
first
meeting
I've
been
to,
but
I've
watched
several
meetings
and
I'm
particularly
interested
in
these
kind
of
you
know
more
notebook
kind
of
visualized
environments
and
something
that
enables
direct
manipulation
for
like.
A
C
Yeah
hi
chris
small
here
living
in
seattle
and
do
work
with
closure
and
other
data
science
kind
of
tools
applying
applying
data
science
towards
deliberative
democracy.
C
So
have
a
have,
a
non-profit
that
that
does
this
work
and
if
anyone's
looking
to
reply
their
their
closure
toolkit
towards
some
cool
problems
for
the
public
good,
then
you
know
feel
free
to
reach
out
to
me,
but
in
the
closure
space
work
on
some
tools
that
I
can
use
some
in
my
work
and
you
know,
use
some
other
kind
of
past
projects
and
stuff
data,
visualization
and
kind
of
notebook,
environment,
tooling,
called
oz,
yeah
sort
of
it's
always
a
little
bit
hard
to
describe
because
it's
a
little
bit
of
a
swiss
army
knife,
but
that
that
sort
of
vision
is
growing
and
evolving
and
yeah.
C
I'm
really
excited
to
see
some
of
the
the
stuff
that's
going
on
today,
because
there's
there's
yeah,
there's
just
so
much
cool
visual
kind
of
stuff
happening
in
the
closure
community.
It's
it's
all
very
inspiring.
A
D
Sounds
good
well,
thank
you
for
having
me
it's
great
to
have
you
guys
here
on
this
beautiful
friday,
I'm
currently
in
florida
previously
in
new
york
and
the
bay
area,
just
just
kind
of
old
or
mostly
east
coast,
guy,
on
the
u.s,
so
long
time,
data
engineer,
business,
intelligence,
dashboard,
hacker
dash,
jockey,
you
know.
Basically,
my
job
always
consists
of
collect
a
bunch
of
things,
answer
a
question
and
communicate
that
to
other
humans.
Right
I
mean
that's
what
dashboard
names
down
to
so
always
been
obsessed
with
tools.
D
Help
me
do
that
ryan.
You
brought
up
direct
manipulation
like
something
I'm
really
into
because
in
terms
of
like
you
know
how
much
of
how
much
of
data
communication
is
art
you
know,
and
how
much
is
science
like
there's
a
whole
lot
of
mix
there,
so
I
don't
know,
I'm
just
jump
into
things,
sound
good,
all
right!
D
Well
actually
hold
on.
Let
me
just
I
have
it
zoomed
out,
because
I
can
zoom
I
can
zoom
with
the
canvas.
So
let's
try.
D
Let's
try
this
and
if
it's
unreadable,
let
me
know
I
know
so,
I
have
a
I
have
a
slide
deck.
It
too
is
written
in
in
rabbit,
but
we're
not
gonna
go
over
it
because
slide
decks
are
really
boring.
This
whole
thing
is
on
the
website.
If
you
want
to
check
it
out,
it's
just
a
flow
that
reads
a
map
and
then
draws
the
slide
deck
with
some
some
weird
formatting.
D
So
what
I'm
going
to
do
instead
is
over
here
I'm
going
to
kind
of
go
through
a
real
example
of
a
dashboard.
You
know
flow
in
rabbit
that
uses
closure
and
close
your
script
blocks
just
real,
quick
and
then
we're
going
to
go
to
a
total
blank
slate
go
over
the
interface,
all
the
different
features
and
all
the
panels
and
all
the
stuff
that
comprises
like
the
ui
right,
maybe
make
a
small
dashboard
in
real
time
there
and
then
go
into
some
deeper
stuff
like
using
an
external
reply.
D
I
have
some
other
rebels
here
with
running
like
in
canter,
and
you
know:
data
set
ml
and
some
other
stuff
which
may
be
bad
for
this
audience
so
good
for
those
audience.
So
all
right.
So
let
me
just
jump
into
my
other
flow
here
should
be
some
of
you
have
seen
this
apologies
here.
We
go
all
right,
so
this
is
a
small
dashboard
that
reads
from
a
sql
light
file
that
is
ships
with
the
tool
we
can
get
rid
of
this
guy.
It's
basically
based
on
bigfoot
sightings
right.
D
It
has
a
dashboard
and
very
straightforward.
You
know
it
has
a
result
set.
It
has
some
graphs.
I
can
filter
on.
Let's
say
I
choose,
you
know
kentucky
and
it
rewrites
the
sql
query
gets
kentucky
sends
it
all
these
different
blocks,
re-renders
it.
You
know
how
it
wants
to
here.
Here's
a
here's,
a
little
detail
pane
and
I
click
on
the
detail
pane.
I
can
see
the
story
of
the
bigfoot
sighting
in
this
data
set.
You
know,
here's
over
time,
another
filter
here
different.
You
know
they
have
different
classes
of
sightings.
D
D
You
know
all
states,
et
cetera,
so
not
too
excited
in
the
dashboard
front,
but
you
can
see
in
the
background
you
know
this
is
what
makes
it
work
right,
both
blocks,
that
it's
rendering
and
blocks
that
it's
not
rendering
there
are
some
things
that
are
here
just
for
reference,
like
you
know,
here's
here's,
a
website
of
the
group
that
you
know
collated
this
data
that
I
that
I
didn't
totally
scrape
from
their
website.
A
Ryan
I'll
stop
it
for
a
moment.
There
is
some
clicking
sound,
something
like
hissing
around
you.
I
I
don't
know
what
it
is,
but
maybe
something
on
the
table,
I'm
not
sure.
So,
just
if
you
know
it
is
not
much
of
a
trouble,
but
maybe
if
you
know
what
it
is
then
yeah.
D
I
was
hoping
that
it
would
get
canceled
out
with
the
zoom
stuff,
but
sorry
about
that.
D
So
so,
basically
like
I
said
this
is
a
dashboard.
This
is
all
it's
parts.
This
is,
you
know,
there's
code
of
each
I'm
going
to.
D
But
just
as
an
overview,
you
know
the
code
of
each
of
these
blocks.
You
know
like,
for
example,
if
I
select
this
query,
I
can
see
that
it
it
it.
It
takes
in
a
jdbc
connection,
some
parameters
and
it
spits
out
its
data
to
all
these
different
other
blocks
right,
which
then
draw
a
graph
et
cetera.
It's
kind
of
like
that
spatial
way
of
looking
at
things.
So
so
so
I
guess
after
that,
intro
you
know
so.
So
what
is
rabbit
right?
D
So
this
is
a
closure
group,
so
I
I
guess
I
can
pretty
much
say.
Think
of
it
as
like,
a
like
an
interconnected
whiteboard
of
data
focused
rebels
right
local
first,
you
know
canvas
based,
you
know,
spatially
oriented,
we're
gonna,
call
it
flow
based.
D
So
I
can
either
use
atoms
or
say:
hey,
render,
render
or
process
evaluate
this,
and
then
I'm
going
to
send
that
to
this
other
arbitrary
thing,
it
doesn't
need
to
know
anything
about
the
first
block
right
in
that
kind
of,
like
you
know,
1970s
flow-based,
programming,
kind
of
way,
but
atoms,
which
we
all
know
and
love.
You
know
operate
the
same
way
because
it's
the
same
concept.
Basically,
let's
see
here
yeah.
D
We'll
get
to
in
a
minute
something
that
I
want
to
say
is
it's
also
a
true
rebel
right.
There's
the
bootstrap
closure
script
and
then
there's
the
closure
rebels.
D
There's
not
a
whole
lot
of
I
mean
there's
some
sugary
stuff
here,
obviously
with
the
ui,
but
I
wanted
to
make
sure
that,
at
the
base
level
of
all
these
things
is
always
just
closure
code
like
no
like
magic,
rabbit
functions
that
does
this
and
that,
because
that's
kind
of
what
I
was
trying
to
get
away
from
right,
like
my
whole
career,
came
up
in
my
database
tools.
D
Ones
I
built
myself
and
then
things
like
you
know:
sql
server,
reporting,
services
and
tableau
and,
like
click
view
and
like
micro
tragedy
and
like
all
these
things,
and
they
let
you
do
a
lot
of
cool
stuff,
but
you're
always
limited
by
this,
like
glass
ceiling
of
what
they've
allowed
you
to
do
in
their
proprietary
environment,
and
I
always
kind
of
wanted,
especially
after
seeing
some
of
the
brett
victor
stuff
years
ago.
D
I
always
wanted
a
tool
that
allowed
me
to
do
that
kind
of
thing,
but
generate
code
that
I
can
then
fork
and
do
other
stuff
with
right
and
don't
box
me
into
your
proprietary,
like
windows.
So
it's
kind
of
like
it's
kind
of
ironic
that
I
started
this
whole
thing
off
wanting
to
make
kind
of
a
super
set
like
you
know,
metabase
like
drag
and
drop
dashboard
builder.
D
You
know
the
dashboard
builder
of
my
dream
so
to
speak,
but
as
I
did,
I
did
the
idea
over
and
over
again
I
needed
so
much
flexibility
and
customization
that
eventually
turned
into
a
full-blown
like
basically
an
ide
right
where
in
the
skin
of
a
data
tool,
or
vice
versa.
So
if
that,
if
that
makes
any
sense
right
so
yeah,
so
let's
go.
Let's
go
into
this
interface,
so
we've
seen
some
stuff,
I'm
sure
everyone's
confused
totally
makes
sense.
Let's
go
to
I'll
go
to
browser
here.
D
I
will
just
go
to
we'll
just
go
to
blankflow.
Okay,
so
so
here
is,
is
the
canvas
right.
You
know
I
have
I'm
using
and
and
there's
the
there's
docs
on
as
the
website
and
I'm
using
space
to
like
zoom
into
the
canvas
zoom
out.
I
can
turn
panels
on
and
off.
This
is
my
palette.
This
is
a
list
of
blocks
that
exists.
We
have
none,
there's
no
editor,
because
there's
no
there's
no
blocks
here.
D
D
So
the
editor
is
where
most
of
the
cool
stuff
happens
right
so
on
first
glance,
pretty
straightforward
right.
You
have
a
you
know
a
little
code,
mirror
instance
here
and
we
can
type
stuff.
You
know
and
it
evaluates-
and
that's
all
good.
But
the
interesting
thing
about
this
is
that
it's
kind
of
configurable.
So
I
can
say
maybe
I
want.
A
D
A
Maybe
zoom
in
a
little
bit,
if
you
could,
for
the
code.
D
So
with
the
editor
we
have,
you
know
your
text
input,
you
have
your
output,
but
you
see
it
says
out
auto.
So
what
happens
is
when,
when
anything
gets
evaluated,
it
could
be
a
data
structure,
it
could
be,
could
be
hiccup,
it
could
be
a
visualization,
it
gets
evaluated
and
it
just
looked
at.
What
is
this?
How
can
I
display
it?
So
in
this
case
it's
a
string,
so
the
out
auto
is
essentially
this
fancy
little.
You
know
this
is
a
string,
but
I
could
also
say
show
it
as
text.
D
You
know
I
can't
show
it
as
a
map
or
anything
else,
but
you
know
kind
of
like
I
want
to
see
the
same
thing
as
many
ways
as
possible.
You
know
I
want
to
so.
In
addition
to
having
the
spatial
layout
of
things,
I
want
to
be
able
to
see
all
my
blocks
and
understand
them
on
their
own
in
ill
chords.
So
you
know
this
can
be
auto.
This
could
be.
This
can
be
text.
I
can
go
to.
D
Let's
do
some
other
data
types
here
we'll
go
to
this
screen
so
again
a
string
here
we
have
a
vector,
and
you
can
see
it,
it
draws
it
in
a
nice
little
map
box.
Here
you
know
again
it
could
could
be
text
or
soto.
You
see
I'm
displaying
in
the
editor
and
also
displaying
on
the
canvas.
I
could
also
say:
hey
on
the
canvas,
show
the
text
and
it
shows
the
text
there.
It's
just
whatever
you
need
to
to
visualize.
You
know
you
should
be
able
to
do
that.
D
Here
is
a
vector
maps
of
uniform
maps.
You
know
which
I
use
a
lot
in
doing
visits
and
stuff
and
coming
out
of
sql
so
get
visualized
as
like
a
v
table.
You
know
like
a
row
like
a
grid.
It
could
also
be
you
know,
text.
It
could
also
be.
Let's
pretend
it's
a
map
and
then
it
looks
like
a
vector
of
maps
except
in
this
non.
You
know
this
non-grid
style
and
you
notice
how
the
colors
is.
There
are
different.
I
try
to
keep
it
very
consistent
right.
D
Vectors
are
blue
strings
are
yellow
row.
Sets
you
know
row
sets.
Are
green
and
you'll
see
that
all
through
the
app
you
know
whether
it's
from
pulling
a
block
to
another
block
or
the
outline
of
the
block
itself,
so
I
try
to
keep
the
data
types
really
consistent
because
you
know,
while
closure
is
a
dynamic
language,
you
know
it's
super
important
when
I'm
having
stuff
coming
in
and
out
of
my
block
that
I
know
what
it
is
without
having
to
like
look
at
it
too
hard.
D
D
This
is
a
map
I
can
make
the
map
as
bizarre
as
I
want-
and
you
know
I
have
this
like
recursive
map
viewer
here,
which
should
show
it
or
you
know
you
can
always
just
see
the
text
if
you
want,
but
you
know
this
is
important
because
so
much
of
what
we
do
deals
with
you
know
pulling
apart
maps
and
looking
at
maps
and
trying
to
like
dissect
them,
and
while
this
kind
of
view
may
look
strange
at
first,
it's
it's
actually
I
talking
to
a
second,
it's
super
helpful
again.
D
So
here's
here's
a
hiccup,
you
know-
and
it
says
oh,
this
is
this
is
hiccup,
so
I'm
gonna
run
this
as
a
render
object,
and
then
you
know
there
it
is,
and
it's
just
an
image
from
you
know
online
buffy,
the
vampire
slayer,
but
you
know
that's
the
that's
the
kind
of
idea
right
write.
Whatever
code,
you
want
we'll
figure
out
what
it
is
and
we'll
try
to
show
it
to
you
in
as
many
ways
as
possible
right
so
back
to
the
map.
D
So
now
we
get
into
some
like
tricky
kind
of
stuff
right.
So
I
mentioned
earlier
direct
manipulation
and
code
starters
like
helping
me
down
my
path
right
help
me
get
where
I
want
to
go,
but
don't
force
me
to
do
it
the
way
you
want
to
right.
So
this
is
a
map.
You
know
we
deal
with
tons
of
maps
really
common
things.
I'd
be
like,
oh
okay,
so
I
want
to
do
this.
Let's
do
a
get
in
and
do
blah
blah.
Well,
that
happens
so
often
right.
D
If
I
really
want
this
this
key,
this
tt
key,
I
don't
really
care
how
deep
it's
nested.
I
want
to
say
well
just
give
me,
you
know
just
give
me
this
key
and
I
just
drag
it
out
there
and
I
generate
to
get
in.
You
know:
m4
tt,
whatever
the
arbitrary
depth
is,
and
I
want
this
go
over
there
and
again,
you
know
it's
nothing
super
fancy.
You
could
totally
do
that.
D
D
Let's,
let's
look
at
this
like
okay,
maybe
I
want
that
and
maybe
I'm
just
going
to
get
rid
of
this,
and
you
know
what
I
mean
like
just
kind
of
like
keep
keep
flowing
with
what
I'm
doing,
and
this
will
lead
to
other
things
and,
as
you
can
see
here,
we
have
you
know
we're
doing
our
get
in
front
parameter.
You
can
see
the
input
is
that
original
map
and
the
output
is.
You
know
what
I'm
doing
if
I
were
to
drag
this
out.
D
It
sends
itself
by
default
because
it
doesn't
know
anything
else
and
then
now,
I'm
looking
at
you
know,
output
input
and
you
see
the
the
hover
highlighting
just
trying
to
make
sure
that
when
you're
looking
at
a
piece
of
code,
you
always
have
the
context
surrounding
it,
just
whatever
you
need
to
do
to
get
to
get
the
job
done
right.
D
So
more,
oh,
I
should
have
mentioned
about
the
panels,
so
these
so
editor
panel
preview
panel.
So
I
I
grew
up.
You
know
I've
been
playing
pc
games
for
a
long
long
time.
You
know,
since
they
were
really
kind
of
a
thing
and
my
left
hand
is
always
on
and
let
me
know
if
anyone
else
is
like
this,
my
left
hand,
no
matter
what
I'm
doing
is
almost
always
on
wasd
and
shift
and
space
bar
right.
It's
like
it's
like.
D
Quake
all
the
time
so
I
have
I
can
just
turn
on
and
off
all
these
panels
doing
it
that
way.
You
know
I
can.
I
can
zoom
in.
I
can
do
this.
I
it's
kind
of
like
you
know
a
keyboard,
mouse
kind
of
thing.
It
might
not
be
everyone's
cup
of
tea,
but
I
find
it
so
nice
to
be
able
to
like
switch
on
the
interface.
It's
like
I'm
using
it's
like
you
know,
quake
quake
plus
emacs.
I
don't
know
anyways,
that's
that's
down
here.
D
D
Memory
should
be
more
editor
and
less
and
less
doom
and
quake,
but
yeah,
I'm
totally
with
you.
C
D
Very
true
for
better
or
worse
so
so
we
have
some
maps
here
and
that's
cool
and
that's
you
know
nothing
too
super
exciting.
So
here
we
have
just
a
vector.
You
know
a
range
of
strings
right
again,
nothing
too
epic,
but
here
we
get
into
like
some.
I
want
to
do
as
much
direct
manipulation
as
I
can,
where
it
makes
sense.
You
know,
because
it's
hard
because,
like
the
tool
is
made
to
process
arbitrary
code,
so
it's
difficult
to
be
like
well.
I
can
build
a
special
this
way.
D
So
by
default
it
can
it
can
modify
pixel
values.
You
know
a
big
css
thing
numbers
integers,
so
I
could
say:
okay,
here's
range
eight.
You
know
I
can
just
highlight
that
eight
and
say:
well,
it's
an
integer,
so
you
know,
let's
just
scrub,
eight
and
just
see
what
feels
right.
You
know
like
that.
Maybe
it
should
be.
D
Maybe
it
should
be
a
six
okay,
that's
and
I
can
change
the
max
values
here
and,
as
you
can
see,
kind
of
like
cheeky
as
I'm
scrubbing
it
you
can
see
underneath
it
replaces
it
with
an
internal
atom
and
then
gets
rid
of
it
for
the
actual
value,
so
cheating
when
I'm
cheating
in
a
very
closure
way
right.
So
you
know
that's
kind
of
scrubbing.
I
can
also
highlight
anything
and
right
click
to
evaluate
it
kind
of
like
light
table.
So
I
right
click
on
range.
D
Seven,
like
I
can
say:
oh
it's
a
list
of
seven
things
like
that.
That's
awesome
and
that's
not
limited.
You
know
I
can
highlight
this
whole
thing
and
right
click
and
it
gives
me
the
same
output
as
this
would
because
it's
just
evaluating
that
snippet,
you
know.
Maybe
if
I
look
at
this
string,
it
shows
me
yo
doesn't
know
what
I
he
doesn't
know
what
I
is,
but
that's
that's
all
well
and
good,
and
this
may
seem
this
may
seem
like
kind
of
kind
of
silly,
but
you'd
be
surprised
at
how
nice.
D
This
kind
of
thing
is
for
doing
data
vis
or
tweaking
certain
things
just
being
like.
I
just
want
to
change
that.
I
don't
want
to.
I
don't
want
to
have
to
type
my
left
hand
I
just
want
to
like
do
something
on
the
right
hand,
it
gets,
it
gets
really
handy
and
we
can
get
even
more
complicated
there.
Well,
let
me
just
paste
in
like
an
extension
of
that,
so
this
is
basically
the
same
thing
except.
Oh
sorry,
the
big,
the
big
font
is
making
it
making
it
a
little
big.
D
This
is
basically
the
same
thing,
except
I'm
I'm
doing
the
vector
I'm
making
flexbox
flexboxes
with
recom
right
and
then
putting
that
in
a
vertical
box.
You
know
same
same
kind
of
thing
in
this
case.
I'm
doing
a
range
12.
You
know
I
could
say
I'll
do
you
know
ranch
eight,
the
padding,
maybe
I
wanted
the
padding
to
be
a
little
more
or
a
little
less.
You
know
I
just
kind
of
like
figure
out
what
I
want.
You
know
what
what
color
are
these
boxes?
D
Maybe
that
pink's
a
little
you
know
bad.
I
can
go
over
here,
shoes
or
stuff.
You
know
the
very
common
things
we
change
doing
like
css
maps
and
stuff.
Although
the
stuff
that
I
built
all
the
time,
I
wanted
to
make
it
easy
to
just
change
right,
so
not
only
that,
but
I'm
using
I'm
using
an
atom
here
right.
D
So
I
click
you
see
as
I
click
it
change
that
from
nail
to
an
integer,
that's
because
the
output-
oh,
I
should
have
changed
this
before
so
the
output
is
actually
this
atom,
so
normally
the
output
of
a
block
would
be
itself
right.
So
I
drag
this
out
and
I
get
myself
and
it's
notice-
it's
not!
It's
not
re-evaluating
this.
It's
actually
just
sending
over
the
the
pre-compiled
closure
script
and
just
running
it
but
anyway.
So
so
I
have
my
atom
here
and
I'm
clicking
on
things
and
changing
that
atom.
D
I
can
open
up
this
panel
and
it
sees
that
I'm
using
that
I'm
drafting
or
that
I
defined
an
atom
in
this
in
this
block,
so
it
allows
it
as
part
of
my
editor,
so
I
can
say
all
right.
Let
me
change
this
flow.
Let
me
change
to
this
layout
right
on
my
code.
Here
I
want
to
output
my
I
want
my
output
here
and
let's
just
put
this
atom
in
this
box
right.
D
So
now,
as
I'm
working
on
my
block,
you
know
I
have
access
to
that
atom
and
I
can
see
it
down
there
in
the
corner
and
and
that's
you
know,
super
super
helpful
right.
It
can
read
it
right
from
right
from
this
name
space
so
where
this
gets
interesting.
Is
that
remember?
I
said
when
I,
when
I
send
out
a
block.
It
sends
itself
because
generally
blocks
are,
you
know,
looking
for
data
structures
or
or
the
viz
is
like
the
end
result
of
data
structures.
D
D
D
So
now,
as
I
click
on
it,
you
know
it
changes
it
changes,
it
changes
the
atom
and
they
all
they
all
update.
So
now,
I'm
downstreaming
things
from
a
little
ui
thing
that
I
created
just
based
on
a
little
atom,
and
this
is
how
you
know
you
sliders
would
work
or
color
pickers
would
work,
and
this
is
a
contrived
example
for
sure,
but
I
think
you
can
kind
of
see
like
where
I'm
going
with
this,
when
you
put
all
these
things
together,
so
any
questions
on
that.
So
far,
it's
a
lot
of
stuff.
D
Cool
all
right,
so
I
did
the
scrubbing
oh
yeah,
also
with
the
the
scrubbing
I
was
talking
about,
it's
also
configurable
on
the
user
side
right.
So
if
I
have.
D
Right
if
I,
if
I
have
some
type
of
key
pairing,
remember,
I
said
I
can
use
pixel
values.
I
can
do
floats
integers,
true,
false,
very
simple
things
that
scrubber
can
do,
but
I
can
also
do
completely
arbitrary
things.
So
if
I
want
to
go
into
the
settings
here
and
say
key
value
pair,
so
this
is
literally
where,
if
it's
not
a
base
value,
this
is
where
it
reads
from
to
get
its
value.
So
if
I
want
to
say
you
know,
veggies
can
be.
You
know
this.
D
You
know
that,
oh
that
you
know
you
know
whatever
right,
and
I
run
that
then
I
should
be
able
to.
If
I
highlight
the
key
pair,
it
should
be
like.
Oh
okay,
this
is
veggie.
This
is
the
veggie
key
and
the
veggie
key
can
be
these
things
again
fairly
contrived,
but
you'd
be
surprised
that
doing
like
working
on
different
biz
libraries
and
different
things.
I
have
some
stuff
in
there
for
for
nevo
and
some
vegas
stuff,
but
just
working
on
different
things.
It's
amazing
how
how
nice
something
really
small
like
that
is
right.
D
So
configurable
scrubber,
number
scrubber,
you
get
all
that.
C
D
D
The
quake
league
and
three
hit
you
can
hit
tilde.
I
bring
up
the
settings
also,
and
you
know
I
have
some
couple
things
here-
that
I
might
that
I
might
get
to
but
yeah.
Basically,
this
is
this
is
the
the
base
map
it
uses
for
like
arbitrary
scrubbers,
and
it
essentially
just
ends
up
being
like
vectors.
You
know
of
things
I
think
especially
useful.
If,
like
you
know,
there's
a
certain
thing.
D
It
needs
like
a
color
scheme,
and
I
can
just
put
all
the
color
schemes
in
here
and
just
like
pick,
one
or
fonts
are
a
big
one
like
I
don't
want
to
type
that
all
the
time.
Anything
that
saves
time
right
and
it's
not
like
yeah
huge.
C
This
is
if,
if
this
is
not
the
right
time
for
this,
though
this
question
will
go
ahead,
but
I
I'm
really
interested
in
like
like
have
you
messed
with
taking
aspects
of
like
vegas
specifications,
say
and
kind
of
like
mapping
them
into
this,
so
that
you
could
almost
without
doing
any
work
start
messing
with
you
know,
building
composers,
for
you
know
kind
of
explorer
views
where
you're
able
to
construct
the
or
tinker
with
the
graphs.
C
I
mean
I
see
that
there's
already
some
kind
of
baked
like
directionality
in
that
gear,
in
the
way
that
you
can
like
turn
things
into
atoms
like
pretty
pretty
easily
and
and
do
things
that
way,
but
but
yeah
as
far
as
as
far
as
like.
What's
the
what's
the
vision
for
like
the
the
plug,
like
I,
I
don't
know
if
you're
gonna
build
in
this
stuff
kind
of
for
stuff,
like
vega
as
sort
of
a
part
of
the
base
package.
C
But
what
would
it
look
like
to
sort
of
extend
that
so
that
you
know
if
you
are
using
something
like
vega
or
just
forget
vega?
Let's
say
some
other.
You
know
visualization
toolkit
that
has
its
own
sets
of
options
like.
What's
the
do
you
see,
do
you
see
like
a
pathway
for
plugging
those
things
in
is
a
little
kind
of
extension
kits.
D
Yeah,
definitely
I
mean
vega
is
a
great
one,
because
so,
if
you
think
about
it
with
the
the
scrubber
like
looks
for
common
patterns,
understands
right
and
can
fill
in
the
gaps
right,
so
the
vegas
scheme
is
kind
of
similar.
I
could
definitely
see
like
some
type
of
builder,
that
just
spits
out
that's
because
you're
b
you're
not
like
hiding
anything
you're
spitting
out
what
is
the
vega
light
you
know
construct
or
the
code
and
it's
getting
rendered
so
yeah.
I
can
totally
that's
the
next
thing.
D
So
that's
on
my
radar
and
also
I
want
to
have
something
that
makes
it
easy
to
read
in
like
open,
open
api
schemas
and
do
calls
to
the
web
from
the
closure,
repo
or
just.
D
C
If
you're
thinking
about
that
one
one
thing
you
might
look
at
is
actually
just
whether
whether
it
makes
sense
to
read
directly
the
json
spec
specifications,
because
everything
in
vega
and
vega
lite
is,
is
in
a
json
spec,
and
that
would
enable
you
to
like,
if
you
could
ingest
that
and
do
as
much.
You
know
kind
of
intelligent
stuff,
as
you
good
with
it,
then
yeah.
I
think,
you'd
be
like
ninety
percent
of
the
way
there
yeah.
D
C
D
I
think
I
sent
you
some
like
some
nonsensical
stuff
about
layers
for
the
day.
Yeah,
I'm
totally
thinking
about
I'm
almost
thinking
about
having
I
don't
know,
I
don't
know
how
I
do
it.
I
know
whether
it
would
be
a
block
type
or
just
a
hey
like
like
like
clippy,
okay,
it
looks
like
you're
trying
to
hurt
a
vega
like.
Let's,
let's
go
to
vegas
studio,
you
know
I
mean
something
like
that
would
be
really
cool
and
I
don't
feel
like
it's
cheating,
because
I'm
generating
the
code
that
you
can
then
fork
right.
D
I'm
not
locking
you
into
like
some
box
right,
which
is
what
I
tried
with
all
this
kind
of
stuff,
but
yeah,
I'm
100
with
you.
So
on
that
note
talking
about
metadata
and
building
stuff,
let's
do
like
a
real
kind
of
thing
here.
A
I
just
had
a
quick
question
about
the
scrubbers:
is
that
something
you
could
extend
or
modify
if
you
want
a
different
kind
of
user
interface
or
visualization,
or
some
kind
of
picker
convenience
or
something
yeah?
I'm.
D
Trying
to
figure
out
the
best
way
to
do
that.
So
obviously,
with
this
you
know
this
is
super
simple.
Just
you
know
data
based,
but
I
would
love
to
have
so
I
I'd
like
to
keep
the
changes
user
space.
If
I
can
like,
I
would
love
to
have
a
certain
flow
that
has
all
your
functions
in
it
and
then
you
come
here
and
say:
hey
if
he
selects
a.
D
I
don't
know
a
dumb
example
like
an
hsl
caller
right.
I
don't
support
that
right
now,
just
hex
colors,
like
then,
hey
then
run
this
function
and
set
this
because
you're
just
using
closure
you're
not
using
like
any
esoteric
thing,
so
I
could
theoretically
say
hey
as
long
as
it
was
like
name
spaced
right.
It
would
totally
work
because
it
would
render
in
my
little
modal
box
and
you'd,
be
kind
of
off
and.
D
That
have
like
completely
esoteric
kind
of
components
right
that
other
ones
don't
have
and
share
them
back
and
forth,
and
if
we
get
to
it,
there's
a
cool
thing
I
can
do
with
I'm
doing
with
sub
flows
right
have
a
flow
that
does
something
and
then
import
that
flow
into
another
flow,
except
use
it
as
like
an
application
which
is
a
little
not
what
you're
talking
about,
but
kind
of
share
some
ideas
right,
but
yeah.
I
want
to
do
as
much
direct
motivation
stuff
as
I
can
so
for
sure.
D
D
So
if
I
drag
in
a
server
block,
so
this
is
a
closure
block,
say
you're
running
110
and
this
little
you
know
hello
world
box
here
like
we
saw
and
I
paste
in
a
jdbc
connection.
D
So
this
is
from
a
click
house
server
running
my
local
machine
and
it
says
it's
a
jvc
connection.
It
tries
to
connect
to
it
and
if
it
can,
it
pulls
the
metadata.
So
has
metadata
cool,
that's
not
too
exciting
right,
but
what
I
can
also
do
is
render
that
metadata
in
like
a
useful
way.
So
you
see
we
have
different
little
pills
here.
We
have
now.
We
have
a
new
one.
Have
out
jdbc,
let
me
drag
that
one
to
the
canvas
renderer.
D
D
There
you
go
so
here
we
have.
This
is
the
table.
Okay
seems
good,
and
now
I
just
say
hey.
Let
me
look
at
this.
I
can
drag
this
out
to
the
canvas
and
it
does
a
select
all
for
me,
so
this
seems
kind
of
like
magical
and
weird,
but
it's
not
I
mean
this
box
is
a
jdbc
connection
and
it's
pushing
itself
to
this
box,
which
is
a
sql
query
and
ingesting
this
connection,
but
it
has
this
little
simple,
sql
builder,
because
you
know
the
things
we
do
in
sql
are
all
very
similar.
D
D
Let
me
go
back
here
and
make
this
guy
a
little
more.
You
know
slim
and
tasteful,
since
we
did
the
we
did
the
thing.
Okay.
Now
I
have
now
I
have
year
and
count.
That's
that's
that's
cool!
You
know.
Let
me
get
rid
of
this
since
we
don't
need
it
right
now,
like
all
right.
Well,
maybe
this
is
what
I
want.
D
Maybe
not,
let's
take
it
a
step
further,
so
I
can
click
on
these
rows
and
that's
kind
of
important
because
by
clicking
on
a
row,
I'm
telling
the
interface
like
hey,
look
at
this
particular
map
right.
So,
if
I
click
on
this
2000,
you
can
see
even
the
sql
generator
changes
to
like
year
2000
you
know
so
I
could
drag
this
into
where
and
it
would
know
that
you
know
only
show
me
things.
Every
year
is
2
000.,
but
we're
not
going
to
do
that,
but
just
show
you
how
the
clicking
thing
works.
D
D
So
maybe
we
want
to
sum
all
those
values
up
right-
or
maybe
we
want
to
you-
know-
get
an
average
of
the
counts
by
year,
like
just
little
silly
things
that
you
might
not
actually
do,
but
it's
nice
to
like
kind
of
have
them
there.
You
know
that
the
code
is
nothing
special.
D
My
idea
is
to
start
you
down
the
path
you
want
to
go,
not
necessarily
write
the
best
most
beautiful
awesome
code.
You
know
like
I
can
create
a
distinct
vector
of
the
years.
If
that's
something
that
I
need
to
do
so
I
have
my
sql
query
here.
You
know
here's
here's
my
my
years
and
then
obviously,
if
I
were
to
change
this
query
where's
my
guy
here,
let's
just
do
the
year
thing.
D
You
know
I
change
my
query
and
everything
downstream
changes,
because
that's
just
how
rapid
works
it's
you
know
you
know
upstream
downstream,
if
anything
changes,
titles,
children,
re-render
based
on
the
new
information,
but
we're
not
going
to
do
that,
but
just
as
an
example.
So
let's
get
rid
of
these
examples,
counts
and
averages
and
distincts
do
something
a
little
more
interesting.
So
we'll
go
back
to
click
row,
I'll
click,
a
row.
D
Oh,
you
can
also
re-aggregate
right.
So
if
I
had
two
dimensions
here-
and
I
wanted
to
say,
you
know
re-aggregate
this
by
only
one
dimension-
you
could
do
that.
But
in
this
case
I'm
gonna
skip
that.
So
the
only
this
library
I
have
implemented
right
now
is
nevo,
but
vega
lite
with
odds,
is
coming
very
soon.
So
very
simple
is
by
year.
It's
the
count
I
want
year.
I
want
count
year
is
my
x.
D
Count
is
my
y
again
nothing
groundbreaking
here,
but
I
just
want
to
be
able
to
answer
things
other
than
accidentally
drag
in
a
line.
I
just
want
to
be
able
to
answer
things
as
I
think
of
them
right,
whether
it's
the
most
beautiful
thing
or
not
like
let
me
get
to
a
place
where
I
can
understand
what
it
is,
I'm
building
and
then
build
it.
So
here
you
can
see,
there's
a
lot
of
values,
it's
kind
of
smooshed.
D
Maybe
I
want
it
to
be
vertical
again
with
a
scrubber
layout
vertical,
I'm
going
to
say
we'll
lay
out.
You
know,
horizontal
meh,
that's
not
too
great
either.
But,
let's
see
you
know
the
margins
on
the
left.
You
know
we
want
to
bring
them
out
a
little
bit.
So
I
can
see
something
again.
All
the
kind
of
you
know
the
colors
and
the
scrubbing
I'm
just
kind
of
like
building
building
stuff.
Here
let
us.
D
This
is
going
somewhere
elsewhere,
so
let
us
say:
let's
do
state
we'll
do
by
state,
we'll
say
count,
get
rid
of
that
and
we'll
do
the
same
thing
with
before
clicked
row.
Well,
I
want
state
account,
and
I
want
that
bar
cool
we're
gonna,
make
this
one
horizontal
as
well.
A
D
All
right
anyways-
I
don't
know
I
don't
want
to
with
that
too
much
for
around
the
line
here.
So
let's
just
say
this
is
the
bar.
I
want
hypothetically,
you
know
we
have.
We
got
states
now
we
got
counts.
Let
me
turn
on
again
the
big
big,
big,
fonts
or
screen
game
all
right.
All
right.
We're
gonna
turn
on
labels
and
let
me
just
get.
D
Where's,
the
lamp
yeah
so
label
we
can
make
that
a
little
a
little
smaller
there.
That's
what
fits
cool
all
right.
So
what
is
a
big
thing
you
end
up
doing
in
these,
like
you
know
explorations
is
we
want
to
filter
stuff,
so
by
default,
clicking
on
a
bar
generates
a
map,
outputting
the
values
and
some
other
things
which
we
can
use
in
our
in
our
flow.
D
So
I
drag
the
output,
so
the
output
of
this
gender
of
this
or
rendered
bar
is
always
its
own
atom,
because
this
is
like
a
custom
thing.
It
gets
built
as
opposed
like
a
generic
block,
outputs
itself,
so
it
outputs.
You
know
this.
This
map,
the
color,
but
what
we
really
care
about
is
this
right.
So
data
state
string,
texas,
okay,
so
that's
kind
of
what
I
want
to
screw
with.
So
let
me
go
in
here.
Let
me
drag
out
state.
D
I
would
normally
do
like
I
get
in
here.
Obviously,
but
since
this
is
a
demo
we'll
do
auto
by
dragging
and
dropping
all
right
cool,
so
I
want.
I
want
this
value,
but
first
I
need
to
tell
the
value
I
need
to
tell
sql
what
this
actually
is
right.
So
it's
state
name
notice,
it's
called
state.
So
I
make
this
a
make.
D
That
should
just
work
for
the
sake
of
brevity
yeah.
I
could
do
a
not
nil
there,
but
to
say
this
actually
works
fine,
too.
Okay,
so
now
we
have
our
little
map
fragment
again
sorry,
dogs
and
clicking
on
this
downstreams
that
value
okay,
great,
let
me
get
another
query,
so
this
is
bigfoot
settings
us
again
screen
out
here,
doesn't
select
all
I'm
going
to
drag
this
into
the
parameters
of
this
generated
query
and
by
default.
It
should
see
that
and
say
so
yeah.
So
I
have
it
open
here.
D
I
can
go
to
this
bar
and
say
you
know,
show
me
this
and
it
should
send
in
yeah
state
washington,
unselect
state,
everybody
state,
california,
okay,
cool,
so
now
we're
making
some
stuff
happen
right.
I
didn't
really
type
too
much
code,
I'm
just
kind
of
like
I'm
just
kind
of
screwing
around
the
data
awesome.
D
So
now
we
got
that
working
so
now
I
can
say
all
right.
Well
now
I
have
this
data
set.
Let's
look
at
where
is
so
ufo
shape
and
then
we'll
look
at
the
account
there
and
get
rid
of
that,
and
now
we
have
another
another
group.
I
can
do
here
and
actually
let's
do,
let's
do
one
more
one,
more
dimension
there,
let's
do
by
by
day
or
night,
tube
cool
two
dimensions,
one
value
all
right,
spring
click
row
back,
let's
say:
let's
click
on
a
row,
so
I
want.
D
I
want
count
to
be
the
sum
shape
to
be-
let's
say
the
color:
it's
not
really
a
color,
because
this
I'm
going
to
make
a
heat
map
which
it
just
is
basically
like
the
pivot,
and
this
is
going
to
be
x.
So
let
me
drag
that
out
to
here
and
that's
a
little
busy
but
kind
of
there's
a
lot
more
shapes
than
I
thought.
D
But,
okay,
that's
that's
kind
of
that's
kind
of
cool
right,
so
we
have
day
by
day
by
night
and
all
the
different
sighting
shapes.
I
guess
and
of
course
it's
a
child
of
this
block
here
so
by
clicking
on
you
know
various
bars.
It
will
downstream
the
sql
query
and
everything
everything
below
it.
I
could
also
from
the
sql
query:
do
you
know
cheat
and
be
like?
Well,
we've
already
done
the
query.
D
So
I'm
just
going
to
say:
hey
just
sum
up
all
these
numbers
over
here
also,
so
then
we
have,
you
know
8906,
and
it
should
change
to.
You
know
65
for
everything
in
our
six,
so
I
could
have
put
these
things
closer
together,
but
you
kind
of
you
kind
of
see
where
I'm
kind
of
going
here.
So
let's
do
one
more
thing
with
this.
So
now
we
have
this
the
state
data.
Let
us
do
one
more
over
here.
D
This
is
going
to
be
by
state,
but
I'm
going
to
use
the
state
code,
so
I
can
draw
a
map
so
we're
going
to
throw
the
count
in
gold.
65
000
do
fip
state
code
and
yeah.
That
should
be
good
for
now.
Let
me
drag
this
guy,
this
guy
a
little
smaller,
and
I
know
that
I
drew
a
vega
map
for
the
us
not
too
long
ago,
so
I
can
look
for
it
here.
I
can
open
up
the
browser
and
you
know
these
are
all
the
blocks
in
the
the
flow
set.
D
I
have
opened,
even
ones
that
I
haven't
looked
at
yet
so
you
know
maybe
I
slip.
I
look
for
a
vega
like
that:
that's
not
the
one!
I
want
map
or
some
of
those,
so
I
can
also
say:
let's
look
at
the
code
of
these
blocks
so
like
what
I'm
just
looking
for
like
big
a
light.
Okay,
these
are
the
blocks
that
have
vega
light.
If
I
hover
over,
I
can
see
yeah
line
five.
You
know
using
odds,
make
a
light
line.
D
For
you
know
this
is
you
know
me
trying
to
figure
out
legends
okay,
so
here
we
have
bigfoot
u.s
states.
I
think
that's
the
one
I
want.
So
let
me
just
just
drag
that
guy
in
here,
so
it's
going
to
pull
it
from
the
you
know
from
whatever
flow
it
existed
in
and
send
it
to
me.
Obviously
it's
not
going
to
render
because
it
doesn't
have
the
data
that
it
that
it
needed
in
the
other
flow.
But
I
can
you
know
I
I'm
pretty
aware
of
what
it
of
what
it
needs.
D
So
I
can
say
all
right:
we
have
count
one
here
and
oops.
Let
me
just
get
rid
of
that
guy.
I
can
bring
this
in
and
since
I
thought
about
this
earlier,
I'm
just
going
to
paste
in
changes
instead
of
like
you
watching
me,
fumble
with
the
editor
and
field
names.
This
should
be
the
right
count,
one
and
fifth
state
code,
and
then
let's
rerun
this
to
make
sure
it
propagates,
okay,
sweet.
It
doesn't
have
all
of
them,
because
I
didn't
have
enough
not
enough
states
in
that
that
call
okay
cool.
D
So
it's
a
little
piece
of
vega.
I'm
passing
something-
and
I
can
also
say
hey:
why
don't
you
also
take
in
my
filter
from
before?
So
now?
This
one
filter
is
pushing.
You
know
two
sql
queries
from
this
biz,
so
I'm
gonna
go
back
here
and
make
sure
that
it's
and
and
the
code
for
this
is
not
it's
not.
I
mean
it's
kind
of
goofy,
because
I'm
you
know
I'm
taking
I'm
taking
incoming
map
and
making
into
where
clause.
You
know
you
wouldn't
want
to
do
some
production,
but
the
whole
point
is
like
move.
D
You
forward
in
your
thought
process
not
exactly
make
the
best
thing,
but
let's
get
you
to
a
place
where
you
can
then
go
back
and
fiddle
and
tweak
and
do
whatever
you
want
to
do
so.
This
is
this
is
very
naive
right
but,
like
you
see
you
know
with
california
there
it
gets
us
somewhere
we're
building
like
a
meaningful
thing
right,
so
cool.
So
we've
got
all
this
downstream
stuff
happening.
What
do
we
do
with
it
right?
I
can
see
ryan
you've
got
this
big
graph
here
and
all
this
stuff
going
on.
D
You
know,
we've
got
like
this
whole
thing
going.
I
need
to
show
this
to
somebody
and,
like
my
boss
is
not
going.
No
he's
gonna
be
like
what
what
you
know.
What
is
this
right
all
right,
so
we
got
to
show
this
to
somebody.
So
this
is
where
we
get
into
composing
stuff.
So
I'm
going
to
drag
in
a
view
composer,
which
is
pretty
much
what
you
think
it
would
be,
but
kind
of
like
what
you
would
do
if
you're
building
it
yourself
right.
D
D
And
that's
the
data
set
well,
we
can
put
the
data
set
in
that's
cool,
there's
our
states
and
I
think
that's
it.
So
you
can
see.
I
don't
know
if
this
will
fit
well
by
default.
It.
Let
me
well,
you
know
we
got
fit
problems.
So
that's
all
right.
So
by
default
it
says
you
know:
hey,
okay,
cool,
I'm
going
to
put
this
in
the
container.
You
know
horizontal
vertical
was
kind
of
by
default,
which
is
which
is
cool.
Like
that's.
You
know.
D
I
have
no
problem
with
that,
but
a
lot
of
my
layouts,
I
kind
of
just
do
in
a
like
a
freeform
way
like
I
might
have
a
block
like
this.
That
has
four
things
and
then
I'll
take
this
block
and
put
it
in
another
block
right.
But
in
this
case
let's
just
say
all
right:
we
want
this
whole
to
be
floating.
So
if
I
click
on
the
heat
map,
you
know
I
can,
you
know,
drag
it
down
here.
D
D
Okay,
so
well
whatever
you
get
the
idea
so
now
we
have
all
that
stuff
that
operates
under
the
same
attachment
that
operates
under
the
same
logic,
rules
of
this
flow,
but
is
shown.
Let
me
unselect
that
guy
unselect,
u
and
turn
off
the
edges,
sweet,
so
yeah,
so
it
operates
the
way
it
should
before,
except
in
this
composed
view
right.
So,
if
I'm
presenting
something
you
know
this
would
be
my
dashboard,
but
people
still
have
access
to
all
the
underlying.
D
You
know
mechanics
of
the
dashboard.
So
if
this
were
my
thing,
let
me
turn
this
off
and
if
I
wanted
to
start
see,
you
know,
let
me
just
give
it
a
name.
So
you
know
my
whatever
my
great
thing
and
then,
if
I
were
to
star
that-
and
I
was
in
the
little
file
browser
you
could
see-
where
are
we?
Where
does
the
flow
we
get
open?
We
got
we're.
Welcome
so
oh
I
gotta
save
it
silly.
D
So
it's
saving
it
as
a
flat
edn
file
on
my
machine,
and
this
is
all
localhost
first
stuff
with
all
this
metadata
and
then
now
you
should
be
able
to
see
a
migrate
thing.
So
if
I
was
showing
my
boss
or
something
you
know,
they
would
be
able
to,
they
would
be
able
to
navigate
this
whole
flow
based
on
the
flows
and
the
dashboards,
and
this
is
what
would
come
up
now
before
someone.
A
D
Yes,
there's
some
double
rendering
going
on
the
graph
here
and
we
can
mitigate
that
by
just
minimizing
these
things
or
keep
them
open.
Sometimes,
I
think,
there's
value
in
seeing
you
know
how
everything
works.
One
of
the
things
I
got
really
frustrated
with
with
things
like
tableau
is
that
you
can
do
so
much
complicated
things
in
the
calculations
that
then
become
incredibly
opaque
to
the
next
person
who
looks
at
it
right,
like
I,
don't
know
what
he
was
doing,
how
this
works.
D
They
basically
have
to
go
into
all
those
different
things
and
taboo's
a
very
user-friendly
tool,
but
when
it
comes
to
some
stuff,
the
person
has
to
go
in
and
like
under
this,
like
lossy
compression
like
unpack
all.
That
is
that
I
did
where,
if
they
had
like
a
literal
road
map
of
what
it
was
laid
out
in
a
kind
of
a
fairly
straightforward
manner,
it'll
be
much
easier
to
grok,
like
what
the
hell
is
going
on.
What
queries
affect
what
things
you
know
where
I'm
hacking
things
where
I'm
not.
D
So
I
think
that,
because
someone
was
like
well,
my
boss
doesn't
care
about
the
the
dashboard
like
you're
you're,
probably
or
doesn't
care
about
the
graph
you're,
probably
right,
but
I
think
more
people
should
care
about
kind
of
what
went
into
making
something.
It's
so
easy
to
lie
and
hide
stuff
with
data.
So
that's
my
soapbox
speech
but
yeah
you
can
minimize
this
stuff
and
it
works
for
them.
It
works
fine.
D
But
at
the
same
point
you
know
some
things
need
to
be
rendered
in
order
to
react
right,
so
I'm
kind
of
working
on
the
minimize
thing,
but
definitely
definitely
a
thought
but
yeah.
This
is
an
ugly
dashboard,
but
I'm
pretty
sure
you
get
the
get
the
drift
there
so
daniel.
I
don't
know
if
I,
if
I
can
go
like
five
more
minutes
and
show
some
like
rebel
stuff,
if
people
aren't
totally
bored
yet.
D
A
D
It's
not
extendable
right
now,
but
I
can
what
I
can
do
is
I
don't
know
if
this
is
like?
Probably
not
what
you're
talking
about,
but
if
I
do
something
I've
been
doing,
other
dashboards
is
to
keep
things.
Well.
Maybe
you
can
because
if
I
get
to
the
subflow
stuff
later
sorry,
I'm
not
thinking
out
loud,
you
can
do
things
like
here's,
my
composer
and,
let's
just
like
you
know,
drag
some
crap
in
here
and
let's
make
it.
What
is
that
all
right?
Let's
make
it
vertical?
D
D
You
know
I
can
I
can
nest
these
things
together
and
recursively
render
all
that
stuff,
which
kind
of
which
makes
you
kind
of
have
things
that
are
not
completely
again.
It
doesn't
really
answer
your
question,
but
it
is,
it
can
be
interesting.
You
know
something
I
didn't
mention
is
that
the
editor
panel,
where
you
type
in
the
code,
is
also
a
valid
render.
D
A
No,
that's
fine,
I
did
it.
I
just
I
don't
know
it's
kind
of
maybe
related
it's
somewhere
tangential,
but
it
seemed
like
yeah
when
you're
doing
doing
like
when
you're
scrubbing.
Like
a
linear,
you
know
number
value
you
get
pretty
smooth
animated,
like
stream
of
mutations
on
the
results,
at
least
in
closure
script.
A
I'm
wondering
if
that's
also,
if
that's
true
or
if
there's
any
sort
of
gotchas
to
that
like
to
see
to
get
that
kind
of
you
know
more
fine-grained
push
and
pull
versus.
Maybe
it
depends
on
how
complex
the
flow
is.
Also
if
with
closure
like,
if
you
were
doing
the
in
and
out
of
closure
script
enclosure,
do
you
get
more
of
a
sort
of
stop
and
start,
or
you
know
refresh
compared
to
like,
like
a
smooth
kind
of
scrub.
D
Yeah,
so
a
lot
of
the
examples
I
use
are
closure
script,
things
that
are
fairly
even
the
bar
chart.
I
mean
it's
not
a
whole
lot
of
rows
there,
so
you're
gonna
be
limited
to
how
often
the
browser
can
actually
refresh
that
there's
no
debouncing
or
anything
right
now.
There
probably
should
be
because
some
things
you
know
like
I
said
some
things
are
more
expensive
than
others.
There's
someone
show
at
the
very
end,
there's
a
canvas
drawing
and
that
kind
of
has
a
little
bit
of
that.
D
Lagginess
is
the
brow,
especially
like
it's
scaled
up
or
you
have
like.
I
do
videos
in
4k,
and
sometimes
it's
like
your
browser's
like
oh,
come
on.
Yes,
chrome
is
very
sensitive
but
but
yeah,
so
this
is
an
example
kind
of
what
you're
talking
about
so
this
is,
I
mentioned
earlier
that
they
can
catch
external
rebels.
So
I
have
these
two
other
rebels
running
on
my
other
monitor
here,
one
that
connects
to
you
know:
data
set
ml,
libraries
and
another
one
that
is
encantor
with
an
older
version
of
closure.
D
D
In
fact,
if
I,
if
I
use
this
string,
this
is
like
a
comment
hint
to
say
what
ripple
to
use.
If
I
drag
out
a
another
server
block,
so
the
built-in
server
right
is,
you
know
110
three
and
if
I
drag
in
another
one
and
I
open
that
guy
up-
and
I
say
same
code
right
to
say,
hey
you
use
this
replica.
Instead,
you
can
see
it
changes
it
closer
to
1.9
right.
So
it's
a
totally
different.
It's
a
totally
different
evaluation
environment
so
for
in
cancer.
D
I
kind
of
have
to
do
that
right
because
I
couldn't
get
to
work
with
the
newer
ones.
I
guess
it
works
for
them.
I
guess
so
so
here
we
have
super
simple
from
the
readme
right,
a
sine
wave
and
like
a
randomized
like
histogram,
but
what's
cool
about
this
is
that
I
have
these.
I
have
these
closure
script
sliders
and
let
me
make
this
guy
small
again
and
they're,
just
using
atoms,
they're
right
here
on
the
cljs
side,
but
what's
cool
about
them
is
they're
they're
sending
their
values
into
that
other
repel
right.
D
So
it's
definitely
not
going
to
be
as
fast
as
closure
script,
but
as
it
as
it
injects
the
values
in
it
gets
reevaluated
and
you
can
kind
of
see
you
know.
So
I
I
close
your
script,
you
know
get
kind
of
like
talking
back.
You
know
crossing
the
streams
of
of
a
completely
arbitrary
closure
environment
so
again.
A
D
Yeah,
I
mean
it's
probably
because
it's
like
the
simple
the
render,
if
I
was
actually
pushing
pngs,
might
be
faster
and
I'm
doing
the
biting
the
base64
encoding,
but
you
know,
and
when
you're,
when
you're
picking
stuff,
you're,
probably
okay,
to
wait,
I
can
imagine
drop
down
something
again
a
stupid
example,
but
I
mean
you
guys
would
probably
be
more
into
this
stuff.
You
know
than
I
have
been
in
terms
of
like
the
ml
data
set
and
like
the
silage
as
another
example.
Here
is
another.
D
This
is
connected
to
a
different
rebel
that
is
doing
the
titanic
example
from
the
github.
What
is
this
error
here?.
D
A
D
A
Is
that
the
is
that
the
main
way
to
bring
external
code
in
to
canvas
is
through
like
additional
reference
or.
D
Yeah
I
mean
there's
a
built-in
repo,
but
doesn't
have
these
libraries
loaded
right,
so,
okay,
cool
so
after
it
loads
its
initial
deal
all
right.
So
here
we
have
so
I
can
look
at
so
it's
a
little
different
than
close
script
box
right.
So
I
can
look
at
the
replica.
I
can
look
at
the
rebel
output
like
what
you
would
see
printed
right
for
a
regular
rebel,
but
I
can
also
use
data
sets
that
come
out
of
that.
D
So
you
can
see
there's
out
one
two:
three
or
zero
one:
two,
unlike
closures,
closer
script,
which
closer
script
acts
more
like
a
do
block
right,
can
do
a
bunch
of
stuff
and
then
last
thing
it's
outputted
because
generally
you're
trying
to
render
something
right
or
do
one
thing,
but
in
a
rebel
like
I
can
have
all
kinds
of
stuff
going
on.
So
in
this
case,
I'm
not
only
printing
some
of
these
outputs,
but
I
am
sending
them
through
map
seek
reader
also
so
here's
the
output.
D
You
know
this
is
like
from
the
readme
on
the
github
page.
You
know
all
the
survival
rates
and
you
know
doing
the
dml
on
the
titanic
set,
but
I
can.
D
Let
me
change
the
layouts.
Let
me
pick
this
one
look
at
my
code
here
and
then
let
me
look
at
the
data
that
I
sent
out,
so
I
can
actually
select
this
first
data
set
and
say
give
me
this
one
and
then
give
me
this.
You
know
give
me
this
data
set,
you
know,
and
those
are
two
of
those
files
that
we're
looking
at
except
done
in
the
grid.
You
know
v
table
form
and
I
want
to
take
that
a
step
further.
I
can
say:
well
you
know
what
all
this
is
awesome.
D
D
When
I
pull
out
this
block,
it's
now
sending
fully
into
closure
script.
You
know
this
entire
data
set
that
I
can
then
do
stuff
with
and
if
we
go
back
to
this
example,
which
I
don't
know
why
I
like,
I
did
that
and
oh
yeah.
D
I'm
using
I'm
using
hexad,
so
let
me
do
three:
two
nine
always
always
test
your
demo
flows,
kids,
okay,
cool,
so
same
kind
of
thing:
it's
another
another
github
readme
thing:
it's
taking
the
csv
stocks,
doing
something
to
it:
pulling
out
map
sql
reader,
except
in
this
time
I'm
pulling
it
out,
and
actually
you
know
drawing
a
bar
with
it.
D
You
know
from
from
the
closure
data
set
ml
and
just
like
before
you
know
I
can
downstream
stuff,
since
this
data
sets
now
and
now,
enclosure
and
just
to
prove
this
is
like
connected.
Let
me
go.
Hopefully
we
can
still
see
that
bar.
I
can
go
down
here
and
say:
yeah,
let's
filter
this
to
be
one
date
or
two
dates,
and
you
can
see
downstream.
D
It
re-renders
it
pushes
out
here
so
so
again,
more
the
same
thing
but
cool,
because
now
I'm
actually
running,
like
you
know,
back
in
arbitrary
back
enclosure
code,
we're
getting
in
this
environment
and
then
you
know
doing
stuff
with
it
where's
somebody
gonna
say
something:
I
cut
someone
off
there
right.
There.
A
D
No,
I
mean
these
two
wrappers
I
have
here
are
basically
just
like
line
again.
You
know
that
through
some
libraries
and
nothing's,
but
it
could
be,
it
could
be
a
base
replica
of
your
project
that
has
all
your
own
stuff
loaded
right
and
it
connects
to
it
and
rabbit
just
treats
it
as
another
input
output.
You
know
like
I,
I
can
have
a
closure
apple
that
spits
out
like
hiccup
vectors
and
closure,
doesn't
know
what
it
is,
but
rap
is
gonna,
be
like.
Oh.
D
I
know
how
to
draw
this
so
it'll
just
draw
it
because
it's
already
in
its
world
which
makes
it
kind
of
cool,
so
yeah
external
external
rebels.
You
know,
do
whatever
you
want.
D
Yep
and
then
you
know,
there's
a
there's
a
there's,
a
in
the
config
file
for
rabbit.
You
can
say
you
can
say,
always
connect
to
this
other
repel
and
then,
instead
of
custom
reply,
you
can
just
say
like
I
think
it's
like,
like
you
know,
ext
rebel
and
it's
like
a
fixed
thing
on
the
server.
But
in
this
case
I'm
literally
just
saying,
like
totally
arbitrary,
you
know
connections.
D
So
I
want
to
use
like
two
or
three
but
yeah
and
that's
like
a
really
kind
of
cool
way
to,
and
where
is
this
yeah,
you
know
see
we're
have
the
input
in
the
two
values
here.
So
just
do
one
last
thing
and
I
would
love
to
be
attacked
with
questions
because
we're
on
the
because
I'm
I
don't
know
how
many
guys
know
like
the
brett,
victor
and
the
direct
inflation
and
that
you
know
doing
things
as
much
as
you
think
of
it.
D
I
don't
know
what
they
would
call
him,
but
awesome
stuff,
and
he
has
this
famous
video
where
he
does
this
like
like
tree,
you
know
and
I'm
doing
shitty
version
of
that.
So
where
is
it
yeah?
He
has
this
whole.
So
this
is
a
canvas
tree
connected
with
a
bunch
of
atoms
right.
So
these
aren't
direct
linkages
from
rabbit.
These
are
d
refs
going
into
this
tree
and
he
has
this
whole
thesis
about.
D
You
know
when
we're
programming
and
we're
you
know,
typing
things,
yeah,
sorry
about
the
yeah,
sorry
about
the
scale.
We've
gone,
we've
gone
sideways.
He
has
this
whole
thing
about
hey
like.
If
I
don't
know,
if
I'm
typing
stuff,
I
don't
get
a
feel
for
you
know
what
it
is
I'm
doing
by
typing
and
that's
when
we
came
kind
of
into
the
oh
she's
gonna
make
that
bigger.
D
Like
hey
like
you
know,
you
know,
you
can't
even
see
it
basically,
basically,
like
you
know,
scrubbing
values
and
changing
values
and
seeing
things
change
in
the
code.
So
I
can
get
a
feel
for
what
it
is
I'm
doing
instead
of
just
having
to
like
guess
pretend
I'm
the
computer
in
my
head,
and
you
know,
guess
what
it's
going
to
be.
I
want
to
know
you
know
what
that
feels
like,
so
I
can
end
up
with
you
know
better
values
or
a
better
understanding
of
what
it
is
that
I'm
doing
right.
D
So
this
is
just
he
has
a
fancier
tree.
My
tree
is
not
quite
as
sexy,
but
same
same
same
concept
right,
it's
that
kind
of
observable
type
programming,
and
I
I
want
to
do
that.
As
you
know,
wherever
I
can,
especially
for
building
stuff,
that
you
know
other
humans
consume,
and
he
has
a
speech
where
he
says
you
know
hey
when
I
when
I
manipulate
this
particular
value,
I
can
see
the
you
know
blossom
shimmering,
and
you
know
he
says
you
know
these
are
the
thoughts
we
cannot
think
you
know.
D
This
is
something
I
never
would
have
seen
if
I
was
just
hunting
and
packing
integers.
I
had
to
actually
play
with
it
to
see
where
we're
going
so
again,
all
that
business
stuff
and
then
back
to
like
more
art
stuff
but
yeah.
So
I
hope
people
have
questions.
I
appreciate
you
listening
to
me
for
as
long
as
you
did,
but
yeah.
So
that's
that's
rabbit
or
an
alpha
one
right
now.
You
can
download
the
jar
off
the
website.
More
coming.
D
It'll
it'll
probably
be
open
sourced
at
some
point
in
the
future,
but
I
want
to
clean
it
up
more,
but
yeah
saves
things
locally
runs
on
your
local
machine
doesn't
hit
any
other
services
doesn't
do
anything.
It's
just
meant
for
your
machine
right
now.
If
you
go
to
datarabit.com,
it's
literally
running
rabbit,
but
without
the
closure
version,
just
all
cljs
blocks,
so
it
may
be
confusing,
but
maybe
after
this
talk,
it'll
make
more
sense.
D
So
yeah,
please
ask
questions.
Thank
you
so
much.
A
A
Do
we
just
go,
I'm
raising
my
hand,
but
I
don't
know
if
we're
getting
called
on
sure
so
I'm
getting
on
in
years
and
one
of
the
big
things
that
I
have
found
frustrating
is
constantly
having
to
change
for
things
that
deal.
I
love
the
the
visual
sliders
all
of
that
kind
of
visual
tooling.
I
have
a
lot
of
sympathy
for
that
when
there,
when
there
are
areas
where
I
have
to
do
a
lot
of
text
manipulation.
A
I
decided
a
couple
years
ago
that
I
was
kind
of
done
learning
additional
editors,
so
it
I
would
love
to
be
able
to
say,
hey,
look.
You've
got
a
rupple
here,
great
I'm
going
to
connect
via
emacs
or
vs
code
or
whatever
my
normal,
comfortable.
Editing
tooling,
is
for
text.
Manipulation
is,
is
there
a
story
or
a
potential
story
for
something
like
that
in
here.
D
Yeah
I've
been
experimenting
with
some
stuff
because
the
at
the
end
of
the
day,
even
if
I
have
the
greatest
I
think
like
next
journal,
has
a
really
cool,
like
you
know,
editor
with
a
bunch
of
stuff
in
it,
people
are
never
gonna,
be
quite
comfortable
with
it.
So
I'm
I'm
experimenting
with
ways
to
have
like
an
emax
cider
connection
right.
That
also
sends
it
into
a
block,
but
I'm
trying
to
figure
out
how
that
would
work
or,
if
that's
even
the
right
way
to
tackle
it
but
yeah.
D
I
definitely
share
your
sympathies
there
for
sure.
So
that's.
D
On
my
it's
on
my
list
of
stuff
right
that
I'm
trying
to
look
into
whether
it's
just
you
know
pasting
it
there
and
executing
it
or
something
a
little
more
custom.
D
I
don't
know
you
know
so
I'm
open
to
suggestions
on
that
front,
but
definitely
something
I
mean
that
I'm
looking
at
because
you
know
the
code
mirror
is
cool,
but
I
use
vs
code
like
calva
and,
like
I
do
a
lot
of
you
know,
you
know
parentheses,
jumping
and
stuff
that
this
can't
do
and
it
pisses
me
off
to
no
end
so
yeah,
I'm
with
you.
A
And
they're
all
different
little
things
for
different
people
right
so
yeah,
that's
the
tough
thing
thanks
so
car.
Currently
you
can't
you
can't
edit
that
code
outside
of
the
rabbit
canvas.
D
I
mean
it
could
save
an
edn
file,
but
the
format's,
not
something
you'd,
want
to
do
what
I'm,
what
one
thing
so
right
now,
as
you
save
it's
a
big
edn
file,
all
the
metadata
and
all
the
code.
This
doesn't
really
answer
your
question,
but
I'm
trying
to
come
up
with
a
way
or
excuse
me
to
be
able
to
save
it
as
an
unpacked
file.
D
So
each
block
will
have
its
own
coj
cljs
file,
so
to
be
easier
for,
like
you
know,
source
control,
but
that's
more
of
like
an
ingesting
and
that
kind
of
thing.
But
I
suppose
you
can
have
the
server
the
server
process.
Look
at
that
directory
structure
of
the
block
code
and
then
just
update
the
blocks.
I
don't
know
if
that
would
get.
D
I
don't
know
if
that
would
mess
up
the
the
rendering,
probably
not
like
that,
actually
may
be
a
way
to
do
it
like
have
like
kind
of
a
kind
of
like
when
you're
working
in,
like
like
shadow
class,
something
right
where
it's
watching
the
trial
structure
to
re
recompile.
I
could
probably
literally
watch
the
directory
and
then
just
import
that
change
file
and
then,
when
it
gets
changed,
rabbit
will
re-render,
because
it's
something
had
changed.
D
That
actually
may
be
an
easy
way
to
do
that,
because
then
you
can
have
your
emacs
or
whatever
open
to
that
directory
and
have
rabbit
over
here
and
you'd
have
like
the
spatial
composition
of
the
things,
but
also
control
of
the
files
themselves
right
and
not
have
to
deal
with.
I
wouldn't
have
like
no,
you
wouldn't
have
the
dope
ass
editor,
but
you
know
what
I
mean
like
it
would
be.
It
would
be
a
way
around
that
that
wouldn't
be
super
crazy.
So
that's
yeah
another
another
thing
you
might
want.
C
To
look
at
is
there
a
number
of
editors
out
there
for
using
either
like
memory?
Some
of
them
may
have
even
been
able
to
kind
of
go.
B
Unlike
the
previous
session,
I
don't
have
any
prizes
to
give
out.
I'm
just
going
to
tell
you
how
to
live
your
life.
D
A
It
sounds
like
someone
was
getting
started
already
taking
in
breath.
Victor.
C
I
wanted
to
make
sure
that
that
okay,
anyway
yeah,
so
there
are
a
few
plugins
out
there,
that
that
you
can
use
to
try
to
like
open
a
buffer
in
bim
or
emacs
and
whatever
and
I'm
yeah.
It
may
just
be
worth
looking
at
it
as
another
model
like
pretty
sweet.
C
I
think
where
probably
a
lot
of
the
stuff
you'd
be
putting
in
you,
don't
need
your
editor
but
like,
if
you're
actually
sitting
down
to
write
some
code
like
that's
when
you
want
to
pull
it
up
in
something
that
feels
feels
sort
of
natural
yeah.
I
think
I
think
it
would
be
really
cool,
but
yeah
it'd
be
worth.
You
know.
You
have
to
do
a
little
little
archaeology
to
see.
Like
what's
been
done
there
and
whether
whether
it
actually
makes
sense
or.
D
Yeah,
no
that's
totally
totally
brave,
but
what
I
kind
of
like
about
this
a
little
bit
is
I
like
that
you
can
just
kind
of
run
the
jar
boot
up
and
just
jump
in
and
be
typing
stuff.
I
think
there's
a
lot
of
possibilities
here,
for
you
know
teaching
you
know
like
people
learning
how
to
manipulate
certain
things
being
able
to
see
the
result
right
away
and
like
organize
their
thoughts
in
that
way,
but
yeah
totally
for
hardcore
stuff.
That
would
be
something
to
look
into
for
sure.
D
Let
me
ask
you
guys
a
question
since
I
have
y'all
here.
So
if
I
go
back
to
this
bigfoot
thing,
I
get
a
lot
of
people
I
mean.
Obviously
this
is
kind
of
messy.
I
didn't
do
a
whole
lot
of
work
and
like
presenting
how
it
looks
on
the
graph.
D
I
get
a
lot
of
people
saying
well,
why
can't
there
be
a
notebook
mode
like
I
could
totally
make
a
notebook
like
editor
that
looks
at
the
linear
progression
and
strings
things
along
that
way,
but
I
always
have
to
ask
like
how
is
that
better
than
something
non-linear
like
this
right?
Is
there
like?
Am
I
missing
something
in
the
scheme
of
things
like
if
you
imagine
this
as
a
straight
line
of
things
that
all
work
on
each
other,
that's
kind
of
the
same
concept
of
this,
except
without
the
branching
paths?
D
A
I
view
that
as
actually
it's
not
an
either
or
it's
actually
potentially
a
both
thing
like
I.
A
I
I
like
clerk
quite
a
bit
and
I
could
very
clearly
see
like
oh
look.
I
could
get
a
visual
representation
of
my
clerk
workbook
notebook
tagging
together
the
atoms
and
the
the
the
data
values,
and
there
have
been
other
examples
out
there
of
saying,
hey
I'd
like
to
focus
on
this
section
of
code
and
I
could
of
the
notebook
and
see
that
represented
as
one
of
these
smaller
editor
environments.
A
D
Okay,
cool
see
it's
something,
that's
not
super
difficult.
I
was
just
like
I've
done
all
the
hard
work
with
the
execution
and
dependencies
and
everything
it's
like
like.
I
could,
just
you
know,
hey
here's,
my
one
linear
flow,
another
linear
flow,
and
let
me
show
it
in
a
vertical
or
horizontal
notebook
as
a
bunch
of
editors,
because
it
seems
like
what
a
lot
of
people
like
expect
from
a
tool
like
this,
as
opposed
to
this,
and
a
lot
of
people
were
like.
Oh,
like
you
know
what.
C
I
think
you
have
something
more
kind
of
unique
and
interesting
here,
which
is
you
already
have
this
way
that
you
can
take
pieces
that
you
constructed
and
recompose
them
right,
which
is
a
view
composer
or
whatever
so
like?
I
think
you
should
leverage
either
that
or
maybe
even
just
like
the
plain
text
or
like
a
markdown
kind
of
mode,
whatever
I'm
not
sure
if
the
plain
text
is
marked
down
kind
of
friendly
or
not,
but
something
that
would
let
you
cause
like.
C
I
feel
like
one
of
the
problems
with
like
the
conventional
notebook
flow
is
like
it
makes
it
like
right
as
data
scientist
is
kind
of
nice
like
this
sort
of
explorative
place,
but
then,
when
you
want
to
present
that
to
people,
it's
almost
like
you
end
up
with
a
lot
of
the
oftentimes
a
lot
more
of
the
implementation
details
than
you
might
actually
care
about,
depending
on
what
audience
you're
sort
of
working
with.
C
If
you're
running
with
technical
audience,
you
know
they
might
be
interested
in
that,
but
but
oftentimes
not
and
you'd
want
to
be
able
to
be
a
little
bit
more
picky
and
choose
about
what
kind
of
goes
in
and
go
and
doesn't,
and
that's
what
I
think,
like
the
traditional
notebook
environment,
kind
of
falls
on
its
face
when
you
get
to
publishing,
there's
still
no
real
great,
like
ipython
notebook
to
like
publishable.
C
You
know
document
sort
of
thing
out
there
that,
just
like
that's
really
gain
traction,
and
I
think
that's
for
me
with
us.
Like
that's
been
one
of
my
motivating
sort
of
use.
Cases
is
like
I
want
to
generate
like
nice,
looking
documents
that
you
have
control
over
how
they
render
and
you
know
be
able
to
use
it
as
a
static
site,
generator
or
vlog.
C
You
know
thing
or
whatever,
and
so
what
I
see
for
you
as
being
really
cool
is,
if
you
can
take
all
these
pieces
them
and
then
stitch
them
together
in
something
like
a
document
with
a
compose
view.
You
can
add
all
of
your
text
and
everything.
That's
explaining
you
know
here
we're
going
to
look
at
blah
blah
blah
blah
but,
like
you
know,
just
drag
those
pieces
in
as
as
inputs
and
to
me
that's
like
the
best
of
both
worlds.
C
Is
you
know
being
able
to
have
this
super
dynamic,
exploratory
playground,
but
then
then
compose
those
individual
pieces
into
either?
Again
I
mean
yeah
yeah,
maybe
I'll
rephrase
another.
I
think
at
least
the
potential
with
what
you've
done,
like
that's
so
exciting,
is
that
it
kind
of
unifies
the
idea
of
like
a
a?
What
do
you
call
it
like
a
explorer
review
or
dashboard?
I
think
yeah.
C
It
was
the
word
used
like
a
dashboard
generator
plus
like
something
that
could
actually
generate
really
nice
documents.
So
that's
that's
my
kind
of
two
cents
on
that.
D
No,
that
makes
sense
I
mean
I
have.
I
have
a
a
markdown
block
just
for
that
reason,
because
at
some
point
I
was
like
yeah
yeah
I
just
want
to.
I
just
want
a
title
right.
I
don't
want
to
have
to
like
write
a
bunch
of
hiccup
every
time
just
to
make
a
title
right.
So
something
like
this.
If
I'm
just
doing
a
label-
and
you
know
I
have,
of
course,
because
because
I'm
an
I
made
it
css
css
enabled
so
you
know
I
want
to.
D
I
want
to
hack
the
markdown
but
still
same
same
deal
right
yeah,
because
I
got
to
I
don't
know.
I
know
somebody
mentioned
this,
but
it
was
like.
I
had
an
output
of
something
and
I
think
it
was
like
a
account
for
my
database.
Something-
and
it
was
just
like
I
don't
know
some
value
and
then
you
know
showing
as
the
integer
and
I
was
like.
D
Well,
it
would
be
great
if
I
could
just
say,
hey
just
like
send
this
to
the
markdown
block
and
then,
when
you
bring
a
markdown
block
and
have
the
markdown
block
just
give
me
that
text
right.
So
a
lot
of
times
it's
just
what
you
want
to
do
and
you
can
throw
that
on
a
dashboard
without
having
to
do
like,
because
before
I
was
literally
doing
like
flexbox
for
every
single
component.
You
know,
which
is
great
if
you
want
to
spend
the
time
doing
that,
but
you
don't
generally
yeah.
A
D
Sure
so
my
conclusion
is,
thank
you
very
much
for
for
going
with
me
explaining
this.
I
don't
even
know
what
to
call
you
know
it's
one
of
those
things.
That's
kind
of
hard
to
like
people
are
like.
Oh,
what
is
your
one
sentence?
Elevator
pitch
like
spatial
code
visualization,
I
don't
know
it's
really
something
you
kind
of
have
to
like
look
at
and
understand,
like
you
know
what
a
spatial
like
notebook
is
but
anyways.
Thank
you
very
much.
You
know.
D
Datawrap.Com
twitter,
ry,
robes,
always
changing
stuff
love
to
hear
people's
ideas
got
a
lot
of
great
feedback
here,
but
yeah.
No.
Thank
you.
So
much
for
spending
99
minutes
with
me
on
a
friday.
A
A
D
In
terms
of
bringing
I
mean,
you
could
bring
pieces
of
it
into
this
canvas
pretty
easily,
because
I
I
said
this
earlier,
something
that
I
tried
really
hard
to
do
is
like
not
make
this
a
data
tool
but
make
it
make
it
an
actual
closure
script
and
closure
tool
or
anything
you
do
should
just
work
right.
If
the
library
is
there,
you
know
et
cetera,
so
I
don't
know
I
I.
I
really
wanted
to
make
sure
that
anything
you
run
here
with
very
few
exceptions
would
run
anywhere
else.
D
You
know
not
just
here,
so
I'm
hoping
that
pretty
high,
but
there's
some
stuff.
Like
the
view
composer.
That
is,
I
guess,
that's
I
guess
you
could
say
that's
like
more
of
a
magic
thing
that
only
works
here,
but
it's
literally
just
like
composing
boxes,
and
you
know
arranging
them.
It's
nothing
groundbreaking,
but
being
able
to
do
it.
That
way
is
what
the
cool
thing
is.
So
I
guess
it
depends
on
what
it
is
right,
but
I'm
hoping
I'm
hoping
hi,
because
I
don't.
D
A
D
Just
learning
how
to
like
use
tool
x,
you
know
they're,
not
learning,
necessarily
css
or
javascript
or
python
they're.
Just
learning
like
hey.
I
know,
tableau
calculations,
that's
cool!
If
you
want
a
tableau
job.
Otherwise,
like
you
know,
I,
you
know
it's
kind
of
like
that
that,
like
walled
in
kind
of
thinking-
and
I
got
so
sick
of
that
with
this
like
proprietary
thing,
so
I
want
to
make
sure
that
you
can
do
anything
and
there's
something
that
works
in
closer
close
script.
D
That
does
not
work
here
like,
for
example,
I
have
a
problem
with
with
async,
because
I'm
not
using
I'm
not
using
web
sockets.
Yet
so
in
order
to
get
a
response
back
from
the
server,
I
have
to
actually
ask
for
it.
You
know
that's
something.
I'm
trying
to
fix
and
core
async
doesn't
work
and
bootstrap
close
your
script
either,
which
is
a
problem
which
limits
something
so
I'm
trying
to
work
on
that.
B
Ryan,
I
would.
I
would
like
to
start
by
just
saying
that
it's
really
cool
to
see
you're
keeping
up
with
the
tradition
of
making
closure
tools,
look
awesome.
It's
like
the
font,
choice,
colors
and
so
on.
It's
just
like
clerk
is
to
me
the
best,
looking
notebook
out
there,
and
this
is
now
the
best
dashboard
thingy
out
there,
because
it
just
looks
awesome.
B
Is
that
if
you
want
to
build
an
internal
tool
like
we
have
this
very,
very
specific
problem
that
we
have
right
now,
where
we
want
to
test
applying
a
machine
learning
model
to
a
new
population.
That's
completely
different.
Like
say,
we
have
a
model
trained
for
transactions
from
germany.
We
want
to
see
how
it
performs
with
sweden
whatever,
and
you
can
do
this
in
a
notebook.
B
Obviously
like
you,
can
just
change
the
field
and
then
run
the
whole
notebook,
but
then
it's
kind
of
awkward,
because
the
whole
thing
is
linear
right,
like
you,
don't
see
where
things
are
coming
from
and
then
you
have
to
scroll
down
and,
like
christopher
said,
this
is
super
bad
for
presentation.
So
I'm
showing
my
ceo,
this
massive
notebook
and
like
all
right.
Let
me
just
change
here
the
the
code
and
now
let
me
scroll
down
to
the
bottom
to
show
you
the
graph
and
the
first
time
I
saw
this.
B
I
thought
this
is
perfect,
because
now
I
know
exactly
which
block
of
code
I
have
to
change,
I
go
there.
I
change
it
and
it
updates
the
the
actual
chart
I
care
about,
and
I
just
show
him
the
chart
and
the
other
option
that
you
have
nowadays.
I
think
someone
mentioned
shiny
at
the
start,
like
I
had
to
drop
out
in
the
in
between
sorry.
B
B
My
problem
is
train,
a
model
show
the
results
right
and
even
though
I
think
it's
always
good,
like
you
said
to
you,
know,
learn
new
things
and
also,
as
you
said
in
the
beginning,
have
this
sense
of
coding
and
visualization
as
an
extension
of
art
when
you're
working
with
deadlines.
Sometimes
it
has
to
be
put
like
on
the
sidelines
right
and
I
feel,
like
your
tool,
fits
really
nice
in
the
middle
like
and
I
I
think
it's
worth
it,
but
it
has
value
on
itself.
B
I
I
really
didn't
would
wouldn't
need
your
tool
to
now.
Certainly
have
a
linear
notebook
visualization
thing
for
for,
for
that
I
have
notebooks
already
and
I
would
use.
I
would
use
those
notebooks
to
make
linear
code.
But
if
I
want
to
have
something
like
you're
showing
here
say:
oh
let's,
let's
just
figure
out
very
quickly
how
this
metric
works.
Make
two
blocks
show
the
chart
and
then
move
on,
but
keep
the
block
there
like
on
the
side
so
that
maybe
someone
down
the
line
cares
about
it.
B
But
you
have
this
central,
like
you're,
showing
here
the
central
display
where
everything
works.
I
think
this
is
super
valuable.
I
just
haven't
had
time
to
actually
try
it
out,
but
I
think,
like
I
said
this
use
case,
is
something
we
are
doing
now
with
the
notebook.
B
I
don't
like
it
and
I
want
to
try
it
doing
it
with
data
rabbit.
If,
if
that's
possible,
just
like
getting
all
the
machine
learning
models,
we
have
getting
all
the
configuration.
We
have
pass
it
through
a
bunch
of
a
bunch
of
these
blocks
record
the
metrics
as
we
go
and
then
have
the
final
outputs,
because
everything
is
dags
these
days.
So
you
should
visualize
it
as
one.
D
No,
that's
awesome
and
I
appreciate
that
the
kind
of
words
but
yeah
it's
like
well.
You
mentioned
the
magic
thing
in
the
beginning
and,
like
I,
I
said
that
a
little
bit
tongue-in-cheek,
but
I'm
more.
It's
like
you
know,
do
the
thing.
I
don't
have
to
worry
about
what
it
is.
But
if
I
want
to
understand
what
it
is
you
did
I
can
go
in
and
do
that
right.
I
can
see
the
code
see
the
output,
a
lot
of
tools,
just
kind
of
say:
hey.
We
did
it
for
you
like
it
did
a
bar.
D
You
hit
a
thing
and
we
made
a
graph.
It's
like
cool,
but
I
know
I
didn't
learn
anything
you
know
I
mean
I
don't
know
what
that
is,
and
I'm
I'm
stuck
to
you
having
to
change
a
feature
from
you
have
to
look
at
it,
and
this
is
like
if
I
make
like
a
like
a
if
I
use
eyes
to
make
like
a
light
graph
like
you
could
literally
paste
that
in
somewhere
else
you
know
you
need
to
put
your
data
in
there,
but
otherwise
it's
the
same
exact
code,
right
yeah,.
B
Like
it's,
it's
one
of
the
one
of
the
pet
peeves
I
have
with
the
tool
we
use,
which
is
periscope,
is
that
they
do
not
have
density,
charts
yeah.
So
if.
B
D
Yeah
periscope
periscope
data
is
so
cool
in
some
ways
in
other
ways,
I'm
just
like
what
what
who
who
yeah
there's
like
things
that
don't
work,
and
it's
just
like
I
was
like-
and
maybe
I'm
just
like
an
old
school
like
business
intelligence
guy,
I'm
just
like.
I
have
different
expectations,
but
I
was
like
oh
you
guys
are
so
close
to
being
awesome,
but
I
can't
do
these
like
10
things.
D
So
since
we're
here,
I'm
gonna
show
one
last
thing
that
I
didn't
get
a
chance
to
do.
Maybe
this
is
cool
with
you
guys,
maybe
not
is
the
idea
of
like
sub
flows.
So
I
have
this
like
stupid
little
test
flow
here,
where
it's
literally
like
a
reacts
list
for
picking
a
value.
The
chain
is
an
atom
sends
that
ad
another
block
right.
So
I
I'm
rendering
some
fancy
stuff
here:
changing
an
atom
and
getting
a
string.
This
is
literally
just
hey
e
or
right.
I
crashed
something.
D
This
is
literally
just
showing
the
atoms,
and
this
is
just
literally
showing
the
name
space
that
I'm
in,
because
I'm
using
a
dynamic
name
space
which
will
make
sense
in
a
second
cool.
I
have
this
little
list
changing
atoms.
My
application
is
beautiful,
bam
done
right,
so
I'm
in
another
flow,
and
I
want
to
use
that,
but
I
don't
want
to
repeat
it
right.
I
want
to
like
kind
of
like
reuse
it.
D
It's
almost
like
a
visual
function,
so
I
can
come
up
here
to
my
flow
picker
and
literally
drag
that
flow
into
this
flow,
and
then
you
see
it
shows
it
shows
the
flow.
Let
me
get
rid
of
this.
It
shows
the
flow
which
is
which
is
cool,
but
really
not
what
I
want.
So
you
see
here
we
have.
These
are
the
blocks
in
flow
block
inputs,
block
outputs.
Well,
this
flow
doesn't
have
any
input,
so
I'm
not
going
to
use
that,
but
maybe
the
output
is.
I
want
the
output
to
be.
D
This
is
my
item
right.
So
this
is
the
outputted
string
from
that
flow.
So
now,
if
I
manipulate
the
flow
here
and
I
have
an
output,
it'll
send
that
into
this
flow,
while
keeping
all
this
contained
here,
but
even
more
than
that.
Now,
if
you
look
at
down
here
my
block
in
my
editor
panels,
my
editor
panels
now
include
all
the
blocks
in
that
flow,
so
I
can
literally
have
an
editor.
D
That
is
my
list
and
my
item
and
it's
running
in
that
other
flow.
But
let
me
change
the
output
so
over
here
here
I
can
say
this:
is
my
list
send
that
to
the
canvas
and
now
I
have
that
whole
thing
running
of
that
subflow
in
this
flow
almost
has
its
own
little
micro
application
thing.
I
mean
a
simple
example,
but
just
kind
of
like
I
see
go
to
the
flow
instance
so
to
make
it
more
cool.
D
What,
if
I
have
if
I
drag
in
another
one,
this
is
the
same
flow
just
in
this
thing
and
you
can
see
it
has
its
own
state,
even
though
it
wasn't
really
coded
that
way
has
its
own
state,
and
if
I
go
up
here,
I
can
see
you
know
the
atom
subflow
test
flows
like
lit
up.
I
can
click
on
this
and
you
can
see.
So
these
are
the
instances
that
were.
Let
me
unselect
this.
D
These
are
the
instances
that
were
created
of
that
flow,
so
it
operates
outside
of
its
own
context
in
a
separate
context,
so
it
can
be
used
as
like
as
a
block
in
this
flow
right.
I
know
kind
of
weird
to
think
about,
but
it's
one
of
those
things
that
I
didn't
do
someone's
going
to
be
like.
Aha,
but
can
you
you
know?
Can
you
recursively
do
the
flows?
It's
like?
D
Yes,
so
I
haven't
come
to
a
great,
a
great
demo
for
this
yet,
but
I
can
kind
of
see
if
I
can
get
the
performance
to
where
I
wanna.
I
can
see
a
world
where
you
could
possibly
make
oh
yeah.
I
can
jump
into
the
instance
flow
and
look
at
the
instance.
You
know
values
of
that
particular
instance
of
that
you
know,
instance,
version
of
itself,
which
is
cool,
but
I
can,
I
can
see
blocks
that
are
created
almost
as
micro
editors
for
particular.
You
know
particular
things.
D
D
Well,
you
can
get
the
goldilocks
function,
its
own
little
block,
and
does
it
show
up
over
there
yeah
there's
also
a
again
stop
me
if
this
is
weird,
but
I
can
also
configure
a
subflow
and
say
configure
myself
as
a
subflow
call
it
whatever
and
then,
if
you
see
now
on
the
left,
this
is
this
subflow
that
I
configured
now
shows
up
as
a
base
thing
on
this
palette
right.
So
it's
kind
of
like
the
subflow
recursive
application
thing,
but
again
it's
the
kind
of
work
in
progress,
but
I
thought
that
was.
D
C
Yeah
snake
eating
and
stale
there.
I,
like
that.
I
I
have
hopefully
a
quick
question.
So
have
you
thought
much
about
how
you
would
extend
to
other
languages?
Like
you
know,
as
a
data
scientist,
we
we
sometimes
have
to
descend
from
the
clouds
and
and
use
languages.
C
That
we
don't
want
to
use
right,
like
you
know
python,
or
that
would
you
know
rather
use
something
else
with,
but
you
know
so
have
you
thought
much
about
like?
C
Could
you
run
like
python
or
our
blocks,
or
you
know
whatever
julia,
if
you
learned
some
higher
performance
stuff,
where
you're
you
know,
building
an
algorithm,
have
you
thought
much
about
whether
that's
a
thing
that
that
could
fit
into
this
framework
and
how
it
would
comply
with
the
dependency
mechanisms
and
everything
else
I
mean
you
know
how
much,
how
much
this
is
dependent
on,
like
you
know,
being
able
to
analyze
closure
code,
and
could
you
kind
of
extend
that
for
other
languages
to
any
extent.
D
Yeah
I
mean
a
lot
of
this
is
based
on
the
fact
you
know
you
know
closure.
You
know,
data's
code
code
is
data
kind
of
thing
yeah.
However,
I
have
played
with
the
idea
of
trying
to
do
some
python
stuff,
but
doing
a
way
where
it's
not
cheating.
I
know
there's
some
libraries
that
allow
you
to
run
python
enclosure,
but
I
don't
know
if
that's
quite
the
same.
You
know
what
I
mean
is
having
like.
D
It
would
be
interesting
to
have
like
what
would
it
be
useful
if
I
had
let's
say
a
python
block
that
still
executed
and
passed
its
values
as
the
closure
system
expected
it,
but
was
still
python
like?
Is
that
enough
or
I
need
to
fundamentally
yeah
like
because,
if
that's
the
case
and
I
can
use
rappers
intelligently
like
you
know,
I
know
there's
you
know
we
have
a
bunch
of
stuff
for
r
and
python
like
that
would
be
super
interesting.
I
just
wonder
how
much
it
goes
against.
D
Maybe
it
doesn't
go
against
it
at
all,
because
if
it's
wrapped
in
a
monster,
yeah
yeah,
it's
like
at
what
point
do
I
you
know,
wake
up,
hungover
like
what
am
I
doing
in
my
life,
but
yeah
I
mean
that
could
because
I've
actually
thought
of
that,
because,
like
one
of
the
things,
one
of
the
reasons
I
love
this,
like
dag
view,
is
because
you
know
I
love
tools
like
airflow.
You
know
I
just
hate,
writing
python.
D
I've
read
so
much
python
as
a
de
and
people
think
it's
great
and
like
part
of
it
is
great.
But,
like
you
get
to
the
point
in
your
career,
where
you
just
want
to
get
done,
you
don't
want
to
like
fiddle
with
crap
right
or
just
type
type
things
like
boilerplate,
like
yeah,
even
reacting
javascript
after
a
while
she's,
like
oh,
my
god,
like
people,
people
people
become
experts
in
minutia,
not
experts
in
building
cool
right,
just
build
cool.
I
don't
care
about
your.
I
don't
care
that
you
understand
props,
better,
like
it's.
D
Just
like
it's
like
a
it's
like
being
a
chef
but
specializing
in
knives.
I
get
it
but
like
make
good
food
and
then
I
don't
give
a
what
kind
of
knife
you
use
like
hit
with
your
hand
right.
You
know
I'm
being
kind
of
crass,
but
you
know
like
there's
a.
D
There
yeah
so.
C
No,
no,
I
appreciate
it,
I
mean
part
of
my
perspective
is
kind
of
being
in
in
the
nonprofit
space
and
you
know
having
volunteers
and
that
sort
of
thing
you
know
we
have
to
be
aware
of
what
other
languages
people
are
already
using.
You
know
who
might
want
to
come
in
and
help
you
know,
and
so
I
think
that
it's
one
area
where,
like
I,
really
appreciate
what
next
journal
did
by
making
in
their
notebooks
you
can,
you
can
have
blocks
with
different
kinds
of
code
like
within.
C
You
know,
a
notebook
that
has
you
know
that
there's
polyglot
notebook,
true
polyglot
notebook
and
that's
something
that's
still
jupiter.
You
know
you
can
have
a
closure
notebook
or
you
can
have
a
a
python
notebook,
but
you
can't
have
like,
or
you
know
you
can't
have
one
that's
doing
all
of
them
kind
of
together.
C
So
I
think
that
that
would
I
mean
that
would
be
something
that
I
think's
really
appealing
for:
teams
that
are
kind
of
you
know,
polyglot
and,
and
you
know
where
you
want
to
be
able
to
let
people
plop
in
with
something
that
I
mean.
Even
even
that
aside,
I
think,
even
if
you
just
have
a
closure
team,
but
you
know
they're,
you
know
as
data
scientists
or
whatever
that
they're
using
python
they're
using
r.
Sometimes
it's
just
easier.
C
If
you
want
like
there's
this
one
like
machine
learning
algorithm,
I
want
to
try
out
like
I
could
like
wrap
it
in
python
clj
and
like
call
it
that
way,
but,
like
I
like.
The
easiest
thing
to
do
is
just
copy
some
stuff
from
their
their
documentation
and
like
plop
it
in
a
block
and
see
if
it
works
right,
and
so,
if
you
can
make
that
easy
to
sort
of
plug
the
values
in
and
out
of
that
from
closure,
then
you've
kind
of
you've
kind
of
yeah.
C
Food
for
thought,
you
know,
let
me
let
me
know
if
you
want
to
think
about
it
more.
I
I
think
it's
an
an
interesting
problem.
C
D
With
it,
I've
looked
at
it
and
I've
always
kind
of
like
pushed
it
aside,
because
I
I
didn't
I
I
didn't
see
it
was.
I
didn't
see
this
being
very
straightforward,
but
I
didn't
spend
a
lot
of
time
looking
at
it.
So.
C
Yeah,
so
it's
actually,
I
mean
in
some
ways
it's
not
straightforward
because
of
what
it's
doing,
but
that's
actually,
what
makes
it
I
think
really
cool
is
that
it
gives
you
bridges
between
the
languages,
which
is,
I
think,
really
what
you
need
to
do
this
properly.
So
you
can
like
wrap
a
python
object
as
sort
of
the
equivalent
closure
object,
or
vice
versa.
Okay,.
C
The
stuff
that's
being
used
in
like
data
type
next
and
what
is
it,
tech,
the
tech
ml?
You
know
data
set
et
cetera,
stuff,
so
yeah
it
would
yeah
that
there's
thinking
to
do
there
to
be
sure,
it's
not
you
know
not
not
necessarily
a
super.
You
know
obvious
path
forward
and
there'll
be
lots
of
technical
problems
to
solve,
but
but
yeah
I
think,
it'd
be
interesting.
D
Yeah
I've
been
looking
at
techno
stuff
more
lately
only
because
they
have
a
lot
of
really
good
readers,
and
I
know
they
have
like
some
of
that
port
of
the
cljs
and
it'll
be
great
to
have
you
know
I
work
so
much
in
like
vectors
and
maps
that
it
just
chrome
is
not
good
at
handling
all
that
stuff
right
yeah,
but
I
got
like
a
smaller
format
as
it
uses
less
memory
and
is
potentially
faster
right.
D
I
mean
you've
seen
some
of
the
stuff
I'm
doing
in
the
front
end
like
you
know
the
summing
and
the
averaging
and
the
group
by
like
doing
that
in
closing
script,
like
you
really
probably
don't
want
to
be
doing
that
you
know,
but
it
works
right,
yeah,
so
yeah
yeah
like
doing
something
like
I'm
gonna
re-aggregate.
This
data
set
right.
D
D
It
which
is
like
the
thesis
of
my
whole
thing
like
moving
it
moving
the
train
along,
but
but
yeah
better
for
thought.
The
python
thing
is
super
interesting.
If
I
could,
if
I
could,
like
brief
the
gap
between
the
data
types
and
just
have
the
execution
environment
take
in
what
I
am
already
doing
and
spit
out
what
I'm
already
doing
in
a
way
they
don't
under
and
in
a
way
that
the
system
understands
you
could
do
closure
python.
D
Close
your
python
python
to
close
your
you
know,
close
your
script
biz
and
it
really
wouldn't
matter
because
most
of
the
python
biz
libraries
spit
out
pngs
anyways,
which
is
kind
of
like
the
old
school
vega
way,
which
is
super
cake
to
use
like
it's
super
cake
for
me
to
interpret
and
show
right,
yeah,
yeah.
No,
definitely.
C
Interesting
yeah
for
me,
I'm
more
interested
in
like
being
able
to
take
in
some
data
computer
now,
mel
algorithm
and
that's
kind
of
the
or
r
for
like
stats
functionality,
and
I
don't
know
as
much
about
closures
are
or
how
you
know.
I've
used
lib
python
clj
a
bit
now,
so
you
can
speak
to
that
a
little
bit
more,
but
but
you
know
I'd,
imagine
the
same
kind
of
stuff
will
be
possible
there
again.
C
Just
I
think
about
you
know
it's
like
with
r
the
value
is
that,
like
most
of
the
stats
researchers
who've
been
operating
publishing
for
the
last
like,
however
many
years
they
will
often
publish
stuff
as
as
our
packages,
and
so
you
know,
stats
ml.
I
mean
right.
These
are
kind
of
branding
terms
as
much
as
anything
sometimes
but
but
but
yeah.
There's
there's
clearly
a
lot
of
you
know
well
wealth
of
stuff
there
that
you
can
just
plug
into
which,
which
would
be
nice
yeah.
D
Well,
technically
I
mean
it
was
so
I
use
reframe
right
so
the
whole
app
db
that
runs
this
is
essentially
I
mean
it's
essentially
just
one
big
ad
anyways,
isn't
it,
and
when
I,
when
I
save
my
eat
my
edn
rabbit
files,
it's
essentially
just
serializing
certain
keys
of
that
appdb,
like
the
certain
ones
that
don't
have
you
know
the
evaluation
result.
D
You
know
just
like
the
code
and
the
metadata,
so
I
mean
it's
probably
not
answering
your
question
right,
but
but
yeah
I
mean
that's
what
that's
what
this
save
the
server
essentially
does
right.
It
packs
it
all
up,
sends
it
there
and
when
it
opens
it
again,
it's
literally
just
merging
that
with
this
the
app
db
state
it
has.
Currently,
if
I
had
the
dev
version
up,
you
could
see
like
10x.
D
You
know
you
could
see
the
whole
giant
giant
app
dv,
because
I
use
it
to
track
the
dependencies,
the
outputs,
the
the
connections.
A
D
Yeah
yeah,
I
was
also
thinking
of
at
one
point
I
had
on
my
list.
I
wanted
to
be
able
to
export
like
a
flow
that
didn't
have
the
editor,
that
it
was
just
executing
almost
like
a
website.
Now
you
couldn't
make
it
static
completely,
because
there's
gonna
be
some
closure.
Like
hooks,
you
know
I
have
to
run
some
stuff
if
it
was
just
clojure
script.
D
I
could
probably
like
literally
just
compile
some
type
of
reframe
project
that
spits
out
a
static
or
sorry
a
shadow
project
right,
and
that
would
be
super
cool
because
then
you
could
like
use
rabbit
as
your
editor
generate
this
thing
without
the
editor
and
then
publish
that
right.
But
the
closure
pedestal
piece
makes
that
kind
of
weird.
D
But
yeah
is
that
kind
of
in
the
frame
of
what
you're
thinking
right
like
I'm
using
this
thing
to
build
something,
and
then
it
has
value
outside
of
this
as
its
own
thing,
I
don't
know,
is
that
kind
of
in
the
ballpark,
what
you
meant
or
did
I
take
that.
A
Yeah
yeah
yeah
and
that's
amazing,
that's
amazing,
and-
and
you
know
possibly
possibly
if
that
is
actually
you
know
dashboard
as
data,
then
you
could
have
a
program
which
could
generate
many
many
many
dashboards
and
deploy
them
automatically
without
any
touch
of
of
the
browser,
say
right
like
generating
this
kind
of
whole,
dag
daily
or
so.
D
Yeah,
I
kind
of
kind
of
adjacent
to
that.
I
do
have
on
my
my
road
map.
So
again
I
like
I
like
airflow.
I
like
tools
like
that
and
I
want
to
have
a
way
for
these
flows.
We
run
like
headlessly,
you
know
so
that
we
wouldn't
render
the
closure
strip
parts,
but
you
could
almost
create
like
an
etl
dag
that
would
run
you
know
just
on
at
the
java
process
and
then
connect
to
it
later
and
look
at
how
it
executed
in
the
flow
like
this
right.
D
So
you
have
all
your
etl
jobs
running
and
then
open
them
up
to
a
richer
view.
Where
I
can
inspect
the
different,
you
know
stops
it
went,
but
it
still
runs
as
a
bunch
of
sql
with
you
know,
dag
restarting
etc,
which
I
already
kind
of
have.
But
it's
still
closure
script
based
right.
I
need
to
turn
it
more
into
a
general
dag
and
run
it
on
the
back
end.
D
But
as
long
as
I'm
generating
the
same
that
same
app
db
structure
that
the
front
end
understands,
then
you
could
have
a
very
rich
ui
to
an
etl
type
tool
right.
That
also
optionally
can
produce
visualizations,
which
is
kind
of
crazy,
hybrid
kind
of
thing
that
doesn't
really
exist.
Maybe
for
good
reason
I
don't
know,
but
yeah.
That's
definitely
something
that's
on
the
list
too.
I'm
super
interested
about
this
python
idea.
Now
I
don't
know
but
anyways.
A
Beautiful
yeah
one
question:
is
there
any
potential
for
like
interacting
with
like
portal
or
reveal
in
conjunction
with
these
kind
of
embedded?
Grapples
I
was
thinking
especially
for
reveal
like
reveal,
is
able
to
kind
of
inspect
stuff.
That's
inside
the
the
java
process
to
be
kind
of
maybe
the
other
side
of
the
coin.
There.
D
Maybe
I
haven't
looked
at
those
tools,
hardly
at
all,
like
I
haven't,
I'm
not
really
even
up
to
speed
on
clerk
because,
like
I
said
the
beginning,
I
tried
I
tried
really
hard
to
get
this
out
before
I
dove
into
that
stuff
because
it
would
just
like
it
would
just
I'd
be
like.
Oh,
my
god.
D
It's
all
been
done,
my
father,
so,
but
now
that
I've
shipped
something
I
I
definitely
want
to
go
and
see
what
they're
doing
I
didn't
want
to,
because
I
knew
that
I
would
look
at
it
and
be
like.
Oh,
I
got
to
add
those
features
right.
That's
just
not
like
the
way
I
was
trying
to
go,
but
but
yeah
possibly
I
saw
portal
a
little
bit
and
a
reveal
is
more
of
like
a
more
like
a
debugging,
visualization
or
kind
of
a
step
in
you
said
stepping
into
the
job
process.
A
It's
it's
basically,
you
know,
uses
the
the
the
closure
java,
reptile
and
then
basically
kind
of
has
a.
I
think.
It's
like
the
clj
effects,
java
specs
based
ui
kind
of
layer
where
it
can
visualize
the
results
for
easier
kind
of
selecting,
and
you
know,
sort
of
direct
interaction
with
results,
but
also
there's
kind
of
like
some
sort
of
like
plug-ins
substrates.
A
D
All
right
I'll
check
it
out.
Actually
you
remind
me
of
one
thing
before
before
before
daniel
before
daniel
used
me
here,
it's
kind
of
adjacent.
I
have
this
thing
where
I
can
turn
on
block
profiling,
which
basically
times
the
render
for
each
of
these
blocks,
and
you
can
see
in
the
bottom.
You
know
it
shows
you
over
time
how
long
it
takes
it
does
the
server
time.
But
you
know
it's
mostly
the
render
time
and
then,
on
top
of
that,
yeah
see
like
this
one.
D
This
hasn't
rendered
a
whole
lot,
but
they're
going
to
be
a
little
more
expensive,
but
on
top
of
that
I
can
also
say:
hey
render
the
average
render
times
the
heat
map
and
I
can
see
what's
expensive
and
what's
not?
Oh,
that's
cool,
that's
kind
of
ridiculous.
It's
one
of
those
things
right
like
how
do
we?
How
do
we
give
information
to
humans?
D
Well,
I
mean
you
can
obviously
tell
what
block
is
expensive
like
those
of
us
who
do
this
kind
of
stuff
right
without
doing
this,
but
this
is
cool,
we're
debugging,
stuff
being
like
oh,
like
well
like
these,
like
v
tables.
Are
you
know
a
lot
more
than
I
thought
and
blah
blah
blah
like
some
of
these
are
kind
of
like
warm
but
anyways?
I
think
it's
kind
of
it's
kind
of
cool.
I
kind
of
again.
A
It's
really
cool.
I
I
did
want
to
go.
I
kind
of
had
to
dip
out
for
a
minute,
but
just
the
2d
canvas.
I
know.
Maybe
it's
not
intuitive
for
everybody's
cup
of
tea,
but
I
do
feel,
like
you
know,
the
linear
format
of
traditional
files
as
successful
as
they
are.
They
do
tend
to
you
know,
flatten
out
complexity
somewhat,
so
you
know
in
our
in
free
form
text
you.
A
Kind
of
visually
made
a
huge
difference
and
I
think
yeah
it's
you
know,
maybe
not
the
end
I'll,
be
all
for
every
case,
but
I
think
to
rule
that
out.
If
somebody
only
wants
to
stick
to
like
a
you
know,
a
vertical
linear
thing:
it's
just
it's
just
flattening
things
out,
which
is
not
maybe
always
what
you
want.
You
know
to
see
like
you
said,
see
the
relationships
or
you
know,
or
just
even
see,
some
of
the
the
complexities
of
the
of
the
data
flow.
A
D
Yeah
100,
I
mean
think
about
how
we
design
applications
a
lot
of
times.
We
do
it
on
a
whiteboard
first
right
in
a
group
session
like
oh.
This
does
that
it
always
makes
way
more
sense
on
the
whiteboard
than
it
does.
When
you
know
people
start
building,
you
know
what
do
you
want
to
call
it
like?
You
know
the
endpoints
et
cetera
anyways,
but
yeah.