WEBVTT
Kind: captions
Language: en

00:00:06.480 --> 00:00:08.950 align:start position:0%
 
so<00:00:06.640><c> earlier</c><00:00:07.040><c> this</c><00:00:07.279><c> year</c><00:00:07.600><c> i</c><00:00:07.919><c> decided</c><00:00:08.480><c> that</c><00:00:08.800><c> i</c>

00:00:08.950 --> 00:00:08.960 align:start position:0%
so earlier this year i decided that i
 

00:00:08.960 --> 00:00:11.270 align:start position:0%
so earlier this year i decided that i
wanted<00:00:09.200><c> to</c><00:00:09.360><c> start</c><00:00:09.599><c> working</c><00:00:10.080><c> on</c><00:00:10.400><c> the</c><00:00:10.719><c> clojures</c>

00:00:11.270 --> 00:00:11.280 align:start position:0%
wanted to start working on the clojures
 

00:00:11.280 --> 00:00:12.390 align:start position:0%
wanted to start working on the clojures
project

00:00:12.390 --> 00:00:12.400 align:start position:0%
project
 

00:00:12.400 --> 00:00:14.150 align:start position:0%
project
and<00:00:12.639><c> the</c><00:00:12.800><c> first</c><00:00:13.120><c> thing</c><00:00:13.360><c> i</c><00:00:13.440><c> noticed</c><00:00:13.759><c> whenever</c><00:00:14.080><c> i</c>

00:00:14.150 --> 00:00:14.160 align:start position:0%
and the first thing i noticed whenever i
 

00:00:14.160 --> 00:00:16.950 align:start position:0%
and the first thing i noticed whenever i
looked<00:00:14.400><c> at</c><00:00:14.480><c> clojars</c><00:00:15.120><c> was</c><00:00:15.599><c> there</c><00:00:15.839><c> was</c><00:00:16.400><c> no</c><00:00:16.720><c> test</c>

00:00:16.950 --> 00:00:16.960 align:start position:0%
looked at clojars was there was no test
 

00:00:16.960 --> 00:00:18.550 align:start position:0%
looked at clojars was there was no test
suite<00:00:17.279><c> whatsoever</c>

00:00:18.550 --> 00:00:18.560 align:start position:0%
suite whatsoever
 

00:00:18.560 --> 00:00:22.870 align:start position:0%
suite whatsoever
so<00:00:19.279><c> and</c><00:00:19.439><c> i'm</c><00:00:19.680><c> a</c><00:00:19.920><c> big</c><00:00:20.400><c> fan</c><00:00:21.039><c> of</c><00:00:21.520><c> tests</c><00:00:22.240><c> for</c><00:00:22.720><c> my</c>

00:00:22.870 --> 00:00:22.880 align:start position:0%
so and i'm a big fan of tests for my
 

00:00:22.880 --> 00:00:24.550 align:start position:0%
so and i'm a big fan of tests for my
programs<00:00:23.519><c> particularly</c><00:00:24.080><c> ones</c><00:00:24.320><c> that</c><00:00:24.400><c> are</c>

00:00:24.550 --> 00:00:24.560 align:start position:0%
programs particularly ones that are
 

00:00:24.560 --> 00:00:26.470 align:start position:0%
programs particularly ones that are
acceptance<00:00:25.039><c> tests</c><00:00:25.279><c> that</c><00:00:25.439><c> say</c><00:00:26.000><c> the</c><00:00:26.160><c> user</c>

00:00:26.470 --> 00:00:26.480 align:start position:0%
acceptance tests that say the user
 

00:00:26.480 --> 00:00:28.230 align:start position:0%
acceptance tests that say the user
actually<00:00:26.800><c> logs</c><00:00:27.199><c> in</c><00:00:27.519><c> and</c><00:00:27.599><c> when</c><00:00:27.760><c> they</c><00:00:27.920><c> log</c><00:00:28.160><c> in</c>

00:00:28.230 --> 00:00:28.240 align:start position:0%
actually logs in and when they log in
 

00:00:28.240 --> 00:00:29.910 align:start position:0%
actually logs in and when they log in
they<00:00:28.400><c> can</c><00:00:28.560><c> view</c><00:00:29.039><c> you</c><00:00:29.119><c> know</c><00:00:29.359><c> their</c><00:00:29.599><c> photo</c>

00:00:29.910 --> 00:00:29.920 align:start position:0%
they can view you know their photo
 

00:00:29.920 --> 00:00:32.150 align:start position:0%
they can view you know their photo
stream<00:00:30.240><c> if</c><00:00:30.400><c> it's</c><00:00:30.480><c> something</c><00:00:30.800><c> that</c><00:00:30.880><c> direction</c>

00:00:32.150 --> 00:00:32.160 align:start position:0%
stream if it's something that direction
 

00:00:32.160 --> 00:00:33.270 align:start position:0%
stream if it's something that direction
um

00:00:33.270 --> 00:00:33.280 align:start position:0%
um
 

00:00:33.280 --> 00:00:36.229 align:start position:0%
um
towards<00:00:33.760><c> this</c><00:00:34.000><c> end</c><00:00:34.399><c> i've</c><00:00:34.719><c> built</c><00:00:35.120><c> a</c><00:00:35.200><c> couple</c><00:00:35.520><c> of</c>

00:00:36.229 --> 00:00:36.239 align:start position:0%
towards this end i've built a couple of
 

00:00:36.239 --> 00:00:37.990 align:start position:0%
towards this end i've built a couple of
libraries<00:00:36.719><c> for</c><00:00:36.960><c> doing</c><00:00:37.280><c> ring</c><00:00:37.520><c> interaction</c><00:00:37.920><c> and</c>

00:00:37.990 --> 00:00:38.000 align:start position:0%
libraries for doing ring interaction and
 

00:00:38.000 --> 00:00:39.270 align:start position:0%
libraries for doing ring interaction and
testing

00:00:39.270 --> 00:00:39.280 align:start position:0%
testing
 

00:00:39.280 --> 00:00:40.630 align:start position:0%
testing
the<00:00:39.440><c> first</c><00:00:39.600><c> one</c><00:00:39.760><c> i</c><00:00:39.840><c> want</c><00:00:39.920><c> to</c><00:00:40.000><c> talk</c><00:00:40.160><c> about</c><00:00:40.480><c> is</c>

00:00:40.630 --> 00:00:40.640 align:start position:0%
the first one i want to talk about is
 

00:00:40.640 --> 00:00:41.590 align:start position:0%
the first one i want to talk about is
called

00:00:41.590 --> 00:00:41.600 align:start position:0%
called
 

00:00:41.600 --> 00:00:43.030 align:start position:0%
called
peridot

00:00:43.030 --> 00:00:43.040 align:start position:0%
peridot
 

00:00:43.040 --> 00:00:46.549 align:start position:0%
peridot
it<00:00:43.360><c> is</c><00:00:43.760><c> basically</c><00:00:44.480><c> a</c><00:00:44.719><c> port</c><00:00:45.040><c> of</c><00:00:45.360><c> rack</c><00:00:45.760><c> test</c><00:00:46.399><c> if</c>

00:00:46.549 --> 00:00:46.559 align:start position:0%
it is basically a port of rack test if
 

00:00:46.559 --> 00:00:49.029 align:start position:0%
it is basically a port of rack test if
you're<00:00:46.800><c> familiar</c><00:00:47.200><c> with</c><00:00:47.360><c> that</c><00:00:47.600><c> from</c><00:00:47.840><c> the</c><00:00:48.160><c> ruby</c>

00:00:49.029 --> 00:00:49.039 align:start position:0%
you're familiar with that from the ruby
 

00:00:49.039 --> 00:00:50.310 align:start position:0%
you're familiar with that from the ruby
community

00:00:50.310 --> 00:00:50.320 align:start position:0%
community
 

00:00:50.320 --> 00:00:53.590 align:start position:0%
community
uh<00:00:50.640><c> it</c><00:00:50.879><c> uses</c><00:00:51.280><c> the</c><00:00:51.600><c> thread</c><00:00:51.920><c> first</c><00:00:52.239><c> macro</c><00:00:52.800><c> to</c>

00:00:53.590 --> 00:00:53.600 align:start position:0%
uh it uses the thread first macro to
 

00:00:53.600 --> 00:00:57.990 align:start position:0%
uh it uses the thread first macro to
simulate<00:00:54.399><c> an</c><00:00:54.719><c> iterative</c><00:00:55.680><c> or</c><00:00:56.320><c> an</c><00:00:56.480><c> imperative</c>

00:00:57.990 --> 00:00:58.000 align:start position:0%
simulate an iterative or an imperative
 

00:00:58.000 --> 00:00:59.990 align:start position:0%
simulate an iterative or an imperative
interaction

00:00:59.990 --> 00:01:00.000 align:start position:0%
interaction
 

00:01:00.000 --> 00:01:03.189 align:start position:0%
interaction
you<00:01:00.239><c> start</c><00:01:00.480><c> first</c><00:01:00.879><c> by</c><00:01:01.359><c> creating</c><00:01:01.760><c> a</c><00:01:01.920><c> session</c>

00:01:03.189 --> 00:01:03.199 align:start position:0%
you start first by creating a session
 

00:01:03.199 --> 00:01:04.950 align:start position:0%
you start first by creating a session
and<00:01:03.280><c> then</c><00:01:03.520><c> you</c><00:01:03.680><c> can</c><00:01:03.840><c> actually</c><00:01:04.080><c> do</c><00:01:04.239><c> a</c><00:01:04.400><c> request</c>

00:01:04.950 --> 00:01:04.960 align:start position:0%
and then you can actually do a request
 

00:01:04.960 --> 00:01:06.630 align:start position:0%
and then you can actually do a request
in<00:01:05.119><c> this</c><00:01:05.280><c> particular</c><00:01:05.840><c> case</c><00:01:06.080><c> we're</c><00:01:06.240><c> doing</c><00:01:06.560><c> a</c>

00:01:06.630 --> 00:01:06.640 align:start position:0%
in this particular case we're doing a
 

00:01:06.640 --> 00:01:08.390 align:start position:0%
in this particular case we're doing a
request<00:01:07.119><c> to</c><00:01:07.280><c> a</c><00:01:07.360><c> login</c>

00:01:08.390 --> 00:01:08.400 align:start position:0%
request to a login
 

00:01:08.400 --> 00:01:10.710 align:start position:0%
request to a login
and<00:01:08.560><c> actually</c><00:01:08.880><c> passing</c><00:01:09.280><c> some</c><00:01:09.680><c> parameters</c>

00:01:10.710 --> 00:01:10.720 align:start position:0%
and actually passing some parameters
 

00:01:10.720 --> 00:01:12.950 align:start position:0%
and actually passing some parameters
keyword<00:01:11.040><c> parameters</c><00:01:11.600><c> through</c>

00:01:12.950 --> 00:01:12.960 align:start position:0%
keyword parameters through
 

00:01:12.960 --> 00:01:14.789 align:start position:0%
keyword parameters through
uses<00:01:13.280><c> ring</c><00:01:13.520><c> mock</c><00:01:13.840><c> underneath</c><00:01:14.320><c> so</c><00:01:14.479><c> these</c>

00:01:14.789 --> 00:01:14.799 align:start position:0%
uses ring mock underneath so these
 

00:01:14.799 --> 00:01:17.109 align:start position:0%
uses ring mock underneath so these
actually<00:01:15.360><c> are</c><00:01:15.760><c> the</c><00:01:15.920><c> exact</c><00:01:16.400><c> keywords</c><00:01:16.880><c> that</c><00:01:16.960><c> you</c>

00:01:17.109 --> 00:01:17.119 align:start position:0%
actually are the exact keywords that you
 

00:01:17.119 --> 00:01:21.670 align:start position:0%
actually are the exact keywords that you
see<00:01:17.520><c> in</c><00:01:17.680><c> the</c><00:01:18.159><c> ring</c><00:01:18.479><c> spec</c><00:01:19.119><c> for</c><00:01:19.600><c> your</c><00:01:19.759><c> requests</c>

00:01:21.670 --> 00:01:21.680 align:start position:0%
see in the ring spec for your requests
 

00:01:21.680 --> 00:01:24.230 align:start position:0%
see in the ring spec for your requests
uh<00:01:22.400><c> you're</c><00:01:22.640><c> also</c><00:01:23.040><c> able</c><00:01:23.280><c> to</c><00:01:23.520><c> do</c><00:01:23.840><c> things</c><00:01:24.080><c> like</c>

00:01:24.230 --> 00:01:24.240 align:start position:0%
uh you're also able to do things like
 

00:01:24.240 --> 00:01:26.230 align:start position:0%
uh you're also able to do things like
follow<00:01:24.560><c> redirections</c><00:01:25.200><c> if</c><00:01:25.280><c> you</c><00:01:25.360><c> get</c><00:01:25.520><c> a</c>

00:01:26.230 --> 00:01:26.240 align:start position:0%
follow redirections if you get a
 

00:01:26.240 --> 00:01:27.990 align:start position:0%
follow redirections if you get a
redirect<00:01:26.720><c> at</c><00:01:26.799><c> that</c><00:01:26.960><c> point</c>

00:01:27.990 --> 00:01:28.000 align:start position:0%
redirect at that point
 

00:01:28.000 --> 00:01:29.510 align:start position:0%
redirect at that point
it<00:01:28.159><c> parses</c><00:01:28.560><c> it</c><00:01:28.720><c> out</c><00:01:28.799><c> and</c><00:01:28.880><c> figures</c><00:01:29.200><c> out</c><00:01:29.280><c> what</c>

00:01:29.510 --> 00:01:29.520 align:start position:0%
it parses it out and figures out what
 

00:01:29.520 --> 00:01:31.749 align:start position:0%
it parses it out and figures out what
the<00:01:29.600><c> url</c><00:01:30.240><c> and</c><00:01:30.640><c> creates</c><00:01:30.880><c> the</c><00:01:30.960><c> next</c><00:01:31.520><c> next</c>

00:01:31.749 --> 00:01:31.759 align:start position:0%
the url and creates the next next
 

00:01:31.759 --> 00:01:33.510 align:start position:0%
the url and creates the next next
requests<00:01:32.159><c> and</c><00:01:32.320><c> such</c><00:01:32.560><c> for</c><00:01:32.720><c> you</c>

00:01:33.510 --> 00:01:33.520 align:start position:0%
requests and such for you
 

00:01:33.520 --> 00:01:34.390 align:start position:0%
requests and such for you
uh

00:01:34.390 --> 00:01:34.400 align:start position:0%
uh
 

00:01:34.400 --> 00:01:36.789 align:start position:0%
uh
this<00:01:34.640><c> example</c>

00:01:36.789 --> 00:01:36.799 align:start position:0%
this example
 

00:01:36.799 --> 00:01:38.149 align:start position:0%
this example
does<00:01:37.040><c> a</c><00:01:37.119><c> request</c>

00:01:38.149 --> 00:01:38.159 align:start position:0%
does a request
 

00:01:38.159 --> 00:01:39.830 align:start position:0%
does a request
follows<00:01:38.479><c> redirect</c><00:01:38.880><c> and</c><00:01:38.960><c> then</c><00:01:39.119><c> actually</c><00:01:39.520><c> logs</c>

00:01:39.830 --> 00:01:39.840 align:start position:0%
follows redirect and then actually logs
 

00:01:39.840 --> 00:01:41.590 align:start position:0%
follows redirect and then actually logs
in<00:01:40.000><c> as</c><00:01:40.079><c> a</c><00:01:40.159><c> user</c><00:01:40.400><c> follows</c><00:01:40.720><c> the</c><00:01:40.799><c> redirect</c><00:01:41.439><c> and</c>

00:01:41.590 --> 00:01:41.600 align:start position:0%
in as a user follows the redirect and
 

00:01:41.600 --> 00:01:43.510 align:start position:0%
in as a user follows the redirect and
then<00:01:41.759><c> actually</c><00:01:42.079><c> looks</c><00:01:42.320><c> at</c><00:01:42.400><c> the</c><00:01:42.560><c> task</c><00:01:43.200><c> has</c><00:01:43.360><c> an</c>

00:01:43.510 --> 00:01:43.520 align:start position:0%
then actually looks at the task has an
 

00:01:43.520 --> 00:01:45.830 align:start position:0%
then actually looks at the task has an
example<00:01:43.840><c> has</c><00:01:44.000><c> a</c><00:01:44.400><c> dot</c><00:01:44.640><c> dot</c><00:01:44.880><c> there</c><00:01:45.119><c> for</c><00:01:45.439><c> creating</c>

00:01:45.830 --> 00:01:45.840 align:start position:0%
example has a dot dot there for creating
 

00:01:45.840 --> 00:01:47.030 align:start position:0%
example has a dot dot there for creating
a<00:01:45.920><c> task</c>

00:01:47.030 --> 00:01:47.040 align:start position:0%
a task
 

00:01:47.040 --> 00:01:48.310 align:start position:0%
a task
and

00:01:48.310 --> 00:01:48.320 align:start position:0%
and
 

00:01:48.320 --> 00:01:50.069 align:start position:0%
and
will<00:01:48.560><c> then</c><00:01:48.720><c> go</c><00:01:48.960><c> and</c><00:01:49.040><c> actually</c><00:01:49.360><c> view</c><00:01:49.520><c> the</c><00:01:49.600><c> test</c>

00:01:50.069 --> 00:01:50.079 align:start position:0%
will then go and actually view the test
 

00:01:50.079 --> 00:01:51.109 align:start position:0%
will then go and actually view the test
the<00:01:50.240><c> task</c>

00:01:51.109 --> 00:01:51.119 align:start position:0%
the task
 

00:01:51.119 --> 00:01:52.550 align:start position:0%
the task
and<00:01:51.280><c> this</c><00:01:51.600><c> is</c>

00:01:52.550 --> 00:01:52.560 align:start position:0%
and this is
 

00:01:52.560 --> 00:01:55.270 align:start position:0%
and this is
uh<00:01:53.280><c> a</c><00:01:53.360><c> little</c><00:01:53.520><c> bit</c><00:01:53.680><c> beyond</c><00:01:54.079><c> what</c><00:01:54.640><c> ring</c><00:01:54.960><c> mock</c>

00:01:55.270 --> 00:01:55.280 align:start position:0%
uh a little bit beyond what ring mock
 

00:01:55.280 --> 00:01:56.789 align:start position:0%
uh a little bit beyond what ring mock
itself<00:01:55.600><c> will</c><00:01:55.759><c> do</c><00:01:55.920><c> because</c><00:01:56.159><c> it</c><00:01:56.240><c> will</c><00:01:56.479><c> actually</c>

00:01:56.789 --> 00:01:56.799 align:start position:0%
itself will do because it will actually
 

00:01:56.799 --> 00:01:59.030 align:start position:0%
itself will do because it will actually
parse<00:01:57.200><c> out</c><00:01:57.360><c> the</c><00:01:57.439><c> cookies</c><00:01:57.840><c> for</c><00:01:58.079><c> you</c>

00:01:59.030 --> 00:01:59.040 align:start position:0%
parse out the cookies for you
 

00:01:59.040 --> 00:02:01.190 align:start position:0%
parse out the cookies for you
and<00:01:59.200><c> keep</c><00:01:59.439><c> those</c><00:01:59.600><c> around</c><00:01:59.920><c> in</c><00:02:00.000><c> a</c><00:02:00.079><c> cookie</c><00:02:00.399><c> jar</c><00:02:01.040><c> so</c>

00:02:01.190 --> 00:02:01.200 align:start position:0%
and keep those around in a cookie jar so
 

00:02:01.200 --> 00:02:02.550 align:start position:0%
and keep those around in a cookie jar so
that<00:02:01.360><c> as</c><00:02:01.520><c> you're</c><00:02:01.600><c> moving</c><00:02:01.920><c> along</c><00:02:02.240><c> through</c><00:02:02.399><c> the</c>

00:02:02.550 --> 00:02:02.560 align:start position:0%
that as you're moving along through the
 

00:02:02.560 --> 00:02:04.630 align:start position:0%
that as you're moving along through the
session<00:02:02.960><c> you</c><00:02:03.119><c> actually</c><00:02:03.439><c> stay</c><00:02:03.840><c> logged</c><00:02:04.159><c> in</c><00:02:04.399><c> as</c>

00:02:04.630 --> 00:02:04.640 align:start position:0%
session you actually stay logged in as
 

00:02:04.640 --> 00:02:07.350 align:start position:0%
session you actually stay logged in as
that<00:02:04.880><c> particular</c><00:02:05.360><c> user</c>

00:02:07.350 --> 00:02:07.360 align:start position:0%
that particular user
 

00:02:07.360 --> 00:02:10.309 align:start position:0%
that particular user
uh<00:02:08.080><c> as</c><00:02:08.319><c> part</c><00:02:08.560><c> of</c><00:02:08.800><c> the</c><00:02:09.520><c> what</c><00:02:09.679><c> it</c><00:02:09.920><c> what</c><00:02:10.080><c> each</c><00:02:10.239><c> one</c>

00:02:10.309 --> 00:02:10.319 align:start position:0%
uh as part of the what it what each one
 

00:02:10.319 --> 00:02:11.830 align:start position:0%
uh as part of the what it what each one
of<00:02:10.399><c> these</c><00:02:10.560><c> actions</c><00:02:10.879><c> return</c><00:02:11.280><c> is</c><00:02:11.440><c> a</c><00:02:11.520><c> little</c>

00:02:11.830 --> 00:02:11.840 align:start position:0%
of these actions return is a little
 

00:02:11.840 --> 00:02:14.630 align:start position:0%
of these actions return is a little
hashmap<00:02:12.640><c> uh</c><00:02:12.879><c> hash</c><00:02:13.200><c> state</c><00:02:13.920><c> state</c><00:02:14.160><c> map</c><00:02:14.400><c> there</c><00:02:14.560><c> we</c>

00:02:14.630 --> 00:02:14.640 align:start position:0%
hashmap uh hash state state map there we
 

00:02:14.640 --> 00:02:15.510 align:start position:0%
hashmap uh hash state state map there we
go

00:02:15.510 --> 00:02:15.520 align:start position:0%
go
 

00:02:15.520 --> 00:02:17.830 align:start position:0%
go
uh<00:02:15.840><c> it</c><00:02:15.920><c> contains</c><00:02:16.400><c> the</c><00:02:16.560><c> last</c><00:02:16.879><c> response</c><00:02:17.520><c> and</c><00:02:17.680><c> the</c>

00:02:17.830 --> 00:02:17.840 align:start position:0%
uh it contains the last response and the
 

00:02:17.840 --> 00:02:19.830 align:start position:0%
uh it contains the last response and the
request<00:02:18.560><c> that</c><00:02:18.800><c> was</c><00:02:19.120><c> used</c><00:02:19.440><c> during</c><00:02:19.680><c> that</c>

00:02:19.830 --> 00:02:19.840 align:start position:0%
request that was used during that
 

00:02:19.840 --> 00:02:21.750 align:start position:0%
request that was used during that
interaction<00:02:20.800><c> so</c><00:02:20.959><c> you</c><00:02:21.040><c> can</c><00:02:21.200><c> actually</c><00:02:21.520><c> pull</c>

00:02:21.750 --> 00:02:21.760 align:start position:0%
interaction so you can actually pull
 

00:02:21.760 --> 00:02:23.990 align:start position:0%
interaction so you can actually pull
those<00:02:22.080><c> out</c><00:02:22.400><c> and</c><00:02:22.879><c> test</c><00:02:23.440><c> against</c><00:02:23.760><c> those</c>

00:02:23.990 --> 00:02:24.000 align:start position:0%
those out and test against those
 

00:02:24.000 --> 00:02:26.229 align:start position:0%
those out and test against those
particular<00:02:24.560><c> values</c><00:02:25.280><c> for</c><00:02:25.520><c> that</c><00:02:25.760><c> point</c><00:02:26.000><c> in</c><00:02:26.080><c> the</c>

00:02:26.229 --> 00:02:26.239 align:start position:0%
particular values for that point in the
 

00:02:26.239 --> 00:02:27.110 align:start position:0%
particular values for that point in the
uh

00:02:27.110 --> 00:02:27.120 align:start position:0%
uh
 

00:02:27.120 --> 00:02:29.190 align:start position:0%
uh
in<00:02:27.200><c> your</c><00:02:27.520><c> in</c><00:02:27.680><c> your</c><00:02:27.840><c> interaction</c>

00:02:29.190 --> 00:02:29.200 align:start position:0%
in your in your interaction
 

00:02:29.200 --> 00:02:30.150 align:start position:0%
in your in your interaction
uh

00:02:30.150 --> 00:02:30.160 align:start position:0%
uh
 

00:02:30.160 --> 00:02:32.150 align:start position:0%
uh
there's<00:02:30.400><c> the</c><00:02:30.560><c> app</c><00:02:30.879><c> and</c><00:02:31.040><c> the</c><00:02:31.120><c> cookie</c><00:02:31.440><c> jar</c><00:02:31.840><c> as</c><00:02:32.000><c> i</c>

00:02:32.150 --> 00:02:32.160 align:start position:0%
there's the app and the cookie jar as i
 

00:02:32.160 --> 00:02:34.390 align:start position:0%
there's the app and the cookie jar as i
have<00:02:32.640><c> already</c><00:02:33.040><c> mentioned</c>

00:02:34.390 --> 00:02:34.400 align:start position:0%
have already mentioned
 

00:02:34.400 --> 00:02:36.550 align:start position:0%
have already mentioned
and<00:02:34.959><c> there's</c><00:02:35.680><c> a</c><00:02:35.760><c> couple</c><00:02:36.000><c> of</c><00:02:36.160><c> extra</c><00:02:36.400><c> things</c>

00:02:36.550 --> 00:02:36.560 align:start position:0%
and there's a couple of extra things
 

00:02:36.560 --> 00:02:38.390 align:start position:0%
and there's a couple of extra things
there<00:02:36.879><c> down</c><00:02:37.040><c> at</c><00:02:37.120><c> the</c><00:02:37.200><c> bottom</c><00:02:37.599><c> for</c><00:02:38.000><c> content</c>

00:02:38.390 --> 00:02:38.400 align:start position:0%
there down at the bottom for content
 

00:02:38.400 --> 00:02:39.990 align:start position:0%
there down at the bottom for content
type<00:02:38.640><c> and</c><00:02:38.720><c> headers</c><00:02:39.120><c> because</c>

00:02:39.990 --> 00:02:40.000 align:start position:0%
type and headers because
 

00:02:40.000 --> 00:02:41.830 align:start position:0%
type and headers because
it's<00:02:40.160><c> nice</c><00:02:40.480><c> to</c><00:02:40.560><c> be</c><00:02:40.720><c> able</c><00:02:40.879><c> to</c><00:02:41.040><c> say</c><00:02:41.440><c> for</c><00:02:41.599><c> all</c>

00:02:41.830 --> 00:02:41.840 align:start position:0%
it's nice to be able to say for all
 

00:02:41.840 --> 00:02:44.070 align:start position:0%
it's nice to be able to say for all
future<00:02:42.160><c> requests</c><00:02:42.720><c> in</c><00:02:42.800><c> this</c><00:02:43.040><c> session</c><00:02:43.760><c> i</c><00:02:43.920><c> want</c>

00:02:44.070 --> 00:02:44.080 align:start position:0%
future requests in this session i want
 

00:02:44.080 --> 00:02:45.990 align:start position:0%
future requests in this session i want
to<00:02:44.160><c> use</c><00:02:44.400><c> the</c><00:02:44.560><c> json</c><00:02:45.040><c> content</c><00:02:45.440><c> type</c><00:02:45.680><c> because</c><00:02:45.840><c> i'm</c>

00:02:45.990 --> 00:02:46.000 align:start position:0%
to use the json content type because i'm
 

00:02:46.000 --> 00:02:48.869 align:start position:0%
to use the json content type because i'm
actually<00:02:46.239><c> testing</c><00:02:46.640><c> say</c><00:02:46.800><c> a</c><00:02:46.879><c> json</c><00:02:47.280><c> api</c>

00:02:48.869 --> 00:02:48.879 align:start position:0%
actually testing say a json api
 

00:02:48.879 --> 00:02:51.670 align:start position:0%
actually testing say a json api
um

00:02:51.670 --> 00:02:51.680 align:start position:0%
um
 

00:02:51.680 --> 00:02:54.309 align:start position:0%
um
and<00:02:51.840><c> so</c><00:02:52.080><c> this</c><00:02:52.400><c> works</c><00:02:53.200><c> this</c><00:02:53.519><c> looks</c><00:02:53.760><c> decently</c>

00:02:54.309 --> 00:02:54.319 align:start position:0%
and so this works this looks decently
 

00:02:54.319 --> 00:02:55.670 align:start position:0%
and so this works this looks decently
well<00:02:54.640><c> for</c>

00:02:55.670 --> 00:02:55.680 align:start position:0%
well for
 

00:02:55.680 --> 00:02:58.070 align:start position:0%
well for
you<00:02:55.840><c> know</c><00:02:56.000><c> hitting</c><00:02:56.400><c> user</c><00:02:56.800><c> or</c><00:02:57.120><c> use</c><00:02:57.360><c> hitting</c><00:02:57.680><c> uh</c>

00:02:58.070 --> 00:02:58.080 align:start position:0%
you know hitting user or use hitting uh
 

00:02:58.080 --> 00:03:00.229 align:start position:0%
you know hitting user or use hitting uh
api<00:02:58.560><c> endpoints</c><00:02:59.360><c> but</c><00:02:59.599><c> it</c><00:02:59.680><c> doesn't</c><00:02:59.920><c> really</c>

00:03:00.229 --> 00:03:00.239 align:start position:0%
api endpoints but it doesn't really
 

00:03:00.239 --> 00:03:02.710 align:start position:0%
api endpoints but it doesn't really
represent<00:03:00.879><c> what</c><00:03:01.120><c> a</c><00:03:01.360><c> user</c><00:03:01.680><c> does</c><00:03:02.000><c> whenever</c><00:03:02.319><c> they</c>

00:03:02.710 --> 00:03:02.720 align:start position:0%
represent what a user does whenever they
 

00:03:02.720 --> 00:03:05.030 align:start position:0%
represent what a user does whenever they
interact<00:03:03.120><c> with</c><00:03:03.280><c> your</c><00:03:03.440><c> application</c>

00:03:05.030 --> 00:03:05.040 align:start position:0%
interact with your application
 

00:03:05.040 --> 00:03:07.270 align:start position:0%
interact with your application
there<00:03:05.280><c> we</c><00:03:05.440><c> have</c><00:03:05.680><c> the</c><00:03:06.239><c> we've</c><00:03:06.480><c> manually</c><00:03:06.879><c> put</c><00:03:07.120><c> in</c>

00:03:07.270 --> 00:03:07.280 align:start position:0%
there we have the we've manually put in
 

00:03:07.280 --> 00:03:09.750 align:start position:0%
there we have the we've manually put in
where<00:03:07.440><c> the</c><00:03:07.599><c> login</c><00:03:08.000><c> url</c><00:03:08.640><c> we</c><00:03:08.800><c> have</c>

00:03:09.750 --> 00:03:09.760 align:start position:0%
where the login url we have
 

00:03:09.760 --> 00:03:11.589 align:start position:0%
where the login url we have
the<00:03:10.000><c> parameters</c><00:03:10.640><c> went</c><00:03:10.959><c> with</c><00:03:11.120><c> the</c><00:03:11.200><c> username</c>

00:03:11.589 --> 00:03:11.599 align:start position:0%
the parameters went with the username
 

00:03:11.599 --> 00:03:13.190 align:start position:0%
the parameters went with the username
and<00:03:11.680><c> password</c><00:03:12.080><c> where</c><00:03:12.239><c> we've</c><00:03:12.640><c> manually</c><00:03:13.040><c> put</c>

00:03:13.190 --> 00:03:13.200 align:start position:0%
and password where we've manually put
 

00:03:13.200 --> 00:03:15.030 align:start position:0%
and password where we've manually put
those<00:03:13.440><c> in</c><00:03:13.599><c> ourselves</c><00:03:14.480><c> and</c><00:03:14.720><c> there's</c><00:03:14.959><c> this</c>

00:03:15.030 --> 00:03:15.040 align:start position:0%
those in ourselves and there's this
 

00:03:15.040 --> 00:03:17.509 align:start position:0%
those in ourselves and there's this
whole<00:03:15.280><c> html</c><00:03:15.920><c> view</c><00:03:16.480><c> if</c><00:03:16.640><c> you're</c><00:03:16.720><c> doing</c><00:03:16.959><c> html</c>

00:03:17.509 --> 00:03:17.519 align:start position:0%
whole html view if you're doing html
 

00:03:17.519 --> 00:03:18.710 align:start position:0%
whole html view if you're doing html
site

00:03:18.710 --> 00:03:18.720 align:start position:0%
site
 

00:03:18.720 --> 00:03:19.750 align:start position:0%
site
where

00:03:19.750 --> 00:03:19.760 align:start position:0%
where
 

00:03:19.760 --> 00:03:21.910 align:start position:0%
where
you<00:03:20.000><c> also</c><00:03:20.239><c> have</c><00:03:20.400><c> to</c><00:03:20.480><c> place</c><00:03:20.800><c> those</c><00:03:21.120><c> particular</c>

00:03:21.910 --> 00:03:21.920 align:start position:0%
you also have to place those particular
 

00:03:21.920 --> 00:03:23.270 align:start position:0%
you also have to place those particular
elements<00:03:22.400><c> and</c><00:03:22.480><c> if</c><00:03:22.560><c> you</c><00:03:22.640><c> get</c><00:03:22.800><c> those</c><00:03:23.040><c> out</c><00:03:23.120><c> of</c>

00:03:23.270 --> 00:03:23.280 align:start position:0%
elements and if you get those out of
 

00:03:23.280 --> 00:03:24.790 align:start position:0%
elements and if you get those out of
sync<00:03:23.519><c> you've</c><00:03:23.599><c> got</c><00:03:23.760><c> to</c><00:03:23.840><c> go</c><00:03:24.159><c> fix</c><00:03:24.480><c> all</c><00:03:24.560><c> of</c><00:03:24.640><c> your</c>

00:03:24.790 --> 00:03:24.800 align:start position:0%
sync you've got to go fix all of your
 

00:03:24.800 --> 00:03:26.790 align:start position:0%
sync you've got to go fix all of your
tests<00:03:25.120><c> if</c><00:03:25.280><c> they</c><00:03:25.440><c> break</c>

00:03:26.790 --> 00:03:26.800 align:start position:0%
tests if they break
 

00:03:26.800 --> 00:03:30.070 align:start position:0%
tests if they break
and<00:03:26.959><c> i</c><00:03:27.120><c> prefer</c><00:03:27.840><c> something</c><00:03:28.239><c> a</c><00:03:28.319><c> little</c><00:03:28.560><c> bit</c>

00:03:30.070 --> 00:03:30.080 align:start position:0%
and i prefer something a little bit
 

00:03:30.080 --> 00:03:31.910 align:start position:0%
and i prefer something a little bit
more<00:03:30.319><c> what</c><00:03:30.480><c> it</c><00:03:30.720><c> looks</c><00:03:31.200><c> actually</c><00:03:31.440><c> like</c><00:03:31.680><c> what</c><00:03:31.840><c> a</c>

00:03:31.910 --> 00:03:31.920 align:start position:0%
more what it looks actually like what a
 

00:03:31.920 --> 00:03:33.270 align:start position:0%
more what it looks actually like what a
user<00:03:32.159><c> does</c>

00:03:33.270 --> 00:03:33.280 align:start position:0%
user does
 

00:03:33.280 --> 00:03:36.070 align:start position:0%
user does
so<00:03:33.680><c> to</c><00:03:33.840><c> that</c><00:03:34.159><c> end</c><00:03:34.400><c> i</c><00:03:34.560><c> built</c><00:03:34.959><c> a</c><00:03:35.040><c> library</c><00:03:35.599><c> called</c>

00:03:36.070 --> 00:03:36.080 align:start position:0%
so to that end i built a library called
 

00:03:36.080 --> 00:03:37.270 align:start position:0%
so to that end i built a library called
caradin

00:03:37.270 --> 00:03:37.280 align:start position:0%
caradin
 

00:03:37.280 --> 00:03:38.789 align:start position:0%
caradin
and<00:03:37.440><c> this</c><00:03:37.760><c> is</c>

00:03:38.789 --> 00:03:38.799 align:start position:0%
and this is
 

00:03:38.799 --> 00:03:41.509 align:start position:0%
and this is
inspired<00:03:39.599><c> by</c><00:03:39.920><c> a</c><00:03:40.080><c> library</c><00:03:40.480><c> called</c><00:03:40.720><c> capybara</c>

00:03:41.509 --> 00:03:41.519 align:start position:0%
inspired by a library called capybara
 

00:03:41.519 --> 00:03:43.750 align:start position:0%
inspired by a library called capybara
from<00:03:41.680><c> the</c><00:03:41.760><c> ruby</c><00:03:42.080><c> world</c>

00:03:43.750 --> 00:03:43.760 align:start position:0%
from the ruby world
 

00:03:43.760 --> 00:03:45.910 align:start position:0%
from the ruby world
here's<00:03:44.000><c> an</c><00:03:44.080><c> example</c><00:03:44.400><c> of</c><00:03:44.560><c> logging</c><00:03:44.879><c> in</c><00:03:45.040><c> with</c><00:03:45.200><c> it</c>

00:03:45.910 --> 00:03:45.920 align:start position:0%
here's an example of logging in with it
 

00:03:45.920 --> 00:03:48.390 align:start position:0%
here's an example of logging in with it
you<00:03:46.319><c> start</c><00:03:46.560><c> a</c><00:03:46.640><c> session</c><00:03:47.120><c> you</c><00:03:47.280><c> go</c><00:03:47.519><c> visit</c><00:03:48.159><c> the</c>

00:03:48.390 --> 00:03:48.400 align:start position:0%
you start a session you go visit the
 

00:03:48.400 --> 00:03:50.710 align:start position:0%
you start a session you go visit the
actual<00:03:48.799><c> root</c><00:03:49.040><c> page</c><00:03:49.840><c> and</c><00:03:49.920><c> then</c><00:03:50.159><c> you</c><00:03:50.319><c> can</c><00:03:50.480><c> tell</c>

00:03:50.710 --> 00:03:50.720 align:start position:0%
actual root page and then you can tell
 

00:03:50.720 --> 00:03:53.990 align:start position:0%
actual root page and then you can tell
it<00:03:50.879><c> to</c><00:03:51.200><c> fill</c><00:03:51.440><c> in</c><00:03:51.760><c> these</c><00:03:52.000><c> elements</c><00:03:52.480><c> on</c><00:03:52.560><c> the</c><00:03:52.720><c> form</c>

00:03:53.990 --> 00:03:54.000 align:start position:0%
it to fill in these elements on the form
 

00:03:54.000 --> 00:03:55.509 align:start position:0%
it to fill in these elements on the form
with<00:03:54.159><c> the</c><00:03:54.319><c> particular</c><00:03:54.799><c> login</c><00:03:55.120><c> name</c><00:03:55.360><c> and</c><00:03:55.440><c> the</c>

00:03:55.509 --> 00:03:55.519 align:start position:0%
with the particular login name and the
 

00:03:55.519 --> 00:03:57.030 align:start position:0%
with the particular login name and the
password<00:03:56.000><c> and</c><00:03:56.080><c> you</c><00:03:56.159><c> can</c><00:03:56.319><c> tell</c><00:03:56.480><c> it</c><00:03:56.560><c> to</c><00:03:56.640><c> go</c><00:03:56.799><c> press</c>

00:03:57.030 --> 00:03:57.040 align:start position:0%
password and you can tell it to go press
 

00:03:57.040 --> 00:03:58.229 align:start position:0%
password and you can tell it to go press
this<00:03:57.200><c> button</c>

00:03:58.229 --> 00:03:58.239 align:start position:0%
this button
 

00:03:58.239 --> 00:03:59.990 align:start position:0%
this button
and<00:03:58.879><c> in</c><00:03:58.959><c> this</c><00:03:59.120><c> case</c><00:03:59.280><c> follow</c><00:03:59.519><c> the</c><00:03:59.680><c> redirect</c>

00:03:59.990 --> 00:04:00.000 align:start position:0%
and in this case follow the redirect
 

00:04:00.000 --> 00:04:01.270 align:start position:0%
and in this case follow the redirect
around

00:04:01.270 --> 00:04:01.280 align:start position:0%
around
 

00:04:01.280 --> 00:04:04.070 align:start position:0%
around
this<00:04:01.599><c> uses</c><00:04:02.400><c> in</c><00:04:02.560><c> live</c><00:04:02.879><c> underneath</c><00:04:03.360><c> to</c><00:04:03.599><c> actually</c>

00:04:04.070 --> 00:04:04.080 align:start position:0%
this uses in live underneath to actually
 

00:04:04.080 --> 00:04:05.990 align:start position:0%
this uses in live underneath to actually
parse<00:04:04.560><c> the</c><00:04:04.720><c> html</c>

00:04:05.990 --> 00:04:06.000 align:start position:0%
parse the html
 

00:04:06.000 --> 00:04:07.670 align:start position:0%
parse the html
to<00:04:06.560><c> figure</c><00:04:06.799><c> out</c><00:04:06.879><c> what</c><00:04:06.959><c> the</c><00:04:07.120><c> different</c><00:04:07.280><c> nodes</c>

00:04:07.670 --> 00:04:07.680 align:start position:0%
to figure out what the different nodes
 

00:04:07.680 --> 00:04:10.070 align:start position:0%
to figure out what the different nodes
are<00:04:07.920><c> and</c><00:04:08.640><c> actually</c><00:04:08.959><c> to</c><00:04:09.120><c> update</c><00:04:09.439><c> them</c><00:04:09.680><c> as</c><00:04:09.920><c> you</c>

00:04:10.070 --> 00:04:10.080 align:start position:0%
are and actually to update them as you
 

00:04:10.080 --> 00:04:11.429 align:start position:0%
are and actually to update them as you
do<00:04:10.319><c> the</c>

00:04:11.429 --> 00:04:11.439 align:start position:0%
do the
 

00:04:11.439 --> 00:04:16.229 align:start position:0%
do the
the<00:04:11.760><c> form</c><00:04:12.159><c> the</c><00:04:12.400><c> form</c><00:04:12.640><c> interaction</c>

00:04:16.229 --> 00:04:16.239 align:start position:0%
 
 

00:04:16.239 --> 00:04:19.430 align:start position:0%
 
since<00:04:17.040><c> you</c><00:04:17.199><c> don't</c><00:04:17.440><c> always</c><00:04:17.840><c> have</c><00:04:18.400><c> fields</c>

00:04:19.430 --> 00:04:19.440 align:start position:0%
since you don't always have fields
 

00:04:19.440 --> 00:04:22.069 align:start position:0%
since you don't always have fields
particular<00:04:20.400><c> in</c><00:04:20.479><c> this</c><00:04:20.639><c> case</c><00:04:21.359><c> this</c><00:04:21.680><c> looks</c><00:04:21.919><c> at</c>

00:04:22.069 --> 00:04:22.079 align:start position:0%
particular in this case this looks at
 

00:04:22.079 --> 00:04:24.790 align:start position:0%
particular in this case this looks at
the<00:04:22.240><c> labels</c><00:04:22.720><c> for</c><00:04:22.960><c> say</c><00:04:23.199><c> the</c><00:04:23.600><c> the</c><00:04:24.160><c> login</c><00:04:24.560><c> looks</c>

00:04:24.790 --> 00:04:24.800 align:start position:0%
the labels for say the the login looks
 

00:04:24.800 --> 00:04:27.030 align:start position:0%
the labels for say the the login looks
at<00:04:24.880><c> the</c><00:04:24.960><c> label</c><00:04:25.600><c> and</c><00:04:25.680><c> then</c><00:04:25.919><c> finds</c><00:04:26.240><c> the</c><00:04:26.639><c> the</c><00:04:26.800><c> text</c>

00:04:27.030 --> 00:04:27.040 align:start position:0%
at the label and then finds the the text
 

00:04:27.040 --> 00:04:28.550 align:start position:0%
at the label and then finds the the text
field<00:04:27.280><c> associated</c><00:04:27.759><c> with</c><00:04:28.000><c> it</c><00:04:28.080><c> to</c><00:04:28.320><c> do</c><00:04:28.479><c> the</c>

00:04:28.550 --> 00:04:28.560 align:start position:0%
field associated with it to do the
 

00:04:28.560 --> 00:04:30.070 align:start position:0%
field associated with it to do the
username

00:04:30.070 --> 00:04:30.080 align:start position:0%
username
 

00:04:30.080 --> 00:04:31.990 align:start position:0%
username
you<00:04:30.160><c> don't</c><00:04:30.400><c> always</c><00:04:30.720><c> have</c>

00:04:31.990 --> 00:04:32.000 align:start position:0%
you don't always have
 

00:04:32.000 --> 00:04:35.270 align:start position:0%
you don't always have
labels<00:04:32.400><c> so</c><00:04:32.880><c> it</c><00:04:33.120><c> also</c><00:04:33.360><c> allows</c><00:04:33.600><c> you</c><00:04:33.759><c> to</c><00:04:33.840><c> do</c><00:04:34.160><c> css</c>

00:04:35.270 --> 00:04:35.280 align:start position:0%
labels so it also allows you to do css
 

00:04:35.280 --> 00:04:38.629 align:start position:0%
labels so it also allows you to do css
the<00:04:35.440><c> in</c><00:04:35.600><c> live</c><00:04:35.840><c> selector</c><00:04:36.240><c> syntax</c><00:04:36.880><c> to</c><00:04:37.199><c> choose</c>

00:04:38.629 --> 00:04:38.639 align:start position:0%
the in live selector syntax to choose
 

00:04:38.639 --> 00:04:40.550 align:start position:0%
the in live selector syntax to choose
what<00:04:38.880><c> html</c><00:04:39.440><c> elements</c><00:04:39.840><c> you're</c><00:04:40.000><c> interacting</c>

00:04:40.550 --> 00:04:40.560 align:start position:0%
what html elements you're interacting
 

00:04:40.560 --> 00:04:42.150 align:start position:0%
what html elements you're interacting
with

00:04:42.150 --> 00:04:42.160 align:start position:0%
with
 

00:04:42.160 --> 00:04:44.150 align:start position:0%
with
in<00:04:42.320><c> addition</c><00:04:42.639><c> there's</c><00:04:42.960><c> a</c><00:04:43.199><c> within</c><00:04:43.680><c> form</c><00:04:43.919><c> that</c><00:04:44.000><c> i</c>

00:04:44.150 --> 00:04:44.160 align:start position:0%
in addition there's a within form that i
 

00:04:44.160 --> 00:04:45.510 align:start position:0%
in addition there's a within form that i
added<00:04:44.400><c> up</c><00:04:44.560><c> on</c><00:04:44.639><c> that</c><00:04:44.880><c> slide</c><00:04:45.120><c> that</c><00:04:45.199><c> was</c><00:04:45.280><c> not</c><00:04:45.440><c> on</c>

00:04:45.510 --> 00:04:45.520 align:start position:0%
added up on that slide that was not on
 

00:04:45.520 --> 00:04:46.710 align:start position:0%
added up on that slide that was not on
the<00:04:45.600><c> previous</c><00:04:45.919><c> one</c>

00:04:46.710 --> 00:04:46.720 align:start position:0%
the previous one
 

00:04:46.720 --> 00:04:50.150 align:start position:0%
the previous one
that<00:04:46.960><c> allows</c><00:04:47.280><c> you</c><00:04:47.520><c> to</c><00:04:47.840><c> scope</c><00:04:48.639><c> all</c><00:04:49.040><c> of</c><00:04:49.680><c> the</c>

00:04:50.150 --> 00:04:50.160 align:start position:0%
that allows you to scope all of the
 

00:04:50.160 --> 00:04:52.230 align:start position:0%
that allows you to scope all of the
interactions<00:04:50.639><c> in</c><00:04:50.720><c> the</c><00:04:50.800><c> body</c><00:04:51.360><c> to</c><00:04:52.000><c> that</c>

00:04:52.230 --> 00:04:52.240 align:start position:0%
interactions in the body to that
 

00:04:52.240 --> 00:04:58.310 align:start position:0%
interactions in the body to that
particular<00:04:52.720><c> section</c><00:04:53.120><c> of</c><00:04:53.199><c> the</c><00:04:53.440><c> html</c>

00:04:58.310 --> 00:04:58.320 align:start position:0%
 
 

00:04:58.320 --> 00:05:01.110 align:start position:0%
 
uh<00:04:58.479><c> in</c><00:04:58.639><c> addition</c><00:04:59.199><c> i</c><00:04:59.440><c> like</c><00:04:59.680><c> to</c><00:05:00.080><c> to</c><00:05:00.320><c> be</c><00:05:00.479><c> able</c><00:05:00.639><c> to</c>

00:05:01.110 --> 00:05:01.120 align:start position:0%
uh in addition i like to to be able to
 

00:05:01.120 --> 00:05:04.230 align:start position:0%
uh in addition i like to to be able to
go<00:05:01.440><c> through</c><00:05:02.000><c> a</c><00:05:02.160><c> portion</c><00:05:02.560><c> of</c><00:05:03.199><c> the</c><00:05:03.360><c> test</c>

00:05:04.230 --> 00:05:04.240 align:start position:0%
go through a portion of the test
 

00:05:04.240 --> 00:05:06.070 align:start position:0%
go through a portion of the test
to<00:05:04.400><c> do</c><00:05:05.040><c> some</c><00:05:05.280><c> interaction</c><00:05:05.600><c> with</c><00:05:05.759><c> the</c><00:05:05.840><c> website</c>

00:05:06.070 --> 00:05:06.080 align:start position:0%
to do some interaction with the website
 

00:05:06.080 --> 00:05:08.390 align:start position:0%
to do some interaction with the website
and<00:05:06.160><c> then</c><00:05:06.320><c> actually</c><00:05:06.639><c> test</c><00:05:06.880><c> some</c><00:05:07.039><c> of</c><00:05:07.120><c> the</c><00:05:07.360><c> uh</c>

00:05:08.390 --> 00:05:08.400 align:start position:0%
and then actually test some of the uh
 

00:05:08.400 --> 00:05:09.909 align:start position:0%
and then actually test some of the uh
that<00:05:08.639><c> i'm</c><00:05:08.800><c> actually</c><00:05:09.039><c> getting</c><00:05:09.280><c> what</c><00:05:09.440><c> i</c><00:05:09.600><c> expect</c>

00:05:09.909 --> 00:05:09.919 align:start position:0%
that i'm actually getting what i expect
 

00:05:09.919 --> 00:05:12.390 align:start position:0%
that i'm actually getting what i expect
and<00:05:10.000><c> then</c><00:05:10.160><c> continue</c><00:05:10.560><c> on</c><00:05:11.199><c> so</c><00:05:11.360><c> carried</c><00:05:11.680><c> in</c><00:05:11.840><c> has</c><00:05:12.080><c> a</c>

00:05:12.390 --> 00:05:12.400 align:start position:0%
and then continue on so carried in has a
 

00:05:12.400 --> 00:05:13.990 align:start position:0%
and then continue on so carried in has a
selection<00:05:13.120><c> a</c><00:05:13.199><c> small</c><00:05:13.520><c> selection</c><00:05:13.840><c> at</c><00:05:13.919><c> the</c>

00:05:13.990 --> 00:05:14.000 align:start position:0%
selection a small selection at the
 

00:05:14.000 --> 00:05:16.150 align:start position:0%
selection a small selection at the
moment<00:05:14.400><c> of</c><00:05:14.800><c> test</c><00:05:15.039><c> helpers</c>

00:05:16.150 --> 00:05:16.160 align:start position:0%
moment of test helpers
 

00:05:16.160 --> 00:05:17.590 align:start position:0%
moment of test helpers
uh

00:05:17.590 --> 00:05:17.600 align:start position:0%
uh
 

00:05:17.600 --> 00:05:19.749 align:start position:0%
uh
you<00:05:17.840><c> wrap</c><00:05:18.080><c> them</c><00:05:18.240><c> in</c><00:05:18.320><c> the</c><00:05:18.400><c> has</c><00:05:18.720><c> function</c><00:05:19.440><c> and</c><00:05:19.680><c> in</c>

00:05:19.749 --> 00:05:19.759 align:start position:0%
you wrap them in the has function and in
 

00:05:19.759 --> 00:05:21.110 align:start position:0%
you wrap them in the has function and in
this<00:05:19.919><c> case</c><00:05:20.160><c> we're</c><00:05:20.320><c> actually</c><00:05:20.639><c> checking</c>

00:05:21.110 --> 00:05:21.120 align:start position:0%
this case we're actually checking
 

00:05:21.120 --> 00:05:22.629 align:start position:0%
this case we're actually checking
whenever<00:05:21.440><c> we</c><00:05:21.520><c> go</c><00:05:21.680><c> to</c><00:05:21.759><c> the</c><00:05:21.840><c> root</c><00:05:22.000><c> page</c><00:05:22.400><c> did</c><00:05:22.560><c> we</c>

00:05:22.629 --> 00:05:22.639 align:start position:0%
whenever we go to the root page did we
 

00:05:22.639 --> 00:05:25.430 align:start position:0%
whenever we go to the root page did we
get<00:05:22.720><c> a</c><00:05:22.880><c> 200</c><00:05:23.280><c> response</c><00:05:24.000><c> uh</c><00:05:24.400><c> status</c>

00:05:25.430 --> 00:05:25.440 align:start position:0%
get a 200 response uh status
 

00:05:25.440 --> 00:05:27.590 align:start position:0%
get a 200 response uh status
and<00:05:25.759><c> does</c><00:05:25.919><c> it</c><00:05:26.080><c> have</c><00:05:26.720><c> does</c><00:05:26.880><c> the</c><00:05:26.960><c> page</c><00:05:27.280><c> text</c>

00:05:27.590 --> 00:05:27.600 align:start position:0%
and does it have does the page text
 

00:05:27.600 --> 00:05:29.830 align:start position:0%
and does it have does the page text
actually<00:05:27.919><c> have</c><00:05:28.400><c> hello</c><00:05:28.720><c> world</c><00:05:28.960><c> in</c><00:05:29.120><c> it</c><00:05:29.520><c> so</c><00:05:29.680><c> it</c>

00:05:29.830 --> 00:05:29.840 align:start position:0%
actually have hello world in it so it
 

00:05:29.840 --> 00:05:31.830 align:start position:0%
actually have hello world in it so it
actually<00:05:30.160><c> parses</c><00:05:30.639><c> out</c><00:05:31.039><c> you</c><00:05:31.120><c> know</c><00:05:31.280><c> goes</c><00:05:31.520><c> uses</c>

00:05:31.830 --> 00:05:31.840 align:start position:0%
actually parses out you know goes uses
 

00:05:31.840 --> 00:05:33.590 align:start position:0%
actually parses out you know goes uses
in<00:05:32.000><c> live</c><00:05:32.160><c> and</c><00:05:32.320><c> checks</c><00:05:32.639><c> through</c><00:05:32.880><c> the</c><00:05:32.960><c> html</c><00:05:33.520><c> and</c>

00:05:33.590 --> 00:05:33.600 align:start position:0%
in live and checks through the html and
 

00:05:33.600 --> 00:05:35.590 align:start position:0%
in live and checks through the html and
gets<00:05:33.840><c> out</c><00:05:33.919><c> what's</c><00:05:34.240><c> in</c><00:05:34.320><c> the</c><00:05:34.400><c> body</c><00:05:34.720><c> and</c>

00:05:35.590 --> 00:05:35.600 align:start position:0%
gets out what's in the body and
 

00:05:35.600 --> 00:05:38.310 align:start position:0%
gets out what's in the body and
checks<00:05:35.840><c> the</c><00:05:36.000><c> text</c><00:05:36.240><c> for</c><00:05:36.400><c> that</c>

00:05:38.310 --> 00:05:38.320 align:start position:0%
checks the text for that
 

00:05:38.320 --> 00:05:39.350 align:start position:0%
checks the text for that
and<00:05:38.400><c> then</c><00:05:38.560><c> once</c><00:05:38.800><c> we've</c><00:05:38.960><c> done</c><00:05:39.120><c> those</c>

00:05:39.350 --> 00:05:39.360 align:start position:0%
and then once we've done those
 

00:05:39.360 --> 00:05:41.029 align:start position:0%
and then once we've done those
particular<00:05:39.840><c> tests</c><00:05:40.080><c> we</c><00:05:40.160><c> can</c><00:05:40.400><c> it</c><00:05:40.560><c> will</c><00:05:40.720><c> actually</c>

00:05:41.029 --> 00:05:41.039 align:start position:0%
particular tests we can it will actually
 

00:05:41.039 --> 00:05:43.590 align:start position:0%
particular tests we can it will actually
continue<00:05:41.440><c> running</c><00:05:41.919><c> and</c><00:05:42.479><c> we'll</c><00:05:43.120><c> as</c><00:05:43.360><c> you</c><00:05:43.440><c> see</c>

00:05:43.590 --> 00:05:43.600 align:start position:0%
continue running and we'll as you see
 

00:05:43.600 --> 00:05:46.230 align:start position:0%
continue running and we'll as you see
that<00:05:43.680><c> i</c><00:05:43.759><c> can</c><00:05:43.919><c> do</c><00:05:44.160><c> a</c><00:05:44.560><c> following</c><00:05:45.120><c> of</c><00:05:45.280><c> a</c><00:05:45.360><c> link</c><00:05:46.080><c> in</c>

00:05:46.230 --> 00:05:46.240 align:start position:0%
that i can do a following of a link in
 

00:05:46.240 --> 00:05:50.150 align:start position:0%
that i can do a following of a link in
this<00:05:46.400><c> case</c><00:05:46.720><c> to</c><00:05:47.120><c> whatever</c><00:05:47.600><c> reason</c><00:05:48.000><c> would</c><00:05:48.160><c> be</c>

00:05:50.150 --> 00:05:50.160 align:start position:0%
this case to whatever reason would be
 

00:05:50.160 --> 00:05:53.909 align:start position:0%
this case to whatever reason would be
this<00:05:50.479><c> works</c><00:05:50.880><c> by</c><00:05:51.199><c> hooking</c><00:05:51.840><c> into</c><00:05:52.560><c> closure.test</c>

00:05:53.909 --> 00:05:53.919 align:start position:0%
this works by hooking into closure.test
 

00:05:53.919 --> 00:05:55.350 align:start position:0%
this works by hooking into closure.test
as

00:05:55.350 --> 00:05:55.360 align:start position:0%
as
 

00:05:55.360 --> 00:05:56.390 align:start position:0%
as
through<00:05:55.600><c> some</c><00:05:55.759><c> of</c><00:05:55.840><c> the</c><00:05:56.000><c> underlying</c>

00:05:56.390 --> 00:05:56.400 align:start position:0%
through some of the underlying
 

00:05:56.400 --> 00:05:58.950 align:start position:0%
through some of the underlying
mechanisms<00:05:56.960><c> of</c><00:05:57.120><c> it</c><00:05:57.680><c> i</c><00:05:57.840><c> don't</c><00:05:58.080><c> have</c><00:05:58.240><c> anything</c>

00:05:58.950 --> 00:05:58.960 align:start position:0%
mechanisms of it i don't have anything
 

00:05:58.960 --> 00:06:00.230 align:start position:0%
mechanisms of it i don't have anything
for

00:06:00.230 --> 00:06:00.240 align:start position:0%
for
 

00:06:00.240 --> 00:06:02.710 align:start position:0%
for
expectations<00:06:01.039><c> or</c><00:06:01.280><c> midge</c><00:06:02.000><c> as</c><00:06:02.240><c> i</c><00:06:02.320><c> do</c><00:06:02.479><c> not</c>

00:06:02.710 --> 00:06:02.720 align:start position:0%
expectations or midge as i do not
 

00:06:02.720 --> 00:06:04.830 align:start position:0%
expectations or midge as i do not
particularly<00:06:03.199><c> use</c><00:06:03.360><c> those</c><00:06:03.600><c> ones</c>

00:06:04.830 --> 00:06:04.840 align:start position:0%
particularly use those ones
 

00:06:04.840 --> 00:06:07.670 align:start position:0%
particularly use those ones
yet<00:06:05.600><c> uh</c><00:06:06.160><c> let's</c><00:06:06.400><c> see</c>

00:06:07.670 --> 00:06:07.680 align:start position:0%
yet uh let's see
 

00:06:07.680 --> 00:06:09.590 align:start position:0%
yet uh let's see
in<00:06:07.759><c> the</c><00:06:07.919><c> future</c><00:06:08.720><c> uh</c><00:06:09.039><c> there's</c><00:06:09.199><c> still</c><00:06:09.360><c> some</c>

00:06:09.590 --> 00:06:09.600 align:start position:0%
in the future uh there's still some
 

00:06:09.600 --> 00:06:11.270 align:start position:0%
in the future uh there's still some
additions<00:06:09.919><c> that</c><00:06:10.000><c> need</c><00:06:10.160><c> to</c><00:06:10.240><c> be</c><00:06:10.400><c> made</c><00:06:11.039><c> uh</c>

00:06:11.270 --> 00:06:11.280 align:start position:0%
additions that need to be made uh
 

00:06:11.280 --> 00:06:12.629 align:start position:0%
additions that need to be made uh
peridot<00:06:11.759><c> for</c><00:06:11.840><c> example</c><00:06:12.160><c> doesn't</c><00:06:12.400><c> really</c>

00:06:12.629 --> 00:06:12.639 align:start position:0%
peridot for example doesn't really
 

00:06:12.639 --> 00:06:15.590 align:start position:0%
peridot for example doesn't really
support<00:06:13.360><c> uh</c><00:06:13.680><c> nested</c><00:06:14.000><c> parameters</c>

00:06:15.590 --> 00:06:15.600 align:start position:0%
support uh nested parameters
 

00:06:15.600 --> 00:06:17.430 align:start position:0%
support uh nested parameters
uh<00:06:16.160><c> so</c><00:06:16.479><c> it'd</c><00:06:16.560><c> be</c><00:06:16.720><c> nice</c><00:06:16.880><c> to</c><00:06:17.039><c> actually</c><00:06:17.280><c> have</c>

00:06:17.430 --> 00:06:17.440 align:start position:0%
uh so it'd be nice to actually have
 

00:06:17.440 --> 00:06:18.790 align:start position:0%
uh so it'd be nice to actually have
those<00:06:17.759><c> go</c><00:06:17.919><c> in</c><00:06:18.080><c> where</c>

00:06:18.790 --> 00:06:18.800 align:start position:0%
those go in where
 

00:06:18.800 --> 00:06:20.790 align:start position:0%
those go in where
if<00:06:18.960><c> you</c><00:06:19.039><c> have</c><00:06:19.280><c> the</c><00:06:19.440><c> wrap</c><00:06:19.680><c> nested</c><00:06:20.000><c> parameters</c>

00:06:20.790 --> 00:06:20.800 align:start position:0%
if you have the wrap nested parameters
 

00:06:20.800 --> 00:06:22.710 align:start position:0%
if you have the wrap nested parameters
uh

00:06:22.710 --> 00:06:22.720 align:start position:0%
uh
 

00:06:22.720 --> 00:06:24.070 align:start position:0%
uh
middleware

00:06:24.070 --> 00:06:24.080 align:start position:0%
middleware
 

00:06:24.080 --> 00:06:25.909 align:start position:0%
middleware
you<00:06:24.240><c> can</c><00:06:24.479><c> actually</c><00:06:24.880><c> keep</c><00:06:25.120><c> those</c><00:06:25.440><c> in</c><00:06:25.520><c> line</c><00:06:25.759><c> as</c>

00:06:25.909 --> 00:06:25.919 align:start position:0%
you can actually keep those in line as
 

00:06:25.919 --> 00:06:27.990 align:start position:0%
you can actually keep those in line as
you<00:06:26.000><c> would</c><00:06:26.160><c> expect</c>

00:06:27.990 --> 00:06:28.000 align:start position:0%
you would expect
 

00:06:28.000 --> 00:06:29.590 align:start position:0%
you would expect
that<00:06:28.240><c> actually</c><00:06:28.639><c> might</c><00:06:28.880><c> end</c><00:06:29.039><c> up</c><00:06:29.120><c> being</c><00:06:29.360><c> better</c>

00:06:29.590 --> 00:06:29.600 align:start position:0%
that actually might end up being better
 

00:06:29.600 --> 00:06:31.749 align:start position:0%
that actually might end up being better
off<00:06:29.840><c> in</c><00:06:30.080><c> ring</c><00:06:30.400><c> box</c><00:06:30.800><c> so</c><00:06:30.960><c> if</c><00:06:31.120><c> i</c><00:06:31.280><c> when</c><00:06:31.440><c> i</c><00:06:31.600><c> get</c><00:06:31.680><c> to</c>

00:06:31.749 --> 00:06:31.759 align:start position:0%
off in ring box so if i when i get to
 

00:06:31.759 --> 00:06:33.189 align:start position:0%
off in ring box so if i when i get to
that<00:06:32.000><c> it</c><00:06:32.080><c> might</c><00:06:32.319><c> end</c><00:06:32.479><c> up</c><00:06:32.560><c> being</c><00:06:32.800><c> a</c><00:06:32.880><c> patch</c><00:06:33.120><c> in</c>

00:06:33.189 --> 00:06:33.199 align:start position:0%
that it might end up being a patch in
 

00:06:33.199 --> 00:06:35.430 align:start position:0%
that it might end up being a patch in
that<00:06:33.360><c> direction</c>

00:06:35.430 --> 00:06:35.440 align:start position:0%
that direction
 

00:06:35.440 --> 00:06:37.830 align:start position:0%
that direction
in<00:06:35.600><c> addition</c><00:06:36.000><c> keratin</c><00:06:36.479><c> doesn't</c><00:06:37.199><c> yet</c><00:06:37.440><c> support</c>

00:06:37.830 --> 00:06:37.840 align:start position:0%
in addition keratin doesn't yet support
 

00:06:37.840 --> 00:06:39.510 align:start position:0%
in addition keratin doesn't yet support
all<00:06:38.000><c> of</c><00:06:38.160><c> the</c><00:06:38.319><c> different</c><00:06:38.560><c> html</c><00:06:39.039><c> elements</c><00:06:39.440><c> i</c>

00:06:39.510 --> 00:06:39.520 align:start position:0%
all of the different html elements i
 

00:06:39.520 --> 00:06:41.189 align:start position:0%
all of the different html elements i
need<00:06:39.680><c> to</c><00:06:39.759><c> make</c><00:06:39.919><c> it</c><00:06:40.240><c> understand</c><00:06:40.720><c> things</c><00:06:40.960><c> about</c>

00:06:41.189 --> 00:06:41.199 align:start position:0%
need to make it understand things about
 

00:06:41.199 --> 00:06:43.749 align:start position:0%
need to make it understand things about
check<00:06:41.440><c> boxes</c><00:06:42.000><c> and</c><00:06:42.160><c> radio</c><00:06:42.479><c> buttons</c><00:06:43.360><c> and</c><00:06:43.520><c> drop</c>

00:06:43.749 --> 00:06:43.759 align:start position:0%
check boxes and radio buttons and drop
 

00:06:43.759 --> 00:06:46.710 align:start position:0%
check boxes and radio buttons and drop
downs<00:06:44.400><c> and</c><00:06:44.560><c> then</c><00:06:44.800><c> just</c><00:06:45.520><c> figure</c><00:06:45.840><c> out</c><00:06:46.080><c> what</c><00:06:46.479><c> else</c>

00:06:46.710 --> 00:06:46.720 align:start position:0%
downs and then just figure out what else
 

00:06:46.720 --> 00:06:50.070 align:start position:0%
downs and then just figure out what else
works<00:06:47.120><c> good</c><00:06:47.440><c> for</c><00:06:47.840><c> test</c><00:06:48.080><c> helpers</c>

00:06:50.070 --> 00:06:50.080 align:start position:0%
works good for test helpers
 

00:06:50.080 --> 00:06:52.070 align:start position:0%
works good for test helpers
not<00:06:50.400><c> on</c><00:06:50.560><c> here</c><00:06:50.880><c> is</c><00:06:51.039><c> i'd</c><00:06:51.199><c> like</c><00:06:51.440><c> to</c><00:06:51.600><c> eventually</c>

00:06:52.070 --> 00:06:52.080 align:start position:0%
not on here is i'd like to eventually
 

00:06:52.080 --> 00:06:54.469 align:start position:0%
not on here is i'd like to eventually
even<00:06:52.479><c> have</c><00:06:52.639><c> it</c><00:06:52.800><c> the</c><00:06:52.880><c> ability</c><00:06:53.280><c> to</c><00:06:53.919><c> say</c><00:06:54.240><c> instead</c>

00:06:54.469 --> 00:06:54.479 align:start position:0%
even have it the ability to say instead
 

00:06:54.479 --> 00:06:56.790 align:start position:0%
even have it the ability to say instead
of<00:06:54.560><c> using</c><00:06:55.120><c> peridot</c><00:06:55.600><c> and</c><00:06:55.759><c> in</c><00:06:55.919><c> live</c>

00:06:56.790 --> 00:06:56.800 align:start position:0%
of using peridot and in live
 

00:06:56.800 --> 00:06:59.510 align:start position:0%
of using peridot and in live
can<00:06:56.960><c> you</c><00:06:57.120><c> instead</c><00:06:57.440><c> use</c><00:06:57.680><c> clj</c><00:06:58.160><c> webdriver</c>

00:06:59.510 --> 00:06:59.520 align:start position:0%
can you instead use clj webdriver
 

00:06:59.520 --> 00:07:01.110 align:start position:0%
can you instead use clj webdriver
as<00:06:59.680><c> part</c><00:06:59.840><c> of</c><00:06:59.919><c> this</c><00:07:00.080><c> session</c><00:07:00.479><c> so</c><00:07:00.639><c> that</c><00:07:00.720><c> you</c><00:07:00.880><c> can</c>

00:07:01.110 --> 00:07:01.120 align:start position:0%
as part of this session so that you can
 

00:07:01.120 --> 00:07:03.189 align:start position:0%
as part of this session so that you can
actually<00:07:01.599><c> do</c><00:07:02.000><c> javascript</c><00:07:02.639><c> you</c><00:07:02.800><c> know</c><00:07:02.880><c> testing</c>

00:07:03.189 --> 00:07:03.199 align:start position:0%
actually do javascript you know testing
 

00:07:03.199 --> 00:07:04.790 align:start position:0%
actually do javascript you know testing
so<00:07:03.360><c> that</c><00:07:03.440><c> whenever</c><00:07:03.680><c> you</c><00:07:03.759><c> actually</c><00:07:04.160><c> start</c><00:07:04.639><c> you</c>

00:07:04.790 --> 00:07:04.800 align:start position:0%
so that whenever you actually start you
 

00:07:04.800 --> 00:07:06.070 align:start position:0%
so that whenever you actually start you
have<00:07:04.880><c> your</c><00:07:04.960><c> html</c><00:07:05.360><c> page</c><00:07:05.599><c> and</c><00:07:05.680><c> you</c><00:07:05.759><c> got</c><00:07:05.840><c> a</c><00:07:05.919><c> little</c>

00:07:06.070 --> 00:07:06.080 align:start position:0%
have your html page and you got a little
 

00:07:06.080 --> 00:07:08.230 align:start position:0%
have your html page and you got a little
bit<00:07:06.160><c> of</c><00:07:06.240><c> ajax</c><00:07:06.720><c> you</c><00:07:06.800><c> don't</c><00:07:06.960><c> have</c><00:07:07.039><c> to</c><00:07:07.199><c> port</c>

00:07:08.230 --> 00:07:08.240 align:start position:0%
bit of ajax you don't have to port
 

00:07:08.240 --> 00:07:09.749 align:start position:0%
bit of ajax you don't have to port
you<00:07:08.319><c> know</c><00:07:08.560><c> whatever</c><00:07:08.960><c> in</c><00:07:09.039><c> your</c><00:07:09.199><c> test</c><00:07:09.360><c> suite</c><00:07:09.680><c> it</c>

00:07:09.749 --> 00:07:09.759 align:start position:0%
you know whatever in your test suite it
 

00:07:09.759 --> 00:07:11.510 align:start position:0%
you know whatever in your test suite it
is<00:07:09.840><c> that</c><00:07:10.000><c> now</c><00:07:10.240><c> has</c><00:07:10.400><c> to</c><00:07:10.479><c> do</c><00:07:10.560><c> with</c><00:07:10.720><c> the</c><00:07:10.800><c> ajax</c><00:07:11.199><c> call</c>

00:07:11.510 --> 00:07:11.520 align:start position:0%
is that now has to do with the ajax call
 

00:07:11.520 --> 00:07:14.830 align:start position:0%
is that now has to do with the ajax call
you<00:07:11.599><c> can</c><00:07:11.680><c> just</c><00:07:12.240><c> flip</c><00:07:12.479><c> a</c><00:07:12.560><c> switch</c><00:07:12.880><c> hopefully</c>

00:07:14.830 --> 00:07:14.840 align:start position:0%
you can just flip a switch hopefully
 

00:07:14.840 --> 00:07:18.390 align:start position:0%
you can just flip a switch hopefully
uh<00:07:16.000><c> there</c><00:07:16.319><c> are</c><00:07:16.560><c> where</c><00:07:16.720><c> they</c><00:07:16.880><c> are</c><00:07:17.120><c> on</c><00:07:17.280><c> github</c>

00:07:18.390 --> 00:07:18.400 align:start position:0%
uh there are where they are on github
 

00:07:18.400 --> 00:07:20.710 align:start position:0%
uh there are where they are on github
uh<00:07:18.639><c> that's</c><00:07:18.880><c> my</c><00:07:19.120><c> url</c><00:07:19.680><c> and</c><00:07:19.919><c> twitter</c><00:07:20.160><c> handler</c><00:07:20.639><c> if</c>

00:07:20.710 --> 00:07:20.720 align:start position:0%
uh that's my url and twitter handler if
 

00:07:20.720 --> 00:07:21.909 align:start position:0%
uh that's my url and twitter handler if
you<00:07:20.800><c> want</c><00:07:21.039><c> twitter</c><00:07:21.360><c> handle</c><00:07:21.599><c> if</c><00:07:21.680><c> you</c><00:07:21.759><c> want</c><00:07:21.840><c> to</c>

00:07:21.909 --> 00:07:21.919 align:start position:0%
you want twitter handle if you want to
 

00:07:21.919 --> 00:07:23.189 align:start position:0%
you want twitter handle if you want to
find<00:07:22.240><c> me</c>

00:07:23.189 --> 00:07:23.199 align:start position:0%
find me
 

00:07:23.199 --> 00:07:25.350 align:start position:0%
find me
and<00:07:23.680><c> if</c><00:07:23.840><c> you</c><00:07:23.919><c> want</c><00:07:24.080><c> to</c><00:07:24.160><c> see</c><00:07:24.400><c> some</c><00:07:24.560><c> examples</c><00:07:25.120><c> of</c>

00:07:25.350 --> 00:07:25.360 align:start position:0%
and if you want to see some examples of
 

00:07:25.360 --> 00:07:27.589 align:start position:0%
and if you want to see some examples of
keratin<00:07:25.919><c> actually</c><00:07:26.240><c> in</c><00:07:26.400><c> use</c><00:07:27.039><c> if</c><00:07:27.120><c> you</c><00:07:27.199><c> go</c><00:07:27.360><c> check</c>

00:07:27.589 --> 00:07:27.599 align:start position:0%
keratin actually in use if you go check
 

00:07:27.599 --> 00:07:30.309 align:start position:0%
keratin actually in use if you go check
out<00:07:27.759><c> the</c><00:07:28.000><c> clojars</c><00:07:28.639><c> test</c><00:07:28.800><c> suite</c><00:07:29.440><c> there</c><00:07:29.919><c> are</c>

00:07:30.309 --> 00:07:30.319 align:start position:0%
out the clojars test suite there are
 

00:07:30.319 --> 00:07:32.230 align:start position:0%
out the clojars test suite there are
lots<00:07:30.560><c> of</c><00:07:30.720><c> examples</c><00:07:31.120><c> of</c><00:07:31.280><c> it</c><00:07:31.520><c> this</c><00:07:31.680><c> is</c><00:07:31.840><c> actually</c>

00:07:32.230 --> 00:07:32.240 align:start position:0%
lots of examples of it this is actually
 

00:07:32.240 --> 00:07:34.550 align:start position:0%
lots of examples of it this is actually
what<00:07:32.800><c> the</c><00:07:32.960><c> reason</c><00:07:33.280><c> i</c><00:07:33.440><c> ended</c><00:07:33.599><c> up</c><00:07:33.759><c> building</c><00:07:34.240><c> uh</c>

00:07:34.550 --> 00:07:34.560 align:start position:0%
what the reason i ended up building uh
 

00:07:34.560 --> 00:07:36.629 align:start position:0%
what the reason i ended up building uh
these<00:07:34.720><c> particular</c><00:07:35.120><c> tools</c><00:07:35.440><c> for</c>

00:07:36.629 --> 00:07:36.639 align:start position:0%
these particular tools for
 

00:07:36.639 --> 00:07:39.270 align:start position:0%
these particular tools for
thank<00:07:36.800><c> you</c>

00:07:39.270 --> 00:07:39.280 align:start position:0%
 
 

00:07:39.280 --> 00:07:41.430 align:start position:0%
 
here

00:07:41.430 --> 00:07:41.440 align:start position:0%
here
 

00:07:41.440 --> 00:07:42.150 align:start position:0%
here
hi

00:07:42.150 --> 00:07:42.160 align:start position:0%
hi
 

00:07:42.160 --> 00:07:44.710 align:start position:0%
hi
i'm<00:07:42.319><c> dan</c><00:07:42.560><c> ledrill</c><00:07:42.880><c> porter</c><00:07:43.599><c> i</c><00:07:44.160><c> am</c><00:07:44.319><c> frequently</c>

00:07:44.710 --> 00:07:44.720 align:start position:0%
i'm dan ledrill porter i am frequently
 

00:07:44.720 --> 00:07:47.589 align:start position:0%
i'm dan ledrill porter i am frequently
known<00:07:44.960><c> on</c><00:07:45.039><c> the</c><00:07:45.120><c> internet</c><00:07:45.599><c> as</c><00:07:46.240><c> a</c><00:07:46.400><c> periodic</c>

00:07:47.589 --> 00:07:47.599 align:start position:0%
known on the internet as a periodic
 

00:07:47.599 --> 00:07:49.510 align:start position:0%
known on the internet as a periodic
and<00:07:47.840><c> i'm</c><00:07:48.000><c> someone</c><00:07:48.400><c> who</c><00:07:48.639><c> until</c><00:07:48.960><c> five</c><00:07:49.199><c> or</c><00:07:49.280><c> six</c>

00:07:49.510 --> 00:07:49.520 align:start position:0%
and i'm someone who until five or six
 

00:07:49.520 --> 00:07:51.350 align:start position:0%
and i'm someone who until five or six
years<00:07:49.759><c> ago</c><00:07:50.000><c> would</c><00:07:50.240><c> have</c><00:07:50.319><c> described</c><00:07:50.720><c> myself</c><00:07:51.120><c> as</c>

00:07:51.350 --> 00:07:51.360 align:start position:0%
years ago would have described myself as
 

00:07:51.360 --> 00:07:53.990 align:start position:0%
years ago would have described myself as
primarily<00:07:52.000><c> a</c><00:07:52.080><c> visual</c><00:07:52.479><c> artist</c><00:07:53.199><c> uh</c><00:07:53.599><c> now</c><00:07:53.759><c> i</c><00:07:53.840><c> like</c>

00:07:53.990 --> 00:07:54.000 align:start position:0%
primarily a visual artist uh now i like
 

00:07:54.000 --> 00:07:56.309 align:start position:0%
primarily a visual artist uh now i like
to<00:07:54.080><c> call</c><00:07:54.319><c> myself</c><00:07:54.720><c> a</c><00:07:54.879><c> programmer</c><00:07:55.680><c> and</c><00:07:55.840><c> the</c><00:07:56.080><c> big</c>

00:07:56.309 --> 00:07:56.319 align:start position:0%
to call myself a programmer and the big
 

00:07:56.319 --> 00:07:59.270 align:start position:0%
to call myself a programmer and the big
reason<00:07:56.639><c> for</c><00:07:56.720><c> that</c><00:07:56.960><c> change</c><00:07:57.440><c> is</c><00:07:57.759><c> processing</c><00:07:58.879><c> so</c>

00:07:59.270 --> 00:07:59.280 align:start position:0%
reason for that change is processing so
 

00:07:59.280 --> 00:08:01.029 align:start position:0%
reason for that change is processing so
if<00:07:59.360><c> you</c><00:07:59.520><c> haven't</c><00:07:59.680><c> heard</c><00:07:59.840><c> of</c><00:08:00.000><c> it</c><00:08:00.080><c> processing</c><00:08:00.879><c> is</c>

00:08:01.029 --> 00:08:01.039 align:start position:0%
if you haven't heard of it processing is
 

00:08:01.039 --> 00:08:02.950 align:start position:0%
if you haven't heard of it processing is
a<00:08:01.280><c> programming</c><00:08:01.759><c> language</c>

00:08:02.950 --> 00:08:02.960 align:start position:0%
a programming language
 

00:08:02.960 --> 00:08:05.270 align:start position:0%
a programming language
environment<00:08:03.840><c> that's</c><00:08:04.240><c> uh</c><00:08:04.479><c> was</c><00:08:04.720><c> designed</c><00:08:05.120><c> with</c>

00:08:05.270 --> 00:08:05.280 align:start position:0%
environment that's uh was designed with
 

00:08:05.280 --> 00:08:07.670 align:start position:0%
environment that's uh was designed with
the<00:08:05.440><c> aim</c><00:08:05.759><c> of</c><00:08:06.319><c> encouraging</c><00:08:06.879><c> programming</c><00:08:07.440><c> among</c>

00:08:07.670 --> 00:08:07.680 align:start position:0%
the aim of encouraging programming among
 

00:08:07.680 --> 00:08:08.950 align:start position:0%
the aim of encouraging programming among
the<00:08:07.759><c> visual</c><00:08:08.160><c> arts</c>

00:08:08.950 --> 00:08:08.960 align:start position:0%
the visual arts
 

00:08:08.960 --> 00:08:11.029 align:start position:0%
the visual arts
um<00:08:09.280><c> so</c><00:08:09.520><c> it's</c><00:08:09.680><c> got</c><00:08:09.919><c> a</c><00:08:10.160><c> straightforward</c><00:08:10.639><c> drawing</c>

00:08:11.029 --> 00:08:11.039 align:start position:0%
um so it's got a straightforward drawing
 

00:08:11.039 --> 00:08:13.270 align:start position:0%
um so it's got a straightforward drawing
api<00:08:11.440><c> that's</c><00:08:12.160><c> sort</c><00:08:12.319><c> of</c><00:08:12.400><c> similar</c><00:08:12.720><c> to</c><00:08:12.800><c> html</c>

00:08:13.270 --> 00:08:13.280 align:start position:0%
api that's sort of similar to html
 

00:08:13.280 --> 00:08:14.309 align:start position:0%
api that's sort of similar to html
canvas

00:08:14.309 --> 00:08:14.319 align:start position:0%
canvas
 

00:08:14.319 --> 00:08:15.909 align:start position:0%
canvas
but<00:08:14.479><c> it</c><00:08:14.560><c> has</c><00:08:14.720><c> a</c><00:08:14.720><c> lot</c><00:08:14.879><c> of</c><00:08:15.039><c> other</c><00:08:15.199><c> capabilities</c>

00:08:15.909 --> 00:08:15.919 align:start position:0%
but it has a lot of other capabilities
 

00:08:15.919 --> 00:08:18.230 align:start position:0%
but it has a lot of other capabilities
besides<00:08:16.400><c> it</c><00:08:16.479><c> can</c><00:08:16.639><c> do</c><00:08:16.879><c> 3d</c><00:08:17.520><c> you</c><00:08:17.680><c> can</c><00:08:17.759><c> do</c><00:08:18.000><c> video</c>

00:08:18.230 --> 00:08:18.240 align:start position:0%
besides it can do 3d you can do video
 

00:08:18.240 --> 00:08:20.390 align:start position:0%
besides it can do 3d you can do video
rendering<00:08:18.720><c> audio</c><00:08:19.039><c> input</c><00:08:19.360><c> audio</c><00:08:19.680><c> synthesis</c><00:08:20.240><c> it</c>

00:08:20.390 --> 00:08:20.400 align:start position:0%
rendering audio input audio synthesis it
 

00:08:20.400 --> 00:08:22.150 align:start position:0%
rendering audio input audio synthesis it
can<00:08:20.479><c> talk</c><00:08:20.639><c> to</c><00:08:20.720><c> arduinos</c><00:08:21.360><c> it</c><00:08:21.440><c> can</c><00:08:21.520><c> get</c><00:08:21.759><c> inputs</c>

00:08:22.150 --> 00:08:22.160 align:start position:0%
can talk to arduinos it can get inputs
 

00:08:22.160 --> 00:08:24.469 align:start position:0%
can talk to arduinos it can get inputs
from<00:08:22.879><c> k'nex</c><00:08:23.599><c> um</c>

00:08:24.469 --> 00:08:24.479 align:start position:0%
from k'nex um
 

00:08:24.479 --> 00:08:26.790 align:start position:0%
from k'nex um
a<00:08:24.639><c> whole</c><00:08:24.800><c> bunch</c><00:08:25.039><c> of</c><00:08:25.120><c> stuff</c><00:08:25.840><c> so</c><00:08:26.000><c> the</c><00:08:26.160><c> neat</c><00:08:26.479><c> handy</c>

00:08:26.790 --> 00:08:26.800 align:start position:0%
a whole bunch of stuff so the neat handy
 

00:08:26.800 --> 00:08:28.950 align:start position:0%
a whole bunch of stuff so the neat handy
thing<00:08:26.960><c> about</c><00:08:27.360><c> processing</c><00:08:28.000><c> is</c><00:08:28.160><c> that</c><00:08:28.639><c> under</c><00:08:28.879><c> the</c>

00:08:28.950 --> 00:08:28.960 align:start position:0%
thing about processing is that under the
 

00:08:28.960 --> 00:08:30.230 align:start position:0%
thing about processing is that under the
hood<00:08:29.280><c> it's</c><00:08:29.440><c> really</c><00:08:29.599><c> just</c><00:08:29.759><c> some</c><00:08:29.919><c> java</c>

00:08:30.230 --> 00:08:30.240 align:start position:0%
hood it's really just some java
 

00:08:30.240 --> 00:08:32.469 align:start position:0%
hood it's really just some java
libraries<00:08:31.039><c> uh</c><00:08:31.280><c> so</c><00:08:31.440><c> that</c><00:08:31.599><c> means</c><00:08:31.759><c> we</c><00:08:31.919><c> can</c><00:08:32.080><c> use</c><00:08:32.320><c> it</c>

00:08:32.469 --> 00:08:32.479 align:start position:0%
libraries uh so that means we can use it
 

00:08:32.479 --> 00:08:34.550 align:start position:0%
libraries uh so that means we can use it
in<00:08:32.560><c> closure</c><00:08:33.440><c> and</c><00:08:33.680><c> that's</c><00:08:33.839><c> where</c><00:08:34.000><c> quilt</c><00:08:34.240><c> comes</c>

00:08:34.550 --> 00:08:34.560 align:start position:0%
in closure and that's where quilt comes
 

00:08:34.560 --> 00:08:36.709 align:start position:0%
in closure and that's where quilt comes
in<00:08:34.880><c> it</c><00:08:34.959><c> was</c><00:08:35.200><c> originally</c><00:08:35.680><c> started</c>

00:08:36.709 --> 00:08:36.719 align:start position:0%
in it was originally started
 

00:08:36.719 --> 00:08:39.589 align:start position:0%
in it was originally started
as<00:08:36.959><c> clj</c><00:08:37.519><c> processing</c><00:08:38.080><c> by</c><00:08:38.240><c> roland</c><00:08:38.560><c> stadowski</c><00:08:39.519><c> it</c>

00:08:39.589 --> 00:08:39.599 align:start position:0%
as clj processing by roland stadowski it
 

00:08:39.599 --> 00:08:41.909 align:start position:0%
as clj processing by roland stadowski it
was<00:08:39.839><c> now</c><00:08:40.159><c> primarily</c><00:08:40.640><c> maintained</c><00:08:41.039><c> by</c><00:08:41.360><c> sam</c><00:08:41.599><c> erin</c>

00:08:41.909 --> 00:08:41.919 align:start position:0%
was now primarily maintained by sam erin
 

00:08:41.919 --> 00:08:44.310 align:start position:0%
was now primarily maintained by sam erin
who<00:08:42.080><c> gave</c><00:08:42.320><c> it</c><00:08:42.399><c> the</c><00:08:42.640><c> quill</c><00:08:42.880><c> moniker</c>

00:08:44.310 --> 00:08:44.320 align:start position:0%
who gave it the quill moniker
 

00:08:44.320 --> 00:08:45.430 align:start position:0%
who gave it the quill moniker
and<00:08:44.480><c> it's</c><00:08:44.560><c> just</c><00:08:44.800><c> a</c><00:08:44.880><c> wrapper</c><00:08:45.200><c> around</c>

00:08:45.430 --> 00:08:45.440 align:start position:0%
and it's just a wrapper around
 

00:08:45.440 --> 00:08:47.030 align:start position:0%
and it's just a wrapper around
processing<00:08:46.000><c> that</c><00:08:46.160><c> makes</c><00:08:46.399><c> it</c><00:08:46.560><c> a</c><00:08:46.640><c> lot</c><00:08:46.800><c> more</c>

00:08:47.030 --> 00:08:47.040 align:start position:0%
processing that makes it a lot more
 

00:08:47.040 --> 00:08:49.910 align:start position:0%
processing that makes it a lot more
pleasant<00:08:47.440><c> to</c><00:08:47.680><c> use</c><00:08:48.399><c> in</c><00:08:48.560><c> closure</c><00:08:49.120><c> than</c><00:08:49.680><c> if</c><00:08:49.839><c> we</c>

00:08:49.910 --> 00:08:49.920 align:start position:0%
pleasant to use in closure than if we
 

00:08:49.920 --> 00:08:52.310 align:start position:0%
pleasant to use in closure than if we
had<00:08:50.080><c> to</c><00:08:50.160><c> do</c><00:08:50.240><c> a</c><00:08:50.320><c> lot</c><00:08:50.480><c> of</c><00:08:50.640><c> java</c><00:08:50.959><c> interop</c>

00:08:52.310 --> 00:08:52.320 align:start position:0%
had to do a lot of java interop
 

00:08:52.320 --> 00:08:54.070 align:start position:0%
had to do a lot of java interop
so<00:08:52.560><c> what</c><00:08:52.800><c> i'm</c><00:08:52.959><c> going</c><00:08:53.120><c> to</c><00:08:53.200><c> do</c><00:08:53.519><c> is</c><00:08:53.680><c> i'm</c><00:08:53.760><c> going</c><00:08:53.920><c> to</c>

00:08:54.070 --> 00:08:54.080 align:start position:0%
so what i'm going to do is i'm going to
 

00:08:54.080 --> 00:08:55.829 align:start position:0%
so what i'm going to do is i'm going to
walk<00:08:54.320><c> you</c><00:08:54.480><c> through</c><00:08:54.720><c> creating</c><00:08:55.200><c> a</c><00:08:55.600><c> pretty</c>

00:08:55.829 --> 00:08:55.839 align:start position:0%
walk you through creating a pretty
 

00:08:55.839 --> 00:08:58.230 align:start position:0%
walk you through creating a pretty
simple<00:08:56.320><c> quill</c><00:08:56.560><c> sketch</c><00:08:57.040><c> in</c><00:08:57.120><c> the</c><00:08:57.279><c> next</c><00:08:57.920><c> six</c><00:08:58.160><c> and</c>

00:08:58.230 --> 00:08:58.240 align:start position:0%
simple quill sketch in the next six and
 

00:08:58.240 --> 00:09:00.150 align:start position:0%
simple quill sketch in the next six and
a<00:08:58.320><c> half</c><00:08:58.560><c> minutes</c><00:08:58.880><c> or</c><00:08:58.959><c> so</c><00:08:59.440><c> what</c><00:08:59.600><c> the</c><00:08:59.760><c> sketch</c><00:09:00.080><c> is</c>

00:09:00.150 --> 00:09:00.160 align:start position:0%
a half minutes or so what the sketch is
 

00:09:00.160 --> 00:09:01.750 align:start position:0%
a half minutes or so what the sketch is
going<00:09:00.399><c> to</c><00:09:00.480><c> do</c><00:09:00.800><c> is</c><00:09:00.959><c> uh</c><00:09:01.200><c> it's</c><00:09:01.440><c> going</c><00:09:01.519><c> to</c>

00:09:01.750 --> 00:09:01.760 align:start position:0%
going to do is uh it's going to
 

00:09:01.760 --> 00:09:04.470 align:start position:0%
going to do is uh it's going to
implement<00:09:02.160><c> a</c><00:09:02.800><c> common</c><00:09:03.120><c> visual</c><00:09:03.440><c> trope</c><00:09:03.760><c> among</c>

00:09:04.470 --> 00:09:04.480 align:start position:0%
implement a common visual trope among
 

00:09:04.480 --> 00:09:06.230 align:start position:0%
implement a common visual trope among
hollywood<00:09:04.959><c> guise</c><00:09:05.440><c> and</c><00:09:05.600><c> games</c><00:09:05.920><c> and</c><00:09:06.080><c> other</c>

00:09:06.230 --> 00:09:06.240 align:start position:0%
hollywood guise and games and other
 

00:09:06.240 --> 00:09:07.750 align:start position:0%
hollywood guise and games and other
flashy<00:09:06.640><c> interfaces</c><00:09:07.120><c> that</c><00:09:07.200><c> don't</c><00:09:07.360><c> really</c><00:09:07.519><c> do</c>

00:09:07.750 --> 00:09:07.760 align:start position:0%
flashy interfaces that don't really do
 

00:09:07.760 --> 00:09:09.670 align:start position:0%
flashy interfaces that don't really do
anything<00:09:08.560><c> where</c><00:09:08.800><c> you</c><00:09:08.880><c> have</c><00:09:09.040><c> a</c><00:09:09.120><c> lot</c><00:09:09.279><c> of</c>

00:09:09.670 --> 00:09:09.680 align:start position:0%
anything where you have a lot of
 

00:09:09.680 --> 00:09:11.910 align:start position:0%
anything where you have a lot of
spinning<00:09:10.160><c> circular</c><00:09:10.640><c> arc</c><00:09:10.880><c> segments</c><00:09:11.360><c> nested</c>

00:09:11.910 --> 00:09:11.920 align:start position:0%
spinning circular arc segments nested
 

00:09:11.920 --> 00:09:13.829 align:start position:0%
spinning circular arc segments nested
inside<00:09:12.320><c> one</c><00:09:12.480><c> or</c><00:09:12.560><c> the</c><00:09:12.640><c> other</c><00:09:13.360><c> so</c><00:09:13.519><c> let's</c><00:09:13.680><c> get</c>

00:09:13.829 --> 00:09:13.839 align:start position:0%
inside one or the other so let's get
 

00:09:13.839 --> 00:09:16.310 align:start position:0%
inside one or the other so let's get
started<00:09:14.640><c> i've</c><00:09:14.800><c> got</c><00:09:14.959><c> my</c><00:09:15.519><c> project</c><00:09:15.839><c> here</c><00:09:16.080><c> that</c><00:09:16.160><c> i</c>

00:09:16.310 --> 00:09:16.320 align:start position:0%
started i've got my project here that i
 

00:09:16.320 --> 00:09:18.870 align:start position:0%
started i've got my project here that i
just<00:09:16.560><c> recently</c><00:09:16.959><c> created</c><00:09:17.440><c> with</c><00:09:17.680><c> line</c><00:09:17.920><c> new</c>

00:09:18.870 --> 00:09:18.880 align:start position:0%
just recently created with line new
 

00:09:18.880 --> 00:09:20.310 align:start position:0%
just recently created with line new
the<00:09:18.959><c> only</c><00:09:19.200><c> thing</c><00:09:19.360><c> i've</c><00:09:19.519><c> added</c><00:09:19.760><c> to</c><00:09:19.839><c> the</c><00:09:20.000><c> project</c>

00:09:20.310 --> 00:09:20.320 align:start position:0%
the only thing i've added to the project
 

00:09:20.320 --> 00:09:22.550 align:start position:0%
the only thing i've added to the project
at<00:09:20.399><c> clj</c><00:09:21.040><c> is</c><00:09:21.200><c> the</c><00:09:21.440><c> quill</c><00:09:21.600><c> dependency</c><00:09:22.240><c> down</c><00:09:22.399><c> here</c>

00:09:22.550 --> 00:09:22.560 align:start position:0%
at clj is the quill dependency down here
 

00:09:22.560 --> 00:09:23.590 align:start position:0%
at clj is the quill dependency down here
at<00:09:22.640><c> the</c><00:09:22.720><c> bottom</c>

00:09:23.590 --> 00:09:23.600 align:start position:0%
at the bottom
 

00:09:23.600 --> 00:09:26.790 align:start position:0%
at the bottom
i've<00:09:23.839><c> pre-warmed</c><00:09:24.320><c> my</c><00:09:24.480><c> swank</c><00:09:24.800><c> server</c>

00:09:26.790 --> 00:09:26.800 align:start position:0%
i've pre-warmed my swank server
 

00:09:26.800 --> 00:09:28.230 align:start position:0%
i've pre-warmed my swank server
it<00:09:27.040><c> is</c>

00:09:28.230 --> 00:09:28.240 align:start position:0%
it is
 

00:09:28.240 --> 00:09:34.870 align:start position:0%
it is
oh<00:09:28.480><c> god</c>

00:09:34.870 --> 00:09:34.880 align:start position:0%
 
 

00:09:34.880 --> 00:09:37.670 align:start position:0%
 
uh<00:09:35.680><c> how</c><00:09:35.839><c> do</c><00:09:35.920><c> i</c><00:09:36.000><c> do</c><00:09:36.160><c> that</c><00:09:36.800><c> i</c><00:09:36.959><c> don't</c><00:09:37.200><c> know</c><00:09:37.360><c> how</c><00:09:37.519><c> to</c>

00:09:37.670 --> 00:09:37.680 align:start position:0%
uh how do i do that i don't know how to
 

00:09:37.680 --> 00:09:45.829 align:start position:0%
uh how do i do that i don't know how to
use<00:09:37.920><c> my</c><00:09:38.080><c> terminal</c>

00:09:45.829 --> 00:09:45.839 align:start position:0%
 
 

00:09:45.839 --> 00:09:48.310 align:start position:0%
 
okay

00:09:48.310 --> 00:09:48.320 align:start position:0%
 
 

00:09:48.320 --> 00:09:50.550 align:start position:0%
 
that's<00:09:48.800><c> still</c><00:09:48.959><c> not</c><00:09:49.200><c> big</c><00:09:49.360><c> enough</c>

00:09:50.550 --> 00:09:50.560 align:start position:0%
that's still not big enough
 

00:09:50.560 --> 00:09:52.790 align:start position:0%
that's still not big enough
is<00:09:50.720><c> that</c><00:09:50.880><c> big</c><00:09:51.040><c> enough</c>

00:09:52.790 --> 00:09:52.800 align:start position:0%
is that big enough
 

00:09:52.800 --> 00:09:53.829 align:start position:0%
is that big enough
okay

00:09:53.829 --> 00:09:53.839 align:start position:0%
okay
 

00:09:53.839 --> 00:09:55.430 align:start position:0%
okay
color<00:09:54.160><c> is</c><00:09:54.320><c> bad</c>

00:09:55.430 --> 00:09:55.440 align:start position:0%
color is bad
 

00:09:55.440 --> 00:09:59.590 align:start position:0%
color is bad
i<00:09:55.600><c> don't</c><00:09:55.839><c> know</c><00:09:56.000><c> how</c><00:09:56.160><c> to</c><00:09:56.240><c> change</c><00:09:56.480><c> the</c><00:09:56.640><c> color</c>

00:09:59.590 --> 00:09:59.600 align:start position:0%
 
 

00:09:59.600 --> 00:10:01.590 align:start position:0%
 
all<00:09:59.760><c> right</c><00:10:00.160><c> um</c><00:10:00.480><c> i</c><00:10:00.640><c> really</c><00:10:00.800><c> hope</c><00:10:01.040><c> you</c><00:10:01.120><c> can</c><00:10:01.279><c> see</c>

00:10:01.590 --> 00:10:01.600 align:start position:0%
all right um i really hope you can see
 

00:10:01.600 --> 00:10:03.269 align:start position:0%
all right um i really hope you can see
if<00:10:01.680><c> you</c><00:10:01.839><c> can't</c><00:10:02.240><c> i'm</c><00:10:02.399><c> very</c><00:10:02.640><c> sorry</c><00:10:02.959><c> you</c><00:10:03.120><c> should</c>

00:10:03.269 --> 00:10:03.279 align:start position:0%
if you can't i'm very sorry you should
 

00:10:03.279 --> 00:10:06.070 align:start position:0%
if you can't i'm very sorry you should
find<00:10:03.440><c> me</c><00:10:03.600><c> afterward</c><00:10:04.480><c> uh</c><00:10:04.720><c> so</c>

00:10:06.070 --> 00:10:06.080 align:start position:0%
find me afterward uh so
 

00:10:06.080 --> 00:10:07.350 align:start position:0%
find me afterward uh so
the<00:10:06.160><c> first</c><00:10:06.399><c> thing</c><00:10:06.640><c> i'm</c><00:10:06.720><c> going</c><00:10:06.880><c> to</c><00:10:06.959><c> do</c><00:10:07.200><c> is</c>

00:10:07.350 --> 00:10:07.360 align:start position:0%
the first thing i'm going to do is
 

00:10:07.360 --> 00:10:10.389 align:start position:0%
the first thing i'm going to do is
define<00:10:07.760><c> the</c><00:10:07.839><c> one</c><00:10:08.080><c> true</c><00:10:08.240><c> circle</c><00:10:08.560><c> constant</c><00:10:09.440><c> tau</c>

00:10:10.389 --> 00:10:10.399 align:start position:0%
define the one true circle constant tau
 

00:10:10.399 --> 00:10:12.150 align:start position:0%
define the one true circle constant tau
i<00:10:10.560><c> just</c><00:10:10.720><c> find</c><00:10:10.959><c> it</c><00:10:11.040><c> a</c><00:10:11.120><c> lot</c><00:10:11.279><c> easier</c><00:10:11.600><c> to</c><00:10:11.680><c> reason</c>

00:10:12.150 --> 00:10:12.160 align:start position:0%
i just find it a lot easier to reason
 

00:10:12.160 --> 00:10:13.910 align:start position:0%
i just find it a lot easier to reason
about<00:10:12.320><c> than</c><00:10:12.480><c> 2</c><00:10:12.720><c> pi</c>

00:10:13.910 --> 00:10:13.920 align:start position:0%
about than 2 pi
 

00:10:13.920 --> 00:10:15.750 align:start position:0%
about than 2 pi
so<00:10:14.560><c> the</c><00:10:14.800><c> first</c><00:10:15.040><c> question</c><00:10:15.360><c> we</c><00:10:15.519><c> probably</c><00:10:15.680><c> want</c>

00:10:15.750 --> 00:10:15.760 align:start position:0%
so the first question we probably want
 

00:10:15.760 --> 00:10:17.269 align:start position:0%
so the first question we probably want
to<00:10:15.839><c> ask</c><00:10:16.000><c> ourselves</c><00:10:16.399><c> is</c><00:10:16.640><c> conscientious</c>

00:10:17.269 --> 00:10:17.279 align:start position:0%
to ask ourselves is conscientious
 

00:10:17.279 --> 00:10:19.030 align:start position:0%
to ask ourselves is conscientious
clojurians<00:10:18.000><c> is</c><00:10:18.160><c> what</c><00:10:18.320><c> sort</c><00:10:18.480><c> of</c><00:10:18.560><c> data</c><00:10:18.880><c> we're</c>

00:10:19.030 --> 00:10:19.040 align:start position:0%
clojurians is what sort of data we're
 

00:10:19.040 --> 00:10:20.790 align:start position:0%
clojurians is what sort of data we're
going<00:10:19.200><c> to</c><00:10:19.360><c> need</c><00:10:20.079><c> we're</c><00:10:20.240><c> going</c><00:10:20.320><c> to</c><00:10:20.399><c> need</c><00:10:20.640><c> some</c>

00:10:20.790 --> 00:10:20.800 align:start position:0%
going to need we're going to need some
 

00:10:20.800 --> 00:10:23.430 align:start position:0%
going to need we're going to need some
way<00:10:21.200><c> of</c><00:10:21.920><c> describing</c><00:10:22.560><c> the</c><00:10:22.800><c> arcs</c><00:10:23.040><c> that</c><00:10:23.200><c> we</c><00:10:23.279><c> want</c>

00:10:23.430 --> 00:10:23.440 align:start position:0%
way of describing the arcs that we want
 

00:10:23.440 --> 00:10:25.910 align:start position:0%
way of describing the arcs that we want
to<00:10:23.519><c> draw</c><00:10:24.160><c> and</c><00:10:24.240><c> this</c><00:10:24.480><c> is</c><00:10:25.040><c> so</c><00:10:25.279><c> like</c><00:10:25.519><c> i</c><00:10:25.600><c> said</c><00:10:25.760><c> this</c>

00:10:25.910 --> 00:10:25.920 align:start position:0%
to draw and this is so like i said this
 

00:10:25.920 --> 00:10:27.430 align:start position:0%
to draw and this is so like i said this
is<00:10:26.000><c> not</c><00:10:26.160><c> going</c><00:10:26.240><c> to</c><00:10:26.320><c> be</c><00:10:26.560><c> idiomatic</c><00:10:27.120><c> closure</c>

00:10:27.430 --> 00:10:27.440 align:start position:0%
is not going to be idiomatic closure
 

00:10:27.440 --> 00:10:29.190 align:start position:0%
is not going to be idiomatic closure
code<00:10:28.000><c> because</c><00:10:28.160><c> we're</c><00:10:28.240><c> initiating</c><00:10:28.720><c> processing</c>

00:10:29.190 --> 00:10:29.200 align:start position:0%
code because we're initiating processing
 

00:10:29.200 --> 00:10:30.870 align:start position:0%
code because we're initiating processing
underneath<00:10:29.920><c> so</c><00:10:30.079><c> we're</c><00:10:30.160><c> going</c><00:10:30.240><c> to</c><00:10:30.320><c> need</c><00:10:30.480><c> a</c>

00:10:30.870 --> 00:10:30.880 align:start position:0%
underneath so we're going to need a
 

00:10:30.880 --> 00:10:32.550 align:start position:0%
underneath so we're going to need a
place<00:10:31.120><c> to</c><00:10:31.279><c> put</c><00:10:31.440><c> this</c><00:10:31.680><c> that</c><00:10:31.839><c> the</c><00:10:32.000><c> draw</c><00:10:32.160><c> loop</c><00:10:32.399><c> can</c>

00:10:32.550 --> 00:10:32.560 align:start position:0%
place to put this that the draw loop can
 

00:10:32.560 --> 00:10:34.230 align:start position:0%
place to put this that the draw loop can
find<00:10:32.800><c> because</c><00:10:32.959><c> the</c><00:10:33.040><c> draw</c><00:10:33.279><c> loop</c><00:10:33.839><c> can't</c><00:10:34.079><c> take</c>

00:10:34.230 --> 00:10:34.240 align:start position:0%
find because the draw loop can't take
 

00:10:34.240 --> 00:10:36.150 align:start position:0%
find because the draw loop can't take
any<00:10:34.480><c> arguments</c><00:10:35.200><c> so</c><00:10:35.360><c> i'm</c><00:10:35.440><c> going</c><00:10:35.519><c> to</c><00:10:35.600><c> define</c><00:10:35.920><c> an</c>

00:10:36.150 --> 00:10:36.160 align:start position:0%
any arguments so i'm going to define an
 

00:10:36.160 --> 00:10:37.910 align:start position:0%
any arguments so i'm going to define an
atom<00:10:36.399><c> called</c><00:10:36.720><c> arcs</c><00:10:37.120><c> and</c><00:10:37.279><c> it</c><00:10:37.360><c> just</c><00:10:37.519><c> contains</c>

00:10:37.910 --> 00:10:37.920 align:start position:0%
atom called arcs and it just contains
 

00:10:37.920 --> 00:10:40.470 align:start position:0%
atom called arcs and it just contains
the<00:10:38.079><c> empty</c><00:10:38.320><c> vector</c><00:10:38.640><c> for</c><00:10:38.800><c> now</c>

00:10:40.470 --> 00:10:40.480 align:start position:0%
the empty vector for now
 

00:10:40.480 --> 00:10:43.430 align:start position:0%
the empty vector for now
and<00:10:40.560><c> so</c><00:10:40.720><c> now</c><00:10:40.959><c> i</c><00:10:41.120><c> need</c><00:10:41.279><c> a</c><00:10:41.360><c> way</c><00:10:41.760><c> of</c><00:10:42.320><c> making</c><00:10:43.120><c> one</c><00:10:43.279><c> of</c>

00:10:43.430 --> 00:10:43.440 align:start position:0%
and so now i need a way of making one of
 

00:10:43.440 --> 00:10:44.870 align:start position:0%
and so now i need a way of making one of
my<00:10:43.600><c> arc</c><00:10:43.920><c> objects</c>

00:10:44.870 --> 00:10:44.880 align:start position:0%
my arc objects
 

00:10:44.880 --> 00:10:46.389 align:start position:0%
my arc objects
so<00:10:45.120><c> i'm</c><00:10:45.200><c> going</c><00:10:45.279><c> to</c><00:10:45.360><c> define</c><00:10:45.680><c> a</c><00:10:45.760><c> function</c><00:10:46.079><c> to</c><00:10:46.240><c> do</c>

00:10:46.389 --> 00:10:46.399 align:start position:0%
so i'm going to define a function to do
 

00:10:46.399 --> 00:10:48.710 align:start position:0%
so i'm going to define a function to do
that<00:10:46.800><c> it</c><00:10:46.959><c> takes</c><00:10:47.519><c> one</c><00:10:47.760><c> argument</c><00:10:48.160><c> which</c><00:10:48.399><c> is</c><00:10:48.480><c> the</c>

00:10:48.710 --> 00:10:48.720 align:start position:0%
that it takes one argument which is the
 

00:10:48.720 --> 00:10:50.949 align:start position:0%
that it takes one argument which is the
index<00:10:49.360><c> this</c><00:10:49.600><c> is</c><00:10:49.839><c> the</c><00:10:50.000><c> way</c><00:10:50.160><c> that</c><00:10:50.320><c> it'll</c><00:10:50.720><c> be</c><00:10:50.880><c> able</c>

00:10:50.949 --> 00:10:50.959 align:start position:0%
index this is the way that it'll be able
 

00:10:50.959 --> 00:10:55.910 align:start position:0%
index this is the way that it'll be able
to<00:10:51.120><c> set</c><00:10:51.360><c> a</c><00:10:51.440><c> different</c><00:10:51.680><c> radius</c><00:10:52.160><c> for</c><00:10:52.320><c> each</c><00:10:52.640><c> arc</c>

00:10:55.910 --> 00:10:55.920 align:start position:0%
 
 

00:10:55.920 --> 00:10:58.069 align:start position:0%
 
that's<00:10:56.240><c> not</c>

00:10:58.069 --> 00:10:58.079 align:start position:0%
that's not
 

00:10:58.079 --> 00:11:00.470 align:start position:0%
that's not
so<00:10:58.320><c> there</c><00:10:58.560><c> are</c><00:10:59.040><c> four</c><00:10:59.279><c> properties</c><00:10:59.760><c> to</c><00:10:59.920><c> each</c><00:11:00.160><c> arc</c>

00:11:00.470 --> 00:11:00.480 align:start position:0%
so there are four properties to each arc
 

00:11:00.480 --> 00:11:02.150 align:start position:0%
so there are four properties to each arc
it<00:11:00.560><c> has</c><00:11:00.800><c> a</c><00:11:01.040><c> position</c><00:11:01.519><c> on</c><00:11:01.600><c> the</c><00:11:01.680><c> unit</c><00:11:01.920><c> circle</c>

00:11:02.150 --> 00:11:02.160 align:start position:0%
it has a position on the unit circle
 

00:11:02.160 --> 00:11:04.150 align:start position:0%
it has a position on the unit circle
where<00:11:02.320><c> it</c><00:11:02.480><c> starts</c><00:11:03.040><c> it</c><00:11:03.200><c> has</c><00:11:03.360><c> an</c><00:11:03.519><c> angular</c><00:11:03.920><c> width</c>

00:11:04.150 --> 00:11:04.160 align:start position:0%
where it starts it has an angular width
 

00:11:04.160 --> 00:11:07.590 align:start position:0%
where it starts it has an angular width
that<00:11:04.399><c> it</c><00:11:04.480><c> spans</c><00:11:05.360><c> it</c><00:11:05.519><c> has</c><00:11:05.760><c> a</c><00:11:06.240><c> radius</c><00:11:06.959><c> and</c><00:11:07.360><c> some</c>

00:11:07.590 --> 00:11:07.600 align:start position:0%
that it spans it has a radius and some
 

00:11:07.600 --> 00:11:09.670 align:start position:0%
that it spans it has a radius and some
angular<00:11:08.000><c> velocity</c><00:11:08.880><c> uh</c><00:11:09.040><c> so</c><00:11:09.200><c> the</c><00:11:09.279><c> new</c><00:11:09.519><c> arc</c>

00:11:09.670 --> 00:11:09.680 align:start position:0%
angular velocity uh so the new arc
 

00:11:09.680 --> 00:11:11.269 align:start position:0%
angular velocity uh so the new arc
function<00:11:10.000><c> just</c><00:11:10.160><c> creates</c><00:11:10.480><c> a</c><00:11:10.560><c> map</c><00:11:10.880><c> with</c><00:11:11.040><c> all</c><00:11:11.200><c> of</c>

00:11:11.269 --> 00:11:11.279 align:start position:0%
function just creates a map with all of
 

00:11:11.279 --> 00:11:13.430 align:start position:0%
function just creates a map with all of
those<00:11:11.519><c> properties</c><00:11:12.160><c> um</c><00:11:12.560><c> and</c><00:11:12.800><c> fills</c><00:11:13.040><c> them</c><00:11:13.279><c> in</c>

00:11:13.430 --> 00:11:13.440 align:start position:0%
those properties um and fills them in
 

00:11:13.440 --> 00:11:14.550 align:start position:0%
those properties um and fills them in
with<00:11:13.600><c> some</c>

00:11:14.550 --> 00:11:14.560 align:start position:0%
with some
 

00:11:14.560 --> 00:11:16.630 align:start position:0%
with some
nice<00:11:14.800><c> looking</c><00:11:15.279><c> random</c><00:11:15.600><c> values</c><00:11:16.000><c> that</c><00:11:16.160><c> i</c><00:11:16.240><c> won't</c>

00:11:16.630 --> 00:11:16.640 align:start position:0%
nice looking random values that i won't
 

00:11:16.640 --> 00:11:17.910 align:start position:0%
nice looking random values that i won't
explain

00:11:17.910 --> 00:11:17.920 align:start position:0%
explain
 

00:11:17.920 --> 00:11:20.069 align:start position:0%
explain
so<00:11:18.079><c> there</c><00:11:18.399><c> are</c><00:11:18.560><c> two</c><00:11:18.800><c> fundamental</c><00:11:19.360><c> functions</c>

00:11:20.069 --> 00:11:20.079 align:start position:0%
so there are two fundamental functions
 

00:11:20.079 --> 00:11:21.590 align:start position:0%
so there are two fundamental functions
to<00:11:20.160><c> every</c><00:11:20.399><c> coil</c><00:11:20.560><c> sketch</c>

00:11:21.590 --> 00:11:21.600 align:start position:0%
to every coil sketch
 

00:11:21.600 --> 00:11:23.910 align:start position:0%
to every coil sketch
the<00:11:21.760><c> first</c><00:11:22.000><c> one</c><00:11:22.240><c> is</c><00:11:22.399><c> called</c><00:11:22.720><c> setup</c><00:11:23.519><c> it's</c><00:11:23.680><c> run</c>

00:11:23.910 --> 00:11:23.920 align:start position:0%
the first one is called setup it's run
 

00:11:23.920 --> 00:11:25.590 align:start position:0%
the first one is called setup it's run
once<00:11:24.240><c> at</c><00:11:24.320><c> the</c><00:11:24.480><c> beginning</c><00:11:24.800><c> of</c><00:11:24.880><c> your</c><00:11:25.040><c> sketch</c><00:11:25.440><c> and</c>

00:11:25.590 --> 00:11:25.600 align:start position:0%
once at the beginning of your sketch and
 

00:11:25.600 --> 00:11:27.190 align:start position:0%
once at the beginning of your sketch and
it's<00:11:25.760><c> a</c><00:11:25.839><c> good</c><00:11:26.000><c> place</c><00:11:26.160><c> to</c><00:11:26.320><c> set</c><00:11:26.560><c> up</c><00:11:26.720><c> any</c><00:11:26.880><c> initial</c>

00:11:27.190 --> 00:11:27.200 align:start position:0%
it's a good place to set up any initial
 

00:11:27.200 --> 00:11:29.030 align:start position:0%
it's a good place to set up any initial
state<00:11:27.600><c> or</c><00:11:27.839><c> configure</c><00:11:28.320><c> things</c><00:11:28.560><c> that</c><00:11:28.720><c> will</c><00:11:28.880><c> be</c>

00:11:29.030 --> 00:11:29.040 align:start position:0%
state or configure things that will be
 

00:11:29.040 --> 00:11:30.389 align:start position:0%
state or configure things that will be
constant<00:11:29.360><c> throughout</c><00:11:29.760><c> the</c><00:11:29.920><c> entirety</c><00:11:30.240><c> of</c><00:11:30.320><c> your</c>

00:11:30.389 --> 00:11:30.399 align:start position:0%
constant throughout the entirety of your
 

00:11:30.399 --> 00:11:31.430 align:start position:0%
constant throughout the entirety of your
sketch

00:11:31.430 --> 00:11:31.440 align:start position:0%
sketch
 

00:11:31.440 --> 00:11:33.110 align:start position:0%
sketch
and<00:11:31.600><c> the</c><00:11:31.680><c> other</c><00:11:31.839><c> one</c><00:11:32.160><c> is</c><00:11:32.240><c> called</c><00:11:32.480><c> draw</c><00:11:32.959><c> and</c>

00:11:33.110 --> 00:11:33.120 align:start position:0%
and the other one is called draw and
 

00:11:33.120 --> 00:11:34.790 align:start position:0%
and the other one is called draw and
this<00:11:33.360><c> is</c><00:11:33.440><c> your</c><00:11:33.600><c> main</c><00:11:33.760><c> loop</c><00:11:34.160><c> um</c><00:11:34.320><c> this</c><00:11:34.560><c> is</c><00:11:34.640><c> what</c>

00:11:34.790 --> 00:11:34.800 align:start position:0%
this is your main loop um this is what
 

00:11:34.800 --> 00:11:36.550 align:start position:0%
this is your main loop um this is what
actually<00:11:35.120><c> draws</c><00:11:35.360><c> stuff</c><00:11:35.600><c> to</c><00:11:35.680><c> the</c><00:11:35.839><c> screen</c><00:11:36.399><c> it's</c>

00:11:36.550 --> 00:11:36.560 align:start position:0%
actually draws stuff to the screen it's
 

00:11:36.560 --> 00:11:39.750 align:start position:0%
actually draws stuff to the screen it's
called<00:11:36.800><c> by</c><00:11:36.959><c> default</c><00:11:37.440><c> 60</c><00:11:37.760><c> times</c><00:11:38.000><c> a</c><00:11:38.079><c> second</c>

00:11:39.750 --> 00:11:39.760 align:start position:0%
called by default 60 times a second
 

00:11:39.760 --> 00:11:40.870 align:start position:0%
called by default 60 times a second
so<00:11:40.000><c> let's</c>

00:11:40.870 --> 00:11:40.880 align:start position:0%
so let's
 

00:11:40.880 --> 00:11:42.550 align:start position:0%
so let's
fill<00:11:41.120><c> in</c>

00:11:42.550 --> 00:11:42.560 align:start position:0%
fill in
 

00:11:42.560 --> 00:11:44.550 align:start position:0%
fill in
setup<00:11:43.440><c> there's</c><00:11:43.600><c> not</c><00:11:43.760><c> much</c><00:11:43.920><c> happening</c><00:11:44.320><c> here</c>

00:11:44.550 --> 00:11:44.560 align:start position:0%
setup there's not much happening here
 

00:11:44.560 --> 00:11:46.150 align:start position:0%
setup there's not much happening here
the<00:11:44.800><c> only</c><00:11:44.959><c> configuration</c><00:11:45.600><c> we</c><00:11:45.680><c> do</c><00:11:45.839><c> is</c><00:11:45.920><c> call</c>

00:11:46.150 --> 00:11:46.160 align:start position:0%
the only configuration we do is call
 

00:11:46.160 --> 00:11:48.069 align:start position:0%
the only configuration we do is call
smooth<00:11:46.560><c> to</c><00:11:46.640><c> turn</c><00:11:46.880><c> on</c><00:11:47.040><c> anti-aliasing</c><00:11:47.839><c> make</c>

00:11:48.069 --> 00:11:48.079 align:start position:0%
smooth to turn on anti-aliasing make
 

00:11:48.079 --> 00:11:49.670 align:start position:0%
smooth to turn on anti-aliasing make
everything<00:11:48.320><c> nice</c><00:11:48.560><c> and</c><00:11:48.720><c> pretty</c>

00:11:49.670 --> 00:11:49.680 align:start position:0%
everything nice and pretty
 

00:11:49.680 --> 00:11:51.750 align:start position:0%
everything nice and pretty
uh<00:11:50.079><c> and</c><00:11:50.240><c> then</c>

00:11:51.750 --> 00:11:51.760 align:start position:0%
uh and then
 

00:11:51.760 --> 00:11:54.389 align:start position:0%
uh and then
15<00:11:52.160><c> times</c><00:11:52.560><c> over</c><00:11:52.959><c> we're</c><00:11:53.120><c> just</c><00:11:53.360><c> going</c><00:11:53.680><c> to</c>

00:11:54.389 --> 00:11:54.399 align:start position:0%
15 times over we're just going to
 

00:11:54.399 --> 00:11:57.030 align:start position:0%
15 times over we're just going to
make<00:11:54.640><c> a</c><00:11:54.720><c> new</c><00:11:54.959><c> art</c><00:11:55.440><c> arc</c><00:11:55.839><c> and</c><00:11:56.079><c> swap</c><00:11:56.399><c> it</c><00:11:56.560><c> into</c><00:11:56.880><c> the</c>

00:11:57.030 --> 00:11:57.040 align:start position:0%
make a new art arc and swap it into the
 

00:11:57.040 --> 00:12:01.590 align:start position:0%
make a new art arc and swap it into the
end<00:11:57.440><c> of</c><00:11:57.600><c> the</c><00:11:58.000><c> arcs</c><00:11:58.320><c> atom</c>

00:12:01.590 --> 00:12:01.600 align:start position:0%
 
 

00:12:01.600 --> 00:12:03.190 align:start position:0%
 
so<00:12:01.760><c> now</c><00:12:01.920><c> we're</c><00:12:02.079><c> ready</c><00:12:02.240><c> to</c><00:12:02.399><c> get</c><00:12:02.720><c> going</c><00:12:03.040><c> to</c><00:12:03.120><c> the</c>

00:12:03.190 --> 00:12:03.200 align:start position:0%
so now we're ready to get going to the
 

00:12:03.200 --> 00:12:04.550 align:start position:0%
so now we're ready to get going to the
draw<00:12:03.440><c> function</c>

00:12:04.550 --> 00:12:04.560 align:start position:0%
draw function
 

00:12:04.560 --> 00:12:06.389 align:start position:0%
draw function
there's<00:12:05.040><c> a</c><00:12:05.120><c> few</c><00:12:05.279><c> lines</c><00:12:05.600><c> happening</c><00:12:06.160><c> a</c><00:12:06.240><c> few</c>

00:12:06.389 --> 00:12:06.399 align:start position:0%
there's a few lines happening a few
 

00:12:06.399 --> 00:12:08.470 align:start position:0%
there's a few lines happening a few
lines<00:12:06.720><c> here</c><00:12:06.880><c> but</c><00:12:07.200><c> only</c><00:12:07.680><c> really</c><00:12:08.000><c> two</c><00:12:08.160><c> basic</c>

00:12:08.470 --> 00:12:08.480 align:start position:0%
lines here but only really two basic
 

00:12:08.480 --> 00:12:10.550 align:start position:0%
lines here but only really two basic
things<00:12:08.800><c> going</c><00:12:09.040><c> on</c><00:12:09.680><c> this</c><00:12:09.920><c> block</c><00:12:10.160><c> here</c><00:12:10.399><c> just</c>

00:12:10.550 --> 00:12:10.560 align:start position:0%
things going on this block here just
 

00:12:10.560 --> 00:12:12.470 align:start position:0%
things going on this block here just
sets<00:12:10.800><c> up</c><00:12:10.959><c> some</c><00:12:11.120><c> visual</c><00:12:11.440><c> properties</c><00:12:12.160><c> of</c><00:12:12.320><c> the</c>

00:12:12.470 --> 00:12:12.480 align:start position:0%
sets up some visual properties of the
 

00:12:12.480 --> 00:12:13.829 align:start position:0%
sets up some visual properties of the
sketch<00:12:13.040><c> we're</c><00:12:13.200><c> going</c><00:12:13.279><c> to</c><00:12:13.360><c> draw</c><00:12:13.519><c> a</c><00:12:13.600><c> black</c>

00:12:13.829 --> 00:12:13.839 align:start position:0%
sketch we're going to draw a black
 

00:12:13.839 --> 00:12:15.430 align:start position:0%
sketch we're going to draw a black
background<00:12:14.320><c> every</c><00:12:14.560><c> frame</c>

00:12:15.430 --> 00:12:15.440 align:start position:0%
background every frame
 

00:12:15.440 --> 00:12:16.870 align:start position:0%
background every frame
we're<00:12:15.600><c> going</c><00:12:15.680><c> to</c><00:12:15.760><c> turn</c><00:12:16.000><c> off</c><00:12:16.320><c> filling</c><00:12:16.720><c> in</c>

00:12:16.870 --> 00:12:16.880 align:start position:0%
we're going to turn off filling in
 

00:12:16.880 --> 00:12:18.310 align:start position:0%
we're going to turn off filling in
objects<00:12:17.200><c> so</c><00:12:17.360><c> we</c><00:12:17.440><c> just</c><00:12:17.600><c> get</c><00:12:17.760><c> the</c><00:12:17.920><c> borders</c><00:12:18.240><c> of</c>

00:12:18.310 --> 00:12:18.320 align:start position:0%
objects so we just get the borders of
 

00:12:18.320 --> 00:12:20.629 align:start position:0%
objects so we just get the borders of
the<00:12:18.480><c> arcs</c><00:12:18.720><c> rather</c><00:12:18.959><c> than</c><00:12:19.120><c> the</c><00:12:19.200><c> full</c><00:12:19.440><c> pie</c><00:12:19.600><c> slice</c>

00:12:20.629 --> 00:12:20.639 align:start position:0%
the arcs rather than the full pie slice
 

00:12:20.639 --> 00:12:22.310 align:start position:0%
the arcs rather than the full pie slice
we're<00:12:20.800><c> going</c><00:12:20.880><c> to</c><00:12:20.959><c> make</c><00:12:21.200><c> them</c><00:12:21.680><c> pure</c><00:12:22.000><c> white</c>

00:12:22.310 --> 00:12:22.320 align:start position:0%
we're going to make them pure white
 

00:12:22.320 --> 00:12:24.629 align:start position:0%
we're going to make them pure white
stroke<00:12:22.880><c> make</c><00:12:23.120><c> them</c><00:12:23.519><c> 10</c><00:12:23.760><c> pixels</c><00:12:24.160><c> wide</c><00:12:24.399><c> and</c><00:12:24.480><c> give</c>

00:12:24.629 --> 00:12:24.639 align:start position:0%
stroke make them 10 pixels wide and give
 

00:12:24.639 --> 00:12:26.069 align:start position:0%
stroke make them 10 pixels wide and give
them<00:12:24.800><c> square</c><00:12:25.120><c> caps</c>

00:12:26.069 --> 00:12:26.079 align:start position:0%
them square caps
 

00:12:26.079 --> 00:12:28.470 align:start position:0%
them square caps
and<00:12:26.240><c> so</c><00:12:26.399><c> after</c><00:12:26.720><c> we</c><00:12:27.279><c> finish</c><00:12:27.680><c> doing</c><00:12:27.839><c> that</c><00:12:28.079><c> we</c><00:12:28.240><c> can</c>

00:12:28.470 --> 00:12:28.480 align:start position:0%
and so after we finish doing that we can
 

00:12:28.480 --> 00:12:30.629 align:start position:0%
and so after we finish doing that we can
move<00:12:28.720><c> on</c><00:12:28.800><c> to</c><00:12:28.880><c> actually</c><00:12:29.120><c> drawing</c><00:12:29.440><c> them</c>

00:12:30.629 --> 00:12:30.639 align:start position:0%
move on to actually drawing them
 

00:12:30.639 --> 00:12:31.670 align:start position:0%
move on to actually drawing them
so<00:12:30.880><c> we</c>

00:12:31.670 --> 00:12:31.680 align:start position:0%
so we
 

00:12:31.680 --> 00:12:34.230 align:start position:0%
so we
first<00:12:32.399><c> by</c><00:12:32.560><c> default</c><00:12:32.959><c> the</c><00:12:33.120><c> origin</c><00:12:33.680><c> is</c><00:12:33.839><c> in</c><00:12:33.920><c> the</c>

00:12:34.230 --> 00:12:34.240 align:start position:0%
first by default the origin is in the
 

00:12:34.240 --> 00:12:36.230 align:start position:0%
first by default the origin is in the
top<00:12:34.560><c> left</c><00:12:35.040><c> as</c><00:12:35.200><c> you</c><00:12:35.519><c> probably</c><00:12:35.839><c> expect</c><00:12:36.160><c> if</c>

00:12:36.230 --> 00:12:36.240 align:start position:0%
top left as you probably expect if
 

00:12:36.240 --> 00:12:37.190 align:start position:0%
top left as you probably expect if
you're<00:12:36.399><c> familiar</c><00:12:36.720><c> with</c><00:12:36.800><c> graphics</c>

00:12:37.190 --> 00:12:37.200 align:start position:0%
you're familiar with graphics
 

00:12:37.200 --> 00:12:38.790 align:start position:0%
you're familiar with graphics
programming<00:12:37.920><c> and</c><00:12:38.079><c> we're</c><00:12:38.240><c> just</c><00:12:38.399><c> going</c><00:12:38.560><c> to</c><00:12:38.639><c> move</c>

00:12:38.790 --> 00:12:38.800 align:start position:0%
programming and we're just going to move
 

00:12:38.800 --> 00:12:41.269 align:start position:0%
programming and we're just going to move
that<00:12:38.959><c> down</c><00:12:39.120><c> to</c><00:12:39.279><c> the</c><00:12:39.360><c> middle</c><00:12:39.680><c> with</c><00:12:39.920><c> a</c><00:12:40.160><c> translate</c>

00:12:41.269 --> 00:12:41.279 align:start position:0%
that down to the middle with a translate
 

00:12:41.279 --> 00:12:43.110 align:start position:0%
that down to the middle with a translate
the<00:12:41.519><c> translation</c><00:12:42.000><c> matrix</c><00:12:42.399><c> is</c><00:12:42.480><c> reset</c><00:12:42.880><c> every</c>

00:12:43.110 --> 00:12:43.120 align:start position:0%
the translation matrix is reset every
 

00:12:43.120 --> 00:12:44.310 align:start position:0%
the translation matrix is reset every
frame<00:12:43.279><c> so</c><00:12:43.440><c> we're</c><00:12:43.519><c> not</c><00:12:43.920><c> we</c><00:12:44.000><c> don't</c><00:12:44.160><c> have</c><00:12:44.240><c> to</c>

00:12:44.310 --> 00:12:44.320 align:start position:0%
frame so we're not we don't have to
 

00:12:44.320 --> 00:12:45.750 align:start position:0%
frame so we're not we don't have to
worry<00:12:44.560><c> about</c><00:12:44.800><c> scooting</c><00:12:45.200><c> off</c><00:12:45.360><c> to</c><00:12:45.440><c> the</c><00:12:45.519><c> bottom</c>

00:12:45.750 --> 00:12:45.760 align:start position:0%
worry about scooting off to the bottom
 

00:12:45.760 --> 00:12:47.269 align:start position:0%
worry about scooting off to the bottom
right<00:12:46.000><c> of</c><00:12:46.079><c> the</c><00:12:46.160><c> frame</c>

00:12:47.269 --> 00:12:47.279 align:start position:0%
right of the frame
 

00:12:47.279 --> 00:12:49.269 align:start position:0%
right of the frame
and<00:12:47.360><c> then</c><00:12:47.519><c> we</c><00:12:47.680><c> just</c><00:12:48.079><c> iterate</c><00:12:48.560><c> over</c><00:12:48.880><c> all</c><00:12:49.040><c> of</c><00:12:49.200><c> our</c>

00:12:49.269 --> 00:12:49.279 align:start position:0%
and then we just iterate over all of our
 

00:12:49.279 --> 00:12:53.350 align:start position:0%
and then we just iterate over all of our
arcmaps<00:12:50.079><c> for</c><00:12:50.240><c> side</c><00:12:50.480><c> effects</c>

00:12:53.350 --> 00:12:53.360 align:start position:0%
arcmaps for side effects
 

00:12:53.360 --> 00:12:55.990 align:start position:0%
arcmaps for side effects
we<00:12:53.600><c> pull</c><00:12:53.839><c> out</c><00:12:54.000><c> the</c><00:12:54.240><c> position</c><00:12:55.040><c> within</c><00:12:55.440><c> radius</c>

00:12:55.990 --> 00:12:56.000 align:start position:0%
we pull out the position within radius
 

00:12:56.000 --> 00:12:57.110 align:start position:0%
we pull out the position within radius
properties

00:12:57.110 --> 00:12:57.120 align:start position:0%
properties
 

00:12:57.120 --> 00:12:58.949 align:start position:0%
properties
and<00:12:57.279><c> then</c><00:12:57.440><c> we</c><00:12:57.680><c> can</c><00:12:57.839><c> just</c><00:12:58.079><c> use</c><00:12:58.320><c> quill's</c><00:12:58.720><c> arc</c>

00:12:58.949 --> 00:12:58.959 align:start position:0%
and then we can just use quill's arc
 

00:12:58.959 --> 00:13:00.710 align:start position:0%
and then we can just use quill's arc
function<00:12:59.279><c> to</c><00:12:59.440><c> actually</c><00:12:59.600><c> do</c><00:12:59.760><c> the</c><00:12:59.920><c> drawing</c><00:13:00.560><c> it</c>

00:13:00.710 --> 00:13:00.720 align:start position:0%
function to actually do the drawing it
 

00:13:00.720 --> 00:13:03.030 align:start position:0%
function to actually do the drawing it
takes<00:13:01.360><c> six</c><00:13:01.600><c> arguments</c><00:13:02.160><c> the</c><00:13:02.240><c> first</c><00:13:02.560><c> two</c><00:13:02.880><c> are</c>

00:13:03.030 --> 00:13:03.040 align:start position:0%
takes six arguments the first two are
 

00:13:03.040 --> 00:13:05.190 align:start position:0%
takes six arguments the first two are
the<00:13:03.519><c> x</c><00:13:03.760><c> and</c><00:13:03.839><c> y</c><00:13:04.079><c> positions</c><00:13:04.480><c> of</c><00:13:04.560><c> the</c><00:13:04.720><c> center</c><00:13:05.120><c> of</c>

00:13:05.190 --> 00:13:05.200 align:start position:0%
the x and y positions of the center of
 

00:13:05.200 --> 00:13:06.389 align:start position:0%
the x and y positions of the center of
the<00:13:05.360><c> arcs</c>

00:13:06.389 --> 00:13:06.399 align:start position:0%
the arcs
 

00:13:06.399 --> 00:13:07.430 align:start position:0%
the arcs
ellipse

00:13:07.430 --> 00:13:07.440 align:start position:0%
ellipse
 

00:13:07.440 --> 00:13:09.430 align:start position:0%
ellipse
the<00:13:07.680><c> next</c><00:13:07.920><c> two</c><00:13:08.240><c> are</c><00:13:08.399><c> the</c><00:13:08.720><c> semi-major</c><00:13:09.360><c> and</c>

00:13:09.430 --> 00:13:09.440 align:start position:0%
the next two are the semi-major and
 

00:13:09.440 --> 00:13:12.150 align:start position:0%
the next two are the semi-major and
semi-minor<00:13:10.160><c> axis</c><00:13:10.800><c> lengths</c><00:13:11.519><c> and</c><00:13:11.680><c> we</c><00:13:11.920><c> want</c>

00:13:12.150 --> 00:13:12.160 align:start position:0%
semi-minor axis lengths and we want
 

00:13:12.160 --> 00:13:13.269 align:start position:0%
semi-minor axis lengths and we want
circular<00:13:12.560><c> arcs</c><00:13:12.800><c> so</c><00:13:12.880><c> we're</c><00:13:12.959><c> just</c><00:13:13.120><c> going</c><00:13:13.200><c> to</c>

00:13:13.269 --> 00:13:13.279 align:start position:0%
circular arcs so we're just going to
 

00:13:13.279 --> 00:13:14.949 align:start position:0%
circular arcs so we're just going to
give<00:13:13.360><c> it</c><00:13:13.440><c> the</c><00:13:13.519><c> radius</c><00:13:13.839><c> for</c><00:13:13.920><c> both</c><00:13:14.160><c> of</c><00:13:14.240><c> those</c><00:13:14.880><c> and</c>

00:13:14.949 --> 00:13:14.959 align:start position:0%
give it the radius for both of those and
 

00:13:14.959 --> 00:13:16.389 align:start position:0%
give it the radius for both of those and
then<00:13:15.120><c> the</c><00:13:15.200><c> last</c><00:13:15.519><c> two</c><00:13:15.839><c> are</c><00:13:15.920><c> the</c><00:13:16.000><c> angular</c>

00:13:16.389 --> 00:13:16.399 align:start position:0%
then the last two are the angular
 

00:13:16.399 --> 00:13:18.710 align:start position:0%
then the last two are the angular
positions<00:13:16.880><c> to</c><00:13:17.040><c> start</c><00:13:17.360><c> and</c><00:13:17.519><c> stop</c><00:13:18.000><c> drawing</c><00:13:18.560><c> the</c>

00:13:18.710 --> 00:13:18.720 align:start position:0%
positions to start and stop drawing the
 

00:13:18.720 --> 00:13:20.310 align:start position:0%
positions to start and stop drawing the
arc<00:13:19.360><c> so</c><00:13:19.519><c> we're</c><00:13:19.680><c> going</c><00:13:19.760><c> to</c><00:13:19.839><c> start</c><00:13:20.079><c> at</c><00:13:20.160><c> the</c>

00:13:20.310 --> 00:13:20.320 align:start position:0%
arc so we're going to start at the
 

00:13:20.320 --> 00:13:21.990 align:start position:0%
arc so we're going to start at the
position<00:13:20.800><c> and</c><00:13:20.959><c> stop</c><00:13:21.279><c> at</c><00:13:21.360><c> the</c><00:13:21.440><c> sum</c><00:13:21.760><c> of</c><00:13:21.920><c> the</c>

00:13:21.990 --> 00:13:22.000 align:start position:0%
position and stop at the sum of the
 

00:13:22.000 --> 00:13:24.790 align:start position:0%
position and stop at the sum of the
position<00:13:22.560><c> and</c><00:13:22.720><c> the</c><00:13:22.800><c> width</c>

00:13:24.790 --> 00:13:24.800 align:start position:0%
position and the width
 

00:13:24.800 --> 00:13:26.949 align:start position:0%
position and the width
so<00:13:24.959><c> now</c><00:13:25.120><c> we</c><00:13:25.279><c> have</c><00:13:25.680><c> all</c><00:13:25.760><c> the</c><00:13:25.920><c> functions</c><00:13:26.399><c> we</c><00:13:26.560><c> need</c>

00:13:26.949 --> 00:13:26.959 align:start position:0%
so now we have all the functions we need
 

00:13:26.959 --> 00:13:28.870 align:start position:0%
so now we have all the functions we need
uh<00:13:27.200><c> the</c><00:13:27.279><c> last</c><00:13:27.519><c> thing</c><00:13:27.680><c> we</c><00:13:27.839><c> need</c><00:13:28.000><c> to</c><00:13:28.079><c> do</c><00:13:28.560><c> is</c>

00:13:28.870 --> 00:13:28.880 align:start position:0%
uh the last thing we need to do is
 

00:13:28.880 --> 00:13:30.710 align:start position:0%
uh the last thing we need to do is
actually<00:13:29.120><c> define</c><00:13:29.519><c> a</c><00:13:29.680><c> sketch</c><00:13:30.000><c> and</c><00:13:30.079><c> kick</c><00:13:30.320><c> it</c><00:13:30.480><c> off</c>

00:13:30.710 --> 00:13:30.720 align:start position:0%
actually define a sketch and kick it off
 

00:13:30.720 --> 00:13:32.310 align:start position:0%
actually define a sketch and kick it off
and<00:13:30.800><c> we</c><00:13:30.959><c> do</c><00:13:31.120><c> that</c><00:13:31.360><c> with</c><00:13:31.600><c> the</c>

00:13:32.310 --> 00:13:32.320 align:start position:0%
and we do that with the
 

00:13:32.320 --> 00:13:34.949 align:start position:0%
and we do that with the
death<00:13:32.560><c> sketch</c><00:13:32.880><c> macro</c><00:13:34.240><c> so</c><00:13:34.399><c> there</c><00:13:34.560><c> are</c><00:13:34.639><c> three</c>

00:13:34.949 --> 00:13:34.959 align:start position:0%
death sketch macro so there are three
 

00:13:34.959 --> 00:13:36.550 align:start position:0%
death sketch macro so there are three
important<00:13:35.360><c> keyword</c><00:13:35.839><c> arguments</c><00:13:36.240><c> to</c><00:13:36.320><c> this</c>

00:13:36.550 --> 00:13:36.560 align:start position:0%
important keyword arguments to this
 

00:13:36.560 --> 00:13:39.190 align:start position:0%
important keyword arguments to this
macro<00:13:37.360><c> the</c><00:13:37.519><c> first</c><00:13:37.920><c> is</c><00:13:38.320><c> the</c><00:13:38.560><c> size</c><00:13:38.880><c> which</c><00:13:39.120><c> is</c>

00:13:39.190 --> 00:13:39.200 align:start position:0%
macro the first is the size which is
 

00:13:39.200 --> 00:13:41.030 align:start position:0%
macro the first is the size which is
just<00:13:39.360><c> a</c><00:13:39.440><c> two</c><00:13:39.680><c> vector</c><00:13:40.160><c> defining</c><00:13:40.560><c> the</c><00:13:40.720><c> width</c><00:13:40.959><c> and</c>

00:13:41.030 --> 00:13:41.040 align:start position:0%
just a two vector defining the width and
 

00:13:41.040 --> 00:13:43.990 align:start position:0%
just a two vector defining the width and
the<00:13:41.120><c> height</c><00:13:41.440><c> of</c><00:13:41.600><c> the</c><00:13:41.920><c> sketches</c><00:13:42.639><c> window</c>

00:13:43.990 --> 00:13:44.000 align:start position:0%
the height of the sketches window
 

00:13:44.000 --> 00:13:45.190 align:start position:0%
the height of the sketches window
and<00:13:44.079><c> then</c><00:13:44.240><c> it</c><00:13:44.320><c> needs</c><00:13:44.480><c> to</c><00:13:44.639><c> know</c><00:13:44.720><c> the</c><00:13:44.880><c> names</c><00:13:45.040><c> of</c>

00:13:45.190 --> 00:13:45.200 align:start position:0%
and then it needs to know the names of
 

00:13:45.200 --> 00:13:47.030 align:start position:0%
and then it needs to know the names of
our<00:13:45.440><c> setup</c><00:13:45.760><c> and</c><00:13:45.920><c> draw</c><00:13:46.160><c> functions</c><00:13:46.720><c> which</c><00:13:46.959><c> in</c>

00:13:47.030 --> 00:13:47.040 align:start position:0%
our setup and draw functions which in
 

00:13:47.040 --> 00:13:49.670 align:start position:0%
our setup and draw functions which in
this<00:13:47.200><c> case</c><00:13:48.000><c> are</c><00:13:48.079><c> just</c><00:13:48.320><c> set</c><00:13:48.480><c> up</c><00:13:48.639><c> and</c><00:13:48.720><c> draw</c>

00:13:49.670 --> 00:13:49.680 align:start position:0%
this case are just set up and draw
 

00:13:49.680 --> 00:13:51.430 align:start position:0%
this case are just set up and draw
so

00:13:51.430 --> 00:13:51.440 align:start position:0%
so
 

00:13:51.440 --> 00:13:53.990 align:start position:0%
so
let<00:13:51.600><c> me</c><00:13:51.760><c> open</c><00:13:52.000><c> up</c>

00:13:53.990 --> 00:13:54.000 align:start position:0%
let me open up
 

00:13:54.000 --> 00:13:59.030 align:start position:0%
let me open up
oh<00:13:54.240><c> crap</c>

00:13:59.030 --> 00:13:59.040 align:start position:0%
 
 

00:13:59.040 --> 00:14:01.590 align:start position:0%
 
so<00:13:59.519><c> here's</c><00:13:59.760><c> a</c><00:13:59.839><c> very</c><00:14:00.079><c> cramped</c><00:14:00.320><c> repo</c>

00:14:01.590 --> 00:14:01.600 align:start position:0%
so here's a very cramped repo
 

00:14:01.600 --> 00:14:03.910 align:start position:0%
so here's a very cramped repo
let's<00:14:01.920><c> evaluate</c><00:14:02.480><c> everything</c><00:14:03.279><c> and</c><00:14:03.680><c> now</c><00:14:03.839><c> we</c>

00:14:03.910 --> 00:14:03.920 align:start position:0%
let's evaluate everything and now we
 

00:14:03.920 --> 00:14:05.189 align:start position:0%
let's evaluate everything and now we
have<00:14:04.000><c> some</c><00:14:04.160><c> marks</c>

00:14:05.189 --> 00:14:05.199 align:start position:0%
have some marks
 

00:14:05.199 --> 00:14:08.389 align:start position:0%
have some marks
so<00:14:05.760><c> you</c><00:14:05.920><c> might</c><00:14:06.160><c> be</c><00:14:06.399><c> uh</c><00:14:07.040><c> asking</c><00:14:07.360><c> me</c><00:14:07.839><c> that</c><00:14:08.079><c> i</c><00:14:08.240><c> told</c>

00:14:08.389 --> 00:14:08.399 align:start position:0%
so you might be uh asking me that i told
 

00:14:08.399 --> 00:14:09.829 align:start position:0%
so you might be uh asking me that i told
you<00:14:08.560><c> the</c><00:14:08.720><c> arcs</c><00:14:08.959><c> would</c><00:14:09.040><c> be</c><00:14:09.120><c> spinning</c><00:14:09.600><c> and</c><00:14:09.680><c> they</c>

00:14:09.829 --> 00:14:09.839 align:start position:0%
you the arcs would be spinning and they
 

00:14:09.839 --> 00:14:15.430 align:start position:0%
you the arcs would be spinning and they
are<00:14:10.000><c> clearly</c><00:14:10.320><c> not</c><00:14:10.880><c> so</c><00:14:11.040><c> let's</c><00:14:11.279><c> fix</c><00:14:11.519><c> that</c>

00:14:15.430 --> 00:14:15.440 align:start position:0%
 
 

00:14:15.440 --> 00:14:17.350 align:start position:0%
 
i<00:14:15.600><c> have</c><00:14:15.760><c> a</c><00:14:15.839><c> habit</c><00:14:16.240><c> of</c><00:14:16.480><c> uh</c><00:14:16.800><c> where</c><00:14:16.959><c> i</c><00:14:17.040><c> like</c><00:14:17.199><c> to</c>

00:14:17.350 --> 00:14:17.360 align:start position:0%
i have a habit of uh where i like to
 

00:14:17.360 --> 00:14:19.189 align:start position:0%
i have a habit of uh where i like to
separate<00:14:17.920><c> out</c><00:14:18.240><c> the</c><00:14:18.480><c> part</c><00:14:18.720><c> of</c><00:14:18.800><c> my</c><00:14:18.959><c> draw</c>

00:14:19.189 --> 00:14:19.199 align:start position:0%
separate out the part of my draw
 

00:14:19.199 --> 00:14:20.870 align:start position:0%
separate out the part of my draw
function<00:14:19.519><c> that</c><00:14:19.680><c> actually</c><00:14:20.160><c> changes</c><00:14:20.560><c> the</c><00:14:20.639><c> state</c>

00:14:20.870 --> 00:14:20.880 align:start position:0%
function that actually changes the state
 

00:14:20.880 --> 00:14:22.150 align:start position:0%
function that actually changes the state
from<00:14:21.040><c> the</c><00:14:21.120><c> part</c><00:14:21.279><c> that</c><00:14:21.440><c> just</c><00:14:21.600><c> does</c><00:14:21.760><c> the</c><00:14:21.839><c> drawing</c>

00:14:22.150 --> 00:14:22.160 align:start position:0%
from the part that just does the drawing
 

00:14:22.160 --> 00:14:23.590 align:start position:0%
from the part that just does the drawing
and<00:14:22.240><c> i</c><00:14:22.399><c> like</c><00:14:22.560><c> to</c><00:14:22.639><c> put</c><00:14:22.800><c> that</c><00:14:22.959><c> in</c><00:14:23.040><c> a</c><00:14:23.120><c> function</c>

00:14:23.590 --> 00:14:23.600 align:start position:0%
and i like to put that in a function
 

00:14:23.600 --> 00:14:25.269 align:start position:0%
and i like to put that in a function
called<00:14:23.839><c> tick</c><00:14:24.079><c> bang</c>

00:14:25.269 --> 00:14:25.279 align:start position:0%
called tick bang
 

00:14:25.279 --> 00:14:26.389 align:start position:0%
called tick bang
so<00:14:25.440><c> this</c><00:14:25.680><c> is</c>

00:14:26.389 --> 00:14:26.399 align:start position:0%
so this is
 

00:14:26.399 --> 00:14:28.150 align:start position:0%
so this is
not<00:14:26.560><c> very</c><00:14:26.720><c> much</c><00:14:26.959><c> happening</c><00:14:27.360><c> here</c><00:14:27.760><c> we're</c><00:14:27.920><c> just</c>

00:14:28.150 --> 00:14:28.160 align:start position:0%
not very much happening here we're just
 

00:14:28.160 --> 00:14:31.430 align:start position:0%
not very much happening here we're just
gonna<00:14:28.800><c> loop</c><00:14:29.120><c> through</c><00:14:29.920><c> all</c><00:14:30.079><c> of</c><00:14:30.240><c> our</c><00:14:30.800><c> arcs</c><00:14:31.279><c> and</c>

00:14:31.430 --> 00:14:31.440 align:start position:0%
gonna loop through all of our arcs and
 

00:14:31.440 --> 00:14:34.230 align:start position:0%
gonna loop through all of our arcs and
pull<00:14:31.600><c> out</c><00:14:31.839><c> the</c><00:14:32.079><c> position</c><00:14:32.639><c> and</c><00:14:32.800><c> velocity</c><00:14:33.519><c> keys</c>

00:14:34.230 --> 00:14:34.240 align:start position:0%
pull out the position and velocity keys
 

00:14:34.240 --> 00:14:36.310 align:start position:0%
pull out the position and velocity keys
and<00:14:34.399><c> then</c><00:14:34.560><c> we</c><00:14:34.880><c> just</c><00:14:35.279><c> update</c><00:14:35.600><c> the</c><00:14:35.760><c> position</c><00:14:36.240><c> to</c>

00:14:36.310 --> 00:14:36.320 align:start position:0%
and then we just update the position to
 

00:14:36.320 --> 00:14:38.230 align:start position:0%
and then we just update the position to
be<00:14:36.480><c> the</c><00:14:36.639><c> sum</c><00:14:36.880><c> of</c><00:14:36.959><c> the</c><00:14:37.040><c> position</c><00:14:37.360><c> of</c><00:14:37.440><c> velocity</c>

00:14:38.230 --> 00:14:38.240 align:start position:0%
be the sum of the position of velocity
 

00:14:38.240 --> 00:14:39.670 align:start position:0%
be the sum of the position of velocity
and<00:14:38.320><c> then</c><00:14:38.560><c> once</c><00:14:38.800><c> we</c><00:14:38.880><c> have</c><00:14:39.040><c> the</c><00:14:39.120><c> shifted</c><00:14:39.519><c> arcs</c>

00:14:39.670 --> 00:14:39.680 align:start position:0%
and then once we have the shifted arcs
 

00:14:39.680 --> 00:14:41.269 align:start position:0%
and then once we have the shifted arcs
we<00:14:39.839><c> just</c><00:14:40.000><c> reset</c><00:14:40.320><c> the</c><00:14:40.399><c> atom</c><00:14:40.720><c> to</c><00:14:40.880><c> contain</c><00:14:41.199><c> the</c>

00:14:41.269 --> 00:14:41.279 align:start position:0%
we just reset the atom to contain the
 

00:14:41.279 --> 00:14:42.629 align:start position:0%
we just reset the atom to contain the
new<00:14:41.440><c> ones</c>

00:14:42.629 --> 00:14:42.639 align:start position:0%
new ones
 

00:14:42.639 --> 00:14:46.310 align:start position:0%
new ones
so<00:14:42.800><c> we</c><00:14:42.959><c> can</c><00:14:44.079><c> define</c><00:14:44.480><c> this</c><00:14:45.199><c> and</c><00:14:45.440><c> go</c><00:14:45.600><c> down</c><00:14:46.000><c> and</c>

00:14:46.310 --> 00:14:46.320 align:start position:0%
so we can define this and go down and
 

00:14:46.320 --> 00:14:48.069 align:start position:0%
so we can define this and go down and
call<00:14:46.560><c> tick</c><00:14:46.959><c> at</c><00:14:47.040><c> the</c><00:14:47.120><c> beginning</c><00:14:47.600><c> of</c><00:14:47.760><c> our</c><00:14:47.839><c> draw</c>

00:14:48.069 --> 00:14:48.079 align:start position:0%
call tick at the beginning of our draw
 

00:14:48.079 --> 00:14:50.790 align:start position:0%
call tick at the beginning of our draw
function<00:14:48.800><c> and</c><00:14:48.959><c> redefine</c><00:14:49.440><c> it</c><00:14:49.920><c> and</c><00:14:50.320><c> we</c><00:14:50.480><c> go</c><00:14:50.639><c> back</c>

00:14:50.790 --> 00:14:50.800 align:start position:0%
function and redefine it and we go back
 

00:14:50.800 --> 00:14:51.910 align:start position:0%
function and redefine it and we go back
and<00:14:50.880><c> you'll</c><00:14:51.040><c> notice</c><00:14:51.279><c> without</c><00:14:51.519><c> us</c><00:14:51.600><c> having</c><00:14:51.839><c> to</c>

00:14:51.910 --> 00:14:51.920 align:start position:0%
and you'll notice without us having to
 

00:14:51.920 --> 00:14:53.670 align:start position:0%
and you'll notice without us having to
do<00:14:52.079><c> anything</c><00:14:52.639><c> the</c><00:14:52.800><c> sketch</c><00:14:53.120><c> has</c><00:14:53.279><c> picked</c><00:14:53.519><c> up</c><00:14:53.600><c> on</c>

00:14:53.670 --> 00:14:53.680 align:start position:0%
do anything the sketch has picked up on
 

00:14:53.680 --> 00:14:55.670 align:start position:0%
do anything the sketch has picked up on
our<00:14:53.839><c> new</c><00:14:54.399><c> draw</c><00:14:54.639><c> function</c><00:14:55.040><c> and</c><00:14:55.199><c> now</c><00:14:55.360><c> the</c><00:14:55.440><c> arcs</c>

00:14:55.670 --> 00:14:55.680 align:start position:0%
our new draw function and now the arcs
 

00:14:55.680 --> 00:14:56.870 align:start position:0%
our new draw function and now the arcs
are<00:14:55.760><c> all</c><00:14:55.920><c> spinning</c>

00:14:56.870 --> 00:14:56.880 align:start position:0%
are all spinning
 

00:14:56.880 --> 00:14:58.150 align:start position:0%
are all spinning
this<00:14:57.120><c> is</c><00:14:57.199><c> really</c><00:14:57.360><c> cool</c><00:14:57.600><c> because</c><00:14:57.760><c> it</c><00:14:57.839><c> means</c><00:14:58.000><c> we</c>

00:14:58.150 --> 00:14:58.160 align:start position:0%
this is really cool because it means we
 

00:14:58.160 --> 00:14:59.910 align:start position:0%
this is really cool because it means we
can<00:14:58.240><c> do</c><00:14:58.399><c> a</c><00:14:58.399><c> lot</c><00:14:58.560><c> of</c><00:14:58.720><c> experimentation</c>

00:14:59.910 --> 00:14:59.920 align:start position:0%
can do a lot of experimentation
 

00:14:59.920 --> 00:15:02.150 align:start position:0%
can do a lot of experimentation
basically<00:15:00.480><c> instantaneously</c><00:15:01.519><c> so</c><00:15:01.760><c> let's</c><00:15:01.920><c> say</c>

00:15:02.150 --> 00:15:02.160 align:start position:0%
basically instantaneously so let's say
 

00:15:02.160 --> 00:15:06.150 align:start position:0%
basically instantaneously so let's say
we<00:15:02.240><c> wanted</c><00:15:02.560><c> to</c><00:15:02.639><c> make</c><00:15:02.800><c> the</c><00:15:02.959><c> arcs</c><00:15:03.680><c> thicker</c>

00:15:06.150 --> 00:15:06.160 align:start position:0%
 
 

00:15:06.160 --> 00:15:07.590 align:start position:0%
 
just<00:15:06.399><c> happens</c>

00:15:07.590 --> 00:15:07.600 align:start position:0%
just happens
 

00:15:07.600 --> 00:15:12.949 align:start position:0%
just happens
we<00:15:07.760><c> can</c><00:15:08.240><c> make</c><00:15:08.480><c> them</c><00:15:08.959><c> bright</c><00:15:09.279><c> pink</c>

00:15:12.949 --> 00:15:12.959 align:start position:0%
 
 

00:15:12.959 --> 00:15:15.350 align:start position:0%
 
oh<00:15:13.279><c> that's</c><00:15:13.519><c> redefined</c>

00:15:15.350 --> 00:15:15.360 align:start position:0%
oh that's redefined
 

00:15:15.360 --> 00:15:16.870 align:start position:0%
oh that's redefined
uh<00:15:15.680><c> and</c><00:15:15.760><c> so</c><00:15:15.920><c> this</c><00:15:16.079><c> is</c><00:15:16.240><c> really</c><00:15:16.480><c> great</c><00:15:16.639><c> because</c>

00:15:16.870 --> 00:15:16.880 align:start position:0%
uh and so this is really great because
 

00:15:16.880 --> 00:15:18.629 align:start position:0%
uh and so this is really great because
it<00:15:17.199><c> allows</c><00:15:17.440><c> you</c><00:15:17.600><c> to</c><00:15:17.760><c> do</c><00:15:18.320><c> lots</c><00:15:18.560><c> of</c>

00:15:18.629 --> 00:15:18.639 align:start position:0%
it allows you to do lots of
 

00:15:18.639 --> 00:15:20.790 align:start position:0%
it allows you to do lots of
experimentation<00:15:19.760><c> really</c><00:15:20.000><c> fast</c><00:15:20.480><c> which</c><00:15:20.720><c> is</c>

00:15:20.790 --> 00:15:20.800 align:start position:0%
experimentation really fast which is
 

00:15:20.800 --> 00:15:22.870 align:start position:0%
experimentation really fast which is
what<00:15:20.959><c> i</c><00:15:21.440><c> found</c><00:15:21.760><c> so</c>

00:15:22.870 --> 00:15:22.880 align:start position:0%
what i found so
 

00:15:22.880 --> 00:15:24.710 align:start position:0%
what i found so
seductive<00:15:23.440><c> about</c><00:15:23.680><c> programming</c><00:15:24.240><c> in</c><00:15:24.399><c> the</c><00:15:24.480><c> first</c>

00:15:24.710 --> 00:15:24.720 align:start position:0%
seductive about programming in the first
 

00:15:24.720 --> 00:15:27.110 align:start position:0%
seductive about programming in the first
place

00:15:27.110 --> 00:15:27.120 align:start position:0%
 
 

00:15:27.120 --> 00:15:29.030 align:start position:0%
 
so<00:15:27.279><c> that</c><00:15:27.360><c> was</c><00:15:27.519><c> a</c><00:15:27.519><c> little</c><00:15:27.920><c> taste</c><00:15:28.160><c> of</c><00:15:28.320><c> quill</c><00:15:28.880><c> if</c>

00:15:29.030 --> 00:15:29.040 align:start position:0%
so that was a little taste of quill if
 

00:15:29.040 --> 00:15:30.949 align:start position:0%
so that was a little taste of quill if
you<00:15:29.120><c> want</c><00:15:29.279><c> to</c><00:15:29.760><c> talk</c><00:15:29.920><c> to</c><00:15:30.079><c> me</c><00:15:30.160><c> more</c><00:15:30.399><c> about</c>

00:15:30.949 --> 00:15:30.959 align:start position:0%
you want to talk to me more about
 

00:15:30.959 --> 00:15:33.670 align:start position:0%
you want to talk to me more about
creating<00:15:31.440><c> art</c><00:15:31.600><c> with</c><00:15:31.760><c> code</c><00:15:32.399><c> check</c><00:15:32.639><c> out</c><00:15:32.800><c> some</c><00:15:33.199><c> 3d</c>

00:15:33.670 --> 00:15:33.680 align:start position:0%
creating art with code check out some 3d
 

00:15:33.680 --> 00:15:35.670 align:start position:0%
creating art with code check out some 3d
printed<00:15:34.000><c> sculptures</c><00:15:34.480><c> i</c><00:15:34.560><c> made</c><00:15:34.720><c> with</c><00:15:34.959><c> quill</c>

00:15:35.670 --> 00:15:35.680 align:start position:0%
printed sculptures i made with quill
 

00:15:35.680 --> 00:15:37.590 align:start position:0%
printed sculptures i made with quill
find<00:15:35.839><c> me</c><00:15:36.000><c> around</c><00:15:36.240><c> later</c><00:15:36.880><c> and</c><00:15:37.279><c> thanks</c><00:15:37.440><c> for</c>

00:15:37.590 --> 00:15:37.600 align:start position:0%
find me around later and thanks for
 

00:15:37.600 --> 00:15:43.590 align:start position:0%
find me around later and thanks for
listening

00:15:43.590 --> 00:15:43.600 align:start position:0%
 
 

00:15:43.600 --> 00:15:45.750 align:start position:0%
 
good<00:15:43.839><c> afternoon</c><00:15:44.480><c> my</c><00:15:44.639><c> name</c><00:15:44.720><c> is</c><00:15:44.880><c> hugh</c><00:15:45.120><c> goodman</c>

00:15:45.750 --> 00:15:45.760 align:start position:0%
good afternoon my name is hugh goodman
 

00:15:45.760 --> 00:15:48.230 align:start position:0%
good afternoon my name is hugh goodman
i've<00:15:46.560><c> worked</c><00:15:46.800><c> with</c><00:15:46.959><c> lisbenwyc</c><00:15:47.760><c> and</c><00:15:47.839><c> my</c><00:15:48.000><c> day</c>

00:15:48.230 --> 00:15:48.240 align:start position:0%
i've worked with lisbenwyc and my day
 

00:15:48.240 --> 00:15:50.470 align:start position:0%
i've worked with lisbenwyc and my day
job<00:15:48.480><c> is</c><00:15:48.560><c> at</c><00:15:48.720><c> brander</c><00:15:49.199><c> group</c><00:15:49.759><c> we're</c><00:15:50.000><c> an</c><00:15:50.079><c> amazon</c>

00:15:50.470 --> 00:15:50.480 align:start position:0%
job is at brander group we're an amazon
 

00:15:50.480 --> 00:15:52.629 align:start position:0%
job is at brander group we're an amazon
web<00:15:50.720><c> services</c><00:15:51.199><c> company</c><00:15:51.680><c> and</c><00:15:52.000><c> shockingly</c><00:15:52.560><c> we</c>

00:15:52.629 --> 00:15:52.639 align:start position:0%
web services company and shockingly we
 

00:15:52.639 --> 00:15:54.150 align:start position:0%
web services company and shockingly we
like<00:15:52.800><c> to</c><00:15:52.959><c> do</c><00:15:53.120><c> our</c><00:15:53.199><c> software</c><00:15:53.519><c> development</c><00:15:54.000><c> in</c>

00:15:54.150 --> 00:15:54.160 align:start position:0%
like to do our software development in
 

00:15:54.160 --> 00:15:56.310 align:start position:0%
like to do our software development in
lisp

00:15:56.310 --> 00:15:56.320 align:start position:0%
lisp
 

00:15:56.320 --> 00:15:57.990 align:start position:0%
lisp
however<00:15:56.639><c> during</c><00:15:56.880><c> the</c><00:15:56.959><c> day</c><00:15:57.440><c> this</c><00:15:57.600><c> is</c><00:15:57.680><c> what</c><00:15:57.839><c> i'd</c>

00:15:57.990 --> 00:15:58.000 align:start position:0%
however during the day this is what i'd
 

00:15:58.000 --> 00:15:59.430 align:start position:0%
however during the day this is what i'd
really<00:15:58.240><c> like</c><00:15:58.399><c> to</c><00:15:58.560><c> do</c><00:15:58.800><c> a</c><00:15:58.880><c> whole</c><00:15:59.040><c> bunch</c><00:15:59.279><c> of</c>

00:15:59.430 --> 00:15:59.440 align:start position:0%
really like to do a whole bunch of
 

00:15:59.440 --> 00:16:01.749 align:start position:0%
really like to do a whole bunch of
nothing

00:16:01.749 --> 00:16:01.759 align:start position:0%
nothing
 

00:16:01.759 --> 00:16:03.749 align:start position:0%
nothing
one<00:16:01.920><c> day</c><00:16:02.320><c> my</c><00:16:02.480><c> wife</c><00:16:02.880><c> walked</c><00:16:03.199><c> up</c><00:16:03.279><c> to</c><00:16:03.360><c> me</c><00:16:03.600><c> and</c>

00:16:03.749 --> 00:16:03.759 align:start position:0%
one day my wife walked up to me and
 

00:16:03.759 --> 00:16:05.910 align:start position:0%
one day my wife walked up to me and
asked<00:16:04.160><c> are</c><00:16:04.320><c> you</c><00:16:04.480><c> happy</c>

00:16:05.910 --> 00:16:05.920 align:start position:0%
asked are you happy
 

00:16:05.920 --> 00:16:08.069 align:start position:0%
asked are you happy
and<00:16:06.480><c> yeah</c><00:16:06.720><c> sure</c><00:16:07.120><c> i'm</c><00:16:07.360><c> on</c><00:16:07.519><c> my</c><00:16:07.600><c> own</c><00:16:07.759><c> private</c>

00:16:08.069 --> 00:16:08.079 align:start position:0%
and yeah sure i'm on my own private
 

00:16:08.079 --> 00:16:11.829 align:start position:0%
and yeah sure i'm on my own private
island<00:16:08.639><c> i'm</c><00:16:08.880><c> very</c><00:16:09.040><c> happy</c>

00:16:11.829 --> 00:16:11.839 align:start position:0%
 
 

00:16:11.839 --> 00:16:14.150 align:start position:0%
 
so<00:16:12.000><c> yeah</c>

00:16:14.150 --> 00:16:14.160 align:start position:0%
so yeah
 

00:16:14.160 --> 00:16:15.829 align:start position:0%
so yeah
but<00:16:14.320><c> she</c><00:16:14.480><c> said</c><00:16:14.720><c> are</c><00:16:14.800><c> you</c><00:16:14.959><c> really</c><00:16:15.279><c> happy</c><00:16:15.680><c> are</c>

00:16:15.829 --> 00:16:15.839 align:start position:0%
but she said are you really happy are
 

00:16:15.839 --> 00:16:17.910 align:start position:0%
but she said are you really happy are
you<00:16:15.920><c> like</c><00:16:16.240><c> jump</c><00:16:16.480><c> up</c><00:16:16.639><c> and</c><00:16:16.720><c> down</c><00:16:16.959><c> happy</c>

00:16:17.910 --> 00:16:17.920 align:start position:0%
you like jump up and down happy
 

00:16:17.920 --> 00:16:19.910 align:start position:0%
you like jump up and down happy
and<00:16:18.240><c> like</c><00:16:18.399><c> a</c><00:16:18.480><c> typical</c><00:16:18.880><c> guy</c><00:16:19.199><c> i</c><00:16:19.360><c> said</c><00:16:19.519><c> well</c><00:16:19.759><c> yeah</c>

00:16:19.910 --> 00:16:19.920 align:start position:0%
and like a typical guy i said well yeah
 

00:16:19.920 --> 00:16:23.990 align:start position:0%
and like a typical guy i said well yeah
i'm<00:16:20.079><c> happy</c><00:16:20.800><c> whatever</c>

00:16:23.990 --> 00:16:24.000 align:start position:0%
 
 

00:16:24.000 --> 00:16:25.509 align:start position:0%
 
then<00:16:24.240><c> she</c><00:16:24.399><c> said</c>

00:16:25.509 --> 00:16:25.519 align:start position:0%
then she said
 

00:16:25.519 --> 00:16:28.069 align:start position:0%
then she said
really<00:16:25.920><c> how</c><00:16:26.160><c> happy</c><00:16:26.560><c> are</c><00:16:26.639><c> you</c>

00:16:28.069 --> 00:16:28.079 align:start position:0%
really how happy are you
 

00:16:28.079 --> 00:16:29.749 align:start position:0%
really how happy are you
and<00:16:28.240><c> this</c><00:16:28.480><c> is</c><00:16:28.639><c> when</c><00:16:28.880><c> the</c><00:16:28.959><c> alarm</c><00:16:29.279><c> bells</c><00:16:29.519><c> went</c>

00:16:29.749 --> 00:16:29.759 align:start position:0%
and this is when the alarm bells went
 

00:16:29.759 --> 00:16:31.590 align:start position:0%
and this is when the alarm bells went
off<00:16:29.920><c> in</c><00:16:30.000><c> my</c><00:16:30.160><c> head</c>

00:16:31.590 --> 00:16:31.600 align:start position:0%
off in my head
 

00:16:31.600 --> 00:16:34.230 align:start position:0%
off in my head
because<00:16:32.000><c> my</c><00:16:32.240><c> wife</c><00:16:32.560><c> is</c><00:16:32.720><c> a</c><00:16:32.800><c> data</c><00:16:33.279><c> junkie</c>

00:16:34.230 --> 00:16:34.240 align:start position:0%
because my wife is a data junkie
 

00:16:34.240 --> 00:16:36.870 align:start position:0%
because my wife is a data junkie
she<00:16:34.399><c> likes</c><00:16:34.720><c> to</c><00:16:34.959><c> collect</c><00:16:35.279><c> data</c><00:16:36.079><c> she</c><00:16:36.240><c> likes</c><00:16:36.560><c> to</c>

00:16:36.870 --> 00:16:36.880 align:start position:0%
she likes to collect data she likes to
 

00:16:36.880 --> 00:16:38.470 align:start position:0%
she likes to collect data she likes to
manage<00:16:37.199><c> data</c><00:16:37.519><c> she</c><00:16:37.680><c> likes</c><00:16:37.839><c> to</c><00:16:37.920><c> graph</c><00:16:38.160><c> it</c><00:16:38.240><c> over</c>

00:16:38.470 --> 00:16:38.480 align:start position:0%
manage data she likes to graph it over
 

00:16:38.480 --> 00:16:40.550 align:start position:0%
manage data she likes to graph it over
time<00:16:38.800><c> she</c><00:16:38.959><c> likes</c><00:16:39.279><c> to</c><00:16:39.920><c> you</c><00:16:40.000><c> know</c><00:16:40.079><c> do</c><00:16:40.240><c> everything</c>

00:16:40.550 --> 00:16:40.560 align:start position:0%
time she likes to you know do everything
 

00:16:40.560 --> 00:16:43.670 align:start position:0%
time she likes to you know do everything
you<00:16:40.639><c> can</c><00:16:40.720><c> think</c><00:16:40.880><c> of</c><00:16:41.040><c> it</c><00:16:41.279><c> it's</c><00:16:41.519><c> amazing</c>

00:16:43.670 --> 00:16:43.680 align:start position:0%
you can think of it it's amazing
 

00:16:43.680 --> 00:16:45.030 align:start position:0%
you can think of it it's amazing
and<00:16:43.759><c> what</c><00:16:43.920><c> she's</c><00:16:44.160><c> interested</c><00:16:44.560><c> now</c><00:16:44.800><c> is</c>

00:16:45.030 --> 00:16:45.040 align:start position:0%
and what she's interested now is
 

00:16:45.040 --> 00:16:48.870 align:start position:0%
and what she's interested now is
quantifying<00:16:45.680><c> happiness</c>

00:16:48.870 --> 00:16:48.880 align:start position:0%
 
 

00:16:48.880 --> 00:16:50.870 align:start position:0%
 
really<00:16:49.120><c> what</c><00:16:49.279><c> she</c><00:16:49.440><c> wants</c><00:16:49.600><c> to</c><00:16:49.680><c> do</c><00:16:50.000><c> is</c><00:16:50.560><c> track</c><00:16:50.800><c> her</c>

00:16:50.870 --> 00:16:50.880 align:start position:0%
really what she wants to do is track her
 

00:16:50.880 --> 00:16:52.949 align:start position:0%
really what she wants to do is track her
happiness<00:16:51.360><c> over</c><00:16:51.600><c> time</c><00:16:52.240><c> as</c><00:16:52.399><c> well</c><00:16:52.639><c> as</c><00:16:52.800><c> what</c>

00:16:52.949 --> 00:16:52.959 align:start position:0%
happiness over time as well as what
 

00:16:52.959 --> 00:16:54.629 align:start position:0%
happiness over time as well as what
she's<00:16:53.199><c> doing</c><00:16:53.440><c> at</c><00:16:53.519><c> the</c><00:16:53.680><c> time</c><00:16:54.079><c> to</c><00:16:54.240><c> see</c><00:16:54.480><c> if</c>

00:16:54.629 --> 00:16:54.639 align:start position:0%
she's doing at the time to see if
 

00:16:54.639 --> 00:16:56.150 align:start position:0%
she's doing at the time to see if
there's<00:16:54.800><c> any</c><00:16:54.959><c> correlation</c>

00:16:56.150 --> 00:16:56.160 align:start position:0%
there's any correlation
 

00:16:56.160 --> 00:17:00.069 align:start position:0%
there's any correlation
and<00:16:56.320><c> also</c><00:16:56.560><c> long-term</c><00:16:57.040><c> trends</c>

00:17:00.069 --> 00:17:00.079 align:start position:0%
 
 

00:17:00.079 --> 00:17:06.789 align:start position:0%
 
so<00:17:00.320><c> really</c>

00:17:06.789 --> 00:17:06.799 align:start position:0%
 
 

00:17:06.799 --> 00:17:09.510 align:start position:0%
 
the<00:17:06.959><c> thing</c><00:17:07.199><c> she's</c><00:17:07.439><c> looking</c><00:17:07.760><c> for</c>

00:17:09.510 --> 00:17:09.520 align:start position:0%
the thing she's looking for
 

00:17:09.520 --> 00:17:11.270 align:start position:0%
the thing she's looking for
you<00:17:09.600><c> know</c><00:17:09.839><c> is</c><00:17:10.000><c> capturing</c><00:17:10.400><c> contacts</c><00:17:11.039><c> have</c>

00:17:11.270 --> 00:17:11.280 align:start position:0%
you know is capturing contacts have
 

00:17:11.280 --> 00:17:12.789 align:start position:0%
you know is capturing contacts have
something<00:17:11.600><c> easy</c><00:17:11.839><c> to</c><00:17:11.919><c> use</c><00:17:12.160><c> that</c><00:17:12.319><c> she</c><00:17:12.480><c> can</c><00:17:12.559><c> use</c>

00:17:12.789 --> 00:17:12.799 align:start position:0%
something easy to use that she can use
 

00:17:12.799 --> 00:17:14.710 align:start position:0%
something easy to use that she can use
anywhere<00:17:13.439><c> and</c><00:17:13.600><c> myself</c><00:17:14.079><c> i</c><00:17:14.240><c> have</c><00:17:14.319><c> very</c><00:17:14.480><c> simple</c>

00:17:14.710 --> 00:17:14.720 align:start position:0%
anywhere and myself i have very simple
 

00:17:14.720 --> 00:17:18.069 align:start position:0%
anywhere and myself i have very simple
needs

00:17:18.069 --> 00:17:18.079 align:start position:0%
 
 

00:17:18.079 --> 00:17:21.110 align:start position:0%
 
are<00:17:18.240><c> however</c><00:17:18.559><c> a</c><00:17:19.039><c> mixed</c><00:17:19.360><c> couple</c><00:17:20.000><c> uh</c><00:17:20.319><c> she</c><00:17:20.720><c> has</c>

00:17:21.110 --> 00:17:21.120 align:start position:0%
are however a mixed couple uh she has
 

00:17:21.120 --> 00:17:23.029 align:start position:0%
are however a mixed couple uh she has
android<00:17:21.839><c> i</c><00:17:21.919><c> mean</c><00:17:22.079><c> i</c><00:17:22.160><c> have</c><00:17:22.400><c> android</c><00:17:22.720><c> and</c><00:17:22.880><c> she</c>

00:17:23.029 --> 00:17:23.039 align:start position:0%
android i mean i have android and she
 

00:17:23.039 --> 00:17:24.309 align:start position:0%
android i mean i have android and she
has<00:17:23.360><c> iphone</c>

00:17:24.309 --> 00:17:24.319 align:start position:0%
has iphone
 

00:17:24.319 --> 00:17:25.429 align:start position:0%
has iphone
so<00:17:24.480><c> we're</c><00:17:24.559><c> not</c><00:17:24.720><c> going</c><00:17:24.799><c> to</c><00:17:24.799><c> be</c><00:17:24.959><c> writing</c><00:17:25.280><c> any</c>

00:17:25.429 --> 00:17:25.439 align:start position:0%
so we're not going to be writing any
 

00:17:25.439 --> 00:17:27.270 align:start position:0%
so we're not going to be writing any
phone<00:17:25.679><c> apps</c><00:17:26.079><c> instead</c>

00:17:27.270 --> 00:17:27.280 align:start position:0%
phone apps instead
 

00:17:27.280 --> 00:17:28.230 align:start position:0%
phone apps instead
i'm<00:17:27.439><c> just</c><00:17:27.520><c> going</c><00:17:27.600><c> to</c><00:17:27.679><c> whip</c><00:17:27.919><c> out</c><00:17:28.000><c> a</c><00:17:28.079><c> simple</c>

00:17:28.230 --> 00:17:28.240 align:start position:0%
i'm just going to whip out a simple
 

00:17:28.240 --> 00:17:30.830 align:start position:0%
i'm just going to whip out a simple
little<00:17:28.400><c> web</c><00:17:28.640><c> app</c><00:17:29.120><c> how</c><00:17:29.280><c> hard</c><00:17:29.440><c> can</c><00:17:29.600><c> this</c>

00:17:30.830 --> 00:17:30.840 align:start position:0%
little web app how hard can this
 

00:17:30.840 --> 00:17:33.430 align:start position:0%
little web app how hard can this
be<00:17:32.000><c> this</c><00:17:32.160><c> when</c><00:17:32.400><c> i</c><00:17:32.720><c> this</c><00:17:32.880><c> is</c><00:17:32.960><c> when</c><00:17:33.120><c> i</c><00:17:33.200><c> start</c>

00:17:33.430 --> 00:17:33.440 align:start position:0%
be this when i this is when i start
 

00:17:33.440 --> 00:17:35.590 align:start position:0%
be this when i this is when i start
thinking<00:17:33.760><c> about</c><00:17:34.000><c> it</c><00:17:34.480><c> because</c>

00:17:35.590 --> 00:17:35.600 align:start position:0%
thinking about it because
 

00:17:35.600 --> 00:17:37.590 align:start position:0%
thinking about it because
at<00:17:35.760><c> my</c><00:17:35.919><c> day</c><00:17:36.080><c> job</c><00:17:36.320><c> we</c><00:17:36.480><c> have</c><00:17:36.640><c> hundreds</c><00:17:37.039><c> of</c><00:17:37.200><c> hosts</c>

00:17:37.590 --> 00:17:37.600 align:start position:0%
at my day job we have hundreds of hosts
 

00:17:37.600 --> 00:17:39.029 align:start position:0%
at my day job we have hundreds of hosts
however<00:17:37.919><c> they're</c><00:17:38.080><c> all</c><00:17:38.160><c> being</c><00:17:38.320><c> used</c><00:17:38.799><c> and</c>

00:17:39.029 --> 00:17:39.039 align:start position:0%
however they're all being used and
 

00:17:39.039 --> 00:17:41.510 align:start position:0%
however they're all being used and
personally<00:17:39.440><c> i</c><00:17:39.600><c> have</c><00:17:39.760><c> dozens</c><00:17:40.720><c> and</c><00:17:41.120><c> i</c><00:17:41.280><c> don't</c>

00:17:41.510 --> 00:17:41.520 align:start position:0%
personally i have dozens and i don't
 

00:17:41.520 --> 00:17:43.029 align:start position:0%
personally i have dozens and i don't
really<00:17:41.760><c> need</c><00:17:42.000><c> another</c><00:17:42.320><c> one</c>

00:17:43.029 --> 00:17:43.039 align:start position:0%
really need another one
 

00:17:43.039 --> 00:17:44.710 align:start position:0%
really need another one
and<00:17:43.200><c> there's</c><00:17:43.360><c> a</c><00:17:43.440><c> lot</c><00:17:43.600><c> to</c><00:17:43.760><c> owning</c><00:17:44.000><c> a</c><00:17:44.080><c> host</c><00:17:44.559><c> for</c>

00:17:44.710 --> 00:17:44.720 align:start position:0%
and there's a lot to owning a host for
 

00:17:44.720 --> 00:17:46.870 align:start position:0%
and there's a lot to owning a host for
an<00:17:45.039><c> initial</c><00:17:45.440><c> setup</c><00:17:45.760><c> to</c><00:17:45.919><c> maintenance</c><00:17:46.320><c> security</c>

00:17:46.870 --> 00:17:46.880 align:start position:0%
an initial setup to maintenance security
 

00:17:46.880 --> 00:17:49.029 align:start position:0%
an initial setup to maintenance security
updates<00:17:47.679><c> there's</c><00:17:47.840><c> some</c><00:17:48.000><c> non-trivial</c><00:17:48.640><c> amazon</c>

00:17:49.029 --> 00:17:49.039 align:start position:0%
updates there's some non-trivial amazon
 

00:17:49.039 --> 00:17:51.270 align:start position:0%
updates there's some non-trivial amazon
stuff<00:17:49.280><c> if</c><00:17:49.440><c> you</c><00:17:49.679><c> do</c><00:17:49.919><c> it</c><00:17:50.000><c> up</c><00:17:50.160><c> there</c><00:17:50.799><c> monitoring</c>

00:17:51.270 --> 00:17:51.280 align:start position:0%
stuff if you do it up there monitoring
 

00:17:51.280 --> 00:17:52.470 align:start position:0%
stuff if you do it up there monitoring
and<00:17:51.360><c> if</c><00:17:51.440><c> you</c><00:17:51.520><c> have</c><00:17:51.679><c> monitoring</c><00:17:52.080><c> then</c><00:17:52.240><c> you</c><00:17:52.320><c> get</c>

00:17:52.470 --> 00:17:52.480 align:start position:0%
and if you have monitoring then you get
 

00:17:52.480 --> 00:17:55.270 align:start position:0%
and if you have monitoring then you get
pages<00:17:53.120><c> and</c><00:17:53.280><c> really</c><00:17:53.600><c> i</c><00:17:53.760><c> just</c><00:17:54.000><c> don't</c><00:17:54.160><c> want</c><00:17:54.400><c> that</c>

00:17:55.270 --> 00:17:55.280 align:start position:0%
pages and really i just don't want that
 

00:17:55.280 --> 00:17:57.990 align:start position:0%
pages and really i just don't want that
and<00:17:55.919><c> ultimately</c><00:17:56.400><c> the</c><00:17:56.559><c> monetary</c><00:17:57.039><c> cost</c>

00:17:57.990 --> 00:17:58.000 align:start position:0%
and ultimately the monetary cost
 

00:17:58.000 --> 00:18:00.230 align:start position:0%
and ultimately the monetary cost
is<00:17:58.400><c> uh</c><00:17:58.880><c> it</c><00:17:59.200><c> doesn't</c><00:17:59.520><c> matter</c><00:17:59.760><c> to</c><00:17:59.919><c> me</c><00:18:00.080><c> i</c><00:18:00.160><c> just</c>

00:18:00.230 --> 00:18:00.240 align:start position:0%
is uh it doesn't matter to me i just
 

00:18:00.240 --> 00:18:02.549 align:start position:0%
is uh it doesn't matter to me i just
don't<00:18:00.400><c> want</c><00:18:00.559><c> another</c><00:18:00.880><c> host</c>

00:18:02.549 --> 00:18:02.559 align:start position:0%
don't want another host
 

00:18:02.559 --> 00:18:04.950 align:start position:0%
don't want another host
all<00:18:02.720><c> i</c><00:18:02.799><c> want</c><00:18:03.039><c> is</c><00:18:03.200><c> a</c><00:18:03.280><c> simple</c><00:18:03.520><c> web</c><00:18:03.760><c> app</c>

00:18:04.950 --> 00:18:04.960 align:start position:0%
all i want is a simple web app
 

00:18:04.960 --> 00:18:05.990 align:start position:0%
all i want is a simple web app
and<00:18:05.120><c> this</c><00:18:05.200><c> is</c><00:18:05.280><c> when</c><00:18:05.440><c> i</c><00:18:05.520><c> started</c><00:18:05.760><c> looking</c><00:18:05.919><c> at</c>

00:18:05.990 --> 00:18:06.000 align:start position:0%
and this is when i started looking at
 

00:18:06.000 --> 00:18:08.710 align:start position:0%
and this is when i started looking at
heroku<00:18:06.880><c> it's</c><00:18:07.120><c> really</c><00:18:07.600><c> a</c><00:18:07.840><c> simple</c><00:18:08.160><c> cloud</c><00:18:08.480><c> app</c>

00:18:08.710 --> 00:18:08.720 align:start position:0%
heroku it's really a simple cloud app
 

00:18:08.720 --> 00:18:09.750 align:start position:0%
heroku it's really a simple cloud app
platform

00:18:09.750 --> 00:18:09.760 align:start position:0%
platform
 

00:18:09.760 --> 00:18:12.549 align:start position:0%
platform
it's<00:18:10.080><c> very</c><00:18:10.320><c> easy</c><00:18:10.640><c> to</c><00:18:10.799><c> do</c><00:18:11.120><c> you</c><00:18:11.360><c> uh</c><00:18:11.919><c> it's</c><00:18:12.160><c> sold</c><00:18:12.400><c> as</c>

00:18:12.549 --> 00:18:12.559 align:start position:0%
it's very easy to do you uh it's sold as
 

00:18:12.559 --> 00:18:14.630 align:start position:0%
it's very easy to do you uh it's sold as
a<00:18:12.640><c> service</c><00:18:13.039><c> so</c><00:18:13.200><c> basically</c><00:18:13.600><c> your</c><00:18:13.840><c> closure</c><00:18:14.240><c> app</c>

00:18:14.630 --> 00:18:14.640 align:start position:0%
a service so basically your closure app
 

00:18:14.640 --> 00:18:16.150 align:start position:0%
a service so basically your closure app
is<00:18:14.880><c> up</c><00:18:15.039><c> and</c><00:18:15.120><c> running</c>

00:18:16.150 --> 00:18:16.160 align:start position:0%
is up and running
 

00:18:16.160 --> 00:18:17.110 align:start position:0%
is up and running
and

00:18:17.110 --> 00:18:17.120 align:start position:0%
and
 

00:18:17.120 --> 00:18:19.669 align:start position:0%
and
basically<00:18:17.600><c> what</c><00:18:17.760><c> you</c><00:18:18.000><c> don't</c><00:18:18.320><c> do</c><00:18:18.799><c> is</c><00:18:19.280><c> manage</c><00:18:19.600><c> a</c>

00:18:19.669 --> 00:18:19.679 align:start position:0%
basically what you don't do is manage a
 

00:18:19.679 --> 00:18:21.510 align:start position:0%
basically what you don't do is manage a
whole<00:18:19.840><c> lot</c><00:18:20.000><c> of</c><00:18:20.160><c> stuff</c><00:18:20.960><c> they're</c><00:18:21.200><c> going</c><00:18:21.280><c> to</c><00:18:21.360><c> be</c>

00:18:21.510 --> 00:18:21.520 align:start position:0%
whole lot of stuff they're going to be
 

00:18:21.520 --> 00:18:23.590 align:start position:0%
whole lot of stuff they're going to be
taking<00:18:21.760><c> care</c><00:18:21.919><c> of</c><00:18:22.080><c> host</c><00:18:22.320><c> failures</c><00:18:23.039><c> data</c><00:18:23.280><c> center</c>

00:18:23.590 --> 00:18:23.600 align:start position:0%
taking care of host failures data center
 

00:18:23.600 --> 00:18:25.909 align:start position:0%
taking care of host failures data center
problems<00:18:24.240><c> all</c><00:18:24.640><c> things</c><00:18:24.880><c> with</c><00:18:25.039><c> security</c><00:18:25.760><c> as</c>

00:18:25.909 --> 00:18:25.919 align:start position:0%
problems all things with security as
 

00:18:25.919 --> 00:18:27.350 align:start position:0%
problems all things with security as
well<00:18:26.080><c> as</c><00:18:26.240><c> anything</c><00:18:26.559><c> that</c><00:18:26.640><c> has</c><00:18:26.880><c> to</c><00:18:26.960><c> happen</c><00:18:27.200><c> with</c>

00:18:27.350 --> 00:18:27.360 align:start position:0%
well as anything that has to happen with
 

00:18:27.360 --> 00:18:28.470 align:start position:0%
well as anything that has to happen with
the<00:18:27.520><c> update</c>

00:18:28.470 --> 00:18:28.480 align:start position:0%
the update
 

00:18:28.480 --> 00:18:30.230 align:start position:0%
the update
as<00:18:28.640><c> a</c><00:18:28.640><c> matter</c><00:18:28.880><c> of</c><00:18:28.960><c> fact</c><00:18:29.600><c> you've</c><00:18:29.760><c> probably</c><00:18:30.080><c> seen</c>

00:18:30.230 --> 00:18:30.240 align:start position:0%
as a matter of fact you've probably seen
 

00:18:30.240 --> 00:18:32.549 align:start position:0%
as a matter of fact you've probably seen
in<00:18:30.320><c> the</c><00:18:30.400><c> news</c><00:18:30.720><c> last</c><00:18:30.960><c> week</c><00:18:31.520><c> i</c><00:18:31.679><c> spent</c><00:18:32.240><c> almost</c><00:18:32.480><c> the</c>

00:18:32.549 --> 00:18:32.559 align:start position:0%
in the news last week i spent almost the
 

00:18:32.559 --> 00:18:34.230 align:start position:0%
in the news last week i spent almost the
entire<00:18:32.880><c> week</c><00:18:33.039><c> just</c><00:18:33.280><c> watching</c><00:18:33.679><c> new</c><00:18:33.840><c> york</c><00:18:34.000><c> city</c>

00:18:34.230 --> 00:18:34.240 align:start position:0%
entire week just watching new york city
 

00:18:34.240 --> 00:18:35.990 align:start position:0%
entire week just watching new york city
data<00:18:34.480><c> centers</c><00:18:34.799><c> go</c><00:18:34.960><c> up</c><00:18:35.120><c> and</c><00:18:35.200><c> down</c>

00:18:35.990 --> 00:18:36.000 align:start position:0%
data centers go up and down
 

00:18:36.000 --> 00:18:37.510 align:start position:0%
data centers go up and down
and<00:18:36.320><c> then</c><00:18:36.640><c> three</c><00:18:36.799><c> days</c><00:18:37.039><c> later</c><00:18:37.280><c> when</c><00:18:37.440><c> the</c>

00:18:37.510 --> 00:18:37.520 align:start position:0%
and then three days later when the
 

00:18:37.520 --> 00:18:39.029 align:start position:0%
and then three days later when the
gasoline<00:18:38.000><c> ran</c><00:18:38.160><c> out</c><00:18:38.320><c> the</c><00:18:38.400><c> same</c><00:18:38.559><c> thing</c><00:18:38.720><c> happened</c>

00:18:39.029 --> 00:18:39.039 align:start position:0%
gasoline ran out the same thing happened
 

00:18:39.039 --> 00:18:40.549 align:start position:0%
gasoline ran out the same thing happened
in<00:18:39.120><c> new</c><00:18:39.280><c> jersey</c>

00:18:40.549 --> 00:18:40.559 align:start position:0%
in new jersey
 

00:18:40.559 --> 00:18:42.710 align:start position:0%
in new jersey
and<00:18:41.039><c> uh</c><00:18:41.600><c> yeah</c><00:18:41.760><c> i</c><00:18:41.840><c> had</c><00:18:42.000><c> apparently</c><00:18:42.400><c> plenty</c><00:18:42.640><c> of</c>

00:18:42.710 --> 00:18:42.720 align:start position:0%
and uh yeah i had apparently plenty of
 

00:18:42.720 --> 00:18:44.470 align:start position:0%
and uh yeah i had apparently plenty of
machines<00:18:43.039><c> to</c><00:18:43.120><c> worry</c><00:18:43.440><c> about</c><00:18:43.679><c> but</c><00:18:44.000><c> heroku</c>

00:18:44.470 --> 00:18:44.480 align:start position:0%
machines to worry about but heroku
 

00:18:44.480 --> 00:18:47.190 align:start position:0%
machines to worry about but heroku
wasn't<00:18:44.720><c> one</c><00:18:44.880><c> of</c><00:18:44.960><c> them</c>

00:18:47.190 --> 00:18:47.200 align:start position:0%
 
 

00:18:47.200 --> 00:18:48.950 align:start position:0%
 
and<00:18:47.360><c> to</c><00:18:47.440><c> write</c><00:18:47.600><c> software</c><00:18:48.160><c> for</c><00:18:48.320><c> heroku</c><00:18:48.880><c> is</c>

00:18:48.950 --> 00:18:48.960 align:start position:0%
and to write software for heroku is
 

00:18:48.960 --> 00:18:51.110 align:start position:0%
and to write software for heroku is
actually<00:18:49.200><c> really</c><00:18:49.440><c> easy</c><00:18:50.000><c> um</c><00:18:50.480><c> you</c><00:18:50.640><c> just</c><00:18:50.880><c> hack</c>

00:18:51.110 --> 00:18:51.120 align:start position:0%
actually really easy um you just hack
 

00:18:51.120 --> 00:18:53.510 align:start position:0%
actually really easy um you just hack
out<00:18:51.200><c> your</c><00:18:51.360><c> closure</c><00:18:52.240><c> you</c><00:18:52.480><c> update</c><00:18:52.799><c> it</c>

00:18:53.510 --> 00:18:53.520 align:start position:0%
out your closure you update it
 

00:18:53.520 --> 00:18:55.430 align:start position:0%
out your closure you update it
with<00:18:53.760><c> git</c><00:18:54.080><c> basically</c><00:18:54.640><c> you</c><00:18:54.799><c> send</c><00:18:55.039><c> it</c><00:18:55.120><c> right</c><00:18:55.360><c> up</c>

00:18:55.430 --> 00:18:55.440 align:start position:0%
with git basically you send it right up
 

00:18:55.440 --> 00:18:56.390 align:start position:0%
with git basically you send it right up
to<00:18:55.520><c> heroku</c>

00:18:56.390 --> 00:18:56.400 align:start position:0%
to heroku
 

00:18:56.400 --> 00:18:58.230 align:start position:0%
to heroku
and<00:18:56.480><c> they</c><00:18:56.640><c> will</c><00:18:57.200><c> launch</c><00:18:57.440><c> it</c><00:18:57.600><c> and</c><00:18:57.760><c> manage</c><00:18:58.000><c> it</c><00:18:58.160><c> on</c>

00:18:58.230 --> 00:18:58.240 align:start position:0%
and they will launch it and manage it on
 

00:18:58.240 --> 00:19:00.150 align:start position:0%
and they will launch it and manage it on
their<00:18:58.400><c> servers</c><00:18:59.120><c> you</c><00:18:59.200><c> can</c><00:18:59.360><c> then</c><00:18:59.600><c> point</c><00:18:59.919><c> to</c><00:19:00.000><c> dot</c>

00:19:00.150 --> 00:19:00.160 align:start position:0%
their servers you can then point to dot
 

00:19:00.160 --> 00:19:03.669 align:start position:0%
their servers you can then point to dot
com<00:19:00.400><c> to</c><00:19:00.559><c> it</c><00:19:01.039><c> and</c><00:19:01.120><c> you're</c><00:19:01.280><c> all</c><00:19:01.440><c> set</c>

00:19:03.669 --> 00:19:03.679 align:start position:0%
com to it and you're all set
 

00:19:03.679 --> 00:19:06.789 align:start position:0%
com to it and you're all set
roku<00:19:04.080><c> conveniently</c><00:19:04.559><c> runs</c><00:19:04.880><c> on</c><00:19:05.039><c> amazon</c>

00:19:06.789 --> 00:19:06.799 align:start position:0%
roku conveniently runs on amazon
 

00:19:06.799 --> 00:19:08.870 align:start position:0%
roku conveniently runs on amazon
you<00:19:07.039><c> probably</c><00:19:07.200><c> heard</c><00:19:07.440><c> of</c><00:19:07.520><c> ec2</c><00:19:08.240><c> for</c><00:19:08.640><c> their</c>

00:19:08.870 --> 00:19:08.880 align:start position:0%
you probably heard of ec2 for their
 

00:19:08.880 --> 00:19:11.029 align:start position:0%
you probably heard of ec2 for their
virtual<00:19:09.200><c> machines</c><00:19:09.919><c> everything</c><00:19:10.400><c> else</c><00:19:10.559><c> i</c><00:19:10.720><c> have</c>

00:19:11.029 --> 00:19:11.039 align:start position:0%
virtual machines everything else i have
 

00:19:11.039 --> 00:19:12.789 align:start position:0%
virtual machines everything else i have
dozens<00:19:11.440><c> of</c><00:19:11.600><c> other</c><00:19:11.840><c> services</c><00:19:12.480><c> which</c><00:19:12.720><c> are</c>

00:19:12.789 --> 00:19:12.799 align:start position:0%
dozens of other services which are
 

00:19:12.799 --> 00:19:13.909 align:start position:0%
dozens of other services which are
really<00:19:13.039><c> nice</c>

00:19:13.909 --> 00:19:13.919 align:start position:0%
really nice
 

00:19:13.919 --> 00:19:16.470 align:start position:0%
really nice
um<00:19:14.720><c> s3</c><00:19:15.280><c> has</c><00:19:15.440><c> recently</c><00:19:15.840><c> recently</c><00:19:16.160><c> come</c><00:19:16.320><c> out</c>

00:19:16.470 --> 00:19:16.480 align:start position:0%
um s3 has recently recently come out
 

00:19:16.480 --> 00:19:17.750 align:start position:0%
um s3 has recently recently come out
with<00:19:16.559><c> a</c><00:19:16.640><c> new</c><00:19:16.799><c> version</c><00:19:17.440><c> where</c><00:19:17.600><c> they're</c>

00:19:17.750 --> 00:19:17.760 align:start position:0%
with a new version where they're
 

00:19:17.760 --> 00:19:19.830 align:start position:0%
with a new version where they're
charging<00:19:18.240><c> a</c><00:19:18.480><c> dollar</c><00:19:18.799><c> i</c><00:19:18.799><c> mean</c><00:19:19.039><c> a</c><00:19:19.200><c> penny</c><00:19:19.679><c> a</c>

00:19:19.830 --> 00:19:19.840 align:start position:0%
charging a dollar i mean a penny a
 

00:19:19.840 --> 00:19:21.190 align:start position:0%
charging a dollar i mean a penny a
gigabyte

00:19:21.190 --> 00:19:21.200 align:start position:0%
gigabyte
 

00:19:21.200 --> 00:19:22.710 align:start position:0%
gigabyte
and<00:19:21.360><c> that's</c><00:19:21.679><c> that's</c><00:19:21.919><c> really</c><00:19:22.160><c> game</c><00:19:22.320><c> changer</c>

00:19:22.710 --> 00:19:22.720 align:start position:0%
and that's that's really game changer
 

00:19:22.720 --> 00:19:25.350 align:start position:0%
and that's that's really game changer
and<00:19:22.880><c> they</c><00:19:23.039><c> also</c><00:19:23.360><c> offer</c><00:19:24.000><c> databases</c><00:19:25.200><c> the</c>

00:19:25.350 --> 00:19:25.360 align:start position:0%
and they also offer databases the
 

00:19:25.360 --> 00:19:26.950 align:start position:0%
and they also offer databases the
queuing<00:19:25.679><c> service</c><00:19:26.000><c> has</c><00:19:26.160><c> saved</c><00:19:26.400><c> my</c><00:19:26.480><c> bacon</c><00:19:26.799><c> more</c>

00:19:26.950 --> 00:19:26.960 align:start position:0%
queuing service has saved my bacon more
 

00:19:26.960 --> 00:19:28.150 align:start position:0%
queuing service has saved my bacon more
than<00:19:27.120><c> once</c>

00:19:28.150 --> 00:19:28.160 align:start position:0%
than once
 

00:19:28.160 --> 00:19:30.310 align:start position:0%
than once
and<00:19:28.320><c> stuff</c><00:19:28.559><c> like</c><00:19:28.720><c> this</c>

00:19:30.310 --> 00:19:30.320 align:start position:0%
and stuff like this
 

00:19:30.320 --> 00:19:31.990 align:start position:0%
and stuff like this
so<00:19:30.559><c> really</c><00:19:30.720><c> for</c><00:19:30.880><c> my</c><00:19:31.039><c> simple</c><00:19:31.280><c> happiness</c><00:19:31.760><c> web</c>

00:19:31.990 --> 00:19:32.000 align:start position:0%
so really for my simple happiness web
 

00:19:32.000 --> 00:19:34.789 align:start position:0%
so really for my simple happiness web
app<00:19:32.480><c> what</c><00:19:32.640><c> i</c><00:19:32.720><c> want</c><00:19:32.880><c> to</c><00:19:32.960><c> do</c><00:19:33.200><c> is</c><00:19:33.440><c> collect</c><00:19:33.919><c> data</c><00:19:34.640><c> i</c>

00:19:34.789 --> 00:19:34.799 align:start position:0%
app what i want to do is collect data i
 

00:19:34.799 --> 00:19:36.630 align:start position:0%
app what i want to do is collect data i
want<00:19:34.960><c> to</c><00:19:35.039><c> store</c><00:19:35.440><c> data</c><00:19:35.919><c> and</c><00:19:36.000><c> then</c><00:19:36.160><c> i</c><00:19:36.240><c> also</c><00:19:36.400><c> want</c>

00:19:36.630 --> 00:19:36.640 align:start position:0%
want to store data and then i also want
 

00:19:36.640 --> 00:19:37.909 align:start position:0%
want to store data and then i also want
to<00:19:36.720><c> send</c><00:19:36.960><c> out</c><00:19:37.039><c> collection</c><00:19:37.440><c> reminders</c>

00:19:37.909 --> 00:19:37.919 align:start position:0%
to send out collection reminders
 

00:19:37.919 --> 00:19:39.270 align:start position:0%
to send out collection reminders
throughout<00:19:38.240><c> the</c><00:19:38.320><c> day</c>

00:19:39.270 --> 00:19:39.280 align:start position:0%
throughout the day
 

00:19:39.280 --> 00:19:41.430 align:start position:0%
throughout the day
with<00:19:39.600><c> both</c><00:19:40.000><c> both</c><00:19:40.240><c> text</c><00:19:40.559><c> messages</c><00:19:41.039><c> as</c><00:19:41.120><c> well</c><00:19:41.280><c> as</c>

00:19:41.430 --> 00:19:41.440 align:start position:0%
with both both text messages as well as
 

00:19:41.440 --> 00:19:45.830 align:start position:0%
with both both text messages as well as
email<00:19:41.840><c> so</c><00:19:42.000><c> you</c><00:19:42.080><c> can</c><00:19:42.240><c> get</c><00:19:42.400><c> randomized</c><00:19:42.960><c> samples</c>

00:19:45.830 --> 00:19:45.840 align:start position:0%
 
 

00:19:45.840 --> 00:19:47.430 align:start position:0%
 
this<00:19:46.080><c> means</c><00:19:46.320><c> a</c><00:19:46.400><c> simple</c><00:19:46.640><c> web</c><00:19:46.880><c> app</c><00:19:47.039><c> is</c><00:19:47.120><c> suddenly</c>

00:19:47.430 --> 00:19:47.440 align:start position:0%
this means a simple web app is suddenly
 

00:19:47.440 --> 00:19:49.270 align:start position:0%
this means a simple web app is suddenly
becoming<00:19:47.840><c> a</c><00:19:47.840><c> little</c><00:19:48.000><c> more</c><00:19:48.160><c> sophisticated</c><00:19:49.120><c> now</c>

00:19:49.270 --> 00:19:49.280 align:start position:0%
becoming a little more sophisticated now
 

00:19:49.280 --> 00:19:50.710 align:start position:0%
becoming a little more sophisticated now
you<00:19:49.440><c> have</c><00:19:49.600><c> to</c><00:19:49.679><c> deal</c><00:19:49.840><c> with</c><00:19:49.919><c> the</c><00:19:50.000><c> database</c><00:19:50.559><c> as</c>

00:19:50.710 --> 00:19:50.720 align:start position:0%
you have to deal with the database as
 

00:19:50.720 --> 00:19:53.510 align:start position:0%
you have to deal with the database as
well<00:19:51.039><c> as</c><00:19:52.000><c> either</c><00:19:52.320><c> mail</c><00:19:52.559><c> server</c><00:19:52.960><c> or</c><00:19:53.120><c> some</c><00:19:53.360><c> sort</c>

00:19:53.510 --> 00:19:53.520 align:start position:0%
well as either mail server or some sort
 

00:19:53.520 --> 00:19:55.270 align:start position:0%
well as either mail server or some sort
of<00:19:53.679><c> service</c><00:19:53.919><c> for</c><00:19:54.080><c> dealing</c><00:19:54.320><c> with</c><00:19:54.480><c> all</c><00:19:54.559><c> that</c><00:19:55.120><c> and</c>

00:19:55.270 --> 00:19:55.280 align:start position:0%
of service for dealing with all that and
 

00:19:55.280 --> 00:19:57.430 align:start position:0%
of service for dealing with all that and
these<00:19:55.600><c> are</c><00:19:55.919><c> two</c><00:19:56.160><c> more</c><00:19:56.400><c> services</c><00:19:56.880><c> that</c><00:19:57.039><c> i</c><00:19:57.280><c> do</c>

00:19:57.430 --> 00:19:57.440 align:start position:0%
these are two more services that i do
 

00:19:57.440 --> 00:19:59.270 align:start position:0%
these are two more services that i do
not<00:19:57.679><c> want</c><00:19:57.919><c> to</c><00:19:58.000><c> manage</c>

00:19:59.270 --> 00:19:59.280 align:start position:0%
not want to manage
 

00:19:59.280 --> 00:20:02.230 align:start position:0%
not want to manage
much<00:19:59.520><c> less</c><00:19:59.760><c> two</c><00:19:59.919><c> more</c><00:20:00.160><c> hosts</c>

00:20:02.230 --> 00:20:02.240 align:start position:0%
much less two more hosts
 

00:20:02.240 --> 00:20:04.630 align:start position:0%
much less two more hosts
and<00:20:02.640><c> with</c><00:20:02.880><c> amazon</c><00:20:03.600><c> and</c><00:20:03.679><c> heroku</c><00:20:04.240><c> we</c><00:20:04.400><c> can</c><00:20:04.480><c> do</c>

00:20:04.630 --> 00:20:04.640 align:start position:0%
and with amazon and heroku we can do
 

00:20:04.640 --> 00:20:05.669 align:start position:0%
and with amazon and heroku we can do
that

00:20:05.669 --> 00:20:05.679 align:start position:0%
that
 

00:20:05.679 --> 00:20:06.950 align:start position:0%
that
so

00:20:06.950 --> 00:20:06.960 align:start position:0%
so
 

00:20:06.960 --> 00:20:09.029 align:start position:0%
so
from<00:20:07.120><c> the</c><00:20:07.679><c> time</c><00:20:07.919><c> i</c><00:20:08.000><c> bought</c><00:20:08.240><c> the</c><00:20:08.400><c> dot</c><00:20:08.640><c> com</c><00:20:08.880><c> which</c>

00:20:09.029 --> 00:20:09.039 align:start position:0%
from the time i bought the dot com which
 

00:20:09.039 --> 00:20:10.470 align:start position:0%
from the time i bought the dot com which
is<00:20:09.200><c> meow</c><00:20:09.520><c> meter</c>

00:20:10.470 --> 00:20:10.480 align:start position:0%
is meow meter
 

00:20:10.480 --> 00:20:11.750 align:start position:0%
is meow meter
um<00:20:10.799><c> you</c><00:20:10.880><c> can</c><00:20:10.960><c> tell</c><00:20:11.200><c> all</c><00:20:11.280><c> the</c><00:20:11.360><c> good</c><00:20:11.520><c> ones</c><00:20:11.679><c> are</c>

00:20:11.750 --> 00:20:11.760 align:start position:0%
um you can tell all the good ones are
 

00:20:11.760 --> 00:20:13.270 align:start position:0%
um you can tell all the good ones are
taken

00:20:13.270 --> 00:20:13.280 align:start position:0%
taken
 

00:20:13.280 --> 00:20:14.390 align:start position:0%
taken
uh<00:20:13.600><c> to</c><00:20:13.760><c> the</c>

00:20:14.390 --> 00:20:14.400 align:start position:0%
uh to the
 

00:20:14.400 --> 00:20:15.669 align:start position:0%
uh to the
to<00:20:14.640><c> when</c><00:20:14.799><c> it</c><00:20:14.880><c> was</c><00:20:14.960><c> up</c><00:20:15.120><c> and</c><00:20:15.200><c> running</c><00:20:15.440><c> was</c><00:20:15.600><c> a</c>

00:20:15.669 --> 00:20:15.679 align:start position:0%
to when it was up and running was a
 

00:20:15.679 --> 00:20:17.590 align:start position:0%
to when it was up and running was a
total<00:20:15.919><c> time</c><00:20:16.080><c> of</c><00:20:16.240><c> four</c><00:20:16.480><c> hours</c><00:20:16.960><c> and</c><00:20:17.120><c> really</c><00:20:17.440><c> only</c>

00:20:17.590 --> 00:20:17.600 align:start position:0%
total time of four hours and really only
 

00:20:17.600 --> 00:20:19.029 align:start position:0%
total time of four hours and really only
about<00:20:17.760><c> half</c><00:20:18.000><c> of</c><00:20:18.080><c> that</c><00:20:18.240><c> was</c><00:20:18.400><c> involved</c><00:20:18.799><c> in</c><00:20:18.880><c> the</c>

00:20:19.029 --> 00:20:19.039 align:start position:0%
about half of that was involved in the
 

00:20:19.039 --> 00:20:22.150 align:start position:0%
about half of that was involved in the
technology<00:20:19.520><c> side</c>

00:20:22.150 --> 00:20:22.160 align:start position:0%
 
 

00:20:22.160 --> 00:20:25.110 align:start position:0%
 
and<00:20:22.559><c> it</c><00:20:22.720><c> is</c><00:20:22.799><c> indeed</c><00:20:23.120><c> very</c><00:20:23.280><c> simple</c>

00:20:25.110 --> 00:20:25.120 align:start position:0%
and it is indeed very simple
 

00:20:25.120 --> 00:20:27.590 align:start position:0%
and it is indeed very simple
i'll<00:20:25.360><c> ask</c><00:20:25.600><c> for</c><00:20:25.760><c> is</c><00:20:25.919><c> your</c><00:20:26.080><c> name</c>

00:20:27.590 --> 00:20:27.600 align:start position:0%
i'll ask for is your name
 

00:20:27.600 --> 00:20:29.029 align:start position:0%
i'll ask for is your name
the<00:20:27.760><c> contacts</c><00:20:28.159><c> that</c><00:20:28.240><c> you're</c><00:20:28.400><c> doing</c><00:20:28.720><c> and</c><00:20:28.880><c> then</c>

00:20:29.029 --> 00:20:29.039 align:start position:0%
the contacts that you're doing and then
 

00:20:29.039 --> 00:20:31.909 align:start position:0%
the contacts that you're doing and then
a<00:20:29.200><c> big</c><00:20:29.440><c> giant</c><00:20:29.760><c> button</c><00:20:30.159><c> of</c><00:20:30.320><c> how</c><00:20:30.559><c> happy</c><00:20:30.880><c> are</c><00:20:31.039><c> you</c>

00:20:31.909 --> 00:20:31.919 align:start position:0%
a big giant button of how happy are you
 

00:20:31.919 --> 00:20:33.750 align:start position:0%
a big giant button of how happy are you
clearly<00:20:32.320><c> everybody</c><00:20:32.640><c> here</c><00:20:32.799><c> is</c><00:20:32.880><c> a</c><00:20:32.960><c> nine</c>

00:20:33.750 --> 00:20:33.760 align:start position:0%
clearly everybody here is a nine
 

00:20:33.760 --> 00:20:36.070 align:start position:0%
clearly everybody here is a nine
ding

00:20:36.070 --> 00:20:36.080 align:start position:0%
 
 

00:20:36.080 --> 00:20:38.310 align:start position:0%
 
once<00:20:36.400><c> you</c><00:20:36.640><c> uh</c><00:20:37.039><c> enter</c><00:20:37.360><c> in</c><00:20:37.520><c> some</c><00:20:37.840><c> information</c>

00:20:38.310 --> 00:20:38.320 align:start position:0%
once you uh enter in some information
 

00:20:38.320 --> 00:20:39.990 align:start position:0%
once you uh enter in some information
it'll<00:20:38.559><c> give</c><00:20:38.640><c> you</c><00:20:38.799><c> some</c><00:20:38.960><c> happiness</c><00:20:39.360><c> back</c><00:20:39.760><c> it'll</c>

00:20:39.990 --> 00:20:40.000 align:start position:0%
it'll give you some happiness back it'll
 

00:20:40.000 --> 00:20:41.750 align:start position:0%
it'll give you some happiness back it'll
throw<00:20:40.159><c> up</c><00:20:40.320><c> a</c><00:20:40.400><c> little</c><00:20:40.640><c> um</c>

00:20:41.750 --> 00:20:41.760 align:start position:0%
throw up a little um
 

00:20:41.760 --> 00:20:43.750 align:start position:0%
throw up a little um
little<00:20:42.000><c> quote</c><00:20:42.720><c> and</c><00:20:43.120><c> actually</c><00:20:43.440><c> i</c><00:20:43.520><c> think</c><00:20:43.679><c> i</c>

00:20:43.750 --> 00:20:43.760 align:start position:0%
little quote and actually i think i
 

00:20:43.760 --> 00:20:45.350 align:start position:0%
little quote and actually i think i
spent<00:20:44.240><c> about</c><00:20:44.480><c> half</c><00:20:44.720><c> the</c><00:20:44.799><c> time</c><00:20:44.960><c> looking</c><00:20:45.200><c> for</c>

00:20:45.350 --> 00:20:45.360 align:start position:0%
spent about half the time looking for
 

00:20:45.360 --> 00:20:47.110 align:start position:0%
spent about half the time looking for
quotes

00:20:47.110 --> 00:20:47.120 align:start position:0%
quotes
 

00:20:47.120 --> 00:20:50.470 align:start position:0%
quotes
seriously<00:20:47.919><c> it's</c><00:20:48.080><c> not</c><00:20:48.240><c> that</c><00:20:48.480><c> easy</c>

00:20:50.470 --> 00:20:50.480 align:start position:0%
seriously it's not that easy
 

00:20:50.480 --> 00:20:52.310 align:start position:0%
seriously it's not that easy
and<00:20:50.640><c> then</c><00:20:50.799><c> every</c><00:20:50.960><c> other</c><00:20:51.120><c> time</c><00:20:51.280><c> you</c><00:20:51.440><c> log</c><00:20:51.760><c> in</c>

00:20:52.310 --> 00:20:52.320 align:start position:0%
and then every other time you log in
 

00:20:52.320 --> 00:20:53.750 align:start position:0%
and then every other time you log in
it's<00:20:52.559><c> even</c><00:20:52.799><c> easier</c><00:20:53.039><c> it</c><00:20:53.120><c> doesn't</c><00:20:53.360><c> need</c><00:20:53.520><c> to</c><00:20:53.600><c> know</c>

00:20:53.750 --> 00:20:53.760 align:start position:0%
it's even easier it doesn't need to know
 

00:20:53.760 --> 00:20:55.830 align:start position:0%
it's even easier it doesn't need to know
who<00:20:53.919><c> you</c><00:20:54.080><c> are</c><00:20:54.400><c> because</c><00:20:54.640><c> it</c><00:20:54.720><c> has</c><00:20:54.880><c> a</c><00:20:54.960><c> cookie</c><00:20:55.600><c> uh</c>

00:20:55.830 --> 00:20:55.840 align:start position:0%
who you are because it has a cookie uh
 

00:20:55.840 --> 00:20:56.950 align:start position:0%
who you are because it has a cookie uh
and<00:20:56.000><c> as</c><00:20:56.159><c> a</c><00:20:56.159><c> matter</c><00:20:56.320><c> of</c><00:20:56.400><c> fact</c><00:20:56.559><c> you</c><00:20:56.720><c> don't</c><00:20:56.799><c> even</c>

00:20:56.950 --> 00:20:56.960 align:start position:0%
and as a matter of fact you don't even
 

00:20:56.960 --> 00:20:57.990 align:start position:0%
and as a matter of fact you don't even
have<00:20:57.039><c> to</c><00:20:57.120><c> tell</c><00:20:57.280><c> it</c><00:20:57.360><c> what</c><00:20:57.440><c> you're</c><00:20:57.600><c> doing</c><00:20:57.919><c> you</c>

00:20:57.990 --> 00:20:58.000 align:start position:0%
have to tell it what you're doing you
 

00:20:58.000 --> 00:20:59.510 align:start position:0%
have to tell it what you're doing you
can<00:20:58.080><c> just</c><00:20:58.240><c> give</c><00:20:58.400><c> it</c><00:20:58.480><c> a</c><00:20:58.559><c> number</c><00:20:58.880><c> boom</c><00:20:59.200><c> it</c><00:20:59.280><c> knows</c>

00:20:59.510 --> 00:20:59.520 align:start position:0%
can just give it a number boom it knows
 

00:20:59.520 --> 00:21:02.070 align:start position:0%
can just give it a number boom it knows
the<00:20:59.600><c> date</c><00:21:00.400><c> and</c><00:21:00.640><c> all</c><00:21:00.799><c> this</c><00:21:01.039><c> is</c><00:21:01.200><c> being</c><00:21:01.440><c> stored</c><00:21:01.919><c> in</c>

00:21:02.070 --> 00:21:02.080 align:start position:0%
the date and all this is being stored in
 

00:21:02.080 --> 00:21:04.149 align:start position:0%
the date and all this is being stored in
a<00:21:02.159><c> database</c><00:21:03.039><c> actually</c>

00:21:04.149 --> 00:21:04.159 align:start position:0%
a database actually
 

00:21:04.159 --> 00:21:06.470 align:start position:0%
a database actually
and<00:21:04.400><c> works</c><00:21:04.720><c> great</c><00:21:04.960><c> on</c>

00:21:06.470 --> 00:21:06.480 align:start position:0%
and works great on
 

00:21:06.480 --> 00:21:10.149 align:start position:0%
and works great on
phones<00:21:06.960><c> as</c><00:21:07.039><c> well</c><00:21:07.200><c> as</c><00:21:07.360><c> tablets</c><00:21:07.840><c> etc</c>

00:21:10.149 --> 00:21:10.159 align:start position:0%
phones as well as tablets etc
 

00:21:10.159 --> 00:21:12.789 align:start position:0%
phones as well as tablets etc
this<00:21:10.400><c> is</c><00:21:10.480><c> the</c><00:21:10.559><c> codebase</c><00:21:11.200><c> it's</c><00:21:11.440><c> shockingly</c><00:21:12.159><c> 54</c>

00:21:12.789 --> 00:21:12.799 align:start position:0%
this is the codebase it's shockingly 54
 

00:21:12.799 --> 00:21:16.549 align:start position:0%
this is the codebase it's shockingly 54
lines<00:21:13.200><c> long</c><00:21:13.679><c> this</c><00:21:13.919><c> includes</c><00:21:14.400><c> the</c><00:21:14.960><c> inline</c><00:21:15.440><c> html</c>

00:21:16.549 --> 00:21:16.559 align:start position:0%
lines long this includes the inline html
 

00:21:16.559 --> 00:21:18.070 align:start position:0%
lines long this includes the inline html
the<00:21:16.799><c> uh</c><00:21:17.280><c> everything</c><00:21:17.600><c> to</c><00:21:17.760><c> deal</c><00:21:17.919><c> with</c><00:21:18.000><c> the</c>

00:21:18.070 --> 00:21:18.080 align:start position:0%
the uh everything to deal with the
 

00:21:18.080 --> 00:21:19.110 align:start position:0%
the uh everything to deal with the
database

00:21:19.110 --> 00:21:19.120 align:start position:0%
database
 

00:21:19.120 --> 00:21:23.669 align:start position:0%
database
uh<00:21:19.360><c> the</c><00:21:19.520><c> form</c><00:21:19.840><c> processing</c><00:21:20.320><c> is</c><00:21:20.400><c> here</c><00:21:20.640><c> too</c>

00:21:23.669 --> 00:21:23.679 align:start position:0%
 
 

00:21:23.679 --> 00:21:25.270 align:start position:0%
 
i<00:21:23.840><c> also</c><00:21:24.080><c> put</c><00:21:24.240><c> in</c><00:21:24.320><c> something</c><00:21:24.640><c> so</c><00:21:24.799><c> if</c><00:21:24.960><c> you</c><00:21:25.039><c> type</c>

00:21:25.270 --> 00:21:25.280 align:start position:0%
i also put in something so if you type
 

00:21:25.280 --> 00:21:27.270 align:start position:0%
i also put in something so if you type
in<00:21:25.440><c> test</c><00:21:25.919><c> it</c><00:21:26.000><c> doesn't</c><00:21:26.320><c> actually</c><00:21:26.640><c> store</c><00:21:26.960><c> it</c><00:21:27.120><c> so</c>

00:21:27.270 --> 00:21:27.280 align:start position:0%
in test it doesn't actually store it so
 

00:21:27.280 --> 00:21:28.789 align:start position:0%
in test it doesn't actually store it so
i<00:21:27.360><c> can</c><00:21:27.600><c> test</c><00:21:27.840><c> the</c><00:21:28.000><c> infrastructure</c><00:21:28.480><c> just</c><00:21:28.640><c> see</c>

00:21:28.789 --> 00:21:28.799 align:start position:0%
i can test the infrastructure just see
 

00:21:28.799 --> 00:21:32.230 align:start position:0%
i can test the infrastructure just see
if<00:21:28.880><c> things</c><00:21:29.120><c> are</c><00:21:29.200><c> working</c><00:21:30.240><c> and</c><00:21:31.039><c> yeah</c><00:21:31.840><c> and</c><00:21:32.080><c> it's</c>

00:21:32.230 --> 00:21:32.240 align:start position:0%
if things are working and yeah and it's
 

00:21:32.240 --> 00:21:36.710 align:start position:0%
if things are working and yeah and it's
basically<00:21:32.720><c> a</c><00:21:33.039><c> quick</c><00:21:33.200><c> little</c><00:21:33.440><c> jetty</c><00:21:33.760><c> app</c>

00:21:36.710 --> 00:21:36.720 align:start position:0%
 
 

00:21:36.720 --> 00:21:38.870 align:start position:0%
 
the<00:21:36.880><c> moral</c><00:21:37.120><c> of</c><00:21:37.200><c> the</c><00:21:37.280><c> story</c><00:21:37.679><c> is</c><00:21:37.840><c> that</c>

00:21:38.870 --> 00:21:38.880 align:start position:0%
the moral of the story is that
 

00:21:38.880 --> 00:21:40.630 align:start position:0%
the moral of the story is that
the<00:21:39.039><c> use</c><00:21:39.280><c> of</c><00:21:39.360><c> simple</c><00:21:39.600><c> services</c><00:21:40.080><c> really</c><00:21:40.320><c> allows</c>

00:21:40.630 --> 00:21:40.640 align:start position:0%
the use of simple services really allows
 

00:21:40.640 --> 00:21:42.549 align:start position:0%
the use of simple services really allows
you<00:21:40.960><c> a</c><00:21:41.039><c> lot</c><00:21:41.200><c> of</c><00:21:41.280><c> flexibility</c><00:21:42.159><c> especially</c><00:21:42.480><c> when</c>

00:21:42.549 --> 00:21:42.559 align:start position:0%
you a lot of flexibility especially when
 

00:21:42.559 --> 00:21:44.950 align:start position:0%
you a lot of flexibility especially when
it<00:21:42.640><c> comes</c><00:21:42.799><c> to</c><00:21:42.960><c> management</c><00:21:44.159><c> and</c><00:21:44.240><c> total</c><00:21:44.559><c> cost</c><00:21:44.799><c> of</c>

00:21:44.950 --> 00:21:44.960 align:start position:0%
it comes to management and total cost of
 

00:21:44.960 --> 00:21:46.870 align:start position:0%
it comes to management and total cost of
ownership<00:21:45.679><c> you</c><00:21:45.760><c> know</c><00:21:45.919><c> it</c><00:21:46.240><c> seriously</c><00:21:46.559><c> matters</c>

00:21:46.870 --> 00:21:46.880 align:start position:0%
ownership you know it seriously matters
 

00:21:46.880 --> 00:21:49.350 align:start position:0%
ownership you know it seriously matters
for<00:21:47.039><c> me</c><00:21:47.600><c> i'd</c><00:21:47.840><c> much</c><00:21:48.080><c> rather</c><00:21:48.400><c> have</c>

00:21:49.350 --> 00:21:49.360 align:start position:0%
for me i'd much rather have
 

00:21:49.360 --> 00:21:51.110 align:start position:0%
for me i'd much rather have
just<00:21:49.600><c> a</c><00:21:49.679><c> few</c>

00:21:51.110 --> 00:21:51.120 align:start position:0%
just a few
 

00:21:51.120 --> 00:21:53.430 align:start position:0%
just a few
deal<00:21:51.360><c> with</c><00:21:51.440><c> a</c><00:21:51.520><c> few</c><00:21:51.760><c> servers</c>

00:21:53.430 --> 00:21:53.440 align:start position:0%
deal with a few servers
 

00:21:53.440 --> 00:21:55.270 align:start position:0%
deal with a few servers
than<00:21:53.600><c> hundreds</c><00:21:53.919><c> of</c><00:21:54.000><c> servers</c><00:21:54.559><c> and</c><00:21:54.799><c> especially</c>

00:21:55.270 --> 00:21:55.280 align:start position:0%
than hundreds of servers and especially
 

00:21:55.280 --> 00:21:56.710 align:start position:0%
than hundreds of servers and especially
when<00:21:55.679><c> we</c><00:21:55.840><c> have</c>

00:21:56.710 --> 00:21:56.720 align:start position:0%
when we have
 

00:21:56.720 --> 00:21:58.630 align:start position:0%
when we have
clients<00:21:57.039><c> with</c><00:21:57.200><c> small</c><00:21:57.520><c> needs</c><00:21:58.080><c> you</c><00:21:58.159><c> know</c><00:21:58.400><c> that</c>

00:21:58.630 --> 00:21:58.640 align:start position:0%
clients with small needs you know that
 

00:21:58.640 --> 00:22:00.870 align:start position:0%
clients with small needs you know that
might<00:21:58.799><c> necessarily</c><00:21:59.360><c> need</c><00:21:59.520><c> us</c><00:21:59.760><c> need</c><00:22:00.000><c> a</c><00:22:00.080><c> server</c>

00:22:00.870 --> 00:22:00.880 align:start position:0%
might necessarily need us need a server
 

00:22:00.880 --> 00:22:02.390 align:start position:0%
might necessarily need us need a server
um

00:22:02.390 --> 00:22:02.400 align:start position:0%
um
 

00:22:02.400 --> 00:22:04.070 align:start position:0%
um
that<00:22:02.640><c> that's</c><00:22:02.880><c> typically</c><00:22:03.360><c> the</c><00:22:03.600><c> the</c><00:22:03.760><c> problem</c>

00:22:04.070 --> 00:22:04.080 align:start position:0%
that that's typically the the problem
 

00:22:04.080 --> 00:22:05.590 align:start position:0%
that that's typically the the problem
people<00:22:04.320><c> walk</c><00:22:04.480><c> in</c><00:22:04.559><c> the</c><00:22:04.720><c> door</c><00:22:04.880><c> say</c><00:22:05.039><c> we</c><00:22:05.200><c> need</c><00:22:05.360><c> 50</c>

00:22:05.590 --> 00:22:05.600 align:start position:0%
people walk in the door say we need 50
 

00:22:05.600 --> 00:22:07.350 align:start position:0%
people walk in the door say we need 50
servers<00:22:06.000><c> usually</c><00:22:06.240><c> they</c><00:22:06.400><c> need</c><00:22:06.559><c> one</c><00:22:06.960><c> we</c><00:22:07.120><c> need</c><00:22:07.280><c> a</c>

00:22:07.350 --> 00:22:07.360 align:start position:0%
servers usually they need one we need a
 

00:22:07.360 --> 00:22:10.230 align:start position:0%
servers usually they need one we need a
server<00:22:07.679><c> sometimes</c><00:22:08.000><c> they</c><00:22:08.080><c> don't</c><00:22:08.240><c> need</c><00:22:08.480><c> any</c>

00:22:10.230 --> 00:22:10.240 align:start position:0%
server sometimes they don't need any
 

00:22:10.240 --> 00:22:12.710 align:start position:0%
server sometimes they don't need any
this<00:22:10.400><c> is</c><00:22:10.480><c> where</c><00:22:10.640><c> heroku</c><00:22:11.039><c> comes</c><00:22:11.280><c> in</c><00:22:11.679><c> and</c><00:22:12.320><c> yeah</c>

00:22:12.710 --> 00:22:12.720 align:start position:0%
this is where heroku comes in and yeah
 

00:22:12.720 --> 00:22:15.909 align:start position:0%
this is where heroku comes in and yeah
it<00:22:12.799><c> really</c><00:22:13.039><c> does</c><00:22:13.200><c> make</c><00:22:13.360><c> me</c><00:22:13.520><c> very</c><00:22:13.760><c> happy</c>

00:22:15.909 --> 00:22:15.919 align:start position:0%
it really does make me very happy
 

00:22:15.919 --> 00:22:22.230 align:start position:0%
it really does make me very happy
thank<00:22:16.080><c> you</c>

00:22:22.230 --> 00:22:22.240 align:start position:0%
 
 

00:22:22.240 --> 00:22:25.190 align:start position:0%
 
all<00:22:22.400><c> right</c><00:22:22.559><c> so</c><00:22:22.880><c> uh</c>

00:22:25.190 --> 00:22:25.200 align:start position:0%
all right so uh
 

00:22:25.200 --> 00:22:27.669 align:start position:0%
all right so uh
yeah<00:22:25.919><c> thank</c><00:22:26.080><c> you</c>

00:22:27.669 --> 00:22:27.679 align:start position:0%
yeah thank you
 

00:22:27.679 --> 00:22:28.950 align:start position:0%
yeah thank you
um

00:22:28.950 --> 00:22:28.960 align:start position:0%
um
 

00:22:28.960 --> 00:22:30.789 align:start position:0%
um
yeah<00:22:29.200><c> so</c><00:22:29.440><c> i</c><00:22:29.679><c> i</c><00:22:29.760><c> have</c><00:22:29.919><c> a</c><00:22:30.000><c> raspberry</c><00:22:30.400><c> pi</c><00:22:30.640><c> in</c><00:22:30.720><c> my</c>

00:22:30.789 --> 00:22:30.799 align:start position:0%
yeah so i i have a raspberry pi in my
 

00:22:30.799 --> 00:22:32.390 align:start position:0%
yeah so i i have a raspberry pi in my
bag<00:22:31.039><c> they're</c><00:22:31.200><c> really</c><00:22:31.440><c> cool</c><00:22:31.840><c> uh</c><00:22:32.080><c> the</c><00:22:32.159><c> one</c><00:22:32.320><c> i</c>

00:22:32.390 --> 00:22:32.400 align:start position:0%
bag they're really cool uh the one i
 

00:22:32.400 --> 00:22:34.070 align:start position:0%
bag they're really cool uh the one i
have<00:22:32.559><c> in</c><00:22:32.640><c> my</c><00:22:32.799><c> bag</c><00:22:33.039><c> is</c><00:22:33.120><c> running</c><00:22:33.360><c> closure</c><00:22:33.840><c> it's</c>

00:22:34.070 --> 00:22:34.080 align:start position:0%
have in my bag is running closure it's
 

00:22:34.080 --> 00:22:35.669 align:start position:0%
have in my bag is running closure it's
it's<00:22:34.400><c> great</c><00:22:34.799><c> but</c><00:22:34.960><c> i'm</c><00:22:35.039><c> not</c><00:22:35.200><c> gonna</c><00:22:35.280><c> talk</c><00:22:35.440><c> about</c>

00:22:35.669 --> 00:22:35.679 align:start position:0%
it's great but i'm not gonna talk about
 

00:22:35.679 --> 00:22:37.110 align:start position:0%
it's great but i'm not gonna talk about
it<00:22:36.240><c> uh</c>

00:22:37.110 --> 00:22:37.120 align:start position:0%
it uh
 

00:22:37.120 --> 00:22:38.390 align:start position:0%
it uh
so<00:22:37.280><c> if</c><00:22:37.360><c> you</c><00:22:37.840><c> are</c><00:22:38.000><c> interested</c><00:22:38.240><c> in</c><00:22:38.320><c> the</c>

00:22:38.390 --> 00:22:38.400 align:start position:0%
so if you are interested in the
 

00:22:38.400 --> 00:22:41.190 align:start position:0%
so if you are interested in the
raspberry<00:22:38.799><c> pi</c><00:22:38.960><c> i</c><00:22:39.039><c> want</c><00:22:39.120><c> to</c><00:22:39.200><c> see</c><00:22:39.440><c> one</c><00:22:40.000><c> find</c><00:22:40.240><c> me</c>

00:22:41.190 --> 00:22:41.200 align:start position:0%
raspberry pi i want to see one find me
 

00:22:41.200 --> 00:22:42.470 align:start position:0%
raspberry pi i want to see one find me
i<00:22:41.360><c> kind</c><00:22:41.520><c> of</c><00:22:41.600><c> switched</c><00:22:41.840><c> topics</c><00:22:42.159><c> at</c><00:22:42.240><c> the</c><00:22:42.320><c> last</c>

00:22:42.470 --> 00:22:42.480 align:start position:0%
i kind of switched topics at the last
 

00:22:42.480 --> 00:22:43.909 align:start position:0%
i kind of switched topics at the last
minute<00:22:42.799><c> just</c><00:22:42.960><c> because</c><00:22:43.280><c> this</c><00:22:43.440><c> is</c><00:22:43.600><c> where</c><00:22:43.760><c> my</c>

00:22:43.909 --> 00:22:43.919 align:start position:0%
minute just because this is where my
 

00:22:43.919 --> 00:22:45.350 align:start position:0%
minute just because this is where my
head<00:22:44.159><c> is</c><00:22:44.320><c> right</c><00:22:44.480><c> now</c><00:22:44.720><c> and</c><00:22:44.799><c> i'm</c><00:22:44.960><c> like</c><00:22:45.120><c> fully</c>

00:22:45.350 --> 00:22:45.360 align:start position:0%
head is right now and i'm like fully
 

00:22:45.360 --> 00:22:47.990 align:start position:0%
head is right now and i'm like fully
loaded<00:22:45.679><c> on</c><00:22:45.840><c> frp</c><00:22:46.880><c> and</c><00:22:47.039><c> i</c><00:22:47.360><c> have</c><00:22:47.520><c> reached</c><00:22:47.760><c> some</c>

00:22:47.990 --> 00:22:48.000 align:start position:0%
loaded on frp and i have reached some
 

00:22:48.000 --> 00:22:50.789 align:start position:0%
loaded on frp and i have reached some
crystal<00:22:48.480><c> of</c><00:22:48.720><c> understanding</c><00:22:49.280><c> that</c><00:22:49.360><c> i</c><00:22:49.440><c> wish</c><00:22:49.679><c> to</c>

00:22:50.789 --> 00:22:50.799 align:start position:0%
crystal of understanding that i wish to
 

00:22:50.799 --> 00:22:52.230 align:start position:0%
crystal of understanding that i wish to
convey

00:22:52.230 --> 00:22:52.240 align:start position:0%
convey
 

00:22:52.240 --> 00:22:54.630 align:start position:0%
convey
so<00:22:52.880><c> functional</c><00:22:53.280><c> reactive</c><00:22:53.679><c> programming</c><00:22:54.320><c> um</c>

00:22:54.630 --> 00:22:54.640 align:start position:0%
so functional reactive programming um
 

00:22:54.640 --> 00:22:57.190 align:start position:0%
so functional reactive programming um
it's<00:22:54.799><c> a</c><00:22:54.880><c> thing</c><00:22:55.600><c> i</c><00:22:55.840><c> work</c><00:22:56.000><c> at</c><00:22:56.159><c> a</c><00:22:56.240><c> place</c><00:22:56.480><c> called</c>

00:22:57.190 --> 00:22:57.200 align:start position:0%
it's a thing i work at a place called
 

00:22:57.200 --> 00:22:58.549 align:start position:0%
it's a thing i work at a place called
lonocloud<00:22:57.760><c> where</c><00:22:57.919><c> i've</c><00:22:58.080><c> been</c><00:22:58.159><c> doing</c><00:22:58.320><c> a</c><00:22:58.320><c> lot</c><00:22:58.480><c> of</c>

00:22:58.549 --> 00:22:58.559 align:start position:0%
lonocloud where i've been doing a lot of
 

00:22:58.559 --> 00:23:00.149 align:start position:0%
lonocloud where i've been doing a lot of
closure<00:22:58.880><c> script</c><00:22:59.280><c> recently</c><00:22:59.679><c> to</c><00:22:59.840><c> write</c>

00:23:00.149 --> 00:23:00.159 align:start position:0%
closure script recently to write
 

00:23:00.159 --> 00:23:02.950 align:start position:0%
closure script recently to write
web-based<00:23:01.039><c> visualization</c><00:23:01.679><c> tools</c><00:23:02.080><c> for</c>

00:23:02.950 --> 00:23:02.960 align:start position:0%
web-based visualization tools for
 

00:23:02.960 --> 00:23:03.750 align:start position:0%
web-based visualization tools for
uh

00:23:03.750 --> 00:23:03.760 align:start position:0%
uh
 

00:23:03.760 --> 00:23:06.390 align:start position:0%
uh
various<00:23:04.159><c> cloud</c><00:23:04.640><c> tools</c><00:23:05.039><c> that</c><00:23:05.360><c> we</c><00:23:05.600><c> operate</c><00:23:06.080><c> so</c><00:23:06.320><c> i</c>

00:23:06.390 --> 00:23:06.400 align:start position:0%
various cloud tools that we operate so i
 

00:23:06.400 --> 00:23:07.990 align:start position:0%
various cloud tools that we operate so i
once<00:23:06.559><c> again</c><00:23:06.799><c> found</c><00:23:07.039><c> myself</c><00:23:07.360><c> in</c><00:23:07.440><c> the</c><00:23:07.520><c> world</c><00:23:07.760><c> of</c>

00:23:07.990 --> 00:23:08.000 align:start position:0%
once again found myself in the world of
 

00:23:08.000 --> 00:23:09.830 align:start position:0%
once again found myself in the world of
of<00:23:08.240><c> web</c><00:23:08.720><c> programming</c>

00:23:09.830 --> 00:23:09.840 align:start position:0%
of web programming
 

00:23:09.840 --> 00:23:12.630 align:start position:0%
of web programming
and<00:23:10.320><c> uh</c><00:23:10.960><c> callback</c><00:23:11.520><c> uh</c>

00:23:12.630 --> 00:23:12.640 align:start position:0%
and uh callback uh
 

00:23:12.640 --> 00:23:14.070 align:start position:0%
and uh callback uh
hell

00:23:14.070 --> 00:23:14.080 align:start position:0%
hell
 

00:23:14.080 --> 00:23:17.350 align:start position:0%
hell
and<00:23:14.480><c> um</c><00:23:15.280><c> i'd</c><00:23:15.440><c> heard</c><00:23:15.679><c> things</c><00:23:15.840><c> about</c><00:23:16.080><c> frp</c><00:23:16.640><c> and</c><00:23:17.039><c> uh</c>

00:23:17.350 --> 00:23:17.360 align:start position:0%
and um i'd heard things about frp and uh
 

00:23:17.360 --> 00:23:19.270 align:start position:0%
and um i'd heard things about frp and uh
over<00:23:17.520><c> the</c><00:23:17.600><c> past</c><00:23:17.840><c> few</c><00:23:18.000><c> weeks</c><00:23:18.400><c> um</c><00:23:18.880><c> with</c><00:23:19.039><c> the</c><00:23:19.120><c> help</c>

00:23:19.270 --> 00:23:19.280 align:start position:0%
over the past few weeks um with the help
 

00:23:19.280 --> 00:23:21.350 align:start position:0%
over the past few weeks um with the help
of<00:23:19.360><c> my</c><00:23:19.520><c> co-workers</c><00:23:20.000><c> and</c><00:23:20.400><c> a</c><00:23:20.480><c> few</c><00:23:20.640><c> friends</c><00:23:21.280><c> i</c>

00:23:21.350 --> 00:23:21.360 align:start position:0%
of my co-workers and a few friends i
 

00:23:21.360 --> 00:23:22.549 align:start position:0%
of my co-workers and a few friends i
think<00:23:21.520><c> i've</c><00:23:21.840><c> reached</c><00:23:22.080><c> light</c><00:23:22.240><c> at</c><00:23:22.320><c> the</c><00:23:22.400><c> end</c><00:23:22.480><c> of</c>

00:23:22.549 --> 00:23:22.559 align:start position:0%
think i've reached light at the end of
 

00:23:22.559 --> 00:23:23.830 align:start position:0%
think i've reached light at the end of
the<00:23:22.640><c> tunnel</c><00:23:22.880><c> so</c><00:23:23.120><c> i'm</c><00:23:23.200><c> going</c><00:23:23.280><c> to</c><00:23:23.440><c> try</c><00:23:23.679><c> this</c>

00:23:23.830 --> 00:23:23.840 align:start position:0%
the tunnel so i'm going to try this
 

00:23:23.840 --> 00:23:25.510 align:start position:0%
the tunnel so i'm going to try this
explanation<00:23:24.400><c> on</c><00:23:24.480><c> you</c><00:23:24.640><c> guys</c>

00:23:25.510 --> 00:23:25.520 align:start position:0%
explanation on you guys
 

00:23:25.520 --> 00:23:27.029 align:start position:0%
explanation on you guys
um

00:23:27.029 --> 00:23:27.039 align:start position:0%
um
 

00:23:27.039 --> 00:23:28.310 align:start position:0%
um
if<00:23:27.200><c> i'm</c><00:23:27.280><c> not</c><00:23:27.440><c> doing</c><00:23:27.600><c> a</c><00:23:27.679><c> good</c><00:23:27.840><c> job</c><00:23:28.000><c> maybe</c><00:23:28.240><c> i'll</c>

00:23:28.310 --> 00:23:28.320 align:start position:0%
if i'm not doing a good job maybe i'll
 

00:23:28.320 --> 00:23:29.430 align:start position:0%
if i'm not doing a good job maybe i'll
just<00:23:28.480><c> switch</c><00:23:28.640><c> back</c><00:23:28.799><c> over</c><00:23:28.960><c> to</c><00:23:29.120><c> talking</c><00:23:29.360><c> about</c>

00:23:29.430 --> 00:23:29.440 align:start position:0%
just switch back over to talking about
 

00:23:29.440 --> 00:23:31.669 align:start position:0%
just switch back over to talking about
raspberry<00:23:29.840><c> pi</c><00:23:30.240><c> but</c><00:23:30.400><c> here</c><00:23:30.559><c> we</c><00:23:30.640><c> go</c>

00:23:31.669 --> 00:23:31.679 align:start position:0%
raspberry pi but here we go
 

00:23:31.679 --> 00:23:33.350 align:start position:0%
raspberry pi but here we go
so<00:23:31.840><c> what</c><00:23:32.000><c> is</c><00:23:32.159><c> frp</c>

00:23:33.350 --> 00:23:33.360 align:start position:0%
so what is frp
 

00:23:33.360 --> 00:23:34.470 align:start position:0%
so what is frp
it<00:23:33.520><c> is</c><00:23:33.679><c> a</c>

00:23:34.470 --> 00:23:34.480 align:start position:0%
it is a
 

00:23:34.480 --> 00:23:36.310 align:start position:0%
it is a
fundamentally<00:23:35.039><c> a</c><00:23:35.200><c> programming</c><00:23:35.679><c> paradigm</c>

00:23:36.310 --> 00:23:36.320 align:start position:0%
fundamentally a programming paradigm
 

00:23:36.320 --> 00:23:38.149 align:start position:0%
fundamentally a programming paradigm
what<00:23:36.480><c> is</c><00:23:36.640><c> a</c><00:23:36.720><c> paradigm</c><00:23:37.280><c> well</c><00:23:37.520><c> a</c><00:23:37.600><c> paradigm</c><00:23:38.080><c> is</c>

00:23:38.149 --> 00:23:38.159 align:start position:0%
what is a paradigm well a paradigm is
 

00:23:38.159 --> 00:23:39.909 align:start position:0%
what is a paradigm well a paradigm is
usually<00:23:38.480><c> delivered</c><00:23:38.799><c> to</c><00:23:38.960><c> us</c><00:23:39.200><c> in</c><00:23:39.280><c> the</c><00:23:39.360><c> form</c><00:23:39.679><c> of</c>

00:23:39.909 --> 00:23:39.919 align:start position:0%
usually delivered to us in the form of
 

00:23:39.919 --> 00:23:42.310 align:start position:0%
usually delivered to us in the form of
an<00:23:40.080><c> implementation</c><00:23:41.200><c> which</c><00:23:41.440><c> is</c><00:23:41.520><c> either</c><00:23:42.080><c> some</c>

00:23:42.310 --> 00:23:42.320 align:start position:0%
an implementation which is either some
 

00:23:42.320 --> 00:23:44.070 align:start position:0%
an implementation which is either some
language<00:23:42.799><c> or</c><00:23:42.960><c> some</c><00:23:43.120><c> library</c><00:23:43.600><c> or</c><00:23:43.760><c> some</c>

00:23:44.070 --> 00:23:44.080 align:start position:0%
language or some library or some
 

00:23:44.080 --> 00:23:47.029 align:start position:0%
language or some library or some
combination<00:23:44.640><c> of</c><00:23:45.280><c> language</c><00:23:45.679><c> and</c><00:23:45.840><c> library</c>

00:23:47.029 --> 00:23:47.039 align:start position:0%
combination of language and library
 

00:23:47.039 --> 00:23:48.549 align:start position:0%
combination of language and library
if<00:23:47.200><c> you</c><00:23:47.280><c> look</c><00:23:47.440><c> at</c><00:23:47.520><c> all</c><00:23:47.600><c> the</c><00:23:47.760><c> frp</c><00:23:48.159><c> stuff</c><00:23:48.320><c> that's</c>

00:23:48.549 --> 00:23:48.559 align:start position:0%
if you look at all the frp stuff that's
 

00:23:48.559 --> 00:23:50.390 align:start position:0%
if you look at all the frp stuff that's
out<00:23:48.640><c> there</c><00:23:48.799><c> to</c><00:23:48.960><c> include</c><00:23:49.280><c> the</c><00:23:49.440><c> papers</c><00:23:50.240><c> you</c><00:23:50.320><c> know</c>

00:23:50.390 --> 00:23:50.400 align:start position:0%
out there to include the papers you know
 

00:23:50.400 --> 00:23:51.510 align:start position:0%
out there to include the papers you know
some<00:23:50.559><c> of</c><00:23:50.640><c> which</c><00:23:50.799><c> i've</c><00:23:50.960><c> skimmed</c><00:23:51.200><c> in</c><00:23:51.360><c> all</c><00:23:51.440><c> the</c>

00:23:51.510 --> 00:23:51.520 align:start position:0%
some of which i've skimmed in all the
 

00:23:51.520 --> 00:23:52.870 align:start position:0%
some of which i've skimmed in all the
various<00:23:51.840><c> implementations</c><00:23:52.480><c> whether</c><00:23:52.720><c> they're</c>

00:23:52.870 --> 00:23:52.880 align:start position:0%
various implementations whether they're
 

00:23:52.880 --> 00:23:55.430 align:start position:0%
various implementations whether they're
languages<00:23:53.360><c> libraries</c><00:23:53.760><c> or</c><00:23:53.919><c> frameworks</c>

00:23:55.430 --> 00:23:55.440 align:start position:0%
languages libraries or frameworks
 

00:23:55.440 --> 00:23:57.909 align:start position:0%
languages libraries or frameworks
two<00:23:55.760><c> key</c><00:23:56.000><c> ideas</c><00:23:56.480><c> stick</c><00:23:56.799><c> out</c><00:23:57.280><c> the</c><00:23:57.440><c> first</c><00:23:57.760><c> is</c><00:23:57.840><c> the</c>

00:23:57.909 --> 00:23:57.919 align:start position:0%
two key ideas stick out the first is the
 

00:23:57.919 --> 00:24:00.630 align:start position:0%
two key ideas stick out the first is the
notion<00:23:58.240><c> of</c><00:23:58.320><c> a</c><00:23:58.480><c> time</c><00:23:58.960><c> varying</c><00:23:59.520><c> value</c>

00:24:00.630 --> 00:24:00.640 align:start position:0%
notion of a time varying value
 

00:24:00.640 --> 00:24:02.470 align:start position:0%
notion of a time varying value
and<00:24:00.880><c> i'm</c><00:24:01.120><c> using</c><00:24:01.280><c> terminology</c><00:24:01.919><c> from</c><00:24:02.320><c> my</c>

00:24:02.470 --> 00:24:02.480 align:start position:0%
and i'm using terminology from my
 

00:24:02.480 --> 00:24:03.830 align:start position:0%
and i'm using terminology from my
favorite<00:24:02.720><c> paper</c><00:24:02.960><c> which</c><00:24:03.120><c> is</c><00:24:03.200><c> the</c><00:24:03.360><c> flapjacks</c>

00:24:03.830 --> 00:24:03.840 align:start position:0%
favorite paper which is the flapjacks
 

00:24:03.840 --> 00:24:05.750 align:start position:0%
favorite paper which is the flapjacks
paper<00:24:04.159><c> but</c><00:24:04.799><c> they</c><00:24:04.960><c> talk</c><00:24:05.120><c> a</c><00:24:05.200><c> lot</c><00:24:05.360><c> about</c><00:24:05.520><c> time</c>

00:24:05.750 --> 00:24:05.760 align:start position:0%
paper but they talk a lot about time
 

00:24:05.760 --> 00:24:07.750 align:start position:0%
paper but they talk a lot about time
varying<00:24:06.159><c> values</c><00:24:06.880><c> which</c><00:24:07.120><c> one</c><00:24:07.280><c> way</c><00:24:07.440><c> to</c><00:24:07.600><c> think</c>

00:24:07.750 --> 00:24:07.760 align:start position:0%
varying values which one way to think
 

00:24:07.760 --> 00:24:09.669 align:start position:0%
varying values which one way to think
about<00:24:07.919><c> them</c><00:24:08.080><c> in</c><00:24:08.159><c> closure</c><00:24:08.559><c> terms</c><00:24:08.880><c> as</c>

00:24:09.669 --> 00:24:09.679 align:start position:0%
about them in closure terms as
 

00:24:09.679 --> 00:24:12.470 align:start position:0%
about them in closure terms as
is<00:24:09.919><c> as</c><00:24:10.240><c> reference</c><00:24:10.799><c> types</c>

00:24:12.470 --> 00:24:12.480 align:start position:0%
is as reference types
 

00:24:12.480 --> 00:24:13.830 align:start position:0%
is as reference types
however<00:24:13.039><c> in</c>

00:24:13.830 --> 00:24:13.840 align:start position:0%
however in
 

00:24:13.840 --> 00:24:15.830 align:start position:0%
however in
closure<00:24:14.400><c> if</c><00:24:14.559><c> you</c><00:24:14.640><c> want</c><00:24:14.799><c> to</c><00:24:14.960><c> know</c><00:24:15.120><c> the</c><00:24:15.200><c> value</c><00:24:15.600><c> of</c>

00:24:15.830 --> 00:24:15.840 align:start position:0%
closure if you want to know the value of
 

00:24:15.840 --> 00:24:17.430 align:start position:0%
closure if you want to know the value of
a<00:24:16.000><c> reference</c><00:24:16.320><c> type</c><00:24:16.559><c> you</c><00:24:16.799><c> you</c><00:24:16.960><c> are</c><00:24:17.120><c> the</c><00:24:17.200><c> one</c>

00:24:17.430 --> 00:24:17.440 align:start position:0%
a reference type you you are the one
 

00:24:17.440 --> 00:24:19.029 align:start position:0%
a reference type you you are the one
responsible<00:24:18.000><c> for</c><00:24:18.159><c> asking</c><00:24:18.480><c> the</c><00:24:18.559><c> question</c><00:24:18.960><c> the</c>

00:24:19.029 --> 00:24:19.039 align:start position:0%
responsible for asking the question the
 

00:24:19.039 --> 00:24:20.789 align:start position:0%
responsible for asking the question the
value<00:24:19.360><c> is</c><00:24:19.440><c> not</c><00:24:19.600><c> pushed</c><00:24:19.840><c> to</c><00:24:20.000><c> you</c><00:24:20.640><c> you</c>

00:24:20.789 --> 00:24:20.799 align:start position:0%
value is not pushed to you you
 

00:24:20.799 --> 00:24:22.630 align:start position:0%
value is not pushed to you you
dereference<00:24:21.440><c> it</c><00:24:21.520><c> with</c><00:24:21.679><c> a</c><00:24:21.840><c> little</c><00:24:22.159><c> you</c><00:24:22.320><c> know</c><00:24:22.480><c> at</c>

00:24:22.630 --> 00:24:22.640 align:start position:0%
dereference it with a little you know at
 

00:24:22.640 --> 00:24:24.310 align:start position:0%
dereference it with a little you know at
symbol<00:24:23.039><c> reader</c><00:24:23.279><c> macro</c>

00:24:24.310 --> 00:24:24.320 align:start position:0%
symbol reader macro
 

00:24:24.320 --> 00:24:26.310 align:start position:0%
symbol reader macro
these<00:24:24.480><c> time</c><00:24:24.720><c> varying</c><00:24:25.120><c> values</c><00:24:25.520><c> are</c><00:24:25.840><c> reference</c>

00:24:26.310 --> 00:24:26.320 align:start position:0%
these time varying values are reference
 

00:24:26.320 --> 00:24:28.630 align:start position:0%
these time varying values are reference
types<00:24:26.640><c> the</c><00:24:26.960><c> value</c><00:24:27.360><c> of</c><00:24:27.679><c> which</c><00:24:28.080><c> changes</c><00:24:28.400><c> over</c>

00:24:28.630 --> 00:24:28.640 align:start position:0%
types the value of which changes over
 

00:24:28.640 --> 00:24:30.230 align:start position:0%
types the value of which changes over
time<00:24:28.799><c> but</c><00:24:28.960><c> that</c><00:24:29.120><c> value</c><00:24:29.520><c> is</c><00:24:29.679><c> conveyed</c><00:24:30.080><c> to</c>

00:24:30.230 --> 00:24:30.240 align:start position:0%
time but that value is conveyed to
 

00:24:30.240 --> 00:24:34.149 align:start position:0%
time but that value is conveyed to
consumers<00:24:31.200><c> as</c><00:24:31.360><c> a</c><00:24:31.520><c> stream</c><00:24:32.240><c> of</c><00:24:32.720><c> changes</c><00:24:33.600><c> so</c><00:24:33.919><c> time</c>

00:24:34.149 --> 00:24:34.159 align:start position:0%
consumers as a stream of changes so time
 

00:24:34.159 --> 00:24:36.549 align:start position:0%
consumers as a stream of changes so time
varying<00:24:34.400><c> values</c>

00:24:36.549 --> 00:24:36.559 align:start position:0%
varying values
 

00:24:36.559 --> 00:24:38.070 align:start position:0%
varying values
once<00:24:36.799><c> you</c><00:24:36.880><c> have</c><00:24:37.039><c> these</c><00:24:37.200><c> time</c><00:24:37.440><c> varying</c><00:24:37.679><c> values</c>

00:24:38.070 --> 00:24:38.080 align:start position:0%
once you have these time varying values
 

00:24:38.080 --> 00:24:39.830 align:start position:0%
once you have these time varying values
these<00:24:38.240><c> streams</c><00:24:38.720><c> of</c><00:24:38.799><c> changes</c><00:24:39.360><c> then</c><00:24:39.520><c> you</c><00:24:39.679><c> can</c>

00:24:39.830 --> 00:24:39.840 align:start position:0%
these streams of changes then you can
 

00:24:39.840 --> 00:24:41.990 align:start position:0%
these streams of changes then you can
work<00:24:40.000><c> with</c><00:24:40.159><c> them</c><00:24:40.480><c> in</c><00:24:40.640><c> a</c><00:24:40.720><c> similar</c><00:24:41.120><c> way</c>

00:24:41.990 --> 00:24:42.000 align:start position:0%
work with them in a similar way
 

00:24:42.000 --> 00:24:42.950 align:start position:0%
work with them in a similar way
uh

00:24:42.950 --> 00:24:42.960 align:start position:0%
uh
 

00:24:42.960 --> 00:24:44.710 align:start position:0%
uh
to<00:24:43.200><c> working</c><00:24:43.440><c> with</c><00:24:43.600><c> sequences</c><00:24:44.159><c> enclosure</c><00:24:44.559><c> with</c>

00:24:44.710 --> 00:24:44.720 align:start position:0%
to working with sequences enclosure with
 

00:24:44.720 --> 00:24:46.390 align:start position:0%
to working with sequences enclosure with
the<00:24:44.799><c> sequence</c><00:24:45.120><c> library</c><00:24:45.919><c> you</c><00:24:46.080><c> have</c><00:24:46.159><c> these</c>

00:24:46.390 --> 00:24:46.400 align:start position:0%
the sequence library you have these
 

00:24:46.400 --> 00:24:48.549 align:start position:0%
the sequence library you have these
streams<00:24:46.799><c> of</c><00:24:46.960><c> events</c><00:24:47.360><c> that</c><00:24:47.520><c> you</c><00:24:47.679><c> can</c><00:24:48.240><c> you</c><00:24:48.320><c> know</c>

00:24:48.549 --> 00:24:48.559 align:start position:0%
streams of events that you can you know
 

00:24:48.559 --> 00:24:51.110 align:start position:0%
streams of events that you can you know
compose<00:24:49.120><c> or</c><00:24:49.360><c> interleave</c><00:24:50.080><c> or</c><00:24:50.400><c> transpose</c><00:24:51.039><c> in</c>

00:24:51.110 --> 00:24:51.120 align:start position:0%
compose or interleave or transpose in
 

00:24:51.120 --> 00:24:52.230 align:start position:0%
compose or interleave or transpose in
the<00:24:51.200><c> same</c><00:24:51.360><c> way</c><00:24:51.520><c> we're</c><00:24:51.679><c> used</c><00:24:51.840><c> to</c><00:24:51.919><c> working</c><00:24:52.159><c> with</c>

00:24:52.230 --> 00:24:52.240 align:start position:0%
the same way we're used to working with
 

00:24:52.240 --> 00:24:54.230 align:start position:0%
the same way we're used to working with
sequences

00:24:54.230 --> 00:24:54.240 align:start position:0%
sequences
 

00:24:54.240 --> 00:24:56.070 align:start position:0%
sequences
what<00:24:54.400><c> this</c><00:24:54.640><c> does</c><00:24:54.960><c> is</c><00:24:55.120><c> allow</c><00:24:55.360><c> you</c><00:24:55.520><c> to</c><00:24:55.679><c> program</c>

00:24:56.070 --> 00:24:56.080 align:start position:0%
what this does is allow you to program
 

00:24:56.080 --> 00:24:58.789 align:start position:0%
what this does is allow you to program
with<00:24:56.320><c> events</c><00:24:56.799><c> as</c><00:24:57.039><c> if</c><00:24:57.200><c> they</c><00:24:57.360><c> were</c><00:24:57.600><c> values</c>

00:24:58.789 --> 00:24:58.799 align:start position:0%
with events as if they were values
 

00:24:58.799 --> 00:25:00.070 align:start position:0%
with events as if they were values
one<00:24:58.960><c> of</c><00:24:59.039><c> the</c><00:24:59.200><c> other</c><00:24:59.360><c> themes</c><00:24:59.600><c> in</c><00:24:59.679><c> a</c><00:24:59.760><c> lot</c><00:24:59.840><c> of</c><00:24:59.919><c> the</c>

00:25:00.070 --> 00:25:00.080 align:start position:0%
one of the other themes in a lot of the
 

00:25:00.080 --> 00:25:01.830 align:start position:0%
one of the other themes in a lot of the
papers<00:25:00.480><c> is</c><00:25:00.640><c> this</c><00:25:00.880><c> point</c><00:25:01.120><c> that's</c><00:25:01.360><c> made</c><00:25:01.600><c> that</c>

00:25:01.830 --> 00:25:01.840 align:start position:0%
papers is this point that's made that
 

00:25:01.840 --> 00:25:03.350 align:start position:0%
papers is this point that's made that
whenever<00:25:02.159><c> you're</c><00:25:02.320><c> working</c><00:25:02.480><c> with</c><00:25:02.640><c> callbacks</c>

00:25:03.350 --> 00:25:03.360 align:start position:0%
whenever you're working with callbacks
 

00:25:03.360 --> 00:25:04.149 align:start position:0%
whenever you're working with callbacks
or

00:25:04.149 --> 00:25:04.159 align:start position:0%
or
 

00:25:04.159 --> 00:25:06.149 align:start position:0%
or
watches

00:25:06.149 --> 00:25:06.159 align:start position:0%
watches
 

00:25:06.159 --> 00:25:08.149 align:start position:0%
watches
you<00:25:06.320><c> don't</c><00:25:06.480><c> have</c><00:25:06.720><c> types</c><00:25:07.279><c> you</c><00:25:07.440><c> know</c><00:25:07.600><c> a</c><00:25:07.679><c> callback</c>

00:25:08.149 --> 00:25:08.159 align:start position:0%
you don't have types you know a callback
 

00:25:08.159 --> 00:25:09.909 align:start position:0%
you don't have types you know a callback
is<00:25:08.559><c> a</c><00:25:08.640><c> void</c><00:25:08.960><c> type</c>

00:25:09.909 --> 00:25:09.919 align:start position:0%
is a void type
 

00:25:09.919 --> 00:25:11.590 align:start position:0%
is a void type
for<00:25:10.080><c> those</c><00:25:10.320><c> of</c><00:25:10.400><c> us</c><00:25:10.559><c> enclosure</c>

00:25:11.590 --> 00:25:11.600 align:start position:0%
for those of us enclosure
 

00:25:11.600 --> 00:25:13.350 align:start position:0%
for those of us enclosure
it<00:25:11.679><c> means</c><00:25:11.919><c> we</c><00:25:12.000><c> don't</c><00:25:12.159><c> have</c><00:25:12.320><c> a</c><00:25:12.400><c> value</c>

00:25:13.350 --> 00:25:13.360 align:start position:0%
it means we don't have a value
 

00:25:13.360 --> 00:25:15.190 align:start position:0%
it means we don't have a value
it's<00:25:13.840><c> you</c><00:25:13.919><c> know</c><00:25:14.240><c> usually</c><00:25:14.559><c> the</c><00:25:14.720><c> function</c><00:25:15.039><c> that</c>

00:25:15.190 --> 00:25:15.200 align:start position:0%
it's you know usually the function that
 

00:25:15.200 --> 00:25:16.870 align:start position:0%
it's you know usually the function that
adds<00:25:15.440><c> a</c><00:25:15.520><c> callback</c><00:25:15.919><c> is</c><00:25:16.320><c> void</c><00:25:16.640><c> it</c><00:25:16.720><c> doesn't</c>

00:25:16.870 --> 00:25:16.880 align:start position:0%
adds a callback is void it doesn't
 

00:25:16.880 --> 00:25:18.710 align:start position:0%
adds a callback is void it doesn't
return<00:25:17.200><c> anything</c><00:25:17.520><c> and</c><00:25:17.679><c> of</c><00:25:17.760><c> course</c><00:25:18.320><c> callbacks</c>

00:25:18.710 --> 00:25:18.720 align:start position:0%
return anything and of course callbacks
 

00:25:18.720 --> 00:25:21.029 align:start position:0%
return anything and of course callbacks
are<00:25:18.799><c> not</c><00:25:18.960><c> values</c><00:25:19.360><c> so</c><00:25:20.000><c> what</c><00:25:20.159><c> this</c><00:25:20.400><c> allows</c><00:25:20.880><c> one</c>

00:25:21.029 --> 00:25:21.039 align:start position:0%
are not values so what this allows one
 

00:25:21.039 --> 00:25:23.029 align:start position:0%
are not values so what this allows one
to<00:25:21.200><c> do</c><00:25:21.600><c> is</c><00:25:21.840><c> work</c><00:25:22.080><c> with</c>

00:25:23.029 --> 00:25:23.039 align:start position:0%
to do is work with
 

00:25:23.039 --> 00:25:23.990 align:start position:0%
to do is work with
events

00:25:23.990 --> 00:25:24.000 align:start position:0%
events
 

00:25:24.000 --> 00:25:25.909 align:start position:0%
events
as<00:25:24.240><c> streams</c><00:25:24.640><c> of</c><00:25:24.720><c> values</c><00:25:25.200><c> and</c><00:25:25.279><c> compose</c><00:25:25.760><c> in</c><00:25:25.840><c> the</c>

00:25:25.909 --> 00:25:25.919 align:start position:0%
as streams of values and compose in the
 

00:25:25.919 --> 00:25:27.669 align:start position:0%
as streams of values and compose in the
same<00:25:26.080><c> way</c><00:25:26.240><c> we</c><00:25:26.400><c> would</c><00:25:26.640><c> any</c><00:25:26.799><c> stream</c><00:25:27.120><c> of</c><00:25:27.520><c> any</c>

00:25:27.669 --> 00:25:27.679 align:start position:0%
same way we would any stream of any
 

00:25:27.679 --> 00:25:29.750 align:start position:0%
same way we would any stream of any
value

00:25:29.750 --> 00:25:29.760 align:start position:0%
value
 

00:25:29.760 --> 00:25:31.350 align:start position:0%
value
so

00:25:31.350 --> 00:25:31.360 align:start position:0%
so
 

00:25:31.360 --> 00:25:33.029 align:start position:0%
so
there's<00:25:31.600><c> tons</c><00:25:31.840><c> of</c><00:25:31.919><c> stuff</c><00:25:32.159><c> again</c><00:25:32.640><c> i'm</c><00:25:32.880><c> not</c>

00:25:33.029 --> 00:25:33.039 align:start position:0%
there's tons of stuff again i'm not
 

00:25:33.039 --> 00:25:34.549 align:start position:0%
there's tons of stuff again i'm not
going<00:25:33.120><c> to</c><00:25:33.200><c> go</c><00:25:33.360><c> over</c><00:25:33.520><c> it</c><00:25:34.000><c> all</c><00:25:34.159><c> of</c><00:25:34.240><c> the</c><00:25:34.320><c> stuff</c>

00:25:34.549 --> 00:25:34.559 align:start position:0%
going to go over it all of the stuff
 

00:25:34.559 --> 00:25:36.870 align:start position:0%
going to go over it all of the stuff
listed<00:25:34.880><c> except</c><00:25:35.120><c> for</c><00:25:35.279><c> flapjacks</c><00:25:35.919><c> is</c><00:25:36.080><c> either</c><00:25:36.720><c> on</c>

00:25:36.870 --> 00:25:36.880 align:start position:0%
listed except for flapjacks is either on
 

00:25:36.880 --> 00:25:38.549 align:start position:0%
listed except for flapjacks is either on
a<00:25:36.960><c> platform</c><00:25:37.440><c> i</c><00:25:37.520><c> can't</c><00:25:37.679><c> use</c><00:25:37.840><c> for</c><00:25:38.000><c> operational</c>

00:25:38.549 --> 00:25:38.559 align:start position:0%
a platform i can't use for operational
 

00:25:38.559 --> 00:25:40.630 align:start position:0%
a platform i can't use for operational
reasons<00:25:39.360><c> is</c><00:25:39.520><c> too</c><00:25:39.679><c> much</c>

00:25:40.630 --> 00:25:40.640 align:start position:0%
reasons is too much
 

00:25:40.640 --> 00:25:43.510 align:start position:0%
reasons is too much
is<00:25:40.799><c> too</c><00:25:41.039><c> little</c><00:25:42.159><c> or</c><00:25:42.400><c> just</c><00:25:42.559><c> sucks</c>

00:25:43.510 --> 00:25:43.520 align:start position:0%
is too little or just sucks
 

00:25:43.520 --> 00:25:45.909 align:start position:0%
is too little or just sucks
so<00:25:44.080><c> of</c><00:25:44.320><c> all</c><00:25:44.400><c> of</c><00:25:44.559><c> these</c><00:25:44.799><c> i</c><00:25:44.880><c> like</c><00:25:45.039><c> flapjacks</c><00:25:45.760><c> and</c>

00:25:45.909 --> 00:25:45.919 align:start position:0%
so of all of these i like flapjacks and
 

00:25:45.919 --> 00:25:48.390 align:start position:0%
so of all of these i like flapjacks and
that's<00:25:46.080><c> what</c><00:25:46.240><c> i'm</c><00:25:46.320><c> going</c><00:25:46.400><c> to</c><00:25:46.480><c> talk</c><00:25:46.640><c> about</c>

00:25:48.390 --> 00:25:48.400 align:start position:0%
that's what i'm going to talk about
 

00:25:48.400 --> 00:25:50.310 align:start position:0%
that's what i'm going to talk about
what<00:25:48.559><c> does</c><00:25:48.640><c> slapjacks</c><00:25:49.200><c> give</c><00:25:49.440><c> us</c>

00:25:50.310 --> 00:25:50.320 align:start position:0%
what does slapjacks give us
 

00:25:50.320 --> 00:25:52.870 align:start position:0%
what does slapjacks give us
um<00:25:50.880><c> so</c><00:25:51.200><c> a</c><00:25:51.440><c> lot</c><00:25:51.520><c> of</c><00:25:51.600><c> the</c><00:25:51.760><c> frp</c><00:25:52.159><c> solutions</c><00:25:52.640><c> claim</c>

00:25:52.870 --> 00:25:52.880 align:start position:0%
um so a lot of the frp solutions claim
 

00:25:52.880 --> 00:25:54.549 align:start position:0%
um so a lot of the frp solutions claim
to<00:25:52.960><c> give</c><00:25:53.039><c> you</c><00:25:53.120><c> all</c><00:25:53.279><c> kinds</c><00:25:53.440><c> of</c><00:25:53.600><c> stuff</c>

00:25:54.549 --> 00:25:54.559 align:start position:0%
to give you all kinds of stuff
 

00:25:54.559 --> 00:25:56.549 align:start position:0%
to give you all kinds of stuff
to<00:25:54.960><c> you</c><00:25:55.120><c> know</c><00:25:55.520><c> that</c><00:25:55.679><c> help</c><00:25:55.919><c> you</c><00:25:56.080><c> solve</c><00:25:56.480><c> all</c>

00:25:56.549 --> 00:25:56.559 align:start position:0%
to you know that help you solve all
 

00:25:56.559 --> 00:25:58.149 align:start position:0%
to you know that help you solve all
kinds<00:25:56.799><c> of</c><00:25:56.880><c> things</c><00:25:57.120><c> in</c><00:25:57.279><c> in</c><00:25:57.440><c> the</c><00:25:57.520><c> domain</c><00:25:58.080><c> you</c>

00:25:58.149 --> 00:25:58.159 align:start position:0%
kinds of things in in the domain you
 

00:25:58.159 --> 00:26:00.230 align:start position:0%
kinds of things in in the domain you
know<00:25:58.799><c> this</c><00:25:59.039><c> is</c><00:25:59.200><c> this</c><00:25:59.440><c> is</c><00:25:59.520><c> how</c><00:25:59.679><c> you</c><00:25:59.840><c> build</c><00:26:00.000><c> web</c>

00:26:00.230 --> 00:26:00.240 align:start position:0%
know this is this is how you build web
 

00:26:00.240 --> 00:26:01.750 align:start position:0%
know this is this is how you build web
apps<00:26:00.480><c> now</c><00:26:00.640><c> we</c><00:26:00.799><c> give</c><00:26:00.880><c> you</c><00:26:01.120><c> uh</c><00:26:01.279><c> templating</c>

00:26:01.750 --> 00:26:01.760 align:start position:0%
apps now we give you uh templating
 

00:26:01.760 --> 00:26:03.830 align:start position:0%
apps now we give you uh templating
language<00:26:02.240><c> language</c><00:26:02.720><c> and</c>

00:26:03.830 --> 00:26:03.840 align:start position:0%
language language and
 

00:26:03.840 --> 00:26:05.110 align:start position:0%
language language and
graphics<00:26:04.320><c> stuff</c>

00:26:05.110 --> 00:26:05.120 align:start position:0%
graphics stuff
 

00:26:05.120 --> 00:26:06.789 align:start position:0%
graphics stuff
flapjacks<00:26:05.679><c> just</c><00:26:05.840><c> gives</c><00:26:06.080><c> us</c><00:26:06.240><c> one</c><00:26:06.400><c> thing</c><00:26:06.559><c> which</c>

00:26:06.789 --> 00:26:06.799 align:start position:0%
flapjacks just gives us one thing which
 

00:26:06.799 --> 00:26:08.789 align:start position:0%
flapjacks just gives us one thing which
is<00:26:06.960><c> this</c><00:26:07.120><c> ability</c><00:26:07.520><c> to</c><00:26:07.679><c> turn</c><00:26:07.919><c> events</c><00:26:08.480><c> into</c>

00:26:08.789 --> 00:26:08.799 align:start position:0%
is this ability to turn events into
 

00:26:08.799 --> 00:26:10.070 align:start position:0%
is this ability to turn events into
streams<00:26:09.120><c> of</c><00:26:09.200><c> events</c><00:26:09.520><c> so</c><00:26:09.679><c> that</c><00:26:09.760><c> we</c><00:26:09.840><c> can</c><00:26:09.919><c> work</c>

00:26:10.070 --> 00:26:10.080 align:start position:0%
streams of events so that we can work
 

00:26:10.080 --> 00:26:11.510 align:start position:0%
streams of events so that we can work
with<00:26:10.240><c> them</c><00:26:10.400><c> like</c><00:26:10.559><c> values</c>

00:26:11.510 --> 00:26:11.520 align:start position:0%
with them like values
 

00:26:11.520 --> 00:26:13.510 align:start position:0%
with them like values
and<00:26:11.679><c> in</c><00:26:11.840><c> a</c><00:26:11.919><c> browser</c><00:26:12.559><c> there</c><00:26:12.799><c> are</c><00:26:13.200><c> a</c><00:26:13.279><c> couple</c>

00:26:13.510 --> 00:26:13.520 align:start position:0%
and in a browser there are a couple
 

00:26:13.520 --> 00:26:14.710 align:start position:0%
and in a browser there are a couple
different<00:26:13.760><c> flavors</c><00:26:14.080><c> of</c><00:26:14.159><c> event</c><00:26:14.480><c> there</c><00:26:14.559><c> are</c>

00:26:14.710 --> 00:26:14.720 align:start position:0%
different flavors of event there are
 

00:26:14.720 --> 00:26:16.310 align:start position:0%
different flavors of event there are
user<00:26:15.039><c> events</c><00:26:15.440><c> you</c><00:26:15.520><c> know</c><00:26:15.679><c> bob</c><00:26:16.000><c> click</c><00:26:16.240><c> the</c>

00:26:16.310 --> 00:26:16.320 align:start position:0%
user events you know bob click the
 

00:26:16.320 --> 00:26:17.909 align:start position:0%
user events you know bob click the
button<00:26:17.039><c> there</c><00:26:17.120><c> are</c><00:26:17.279><c> events</c><00:26:17.520><c> that</c><00:26:17.600><c> come</c><00:26:17.760><c> from</c>

00:26:17.909 --> 00:26:17.919 align:start position:0%
button there are events that come from
 

00:26:17.919 --> 00:26:19.510 align:start position:0%
button there are events that come from
the<00:26:18.080><c> dom</c><00:26:18.400><c> that</c><00:26:18.559><c> you</c><00:26:18.720><c> may</c><00:26:18.880><c> or</c><00:26:19.039><c> may</c><00:26:19.200><c> not</c><00:26:19.360><c> have</c>

00:26:19.510 --> 00:26:19.520 align:start position:0%
the dom that you may or may not have
 

00:26:19.520 --> 00:26:21.590 align:start position:0%
the dom that you may or may not have
initiated<00:26:20.000><c> like</c><00:26:20.480><c> success</c><00:26:20.880><c> of</c><00:26:21.039><c> an</c><00:26:21.200><c> ajax</c>

00:26:21.590 --> 00:26:21.600 align:start position:0%
initiated like success of an ajax
 

00:26:21.600 --> 00:26:22.630 align:start position:0%
initiated like success of an ajax
callback

00:26:22.630 --> 00:26:22.640 align:start position:0%
callback
 

00:26:22.640 --> 00:26:24.470 align:start position:0%
callback
and<00:26:22.880><c> in</c><00:26:23.039><c> a</c><00:26:23.039><c> lot</c><00:26:23.200><c> of</c><00:26:23.279><c> systems</c><00:26:23.840><c> with</c><00:26:24.000><c> events</c><00:26:24.320><c> you</c>

00:26:24.470 --> 00:26:24.480 align:start position:0%
and in a lot of systems with events you
 

00:26:24.480 --> 00:26:25.990 align:start position:0%
and in a lot of systems with events you
have<00:26:24.559><c> scheduled</c><00:26:24.960><c> or</c><00:26:25.039><c> periodic</c><00:26:25.520><c> events</c><00:26:25.840><c> like</c>

00:26:25.990 --> 00:26:26.000 align:start position:0%
have scheduled or periodic events like
 

00:26:26.000 --> 00:26:27.750 align:start position:0%
have scheduled or periodic events like
heartbeats<00:26:26.559><c> or</c><00:26:26.799><c> refresh</c><00:26:27.200><c> the</c><00:26:27.279><c> buddy</c><00:26:27.520><c> list</c>

00:26:27.750 --> 00:26:27.760 align:start position:0%
heartbeats or refresh the buddy list
 

00:26:27.760 --> 00:26:30.230 align:start position:0%
heartbeats or refresh the buddy list
every<00:26:28.000><c> minute</c>

00:26:30.230 --> 00:26:30.240 align:start position:0%
every minute
 

00:26:30.240 --> 00:26:31.669 align:start position:0%
every minute
flapjacks

00:26:31.669 --> 00:26:31.679 align:start position:0%
flapjacks
 

00:26:31.679 --> 00:26:32.870 align:start position:0%
flapjacks
gives<00:26:31.919><c> us</c><00:26:32.000><c> tools</c><00:26:32.240><c> for</c><00:26:32.400><c> working</c><00:26:32.640><c> with</c><00:26:32.799><c> all</c>

00:26:32.870 --> 00:26:32.880 align:start position:0%
gives us tools for working with all
 

00:26:32.880 --> 00:26:34.630 align:start position:0%
gives us tools for working with all
those<00:26:33.039><c> kinds</c><00:26:33.200><c> of</c><00:26:33.360><c> events</c>

00:26:34.630 --> 00:26:34.640 align:start position:0%
those kinds of events
 

00:26:34.640 --> 00:26:36.230 align:start position:0%
those kinds of events
and<00:26:34.799><c> then</c><00:26:34.960><c> again</c><00:26:35.120><c> once</c><00:26:35.279><c> your</c><00:26:35.440><c> streams</c><00:26:36.000><c> there's</c>

00:26:36.230 --> 00:26:36.240 align:start position:0%
and then again once your streams there's
 

00:26:36.240 --> 00:26:37.990 align:start position:0%
and then again once your streams there's
this<00:26:36.480><c> general</c><00:26:36.799><c> notion</c><00:26:37.120><c> of</c><00:26:37.200><c> consumption</c><00:26:37.840><c> and</c>

00:26:37.990 --> 00:26:38.000 align:start position:0%
this general notion of consumption and
 

00:26:38.000 --> 00:26:39.830 align:start position:0%
this general notion of consumption and
generation<00:26:38.640><c> and</c><00:26:38.799><c> fusion</c><00:26:39.200><c> and</c><00:26:39.279><c> filtering</c><00:26:39.760><c> and</c>

00:26:39.830 --> 00:26:39.840 align:start position:0%
generation and fusion and filtering and
 

00:26:39.840 --> 00:26:40.950 align:start position:0%
generation and fusion and filtering and
so<00:26:40.080><c> on</c>

00:26:40.950 --> 00:26:40.960 align:start position:0%
so on
 

00:26:40.960 --> 00:26:42.149 align:start position:0%
so on
um

00:26:42.149 --> 00:26:42.159 align:start position:0%
um
 

00:26:42.159 --> 00:26:44.630 align:start position:0%
um
what<00:26:42.320><c> flat</c><00:26:42.640><c> jacks</c><00:26:43.039><c> gives</c><00:26:43.279><c> you</c><00:26:43.679><c> is</c><00:26:44.080><c> a</c><00:26:44.240><c> general</c>

00:26:44.630 --> 00:26:44.640 align:start position:0%
what flat jacks gives you is a general
 

00:26:44.640 --> 00:26:46.630 align:start position:0%
what flat jacks gives you is a general
set<00:26:44.799><c> of</c><00:26:44.880><c> tools</c><00:26:45.200><c> for</c><00:26:45.520><c> for</c><00:26:45.679><c> doing</c><00:26:45.919><c> what</c><00:26:46.400><c> a</c><00:26:46.480><c> lot</c><00:26:46.559><c> of</c>

00:26:46.630 --> 00:26:46.640 align:start position:0%
set of tools for for doing what a lot of
 

00:26:46.640 --> 00:26:48.390 align:start position:0%
set of tools for for doing what a lot of
people<00:26:46.799><c> who</c><00:26:46.960><c> work</c><00:26:47.200><c> with</c><00:26:47.279><c> events</c>

00:26:48.390 --> 00:26:48.400 align:start position:0%
people who work with events
 

00:26:48.400 --> 00:26:49.830 align:start position:0%
people who work with events
noaa's<00:26:48.720><c> wiring</c><00:26:49.200><c> you</c><00:26:49.279><c> know</c><00:26:49.440><c> we</c><00:26:49.520><c> talk</c><00:26:49.679><c> about</c>

00:26:49.830 --> 00:26:49.840 align:start position:0%
noaa's wiring you know we talk about
 

00:26:49.840 --> 00:26:51.750 align:start position:0%
noaa's wiring you know we talk about
wiring<00:26:50.240><c> up</c><00:26:50.320><c> the</c><00:26:50.400><c> mock-up</c><00:26:50.799><c> wiring</c><00:26:51.200><c> up</c><00:26:51.600><c> our</c>

00:26:51.750 --> 00:26:51.760 align:start position:0%
wiring up the mock-up wiring up our
 

00:26:51.760 --> 00:26:54.149 align:start position:0%
wiring up the mock-up wiring up our
program<00:26:52.480><c> this</c><00:26:52.640><c> is</c><00:26:52.799><c> a</c><00:26:52.880><c> genuine</c><00:26:53.760><c> general</c>

00:26:54.149 --> 00:26:54.159 align:start position:0%
program this is a genuine general
 

00:26:54.159 --> 00:26:56.470 align:start position:0%
program this is a genuine general
purpose<00:26:54.559><c> wiring</c><00:26:55.039><c> library</c><00:26:55.600><c> for</c>

00:26:56.470 --> 00:26:56.480 align:start position:0%
purpose wiring library for
 

00:26:56.480 --> 00:26:59.750 align:start position:0%
purpose wiring library for
wiring<00:26:56.880><c> together</c><00:26:57.200><c> behaviors</c><00:26:57.679><c> in</c><00:26:57.760><c> the</c><00:26:57.840><c> browser</c>

00:26:59.750 --> 00:26:59.760 align:start position:0%
wiring together behaviors in the browser
 

00:26:59.760 --> 00:27:04.830 align:start position:0%
wiring together behaviors in the browser
demo<00:27:00.080><c> time</c>

00:27:04.830 --> 00:27:04.840 align:start position:0%
 
 

00:27:04.840 --> 00:27:11.830 align:start position:0%
 
so<00:27:05.760><c> how's</c><00:27:06.000><c> that</c><00:27:06.159><c> look</c><00:27:06.480><c> it</c><00:27:06.720><c> look</c><00:27:06.960><c> awesome</c><00:27:07.679><c> yeah</c>

00:27:11.830 --> 00:27:11.840 align:start position:0%
 
 

00:27:11.840 --> 00:27:15.269 align:start position:0%
 
so<00:27:12.080><c> we're</c><00:27:12.240><c> traveling</c><00:27:12.559><c> back</c><00:27:12.799><c> in</c><00:27:12.880><c> time</c>

00:27:15.269 --> 00:27:15.279 align:start position:0%
 
 

00:27:15.279 --> 00:27:16.390 align:start position:0%
 
oh

00:27:16.390 --> 00:27:16.400 align:start position:0%
oh
 

00:27:16.400 --> 00:27:17.909 align:start position:0%
oh
maybe<00:27:16.720><c> the</c><00:27:16.799><c> full</c><00:27:16.960><c> screen</c><00:27:17.279><c> is</c><00:27:17.440><c> a</c><00:27:17.440><c> little</c><00:27:17.679><c> too</c>

00:27:17.909 --> 00:27:17.919 align:start position:0%
maybe the full screen is a little too
 

00:27:17.919 --> 00:27:27.669 align:start position:0%
maybe the full screen is a little too
awesome

00:27:27.669 --> 00:27:27.679 align:start position:0%
 
 

00:27:27.679 --> 00:27:29.510 align:start position:0%
 
how's<00:27:28.000><c> that</c><00:27:28.400><c> yeah</c>

00:27:29.510 --> 00:27:29.520 align:start position:0%
how's that yeah
 

00:27:29.520 --> 00:27:31.029 align:start position:0%
how's that yeah
all<00:27:29.679><c> right</c><00:27:29.840><c> so</c><00:27:30.080><c> uh</c><00:27:30.400><c> what</c><00:27:30.559><c> we're</c><00:27:30.640><c> looking</c><00:27:30.880><c> at</c>

00:27:31.029 --> 00:27:31.039 align:start position:0%
all right so uh what we're looking at
 

00:27:31.039 --> 00:27:33.350 align:start position:0%
all right so uh what we're looking at
here<00:27:31.360><c> is</c><00:27:31.760><c> the</c>

00:27:33.350 --> 00:27:33.360 align:start position:0%
here is the
 

00:27:33.360 --> 00:27:35.590 align:start position:0%
here is the
sort<00:27:33.520><c> of</c><00:27:33.679><c> the</c><00:27:33.760><c> fibonacci</c><00:27:34.400><c> or</c><00:27:34.480><c> the</c><00:27:34.799><c> factorial</c>

00:27:35.590 --> 00:27:35.600 align:start position:0%
sort of the fibonacci or the factorial
 

00:27:35.600 --> 00:27:37.990 align:start position:0%
sort of the fibonacci or the factorial
of<00:27:36.000><c> browser</c><00:27:36.480><c> event</c><00:27:37.200><c> things</c><00:27:37.520><c> which</c><00:27:37.760><c> is</c><00:27:37.919><c> you</c>

00:27:37.990 --> 00:27:38.000 align:start position:0%
of browser event things which is you
 

00:27:38.000 --> 00:27:38.950 align:start position:0%
of browser event things which is you
know<00:27:38.080><c> we're</c><00:27:38.240><c> going</c><00:27:38.240><c> to</c><00:27:38.320><c> add</c><00:27:38.480><c> some</c><00:27:38.640><c> numbers</c>

00:27:38.950 --> 00:27:38.960 align:start position:0%
know we're going to add some numbers
 

00:27:38.960 --> 00:27:39.909 align:start position:0%
know we're going to add some numbers
together

00:27:39.909 --> 00:27:39.919 align:start position:0%
together
 

00:27:39.919 --> 00:27:42.390 align:start position:0%
together
in<00:27:40.080><c> a</c><00:27:40.159><c> cool</c><00:27:40.400><c> way</c>

00:27:42.390 --> 00:27:42.400 align:start position:0%
in a cool way
 

00:27:42.400 --> 00:27:44.470 align:start position:0%
in a cool way
um<00:27:42.880><c> so</c><00:27:43.200><c> you'll</c><00:27:43.679><c> you</c><00:27:43.840><c> know</c><00:27:44.000><c> i</c><00:27:44.080><c> can</c><00:27:44.240><c> do</c><00:27:44.320><c> this</c>

00:27:44.470 --> 00:27:44.480 align:start position:0%
um so you'll you know i can do this
 

00:27:44.480 --> 00:27:45.909 align:start position:0%
um so you'll you know i can do this
thing<00:27:44.720><c> where</c><00:27:44.880><c> i</c><00:27:45.039><c> can</c><00:27:45.200><c> tab</c><00:27:45.440><c> between</c><00:27:45.760><c> these</c>

00:27:45.909 --> 00:27:45.919 align:start position:0%
thing where i can tab between these
 

00:27:45.919 --> 00:27:47.990 align:start position:0%
thing where i can tab between these
fields<00:27:46.799><c> and</c><00:27:46.960><c> change</c><00:27:47.279><c> the</c><00:27:47.360><c> values</c><00:27:47.760><c> of</c><00:27:47.840><c> the</c>

00:27:47.990 --> 00:27:48.000 align:start position:0%
fields and change the values of the
 

00:27:48.000 --> 00:27:49.350 align:start position:0%
fields and change the values of the
fields

00:27:49.350 --> 00:27:49.360 align:start position:0%
fields
 

00:27:49.360 --> 00:27:51.350 align:start position:0%
fields
and<00:27:49.840><c> they</c><00:27:50.000><c> get</c><00:27:50.159><c> summed</c><00:27:50.480><c> up</c><00:27:50.720><c> and</c><00:27:50.880><c> printed</c><00:27:51.279><c> at</c>

00:27:51.350 --> 00:27:51.360 align:start position:0%
and they get summed up and printed at
 

00:27:51.360 --> 00:27:52.710 align:start position:0%
and they get summed up and printed at
the<00:27:51.520><c> bottom</c>

00:27:52.710 --> 00:27:52.720 align:start position:0%
the bottom
 

00:27:52.720 --> 00:27:54.230 align:start position:0%
the bottom
interesting<00:27:53.120><c> thing</c><00:27:53.279><c> to</c><00:27:53.440><c> note</c>

00:27:54.230 --> 00:27:54.240 align:start position:0%
interesting thing to note
 

00:27:54.240 --> 00:27:55.029 align:start position:0%
interesting thing to note
if

00:27:55.029 --> 00:27:55.039 align:start position:0%
if
 

00:27:55.039 --> 00:27:56.710 align:start position:0%
if
i<00:27:55.279><c> zero</c><00:27:55.600><c> all</c><00:27:55.760><c> these</c><00:27:55.919><c> out</c><00:27:56.159><c> or</c><00:27:56.320><c> if</c><00:27:56.399><c> some</c><00:27:56.559><c> of</c><00:27:56.640><c> them</c>

00:27:56.710 --> 00:27:56.720 align:start position:0%
i zero all these out or if some of them
 

00:27:56.720 --> 00:27:58.389 align:start position:0%
i zero all these out or if some of them
are<00:27:56.880><c> empty</c><00:27:57.360><c> it</c><00:27:57.440><c> does</c><00:27:57.600><c> the</c><00:27:57.760><c> right</c><00:27:57.919><c> thing</c><00:27:58.240><c> so</c>

00:27:58.389 --> 00:27:58.399 align:start position:0%
are empty it does the right thing so
 

00:27:58.399 --> 00:28:00.230 align:start position:0%
are empty it does the right thing so
there's<00:27:58.640><c> some</c><00:27:58.799><c> ground</c><00:27:59.120><c> value</c><00:27:59.520><c> for</c><00:28:00.000><c> these</c>

00:28:00.230 --> 00:28:00.240 align:start position:0%
there's some ground value for these
 

00:28:00.240 --> 00:28:02.789 align:start position:0%
there's some ground value for these
event<00:28:00.559><c> sources</c><00:28:01.120><c> in</c><00:28:01.200><c> this</c><00:28:01.360><c> case</c><00:28:01.600><c> zero</c>

00:28:02.789 --> 00:28:02.799 align:start position:0%
event sources in this case zero
 

00:28:02.799 --> 00:28:05.350 align:start position:0%
event sources in this case zero
um<00:28:03.120><c> if</c><00:28:03.200><c> i</c><00:28:03.360><c> type</c><00:28:03.520><c> in</c><00:28:03.679><c> something</c><00:28:03.919><c> that</c><00:28:04.320><c> you</c><00:28:04.480><c> can't</c>

00:28:05.350 --> 00:28:05.360 align:start position:0%
um if i type in something that you can't
 

00:28:05.360 --> 00:28:07.830 align:start position:0%
um if i type in something that you can't
meaningfully<00:28:06.159><c> sum</c><00:28:06.640><c> like</c><00:28:06.880><c> you</c><00:28:06.960><c> know</c><00:28:07.600><c> some</c>

00:28:07.830 --> 00:28:07.840 align:start position:0%
meaningfully sum like you know some
 

00:28:07.840 --> 00:28:08.870 align:start position:0%
meaningfully sum like you know some
string

00:28:08.870 --> 00:28:08.880 align:start position:0%
string
 

00:28:08.880 --> 00:28:10.710 align:start position:0%
string
nothing<00:28:09.200><c> blew</c><00:28:09.520><c> up</c>

00:28:10.710 --> 00:28:10.720 align:start position:0%
nothing blew up
 

00:28:10.720 --> 00:28:11.750 align:start position:0%
nothing blew up
so<00:28:10.960><c> um</c>

00:28:11.750 --> 00:28:11.760 align:start position:0%
so um
 

00:28:11.760 --> 00:28:13.190 align:start position:0%
so um
you<00:28:11.840><c> know</c><00:28:12.080><c> at</c><00:28:12.159><c> least</c><00:28:12.320><c> this</c><00:28:12.559><c> experience</c><00:28:12.960><c> is</c><00:28:13.039><c> not</c>

00:28:13.190 --> 00:28:13.200 align:start position:0%
you know at least this experience is not
 

00:28:13.200 --> 00:28:14.710 align:start position:0%
you know at least this experience is not
unsophisticated<00:28:14.000><c> it</c><00:28:14.080><c> does</c><00:28:14.240><c> some</c><00:28:14.399><c> amount</c><00:28:14.640><c> of</c>

00:28:14.710 --> 00:28:14.720 align:start position:0%
unsophisticated it does some amount of
 

00:28:14.720 --> 00:28:17.510 align:start position:0%
unsophisticated it does some amount of
error<00:28:14.960><c> handling</c>

00:28:17.510 --> 00:28:17.520 align:start position:0%
error handling
 

00:28:17.520 --> 00:28:20.470 align:start position:0%
error handling
and<00:28:18.000><c> things</c><00:28:18.240><c> happen</c><00:28:18.480><c> as</c><00:28:18.640><c> i</c><00:28:18.799><c> type</c>

00:28:20.470 --> 00:28:20.480 align:start position:0%
and things happen as i type
 

00:28:20.480 --> 00:28:22.630 align:start position:0%
and things happen as i type
what<00:28:20.799><c> is</c><00:28:20.960><c> the</c><00:28:21.039><c> code</c><00:28:21.279><c> for</c><00:28:21.440><c> this</c><00:28:21.919><c> well</c><00:28:22.320><c> here</c><00:28:22.480><c> it</c>

00:28:22.630 --> 00:28:22.640 align:start position:0%
what is the code for this well here it
 

00:28:22.640 --> 00:28:24.870 align:start position:0%
what is the code for this well here it
is

00:28:24.870 --> 00:28:24.880 align:start position:0%
 
 

00:28:24.880 --> 00:28:29.190 align:start position:0%
 
what<00:28:25.120><c> we're</c><00:28:25.440><c> looking</c><00:28:25.760><c> at</c>

00:28:29.190 --> 00:28:29.200 align:start position:0%
 
 

00:28:29.200 --> 00:28:34.950 align:start position:0%
 
here

00:28:34.950 --> 00:28:34.960 align:start position:0%
 
 

00:28:34.960 --> 00:28:36.389 align:start position:0%
 
um<00:28:35.200><c> so</c><00:28:35.360><c> this</c><00:28:35.520><c> is</c><00:28:35.600><c> all</c><00:28:35.760><c> of</c><00:28:35.840><c> the</c><00:28:35.919><c> closure</c><00:28:36.240><c> code</c>

00:28:36.389 --> 00:28:36.399 align:start position:0%
um so this is all of the closure code
 

00:28:36.399 --> 00:28:37.750 align:start position:0%
um so this is all of the closure code
that<00:28:36.559><c> drives</c><00:28:36.799><c> all</c><00:28:36.960><c> the</c><00:28:37.039><c> behavior</c><00:28:37.360><c> on</c><00:28:37.440><c> the</c><00:28:37.520><c> page</c>

00:28:37.750 --> 00:28:37.760 align:start position:0%
that drives all the behavior on the page
 

00:28:37.760 --> 00:28:39.110 align:start position:0%
that drives all the behavior on the page
we<00:28:37.919><c> just</c><00:28:38.080><c> saw</c>

00:28:39.110 --> 00:28:39.120 align:start position:0%
we just saw
 

00:28:39.120 --> 00:28:40.070 align:start position:0%
we just saw
i'm<00:28:39.200><c> going</c><00:28:39.279><c> to</c><00:28:39.360><c> walk</c><00:28:39.520><c> through</c><00:28:39.760><c> each</c><00:28:39.840><c> function</c>

00:28:40.070 --> 00:28:40.080 align:start position:0%
i'm going to walk through each function
 

00:28:40.080 --> 00:28:42.389 align:start position:0%
i'm going to walk through each function
there<00:28:40.240><c> are</c><00:28:40.320><c> these</c><00:28:40.480><c> five</c><00:28:40.720><c> functions</c>

00:28:42.389 --> 00:28:42.399 align:start position:0%
there are these five functions
 

00:28:42.399 --> 00:28:44.470 align:start position:0%
there are these five functions
and<00:28:42.880><c> explain</c><00:28:43.279><c> the</c><00:28:43.360><c> bits</c><00:28:43.679><c> of</c><00:28:43.840><c> flapjacks</c><00:28:44.399><c> that</c>

00:28:44.470 --> 00:28:44.480 align:start position:0%
and explain the bits of flapjacks that
 

00:28:44.480 --> 00:28:47.029 align:start position:0%
and explain the bits of flapjacks that
are<00:28:44.559><c> relevant</c><00:28:44.960><c> to</c><00:28:45.120><c> this</c><00:28:45.840><c> closure</c><00:28:46.159><c> script</c><00:28:46.960><c> the</c>

00:28:47.029 --> 00:28:47.039 align:start position:0%
are relevant to this closure script the
 

00:28:47.039 --> 00:28:48.389 align:start position:0%
are relevant to this closure script the
first<00:28:47.279><c> function</c><00:28:47.600><c> is</c><00:28:47.679><c> kind</c><00:28:47.840><c> of</c><00:28:47.919><c> a</c><00:28:48.000><c> helper</c>

00:28:48.389 --> 00:28:48.399 align:start position:0%
first function is kind of a helper
 

00:28:48.399 --> 00:28:50.630 align:start position:0%
first function is kind of a helper
function<00:28:48.720><c> called</c><00:28:48.960><c> parsefloat</c><00:28:50.000><c> that</c><00:28:50.240><c> takes</c><00:28:50.480><c> a</c>

00:28:50.630 --> 00:28:50.640 align:start position:0%
function called parsefloat that takes a
 

00:28:50.640 --> 00:28:53.110 align:start position:0%
function called parsefloat that takes a
string<00:28:51.200><c> and</c><00:28:51.360><c> a</c><00:28:51.440><c> default</c><00:28:51.840><c> value</c><00:28:52.480><c> to</c><00:28:52.640><c> return</c><00:28:53.039><c> in</c>

00:28:53.110 --> 00:28:53.120 align:start position:0%
string and a default value to return in
 

00:28:53.120 --> 00:28:54.870 align:start position:0%
string and a default value to return in
case<00:28:53.279><c> that</c><00:28:53.520><c> string</c><00:28:53.760><c> can't</c><00:28:54.000><c> be</c><00:28:54.159><c> parsed</c><00:28:54.640><c> as</c><00:28:54.799><c> a</c>

00:28:54.870 --> 00:28:54.880 align:start position:0%
case that string can't be parsed as a
 

00:28:54.880 --> 00:28:58.549 align:start position:0%
case that string can't be parsed as a
number<00:28:55.679><c> so</c><00:28:55.840><c> this</c><00:28:56.000><c> is</c><00:28:56.320><c> the</c><00:28:56.640><c> sort</c><00:28:56.799><c> of</c><00:28:56.960><c> guard</c><00:28:57.520><c> that</c>

00:28:58.549 --> 00:28:58.559 align:start position:0%
number so this is the sort of guard that
 

00:28:58.559 --> 00:28:59.909 align:start position:0%
number so this is the sort of guard that
percolates<00:28:59.039><c> a</c><00:28:59.120><c> number</c><00:28:59.360><c> through</c><00:28:59.600><c> the</c><00:28:59.679><c> event</c>

00:28:59.909 --> 00:28:59.919 align:start position:0%
percolates a number through the event
 

00:28:59.919 --> 00:29:01.669 align:start position:0%
percolates a number through the event
streams<00:29:00.399><c> if</c><00:29:00.559><c> there</c><00:29:00.720><c> isn't</c><00:29:00.960><c> an</c><00:29:01.120><c> input</c><00:29:01.440><c> in</c><00:29:01.520><c> the</c>

00:29:01.669 --> 00:29:01.679 align:start position:0%
streams if there isn't an input in the
 

00:29:01.679 --> 00:29:03.830 align:start position:0%
streams if there isn't an input in the
text<00:29:01.919><c> field</c><00:29:02.240><c> or</c><00:29:02.320><c> if</c><00:29:02.480><c> it's</c><00:29:02.559><c> a</c><00:29:02.640><c> string</c><00:29:02.960><c> that</c>

00:29:03.830 --> 00:29:03.840 align:start position:0%
text field or if it's a string that
 

00:29:03.840 --> 00:29:05.669 align:start position:0%
text field or if it's a string that
parsefloat<00:29:04.399><c> doesn't</c><00:29:04.720><c> doesn't</c><00:29:04.960><c> work</c><00:29:05.200><c> with</c><00:29:05.520><c> so</c>

00:29:05.669 --> 00:29:05.679 align:start position:0%
parsefloat doesn't doesn't work with so
 

00:29:05.679 --> 00:29:07.269 align:start position:0%
parsefloat doesn't doesn't work with so
that's<00:29:05.840><c> just</c><00:29:06.080><c> a</c><00:29:06.480><c> that's</c><00:29:06.720><c> just</c><00:29:06.880><c> a</c><00:29:06.960><c> simple</c>

00:29:07.269 --> 00:29:07.279 align:start position:0%
that's just a that's just a simple
 

00:29:07.279 --> 00:29:08.389 align:start position:0%
that's just a that's just a simple
function<00:29:07.600><c> there's</c><00:29:07.760><c> no</c><00:29:07.919><c> event</c><00:29:08.159><c> stuff</c>

00:29:08.389 --> 00:29:08.399 align:start position:0%
function there's no event stuff
 

00:29:08.399 --> 00:29:09.590 align:start position:0%
function there's no event stuff
happening

00:29:09.590 --> 00:29:09.600 align:start position:0%
happening
 

00:29:09.600 --> 00:29:10.710 align:start position:0%
happening
the<00:29:09.679><c> next</c><00:29:09.840><c> thing</c><00:29:10.000><c> we</c><00:29:10.080><c> do</c><00:29:10.240><c> is</c><00:29:10.320><c> define</c><00:29:10.640><c> a</c>

00:29:10.710 --> 00:29:10.720 align:start position:0%
the next thing we do is define a
 

00:29:10.720 --> 00:29:13.590 align:start position:0%
the next thing we do is define a
function<00:29:11.120><c> called</c><00:29:11.760><c> extract</c><00:29:12.480><c> number</c><00:29:12.880><c> e</c><00:29:13.440><c> and</c>

00:29:13.590 --> 00:29:13.600 align:start position:0%
function called extract number e and
 

00:29:13.600 --> 00:29:14.630 align:start position:0%
function called extract number e and
you'll<00:29:13.760><c> see</c><00:29:13.919><c> this</c><00:29:14.080><c> when</c><00:29:14.159><c> you're</c><00:29:14.320><c> working</c><00:29:14.559><c> with</c>

00:29:14.630 --> 00:29:14.640 align:start position:0%
you'll see this when you're working with
 

00:29:14.640 --> 00:29:16.470 align:start position:0%
you'll see this when you're working with
flapjacks<00:29:15.279><c> this</c><00:29:15.440><c> convention</c><00:29:15.840><c> of</c><00:29:15.919><c> the</c><00:29:16.080><c> capital</c>

00:29:16.470 --> 00:29:16.480 align:start position:0%
flapjacks this convention of the capital
 

00:29:16.480 --> 00:29:17.750 align:start position:0%
flapjacks this convention of the capital
e<00:29:16.720><c> at</c><00:29:16.799><c> the</c><00:29:16.960><c> end</c>

00:29:17.750 --> 00:29:17.760 align:start position:0%
e at the end
 

00:29:17.760 --> 00:29:19.190 align:start position:0%
e at the end
that's<00:29:18.000><c> the</c><00:29:18.159><c> convention</c><00:29:18.559><c> for</c><00:29:18.720><c> a</c><00:29:18.880><c> function</c>

00:29:19.190 --> 00:29:19.200 align:start position:0%
that's the convention for a function
 

00:29:19.200 --> 00:29:21.190 align:start position:0%
that's the convention for a function
that<00:29:19.360><c> returns</c><00:29:19.840><c> an</c><00:29:20.000><c> event</c><00:29:20.320><c> stream</c><00:29:20.799><c> object</c>

00:29:21.190 --> 00:29:21.200 align:start position:0%
that returns an event stream object
 

00:29:21.200 --> 00:29:23.590 align:start position:0%
that returns an event stream object
where<00:29:21.440><c> an</c><00:29:21.520><c> event</c><00:29:21.760><c> stream</c><00:29:22.640><c> is</c><00:29:22.880><c> an</c><00:29:23.039><c> object</c>

00:29:23.590 --> 00:29:23.600 align:start position:0%
where an event stream is an object
 

00:29:23.600 --> 00:29:25.350 align:start position:0%
where an event stream is an object
that's<00:29:23.840><c> part</c><00:29:24.000><c> of</c><00:29:24.080><c> the</c><00:29:24.159><c> flapjacks</c>

00:29:25.350 --> 00:29:25.360 align:start position:0%
that's part of the flapjacks
 

00:29:25.360 --> 00:29:27.669 align:start position:0%
that's part of the flapjacks
api

00:29:27.669 --> 00:29:27.679 align:start position:0%
api
 

00:29:27.679 --> 00:29:30.310 align:start position:0%
api
that<00:29:27.919><c> represents</c><00:29:28.320><c> a</c><00:29:28.399><c> stream</c><00:29:28.720><c> of</c><00:29:28.799><c> events</c>

00:29:30.310 --> 00:29:30.320 align:start position:0%
that represents a stream of events
 

00:29:30.320 --> 00:29:32.549 align:start position:0%
that represents a stream of events
so<00:29:30.640><c> here</c><00:29:31.200><c> we're</c><00:29:31.520><c> creating</c><00:29:32.000><c> a</c><00:29:32.159><c> stream</c><00:29:32.399><c> of</c>

00:29:32.549 --> 00:29:32.559 align:start position:0%
so here we're creating a stream of
 

00:29:32.559 --> 00:29:36.230 align:start position:0%
so here we're creating a stream of
events<00:29:32.960><c> that's</c><00:29:33.279><c> backed</c><00:29:33.679><c> by</c><00:29:34.000><c> an</c><00:29:34.159><c> html</c>

00:29:36.230 --> 00:29:36.240 align:start position:0%
events that's backed by an html
 

00:29:36.240 --> 00:29:39.110 align:start position:0%
events that's backed by an html
element<00:29:37.039><c> with</c><00:29:37.200><c> the</c><00:29:37.360><c> id</c><00:29:37.919><c> id</c>

00:29:39.110 --> 00:29:39.120 align:start position:0%
element with the id id
 

00:29:39.120 --> 00:29:41.269 align:start position:0%
element with the id id
we're<00:29:39.360><c> using</c><00:29:39.679><c> flapjacks's</c>

00:29:41.269 --> 00:29:41.279 align:start position:0%
we're using flapjacks's
 

00:29:41.279 --> 00:29:43.909 align:start position:0%
we're using flapjacks's
map<00:29:42.000><c> which</c><00:29:42.320><c> is</c><00:29:42.799><c> specialized</c><00:29:43.440><c> for</c><00:29:43.600><c> mapping</c>

00:29:43.909 --> 00:29:43.919 align:start position:0%
map which is specialized for mapping
 

00:29:43.919 --> 00:29:45.110 align:start position:0%
map which is specialized for mapping
over<00:29:44.159><c> events</c>

00:29:45.110 --> 00:29:45.120 align:start position:0%
over events
 

00:29:45.120 --> 00:29:46.789 align:start position:0%
over events
and<00:29:45.279><c> we're</c><00:29:45.440><c> mapping</c><00:29:45.840><c> over</c><00:29:46.080><c> each</c><00:29:46.320><c> event</c><00:29:46.559><c> with</c>

00:29:46.789 --> 00:29:46.799 align:start position:0%
and we're mapping over each event with
 

00:29:46.799 --> 00:29:48.070 align:start position:0%
and we're mapping over each event with
parse<00:29:47.120><c> float</c>

00:29:48.070 --> 00:29:48.080 align:start position:0%
parse float
 

00:29:48.080 --> 00:29:50.870 align:start position:0%
parse float
so<00:29:48.240><c> every</c><00:29:48.480><c> time</c><00:29:48.960><c> the</c><00:29:49.120><c> html</c><00:29:50.159><c> element</c><00:29:50.640><c> we</c>

00:29:50.870 --> 00:29:50.880 align:start position:0%
so every time the html element we
 

00:29:50.880 --> 00:29:53.110 align:start position:0%
so every time the html element we
specify<00:29:51.679><c> generates</c><00:29:52.080><c> an</c><00:29:52.240><c> event</c><00:29:52.559><c> like</c><00:29:52.880><c> has</c><00:29:53.039><c> a</c>

00:29:53.110 --> 00:29:53.120 align:start position:0%
specify generates an event like has a
 

00:29:53.120 --> 00:29:56.870 align:start position:0%
specify generates an event like has a
new<00:29:53.279><c> value</c><00:29:54.080><c> we</c><00:29:54.480><c> run</c><00:29:54.720><c> parse</c><00:29:55.039><c> float</c><00:29:55.360><c> on</c><00:29:55.520><c> it</c><00:29:55.840><c> and</c>

00:29:56.870 --> 00:29:56.880 align:start position:0%
new value we run parse float on it and
 

00:29:56.880 --> 00:29:58.470 align:start position:0%
new value we run parse float on it and
then<00:29:57.120><c> that</c><00:29:57.360><c> gets</c><00:29:57.600><c> applied</c><00:29:57.840><c> to</c><00:29:58.000><c> whoever</c><00:29:58.320><c> is</c>

00:29:58.470 --> 00:29:58.480 align:start position:0%
then that gets applied to whoever is
 

00:29:58.480 --> 00:30:00.549 align:start position:0%
then that gets applied to whoever is
consuming<00:29:58.960><c> the</c><00:29:59.039><c> stream</c>

00:30:00.549 --> 00:30:00.559 align:start position:0%
consuming the stream
 

00:30:00.559 --> 00:30:02.950 align:start position:0%
consuming the stream
the<00:30:00.720><c> next</c><00:30:00.880><c> thing</c><00:30:01.039><c> we</c><00:30:01.200><c> do</c><00:30:01.520><c> is</c><00:30:01.840><c> define</c><00:30:02.559><c> what</c><00:30:02.880><c> in</c>

00:30:02.950 --> 00:30:02.960 align:start position:0%
the next thing we do is define what in
 

00:30:02.960 --> 00:30:05.430 align:start position:0%
the next thing we do is define what in
flapjacks<00:30:03.600><c> is</c><00:30:03.679><c> a</c><00:30:03.840><c> behavior</c><00:30:04.559><c> so</c><00:30:05.039><c> things</c><00:30:05.279><c> that</c>

00:30:05.430 --> 00:30:05.440 align:start position:0%
flapjacks is a behavior so things that
 

00:30:05.440 --> 00:30:07.269 align:start position:0%
flapjacks is a behavior so things that
end<00:30:05.600><c> in</c><00:30:05.679><c> capital</c><00:30:06.000><c> e</c><00:30:06.240><c> are</c><00:30:06.320><c> event</c><00:30:06.640><c> streams</c>

00:30:07.269 --> 00:30:07.279 align:start position:0%
end in capital e are event streams
 

00:30:07.279 --> 00:30:08.870 align:start position:0%
end in capital e are event streams
things<00:30:07.520><c> that</c><00:30:07.679><c> end</c><00:30:07.840><c> in</c><00:30:07.919><c> capital</c><00:30:08.320><c> b</c><00:30:08.559><c> are</c><00:30:08.640><c> called</c>

00:30:08.870 --> 00:30:08.880 align:start position:0%
things that end in capital b are called
 

00:30:08.880 --> 00:30:11.909 align:start position:0%
things that end in capital b are called
behaviors<00:30:09.440><c> in</c><00:30:09.520><c> flapjacks</c><00:30:10.159><c> world</c>

00:30:11.909 --> 00:30:11.919 align:start position:0%
behaviors in flapjacks world
 

00:30:11.919 --> 00:30:14.389 align:start position:0%
behaviors in flapjacks world
these<00:30:12.399><c> are</c><00:30:12.720><c> those</c><00:30:13.120><c> time</c><00:30:13.440><c> varying</c><00:30:13.919><c> values</c><00:30:14.320><c> that</c>

00:30:14.389 --> 00:30:14.399 align:start position:0%
these are those time varying values that
 

00:30:14.399 --> 00:30:16.310 align:start position:0%
these are those time varying values that
i<00:30:14.480><c> was</c><00:30:14.640><c> talking</c><00:30:14.960><c> about</c><00:30:15.440><c> and</c><00:30:15.760><c> the</c><00:30:15.919><c> difference</c>

00:30:16.310 --> 00:30:16.320 align:start position:0%
i was talking about and the difference
 

00:30:16.320 --> 00:30:18.470 align:start position:0%
i was talking about and the difference
they<00:30:16.399><c> have</c><00:30:16.640><c> with</c><00:30:16.799><c> event</c><00:30:17.120><c> streams</c><00:30:17.520><c> is</c><00:30:17.919><c> they</c>

00:30:18.470 --> 00:30:18.480 align:start position:0%
they have with event streams is they
 

00:30:18.480 --> 00:30:20.310 align:start position:0%
they have with event streams is they
represent<00:30:18.880><c> a</c><00:30:18.960><c> value</c><00:30:19.360><c> even</c><00:30:19.600><c> if</c><00:30:19.760><c> an</c><00:30:19.919><c> event</c><00:30:20.159><c> has</c>

00:30:20.310 --> 00:30:20.320 align:start position:0%
represent a value even if an event has
 

00:30:20.320 --> 00:30:23.029 align:start position:0%
represent a value even if an event has
not<00:30:20.480><c> yet</c><00:30:20.720><c> been</c><00:30:20.960><c> fired</c><00:30:21.520><c> so</c><00:30:21.679><c> for</c><00:30:21.919><c> instance</c>

00:30:23.029 --> 00:30:23.039 align:start position:0%
not yet been fired so for instance
 

00:30:23.039 --> 00:30:24.389 align:start position:0%
not yet been fired so for instance
when<00:30:23.200><c> i</c><00:30:23.279><c> opened</c><00:30:23.520><c> the</c><00:30:23.600><c> page</c><00:30:23.840><c> i</c><00:30:23.919><c> didn't</c><00:30:24.080><c> get</c><00:30:24.240><c> any</c>

00:30:24.389 --> 00:30:24.399 align:start position:0%
when i opened the page i didn't get any
 

00:30:24.399 --> 00:30:26.070 align:start position:0%
when i opened the page i didn't get any
errors<00:30:24.720><c> or</c><00:30:24.799><c> anything</c><00:30:25.200><c> that's</c><00:30:25.520><c> because</c><00:30:25.919><c> the</c>

00:30:26.070 --> 00:30:26.080 align:start position:0%
errors or anything that's because the
 

00:30:26.080 --> 00:30:27.830 align:start position:0%
errors or anything that's because the
inputs<00:30:26.480><c> are</c><00:30:26.559><c> behaviors</c><00:30:27.360><c> and</c><00:30:27.520><c> i</c><00:30:27.600><c> had</c><00:30:27.760><c> the</c>

00:30:27.830 --> 00:30:27.840 align:start position:0%
inputs are behaviors and i had the
 

00:30:27.840 --> 00:30:30.310 align:start position:0%
inputs are behaviors and i had the
ability<00:30:28.159><c> to</c><00:30:28.320><c> specify</c><00:30:28.799><c> a</c><00:30:28.880><c> default</c><00:30:29.200><c> value</c><00:30:29.679><c> so</c>

00:30:30.310 --> 00:30:30.320 align:start position:0%
ability to specify a default value so
 

00:30:30.320 --> 00:30:31.909 align:start position:0%
ability to specify a default value so
what<00:30:30.559><c> is</c><00:30:30.640><c> the</c><00:30:30.720><c> value</c><00:30:31.039><c> of</c><00:30:31.120><c> this</c><00:30:31.279><c> thing</c><00:30:31.520><c> before</c>

00:30:31.909 --> 00:30:31.919 align:start position:0%
what is the value of this thing before
 

00:30:31.919 --> 00:30:33.830 align:start position:0%
what is the value of this thing before
anybody<00:30:32.240><c> has</c><00:30:32.399><c> fired</c><00:30:32.720><c> an</c><00:30:32.880><c> event</c><00:30:33.200><c> on</c><00:30:33.440><c> it</c><00:30:33.600><c> that's</c>

00:30:33.830 --> 00:30:33.840 align:start position:0%
anybody has fired an event on it that's
 

00:30:33.840 --> 00:30:36.389 align:start position:0%
anybody has fired an event on it that's
what<00:30:33.919><c> a</c><00:30:34.000><c> behavior</c><00:30:34.480><c> is</c>

00:30:36.389 --> 00:30:36.399 align:start position:0%
what a behavior is
 

00:30:36.399 --> 00:30:38.149 align:start position:0%
what a behavior is
and<00:30:36.480><c> then</c><00:30:36.640><c> finally</c><00:30:37.200><c> now</c><00:30:37.440><c> that</c><00:30:37.679><c> we</c><00:30:37.919><c> have</c>

00:30:38.149 --> 00:30:38.159 align:start position:0%
and then finally now that we have
 

00:30:38.159 --> 00:30:39.830 align:start position:0%
and then finally now that we have
expressed<00:30:38.640><c> all</c><00:30:38.720><c> of</c><00:30:38.880><c> the</c><00:30:38.960><c> inputs</c><00:30:39.360><c> on</c><00:30:39.440><c> our</c><00:30:39.520><c> page</c>

00:30:39.830 --> 00:30:39.840 align:start position:0%
expressed all of the inputs on our page
 

00:30:39.840 --> 00:30:41.830 align:start position:0%
expressed all of the inputs on our page
in<00:30:40.000><c> terms</c><00:30:40.320><c> of</c><00:30:40.640><c> behaviors</c>

00:30:41.830 --> 00:30:41.840 align:start position:0%
in terms of behaviors
 

00:30:41.840 --> 00:30:44.230 align:start position:0%
in terms of behaviors
we<00:30:42.000><c> can</c><00:30:42.159><c> start</c><00:30:42.320><c> to</c><00:30:42.480><c> compose</c><00:30:43.039><c> behaviors</c><00:30:43.919><c> and</c>

00:30:44.230 --> 00:30:44.240 align:start position:0%
we can start to compose behaviors and
 

00:30:44.240 --> 00:30:46.230 align:start position:0%
we can start to compose behaviors and
this<00:30:44.480><c> is</c><00:30:44.640><c> the</c><00:30:44.720><c> kind</c><00:30:44.880><c> of</c><00:30:44.960><c> composition</c><00:30:45.919><c> that</c><00:30:46.080><c> you</c>

00:30:46.230 --> 00:30:46.240 align:start position:0%
this is the kind of composition that you
 

00:30:46.240 --> 00:30:48.070 align:start position:0%
this is the kind of composition that you
just<00:30:46.880><c> there</c><00:30:47.039><c> are</c><00:30:47.120><c> no</c><00:30:47.279><c> means</c><00:30:47.520><c> of</c><00:30:47.600><c> composition</c>

00:30:48.070 --> 00:30:48.080 align:start position:0%
just there are no means of composition
 

00:30:48.080 --> 00:30:48.950 align:start position:0%
just there are no means of composition
no

00:30:48.950 --> 00:30:48.960 align:start position:0%
no
 

00:30:48.960 --> 00:30:51.029 align:start position:0%
no
legitimate<00:30:49.600><c> same</c><00:30:50.080><c> means</c><00:30:50.320><c> of</c><00:30:50.399><c> composition</c><00:30:50.880><c> for</c>

00:30:51.029 --> 00:30:51.039 align:start position:0%
legitimate same means of composition for
 

00:30:51.039 --> 00:30:53.350 align:start position:0%
legitimate same means of composition for
callbacks<00:30:51.600><c> or</c><00:30:51.760><c> watches</c>

00:30:53.350 --> 00:30:53.360 align:start position:0%
callbacks or watches
 

00:30:53.360 --> 00:30:54.789 align:start position:0%
callbacks or watches
so<00:30:53.520><c> this</c><00:30:53.760><c> is</c><00:30:53.840><c> where</c><00:30:54.000><c> we</c><00:30:54.080><c> start</c><00:30:54.240><c> to</c><00:30:54.399><c> really</c><00:30:54.559><c> reap</c>

00:30:54.789 --> 00:30:54.799 align:start position:0%
so this is where we start to really reap
 

00:30:54.799 --> 00:30:56.630 align:start position:0%
so this is where we start to really reap
the<00:30:54.880><c> benefits</c><00:30:55.279><c> of</c><00:30:55.360><c> working</c><00:30:55.600><c> with</c><00:30:55.679><c> behaviors</c>

00:30:56.630 --> 00:30:56.640 align:start position:0%
the benefits of working with behaviors
 

00:30:56.640 --> 00:30:57.830 align:start position:0%
the benefits of working with behaviors
because<00:30:56.880><c> here</c><00:30:57.039><c> we're</c><00:30:57.200><c> defining</c><00:30:57.600><c> a</c><00:30:57.679><c> thing</c>

00:30:57.830 --> 00:30:57.840 align:start position:0%
because here we're defining a thing
 

00:30:57.840 --> 00:31:00.389 align:start position:0%
because here we're defining a thing
called<00:30:58.159><c> sum</c><00:30:58.480><c> b</c><00:30:59.120><c> which</c><00:30:59.360><c> is</c><00:30:59.520><c> a</c><00:30:59.600><c> function</c><00:31:00.080><c> of</c><00:31:00.159><c> one</c>

00:31:00.389 --> 00:31:00.399 align:start position:0%
called sum b which is a function of one
 

00:31:00.399 --> 00:31:02.830 align:start position:0%
called sum b which is a function of one
or<00:31:00.480><c> more</c><00:31:00.880><c> or</c><00:31:01.120><c> zero</c><00:31:01.360><c> or</c><00:31:01.520><c> more</c>

00:31:02.830 --> 00:31:02.840 align:start position:0%
or more or zero or more
 

00:31:02.840 --> 00:31:05.669 align:start position:0%
or more or zero or more
behaviors<00:31:03.919><c> that</c><00:31:04.399><c> allows</c><00:31:04.799><c> us</c><00:31:04.880><c> to</c><00:31:05.039><c> apply</c><00:31:05.520><c> a</c>

00:31:05.669 --> 00:31:05.679 align:start position:0%
behaviors that allows us to apply a
 

00:31:05.679 --> 00:31:08.310 align:start position:0%
behaviors that allows us to apply a
function<00:31:06.559><c> to</c><00:31:06.720><c> the</c><00:31:06.880><c> snapshot</c><00:31:07.520><c> values</c><00:31:07.919><c> of</c><00:31:08.080><c> those</c>

00:31:08.310 --> 00:31:08.320 align:start position:0%
function to the snapshot values of those
 

00:31:08.320 --> 00:31:10.470 align:start position:0%
function to the snapshot values of those
behaviors<00:31:09.279><c> together</c><00:31:09.760><c> and</c><00:31:09.840><c> then</c><00:31:10.000><c> return</c>

00:31:10.470 --> 00:31:10.480 align:start position:0%
behaviors together and then return
 

00:31:10.480 --> 00:31:12.070 align:start position:0%
behaviors together and then return
another<00:31:10.880><c> behavior</c>

00:31:12.070 --> 00:31:12.080 align:start position:0%
another behavior
 

00:31:12.080 --> 00:31:13.430 align:start position:0%
another behavior
so<00:31:12.240><c> we're</c><00:31:12.399><c> looking</c><00:31:12.640><c> at</c><00:31:12.720><c> a</c><00:31:12.799><c> system</c><00:31:13.200><c> where</c><00:31:13.360><c> we</c>

00:31:13.430 --> 00:31:13.440 align:start position:0%
so we're looking at a system where we
 

00:31:13.440 --> 00:31:15.190 align:start position:0%
so we're looking at a system where we
have<00:31:13.679><c> inputs</c><00:31:14.240><c> we</c><00:31:14.399><c> lift</c><00:31:14.640><c> them</c><00:31:14.799><c> up</c><00:31:14.960><c> to</c><00:31:15.039><c> this</c>

00:31:15.190 --> 00:31:15.200 align:start position:0%
have inputs we lift them up to this
 

00:31:15.200 --> 00:31:17.269 align:start position:0%
have inputs we lift them up to this
flapjacks<00:31:15.840><c> behavior</c><00:31:16.240><c> level</c><00:31:16.799><c> and</c><00:31:16.960><c> now</c><00:31:17.120><c> we</c><00:31:17.200><c> can</c>

00:31:17.269 --> 00:31:17.279 align:start position:0%
flapjacks behavior level and now we can
 

00:31:17.279 --> 00:31:19.190 align:start position:0%
flapjacks behavior level and now we can
define<00:31:17.679><c> new</c><00:31:17.840><c> behaviors</c><00:31:18.480><c> expressed</c><00:31:18.880><c> in</c><00:31:18.960><c> terms</c>

00:31:19.190 --> 00:31:19.200 align:start position:0%
define new behaviors expressed in terms
 

00:31:19.200 --> 00:31:21.269 align:start position:0%
define new behaviors expressed in terms
of<00:31:19.360><c> existing</c><00:31:19.760><c> behaviors</c><00:31:20.559><c> that</c><00:31:20.799><c> are</c><00:31:20.960><c> totally</c>

00:31:21.269 --> 00:31:21.279 align:start position:0%
of existing behaviors that are totally
 

00:31:21.279 --> 00:31:24.789 align:start position:0%
of existing behaviors that are totally
general<00:31:21.760><c> and</c><00:31:21.919><c> not</c><00:31:22.159><c> coupled</c><00:31:22.480><c> to</c><00:31:22.720><c> even</c><00:31:22.960><c> the</c><00:31:23.120><c> dom</c>

00:31:24.789 --> 00:31:24.799 align:start position:0%
general and not coupled to even the dom
 

00:31:24.799 --> 00:31:27.029 align:start position:0%
general and not coupled to even the dom
lastly<00:31:25.200><c> we</c><00:31:25.360><c> have</c><00:31:25.440><c> a</c><00:31:25.520><c> function</c><00:31:25.919><c> calculate</c><00:31:26.799><c> and</c>

00:31:27.029 --> 00:31:27.039 align:start position:0%
lastly we have a function calculate and
 

00:31:27.039 --> 00:31:28.549 align:start position:0%
lastly we have a function calculate and
this<00:31:27.200><c> is</c><00:31:27.279><c> what</c><00:31:27.520><c> actually</c><00:31:28.000><c> does</c><00:31:28.240><c> all</c><00:31:28.399><c> the</c>

00:31:28.549 --> 00:31:28.559 align:start position:0%
this is what actually does all the
 

00:31:28.559 --> 00:31:30.710 align:start position:0%
this is what actually does all the
wiring<00:31:29.039><c> and</c><00:31:29.520><c> and</c><00:31:29.760><c> causes</c><00:31:30.159><c> things</c><00:31:30.320><c> to</c><00:31:30.480><c> happen</c>

00:31:30.710 --> 00:31:30.720 align:start position:0%
wiring and and causes things to happen
 

00:31:30.720 --> 00:31:32.549 align:start position:0%
wiring and and causes things to happen
when<00:31:30.880><c> we</c><00:31:30.960><c> load</c><00:31:31.200><c> the</c><00:31:31.279><c> page</c><00:31:31.600><c> up</c><00:31:32.159><c> but</c><00:31:32.320><c> it's</c><00:31:32.480><c> a</c>

00:31:32.549 --> 00:31:32.559 align:start position:0%
when we load the page up but it's a
 

00:31:32.559 --> 00:31:34.310 align:start position:0%
when we load the page up but it's a
function<00:31:32.880><c> that</c><00:31:32.960><c> takes</c><00:31:33.200><c> a</c><00:31:33.279><c> target</c><00:31:33.600><c> id</c><00:31:34.000><c> place</c><00:31:34.159><c> to</c>

00:31:34.310 --> 00:31:34.320 align:start position:0%
function that takes a target id place to
 

00:31:34.320 --> 00:31:37.269 align:start position:0%
function that takes a target id place to
put<00:31:34.480><c> the</c><00:31:34.559><c> sum</c><00:31:35.279><c> and</c><00:31:35.520><c> some</c><00:31:35.679><c> source</c><00:31:36.000><c> ids</c>

00:31:37.269 --> 00:31:37.279 align:start position:0%
put the sum and some source ids
 

00:31:37.279 --> 00:31:39.430 align:start position:0%
put the sum and some source ids
and<00:31:37.440><c> here</c><00:31:37.679><c> we</c><00:31:37.840><c> map</c><00:31:38.080><c> our</c><00:31:38.240><c> extract</c><00:31:38.799><c> number</c><00:31:39.120><c> b</c>

00:31:39.430 --> 00:31:39.440 align:start position:0%
and here we map our extract number b
 

00:31:39.440 --> 00:31:41.269 align:start position:0%
and here we map our extract number b
over<00:31:39.600><c> the</c><00:31:39.679><c> source</c><00:31:40.000><c> ids</c>

00:31:41.269 --> 00:31:41.279 align:start position:0%
over the source ids
 

00:31:41.279 --> 00:31:44.870 align:start position:0%
over the source ids
actually<00:31:41.600><c> i'm</c><00:31:41.760><c> going</c><00:31:41.840><c> to</c><00:31:42.080><c> flip</c><00:31:42.399><c> open</c><00:31:42.720><c> the</c>

00:31:44.870 --> 00:31:44.880 align:start position:0%
actually i'm going to flip open the
 

00:31:44.880 --> 00:31:47.990 align:start position:0%
actually i'm going to flip open the
html<00:31:45.519><c> going</c><00:31:45.679><c> on</c><00:31:45.919><c> here</c>

00:31:47.990 --> 00:31:48.000 align:start position:0%
html going on here
 

00:31:48.000 --> 00:31:49.830 align:start position:0%
html going on here
so<00:31:48.240><c> i</c><00:31:48.320><c> have</c><00:31:48.480><c> an</c><00:31:48.640><c> onload</c><00:31:49.120><c> which</c><00:31:49.360><c> calls</c><00:31:49.679><c> my</c>

00:31:49.830 --> 00:31:49.840 align:start position:0%
so i have an onload which calls my
 

00:31:49.840 --> 00:31:52.070 align:start position:0%
so i have an onload which calls my
closure<00:31:50.159><c> script</c><00:31:50.399><c> function</c><00:31:50.880><c> with</c><00:31:51.440><c> the</c><00:31:51.600><c> id</c><00:31:51.840><c> of</c>

00:31:52.070 --> 00:31:52.080 align:start position:0%
closure script function with the id of
 

00:31:52.080 --> 00:31:54.149 align:start position:0%
closure script function with the id of
the<00:31:52.159><c> thing</c><00:31:52.399><c> to</c><00:31:52.480><c> put</c><00:31:52.640><c> the</c><00:31:53.039><c> results</c><00:31:53.519><c> and</c><00:31:53.760><c> the</c><00:31:53.919><c> id</c>

00:31:54.149 --> 00:31:54.159 align:start position:0%
the thing to put the results and the id
 

00:31:54.159 --> 00:31:55.590 align:start position:0%
the thing to put the results and the id
of<00:31:54.240><c> the</c><00:31:54.399><c> inputs</c><00:31:55.039><c> and</c><00:31:55.120><c> then</c><00:31:55.279><c> here</c><00:31:55.440><c> are</c><00:31:55.519><c> the</c>

00:31:55.590 --> 00:31:55.600 align:start position:0%
of the inputs and then here are the
 

00:31:55.600 --> 00:32:00.389 align:start position:0%
of the inputs and then here are the
inputs<00:31:55.919><c> down</c><00:31:56.159><c> here</c>

00:32:00.389 --> 00:32:00.399 align:start position:0%
 
 

00:32:00.399 --> 00:32:02.310 align:start position:0%
 
so<00:32:00.720><c> this</c><00:32:00.880><c> function</c><00:32:01.200><c> takes</c><00:32:01.440><c> the</c><00:32:01.600><c> ids</c><00:32:02.000><c> wires</c>

00:32:02.310 --> 00:32:02.320 align:start position:0%
so this function takes the ids wires
 

00:32:02.320 --> 00:32:04.310 align:start position:0%
so this function takes the ids wires
them<00:32:02.559><c> together</c><00:32:03.200><c> and</c><00:32:03.279><c> then</c><00:32:03.440><c> we're</c><00:32:03.679><c> using</c><00:32:04.080><c> uh</c>

00:32:04.310 --> 00:32:04.320 align:start position:0%
them together and then we're using uh
 

00:32:04.320 --> 00:32:05.669 align:start position:0%
them together and then we're using uh
one<00:32:04.480><c> of</c><00:32:04.559><c> the</c><00:32:04.799><c> few</c>

00:32:05.669 --> 00:32:05.679 align:start position:0%
one of the few
 

00:32:05.679 --> 00:32:07.990 align:start position:0%
one of the few
i<00:32:05.919><c> o</c><00:32:06.080><c> functions</c><00:32:06.480><c> that</c><00:32:06.559><c> comes</c><00:32:06.799><c> with</c><00:32:06.960><c> flapjacks</c>

00:32:07.990 --> 00:32:08.000 align:start position:0%
i o functions that comes with flapjacks
 

00:32:08.000 --> 00:32:10.149 align:start position:0%
i o functions that comes with flapjacks
which<00:32:08.480><c> is</c><00:32:08.640><c> a</c><00:32:08.720><c> function</c><00:32:09.039><c> called</c><00:32:09.279><c> insert</c><00:32:09.760><c> value</c>

00:32:10.149 --> 00:32:10.159 align:start position:0%
which is a function called insert value
 

00:32:10.159 --> 00:32:12.070 align:start position:0%
which is a function called insert value
b<00:32:10.399><c> which</c><00:32:10.559><c> will</c><00:32:10.720><c> continue</c><00:32:11.360><c> continuously</c>

00:32:12.070 --> 00:32:12.080 align:start position:0%
b which will continue continuously
 

00:32:12.080 --> 00:32:14.870 align:start position:0%
b which will continue continuously
update<00:32:12.799><c> an</c><00:32:13.039><c> attribute</c><00:32:13.600><c> at</c><00:32:13.840><c> an</c><00:32:14.000><c> html</c><00:32:14.559><c> element</c>

00:32:14.870 --> 00:32:14.880 align:start position:0%
update an attribute at an html element
 

00:32:14.880 --> 00:32:16.789 align:start position:0%
update an attribute at an html element
of<00:32:15.039><c> your</c><00:32:15.200><c> choosing</c><00:32:15.679><c> with</c><00:32:15.840><c> a</c><00:32:15.919><c> value</c><00:32:16.399><c> given</c><00:32:16.720><c> a</c>

00:32:16.789 --> 00:32:16.799 align:start position:0%
of your choosing with a value given a
 

00:32:16.799 --> 00:32:18.389 align:start position:0%
of your choosing with a value given a
behavior<00:32:17.200><c> and</c><00:32:17.279><c> there's</c><00:32:17.519><c> also</c><00:32:17.760><c> an</c><00:32:18.080><c> insert</c>

00:32:18.389 --> 00:32:18.399 align:start position:0%
behavior and there's also an insert
 

00:32:18.399 --> 00:32:20.230 align:start position:0%
behavior and there's also an insert
value<00:32:18.640><c> e</c><00:32:18.960><c> to</c><00:32:19.120><c> do</c><00:32:19.200><c> the</c><00:32:19.279><c> same</c><00:32:19.440><c> thing</c><00:32:19.600><c> with</c><00:32:19.760><c> event</c>

00:32:20.230 --> 00:32:20.240 align:start position:0%
value e to do the same thing with event
 

00:32:20.240 --> 00:32:24.789 align:start position:0%
value e to do the same thing with event
streams

00:32:24.789 --> 00:32:24.799 align:start position:0%
 
 

00:32:24.799 --> 00:32:27.269 align:start position:0%
 
so<00:32:24.960><c> that's</c><00:32:25.279><c> pretty</c><00:32:25.600><c> much</c><00:32:26.000><c> it</c>

00:32:27.269 --> 00:32:27.279 align:start position:0%
so that's pretty much it
 

00:32:27.279 --> 00:32:28.549 align:start position:0%
so that's pretty much it
i've<00:32:27.519><c> like</c><00:32:27.679><c> been</c><00:32:27.840><c> out</c><00:32:27.919><c> of</c><00:32:28.000><c> time</c><00:32:28.159><c> for</c><00:32:28.320><c> almost</c>

00:32:28.549 --> 00:32:28.559 align:start position:0%
i've like been out of time for almost
 

00:32:28.559 --> 00:32:30.630 align:start position:0%
i've like been out of time for almost
two<00:32:28.720><c> hours</c><00:32:28.880><c> now</c><00:32:29.039><c> according</c><00:32:29.360><c> to</c><00:32:29.440><c> that</c><00:32:29.600><c> thing</c>

00:32:30.630 --> 00:32:30.640 align:start position:0%
two hours now according to that thing
 

00:32:30.640 --> 00:32:32.070 align:start position:0%
two hours now according to that thing
um

00:32:32.070 --> 00:32:32.080 align:start position:0%
um
 

00:32:32.080 --> 00:32:33.509 align:start position:0%
um
so<00:32:32.399><c> i</c><00:32:32.480><c> guess</c><00:32:32.640><c> i'll</c><00:32:32.799><c> just</c><00:32:32.960><c> stop</c><00:32:33.120><c> and</c><00:32:33.200><c> respect</c>

00:32:33.509 --> 00:32:33.519 align:start position:0%
so i guess i'll just stop and respect
 

00:32:33.519 --> 00:32:36.070 align:start position:0%
so i guess i'll just stop and respect
people's<00:32:33.760><c> time</c><00:32:34.399><c> um</c><00:32:35.039><c> needless</c><00:32:35.360><c> to</c><00:32:35.519><c> say</c><00:32:35.760><c> there's</c>

00:32:36.070 --> 00:32:36.080 align:start position:0%
people's time um needless to say there's
 

00:32:36.080 --> 00:32:38.070 align:start position:0%
people's time um needless to say there's
a<00:32:36.399><c> lot</c><00:32:36.559><c> of</c><00:32:36.640><c> fun</c><00:32:36.799><c> stuff</c><00:32:36.960><c> to</c><00:32:37.120><c> do</c><00:32:37.200><c> with</c><00:32:37.279><c> events</c><00:32:37.760><c> and</c>

00:32:38.070 --> 00:32:38.080 align:start position:0%
a lot of fun stuff to do with events and
 

00:32:38.080 --> 00:32:39.269 align:start position:0%
a lot of fun stuff to do with events and
i'm<00:32:38.240><c> working</c><00:32:38.399><c> on</c><00:32:38.480><c> a</c><00:32:38.559><c> closure</c><00:32:38.799><c> script</c><00:32:39.039><c> board</c><00:32:39.200><c> if</c>

00:32:39.269 --> 00:32:39.279 align:start position:0%
i'm working on a closure script board if
 

00:32:39.279 --> 00:32:40.870 align:start position:0%
i'm working on a closure script board if
you<00:32:39.360><c> want</c><00:32:39.440><c> to</c><00:32:39.519><c> talk</c><00:32:39.679><c> about</c><00:32:39.919><c> it</c>

00:32:40.870 --> 00:32:40.880 align:start position:0%
you want to talk about it
 

00:32:40.880 --> 00:32:41.830 align:start position:0%
you want to talk about it
i<00:32:40.960><c> think</c><00:32:41.120><c> it's</c><00:32:41.200><c> a</c><00:32:41.279><c> general</c><00:32:41.600><c> purpose</c>

00:32:41.830 --> 00:32:41.840 align:start position:0%
i think it's a general purpose
 

00:32:41.840 --> 00:32:43.190 align:start position:0%
i think it's a general purpose
evaluation<00:32:42.399><c> model</c><00:32:42.640><c> that</c><00:32:42.720><c> could</c><00:32:42.799><c> also</c><00:32:42.960><c> work</c>

00:32:43.190 --> 00:32:43.200 align:start position:0%
evaluation model that could also work
 

00:32:43.200 --> 00:32:44.389 align:start position:0%
evaluation model that could also work
enclosure<00:32:43.519><c> in</c><00:32:43.600><c> the</c><00:32:43.679><c> jvm</c><00:32:44.080><c> for</c><00:32:44.240><c> doing</c>

00:32:44.389 --> 00:32:44.399 align:start position:0%
enclosure in the jvm for doing
 

00:32:44.399 --> 00:32:45.909 align:start position:0%
enclosure in the jvm for doing
interesting<00:32:44.799><c> things</c>

00:32:45.909 --> 00:32:45.919 align:start position:0%
interesting things
 

00:32:45.919 --> 00:32:47.190 align:start position:0%
interesting things
and

00:32:47.190 --> 00:32:47.200 align:start position:0%
and
 

00:32:47.200 --> 00:32:58.070 align:start position:0%
and
thanks

00:32:58.070 --> 00:32:58.080 align:start position:0%
 
 

00:32:58.080 --> 00:33:00.159 align:start position:0%
 
you

