►
From YouTube: BHTMS: Overlap Duty Cycles for REAL
Description
This time!
A
Hey
everybody,
hello,
everyone:
whoever
was
there
today
we're
going
to
be
actually
finishing
the
inflammation
implementation
of
duty
cycles
and
simple
HTM
with
active
and
overlap.
I
attended
him
to
over
complicate
things,
and
so
last
stream
on
Monday
was
no
exception,
I
over
complicated
something
because
I
forgot.
What
I
really
want
is
a
reference
implementation
of
spatial
pooling
it
doesn't
necessarily
have
to
be
performant.
The
most
important
thing,
honestly,
is
that.
A
A
That
would
make
everything
very
performant
when
who
cares
right,
I
didn't
think
about
why
I
was
doing
what
I
was
doing.
So
thanks
for
joining,
let's
get
right
to
it.
We're
gonna
go
to
our
screen
and
I'm
gonna
show
you
what
I
have
done
sort
of
in
the
background,
and
that
would
be
to
the
spatial,
Pooler
implementation
and
simple
htm',
also
I'm,
hoping
that
anyone
that
is
chatting
will
notice
that
the
latency
is
lower.
A
A
A
A
So
that,
mr.
so
there's
no
chat
coming
on,
it
won't
be
on
the
screen,
but
you
could
still
hello.
There
comes
their
way
all
at
the
same
time.
Alright,
so
it
wasn't
me
hello,
guys.
Joshua
I
was
saying
everyone
else
who
was
joining
us
five
viewers,
apparently
okay,
now,
let's
get
to
what
we
want
to
do,
looks.
A
A
Okay,
so
here
are
the
changes
that
I
made
to
the
spatial
Pooler
to
enable
active
duty
cycles
and
overlapped
duty
cycles,
a
quick
review
for
those
of
you
who
don't
know
what
a
duty
cycle
is,
and
it's
just
how
often
over
some
period
of
time
something
occurred
or
it's
like.
Essentially
it's
a
moving
average
and
the
way
that
we're
implementing
it
here.
A
The
other
one
is
an
overlap,
duty
cycle,
which
is
the
same
sort
of
thing
from
the
perspective
of
one
mini
column
in
a
spatial
Pooler.
What's
the
average
overlap
that
it's
had
to
the
input
space
over
the
past
ex
cycles,
so
that
would
be
the
overlap
duty
cycle.
Both
of
them
are
interesting
to
display
hey,
David,
hello
Falco.
Hopefully
you
guys
will
find
that
chat
is
a
bit
more
responsive
because
I've
got
it
set
to
ultra-low
latency
at
this
point,
so
give
it
give
it
a
chest.
A
So
I'm
gonna
show
you
everything
fixed
up
what
what
I
had
last
time
on
Monday
I'm,
not
going
with
anymore
I'm,
going
to
actually
cash
so
the
way
I'm
gonna
do.
The
moving
average
is
not
to
implement
that
moving
average
function,
anymore,
I'm
going
to
have
it
more
precise
and
more
and
less
performant,
so
we're
going
to
actually
cash
every
single
activity
for
every
single
column,
whether
it's
on
or
off
and
in
an
array
and
the
same
thing
with
the
overlap.
A
So
this
actually
might
be
useful
later
when
we
stoop
further
visualizations
and
I
tested
it
out
in
simple
HTM,
and
it
wasn't
that
it
wasn't
that
bad.
It
didn't
slow
it
down,
at
least
on
at
least
not
on
my
so
so
what
we
did
is
we
were
I
added.
The
overlap
duty
cycles
in
in
a
private
variable
called
OD
C's
and
I
already
had
a
B
C's.
So
these
are
not
averages.
These
are
the
actual
values
of
activity
indexed
by
mini
column
index,
each
one
being
an
array
of
activity,
the
ADCs
being
ones
or
zeros.
A
The
ODC
is
being
overlapped,
counts,
I,
also
added
a
max
duty
cycle
period,
so
I
will
never
cache
more
than
a
thousand
time
steps
of
this
of
these
duty
cycles.
It's
I
could
change
that
later,
but
I
just
can't
I've,
just
hard-coded
that
for
now
so
I
also
added
some
accessor
methods
and
I
added
a
utility
function
to
mean
them
out.
This
also
meant
that
I
had
to
move
my
computer
can't
increment
into
the
compete
function,
which
is
where
the
competition
occurs
and
then
at
the
end
of
the
compete
function.
A
A
Types
of
not
talking
about
spikes,
so
compute
active
duty
cycles
is
I've,
got
two
functions
here:
compute
active
duty
cycles
and
compute
overlap,
duty
cycles
and
they're
almost
the
same
they're.
Both
calling
these
utility
functions,
update
duty
cycles
and
mean
duty
cycle
update
duty
cycle
because
we're
going
to
do
we're
gonna
track
these
the
same
way.
It
doesn't
matter
that
one
contains
percents
and
one
contains
integers.
A
It
doesn't
matter
so
we
implement
the
moving
window
the
same
way
and
then
the
mean
function
will
just
take
that
array
and
essentially
sum
them
and
do
an
average
taking
into
account
what
the
period
should
be,
which
was
one
of
the
calculations.
I
kept
messing
up
in
the
past
one,
so
I
actually
put
that
into
its
own
function,
called
compute
duty
cycle
period,
which
is
in
here
somewhere.
Isn't
it
compute
duty
cycle
period?
A
There
is
up
here
and
I'd
matched
this
to
the
way
that
new
pick
calculated
its
period,
but
then
I
also
at
the
end
I
made
sure
that
it
wasn't
larger
than
the
max
duty
cycle
period,
which
was
just
a
performance
thing.
I
threw
in
there
because
I
didn't
want
somebody
on
the
website
to
put
in
a
million
and
let
it
run
because
it
would
eventually
break
the
heap
the
JavaScript
heap.
A
So
so
that's
it.
The
update
is
just
going
through
each
one
implementing
the
moving
window,
which
is
essentially
if
and
and
here's
where
we
shift
off.
This
is
where
we're
enforcing
the
max
duty
cycle.
So
if
the
duty
cycle
arrays
get
longer
than
the
max
duty
cycle,
it
just
shifts
them
off
and
a
duty
cycle.
Then
we
push
the
new
one
into
so
this
will.
These
will
just
accumulate
until
it
gets
to
the
max
length
and
then
just
you
know
the
moving
window.
A
So
when
we
do
the
mean
that's
where
we
bring
the
period
into
account
and
we
will
only
calculate
the
mean
over
the
last
period,
so
we're
not
going
to
look
at
the
whole
window
that
we're
storing,
which
is
the
maximum
amount
that
we
can,
because
why
I
did
that?
It's
because
I
want
to
be
able
to
change
that
on
the
fly
so
go
into
this.
The
spatial
polar
instance
change
the
period,
so
we
can
see
active
duty
cycles
calculated
based
on
a
small
number
versus
a
large
number.
A
Building
HTM
systems,
so
this
was
unfortunate
but
I
renamed
the
test
to
duty
cycle
tests.
I
think
it
used
to
be
called
a
DC
test
for
active
duty
cycles
and
somehow
I
lost
my
history,
so
all
of
the
tests
are
currently
running
and
the
ones
that
I
was
having
problems
with,
which
is
like
this
one
where
we
move
past,
and
so
these
actually
are
working
the
way
I
expected
them
to
work,
we're
always
having
problems
on
Monday
and
with
the
small
values
that
wasn't
getting
the
moving
average
that
I
wanted.
A
Duty
cycles,
the
exact
same
test
essentially,
but
instead
of
overlaps
and
I'm
and
I'm
I,
don't
care
what
the
overlaps
are.
What
the
indices
are
when
I'm
storing
these
I
only
care
how
many
there
are
so
I'm
really.
So
this
is
sort
of
a
mock
of
an
array
this
this.
This
data
structure
here
is
a
mock
array
right.
A
So
I
expect
when
I
pass
this
into
the
overlap,
to
have
a
length
of
three:
that's
what
I'm
gonna
use.
That's
what
I
know
the
code
is
gonna
use
to
stash
its
overlaps
and
I.
Actually,
just
manually
did
this
so
after
I
send
in
and
when
I
do
this
because
I'm
not
calling
compete,
I'm
unit
testing,
just
the
computer
overlap
duty
cycles,
function,
I'm
mocking
out
the
iteration
so
that
that
makes
a
difference
the
compute
count.
So
we
compute
the
overlap
duty
cycles.
A
This
happens
inside
the
spatial
polar
and
now
it
updates
its
internal
duty
cycles
and
then
get
the
mean
and
that's
what
we're
going
to
be
displaying
on
the
screen
is
the
mean
overlapped,
duty
cycle.
That's
what
we're
going
to
do
today,
we're
going
to
take
this
array
and
show
the
mean
overlap.
Duty
cycles
assert
that
there
are
ten
of
them,
which
is
because
there
was
ten
many
columns
and
then
assert
the
act,
the
explicit
values.
This
is
really
the
test.
Everything
should
be
zero,
except
for
the
third
one.
A
Excuse
me
not
the
third
one,
the
index
three
and
index
seven,
which
are
three
and
seven
respectively
and
then,
when
I
do
the
second
one
this
I,
you
know
I
drew
all
this
out,
so
I
sort
of
had
an
idea.
It
should
be
an
average
between
three
and
four
here
and
an
average
between
seven
and
eight
here.
So
I'm
expecting
one
point
right
that.
A
Excuse
me:
no,
no
I'm,
sorry
an
average
between
three
and
zero
here
right
and
only
a
four
here
as
if
there
is
no
overlap,
I
think
we're,
assuming
that
there's
we're
not
tracking
it
Oh
to
excuse
me
because
this
would
be
zero
if
the
test
is
right,
what
I'm
seeing
is
wrong,
what
a
switch
statement
be
beneficial
to
each
duty-cycle
value
in
the
test
or
in
the
code?
I,
don't
I,
don't
know,
I'm
happy
with
these
tests,
because
I
like
to
tab
my
tests
very
explicit.
That's
a
scary
album
cover!
A
That's
freaking
me
out:
wrinkly
hairless
cat
okay.
So
all
these
tests
seem
to
be
working,
fine
and
then
I
actually
do
a
third
compute
and
test
the
same.
Do
the
same
thing
with
a
period
of
two
I
should
not
be
paying
attention
to
this
first
input
at
all
and
that
works.
So
this
is
before
there
should
be
eight
because
these
average
two
for
these
averaged
Oh
335,
oh
no!
No!
This
is
just
a
test.
I
would
rather
this
be
explicit.
A
This
type
of
stuff
in
a
test
I
want
whoever,
because
here's
what
happens
with
somebody
if
you
write
your
tests
well,
somebody
trying
to
understand
what's
going
on
and
overlap,
duty
cycles
will
come
to
your
test
and
try
and
understand
what
you're
testing,
if
I,
do
it
like
this?
It's
really
explicit
exactly
what
I'm
testing
I'm
testing
that
this
is
0.
This
is
0.
This
is
0
the
third
index.
3
is
1.3,
etc,
so
I'm
being
extremely
explicit,
so
I
can
match
this
explicitly
for
the
reader
of
the
test.
A
Whoever
comes
later
so,
this
is
not
production
code.
This
is
just
a
test.
If
it
were
production
code,
I
would
probably
wouldn't
do
it
this
way
and
in
tests
being
explicit,
I
feel
like
is
much
better
because
you're
trying
to
communicate
to
yourself
later
exactly
what
you're
testing
and
whoever
comes
to
maintain
your
code
later
exactly
what
you're,
testing
I
will
I
will
err
on
the
side
of
explicit
and
a
test
much
more
often
than
just
writing
some
clever
code.
A
You
know
what
I
hate,
okay
and
I
did
the
same
thing
to
make
sure
that
the
overlap
Duty
sets
are
accessible
by
after
calling
compete.
I
should
be
able
to
get
them
and
make
sure
that
they're
all
in
this
and
this
one
all
I
did
was
I
I
set
the
SP
settings
so
that
I
knew
they
would
all
overlap.
All
the
time
and
I
just
ensured
that
the
for
a
hundred
inputs,
the
overlap
duty
cycle,
was
a
hundred
that
they
were
always
a
hundred
okay.
A
A
A
A
Good
I'm
on
the
right
tag:
oh
yeah,
don't
I
have
them
upstream
sorry
get
push
zero
to
nine
of
the
stream
master
masters
get
get
commands.
You
know
what
I
mean
get
push
upstream,
0.29,
that's
the
magic
that
I
was
trying
to
do.
Okay,
so
I
push
the
tag,
I'm
going
to
go
check
out
master
I'm,
going
to
pull
from
master,
which
will
give
me
all
that
jazz,
I
just
pushed,
and
just
to
show
you
all
that
the
tests
run
we'll
run
the
tests
real,
quick
cuz.
A
A
A
A
So
I
honestly
prefer
twitch
over
YouTube,
but
I
reach
I
tend
to
reach
more
people
in
my
audience
on
YouTube
and
it's
less
work
on
YouTube
once
I
get
it
figured
out.
So
it's
less
work,
meaning
that
I
don't
have
to
review
the
video
and
highlight
the
sections
that
I
want
to
output
to
youtube
and
then
setup
those
and
then
name
them
properly
and
great
thumbnails
and
all
that
stuff.
Thank
you.
A
A
Excuse
me,
yeah
30
cycles
get
push,
I,
have
everything
yeah
I
get
push
origin
duty
cycles,
okay,.
A
B
A
A
Settled
great
part
there,
okay,
so
this
now
one
thing
I
don't
have
is
I
have
to
update
my
dependency,
just
simple
HTM
to
zero.
To
nine.
Is
this
too?
Is
this
too
small?
You
guys
can
see
that
right
kind
of
make
sure
that
yeah
I
think
you
should
see
that
so
now
that
that's
zero
to
nine
I
can
run
npm
install
and
should
say
one
updated.
A
Updated
one
package:
okay,
great
got
the
package,
and
so
what
I
have
done
here
is
updated
to
simple:
HTM,
have
introduced
a
duty
cycle
period,
state
variable
and
I
cleaned
some
stuff
up.
So
let
me
push
this.
Let
me
push
this
origin
duty
cycles.
It's
already
there
I,
don't
know
why
I
did
that.
Let's
go
make
a
pull
request,
so
we
can
see
it.
That's
what
I
really
want
to
do,
because
I
want
to
do
a
quick
review
with
it,
because
we're
gonna
run
it
and
you'll
see
what
what
what
I've
got.
A
A
A
This
is
just
cleanup.
I
cleaned
some
stuff
around
main
thing
that
we
changed
here
was
I
was
returning
the
actual
mean
duty
cycles
from
this
function,
called
compute
active
duty
cycles
and
I'm
not
doing
that
anymore
I'm,
not
explicitly
calling
compute
active
duty
cycles.
When
you
call
compete,
that's
what's
doing
it.
So,
let's
see
so
there
should
be
a
call
to
compete
in
component
did
update
somewhere.
Is
it
here
it's
in
here
somewhere
where's
the
compete?
Call,
let's
just
look
at
it
in
that
code,
see
discord!
Oh
yeah!
That's
just
me.
A
Repeat
so,
this
is
like
we
don't
have
a
compute
yet
in
spaceship
polar,
we
just
have
it
compete,
and
so
that's
so
we
call
compete
and
we
get
the
winners
which
are
the
mini
column.
Winners
of
the
competition.
This
compete
is
what
computes
the
active
duty
cycles:
computes
both
active
duty
cycles
and
overlapped
duty
cycles.
So
if
we
call
compete,
we
can
assume
that
that's
finished.
A
That's
done
so
now
when
we
want
the
active
duty
cycles
here
we
call
get
mean
active
duty
cycles,
so
that
will
just
do
a
mean
over
the
moving
window
and
we're
not
doing
anything
with
overlap
duty
cycles
yet
but
they're
there
whenever
we
want
them.
So
that's
what
we're
going
to
do
today
is
setup.
The
active
duty
cycles-
okay,
this
is
just
some
cleanup
that
I
did
I
still
need
to
make
these
proper
getters
and
setters.
That's
the
appropriate
intimacy.
A
Note:
okay,
I
put
a
warning
every
time
we
reinitialize
the
SP,
because
that
means
we
lose
all
of
our
permanence
history
and
our
duty
cycle
history.
So
I
just
put
a
warning:
there
I
also
created
a
react
component
so
that
we
can.
We
can
twiddle
the
the
duty
cycle
period
in
the
UI
and
put
it
in
place
and
that's
it.
Everything
else
just
worked
for
the
most
part.
I
think
these
are
just
white
space
changes.
A
Okay,
so
let
me
show
you
what
this
looks
like
before
we
merge
it
I,
don't
think
I,
don't
think
I.
Am
it
up?
Merge
this
yet
actually.
Well,
we'll
finish
what
we
were
doing.
The
package
I'm
gonna,
I'm
gonna.
Add
that
get
add
package
get
commit
updated
to
simple
HTM
to
nine
okay.
So,
let's
start
this
NPM
run
doe
yeah
I
did
all
that
Wednesday
I
didn't
there's
certain
things.
A
I,
don't
want
to
show
you
how
stupid
I
am
sometimes
it's
frustrating.
You
know.
I'm
like
this
is
so
dumb
and
hopefully
every
programmer
feels
like
that.
Sometimes,
but
I
was
like
she's
okay.
How
could
I
do
something?
I,
basically
wasted
all
of
my
two
hour
period
on
Monday
and
I.
Didn't
want
to
do
it
again
in
front
of
everyone?
A
Okay,
so
let
me
show
you
what
we
have
now
what
we
have
now
here.
This
all
look
familiar
all
the
way
down
to
active
duty
cycles,
and
so
the
new
thing
is.
We
have
duty
cycle
period
right
here:
okay
and
it's
set
to
100
learning's
off.
It
doesn't
matter
where
the
learnings
on
or
off
the
duty
cycle
is
still
accumulate,
so
I.
A
How
changing
the
period
changes?
How
active
duty
cycles
are
basically
the
mean
it
changes,
how
the
the
window
that
the
mean
is
calculated
against
the
higher
the
number,
the
more
spread
out
it
is,
and
it
doesn't
go
over
a
thousand
and
I
think
I
get
a
warning
if
I
go
over
a
thousand
yeah
I
limited
that
to
a
thousand
so
I
think
for
this
purpose.
A
We
can
just
keep
it
at
a
hundred
and
you're
not
going
to
see
much
of
a
difference
between
a
hundred
and
a
thousand
honestly
I,
don't
think,
but
at
least
it
gives
us
a
way
to
show
there
is
a
difference
and
you
can
see
a
difference
between
a
hundred
and
ten
after
this
thing
has
run
for
a
while.
Now
we
add
a
hundred-
and
you
can
see
it's
it's
more
spread
out
if
we
take
it
down
to
five
oops
I
broke
it
alright.
So
there's
a
bug.
A
Here
we
go
yeah,
so
if
you're,
if
you
mean
about
the
active
duty
cycle
thing
know
it
that's
great,
that
updates
in
real
time.
That
is
a
react
thing.
Well,
not
I
mean
changing.
The
number
is
not
a
react
thing.
That's
that's
happening
because
of
the
way
I
I
I
calculate
the
mean
and
the
spatial
Pooler.
So
you
can
change
the
period
and
it
will
just
change
the
way
the
mean
is
calculated.
It
won't
change
how
the
caching
is
done.
So
you
can
always
this
actually
updates
the
spatial
Buhler
and
changes
its
period.
A
B
A
A
So
that's
and
this
that
parts
react.
The
thing
that
automatically
restarts
is
react.
That's
one
nice
thing
about
it.
So
what
I
want
to
do
is
let's
do
the
same
thing
with
overlap,
duty
cycle,
but
first,
but
first
one
thing
I
think
would
be
nice
is
if,
as
I
hover
over
these
I
would
love
to
show
and
I've
thought
about
this.
In
other
places,
I
would
love
to
show
a
tooltip
I.
Think
I
have
a
I.
Think
I
have
a
an
issue
about
this
already.
A
Something
about
a
tooltip
on
hover
yeah,
hover
over
permanence
diagram,
hover
over
input
to
show
permanence
value.
I'm
gonna
make
a
note
of
this.
Let's,
let's
just
convert
this
to
an
issue
and
and
make
it
a
little
bit
more,
encompassing,
let's
say
great
tool
tooltip
on
hover
for
any
well,
just
let's
just
say
for
dthe
d3
rect
blocks,
rectangles.
A
On
the
potential
pools,
I,
don't
think,
there's
anything
to
show
so
there's
nothing
there,
but
here
not
this
one,
oh
yeah
yeah
there
is
actually
so
so
here
I
want
to
hover
over
the
input
and
see
the
permanence
value.
So
let
me
write.
Let
me
specify
that
on
hover
over
input,
I
put
that
show
permanence
value.
Okay,
and
that
should
be
done
on
this
one
too,
for
the
mini
column,
competition,
I
kind
of
I
want
to
hover
over
see.
I
already
have
this,
it's
not
on
hover,
but
the
overlaps
right
here.
So
that's
I.
A
A
This
one
is
the
same,
so
it
really
is
just
active
duty
cycles
on
hover
show
the
tooltip
yeah.
So
oh
right
that
this
is
going
to
be
for
on
ABC
ODC
diagram
on
hover
over
mini
column
show
duty
cycle,
that's
it
and
I'm
I'm.
Thinking
in
my
mind,
maybe
we'll
do
the
same
treatment
for
this,
because
it's
really
similar.
Maybe
that
would
be
a
non
hover.
I,
don't
know,
maybe
not
I'll,
think
about
that
later.
B
A
B
A
Going
to
create
another
thing,
which
was
one
thing
that
bothers
me,
is
when
I
select
like
this
I'm,
selecting
and
but
you
can
barely
tell
it
is
selected.
So
I
need
some
better
way
to
show
a
selection,
show-cell,
correct,
selection,
more
distinct,
distinctly
and
I
have
a
feeling.
That's
gonna,
be
another
overlay,
so
I'm
just
kind
of
keeping
track
of
what
I
need
to
do.
A
Okay,
yeah
we've
already
been
running
to
doing
live
share.
Yet
that's
that's!
Awesome!
Hey!
Let
me
turn
that
on
by
the
way.
Let's
live
share
so
Hussein.
If
you're
impressed
with
streaming.
This
is
outstanding,
so
I'm
going
to
share
my
code,
IDE
and
I,
don't
know
if
David
you're
in
a
place
to
show
this
off.
Let
me
pop
it
in
here.
Anybody
with
visual
studio
code
and
I
think
the
right
plug-in
can
now
enter
my
session,
live
share
session
and
enter
and
change.
My
code
live,
which
is
quite
amazing,
so
that's
pretty
cool.
A
A
Okay,
so,
before
I
get
sidetracked
this,
this
chat
interaction
is
much
better
with
the
ultra
low
latency.
So
that's
good.
That
was
the
one
thing
that
was
really
bothering
me
about.
Youtube
was
the
chat,
latency
and
I
think
that
we've
got
it
fixed,
so
I'm
going
to
create
another
diagram
here,
we're
going
to
call
it
overlap,
duty
cycles
and
we're
gonna
do
essentially
the
same
thing
and
I,
don't
think
we're
gonna
have
to
change
anything
I
think
what
we're
gonna
do
well
change,
something
we
don't
have
to
change
much
at
all.
A
I
think
what
we'll
need
to
do
is
make
the
diagram
for
duty
cycles
more
generic,
because
where's
my
components
diagrams
so
I
call
this
active
duty
cycles
when
really
I.
Think
I
should
just
call
it
duty
cycles,
because
the
only
thing
that
stiff
any
different
is
the
min
and
the
max
of
the
values
it's
stored
in
the
duty
cycles
of
the
mean
essentially
and.
A
The
values
we
send
into
it,
so,
let's,
let's
try
and
change
this.
Let's
see
if
I
can
do
this
from
here
change.
Let's
just
call
this
duty
cycles,
there's
Dave,
see
I
can
see
Dave's
cursor
right
here
and
I'm
gonna
enemy,
rename
this
to
just
duty
cycles
and
I.
Think
I
will
update
imports.
Yes,
I
do
want
to
date
him
ports!
Thank
you.
So
I
was
that's.
The
next
thing
I
was
going
to
do
so
looks
like
I.
Don't
have
to
do
that.
A
A
A
Who
saying
just
finished
internship
when
you're
studying
the
neuroscience
of
zebrafish
using
computer
science
and
math?
That's
cool?
That's
awesome,
you're
in
a
great
field,
I
think
computational
neuroscience
is
a
great
field
to
be
at
educating
yourself
in
right.
Now,
it's
like
with
the
wave
of
the
future
for
sure.
A
Maybe
you
might
have
been
interested
in
our
livestream
earlier
today,
which
we
had
a
PhD
from
Purdue
talking
about
spiking
neural
networks
with
Jeff
and
subitize
in
the
office
okay.
So
this
is
going
to
be
overlap,
duty
cycles
and
here's
I
think
all
we
need
to
change
here
is
instead
of
active
duty
cycles
being
what
we're
sending
in
we're
gonna
send
it
overlap
duty
cycles,
which.
A
A
Of
thresholds,
permanence
is
I'm,
not
sure
we
need
to
send
the
thresholds,
but
oh
I'll,
look
into
that
in
a
moment,
selected
mini
column,
and
then
this
is
still
going
to
be
able
to
update
the
selected
mini
column.
So
all
these
diagrams
have
the
ability
to
update
selected
mini
column,
shouldn't
I
limit
the
period
to
one
and
the
react
component.
A
A
A
A
A
A
Spatial
pooling
down
to
overlap
duty
cycles.
Okay,
this
is
also
overlap
dirty
cycles.
This
is
going
to
be
figure.
Six
overlap,
duty
cycles
right
now.
It's
getting
sent
zero
information
and,
let's
see
Oh
DC
overlapped
duty
cycles,
overlapped
duty
cycles,
we're
not
timesing
it
by
100
and
we're
not
doing
a
percent
here.
A
It's
initially
undefined
and
then,
wherever
we're
doing
we're
getting
the
active
duty
cycles,
that's
where
we
want
to
do
the
same
thing
for
overlap,
and
this
is
all
coming
from
simple
HTM,
which
I
showed
you
at
the
top
of
the
episode.
I,
think.
That's
it
I
think.
That's
all
I
think
it'll
work
yeah,
okay,
so
it
does
work
and
you
can
see
that
if
I
select
one
of
these
many
columns
like
here,
so
that's
here's
the
active
duty
cycle,
which
is
18
percent,
that's
its
activity
and
then
the
same
one
selected
here.
It's
overlap.
A
Duty
cycle
is
17,
so
that's
the
average,
and
if
we
select
it,
you
should
see
1,
2,
3,
4
or
5,
some
third
somewhere
around
17
19,
but
that's
essentially
what
what
we're
doing?
Let's
pause
it
I
need
a
pause
button.
What,
if
that's
weren't
another
one
of
the
things
I
need
to
do?
Let
me
keep
writing
this
stuff
down.
Do
I
have
one
for
this.
Yeah
I
already
have
one
for
this.
The
the
pause
button
needs
to
be
in
line,
and
it's
not
I
want
to
be
able
to
put
it
right
in
a
paragraph.
A
So
someone
can
click
it
as
they're
reading
and
it
doesn't
work
like
that
because
it's
an
SVG
component
and
it
doesn't
it
so
I'm
gonna-
have
to
come
up
with
a
pause
button.
That's
not
an
SVG
component
I
think,
but
as
we
pause
it,
we
should
be
able
to
see
that
the
green
ones
are
lower.
So
look
here
11.
So
if
I
go
to
a
red
or
one,
it
should
be
higher.
16
I
go
to
an
even
redder
when
it
should
be
higher
17.
If
you're,
really
red
one
is
19,
so
that
makes
sense.
A
The
super
green
ones
are
super
low,
and
that's
that
reflects
the
past
hundred
time.
Steps
like
this
one
right
now
only
has
five
but
the
over
the
past
x
time
steps.
However,
anything
seen
because
I
haven't
seen
hundred
the
average
is
nine,
so
it's
usually
higher
than
than
five
okay,
yeah
David
I
saw
I
set
it
to
one,
but
I
bet
it.
It
still
doesn't
work
watch
and
it
only
works.
It
doesn't
work
if
I
delete
them
all.
Oh,
it
doesn't
work
that
didn't
use.
That's
what
crash
last
time.
That's
weird!
A
B
A
Delete
not
this
one
but
just
delete,
delete,
delete
all
it
crash.
That's
what
I
needed
not
to
do
so.
It
just
needs
to
do
basically
a
null
check
and
if
it's
a
null,
you
know
set
it
to
the
minimum
value
of
work.
That's
fine
with
me!
Let
me
I'll
make
a
note
about
that.
Let's,
let's
convert
this
to
an
issue
this
one
there's.
A
A
Do
you
want
to
okay
so
now
I
want
to
choose,
because
I
have
another
I
don't
want
to
in
this
dream
so
quickly.
I
want
to
get
something
done,
but
I
I
don't
want
to
move
on
to
the
stacked
competition
one.
The
next
thing
I
want
to
do
is
a
stack
rank
which
is
going
to
be
the
stream
on
Monday,
because
I
think
that'll
be
fine.
We'll
start
out
with
a
new
diagram
start
with
d3.js
from
scratch.
You
know
a
new
SVG.
We
won't
be
reusing
anything.
A
A
B
B
A
That's
fine!
That's
fine!
It's
in
the
competition
where
things
get
hairy.
So
so,
let's
go
to
this
competition
and
what
I'm
currently
doing
is
I'm
just
setting
the
border
differently.
If
the
minute,
if
this
selected
index
is
the
one
that's
being
rendered
and
that's
not
what
we
should
do,
we
should
have
add
a
new
overlay
that
shows
the
selected
mini
column
and
once
we
do
that,
it's
probably
something
we
can
just
copy
and
paste
into
the
other
diagrams
to
to
make
them
all
sort
of
look
the
same.
So
let's
do
that.
A
So
this
is
going
to
be
just
d3
stuff.
So
let's
go
into
the
component,
mini
column,
competition
and
and
alright,
let's
go
back
into
component.
Here's
the
update,
so
update
is
what
gets
called
every
time.
There's
new
data,
essentially
every
time
component
did
update,
is
called.
This
is
what's
going
and
we
are
only
going
to
render
the
competition
if
we
have
overlaps.
That's
just
an
indication
that
account
computation
has
been
made
yeah.
A
What
I
mean
by
an
overlay
is
a
new
group,
a
new
SVG
group.
Let
me
show
you
real
quick,
so
this
is
the
SVG
that
we're
doing
we're
creating
a
mini
column
and
one
thing:
you'll
notice
here
is:
there's
three
groups
in
the
input
space,
so
I'm,
rendering
the
input,
the
potential
pools
and
the
connections
in
different
sort
of
layers.
So
I'm,
really
when
I
say,
lay
overlay,
I'm,
sort
of
saying
another.
A
Another
group
in
the
many
columns,
I'm
doing
them
all
at
once,
I'm,
and
so
that's,
and
so,
if
we
look
at
this,
how
we
render
the
many
columns-
and
you
can
see
this
in
the
function
so
when
I
say
render
input
space
I've
got
three
functions.
I
call
render
the
input
and
I
call
around
er
the
potential
pools
and
render
connections
I
do
them
all
separately
in
all
three
different
layers,
which
is
much
better,
although
I
mean
you
do
have
to
sort
of
make
three
passes
through
the
data,
it's
a
whole
lot
easier
to
manage.
A
Let
me
go
back
and
follow
it
because
I
don't
know
what
I'm
doing
there
we
go
render
competition,
so
I
already
have
set
this
up
to
do
it
the
right
way,
because
I'm,
just
I,
here's
where
I
want
to
say
render
many
columns.
What
I
want
is
to
say,
render
selected
mini
column
basically,
and
that's
it
so
so
that'll
just
be
in
another
layer
that
doesn't
exist.
You
of
course
hence
know
I,
don't
know!
Well,
that's
not
to
do.
I
can
start
a
discussion.
A
A
So
what
I'm
gonna
do
here
is
add
a
group
that
goes
around
everything
put
this
mini
column
group
inside
of
it,
because
we
want
to
be
able
to
move
this
whole
diagram
wherever
we
want,
like
all
together,
so
we'll
apply
any
transformations
to
the
outer
group.
If
we
want
that,
we
need
to
and
I'm
going
to
call
this
many
columns
so
I'm
going
to
put
this
class
here.
A
That
one
called
many
columns.
Let's
call
this
one
like
a
spatial
polar
last
name,
we'll
call
it
spatial
yeah.
Let's
do
so
now,
so
then
this
one
will
stay
basically,
the
same
so
we're
gonna,
add
another
overlay
or
later
excuse
me
and
we'll
call
it
selected
mini
column
and
we'll
leave
it
back
and
then
so
every
as
is.
This
should
still
work.
Just
fine,
no
select
bro.
A
A
Pause
I
should
see
tons
of
rectangles,
obviously,
but
it's
right.
If
now
it's
within
a
spatial
pool
or
group
and
I've
got
a
selected
mini
column
group
that
has
nothing
in
it.
So
so
now
I
just
have
to
populate
that.
So
this
should
be
pretty
easy.
I'm
just
gonna
create
a
rectangle
or
some
indication
of
a
selection.
Maybe
I
can
Circle
it.
I,
don't
know.
A
A
A
And
then
this
will
always
be
0.5.
The
opacity
will
always
be
0.5
from
now
making
their
selection
here.
Okay,
so
the
fill
opacity
is
always
point
5,
so
I
think
I
got
rid
of
it
all
of
those,
and
so
now
this
diagram
will
never
reflect
anything
that
has
to
do
with
selecting.
So
this
one
does.
Oh,
no
I
broke
it
these
these
do
so.
This
still
works,
but
these
will
not
don't
display
selected
me
to
calm
anymore.
So
now
we
want
to
do
that.
So
this
should
be
shouldn't.
Be
too
hard.
A
B
A
Things
about
git
is:
could
just
go
back
okay,
so
the
data
that
we're
using
here,
I'm
gonna,
look
and
see
how
we're
rendering
the
mini
columns,
because
I
need
to
find
out
like
if
this
is
selected.
If
this
is
a
selective
mini
column,
I
need
to
get
the
X
Y
position
of
the
cell
so
that
I
can
draw
something
over
top
of
it
to
indicate
the
selection.
A
And
then
how
are
we
calculating
X&Y,
here's
x
and
y?
So
oh,
the
number
of
columns
so
I
wanted
I
also
need
to
know
the
number
of
columns
and
that's
in
the
diagram
all
right.
So
that
means
like
in
this
or
I
screwed
up
I
need
to
get
the
diagram
which
also
that's
where
we
can
make
that
calculation.
We
need
a
diagram
with
so
not
familiar
JavaScript,
so
I,
don't
have
much
to
say.
Okay,.
B
A
Is
not
just
JavaScript
I'm
using
a
specific
library
and
JavaScript
called
d3.js,
it's
one
of
the
best
visualization
libraries
that
I've
ever
used.
It's
really
it's
very
data-driven!
So
typically
you
just
create
your
arrays
of
data
and
then
you
operate
on
them.
You,
you
like
decorate
them
with
functions
that
render
things
in
response
to
changes
in
that
data.
It's
really
a
beautiful,
beautiful
library.
A
B
A
A
A
Let's
see
what
should
I,
what
should
I
call
this
highlight
it.
Let's
call
it
highlighted:
cuz
I
already
called
the
other.
One
is
selected.
Actually,
no
yeah,
that's
fine
I,
don't
want
to
overthink
it
I,
don't
need
to
overthink
it.
So
I'm
not
gonna,
put
an
x
and
a
y
on
it
and
for
the
circle,
I,
don't
think
it's
X&Y
I
think
it's
called
CX
and
CY.
B
B
A
So
now
I'm
going
to
grab
that
circle,
which
I
can
do
use
from
the
root
here.
So
here's
this
would
be
the
I'm
not
even
going
to
touch
the
group
but
I'll,
but
I'm
keeping
it
there
in
case
I
ever
want
to
move
this
somewhere.
I
can
just
move
it
using
the
group,
so
I'm
gonna
grab
this
all
high-minded
and
you
call
them,
which
I
think
is
what
I
just
called
I'll
call
this
off
highlights
and
this
I
know
this
is
a
circle.
So
I
can
just
say:
highlight
adder
CX
x
highlight
better
see
why?
A
A
A
A
B
A
Fresh,
not
quite
it's
networking,
let's
go
see,
let's
go
look
and
find
the
circle.
It's
Bishop
elected
mini-com
circle
na
na
na
end,
so
we
got
problems.
Ok,
let's
go
find
out
what's
going
on
here,
so
it
doesn't
like
whatever
attribute
I'm
sending
it
so
I'm
just
doing
the
calculation
wrong.
Let's
put
the
debugger
back,
let's
see,
what's
going
on
here,
okay,
selected
mini
column
is
0,
columns
is
20
cell
width.
Cell
width
is
the
problem.
So
let's
diagram
with
columns,
Oh
columns
needs
to
be
first.
A
A
A
A
A
Circle
padding,
let's
make
it
I,
don't
know
four
pixels
okay,
so
the
cell
width
is
going
to
be
that's
fine.
This
I
want
to
be
that
and
the
radius
is
going
to
be
that
plus
the
circle
pad
and
let's
make
it
eight.
So
that's
going
to
be
four
on
each
side,
so
that
should
make
the
circle
a
little
bit
bigger.
That's
too
big,
that's
too
big
for
probably
as
good
and
then
I'm
also
going
to
change.
A
A
A
A
A
Like
right
right
here,
this
border
is
that's
because
the
wrecks
are
our
anime
are
rendered.
You
know
in
sequential
order,
so
this
one
is
rendered
and
then
the
one
on
the
right
of
it
is
rendered,
and
it's
lion
goes
over
top
of
the
one
before
it
and
the
one
down
here
when
it
gets
rendered
it
overlaps.
It
goes
over
top
of
the
one
before
it,
so
what
we
should
really
do
to
fix.
A
A
Build
link
building.
Okay!
Let
me
quick.
Do
a
quick
review.
The
code
before
we
do
this,
so
I
renamed
active
duty
cycles
into
duty
cycles:
I
changed
this
isn't
even
the
code.
This
is
pretty.
Is
this
there?
It
is
no!
It's
not
duty
cycles
hold
on
I'm,
totally
confused,
okay!
No!
No!
This
is
right.
Sorry,
oh
god,
I
confused
myself
are.
A
A
A
See
that
this
is
something
that
Visual
Studio
code
like
didn't,
really
do
right,
because
when
I
change
the
name
of
this,
it
should
have
known
renamed.
No,
not
remote,
get
move,
get
em
be
yeah
source
destination
force.
Maybe
I
can
just
force
it.
A
A
A
B
B
A
A
B
A
A
A
A
A
A
B
A
A
A
A
A
I'm
still
on
the
duty
cycles,
PR.
So
let's
just
get
I'm
just
gonna
push
all
this
to
master
thanks.
You
saying
for
checking
it
and
hanging
out.
I
want
to
push
this
to
master
and
then
I'm
gonna
cut
the
stream
for
today.
I
have
some
things.
I
need
to
do
this
weekend.
So
thanks,
Falco,
you're,
very
couraging.
A
Make
sure
that
I
got
so
go
for
those
are
those
are
duplicates,
but
whatever
all
right,
I
am
merging,
so
we
should
see
now
that
we've
emerged.
We
should
see
this
update
soon
out
on
building
HTM
systems.
Heroku
app
clean
this
up,
okay,
so
this
I've
I've
done
at
least
in
one
spot.
So
let's
put
that
no
we're
done.
A
Do
anybody
who
is
watching
and
wants
to
get
involved?
You
can
certainly
check
some
of
these
issues
out.
Some
of
them
are
actually
flagged
with
help
wanted
if
you're
interested
in
doing
a
little
bit
of
d3.js
stuff
go
for
it,
of
course,
put
it
in
a
pull
request
so
that
I
can
review
it.
I'll
even
I,
give
you
credit
on
the
stream
for
your
hard
work,
so
this
usually
takes
a
while
for
it
to
update
so
I.
Don't
think
it's
gonna
be
ready
yet,
but
that's
where
it's
gonna
end
up
in
the
long
run.
A
It'll
end
up
right
here,
so
you
guys
can
check
it
out
whenever
I
will
be
back.
Hopefully
there's
a
research
meeting,
Monday,
pretty
I'm,
not
sure
if
it's
gonna
be
research
meeting
on
Monday
or
not,
but
I
will
do
a
live
stream
and
we'll
do
the
the
stack
ranking
diagram
like
you
see
in
HTM
school
I.
Think
the
SP
Learning
episode
I
think
is
going
to
do
the
stack,
ranking
1,
so
we're
gonna
do
something
similar
to
that.
Except
it's
not
going
to
be
vertical.
A
It's
gonna
be
horizontal,
so
that
we
can
specifically
see
all
of
the
different
mini
column,
overlap,
scores
and
then
cut
exactly
where
we're
going
to
decide
where
the
meters
are
going
to
be.
So
thanks.
Everybody
for
watching
thanks
Falco,
for
your
encouragement.
Take
care
have
a
wonderful
weekend.
I
will
see
you
on
Monday.