►
Description
A day early, but not short on content. Don't want my validation???? Well, tough! You're going to get anyway. How do you like them apples?
And today's episode is brought to you by the letter 'k'. Just so you know.
Contents:
0:00 - Title
0:32 - Intros
0:49 - Letter of the Day
4:16 - A New Approach to Validation
8:59 - The Code
33:00 - Wrap Up
Music: https://www.bensound.com
A
A
Hello,
everybody
I'm
George,
Williams
I'm,
the
next
search
catalog
coordinator
at
Northeast,
Kansas
library
system,.
B
I'm
Christopher
Brannon,
the
I.T
coordinator
for
the
Coeur
d'alene
public
library
and
the
Cooperative
Information
Network,
and
today's
episode
is
brought
to
you
by
the
letter.
K
is
for
katzenjammer
K
is
for
Coppell,
Meister
P
is
for
knucklehead,
K
is
for
Knickerbocker
and
K
is
also
for
kohai
us.
A
Awesome
well,
as
Christopher
mentions
kohai
us,
we
are
a
part
of
the
koha
U.S
education
committee
and
you
can
always
find
koha
us
at
koha-us.org,
I'd
like
to
point
out
right
now
that
we
just
had
our
conference
last
month,
our
annual
conference,
which
was
also
the
international
kohakhan,
and
if
you
go
to
so,
if
you
go
to
koha-us.org
on
the
home
page,
we
have
now
got
all
of
the
recordings
and
all
of
the
slides
from
all
of
the
presentations
that
had
slides
all
of
those
are
available
on
the
home
page
at
the
koha
Us
website.
A
It
yeah
we
had
a
lot
of
fun.
It
was
here
in
Lawrence
so,
but
it
was
also
virtual.
We
had
it
was
over
800
people
registered
and
I
think
at
one
point
we
had
about
200
people
watching
simultaneously
online,
so
it
was
really
good,
really
good
event.
If
you're
looking
back
good
questions
yeah,
we
had
good
good
questions
from
the
people
that
were
there
and
good
questions
online
for
most
of
the
presentations.
A
It
was
just
a
an
all-around
good
conference.
So
if
you
specifically
want
to
find
our
videos,
though,
you
can
go
to
learn
and
go
down
to
video
playlists.
A
And
the
videos
that
we
do
every
other
week
are
here
under
the
terrific
area
that
there's
a
training
videos.
This
is
our
third
year
doing
this
and
there's
a
lot
of
stuff
there
there's
about
well,
we
must
be
getting
close
to.
We
must
be
over
50
videos
now.
A
Yeah,
we
must
be.
We
must
be
over
50
videos
now
so,
and
you
can
also
see
all
of
these
on
YouTube.
If
you
go
to
YouTube,
you
can
subscribe
to
our
videos
you
can
subscribe,
you
can
follow
koha
us
and
every
time
we
post
a
new
video
you'll,
be
alerted.
A
Today
we're
going
to
talk
more
about
validation
and
so
I'm
gonna.
You
know
we
did
two
videos
on
validation.
A
The
first
one
was
just
kind
of
the
general
idea
of
how
to
tell
koha
to
make
sure
to
set
up
rules
for
entering
Patron
data
and
first
time
around,
we
entered
a
few
rules
on
on
I
think
we
did
emails
and
phone
numbers
kind
of
and
and
then
last
week
we
added
some
more
stuff,
and
this
week
we're
going
to
talk
some
more
about
that.
So
yeah.
B
And
you
know
today
we're
going
to
take
a
slightly
different
approach
to
validation
where
we
were
taking
over
the
submit
button
for
the
Patron
data
entry
form
this
time,
we're
going
to
do
a
little
bit
of
a
different
approach
where
we're
going
to
actually
do
some
brute
force
formatting,
rather
than
have
interaction
with
the
staff
member.
So
we'll
show
that
and
kind
of
give
people
an
idea
of
different
approaches
to
how
we
can.
We
can
improve
the
patron
data
as
it's
entered
so
on
our
demo
system.
B
So
we
use
this
Patron
before
I've
removed
the
the
previous
data
entry
or
a
validation
that
that
we
used
in
the
previous
two
videos
and
again
that
was
basically
we
hijacked
the
save
button
and
anytime
that
we
entered
Patron
data
and
we
press
save.
B
Instead
of
it
just
saving,
it
would
go
through
different
functions
and
and
compare
particular
fields
to
particular
patterns
set
up
with
retch
X,
and
it
would
make
those
comparisons
and
if
it
saw
anything
that
that
matched
the
pattern
that
was
incorrect
or
excuse
me
didn't
match
the
pattern.
B
Didn't
match
the
pattern,
it
would
complain
about
it.
It
would
have
a
specific
message:
give
a
little
bit
more
detail
as
to
what
the
problem
is
this
time
around,
instead
of
approaching
it.
From
that
perspective,
we're
going
to
do
like
what
I
said
is
a
brute
force
formatting,
where,
instead
of
it,
it
interacts
with
the
the
staff
member
on
these
particular
things.
It
will
just
change
it
force
it
the
change
and
it's
going
to
do
it.
B
It's
going
to
look
at
things
on
each
key
press,
so
it's
going
to
evaluate
it
constantly
as
you're
you're
typing.
So
let
me
get
out
of
this
Patron
and
let's
go
over
to
where
we're
going
to
enter
our
information.
So
the
first
thing
that
I'm
going
to
do
here
in
this
particular
case-
and
you
know
I-
don't
do
this
all
the
time,
but
this
is
always
a
good
practice.
I'm
going
to
make
sure
that
we're
on
the
the
page
that
we
want
to
affect.
B
B
So
in
this
case
we're
looking
for
the
the
the
ID
of
the
page,
which
or
actually
is
the
page-
let
me
inspect
it.
It's
been
a
while,
since
I've
actually
looked
at
this,
sometimes
it's
the
page,
sometimes
it's
yeah,
so
it
is
the
the
body.
Id
is
what
it's
looking
for.
So
it's
making
sure
that
you're
on
the
page,
you
can
specifically
narrow
it
down
even
further
to
a
specific
section.
B
In
a
page
they
have
to
be
just
the
page,
but
you
do
have
run
into
the
the
chance
that
it
might
be
repeated
on
another
page,
so
I
always
find
at
least
ID
the
page,
and
if
you
want
to
narrow
it
down
further
within
that
page,
you
can
add
the
ID
within
that
page
as
well.
To
that
you
don't
have
to
stick
with
just
one
ID
in
the
selection.
B
I've
got
two
functions:
I
want
to
cover
today,
I'm
not
going
to
cover
them
all.
I'll
I'll
show
you
everything
that
I
have
briefly
when
we're
done,
but
I'm
only
going
to
go
over
a
couple
functions
for
sake
of
time.
I
mean
there's
a
lot
that
you
can
do,
and
this
just
gives
you
a
jumping,
a
a
a
jump
off
point
to
do
your
own
thing.
So
right,
that's
all
we're
trying
to
accomplish
here
today.
So
the
first
thing,
I'm
going
to
add,
is
a
function
that
is
going
to
basically.
B
Correct
the
Patron
entries-
and
it's
going
to
look
at
word
per
word
and
it's
going
to
capitalize
the
first
letter
of
each
word.
This
works
for
names
in
our
case
it
works
for
addresses.
It
works
for
cities.
So
we
we
utilize.
This
particular
function
for
several
fields,
and
this
is
going
to
capitalize
the
first
letter
in
each
word.
B
So
it's
basically
having
to
break
apart
what
your,
what
you're
typing
in
it's
looking
at
on
every
key
up,
it's
looking
at
what
you
have,
and
it's
separating
it
word
by
word
and
it
is
taking
the
first
letter
and
capitalizing
it
now.
There
are
some
exceptions
to
this,
so
we
have.
We
have
to
Define
some
exceptions,
so
I
have
an
if
statement
in
here
that
that
looks
at
the
word
and
basically
it's
looking
at
it's
looking
at
the
first
word.
Really,
it's
not
looking
at
all
words
in
in
the
field.
B
It's
only
evaluating
or
not
the
first
word,
it's
it's
evaluating
the
last
word
that
was
entered
so
once
you've
put
in
a
space
and
started
a
new
word.
It
stops
evaluating
the
words
before
that
and
there's
a
very
specific
reason.
Why
I
did
that
and
I'll
talk
about
that
in
just
a
second?
But
it's
looking
at
the
last
word
that
you
entered
and
in
some
cases
we
don't
want.
B
Just
the
first
letter
changed
we
we
we
want
to
be
able
to
accommodate
for
things
like
if
the
last
name
begins
with
Mick
or
Mac.
If
we
had
some
like
I,
don't
know,
I,
don't
know
what
the
D'angelo
we
had.
You
know
things
like
PO
Box.
B
We
had
you
know
if
they
were
a
name
with
the
second
or
the
third
or
the
fourth,
or
something
like
that
and
there
we
wanted
to
make
exceptions
for
those
particular
things
and
I
have
something
in
here
I'm
going
to
remove,
because
that
was
something
I
was
just
testing
earlier
and
you
don't
need
that.
So.
B
B
Exactly-
and
you
know
it
depends
on
how
your
library
is
entering
things,
you
might
be
using
your
surnames
to
have
those
those
extra
pieces
located
in
those
fields
rather
than
the
last
name.
We
keep.
You
know
the
the
Juniors,
the
seniors,
the
the
first,
the
second,
the
thirds
we
keep
those
with
the
the
last
name
or
the
surname.
So
that's
why
it's
checking
in
this
case
right,
we
also
are,
you
know
we're
replacing
certain
cases
where,
let's
see
here,
where
is
it.
B
We
have
we
have
a
a
certain
case
here,
where
we
had
an
apostrophe
and
I
had
to
make
specific
rule
for
that
and
I
couldn't
use
the
the
regular
if
statement
for
it,
I
had
to
use
a
replace
for
it,
but
if
a
word
I
and
I
I
can't
think
of
a
name
that
does
this,
but
it
was
a
lowercase,
D,
apostrophe
and
a
capital.
A
so
I.
B
I
was
looking
for
any
particular
instance
where
they
had
a
d
and
an
apostrophe
and
an
a
to
always
format
it
with
a
little
d
apostrophe
and
then
a
capital
A.
B
So
the
you
know,
that
was
a
very
specific
situation
and
the
modifications
that
I've
made
in
here
since
then
I
could
probably
eliminate
that
because
it's
such
a
rare
case
but,
as
I
said
I'm
having
it
look
at
just
the
last
word,
so
that
if
you
run
into
a
case
where
you
have
a
one-off,
where
you
know
the
rules
don't
apply,
the
rules
don't
work
right
for
that
particular
spelling
or
you
know,
punctuation
in
the
name.
You
can
enter
a
space
and
then
go
back
and
edit
it
and
you
can.
B
You
can
Brute
Force
change
it
and
it
won't
try
to
to
brute
force
it
back
to
wait
to
the
way
it
thinks
it
should
be
so
kind
of
I
I
built
that
into
it,
so
that
so
that
we
could
work
around
it
a
little
bit
if
we
needed
to
so
it's
basically
looking
at
those
last
words
and
then
and
then
joining
joining
it
to
the
field.
So
it
returns
those
those
words
that
are
changed
to
what
it
was
already
formatted.
B
B
Formatting
always
gets
thrown
off.
Okay,
this
function
removes
periods,
I
mean
I
name.
These
functions
to
be
very
specific,
and
so
it's
very
obvious
what
they
do.
This
one
removes
periods.
So
in
our
case,
you
know,
I've
always
trained
staff
to
enter
things
like
if
you're
putting
in
something
like
Saint
Mary's,
don't
put
the
period
after
Saint.
B
If
it's,
if
it's
abbreviated,
if
you're
putting
in
a
abbreviated
suffix
to
a
street
like
Avenue
or
Street,
or
you
know,
whatever
Elaine
don't
put
a
period
after
that,
some
staff
are
doing
it.
Some
are
are
not
so.
This.
B
So
yes,
this
this
one
uses
Brute
Force
to
keep
the
periods
out
of
these
specific
in
the
fields,
and
so
you
know
for
me
you
know
I,
I,
think
about
the
data
and
I
think
about
the
storage
and
every
character.
You
type
takes
up
space
in
a
server
somewhere,
and
it's
like
why
throw
in
a
bunch
of
stuff
that
we
don't
need.
So
you
know
I
stripped
that
stuff
out.
So
this
removes
the
periods
as
you
type.
A
What
I
don't
like
about
Punctuation
is
that
it
makes
searching
I'll,
always
have
a
staff
member
that
will
search
for
like
Ave
period
and,
if
they're
searching
for
something
like
that,
you
know
if
they're
running
a
report
and
they're
and
the
report
allows
them
to
enter
Search
terms.
If
there's
a
period
in
there
when
in
the
search
term,
they
type
they're
not
going
to
get
a
result,
so
taking
the
periods
out
would
make
it
so
that
you
know
the
yeah
that
the
data
is
more
consistent.
B
A
Of
places
where
the
data
consistency
is
nice
for
when
somebody
for
for
one
one
of
the
same
people,
that
does
it
inconsistently
all
the
time,
then
they
call
you
later
and,
and
they
won
a
report
to
run
that's
they
say
you
know
why.
Why
is
all
this
dating
consistent?
What
are
some
of
them
have
periods
and
some
don't
well
it's
because
the
person
that
entered
the
data-
you
know
some
of
them
added
the
period.
Some
of
that
it
didn't
someone
added
the
comments.
A
Some
of
them
did
some
of
them
used
a
colon,
some
of
them
didn't.
So,
if
you
can,
if
you
want
consistent
data,
you
can,
and
you
can
force
people
to
actually
enter
consistent
data
you'll
get
more
consistent,
yeah!
That's
what
I
find
so.
B
So,
okay,
now
I've
got
two
functions
defined
as
to
you
know
what
to
do
in
on
these
particular
things,
but
now
I
need
some
way
of
it.
Knowing
to
call
these
functions
so
right.
A
B
This
is
when
this
function
is
going
to
take
place.
It's
going
to
do
it's
going
to
call
the
capitalized
words
function
and
it'll.
Look
at
the
value
within
that
particular
field,
whichever
field
it
is
and
the
same
thing
with
the
remove
periods
function,
it's
going
to
look
at
the
the
value
in
there
and
evaluate
it
now,
keep
in
mind
that
one
drastic
difference
between
this
kind
of
validation
or
formatting,
as
opposed
to
the
validation
that
I've
shown
in
the
past
two
episodes
the
past.
B
The
other
validation
that
we
used,
where
we
took
over
the
submit
button
that
works
well
to
clean
up
pre-existing
data.
So
you
know,
look
at
the
field
and
it'll
always
catch
those
things
you
know.
So,
if
you
put
your
validation
in
way
after
the
the
the
patron
records
have
been
created,
whenever
you
go
back
and
edit
those
patrons
it'll
catch
that
stuff,
this
is
different.
This
is
this
is
looking
at
things
only
on
key
up,
and
it's
only
looking
at
the
last
word.
So
it's
not
going
to
retroactively.
B
You
know
catch
things
and
fix
them.
It's
only
going
to
catch
things
as
they're
being
entered,
so
that's
a
huge
difference
in
this
type
of
validation.
It's
good
I
like
this,
but
you
know
this
one
can
be
worked
around
a
little
bit
where,
as
the
other
one
was
more
of
a
stickler
and
could
retroactively
thick,
you
know
catch
things
that
had
been
entered
prior
to
the
validation
being
added
right,
the
form
so
all
right.
So
this
will
will
watch
on
key
presses
when
I'm
entering
information
on
that
form.
B
B
Oh
Ryan,
okay,
this
is
not
how
I
would
enter
it.
I
would
normally
capitalize
the
B,
but
you'll
see
that
it's
you
know
as
I.
Let
go
the
key.
It
change
it
to
lowercase.
So
this
is
where
to
work
around
it.
I
would
add
a
space
at
the
end
temporarily
to
fix
that.
Oh
and
well,
you
have
to
keep
the
the
space
in
there.
So
you
know
you
have
to
you
have
to.
You:
may
have
to
come
up
with
some
more
exception.
A
B
Hyphenated
names
work
fine
with
this.
If
I
were
to
do.
B
See
it
will
not
capitalize
the
eye,
but
I
can
go
back
in
this
one
and
fix
this
one.
It
will
ignore
this
because
it
starts
with
Max.
So
if
I
do
Mac
and
Tash
it
does
not
fix
it,
because
that
was
one
of
the
exceptions.
So
that's
one
I
can
I
can
right
do
correctly
on
the
fly,
but
it's
also
one
that
can
get
messed
up
easily.
It
can
break
a
rule
easily.
So
that's
that's
the
trade-off
with
the
with
some
of
those
exceptions.
B
And
it
will
work
on
different
fields.
I
have
assigned
this
to
right,
name,
the
first
name
addresses
and
cities
so
like,
for
example,
with
respect
to
ferocity.
B
B
Right
so,
but
when
I
do
po,
if
I,
if
I
actually
type
it
correctly,
it
will
leave
it,
it
will
not
fix
fix
that.
B
So
we
do
have
that
plus
we
have
the
rule
or
the
the
function
in
there
that
removes
periods.
So
if
I
were
to
try
to
enter
this
as
P
dot,
O
DOT
box,
you
notice
it
took
out
the
periods
right
or
if
you
know,
if
I'm
doing
something
like
you
know,
right
street
period,
it's
not
gonna
It's
Not
Gonna,
Take
It.
B
So
it's
just
another
way
that
you
can
do
some
on
the
Fly
fixing
of
data
entry
to
match
what
you
expect
to
be
entered,
and
you
know
I
my
rules,
don't
cover
everything.
You
know
the
complete
rules
that
we
have
don't
cover.
Absolutely
everything
there
would.
There
have
been
one-offs
and
I
have
addressed
that
in
different
ways.
B
In
one
of
those
ways
was
you
know,
I
I
would
always
like,
for
example,
if
I
had
a
second
word
here,
as
I
said,
it
only
looks
at
the
last
words
I
go
in
here
and
change
the
the
word
before
it
I
can
I
can
mess
it
up,
so
that
was
a
workaround
that
was
added.
I
changed
it.
So
it
only
looks
at
the
last
word
that
was
entered.
B
B
A
B
Not
you
know,
depending
how
you
want
to
fix
your
your
Patron
data
I,
do
like
the
the
previous
method
of
validation,
where
it's
fixing
it
on,
or
it's
checking
things
as
you
submit
and
having
you
go
back
and
correct
it,
because
it
is
helping
not
only
to
to
keep
the
the
data
consistent,
but
it's
also
training
the
the
staff
to
enter
things
correctly.
B
This
one,
you
know
brute
force,
is
not
retroactive.
On
past
information,
that's
entered
it's
only
gonna.
You
know
look
at
stuff
that
you're
actively
entering
right,
so
you
know,
but
it
does
help
you
correct
things
along
the
way.
Just
to
give
you
an
idea
of
more
of
what
you
can
do
with
it.
This
is
this
is
all
of
that
brute
force
code
that
I
use-
and
there
are
there-
are
some
things
that
I
do
in
here.
So
we
do
the
capitalize
and
remove
periods.
B
I
will
I,
have
fixed
Street
abbreviations
so
on
a
street
abbreviations
I'll
replace
like
AV
with
Ave
I
will
replace
Avenue
with
Abe
I
will
replace
street
with
or
Str
with
st
and
replace
street,
with
st
place
with
PL
things
of
that
nature.
There
are,
there
are
a
few
others
in
here.
B
A
Part
of
the
other
part
of
another
word
I've
had
that
with
like
Broad
Street
is
one
word
in
one
of
our
cities
and
and
if
you,
if
I,
were
to
do
Implement
that
kind
of
a
thing
then
people
would
say
I
can't
it
always
comes.
It
always
changes
to
broadst
yeah,
which
is
not
correct,
correct.
B
Before
before
you
do
that
just
so
yeah
just
to
add,
though
this
was
one
of
the
reasons
why
I
had
it
look
at
just
the
last
portion
of
the
last
word
yeah,
because
then
you
can
go
back
and
you
can
go
fix
that
that
lane
or
that
you
know
that
street
or
whatever
or
the
circle
so
that
it's
spelled
out
and
it
won't
keep
forcing
it
back
yeah
because
you're
ending
it
you're,
obviously
ending
it
with
an
abbreviation
of
some
sort.
B
A
But
there.
B
Are
some
places
where
we're
looking
for
digits
only
like
in
phone
numbers?
There
are
also
ways
that
we
look
at
formatting
the
phone
number
to
make
sure
that
the
phone
number
is
is
formatted
correctly,
so
it's
putting
it
in
the
the
specific
way
that
we
want.
So
you
can't
enter
parentheses
around
the
area
code
with
this
The
Brute
Force
will
actually
remove
the
parentheses
and
force
you
to
enter
in
the
correct
format,
which
is
really
nice
yeah.
A
B
Those
are
the
ways
that
that
that
we've
used
The,
Brute,
Force
type
of
formatting
validation
on
our
system
and
I
will
go
ahead
and
let
you
share
with
what
you've
been
doing.
Yeah.
A
The
one
thing
that
I
was
going
to
mention
is:
let
me
share
this.
We
have
one
Library
I
have
one
library
that
there
well
I
have
several
libraries
that
they're
card
numbers
include
letters.
A
A
This
Patron
has
has
letters
in
her
card
number.
The
letters
that
got
imported
were
lowercase
letters.
A
Some
of
the
Imports
included
lowercase
letters
in
the
data
and
barcode
three
of
nine,
which
is
the
standard
barcode
that
most
of
our
libraries
use,
and
it's
one
of
the
default
barcodes
in
koha
can't
reproduce,
lowercase
letters,
and
so
what
I've
got
is
a
bit
of
code
and
when
we
cancel
this
and
go
back
over
here
and
just
plug
this
in
I've
I've
gone
about
it
in
a
slightly
different
way.
A
A
So
it's
just
a
different
version
of
of
different
way
of
doing
that
same
function,
that
if
I
save
that,
then,
if
I
go
back
to
this
borrower
and
if
I
try
to
enter
the
state
as
lower
KS.
It
comes
back
as
upper
KS,
and
the
same
is
true
with
the
you
just
can't
enter
those
characters
as
lowercase
letters
and.
B
A
What
you
were
doing,
but
it's
doing
the
exact
same
thing,
and
so
that's
one
of
the
things
that
I
have
built
into
our
system,
because
you
know
it
is
absolutely
necessary
for
for
this
one
library
in
particular,
where
all
of
all
of
their
they.
It
was
some
kind
of
batch
importing
problem
that
gave
them
all
of
these
I
think
we're
down
to
just
a
few
hundred
patrons
that
have
lowercase
letters
in
their
card
numbers.
A
But
you
cannot
reproduce
those
cards
in
the
barcode
three
mine
fund
and
the
same
is
true
of
the
item
records.
You
can't
reproduce
those.
So
it's
critical
for
that
library
to
make
sure
that
those
get
reproduced
as
uppercase
characters.
Great.
B
B
You
define
what
to
do
there
and
yeah.
You
can
totally
do
that.
The
reason
I
I
decided
to
do
my
functions
completely
separate
and
call
them
is
so
that
I,
if
I
wanted
to
I
can
reuse
them
in
other
places.
Yeah!
That's
true!
That's
totally
true!
B
So,
like
you
know,
my
removal
of
the
period
I
can
call
that
one
up
in
combination
with
another
function
at
the
same
time,
so
I
don't
have
to
keep
you
know,
building
that
that
same
functionality,
each
time,
I
I,
you
know,
identify
what
needs
to
be
changed
so
yeah.
Defining
your
functions
beforehand
is
is
helpful,
especially
if
you're
going
to
reuse
those
over
and
over,
but
if
you're
only
using
it
once
there's
no
reason
why
you
can't
Define
it
right
there
in
the
in
the
Kia.
B
All
right
well,
that
is
it
for
our
validation
videos
for
for
now,
and
if,
if
you
want
to
learn
more
about
validation,
you
can
you
can
find
the
information
in
the
jQuery
library
that
that
will
be
pointing
to
references
for
this
code
and
our
previous
two
videos
you'll
find
links
to
those
in
our
videos.
B
But
if
you
have
questions
about
something
or
if
you'd
like
to
see
more
or
if
you're
trying
to
figure
something
out,
you're,
not
sure
how
to
do
it,
go
to
our
YouTube
channel,
it's
youtube.com
koha,
us,
no
hyphen
and
you'll
be
able
to
find
our
videos
in
there
and
you
can
comment
on
them
if
you
like
our
videos,
if
you've
liked
the
things
that
we've
pulled
off
and
done,
make
sure
that
you
like
it,
you
can
like
the
playlist
too,
but
you
can
also
subscribe
so
that
you're
up
to
date,
anytime,
a
video
is
released
and
we
love
to
hear
back
from
people
and
see
what
they
think.
B
So,
please
feel
free
to
comment,
and
that
is
it
for
today.
A
Yep,
we'll
be
back
in
a
couple
of
weeks.
I
think
next
time
we're
going
to
talk
about
the
Patron
batch
permissions
plugin,
which
I
just
discovered
at
the
cohawk
conference,
and
it
will
be
a
revolution
for
the
way
we're
doing
passwords
and
managing
staff
logins
here
at
Nichols.
So
I
wanted
to
talk
about
that,
because,
because
it's
exciting
and.