►
From YouTube: Libpython-clj with Chris Nuernberger and Panthera with Alan Marazzi - Scicloj meeting 4
Description
This was the forth meeting of the Scicloj community, on July 18th, 2019, 5pm UTC -- an open online gathering of the Clojure data science community.
Chris Nuernberger discussed using Python from Clojure using Libpython-clj, and Alan Marazzi discussed using Pandas from Clojure using Panthera.
More details here:
https://twitter.com/scicloj/status/1147921086832619520
Chris Nuernberger's slides:
https://tinyurl.com/yyaxupk3
Alan Marazzi's slides:
https://tinyurl.com/yygu5zmt
Text chat of the meeting:
https://tinyurl.com/y6ct99ny
[The first few minutes of the meeting were not recorded, due to an error. Then, we restarted from scratch.]
A
Okay,
well
welcome
to
sigh
closure,
closure,
community
that
discusses
science,
data,
science,
machine
learning,
tools
and
techniques.
My
name
is
John
Stevenson,
author
of
the
practically
practically
series
of
books,
I'm
currently
running
a
study,
but
study
group
on
YouTube
I'll,
be
your
moderator
for
the
meeting
and
try
and
make
things
run
as
smoothly
as
possible.
Internet
providing
we've
had
three
really
interesting
talks.
So
far,
we've
had
a
really
interesting
talk
about
the
next
journal
by
Martin
Kevlar,
MX,
net
of
deep
learning,
with
Karen
Maya
and
detector
ml
from
Chris
Nuremberg.
A
Hopefully,
I've
said
that
correctly
this
time
and
all
these
videos
are
available
online
on
YouTube
and
this
one
will
be
available
in
the
next
within
the
next
few
days,
if
not
sooner
so,
we've
got
two
really
excellent
discussions
for
you
today
and
I
hope
you're
going
to
enjoy
them.
I
hope
you're
going
to
take
part
and
ask
lots
of
questions
as
we
go
along.
A
Chris
nirenberg
is
back
again
this
time
talking
about
lip
Python
and
using
Python
from
closure,
and,
although
there's
been
a
big
increase
in
adoption
in
data
science
using
closure
and
a
science
there's,
a
large
body
of
closure
code
and
libraries
out
there
that
we
can
tap
into,
we
just
want
to
get
things
done,
there's
no
sense
in
kind
of
reinventing
the
wheel.
All
the
time,
and
so
Chris
is
going
to
show
his
by
using
some
2d
plotting.
A
Libraries
called
math
plots
how
to
use
lib
Python
and
see
RJ
and
gives
an
example
of
what's
involved
in
using
that
library
and
there's
also
kind
of
a
like
a
next
journal.
Example:
we've
we've
already
given
you
as
I,
make
an
example
that
you
can
go
away
and
play
with
as
well,
which
is
it's
a
really
nice
platform
to
help.
You
kind
of
share
exam
examples
and
demos
without
having
to
worry
about
people's
dependencies.
A
What
we
want
to
do
with
the
community
and
how
we
can
keep
on
building
that
as
well.
So
we
really
appreciate
your
input
on
that
as
well.
So
thanks
very
much
joining
us
and
I
hope.
You'll
take
a
very
active
part
in
this
meeting
today.
We
want
you
to
if
people
have
webcams
and
they're
they're,
not
too
shy
to
share.
That
will
be
great.
The
speakers
do
appreciate
having
somebody
to
look
at
while
we're
talking.
A
So
if
you
do
have
webcam,
please
do
share
that
if
you
feel
comfortable
doing
so,
and
both
speakers
want
to
kind
of
have
it's
very
interactive
as
well
this
session
as
well.
So
please
ask
lots
of
questions.
We're
happy
to
cover
for
you
to
ask
questions
of
the
video
chat
of
your
webcam
or
you
can
ask
questions
in
the
chat
as
well
would
be
I'll,
be
monitoring
the
chat
to
see
to
ask
those
questions
as
well
make
sure
the
speaker's
see
those.
If
you
are
going
to
ask
a
question,
then
please
kind
of
mute.
A
Your
microphone
afterwards,
as
well
as
we
kind
of
minimizing
any
background
noise
as
well,
so
without
further
ado,
unless
there
are
any
burning
questions
before
we
start
I'm
gonna
hand
over
to
Chris
and
he's
going
to
touch,
teach
is
all
about
lip
Python
and
using
platform
from
closure.
If
he's
still
here,.
C
C
D
C
C
That
means
that
we're
not
getting
clean,
C
interfaces,
so
the
repercussion
of
Goose
Python,
is
that
it's
not
like
they're
taking
their
library
producing
a
really
nice
the
interface
on
top
of
it
and
then
putting
Python.
That's
the
interface
they're,
pretty
much
taking
their
library
and
binding
it
directly
to
Python.
It's
up.
C
My
experience
from
using
Python
is
that
it's
fun
I,
like
the
simplicity,
the
language
for
sure,
but
the
rental
experience
leaves
me
a
little
bit
frustrated,
often
and
just
I,
don't
feel
there's
any
weapon
experience
as
good
as
closure
and
that's
true
whether
you're
using
cleanser
from
Emacs
or
closer
from
IntelliJ
or
I.
Don't
care
how
they're,
using
it
closures,
got
a
really
good
Rubble
experience
that
that
was
a
key
part
of
design.
C
Schools
are
galvanized
and
there's
a
galvanized
office.
Just
a
couple
miles
from
my
house,
there's
Agha
when
I
schooled
a
couple
miles
per
house,
they're,
just
pumping
out
lots
and
lots
of
people
who
know
a
little
bit
of
Python
and
kind
of
a
lot
of
data
science
and
a
lot
of
data
science,
but
they
really
don't
know
a
lot
of
other
languages.
C
You
know
or
reproduce
what
they
did
in
another
form
and
then
so
this
is
this
last
point
is
I
know
going
to
be
controversial,
but
it
does
reflect
my
feeling
on
the
matter
and
that's
with
containerization
pure
Java
is
irrelevant
people
the
the
pure
Java
kind
of
we're
going
to
rebuild
everything
in
Java,
because
then
it's
pure
Java
is
oftentimes,
acting
more
as
an
acre
than
an
advantage.
You
don't
get
that
much
in.
C
In
my
job
at
least,
I
haven't
gotten
that
much
out
of
things
being
pure
Java,
but
I've
certainly
seen
a
lot
of
resources
being
built
to
rebuild
tools
in
pure
Java
that
potentially
you
know
that
that
wasn't
a
necessary
piece
of
resources,
so
my
bills
are
overall
to
make
using
pass
off
from
closure.
Really
really
enjoyable.
I
want
to
feel
like
they're
:
closure
code.
C
If,
when
you're
calling
Python
code
anyway,
shouldn't
notice
the
difference
between
using
Python
enclosure,
especially
if
something
takes
the
time
to
wrap
the
Python
libraries
with
the
library
I
want
to
know
absolutely
the
closure
is
access
to
the
latest
research.
That
is
key
for
a
lot
of
the
things
that
I
do.
I
want
to
see
how
the
latest
research
performs
against
more
standard
things,
and
especially
a
facial
rack
or
in
image
processing
in
general
or
even
in
NLP.
C
Things
are
coming
out
in
Python
before
they're,
coming
out
with
Java
bindings,
oh
for
the
long
run,
I'd
like
to
provide
a
gradual
pathway.
So
if
you
spent
a
lot
of
time
in
Python-
and
you
are
really
good
at
using
numpy
and
pandas-
and
the
massive
set
of
tools
that
are
available
in
Python
and
one
should
feel
like
you
can
use
closure,
but
you're
not
walking
away
from
years.
You've
invested
wearing
these
tools.
These
tools
are
difficult
to
learn.
C
There
have
a
lot
of
ins
and
outs
for
better
for
worse
and
they
have
a
whole
lot
of
power.
So,
even
if
there
is
some
equivalency
on
the
JVM,
if
I'm
a
really
good
place
on
programmer
and
I
want
to
learn,
closure,
I
shouldn't
have
to
pay
a
massive
tax
to
return
to
relearn
everything
that
I
know
and
so
going
down
that
path.
A
little
more
I
think
pleasure
and
Python
are
actually
really
really
really
good
complementary
languages.
C
They
are
both
timeless
and
they
both
focus
a
lot
of
times
on
getting
things
done
really
pragmatically.
Just
getting
it
done.
You
can
get
an
enormous
amount
of
things
done
in
both
languages
and
unlike
say,
groovy
or
Ruby.
Closure
and
python
are
very
different
in
some
fundamental
aspects
and
they're
different
enough
to
be
complementary.
So
using
them
both
you
cover
a
wider
spread
of
the
languages
that
people
like
to
use
and
that
sweat
is
important,
because
each
point
in
that
spread
has
a
real.
C
You
know
reason
for
being
there,
so
it
didn't
take
much
supporting
infrastructure
to
build
C
pipe
to
build
the
language
bindings
and
I,
say
this
because
there's
other
languages
like
C
Python
that
we
might
want
to
point
to
I'm
not
going
to
go
over.
These
libraries
already
have
another
text,
but
basically
it
took
these
through
libraries,
and
that
was
it
period
and
so
real
fast
before
I
get
in
actually
limos
I
want
to
talk
about.
B
A
C
C
I'll
share
these
slides
later
I'm,
not
going
to
go
back
over
the
things
already
said,
but
that's
unfortunate,
so
good
language
bindings.
The
next
choice
to
digitize
symmetries
is
the
most
important
thing
in
this
way.
I
can
I
can
transform
data
between
languages
without
you
seeing
a
whole
lot
of
engineering,
explicit
choice
between
copy
and
bridge.
This
is
really
really
important
for
performance.
C
I
haven't
flushed
out
the
deep
copy
or
the
shallow
copy
pathway,
because
it's
more
error-prone
than
the
deep
copy
pathway
between
the
JVM
and
Python,
but
in
general,
if
you're
gonna
hand
me
a
language
buying,
you
ask
me
if
it's
good
or
not
I
want
to
be
able
to
control
when
it
copies
or
win
it.
Bridges
specifically
and
you'll
see
what
I
mean
by
that
later,
it
needs
to
have
great
rebel
support.
C
I
went
through
some
amount
of
efforts
to
make
sure
that
when
you
print
taesan
objects,
it's
two
string
method
is
actually
called
in
the
closure
Ruppel,
because
a
lot
of
Python
libraries
actually
have
fantastic
support
for
printing,
mainly
pandas
and
numpy.
You
can.
You
can
print
out
really
large
number
objects
and
they
actually
have
reasonable
definitions
in
text.
It
doesn't
just
dump
every
number
to
the
screen
in
like
in
a
naive
way,
allow?
C
I
feel
is
zero
copy
pathways
for
dense
buffers,
and
so
that
means
that
I
can
actually
get
a
pointer,
a
long
integer
and
a
datatype
and
both
languages,
given
that
definition
potentially
a
shape
as
well,
but
that
definition
alone
can
do
something
on
the
same
bar
and
so
that
obviously
gets
into
mutation
and
it
gets
into
windy
copy
versus
when
you
actually
share.
But
for
things
like
a
stream
of
images
or
video,
there
might
be
a
really
good
reason.
I
don't
want
to
copy
into
the
other
language.
C
So
I
don't
wanna,
be
forced
to
all
the
time.
I
want
there
to
be
a
zero
copy
pathway,
so
both
languages
can
just
sit
on
the
native
underlying
native
structures,
and
so
this
is
this
gives
me
took
my
last
slide
really
at
this
point
and
that
just
thinking
of
it
in
your
head
before
I
jump
into
it.
C
What
if
you
could
use
Python
libraries
as
easily
as
you
use
code,
your
libraries,
what
if
it
was
just
a
matter
of
you,
know
carrots
or
tensorflow
or
who
knows
what
it
was
just
a
matter
of
import
to
python
library
and
it
hands
you
back
a
thing
and
you
can
use
it.
That's
one
aspect
I
want
you
to
think
of
because
that's
the
bridge,
I'm
trying
to
break
that
barrier,
and
the
other
thing
I
think
is
kind
of
important
is
that
from
Python.
What
if
you
can
use
JVM
objects?
C
So
if
I'm
gonna
spark
cluster
or
something
like
that,
can
I
just
hand
some
JVM
objects
into
Python
code
and
have
Python
treat
them
like
a
Python,
dict
or
a
list
or
whatever,
and
have
Python
call
them
just
as
easily
as
it
calls
lots
of
other
things.
So
in
this
way,
I
can
start
to
extend
Python
phone
closure.
The
other
direction,
which
is
also
interesting
to
do
so
here
we
go
and
so
I'm
going
to
try
to
avoid
making
the
exact
same
mistake
twice.
C
D
C
So
here
we
have
Emacs,
and
people
have
asked
me
kind
of
what
what
does
it
look
like
when
I
program
at
a
repla
before,
oddly
enough
and
I'm,
probably
one
of
the
most
people
in
what
they
land
in
that
I?
Just
use,
Emacs
and
I.
Don't
even
use
all
the
toys
Remax
often
times
I,
don't
really
get
into
that
much
I,
just
easiness,
and
so
to
save
a
little
bit.
It's
my
body
beat
up
the
struggle,
and
this
is
one
of
the
examples
that
you
can
that
come
with
lip
Python.
C
Basically,
I
thought
the
repple
and
you'll
see
a
few
of
these
logging
statements
print
out
where
it
actually
finds
Python
3
6,
and
it
cites
the
reference
thread,
because
one
thing
that
loop
Python
takes
care
of
for
you
that
you
don't
realize
and
hopefully
never
have
to
realize-
is
that
I
bind
the
Python
objects
to
the
JVM
garbage
collector.
So
when
you
create
a
bunch
of
has
n
objects,
the
duf
calls
for
always
are
bound
into
the
garbage
collector
such
that
when
your
Java
code
no
longer
is
referencing
those
python
objects.
C
Another
thread
will
defense
those
objects
telling
the
Python
runtime
that
you're
no
longer
referencing
and
that's
an
important
part
I
think
of
bridging
things
or
or
you
only
can
copy.
You
cannot
bridge
at
that
point
if
you
cannot
do
that,
so
so,
let's
create
a
place
on
dick.
So
what
is
that,
if
everybody
I
don't
know
if
you
can
see
or
not,
but
I
hit
ctrl
C
II
and
that
just
runs
the
code
that
is
next
to
the
cursor,
and
we
looked
at
that.
So
this
is
in
copying.
This
is
basically
a
Python
object.
'men.
C
C
C
This
is
the
one
thing
you
always
need
in
Python,
because
a
lot
of
times
you
get
a
random
object
back
and
you
don't
really
know
what
it's
got
and
what
it
does
or
anything
you
know
is
it
just
list
out
the
attributes
and
their
types
and
that
at
least
gives
you
some
level
the
map,
so
the
Python
library
generally
works
in
bridged
mode.
What
bridged
mode
is,
is
I
wrap
that
pointer
with
an
object.
C
This
is
one
of
my
points
is
an
instance
of
Java
that
you
told
the
map,
and
so
that
means
that
it
is
actually
going
to
interact
with
your
java
system
and
your
closure
system
like
other
job
things.
So
I
can
get
and
there's
no
keywords
in
Python,
so
things
that
were
keywords
and
strings
I
can
say
count
bridged
I
can
do
a
fancy,
double
arrow
transformation
and
get
a
persistent
map
back
so
basically,
you're
seeing
I
can
use
these
Python
objects
like
they're,
closer
objects,
and
that
was
the
that
was
a
lot
of
it.
C
C
There's
just
not
many
things
like
numpy,
it's
in
the
middle
between
like
a
pure
math
library
in
this
pragmatic
agglomeration
of
everything.
Scientists
need
to
do
in
the
last
30
years,
or
something
like
that.
It's
really
intense,
you
can
look
up
documentation
on
things
that
was
the
documentation
on
the
linspace
method
and
so
we're
gonna
call
here's
some
examples
of
calling
the
linspace
method
and
I
want
to
highlight
exactly
this
example.
C
So
from
the
actual
Python
documentation.
We
have
that
that's
going
to
fail,
I,
just
printed
out
that
and
we're
gonna
actually
call
that
message
just
like
they
said
using
keyword,
arguments
using
all
the
toys
that
we
have
in
Python
and
that
just
bubble
in
spades
method
and
gave
us
back
an
actual
numpy
array,
and
so
a
little
highlight
real,
quick
that
that
right
there
is
pretty
much
full
support
for
Python.
If
you
can
call
attributes-
and
you
can
call
them
with
keywords
and
and
normal
arguments,
then
you
pretty
much
support
all
of
Python.
C
You
may
need
to
wrap
things
in
the
clever
way
you
may
not,
but
but
you
support
a
lot
at
that
point.
So
if
we
look
at
the
non-fire
array,
we
have
you
know
actual
values
in
there
that
are
pretty
interesting.
I
can
bridge
another
array
when
it
comes
back
into
closure,
I
bridge
into
one
of
our
tech
tensors.
C
So
that's
a
key
thing,
because
a
type
tensor,
of
course
doesn't
support
nearly
enough.
Why
does
I
don't
want
to
bridge
numpy
objects
until
I
have
a
reason
to,
but
once
I
once
I
bridge
an
O,
my
object,
the
tensor
and
the
null
object
are
sharing
right
to
the
same
memory.
So
I
can
essentially
I
can
basically
set
values
on
it
and
I
want
to
just
show
this
in
the
actual
repre.
C
C
If
we
look
back
at
the
array
that
we
got
back
from
linspace,
it's
showing
that
I
had
changed
the
array
under
the
colors,
so
not
try
to
make
myself
the
least
popular
person
in
closure,
but
there
are
all
times
when
you
do
need
mutability
and
do
it
with
really
large,
dense
numeric.
Buffers
is
often
one
of
those
signs,
and
actually
that's
probably
the
only
time
really,
but
you
always
have
the
option
to
copy
the
tensor
and
there's
optimized
methods.
C
C
So
we
have
a
test
array.
We
could
just
do
tens
tester
right,
and
then
we
had
this
now
that
actually
hit
an
optimized
method,
because
the
JMA
system
optimized
that
you
can
get
the
data
back
from
the
JVM.
That
is
an
actual
weight
array.
So
I
don't
know
how
to
show
that
any
other
way,
but
like
that,
that
is
a
JD,
an
array
you
can
pass
this
in
to
one
of
the
java
matrix
libraries.
You
can
pass
it
in
to
Cantor.
You
could
pass
it
in
to
kick
Z
dot
stats.
C
Do
it
on
one,
so
you
can
get,
but
you
can
get
the
day
out.
You
give
you
in
the
format
you
want
if
you
want
to
do
a
copy,
whatever.
That
was
pretty
much.
What
I
wanted
to
show
here,
moving
on
potentially
quick,
we're
gonna,
look
s
matplotlib,
so
Matt
chocolate
is
a
very,
very
similar
numpy.
It's
something
people
worked
on
for
the
last
ten
years
and
it's
a
very
full-featured
plotting
backend,
and
this
is
actually
the
demo
that
I
have
on
next
journal.
C
So
you
can
take
this
exact
code,
not
these
exact
code,
but
pretty
close
to
this
code.
You
can
remix
the
next
journal
entry
and
you
can
start
playing
with
it
and
plot
different
things
and
see
what
happens
but
I'm,
not
gonna
actually
show
this
very
well,
because
I
can't
easily
show
the
result.
Images
do
sharing
okay.
C
C
After
so
you
can
get
the
data
out
and
do
something
else
with
it,
and
I
basically
show
various
different
things
that
happen
when
you
copy
it.
So
that's
the
next
journal
entries
is
showing
it
a
more
in-depth
integration
where,
for
instance,
the
data
types
library
of
unsigned
bytes
is
really
important,
because
everybody
who
writes
images
writes
in
an
unsigned
bikes
so
having
libraries
that
don't
know
how
to
manipulate
unsigned
data
dress.
C
What's
you
dealing
with
the
rest
of
the
world
and
I
basically
show
how
to
rearrange
data
and
that
kind
of
thing
so
I
don't
know
that
was
a
whirlwind.
I
hope
I
wasn't
talking
way
way
too
best
for
everybody
and
I
would
like
to
finish
up
a
little
bit
of
my
slides,
I.
Think
I'll
just
finish
on
the
slides
and
then
we
will
end
there.
C
With
Python
clj
isn't
finished
there
that
will
take
more
work.
That'll
take
help.
If
nobody
helps
me,
then
the
Python
glj
is
actually
finished
enough.
That
I
can
use
professionally
and
I
already
have.
If
we
want
to
have
a
really
nice
place
for
Pike
on
people
who
live,
we
should
work
on
live
Python
clj
make
the
repple
experience
really
good.
C
There's
lots
of
space
to
bill
because
there's
a
million
Python
libraries
knowing
which
are
the
best
ones
knowing
which
ones
are
worth
actually
binding
to
and
actually
building
bindings
to
them.
So
we
can
interact
with
them
like
we
do
with
any
other
closure
library.
There's
a
lot
of
work,
there'd
be
there
that
could
be
done
there
if
nothing
else
happened
to
the
Python
clj.
So
the
last
point
I
think
is
you
know
it
works.
We
can
call
tensorflow,
we
can
call
kiss,
we
can
call
in
x
net.
C
We
could
we
could
do
anything,
a
price
on
that
the
Python
people
can
do
pretty
much
and
the
price
for
this
overall
is
that
you're
going
to
have
to
use
containers
because
to
take
any
of
this
to
production,
you're
going
to
need
containers
for
it
to
work.
If
you
were
using
Python
or
any
how
to
use
containers
as
my
guess-
and
so
that's
it's
just
not
your
Java.
A
Thank
you
very
much.
Thank
you.
Chris
that
was
I
was
excellent.
I'd
learned
a
huge
amount
there,
the
very
insightful
does
anybody
have
any
kind
of
questions
before
we
move
on
to
Alan
I
thought
that
was
a
it
was
great.
It
was
great
to
see
that
you
could.
Actually,
you
could
use
this
stuff,
real
and
so
you're.
Actually
using
this
in
production
yourself
is
that
right,
Chris
I'm.
A
C
Smaller
projects
I
think
it's
good
enough
for
lots
of
projects.
I
think
we
need
to
work
hard
and
make
really
really
sure
that
the
GC,
the
two
GCS
are
actually
working
together,
really
well
right:
okay,
that's
just
a
little
bit
of
careful
stuff,
because
I
can
see
there
being
a
memory
leak
in
somewhere.
I
could
see
a
lot
of
things
happening
if
you
try
to
really
do
it,
but
quite
honestly,
when
people
run
Python
in
production,
most
of
them
are
not
expecting
that
Python
program
to
run
long
because
it
really.
A
E
C
C
F
C
F
D
What
it
is
pan
theorem
it's
a
wrapper
around
illness
and
numpy
and
to
follow
the
stork
is
better
to
actually
well
to
no
closure.
Of
course,
then
it
would
be
very
nice
if
you
know
some
Python
and
some
pandas
and
not
by,
but
we
can
deal
if
we,
if
you
don't
know
much
about
them,
because
you
don't
have
actually
to
know
abundance
and
numpy
internals.
So
we
can
deal
with
that
later
on.
I'd
really
like
this
to
be
as
interactive
as
possible.
D
D
So
why
Pantera
well,
actually,
because
we
can,
in
my
opinion,
that's
already
and
I
think
could
have
and
it's
nice,
because
we
can
feel
a
blank
in
the
closure
toolset,
because
there's
nothing
like
it
as
Chris
was
saying
earlier.
Just
numpy
is
way
way
larger
than
anything
else.
We
have
in
closure
and
I'm
talking
about
raw
functionality
here,
I'm,
not
talking
about
performance
or
API,
or
this
kind
of
things
is
just
what
there
is
in
there.
It's
just
so
much
okay
and
then
it's
an
access
point
to
a
whole
ecosystem
of
libraries.
D
I
can
show
you,
for
instance,
Joe
pandas.
What
is
Joe
pandas?
Well,
you
can
use
the
pandas
API
to
deal
with
the
geographic
data
and
it's
there
if
you
already
have
unless
on
your
hand
and
Python
and
from
closure,
you
can
do
things
like
this
pretty
easily,
because
you
have
polygons
shapes
you
just
basically
plot
them
and
that's
what
happens
and
it's
not
just
for
plotting.
Of
course,
it's
also
for
doing
pretty
much
children's
stuff.
Then
I'd
like
to
test
this.
We
didn't
at
the
time.
D
It
would
be
great
to
see
if
this
works,
because
what
modem
does
is,
do
you
just
import
it
like
this,
then
use
on
disease?
You
would
use
it
in
as
usual,
and
this
happen
what
can
be
parallelized?
It
will
be
parallelized.
So
if
it
works
I
don't
know
it
should
be
dusted.
That
would
be
really
nice
to
have.
D
What
it
is
it's
a
reasoned,
pandas,
proper
and
it's
reason
because
actually
the
numpy
wrapper
it's
not
because
not
by
it's
not
a
wrapper.
It's
a
single
access
interface
because
it's
just
completely
generated
at
runtime,
I,
didn't
drop
anything
but
we'll
see
what
I
mean
by
this
later
on.
It's
way
to
deal
with
rectangular
data
and
vectors,
and
that's
nice,
because
enclosures
is
not
so
easy
to
deal
with
that
kind
of
things.
D
You
can
do
something
but,
as
I
said
earlier,
there's
so
much
functionality
here
and
it's
there
for
us
to
just
take
it
and
then
it's
it
could
be
a
foundational
block
for
other
libraries
I
mean
both
on
the
Python
side
and
on
the
closure
side
of
things.
So
you
can
build
up
things
on
the
project
site
on
this,
because
we
actually
thanks
to
Chris's
work.
D
We
don't
lose
much
of
closure
functionality
when
we
deal
with
with
item
and
then
if
this
is
also
stopped
for
a
general
Python
packages
wrapper,
because
if
I
have
time,
I
find
a
nice
way
to
deal
with
some
modules
and
classes,
you
can
generate
propers
and
data
at
runtime
for
any
Python
libraries
with
this,
what
it
isn't
and
what
it
probably
never
will
be.
I
will
never
deal
with
machine
learning,
at
least
not
inside
Panthera,
because
there
are
very
nice
machine
learning
library
but
understand.
D
D
It
isn't
way
to
push
Motability
into
the
language,
because
I
tried
to
keep
things
as
immutable
as
possible
and
actually
numpy
and
pandas
are
helpful
in
that
regard,
because
in
the
last
few
releases
they
made
everything
as
immutable
as
possible
and
in
pandas
1.0
they
will
completely
and
totally
deprecated
the
ability
to
make
in-place
transformations.
And,
of
course,
this
isn't
a
way
to
dilute
the
closure
way.
I
mean
you
can
always
bright,
close
your
code
and
we'll
see
that
we
can
do
some
pretty
neat
stuff
with
enclosure
and
calling
by
to
code.
D
So
how
does
this
work?
Basically,
this
is
the
pandas
propter
80%
of
the
panels.
Wrapper
is
in
here,
because
what
we
do
in
hearing
with
this
function
and
this
other
function
actually
is
that
we
take
a
map
and
we
convert
that
map
to
Python
data
or
actually
to
a
representation
that
Python
likes
for
function.
Arguments-
and
this
actually
is
just
sugar
over
lip
bite
on
that
shield
clj
to
not
write
these
things
all
over
the
code
again
and
again.
D
So
what
we
can
do
now
is
we
can
define
a
data
frame
in
here
with
by
using
this
thing
we
this
is
the
pandas
module
it's
imported
in
closure.
This
is
the
data
frame
class.
Then
we
pass
in
the
data
and
then
attributes.
When
you
see
attributes,
it
means
that
there
are
many
options
that
can
be
passed
in
and
Bundys
has
I
mean
so
many
options
that
is
basically
impossible
to
remind
all
of
them,
even
for
just
a
few
methods.
D
This
is
another
way
how
to
use
a
simple
keyword
cold.
It's
the
same
thing
over
again,
just
that,
this
time,
we're
not
using
a
model
with
you
we're
using
an
object
to
call
a
method
on
that
object,
but,
as
chris
has
shown
you
before,
actually
classes
in
Python
are
basically
in
namespaces.
So
you
have
a
map
of
names
in
pattern
easily,
but
it's
the
same
thing
and
you
can,
even
if
you
don't
instance,
that
class
you'll
be
able
to
see
all
of
the
methods
and
attributes
of
that
class.
D
D
These
are
dunder
methods
in
Python.
These
are
needed
to
let
PI
to
know
how
to
add
things
together,
because
if
you
build
a
new
class-
and
it's
a
point-
maybe
you
want
to
add
points
together,
and
that
makes
sense
in
the
end.
But
then,
of
course,
python
doesn't
know
how
to
do
that.
So
you
have
to
tell
python
how
to
add
points
together
by
using
this
method.
D
Now
this
is
much
more
dense
and
this
is
how
I
brought
the
know
by,
but
I
think
it's
pretty
nice
to
see,
because
this
here
is
basically
it
and
with
this
you
can
prop
almost
whatever
you
want,
because
what
you
do
is
get
a
set
of
attributes
in
here
a
set.
It's
really
a
set
of
keywords,
and
these
are
things
I'd
like
to
get
out
of
a
Python
module
or
out
of
a
Python
glass
and
then
the
module
itself.
In
this
case,
it's
numpy
then
I
get
out
from
the
earth
type
map
Duvall's.
D
So
the
keywords
I
want.
Then
it's
just
some
sugar
to
deal
with
with
things
and
then
there's
this
function
that
takes
a
keyword
and
then
returns
a
function
that,
if
code
without
arguments,
just
returns,
data
attribute
from
that
module.
This
means
that
we're
returning
the
robe
item
function,
because
everything
in
Python
is
an
object.
You
can
pass
function
around
because
they
are
first-class,
so
we
can
actually
pass
item
functions
around
from
closure
and
I
think
that's
pretty
cool
to
do.
D
While
if
you
just
pass
attributes
of
course,
you're
going
to
call
that
function
with
those
attributes,
then
I
say
this
thing:
it's
I
build
them
up.
That
says
this
thing
is
a
function.
It
has
a
talk,
I
take
the
the
Python
back
string.
So
if
you
just
say
in
the
attributes,
when
you
call
the
function
in
here
doc,
true
you're
going
to
see
the
original
doc
string,
because
of
course
this
is
it
this.
Is
it
there's
nothing
else,
so
it's
one
I
won't
be
able
to
put
dog
strings
anywhere.
D
You
have
to
use
the
Python
ones
and
then,
of
course,
we
passed
the
original
function
in
here
and
then
just
build
a
huge
map
of
all
the
functions.
Then
we
have
this
as
an
interface
as
an
interface
to
access
all
those
functions.
If
we
call
just
and
by
without
any
argument,
we
can
see
all
the
keys
that
are
in
there
that
we
can
use
so
all
the
functions
and
or
attributes.
D
If
you
pass
the
key,
then
we
get
the
Rope
item
function
and
nothing
else.
If
we
pass
a
key
with
arguments,
then
we're
calling
that
function
with
those
arguments.
I
add
to
you
with
a
lot
of
trade-offs.
The
first
one
is
consistency
versus
accuracy
and
what
I
mean
here
me
or
I'm
not
going
to
show
you
look
up
and
right
now,
but
unders
as
a
lot
of
inconsistencies.
D
If
you
start
wandering
around
the
documentation,
you're
you'll
find
a
lot
of
them,
but
then
being
accurate
in
replicating
replicating
the
API
on
the
closure
side,
it's
nice
because
you
can
look
at
Python
code
and
junk
just
mostly
replicate
it
on
the
closure
side.
So
this
is
the
first
trade-off
and
actually
I
moved
a
little
bit
more
toward
consistency
than
accuracy
that
there
is
parallelization
versus
functionality.
I
mean
I,
don't
I
have
a
lot
of
functionality
but
of
course
in
closure.
It's
much
easy.
D
It's
much
easier
to
paralyze
stuff
and
at
this
moment
I'd
like
to
get
much
more
functionality
and
not
focus
too
much
on
these
things.
As
I
was
saying
earlier,
there's
modding,
but
we
have
to
try
that
then
laziness
versus
ease.
Of
course,
we
can
do
everything
pretty
much
lazy,
because
in
Python
you
have
generators,
they're
pretty
weird
right,
but
you
can
do
that.
D
But
then
everything
will
be
much
more
difficult
to
grasp.
So
at
this
moment
everything
is
just
on
the
easiness
side
and
then,
of
course,
the
greatest
trade-offs
of
the
Moon,
which
is
Python
versus
closure,
and
here
I'm
just
going
to
say
that
at
this
moment
the
best
thing
to
do
is
to
keep
the
closure
stuff
on
the
left
side
and
the
Python
stuff.
On
the
battle
side,
when
we
can
mix
match
things
sorry
a
bit,
but
at
this
moment
I
wouldn't
do
much
more
than
that
now
I'm
going
to
a
little
demo.
D
So
can
you
see
the
notebook?
Yes,
okay,
great
I,
already
prepare
settings
in
here,
I'm
getting
just
Fonterra.
As
you
can
see,
this
is
in
alpha
I'm,
hoping
to
release
the
first
known
alpha
version
in
the
next
few
weeks.
Alpha
here
means
that
everything
can
break
at
any
time.
Okay,
just
to
be
clear
about
that.
This
is
just
a
nice
helper
that
calls
the
two
HTML
method
of
an
object
and
we'll
see
what
happens
then
we
can
do.
D
We
can
read
this
nice
CSV
and
tell
funders
that
will
like
the
option
to
read
only
the
first
ten
rows
out
of
that
CSB,
and
this
is,
we
can
see.
We
get
only
the
first
ten
rows
and
show
does
just
this
in
the
notebook
we
get
the
HTML
representation
instead
of
the
string
one,
but
it's
the
same
date,
of
course,
but
just
to
show
that
there
are
many
ways
to
do
the
same
thing
over
and
over
again
in
Pantera.
D
D
Then
we
save,
of
course,
the
data
into
a
bar,
and
let's
move
on
to
some
more
interesting
things,
so
we
can
see
names.
These
are
the
columns.
As
you
can
see,
this
is
an
index,
but
if
we
do
back
of
the
index,
we
can
actually
deal
with
this
on
the
closure
side,
then
there's
the
function,
shape
that
says
that
we
have
a
gendered
roles
and
twelve
columns,
and
the
nice
thing
is
that
this
can
be
used
as
a
collisional
data
structure.
We
get
only
the
rows
in
this
way.
D
Okay,
then
subset
calls
if
we
put
in
E
or
just
one
of
the
names
of
the
columns,
and
this
works
the
same.
If
you
give
strings
or
keywords,
be
just
aware
that
there's
a
transformation
going
on
between
keywords
and
strings
and
it's
weird
because
in
pandas
you
can
have
spaces
in
names,
so
maybe
using
strings,
especially
at
the
beginning
at
the
beginning
is
the
best
thing
to
do.
D
This
is
a
series
every
column
in
pandas
and
in
data
frames
is
a
serious
which
is
basically
a
vector
with
a
lot
of
metadata
attached
to
it,
because
it's
indexed
as
a
name
of
course,
there's
a
link
and
there's
a
D
type.
Everything
has
to
be
one
to
type
into
a
serious
okay.
Then
we
can
say.
Yeah
also
want
to
see
HP
in
the
offense
and
we'll
get
that
frame
out
of
this.
D
Then
the
other
thing
we
can
do
this
is
how
use
and
bind
and
pipe
from
Pantera.
So
what
we
did
is
call
numpy,
lock
key
word,
which
means
called
the
load
function.
We
have
taken
the
speed
column,
so
what
this
means
is
that
we
just
called
the
log
function.
On
the
whole
column,
everything
is
vectorized
in
numpy,
so
it's
also
pretty
fast
to
do
and
most
of
the
time,
if
you
can
find
something
in
in
Pantera,
because
I
haven't
implemented
it.
Yet
you
can
choose,
you
can
either
implement
it.
D
D
Then,
of
course
you
can
transform
data
to
seal
J
this
with
this
function,
and
this
is,
of
course,
a
closure
vector
of
maps,
and
it
does
what
you
expect
it
to
do.
So
that's
it.
These
are
columns,
and
this
is
the
R
is
attached.
How
we
will
data
frames
from
scratch.
We
pass
a
vector
of
maps,
of
course,
and
we
get
a
nice
the
spring
then
filtering
a
filtering,
it's
not
as
great
right
now.
D
D
Then
this
is
the
mud,
the
mud
function,
one
of
those
we
saw
earlier
and
says:
is
it
greater
than
200
and
it
will
answer
its
vectorized,
so
it
it
will
answer
for
everyone
volume.
Let's
see,
if
that's
true,
this
is
what
happens
it
is
this
serious
greater
than
1?
What
does
it
mean?
Of
course
it
means
that
it
checks
that
every
value
is
greater
than
1
or
not.
So
if
we
do
this,
we
just
get
these
rolls
out.
D
D
There
are
many
options
for
these
functions
here.
What
we
got
is
the
mean
of
every
column,
but
then
we
can
pass
actually
an
axis
and
opt
an
axis
option
in
there
and
get
result
by
row.
Instead
of
by
column,
we
can
tell
pandas
I'm
teri
in
this
case
that
we
would
like
to
not
skip
an
ease,
for
instance,
and
this
is
what
we
do
in
here,
so
what
we
get
if
we
do
a
mean
of
a
series
with
a
nail
in
it.
Of
course,
the
result
is
not
a
number,
because
not
a
numbers
propagate.
D
Now
something
that
is
much
a
little
bit
more
complicated,
but
I
think
it's
interesting
to
see,
because
here
we're
wrapping
the
numpy
where
function.
It's
really
easy
to
do,
because
we
would
like
to
chain
it.
Let's
say,
of
course
this
is
not
nicely
chainable
by
itself,
but
but
just
by
doing
this
everything
becomes
nicer.
Then
we
have
a
function
that
calculates
the
mean
of
the
column.
So
we
say
that
frame.
Take
the
speed
column
take
the
hat.
Is
it
greater
than
its
mean
if
it's
greater
than
its
mean,
because
the
numpy
where
function?
D
Does
this
then
replace
it
with
hi,
not
replace
it,
but
right,
high
or
right
low,
otherwise
bright
low?
And
this
is
what
we
get
so
just
to
check
the
column
in
function
of
course
gets
us
the
mean,
so
we
can
save
everything
into
a
bar.
This
is
just
the
function
we
used
earlier,
the
seat
and
it's
the
whole
series,
so
the
whole
column,
and
we
can
say
that
we
can.
We
would
like
to
add
this
column
right
here,
which
is
this
one.
D
With
this
name,
okay,
using
the
assign
function
to
this
data
frame,
then
we
would
like
to
see
only
the
speed
level
and
speed
columns,
just
the
first
ten
rows
and
then
show,
which
is
just
something
to
a
bit
nicer
right
in
right.
Here
then
another
very,
very
nice
function,
its
value
counts.
Does
this?
If
you
have
categorical
values,
maybe
you
would
like
to
know
how
many
of
them
there
are
by
category
this?
Does
it
by
default?
D
You
don't
have
to
tell
it
anything
else,
then,
just
to
show
that
you
can
do
very
pretty
weird
stuff
with
already
what's
in
there,
let's
say
that
we
would
like
to
take
the
names
and
make
them
as
a
row.
There
are
many
ways
to
do
this.
One
is
to
just
call
transpose
then
present
index
then
transpose
again,
and
that's
it.
Basically,
let's
see
if
that's
true-
and
that
is
true-
we
now
have
numbers
as
column
names
and
the
first
name
James
we
had
earlier
are
now
the
first
row
of
the
data
frame.
D
So
now
what
I
would
like
to
show
you?
If,
okay,
we
have,
with
some
more
times
than
doing
pretty
fast
with
this,
we
will
just
drop
tensorflow
very
fastly.
What
I
did
is
just
start.
This
function
in
here
that
takes
classes,
okay
and
that's
mostly
the
same
thing
as
for
functions
as
you
can
see,
but
then
I
can,
in
this
patch
properly
based
on
the
type
on
the
Python
type.
D
D
D
What
I
would
like
to
do
in
the
future?
It's
too
wet
first
off
stabilizing
complete
the
ABI,
because
right
now,
there's
just
I,
don't
know
maybe
40%
of
the
pandas
API,
something
like
that
improved
odds,
I'm
working
on
that
the
problem
is
that
I
left
to
actually
fix
well,
not
fixed,
really
fix,
but
improve
the
CIJ
dock
run
time
because,
of
course,
the
content
of
containers,
don't
they
have
Python
in
in
there,
but
I
need
that
to
build
everything
up.
D
So,
let's
see,
if
that's
possible,
and
how
to
do
that
then
numpy
sub
modules,
because
right
now
you
only
have
numpy
functions,
but
there
are
many
sub
modules
like
lineage
and
random.
This
is
pretty
clear
what
it
does.
This
is
linear,
algebra
functions
and
there's
even
more
functionality
in
there.
Then
micro
Panthera,
because
it's
pretty
trivial
to
make
all
the
pantera
functions
I'll,
actually
not
all
of
them,
but
the
most
important
ones
to
do.
D
What
would
you
expect
them
to
do
directly
onto
your
sequences
or
vectors,
and
so
I
like
to
think
that
maybe
some
most
of
these
functions
can
actually
be
being
taken
out
from
Pantera
and
then
build
a
micro
library
with
just
some
vectorized
nice
functions,
then
maybe
with
some
packaging,
maybe
line
plugin
to
get
everything
all
at
once.
So
you
don't
have
to
deal
with
Python
at
all
or
mostly,
and
then
maybe
it
will
be
nice
to
present
this
to
the
Python
community,
maybe
at
the
baikonur,
by
data
and
see
what
they
think
about
it.
A
That
was
great
I
was
fantastic.
Thank
you
very
much
for
that.
I
hope
everybody
enjoyed
it
as
much
as
I
did.
I
certainly
learnt
an
awful
lot
there
so
using
this
on
your
current
projects
and
is
a
kind
of
lot
of
things
you
are
using
it
for
or
hoping
to
use
it
for
sorry
and
in
kind
of
I'm,
just
curious
about
what
kind
of
projects
you're
you're
using
this
on
or
what
projects
you
hope
to
be
using
this
on
in
the
future.
Okay,
actually,.
D
As
I
was
saying
earlier,
I
have
a
lot
of
co-workers,
who
use
Python
a
lot.
I
mean
a
lot
and
really
nice
to
find
a
way
to
kinda
wrap
it
in
some
way,
because
most
of
it,
it's
Punderson
numpy,
because
90%
of
what
a
scientist
does
in
these
days
is
done
by
obviously
and
to
actually
take
take
it
from
closure
and
have
something
that
can
go
one
day
in
production
by
three
on
the
JVM
and
running
JVM
and
Python.
So
it's
much
easier
to
actually
write
directory
production
code.
A
H
It
was
just
beautiful,
it
was
just
amazing
and
what
what
I
wonder
is?
Would
it
be
interesting
to
to
connect
conducts
data
frames
to
some
closures,
data
type,
all
right,
because
this
is
something
we're
thinking
about,
and
it
relates
to
the
tech
ml
slightly
of
doing
ml
enclosure.
So
I
wonder
if
you
have
any
felt
about
it.
Yes,.
D
That's
something
I
like
to
do
I
mean
it
would
be
really
cool
if
you
would
choose
to
use
tech
data
type,
and/or
Neanderthal
as
a
back-end
for
something
like
pandas,
but
I,
don't
know
if
that's
possible
at
this
time.
Of
course,
even
just
getting
automatically
I'm
sorry
automatically
a
data
frame
from
one
side
to
the
other.
It
would
be
really
nice
to
have
and
it's
something
that
I'd
probably
explore
in
the
future
right
now,
I'm
really
focused
on
getting
things
right
because
there's
so
much
stuff
in
there.
D
So
there
are
many
many
duplicated
methods
and
they
can
be
either
actually
duplicate,
so
they
have
to
say
different
names,
but
they
do
the
same
things
or
they
have
slightly
different
names,
but
they
do
the
same
thing
or
they
have
different
names
and
they
do
slightly
different
things.
But
they're
mostly
the
same
I
mean
it's
just
another
method
with
other
default
values.
Okay,.
D
Actually,
the
examples
I've
shown
you
in
the
demo,
it's
much
larger
in
the
repo
already
a
couple
of
examples:
they
give
it
on
notebooks.
You
can
look
at
them
on
notebook,
viewer
or
right
along
get
a
book
and
then
I
actually
plan
to
do
many
more
examples,
for
this
improves
the
documentation
a
lot,
because
right
now,
there's
basically
not
no
documentation
at
all.
And,
of
course,
if
someone
wants
to
contribute
anything
examples,
I
mean
I,
accept
everything
at
this
point.
Okay,.
D
Almost
nothing
at
all
I
mean
the
other
night.
I
was
talking
with
a
friend
who
I'm
kinda
trying
to
take
on
the
on
the
closure
darkside
with
me.
Actually,
he
likes
closure
body
just
a
few
months
back.
He
went
to
a
new
company
and
they
were
startup
they've
been
doing
everything
by
very
very,
very
fast.
He
wasn't
so
confident
with
closure.
So
he
started
everything
with
Python.
Then
it
has
a
lot
of
machine
learning
stuff.
He
uses
tensorflow
a
lot.
So
I
was
joking.
D
We
were
joking
around
about
what
to
use
what
not
and
I
thought
well
there's.
No,
probably
you
can
use
tensor
flow
from
closure
with
the
GPU.
He
was
saying.
No,
no
I
I
almost
don't
believe
that
they
have
to
see
the
cold
I.
Don't
understand
how
you
do
that,
then
I
just
brought
that
function
called
CLS
to
deal
with
classes.
I
have
to
find
a
nicer
way
to
do
that
automatically
mostly
I
was
thinking,
maybe
to
just
take
a
function
that
takes
an
object,
a
key
and
arguments.
D
If
that's
the
case,
then,
while
you're
calling
the
function,
I
can
expect
the
object
at
runtime
see
what
metals
are
in
there
match
that
with
the
keyword
you
passed
and
then
call
that
function
that
man
to
die
to
the
object
which
be
an
object
or
a
module
sub
module.
It's
the
same
thing
for
real
their
namespaces
and
then
you
call
the
function,
and
you
don't
worry
about
that
anymore
and
it
came
out
I
mounted
with
that
tensorflow
proper,
which
is
their
bones
at
the
moment,
but
it
works.
D
We
just
saw
that
and
I
think
that's
really
nice
to
have
at
some
point
and
if
I
find
that
way
to
do
that
and
I
release
that
you
can
go
right
now
in
the
container.
But
my
PI
interface
take
those
functions
out.
Just
change
names
and
the
modules
play
a
beat
around
with
the
module
names
you
liked
used.
So
the
types
of
the
function
or
the
causes,
and
then
you
get
a
rocker
for
your
library
for
free,
visible.
A
F
It's
in
the
the
function
call
form
that
you
have,
which
is
very
data-driven
or
allow
them
basically
have
a
pre-baked,
seven
namespaces
that
are
just
automatically
built
that
have
the
fact
that
we,
you
know
I
printed
functions,
I,
don't
know
if
that
even
makes
sense,
but
it
is
you've
already
done
the
interest
in
in
just
call
them.
So
you
don't
have
to
know
anything
about.
You
know
the
underlying
attributes,
all
that
stuff.
It's.
D
D
Basically,
so
that's
the
only
thing,
that's
manual
at
the
moment,
I
was
thinking
that
maybe
just
analyzing
the
names
so
removing
and
under
methods
and
private
methods,
because
private
methods
in
item
are
just
methods
that
have
an
underscore
before
the
name
of
the
method
itself
and
then
try
to
brought
them
in
some
way.
Maybe
I
don't
know
if
that's
possible
at
run
time.
Try
to
call
it
if
I
get
an
error,
then
it's
not
a
callable.
It's
an
attribute.
F
I
think
you
could
do
that
as
a
pre.
Come
pre
run
time.
So,
basically,
you
know,
as
a
standalone
library
just
generate
those
bindings
once
save
them.
You
know
now
you
have
a.
It
would
be
tied
to
the
API
that
you
have
at
the
time
for
that
version,
but
you
know
you
cache
all
that
stuff
and
just
do
deploy
that
as
part
of
your
your
bindings
package.
If
you
will,
someone
wants
to
have
just
the
closure
interface
like
the
I
mean
they
like
a
pre-baked
namespace
with
all
the
stuff
that
looks
like
pandas
this.
F
It's
just
functions
that
are
already
built
in
closure.
Maybe
that'd
be
the
magic
side
really
nice.
The
other
question
I,
had
you
mentioned
an
interesting
point,
Allen
that
ties
back
into
some.
What
Chris
was
demonstrating,
which
is
your
recommendation,
is
to
keep
the
Python
the
closure
separate
and
I
have
to
wonder,
as
you
start,
to
marshal
or
bridge
resources
between
the
two,
particularly
with
the
numbers
curious
about
equality
semantics.
F
So,
if
I,
if
I
suck
in
some
numbers
from
pandas
and
I
shove,
those
into
I,
don't
know
a
hash
set,
I
just
I
just
start
trying
to
use
those
like
one
of
the
canonical
examples
that
I
have
is.
If
you,
if
you
put
a
float
versus
a
double
into
a
hash
set,
you
can
get
weirdness
inequality
that
can
throw
some
non
non
intuitive
results.
So
I'm
curious
to
know.
F
If
there's
you
know
going
forward,
if
there's
a
way,
if
that,
if
that
even
matters
in
this
case
or
if
we
just
if
there's
a
default,
automatically
Marshall
stuff,
if
you're
gonna
shove
it
into
a
closure
or
in
Java
Bacchus
data
structure
that
you
just
kind
of
have
some
of
that,
because
I
could
set
possibly
creating
some.
If
there
are
issues
with
that
curious
and
some
counterintuitive
stuff.
D
Well,
actually,
I'm
answering
on
the
punt
data
side
of
things.
Of
course,
Chris
can
actually
say
something
more
about
the
Python
LJ.
You
can
always
transform
pipes
on
the
Python
side
of
things.
Whatever
you
want,
there
has
types
functions
and
then
you
can
pass
it
in
32
keyword
and
you're,
getting
integers
and
so
much.
But
this
is
also
one
of
the
reason
I
said:
try
to
keep
things
in
Python
and
enclosure,
pretty
much
separated,
and
just
only
maybe
at
the
beginning
here
or
there
or
and
I'm
sorry
and/or.
C
Think
that's
a
good
question
though
I
feel
like
if
you
want
to
guarantee
that
if
you
want
to
sidestep
those
issues,
potentially
is
the
okapi
pathways
and
that
of
course,
you
to,
for
instance,
have
numpy
raids
that
are
defined
floating
point
type
and
you'll
have
a
whole
collection
of
things,
and
then
you
won't
get
kind
of
header
teams
heterogeneous
data,
but
the
Python
under
the
covers
will
only
ever
return
a
double
unless
you
use
the
zero
copy
pathway.
So
there's
no
there's
no
there's
no
actually
like
API.
C
C
H
C
Me,
it
would
probably
be
honestly
if
you
help
Panthera
get
adopted,
then
that
helps
me
because
just
edge
cases
that
puts
her
back
like
I
tried
to
do
this
and
it
returned
to
a
string
instead
of
a
double
or
who
knows
what
like
issues
with
the
library,
especially
with
lib,
Python
or
I,
really
opened
a
big
big,
big
I
call
them
a
bed
manifold.
There's
a
lot
of
surface
area
for
potential
problems.
I,
don't
think
there
are
many
and
the
ones
that
are
there.
D
So
it
would
be
much
better,
as
the
API
would
I
don't
know,
even
be
much
better
to
thread
lost
instead
of
thread
I'm
just
throwing
things
around
and,
of
course,
everything
that
can
help
crease
as
well
only
Python.
It's
really
nice
to
add,
because
if
I
do
sell,
Joey
gets
better,
then
Panthera
gets
better
and
most
likely,
as
Chris
was
saying.
If
antenna
gets
better,
then
we
have
more
chances
to
make
it
I,
don't
see
even
better.
So.
C
One
thing
that
would
also
be
helpful
is
one
thing:
I
was
hoping
the
more
I
think
about
it.
The
more
I
think
this
may
be.
The
most
important
thing
is:
does
this
change
the
calculus
of
a
Python
programmer
in
terms
of
how
they,
how
interesting
they
think
closure
is
so
that
is
not
a
question
I
can
answer
because
I
don't
know
that
many
Python
programmers,
but
knowing
if
this
changes
the
weighting
of
those
languages
in
their
mind.
That
is
an
interesting
one
and
obviously
I'm
hoping
for
one
answer,
but
knowing
it
regardless
is
important.
D
Yeah,
we
will
see
I
think
because
maybe
there's
some
killer
features
that
we
can
have
from
by
using
item
from
closure
that
we
haven't
realized
yet
and
if
we
find
them,
then
we
can
show
them
to
the
Python.
I
mean
that
that
thing
I
called
with
Juxt
all
those
all
those
function
on
the
column
I
mean
for
me,
that's
already
pretty
cool,
because
I
was
doing
something
similar
the
other
day
in
Python
and
either
you
can
chain
things
up.
D
B
B
Guys
I
was
just
referring
to
the
fact
that
it's
a
prepackaged
collection
of
things
that
are
JavaScript
libraries
that
are
meant
for
use
from
closure
script.
So
I,
imagine
something
analogous.
You
know
Python
things
that
are
prepackaged.
You
know
it's
unnecessary
exports
and
wrapper
code
just
to
make
them
seamlessly
usable
from-from
closure
got.
A
B
A
B
E
G
G
Think
III
write
that
the
closure
way
of
doing
stuff
I
think
it
makes
great
sense
of
doing
big
science
in
culture
because
of
the
functional
way
and
doesn't
handle
this
and
I'm.
I
would
definitely
looking
forward
to
trying
this
this
out
to
try
and
Pantera
so
trying
this
numpy
and
pandas
inside
so
I
just
wanted
to
say
it
so
yeah
greater
thanks.
A
Yeah
thanks
for
sharing
yeah
yeah.
This
is
I
think
both
these
projects
to
help
kind
of
bridge
that
gap
between
what
is
seen
as
two
different
worlds.
Even
though
there
is,
as
we've
been
mentioned,
an
awful
lot
of
commonality
between
the
two
languages
as
well,
and
they
both
have
their
own
strengths
and
so
I
think
yes,
dcj
and
the
chatters
mentioned
that
in
the
near
term,
like
it
enables
closure
people
to
deal
with
and
use
and
enjoy
using
a
lot
of
the
really
good
Python
libraries
that
are
actually
out
there.
A
But
as
we're
doing
that,
then
we
have
the
opportunity
to
evangelize
closure
to
the
Python
programmers
that
we're
working
with
and
another
time
they
can
kind
of
see
things
that
they
couldn't
easily
do
in
their
language,
and
then
that
would
help
them
have
a
better
appreciation
of
closure
itself
as
well,
so
I
think
I
think
it
does
both
it
does
kind
of
help
in
both
aspects.
There.
D
Yeah
I
think
I
think
so
as
well.
I
mean
at
this
point.
Most
of
my
work
is
aimed
at
closure
people
and
that's
why
I
put
the
question
mark
at
the
end
of
let's
show
this
to
bite
on
people,
because
it's
I
think
it's
pretty
early.
We
still
don't
know
if
this
is
a
good
lead-in,
I
mean
it
might
even
not
be
that
great
of
an
idea,
or
maybe
it's
the
best
idea
ever
so,
let's
see
what
happens.
F
F
I
just
got
one,
not
a
spoiler,
just
a
counterpoint,
so
I
understand
that
closure
to
Python
bridge
and
wanting
to
do
that.
That
makes
a
lot
of
sense
if
I'm
in
Python,
though,
and
I
want
closure
like
things,
why
don't
I
just
go
use
hi
a
the
hy,
hi
Lang,
which
is
effectively
I
played
with
that
in
the
past,
and
it's
pretty
slick
except
for
it
sticks
it.
It
defaults.
F
F
What
is
the
let's
closure
on
the
JVM,
bringing
you
above
and
beyond
what
Python
is
doing,
and
so
you
know
what
kind
of
superpowers
do
you
get
from
that
rather
than
you
know,
because
you
have
a
lateral
alternative,
just
go
use,
hi
I,
think
I'm
still
somewhat
ignorant,
though,
but
that
would
be
my
my
layman
perspective.
Just
if
way.
F
F
Chan
extend,
the
JVM
is
ever
you're
living
in
Python
and
they
have
you
know
basically
native
interrupt
with
all
the
Python
structure,
so
you
get
generators
and
all
that
stuff
I
believe
again,
I
use
it
early
on
they're
still
working
on
it,
but
I,
don't
know
what
the
popularity
level
is,
but
that's
kind
of
if
I
was
in
Python
and
I
was
like
if
I
had
quite
good
Python
by
day
and
I
was
looking
for
a
way
out.
I
would
probably
go
to
high
because
it's
very
very
closure
like
a
while
with
stuff
in
earth.
F
C
It
is
but
you're
still
stuck
in
the
Python
runtime,
which
means
that,
for
instance,
a
lot
of
the
closure
idioms
are
gonna,
have
really
bad
performance
and
you
don't
have
access
to
you
know
JVM
libraries
or
the
JVM.
You
know,
as
you
said,
in
other
places,
JVM
brings
a
lot
to
the
table,
so
it
kind
of
it
depends
on
why
you're
interested.
If
you
want
to
sinteres,
to
include
your
paradigms
and
you're
doing
relatively
low
code
things
or
not
a
lot
of
looping
or
something
I
think
high
works,
but
he's
a
Python
runtime.
C
One
thing
I
was
hoping
for
was
that
you
could
interleave
Python
and
closure
code
because
there's
times
when
doing
something
in
Python,
especially
if
you
have
to
do
a
for
loop
for
some
reason
and
I
know.
If
numpy
you
usually
don't,
but
every
once
awhile
you
do.
You
really
pay
a
high
price.
I
mean
you
really
pay
a
high
price
for
a
performance.
At
that
point
and
with
the
JVM
you
don't
pay
nearly
as
high
a
price
yeah.
F
I
think
that's
like
that's
the
kind
of
case
I'd
make
is
the
platform,
the
platform
that
JVM
provides.
You
can,
you
know,
do
general-purpose
programming
without
paying
these
prices
that
you
would
own,
but
you
can
basically
get
this
nice
fairly,
transparent
layer
to
just
touch
the
effectively
the
efficiency
C
code
or
whatever
that
Python
is
wrapping
for
you,
so
you're,
just
using
Python
as
your
as
your
wrapper
layer
right
you're,
not
really
using
it
as
your
general-purpose
computation
layer
right.
C
Exactly
what
I
was
thinking-
and
there
may
be
times
when
you've
got
something
written
in
Python-
that
sucking
down
a
lot
of
time
and
you
now
have
a
chance
to
get
back
in
the
closure
or
straight
JVM,
or
something
to
deal
with
just
that
one
piece
and
then
drop
back
into
Python
and
do
the
rest.
Your
work.
C
C
F
Get
you
out
of
the
C
the
C
API
paradigm,
that
you're
in
before
so
now?
If
you
can
do
it
with
Python,
then
we
talked
to
I
think
we
talked
about
it
in
the
zoo.
Look
too
that
opens
up
the
idea
of
doing
repeating
the
process
with
our
languages
too.
So
and
plus
you
get
all
the
Python
developers
writing
bindings
effectively
bindings
to
little
libraries
for
you,
you
can
just
yeah.
C
D
Okay,
Julian
was
asking
in
the
in
the
chart
if
anyone
is
done
anything
with
closure
and
the
Pajero,
and
they
know
that
we
started
to
look
into
it,
but
Apache
arrow.
At
the
moment
it
isn't
so
great
I
mean
it's
huge,
and
but
the
nice
thing
is
that
the
Apache,
our
Creator,
is
actually
the
same
guy
who
created
bond
us.
So
it's
really
likely
the
first
language
that
will
have
a
bizarro
as
first-class
citizen
will
be
Python
and
it
will
be
probably,
it
will
probably
be
on
top
of
fundus.
D
C
Yeah,
that's
actually
a
really
good
point
and
that
to
that
point
our
and
I
talked
briefly
because
it
it
would
take
a
little
bit
of
work
and
you
take
like
a
month
of
work
or
so,
but
I
could
put
a
tech,
the
tech
stacked
on
top
of
arrow.
But
what
would
that
actually
change?
It
would
take
them
all
to
my
time
and
I.
Don't
know
that
that
would
change
enough
variables
to
make
a
big
difference.
F
F
Jvm
has
to
include
closure,
Scala
all
that
stuff,
so
maybe
I
think
there
was
a
talk
that
Karen
gave
a
while
back
talking
about
how
closure
was
kind
of
destined
to
be
the
ultimate
glue
code,
so
in
a
sense,
you've
kind
of
got
that
above
Python,
even
which
it
sounds
interesting
to
me,
that
might
be
the
value
prospect
and
you
just
keep
adding
more
and
more.
You
know
Interop
wrappers
here
and
there.
D
D
Java
is
one
in
the
trail.
There's
no,
you
can
say
anything
else
about
it.
If
you
want
to
do
big
data
stuff,
you
have
to
know
JVM
at
least
something
that
runs
on
the
JVM.
So
even
having
a
way
to
deal,
we
have
that
Montori
ID.
We
have
to
do
with
that
way
to
deal
with
all
the
big
data
environment
stuff.
We
can
deal
with
doing
that,
a
science
on
a
laptop
or
even
something
a
bit
more
than
a
laptop.
F
C
Yeah,
nobody,
we
know
D,
the
CLR
has
some
really
amazing
characteristics
to
it
and
the
one
the
one
I
want
that
I
think
is
fascinating
and,
unlike
anything
else,
is
that
it
can
do
template
expansions
at
one
time
so,
for
instance,
in
tech
data
type.
In
order
to
do
in
order
I,
like
add
to
floating
point,
readers
I
have
actually
compiled
time
code
that
generates
a
type
precise
way
of
doing
that
and
that's
important,
but
in
c-sharp
for
instance,
or
if
I
can
bind
into
the
CLR
in
certain
ways.
C
I
can
basically
tell
the
runtime
hey
if
you
need
to
do
this
with
floats.
The
code
kind
of
looks
like
this
and
the
runtime,
and
now
it's
not
generated
at
compile
time
so
import
or
requiring
data
type
doesn't
take
as
long
or
compiling
data
types
and
produce
something
as
big,
but
you
get
really
well
optimized
code
generation,
so
the
CLRS
code
generation
capabilities
are
evolved
to
my
knowledge.
They
are
soundly
above
the
jaebeum's
code
generation
facilities,
yeah.
F
A
A
No
nothing
coming
to
mind
at
the
moment.
Well,
everybody's
been
really
kind
positive
on
the
talks
and
giving
lots
of
really
good
feedback
during
the
chats
and
I,
also
like
to
thank
Kristin
Allen
for
the
talks.
I
found,
they're
fascinating,
I'm,
still
learning
an
awful
lot
about
Dave
science,
so
yeah.
This
has
been
very,
very
enlightening
session
as
well.
F
D
A
You
I
try
my
best
yes
to
talk
too
much
when
I
get
one
out
when
I
when
I
know
what
I'm
talking
about
I
can
really
talk
for
four
hours,
so
you're
safe,
yet
because
I'm
still
got
a
lot
to
learn,
but
yeah
I
just
found
I
missed
the
the
very
first
video
of
this
meeting,
but
I've
watched
all
the
other
ones
and
and
really
enjoyed
it,
and
and
it's
just
been
up,
it's
been
fascinating.
What
you
can
do
I
mean
I.
A
Think
one
of
the
things
that
we
that
I,
like
about
what
we've
covered
today
is,
is
it's
encouraging
the
community,
the
closure
community
to
use
what's
already
there
in
the
Python
world,
which
therefore
means
it's
not
we're,
not
threatening
the
Python
world,
we're
not
coming
in
and
trying
to
rewrite
everything
we're
almost
like
coming
in
and
celebrating
what
they've
already
done
by
using
it
and
making
most
out
of
it
as
well.
So
I
think.
That's
that's
a
really
kind
of
yeah,
a
really
positive
story
of
what
we've
been
doing
today
as
well.
C
A
You
could
even
use
growl
VM,
which
again
taps
into
potentially
taps
into
the
the
power
and
kind
of,
although
all
the
goodness
has
been
pumped
into
the
Java
Virtual
Machine
over
the
last
20
odd
years,
and
so
growl
VM
is
kind
of
like
it
looks
like
it's
kind
of
very
promising
is
certainly
something
an
Oracle
are
investing
a
lot
in
and
could
be
like
in
the
future.
It's
like
some
platform
that
brings
all
these
languages
go
at
me
and
encourages
and
keeps
on
encouraging
the
the
big
diversity
we've
had
in
languages
as
well.
A
I
still
remember
and
I'm,
showing
my
age
here
is
when,
when
I
was
like
developing
my
start
developing
you
either
did
well
I,
think
you
would
see
with
C++
and
then
it
was
either
you
either
moved
on
to
either
Java
or
C
sharp,
and
there
was
there
wasn't
really
anything
else.
I
mean
less
you're
in
academia.
You
might
be
doing
some
Python,
but
is
that?
But
now
I
mean
there.
There
are
hundreds
of
languages
out
there
and
you
can
express
yourself
in
in
many
different
ways.
A
Yeah
and
I
think
the
opportunity
is
to
we
can
reach
out
to
people
in
the
Python
community
and
say
well.
This
is
what
we're
doing
with
your
stuff,
and
this
is
how
we're
enjoying
it
and
making
some
valuable
applications
out
of
it
and
and
yeah,
and
hopefully
they
come
and
look
in
more
depth
about
what
we're
doing
as
well.
A
F
F
But
it
might
be
additional
things
that
your
your
we
might
end
up,
leveraging
some
of
their
code
paths
in
ways
that
they
aren't
naturally,
and
then
that
might
expose
some
edge
cases
that
we
can
actually
help
at
least
submit
some
forensics
on
for
improving
their
product
and
patching
it
up
and
hardening
it.
So
it
might
be
that
there's
some
value
added
and
in
terms
of
contributing
back
to
that
to
their
ecosystem
on
the
quality
assurance
side.
If
we
run
into
some
of
those
cases.
A
I
C
No,
no
I
haven't
it's
not
so
easy
for
us
to
bump
JVM
versions.
I
I've
got
really
really
really
in
trouble
with
my
partners
for
bumping
a
version
on
our
project
without
really
consulting
everybody,
because
a
lot
of
our
tooling
broke,
but
absolutely
it
was
J
a
is
sufficient,
but
it
would
be
better
for
that
level
of
integration
to
be
in
the
actual
virtual
machine
like
it
is
in
the
common
language,
runtime
and
I'm.
Imagine
if
you
get
down
to
splitting
hairs,
probably
if
you
trust
it
could
find
performance
issues.
C
A
Okay,
we're
about
up
to
time
so
again
we'll
we
can
hang
on
later
on,
but
we'll
close,
the
the
recording
I
believe
at
two
hours
and
we
I
think
Daniel
is
going
to
keep
the
chatter,
but
if
we
want
to
keep
on
the
conversation
but
again,
thank
you
very
much
Chris
and
land
for
the
excellent
talks
and
I
wish
you
well
with
all
the
all
the
projects
we
working
on
and
I
hope
everybody
does
kind
of
get
involved
and
continue
and
give
you
lots
of
great
feedback
thanks
very
much.
Thank
you
virtual
virtual
applause.
Yes,.