►
From YouTube: BHTMS: UI tweaks and simplehtm SP learning
Description
Broadcasted live on Twitch -- Watch live at https://www.twitch.tv/rhyolight_
A
A
Anyone
wants
to
follow
along,
you
can
do
that.
I'm
going
to
go
live
share
should
get
a
copy
got
it,
so
you
can
follow
along
if
you
want,
if
you
have
Visual
Studio
this
vs
code,
which
is
a
great
ide
honestly,
all
I've
done
here
is
I've.
I've
commented
out
the
other
things
on
this
page
and
then
I
changed
the
update
rate
to
200
milliseconds
instead
of
a
hund.
So
we
get
this
really
fast
update,
because
when
we're
doing
the
learning
stuff,
I
don't
need
to
do
this.
A
A
Other
the
easy
things
first,
hopefully
easy
things.
So,
let's
look
and
see
what
we're
gonna
do
here,
show
the
data
point
on
the
screen
somewhere.
That's
that
should
be
easy
enough.
So
let's
do
this.
First
am
I
missing
anything!
Everybody
can
hear
me.
Okay,
let
me
get
rid
of
those
everybody
hears
me.
Okay,
quit
my
QuickTime
Player
yup,
okay,
cool
and
thanks
to
our
lack
for
coming
back,
I.
Think
I've
seen
you
a
few
times
on
the
channel
I
appreciate
anybody
who's
coming
back
again,
Joey
this
brand
I've
recognized
several
of
you
guys
in
chat.
A
Freeman
42
is
out
there
genre
bloom
thanks
everybody.
This
should
be
a
fun
episode,
because
I
don't
think
it's
gonna
be
too
hard
to
enable
the
learning
testing.
It
might
be
a
little
bit
hard.
But
that's
that's
down
here.
That's
down
here,
we'll
get
to
this
sort
of
at
the
end.
I
want
to
do
some
of
the
more
you
I
stuff
first.
So
let's
do
that.
So,
first,
we're
just
we're
just
going
to
show
the
data
point
on
the
screen.
A
A
A
Imagine
I
can
pretty
hopefully
easily
do
that
because
in
the
code,
so
let's
look
at
the
code
on
the
spatial
pooling
page
I
am
already
getting
an
in
component
did
update
here's
where
the
I
know
the
data
is
changed
right
here
right
here,
there's
been
an
automatic
data
feed
update.
So
if
I,
if
I,
if
I
add
that
to
my
state,
just
the
raw
data,
so
so
I'll
just
call
this
data.
A
A
That
should
have
a
value
and
a
time
component
and
I
think
we'll
be
able
to
get
that
and
and
eat
really
easily
display
it
like
this,
like
I,
might
just
put
it
right
under
here,
we'll
just
put
it
in
an
h4
I,
don't
know,
and
then
we'll
say
this
dot
state
dot
current
data
and
and
this
isn't
going
to
be
the
way
it
ends
up.
But
objects
are
not
valid
as
a
react
child
no,
oh
I
have
to
actually
set
like
a
value
and
a
time.
So
so
let's
do
that.
A
So
so,
let's
call
it
current
current.
Well,
current
data
value
varied
at
a
time.
Oops.
It's
fine
with
me
I'm
flying
blind
here,
because
I
don't
have
David
David
Truman
duck
D
duck.
Oh
three
he's
usually
in
chat
helping
me
with
all
the
react
stuff,
but
that's
okay,
I
can
handle
this.
I
can
handle
this
all
right.
So
this
is
going
to
be
current
data
value,
and
this
will
just
be
dot
value
and
make
this
one
time
time
now
down
here,
I'm
going
to
show
them
both
will
have
current
data
time.
A
A
And
we'll
see
exactly
what's
going
on
here:
okay,
sooo,
good,
bye
console,
so
this
stuff
props
data
is
a
time.
Oh,
it's
probably
just
wants
a
string
instead
of
a
date.
That's
that's!
No
big
deal
so
do
I
have
a
moment.
I
think
I
usually
use
moment.
I
do
have
a
moment.
Okay,
so
I
can
just
wrap
it
in
a
moment
and
then
send
it
off
to
string
and
I.
A
A
A
A
A
Parts
get
manipulate
display.
This
is
what
we
want
display
yeah.
Let's
use
this
format
date
string
and
we
can
just
use
that
for
now,
we'll
format
this
and
I
want
I,
don't
want
to
use
double
quotes.
I
don't
like
double
quotes
in
JavaScript
I,
just
don't
I,
just
they're,
not
I.
Just
don't
like
this
is
fine.
This
is
fine.
Okay,
hello,
hello,
hey
David!
You
are
here,
yeah,
yeah,
yeah,
here's,
the
live
stream
link.
I
was
just
saying
how
I'm
I'm
flying
blind
here
without
is.
B
A
A
A
B
A
A
A
A
A
Gonna
add
some
labels.
So
let's
do
this,
the
connection
threshold,
distribution
center
and
spread
these-
and
these
are
these
things
right
here.
So
let's
put
them
just
in
a
little
bit
of
a
better
format:
I
I,
just
I,
just
tossed
them
in
I,
didn't
really
think
at
all
about
about
them.
So
let's
put
them
in
a
in
an
actual
structure.
Let's
put
them
in
a
list
for
now
we'll
put
them
in
a
list.
A
A
B
A
B
A
Changed
the
date
for
a
discussion
about
fully
connected
networks,
because
this
Friday
I'm
gonna
be
at
the
applied
AI,
Summit
and
I
completely
forgot
about
that.
So
it's
gonna
be
next
Friday
I
know
I
keep
pushing
it
up,
but
I
actually
will
not
be
able
to
even
do
it
because
I'll
I'll
be
attending
conference
talks
about
applied
AI
which
I'm
honestly
not
looking
forward
to
because
I'm
not
interested
in
supplied
deep
learning,
I'm
interested
in
it
intelligence.
A
A
Might
oh
they're
all
gonna
be
different
anyway,
that's
not
even
worth
doing
nevermind
well
we'll
get
to
proper
alignment
at
some
point
in
the
future.
It
doesn't
matter
it
doesn't
matter
so
I'm
gonna
put.
The
permanence
is
back
right
now,
because
I
took
these
out
because
I
changed
the
update
rate
to
be
really
fast
and
it
slowed
the
page
down,
but
with
just
a
one
Hertz
update
rate,
it
shouldn't
slow
the
page
down
too
much.
What
is
this
big
gap
here?
Oh
yeah
yeah
I
need
to
change
the
size
of
the
potential
pools.
A
So
when
I
change
this,
this
will
change
that.
Okay
and
that
and
it
will,
it
will
also
should
change.
So
that's
one
of
the
things
I
want
to
do.
I
want
to
make
sure
when
I
change
the
connection
threshold
here
it
should
also
update
Oh,
see
it
is
it's
updating,
I,
think
it's
updating
spatial
boiler
yeah.
So,
if
I
make
this
point
for
yeah.
A
A
reread
I
don't
think
we
should
be
reinitializing
the
spatial
puller
when
this
happens,
but
we
are
so
those
those
are
the
things
that
I
want
to
go
through
when
we
change
this
that
definitely
read
initializes
a
spatial
cooler
because
it
creates
all-new
permanence
--is.
When
we
change
the
threshold,
we
shouldn't
initially
initialize
the
spatial
polar.
That
is
something
that
we
can
update
on
the
fly
the
threshold.
A
A
All
right
remember,
there
are
deep
learning.
Has
lessons
to
teach
yeah
pulls
the
big
trick?
Dl
pulls
from
biology
is
connected
Maps,
even
with
point
neurons
boy.
Powerful.
Does
some
good
lessons
for
HTML.
It
finally
gets
back
to
the
age
of
HTM
yep
an
hour.
Don't
worry
already
are
we?
Are
they
doing
anything
that
we're
not
doing
I'm,
not
that
anything
necessary
that
we're
not
doing
because.
B
A
Okay,
so
connection
threshold
changes.
So
when
this,
when
the
connection
threshold
changes
here,
I
need
to
go
into
the
permanence
--is
first
of
all
and
make
sure
that
actually
I'm
going
to
this
connection
threshold
change
is
something
I
need
to
look
at
in
this
page,
because
this
is
where
we're
doing
it
so
right,
clean
up,
SP,
initialization,
so
I
think
this
is
a
bit
we
might
be
doing.
You
do
speech
recognition.
Oh
definitely,
not.
A
B
A
You're
talking
about
there's
this,
the
spate
massive
spatial
pattern,
recognition
that
deep
learning
gives
us
writer
I,
won't
throw
it
out
mark
I'm
going
there
to
pay
attention.
It
certainly
does
do
I'm,
not
discounting
it.
Deep
learning
does
a
lot
of
amazing
things.
It's
just
it's!
It's
not
what
I'm
interested
in
so
I'm
going
there
with
an
open
mind
to
try
and
see
what
the
current
state
of
the
art
is
and
how
deep
learning
is
being
applied
today.
A
A
So.
This
is
new
data
point.
What
we
want
is
the
down
here,
if
there's
a
new
connection
threshold.
Okay,
so
we're
reinitializing,
no
matter
what,
but
what
I
really
want
to
do
is
say
we're
not.
We
don't
want
to
reinitialize
that
there's
a
new
connection
threshold,
all
right!
We
because
that's
not
something
we
need
to
recreate
permanence
is
for
so
I'm
going
to
create
another
L
stiff
and-
and
here
we'll
put
that
let's
get
rid
of
this.
A
Come
I
like
word
my
line,
wrap
on
here
so
so
now.
I
need
a
way
to
update
that
connection
threshold
in
the
SP
I'm,
not
sure
I
have
a
good
way
to
do
that.
So,
let's,
let's
look
in
the
simple,
HTM,
real,
quick
and
see
how
we're
storing
that
connection
threshold
and
I
could
just
you
know,
just
sneak
a
peek
in
and
go
change
it
and
then
write
a
note
to
when
I
get
to
the
simple
HTM
to
update
the
API,
so
that
we
can
do
that
the
right
way.
A
So
we
should
have
something
called
a
connection
threshold.
So
what
I'll
do
is
simply
just
go
change.
It
I'll
just
go
change
it
I'll
Joe
I'll,
sneak
right
into
ops,
because
I
should
be
able
to
go
spi,
ops,
connection
threshold
and
change
it.
That's
the
sneaky
way
to
do
it
and
it's
not
what
I
want
to
do
so
I'm
going
to
write.
So
so,
let's,
let's
make
a
note,
because
I
have
a
project
for
simple
HTML
there.
A
All
right
so
we'll
add
that
that's
going
to
be
something
we're
going
to
do
today,
but
I'm
not
going
to
do
it
yet
but
I'm.
What
I'm
going
to
do
right
now
is
a
sneaky
way.
The
sneaky
way
of
doing
it,
which
is
right,
yeah,
sneaky
way
of
doing
it,
is
going
to
be
just
to
jump
in
there
and
and
and
update
the
connection
threshold.
A
So
I
should
be
able
to
say
SP
doc,
whoops
whoops
whoops
holy
cow,
it
Otto
commented
connection
threshold
equals
the
state,
that's
connection
threshold,
so
hopefully
this
will
reinitialize
the
SP
but
change
the
way
it's
calculating
its
connections
without
reinitializing
it.
So,
let's
see
if
that
worked.
I
should
be
able
to
see
this.
So
if
I
change
the
connection
threshold,
let's
change
it
to
dot
one.
That
means
they're
all
going
to
be
super
all
connected.
A
A
Not
oh
five,
five,
so
the
potential
pool
should
not
change.
Okay,
so
keep
an
eye
on
the
potential
pool.
It
doesn't
change,
that's
good,
so
I
changed
it
from
like
five
to
0.15.
The
potential
pool
is
the
same.
That
means
it
was
not
reinitialized
the
permanence
azar
the
same.
It's
only
the
it's.
Only
the
calculation
of
whether
the
permanence
value
is
connected
or
not.
It
represents
a
connection
or
not
that's
different,
so
I
think
that's
right.
I
think.
A
A
It's
not
what
I
was
doing
yes
and
that
when
I
change
the
connection
threshold,
it
does
not
the
other
ones.
Definitely
do
so.
If
I
looks,
let
me
go
back
here
and
and
if
I
change
the
center
of
the
distribution
I
get
new
permanence
--is
or
do
I,
not
yeah
I.
Do
because
that
reestablishes,
though
all
of
the
weights.
So
that's
right
if
I
change
the
connection
distribution,
this
is
sort
of
the
spread.
A
A
Flying
through
these
hoist
selected
mini
column
up
onto
the
page,
State,
okay,
so
what
I
want
to
do
here
is
you'll
notice.
Let
me
make
this
a
little
smaller
you'll
notice
that
when
I
select
the
mini
column
here,
it
does
not
get
reflected
in
the
bottom.
One
I
want
the
same
selected
mini
column
to
be
displayed
on
all
of
these
every
diagram.
So
so
we
want
this.
Whatever
is
keeping
track
the
state
of
that
to
be
up
at
the
page
level.
Right
now,
it's
handled
at
the
in
the
diagram
levels
like
diagram
state
I.
A
A
B
A
A
A
Can
do
this
I
think
because
I
have
an
example
of
doing
this
in
the
I
think
it
encoding
numbers
right
so
there's
when
I
create
the
diagrams
I
can
pass
it
there.
It
is
like
on
update
so
I'm
gonna
do
that
and
that
will,
if
I
call
an
update
with
the
right
value,
we'll
see
how
we're
doing
this.
So
this
is
simple:
scalar
encoder.
So
let's
go
look
at
simple
and
scalar
encoder
and
on
update
as
a
function,
we're
gonna
call
with
the
value
yeah.
A
A
This
is
just
getting
a
value,
so
I,
don't
necessarily
know
what
state
is
being
set,
but
I
could
I
could
certainly
say
explicitly
what
it
is
so
we'll
try
it
we'll
go
along
with
this
and
we'll
figure
it
out
so
for
the
permanence.
Is
we're
going
to
do
this
here?
The
potential
pool
I,
don't
think
it
has
a
selected
mini
column.
Does
it
potential
pool
yeah.
A
A
A
A
Oh,
wait
before
I.
Do
this
I
know
that
here
we
go,
that's
where
the
value
came
from:
okay,
okay,
I'm
sure
I'm
starting
to
remember
this.
Now,
since
we
named
this
value,
that's
how
it
knows
to
set
that
value,
so
I
need
to
make
sure
that
I've
got
I'm,
giving
it
a
property.
And
then
that's
that's
what
I'm,
using
here?
Okay,
so
so
I
need
to
go
back
to
spatial,
polar
pooling
and
we're.
A
Property
called
selected
mini
column,
that's
going
to
be
this
dot
state,
dot,
selected
mini
column
and
this
I'm
going
to
call
selected
mini
column
and
that's
what
we're
going
to
set
okay
so
now
in
potential
pool
back
to
here,
I'm
a
react
pro
yeah
thanks
man
thanks
for
the
encouragement
okay,
so
this
is
going
to
be
we're
just
going
to
have
this
local
and
on
update
selected
mini-com.
I
could
of
course
do
this
in
line,
but
I
think
it's
better
to
be
explicit
about
what
it
is
or
updating.
A
So
I
know
that
when
I
call
update,
I'm,
I'm,
updating
selected
mini
column,
now
anytime,
I
have
I'm
using
selected
mini
column
now
I
want
to
I
want
to
remove
this
because
it's
going
to
be
coming
from
the
properties.
So
where
else
are
we
getting
this?
So
this
selective
mini
column?
Is
this
dot
props
dot
selected
mini
column?
That
may
be
the
only
the
only
place
that
we
need.
This
is
going
to
be
this
stuff.
Props,
whoops,
stop
props
I've
selected
mini
column,
and
this
stop
props.
That's
like
okay,
all
right!
A
Let's
see
what
broke
see,
what
the
broker
sell,
that
adder
is
not
a
function.
That's
an
interesting!
Wasn't
what
I
expected
just
refresh
to
make
sure
that
that's
okay!
So,
let's
see,
why
would
that
be
the
case,
so
I'm
calling
treat
cells
with
the
sell?
And
it's
not
really
a
cell,
because
the
data?
Okay,
let's
debug,
right
here
and
see
why
we
don't
have
the
stuff
props,
that
selected
mini
column
and
our.
B
A
A
Just
like
this
selected
mini
call
them
an
on
update
the
exact
same
lines
and
I
might
as
well
do
it
here,
I'll,
add
it
selected
mini
column
and
on
update
I,
don't
think
I
have
it
on
update
on
either
one
of
those.
This
is
the
only
thing
that
these
diagrams
are
updating
in
the
page
state
is,
is
selected,
mini
column,
otherwise
they're
all
just
doing
local
visualizations,
okay.
A
A
A
C
A
A
A
A
See
yes,
it
worked.
I
can
already
tell
so
as
we
hover
over
this
one.
Our
our
selected
state
is
now
sort
of
cascades
throughout
this
one's,
not
working,
though,
because
I
haven't
hooked
it
up.
So
let's
do
that
one
next
okay
same
deal
and
in
Maycomb
competition,
we're
gonna
go,
find
select
it
any
column
for
this
anytime.
A
We're
using
that,
let's
just
let's
actually
do
it
the
easy
way,
this
time
and
say
anytime,
we're
saying
this
dot
selected,
mini
column
or
replace
it
with
this
crops,
dot
selected
mini
column
five
times
and
then
in
the
update
or
in
the
mouse
move.
Of
course,
this
is
wrong,
but
we
can
fix
this
Const
select
with
mini-com
props
dot,
on
update
selected
minute.
A
Awesome.
Ok!
So
that's
exactly
what
I
wanted
so
now,
no
matter
what
diagram
we're
dealing
with
it,
we
can
look
at
all
of
them
and
they're
all
displaying
the
same
mini
column
data.
This
is
a
little
odd
because
I've
I've
switched
out.
Ike
I
put
the
mini
column
on
the
left
here.
Instead
of
the
right,
I
should
probably
move
that
so
that
they're
all
the
same.
Let's
do
that
that
wasn't
on
my
list
of
things
to
do,
but
that's
ok.
A
A
Input,
okay,
so
so
we're
gonna
do
that
here
on
this
G
group,
so
that
should
just
swap
them
out
there
OOP,
okay,
so
I
need
to
do.
Okay,
I
know,
I
know
it.
Did
you
hold
on
I
need
to
grab
input
space,
not
input,
so
I
actually
put
this
in
the
wrong
function,
because
I
think
there's
an
input
space
yeah
yeah.
So
this
is
the
wrong
one.
I
wanted
to
put
it
here
right.
A
A
So
I'm
gonna
look
at
the
page
level,
first
I
think
in
the
spatial
pooling
we
have
hoisted
some
state
for
the
mini
column
and
we're
now
keeping
track
of
the
time
and
date
value
separately.
What
was
that
I'm?
Sorry
I
just
got
a
notification
on
my
Stratocaster
has
arrived,
I
want
to
run
home,
I,
want
it
in
the
street
right
now
and
run
home,
but
I'm,
not
that's
how
dedicated
I
am
I'm
waiting
for
a
text
for
my
wife
because
she
knows
how
excited
I
am
okay,.
A
A
A
That's
just
where
we're
putting
the
date
and
time
and
data
point,
and
this
is
the
updates
for
the
selected
mini
column.
This
is
also
the
same
thing.
This
is
the
names
of
the
parameters,
and
this
is
the
mini
qualitative
that
looks
all
good
to
me.
Potential
pools
removed.
This
is
all
about
wasting
state.
Okay,
so
now
I'm
going
to
look
in
here
and
see
if
there's
any
place,
I
can
refactor
not
in
that
function.
This
function.
B
A
A
So
then,
I'll
just
use
this
and
then
down
here
I
can
get
rid
of
the
doesn't
make
a
little
bit
simpler.
At
least
so
I've
got
a
local
copy.
It's
not
a
copy.
Local
reference
same
same
thing
here:
I
can
do
generally
I
try
to
if,
if
I'm
referring,
if
I'm,
referring
to
like
this
dot,
XY
Z,
whatever
more
than
once
within
a
function,
I'll
pull
it
out
into
the
variable.
A
A
A
A
A
A
C
A
B
A
A
B
A
A
A
B
B
A
A
A
A
A
Sp
potential
pool
tests
and
then
just
scrape
out
what
we,
what
we
need
here
so
upon
SP
initialization,
for
when
creating
let's
just
do
this
copy
and
paste
will
take
everything
out
of
here,
except
for
potential
pools.
Connective
tissue
pools
are
the
same.
That's
good
when
establishing
initial
premises
so
from
here
on
out
we're
gonna.
Take
all
this
out.
Performances
I
think
it's.
We
can
take
the
whole
thing
it's
all
of
us
out.
A
A
A
A
A
A
A
A
Guess
it's
during
during
the
mini
column,
competition!
What's
called
that
during.
Maybe
we
should
write
this
in
the
mini
comp
competition
and
because
that's
when
learning
occurs
so
so
I'm
not
sure.
Oh,
these
are
mini
column.
Competition
test
didn't
I.
Have
some
I
feel
like
I
skipped
some
tests,
I
meant
I
messed
something
up.
A
A
A
A
B
A
A
A
A
A
It
when
it
wasn't
doing
anything
well,
who
knows
I
might
I
might
never
have
caught
it,
because
those
tests
just
wouldn't
be
run,
but
it
could,
it
could
be,
could
have
been
yeah
long
time
in
the
future
when
some,
when
I
changed
code
that
broke
one
of
those
tests
that
doesn't
run
anymore.
That's
when
and
it
would
have
been
ugly
like
I
said
it
wouldn't
I
believe
so.
A
I'm
probably
gonna
have
to
write
a
new
test,
whatever
what
I
wanted
when
I
wanted
to
test
here
is
I'm
gonna
write
this
down.
This
is
a
good
time
to
write
this
down,
so
so
the
functionality
we're
talking
about
espy
learning,
I'm
gonna,
get
to
straight
my
head,
but
I'm
going
to
I'm
gonna
work
on
here.
What
I
want
to
do
is,
let
us
say,
on
new
data
and
instead
of
data,
let's
say
in
coding
input
but
I've
been
calling
it
on
new
and
put.
A
A
A
Connections,
not
overlapping
and
put
our
let's
say:
incremented
incremented,
incremented
and
decremented
all
right.
So
that's
a
good
place
to
start.
That
makes
sense.
That's
the
your
method
of
writing
test
versus
good
one
I
like
working
with
a
good
test,
suite
yeah.
That's
the
only
way
to
do
real,
good,
real,
especially.
A
A
They
don't
teach
you
test-first
development
in
school
at
least
I
didn't
teach
me
I,
I
went
I,
took
a
pay
cut
to
work
at
a
software
shop
that
did
this
type
of
development,
because
I
knew
that
it
was
something
that
I
needed
to
learn
early
in
my
career,
and
it
was
worth
it.
It
was
absolutely
worth
it
so
describe
our
with
with
X
amount
of
winning
mini
column.
So
I
don't
care
how
many
we
many
columns
there
are,
but
I
could.
A
I'm
just
trying
to
think
I'm
just
thinking
in
my
head,
I
could
I
could
write
my
test
within
the
context
of
this.
Many
a
winter
count
and
input
saturation,
but
it's
gonna
make
the
test
run.
I
mean
it's
gonna
make
the
test
suite
run
pretty
long,
but
I
mean
it's
more
resilient.
It's
more
resilient
and
redundant
for
the
tests
to
test
all
these
different
conditions,
although
it's
not
necessarily
necessary,
necessarily
necessary.
A
A
A
A
A
B
A
A
A
A
A
So
I
could
do
this
randomly
or
I
could
just
create
an
input
like
that
has
maybe
just
one
bit
on
right.
Maybe
I'll
I
could
create
an
input
with
one
bit
or
half
the
bits
or
something,
but
with
a
range
that
I
know
that's
explicit
and
that
I
can
test.
So
maybe
I
can
test.
I
could
turn
half
the
bits
on
go
halfway
through
the
structure,
know
that
and
as
a
condition
of
the
test.
A
Give
it
the
input
and
go
back
through
the
mini
columns
before
each
one,
each
one
of
its
Maps
sort
of
to
the
input
make
sure
that
the
only
the
connections
that
overlap
with
the
inputs
were
incremented
and
they
were
recommended
by
a
specific
value.
Right,
I
think
that's
what
I
have
to
do
so.
So
what
I'll
do
is
I'll
create
input
like
this,
but
I
won't.
Do
it
randomly
then
we're
going
to
do
this
so
I
get
the
winners.
A
This
way
and
I
know
the
indices
of
the
winners
and
I'll
go
manually
into
each
one
of
those.
If
the
permanence
isn't
test
that
they
have
changed
by
the
decrement
or
increment.
Whatever
excuse
me,
so
we're
gonna
write
this
as
if
it
worked
the
way
we
wanted
it
to
work.
So
I'm
gonna
have
a
permanence
increment.
A
A
A
A
A
A
A
Excuse
me
X.
If
X
is
less
than
input
count
/,
we
will
push
a
1,
otherwise
0,
so
the
first
half
of
the
input
will
be
1.
The
second
half
will
be
0
roughly
and
I'll
just
use
the
same
condition
to
check
and
make
sure
that
they
were
committed
before
I
input.
This
before
I
run
the
competition
I
need
to
get
permanence,
--is,
okay
and
we'll
say
original
perms.
A
A
A
B
A
When
I
call
this
all
perms
original,
all
perms
from
you
know
all
original
perms
and
all
new
perms,
all
new
curves,
so
now
original
firm
for
this
mini
call.
Virginal
perms
for
this
mini
column,
is
all
original
perms
winner
index
I
think
that
should
be
the
mini
column
index.
So
this
should
be
the
permanence
of
the
mini
column
index
before
it
was
changed.
New
perms
equals
all
new
perms
winner
index.
A
A
A
A
A
A
A
All
right
so
connections
overlapping.
They
are
incremented
by
permanence,
increment
all
right.
So
if
I'm
not
sure,
if
this
test
is
going
to
work
properly,
well
we're
going
to
find
out,
we
might
need
to
restructure
it
a
little
bit
because
I
don't
usually
write
my
it's
statements
like
this,
but
we'll
find
out.
A
A
A
A
A
B
A
A
B
B
A
A
Say
say:
permanence
is:
are
properly
updated
when
learning
is
on,
where
we'll
just
leave
it
at
that,
because
the
assertions
tell
the
story
that
we're
trying
to
tell
I
don't
have
to
describe
it
that
much
because
else
I'm
basically
going
to
do
the
opposite
of
that.
If
it
doesn't
include
it,
this
should
be
minus
permanence,
decrement
and
then
say
winter
Minnie
column
at
was
not
decremented.
A
A
A
A
A
A
A
A
A
A
A
A
Don't
know
I
mean
that's
what
I'm
doing
right
I'm
getting
the
perms
before
and
after
and
just
comparing
them,
but
I
but
I,
but
I
have
to
create
a
new
spatial.
Pooler
I,
don't
have
to
I
mean
I
can
just
turn
learning
off.
You
can
turn
learning
on
and
off.
So
let's
do
that
instead,
instead
of
instead
of
what
I'm
about
to
do,
let's
say:
SP
disabled
learning.
A
That
should
be
that's.
That's
good
as
a
general
test
tool
snapshot
to
compare
to
isolated
changed
elements
as
a
general
test
tool.
Yeah
I
could
do
that.
I
want
to
I
want
to
be
really
explicit
at
first
and
maybe
will
end
up
pulling
out
some
more
general
testing
stuff
as
we
go
along
I.
Don't
think
this
is
too
too
complicated.
A
A
A
B
A
We'll
compare
the
two
data
for
basically,
the
two
permanence
is
the
before
and
after
permanence
values
of
all
the
many
columns
given
the
overlaps.
Let
me
just
do
this
explicitly.
First
I
think
that's
that's
going
to
be
the
easiest
thing
to
do
for
me
to
understand,
and
then
maybe
we
will
do
it
explicitly.
Next,
okay,
so
we've
disabled
learning
on
the
SP
we
get
the
permanence.
A
A
A
A
A
A
A
A
Okay,
you're
a
very
paranoid
you're,
it's
good
to
be
paranoid
as
a
software
engineer,
I
think
I
think
we're
gonna
find
out,
see
we're
gonna
visualize.
This
almost
immediately
and
we're
gonna
see
this
right
away
and
we
should
be
able
to
see
it
learn
right
away.
So
once
we
get
this
tested
on
a
sanity
check,
tit
I
think
it's
doing
what
I
think
it's
doing
we'll
go,
release
a
version
and
fix
it
all
right
and
and
hook
it
up.
A
A
A
A
As
soon
as
this,
as
soon
as
this
past
is
gonna
reward
myself
with
some
Japanese
candy
I
love
this
stuff,
it's
I,
don't
know
how
to
say
it
whoo-chow,
but
it's
a
it's
Cola
flavored
and
it's
fizzy
and
it's
got
little
gummy
Cola
things
in
it.
They're
delicious
here
we
go
winter
mini
column
at
58
was
not
decremented.
Okay,
so
now
we're
getting
real
errors
that
we
expect
to
get
okay.
So
let's
make
it
work.
A
Okay!
So
where
are
we
gonna
do
this
and
here's
our
perms?
This
is
where
we're
calculating
the
overlap.
Here's
there's
a
competition,
we're
not
gonna.
Do
this
efficient
yeah!
You
get!
You
know
what
I'm
talking
about
this.
These
are
awesome,
particularly
the
Japanese
candies
are
so
good,
but
this
one
in
particular,
I
really
love
the
fizzy
Cola
gummy
histor
I
get
them
at
Daiso
in
San
Jose
to
die.
So
it's
like
a
Japanese
dollar
store
thousands
of
different
crazy
items.
It's
so
interesting.
A
A
A
A
A
A
A
A
A
Yeah,
okay,
so
now
in
the
pool,
I
have
to
say
I
said
this
pool
index.
That's
how
I
know
this
is
going
to
be
my
input
index
because
remember
the
permanence
is
don't
have
an
input
to
the
index.
The
permanence
is
associated
with
a
potential
pool
or
a
pent-up
array
or
the
links.
The
indices
to
the
index,
little-little
I,
know
I,
know,
I,
know
I
already.
B
B
A
A
Okay
and
these
indices
are
pointed
to
the
input
index
so
now
so
I
know
the
overlap
now.
Okay,
so
now
I
have
the
input
index
here.
If
the
overlap
includes
this
looks
familiar
to
the
tests
that
I
wrote
right.
That's
that's
what
happens
when
you
do
test-driven
development
if
the
overlap
that
means
you're
doing
it,
that
means
it's
probably
gonna
work.
If
overlap
includes
the
input
index.
A
A
A
A
A
A
A
A
A
B
A
A
A
A
A
A
A
A
A
A
A
Enabled
so,
let's
see
in
this
test
I'm
creating-
where
am
I
calling
been
able
learning?
Am
I
with
learning
enabled
am
I,
not
I
I,
never
called
learning
enabled
didn't
enable
learning.
No,
how
does
that
possible?
I
thought
I,
could've
swore
I
had
a
oh
I.
Just
have
disabled
learning,
but
I
put
learn
equals
true
here,
okay,
so
it's
really
just
it's
something.
I'm
doing
here
like
this
is
wrong.
A
C
A
B
A
Will
explicitly
turn
learning
on
and
then
in
the
next
one
we're
explicitly
turning
learning
back
off
so
we're
initially
not
learning
we're
gonna
run
the
competition
tests
and
we
turn
learning
on
and
run
the
learning
tests
and
then
turn
it
back
off
and
run
for
continue
running
learning
tests
that
are
disabled,
I,
don't
know
if
that's
gonna
fix
anything,
it's
just
a
little
bit
more
clear,
clearer,
doesn't
fix
anything.
So
are
we.
B
A
B
A
A
A
A
A
A
So
I'm
gonna
take
us
off
I'm,
gonna,
say
well
now,
I'm
gonna
be
explicit
about
it.
We're
gonna,
we're
gonna
call
send
it
in
explicitly
false
here
explicitly
true
here.
No
no!
No!
This
is
this
is
where
I
want
it
to
be
false,
false,
that's.
That
was
one
of
my
problems
and
then
we're,
and
then
we
call
a
naval
here.
So
learning
should
always
be
false
in
this
test.
A
A
A
A
A
A
A
A
A
A
A
I'm
gonna
even
put
more
logging
in
here
fermenting
I
should
see
increments
allons
in
addition
to
yeah.
So
a
good
thing
fermenting,
but
the
permanence
is
don't
seem
to
be
updating
and
it
could
be
maybe
that
I'm
just
I'm
hitting
the
wrong
index.
So,
let's,
let's
be
more
explicit
about
we're
doing
here,
I'm
gonna,
say
incrementing.
A
Well,
it
found
the
value
okay
before
incrementing
after
incrementing,
we
should
see
a
difference
right.
A
A
A
Obviously,
when
I
run
the
compete
step,
if
it
updates
and
now
my
reference
just
has
the
updated
values,
maybe
I
just
need
to
do
a
deep
clone,
because
this
is
a
it's,
not
a
deep
clone.
A
slice
isn't
a
deep
clone
right.
So
I
need
to
do
like
a
deep
clone
here
which
isn't
it's
an
array
of
arrays.
So
I
need
to
do
a
deep
clone
of
array
of
array,
JavaScript
array,
deep,
deep,
deep
copy.
A
A
Its
Oh
okay
hold
on
I
gotta
work
is
not
my
head
too
many
data
structures.
It's
too
many
data
structures,
okay,
so
perms.
First
of
all,
it's
it's
an
array
of
mini
columns,
so
you
know
0
1,
2
3.
This
is
mini
column
index
and
each
one
of
these
that's
the
index.
Each
one
of
these
is
a
scalar
value.
No,
no.
A
A
A
A
B
C
C
A
C
A
A
A
A
If
learning
is
enabled
for
each
mini
column
going
through
all
the
permanence
is
for
that
column,
because
they're
indexed
by
the
mini
column
index,
which
is
here
and
for
each
one,
I,
should
get
the
permanence
value
and
then
the
index
of
the
potential
pool
I
go
to
the
potential
pool
to
get
the
input
index
and
that's
what
I
look
at
for
in
the
overlap.
If
that
input
index
is
in
the
overlap,
then
I
know
that
this
this
permanence
needs
to
be
incremented,
and
so
the
problem
I
keep
thinking,
is
and
I'm.
Looking.
B
A
And
and
when
it
so
I
just
uncommented
this,
but
this
was
working
right
so
before
incrementing
is
a
different
value
and
increment
it
and
I
go
look
at
the
permanence
--is
and
it's
been
updated,
so
the
permanence
is,
is
certainly
being
updated.
I'm
going
directly
into
the
data
structure
by
reference
to
do
this,
update
I'm,
taking
its
permanence
that
I'm
adding
or
subtracting
the
value
that
needs
to
be.
But
what
I'm
thinking
is
wrong
here
is
in
my
test.
A
Up
front
I'm,
getting
all
the
original
permanence
--is
I'm
running
the
competition
and
getting
all
the
new
permanence
ha's
and
if
they're
all
references.
If
these
are
rich
firms
of
references,
they
will
be
updated
as
soon
as
I
run
this
compete,
then
all
my
originals
are
now
updated,
so
I
need
whatever
returns
from
get
permanence
--is
to
be
a
snapshot
in
time
and
should
never
be
updated.
No
matter
what
the
spatial
blur
does.
At
that
point,.
A
A
A
A
Me
put
this:
let
me
review
this
test
with
me,
real
quick,
because
I
think
this
is
the
right.
The
right
logic,
I
go
for
each
winter
column.
Now
then
I
go
through
the
input
array,
all
right,
it's
because
for
each
winter
column,
I
want
to
look
at
the
input
array
and
then
loop
through
each
one
I'm,
not
even
looking
at
the
bit
I
don't
care
about
the
bit
because
I've
already
done
the
overlap.
B
B
A
A
Is
saying
the
new
permanence
should
be
the
original
permanence
plus
the
increment?
Otherwise,
if
it
wasn't
part
of
the
overlap,
it
should
be
decremented
and
it's
and
it's
acting
like
the
test
failures
are
acting
like
permanence.
--Is
were
never
changed,
at
least
that's
what
I
think
it
was
doing.
Let
me
run
it.
Oh
my.
B
A
A
It's
it's
an
array
of
objects
and,
and
each
one
has
an
overlap
and
an
index.
The
index
is
the
mini
column
index
of
the
winner,
the
overlap
and
is
an
array
of
indexes
to
the
input.
So
it's
so
it
gives
you
a
way
to
say
from
this
mini
column.
Here's
here's
how
it's
mapped
to
the
input.
Here's
all
the
overlapping
input
bits.
A
B
A
C
A
A
It's
because
the
permanence
is
tied
to
the
structure
of
the
pool.
That's
why
we're
going
through
this
extra
sort
of
step
through
the
pool
to
get
the
input
index,
because
I
didn't
want
to
create
the
pools
I
wanted
to
create
a
list
of
indices
for
the
pool
not
just
like
didn't
cover
the
entire
input
space.
It's
just
a
list
of
indexes
to
which
the
mini
column
connects
to
my
connectivity
and
then
the
permanence
is
associated
with
that.
A
C
A
B
A
A
That's
that's
what
I
would
expect,
because
there's
I
think
the
input
is
wait.
What
size
is
my
input?
Let
me
make
sure
in
the
test.
Anyway.
How
big
is
my
input?
Input
count
default,
input,
count
which
is
500
so
that
that's
what
I
would
expect
indices
up
to
500
and
there's
499
so
yeah.
So
that's
what
I
expect
not
to
be.
C
A
C
A
B
B
A
A
A
Let
me
see,
let
me
try
something
with
this
test
again,
you
would.
You
did
something
that
made
me
think.
Maybe
we
could
simplify
this
okay
and
say
instead
of
these
tests.
Okay,
let's
just
say,
assert,
deep,
equal
or
is
it
if
they?
If
that
overlap
includes
it,
we're
going
to
say
not
deep,
equal
I
think
it's
up
the
thing
not
deep
equal
and
we'll
just
do
all
of
them:
new
perms,
original
perms
and
no
perms,
so
that
should
that
should
pass
so
likes.
Okay.
So
if
there's
an
overlap,
the
firm
should
be
different.
Okay.
A
Did
did
that
work
I,
think
that
worked
so
maybe
I
just
have
maybe
I've
just
screwed
up
my
assertion.
Somehow:
oh
okay,
okay,
so
that's
promising!
Let's,
let's
do
is
deep.
Equal
whoops
I
think
it's
just
deep
evil,
deep,
equal
new
firms,
original
perms
I,
want
to
see
that
work
I'm
going
to
take
out
those
print
statement:
sighs,
okay!
So
if
this
passes
that
may
run
the
right
track,
then
maybe
I
just
had
something
wrong
in
my
assertion:
indexing.
A
A
B
A
A
So
I
can
actually
add
the
opposite
here,
this
other
one
for
the
winners.
So
for
the
for
the
non
winners.
Oh
you
know
what
I
should
be
doing
is
looping
over
the
the
whole
input
on
the
outside
with
the
winter
loop
on
the
inside.
Let
me
let
me
let
me
change
this
a
little
bit
then
I
can
then
I
can
include
the
test
for
the
loser.
Many
columns
in
the
same
place,
okay,
bear
with
me
here.
A
A
B
A
A
Okay,
you
know
what
I'm
gonna
I'm
gonna
sleep
on
this
I'm
gonna
sleep
on
this
and
we're
gonna
come
back.
Cuz
I
have
other
things:
I
gotta
do
today,
I've
been
streamer
for
like
five
hours
or
so
so
I'm
gonna
sleep
on
this
David
thanks
for
your
help.
Mark
thanks
for
your
support.
I
think
this
is
one
of
those
things
where
I'm
gonna
I'm
gonna
wake
up
tomorrow,
I'll
be
like
oh.
A
Know
so
we'll
put
this
in
a
branch.
This
isn't
simple
htm'.
This
is
important
that
we
get
this
right,
because
this
is
a
part
of
you
know
our
learning
for
spacial
our
spatial
Pooler,
so
I'm
gonna
put
this
in
a
branch
called
spatial,
polar
learning,
I'm
gonna,
add
both
of
this
stuff
and
say
partial,
partially,
no.
A
Let's
say:
half
half
written
learning
tests
that
don't
pass.
That's
pretty
obvious.
Okay,
git
push
origin,
SP
learning.
So
if
you
want
to
go
get
that
branch,
you
can
go
check
it
out.
I
feel
like
this
is
gonna,
be
something
else.
I'll
come
back
and
within
half-an-hour
figure
out
like
tomorrow.
So
if
that
happens,
I'll
fix
it
we'll
get
it
in
place
and
then
we'll
do
the
visualization
on
the
next
on
the
next
live
stream.
A
A
B
A
A
A
A
The
stream
of
the
Stratocaster
unboxing,
you
can
always
catch
it
on
the
video
on
demand.
Part.
So
I'll
see
you
guys
later
and
take
care,
probably
not
this
week,
because
I've
got
conferences
later
this
week,
but
definitely
next
week,
we'll
finish
this
up
and
the
visualization
will
be
cool
when
we
do
it.
When
you
have
learning
on
your
cool,
you
can
tell
that
it's
learning
so
we'll
get
to
that
point.
Take
care
everybody.