►
From YouTube: FXL - composable data-oriented spreadsheet library for Clojure - Anthony Khong - Scicloj Meeting 20
Description
In this meeting, Anthony Khong told about fxl: a new Clojure library for spreadsheet processing.
Moderator: Daniel Slutsky
Repo: https://github.com/zero-one-group/fxl
Slides: http://bit.ly/fxl-scicloj-presentation
A
Yeah
so
hello,
everybody.
This
is
yet
another
public
meeting
of
psycloge,
where
we
are
looking
into
tools
and
libraries
which
are
part
of
the
emerging
stack
of
data
science
and
data
exploration,
enclosure
and
amazing.
Things
have
been
happening
recently,
really
beautiful
developments,
and
one
of
them
is
this
new
library
that
anthony
kong
will
be
sharing
with
us.
A
Today,
anthony
kong,
we
have
met
anthony
in
previous
meetings
and
and
you
maybe
you
have
seen
anthony's
presentation
about
guinea,
the
library
for
spark
processing
enclosure,
and
I
think,
I'm
so
excited
to
see
a
new
thing
by
anthony,
because
I'm
still
learning
the
previous
one,
which
is
really
really
an
amazing
piece
of
software
and
anthony,
is
a
mathematician
and
statistician
and
a
machine
learning
practitioner
and
also
a
software
development,
and
also
he
is
leading
a
company
who
is
doing,
among
other
things,
software
and
analysis,
services,
enclosure
and
anthony.
A
B
Thank
you
thanks
for
that
daniel.
Let
me
start
by
sharing
my
screen.
I
think
maybe
okay,
please
let
me
know
if
you
can
see
the
the
screen.
Is
it
up?
Okay,
great,
so
yeah.
Thank
you
very
much
for
joining
us
today
and
I
suppose,
like
first
thing,
is
to
say
thank
you
as
well
to
to
daniel
and
and
and
the
cycloage
community
in
general.
B
There's
there's
been
a
lot
happening
in
the
closure
data
ecosystem,
and
I'm
really,
you
know,
excited
to
be
part
of
that
and
yeah,
I
think
daniel
is
being
you
know,
is
doing
such
a
wonderful
job
and
sort
of
rallying
everyone
and
sort
of
getting
people.
Other
people
excited
as
well.
So
thank
you,
daniel,
so
yeah.
Today
I
want
to
talk
about
spreadsheets,
and
I
mean
the
the
title
is.
B
In
particular,
like
this
certain
approach
to
building
spreadsheets
the
library
itself
is
still
very
much
a
work
in
progress,
but
I
hope
by
sort
of
presenting
the
ideas
early,
we
can
get
some
feedback
and
you
know
that
sort
of
influences
the
direction
of
the
library
and
to
quickly
cover
the
context
of
why
we
even
developed
this
right,
like
we
work
a
lot
with
enterprise,
clients
and
many
times
like
part
of
the
deliverables,
are
like
automated
excel
reports,
and
it's
just
natural
for
us
to
sort
of
like
to
have
our
own
sort
of
vocabulary
and
grammar
to
talk
about
automating
sort
of
excel
reports.
B
So
we've
got
fixel
here
today
and
yeah.
It's
pronounced
pixel
by
the
way
for
no
other
reason
than
than
slightly
poking
fun
at
the
english
language,
because
why
not
there
isn't
any
rules
for
this
right?
The
idea
is
like
f,
f
is
functional,
xl
is
excel.
You
know,
yeah,
there's
nothing
more
to
it
than
that.
B
So
the
plan
of
attack
for
today
is
that,
as
I
said,
I
want
to
focus
more
on
the
idea
right
rather
than
the
implementation,
so
the
first
section
I'll
devote
I'll,
devote
it
to
sort
of
going
over
the
high
level
view
of
you
know
of
the
thinking
and
sort
of
like
the
the
design
decisions
that
are
that
go
into
it
right
and
I'm
going
to
make
some
hypothesis
there
and
hopefully,
in
the
second
section
I'll,
be
able
to
show
it
to
you
that
you
know
this
is
this
is
a
a
nice
way
to
compose
sort
of
spreadsheet
operations
and
third
section
the
final
section:
that's
called
discussions,
but
really
it's
sort
of
like
you
know,
random
thoughts
put
together
and
hopefully
it'll
get.
B
You
know
people
talking
right,
yeah,
so,
oh,
and
also
you
know,
if
I,
if
I
don't
make
any
sense,
please
feel
free
to
stop
me
anytime,
really,
really
and
yeah.
We
can
discuss
it
then,
and
there
so
on
to
the
very
first
section,
the
motivation
and
design
goals
right.
B
So
if
you,
google,
closure
excel
right,
you'll
find
these
two
libraries
dobjor
and
excel
clj,
and
really,
I
would
very
much
say
that
they're,
more
mature
and
they're
very
well
maintained
as
well,
more
so
than
fixed
right.
So
why
bother
right
like
if
there
are
already
existing
ways
to
to
do
this
right?
B
And
you
know
one
of
my
biggest
complaints
about
the
closure
ecosystem
in
general,
as
someone
who's
relatively
new
to
closure
right,
is
that
the
community
never
rallies
behind,
like
a
single
library
like
there's,
always
this
library,
fragmentation
and
so
for
me,
at
least
this
is
you
know,
it's
very
important
for
me
to
be
able
to
justify
this
so
yeah
and
the
way
I
would
do
that
is
by
invoking
this
idea
of,
like
structured,
spreadsheets
right.
B
The
idea
of
structure
existing
libraries
are
good
for
structured
spreadsheets,
and
what
I
mean
by
that
is
that
when
you're
sort
of
dealing
with
tabular
data-
and
you
know,
you're
dealing
with
very
structured
kind
of
computations,
so,
for
instance,
this
is
a
tabular
data
right
and
maybe
in
the
spreadsheet.
The
bottom
row
is
always
the
sum
or
like
the
the
rightmost
column.
B
Is
always
some
sort
of
an
aggregation
whatever
that
can
be,
but
that's
very
structured,
very
rigid
that
way,
and
it
makes
sense
in
these
cases
to
represent
spur
sheets,
as
you
know
here,
a
vector
of
vectors
of
values
so
or
a
matrix
of
values
right
or
in
excel
clj.
B
They
have
a
vector
of
records
right,
so
fixed
key
value
pairs,
and
basically
these
are
like
good
ideas
taken
from
data
frame
like
representations
right.
So
these
are
like
proven
so
that
there
isn't
anything
wrong
with
that,
and
then
that
works
right.
But
what
about
unstructured
spreadsheets
right?
And
what
do
I
mean
by
that
and
what
I
mean
by
unstructured
spreadsheets
is
you
know
it
looks
like
they've
been
designed
by
humans
right
and
I
mean
they're
like
ad
hoc,
these
bits
and
pieces.
B
There
are
many
exceptions,
things
that
don't
line
up
really
and
a
lot
of
little
chunks,
and
the
question
is
that,
like
can
you
imagine
sort
of,
like
you
know,
what's
the
the
matrix
representation
of
this
particular
spreadsheet
right,
like
you,
have
a
lot
of
nils
and
it's
probably
quite
finicky,
to
sort
of
like
put
things
in
the
right
way
and
what
about
style
right
like
how
do
you?
How
do
you
put
things
in
a
nicer
way
like?
B
I
would
imagine
that
it's
it's
quite
difficult
to
do
that,
and
you
know
these
kind
of
spreadsheets
are
ubiquitous
right,
like
there's,
there's
nothing
wrong
with
this.
It's
actually
optimized
for
human
readability,
like
if
I
give
you
like
one
of
these
spreadsheets,
like
you
know
exactly
what
to
put
in
there.
That's
that's
actually
immediately
obvious.
B
So
to
me,
this
difference
between
structured
and
unstructured
spreadsheets
are
really
like
the
difference
between
like
prn
and
print
lm
right.
They
have
different
consumers,
ones
for
machine
readability
and
ones
for
human
readability,
and
I
want
to
sort
of
like
dig
down
a
little
bit
more
on
why
it's
kind
of
hard
to
sort
of
build.
B
These
kind
of
spreadsheets,
with
the
matrix
representation
over
the
record
representation,
and
to
do
that,
I
want
to
invoke
richard
as
you
do
right
in
a
closure
talk
and
in
his
talk,
simplicity,
matters
in
2012,
I
think
at
a
rubri
conference.
He
said
something
that
really
resonates
to
me,
but
unfortunately
it
doesn't
really
get
quite
as
much
attention
than
I
think
it
deserves,
and
he
said
like
if
order
matters.
Complexity
has
been
introduced
to
the
system
and
really
like
he's
he's
talking
about
in
the
context
of
ruby.
B
Right
like
you,
can
have
a
return
value
just
like
in
python,
like
of
multiple
return
values,
but
instead
of
doing
that,
why
don't
you
name
it
in
an
associative
map
right
and
here,
like
I've,
got
an
example
of
like
two
floats
and
two:
it's
like
you
can
have
a
function
that
returned
that
or
you
can
actually
return
this
map
instead
and
this
sort
of
like
brings
you
a
different
kind
of
clarity.
Right
like
this.
B
B
But
I
think
it's
important
to
take
a
step
back
and
abstraction,
and
hopefully
I
can
show
you
later
that
we
can
take
two
steps
forward,
and
my
hypothesis
really
is
that
what
makes
tabular
formats
hard
in
unstructured
spreadsheet
cases
is
that
you're
mixing
up
the
location
center
values
and
we
need
to
decouple
that
we
need
to
decouple
the
values
locations
and
for
that
matter,
style
as
well,
and
the
main
idea
of
fixel
is
that,
hopefully
it's.
You
know
once
once.
B
Jumping
from
that
point,
like
it's,
it's
quite
easy
where
to
see
like
where
we're
going
with
this
right.
This
thing
can
be
represented
as
an
unordered
collection
of
of
cells,
where
cell
is
just
a
map
and-
and
these
are
just
like
naked
literals
right-
these
are
like
closure
data
structures,
and
hopefully,
by
doing
this,
we
can
achieve
a
number
of
things.
B
The
first
thing
is
this
orthogonality
right,
this
sort
of
like
somewhat
some
sort
of
independence
when
you
can
sort
of
like
look
at
the
value,
location
and
style
orthogonally.
B
Hopefully
I
can
show
you
that
into
the
second
section,
and
secondly,
you
can
have
like
a
lego
like
component
development,
and
what
I
mean
is
that
you
have
this
unstructured
spreadsheet.
You
can
sort
of
like
think
about
it
and
in
little
chunks
and
these
little
chunks
will
be
manageable,
and
then
you
can
sort
of
like
compose
everything
together
in
the
end
and,
finally,
something
that
I
you
know
I
I
drive
some
enjoyment
over.
Is
that,
like
you,
can
this
representation
of
a
spreadsheet?
B
So
if
it's
small
you
can
you
can
use
dodge
or
excel
clg.
If
it's
big,
you
can
consider
going
to
apache
poi
directly,
which
is
you
know.
All
of
these
libraries
are
built
on
top
of
the
java
library,
apache
poi,
but
I
hope
sort
of
like
when
you
get
into
these
unstructured
cases
you
you
do,
give
pixel
a
go
yeah
and
you
know
for
big,
unstructured
cases.
I
you
know
I
would
sort
of
stop
that
you
know.
B
Maybe
this
is
not
the
right
thing
to
do
right
because
again,
like
unstructured
spreadsheets
for
me,
are
meant
to
be
consumed
by
humans.
Really.
What
does
it
mean
to
have
like
you
know,
big
amounts
of
data
in
one
spreadsheet
like
that,
unless
it's
going
to
be
machine
readable?
B
So
I
would
rethink
the
approach
if
you,
hopefully
you
don't
fall
into
into
this.
You
know
the
fourth
quarter
here
so
that
that's
sort
of
like
the
high
level
thinking
right
about
pixel,
this
data,
oriented
and
composable
library
right
for
spreadsheet,
and
I
sort
of
so
that's
the
hypothesis-
and
hopefully
I
can.
I
can
show
it
to
you
in
in
the
second
section,
there's
going
to
be
a
lot
of
code,
but
the
code
itself.
Doesn't
it's
nothing
special
like?
B
I
hope
it
doesn't
really
distract
you
from
from
the
the
really
important
thing
right,
which
is
the
mindset
and
sort
of
like
the
approach
to
build
a
particular
spreadsheet,
and
the
example
that
I
want
to
use
is
something
like
this
and-
and
this
is
based
on
on
real
life.
Yeah
like
this
is
a
very
simplified
version
of
something
that
we
need
to
do
for
one
of
our
clients.
B
The
context
is
that
you're,
a
manufacturing
company-
and
you
want
to
keep
track
of
your
raw
material
inventory
in
check
right.
You
have
some
some
some
idea
of
how
much
you're
using
you
know.
B
You
have
some
idea
of
how
much
you're
buying-
and
you
know
how
much
you
have
in
stock
right
now
and
you
want
to
sort
of
flag
out,
like
certain
cases
where
maybe
there's
a
risk
of
running
out
of
stock
and
we're
making
an
excel
report
to
be
printed
signed
by
hand
right
and
we're
going
to
give
it
to
our
the
head
of
supply
chain.
So
this
is
meant
to
be
printed.
It's
definitely
human
for
human
consumption
right
and
there
are
three
main
components
here.
B
The
very
first
component
is
this
sort
of
like
form
header,
and
this
is
some
sort
of
like
an
iso
requirement.
You
need
to
have,
like
you
know,
the
form
id
like
the
revision
number
and
where
it's
made
and
all
of
that,
and
then
there
are
the
actual
projections
where,
on
the
on
the
leftmost
column,
you've
got
the
the
raw
material
names
and
then
you've
got
the
the
time
in
january
february
march
and
you've
got
like
the
different
types
of
quantities
like
opening.
C
B
Outflows
opening
and
close
outflows,
and
so
on
and
so
forth,
so
there'll
be
four
quarters
in
a
year,
but
then
I've
only
sort
of
showed
you
the
very
first
one,
but
then
we're
gonna
make
the
full
four
and
then
at
the
very
bottom.
There's
gonna
be
these
like
boxes
for
people
to
say,
okay,
sort
of
that's
created
by
me,
and
this
is
approved
by
some
of
the
people
for
people
to
sign
right.
So
we're
gonna
make
these
empty
boxes
as
well,
and
also
some
some
styling
as
well.
B
So
if
it's,
if
the
stock
is
running
dangerously
low,
we're
gonna
sort
of
highlight
it
and
if
it's
negative,
we're
gonna
highlight
it
in
red,
and
so
this
is
sort
of
like
a
a
representation
of
like.
What's
you
know
the
kinds
of
spreadsheets
that
that
we
would
make
with
the
pixel-
and
this
is
sort
of
like
the
more
high-level
overview
of
what
we're
making
okay
so
at
a
very
high
level.
B
B
You
know,
it'll
be
immediately
obvious
what
this
is
when
we
encounter
an
example,
then,
as
a
final
step,
that's
literally
just
one
function,
call
which
is
you
can
write
to
excel
once
you
have
all
the
cells
sort
of
merged
together
into
one
collection
so
by
by
and
large.
This
is
how
how
we're
going
to
do
things
and
just
to
show
you
what
kind
of
control
we
can
get
with
pixel.
B
This
is
the
default
cell
right.
So
if
you
call
like
two
cell
to
to
an
empty
map,
you
get
like
a
no
value
and
then
the
coordinate
is
like
put
in
the
top
left
of
sheet.
One
sheet
one
being
the
default
sheet
and
in
excel
and
then
style,
there's
a
bunch
of
stuff
there,
but
really
like
for
most
of
the
time
you
you
wouldn't
care
about
these
things
and
you
just
leave
it
as
as
as
the
defaults
right,
maybe
you'll
sort
of
like
come
in
and
then
okay.
I
want
that
ball.
B
Okay,
so
that
you
just
sort
of
like
tweak
them
we'll
get
into
that.
So
we're
gonna
start
our
build.
The
you
know,
starting
the
build.
The
the
zeroth
step
here
is
like
okay,
get
the
data
and
I'm
imagining
like
we're
getting
the
data
from
some
sort
of
an
api
call.
You
know-
or
you
know
some
some
read
from
a
database
right,
we're
gonna
grab
the
data
and
it
doesn't
really
matter
like
how
the
data
is
laid
out.
I'm
laying
it
out
like
this
but
yeah
so
data
is.
B
The
very
first
thing
we're
going
to
work
on
and
again
we're
going
to
work
in
like
little
bits
of
components.
It's
sort
of
like
the
top
bit
right
and
here
we've
got
like
a
helper
function,
called
table
to
cells
which
takes
in
a
matrix
of
values,
and
it's
going
to
sort
of
give
you
like
this
collection
of
cells
when
you
write
it
to
excel
when
you
write
it
to
a
file
like
it's
gonna.
B
Look
like
this,
and
and
that's
that's
just
going
to
be
like
a
four
by
two
cells
right
so
and
again,
like
this
looks
kind
of
bad
right,
like
it
really
doesn't
look
presentable,
but
that's
okay.
We're
going
to
work
on
that
later,
but
first
thing
is,
is
the
value.
So
that's
the
first
component
done.
So
that's
that's
not
so
painful.
B
B
B
You
can
do
this
at
right
way
too
and
they'll
just
put
that
there,
and
this
is
sort
of
how
you
compose
like
different
collections
of
cells
together
cool.
So
that's
the
second
component
done,
and
the
third
component
is
like
this
big
chunk
right
and
we're
going
to
break
it
down
again
into
sub
components.
B
B
So
we've
got
that
the
next
thing
is
the
left
hand
column.
That's
just
going
to
show
you
like
what
raw
materials
they
are
and
we're
going
to
use
tables
to
cells
where
it's
going
to
be
a
matrix,
but
it's
going
to
be
a
vector
of
vectors
of
length
1..
So
that's
just
how
that
looks.
Like
you
know,
I
just
grabbed
this
from
some
random
website
by
the
way,
doesn't
really
mean
much
and
then
the
final
sub
component
to
this
is
the
inventory
itself.
B
So
the
inventory
is
also
just
another
table,
so
we
can
sort
of
like
pull
that
out
from
our
sort
of
data
right
and
that's.
B
There's
nothing
special
here:
it's
just
sort
of
from
the
raw
materials,
you're
gonna
grab
three
things
and
then
you're
gonna
map
through
it
all
right.
So
then,
that's
gonna,
look
like
that.
So
the
magic
happens
when
you
sort
of
like
put
these
strings
together
like
you've
got
contact
below
you've
got
the
table
header
at
the
top.
B
You
already
have
this
somewhere
on
top
of
the
source
code
right
and
then
what
sets
below
that
is
this
concat
this
right,
concatenation
of
the
column
cells
and
then
the
first
month,
second
month
and
third
month,
and
that's
that's
your
table
done
for
the
entire
quarter,
just
sort
of
like
binding
stuff
together
and
then
once
you
have
that
sort
of
like
abstracted
into
a
function,
you
can
sort
of
repeat
that
for
every
quarter
and
again,
this
is
just
contact
below
and
tab
below,
because
we
want
to
have
like
one
one
row
where
it's
just
empty
and
it's
just
sort
of
like
bind
things
together
and
now
you
have
this
like
full
year
of
data
and
the
rest
is
just
sort
of
like
putting
it
into
like
one
spreadsheet.
B
Okay,
there's
the
form
header.
There's
the
inventory
bodies
and
then
there's
the
footer
using
the
same
kind
of
functions,
but
that's
so
so
that's
the
data
and
the
layout
done
right,
but
it
still
looks
kind
of
ugly
and
the
beauty
of
this
is
that
you
can
sort
of
think
about
the
styles
a
bit
later
and
you
you
can
have
this
sort
of
like
utility
functions
of
so
where
you
sort
of
come
in
and
just
modify
a
particular
style
of
the
cell.
B
It
doesn't
really
matter,
like
you
know,
bold
or
a
lime
gray
background
whatever,
and
you
can
even
have
something
a
little
bit
more
complex
sort
of
like
okay,
look
up
the
value
see
if
the
quantity
is
of
a
certain
range,
and
then
I
want
to.
I
want
to
highlight
it
appropriately,
but
all
of
these
stuff
suggests
closure
functions.
These
are
just
operations
on
maps
right.
These
are
just
associates
for
the
most
part,
and
the
idea
is
that
you
just
sort
of
style
it
in
the
right
way,
so
I'm
going
to
style
the
inventory.
B
B
B
And
yeah
in
essence,
sort
of
like
we're
dealing
with
the
three
different
key
value
pairs
of
separately,
so
that
at
any
given
time
we're
working
with
like
manageable
chunk,
and
it's
only
you
know,
we
can
sort
of
like
compose
this
simple
chunks
together,
simple
operations
together
into
something
that's
quite
complex
and
anyway.
This
is
just
a
simple
example
of
that
and
on
to
the
sort
of,
like
the
you
know,
the
random
thoughts
right.
B
B
And
although
the
cells
are
represented
as
just
naked
closure
data
structures
like
closure,
literals
literally,
you
can
put
that
which
is
and
just
like
a
but
like
that
collection
put
that
in
a
in
a
clj
file
and
that's
your
spreadsheet
right.
There
right.
There
and
apache
poi
actually
comes
in
very,
very
late,
and
this
is
sort
of
like
the
apache
poi
is
like
a
very
imperative.
B
It's
a
java
library
right,
so
you
sort
of
like
set
cells
and
you
know
put
stuff
there
set
background
and
all
of
these
stuff
that,
but
that
comes
in
very,
very
late.
So
what
we've
done
really
is
that
we've
pushed
this
sort
of
imperative
parts
of
the
application
to
the
to
the
very
end.
B
So
we
only
deal
with
for
the
most
part
we
deal
with
closure
data
structures
and
at
the
very
last
minute
we
just
do
write
xlxx
and-
and
that's
that
that's
sort
of
like
the
this
gary
bernhardt's
maxim
of
you
know
functional
core
and
imperative
share
right,
so
that
that's
that's
one
thing!
That's
that's
quite
nice
about
this
sort
of
setup,
and
the
other
thing
is
that
if
you
all
like
a
lot
of
our
helper
functions
are
actually
a
function.
B
That's
take
that
that
takes
a
cell
as
an
argument
and
then
returns
another
cell
or
takes
in
a
collection
of
cells
and
returns
a
collection
of
cell
in
a
sense
like
they
form
this
monoid
right,
so
you
can
sort
of
like
arbitrarily
compose
them
together
and
for
me
this
is
this:
is
the
lego-like
quality
that
you're
looking
for
when
you
have
this
arbitrary
composition,
when
the
input
of
one
thing
can
be
the
output
of
the
other
one,
and
that
can
be
the
input
to
another
operation,
so
we're
just
playing
around
with
monarchs
really
and
finally,
you
know
sort
of
like
circling
back
to
this
idea
of
simplicity
for
spreadsheets
right
for
me,
they're,
like
really
three
important
factors
here:
that's
data,
orientedness,
immutability
and
unorderedness,
and
without
data-orientedness,
if
you
sort
of
like
hide
stuff
right
into
like
its
own
classes,
it's
on
objects.
B
It's
sorry!
Oh,
I
think
that's
a
random
noise!
Okay!
So
if
you
don't
have
data
orientedness,
you
don't
get
this
nice
closure
facilities
of
like
association,
get
in
all
of
these
stuff
right
and
if
you
don't
have
immutability,
you
sort
of
have
to
think
about
the
value
of
of
the
spreadsheet
over
time,
and
that's
not
nice,
and
if
you
don't
have
unordered
nurse
you're,
basically
completing
these
values
and
the
locations
together
and
that
that
ends
up
being
useful
for
certain
cases,
but
not
for
other
cases,
so
yeah.
B
So
for
me,
these
are
the
three
ingredients
for
simplicity
and
finally,
like
just
just
a
thought
right,
like
fix
those
operations
and
not
like
completely
order
free
right
like
we
haven't,
talked
about
like
cells
that
are
in
the
same
coordinates
and
then
they
would
override
one
another.
We
haven't
talked
about
merged
cells
and
they'll
sort
of
like
sit
on
top
of
another
cell,
so
there
there
are
complications
so
and
and
obviously
the
the
order
of
how
you
compose
these
operations
matters
as
well.
B
Obviously,
like
you
can
change
the
border
and
then
you
can
change
the
font
color,
and
then
you
can
switch
that
around.
That
order
of
composition
is
fine,
but
then
some
compositions
matter.
So
when
you're
looking
at
the
value
and
then
you're
later
on
changing
the
value
yeah.
So
it's
not.
Everything
is
order
free
right,
but
a
lot
of
it
are,
and
it's
like
a
final
thought
on
spreadsheets
right,
like
we've,
really
been
talking
about
like
writing
or
building
a
spreadsheet.
B
But
we
haven't
really
spoken
a
lot
about
like
parsing
a
spreadsheet,
you
can
load
a
spreadsheet
to
pixel
on
pixel
right
and
then
you'll
just
get
a
collection
of
cells
again.
B
But
then
I
would
imagine
it'd
be
pretty
hard
to
break
it
down
into
components.
If
you
think
about
sort
of
the
example
that
we
just
looked
at
like
we
thought
about
it
as
components,
and
then
we
put
them
together
together
in
the
end,
but
then
once
you've
got
a
blob
and
then
you
sort
of
you
want
to
parse
it
back
into
different
and
different
components.
Unless
you
have
a
template
that
that's
going
to
be
very
difficult.
B
So
that's
that's
a
harder
problem
than
building
spreadsheets.
I
feel,
but
maybe
it's
okay,
because
maybe
it's
okay,
that
we
don't
have
like
a
good
solution
for
that,
because
at
the
end
of
the
day
like
these
spreadsheets
are
consumed
predominantly
by
humans.
Right
like
it,
doesn't
have
to
be
as
machine
readable
and
if
you
want
it
to
be
machine
readable,
you
really
opt
for
these
more
structured
kind
of
spreadsheets,
so
maybe
there's
a
symmetry
of
needs
here
anyway.
That's
that's
the
end
of
a
brief
talk.
B
B
Very
welcome
and
zach
recently
contributed
a
fair
amount
and,
and-
and
that
was
awesome,
he
really
implemented
some
some
really
useful
features
for
us.
So
yeah
contributions
are
welcome.
Yeah
and
thank
you.
Thank
you
for
listening.
A
Beautiful,
thank
you
so
much
great,
so
yeah.
I
feel
that
I
want
to
ask
a
lot
now
and-
and
I
imagine
that
there
will
be
questions
now,
should
we
maybe
have
a
small
discussion
and
then
a
break
and
then
some
more
discussion.
Does
it
sound
good
sure
sure,
yeah
wonderful?
Does
anybody
want
to
ask
anything.
B
So
everything
is
packed.
Everything
is
like
strictly
spec.
So
before
you,
you
write
when
you
do
write
excel
execs.
It
it'll
sort
of
check
whether
or
not
it
complies
to
the
to
the
cell
spec
and
then,
if
it
doesn't
it'll
point
to
you
exactly
where,
where
things
are
missing
or
wrong.
B
Yeah
so
yeah
it'll
be
spec
error;
errors
right,
like
validation,
errors,
which
are
yeah.
F
G
This
is
really
fantastic
work
anthony.
So
thank
you.
Thank
you.
Thank
you
for
this
now,
when
you
talk
about
spreadsheets,
we
need
to
also
talk
about
csv
files
and
other
spreadsheets,
like
google,
spreadsheets
and
google
sheets
and
numbers
from
apple.
How
does
this
stand
with
those
formats.
B
So
this
was
developed
with
excel
in
mind,
but
zac
implemented
the
google
sheets
part.
So
you
can
just
write
sheets
read
sheets
in
theory.
It
should
really
be
free
of
excel
right,
but
then
the
defaults
are
excel.
So
yeah,
I
don't
see
any
reason
I
was
looking
at.
So
google
sheets
are
definitely
impossible.
B
B
G
So
with
google
sheets,
obviously
you
can
given
a
uri
or
url
for
that
right,
but
with
the
excel
also
is
it?
Is
that
something
you
can
do
to
point
it
to
a
url
where
an
excel
spreadsheet
say,
for
example,
if
it's
on
a
sharepoint
site
or
something?
G
B
I
I
haven't
looked
into
that
I'm
afraid
so
for
excel.
It's
just
paths
for
google
sheets
zac,
correct
me
if
I'm
wrong,
but
there's
a
spreadsheet
id
right
and
and
that
that's
just
that
and
then
google
will
check
your
credentials
and
see
if
you
have
right
access
or
read
access.
F
Sure,
but
I
think,
when
talking
about
pixel
it
it's
more
like
it
produces
a
xl
file
as
in
that's
that's
where
the
default
start,
what
apache
pi
produces,
so
that
can
be
read
on
libra
office
call
as
like.
Okay,
the
same
as
like
excel,
I
see
I.
B
See
but
then
there's
the
odt
file
format
as
well,
which
is
different
to
xlsx
right
yeah,
I'm
wondering,
if
sort
of
like
you
can
do
instead
of
right
xlx,
you
can
write
odt,
but
then
you
still
have
the
same
collection
of
cells
and
that
that
thing
should
be
abstracted
away
from
you.
You
shouldn't
have
to
care,
so
I
think
that
that's
something
like
a
worthwhile
feature
to
have,
which
is
currently
not
implemented.
Of
course,.
C
C
I
looked
at
the
options
and
it
didn't
seem
quite
the
interface
of
dr
and
excel
clojure
were
quite
as
what
I
was
looking
for.
So
I
kept
on
looking
because
vexel
didn't
show
up
at
first
and
then
I
looked
at
effects
and
I
realized
immediately
that
it
really
played
very
well
with
genie.
Was
that
an
accident
or
was
it
something
planned
or
is
it
an
ecosystem
that
you're
trying
to
build?
C
A
Maybe
if
it
is
okay,
let
us
remind
the
ordinate
the
audience
what
guinea
is.
Okay,.
B
Yeah
sure
so
guinea
is
another
library,
developed
value,
zero
and
group
to
do
data
frames.
So
it's
meant
to
be
closure
data
frames.
It
runs
on
spark
at
first.
I
called
it
a
rapper,
a
spark
wrapper,
but
then
I
didn't
wanna
sort
of
get
tied
into
sort
of
like
committing
into
just
the
spark
api.
So
it's
it's
it's
it's
a
data
frame
library,
basically
and
obviously
there's
sort
of
like
an
overlap
between
sort
of
playing
around
with
data
and
maybe
wanting
to
represent
that
into
spreadsheets.
B
So
this
is
sort
of
where
the
intersection
between
guinea
and
pixel
comes
in
yeah.
So
that's
that's
the
context
I
suppose,
but
but
yeah
andres
like
what
do
you
mean
by
it?
It
works
nicely
together.
C
Well,
so
if,
if
I'm
doing
something
with
a
data
frame,
and
then
I
collect
my
data
frame
right,
I
get
a
really
nice
map
and
then
in
textile
I
can
use
the
map
to
rows
function
and
voila.
I
have
my
spreadsheet
it's
in
it's
inc.
It's
really
a
nice
way
to
produce
output
from
guinea.
Really
nice
really
easy.
C
B
That's,
that's
wonderful
to
know
the
the
two
projects
are
are
unrelated,
actually
like
it's
just
it's
born
out
of
like
different
works
for
different
clients.
We,
the
the
intersection,
is
where,
where
I
sort
of
used
it
is
when
I'm
working
something
with
guinea
right
and
then
I
need
to
send
something:
some
sort
of
data
and
csv
format,
and
that's
why
I
write
to
google
sheets
like
that,
but
that
was
that
was
the
extent
to
the
sort
of
how
I
used
it
together.
A
Great
yeah,
so
I
guess
in
a
moment
it
will
be
maybe
a
good
timing
for
break
and
let
us
maybe
think
what
we
want
to
ask
anthony
after
the
break.
I
think
to
me
this
talk
was
really
like
enlightening
in
a
way
that
that
it
brings
us
thoughts
about
what
could
be
done
right
and
maybe
we.
A
A
Hello
again
to
the
recording,
we
are
back
from
the
back
from
the
break
and
we
will
now
continue
our
discussion
and
maybe
here's
a
suggestion,
like
a
general
suggestion
for
how
we
could
go
about
it,
something
that
we
really
like
to
do
after
talks
and
after
we
have
a
new
library
is
to
have
those
weekend
meetings
where
we
are
studying
together
and
practicing
and
exploring.
A
And
if
anybody
wants
to
bring
up
some
use
case
or
some
technical
question,
then
we
can
offer
it
now
and
maybe
bring
it
to
one
of
our
joint
sessions
on
one
of
the
days
and
do
it
together.
So
let
us
think
about
it
great
so
anthony
you
were
about
to
show
your
screen
and
show
something
right.
Yeah.
B
So
I
think
elena
asked
about
if,
if
like
what
what
the
error
message
is
like
so
here
we're
just
sort
of
writing
like
just
one
cell,
but
andres
pointed
out
that
if
you,
if
you
don't
have
a
value,
it'll
complain.
B
So
here
we
don't
have
a
value
right
and
then,
when
we
try
to
write
it,
it
says:
okay,
spec
failed
should
contain
key
value
and
yeah
that's
and
then
it
also
tells
you
right.
It
can
be
a
nil
or
it
can
be
something
but
yeah.
That's
the
kind
of
error
message
you
get.
I
suppose.
A
Yeah
and
maybe
I'll
ask
something,
I'm
sure
so
some
experience
that
I've
had
with
myself
and
people
around
me
is
that
sometimes
we
use
spreadsheets
to
solve
some
life
problems
like
accounting
or
something
like
that,
and
then
sometimes
there
is
this
happiness
that
actually
we
have
a
tool
that
is
useful
and
can
help
us,
and
I
think
this
this
happiness
about
spreadsheets
is
something
that
many
people
have
not
only
software
people
not
only
programmers
but
then
sometimes
it
is
actually
difficult
and-
and
we
find
ourselves
doing
a
lot
of
manual
work
with
spreadsheets
like
doing
some
repetition
with
all
the
cells,
because
we
know
what
we
need
to
do,
but
we
don't
have
a
way
to
program
it,
or
maybe
we
don't
know
how
and
so
fixel
or
something
like
that
could
possibly
open
a
door
for
many
people
to
enjoy
the
joy
of
closure.
A
B
At
the
moment,
like
I,
I
don't
know,
if
you're,
if
you're
thinking
about
sort
of
like
taking
into
account
like
excel
formulae,
right
or
actually
doing
the
logic,
enclosure
and
then
taking
excel
as
just
sort
of
kind
of
like
your
front
end
right
like
this
is
how
I'm
going
to
present
it,
because,
if
you're
thinking
about
it
as
a
front
end,
I
think
I
think
that
works.
You
can
definitely
use
closure
to
do
all
your
your
logic
and
then,
and
just
put
it
in
an
excel,
and
then
it
looks
nicer.
B
So
it's
more
friendly
to
it's
more
readable
but
support
for
formulae
and
sort
of
creating
like
complex
applications
in
excel
and
doing
it
through
closure.
I
don't
know
one,
it's
not
it's
not
implemented,
and
I
don't
know
if
that.
That's
how
painful
that
that
that
would
be
so
I
I
suppose
yeah
that
part,
I'm
not
entirely
sure
of.
I
don't
know.
If
I
fully
answer
your
question.
C
I
have
a
question
anthony,
so
you
said
that,
fortunately,
for
formulas
are
not
implemented,
but
I
think
zach
has
at
least
the
beginnings
of
it
right
because
I
used
them
already
you
can
you
can
you
can
write
a
an
excel
formula
with
with
vexil
and
a
question
that
I
had
was,
if
you
have
given
any
thought
of
how
to
how
to
do
the
notation,
because
right
now,
what
one
can
do
is
do
a
very
simple
excel
range
formula
right,
something
like
some
a2
to
a20
right,
just
as
you
would,
but
I'm
you
know,
I've
been
thinking
about.
C
You
know
a
little
bit
of
about
this
problem
because
I
think
you'd
be
wondering
wonderful.
If,
if
there
was
a
notation
where
you
could
have
maybe
the
concept
of
an
anchor
point
and
automatically
generate
the
formulas
right,
yeah.
B
So
yeah,
I
suppose,
just
to
clarify,
like
formulae
are,
are
supported,
but
then,
as
as
andres
point
out
like
a
lot
of
the
excel
formula
like
you
need
to
specify
like
a5
ff6
to
like
g12
right
like
that's,
that's
a
little
bit
like
it's
not
impossible
to
do
it
programmatically,
but
then,
like
from
a
user
experience
perspective.
That's
that's
really
not
nice
right.
B
So,
for
me,
like
formulae
is,
is
sort
of
unsolved
at
the
moment
but
yeah
I
I
I
the
way
I
would
think
about
it
is,
I
suppose,
sort
of
how
we,
how
how
you're
using
it
at
the
moment,
andreas
so
maybe
you're,
sort
of
like
okay,
you
need
to
sum
this
particular
cells.
Then
we
can
have
a
helper
function,
that
sort
of
scans
the
cell
and
then
think
about
like
okay.
B
What
would
that
map
out
to
to
the
this
a1
coordinates
right
and
that
that
could
be
helpful,
but
then
I
would
think
about
the
use
cases
first.
I
suppose
and
then
think
about
sort
of,
like
nice,
nice
abstractions
to
work
with
that,
but
yeah.
I
I
don't
have
a
good
answer
for
that
at
the
moment.
I'm
afraid.
B
I
don't
know
is
that
exactly
you
have
like
an
idea
from
this.
C
Yeah,
it's
really
helpful,
so
maybe
daniel
would
be
appropriate
to
give
some
some
perspective
on
the
work
I've
done
with
with
in
this
area.
C
C
The
idea
back
then
was
that
you
could
generate
excel
spreadsheets
by
actually
opening
up
excel
and
then
interacting
directly
with
excel's
object
system,
and
it
proved
to
be
really
helpful
because
clients
like
to
be
able
to
get
a
spreadsheet
and
then
they
like
to
modify
it.
They
want
to
add
more
computations.
C
Maybe
they
want
to
import
numbers
that
they
have
access
to.
So,
for
instance,
I
can
produce
sales,
information
and
a
client
can
have
margin
information,
and
then
they
do
the
merge
within
excel,
and
then
they
can
have
a
spreadsheet
that
is
richer.
It
perhaps
they're,
not
they
don't
feel
comfortable
sharing
the
numbers
that
you
know
their
margin
numbers
with
me
that
they
are,
they
can
do
that
themselves.
C
So
what
I
find
really
exciting
about
the
work
that
anthony
is
doing
is
that
it
really
pivots
away
from
objects
and
really
moves
into
data
structures,
so
so
that
you
can
actually
think
about
the
problem
and
then
the
excel
implementation
is
completely
orthogonal
to
the
production
of
data.
C
So
I
think
that's
really
where
the
novelty
lies-
and
you
know
I
think
anthony
doesn't
take
enough
credit,
but
the
same
thing
happens
with
kenny,
where
a
lot
of
attention
has
been
given
to
the
ergonomics
of
data
processing.
So
I
I
you
start.
I
use
spark
starting
back
in
2014
and
I
was
reasonably
proficient,
but
I
always
felt
difficult
to
think
in
a
spark-like
fashion
and
I
feel
that
the
guinea
implementation
you
can
call
it
a
wrapper,
but
it's
a
really
ergonomic
wrapper.
B
Thank
you
andres
that
that
really
really
makes
my
day.
That's
thank
you
for
the
kind
words.
G
Unstructured
spreadsheets
structural
spreadsheets
are
easy
right.
It's
but
unstructured
spreadsheets
can
get
pretty
tricky
and
yeah
is.
Is
that
something
you're
going
to
talk
about
later,
or
that
sounds
like
a
machine
learning
problem
right?
I
don't
know
well
not
well,
it's
not
quite
unstructured
right
and
we're
talking
about
semi-structured,
okay,
yeah.
In
a
way
right.
G
It's
not
completely
unstructured
right,
because
just
from
the
examples
that
you
showed
right,
you
have
a
header
section
and
then
you
have
some
body,
and
then
you
have
some
a
footer
section
and
in
the
body
itself
it
can
be
broken
up
into
different
sections
within
it
right.
So
one
of
the
ways
to
approach
this
is
to
provide
a
templating
mechanism.
G
Where
say,
if
you
have
you
know,
if
you
want
to
process
multiple
spreadsheets,
and
this
is
what
usually
happens
right,
you
have
a
number
of
spreadsheets
which
follow
a
certain
pattern
that
you
want.
You
need
to
process
and
for
whatever
purpose
and
to
be
able
to
describe
that
template
right
would
be
very
useful.
Then
you
can
say:
hey
you
know,
process
this
set
of
documents
using
this
template,
and
that
set
of
documents
using
a
different
template,
so
is.
Is
that
something
that
seems
feasible
within
the
you
know.
B
Pixel
space
yeah,
so
so
so,
just
a
bit
of
background
right,
like
fixel,
is,
was
originally
implemented
at
python
and
but
then
we
we
haven't
really
open
source
that
that
part,
because
it's
not
as
well
thought
out.
I
thought,
but
the
the
the
similar
ideas
are
there
sort
of
like
providing
everything
in
dictionaries
and
then
writing
it
with
open
pi
excel
later
on.
B
What
we
do
for
our
client
is
actually
something
like
that:
they
they
don't
want
to
input
stuff
on
a
web
ui
right
like
they.
Don't
they
don't
want
to
input
like
so
so
we
make
them
solvers.
You
know
to
to
tell
them
like
like
how
to
do
purchase
planning,
but
let's
just
put
it
that
way,
but
there's
a
lot
a
lot
of
parameters.
They
don't
want
to
sort
of
like
put
them
one
by
one
on
the
web
ui,
but
they
already
have
like
spreadsheet
reports.
B
So
what
we
do
for
them
is
we
we
parse
their
spreadsheet
reports
and
then
we
spit
out
like
something
something
like
that
right
like
something
I
presented
previously,
but
the
parsing
part
for
me
is.
Is
I
mean
the
way
we
do?
That
is
really
not
not
so
elegant,
it's
more
like
okay,
the
sort
of
like
a
dividing
line
and
that's
going
to
be
your
top
section.
But
then
it's
it's
very
hard
to
it's
very
easy
to
make
a
mistake
there.
B
So
I
haven't,
I
haven't,
come
across
like
an
elegant
way
of
doing
it.
So
that's
why
I
haven't
really
spoken
about
it,
but
yeah
some,
some
sort
of
templating,
some
sort
of
like
a
pixel
template
and
then,
when
you
load
it
and
then
you
can
sort
of
load
it
to
the
template,
but
yeah.
That's
still
an
abstract
idea
for
me,
like
I
still
don't
know
how
to
sort
of
crystallize
that,
as
I
suppose.
G
Yeah,
it's
definitely
not
an
easy
one,
and
even
for
structured
templates,
structured
spreadsheets
right,
sometimes
it
can
get
a
little
tricky
and
one
approach
I've
started
taking
is,
or
I
took
in
the
past-
was
to
create
the
template
itself
as
an
excel
file
and
then
and
then
read
that
in
and
use
that,
as
as
a
template
to
match
against-
and
so
I
was
thinking
of
this
in
the
same
way,
is
you
describe
the
template
itself
in
excel
right
and
that
becomes
yeah.
G
It
becomes
a
very
visual
representation,
then
right,
right,
right
and-
and
that
makes
it
I
think,
a
lot
easier
to,
and
especially
for
end
users
right
when,
if
you
do
this
as
a
standalone
library,
as
you
know,
you
can
run
run
it
from
the
command
line
or
or
build
it
into
an
application
right.
G
Your
your
you
have
your
import
document
documents
to
process
and
then
here
create
a
a
spreadsheet
that
yeah
create
a
sheet
which
represents
what
this
template
looks
like
right,
they're,
both
in
and
while
I,
how
do
you
get
the
yeah
yeah.
G
So
this
is
some
work
I
did
for
a
customer,
a
client
not
first
not
for
unstructured,
but
I
did
for
structured,
and
this
was
to
come
to.
This
was
a
where
I
was
converting
some
data
in
excel
spreadsheets
into
rdf
semantic
web
formats.
So
so
I
can
actually,
instead
of
you
dealing
with
spreadsheets,
I
exported
them
as
csv
files
because
they
were.
G
It
was
a
lot
easier
to
deal
with
those
right
and
then,
and
then
I
was
able
to
you,
know
parse
them
both
and
use
the
my
my
template
to
do
all
the
transforms,
rather
than
write
everything
in
closure,
so
it
kind
of
gets,
becomes
everything
it
becomes
very
declarative.
Then
right.
B
G
Yeah,
I'm
sure
I'm
sure
it
will
be
an
art
of
magnitude,
more
difficult
with
semi-structured
formats
right
right,
right,
right.
C
So
anthony
have
done
this
in
the
past
as
well,
and
I
think
the
hard
part
is
not
the
computer
part
is
the
the
human
process
part.
C
And
so
that's
that's
mean
that's
a
problem
with
excel
excel
is
really
flexible,
but
but
then
there's
there
are
no
guard
rails
for
end
users
and
processes
that
rely
on
spreadsheets.
Have
this
problem
all
of
them.
So
it's
it's.
I
think
it's
a
really
hard
problem
from
a
business
perspective,
let
alone
from
a
computing
perspective.
G
So
one
one
thing:
one
interesting
thing
that
I
found
and
I
actually
like
this-
is
using
numbers,
which
is
the
apple
product
right
and
so,
like
kind
of
like
the
spreadsheet
that
you
showed
anthony,
which
you
had
that
header
section,
and
then
you
had
a
tape.
You
had
a
table.
G
You
know
the
middle
section
with
maybe
middle
part
with,
like
you
know,
one
section
or
maybe
multiple
right,
and
then
you
have
the
lower
ones,
lower
foot
and
you
had
two
sub
sections
within
the
footer
right,
so
in
x,
in
excel
it
is
treated
as
one
sheet,
whereas
in
numbers
you
can
represent
them
as
tables
within
a
sheet
each
each
one
gets
its
unique
table
id
right
because
it's
at
the
end
of
the
day,
it's
a
composition,
right,
you're,
composing,
a
set
of
tables
in
a
single
sheet.
G
Okay,
I
see
and
in
fact
in
fxl
you
you
represent
them
as
separate.
You
are
representing
them
as
separate
functions
right
or
capturing
them
as
separate
components
that
you
assemble
together
right.
So
numbers
does
that
you
know
you
know,
treats
them
as
separate
tables
with
its
own
id
table
id
and
all
so
when
you
export
it
to
csv,
you
get
the
export
as
a
directory
comprised
of
each
of
those
tables
separately
right.
G
So
that's
one
way:
I've
been
able
to
actually
access
and
process
each
table
individually,
so
a
semi-structured
form
now
becomes
a
directory
of
csv
files.
Yeah.
B
But
hang
on,
like
I
actually
like,
I
wonder
if
we
can
do
something
similar
in
excel
like
can
we
attach
like
metadata
right
to
every
cell,
and
then
we
can
just
tell
like
this
thing
belongs
to
this
component
and
then,
when
you
read
it
back,
it's
just
sort
of
like
filtering
back
and
then
then
you
have
your
components
back
and
it
could
be
yeah
yeah.
I
I
don't
know
apache
poi
inside
out,
but
that
could
be
possible
and
that's
would
be
analogous
to
like
having
the
the
separate
tables
and
numbers.
F
G
B
It's
I
mean
I
mean
like
like
there's
a
recent
issue
right
on
sort
of
hex
hex
colors
right,
so
it
doesn't
have
to
look
ugly
as
well,
but
yeah
I
mean
it's
the
hack
right
like
if
we
can
attach
like
metadata
that
that
would
be
great.
So
you
generate
it
yeah,
so
you
generate
it
from
closure
with
the
metadata
attached
and
give
it
to
the
client
or
to
the
consumer.
B
They'll
fill
data
in,
but
then
you're
only
going
to
read
stuff
out
of
things
that
have
metadata
and
then
you'll
have
your
components
preserved.
So
that
might
be
a
nice
way
to
do
it.
A
G
Sure
I
mean
it
would
be
simple
enough
to
do.
You
know
if
it's
like
a
structured
one,
it
would
be
fairly
tricky
right.
You
can,
you
can
load
anything
any
csv
file
into
an
excel
spreadsheet
and
save
it
as
an
excel
file.
That's
easy!
G
B
One
missing
thing:
I
think,
daniel
that
that
that's
currently
not
implemented
as
it's
like
charts,
I
think,
sort
of.
If
you
can
sort
of
okay,
you've
got
your
stuff,
but
then
I
I
want
to
have
a
nice
bar
chart
next
to
it
as
well,
because
that
then
you'll
have
like
a
spreadsheet
dashboard
and-
and
you
can
just
generate
that,
like
whatever
frequency
you
like
and
that's
that
can
be
your
dashboard.
Basically.
B
C
Xlts,
you
can
use
excel
templates,
and
so
what
you
do
is
you
create
an
excel
template
and
you
populate
certain
cells
and
then,
when
the
spreadsheet
opens
in
excel
it
auto-generates
any
graphical
object
that
uses
that
range.
That's
the
name
they
give
to
the
matrix
in
excel
right.
So
so
there's
a
really
easy
hack
to
do
that.
B
So
yeah,
so
someone
would
make
the
excel
template
by
on
excel
right
right.
C
So
what
I
did
in
the
past,
it
created
excel
templates
and
I
populated
a
tab
with
a
csv
file
and
then
the
formatted
part
got
the
data
from
the
excel
from
the
other
tab,
and
you
have
a
vba
program
run
and
do
the
updating
of
the
data
from
one
tab
to
the
other,
and
that
creates
that
allows
you
to
create
a
dashboard
like
you
were
saying
right.
So
it's
a
combination,
you
use
fact
you
would
use
faxel
to
populate
the
data
tab
and
then
you
would
use
excel
and
its
capabilities
to
automatically
build
the
dashboard.
B
Right,
I
I
it's
something
that
I
I
think
I
I'd
like
to
look
into,
but
is
there
like
native
support
for
for
for
charts
and
apache
poi?
I
like
no.
C
B
B
Right
so
so
you
can
generate
everything
programmatically
right,
I'm
not
super
against
this
idea
of,
like
I
don't
know,
creating
your
template,
creating,
like
some
sort
of
you
know
starting
point
in
excel
and
then
sort
of
having
it
populated,
programmatically
yeah.
I
think.
C
So
the
problem
is
that
you
are
then
locked
in
and
every
spreadsheet
requires
its
own
ad
hoc
approach
right
right.
You
know,
because
google
sheets
is
going
to
do
it
differently
and
then
numbers
is
going
to
do
it
differently
right.
So
if
we
could
do
it
through
poi
anything
that
we
can
do
that
is
platform.
Independent,
obviously,
is
that
much
better
yeah.
B
But
but
yeah
daniel,
if
we
can
make
a
spreadsheet
dashboard,
I
think
that
that
can
be
useful
for
people.
A
Can
I
ask
a
general
question
about
this
space
of
spreadsheets
because
there
are,
although
all
the
experts
are
here.
So
if
I
understand
correctly,
there
are
different
desktop
applications
for
spreadsheets
like
excel
and
libreoffice
and
numbers,
and
all
that-
and
there
are
also
some
web
applications
for
spreadsheets,
and
there
are
a
few
open
data
formats
that
most
of
these
know
to
read
and
write
like
s,
l
x,
x,
sl
x,
exactly
I
mix
the
letters.
A
That
typically
know
to
work
with
all
the
the
all
of
these,
because
they
actually
work
with
the
open
format.
Right
and
and
some
parts
are
actually
specific
to
certain
apps.
So
what
are
these
parts
which
are
not
general
actually,
which
cannot
be
shared
through
the
data
format
like,
for
example,
charts?
Are
they
standardized
or
are
they
specific
or
partially
so.
B
I
know
that
if
I
export
a
a
sheet
google
sheets
at
the
sometimes
the
the
the
charts
do
not
work
on
excel.
So
I
don't
know
if
the
the
translation
there
is
perfect,
but
that's
the
extent
to
my
knowledge
on
that
message.
C
No,
it's
actually
a
really
hard
question
and
I
haven't
done
it
recently
when
I
did
it
in
excel
format,
wasn't
open
and
so
that
really
wasn't
an
option.
You
could
hack
it,
but
you
know
clients,
don't
want
you
to
do
that.
So
so
we
didn't.
I
know
that
right
now
the
formats
are
all
xml
based
but
excel
is
a
proprietary
one
and
I
think
people
have.
C
If
you
look
at
the
poi
documentation,
they
have
reverse
engineered
a
lot
of
the
stuff
right,
but
I
think
that
yeah
so
I
mean
I
think
I
need
to
look
at
poi
and
see
what
support
there
is
for
charting
at
all
right.
B
A
Great
anthony,
can
I
ask
what
what
would
help
you
in
your
development?
If
you
wish
to
tell
also
the
people
listening
to
the
recording,
how
they
could
contribute
if
it
makes
sense.
B
Yeah
and
any
sorts
of
contributions
are
great
features
issues,
but
one
thing
that.
B
That's
that's
quite
hard
for
me
to
do,
is
sort
of,
like
I
view
a
lot
of
these
in
a
biased
lens
right,
like
I'm,
focusing
on
my
particular
use
case
so
sort
of
yeah.
I
care
a
lot
about
ergonomics.
So
if,
if
they're
like
use
cases
where,
like
you
know,
this
thing
doesn't
really
work,
yeah,
basically
dog
fooding
right
like
you're,
just
just
using
it
and
then
finding
the
watts
and
then
yeah
try
try
to
solve
them.
Yeah!
That's
that's!
B
That's
that
I
suppose,
and
you
know
for
me,
it's
like.
I
really
enjoy
that
that
people
are
using
it
and
I
you
know
we
get
to
help
people
and
that's
that's
the
extent
to
that.
Really
that
doesn't
have
to
to
be
anything
more
than
that,
at
least
for
for
our.
A
Purposes
wait
any
other
questions.
C
Daniel,
I
just
wanted
to
point
out
that
there
are
lots
of
features
that
aren't
documented
and
it's
not
a
criticism
anthony.
I
know
there's
a
lot
of
ground
to
cover,
but,
for
instance,
the
current
implementation
does
support
multiple
tabs.
C
All
you
have
to
do
is
specify
the
sheet
name
for
each
cell
and
then
it
knows
where
to
put
it.
So
it's
really
straightforward.
So
if
you
wanted
to
write
a
multi-sheet
spreadsheet,
all
you
have
to
do
is
write
a
function
that
can
then
map
all
the
cells
and
tell
them
where
to
live.
So
they
it's
really
a
nice
implementation.
C
Just
look
at
the
code.
I
mean
the
code
is
so
clean.
You
can
just
you
can
learn.
If
you
look
at
the
cell,
this
spec,
you
can
learn
a
lot
about
how
things
work.
B
Yeah,
thank
you.
Andres,
like
yeah,
I
suppose,
documentation
something
that
that
yeah,
it's
it's
it's
lacking.
A
Yeah
and
yeah,
so
maybe
it
makes
sense
anthony
if,
if
you
think
so,
to
talk
a
bit
about
your
hopes
for
the
future
in
this
development.
What
are
the
difficult
open
questions
that
you
hope
that
one
day
could
be
dreamed
of
and
also
maybe
it
is
an
opportunity
to
talk
about
other
projects,
you're
interested
in,
like
your
other
library,
guinea
or
any
other
thing
that
you
have
like
hopes
for
and
want
to
share
yeah.
A
B
I
I
think
closure
has
like
a
potential
right
like
to
to
be
this
fast,
prototyping
language
to
replace
python.
In
the
space
of
you
know,
okay,
I've
got
some
data
to
do.
I've
got
some
data
to
process
and
I
just
need
to
do
this.
These
simple
operations
and
get
some
insights
right
because
at
least
for
me
now,
like
I,
you
know
for
some
cases
I
still
reach
to
python,
even
though,
like
you
know,
I
always
have
guinea
and
then
mine,
right
and
and
and
fix
all
as
well,
but
yeah.
B
My
hope
is
that
eventually
it'll
be
like
yeah
there's
a
no-brainer
like,
let's
just
go
straight
to
closure,
a
few
things
that
that
that
that's
annoying
conclusion,
I
think,
the
start-up
time,
that's
as
annoying
guinea
start-up
time
is
as
annoying
because
spark
contacts
has
to
be
initialized
yeah.
So
so
I
you
know,
I'm
putting
a
lot
of
hopes
and
and
and
and
babashka
there's
this,
these
native
images
like,
hopefully
that
that'll
go
somewhere
right,
yeah
that
so
that's
that's
the
that's
the
dream.
B
With
respect
to
other
projects
that
I'm
working
on
nowadays,
I
do
yeah.
Unfortunately,
I
don't
use
closure
that
much
I'm
involved
in
the
machine
learning
project
now
so
that
that's
like
very
much
python
heavy
right.
B
But
we
do
optimization
a
lot
and
previously
that
was
done
in
python
as
well.
But
I
think
there's
there's
a
nice
again
data-oriented
way
of
representing
constrained
optimizations
and
there's
nice
libraries
java
libraries
around
like
or
tools
and
opti-planner,
that
I
think
we
can
wrap
and
and
have
this
language
of
constraint.
Optimization
like
we
deal
a
lot
with
like
large-scale
constraint,
optimizations
and
I'm
talking
about
like
tens
of
thousands
of
constraints
right
yeah,
so
that.
A
That's
something
so
you're.
B
No
python,
so
that's
yeah,
but
you
know
I
think,
it'll
happen
one
day.
Yeah
so
just
need
to
to
do
the
work.
I.
B
A
Yeah,
my
feeling
is
that
we're
getting
there
in
the
sense
of
soon
maybe
during
this
year
it
it
will
make
sense
to
say
that
clojure
is
ready
to
be
used
as
a
widely
used
tool
that
anyone
can
pick
and
use
for
processing
data
and
exploring
data.
And-
and
we
are
now
at
this
phase
of
asking
ourselves
what
is
missing,
asking
a
lot
and
and
and
as
much
as
we
are
asking.
There
are
actually
a
few
things
that
need
need
some
better
care,
but
people
are
looking
into
them
and,
and
so
it
feels
like
converging.
A
So
maybe
does
it
make
sense
to
ask
it
to
ask
everybody
here
if
about
their
wishes
and
about
how
they
see
this
story
of
closure
becoming
like
a
very
friendly
and
ergonomic
tool
that
anybody
can.
A
A
Yeah
and-
and
we
will
be
asking
that
a
lot
in
the
coming
weeks
and
maybe
couple
of
months
because
the
I
think
it
is
becoming
a
central
question
for
us-
there
will
be
more
opportunities
to
discuss
that
yeah.
C
To
answer
that
question
that
you
just
asked,
I
knew
the
groups,
maybe
other
people
have
spoken
before
so
I
I
use
python,
I
began
with
lisp.
There
was
something
called
x,
lisp
stat
in
the
90s,
but
when
I
went
to
work,
people
laughed
at
my
19
1988
copyright
and
I
looked
for
something
else.
I
found
python
python
does
a
really
good
job
in
terms
of
ergonomics
and
for
its
time
it
was
heads
and
above
the
best
right.
C
C
I
was
doing
a
project
for
a
large
client
and
a
bug
that
took
me
several
days
to
find,
because
I
was
inadvertently
mutating
a
dictionary,
and
so
I
I
literally
looked
for
computer
languages.
Immutable
and
clojure
came
right
up.
C
I
think
the
main
challenge
is
that
the
closure
is
easy
to
get
started
with.
I
think
it's
really
hard
to
get
good
at
it.
It's
it's
subtle.
You
know
so
so
and
anthony
please
bear
with
me
the
work
you've
done.
C
I
find
really
interesting
because
it's
taught
me
a
lot
of
how
to
think
in
a
closure
like
fashion
how
to
decompose
the
problem,
and
I
think
that's
something
that
I
think
maybe
I
might
start
thinking,
maybe
try
and
write
something
about,
because
I
think
that
is
the
that
is
the
hardest
part
to
move
from
a
declarative
object
based
approach
to
something
that
is
data-oriented
and
stream-oriented
right.
C
It's
not
you
know.
Once
you
make
the
switch,
then
it's
natural
and
you
think,
oh,
why
didn't
I
think
like
this
before,
but
I
think
it's
quite
hard
to
make
a
decision,
and
I
think
that
is
an
obstacle
for
them,
and
I
see
it
I'll
say
it.
I
think,
for
the
transition
from
python
to
clojure,
because
python
is
where
data
science
has
been
playing
for
quite
a
while.
C
B
Yeah,
I
think
you
can
count
on
chris
to
to
to
get
that
one
right
yeah,
I
think
flip
python
clg
is
their
real
deal,
yeah
yeah
one
thing.
I'd
also
like
to
add
daniel.
B
I
think
in
sami's
talk
about
about
the
closure
data
ecosystem.
He
didn't
mention
one
thing
right,
maybe
not
mentioned,
but
demonstrated
one
thing
that
that
actually
marketing
matters
like
like
he
was
showing
like
a
beginner,
maybe
someone
who
who's
new
to
closure
and
then
looking
through
the
psychology
website
and
thinking
that
it's
rather
looks
rather
old-fashioned
yeah.
B
So
maybe
it's
like
yeah
that
that
part
of
it
we
need
to
work
on
as
well
to
to
get
but
yeah.
I
don't
have
a
solution
to
that,
I'm
afraid.
A
Yeah,
so,
by
the
way
yeah,
our
friend
john
practically
has
been
working
on
creating
a
new,
beautiful
website
that
tells
the
story
of
closure
for
data
science
and
data
exploration.
It
is
still
under
construction
and
yeah.
Probably
that
is
one
of
the
problems,
but
what
else
so
andres?
A
I
think
it
was
fascinating
to
to
hear
your
view,
and
you
know
comparing
closure
to
the
ergonomics
of
python
and
I'm
wondering
what
the
gap
is,
except
for
that
conceptual
gap
that
you
were
telling
about
what
else
there
is
that
could
be
different
or
couldn't
be
different.
Maybe
that
is
back
an
obstacle.
C
So
there's
so
many
libraries
for
machine
learning
and
analytics
that
are
running
on
the
python
platform.
I
mean
the
journey
that
I've
seen
a
lot
of
people
take
is
a
lot
of
python
on
the
desktop.
Then
they
move
to
clusters
with
pi
spark.
C
C
In
fact,
I
think
of
the
space
as
a
collection
of
very
domain,
specific
libraries
running
on
a
platform
pandas
for
the
desktop
or
spark
for
clusters
right,
and
then
there
are
things
like
the
creation
of
graphical
output,
where
python
has
a
half
a
dozen
really
mature
and
beautiful
libraries,
and
I'm
aware
of
a
few
libraries
in
the
closure
space.
But
by
comparison
you
know
we
just
don't
have
the
documentation,
we
don't
have
the
examples
on
github,
you
know,
so
I
think
that's
an
area
where
I
think
we're
moving
to
it.
C
C
C
C
Very
much
like
was
able
to
do
for
r.
I
think
anthony
mentioned
something
about
marketing.
I
would
add
the
word
sizzle
right.
You
have
a
steak
that
sizzle
that's
more
appetizing.
I
feel
that
that
that
it's,
what
our
and
shiny
have
done
together.
So
I
think
that's
an
area
that
if
we
can
develop
something
more
interesting
and
I'm
thinking
here
in
terms
of
the
the
rebel
rebel
or
reveal
or
the
note
space,
I
don't
know
you've
been
working
on
some
of
that.
C
C
There
was
a
project
project
called
flambo,
that
was
usable,
but
it
really
wasn't,
in
my
opinion,
quite
as
seamless
as
what
jenny
is.
So
I
think
jenny
has
a
piece
and
I'm
kind
of
wondering
how
we
can
make
the
spark
community
more
aware
of
it,
because
I
think,
if
you
think
of
spark
and
scala
as
being
you
know,
I
think
spark
propelled
scala
forward.
C
C
C
So
right
now
in
the
world
of
data
science,
if
you
work
for
a
large
corporate
firm,
you
will
have
a
back-end
group,
doing
analytics,
spark
and
so
on,
and
then
you'll
have
front-end
people
building
dashboards
and
these
people
don't
speak
the
same
language,
I
think,
with
clojure
offers
the
potential
for
unifying
everything
so
that
you
actually
have
a
truly
integrated
development
in
terms
all
the
way
vertical
integration.
All
the
way
from
data
cleansing
to
analytics
to
front-end
presentation,
right,
factual
is
kind
of
a
sidebar
for
excel
representation.
C
Right
there
might
be
other
ways
to
represent
data.
You
know
rebel
might
be
another
way
to
do
it.
I
think
the
potential
exists
in
a
way
that
I
don't
think
is
present
even
in
the
big
gorilla,
which
is
python,
I
think
clojure
has
more
potential,
which
is
why
I'm
investing
time
and
energy
I
came
to
python
in
1999
when
it
was
not
very
popular.
C
I
feel
this
very
same
way
about
closure
today.
I
think
that
in
10
years
closure
will
be
dominant
and
I'm
hoping
that
that's
actually
true.
A
Very
enlightening
you
know,
I'm
thinking
about
the
different
aspects.
We
were
mentioning
here
like
machine
learning
and
data
processing
and
data
visualization,
and
I
think
in
most
of
them
the
situation
is
typically
better
than
we
know
in
the
sense
that
andres
you
know
earlier,
you
were
telling
me.
If
you
look
at
the
code,
you
will
see
that
the
functionality
is
already
there,
and
that
is
actually
the
situation
with
the
current
machine.
Learning
stack
that
is
emerging
and
the
data
visualization
stack
and
the
data
processing
and
what
has
not
happened
with
all
of
them.
A
Yet
is
a
beautiful
api
like
guinea
has,
which
is
actually
a
hard
work,
actually
making
a
collection
of
functions
that
live
in
harmony,
and
that
is
still
missing.
I
think
in
a
few
of
the
libraries,
but
it
means
that
we
could
be
like
a
few
weeks
or
months
away
from
something
that
is
actually
magnificent
in
in
any
of
these
fields
and
yeah.
That
is
where
we
are,
so
it
seems
right,
yeah,
any
other
thoughts
about
that.
A
Great,
does
anybody
want
to
ask
anthony
about
anything
else
or
raise
any
other
topics.
G
B
It
I
think
it's
it's
not
no.
Longer
active,
like
someone
from
imperative
said
like
like
have
you
mentioned
encounter,
that's
like
the
2010
answer
for
data
analysis
and
python.
So
and
enclosures
excuse
me
so
yeah
I
I
don't
know
I
I
tried
it
not
as
seamless
it's
like.
I
loaded
a
data
loaded,
a
data
frame
with
like
many
missing
values,
and
it's
just
crashes.
It's
not
like
yeah.
I
think
you
you
need
like
a
really
nice
engine
for
for
these
data
frame
operations,
so
yeah.
G
I
used
it
a
few
years
back
and
it
actually
was
pretty
good
back
then,
given
the
range
of
functionality
it
provided,
it
was
pretty
good
you're
right,
I
don't
see
that
being
actively
developed
and
although
they
keep
promising,
there's
a
version
two
coming
out
and
they're
up
to
1.9.3
or
something.
But
I
don't
really
see
any
active
development
going
on
right.
B
G
It
was
the
basis
for
a
lot
of
data
science
work
previously,
if
you,
if
you
go
to
their
website,
they
have
quite
detailed.
You
know
blogs
about.
You
know
stories
about
what
you
can
do
within
canter.
F
G
A
Certainly,
it
was
also
an
inspiration
for
the
current
stack
that
is
now
more
active,
and
I
think
I,
if
we
look
into
the
functionality
of
encounter,
then
most
of
it
is
present
in
both
the
the
embed
of
the
emerging
data
frame,
libraries,
which
are
guinea
and
tablecloth
and
behind
the
scenes
of
the
tablecloth,
the
tech,
dataset
technology.
I
think
both
of
them
are
covering
in
terms
of
functionality
a
lot
of
what
encounter
had
and
yeah,
and
it
would
be
great
to
think
again
what
the
gaps
are
and
how
we
should
go
about
them
right.
G
So
daniel,
since
you
mentioned
tablecloth
and
jenny
in
the
same
sentence
right,
are
we
what
how
do
they
compare
and
how
do
are
they
complementary
or
do
you
see
them,
as
you
know,
serving
different
purposes
or
what?
What
is
the,
what
is
overlap
and
what
is
the
differences?
What
are
the
differences.
A
Yeah
before
we
go
about
that,
I
think
elena
was
going
to
say
something.
Maybe
oh.
E
Well,
it
it's
kind
of
going
back
and
I
wasn't
sure
if
I
should
say
it,
but
I
was
thinking
about
what
andres
said
about
immutability
and
I'm
looking
at
it
from
pedagogical
standpoint.
You
know
I
try
to
teach
students
right
away,
first
immutable
and
then
mutable.
E
So
functional
first,
which
makes
it
easier,
but
I
think
it
would
be
interesting
to
include
so
when
we're
talking
about
sort
of
a
list
of
things
that
people
need
to
transition
from,
say
python
based
framework
to
closure
based,
I
think
immutability
needs
to
be
something
that
we
explicitly
teach
rather
than
sort
of.
Oh,
it
just
comes
with
the
territory.
E
B
I
I
I
have
a
thought
on
that.
Actually
what
what
yeah,
I'm
almost
afraid
to
say
this,
but
I
thought
what
what
helped
a
lot
to
sort
of
like
really
get
this
immutability
and
then
and
just
crocking.
It
right
is
to
understand
haskell's
type
system
and
sort
of.
E
F
E
I
hear
you,
but
I
really
think
that
it
should
be
something
where
we
know
where
people
are
coming
from.
I
mean
again,
I
think,
when
I
think
of
java,
I
think
of
ml
right.
But
that's
me,
that's
not
how
I
teach
students
and
I'm
not
sure
what
all
needs
to
happen.
E
It's
harder
for
me
to
teach
students
who
have
had
a
year
of
python
and
teach
them
racket.
Then
students
who
are
starting
from
the
ground
up
because
there
is
a
lot
of
sort
of
inverting
the
way
you
think
that
needs
to
happen,
and
so
I
think,
having
best
practices
having
tutorials
having
something
along.
Those
lines
might
be
helpful.
C
Elena,
you
are
correct
about
python.
Around
the
year,
2000
python
started
becoming
more
java,
like
if
people
started
using
setters
and
getters.
Peter
norvig
writes
really
interesting
python,
because
it's
not
like
that.
It
might
be
a
good
way
to
get
people
get
your
students
to
if
they
use
python
to
go.
Take
a
look
at
peter
norvig
and
then
use
that
approach.
E
E
Thinks
of
you
know
students
coming
in
with
some
programming
background,
but
I
think
for
people
who
have
been
doing
python
for
years.
That
might
be
an
approach,
and
I
know
that
people
write
also
interesting
java
and
javascript.
Like
everybody,
writes
lisp
and
you
know-
or
there
are
people
who
write
lisp
in
all
kinds
of
languages.
C
E
C
Yes,
okay!
Yes,
it's
a
really
interesting
way
of
thinking
about
python
because
he
doesn't
he's
he's
more
procedural.
I
mean
you
know,
so
he
doesn't
decompose
things
into
objects
right
away.
You
know,
I
know
I'm
preaching
to
the
choir.
I
think
he's
thinking
still
in
terms
of
data
as
opposed
to
objects,
and
so
he
they
python
accent
that
he
has,
I
think
is-
is
really
productive.
C
B
I
I
I
do
not
I
I
I
get
occasional
questions
on
slack
or
zoola
and
the
occasional
issues,
but
this
is
I'll,
tie
it
back
to
sivaram's
question
about
a
gunian
tablecloth
right,
but
by
and
large
everyone
who's
using
guinea
has
had
some
experience
with
they.
They
come
from
spark.
They
they're
happy
with
spark
they're,
they
also
like
closure
and
they
they
fight.
So
like
very
similar
background
as
me.
B
Basically
so
I
I
want
to
have
spark,
but
just
a
nicer
medium
language
right
yeah,
so
that
that's
the
the
situation,
but
I
know
that
the
study
group
possibly
will
be
doing
guinea
sometime
in
the
future,
so
that'll
be
an
interesting
experiment
to
see
someone
who's,
who
hasn't
had
like
a
spark
background
and
try
to
to
to
to
to
learn
the
the
library.
B
So
I
I
imagine
there'll
be
some
some
challenges
there,
because
there's
a
lot
of
spark
baggage
there
right,
yes,
yeah
yeah,
so
so
it's
sort
of
circling
back
right
like
what's.
What's
the
relationship
with
guinea
and
tablecloth
right
for
me,
like
I've,
got
I've
kind
of
sort
of
like
talked
about
this
on
zulip,
but
it's
it's
kind
of
a
half-baked
thing
right,
but
in
python
you
have
pandas
and
pi
spark
right
and
they
sort
of
like
coexist,
and
then
they
happily
coexist.
B
So
spark
is
as
a
big
monster
in
its
own
right
right.
I
think
you
can
sort
of
attract
like
people
customers
there
and
it
could
be
that
tablecloth
as
as
as
like
the
pandas
equivalent
right
and
and
to
to
to
this,
is
the
closures
equivalent
to
python
and
and
pi
spark
and
guinea.
B
So
it
doesn't
so
when,
when
people
come
in
for
the
first
time,
you'll
sort
of
usher
them
to
table
cloth,
but
then
once
they
think
about
clusters,
performance
scaling
it
up
or
just
using
all
their
cores.
Maybe
then
it's
you.
Can
you
can
start
thinking
about
about
guinea,
but
yeah?
I
mean
that's
just
a
short
thought
on
that.
B
C
Well,
so
you
write
about
the
baggage
right.
One
has
to
know
some
concepts,
but
the
documentation
you
have
is
really
good.
So
I
was
using
originally
pandas
for
my
problem,
but
then
I
was
running.
I
was
having
some
performance
problems
on
my
laptop,
so
then
I
used
any
on
the
same
equipment
and
the
performance
is
actually
way
better,
so
I'm
using
as
pandas
you
know
I
you
know,
I
work
for
a
liquor
store
chain
and
my
job
really
isn't
isn't
doing
this.
C
I
do
other
things,
but
I
ended
up
doing
this
kind
of
for
fun
and
pandas
was
not
as
ergonomic
as
guinea
by
a
by
a
long
shot.
I
mean
I'm
more
productive
and
much
quicker
in
my
running
reports
and
things
I
do
a
lot
of
ad
hoc
stuff
now
on
the
fly
with
you
know
my
bosses.
Looking
over
my
shoulder,
I
might
not
do
that
with
pandas.
C
I
think
it's
a
great
story.
I
would
love
to
for
you
to
go
to
conferences
and
open
this
up.
I
think
I
mean
I
don't
know.
If
I
mean
I
don't
know
when
the
conference
will
start
again,
you
know,
but
I'm
thinking
of
having
portal
or
their
equivalents.
I
think
that
this
would
be
really
interesting
right
as
in
going
outside
of
the
closure
world
and
then
exactly
exactly.
C
I
think,
there's
a
really
strong
story
to
tell,
because
you
know
the
way
they
sold
scala
was
by
comparing
java
the
java
program
versus
scala
program,
and
if
you
compare
scala,
spark
or
python
spark
to
gaining
programs,
I
mean,
particularly
if
you
have
the
story
with
faxel
and
other
things.
I
think
that
could
be
a
really
strong
suit
to
you
know
a
really
strong
selling
idea.
B
Yeah
yeah
yeah,
I
think
yeah.
It
should
definitely
do
that.
Thank
you
for
for
the
suggestion
that
yeah,
I
think
I
should
do
that.
A
Great,
we
are
now
at
the
end
of
the
two
hours
officially.
If
anybody
wishes
to
stay,
then
I'm
happy
to
stay
and
discuss
things,
but
maybe
a
few
of
us
need
to
leave.
A
So
thank
you
so
much
for
this,
and
I'm
so
happy
not
only
about
the
talk
but
about
that
other
discussion
that
we
just
had
now-
and
you
know
this
question
of
how
we
could
bring
up
immutability
as
a
central
notion
in
the
beginning
of
any
experience
that
that
was
really
enlightening
to
me
to
to
try
to
think
about
it
and-
and
we
need
to
make
that
part
of
the
practice
somehow
and
hopefully
we
can
make
another
meeting
just
about
that
if
it
makes
sense
and
yeah
any
other
final
comments
before
we
end
the
official
part.