WEBVTT
Kind: captions
Language: en

00:00:01.970 --> 00:00:04.760 align:start position:0%
 
hi<00:00:02.970><c> everybody</c><00:00:03.210><c> my</c><00:00:03.540><c> name</c><00:00:03.810><c> is</c><00:00:03.959><c> Alan</c><00:00:04.319><c> diapered</c>

00:00:04.760 --> 00:00:04.770 align:start position:0%
hi everybody my name is Alan diapered
 

00:00:04.770 --> 00:00:06.369 align:start position:0%
hi everybody my name is Alan diapered
and<00:00:04.980><c> I'll</c><00:00:05.370><c> be</c><00:00:05.520><c> talking</c><00:00:05.730><c> today</c><00:00:06.029><c> about</c>

00:00:06.369 --> 00:00:06.379 align:start position:0%
and I'll be talking today about
 

00:00:06.379 --> 00:00:09.440 align:start position:0%
and I'll be talking today about
JavaScript<00:00:07.379><c> assisted</c><00:00:08.010><c> common</c><00:00:08.700><c> lisp</c><00:00:09.030><c> or</c><00:00:09.240><c> as</c><00:00:09.360><c> I</c>

00:00:09.440 --> 00:00:09.450 align:start position:0%
JavaScript assisted common lisp or as I
 

00:00:09.450 --> 00:00:12.709 align:start position:0%
JavaScript assisted common lisp or as I
like<00:00:09.570><c> to</c><00:00:09.750><c> call</c><00:00:09.990><c> it</c><00:00:10.050><c> jackal</c><00:00:11.010><c> the</c><00:00:11.849><c> jackal</c><00:00:12.269><c> is</c><00:00:12.450><c> a</c>

00:00:12.709 --> 00:00:12.719 align:start position:0%
like to call it jackal the jackal is a
 

00:00:12.719 --> 00:00:14.749 align:start position:0%
like to call it jackal the jackal is a
new<00:00:13.200><c> Common</c><00:00:13.620><c> Lisp</c><00:00:13.650><c> implementation</c><00:00:14.610><c> that</c>

00:00:14.749 --> 00:00:14.759 align:start position:0%
new Common Lisp implementation that
 

00:00:14.759 --> 00:00:21.050 align:start position:0%
new Common Lisp implementation that
targets<00:00:15.240><c> the</c><00:00:15.450><c> JavaScript</c><00:00:16.049><c> platform</c><00:00:20.060><c> my</c>

00:00:21.050 --> 00:00:21.060 align:start position:0%
targets the JavaScript platform my
 

00:00:21.060 --> 00:00:24.370 align:start position:0%
targets the JavaScript platform my
agenda<00:00:21.660><c> consists</c><00:00:22.140><c> of</c><00:00:22.230><c> three</c><00:00:22.890><c> major</c><00:00:23.580><c> topics</c>

00:00:24.370 --> 00:00:24.380 align:start position:0%
agenda consists of three major topics
 

00:00:24.380 --> 00:00:26.420 align:start position:0%
agenda consists of three major topics
first<00:00:25.380><c> of</c><00:00:25.529><c> all</c><00:00:25.619><c> I'd</c><00:00:25.710><c> like</c><00:00:25.769><c> to</c><00:00:25.859><c> set</c><00:00:26.130><c> the</c><00:00:26.250><c> scene</c>

00:00:26.420 --> 00:00:26.430 align:start position:0%
first of all I'd like to set the scene
 

00:00:26.430 --> 00:00:28.700 align:start position:0%
first of all I'd like to set the scene
for<00:00:26.460><c> you</c><00:00:26.939><c> to</c><00:00:27.449><c> give</c><00:00:27.570><c> you</c><00:00:27.660><c> a</c><00:00:27.720><c> little</c><00:00:27.930><c> context</c><00:00:28.500><c> and</c>

00:00:28.700 --> 00:00:28.710 align:start position:0%
for you to give you a little context and
 

00:00:28.710 --> 00:00:30.019 align:start position:0%
for you to give you a little context and
background<00:00:28.859><c> that</c><00:00:29.550><c> could</c><00:00:29.789><c> help</c><00:00:29.910><c> you</c>

00:00:30.019 --> 00:00:30.029 align:start position:0%
background that could help you
 

00:00:30.029 --> 00:00:31.790 align:start position:0%
background that could help you
understand<00:00:30.480><c> jackal</c><00:00:30.960><c> and</c><00:00:31.109><c> determine</c><00:00:31.650><c> whether</c>

00:00:31.790 --> 00:00:31.800 align:start position:0%
understand jackal and determine whether
 

00:00:31.800 --> 00:00:33.319 align:start position:0%
understand jackal and determine whether
or<00:00:31.890><c> not</c><00:00:32.009><c> it's</c><00:00:32.219><c> something</c><00:00:32.340><c> that's</c><00:00:33.090><c> applicable</c>

00:00:33.319 --> 00:00:33.329 align:start position:0%
or not it's something that's applicable
 

00:00:33.329 --> 00:00:36.530 align:start position:0%
or not it's something that's applicable
to<00:00:33.660><c> what</c><00:00:33.780><c> you</c><00:00:33.870><c> do</c><00:00:34.020><c> I</c><00:00:34.230><c> find</c><00:00:35.130><c> that</c><00:00:35.420><c> projects</c><00:00:36.420><c> are</c>

00:00:36.530 --> 00:00:36.540 align:start position:0%
to what you do I find that projects are
 

00:00:36.540 --> 00:00:39.350 align:start position:0%
to what you do I find that projects are
much<00:00:36.630><c> easier</c><00:00:36.690><c> to</c><00:00:37.020><c> understand</c><00:00:37.559><c> if</c><00:00:38.300><c> there's</c><00:00:39.300><c> a</c>

00:00:39.350 --> 00:00:39.360 align:start position:0%
much easier to understand if there's a
 

00:00:39.360 --> 00:00:41.360 align:start position:0%
much easier to understand if there's a
if<00:00:39.629><c> if</c><00:00:40.079><c> you</c><00:00:40.200><c> have</c><00:00:40.350><c> a</c><00:00:40.379><c> little</c><00:00:40.530><c> background</c><00:00:40.860><c> about</c>

00:00:41.360 --> 00:00:41.370 align:start position:0%
if if you have a little background about
 

00:00:41.370 --> 00:00:42.979 align:start position:0%
if if you have a little background about
why<00:00:41.730><c> that</c><00:00:42.030><c> project</c><00:00:42.420><c> came</c><00:00:42.570><c> to</c><00:00:42.690><c> be</c><00:00:42.780><c> and</c><00:00:42.930><c> what</c>

00:00:42.979 --> 00:00:42.989 align:start position:0%
why that project came to be and what
 

00:00:42.989 --> 00:00:44.990 align:start position:0%
why that project came to be and what
motivated<00:00:43.469><c> it</c><00:00:43.680><c> what</c><00:00:43.860><c> experience</c><00:00:44.309><c> experience</c>

00:00:44.990 --> 00:00:45.000 align:start position:0%
motivated it what experience experience
 

00:00:45.000 --> 00:00:47.450 align:start position:0%
motivated it what experience experience
has<00:00:45.210><c> led</c><00:00:45.390><c> to</c><00:00:45.510><c> its</c><00:00:45.629><c> creation</c><00:00:46.110><c> and</c><00:00:46.379><c> in</c><00:00:46.620><c> this</c><00:00:47.219><c> part</c>

00:00:47.450 --> 00:00:47.460 align:start position:0%
has led to its creation and in this part
 

00:00:47.460 --> 00:00:49.250 align:start position:0%
has led to its creation and in this part
of<00:00:47.520><c> my</c><00:00:47.579><c> talk</c><00:00:47.670><c> all</c><00:00:48.059><c> hope</c><00:00:48.300><c> to</c><00:00:48.329><c> illuminate</c><00:00:49.079><c> that</c>

00:00:49.250 --> 00:00:49.260 align:start position:0%
of my talk all hope to illuminate that
 

00:00:49.260 --> 00:00:52.069 align:start position:0%
of my talk all hope to illuminate that
for<00:00:49.410><c> you</c><00:00:49.640><c> I'll</c><00:00:50.640><c> also</c><00:00:50.910><c> talk</c><00:00:51.180><c> about</c><00:00:51.239><c> the</c>

00:00:52.069 --> 00:00:52.079 align:start position:0%
for you I'll also talk about the
 

00:00:52.079 --> 00:00:53.540 align:start position:0%
for you I'll also talk about the
JavaScript<00:00:52.260><c> platform</c><00:00:52.949><c> and</c><00:00:53.219><c> why</c><00:00:53.430><c> I'm</c>

00:00:53.540 --> 00:00:53.550 align:start position:0%
JavaScript platform and why I'm
 

00:00:53.550 --> 00:00:55.639 align:start position:0%
JavaScript platform and why I'm
interested<00:00:54.000><c> in</c><00:00:54.120><c> it</c><00:00:54.270><c> what</c><00:00:55.050><c> it</c><00:00:55.140><c> can</c><00:00:55.260><c> do</c>

00:00:55.639 --> 00:00:55.649 align:start position:0%
interested in it what it can do
 

00:00:55.649 --> 00:00:58.119 align:start position:0%
interested in it what it can do
and<00:00:55.739><c> what</c><00:00:55.949><c> it's</c><00:00:56.070><c> not</c><00:00:56.129><c> what</c><00:00:56.370><c> it</c><00:00:56.460><c> can't</c><00:00:56.640><c> do</c><00:00:56.820><c> and</c>

00:00:58.119 --> 00:00:58.129 align:start position:0%
and what it's not what it can't do and
 

00:00:58.129 --> 00:01:03.009 align:start position:0%
and what it's not what it can't do and
set<00:00:59.129><c> the</c><00:00:59.280><c> stage</c><00:00:59.579><c> technically</c><00:01:00.920><c> for</c><00:01:01.920><c> jackal</c>

00:01:03.009 --> 00:01:03.019 align:start position:0%
set the stage technically for jackal
 

00:01:03.019 --> 00:01:06.289 align:start position:0%
set the stage technically for jackal
then<00:01:04.019><c> we'll</c><00:01:04.140><c> get</c><00:01:04.199><c> into</c><00:01:04.379><c> jackal</c><00:01:04.979><c> itself</c><00:01:05.299><c> its</c>

00:01:06.289 --> 00:01:06.299 align:start position:0%
then we'll get into jackal itself its
 

00:01:06.299 --> 00:01:08.750 align:start position:0%
then we'll get into jackal itself its
high-level<00:01:06.560><c> organization</c><00:01:07.560><c> the</c><00:01:08.369><c> features</c>

00:01:08.750 --> 00:01:08.760 align:start position:0%
high-level organization the features
 

00:01:08.760 --> 00:01:09.920 align:start position:0%
high-level organization the features
that<00:01:08.939><c> I</c><00:01:09.000><c> think</c><00:01:09.240><c> are</c><00:01:09.330><c> interesting</c><00:01:09.479><c> and</c>

00:01:09.920 --> 00:01:09.930 align:start position:0%
that I think are interesting and
 

00:01:09.930 --> 00:01:12.140 align:start position:0%
that I think are interesting and
important<00:01:10.320><c> and</c><00:01:10.439><c> the</c><00:01:11.400><c> parts</c><00:01:11.610><c> of</c><00:01:11.700><c> it</c><00:01:11.820><c> that</c><00:01:11.880><c> are</c>

00:01:12.140 --> 00:01:12.150 align:start position:0%
important and the parts of it that are
 

00:01:12.150 --> 00:01:15.710 align:start position:0%
important and the parts of it that are
maybe<00:01:12.330><c> speculative</c><00:01:14.150><c> finally</c><00:01:15.150><c> I'll</c><00:01:15.390><c> do</c><00:01:15.689><c> a</c>

00:01:15.710 --> 00:01:15.720 align:start position:0%
maybe speculative finally I'll do a
 

00:01:15.720 --> 00:01:17.960 align:start position:0%
maybe speculative finally I'll do a
little<00:01:15.960><c> demonstration</c><00:01:16.140><c> and</c><00:01:16.770><c> we</c><00:01:17.640><c> can</c><00:01:17.790><c> see</c>

00:01:17.960 --> 00:01:17.970 align:start position:0%
little demonstration and we can see
 

00:01:17.970 --> 00:01:20.270 align:start position:0%
little demonstration and we can see
jackal<00:01:18.390><c> in</c><00:01:18.479><c> the</c><00:01:18.570><c> browser</c><00:01:18.780><c> running</c><00:01:19.200><c> and</c><00:01:19.650><c> I'll</c>

00:01:20.270 --> 00:01:20.280 align:start position:0%
jackal in the browser running and I'll
 

00:01:20.280 --> 00:01:23.719 align:start position:0%
jackal in the browser running and I'll
also<00:01:20.460><c> show</c><00:01:20.990><c> jackals</c><00:01:21.990><c> repple</c><00:01:22.380><c> client</c><00:01:22.860><c> facility</c>

00:01:23.719 --> 00:01:23.729 align:start position:0%
also show jackals repple client facility
 

00:01:23.729 --> 00:01:25.490 align:start position:0%
also show jackals repple client facility
which<00:01:24.030><c> is</c><00:01:24.060><c> unkind</c><00:01:24.720><c> of</c><00:01:24.780><c> a</c><00:01:24.840><c> novel</c><00:01:25.140><c> thing</c><00:01:25.259><c> about</c>

00:01:25.490 --> 00:01:25.500 align:start position:0%
which is unkind of a novel thing about
 

00:01:25.500 --> 00:01:28.340 align:start position:0%
which is unkind of a novel thing about
jackal<00:01:26.600><c> because</c><00:01:27.600><c> it</c><00:01:27.780><c> involves</c><00:01:28.229><c> this</c>

00:01:28.340 --> 00:01:28.350 align:start position:0%
jackal because it involves this
 

00:01:28.350 --> 00:01:33.340 align:start position:0%
jackal because it involves this
asynchronous<00:01:28.790><c> reader</c><00:01:29.790><c> that</c><00:01:30.750><c> I'll</c><00:01:30.869><c> talk</c><00:01:31.020><c> about</c>

00:01:33.340 --> 00:01:33.350 align:start position:0%
 
 

00:01:33.350 --> 00:01:36.649 align:start position:0%
 
my<00:01:34.350><c> wrote</c><00:01:34.890><c> to</c><00:01:35.070><c> jackal</c><00:01:35.490><c> began</c><00:01:35.790><c> I</c><00:01:36.030><c> think</c><00:01:36.060><c> around</c>

00:01:36.649 --> 00:01:36.659 align:start position:0%
my wrote to jackal began I think around
 

00:01:36.659 --> 00:01:40.580 align:start position:0%
my wrote to jackal began I think around
1994<00:01:37.470><c> I</c><00:01:37.740><c> was</c><00:01:38.700><c> learning</c><00:01:39.360><c> basic</c><00:01:39.869><c> at</c><00:01:39.990><c> the</c><00:01:40.079><c> time</c><00:01:40.290><c> I</c>

00:01:40.580 --> 00:01:40.590 align:start position:0%
1994 I was learning basic at the time I
 

00:01:40.590 --> 00:01:45.280 align:start position:0%
1994 I was learning basic at the time I
think<00:01:40.740><c> quick</c><00:01:41.040><c> basic</c><00:01:41.490><c> and</c><00:01:42.799><c> my</c><00:01:43.799><c> dad</c><00:01:44.310><c> who</c><00:01:45.000><c> was</c><00:01:45.119><c> a</c>

00:01:45.280 --> 00:01:45.290 align:start position:0%
think quick basic and my dad who was a
 

00:01:45.290 --> 00:01:47.719 align:start position:0%
think quick basic and my dad who was a
taught<00:01:46.290><c> me</c><00:01:46.409><c> programming</c><00:01:46.950><c> has</c><00:01:47.040><c> been</c><00:01:47.070><c> a</c><00:01:47.250><c> big</c>

00:01:47.719 --> 00:01:47.729 align:start position:0%
taught me programming has been a big
 

00:01:47.729 --> 00:01:49.520 align:start position:0%
taught me programming has been a big
inspiration<00:01:47.939><c> for</c><00:01:48.540><c> a</c><00:01:49.049><c> lot</c><00:01:49.079><c> of</c><00:01:49.259><c> things</c><00:01:49.380><c> that</c><00:01:49.470><c> I</c>

00:01:49.520 --> 00:01:49.530 align:start position:0%
inspiration for a lot of things that I
 

00:01:49.530 --> 00:01:53.149 align:start position:0%
inspiration for a lot of things that I
do<00:01:50.689><c> after</c><00:01:51.689><c> I</c><00:01:51.960><c> learned</c><00:01:52.200><c> about</c><00:01:52.290><c> arrays</c><00:01:52.680><c> he</c><00:01:52.950><c> said</c>

00:01:53.149 --> 00:01:53.159 align:start position:0%
do after I learned about arrays he said
 

00:01:53.159 --> 00:01:54.710 align:start position:0%
do after I learned about arrays he said
Allan<00:01:53.490><c> arrays</c><00:01:53.850><c> are</c><00:01:54.060><c> really</c><00:01:54.270><c> cool</c><00:01:54.360><c> aren't</c><00:01:54.630><c> they</c>

00:01:54.710 --> 00:01:54.720 align:start position:0%
Allan arrays are really cool aren't they
 

00:01:54.720 --> 00:01:56.959 align:start position:0%
Allan arrays are really cool aren't they
and<00:01:54.810><c> I</c><00:01:54.840><c> said</c><00:01:54.990><c> yeah</c><00:01:55.140><c> yeah</c><00:01:55.290><c> very</c><00:01:55.500><c> cool</c><00:01:55.680><c> and</c><00:01:55.969><c> he</c>

00:01:56.959 --> 00:01:56.969 align:start position:0%
and I said yeah yeah very cool and he
 

00:01:56.969 --> 00:01:58.880 align:start position:0%
and I said yeah yeah very cool and he
said<00:01:57.270><c> to</c><00:01:57.390><c> me</c><00:01:57.479><c> you</c><00:01:57.600><c> know</c><00:01:57.750><c> there's</c><00:01:58.649><c> a</c><00:01:58.710><c> whole</c>

00:01:58.880 --> 00:01:58.890 align:start position:0%
said to me you know there's a whole
 

00:01:58.890 --> 00:02:01.870 align:start position:0%
said to me you know there's a whole
language<00:01:59.210><c> oriented</c><00:02:00.210><c> around</c><00:02:00.329><c> the</c><00:02:00.570><c> idea</c><00:02:00.899><c> of</c>

00:02:01.870 --> 00:02:01.880 align:start position:0%
language oriented around the idea of
 

00:02:01.880 --> 00:02:05.600 align:start position:0%
language oriented around the idea of
arrays<00:02:02.880><c> and</c><00:02:03.689><c> I</c><00:02:04.680><c> distinctly</c><00:02:05.369><c> remember</c>

00:02:05.600 --> 00:02:05.610 align:start position:0%
arrays and I distinctly remember
 

00:02:05.610 --> 00:02:09.090 align:start position:0%
arrays and I distinctly remember
thinking<00:02:06.180><c> wow</c><00:02:06.390><c> that</c><00:02:06.960><c> sounds</c><00:02:07.350><c> so</c><00:02:07.590><c> dumb</c>

00:02:09.090 --> 00:02:09.100 align:start position:0%
thinking wow that sounds so dumb
 

00:02:09.100 --> 00:02:12.660 align:start position:0%
thinking wow that sounds so dumb
and<00:02:09.730><c> I'm</c><00:02:10.720><c> sure</c><00:02:10.930><c> he</c><00:02:11.200><c> laughed</c><00:02:11.860><c> a</c><00:02:12.070><c> little</c><00:02:12.190><c> scoffed</c>

00:02:12.660 --> 00:02:12.670 align:start position:0%
and I'm sure he laughed a little scoffed
 

00:02:12.670 --> 00:02:15.510 align:start position:0%
and I'm sure he laughed a little scoffed
and<00:02:12.940><c> brushed</c><00:02:13.150><c> aside</c><00:02:13.300><c> my</c><00:02:14.040><c> absolutely</c><00:02:15.040><c> ignorant</c>

00:02:15.510 --> 00:02:15.520 align:start position:0%
and brushed aside my absolutely ignorant
 

00:02:15.520 --> 00:02:19.200 align:start position:0%
and brushed aside my absolutely ignorant
comment<00:02:15.880><c> and</c><00:02:16.030><c> I</c><00:02:17.070><c> went</c><00:02:18.070><c> on</c><00:02:18.190><c> to</c><00:02:18.520><c> program</c><00:02:19.060><c> and</c><00:02:19.180><c> a</c>

00:02:19.200 --> 00:02:19.210 align:start position:0%
comment and I went on to program and a
 

00:02:19.210 --> 00:02:24.450 align:start position:0%
comment and I went on to program and a
few<00:02:19.390><c> other</c><00:02:19.510><c> kinds</c><00:02:19.810><c> of</c><00:02:19.840><c> languages</c><00:02:20.610><c> I</c><00:02:23.460><c> returned</c>

00:02:24.450 --> 00:02:24.460 align:start position:0%
few other kinds of languages I returned
 

00:02:24.460 --> 00:02:27.750 align:start position:0%
few other kinds of languages I returned
to<00:02:24.640><c> Lisp</c><00:02:24.970><c> in</c><00:02:25.240><c> a</c><00:02:25.330><c> big</c><00:02:25.480><c> way</c><00:02:25.720><c> with</c><00:02:26.290><c> in</c><00:02:26.650><c> 2009</c><00:02:27.370><c> when</c><00:02:27.730><c> I</c>

00:02:27.750 --> 00:02:27.760 align:start position:0%
to Lisp in a big way with in 2009 when I
 

00:02:27.760 --> 00:02:30.090 align:start position:0%
to Lisp in a big way with in 2009 when I
learned<00:02:28.000><c> about</c><00:02:28.060><c> closure</c><00:02:28.450><c> and</c><00:02:28.810><c> I</c><00:02:29.560><c> started</c><00:02:29.980><c> to</c>

00:02:30.090 --> 00:02:30.100 align:start position:0%
learned about closure and I started to
 

00:02:30.100 --> 00:02:33.150 align:start position:0%
learned about closure and I started to
use<00:02:30.340><c> closure</c><00:02:30.670><c> professionally</c><00:02:31.420><c> and</c><00:02:31.950><c> a</c><00:02:32.950><c> few</c>

00:02:33.150 --> 00:02:33.160 align:start position:0%
use closure professionally and a few
 

00:02:33.160 --> 00:02:35.790 align:start position:0%
use closure professionally and a few
years<00:02:33.340><c> after</c><00:02:33.460><c> that</c><00:02:33.790><c> I</c><00:02:34.330><c> was</c><00:02:34.600><c> involved</c><00:02:35.380><c> in</c><00:02:35.620><c> an</c>

00:02:35.790 --> 00:02:35.800 align:start position:0%
years after that I was involved in an
 

00:02:35.800 --> 00:02:37.140 align:start position:0%
years after that I was involved in an
effort<00:02:36.100><c> to</c><00:02:36.250><c> create</c><00:02:36.430><c> something</c><00:02:37.000><c> called</c>

00:02:37.140 --> 00:02:37.150 align:start position:0%
effort to create something called
 

00:02:37.150 --> 00:02:41.250 align:start position:0%
effort to create something called
closure<00:02:37.600><c> script</c><00:02:38.020><c> which</c><00:02:38.710><c> was</c><00:02:38.950><c> a</c><00:02:40.020><c> variant</c><00:02:41.020><c> of</c>

00:02:41.250 --> 00:02:41.260 align:start position:0%
closure script which was a variant of
 

00:02:41.260 --> 00:02:43.070 align:start position:0%
closure script which was a variant of
closure<00:02:41.590><c> that</c><00:02:41.920><c> compiled</c><00:02:42.460><c> to</c><00:02:42.820><c> JavaScript</c>

00:02:43.070 --> 00:02:43.080 align:start position:0%
closure that compiled to JavaScript
 

00:02:43.080 --> 00:02:46.500 align:start position:0%
closure that compiled to JavaScript
instead<00:02:44.080><c> of</c><00:02:44.380><c> to</c><00:02:44.620><c> the</c><00:02:44.650><c> JVM</c><00:02:45.220><c> but</c><00:02:46.210><c> still</c>

00:02:46.500 --> 00:02:46.510 align:start position:0%
instead of to the JVM but still
 

00:02:46.510 --> 00:02:49.010 align:start position:0%
instead of to the JVM but still
emphasizing<00:02:46.690><c> functional</c><00:02:47.620><c> programming</c>

00:02:49.010 --> 00:02:49.020 align:start position:0%
emphasizing functional programming
 

00:02:49.020 --> 00:02:52.260 align:start position:0%
emphasizing functional programming
closure<00:02:50.020><c> script</c><00:02:50.350><c> was</c><00:02:50.500><c> really</c><00:02:50.790><c> eye-opening</c><00:02:51.790><c> to</c>

00:02:52.260 --> 00:02:52.270 align:start position:0%
closure script was really eye-opening to
 

00:02:52.270 --> 00:02:54.990 align:start position:0%
closure script was really eye-opening to
me<00:02:52.300><c> in</c><00:02:52.480><c> a</c><00:02:52.540><c> couple</c><00:02:52.720><c> regards</c><00:02:53.640><c> first</c><00:02:54.640><c> of</c><00:02:54.760><c> all</c><00:02:54.880><c> it</c>

00:02:54.990 --> 00:02:55.000 align:start position:0%
me in a couple regards first of all it
 

00:02:55.000 --> 00:02:56.070 align:start position:0%
me in a couple regards first of all it
was<00:02:55.090><c> the</c><00:02:55.210><c> first</c><00:02:55.390><c> time</c><00:02:55.510><c> I</c><00:02:55.570><c> had</c><00:02:55.720><c> been</c><00:02:55.750><c> involved</c>

00:02:56.070 --> 00:02:56.080 align:start position:0%
was the first time I had been involved
 

00:02:56.080 --> 00:02:57.720 align:start position:0%
was the first time I had been involved
in<00:02:56.260><c> any</c><00:02:56.410><c> kind</c><00:02:56.620><c> of</c><00:02:56.650><c> compiler</c><00:02:57.100><c> development</c><00:02:57.610><c> and</c>

00:02:57.720 --> 00:02:57.730 align:start position:0%
in any kind of compiler development and
 

00:02:57.730 --> 00:02:58.980 align:start position:0%
in any kind of compiler development and
I<00:02:57.910><c> got</c><00:02:58.060><c> to</c><00:02:58.180><c> see</c><00:02:58.360><c> how</c><00:02:58.480><c> that</c><00:02:58.630><c> was</c><00:02:58.750><c> done</c>

00:02:58.980 --> 00:02:58.990 align:start position:0%
I got to see how that was done
 

00:02:58.990 --> 00:03:03.350 align:start position:0%
I got to see how that was done
that<00:02:59.440><c> was</c><00:02:59.530><c> really</c><00:02:59.710><c> interesting</c><00:03:00.010><c> and</c><00:03:01.500><c> maybe</c><00:03:02.500><c> my</c>

00:03:03.350 --> 00:03:03.360 align:start position:0%
that was really interesting and maybe my
 

00:03:03.360 --> 00:03:06.450 align:start position:0%
that was really interesting and maybe my
abiding<00:03:04.360><c> memory</c><00:03:04.720><c> from</c><00:03:05.620><c> that</c><00:03:05.680><c> experience</c><00:03:06.310><c> is</c>

00:03:06.450 --> 00:03:06.460 align:start position:0%
abiding memory from that experience is
 

00:03:06.460 --> 00:03:09.600 align:start position:0%
abiding memory from that experience is
just<00:03:06.490><c> that</c><00:03:06.850><c> wow</c><00:03:07.230><c> it's</c><00:03:08.230><c> you</c><00:03:08.530><c> could</c><00:03:09.070><c> you</c><00:03:09.520><c> know</c>

00:03:09.600 --> 00:03:09.610 align:start position:0%
just that wow it's you could you know
 

00:03:09.610 --> 00:03:12.030 align:start position:0%
just that wow it's you could you know
even<00:03:09.940><c> lowly</c><00:03:10.600><c> application</c><00:03:11.380><c> developers</c><00:03:11.860><c> like</c>

00:03:12.030 --> 00:03:12.040 align:start position:0%
even lowly application developers like
 

00:03:12.040 --> 00:03:14.400 align:start position:0%
even lowly application developers like
myself<00:03:12.250><c> can</c><00:03:12.640><c> benefit</c><00:03:13.090><c> from</c><00:03:13.150><c> making</c><00:03:14.110><c> the</c><00:03:14.260><c> right</c>

00:03:14.400 --> 00:03:14.410 align:start position:0%
myself can benefit from making the right
 

00:03:14.410 --> 00:03:15.900 align:start position:0%
myself can benefit from making the right
kind<00:03:14.620><c> of</c><00:03:14.680><c> compiler</c><00:03:15.160><c> to</c><00:03:15.340><c> fit</c><00:03:15.490><c> the</c><00:03:15.610><c> right</c><00:03:15.700><c> kind</c>

00:03:15.900 --> 00:03:15.910 align:start position:0%
kind of compiler to fit the right kind
 

00:03:15.910 --> 00:03:18.180 align:start position:0%
kind of compiler to fit the right kind
of<00:03:16.000><c> problem</c><00:03:16.360><c> it's</c><00:03:16.960><c> a</c><00:03:17.020><c> great</c><00:03:17.260><c> tool</c><00:03:17.500><c> to</c><00:03:17.860><c> be</c><00:03:18.070><c> able</c>

00:03:18.180 --> 00:03:18.190 align:start position:0%
of problem it's a great tool to be able
 

00:03:18.190 --> 00:03:22.590 align:start position:0%
of problem it's a great tool to be able
to<00:03:18.310><c> make</c><00:03:18.490><c> and</c><00:03:18.640><c> to</c><00:03:18.730><c> apply</c><00:03:20.820><c> the</c><00:03:21.820><c> other</c><00:03:22.000><c> thing</c>

00:03:22.590 --> 00:03:22.600 align:start position:0%
to make and to apply the other thing
 

00:03:22.600 --> 00:03:24.780 align:start position:0%
to make and to apply the other thing
about<00:03:22.900><c> it</c><00:03:23.200><c> was</c><00:03:23.500><c> that</c><00:03:23.740><c> closure</c><00:03:24.130><c> script</c><00:03:24.550><c> from</c>

00:03:24.780 --> 00:03:24.790 align:start position:0%
about it was that closure script from
 

00:03:24.790 --> 00:03:26.850 align:start position:0%
about it was that closure script from
the<00:03:25.120><c> beginning</c><00:03:25.660><c> was</c><00:03:25.810><c> really</c><00:03:26.140><c> oriented</c><00:03:26.440><c> toward</c>

00:03:26.850 --> 00:03:26.860 align:start position:0%
the beginning was really oriented toward
 

00:03:26.860 --> 00:03:31.830 align:start position:0%
the beginning was really oriented toward
industrial<00:03:27.870><c> application</c><00:03:28.870><c> and</c><00:03:30.840><c> performance</c>

00:03:31.830 --> 00:03:31.840 align:start position:0%
industrial application and performance
 

00:03:31.840 --> 00:03:34.470 align:start position:0%
industrial application and performance
both<00:03:32.770><c> in</c><00:03:32.920><c> terms</c><00:03:33.130><c> of</c><00:03:33.250><c> code</c><00:03:33.490><c> size</c><00:03:33.760><c> and</c><00:03:34.150><c> in</c><00:03:34.270><c> terms</c>

00:03:34.470 --> 00:03:34.480 align:start position:0%
both in terms of code size and in terms
 

00:03:34.480 --> 00:03:37.350 align:start position:0%
both in terms of code size and in terms
of<00:03:34.690><c> speed</c><00:03:35.140><c> are</c><00:03:35.490><c> really</c><00:03:36.490><c> important</c><00:03:36.910><c> in</c><00:03:37.060><c> the</c>

00:03:37.350 --> 00:03:37.360 align:start position:0%
of speed are really important in the
 

00:03:37.360 --> 00:03:39.870 align:start position:0%
of speed are really important in the
JavaScript<00:03:37.840><c> world</c><00:03:38.020><c> because</c><00:03:38.980><c> of</c><00:03:39.010><c> various</c>

00:03:39.870 --> 00:03:39.880 align:start position:0%
JavaScript world because of various
 

00:03:39.880 --> 00:03:42.270 align:start position:0%
JavaScript world because of various
limitations<00:03:40.770><c> surrounding</c><00:03:41.770><c> JavaScript</c>

00:03:42.270 --> 00:03:42.280 align:start position:0%
limitations surrounding JavaScript
 

00:03:42.280 --> 00:03:44.460 align:start position:0%
limitations surrounding JavaScript
including<00:03:42.670><c> the</c><00:03:42.760><c> fact</c><00:03:42.970><c> that</c><00:03:43.060><c> when</c><00:03:43.270><c> people</c><00:03:43.470><c> run</c>

00:03:44.460 --> 00:03:44.470 align:start position:0%
including the fact that when people run
 

00:03:44.470 --> 00:03:45.720 align:start position:0%
including the fact that when people run
your<00:03:44.620><c> program</c><00:03:44.950><c> they</c><00:03:45.100><c> need</c><00:03:45.250><c> to</c><00:03:45.340><c> download</c><00:03:45.640><c> the</c>

00:03:45.720 --> 00:03:45.730 align:start position:0%
your program they need to download the
 

00:03:45.730 --> 00:03:50.130 align:start position:0%
your program they need to download the
whole<00:03:45.820><c> program</c><00:03:46.180><c> every</c><00:03:46.390><c> time</c><00:03:46.570><c> usually</c><00:03:47.670><c> and</c><00:03:49.140><c> the</c>

00:03:50.130 --> 00:03:50.140 align:start position:0%
whole program every time usually and the
 

00:03:50.140 --> 00:03:52.460 align:start position:0%
whole program every time usually and the
designer<00:03:50.530><c> of</c><00:03:50.770><c> closure</c><00:03:50.980><c> script</c><00:03:51.430><c> rich</c><00:03:52.000><c> Hickey</c>

00:03:52.460 --> 00:03:52.470 align:start position:0%
designer of closure script rich Hickey
 

00:03:52.470 --> 00:03:57.990 align:start position:0%
designer of closure script rich Hickey
he<00:03:53.470><c> made</c><00:03:54.100><c> a</c><00:03:54.130><c> very</c><00:03:54.370><c> I</c><00:03:54.850><c> think</c><00:03:56.070><c> yeah</c><00:03:57.070><c> he</c><00:03:57.850><c> had</c><00:03:57.940><c> a</c>

00:03:57.990 --> 00:03:58.000 align:start position:0%
he made a very I think yeah he had a
 

00:03:58.000 --> 00:04:01.710 align:start position:0%
he made a very I think yeah he had a
very<00:03:58.120><c> key</c><00:03:58.330><c> insight</c><00:03:59.010><c> related</c><00:04:00.010><c> to</c><00:04:00.420><c> code</c><00:04:01.420><c> size</c>

00:04:01.710 --> 00:04:01.720 align:start position:0%
very key insight related to code size
 

00:04:01.720 --> 00:04:04.740 align:start position:0%
very key insight related to code size
and<00:04:02.170><c> then</c><00:04:02.770><c> code</c><00:04:02.950><c> improvement</c><00:04:03.460><c> which</c><00:04:03.580><c> was</c><00:04:03.760><c> it's</c>

00:04:04.740 --> 00:04:04.750 align:start position:0%
and then code improvement which was it's
 

00:04:04.750 --> 00:04:06.450 align:start position:0%
and then code improvement which was it's
possible<00:04:05.260><c> to</c><00:04:05.350><c> lean</c><00:04:05.560><c> on</c><00:04:05.740><c> third-party</c><00:04:05.950><c> tools</c>

00:04:06.450 --> 00:04:06.460 align:start position:0%
possible to lean on third-party tools
 

00:04:06.460 --> 00:04:09.480 align:start position:0%
possible to lean on third-party tools
like<00:04:07.030><c> Google</c><00:04:07.420><c> closure</c><00:04:07.660><c> compiler</c><00:04:08.040><c> to</c><00:04:09.040><c> do</c><00:04:09.250><c> that</c>

00:04:09.480 --> 00:04:09.490 align:start position:0%
like Google closure compiler to do that
 

00:04:09.490 --> 00:04:11.880 align:start position:0%
like Google closure compiler to do that
part<00:04:09.850><c> of</c><00:04:10.060><c> the</c><00:04:10.180><c> compilation</c><00:04:10.480><c> pipeline</c><00:04:11.110><c> and</c><00:04:11.380><c> the</c>

00:04:11.880 --> 00:04:11.890 align:start position:0%
part of the compilation pipeline and the
 

00:04:11.890 --> 00:04:13.590 align:start position:0%
part of the compilation pipeline and the
advantage<00:04:12.490><c> of</c><00:04:12.550><c> that</c><00:04:12.670><c> is</c><00:04:12.790><c> you</c><00:04:13.000><c> can</c><00:04:13.270><c> keep</c><00:04:13.420><c> your</c>

00:04:13.590 --> 00:04:13.600 align:start position:0%
advantage of that is you can keep your
 

00:04:13.600 --> 00:04:15.630 align:start position:0%
advantage of that is you can keep your
main<00:04:13.840><c> compiler</c><00:04:14.290><c> quite</c><00:04:14.830><c> simple</c><00:04:15.220><c> and</c><00:04:15.340><c> easy</c><00:04:15.490><c> to</c>

00:04:15.630 --> 00:04:15.640 align:start position:0%
main compiler quite simple and easy to
 

00:04:15.640 --> 00:04:17.900 align:start position:0%
main compiler quite simple and easy to
work<00:04:15.760><c> on</c>

00:04:17.900 --> 00:04:17.910 align:start position:0%
work on
 

00:04:17.910 --> 00:04:19.520 align:start position:0%
work on
so<00:04:18.209><c> fast-forward</c><00:04:18.510><c> a</c><00:04:18.780><c> few</c><00:04:18.810><c> years</c><00:04:19.200><c> I</c><00:04:19.350><c> did</c><00:04:19.500><c> a</c>

00:04:19.520 --> 00:04:19.530 align:start position:0%
so fast-forward a few years I did a
 

00:04:19.530 --> 00:04:21.050 align:start position:0%
so fast-forward a few years I did a
bunch<00:04:19.800><c> of</c><00:04:19.920><c> industrial</c><00:04:20.459><c> closure</c><00:04:20.760><c> script</c>

00:04:21.050 --> 00:04:21.060 align:start position:0%
bunch of industrial closure script
 

00:04:21.060 --> 00:04:22.340 align:start position:0%
bunch of industrial closure script
development<00:04:21.239><c> I</c><00:04:21.570><c> used</c><00:04:21.750><c> it</c><00:04:21.840><c> at</c><00:04:21.930><c> work</c><00:04:22.080><c> and</c>

00:04:22.340 --> 00:04:22.350 align:start position:0%
development I used it at work and
 

00:04:22.350 --> 00:04:25.030 align:start position:0%
development I used it at work and
successfully<00:04:22.980><c> and</c><00:04:23.310><c> continue</c><00:04:23.880><c> to</c><00:04:23.970><c> do</c><00:04:24.090><c> closure</c>

00:04:25.030 --> 00:04:25.040 align:start position:0%
successfully and continue to do closure
 

00:04:25.040 --> 00:04:29.360 align:start position:0%
successfully and continue to do closure
around<00:04:26.040><c> 2016</c><00:04:27.620><c> sort</c><00:04:28.620><c> of</c><00:04:28.710><c> randomly</c><00:04:29.070><c> just</c><00:04:29.220><c> got</c>

00:04:29.360 --> 00:04:29.370 align:start position:0%
around 2016 sort of randomly just got
 

00:04:29.370 --> 00:04:30.830 align:start position:0%
around 2016 sort of randomly just got
into<00:04:29.580><c> common</c><00:04:29.880><c> list</c><00:04:30.090><c> but</c><00:04:30.270><c> we</c><00:04:30.390><c> had</c><00:04:30.510><c> been</c><00:04:30.630><c> always</c>

00:04:30.830 --> 00:04:30.840 align:start position:0%
into common list but we had been always
 

00:04:30.840 --> 00:04:32.390 align:start position:0%
into common list but we had been always
kind<00:04:31.110><c> of</c><00:04:31.170><c> a</c><00:04:31.260><c> blind</c><00:04:31.410><c> spot</c><00:04:31.740><c> for</c><00:04:31.920><c> me</c><00:04:32.040><c> in</c><00:04:32.130><c> the</c><00:04:32.220><c> list</c>

00:04:32.390 --> 00:04:32.400 align:start position:0%
kind of a blind spot for me in the list
 

00:04:32.400 --> 00:04:35.030 align:start position:0%
kind of a blind spot for me in the list
world<00:04:32.700><c> and</c><00:04:32.940><c> I</c><00:04:33.300><c> knew</c><00:04:33.480><c> rich</c><00:04:34.380><c> Hickey</c><00:04:34.590><c> had</c><00:04:34.890><c> been</c>

00:04:35.030 --> 00:04:35.040 align:start position:0%
world and I knew rich Hickey had been
 

00:04:35.040 --> 00:04:37.340 align:start position:0%
world and I knew rich Hickey had been
influenced<00:04:35.490><c> by</c><00:04:35.520><c> common</c><00:04:35.880><c> lisp</c><00:04:36.110><c> before</c><00:04:37.110><c> he</c><00:04:37.230><c> made</c>

00:04:37.340 --> 00:04:37.350 align:start position:0%
influenced by common lisp before he made
 

00:04:37.350 --> 00:04:39.340 align:start position:0%
influenced by common lisp before he made
closure<00:04:37.620><c> and</c><00:04:37.890><c> I</c><00:04:38.430><c> had</c><00:04:38.610><c> brushes</c><00:04:38.850><c> with</c><00:04:39.150><c> it</c>

00:04:39.340 --> 00:04:39.350 align:start position:0%
closure and I had brushes with it
 

00:04:39.350 --> 00:04:41.750 align:start position:0%
closure and I had brushes with it
through<00:04:40.350><c> closure</c><00:04:40.620><c> but</c><00:04:41.010><c> I'd</c><00:04:41.130><c> never</c><00:04:41.280><c> really</c><00:04:41.550><c> sat</c>

00:04:41.750 --> 00:04:41.760 align:start position:0%
through closure but I'd never really sat
 

00:04:41.760 --> 00:04:44.870 align:start position:0%
through closure but I'd never really sat
down<00:04:41.790><c> with</c><00:04:42.390><c> it</c><00:04:42.510><c> myself</c><00:04:42.690><c> and</c><00:04:43.370><c> the</c><00:04:44.370><c> more</c><00:04:44.610><c> time</c><00:04:44.850><c> I</c>

00:04:44.870 --> 00:04:44.880 align:start position:0%
down with it myself and the more time I
 

00:04:44.880 --> 00:04:46.610 align:start position:0%
down with it myself and the more time I
spent<00:04:45.210><c> with</c><00:04:45.240><c> it</c><00:04:45.450><c> the</c><00:04:45.540><c> more</c><00:04:45.660><c> I</c><00:04:45.720><c> grew</c><00:04:46.320><c> to</c><00:04:46.410><c> really</c>

00:04:46.610 --> 00:04:46.620 align:start position:0%
spent with it the more I grew to really
 

00:04:46.620 --> 00:04:49.340 align:start position:0%
spent with it the more I grew to really
really<00:04:46.830><c> liked</c><00:04:47.010><c> it</c><00:04:47.450><c> it's</c><00:04:48.450><c> I</c><00:04:48.720><c> think</c><00:04:48.930><c> in</c><00:04:49.110><c> a</c><00:04:49.170><c> lot</c><00:04:49.200><c> of</c>

00:04:49.340 --> 00:04:49.350 align:start position:0%
really liked it it's I think in a lot of
 

00:04:49.350 --> 00:04:51.410 align:start position:0%
really liked it it's I think in a lot of
respects<00:04:49.680><c> lower</c><00:04:49.890><c> level</c><00:04:50.280><c> than</c><00:04:50.550><c> closure</c><00:04:50.880><c> but</c><00:04:51.240><c> I</c>

00:04:51.410 --> 00:04:51.420 align:start position:0%
respects lower level than closure but I
 

00:04:51.420 --> 00:04:53.930 align:start position:0%
respects lower level than closure but I
think<00:04:51.660><c> that</c><00:04:51.840><c> that</c><00:04:52.130><c> lower</c><00:04:53.130><c> level</c><00:04:53.400><c> aspect</c>

00:04:53.930 --> 00:04:53.940 align:start position:0%
think that that lower level aspect
 

00:04:53.940 --> 00:04:57.590 align:start position:0%
think that that lower level aspect
defers<00:04:54.510><c> more</c><00:04:55.010><c> capability</c><00:04:56.010><c> to</c><00:04:56.460><c> the</c><00:04:56.820><c> programmer</c>

00:04:57.590 --> 00:04:57.600 align:start position:0%
defers more capability to the programmer
 

00:04:57.600 --> 00:05:01.160 align:start position:0%
defers more capability to the programmer
there's<00:04:58.260><c> more</c><00:04:58.530><c> room</c><00:04:58.910><c> to</c><00:04:59.910><c> make</c><00:05:00.090><c> the</c><00:05:00.870><c> language</c>

00:05:01.160 --> 00:05:01.170 align:start position:0%
there's more room to make the language
 

00:05:01.170 --> 00:05:03.520 align:start position:0%
there's more room to make the language
of<00:05:01.320><c> the</c><00:05:01.380><c> problem</c><00:05:01.740><c> as</c><00:05:02.010><c> I've</c><00:05:02.310><c> heard</c><00:05:02.430><c> it</c><00:05:02.550><c> called</c>

00:05:03.520 --> 00:05:03.530 align:start position:0%
of the problem as I've heard it called
 

00:05:03.530 --> 00:05:07.880 align:start position:0%
of the problem as I've heard it called
so<00:05:04.530><c> as</c><00:05:04.770><c> my</c><00:05:05.040><c> Lisp</c><00:05:05.850><c> fanaticism</c><00:05:06.570><c> grew</c><00:05:07.020><c> I</c><00:05:07.320><c> had</c><00:05:07.770><c> this</c>

00:05:07.880 --> 00:05:07.890 align:start position:0%
so as my Lisp fanaticism grew I had this
 

00:05:07.890 --> 00:05:10.880 align:start position:0%
so as my Lisp fanaticism grew I had this
idea<00:05:08.040><c> to</c><00:05:08.340><c> make</c><00:05:08.490><c> jackal</c><00:05:09.530><c> but</c><00:05:10.530><c> there</c><00:05:10.620><c> actually</c><00:05:10.710><c> a</c>

00:05:10.880 --> 00:05:10.890 align:start position:0%
idea to make jackal but there actually a
 

00:05:10.890 --> 00:05:12.890 align:start position:0%
idea to make jackal but there actually a
few<00:05:11.040><c> other</c><00:05:11.160><c> ideas</c><00:05:11.550><c> that</c><00:05:11.820><c> that</c><00:05:12.090><c> led</c><00:05:12.330><c> to</c><00:05:12.480><c> jackal</c>

00:05:12.890 --> 00:05:12.900 align:start position:0%
few other ideas that that led to jackal
 

00:05:12.900 --> 00:05:16.430 align:start position:0%
few other ideas that that led to jackal
that<00:05:13.170><c> happen</c><00:05:13.470><c> kind</c><00:05:13.620><c> of</c><00:05:13.740><c> concurrently</c><00:05:15.170><c> at</c><00:05:16.170><c> one</c>

00:05:16.430 --> 00:05:16.440 align:start position:0%
that happen kind of concurrently at one
 

00:05:16.440 --> 00:05:18.710 align:start position:0%
that happen kind of concurrently at one
point<00:05:16.710><c> I</c><00:05:16.950><c> had</c><00:05:17.220><c> the</c><00:05:17.340><c> idea</c><00:05:17.430><c> to</c><00:05:17.610><c> make</c><00:05:17.700><c> my</c><00:05:17.940><c> own</c><00:05:17.970><c> lisp</c>

00:05:18.710 --> 00:05:18.720 align:start position:0%
point I had the idea to make my own lisp
 

00:05:18.720 --> 00:05:21.080 align:start position:0%
point I had the idea to make my own lisp
dialect<00:05:19.230><c> called</c><00:05:19.440><c> beta</c><00:05:19.710><c> Lisp</c><00:05:20.010><c> that</c><00:05:20.850><c> was</c><00:05:20.970><c> going</c>

00:05:21.080 --> 00:05:21.090 align:start position:0%
dialect called beta Lisp that was going
 

00:05:21.090 --> 00:05:23.660 align:start position:0%
dialect called beta Lisp that was going
to<00:05:21.150><c> be</c><00:05:21.240><c> an</c><00:05:21.390><c> experimental</c><00:05:22.050><c> vehicle</c><00:05:22.950><c> to</c><00:05:23.430><c> play</c>

00:05:23.660 --> 00:05:23.670 align:start position:0%
to be an experimental vehicle to play
 

00:05:23.670 --> 00:05:25.520 align:start position:0%
to be an experimental vehicle to play
with<00:05:23.820><c> this</c><00:05:23.940><c> idea</c><00:05:24.270><c> that</c><00:05:24.450><c> macros</c><00:05:25.020><c> receive</c>

00:05:25.520 --> 00:05:25.530 align:start position:0%
with this idea that macros receive
 

00:05:25.530 --> 00:05:27.980 align:start position:0%
with this idea that macros receive
arguments<00:05:26.130><c> macro</c><00:05:26.760><c> expanded</c><00:05:27.240><c> by</c><00:05:27.360><c> DeVault</c><00:05:27.720><c> and</c>

00:05:27.980 --> 00:05:27.990 align:start position:0%
arguments macro expanded by DeVault and
 

00:05:27.990 --> 00:05:29.780 align:start position:0%
arguments macro expanded by DeVault and
so<00:05:28.380><c> the</c><00:05:28.500><c> beta</c><00:05:28.680><c> and</c><00:05:28.950><c> beta</c><00:05:29.010><c> List</c><00:05:29.430><c> comes</c><00:05:29.670><c> from</c>

00:05:29.780 --> 00:05:29.790 align:start position:0%
so the beta and beta List comes from
 

00:05:29.790 --> 00:05:32.990 align:start position:0%
so the beta and beta List comes from
beta<00:05:30.000><c> reduction</c><00:05:30.510><c> lambda</c><00:05:31.410><c> calculus</c><00:05:31.830><c> I</c><00:05:32.550><c> had</c>

00:05:32.990 --> 00:05:33.000 align:start position:0%
beta reduction lambda calculus I had
 

00:05:33.000 --> 00:05:34.040 align:start position:0%
beta reduction lambda calculus I had
this<00:05:33.090><c> idea</c><00:05:33.270><c> that</c><00:05:33.570><c> that</c><00:05:33.660><c> would</c><00:05:33.780><c> you</c><00:05:33.930><c> know</c>

00:05:34.040 --> 00:05:34.050 align:start position:0%
this idea that that would you know
 

00:05:34.050 --> 00:05:37.630 align:start position:0%
this idea that that would you know
dramatically<00:05:34.560><c> clean</c><00:05:34.919><c> up</c><00:05:35.100><c> the</c><00:05:35.840><c> lisp</c>

00:05:37.630 --> 00:05:37.640 align:start position:0%
dramatically clean up the lisp
 

00:05:37.640 --> 00:05:40.190 align:start position:0%
dramatically clean up the lisp
implementation<00:05:38.640><c> but</c><00:05:38.790><c> didn't</c><00:05:39.630><c> really</c><00:05:39.810><c> work</c>

00:05:40.190 --> 00:05:40.200 align:start position:0%
implementation but didn't really work
 

00:05:40.200 --> 00:05:41.750 align:start position:0%
implementation but didn't really work
out<00:05:40.350><c> that</c><00:05:40.410><c> way</c><00:05:40.710><c> there</c><00:05:41.160><c> are</c><00:05:41.190><c> other</c><00:05:41.370><c> problems</c>

00:05:41.750 --> 00:05:41.760 align:start position:0%
out that way there are other problems
 

00:05:41.760 --> 00:05:44.330 align:start position:0%
out that way there are other problems
associated<00:05:42.060><c> with</c><00:05:42.390><c> that</c><00:05:42.890><c> and</c><00:05:43.890><c> I</c><00:05:43.980><c> didn't</c><00:05:44.220><c> get</c>

00:05:44.330 --> 00:05:44.340 align:start position:0%
associated with that and I didn't get
 

00:05:44.340 --> 00:05:45.770 align:start position:0%
associated with that and I didn't get
too<00:05:44.430><c> far</c><00:05:44.460><c> with</c><00:05:44.760><c> it</c><00:05:44.790><c> but</c><00:05:45.030><c> I</c><00:05:45.060><c> did</c><00:05:45.270><c> stumble</c><00:05:45.690><c> on</c>

00:05:45.770 --> 00:05:45.780 align:start position:0%
too far with it but I did stumble on
 

00:05:45.780 --> 00:05:47.120 align:start position:0%
too far with it but I did stumble on
this<00:05:45.930><c> idea</c><00:05:46.230><c> of</c><00:05:46.290><c> an</c><00:05:46.380><c> asynchronous</c><00:05:46.710><c> reader</c>

00:05:47.120 --> 00:05:47.130 align:start position:0%
this idea of an asynchronous reader
 

00:05:47.130 --> 00:05:49.460 align:start position:0%
this idea of an asynchronous reader
which<00:05:47.430><c> I'll</c><00:05:47.550><c> talk</c><00:05:47.669><c> about</c><00:05:47.910><c> again</c><00:05:48.120><c> soon</c><00:05:48.690><c> in</c><00:05:49.260><c> the</c>

00:05:49.460 --> 00:05:49.470 align:start position:0%
which I'll talk about again soon in the
 

00:05:49.470 --> 00:05:53.840 align:start position:0%
which I'll talk about again soon in the
talk<00:05:51.260><c> at</c><00:05:52.260><c> one</c><00:05:52.410><c> point</c><00:05:52.560><c> I</c><00:05:52.680><c> picked</c><00:05:52.860><c> up</c><00:05:52.950><c> a</c><00:05:53.130><c> copy</c><00:05:53.550><c> of</c>

00:05:53.840 --> 00:05:53.850 align:start position:0%
talk at one point I picked up a copy of
 

00:05:53.850 --> 00:05:55.610 align:start position:0%
talk at one point I picked up a copy of
Common<00:05:54.150><c> Lisp</c><00:05:54.180><c> the</c><00:05:54.450><c> language</c><00:05:54.780><c> second</c><00:05:55.230><c> edition</c>

00:05:55.610 --> 00:05:55.620 align:start position:0%
Common Lisp the language second edition
 

00:05:55.620 --> 00:06:00.290 align:start position:0%
Common Lisp the language second edition
by<00:05:55.650><c> guy</c><00:05:56.070><c> Steele</c><00:05:56.400><c> and</c><00:05:57.740><c> I</c><00:05:58.740><c> also</c><00:05:59.250><c> read</c><00:05:59.910><c> through</c><00:06:00.270><c> a</c>

00:06:00.290 --> 00:06:00.300 align:start position:0%
by guy Steele and I also read through a
 

00:06:00.300 --> 00:06:02.480 align:start position:0%
by guy Steele and I also read through a
bunch<00:06:00.720><c> of</c><00:06:00.810><c> the</c><00:06:00.900><c> early</c><00:06:01.290><c> Common</c><00:06:01.680><c> Lisp</c><00:06:01.710><c> design</c>

00:06:02.480 --> 00:06:02.490 align:start position:0%
bunch of the early Common Lisp design
 

00:06:02.490 --> 00:06:06.530 align:start position:0%
bunch of the early Common Lisp design
discussion<00:06:03.120><c> emails</c><00:06:03.480><c> and</c><00:06:03.810><c> this</c><00:06:04.620><c> su</c><00:06:05.070><c> -</c><00:06:05.340><c> AI</c><00:06:05.669><c> DARPA</c>

00:06:06.530 --> 00:06:06.540 align:start position:0%
discussion emails and this su - AI DARPA
 

00:06:06.540 --> 00:06:09.200 align:start position:0%
discussion emails and this su - AI DARPA
mailing<00:06:06.840><c> list</c><00:06:07.020><c> thing</c><00:06:07.230><c> and</c><00:06:07.940><c> that</c><00:06:08.940><c> got</c><00:06:09.120><c> me</c>

00:06:09.200 --> 00:06:09.210 align:start position:0%
mailing list thing and that got me
 

00:06:09.210 --> 00:06:13.159 align:start position:0%
mailing list thing and that got me
interested<00:06:09.390><c> in</c><00:06:11.150><c> or</c><00:06:12.150><c> I</c><00:06:12.210><c> think</c><00:06:12.450><c> gave</c><00:06:12.990><c> me</c><00:06:13.110><c> an</c>

00:06:13.159 --> 00:06:13.169 align:start position:0%
interested in or I think gave me an
 

00:06:13.169 --> 00:06:15.230 align:start position:0%
interested in or I think gave me an
appreciation<00:06:13.350><c> for</c><00:06:13.770><c> the</c><00:06:13.980><c> amount</c><00:06:14.040><c> of</c><00:06:14.669><c> design</c>

00:06:15.230 --> 00:06:15.240 align:start position:0%
appreciation for the amount of design
 

00:06:15.240 --> 00:06:18.200 align:start position:0%
appreciation for the amount of design
work<00:06:15.630><c> that</c><00:06:15.660><c> went</c><00:06:16.050><c> into</c><00:06:16.169><c> Common</c><00:06:16.560><c> Lisp</c><00:06:17.210><c> which</c>

00:06:18.200 --> 00:06:18.210 align:start position:0%
work that went into Common Lisp which
 

00:06:18.210 --> 00:06:19.700 align:start position:0%
work that went into Common Lisp which
was<00:06:18.390><c> really</c><00:06:18.600><c> refreshing</c><00:06:18.840><c> to</c><00:06:19.200><c> me</c><00:06:19.350><c> because</c><00:06:19.680><c> I</c>

00:06:19.700 --> 00:06:19.710 align:start position:0%
was really refreshing to me because I
 

00:06:19.710 --> 00:06:22.580 align:start position:0%
was really refreshing to me because I
had<00:06:19.919><c> just</c><00:06:19.950><c> failed</c><00:06:20.370><c> to</c><00:06:20.520><c> design</c><00:06:20.910><c> a</c><00:06:20.940><c> language</c><00:06:21.590><c> and</c>

00:06:22.580 --> 00:06:22.590 align:start position:0%
had just failed to design a language and
 

00:06:22.590 --> 00:06:25.130 align:start position:0%
had just failed to design a language and
I<00:06:23.340><c> felt</c><00:06:23.669><c> better</c><00:06:24.030><c> about</c><00:06:24.390><c> failing</c><00:06:24.660><c> to</c><00:06:24.840><c> do</c><00:06:24.960><c> so</c>

00:06:25.130 --> 00:06:25.140 align:start position:0%
I felt better about failing to do so
 

00:06:25.140 --> 00:06:27.620 align:start position:0%
I felt better about failing to do so
when<00:06:25.290><c> I</c><00:06:25.320><c> realized</c><00:06:25.560><c> how</c><00:06:25.979><c> much</c><00:06:26.210><c> how</c><00:06:27.210><c> difficult</c>

00:06:27.620 --> 00:06:27.630 align:start position:0%
when I realized how much how difficult
 

00:06:27.630 --> 00:06:30.140 align:start position:0%
when I realized how much how difficult
that<00:06:27.690><c> really</c><00:06:27.930><c> was</c><00:06:28.080><c> to</c><00:06:28.200><c> do</c><00:06:28.320><c> and</c><00:06:28.950><c> I</c><00:06:29.820><c> realized</c>

00:06:30.140 --> 00:06:30.150 align:start position:0%
that really was to do and I realized
 

00:06:30.150 --> 00:06:31.379 align:start position:0%
that really was to do and I realized
that<00:06:30.210><c> implementing</c><00:06:30.720><c> a</c><00:06:30.810><c> spec</c>

00:06:31.379 --> 00:06:31.389 align:start position:0%
that implementing a spec
 

00:06:31.389 --> 00:06:33.600 align:start position:0%
that implementing a spec
he's<00:06:31.960><c> gonna</c><00:06:32.139><c> would</c><00:06:32.500><c> be</c><00:06:32.620><c> a</c><00:06:32.650><c> lot</c><00:06:32.889><c> easier</c><00:06:32.919><c> than</c>

00:06:33.600 --> 00:06:33.610 align:start position:0%
he's gonna would be a lot easier than
 

00:06:33.610 --> 00:06:35.879 align:start position:0%
he's gonna would be a lot easier than
designing<00:06:34.360><c> a</c><00:06:34.509><c> language</c><00:06:34.689><c> like</c><00:06:35.349><c> orders</c><00:06:35.740><c> of</c>

00:06:35.879 --> 00:06:35.889 align:start position:0%
designing a language like orders of
 

00:06:35.889 --> 00:06:38.820 align:start position:0%
designing a language like orders of
magnitude<00:06:36.539><c> and</c><00:06:37.539><c> at</c><00:06:37.689><c> least</c><00:06:37.870><c> one</c><00:06:38.020><c> reason</c><00:06:38.379><c> is</c><00:06:38.530><c> if</c>

00:06:38.820 --> 00:06:38.830 align:start position:0%
magnitude and at least one reason is if
 

00:06:38.830 --> 00:06:41.399 align:start position:0%
magnitude and at least one reason is if
you're<00:06:39.039><c> handed</c><00:06:39.340><c> a</c><00:06:39.430><c> spec</c><00:06:39.780><c> you</c><00:06:40.780><c> can</c><00:06:40.810><c> work</c><00:06:41.110><c> on</c><00:06:41.259><c> it</c>

00:06:41.399 --> 00:06:41.409 align:start position:0%
you're handed a spec you can work on it
 

00:06:41.409 --> 00:06:43.140 align:start position:0%
you're handed a spec you can work on it
in<00:06:41.530><c> pretty</c><00:06:41.949><c> small</c><00:06:42.219><c> increments</c><00:06:42.699><c> and</c><00:06:42.879><c> make</c>

00:06:43.140 --> 00:06:43.150 align:start position:0%
in pretty small increments and make
 

00:06:43.150 --> 00:06:45.929 align:start position:0%
in pretty small increments and make
really<00:06:43.629><c> gratifying</c><00:06:44.280><c> progress</c><00:06:45.280><c> over</c><00:06:45.729><c> a</c><00:06:45.789><c> long</c>

00:06:45.929 --> 00:06:45.939 align:start position:0%
really gratifying progress over a long
 

00:06:45.939 --> 00:06:47.369 align:start position:0%
really gratifying progress over a long
period<00:06:46.180><c> of</c><00:06:46.210><c> time</c><00:06:46.389><c> and</c><00:06:46.629><c> that</c><00:06:46.750><c> progress</c><00:06:46.960><c> be</c>

00:06:47.369 --> 00:06:47.379 align:start position:0%
period of time and that progress be
 

00:06:47.379 --> 00:06:49.409 align:start position:0%
period of time and that progress be
continuous<00:06:47.919><c> but</c><00:06:48.759><c> if</c><00:06:48.909><c> you're</c><00:06:49.030><c> working</c><00:06:49.180><c> on</c><00:06:49.389><c> a</c>

00:06:49.409 --> 00:06:49.419 align:start position:0%
continuous but if you're working on a
 

00:06:49.419 --> 00:06:53.040 align:start position:0%
continuous but if you're working on a
design<00:06:49.840><c> of</c><00:06:50.139><c> a</c><00:06:50.199><c> language</c><00:06:50.560><c> that's</c><00:06:50.740><c> that</c><00:06:52.050><c> that's</c>

00:06:53.040 --> 00:06:53.050 align:start position:0%
design of a language that's that that's
 

00:06:53.050 --> 00:06:56.369 align:start position:0%
design of a language that's that that's
something<00:06:53.289><c> that</c><00:06:53.409><c> requires</c><00:06:53.770><c> a</c><00:06:55.319><c> lot</c><00:06:56.319><c> more</c>

00:06:56.369 --> 00:06:56.379 align:start position:0%
something that requires a lot more
 

00:06:56.379 --> 00:07:00.360 align:start position:0%
something that requires a lot more
effort<00:06:57.210><c> so</c><00:06:58.210><c> I</c><00:06:58.539><c> just</c><00:06:59.259><c> started</c><00:06:59.620><c> to</c><00:06:59.770><c> play</c><00:07:00.219><c> with</c>

00:07:00.360 --> 00:07:00.370 align:start position:0%
effort so I just started to play with
 

00:07:00.370 --> 00:07:01.920 align:start position:0%
effort so I just started to play with
this<00:07:00.460><c> idea</c><00:07:00.610><c> of</c><00:07:00.849><c> implementing</c><00:07:01.270><c> a</c><00:07:01.419><c> common</c><00:07:01.750><c> lisp</c>

00:07:01.920 --> 00:07:01.930 align:start position:0%
this idea of implementing a common lisp
 

00:07:01.930 --> 00:07:03.869 align:start position:0%
this idea of implementing a common lisp
and<00:07:02.169><c> I</c><00:07:02.199><c> knew</c><00:07:02.349><c> I</c><00:07:02.560><c> knew</c><00:07:02.860><c> common</c><00:07:03.189><c> list</c><00:07:03.340><c> was</c><00:07:03.460><c> huge</c>

00:07:03.869 --> 00:07:03.879 align:start position:0%
and I knew I knew common list was huge
 

00:07:03.879 --> 00:07:05.459 align:start position:0%
and I knew I knew common list was huge
and<00:07:04.180><c> that</c><00:07:04.389><c> it</c><00:07:04.479><c> would</c><00:07:04.689><c> probably</c><00:07:04.870><c> never</c><00:07:05.080><c> be</c><00:07:05.289><c> done</c>

00:07:05.459 --> 00:07:05.469 align:start position:0%
and that it would probably never be done
 

00:07:05.469 --> 00:07:07.980 align:start position:0%
and that it would probably never be done
but<00:07:05.860><c> I</c><00:07:05.889><c> just</c><00:07:06.069><c> couldn't</c><00:07:06.340><c> help</c><00:07:06.400><c> myself</c><00:07:06.550><c> and</c><00:07:07.180><c> as</c><00:07:07.870><c> I</c>

00:07:07.980 --> 00:07:07.990 align:start position:0%
but I just couldn't help myself and as I
 

00:07:07.990 --> 00:07:09.420 align:start position:0%
but I just couldn't help myself and as I
got<00:07:08.110><c> going</c><00:07:08.439><c> I</c><00:07:08.529><c> realized</c><00:07:08.889><c> I</c><00:07:09.129><c> had</c><00:07:09.310><c> this</c>

00:07:09.420 --> 00:07:09.430 align:start position:0%
got going I realized I had this
 

00:07:09.430 --> 00:07:12.390 align:start position:0%
got going I realized I had this
opportunity<00:07:09.699><c> to</c><00:07:10.439><c> maybe</c><00:07:11.439><c> maybe</c><00:07:11.889><c> achieve</c><00:07:12.189><c> some</c>

00:07:12.390 --> 00:07:12.400 align:start position:0%
opportunity to maybe maybe achieve some
 

00:07:12.400 --> 00:07:14.730 align:start position:0%
opportunity to maybe maybe achieve some
things<00:07:12.610><c> with</c><00:07:12.759><c> a</c><00:07:12.789><c> new</c><00:07:13.000><c> Common</c><00:07:13.330><c> Lisp</c><00:07:13.560><c> first</c><00:07:14.560><c> I</c>

00:07:14.730 --> 00:07:14.740 align:start position:0%
things with a new Common Lisp first I
 

00:07:14.740 --> 00:07:20.519 align:start position:0%
things with a new Common Lisp first I
knew<00:07:14.889><c> that</c><00:07:15.129><c> the</c><00:07:15.550><c> browser</c><00:07:15.939><c> platform</c><00:07:19.259><c> suggest</c><00:07:20.259><c> a</c>

00:07:20.519 --> 00:07:20.529 align:start position:0%
knew that the browser platform suggest a
 

00:07:20.529 --> 00:07:23.040 align:start position:0%
knew that the browser platform suggest a
lot<00:07:20.800><c> of</c><00:07:20.979><c> language</c><00:07:21.729><c> level</c><00:07:22.060><c> ideas</c><00:07:22.449><c> to</c><00:07:22.629><c> solving</c>

00:07:23.040 --> 00:07:23.050 align:start position:0%
lot of language level ideas to solving
 

00:07:23.050 --> 00:07:25.559 align:start position:0%
lot of language level ideas to solving
various<00:07:23.439><c> problems</c><00:07:23.919><c> and</c><00:07:24.219><c> I</c><00:07:25.120><c> thought</c><00:07:25.330><c> you</c><00:07:25.479><c> know</c>

00:07:25.559 --> 00:07:25.569 align:start position:0%
various problems and I thought you know
 

00:07:25.569 --> 00:07:27.360 align:start position:0%
various problems and I thought you know
if<00:07:25.659><c> I'm</c><00:07:25.750><c> gonna</c><00:07:25.900><c> be</c><00:07:26.050><c> making</c><00:07:26.349><c> languages</c><00:07:26.919><c> to</c>

00:07:27.360 --> 00:07:27.370 align:start position:0%
if I'm gonna be making languages to
 

00:07:27.370 --> 00:07:29.610 align:start position:0%
if I'm gonna be making languages to
target<00:07:27.669><c> JavaScript</c><00:07:28.240><c> what</c><00:07:29.169><c> better</c><00:07:29.349><c> way</c><00:07:29.590><c> to</c>

00:07:29.610 --> 00:07:29.620 align:start position:0%
target JavaScript what better way to
 

00:07:29.620 --> 00:07:31.679 align:start position:0%
target JavaScript what better way to
start<00:07:30.129><c> than</c><00:07:30.520><c> with</c><00:07:30.580><c> common</c><00:07:31.210><c> lisp</c><00:07:31.419><c> as</c><00:07:31.659><c> a</c>

00:07:31.679 --> 00:07:31.689 align:start position:0%
start than with common lisp as a
 

00:07:31.689 --> 00:07:34.140 align:start position:0%
start than with common lisp as a
substrate<00:07:32.490><c> because</c><00:07:33.490><c> it's</c><00:07:33.669><c> it's</c><00:07:33.879><c> a</c><00:07:33.969><c> known</c>

00:07:34.140 --> 00:07:34.150 align:start position:0%
substrate because it's it's a known
 

00:07:34.150 --> 00:07:37.010 align:start position:0%
substrate because it's it's a known
quantity<00:07:34.330><c> and</c><00:07:34.810><c> it's</c><00:07:34.960><c> a</c><00:07:35.020><c> proven</c><00:07:35.199><c> substrate</c><00:07:35.770><c> and</c>

00:07:37.010 --> 00:07:37.020 align:start position:0%
quantity and it's a proven substrate and
 

00:07:37.020 --> 00:07:39.719 align:start position:0%
quantity and it's a proven substrate and
I<00:07:38.020><c> also</c><00:07:38.409><c> realized</c><00:07:38.830><c> I</c><00:07:38.949><c> had</c><00:07:39.069><c> an</c><00:07:39.159><c> opportunity</c><00:07:39.400><c> to</c>

00:07:39.719 --> 00:07:39.729 align:start position:0%
I also realized I had an opportunity to
 

00:07:39.729 --> 00:07:41.309 align:start position:0%
I also realized I had an opportunity to
pursue<00:07:40.120><c> this</c><00:07:40.569><c> idea</c><00:07:40.900><c> of</c><00:07:40.990><c> an</c><00:07:41.080><c> asynchronous</c>

00:07:41.309 --> 00:07:41.319 align:start position:0%
pursue this idea of an asynchronous
 

00:07:41.319 --> 00:07:45.050 align:start position:0%
pursue this idea of an asynchronous
reader<00:07:41.919><c> because</c><00:07:42.909><c> I</c><00:07:43.210><c> had</c><00:07:43.569><c> a</c><00:07:43.599><c> suspicion</c><00:07:44.259><c> that</c>

00:07:45.050 --> 00:07:45.060 align:start position:0%
reader because I had a suspicion that
 

00:07:45.060 --> 00:07:49.140 align:start position:0%
reader because I had a suspicion that
with<00:07:46.060><c> a</c><00:07:46.330><c> annecy</c><00:07:46.990><c> asynchronous</c><00:07:47.710><c> reader</c><00:07:47.979><c> a</c><00:07:48.310><c> new</c>

00:07:49.140 --> 00:07:49.150 align:start position:0%
with a annecy asynchronous reader a new
 

00:07:49.150 --> 00:07:51.119 align:start position:0%
with a annecy asynchronous reader a new
level<00:07:49.389><c> of</c><00:07:49.779><c> residential</c><00:07:50.379><c> development</c><00:07:50.409><c> could</c>

00:07:51.119 --> 00:07:51.129 align:start position:0%
level of residential development could
 

00:07:51.129 --> 00:07:53.610 align:start position:0%
level of residential development could
become<00:07:51.430><c> possible</c><00:07:51.940><c> which</c><00:07:52.120><c> is</c><00:07:52.270><c> to</c><00:07:52.449><c> say</c><00:07:52.659><c> that</c><00:07:52.930><c> the</c>

00:07:53.610 --> 00:07:53.620 align:start position:0%
become possible which is to say that the
 

00:07:53.620 --> 00:07:54.990 align:start position:0%
become possible which is to say that the
development<00:07:54.159><c> time</c><00:07:54.310><c> and</c><00:07:54.610><c> the</c><00:07:54.789><c> runtime</c>

00:07:54.990 --> 00:07:55.000 align:start position:0%
development time and the runtime
 

00:07:55.000 --> 00:07:57.089 align:start position:0%
development time and the runtime
environments<00:07:55.930><c> could</c><00:07:56.169><c> be</c><00:07:56.319><c> integrated</c><00:07:56.589><c> in</c><00:07:57.009><c> a</c>

00:07:57.089 --> 00:07:57.099 align:start position:0%
environments could be integrated in a
 

00:07:57.099 --> 00:07:59.279 align:start position:0%
environments could be integrated in a
way<00:07:57.250><c> that</c><00:07:57.490><c> they</c><00:07:57.610><c> haven't</c><00:07:57.849><c> yet</c><00:07:58.060><c> been</c><00:07:58.360><c> with</c><00:07:59.139><c> any</c>

00:07:59.279 --> 00:07:59.289 align:start position:0%
way that they haven't yet been with any
 

00:07:59.289 --> 00:08:00.600 align:start position:0%
way that they haven't yet been with any
of<00:07:59.409><c> the</c><00:07:59.500><c> Lisp</c><00:07:59.680><c> implementations</c><00:07:59.830><c> that</c><00:08:00.490><c> I'd</c>

00:08:00.600 --> 00:08:00.610 align:start position:0%
of the Lisp implementations that I'd
 

00:08:00.610 --> 00:08:03.629 align:start position:0%
of the Lisp implementations that I'd
experimented<00:08:01.180><c> with</c><00:08:01.210><c> and</c><00:08:01.620><c> plus</c><00:08:02.620><c> you</c><00:08:03.339><c> can't</c><00:08:03.550><c> go</c>

00:08:03.629 --> 00:08:03.639 align:start position:0%
experimented with and plus you can't go
 

00:08:03.639 --> 00:08:05.159 align:start position:0%
experimented with and plus you can't go
wrong<00:08:03.819><c> if</c><00:08:04.029><c> you</c><00:08:04.089><c> have</c><00:08:04.240><c> you</c><00:08:04.330><c> have</c><00:08:04.360><c> a</c><00:08:04.659><c> nice</c><00:08:04.810><c> Common</c>

00:08:05.159 --> 00:08:05.169 align:start position:0%
wrong if you have you have a nice Common
 

00:08:05.169 --> 00:08:06.570 align:start position:0%
wrong if you have you have a nice Common
Lisp<00:08:05.199><c> to</c><00:08:05.529><c> work</c><00:08:05.770><c> with</c><00:08:05.979><c> and</c><00:08:06.159><c> I</c><00:08:06.189><c> thought</c><00:08:06.370><c> you</c><00:08:06.490><c> know</c>

00:08:06.570 --> 00:08:06.580 align:start position:0%
Lisp to work with and I thought you know
 

00:08:06.580 --> 00:08:07.860 align:start position:0%
Lisp to work with and I thought you know
if<00:08:06.699><c> I'm</c><00:08:06.789><c> going</c><00:08:06.879><c> to</c><00:08:06.939><c> be</c><00:08:07.060><c> doing</c><00:08:07.180><c> browser</c><00:08:07.509><c> stuff</c>

00:08:07.860 --> 00:08:07.870 align:start position:0%
if I'm going to be doing browser stuff
 

00:08:07.870 --> 00:08:09.749 align:start position:0%
if I'm going to be doing browser stuff
for<00:08:08.020><c> the</c><00:08:08.110><c> rest</c><00:08:08.229><c> of</c><00:08:08.349><c> my</c><00:08:08.409><c> career</c><00:08:08.469><c> be</c><00:08:09.430><c> nice</c><00:08:09.580><c> to</c>

00:08:09.749 --> 00:08:09.759 align:start position:0%
for the rest of my career be nice to
 

00:08:09.759 --> 00:08:11.550 align:start position:0%
for the rest of my career be nice to
have<00:08:09.879><c> a</c><00:08:09.909><c> common</c><00:08:10.120><c> lisp</c><00:08:10.449><c> that</c><00:08:10.719><c> I</c><00:08:10.750><c> can</c><00:08:10.990><c> I</c><00:08:11.139><c> can</c><00:08:11.379><c> use</c>

00:08:11.550 --> 00:08:11.560 align:start position:0%
have a common lisp that I can I can use
 

00:08:11.560 --> 00:08:17.399 align:start position:0%
have a common lisp that I can I can use
so<00:08:11.770><c> that</c><00:08:11.889><c> I</c><00:08:11.919><c> can</c><00:08:12.099><c> write</c><00:08:12.279><c> Common</c><00:08:12.610><c> Lisp</c><00:08:15.479><c> so</c><00:08:16.479><c> the</c>

00:08:17.399 --> 00:08:17.409 align:start position:0%
so that I can write Common Lisp so the
 

00:08:17.409 --> 00:08:19.290 align:start position:0%
so that I can write Common Lisp so the
JavaScript<00:08:17.710><c> platform</c><00:08:18.279><c> which</c><00:08:18.460><c> I'm</c><00:08:18.610><c> interested</c>

00:08:19.290 --> 00:08:19.300 align:start position:0%
JavaScript platform which I'm interested
 

00:08:19.300 --> 00:08:20.999 align:start position:0%
JavaScript platform which I'm interested
in<00:08:19.389><c> compiling</c><00:08:19.689><c> to</c><00:08:19.930><c> in</c><00:08:20.020><c> which</c><00:08:20.169><c> jackal</c><00:08:20.860><c> is</c>

00:08:20.999 --> 00:08:21.009 align:start position:0%
in compiling to in which jackal is
 

00:08:21.009 --> 00:08:25.800 align:start position:0%
in compiling to in which jackal is
intimately<00:08:21.460><c> related</c><00:08:24.150><c> in</c><00:08:25.150><c> a</c><00:08:25.270><c> nutshell</c><00:08:25.449><c> it</c>

00:08:25.800 --> 00:08:25.810 align:start position:0%
intimately related in a nutshell it
 

00:08:25.810 --> 00:08:28.320 align:start position:0%
intimately related in a nutshell it
makes<00:08:26.050><c> the</c><00:08:26.169><c> browser</c><00:08:26.379><c> programmable</c><00:08:27.159><c> so</c><00:08:27.939><c> prior</c>

00:08:28.320 --> 00:08:28.330 align:start position:0%
makes the browser programmable so prior
 

00:08:28.330 --> 00:08:30.149 align:start position:0%
makes the browser programmable so prior
to<00:08:28.509><c> the</c><00:08:28.629><c> advent</c><00:08:28.750><c> of</c><00:08:29.020><c> JavaScript</c><00:08:29.560><c> the</c><00:08:29.740><c> web</c>

00:08:30.149 --> 00:08:30.159 align:start position:0%
to the advent of JavaScript the web
 

00:08:30.159 --> 00:08:31.649 align:start position:0%
to the advent of JavaScript the web
browsers<00:08:30.520><c> were</c><00:08:30.669><c> effectively</c><00:08:31.120><c> static</c>

00:08:31.649 --> 00:08:31.659 align:start position:0%
browsers were effectively static
 

00:08:31.659 --> 00:08:33.180 align:start position:0%
browsers were effectively static
document<00:08:32.140><c> viewers</c><00:08:32.409><c> with</c><00:08:32.709><c> some</c><00:08:32.860><c> styling</c>

00:08:33.180 --> 00:08:33.190 align:start position:0%
document viewers with some styling
 

00:08:33.190 --> 00:08:35.069 align:start position:0%
document viewers with some styling
capability<00:08:33.779><c> javascript</c><00:08:34.779><c> makes</c><00:08:34.930><c> them</c>

00:08:35.069 --> 00:08:35.079 align:start position:0%
capability javascript makes them
 

00:08:35.079 --> 00:08:38.360 align:start position:0%
capability javascript makes them
full-blown<00:08:35.500><c> programming</c><00:08:36.130><c> environments</c>

00:08:38.360 --> 00:08:38.370 align:start position:0%
full-blown programming environments
 

00:08:38.370 --> 00:08:40.279 align:start position:0%
full-blown programming environments
it's<00:08:38.490><c> interesting</c><00:08:39.330><c> and</c><00:08:39.779><c> important</c><00:08:40.260><c> and</c>

00:08:40.279 --> 00:08:40.289 align:start position:0%
it's interesting and important and
 

00:08:40.289 --> 00:08:42.769 align:start position:0%
it's interesting and important and
valuable<00:08:41.099><c> in</c><00:08:41.640><c> an</c><00:08:42.150><c> industrial</c><00:08:42.599><c> setting</c>

00:08:42.769 --> 00:08:42.779 align:start position:0%
valuable in an industrial setting
 

00:08:42.779 --> 00:08:45.040 align:start position:0%
valuable in an industrial setting
because<00:08:43.229><c> it</c><00:08:43.800><c> makes</c><00:08:44.130><c> people</c><00:08:44.460><c> feel</c><00:08:44.640><c> like</c>

00:08:45.040 --> 00:08:45.050 align:start position:0%
because it makes people feel like
 

00:08:45.050 --> 00:08:47.450 align:start position:0%
because it makes people feel like
webpages<00:08:46.050><c> are</c><00:08:46.380><c> faster</c><00:08:46.800><c> they're</c><00:08:47.279><c> not</c>

00:08:47.450 --> 00:08:47.460 align:start position:0%
webpages are faster they're not
 

00:08:47.460 --> 00:08:49.280 align:start position:0%
webpages are faster they're not
necessarily<00:08:47.940><c> actually</c><00:08:48.240><c> doing</c><00:08:48.690><c> work</c><00:08:48.839><c> faster</c>

00:08:49.280 --> 00:08:49.290 align:start position:0%
necessarily actually doing work faster
 

00:08:49.290 --> 00:08:53.120 align:start position:0%
necessarily actually doing work faster
but<00:08:49.470><c> they're</c><00:08:49.589><c> more</c><00:08:49.710><c> responsive</c><00:08:52.130><c> modern</c>

00:08:53.120 --> 00:08:53.130 align:start position:0%
but they're more responsive modern
 

00:08:53.130 --> 00:08:55.370 align:start position:0%
but they're more responsive modern
JavaScript<00:08:53.600><c> runtimes</c><00:08:54.600><c> are</c><00:08:54.810><c> also</c><00:08:54.990><c> quite</c>

00:08:55.370 --> 00:08:55.380 align:start position:0%
JavaScript runtimes are also quite
 

00:08:55.380 --> 00:08:57.890 align:start position:0%
JavaScript runtimes are also quite
efficient<00:08:55.920><c> and</c><00:08:56.070><c> fast</c><00:08:56.370><c> they</c><00:08:57.330><c> have</c><00:08:57.540><c> world-class</c>

00:08:57.890 --> 00:08:57.900 align:start position:0%
efficient and fast they have world-class
 

00:08:57.900 --> 00:09:00.440 align:start position:0%
efficient and fast they have world-class
garbage<00:08:58.650><c> collectors</c><00:08:59.040><c> now</c><00:08:59.250><c> in</c><00:08:59.580><c> Firefox</c><00:09:00.180><c> and</c>

00:09:00.440 --> 00:09:00.450 align:start position:0%
garbage collectors now in Firefox and
 

00:09:00.450 --> 00:09:03.530 align:start position:0%
garbage collectors now in Firefox and
Chrome<00:09:00.510><c> and</c><00:09:01.430><c> world-class</c><00:09:02.430><c> tracing</c><00:09:03.060><c> Jets</c>

00:09:03.530 --> 00:09:03.540 align:start position:0%
Chrome and world-class tracing Jets
 

00:09:03.540 --> 00:09:07.400 align:start position:0%
Chrome and world-class tracing Jets
really<00:09:03.990><c> incredible</c><00:09:04.710><c> technology</c><00:09:06.410><c> the</c>

00:09:07.400 --> 00:09:07.410 align:start position:0%
really incredible technology the
 

00:09:07.410 --> 00:09:09.320 align:start position:0%
really incredible technology the
javascript<00:09:07.860><c> is</c><00:09:07.950><c> quite</c><00:09:08.130><c> a</c><00:09:08.160><c> fast</c><00:09:08.460><c> language</c><00:09:09.029><c> even</c>

00:09:09.320 --> 00:09:09.330 align:start position:0%
javascript is quite a fast language even
 

00:09:09.330 --> 00:09:12.710 align:start position:0%
javascript is quite a fast language even
in<00:09:09.600><c> commodity</c><00:09:10.110><c> web</c><00:09:10.260><c> browsers</c><00:09:11.630><c> there's</c><00:09:12.630><c> a</c>

00:09:12.710 --> 00:09:12.720 align:start position:0%
in commodity web browsers there's a
 

00:09:12.720 --> 00:09:15.829 align:start position:0%
in commodity web browsers there's a
document<00:09:13.440><c> object</c><00:09:13.589><c> model</c><00:09:13.920><c> a</c><00:09:14.480><c> model</c><00:09:15.480><c> extra</c>

00:09:15.829 --> 00:09:15.839 align:start position:0%
document object model a model extra
 

00:09:15.839 --> 00:09:19.460 align:start position:0%
document object model a model extra
abstraction<00:09:16.410><c> in</c><00:09:18.140><c> JavaScript</c><00:09:19.140><c> and</c><00:09:19.230><c> this</c><00:09:19.350><c> is</c>

00:09:19.460 --> 00:09:19.470 align:start position:0%
abstraction in JavaScript and this is
 

00:09:19.470 --> 00:09:22.130 align:start position:0%
abstraction in JavaScript and this is
how<00:09:19.589><c> one</c><00:09:19.830><c> presents</c><00:09:20.730><c> user</c><00:09:21.360><c> interfaces</c><00:09:21.960><c> and</c>

00:09:22.130 --> 00:09:22.140 align:start position:0%
how one presents user interfaces and
 

00:09:22.140 --> 00:09:25.750 align:start position:0%
how one presents user interfaces and
collects<00:09:22.410><c> input</c><00:09:22.740><c> from</c><00:09:22.860><c> the</c><00:09:23.010><c> browser</c><00:09:24.710><c> the</c>

00:09:25.750 --> 00:09:25.760 align:start position:0%
collects input from the browser the
 

00:09:25.760 --> 00:09:28.610 align:start position:0%
collects input from the browser the
JavaScript<00:09:26.760><c> platform</c><00:09:27.480><c> is</c><00:09:27.690><c> heavily</c><00:09:28.470><c> heavily</c>

00:09:28.610 --> 00:09:28.620 align:start position:0%
JavaScript platform is heavily heavily
 

00:09:28.620 --> 00:09:30.800 align:start position:0%
JavaScript platform is heavily heavily
restricted<00:09:29.310><c> and</c><00:09:29.700><c> it</c><00:09:29.760><c> has</c><00:09:29.880><c> severe</c><00:09:30.210><c> limitations</c>

00:09:30.800 --> 00:09:30.810 align:start position:0%
restricted and it has severe limitations
 

00:09:30.810 --> 00:09:33.110 align:start position:0%
restricted and it has severe limitations
and<00:09:31.080><c> it</c><00:09:31.710><c> has</c><00:09:31.920><c> those</c><00:09:32.070><c> limitations</c><00:09:32.520><c> because</c>

00:09:33.110 --> 00:09:33.120 align:start position:0%
and it has those limitations because
 

00:09:33.120 --> 00:09:36.230 align:start position:0%
and it has those limitations because
it's<00:09:33.810><c> fundamentally</c><00:09:34.110><c> for</c><00:09:34.860><c> running</c><00:09:35.580><c> untrusted</c>

00:09:36.230 --> 00:09:36.240 align:start position:0%
it's fundamentally for running untrusted
 

00:09:36.240 --> 00:09:38.510 align:start position:0%
it's fundamentally for running untrusted
code<00:09:36.500><c> people</c><00:09:37.500><c> have</c><00:09:37.650><c> to</c><00:09:37.770><c> believe</c><00:09:38.040><c> that</c><00:09:38.070><c> if</c><00:09:38.370><c> they</c>

00:09:38.510 --> 00:09:38.520 align:start position:0%
code people have to believe that if they
 

00:09:38.520 --> 00:09:40.130 align:start position:0%
code people have to believe that if they
have<00:09:38.880><c> JavaScript</c><00:09:39.420><c> on</c><00:09:39.600><c> and</c><00:09:39.900><c> their</c><00:09:39.990><c> web</c><00:09:40.110><c> browser</c>

00:09:40.130 --> 00:09:40.140 align:start position:0%
have JavaScript on and their web browser
 

00:09:40.140 --> 00:09:44.000 align:start position:0%
have JavaScript on and their web browser
and<00:09:40.440><c> they</c><00:09:40.589><c> go</c><00:09:40.860><c> to</c><00:09:40.920><c> a</c><00:09:41.810><c> website</c><00:09:42.810><c> that</c><00:09:43.230><c> the</c>

00:09:44.000 --> 00:09:44.010 align:start position:0%
and they go to a website that the
 

00:09:44.010 --> 00:09:45.470 align:start position:0%
and they go to a website that the
website<00:09:44.370><c> will</c><00:09:44.490><c> not</c><00:09:44.550><c> have</c><00:09:44.790><c> access</c><00:09:44.940><c> to</c><00:09:45.330><c> their</c>

00:09:45.470 --> 00:09:45.480 align:start position:0%
website will not have access to their
 

00:09:45.480 --> 00:09:47.449 align:start position:0%
website will not have access to their
file<00:09:46.170><c> their</c><00:09:46.440><c> personal</c><00:09:46.830><c> files</c><00:09:47.010><c> and</c><00:09:47.250><c> will</c><00:09:47.370><c> not</c>

00:09:47.449 --> 00:09:47.459 align:start position:0%
file their personal files and will not
 

00:09:47.459 --> 00:09:52.269 align:start position:0%
file their personal files and will not
be<00:09:47.610><c> able</c><00:09:47.670><c> to</c><00:09:47.760><c> crash</c><00:09:47.970><c> their</c><00:09:48.209><c> computer</c><00:09:48.950><c> so</c>

00:09:52.269 --> 00:09:52.279 align:start position:0%
 
 

00:09:52.279 --> 00:09:54.920 align:start position:0%
 
that's<00:09:53.279><c> probably</c><00:09:53.730><c> the</c><00:09:53.940><c> major</c><00:09:54.240><c> reason</c><00:09:54.779><c> that</c>

00:09:54.920 --> 00:09:54.930 align:start position:0%
that's probably the major reason that
 

00:09:54.930 --> 00:09:57.199 align:start position:0%
that's probably the major reason that
javascript<00:09:55.529><c> does</c><00:09:56.160><c> not</c><00:09:56.370><c> have</c><00:09:56.730><c> multiple</c>

00:09:57.199 --> 00:09:57.209 align:start position:0%
javascript does not have multiple
 

00:09:57.209 --> 00:09:59.480 align:start position:0%
javascript does not have multiple
threads<00:09:57.480><c> multiple</c><00:09:58.230><c> any</c><00:09:58.770><c> kind</c><00:09:59.010><c> of</c><00:09:59.040><c> concurrent</c>

00:09:59.480 --> 00:09:59.490 align:start position:0%
threads multiple any kind of concurrent
 

00:09:59.490 --> 00:10:02.000 align:start position:0%
threads multiple any kind of concurrent
execution<00:09:59.550><c> model</c><00:10:00.300><c> it's</c><00:10:00.930><c> single</c><00:10:01.290><c> process</c><00:10:01.740><c> and</c>

00:10:02.000 --> 00:10:02.010 align:start position:0%
execution model it's single process and
 

00:10:02.010 --> 00:10:04.490 align:start position:0%
execution model it's single process and
it<00:10:02.550><c> has</c><00:10:02.730><c> an</c><00:10:02.970><c> event</c><00:10:03.360><c> loop</c><00:10:03.660><c> which</c><00:10:04.020><c> is</c><00:10:04.170><c> to</c><00:10:04.320><c> say</c>

00:10:04.490 --> 00:10:04.500 align:start position:0%
it has an event loop which is to say
 

00:10:04.500 --> 00:10:10.180 align:start position:0%
it has an event loop which is to say
that<00:10:05.540><c> inputs</c><00:10:06.890><c> can</c><00:10:07.890><c> happen</c><00:10:08.730><c> in</c><00:10:08.940><c> JavaScript</c><00:10:09.630><c> but</c>

00:10:10.180 --> 00:10:10.190 align:start position:0%
that inputs can happen in JavaScript but
 

00:10:10.190 --> 00:10:13.280 align:start position:0%
that inputs can happen in JavaScript but
inputs<00:10:11.190><c> are</c><00:10:11.310><c> in</c><00:10:11.459><c> queued</c><00:10:11.820><c> on</c><00:10:12.120><c> an</c><00:10:12.690><c> event</c><00:10:12.930><c> queue</c>

00:10:13.280 --> 00:10:13.290 align:start position:0%
inputs are in queued on an event queue
 

00:10:13.290 --> 00:10:18.230 align:start position:0%
inputs are in queued on an event queue
and<00:10:13.560><c> that</c><00:10:14.100><c> event</c><00:10:14.370><c> queue</c><00:10:15.500><c> can</c><00:10:16.500><c> can</c><00:10:16.880><c> can</c><00:10:17.880><c> only</c><00:10:18.029><c> be</c>

00:10:18.230 --> 00:10:18.240 align:start position:0%
and that event queue can can can only be
 

00:10:18.240 --> 00:10:20.480 align:start position:0%
and that event queue can can can only be
consumed<00:10:18.810><c> by</c><00:10:19.080><c> one</c><00:10:19.380><c> process</c><00:10:19.950><c> which</c><00:10:20.190><c> is</c><00:10:20.310><c> the</c>

00:10:20.480 --> 00:10:20.490 align:start position:0%
consumed by one process which is the
 

00:10:20.490 --> 00:10:25.199 align:start position:0%
consumed by one process which is the
single<00:10:21.120><c> JavaScript</c><00:10:21.660><c> process</c>

00:10:25.199 --> 00:10:25.209 align:start position:0%
 
 

00:10:25.209 --> 00:10:27.869 align:start position:0%
 
so<00:10:25.929><c> jackal</c><00:10:26.649><c> brings</c><00:10:27.040><c> to</c><00:10:27.189><c> bear</c><00:10:27.220><c> in</c><00:10:27.670><c> the</c>

00:10:27.869 --> 00:10:27.879 align:start position:0%
so jackal brings to bear in the
 

00:10:27.879 --> 00:10:31.530 align:start position:0%
so jackal brings to bear in the
JavaScript<00:10:28.499><c> arena</c><00:10:29.499><c> a</c><00:10:30.189><c> few</c><00:10:30.850><c> a</c><00:10:30.879><c> few</c><00:10:31.269><c> different</c>

00:10:31.530 --> 00:10:31.540 align:start position:0%
JavaScript arena a few a few different
 

00:10:31.540 --> 00:10:33.749 align:start position:0%
JavaScript arena a few a few different
tools<00:10:31.660><c> the</c><00:10:32.619><c> first</c><00:10:32.649><c> set</c><00:10:32.980><c> of</c><00:10:33.009><c> tools</c><00:10:33.249><c> is</c><00:10:33.399><c> related</c>

00:10:33.749 --> 00:10:33.759 align:start position:0%
tools the first set of tools is related
 

00:10:33.759 --> 00:10:36.059 align:start position:0%
tools the first set of tools is related
to<00:10:33.790><c> inter</c><00:10:34.029><c> operation</c><00:10:34.600><c> with</c><00:10:35.050><c> JavaScript</c><00:10:35.800><c> and</c><00:10:35.920><c> I</c>

00:10:36.059 --> 00:10:36.069 align:start position:0%
to inter operation with JavaScript and I
 

00:10:36.069 --> 00:10:38.100 align:start position:0%
to inter operation with JavaScript and I
mentioned<00:10:36.579><c> some</c><00:10:36.759><c> a</c><00:10:36.850><c> few</c><00:10:37.149><c> special</c><00:10:37.480><c> forms</c><00:10:37.809><c> here</c>

00:10:38.100 --> 00:10:38.110 align:start position:0%
mentioned some a few special forms here
 

00:10:38.110 --> 00:10:40.079 align:start position:0%
mentioned some a few special forms here
that<00:10:38.740><c> allow</c><00:10:38.980><c> one</c><00:10:39.160><c> to</c><00:10:39.220><c> call</c><00:10:39.519><c> JavaScript</c>

00:10:40.079 --> 00:10:40.089 align:start position:0%
that allow one to call JavaScript
 

00:10:40.089 --> 00:10:42.809 align:start position:0%
that allow one to call JavaScript
functions<00:10:40.449><c> access</c><00:10:41.459><c> JavaScript</c><00:10:42.459><c> object</c>

00:10:42.809 --> 00:10:42.819 align:start position:0%
functions access JavaScript object
 

00:10:42.819 --> 00:10:45.090 align:start position:0%
functions access JavaScript object
fields<00:10:43.240><c> and</c><00:10:43.449><c> to</c><00:10:43.990><c> generate</c><00:10:44.319><c> obvious</c><00:10:44.559><c> arbitrary</c>

00:10:45.090 --> 00:10:45.100 align:start position:0%
fields and to generate obvious arbitrary
 

00:10:45.100 --> 00:10:48.179 align:start position:0%
fields and to generate obvious arbitrary
JavaScript<00:10:45.519><c> code</c><00:10:46.559><c> there</c><00:10:47.559><c> are</c><00:10:47.679><c> other</c><00:10:47.800><c> aspects</c>

00:10:48.179 --> 00:10:48.189 align:start position:0%
JavaScript code there are other aspects
 

00:10:48.189 --> 00:10:49.559 align:start position:0%
JavaScript code there are other aspects
of<00:10:48.339><c> this</c><00:10:48.429><c> that</c><00:10:48.610><c> aren't</c><00:10:48.759><c> on</c><00:10:48.910><c> the</c><00:10:48.999><c> slide</c><00:10:49.209><c> like</c>

00:10:49.559 --> 00:10:49.569 align:start position:0%
of this that aren't on the slide like
 

00:10:49.569 --> 00:10:54.090 align:start position:0%
of this that aren't on the slide like
you<00:10:50.499><c> know</c><00:10:50.679><c> the</c><00:10:51.429><c> jackal</c><00:10:51.910><c> numeric</c><00:10:52.660><c> type</c><00:10:52.959><c> the</c><00:10:53.559><c> fix</c>

00:10:54.090 --> 00:10:54.100 align:start position:0%
you know the jackal numeric type the fix
 

00:10:54.100 --> 00:10:56.160 align:start position:0%
you know the jackal numeric type the fix
num<00:10:54.279><c> is</c><00:10:54.550><c> a</c><00:10:54.999><c> JavaScript</c><00:10:55.809><c> floating-point</c>

00:10:56.160 --> 00:10:56.170 align:start position:0%
num is a JavaScript floating-point
 

00:10:56.170 --> 00:11:00.239 align:start position:0%
num is a JavaScript floating-point
number<00:10:57.540><c> so</c><00:10:58.540><c> the</c><00:10:59.290><c> relationship</c><00:10:59.829><c> there</c><00:10:59.980><c> is</c><00:11:00.069><c> very</c>

00:11:00.239 --> 00:11:00.249 align:start position:0%
number so the relationship there is very
 

00:11:00.249 --> 00:11:02.429 align:start position:0%
number so the relationship there is very
tight<00:11:00.519><c> and</c><00:11:00.999><c> it's</c><00:11:01.480><c> actually</c><00:11:01.809><c> that</c><00:11:02.079><c> tightness</c>

00:11:02.429 --> 00:11:02.439 align:start position:0%
tight and it's actually that tightness
 

00:11:02.439 --> 00:11:05.549 align:start position:0%
tight and it's actually that tightness
is<00:11:02.829><c> an</c><00:11:03.069><c> effort</c><00:11:03.699><c> towards</c><00:11:03.850><c> efficiency</c><00:11:04.509><c> since</c><00:11:05.410><c> I</c>

00:11:05.549 --> 00:11:05.559 align:start position:0%
is an effort towards efficiency since I
 

00:11:05.559 --> 00:11:07.679 align:start position:0%
is an effort towards efficiency since I
don't<00:11:05.769><c> need</c><00:11:06.399><c> to</c><00:11:06.550><c> ship</c><00:11:06.790><c> my</c><00:11:07.509><c> own</c>

00:11:07.679 --> 00:11:07.689 align:start position:0%
don't need to ship my own
 

00:11:07.689 --> 00:11:10.799 align:start position:0%
don't need to ship my own
implementations<00:11:08.529><c> of</c><00:11:08.649><c> things</c><00:11:08.829><c> like</c><00:11:09.809><c> fixed</c>

00:11:10.799 --> 00:11:10.809 align:start position:0%
implementations of things like fixed
 

00:11:10.809 --> 00:11:14.730 align:start position:0%
implementations of things like fixed
noms<00:11:10.959><c> or</c><00:11:11.259><c> flown</c><00:11:11.709><c> ohms</c><00:11:12.629><c> but</c><00:11:13.629><c> that</c><00:11:14.139><c> level</c><00:11:14.649><c> of</c>

00:11:14.730 --> 00:11:14.740 align:start position:0%
noms or flown ohms but that level of
 

00:11:14.740 --> 00:11:16.710 align:start position:0%
noms or flown ohms but that level of
integration<00:11:14.980><c> is</c><00:11:15.550><c> also</c><00:11:15.879><c> primarily</c><00:11:16.179><c> what</c><00:11:16.569><c> will</c>

00:11:16.710 --> 00:11:16.720 align:start position:0%
integration is also primarily what will
 

00:11:16.720 --> 00:11:19.319 align:start position:0%
integration is also primarily what will
preclude<00:11:17.249><c> jackal</c><00:11:18.249><c> from</c><00:11:18.429><c> becoming</c><00:11:18.819><c> any</c><00:11:19.089><c> kind</c>

00:11:19.319 --> 00:11:19.329 align:start position:0%
preclude jackal from becoming any kind
 

00:11:19.329 --> 00:11:22.549 align:start position:0%
preclude jackal from becoming any kind
of<00:11:19.480><c> you</c><00:11:20.410><c> know</c><00:11:20.529><c> a</c><00:11:20.790><c> compliant</c><00:11:21.790><c> conforming</c>

00:11:22.549 --> 00:11:22.559 align:start position:0%
of you know a compliant conforming
 

00:11:22.559 --> 00:11:26.299 align:start position:0%
of you know a compliant conforming
implementation<00:11:23.559><c> javascript</c><00:11:24.339><c> is</c><00:11:24.429><c> just</c><00:11:24.610><c> too</c>

00:11:26.299 --> 00:11:26.309 align:start position:0%
implementation javascript is just too
 

00:11:26.309 --> 00:11:28.439 align:start position:0%
implementation javascript is just too
too<00:11:27.309><c> restrictive</c><00:11:27.790><c> for</c><00:11:27.819><c> that's</c><00:11:28.059><c> ever</c><00:11:28.269><c> be</c>

00:11:28.439 --> 00:11:28.449 align:start position:0%
too restrictive for that's ever be
 

00:11:28.449 --> 00:11:33.749 align:start position:0%
too restrictive for that's ever be
possible<00:11:30.569><c> another</c><00:11:31.569><c> the</c><00:11:31.839><c> second</c><00:11:32.199><c> major</c><00:11:32.759><c> aspect</c>

00:11:33.749 --> 00:11:33.759 align:start position:0%
possible another the second major aspect
 

00:11:33.759 --> 00:11:35.549 align:start position:0%
possible another the second major aspect
of<00:11:33.850><c> jackal</c><00:11:34.269><c> is</c><00:11:34.449><c> that</c><00:11:34.749><c> it</c><00:11:34.929><c> needs</c><00:11:35.079><c> to</c><00:11:35.170><c> be</c><00:11:35.230><c> able</c><00:11:35.319><c> to</c>

00:11:35.549 --> 00:11:35.559 align:start position:0%
of jackal is that it needs to be able to
 

00:11:35.559 --> 00:11:38.699 align:start position:0%
of jackal is that it needs to be able to
make<00:11:35.709><c> small</c><00:11:35.949><c> and</c><00:11:36.459><c> efficient</c><00:11:36.790><c> code</c><00:11:37.199><c> as</c><00:11:38.199><c> I</c>

00:11:38.699 --> 00:11:38.709 align:start position:0%
make small and efficient code as I
 

00:11:38.709 --> 00:11:39.960 align:start position:0%
make small and efficient code as I
mentioned<00:11:38.980><c> earlier</c><00:11:39.220><c> I</c><00:11:39.279><c> want</c><00:11:39.490><c> to</c><00:11:39.549><c> use</c><00:11:39.639><c> this</c><00:11:39.790><c> at</c>

00:11:39.960 --> 00:11:39.970 align:start position:0%
mentioned earlier I want to use this at
 

00:11:39.970 --> 00:11:41.369 align:start position:0%
mentioned earlier I want to use this at
work<00:11:40.119><c> someday</c><00:11:40.389><c> and</c><00:11:40.779><c> needs</c><00:11:40.929><c> to</c><00:11:40.990><c> be</c><00:11:41.079><c> competitive</c>

00:11:41.369 --> 00:11:41.379 align:start position:0%
work someday and needs to be competitive
 

00:11:41.379 --> 00:11:45.689 align:start position:0%
work someday and needs to be competitive
with<00:11:41.769><c> whatever</c><00:11:43.319><c> language</c><00:11:44.319><c> to</c><00:11:44.499><c> your</c><00:11:44.649><c> people</c><00:11:45.579><c> in</c>

00:11:45.689 --> 00:11:45.699 align:start position:0%
with whatever language to your people in
 

00:11:45.699 --> 00:11:48.749 align:start position:0%
with whatever language to your people in
that<00:11:45.790><c> in</c><00:11:45.939><c> my</c><00:11:46.089><c> field</c><00:11:46.240><c> are</c><00:11:46.449><c> using</c><00:11:46.749><c> and</c><00:11:47.549><c> I</c><00:11:48.549><c> learned</c>

00:11:48.749 --> 00:11:48.759 align:start position:0%
that in my field are using and I learned
 

00:11:48.759 --> 00:11:50.369 align:start position:0%
that in my field are using and I learned
from<00:11:48.879><c> the</c><00:11:48.999><c> closure</c><00:11:49.179><c> script</c><00:11:49.509><c> experience</c><00:11:50.019><c> that</c>

00:11:50.369 --> 00:11:50.379 align:start position:0%
from the closure script experience that
 

00:11:50.379 --> 00:11:53.400 align:start position:0%
from the closure script experience that
I<00:11:50.709><c> don't</c><00:11:51.249><c> necessarily</c><00:11:51.399><c> need</c><00:11:52.149><c> to</c><00:11:52.209><c> be</c><00:11:52.410><c> the</c>

00:11:53.400 --> 00:11:53.410 align:start position:0%
I don't necessarily need to be the
 

00:11:53.410 --> 00:11:55.079 align:start position:0%
I don't necessarily need to be the
person<00:11:53.589><c> who</c><00:11:53.920><c> writes</c><00:11:54.399><c> those</c><00:11:54.639><c> optimizations</c>

00:11:55.079 --> 00:11:55.089 align:start position:0%
person who writes those optimizations
 

00:11:55.089 --> 00:11:56.759 align:start position:0%
person who writes those optimizations
because<00:11:55.839><c> I</c><00:11:56.019><c> just</c><00:11:56.199><c> need</c><00:11:56.319><c> to</c><00:11:56.439><c> generate</c>

00:11:56.759 --> 00:11:56.769 align:start position:0%
because I just need to generate
 

00:11:56.769 --> 00:11:58.410 align:start position:0%
because I just need to generate
JavaScript<00:11:57.339><c> that</c><00:11:57.519><c> other</c><00:11:57.759><c> JavaScript</c>

00:11:58.410 --> 00:11:58.420 align:start position:0%
JavaScript that other JavaScript
 

00:11:58.420 --> 00:12:01.079 align:start position:0%
JavaScript that other JavaScript
optimizers<00:11:58.990><c> can</c><00:11:59.199><c> understand</c><00:11:59.679><c> and</c><00:11:59.980><c> this</c><00:12:00.910><c> is</c>

00:12:01.079 --> 00:12:01.089 align:start position:0%
optimizers can understand and this is
 

00:12:01.089 --> 00:12:02.819 align:start position:0%
optimizers can understand and this is
great<00:12:01.360><c> as</c><00:12:01.990><c> you</c><00:12:02.259><c> know</c><00:12:02.379><c> an</c><00:12:02.439><c> individual</c>

00:12:02.819 --> 00:12:02.829 align:start position:0%
great as you know an individual
 

00:12:02.829 --> 00:12:04.559 align:start position:0%
great as you know an individual
contributors<00:12:03.369><c> this</c><00:12:03.579><c> is</c><00:12:03.639><c> my</c><00:12:03.730><c> personal</c><00:12:04.119><c> project</c>

00:12:04.559 --> 00:12:04.569 align:start position:0%
contributors this is my personal project
 

00:12:04.569 --> 00:12:06.419 align:start position:0%
contributors this is my personal project
this<00:12:05.259><c> means</c><00:12:05.499><c> that</c><00:12:05.649><c> I</c><00:12:05.709><c> can</c><00:12:05.889><c> focus</c><00:12:06.069><c> on</c><00:12:06.309><c> other</c>

00:12:06.419 --> 00:12:06.429 align:start position:0%
this means that I can focus on other
 

00:12:06.429 --> 00:12:09.650 align:start position:0%
this means that I can focus on other
parts<00:12:06.790><c> that</c><00:12:06.850><c> of</c><00:12:07.299><c> the</c><00:12:07.569><c> codebase</c><00:12:08.049><c> and</c><00:12:08.519><c> defer</c>

00:12:09.650 --> 00:12:09.660 align:start position:0%
parts that of the codebase and defer
 

00:12:09.660 --> 00:12:12.030 align:start position:0%
parts that of the codebase and defer
optimizations<00:12:10.660><c> to</c><00:12:10.839><c> third-party</c><00:12:11.049><c> tools</c><00:12:11.499><c> which</c>

00:12:12.030 --> 00:12:12.040 align:start position:0%
optimizations to third-party tools which
 

00:12:12.040 --> 00:12:16.230 align:start position:0%
optimizations to third-party tools which
are<00:12:12.160><c> excellent</c><00:12:14.279><c> the</c><00:12:15.279><c> third</c><00:12:15.639><c> thing</c><00:12:15.910><c> that</c>

00:12:16.230 --> 00:12:16.240 align:start position:0%
are excellent the third thing that
 

00:12:16.240 --> 00:12:18.210 align:start position:0%
are excellent the third thing that
jackal<00:12:16.809><c> focuses</c><00:12:17.470><c> on</c><00:12:17.619><c> which</c><00:12:17.799><c> is</c><00:12:17.949><c> the</c><00:12:18.040><c> most</c>

00:12:18.210 --> 00:12:18.220 align:start position:0%
jackal focuses on which is the most
 

00:12:18.220 --> 00:12:19.949 align:start position:0%
jackal focuses on which is the most
speculative<00:12:18.790><c> but</c><00:12:19.179><c> also</c><00:12:19.420><c> maybe</c><00:12:19.629><c> the</c><00:12:19.839><c> most</c>

00:12:19.949 --> 00:12:19.959 align:start position:0%
speculative but also maybe the most
 

00:12:19.959 --> 00:12:22.139 align:start position:0%
speculative but also maybe the most
interesting<00:12:20.139><c> is</c><00:12:20.740><c> that</c><00:12:21.490><c> I</c><00:12:21.519><c> have</c><00:12:21.819><c> this</c><00:12:21.939><c> idea</c>

00:12:22.139 --> 00:12:22.149 align:start position:0%
interesting is that I have this idea
 

00:12:22.149 --> 00:12:26.309 align:start position:0%
interesting is that I have this idea
that<00:12:22.720><c> there</c><00:12:23.319><c> is</c><00:12:23.589><c> advantage</c><00:12:24.429><c> to</c><00:12:24.790><c> doing</c><00:12:25.720><c> what</c>

00:12:26.309 --> 00:12:26.319 align:start position:0%
that there is advantage to doing what
 

00:12:26.319 --> 00:12:28.289 align:start position:0%
that there is advantage to doing what
has<00:12:26.439><c> been</c><00:12:26.470><c> called</c><00:12:26.769><c> residential</c><00:12:27.429><c> development</c>

00:12:28.289 --> 00:12:28.299 align:start position:0%
has been called residential development
 

00:12:28.299 --> 00:12:30.019 align:start position:0%
has been called residential development
and<00:12:28.420><c> residential</c><00:12:29.139><c> development</c><00:12:29.170><c> is</c><00:12:29.799><c> a</c>

00:12:30.019 --> 00:12:30.029 align:start position:0%
and residential development is a
 

00:12:30.029 --> 00:12:33.230 align:start position:0%
and residential development is a
development<00:12:31.029><c> workflow</c><00:12:31.749><c> and</c><00:12:32.139><c> sort</c><00:12:32.439><c> of</c><00:12:32.470><c> ethos</c>

00:12:33.230 --> 00:12:33.240 align:start position:0%
development workflow and sort of ethos
 

00:12:33.240 --> 00:12:36.059 align:start position:0%
development workflow and sort of ethos
characterized<00:12:34.240><c> by</c><00:12:34.509><c> this</c><00:12:34.569><c> idea</c><00:12:34.809><c> of</c><00:12:35.069><c> closely</c>

00:12:36.059 --> 00:12:36.069 align:start position:0%
characterized by this idea of closely
 

00:12:36.069 --> 00:12:37.660 align:start position:0%
characterized by this idea of closely
integrating<00:12:36.669><c> the</c><00:12:36.819><c> runtime</c>

00:12:37.660 --> 00:12:37.670 align:start position:0%
integrating the runtime
 

00:12:37.670 --> 00:12:41.980 align:start position:0%
integrating the runtime
and<00:12:37.760><c> the</c><00:12:38.480><c> development</c><00:12:40.120><c> environments</c><00:12:41.120><c> so</c><00:12:41.810><c> the</c>

00:12:41.980 --> 00:12:41.990 align:start position:0%
and the development environments so the
 

00:12:41.990 --> 00:12:43.600 align:start position:0%
and the development environments so the
same<00:12:42.200><c> tools</c><00:12:42.500><c> that</c><00:12:42.830><c> you</c><00:12:42.920><c> use</c><00:12:43.070><c> to</c><00:12:43.250><c> build</c><00:12:43.460><c> your</c>

00:12:43.600 --> 00:12:43.610 align:start position:0%
same tools that you use to build your
 

00:12:43.610 --> 00:12:45.100 align:start position:0%
same tools that you use to build your
application<00:12:44.300><c> might</c><00:12:44.480><c> be</c><00:12:44.630><c> tools</c><00:12:44.870><c> that</c><00:12:45.050><c> you</c>

00:12:45.100 --> 00:12:45.110 align:start position:0%
application might be tools that you
 

00:12:45.110 --> 00:12:46.660 align:start position:0%
application might be tools that you
would<00:12:45.200><c> use</c><00:12:45.260><c> in</c><00:12:45.500><c> the</c><00:12:45.590><c> application</c><00:12:45.680><c> itself</c><00:12:46.400><c> and</c>

00:12:46.660 --> 00:12:46.670 align:start position:0%
would use in the application itself and
 

00:12:46.670 --> 00:12:49.240 align:start position:0%
would use in the application itself and
the<00:12:47.210><c> line</c><00:12:47.450><c> between</c><00:12:47.720><c> application</c><00:12:48.650><c> and</c><00:12:48.830><c> tooling</c>

00:12:49.240 --> 00:12:49.250 align:start position:0%
the line between application and tooling
 

00:12:49.250 --> 00:12:53.350 align:start position:0%
the line between application and tooling
is<00:12:49.460><c> very</c><00:12:50.090><c> fuzzy</c><00:12:51.760><c> interesting</c><00:12:52.760><c> consequences</c>

00:12:53.350 --> 00:12:53.360 align:start position:0%
is very fuzzy interesting consequences
 

00:12:53.360 --> 00:12:56.550 align:start position:0%
is very fuzzy interesting consequences
of<00:12:53.540><c> this</c><00:12:53.750><c> include</c><00:12:54.620><c> the</c><00:12:55.490><c> idea</c><00:12:55.760><c> that</c>

00:12:56.550 --> 00:12:56.560 align:start position:0%
of this include the idea that
 

00:12:56.560 --> 00:12:59.200 align:start position:0%
of this include the idea that
development<00:12:57.560><c> tools</c><00:12:57.740><c> can</c><00:12:58.460><c> inhabit</c><00:12:59.090><c> the</c>

00:12:59.200 --> 00:12:59.210 align:start position:0%
development tools can inhabit the
 

00:12:59.210 --> 00:13:01.690 align:start position:0%
development tools can inhabit the
application<00:12:59.870><c> through</c><00:13:00.470><c> to</c><00:13:00.800><c> deployment</c><00:13:01.430><c> and</c>

00:13:01.690 --> 00:13:01.700 align:start position:0%
application through to deployment and
 

00:13:01.700 --> 00:13:07.120 align:start position:0%
application through to deployment and
even<00:13:01.940><c> after</c><00:13:04.660><c> small</c><00:13:05.660><c> talk</c><00:13:05.870><c> and</c><00:13:06.140><c> Lisp</c><00:13:06.620><c> both</c>

00:13:07.120 --> 00:13:07.130 align:start position:0%
even after small talk and Lisp both
 

00:13:07.130 --> 00:13:08.980 align:start position:0%
even after small talk and Lisp both
historically<00:13:07.970><c> supported</c><00:13:08.240><c> this</c><00:13:08.660><c> kind</c><00:13:08.930><c> of</c>

00:13:08.980 --> 00:13:08.990 align:start position:0%
historically supported this kind of
 

00:13:08.990 --> 00:13:15.400 align:start position:0%
historically supported this kind of
development<00:13:10.060><c> although</c><00:13:11.110><c> an</c><00:13:12.220><c> IDE</c><00:13:13.220><c> like</c><00:13:14.050><c> a</c><00:13:15.050><c> lisp</c>

00:13:15.400 --> 00:13:15.410 align:start position:0%
development although an IDE like a lisp
 

00:13:15.410 --> 00:13:17.440 align:start position:0%
development although an IDE like a lisp
machine<00:13:15.470><c> or</c><00:13:16.100><c> a</c><00:13:16.430><c> small</c><00:13:16.700><c> talk</c><00:13:16.880><c> environment</c><00:13:17.360><c> is</c>

00:13:17.440 --> 00:13:17.450 align:start position:0%
machine or a small talk environment is
 

00:13:17.450 --> 00:13:19.630 align:start position:0%
machine or a small talk environment is
not<00:13:17.660><c> really</c><00:13:18.110><c> in</c><00:13:18.320><c> my</c><00:13:18.620><c> personal</c><00:13:19.130><c> scope</c><00:13:19.430><c> that's</c>

00:13:19.630 --> 00:13:19.640 align:start position:0%
not really in my personal scope that's
 

00:13:19.640 --> 00:13:20.830 align:start position:0%
not really in my personal scope that's
just<00:13:19.790><c> a</c><00:13:19.850><c> little</c><00:13:20.030><c> more</c><00:13:20.210><c> work</c><00:13:20.390><c> that</c><00:13:20.540><c> I'm</c><00:13:20.630><c> willing</c>

00:13:20.830 --> 00:13:20.840 align:start position:0%
just a little more work that I'm willing
 

00:13:20.840 --> 00:13:22.690 align:start position:0%
just a little more work that I'm willing
to<00:13:20.870><c> take</c><00:13:21.080><c> on</c><00:13:21.260><c> and</c><00:13:22.070><c> I'm</c><00:13:22.280><c> not</c><00:13:22.400><c> particularly</c>

00:13:22.690 --> 00:13:22.700 align:start position:0%
to take on and I'm not particularly
 

00:13:22.700 --> 00:13:25.930 align:start position:0%
to take on and I'm not particularly
interested<00:13:23.360><c> in</c><00:13:23.600><c> doing</c><00:13:23.840><c> that</c><00:13:23.960><c> but</c><00:13:24.800><c> I</c><00:13:25.220><c> think</c>

00:13:25.930 --> 00:13:25.940 align:start position:0%
interested in doing that but I think
 

00:13:25.940 --> 00:13:27.100 align:start position:0%
interested in doing that but I think
there<00:13:26.180><c> might</c><00:13:26.270><c> be</c><00:13:26.330><c> advantaged</c><00:13:26.780><c> in</c><00:13:26.900><c> not</c>

00:13:27.100 --> 00:13:27.110 align:start position:0%
there might be advantaged in not
 

00:13:27.110 --> 00:13:31.300 align:start position:0%
there might be advantaged in not
precluding<00:13:27.830><c> that</c><00:13:28.270><c> because</c><00:13:29.830><c> whatever</c><00:13:30.830><c> tools</c><00:13:31.190><c> I</c>

00:13:31.300 --> 00:13:31.310 align:start position:0%
precluding that because whatever tools I
 

00:13:31.310 --> 00:13:33.460 align:start position:0%
precluding that because whatever tools I
develop<00:13:31.700><c> would</c><00:13:31.940><c> converge</c><00:13:32.390><c> on</c><00:13:32.690><c> an</c><00:13:32.990><c> integrated</c>

00:13:33.460 --> 00:13:33.470 align:start position:0%
develop would converge on an integrated
 

00:13:33.470 --> 00:13:35.920 align:start position:0%
develop would converge on an integrated
development<00:13:34.310><c> environment</c><00:13:34.850><c> and</c><00:13:35.000><c> I</c><00:13:35.690><c> just</c>

00:13:35.920 --> 00:13:35.930 align:start position:0%
development environment and I just
 

00:13:35.930 --> 00:13:37.360 align:start position:0%
development environment and I just
wouldn't<00:13:36.260><c> want</c><00:13:36.380><c> to</c><00:13:36.500><c> make</c><00:13:36.620><c> that</c><00:13:36.800><c> kind</c><00:13:37.130><c> of</c><00:13:37.220><c> thing</c>

00:13:37.360 --> 00:13:37.370 align:start position:0%
wouldn't want to make that kind of thing
 

00:13:37.370 --> 00:13:39.640 align:start position:0%
wouldn't want to make that kind of thing
impossible<00:13:38.090><c> and</c><00:13:38.300><c> in</c><00:13:38.960><c> the</c><00:13:39.050><c> meantime</c><00:13:39.200><c> I</c>

00:13:39.640 --> 00:13:39.650 align:start position:0%
impossible and in the meantime I
 

00:13:39.650 --> 00:13:42.610 align:start position:0%
impossible and in the meantime I
personally<00:13:40.280><c> use</c><00:13:40.460><c> a</c><00:13:40.660><c> Emacs</c><00:13:41.660><c> with</c><00:13:41.960><c> a</c><00:13:41.990><c> network</c>

00:13:42.610 --> 00:13:42.620 align:start position:0%
personally use a Emacs with a network
 

00:13:42.620 --> 00:13:46.840 align:start position:0%
personally use a Emacs with a network
repple<00:13:43.010><c> which</c><00:13:43.190><c> I'll</c><00:13:43.340><c> demonstrate</c><00:13:45.520><c> so</c><00:13:46.520><c> I</c>

00:13:46.840 --> 00:13:46.850 align:start position:0%
repple which I'll demonstrate so I
 

00:13:46.850 --> 00:13:48.700 align:start position:0%
repple which I'll demonstrate so I
mentioned<00:13:47.150><c> that</c><00:13:47.360><c> the</c><00:13:47.570><c> a</c><00:13:47.780><c> asynchronous</c><00:13:48.500><c> reader</c>

00:13:48.700 --> 00:13:48.710 align:start position:0%
mentioned that the a asynchronous reader
 

00:13:48.710 --> 00:13:50.320 align:start position:0%
mentioned that the a asynchronous reader
was<00:13:48.920><c> kind</c><00:13:49.130><c> of</c><00:13:49.160><c> a</c><00:13:49.280><c> banner</c><00:13:49.460><c> feature</c><00:13:50.000><c> in</c>

00:13:50.320 --> 00:13:50.330 align:start position:0%
was kind of a banner feature in
 

00:13:50.330 --> 00:13:51.730 align:start position:0%
was kind of a banner feature in
Jaqueline<00:13:50.870><c> and</c><00:13:51.050><c> the</c><00:13:51.110><c> reason</c><00:13:51.380><c> for</c><00:13:51.410><c> that</c><00:13:51.530><c> is</c>

00:13:51.730 --> 00:13:51.740 align:start position:0%
Jaqueline and the reason for that is
 

00:13:51.740 --> 00:13:53.290 align:start position:0%
Jaqueline and the reason for that is
kind<00:13:52.130><c> of</c><00:13:52.160><c> a</c><00:13:52.220><c> linchpin</c><00:13:52.700><c> of</c><00:13:52.730><c> the</c><00:13:52.940><c> residential</c>

00:13:53.290 --> 00:13:53.300 align:start position:0%
kind of a linchpin of the residential
 

00:13:53.300 --> 00:13:55.840 align:start position:0%
kind of a linchpin of the residential
development<00:13:53.950><c> environment</c><00:13:54.950><c> workflow</c>

00:13:55.840 --> 00:13:55.850 align:start position:0%
development environment workflow
 

00:13:55.850 --> 00:13:59.350 align:start position:0%
development environment workflow
experiment<00:13:57.640><c> the</c><00:13:58.640><c> fundamental</c><00:13:59.060><c> problem</c><00:13:59.330><c> here</c>

00:13:59.350 --> 00:13:59.360 align:start position:0%
experiment the fundamental problem here
 

00:13:59.360 --> 00:14:02.620 align:start position:0%
experiment the fundamental problem here
is<00:13:59.600><c> Java</c><00:13:59.840><c> scripts</c><00:14:00.200><c> model</c><00:14:00.530><c> of</c><00:14:00.650><c> input</c><00:14:01.300><c> input</c><00:14:02.300><c> can</c>

00:14:02.620 --> 00:14:02.630 align:start position:0%
is Java scripts model of input input can
 

00:14:02.630 --> 00:14:04.570 align:start position:0%
is Java scripts model of input input can
only<00:14:02.750><c> be</c><00:14:02.930><c> consumed</c><00:14:03.410><c> asynchronously</c><00:14:04.220><c> via</c>

00:14:04.570 --> 00:14:04.580 align:start position:0%
only be consumed asynchronously via
 

00:14:04.580 --> 00:14:08.200 align:start position:0%
only be consumed asynchronously via
callback<00:14:05.090><c> so</c><00:14:05.990><c> if</c><00:14:06.560><c> one</c><00:14:07.130><c> were</c><00:14:07.250><c> to</c><00:14:07.280><c> say</c><00:14:07.430><c> consume</c>

00:14:08.200 --> 00:14:08.210 align:start position:0%
callback so if one were to say consume
 

00:14:08.210 --> 00:14:11.560 align:start position:0%
callback so if one were to say consume
characters<00:14:08.810><c> in</c><00:14:08.990><c> JavaScript</c><00:14:10.210><c> you</c><00:14:11.210><c> wouldn't</c><00:14:11.480><c> be</c>

00:14:11.560 --> 00:14:11.570 align:start position:0%
characters in JavaScript you wouldn't be
 

00:14:11.570 --> 00:14:13.750 align:start position:0%
characters in JavaScript you wouldn't be
able<00:14:11.630><c> to</c><00:14:11.780><c> read</c><00:14:12.080><c> new</c><00:14:12.350><c> characters</c><00:14:12.950><c> from</c><00:14:13.460><c> some</c>

00:14:13.750 --> 00:14:13.760 align:start position:0%
able to read new characters from some
 

00:14:13.760 --> 00:14:16.810 align:start position:0%
able to read new characters from some
input<00:14:14.120><c> source</c><00:14:14.380><c> until</c><00:14:15.380><c> your</c><00:14:16.190><c> code</c><00:14:16.520><c> is</c><00:14:16.670><c> done</c>

00:14:16.810 --> 00:14:16.820 align:start position:0%
input source until your code is done
 

00:14:16.820 --> 00:14:18.820 align:start position:0%
input source until your code is done
running<00:14:17.090><c> because</c><00:14:17.870><c> there's</c><00:14:18.020><c> a</c><00:14:18.080><c> single</c><00:14:18.350><c> process</c>

00:14:18.820 --> 00:14:18.830 align:start position:0%
running because there's a single process
 

00:14:18.830 --> 00:14:21.460 align:start position:0%
running because there's a single process
code<00:14:19.700><c> can</c><00:14:19.880><c> only</c><00:14:19.940><c> because</c><00:14:20.330><c> objects</c><00:14:21.230><c> would</c><00:14:21.320><c> only</c>

00:14:21.460 --> 00:14:21.470 align:start position:0%
code can only because objects would only
 

00:14:21.470 --> 00:14:23.500 align:start position:0%
code can only because objects would only
be<00:14:21.650><c> consumed</c><00:14:21.950><c> from</c><00:14:22.100><c> the</c><00:14:22.280><c> event</c><00:14:22.730><c> loop</c><00:14:22.910><c> of</c><00:14:23.390><c> the</c>

00:14:23.500 --> 00:14:23.510 align:start position:0%
be consumed from the event loop of the
 

00:14:23.510 --> 00:14:27.580 align:start position:0%
be consumed from the event loop of the
event<00:14:23.720><c> queue</c><00:14:24.070><c> once</c><00:14:25.070><c> the</c><00:14:25.250><c> stack</c><00:14:25.490><c> is</c><00:14:26.120><c> empty</c><00:14:26.590><c> so</c>

00:14:27.580 --> 00:14:27.590 align:start position:0%
event queue once the stack is empty so
 

00:14:27.590 --> 00:14:30.220 align:start position:0%
event queue once the stack is empty so
there's<00:14:27.800><c> no</c><00:14:27.920><c> blocking</c><00:14:28.600><c> which</c><00:14:29.600><c> means</c><00:14:29.870><c> that</c><00:14:30.140><c> the</c>

00:14:30.220 --> 00:14:30.230 align:start position:0%
there's no blocking which means that the
 

00:14:30.230 --> 00:14:32.140 align:start position:0%
there's no blocking which means that the
straightforward<00:14:30.980><c> traditional</c><00:14:31.730><c> approach</c><00:14:31.970><c> to</c>

00:14:32.140 --> 00:14:32.150 align:start position:0%
straightforward traditional approach to
 

00:14:32.150 --> 00:14:35.590 align:start position:0%
straightforward traditional approach to
a<00:14:32.180><c> lisp</c><00:14:32.390><c> reader</c><00:14:32.630><c> is</c><00:14:32.900><c> not</c><00:14:33.110><c> really</c><00:14:34.600><c> effective</c>

00:14:35.590 --> 00:14:35.600 align:start position:0%
a lisp reader is not really effective
 

00:14:35.600 --> 00:14:37.900 align:start position:0%
a lisp reader is not really effective
because<00:14:36.260><c> you</c><00:14:36.530><c> can</c><00:14:36.890><c> make</c><00:14:37.040><c> a</c><00:14:37.100><c> lisp</c><00:14:37.400><c> reader</c><00:14:37.640><c> in</c>

00:14:37.900 --> 00:14:37.910 align:start position:0%
because you can make a lisp reader in
 

00:14:37.910 --> 00:14:40.000 align:start position:0%
because you can make a lisp reader in
the<00:14:38.090><c> traditional</c><00:14:38.510><c> style</c><00:14:38.690><c> but</c><00:14:39.530><c> it</c><00:14:39.650><c> will</c><00:14:39.740><c> block</c>

00:14:40.000 --> 00:14:40.010 align:start position:0%
the traditional style but it will block
 

00:14:40.010 --> 00:14:42.280 align:start position:0%
the traditional style but it will block
everything<00:14:40.550><c> else</c><00:14:40.730><c> in</c><00:14:41.030><c> the</c><00:14:41.450><c> browser</c><00:14:41.630><c> tab</c><00:14:41.960><c> and</c>

00:14:42.280 --> 00:14:42.290 align:start position:0%
everything else in the browser tab and
 

00:14:42.290 --> 00:14:45.630 align:start position:0%
everything else in the browser tab and
your<00:14:42.920><c> program</c><00:14:43.220><c> could</c><00:14:43.370><c> be</c><00:14:43.430><c> deadlocked</c><00:14:43.760><c> easily</c>

00:14:45.630 --> 00:14:45.640 align:start position:0%
your program could be deadlocked easily
 

00:14:45.640 --> 00:14:49.240 align:start position:0%
your program could be deadlocked easily
so<00:14:46.640><c> in</c><00:14:47.000><c> jackal</c><00:14:47.720><c> what</c><00:14:48.170><c> we</c><00:14:48.260><c> do</c><00:14:48.440><c> is</c><00:14:48.710><c> we</c><00:14:49.040><c> have</c><00:14:49.160><c> an</c>

00:14:49.240 --> 00:14:49.250 align:start position:0%
so in jackal what we do is we have an
 

00:14:49.250 --> 00:14:51.160 align:start position:0%
so in jackal what we do is we have an
asynchronous<00:14:49.610><c> reader</c><00:14:50.090><c> abstraction</c><00:14:50.840><c> which</c>

00:14:51.160 --> 00:14:51.170 align:start position:0%
asynchronous reader abstraction which
 

00:14:51.170 --> 00:14:52.720 align:start position:0%
asynchronous reader abstraction which
it's<00:14:51.529><c> a</c><00:14:51.649><c> stateful</c><00:14:51.889><c> object</c><00:14:52.370><c> you</c><00:14:52.490><c> instantiate</c>

00:14:52.720 --> 00:14:52.730 align:start position:0%
it's a stateful object you instantiate
 

00:14:52.730 --> 00:14:55.750 align:start position:0%
it's a stateful object you instantiate
one<00:14:53.089><c> of</c><00:14:53.149><c> these</c><00:14:53.269><c> asynchronous</c><00:14:53.540><c> readers</c><00:14:54.050><c> and</c><00:14:54.760><c> it</c>

00:14:55.750 --> 00:14:55.760 align:start position:0%
one of these asynchronous readers and it
 

00:14:55.760 --> 00:14:57.759 align:start position:0%
one of these asynchronous readers and it
has<00:14:56.209><c> a</c><00:14:56.240><c> method</c><00:14:56.600><c> for</c><00:14:56.720><c> pushing</c><00:14:57.079><c> characters</c><00:14:57.470><c> into</c>

00:14:57.759 --> 00:14:57.769 align:start position:0%
has a method for pushing characters into
 

00:14:57.769 --> 00:14:59.579 align:start position:0%
has a method for pushing characters into
it<00:14:57.889><c> and</c><00:14:58.040><c> every</c><00:14:58.310><c> time</c><00:14:58.490><c> you</c><00:14:58.610><c> call</c><00:14:58.970><c> the</c><00:14:59.120><c> method</c>

00:14:59.579 --> 00:14:59.589 align:start position:0%
it and every time you call the method
 

00:14:59.589 --> 00:15:02.110 align:start position:0%
it and every time you call the method
and<00:15:00.589><c> push</c><00:15:00.829><c> characters</c><00:15:01.339><c> internally</c>

00:15:02.110 --> 00:15:02.120 align:start position:0%
and push characters internally
 

00:15:02.120 --> 00:15:03.970 align:start position:0%
and push characters internally
incrementally<00:15:02.899><c> it</c><00:15:03.110><c> parses</c><00:15:03.649><c> with</c><00:15:03.860><c> an</c>

00:15:03.970 --> 00:15:03.980 align:start position:0%
incrementally it parses with an
 

00:15:03.980 --> 00:15:06.100 align:start position:0%
incrementally it parses with an
incremental<00:15:04.399><c> it's</c><00:15:04.820><c> an</c><00:15:04.970><c> online</c><00:15:05.149><c> incremental</c>

00:15:06.100 --> 00:15:06.110 align:start position:0%
incremental it's an online incremental
 

00:15:06.110 --> 00:15:09.850 align:start position:0%
incremental it's an online incremental
parser<00:15:06.470><c> and</c><00:15:07.360><c> when</c><00:15:08.360><c> it's</c><00:15:08.540><c> accumulated</c><00:15:08.899><c> a</c><00:15:09.410><c> data</c>

00:15:09.850 --> 00:15:09.860 align:start position:0%
parser and when it's accumulated a data
 

00:15:09.860 --> 00:15:12.310 align:start position:0%
parser and when it's accumulated a data
structure<00:15:10.220><c> with</c><00:15:10.370><c> it</c><00:15:10.490><c> that's</c><00:15:10.670><c> a</c><00:15:10.760><c> list</c><00:15:11.000><c> or</c><00:15:11.360><c> a</c>

00:15:12.310 --> 00:15:12.320 align:start position:0%
structure with it that's a list or a
 

00:15:12.320 --> 00:15:14.110 align:start position:0%
structure with it that's a list or a
symbol<00:15:12.589><c> or</c><00:15:12.800><c> whatever</c><00:15:12.949><c> it</c><00:15:13.550><c> will</c><00:15:13.730><c> invoke</c><00:15:14.060><c> a</c>

00:15:14.110 --> 00:15:14.120 align:start position:0%
symbol or whatever it will invoke a
 

00:15:14.120 --> 00:15:19.860 align:start position:0%
symbol or whatever it will invoke a
callback<00:15:14.420><c> with</c><00:15:14.899><c> that</c><00:15:15.079><c> data</c><00:15:15.410><c> structure</c><00:15:17.050><c> so</c>

00:15:19.860 --> 00:15:19.870 align:start position:0%
callback with that data structure so
 

00:15:19.870 --> 00:15:22.590 align:start position:0%
callback with that data structure so
next<00:15:20.870><c> up</c><00:15:21.050><c> is</c><00:15:21.170><c> a</c><00:15:21.230><c> demonstration</c><00:15:21.529><c> and</c><00:15:22.070><c> I'll</c><00:15:22.310><c> show</c>

00:15:22.590 --> 00:15:22.600 align:start position:0%
next up is a demonstration and I'll show
 

00:15:22.600 --> 00:15:26.920 align:start position:0%
next up is a demonstration and I'll show
interaction<00:15:23.600><c> in</c><00:15:23.690><c> the</c><00:15:23.779><c> browser</c><00:15:23.990><c> and</c><00:15:25.810><c> what</c><00:15:26.810><c> you</c>

00:15:26.920 --> 00:15:26.930 align:start position:0%
interaction in the browser and what you
 

00:15:26.930 --> 00:15:28.750 align:start position:0%
interaction in the browser and what you
other<00:15:27.199><c> sort</c><00:15:27.860><c> of</c><00:15:27.889><c> what</c><00:15:28.070><c> it</c><00:15:28.160><c> looks</c><00:15:28.310><c> like</c><00:15:28.459><c> to</c><00:15:28.579><c> run</c>

00:15:28.750 --> 00:15:28.760 align:start position:0%
other sort of what it looks like to run
 

00:15:28.760 --> 00:15:30.189 align:start position:0%
other sort of what it looks like to run
Jackel<00:15:29.089><c> in</c><00:15:29.149><c> the</c><00:15:29.240><c> browser</c><00:15:29.420><c> and</c><00:15:29.839><c> I'll</c><00:15:29.990><c> show</c><00:15:30.170><c> the</c>

00:15:30.189 --> 00:15:30.199 align:start position:0%
Jackel in the browser and I'll show the
 

00:15:30.199 --> 00:15:32.680 align:start position:0%
Jackel in the browser and I'll show the
integration<00:15:30.800><c> with</c><00:15:31.160><c> JavaScript</c><00:15:31.760><c> and</c><00:15:32.570><c> we'll</c>

00:15:32.680 --> 00:15:32.690 align:start position:0%
integration with JavaScript and we'll
 

00:15:32.690 --> 00:15:35.500 align:start position:0%
integration with JavaScript and we'll
show<00:15:32.839><c> the</c><00:15:32.959><c> asynchronous</c><00:15:33.769><c> reader</c><00:15:34.160><c> and</c><00:15:34.510><c> then</c>

00:15:35.500 --> 00:15:35.510 align:start position:0%
show the asynchronous reader and then
 

00:15:35.510 --> 00:15:38.470 align:start position:0%
show the asynchronous reader and then
I'll<00:15:35.779><c> show</c><00:15:36.110><c> what</c><00:15:37.100><c> the</c><00:15:37.579><c> development</c>

00:15:38.470 --> 00:15:38.480 align:start position:0%
I'll show what the development
 

00:15:38.480 --> 00:15:40.540 align:start position:0%
I'll show what the development
experience<00:15:39.050><c> currently</c><00:15:39.470><c> looks</c><00:15:39.649><c> like</c><00:15:39.740><c> using</c>

00:15:40.540 --> 00:15:40.550 align:start position:0%
experience currently looks like using
 

00:15:40.550 --> 00:15:42.879 align:start position:0%
experience currently looks like using
this<00:15:40.850><c> Jackal</c><00:15:41.300><c> ripple</c><00:15:41.630><c> client</c><00:15:42.019><c> connecting</c><00:15:42.769><c> to</c>

00:15:42.879 --> 00:15:42.889 align:start position:0%
this Jackal ripple client connecting to
 

00:15:42.889 --> 00:15:50.350 align:start position:0%
this Jackal ripple client connecting to
a<00:15:42.920><c> remote</c><00:15:43.010><c> browser</c><00:15:43.610><c> and</c><00:15:43.880><c> evaluating</c><00:15:49.060><c> okay</c><00:15:50.060><c> we</c>

00:15:50.350 --> 00:15:50.360 align:start position:0%
a remote browser and evaluating okay we
 

00:15:50.360 --> 00:15:55.030 align:start position:0%
a remote browser and evaluating okay we
are<00:15:50.510><c> back</c><00:15:50.779><c> now</c><00:15:51.139><c> with</c><00:15:51.529><c> a</c><00:15:51.940><c> demonstration</c><00:15:54.040><c> so</c>

00:15:55.030 --> 00:15:55.040 align:start position:0%
are back now with a demonstration so
 

00:15:55.040 --> 00:15:56.740 align:start position:0%
are back now with a demonstration so
over<00:15:55.579><c> on</c><00:15:55.610><c> the</c><00:15:55.730><c> left</c><00:15:55.910><c> hand</c><00:15:56.060><c> side</c><00:15:56.300><c> here</c><00:15:56.540><c> we've</c>

00:15:56.740 --> 00:15:56.750 align:start position:0%
over on the left hand side here we've
 

00:15:56.750 --> 00:16:00.130 align:start position:0%
over on the left hand side here we've
got<00:15:56.959><c> a</c><00:15:57.019><c> terminal</c><00:15:57.640><c> open</c><00:15:58.640><c> and</c><00:15:58.880><c> I'm</c><00:15:59.449><c> running</c><00:15:59.810><c> a</c>

00:16:00.130 --> 00:16:00.140 align:start position:0%
got a terminal open and I'm running a
 

00:16:00.140 --> 00:16:03.189 align:start position:0%
got a terminal open and I'm running a
local<00:16:00.800><c> web</c><00:16:01.640><c> server</c><00:16:01.670><c> on</c><00:16:02.089><c> port</c><00:16:02.120><c> 8000</c><00:16:02.899><c> from</c><00:16:03.110><c> the</c>

00:16:03.189 --> 00:16:03.199 align:start position:0%
local web server on port 8000 from the
 

00:16:03.199 --> 00:16:06.699 align:start position:0%
local web server on port 8000 from the
Jackal<00:16:03.560><c> distribution</c><00:16:04.810><c> directory</c><00:16:05.810><c> and</c><00:16:06.470><c> on</c><00:16:06.620><c> the</c>

00:16:06.699 --> 00:16:06.709 align:start position:0%
Jackal distribution directory and on the
 

00:16:06.709 --> 00:16:08.019 align:start position:0%
Jackal distribution directory and on the
right<00:16:06.829><c> hand</c><00:16:07.040><c> side</c><00:16:07.130><c> we're</c><00:16:07.430><c> looking</c><00:16:07.699><c> at</c><00:16:07.880><c> the</c>

00:16:08.019 --> 00:16:08.029 align:start position:0%
right hand side we're looking at the
 

00:16:08.029 --> 00:16:11.800 align:start position:0%
right hand side we're looking at the
Jackal<00:16:08.449><c> tests</c><00:16:09.880><c> which</c><00:16:10.880><c> are</c><00:16:11.029><c> just</c><00:16:11.149><c> basic</c><00:16:11.510><c> tests</c>

00:16:11.800 --> 00:16:11.810 align:start position:0%
Jackal tests which are just basic tests
 

00:16:11.810 --> 00:16:17.439 align:start position:0%
Jackal tests which are just basic tests
of<00:16:11.899><c> Jackel</c><00:16:13.420><c> woefully</c><00:16:14.420><c> incomplete</c><00:16:15.940><c> but</c><00:16:16.940><c> the</c>

00:16:17.439 --> 00:16:17.449 align:start position:0%
of Jackel woefully incomplete but the
 

00:16:17.449 --> 00:16:18.699 align:start position:0%
of Jackel woefully incomplete but the
important<00:16:17.839><c> thing</c><00:16:17.959><c> about</c><00:16:17.990><c> the</c><00:16:18.290><c> browser</c><00:16:18.500><c> on</c><00:16:18.680><c> the</c>

00:16:18.699 --> 00:16:18.709 align:start position:0%
important thing about the browser on the
 

00:16:18.709 --> 00:16:20.650 align:start position:0%
important thing about the browser on the
right<00:16:18.800><c> is</c><00:16:19.190><c> that</c><00:16:19.220><c> Jackal</c><00:16:19.910><c> is</c><00:16:19.940><c> loaded</c><00:16:20.269><c> into</c><00:16:20.420><c> it</c>

00:16:20.650 --> 00:16:20.660 align:start position:0%
right is that Jackal is loaded into it
 

00:16:20.660 --> 00:16:24.490 align:start position:0%
right is that Jackal is loaded into it
and<00:16:21.339><c> we</c><00:16:22.339><c> can</c><00:16:22.459><c> actually</c><00:16:22.730><c> interact</c><00:16:23.029><c> with</c><00:16:23.500><c> Jackel</c>

00:16:24.490 --> 00:16:24.500 align:start position:0%
and we can actually interact with Jackel
 

00:16:24.500 --> 00:16:25.600 align:start position:0%
and we can actually interact with Jackel
through<00:16:24.740><c> the</c><00:16:24.860><c> browser's</c><00:16:25.220><c> built-in</c>

00:16:25.600 --> 00:16:25.610 align:start position:0%
through the browser's built-in
 

00:16:25.610 --> 00:16:29.290 align:start position:0%
through the browser's built-in
development<00:16:26.089><c> tools</c><00:16:26.240><c> and</c><00:16:27.940><c> I'll</c><00:16:28.940><c> show</c><00:16:29.089><c> you</c><00:16:29.120><c> how</c>

00:16:29.290 --> 00:16:29.300 align:start position:0%
development tools and I'll show you how
 

00:16:29.300 --> 00:16:32.230 align:start position:0%
development tools and I'll show you how
that's<00:16:29.420><c> done</c><00:16:29.540><c> here</c><00:16:29.690><c> I'll</c><00:16:30.380><c> make</c><00:16:30.560><c> this</c><00:16:31.120><c> font</c><00:16:32.120><c> a</c>

00:16:32.230 --> 00:16:32.240 align:start position:0%
that's done here I'll make this font a
 

00:16:32.240 --> 00:16:38.350 align:start position:0%
that's done here I'll make this font a
little<00:16:32.269><c> bigger</c><00:16:32.570><c> so</c><00:16:34.269><c> I</c><00:16:36.760><c> happen</c><00:16:37.760><c> to</c><00:16:37.790><c> know</c><00:16:38.060><c> that</c>

00:16:38.350 --> 00:16:38.360 align:start position:0%
little bigger so I happen to know that
 

00:16:38.360 --> 00:16:41.829 align:start position:0%
little bigger so I happen to know that
there<00:16:39.170><c> is</c><00:16:39.579><c> the</c><00:16:40.579><c> moral</c><00:16:41.000><c> equivalent</c><00:16:41.569><c> of</c><00:16:41.690><c> an</c>

00:16:41.829 --> 00:16:41.839 align:start position:0%
there is the moral equivalent of an
 

00:16:41.839 --> 00:16:43.449 align:start position:0%
there is the moral equivalent of an
input<00:16:42.170><c> stream</c><00:16:42.470><c> set</c><00:16:42.860><c> up</c><00:16:42.949><c> in</c><00:16:43.100><c> this</c><00:16:43.220><c> browser</c>

00:16:43.449 --> 00:16:43.459 align:start position:0%
input stream set up in this browser
 

00:16:43.459 --> 00:16:45.490 align:start position:0%
input stream set up in this browser
ready<00:16:43.910><c> to</c><00:16:44.089><c> receive</c><00:16:44.360><c> characters</c><00:16:44.899><c> from</c><00:16:45.050><c> us</c>

00:16:45.490 --> 00:16:45.500 align:start position:0%
ready to receive characters from us
 

00:16:45.500 --> 00:16:48.220 align:start position:0%
ready to receive characters from us
now<00:16:46.040><c> of</c><00:16:46.160><c> course</c><00:16:46.220><c> this</c><00:16:47.060><c> console</c><00:16:47.510><c> here</c><00:16:47.810><c> is</c><00:16:47.959><c> a</c>

00:16:48.220 --> 00:16:48.230 align:start position:0%
now of course this console here is a
 

00:16:48.230 --> 00:16:51.699 align:start position:0%
now of course this console here is a
JavaScript<00:16:48.980><c> console</c><00:16:49.420><c> but</c><00:16:50.420><c> we</c><00:16:51.230><c> can</c><00:16:51.470><c> write</c>

00:16:51.699 --> 00:16:51.709 align:start position:0%
JavaScript console but we can write
 

00:16:51.709 --> 00:16:53.769 align:start position:0%
JavaScript console but we can write
JavaScript<00:16:52.339><c> code</c><00:16:52.579><c> that</c><00:16:52.610><c> pushes</c><00:16:53.300><c> characters</c>

00:16:53.769 --> 00:16:53.779 align:start position:0%
JavaScript code that pushes characters
 

00:16:53.779 --> 00:16:58.030 align:start position:0%
JavaScript code that pushes characters
into<00:16:54.500><c> the</c><00:16:55.310><c> compilers</c><00:16:56.440><c> reader</c><00:16:57.440><c> or</c><00:16:57.800><c> with</c><00:16:57.949><c> the</c>

00:16:58.030 --> 00:16:58.040 align:start position:0%
into the compilers reader or with the
 

00:16:58.040 --> 00:17:00.340 align:start position:0%
into the compilers reader or with the
Rebels<00:16:58.399><c> reader</c><00:16:58.720><c> and</c><00:16:59.720><c> I</c><00:16:59.810><c> think</c><00:17:00.019><c> it's</c><00:17:00.110><c> called</c>

00:17:00.340 --> 00:17:00.350 align:start position:0%
Rebels reader and I think it's called
 

00:17:00.350 --> 00:17:03.189 align:start position:0%
Rebels reader and I think it's called
ripple<00:17:00.620><c> input</c><00:17:01.100><c> stream</c><00:17:01.630><c> so</c><00:17:02.630><c> we</c><00:17:02.720><c> can</c><00:17:02.810><c> do</c><00:17:02.899><c> Ruppel</c>

00:17:03.189 --> 00:17:03.199 align:start position:0%
ripple input stream so we can do Ruppel
 

00:17:03.199 --> 00:17:04.660 align:start position:0%
ripple input stream so we can do Ruppel
input<00:17:03.500><c> stream</c>

00:17:04.660 --> 00:17:04.670 align:start position:0%
input stream
 

00:17:04.670 --> 00:17:07.570 align:start position:0%
input stream
right<00:17:04.820><c> each</c><00:17:05.650><c> which</c><00:17:06.650><c> will</c><00:17:06.830><c> take</c><00:17:06.950><c> a</c><00:17:07.010><c> sequence</c><00:17:07.490><c> of</c>

00:17:07.570 --> 00:17:07.580 align:start position:0%
right each which will take a sequence of
 

00:17:07.580 --> 00:17:10.150 align:start position:0%
right each which will take a sequence of
characters<00:17:07.880><c> and</c><00:17:08.420><c> we</c><00:17:09.320><c> can</c><00:17:09.440><c> send</c><00:17:09.710><c> it</c><00:17:09.860><c> just</c><00:17:09.890><c> the</c>

00:17:10.150 --> 00:17:10.160 align:start position:0%
characters and we can send it just the
 

00:17:10.160 --> 00:17:19.000 align:start position:0%
characters and we can send it just the
number<00:17:10.400><c> one</c><00:17:10.700><c> two</c><00:17:10.820><c> three</c><00:17:12.640><c> cool</c><00:17:17.800><c> the</c><00:17:18.800><c> killer</c>

00:17:19.000 --> 00:17:19.010 align:start position:0%
number one two three cool the killer
 

00:17:19.010 --> 00:17:21.040 align:start position:0%
number one two three cool the killer
feature<00:17:19.220><c> of</c><00:17:19.610><c> the</c><00:17:19.940><c> jackal</c><00:17:20.240><c> ripple</c><00:17:20.570><c> is</c><00:17:20.720><c> that</c>

00:17:21.040 --> 00:17:21.050 align:start position:0%
feature of the jackal ripple is that
 

00:17:21.050 --> 00:17:25.210 align:start position:0%
feature of the jackal ripple is that
it's<00:17:21.220><c> incremental</c><00:17:22.220><c> so</c><00:17:23.110><c> when</c><00:17:24.110><c> we</c><00:17:24.230><c> sent</c><00:17:25.130><c> the</c>

00:17:25.210 --> 00:17:25.220 align:start position:0%
it's incremental so when we sent the
 

00:17:25.220 --> 00:17:27.640 align:start position:0%
it's incremental so when we sent the
characters<00:17:25.550><c> one</c><00:17:25.760><c> two</c><00:17:25.910><c> three</c><00:17:26.240><c> with</c><00:17:26.780><c> a</c><00:17:26.810><c> terminal</c>

00:17:27.640 --> 00:17:27.650 align:start position:0%
characters one two three with a terminal
 

00:17:27.650 --> 00:17:31.090 align:start position:0%
characters one two three with a terminal
space<00:17:28.190><c> it</c><00:17:29.000><c> read</c><00:17:29.270><c> the</c><00:17:29.300><c> token</c><00:17:29.780><c> but</c><00:17:30.380><c> because</c><00:17:30.860><c> this</c>

00:17:31.090 --> 00:17:31.100 align:start position:0%
space it read the token but because this
 

00:17:31.100 --> 00:17:34.030 align:start position:0%
space it read the token but because this
is<00:17:31.160><c> an</c><00:17:31.370><c> incremental</c><00:17:31.880><c> parser</c><00:17:32.410><c> we</c><00:17:33.410><c> can</c><00:17:33.590><c> send</c><00:17:33.860><c> it</c>

00:17:34.030 --> 00:17:34.040 align:start position:0%
is an incremental parser we can send it
 

00:17:34.040 --> 00:17:39.160 align:start position:0%
is an incremental parser we can send it
characters<00:17:34.640><c> one</c><00:17:35.600><c> at</c><00:17:35.720><c> a</c><00:17:35.810><c> time</c><00:17:37.180><c> and</c><00:17:38.180><c> it</c><00:17:39.080><c> will</c>

00:17:39.160 --> 00:17:39.170 align:start position:0%
characters one at a time and it will
 

00:17:39.170 --> 00:17:43.990 align:start position:0%
characters one at a time and it will
digest<00:17:39.740><c> them</c><00:17:39.980><c> and</c><00:17:40.190><c> only</c><00:17:41.680><c> read</c><00:17:42.700><c> compile</c><00:17:43.700><c> and</c>

00:17:43.990 --> 00:17:44.000 align:start position:0%
digest them and only read compile and
 

00:17:44.000 --> 00:17:47.080 align:start position:0%
digest them and only read compile and
evaluate<00:17:44.630><c> when</c><00:17:45.470><c> an</c><00:17:45.680><c> entire</c><00:17:45.920><c> token</c><00:17:46.430><c> or</c><00:17:46.940><c> an</c>

00:17:47.080 --> 00:17:47.090 align:start position:0%
evaluate when an entire token or an
 

00:17:47.090 --> 00:17:52.510 align:start position:0%
evaluate when an entire token or an
entire<00:17:47.390><c> data</c><00:17:47.930><c> has</c><00:17:48.500><c> been</c><00:17:48.770><c> accumulated</c><00:17:50.470><c> a</c><00:17:51.520><c> list</c>

00:17:52.510 --> 00:17:52.520 align:start position:0%
entire data has been accumulated a list
 

00:17:52.520 --> 00:17:54.010 align:start position:0%
entire data has been accumulated a list
is<00:17:52.700><c> of</c><00:17:52.820><c> course</c><00:17:53.060><c> the</c><00:17:53.240><c> best</c><00:17:53.360><c> demonstration</c><00:17:53.930><c> of</c>

00:17:54.010 --> 00:17:54.020 align:start position:0%
is of course the best demonstration of
 

00:17:54.020 --> 00:17:58.570 align:start position:0%
is of course the best demonstration of
this<00:17:54.140><c> so</c><00:17:55.450><c> make</c><00:17:56.450><c> a</c><00:17:56.480><c> list</c><00:17:56.750><c> here</c><00:17:57.080><c> with</c><00:17:57.680><c> just</c><00:17:57.980><c> one</c>

00:17:58.570 --> 00:17:58.580 align:start position:0%
this so make a list here with just one
 

00:17:58.580 --> 00:18:01.720 align:start position:0%
this so make a list here with just one
and<00:17:58.760><c> two</c><00:17:58.910><c> I'd</c><00:17:59.210><c> better</c><00:17:59.480><c> quote</c><00:17:59.720><c> it</c><00:18:00.430><c> and</c><00:18:01.430><c> let's</c>

00:18:01.720 --> 00:18:01.730 align:start position:0%
and two I'd better quote it and let's
 

00:18:01.730 --> 00:18:06.880 align:start position:0%
and two I'd better quote it and let's
send<00:18:01.970><c> in</c><00:18:02.180><c> three</c><00:18:03.070><c> see</c><00:18:04.070><c> the</c><00:18:04.220><c> effect</c><00:18:05.140><c> now</c><00:18:06.140><c> we</c><00:18:06.650><c> sent</c>

00:18:06.880 --> 00:18:06.890 align:start position:0%
send in three see the effect now we sent
 

00:18:06.890 --> 00:18:09.240 align:start position:0%
send in three see the effect now we sent
in<00:18:07.070><c> a</c><00:18:07.220><c> list</c><00:18:07.520><c> which</c><00:18:07.640><c> you</c><00:18:07.790><c> can</c><00:18:08.030><c> see</c><00:18:08.330><c> gets</c>

00:18:09.240 --> 00:18:09.250 align:start position:0%
in a list which you can see gets
 

00:18:09.250 --> 00:18:12.160 align:start position:0%
in a list which you can see gets
evaluated<00:18:10.250><c> and</c><00:18:10.760><c> compiled</c><00:18:11.090><c> or</c><00:18:11.480><c> compiled</c><00:18:11.990><c> and</c>

00:18:12.160 --> 00:18:12.170 align:start position:0%
evaluated and compiled or compiled and
 

00:18:12.170 --> 00:18:16.750 align:start position:0%
evaluated and compiled or compiled and
evaluated<00:18:12.680><c> as</c><00:18:12.800><c> a</c><00:18:13.130><c> cons</c><00:18:13.480><c> type</c><00:18:14.480><c> object</c><00:18:14.900><c> and</c><00:18:15.760><c> we</c>

00:18:16.750 --> 00:18:16.760 align:start position:0%
evaluated as a cons type object and we
 

00:18:16.760 --> 00:18:21.150 align:start position:0%
evaluated as a cons type object and we
can<00:18:17.020><c> inspect</c><00:18:18.020><c> that</c><00:18:18.320><c> object</c><00:18:18.860><c> using</c><00:18:19.460><c> the</c>

00:18:21.150 --> 00:18:21.160 align:start position:0%
can inspect that object using the
 

00:18:21.160 --> 00:18:24.130 align:start position:0%
can inspect that object using the
JavaScript<00:18:22.300><c> object</c><00:18:23.300><c> inspector</c><00:18:23.510><c> so</c><00:18:23.930><c> you</c><00:18:24.020><c> can</c>

00:18:24.130 --> 00:18:24.140 align:start position:0%
JavaScript object inspector so you can
 

00:18:24.140 --> 00:18:25.840 align:start position:0%
JavaScript object inspector so you can
see<00:18:24.260><c> it</c><00:18:24.350><c> has</c><00:18:24.500><c> two</c><00:18:24.680><c> slots</c><00:18:24.920><c> car</c><00:18:25.340><c> and</c><00:18:25.640><c> cutter</c>

00:18:25.840 --> 00:18:25.850 align:start position:0%
see it has two slots car and cutter
 

00:18:25.850 --> 00:18:31.030 align:start position:0%
see it has two slots car and cutter
cutter<00:18:26.840><c> is</c><00:18:26.960><c> a</c><00:18:26.990><c> cons</c><00:18:27.790><c> with</c><00:18:28.790><c> 23</c><00:18:29.720><c> and</c><00:18:29.870><c> then</c><00:18:30.320><c> the</c>

00:18:31.030 --> 00:18:31.040 align:start position:0%
cutter is a cons with 23 and then the
 

00:18:31.040 --> 00:18:34.000 align:start position:0%
cutter is a cons with 23 and then the
car<00:18:31.220><c> of</c><00:18:31.370><c> that</c><00:18:32.350><c> excuse</c><00:18:33.350><c> me</c><00:18:33.380><c> the</c><00:18:33.560><c> cutter</c><00:18:33.710><c> of</c><00:18:33.860><c> that</c>

00:18:34.000 --> 00:18:34.010 align:start position:0%
car of that excuse me the cutter of that
 

00:18:34.010 --> 00:18:36.700 align:start position:0%
car of that excuse me the cutter of that
second<00:18:34.430><c> cons</c><00:18:34.580><c> is</c><00:18:34.850><c> null</c><00:18:35.090><c> this</c><00:18:35.750><c> is</c><00:18:35.870><c> a</c><00:18:35.960><c> proper</c>

00:18:36.700 --> 00:18:36.710 align:start position:0%
second cons is null this is a proper
 

00:18:36.710 --> 00:18:40.600 align:start position:0%
second cons is null this is a proper
list<00:18:38.140><c> we</c><00:18:39.140><c> can</c><00:18:39.230><c> also</c><00:18:39.380><c> read</c><00:18:39.650><c> symbols</c><00:18:39.950><c> so</c><00:18:40.430><c> let</c><00:18:40.550><c> me</c>

00:18:40.600 --> 00:18:40.610 align:start position:0%
list we can also read symbols so let me
 

00:18:40.610 --> 00:18:42.640 align:start position:0%
list we can also read symbols so let me
read<00:18:40.820><c> a</c><00:18:40.850><c> symbol</c><00:18:41.120><c> and</c><00:18:41.540><c> the</c><00:18:41.780><c> symbol</c><00:18:42.140><c> can</c><00:18:42.320><c> be</c><00:18:42.470><c> our</c>

00:18:42.640 --> 00:18:42.650 align:start position:0%
read a symbol and the symbol can be our
 

00:18:42.650 --> 00:18:50.130 align:start position:0%
read a symbol and the symbol can be our
entry<00:18:42.920><c> point</c><00:18:43.490><c> into</c><00:18:45.700><c> the</c><00:18:48.520><c> package</c><00:18:49.520><c> system</c><00:18:49.730><c> oh</c>

00:18:50.130 --> 00:18:50.140 align:start position:0%
entry point into the package system oh
 

00:18:50.140 --> 00:18:53.140 align:start position:0%
entry point into the package system oh
of<00:18:51.140><c> course</c><00:18:51.290><c> it's</c><00:18:51.770><c> not</c><00:18:51.950><c> done</c><00:18:52.730><c> reading</c><00:18:52.910><c> that</c>

00:18:53.140 --> 00:18:53.150 align:start position:0%
of course it's not done reading that
 

00:18:53.150 --> 00:18:54.220 align:start position:0%
of course it's not done reading that
symbol<00:18:53.420><c> because</c><00:18:53.570><c> I</c><00:18:53.630><c> have</c><00:18:53.750><c> to</c><00:18:53.840><c> send</c><00:18:53.960><c> it</c><00:18:54.080><c> some</c>

00:18:54.220 --> 00:18:54.230 align:start position:0%
symbol because I have to send it some
 

00:18:54.230 --> 00:18:56.800 align:start position:0%
symbol because I have to send it some
white<00:18:54.380><c> space</c><00:18:54.880><c> but</c><00:18:55.880><c> when</c><00:18:56.030><c> it</c><00:18:56.150><c> did</c><00:18:56.330><c> you</c><00:18:56.630><c> can</c><00:18:56.660><c> see</c>

00:18:56.800 --> 00:18:56.810 align:start position:0%
white space but when it did you can see
 

00:18:56.810 --> 00:18:59.140 align:start position:0%
white space but when it did you can see
we<00:18:57.020><c> get</c><00:18:57.110><c> a</c><00:18:57.170><c> symbol</c><00:18:57.470><c> back</c><00:18:57.650><c> and</c><00:18:58.040><c> you</c><00:18:58.850><c> can</c><00:18:59.000><c> see</c>

00:18:59.140 --> 00:18:59.150 align:start position:0%
we get a symbol back and you can see
 

00:18:59.150 --> 00:19:00.310 align:start position:0%
we get a symbol back and you can see
that<00:18:59.330><c> there's</c><00:18:59.600><c> a</c><00:18:59.630><c> lot</c><00:18:59.780><c> more</c><00:18:59.900><c> going</c><00:19:00.080><c> on</c><00:19:00.260><c> with</c>

00:19:00.310 --> 00:19:00.320 align:start position:0%
that there's a lot more going on with
 

00:19:00.320 --> 00:19:03.550 align:start position:0%
that there's a lot more going on with
symbols<00:19:00.770><c> than</c><00:19:01.010><c> with</c><00:19:01.190><c> cons</c><00:19:01.670><c> as'</c><00:19:02.050><c> plus</c><00:19:03.050><c> here</c><00:19:03.380><c> is</c>

00:19:03.550 --> 00:19:03.560 align:start position:0%
symbols than with cons as' plus here is
 

00:19:03.560 --> 00:19:05.830 align:start position:0%
symbols than with cons as' plus here is
refers<00:19:04.460><c> to</c><00:19:04.490><c> the</c><00:19:04.730><c> plus</c><00:19:04.940><c> from</c><00:19:05.150><c> the</c><00:19:05.360><c> Common</c><00:19:05.810><c> Lisp</c>

00:19:05.830 --> 00:19:05.840 align:start position:0%
refers to the plus from the Common Lisp
 

00:19:05.840 --> 00:19:10.000 align:start position:0%
refers to the plus from the Common Lisp
user<00:19:06.290><c> package</c><00:19:08.080><c> so</c><00:19:09.080><c> you</c><00:19:09.290><c> can</c><00:19:09.530><c> see</c><00:19:09.710><c> that</c><00:19:09.920><c> we're</c>

00:19:10.000 --> 00:19:10.010 align:start position:0%
user package so you can see that we're
 

00:19:10.010 --> 00:19:12.880 align:start position:0%
user package so you can see that we're
in<00:19:10.100><c> an</c><00:19:10.220><c> environment</c><00:19:10.760><c> where</c><00:19:11.170><c> the</c><00:19:12.170><c> CL</c><00:19:12.500><c> package</c>

00:19:12.880 --> 00:19:12.890 align:start position:0%
in an environment where the CL package
 

00:19:12.890 --> 00:19:15.480 align:start position:0%
in an environment where the CL package
has<00:19:13.040><c> not</c><00:19:13.190><c> been</c><00:19:13.430><c> referred</c>

00:19:15.480 --> 00:19:15.490 align:start position:0%
has not been referred
 

00:19:15.490 --> 00:19:18.520 align:start position:0%
has not been referred
you<00:19:16.490><c> can</c><00:19:16.640><c> see</c><00:19:16.790><c> some</c><00:19:17.030><c> metadata</c><00:19:17.780><c> here</c><00:19:18.230><c> that's</c>

00:19:18.520 --> 00:19:18.530 align:start position:0%
you can see some metadata here that's
 

00:19:18.530 --> 00:19:20.140 align:start position:0%
you can see some metadata here that's
interesting<00:19:18.680><c> to</c><00:19:19.160><c> the</c><00:19:19.280><c> the</c><00:19:19.520><c> runtime</c><00:19:19.910><c> like</c>

00:19:20.140 --> 00:19:20.150 align:start position:0%
interesting to the the runtime like
 

00:19:20.150 --> 00:19:21.790 align:start position:0%
interesting to the the runtime like
whether<00:19:20.300><c> it's</c><00:19:20.480><c> constant</c><00:19:20.900><c> a</c><00:19:20.990><c> macro</c><00:19:21.350><c> special</c>

00:19:21.790 --> 00:19:21.800 align:start position:0%
whether it's constant a macro special
 

00:19:21.800 --> 00:19:26.260 align:start position:0%
whether it's constant a macro special
variable<00:19:22.870><c> and</c><00:19:24.220><c> yeah</c><00:19:25.220><c> you</c><00:19:25.460><c> can</c><00:19:25.580><c> see</c><00:19:25.730><c> the</c><00:19:26.030><c> stack</c>

00:19:26.260 --> 00:19:26.270 align:start position:0%
variable and yeah you can see the stack
 

00:19:26.270 --> 00:19:27.520 align:start position:0%
variable and yeah you can see the stack
field<00:19:26.570><c> here</c><00:19:26.810><c> this</c><00:19:26.990><c> has</c><00:19:27.140><c> to</c><00:19:27.170><c> do</c><00:19:27.410><c> with</c>

00:19:27.520 --> 00:19:27.530 align:start position:0%
field here this has to do with
 

00:19:27.530 --> 00:19:32.530 align:start position:0%
field here this has to do with
supporting<00:19:27.860><c> dynamic</c><00:19:28.580><c> binding</c><00:19:30.070><c> okay</c><00:19:31.070><c> so</c><00:19:31.540><c> that</c>

00:19:32.530 --> 00:19:32.540 align:start position:0%
supporting dynamic binding okay so that
 

00:19:32.540 --> 00:19:34.390 align:start position:0%
supporting dynamic binding okay so that
actually<00:19:33.020><c> wasn't</c><00:19:33.290><c> as</c><00:19:33.500><c> interesting</c><00:19:33.950><c> as</c><00:19:34.100><c> I</c><00:19:34.250><c> had</c>

00:19:34.390 --> 00:19:34.400 align:start position:0%
actually wasn't as interesting as I had
 

00:19:34.400 --> 00:19:36.700 align:start position:0%
actually wasn't as interesting as I had
hoped<00:19:34.670><c> so</c><00:19:35.030><c> let's</c><00:19:35.690><c> use</c><00:19:35.840><c> a</c><00:19:35.870><c> different</c><00:19:35.990><c> runtime</c>

00:19:36.700 --> 00:19:36.710 align:start position:0%
hoped so let's use a different runtime
 

00:19:36.710 --> 00:19:38.650 align:start position:0%
hoped so let's use a different runtime
facility<00:19:37.190><c> to</c><00:19:37.370><c> look</c><00:19:37.610><c> at</c><00:19:37.760><c> the</c><00:19:37.970><c> all</c><00:19:38.330><c> of</c><00:19:38.570><c> the</c>

00:19:38.650 --> 00:19:38.660 align:start position:0%
facility to look at the all of the
 

00:19:38.660 --> 00:19:40.870 align:start position:0%
facility to look at the all of the
packages<00:19:39.110><c> that</c><00:19:39.140><c> are</c><00:19:39.320><c> loaded</c><00:19:39.680><c> so</c><00:19:40.460><c> I</c><00:19:40.490><c> think</c><00:19:40.610><c> I</c>

00:19:40.870 --> 00:19:40.880 align:start position:0%
packages that are loaded so I think I
 

00:19:40.880 --> 00:19:48.820 align:start position:0%
packages that are loaded so I think I
can<00:19:41.030><c> do</c><00:19:42.400><c> packages</c><00:19:46.450><c> so</c><00:19:47.450><c> that's</c><00:19:47.780><c> a</c><00:19:47.900><c> JavaScript</c>

00:19:48.820 --> 00:19:48.830 align:start position:0%
can do packages so that's a JavaScript
 

00:19:48.830 --> 00:19:51.340 align:start position:0%
can do packages so that's a JavaScript
global<00:19:49.190><c> variable</c><00:19:49.610><c> called</c><00:19:49.640><c> all</c><00:19:50.240><c> caps</c><00:19:50.690><c> packages</c>

00:19:51.340 --> 00:19:51.350 align:start position:0%
global variable called all caps packages
 

00:19:51.350 --> 00:19:56.380 align:start position:0%
global variable called all caps packages
and<00:19:51.740><c> you</c><00:19:52.610><c> can</c><00:19:52.760><c> see</c><00:19:53.000><c> that</c><00:19:53.510><c> it</c><00:19:53.630><c> contains</c><00:19:55.390><c> many</c>

00:19:56.380 --> 00:19:56.390 align:start position:0%
and you can see that it contains many
 

00:19:56.390 --> 00:19:58.750 align:start position:0%
and you can see that it contains many
entries<00:19:56.900><c> including</c><00:19:57.440><c> jackal</c><00:19:57.860><c> jeaious</c><00:19:58.250><c> Common</c>

00:19:58.750 --> 00:19:58.760 align:start position:0%
entries including jackal jeaious Common
 

00:19:58.760 --> 00:20:01.540 align:start position:0%
entries including jackal jeaious Common
Lisp<00:19:58.790><c> and</c><00:19:59.210><c> then</c><00:19:59.360><c> some</c><00:19:59.570><c> aliases</c><00:20:00.350><c> that</c><00:20:01.220><c> keyword</c>

00:20:01.540 --> 00:20:01.550 align:start position:0%
Lisp and then some aliases that keyword
 

00:20:01.550 --> 00:20:04.030 align:start position:0%
Lisp and then some aliases that keyword
package<00:20:01.940><c> of</c><00:20:02.060><c> course</c><00:20:02.270><c> let's</c><00:20:03.200><c> drill</c><00:20:03.530><c> into</c><00:20:03.770><c> the</c>

00:20:04.030 --> 00:20:04.040 align:start position:0%
package of course let's drill into the
 

00:20:04.040 --> 00:20:09.010 align:start position:0%
package of course let's drill into the
common<00:20:04.340><c> list</c><00:20:04.520><c> package</c><00:20:07.030><c> well</c><00:20:08.030><c> you</c><00:20:08.300><c> can</c><00:20:08.450><c> see</c><00:20:08.750><c> the</c>

00:20:09.010 --> 00:20:09.020 align:start position:0%
common list package well you can see the
 

00:20:09.020 --> 00:20:12.640 align:start position:0%
common list package well you can see the
list<00:20:09.200><c> of</c><00:20:09.350><c> exports</c><00:20:09.920><c> and</c><00:20:11.050><c> all</c><00:20:12.050><c> of</c><00:20:12.230><c> the</c><00:20:12.320><c> symbols</c>

00:20:12.640 --> 00:20:12.650 align:start position:0%
list of exports and all of the symbols
 

00:20:12.650 --> 00:20:16.420 align:start position:0%
list of exports and all of the symbols
that<00:20:12.770><c> are</c><00:20:12.830><c> interned</c><00:20:13.190><c> in</c><00:20:13.340><c> there</c><00:20:14.770><c> so</c><00:20:15.770><c> if</c><00:20:15.890><c> we</c><00:20:16.040><c> can</c>

00:20:16.420 --> 00:20:16.430 align:start position:0%
that are interned in there so if we can
 

00:20:16.430 --> 00:20:24.420 align:start position:0%
that are interned in there so if we can
find<00:20:16.610><c> a</c><00:20:16.730><c> symbol</c><00:20:17.090><c> that's</c><00:20:17.270><c> a</c><00:20:17.420><c> function</c><00:20:19.030><c> like</c><00:20:22.030><c> not</c>

00:20:24.420 --> 00:20:24.430 align:start position:0%
find a symbol that's a function like not
 

00:20:24.430 --> 00:20:27.760 align:start position:0%
find a symbol that's a function like not
okay<00:20:25.430><c> we</c><00:20:25.910><c> can</c><00:20:26.030><c> see</c><00:20:26.120><c> that's</c><00:20:26.240><c> a</c><00:20:26.390><c> value</c><00:20:26.900><c> the</c><00:20:27.560><c> list</c>

00:20:27.760 --> 00:20:27.770 align:start position:0%
okay we can see that's a value the list
 

00:20:27.770 --> 00:20:29.530 align:start position:0%
okay we can see that's a value the list
symbol<00:20:28.070><c> is</c><00:20:28.250><c> the</c><00:20:28.370><c> value</c><00:20:28.730><c> and</c><00:20:29.030><c> it</c><00:20:29.150><c> has</c><00:20:29.180><c> an</c><00:20:29.390><c> F</c>

00:20:29.530 --> 00:20:29.540 align:start position:0%
symbol is the value and it has an F
 

00:20:29.540 --> 00:20:31.780 align:start position:0%
symbol is the value and it has an F
value<00:20:29.960><c> so</c><00:20:30.260><c> this</c><00:20:30.980><c> is</c><00:20:31.190><c> a</c><00:20:31.220><c> symbol</c><00:20:31.640><c> with</c><00:20:31.760><c> a</c>

00:20:31.780 --> 00:20:31.790 align:start position:0%
value so this is a symbol with a
 

00:20:31.790 --> 00:20:36.460 align:start position:0%
value so this is a symbol with a
function<00:20:32.240><c> slot</c><00:20:32.540><c> of</c><00:20:33.040><c> or</c><00:20:34.040><c> an</c><00:20:34.130><c> F</c><00:20:34.250><c> definition</c><00:20:35.320><c> of</c><00:20:36.320><c> a</c>

00:20:36.460 --> 00:20:36.470 align:start position:0%
function slot of or an F definition of a
 

00:20:36.470 --> 00:20:38.830 align:start position:0%
function slot of or an F definition of a
particular<00:20:36.770><c> function</c><00:20:37.340><c> and</c><00:20:37.460><c> that</c><00:20:38.420><c> function</c><00:20:38.480><c> is</c>

00:20:38.830 --> 00:20:38.840 align:start position:0%
particular function and that function is
 

00:20:38.840 --> 00:20:41.560 align:start position:0%
particular function and that function is
a<00:20:38.870><c> JavaScript</c><00:20:39.350><c> function</c><00:20:39.470><c> and</c><00:20:40.210><c> so</c><00:20:41.210><c> we</c><00:20:41.450><c> could</c>

00:20:41.560 --> 00:20:41.570 align:start position:0%
a JavaScript function and so we could
 

00:20:41.570 --> 00:20:44.710 align:start position:0%
a JavaScript function and so we could
actually<00:20:41.960><c> right</c><00:20:42.470><c> click</c><00:20:42.500><c> here</c><00:20:43.070><c> to</c><00:20:43.520><c> store</c><00:20:44.510><c> as</c>

00:20:44.710 --> 00:20:44.720 align:start position:0%
actually right click here to store as
 

00:20:44.720 --> 00:20:47.050 align:start position:0%
actually right click here to store as
global<00:20:45.050><c> variable</c><00:20:45.500><c> and</c><00:20:45.820><c> now</c><00:20:46.820><c> in</c><00:20:46.970><c> the</c>

00:20:47.050 --> 00:20:47.060 align:start position:0%
global variable and now in the
 

00:20:47.060 --> 00:20:48.610 align:start position:0%
global variable and now in the
JavaScript<00:20:47.570><c> environment</c><00:20:47.690><c> we</c><00:20:48.080><c> have</c><00:20:48.200><c> a</c><00:20:48.230><c> handle</c>

00:20:48.610 --> 00:20:48.620 align:start position:0%
JavaScript environment we have a handle
 

00:20:48.620 --> 00:20:50.710 align:start position:0%
JavaScript environment we have a handle
to<00:20:48.770><c> this</c><00:20:48.890><c> function</c><00:20:49.100><c> and</c><00:20:49.550><c> you</c><00:20:50.210><c> can</c><00:20:50.330><c> see</c><00:20:50.480><c> it's</c><00:20:50.630><c> a</c>

00:20:50.710 --> 00:20:50.720 align:start position:0%
to this function and you can see it's a
 

00:20:50.720 --> 00:20:55.300 align:start position:0%
to this function and you can see it's a
compiled<00:20:51.080><c> function</c><00:20:52.270><c> and</c><00:20:53.270><c> let's</c><00:20:53.450><c> call</c><00:20:53.660><c> it</c><00:20:54.310><c> so</c>

00:20:55.300 --> 00:20:55.310 align:start position:0%
compiled function and let's call it so
 

00:20:55.310 --> 00:20:57.970 align:start position:0%
compiled function and let's call it so
if<00:20:55.400><c> we</c><00:20:55.490><c> call</c><00:20:55.610><c> it</c><00:20:55.730><c> with</c><00:20:55.850><c> null</c><00:20:56.440><c> it</c><00:20:57.440><c> returns</c><00:20:57.740><c> true</c>

00:20:57.970 --> 00:20:57.980 align:start position:0%
if we call it with null it returns true
 

00:20:57.980 --> 00:21:02.860 align:start position:0%
if we call it with null it returns true
if<00:20:58.280><c> we</c><00:20:58.670><c> call</c><00:20:59.150><c> it</c><00:20:59.300><c> with</c><00:20:59.390><c> true</c><00:21:00.850><c> returns</c><00:21:01.850><c> null</c><00:21:02.030><c> so</c>

00:21:02.860 --> 00:21:02.870 align:start position:0%
if we call it with true returns null so
 

00:21:02.870 --> 00:21:04.240 align:start position:0%
if we call it with true returns null so
all<00:21:02.990><c> of</c><00:21:03.110><c> this</c><00:21:03.170><c> is</c><00:21:03.320><c> to</c><00:21:03.440><c> demonstrate</c><00:21:03.950><c> that</c>

00:21:04.240 --> 00:21:04.250 align:start position:0%
all of this is to demonstrate that
 

00:21:04.250 --> 00:21:05.950 align:start position:0%
all of this is to demonstrate that
Jackal<00:21:04.850><c> functions</c><00:21:05.240><c> are</c><00:21:05.390><c> JavaScript</c>

00:21:05.950 --> 00:21:05.960 align:start position:0%
Jackal functions are JavaScript
 

00:21:05.960 --> 00:21:08.620 align:start position:0%
Jackal functions are JavaScript
functions<00:21:06.370><c> you</c><00:21:07.370><c> can</c><00:21:07.520><c> see</c><00:21:07.670><c> here</c><00:21:07.850><c> that</c><00:21:07.970><c> the</c>

00:21:08.620 --> 00:21:08.630 align:start position:0%
functions you can see here that the
 

00:21:08.630 --> 00:21:10.120 align:start position:0%
functions you can see here that the
Jackal<00:21:08.930><c> function</c><00:21:09.260><c> does</c><00:21:09.410><c> an</c><00:21:09.530><c> argument</c><00:21:09.950><c> length</c>

00:21:10.120 --> 00:21:10.130 align:start position:0%
Jackal function does an argument length
 

00:21:10.130 --> 00:21:12.280 align:start position:0%
Jackal function does an argument length
checking<00:21:10.550><c> which</c><00:21:11.210><c> javascript</c><00:21:11.750><c> does</c><00:21:11.840><c> not</c><00:21:11.960><c> do</c><00:21:12.140><c> by</c>

00:21:12.280 --> 00:21:12.290 align:start position:0%
checking which javascript does not do by
 

00:21:12.290 --> 00:21:14.920 align:start position:0%
checking which javascript does not do by
default<00:21:13.720><c> okay</c>

00:21:14.920 --> 00:21:14.930 align:start position:0%
default okay
 

00:21:14.930 --> 00:21:16.960 align:start position:0%
default okay
enough<00:21:15.260><c> tinkering</c><00:21:15.740><c> in</c><00:21:15.860><c> the</c><00:21:15.920><c> browser</c><00:21:16.190><c> let's</c><00:21:16.610><c> do</c>

00:21:16.960 --> 00:21:16.970 align:start position:0%
enough tinkering in the browser let's do
 

00:21:16.970 --> 00:21:18.700 align:start position:0%
enough tinkering in the browser let's do
some<00:21:17.180><c> stuff</c><00:21:17.420><c> from</c><00:21:17.570><c> Emacs</c><00:21:17.990><c> because</c><00:21:18.380><c> it's</c><00:21:18.530><c> not</c><00:21:18.680><c> a</c>

00:21:18.700 --> 00:21:18.710 align:start position:0%
some stuff from Emacs because it's not a
 

00:21:18.710 --> 00:21:21.490 align:start position:0%
some stuff from Emacs because it's not a
real<00:21:18.770><c> Lisp</c><00:21:19.160><c> until</c><00:21:19.870><c> doing</c><00:21:20.870><c> stuff</c><00:21:21.050><c> for</c><00:21:21.200><c> me</c><00:21:21.290><c> backs</c>

00:21:21.490 --> 00:21:21.500 align:start position:0%
real Lisp until doing stuff for me backs
 

00:21:21.500 --> 00:21:22.670 align:start position:0%
real Lisp until doing stuff for me backs
right

00:21:22.670 --> 00:21:22.680 align:start position:0%
right
 

00:21:22.680 --> 00:21:27.470 align:start position:0%
right
so<00:21:23.240><c> flipping</c><00:21:24.240><c> over</c><00:21:24.360><c> to</c><00:21:24.510><c> Emax</c><00:21:24.870><c> here</c><00:21:26.300><c> these</c><00:21:27.300><c> are</c>

00:21:27.470 --> 00:21:27.480 align:start position:0%
so flipping over to Emax here these are
 

00:21:27.480 --> 00:21:29.990 align:start position:0%
so flipping over to Emax here these are
the<00:21:27.600><c> jackal</c><00:21:28.350><c> tests</c><00:21:28.800><c> actually</c><00:21:29.100><c> all</c><00:21:29.220><c> this</c><00:21:29.520><c> this</c>

00:21:29.990 --> 00:21:30.000 align:start position:0%
the jackal tests actually all this this
 

00:21:30.000 --> 00:21:35.030 align:start position:0%
the jackal tests actually all this this
test<00:21:30.390><c> results</c><00:21:31.020><c> screen</c><00:21:31.170><c> here</c><00:21:31.500><c> is</c><00:21:31.850><c> run</c><00:21:33.650><c> as</c><00:21:34.650><c> a</c>

00:21:35.030 --> 00:21:35.040 align:start position:0%
test results screen here is run as a
 

00:21:35.040 --> 00:21:37.040 align:start position:0%
test results screen here is run as a
consequence<00:21:35.520><c> of</c><00:21:35.670><c> this</c><00:21:35.820><c> code</c><00:21:36.030><c> running</c><00:21:36.270><c> I</c><00:21:36.540><c> just</c>

00:21:37.040 --> 00:21:37.050 align:start position:0%
consequence of this code running I just
 

00:21:37.050 --> 00:21:38.030 align:start position:0%
consequence of this code running I just
have<00:21:37.170><c> this</c><00:21:37.260><c> open</c><00:21:37.530><c> there</c><00:21:37.620><c> just</c><00:21:37.740><c> to</c><00:21:37.830><c> show</c><00:21:37.980><c> some</c>

00:21:38.030 --> 00:21:38.040 align:start position:0%
have this open there just to show some
 

00:21:38.040 --> 00:21:40.190 align:start position:0%
have this open there just to show some
jackal<00:21:38.460><c> code</c><00:21:38.610><c> but</c><00:21:39.270><c> we</c><00:21:39.420><c> want</c><00:21:39.660><c> to</c><00:21:39.750><c> start</c><00:21:40.020><c> a</c>

00:21:40.190 --> 00:21:40.200 align:start position:0%
jackal code but we want to start a
 

00:21:40.200 --> 00:21:42.530 align:start position:0%
jackal code but we want to start a
ripple<00:21:40.860><c> and</c><00:21:41.040><c> the</c><00:21:41.730><c> way</c><00:21:41.850><c> we</c><00:21:41.970><c> can</c><00:21:42.120><c> do</c><00:21:42.240><c> that</c><00:21:42.360><c> is</c>

00:21:42.530 --> 00:21:42.540 align:start position:0%
ripple and the way we can do that is
 

00:21:42.540 --> 00:21:44.270 align:start position:0%
ripple and the way we can do that is
with<00:21:42.690><c> the</c><00:21:42.900><c> jackal</c><00:21:43.350><c> tool</c><00:21:43.590><c> that</c><00:21:43.830><c> ships</c><00:21:44.070><c> with</c><00:21:44.250><c> the</c>

00:21:44.270 --> 00:21:44.280 align:start position:0%
with the jackal tool that ships with the
 

00:21:44.280 --> 00:21:47.210 align:start position:0%
with the jackal tool that ships with the
jackal<00:21:44.700><c> distribution</c><00:21:45.450><c> currently</c><00:21:46.070><c> so</c><00:21:47.070><c> this</c>

00:21:47.210 --> 00:21:47.220 align:start position:0%
jackal distribution currently so this
 

00:21:47.220 --> 00:21:49.850 align:start position:0%
jackal distribution currently so this
browser<00:21:47.460><c> on</c><00:21:47.640><c> the</c><00:21:47.670><c> right</c><00:21:47.850><c> hand</c><00:21:48.000><c> side</c><00:21:48.090><c> is</c><00:21:48.860><c> I</c>

00:21:49.850 --> 00:21:49.860 align:start position:0%
browser on the right hand side is I
 

00:21:49.860 --> 00:21:53.630 align:start position:0%
browser on the right hand side is I
started<00:21:50.760><c> it</c><00:21:50.910><c> with</c><00:21:51.060><c> the</c><00:21:51.090><c> proper</c><00:21:52.430><c> command</c><00:21:53.430><c> line</c>

00:21:53.630 --> 00:21:53.640 align:start position:0%
started it with the proper command line
 

00:21:53.640 --> 00:21:57.380 align:start position:0%
started it with the proper command line
flag<00:21:53.970><c> to</c><00:21:54.810><c> turn</c><00:21:55.080><c> on</c><00:21:55.320><c> remote</c><00:21:55.920><c> debugging</c><00:21:56.310><c> and</c><00:21:56.640><c> the</c>

00:21:57.380 --> 00:21:57.390 align:start position:0%
flag to turn on remote debugging and the
 

00:21:57.390 --> 00:21:59.990 align:start position:0%
flag to turn on remote debugging and the
jackal<00:21:57.810><c> repple</c><00:21:58.200><c> tool</c><00:21:58.580><c> leverages</c><00:21:59.580><c> the</c><00:21:59.730><c> fact</c>

00:21:59.990 --> 00:22:00.000 align:start position:0%
jackal repple tool leverages the fact
 

00:22:00.000 --> 00:22:02.870 align:start position:0%
jackal repple tool leverages the fact
that<00:22:00.690><c> the</c><00:22:00.810><c> browser</c><00:22:01.080><c> is</c><00:22:01.310><c> effectively</c><00:22:02.310><c> a</c><00:22:02.430><c> server</c>

00:22:02.870 --> 00:22:02.880 align:start position:0%
that the browser is effectively a server
 

00:22:02.880 --> 00:22:04.700 align:start position:0%
that the browser is effectively a server
and<00:22:03.180><c> it</c><00:22:03.360><c> connects</c><00:22:03.720><c> to</c><00:22:03.780><c> that</c><00:22:03.870><c> server</c><00:22:04.230><c> in</c><00:22:04.590><c> order</c>

00:22:04.700 --> 00:22:04.710 align:start position:0%
and it connects to that server in order
 

00:22:04.710 --> 00:22:09.500 align:start position:0%
and it connects to that server in order
to<00:22:04.980><c> send</c><00:22:05.280><c> it</c><00:22:05.460><c> data</c><00:22:06.240><c> characters</c><00:22:07.790><c> so</c><00:22:08.790><c> just</c><00:22:09.270><c> start</c>

00:22:09.500 --> 00:22:09.510 align:start position:0%
to send it data characters so just start
 

00:22:09.510 --> 00:22:12.890 align:start position:0%
to send it data characters so just start
this<00:22:09.660><c> up</c><00:22:09.900><c> I</c><00:22:10.110><c> do</c><00:22:10.170><c> in</c><00:22:11.040><c> Emacs</c><00:22:11.430><c> I</c><00:22:11.760><c> can</c><00:22:12.000><c> do</c><00:22:12.090><c> ctrl</c><00:22:12.540><c> you</c>

00:22:12.890 --> 00:22:12.900 align:start position:0%
this up I do in Emacs I can do ctrl you
 

00:22:12.900 --> 00:22:17.480 align:start position:0%
this up I do in Emacs I can do ctrl you
meta<00:22:13.350><c> X</c><00:22:13.820><c> run</c><00:22:14.820><c> -</c><00:22:15.270><c> Lisp</c><00:22:15.810><c> and</c><00:22:16.190><c> instead</c><00:22:17.190><c> of</c><00:22:17.340><c> the</c>

00:22:17.480 --> 00:22:17.490 align:start position:0%
meta X run - Lisp and instead of the
 

00:22:17.490 --> 00:22:19.210 align:start position:0%
meta X run - Lisp and instead of the
list<00:22:17.670><c> command</c><00:22:18.030><c> I'm</c><00:22:18.300><c> going</c><00:22:18.420><c> to</c><00:22:18.480><c> give</c><00:22:18.600><c> it</c><00:22:18.750><c> a</c>

00:22:19.210 --> 00:22:19.220 align:start position:0%
list command I'm going to give it a
 

00:22:19.220 --> 00:22:27.140 align:start position:0%
list command I'm going to give it a
jackal<00:22:20.220><c> command</c><00:22:21.410><c> and</c><00:22:25.490><c> this</c><00:22:26.490><c> is</c><00:22:26.670><c> actually</c>

00:22:27.140 --> 00:22:27.150 align:start position:0%
jackal command and this is actually
 

00:22:27.150 --> 00:22:29.000 align:start position:0%
jackal command and this is actually
hosed<00:22:27.390><c> in</c><00:22:27.720><c> some</c><00:22:27.930><c> way</c><00:22:28.080><c> oh</c><00:22:28.290><c> right</c><00:22:28.590><c> because</c><00:22:28.740><c> we</c>

00:22:29.000 --> 00:22:29.010 align:start position:0%
hosed in some way oh right because we
 

00:22:29.010 --> 00:22:30.710 align:start position:0%
hosed in some way oh right because we
have<00:22:29.160><c> a</c><00:22:29.190><c> dev</c><00:22:29.460><c> tool</c><00:22:29.640><c> session</c><00:22:30.060><c> over</c><00:22:30.300><c> here</c><00:22:30.510><c> we</c>

00:22:30.710 --> 00:22:30.720 align:start position:0%
have a dev tool session over here we
 

00:22:30.720 --> 00:22:32.570 align:start position:0%
have a dev tool session over here we
can't<00:22:31.020><c> start</c><00:22:31.260><c> a</c><00:22:31.350><c> new</c><00:22:31.530><c> one</c><00:22:31.680><c> over</c><00:22:31.890><c> any</c><00:22:32.160><c> max</c><00:22:32.370><c> so</c>

00:22:32.570 --> 00:22:32.580 align:start position:0%
can't start a new one over any max so
 

00:22:32.580 --> 00:22:35.600 align:start position:0%
can't start a new one over any max so
I'm<00:22:32.670><c> gonna</c><00:22:32.820><c> reboot</c><00:22:33.690><c> this</c><00:22:34.220><c> then</c><00:22:35.220><c> I'm</c><00:22:35.340><c> gonna</c><00:22:35.430><c> use</c>

00:22:35.600 --> 00:22:35.610 align:start position:0%
I'm gonna reboot this then I'm gonna use
 

00:22:35.610 --> 00:22:37.400 align:start position:0%
I'm gonna reboot this then I'm gonna use
a<00:22:35.640><c> shortcut</c><00:22:36.030><c> I</c><00:22:36.180><c> have</c><00:22:36.420><c> an</c><00:22:36.540><c> Emacs</c><00:22:36.870><c> called</c><00:22:37.140><c> jackal</c>

00:22:37.400 --> 00:22:37.410 align:start position:0%
a shortcut I have an Emacs called jackal
 

00:22:37.410 --> 00:22:39.500 align:start position:0%
a shortcut I have an Emacs called jackal
repple<00:22:37.890><c> this</c><00:22:38.610><c> function</c><00:22:39.060><c> eat</c><00:22:39.180><c> list</c><00:22:39.360><c> function</c>

00:22:39.500 --> 00:22:39.510 align:start position:0%
repple this function eat list function
 

00:22:39.510 --> 00:22:43.490 align:start position:0%
repple this function eat list function
okay<00:22:40.280><c> now</c><00:22:41.280><c> over</c><00:22:41.760><c> in</c><00:22:42.030><c> the</c><00:22:42.060><c> Emacs</c><00:22:42.870><c> ID</c><00:22:43.110><c> we're</c>

00:22:43.490 --> 00:22:43.500 align:start position:0%
okay now over in the Emacs ID we're
 

00:22:43.500 --> 00:22:45.170 align:start position:0%
okay now over in the Emacs ID we're
connected<00:22:44.010><c> up</c><00:22:44.130><c> to</c><00:22:44.160><c> the</c><00:22:44.460><c> browser</c><00:22:44.760><c> on</c><00:22:45.060><c> the</c><00:22:45.090><c> right</c>

00:22:45.170 --> 00:22:45.180 align:start position:0%
connected up to the browser on the right
 

00:22:45.180 --> 00:22:48.440 align:start position:0%
connected up to the browser on the right
hand<00:22:45.510><c> side</c><00:22:45.720><c> so</c><00:22:46.460><c> I</c><00:22:47.460><c> can</c><00:22:47.670><c> do</c><00:22:47.850><c> stuff</c><00:22:48.150><c> but</c><00:22:48.360><c> you're</c>

00:22:48.440 --> 00:22:48.450 align:start position:0%
hand side so I can do stuff but you're
 

00:22:48.450 --> 00:22:53.350 align:start position:0%
hand side so I can do stuff but you're
not<00:22:48.600><c> really</c><00:22:48.780><c> seeing</c><00:22:49.110><c> it</c><00:22:49.260><c> take</c><00:22:49.410><c> effect</c><00:22:49.830><c> because</c>

00:22:53.350 --> 00:22:53.360 align:start position:0%
 
 

00:22:53.360 --> 00:22:55.070 align:start position:0%
 
evaluating<00:22:54.360><c> the</c><00:22:54.420><c> number</c><00:22:54.630><c> one</c><00:22:54.780><c> two</c><00:22:54.900><c> three</c>

00:22:55.070 --> 00:22:55.080 align:start position:0%
evaluating the number one two three
 

00:22:55.080 --> 00:22:57.470 align:start position:0%
evaluating the number one two three
doesn't<00:22:55.320><c> do</c><00:22:55.380><c> anything</c><00:22:55.680><c> in</c><00:22:55.770><c> the</c><00:22:55.830><c> browser</c><00:22:56.480><c> but</c>

00:22:57.470 --> 00:22:57.480 align:start position:0%
doesn't do anything in the browser but
 

00:22:57.480 --> 00:23:00.620 align:start position:0%
doesn't do anything in the browser but
we<00:22:57.720><c> can</c><00:22:57.990><c> use</c><00:22:58.290><c> the</c><00:22:58.800><c> jackal</c><00:22:59.730><c> special</c><00:23:00.120><c> forms</c><00:23:00.480><c> to</c>

00:23:00.620 --> 00:23:00.630 align:start position:0%
we can use the jackal special forms to
 

00:23:00.630 --> 00:23:02.600 align:start position:0%
we can use the jackal special forms to
do<00:23:00.750><c> things</c><00:23:00.990><c> like</c><00:23:01.110><c> call</c><00:23:01.860><c> the</c><00:23:02.160><c> alert</c><00:23:02.400><c> function</c>

00:23:02.600 --> 00:23:02.610 align:start position:0%
do things like call the alert function
 

00:23:02.610 --> 00:23:06.050 align:start position:0%
do things like call the alert function
to<00:23:03.180><c> produce</c><00:23:03.510><c> a</c><00:23:03.750><c> box</c><00:23:03.990><c> and</c><00:23:04.350><c> on</c><00:23:04.620><c> the</c><00:23:04.770><c> browser</c><00:23:05.060><c> so</c>

00:23:06.050 --> 00:23:06.060 align:start position:0%
to produce a box and on the browser so
 

00:23:06.060 --> 00:23:08.660 align:start position:0%
to produce a box and on the browser so
let<00:23:06.210><c> me</c><00:23:06.330><c> do</c><00:23:06.710><c> well</c><00:23:07.710><c> first</c><00:23:07.950><c> let</c><00:23:08.220><c> me</c><00:23:08.250><c> go</c><00:23:08.400><c> down</c><00:23:08.520><c> to</c>

00:23:08.660 --> 00:23:08.670 align:start position:0%
let me do well first let me go down to
 

00:23:08.670 --> 00:23:12.080 align:start position:0%
let me do well first let me go down to
the<00:23:08.790><c> jackal</c><00:23:09.120><c> tests</c><00:23:09.540><c> file</c><00:23:09.990><c> and</c><00:23:10.940><c> I'm</c><00:23:11.940><c> going</c><00:23:12.060><c> to</c>

00:23:12.080 --> 00:23:12.090 align:start position:0%
the jackal tests file and I'm going to
 

00:23:12.090 --> 00:23:15.140 align:start position:0%
the jackal tests file and I'm going to
evaluate<00:23:12.740><c> this</c><00:23:13.740><c> to</c><00:23:14.040><c> enable</c><00:23:14.250><c> some</c><00:23:14.970><c> of</c><00:23:15.090><c> the</c>

00:23:15.140 --> 00:23:15.150 align:start position:0%
evaluate this to enable some of the
 

00:23:15.150 --> 00:23:18.230 align:start position:0%
evaluate this to enable some of the
reader<00:23:15.330><c> macros</c><00:23:15.750><c> for</c><00:23:16.050><c> Jo</c><00:23:16.230><c> syntax</c><00:23:17.030><c> so</c><00:23:18.030><c> we're</c>

00:23:18.230 --> 00:23:18.240 align:start position:0%
reader macros for Jo syntax so we're
 

00:23:18.240 --> 00:23:20.270 align:start position:0%
reader macros for Jo syntax so we're
interested<00:23:18.480><c> in</c><00:23:18.780><c> the</c><00:23:19.110><c> alert</c><00:23:19.380><c> function</c><00:23:19.590><c> and</c><00:23:20.040><c> I'm</c>

00:23:20.270 --> 00:23:20.280 align:start position:0%
interested in the alert function and I'm
 

00:23:20.280 --> 00:23:21.820 align:start position:0%
interested in the alert function and I'm
going<00:23:20.310><c> to</c><00:23:20.490><c> reference</c><00:23:20.820><c> it</c><00:23:20.940><c> here</c><00:23:21.120><c> from</c><00:23:21.330><c> jackal</c>

00:23:21.820 --> 00:23:21.830 align:start position:0%
going to reference it here from jackal
 

00:23:21.830 --> 00:23:24.080 align:start position:0%
going to reference it here from jackal
you<00:23:22.830><c> can</c><00:23:22.950><c> see</c><00:23:23.070><c> the</c><00:23:23.160><c> repple</c><00:23:23.430><c> doesn't</c><00:23:23.790><c> pretty</c>

00:23:24.080 --> 00:23:24.090 align:start position:0%
you can see the repple doesn't pretty
 

00:23:24.090 --> 00:23:27.350 align:start position:0%
you can see the repple doesn't pretty
print<00:23:24.360><c> stuff</c><00:23:24.660><c> and</c><00:23:25.850><c> it's</c><00:23:26.850><c> just</c><00:23:27.030><c> basically</c>

00:23:27.350 --> 00:23:27.360 align:start position:0%
print stuff and it's just basically
 

00:23:27.360 --> 00:23:29.600 align:start position:0%
print stuff and it's just basically
spewing<00:23:27.780><c> the</c><00:23:28.020><c> javascript</c><00:23:28.610><c> textual</c>

00:23:29.600 --> 00:23:29.610 align:start position:0%
spewing the javascript textual
 

00:23:29.610 --> 00:23:32.510 align:start position:0%
spewing the javascript textual
representation<00:23:30.000><c> of</c><00:23:30.390><c> things</c><00:23:30.570><c> but</c><00:23:31.530><c> that</c><00:23:31.650><c> @pipe</c>

00:23:32.510 --> 00:23:32.520 align:start position:0%
representation of things but that @pipe
 

00:23:32.520 --> 00:23:35.400 align:start position:0%
representation of things but that @pipe
reader<00:23:33.450><c> macro</c><00:23:33.900><c> is</c><00:23:34.140><c> a</c><00:23:34.170><c> way</c><00:23:34.380><c> for</c><00:23:34.560><c> us</c><00:23:34.590><c> to</c><00:23:34.680><c> access</c>

00:23:35.400 --> 00:23:35.410 align:start position:0%
reader macro is a way for us to access
 

00:23:35.410 --> 00:23:40.500 align:start position:0%
reader macro is a way for us to access
variables<00:23:36.510><c> so</c><00:23:37.510><c> we</c><00:23:37.930><c> can</c><00:23:38.200><c> do</c><00:23:39.030><c> we</c><00:23:40.030><c> can</c><00:23:40.060><c> use</c><00:23:40.210><c> the</c>

00:23:40.500 --> 00:23:40.510 align:start position:0%
variables so we can do we can use the
 

00:23:40.510 --> 00:23:42.420 align:start position:0%
variables so we can do we can use the
the<00:23:41.020><c> well</c><00:23:41.680><c> has</c><00:23:41.800><c> a</c><00:23:41.830><c> couple</c><00:23:42.040><c> ways</c><00:23:42.130><c> we</c><00:23:42.160><c> can</c><00:23:42.370><c> do</c>

00:23:42.420 --> 00:23:42.430 align:start position:0%
the well has a couple ways we can do
 

00:23:42.430 --> 00:23:47.550 align:start position:0%
the well has a couple ways we can do
this<00:23:42.550><c> we</c><00:23:42.640><c> can</c><00:23:42.670><c> use</c><00:23:42.790><c> jackal</c><00:23:43.270><c> call</c><00:23:44.520><c> and</c><00:23:46.290><c> pass</c><00:23:47.290><c> it</c>

00:23:47.550 --> 00:23:47.560 align:start position:0%
this we can use jackal call and pass it
 

00:23:47.560 --> 00:23:51.720 align:start position:0%
this we can use jackal call and pass it
a<00:23:47.970><c> topic</c><00:23:48.970><c> or</c><00:23:49.270><c> a</c><00:23:49.300><c> function</c><00:23:49.840><c> the</c><00:23:50.260><c> alert</c><00:23:50.560><c> and</c><00:23:50.890><c> then</c>

00:23:51.720 --> 00:23:51.730 align:start position:0%
a topic or a function the alert and then
 

00:23:51.730 --> 00:23:58.940 align:start position:0%
a topic or a function the alert and then
let's<00:23:51.940><c> pass</c><00:23:52.150><c> it</c><00:23:52.180><c> a</c><00:23:52.420><c> JavaScript</c><00:23:53.020><c> string</c><00:23:57.450><c> boom</c>

00:23:58.940 --> 00:23:58.950 align:start position:0%
let's pass it a JavaScript string boom
 

00:23:58.950 --> 00:24:04.500 align:start position:0%
let's pass it a JavaScript string boom
cool<00:24:01.710><c> we</c><00:24:02.710><c> can</c><00:24:02.830><c> use</c><00:24:03.040><c> a</c><00:24:03.070><c> little</c><00:24:03.400><c> more</c><00:24:03.520><c> sugar</c><00:24:03.910><c> to</c>

00:24:04.500 --> 00:24:04.510 align:start position:0%
cool we can use a little more sugar to
 

00:24:04.510 --> 00:24:14.760 align:start position:0%
cool we can use a little more sugar to
do<00:24:04.630><c> something</c><00:24:05.020><c> like</c><00:24:05.260><c> that</c><00:24:12.540><c> oh</c><00:24:13.540><c> I</c><00:24:14.320><c> didn't</c><00:24:14.620><c> like</c>

00:24:14.760 --> 00:24:14.770 align:start position:0%
do something like that oh I didn't like
 

00:24:14.770 --> 00:24:28.290 align:start position:0%
do something like that oh I didn't like
it<00:24:14.950><c> oh</c><00:24:15.070><c> I</c><00:24:15.130><c> think</c><00:24:15.280><c> I</c><00:24:15.490><c> know</c><00:24:26.850><c> how</c><00:24:27.850><c> something</c><00:24:28.150><c> might</c>

00:24:28.290 --> 00:24:28.300 align:start position:0%
it oh I think I know how something might
 

00:24:28.300 --> 00:24:32.940 align:start position:0%
it oh I think I know how something might
be<00:24:28.510><c> broken</c><00:24:28.780><c> there</c><00:24:31.140><c> anyway</c><00:24:32.140><c> more</c><00:24:32.500><c> work</c><00:24:32.680><c> for</c><00:24:32.830><c> me</c>

00:24:32.940 --> 00:24:32.950 align:start position:0%
be broken there anyway more work for me
 

00:24:32.950 --> 00:24:36.270 align:start position:0%
be broken there anyway more work for me
to<00:24:32.980><c> do</c><00:24:33.220><c> but</c><00:24:33.730><c> this</c><00:24:34.390><c> concludes</c><00:24:34.930><c> the</c><00:24:35.350><c> demo</c><00:24:35.680><c> and</c><00:24:35.920><c> I</c>

00:24:36.270 --> 00:24:36.280 align:start position:0%
to do but this concludes the demo and I
 

00:24:36.280 --> 00:24:38.940 align:start position:0%
to do but this concludes the demo and I
thank<00:24:36.640><c> you</c><00:24:36.730><c> very</c><00:24:36.850><c> much</c><00:24:37.060><c> for</c><00:24:37.210><c> your</c><00:24:37.330><c> time</c><00:24:37.540><c> and</c><00:24:38.230><c> I</c>

00:24:38.940 --> 00:24:38.950 align:start position:0%
thank you very much for your time and I
 

00:24:38.950 --> 00:24:40.680 align:start position:0%
thank you very much for your time and I
hope<00:24:39.340><c> you</c><00:24:39.490><c> learned</c><00:24:39.760><c> something</c><00:24:40.390><c> from</c><00:24:40.510><c> my</c>

00:24:40.680 --> 00:24:40.690 align:start position:0%
hope you learned something from my
 

00:24:40.690 --> 00:24:42.030 align:start position:0%
hope you learned something from my
presentation<00:24:41.050><c> I</c><00:24:41.350><c> look</c><00:24:41.500><c> forward</c><00:24:41.740><c> to</c><00:24:41.800><c> answering</c>

00:24:42.030 --> 00:24:42.040 align:start position:0%
presentation I look forward to answering
 

00:24:42.040 --> 00:24:45.810 align:start position:0%
presentation I look forward to answering
your<00:24:42.250><c> questions</c><00:24:42.480><c> thank</c><00:24:43.480><c> you</c><00:24:43.510><c> very</c><00:24:43.570><c> much</c>

