WEBVTT

1
00:00:02.985 --> 00:00:06.205
<00:00:02.985>And <00:00:03.159>welcome <00:00:03.335>to <00:00:03.510>Berlin, <00:00:03.684>at <00:00:03.860>least <00:00:04.035>on <00:00:04.210>the <00:00:04.385>slide

2
00:00:06.205 --> 00:00:08.685
<00:00:06.205>because <00:00:06.485>I'm <00:00:06.765>currently <00:00:07.045>sitting <00:00:07.325>in <00:00:07.605>Disseldorf,

3
00:00:09.215 --> 00:00:12.405
<00:00:09.215>maybe <00:00:09.331>next <00:00:09.448>year <00:00:09.565>we <00:00:09.681>are <00:00:09.798>all <00:00:09.915>together <00:00:10.031>in <00:00:10.148>Berlin <00:00:10.265>on <00:00:10.381>a <00:00:10.498>very <00:00:10.615>nice

4
00:00:12.405 --> 00:00:15.565
<00:00:12.405>conference <00:00:12.580>and <00:00:12.754>maybe <00:00:12.930>the <00:00:13.104>weather <00:00:13.280>will <00:00:13.454>be <00:00:13.629>better <00:00:13.805>than

5
00:00:15.675 --> 00:00:18.565
<00:00:15.675>because <00:00:15.875>two <00:00:16.075>years <00:00:16.275>ago <00:00:16.475>it <00:00:16.675>was <00:00:16.875>uh, <00:00:17.075>more

6
00:00:18.565 --> 00:00:20.605
<00:00:18.565>or <00:00:18.740>less <00:00:18.915>the <00:00:19.090>hottest <00:00:19.265>day <00:00:19.440>of <00:00:19.615>the <00:00:19.790>year <00:00:19.965>two.

7
00:00:20.605 --> 00:00:22.845
<00:00:20.605>Today <00:00:20.955>it's <00:00:21.305>grayish <00:00:21.655>and <00:00:22.005>raining.

8
00:00:23.295 --> 00:00:26.565
<00:00:23.295>Maybe <00:00:23.435>next <00:00:23.575>year <00:00:23.715>we <00:00:23.855>have <00:00:23.995>the <00:00:24.135>best <00:00:24.275>weather <00:00:24.415>for <00:00:24.555>a <00:00:24.695>conference.

9
00:00:28.415 --> 00:00:30.145
<00:00:28.415>When <00:00:28.881>talking <00:00:29.348>about <00:00:29.814>conferences

10
00:00:30.525 --> 00:00:33.265
<00:00:30.525>and <00:00:30.758>somehow <00:00:30.991>about <00:00:31.224>developing, <00:00:31.458>it's <00:00:31.691>for <00:00:31.924>many

11
00:00:33.265 --> 00:00:34.385
<00:00:33.265>of <00:00:33.517>us <00:00:33.769>a <00:00:34.021>happy <00:00:34.272>place.

12
00:00:34.445 --> 00:00:37.105
<00:00:34.445>We <00:00:34.645>will <00:00:34.845>be <00:00:35.045>and <00:00:35.245>despite <00:00:35.445>the <00:00:35.645>hard <00:00:35.845>times

13
00:00:37.105 --> 00:00:39.865
<00:00:37.105>that <00:00:37.279>we <00:00:37.455>are <00:00:37.629>currently <00:00:37.805>having <00:00:37.980>in <00:00:38.154>an <00:00:38.330>remote <00:00:38.504>environment

14
00:00:40.045 --> 00:00:43.065
<00:00:40.045>or <00:00:40.245>wherever <00:00:40.445>you <00:00:40.645>are <00:00:40.845>working, <00:00:41.045>it's <00:00:41.245>quite <00:00:41.445>difficult,

15
00:00:43.605 --> 00:00:47.545
<00:00:43.605>but <00:00:43.705>I <00:00:43.805>want <00:00:43.904>to <00:00:44.004>give <00:00:44.105>you <00:00:44.205>a <00:00:44.305>reason <00:00:44.404>to <00:00:44.504>be <00:00:44.605>as <00:00:44.705>happy <00:00:44.805>as <00:00:44.904>three <00:00:45.004>out

16
00:00:47.545 --> 00:00:48.665
<00:00:47.545>of <00:00:47.881>four <00:00:48.217>those <00:00:48.553>beers

17
00:00:48.685 --> 00:00:52.305
<00:00:48.685>and <00:00:48.812>I <00:00:48.939>guess <00:00:49.066>afterwards <00:00:49.194>also <00:00:49.321>the <00:00:49.448>blue <00:00:49.575>beer <00:00:49.703>will <00:00:49.830>be <00:00:49.957>a <00:00:50.085>happy

18
00:00:52.445 --> 00:00:56.505
<00:00:52.445>one <00:00:52.552>and <00:00:52.660>this <00:00:52.768>is <00:00:52.875>why <00:00:52.983>I <00:00:53.091>want <00:00:53.198>to <00:00:53.306>welcome <00:00:53.414>you <00:00:53.521>to <00:00:53.629>my <00:00:53.737>talk <00:00:53.845>about

19
00:00:57.705 --> 00:00:58.945
<00:00:57.705>closure <00:00:58.077>and <00:00:58.449>closure <00:00:58.821>script.

20
00:00:59.005 --> 00:01:01.185
<00:00:59.005>And <00:00:59.285>first <00:00:59.565>question <00:00:59.845>I <00:01:00.125>have <00:01:00.405>upfront,

21
00:01:01.375 --> 00:01:03.385
<00:01:01.375>including <00:01:01.655>a <00:01:01.935>typo <00:01:02.215>in <00:01:02.495>here <00:01:02.775>is

22
00:01:04.055 --> 00:01:08.065
<00:01:04.055>what <00:01:04.230>is <00:01:04.405>your <00:01:04.580>most <00:01:04.755>favorite <00:01:04.930>programming <00:01:05.105>language <00:01:05.280>right <00:01:05.455>now?

23
00:01:09.795 --> 00:01:11.355
<00:01:09.795>I <00:01:10.028>will <00:01:10.261>just <00:01:10.495>wait <00:01:10.728>a <00:01:10.961>few <00:01:11.195>seconds.

24
00:01:11.635 --> 00:01:15.555
<00:01:11.635>I <00:01:11.751>will <00:01:11.868>also <00:01:11.985>have <00:01:12.101>a <00:01:12.218>look <00:01:12.335>in <00:01:12.451>the <00:01:12.568>live <00:01:12.685>discussion <00:01:12.801>chat <00:01:12.918>on <00:01:13.035>the

25
00:01:15.555 --> 00:01:19.315
<00:01:15.555>other <00:01:15.710>screen <00:01:15.866>and <00:01:16.021>I'm <00:01:16.177>waiting <00:01:16.332>for <00:01:16.488>a <00:01:16.643>few <00:01:16.799>responses <00:01:16.955>here.

26
00:01:23.885 --> 00:01:26.215
<00:01:23.885>It's <00:01:24.235>TypeScript, <00:01:24.585>it's <00:01:24.935>Golang, <00:01:25.285>Java,

27
00:01:26.245 --> 00:01:27.895
<00:01:26.245>more <00:01:26.711>TypeScript, <00:01:27.178>Ruby, <00:01:27.645>Python.

28
00:01:28.475 --> 00:01:29.695
<00:01:28.475>I'm <00:01:28.749>also <00:01:29.024>a <00:01:29.298>Python <00:01:29.573>fan.

29
00:01:33.445 --> 00:01:36.255
<00:01:33.445>Hopefully <00:01:33.678>there <00:01:33.911>will <00:01:34.145>be <00:01:34.378>some <00:01:34.611>closure <00:01:34.845>guy.

30
00:01:40.675 --> 00:01:43.755
<00:01:40.675>Come <00:01:40.955>on. <00:01:41.235>Any <00:01:41.515>closure <00:01:41.795>in <00:01:42.075>here?

31
00:01:45.905 --> 00:01:47.605
<00:01:45.905>If <00:01:46.138>not, <00:01:46.371>I <00:01:46.605>will <00:01:46.838>make <00:01:47.071>you <00:01:47.305>one.

32
00:01:49.375 --> 00:01:51.705
<00:01:49.375>Okay, <00:01:49.725>seems <00:01:50.075>not <00:01:50.425>to <00:01:50.775>be.

33
00:01:51.805 --> 00:01:56.415
<00:01:51.805>And <00:01:51.932>Benedict, <00:01:52.059>please <00:01:52.186>have <00:01:52.314>a <00:01:52.441>talk <00:01:52.568>about <00:01:52.695>fish <00:01:52.823>Lang <00:01:52.950>on <00:01:53.077>the <00:01:53.205>next

34
00:01:56.415 --> 00:01:59.015
<00:01:56.414>conference <00:01:56.589>would <00:01:56.764>be <00:01:56.940>very <00:01:57.115>interesting <00:01:57.289>for <00:01:57.464>all <00:01:57.639>of <00:01:57.815>us

35
00:02:02.465 --> 00:02:05.405
<00:02:02.465>and <00:02:02.605>that's <00:02:02.745>yeah, <00:02:02.885>the <00:02:03.025>point <00:02:03.165>where <00:02:03.305>I <00:02:03.445>wanted <00:02:03.585>to <00:02:03.725>come <00:02:03.865>back

36
00:02:05.405 --> 00:02:08.125
<00:02:05.405>to <00:02:05.580>you <00:02:05.755>when <00:02:05.930>we <00:02:06.105>are <00:02:06.280>talking <00:02:06.455>about <00:02:06.630>programming <00:02:06.805>languages,

37
00:02:08.265 --> 00:02:09.485
<00:02:08.264>but <00:02:08.631>all <00:02:08.997>your <00:02:09.363>favorites,

38
00:02:10.385 --> 00:02:14.045
<00:02:10.384>not <00:02:10.524>every <00:02:10.664>language <00:02:10.804>can <00:02:10.945>be <00:02:11.084>used <00:02:11.225>in <00:02:11.364>the <00:02:11.505>backend <00:02:11.644>as <00:02:11.785>well

39
00:02:14.105 --> 00:02:17.045
<00:02:14.105>as <00:02:14.280>the <00:02:14.454>front <00:02:14.630>end, <00:02:14.804>but <00:02:14.980>closure <00:02:15.155>can <00:02:15.329>be <00:02:15.505>used

40
00:02:17.505 --> 00:02:20.485
<00:02:17.505>and <00:02:17.660>you <00:02:17.816>can <00:02:17.971>check <00:02:18.127>uh, <00:02:18.282>code <00:02:18.438>between <00:02:18.593>backend <00:02:18.749>front <00:02:18.905>end

41
00:02:21.025 --> 00:02:24.845
<00:02:21.025>and <00:02:21.165>in <00:02:21.305>the <00:02:21.445>next <00:02:21.585>40 <00:02:21.725>minutes <00:02:21.865>minus <00:02:22.005>some <00:02:22.145>q <00:02:22.285>and <00:02:22.425>a.

42
00:02:24.885 --> 00:02:27.085
<00:02:24.885>I <00:02:25.084>will <00:02:25.285>give <00:02:25.484>you <00:02:25.685>a <00:02:25.885>total <00:02:26.084>guide <00:02:26.285>how

43
00:02:27.085 --> 00:02:29.245
<00:02:27.085>to <00:02:27.318>write <00:02:27.551>a <00:02:27.785>complete <00:02:28.018>web <00:02:28.251>app <00:02:28.485>enclosure.

44
00:02:32.435 --> 00:02:33.465
<00:02:32.435>Short <00:02:33.362>introduction.

45
00:02:33.465 --> 00:02:35.905
<00:02:33.465>Where <00:02:33.640>I'm <00:02:33.815>coming <00:02:33.990>from, <00:02:34.165>why <00:02:34.340>I'm <00:02:34.515>talking <00:02:34.690>about <00:02:34.865>it,

46
00:02:36.605 --> 00:02:39.505
<00:02:36.605>I'm <00:02:36.780>coming <00:02:36.954>from <00:02:37.130>a <00:02:37.304>company <00:02:37.480>that's <00:02:37.655>called <00:02:37.829>Metro <00:02:38.005>Digital.

47
00:02:39.965 --> 00:02:42.305
<00:02:39.965>We <00:02:40.198>are <00:02:40.431>the <00:02:40.665>internal <00:02:40.898>IT <00:02:41.131>product <00:02:41.365>company.

48
00:02:43.125 --> 00:02:46.065
<00:02:43.125>If <00:02:43.300>you're <00:02:43.475>not <00:02:43.650>interested <00:02:43.825>in <00:02:44.000>advertising, <00:02:44.175>just <00:02:44.350>mute <00:02:44.525>myself

49
00:02:46.065 --> 00:02:47.465
<00:02:46.065>for <00:02:46.380>the <00:02:46.695>next <00:02:47.010>30 <00:02:47.325>seconds.

50
00:02:49.165 --> 00:02:51.905
<00:02:49.165>We <00:02:49.340>are <00:02:49.515>in <00:02:49.690>total <00:02:49.864>located <00:02:50.040>in <00:02:50.215>six <00:02:50.390>different <00:02:50.565>cities.

51
00:02:52.445 --> 00:02:56.185
<00:02:52.445>We <00:02:52.584>are <00:02:52.725>live <00:02:52.864>with <00:02:53.005>our <00:02:53.144>software <00:02:53.285>in <00:02:53.424>more <00:02:53.565>than <00:02:53.704>25 <00:02:53.845>countries

52
00:02:56.185 --> 00:02:59.225
<00:02:56.185>because <00:02:56.465>we <00:02:56.745>are <00:02:57.025>whiting <00:02:57.305>the <00:02:57.585>products.

53
00:02:59.565 --> 00:03:03.265
<00:02:59.565>So <00:02:59.704>based <00:02:59.845>in <00:02:59.984>the <00:03:00.125>web <00:03:00.265>for <00:03:00.405>every <00:03:00.545>metro <00:03:00.685>country, <00:03:00.825>the <00:03:00.965>wholesale,

54
00:03:03.365 --> 00:03:08.185
<00:03:03.365>um, <00:03:03.540>companies, <00:03:03.715>we <00:03:03.890>have <00:03:04.065>more <00:03:04.240>than <00:03:04.415>1000 <00:03:04.590>services <00:03:04.765>running

55
00:03:08.285 --> 00:03:11.185
<00:03:08.285>in <00:03:08.460>several <00:03:08.635>clouds <00:03:08.810>in <00:03:08.984>Amazon, <00:03:09.160>in <00:03:09.335>Google <00:03:09.510>and <00:03:09.685>Azure.

56
00:03:11.285 --> 00:03:14.385
<00:03:11.285>So <00:03:11.460>whatever <00:03:11.635>you <00:03:11.810>can <00:03:11.984>imagine, <00:03:12.160>we <00:03:12.335>are <00:03:12.510>live <00:03:12.685>somewhere

57
00:03:15.295 --> 00:03:18.995
<00:03:15.295>and <00:03:15.434>we <00:03:15.575>have <00:03:15.714>more <00:03:15.855>than <00:03:15.994>1000 <00:03:16.135>employees <00:03:16.274>in <00:03:16.415>the <00:03:16.554>six <00:03:16.695>different

58
00:03:18.995 --> 00:03:20.115
<00:03:18.995>cities <00:03:19.499>right <00:03:20.003>now.

59
00:03:20.115 --> 00:03:22.515
<00:03:20.115>Unfortunately <00:03:20.581>everyone <00:03:21.048>is <00:03:21.515>remote

60
00:03:22.655 --> 00:03:24.395
<00:03:22.655>so <00:03:22.888>we <00:03:23.121>have <00:03:23.355>a <00:03:23.588>remote <00:03:23.821>first <00:03:24.055>policy

61
00:03:25.175 --> 00:03:27.675
<00:03:25.175>and <00:03:25.350>if <00:03:25.525>you're <00:03:25.700>interested <00:03:25.875>to <00:03:26.050>learn <00:03:26.225>more <00:03:26.400>about <00:03:26.575>us,

62
00:03:27.825 --> 00:03:29.555
<00:03:27.825>just <00:03:28.174>go <00:03:28.524>on <00:03:28.875>Metro <00:03:29.225>Digital

63
00:03:30.065 --> 00:03:33.275
<00:03:30.065>because <00:03:30.240>as <00:03:30.415>many <00:03:30.590>other <00:03:30.765>companies <00:03:30.940>also <00:03:31.115>we <00:03:31.290>are <00:03:31.465>searching

64
00:03:33.695 --> 00:03:37.115
<00:03:33.695>for <00:03:33.822>talented <00:03:33.949>people <00:03:34.076>and <00:03:34.204>I <00:03:34.331>guess <00:03:34.458>many <00:03:34.585>of <00:03:34.713>them <00:03:34.840>are <00:03:34.967>in <00:03:35.095>here

65
00:03:37.115 --> 00:03:38.595
<00:03:37.115>because <00:03:37.559>you <00:03:38.003>are <00:03:38.447>listening

66
00:03:38.595 --> 00:03:40.275
<00:03:38.595>to <00:03:38.828>a <00:03:39.061>very <00:03:39.295>interesting <00:03:39.528>talk <00:03:39.761>right <00:03:39.995>now.

67
00:03:42.275 --> 00:03:44.775
<00:03:42.275>But <00:03:42.475>why <00:03:42.675>closure? <00:03:42.875>Why <00:03:43.075>should <00:03:43.275>you <00:03:43.475>learn <00:03:43.675>closure?

68
00:03:44.915 --> 00:03:46.295
<00:03:44.915>Why <00:03:45.092>should <00:03:45.269>you <00:03:45.447>have <00:03:45.624>a <00:03:45.802>look <00:03:45.979>at <00:03:46.157>closure?

69
00:03:46.905 --> 00:03:48.775
<00:03:46.905>There <00:03:47.255>are <00:03:47.605>for <00:03:47.955>simple <00:03:48.305>reasons.

70
00:03:49.545 --> 00:03:52.095
<00:03:49.545>First <00:03:49.745>one <00:03:49.945>is <00:03:50.145>because <00:03:50.345>closure <00:03:50.545>is <00:03:50.745>very <00:03:50.945>simple.

71
00:03:52.315 --> 00:03:54.335
<00:03:52.315>You <00:03:52.490>do <00:03:52.665>not <00:03:52.840>need <00:03:53.015>so <00:03:53.190>much <00:03:53.365>to <00:03:53.540>get <00:03:53.715>started.

72
00:03:55.135 --> 00:03:58.055
<00:03:55.135>I <00:03:55.310>will <00:03:55.484>give <00:03:55.660>you <00:03:55.834>a <00:03:56.010>short <00:03:56.185>introduction, <00:03:56.359>what <00:03:56.535>few

73
00:03:58.785 --> 00:04:01.375
<00:03:58.785>characters <00:03:58.984>you <00:03:59.185>need <00:03:59.385>to <00:03:59.585>get <00:03:59.785>started <00:03:59.984>with <00:04:00.185>closure.

74
00:04:02.595 --> 00:04:07.455
<00:04:02.595>Second <00:04:02.750>one, <00:04:02.906>it's <00:04:03.061>functional, <00:04:03.217>so <00:04:03.372>by <00:04:03.528>default <00:04:03.683>it <00:04:03.839>is <00:04:03.995>immutable.

75
00:04:08.075 --> 00:04:11.095
<00:04:08.075>You <00:04:08.250>have <00:04:08.424>pure <00:04:08.600>functions <00:04:08.774>every <00:04:08.950>time <00:04:09.125>you <00:04:09.299>really <00:04:09.475>try

76
00:04:11.095 --> 00:04:12.375
<00:04:11.095>to <00:04:11.478>avoid <00:04:11.863>side <00:04:12.247>effects

77
00:04:12.375 --> 00:04:15.295
<00:04:12.375>that <00:04:12.515>you <00:04:12.655>do <00:04:12.795>not <00:04:12.935>influence <00:04:13.075>any <00:04:13.215>other <00:04:13.355>state <00:04:13.495>of <00:04:13.635>your <00:04:13.775>app

78
00:04:16.225 --> 00:04:19.005
<00:04:16.225>and <00:04:16.380>you <00:04:16.536>have <00:04:16.691>very <00:04:16.847>small <00:04:17.002>modules <00:04:17.158>based <00:04:17.313>on <00:04:17.469>the <00:04:17.625>pure

79
00:04:19.285 --> 00:04:21.525
<00:04:19.285>functionality <00:04:19.518>it <00:04:19.751>should <00:04:19.985>be <00:04:20.218>easy <00:04:20.451>to <00:04:20.685>test.

80
00:04:23.205 --> 00:04:25.555
<00:04:23.205>Third <00:04:23.671>one <00:04:24.138>is <00:04:24.604>interoperability.

81
00:04:26.655 --> 00:04:30.195
<00:04:26.655>You <00:04:26.830>are <00:04:27.005>able <00:04:27.179>to <00:04:27.354>directly <00:04:27.530>interact <00:04:27.705>with <00:04:27.880>Java <00:04:28.054>code

82
00:04:31.275 --> 00:04:34.615
<00:04:31.275>and <00:04:31.474>since <00:04:31.674>I <00:04:31.875>guess <00:04:32.075>two <00:04:32.275>years <00:04:32.474>already <00:04:32.674>also

83
00:04:34.615 --> 00:04:36.455
<00:04:34.615>with <00:04:34.895>the <00:04:35.175>Panda <00:04:35.455>library <00:04:35.735>from <00:04:36.015>Python.

84
00:04:37.275 --> 00:04:41.135
<00:04:37.275>So <00:04:37.402>there's <00:04:37.529>not <00:04:37.656>a <00:04:37.784>real <00:04:37.911>reason <00:04:38.038>to <00:04:38.165>switch <00:04:38.293>to <00:04:38.420>any <00:04:38.547>other <00:04:38.674>language

85
00:04:41.795 --> 00:04:45.855
<00:04:41.795>and <00:04:41.950>since <00:04:42.106>closure <00:04:42.261>can <00:04:42.417>be <00:04:42.572>also <00:04:42.728>used <00:04:42.883>as <00:04:43.039>closure <00:04:43.195>script,

86
00:04:46.395 --> 00:04:47.415
<00:04:46.395>you <00:04:46.701>have <00:04:47.007>one <00:04:47.313>language

87
00:04:47.515 --> 00:04:50.015
<00:04:47.515>to <00:04:47.715>somehow <00:04:47.914>rule <00:04:48.115>all <00:04:48.315>the <00:04:48.515>needs <00:04:48.715>you <00:04:48.914>have.

88
00:04:52.075 --> 00:04:54.615
<00:04:52.075>And <00:04:52.354>the <00:04:52.635>fourth <00:04:52.914>one <00:04:53.195>is <00:04:53.474>lisp.

89
00:04:55.295 --> 00:04:59.515
<00:04:55.295>So <00:04:55.470>list <00:04:55.645>processing, <00:04:55.820>it's <00:04:55.995>on <00:04:56.170>standard <00:04:56.345>more <00:04:56.520>or <00:04:56.695>less.

90
00:04:59.655 --> 00:05:03.115
<00:04:59.655>That's <00:04:59.888>easy <00:05:00.121>since <00:05:00.354>1958, <00:05:00.588>so <00:05:00.821>quite <00:05:01.054>old

91
00:05:03.735 --> 00:05:07.115
<00:05:03.735>you <00:05:03.862>have <00:05:03.989>the <00:05:04.116>rep <00:05:04.244>in <00:05:04.371>there <00:05:04.498>so <00:05:04.625>a <00:05:04.753>command <00:05:04.880>line <00:05:05.007>interface <00:05:05.135>to

92
00:05:07.705 --> 00:05:11.835
<00:05:07.705>read, <00:05:07.880>evaluate, <00:05:08.055>print <00:05:08.229>a <00:05:08.405>loop, <00:05:08.580>you <00:05:08.755>can <00:05:08.930>directly <00:05:09.104>interact

93
00:05:11.835 --> 00:05:16.315
<00:05:11.835>with <00:05:11.990>the <00:05:12.146>code <00:05:12.301>and <00:05:12.457>everything <00:05:12.612>you <00:05:12.768>need <00:05:12.923>really <00:05:13.079>everything <00:05:13.234>only

94
00:05:16.465 --> 00:05:19.915
<00:05:16.465>collections <00:05:16.744>and <00:05:17.025>lists, <00:05:17.304>that <00:05:17.585>is <00:05:17.864>everything.

95
00:05:21.095 --> 00:05:24.995
<00:05:21.095>And <00:05:21.235>then <00:05:21.375>on <00:05:21.515>top <00:05:21.655>of <00:05:21.795>closure <00:05:21.935>we <00:05:22.075>have <00:05:22.215>also <00:05:22.355>some <00:05:22.495>reasons

96
00:05:25.505 --> 00:05:28.475
<00:05:25.505>because <00:05:25.738>everything <00:05:25.971>in <00:05:26.205>it <00:05:26.438>should <00:05:26.671>be <00:05:26.905>reasonable

97
00:05:29.415 --> 00:05:31.315
<00:05:29.415>why <00:05:29.765>closure <00:05:30.115>script <00:05:30.465>on <00:05:30.815>top.

98
00:05:32.855 --> 00:05:35.435
<00:05:32.855>In <00:05:33.010>closure <00:05:33.166>script <00:05:33.321>we <00:05:33.477>are <00:05:33.632>going <00:05:33.788>to <00:05:33.943>use <00:05:34.099>a <00:05:34.255>library

99
00:05:35.985 --> 00:05:37.275
<00:05:35.985>that <00:05:36.565>is <00:05:37.145>reframe.

100
00:05:38.555 --> 00:05:42.515
<00:05:38.555>Reframe <00:05:38.755>gives <00:05:38.955>you <00:05:39.155>a <00:05:39.355>totally <00:05:39.555>data <00:05:39.755>driven <00:05:39.955>architecture

101
00:05:42.535 --> 00:05:43.915
<00:05:42.534>to <00:05:42.845>interact <00:05:43.156>with <00:05:43.466>your <00:05:43.777>code.

102
00:05:46.175 --> 00:05:49.385
<00:05:46.175>Also <00:05:46.330>the <00:05:46.486>build <00:05:46.641>system <00:05:46.797>of <00:05:46.952>closure <00:05:47.108>script <00:05:47.263>is <00:05:47.419>very <00:05:47.575>easy.

103
00:05:50.255 --> 00:05:52.945
<00:05:50.255>It's <00:05:50.534>much <00:05:50.815>more <00:05:51.094>simple <00:05:51.375>than <00:05:51.655>JavaScript.

104
00:05:53.195 --> 00:05:56.185
<00:05:53.195>Every <00:05:53.370>time <00:05:53.545>I <00:05:53.719>work <00:05:53.895>with <00:05:54.070>the <00:05:54.245>CLOs <00:05:54.420>script <00:05:54.594>library

105
00:05:56.405 --> 00:05:59.205
<00:05:56.405>or <00:05:56.638>a <00:05:56.871>school <00:05:57.104>project, <00:05:57.338>I <00:05:57.571>never <00:05:57.804>had

106
00:05:59.205 --> 00:06:03.435
<00:05:59.205>to <00:05:59.380>fight <00:05:59.555>against <00:05:59.729>the <00:05:59.905>build <00:06:00.080>system <00:06:00.255>while <00:06:00.430>running <00:06:00.604>J

107
00:06:03.495 --> 00:06:04.955
<00:06:03.495>or <00:06:03.933>any <00:06:04.371>other <00:06:04.808>language.

108
00:06:05.315 --> 00:06:08.115
<00:06:05.315>I <00:06:05.442>have <00:06:05.569>some <00:06:05.696>compile <00:06:05.824>I <00:06:05.951>was, <00:06:06.078>I <00:06:06.205>have <00:06:06.333>our <00:06:06.460>while <00:06:06.587>setting <00:06:06.715>up.

109
00:06:08.115 --> 00:06:09.955
<00:06:08.115>There <00:06:08.465>are <00:06:08.815>many <00:06:09.165>different <00:06:09.515>issues.

110
00:06:11.795 --> 00:06:14.525
<00:06:11.795>Then <00:06:11.995>you <00:06:12.195>have <00:06:12.395>less <00:06:12.595>churn <00:06:12.795>in <00:06:12.995>the <00:06:13.195>ecosystem.

111
00:06:15.985 --> 00:06:19.005
<00:06:15.985>You <00:06:16.335>will <00:06:16.685>find <00:06:17.035>libraries <00:06:17.385>enclosure

112
00:06:19.515 --> 00:06:21.045
<00:06:19.515>that <00:06:19.974>are <00:06:20.433>already <00:06:20.892>stale

113
00:06:21.105 --> 00:06:24.445
<00:06:21.105>and <00:06:21.280>not <00:06:21.455>touched <00:06:21.630>since <00:06:21.805>like <00:06:21.980>I <00:06:22.155>guess <00:06:22.330>five <00:06:22.505>years

114
00:06:24.995 --> 00:06:26.685
<00:06:24.995>because <00:06:25.345>they <00:06:25.695>are <00:06:26.045>just <00:06:26.395>stable.

115
00:06:26.815 --> 00:06:28.845
<00:06:26.815>There <00:06:27.048>is <00:06:27.281>no <00:06:27.515>need <00:06:27.748>to <00:06:27.981>touch <00:06:28.215>them.

116
00:06:29.735 --> 00:06:31.905
<00:06:29.735>Once <00:06:29.968>you <00:06:30.201>have <00:06:30.435>finished <00:06:30.668>the <00:06:30.901>program, <00:06:31.135>sometimes

117
00:06:32.415 --> 00:06:35.545
<00:06:32.415>it's <00:06:32.615>really <00:06:32.815>done <00:06:33.015>no <00:06:33.215>need <00:06:33.415>to <00:06:33.615>maintain <00:06:33.815>them

118
00:06:35.695 --> 00:06:37.345
<00:06:35.695>because <00:06:36.045>they <00:06:36.395>are <00:06:36.745>just <00:06:37.094>stable.

119
00:06:41.315 --> 00:06:43.165
<00:06:41.315>Then <00:06:41.665>you <00:06:42.015>have <00:06:42.365>closure <00:06:42.715>spec.

120
00:06:44.475 --> 00:06:47.885
<00:06:44.475>It's <00:06:44.630>an <00:06:44.786>excellent <00:06:44.941>tool <00:06:45.097>for <00:06:45.252>verifying <00:06:45.408>that <00:06:45.563>your <00:06:45.719>app <00:06:45.875>state,

121
00:06:48.265 --> 00:06:51.365
<00:06:48.265>so <00:06:48.465>the <00:06:48.664>library <00:06:48.865>or <00:06:49.065>not <00:06:49.265>library, <00:06:49.465>the <00:06:49.664>database

122
00:06:51.585 --> 00:06:56.045
<00:06:51.585>or <00:06:51.724>anything <00:06:51.864>we <00:06:52.005>have <00:06:52.145>somehow <00:06:52.284>the <00:06:52.424>mind <00:06:52.565>of <00:06:52.705>the <00:06:52.844>app <00:06:52.984>itself

123
00:06:56.825 --> 00:06:58.285
<00:06:56.825>is <00:06:57.482>always <00:06:58.138>correct.

124
00:06:59.305 --> 00:07:01.165
<00:06:59.305>You <00:06:59.538>can <00:06:59.771>use <00:07:00.005>it <00:07:00.238>to <00:07:00.471>check <00:07:00.705>constraints,

125
00:07:01.225 --> 00:07:05.485
<00:07:01.225>to <00:07:01.380>check <00:07:01.536>incoming <00:07:01.691>requests, <00:07:01.847>to <00:07:02.002>check <00:07:02.158>the <00:07:02.313>structure <00:07:02.469>of <00:07:02.625>js

126
00:07:05.485 --> 00:07:09.325
<00:07:05.485>and <00:07:05.660>dictionaries <00:07:05.835>that <00:07:06.010>everything <00:07:06.185>is <00:07:06.360>really <00:07:06.535>in <00:07:06.710>a <00:07:06.885>state

127
00:07:09.455 --> 00:07:10.565
<00:07:09.455>where <00:07:09.654>you <00:07:09.854>want <00:07:10.054>to <00:07:10.254>have <00:07:10.454>it

128
00:07:12.425 --> 00:07:16.045
<00:07:12.425>and <00:07:12.580>of <00:07:12.736>course <00:07:12.891>co-chairing <00:07:13.047>between <00:07:13.202>back <00:07:13.358>end <00:07:13.513>and <00:07:13.669>front <00:07:13.825>end.

129
00:07:16.975 --> 00:07:18.955
<00:07:16.975>If <00:07:17.150>you <00:07:17.325>have <00:07:17.500>already <00:07:17.675>closure <00:07:17.850>in <00:07:18.025>the <00:07:18.200>back <00:07:18.375>end

130
00:07:19.535 --> 00:07:22.395
<00:07:19.535>you <00:07:19.690>can <00:07:19.846>share <00:07:20.001>some <00:07:20.157>parts <00:07:20.312>also <00:07:20.468>with <00:07:20.623>the <00:07:20.779>front <00:07:20.935>end.

131
00:07:23.075 --> 00:07:25.215
<00:07:23.075>So <00:07:23.354>no <00:07:23.635>need <00:07:23.914>to <00:07:24.195>duplicate <00:07:24.474>code

132
00:07:25.675 --> 00:07:26.855
<00:07:25.675>and <00:07:26.029>there's <00:07:26.383>one <00:07:26.737>language

133
00:07:26.915 --> 00:07:30.675
<00:07:26.915>to <00:07:27.148>really <00:07:27.381>rule <00:07:27.615>them <00:07:27.848>on <00:07:28.081>coming <00:07:28.315>out.

134
00:07:31.035 --> 00:07:35.605
<00:07:31.035>Closure <00:07:31.210>also <00:07:31.385>a <00:07:31.560>very <00:07:31.735>good <00:07:31.910>reason <00:07:32.085>to <00:07:32.260>use <00:07:32.435>it

135
00:07:35.605 --> 00:07:37.285
<00:07:35.605>as <00:07:35.955>a <00:07:36.305>functional <00:07:36.655>programming <00:07:37.005>language

136
00:07:37.825 --> 00:07:39.525
<00:07:37.825>are <00:07:38.175>the <00:07:38.525>higher <00:07:38.875>order <00:07:39.224>functions.

137
00:07:40.275 --> 00:07:43.605
<00:07:40.275>They're <00:07:40.430>now <00:07:40.586>also <00:07:40.741>available <00:07:40.897>in <00:07:41.052>many <00:07:41.208>other <00:07:41.363>other <00:07:41.519>lang <00:07:41.674>uh,

138
00:07:43.715 --> 00:07:44.925
<00:07:43.715>different <00:07:44.804>languages

139
00:07:45.985 --> 00:07:49.805
<00:07:45.985>but <00:07:46.218>initially <00:07:46.451>they're <00:07:46.685>coming <00:07:46.918>from <00:07:47.151>functional <00:07:47.385>languages.

140
00:07:50.765 --> 00:07:52.465
<00:07:50.765>If <00:07:50.965>you <00:07:51.164>not <00:07:51.365>know <00:07:51.565>what <00:07:51.765>I'm <00:07:51.965>talking <00:07:52.164>about,

141
00:07:53.295 --> 00:07:57.105
<00:07:53.295>it's <00:07:53.470>like <00:07:53.645>a <00:07:53.820>mapping <00:07:53.995>function <00:07:54.170>that <00:07:54.345>is <00:07:54.520>already <00:07:54.695>proper

142
00:07:58.185 --> 00:08:02.615
<00:07:58.185>closure <00:07:58.360>code <00:07:58.535>because <00:07:58.710>enclosure, <00:07:58.885>you <00:07:59.060>can <00:07:59.235>really <00:07:59.410>use <00:07:59.585>emojis.

143
00:08:03.365 --> 00:08:05.375
<00:08:03.365>Unfortunately <00:08:03.715>that <00:08:04.065>is <00:08:04.415>the <00:08:04.765>exception,

144
00:08:05.715 --> 00:08:08.055
<00:08:05.715>not <00:08:06.065>enclosure <00:08:06.414>script <00:08:06.765>but <00:08:07.114>enclosure.

145
00:08:09.955 --> 00:08:13.815
<00:08:09.955>If <00:08:10.094>we <00:08:10.234>have <00:08:10.375>the <00:08:10.515>mapping <00:08:10.655>function, <00:08:10.794>we <00:08:10.935>map <00:08:11.075>the <00:08:11.215>cooking <00:08:11.354>function

146
00:08:14.765 --> 00:08:18.505
<00:08:14.765>on <00:08:14.940>the <00:08:15.115>list <00:08:15.289>here <00:08:15.465>that <00:08:15.640>has <00:08:15.815>some <00:08:15.990>emojis <00:08:16.164>and

147
00:08:18.505 --> 00:08:21.305
<00:08:18.505>therefore <00:08:18.784>each <00:08:19.065>emoji <00:08:19.344>gets <00:08:19.625>now <00:08:19.905>cooked

148
00:08:22.125 --> 00:08:25.985
<00:08:22.125>and <00:08:22.252>the <00:08:22.379>result <00:08:22.506>would <00:08:22.634>be <00:08:22.761>then <00:08:22.888>that <00:08:23.015>the <00:08:23.143>cow <00:08:23.270>get <00:08:23.397>to <00:08:23.525>burger,

149
00:08:26.645 --> 00:08:29.665
<00:08:26.645>potato <00:08:26.800>will <00:08:26.956>be <00:08:27.111>fries, <00:08:27.267>chicken <00:08:27.422>will <00:08:27.578>be <00:08:27.733>a <00:08:27.889>chicken <00:08:28.044>gram

150
00:08:30.165 --> 00:08:31.945
<00:08:30.165>and <00:08:30.398>corn <00:08:30.631>will <00:08:30.865>be <00:08:31.098>some <00:08:31.331>proper <00:08:31.565>popcorn.

151
00:08:33.935 --> 00:08:37.115
<00:08:33.934>If <00:08:34.109>you <00:08:34.284>have <00:08:34.459>the <00:08:34.635>second <00:08:34.809>very <00:08:34.984>important <00:08:35.159>uh, <00:08:35.334>function,

152
00:08:37.735 --> 00:08:38.755
<00:08:37.735>it <00:08:38.193>is <00:08:38.653>filtering

153
00:08:39.285 --> 00:08:43.135
<00:08:39.284>because <00:08:39.459>sometimes <00:08:39.635>you <00:08:39.809>only <00:08:39.985>need <00:08:40.159>valid <00:08:40.334>responses <00:08:40.510>that <00:08:40.684>have

154
00:08:43.875 --> 00:08:47.895
<00:08:43.875>in <00:08:44.075>the <00:08:44.275>shopping <00:08:44.475>cart <00:08:44.675>often <00:08:44.875>e-commerce <00:08:45.075>system <00:08:45.275>articles

155
00:08:47.925 --> 00:08:49.855
<00:08:47.925>with <00:08:48.275>a <00:08:48.625>value <00:08:48.974>greater <00:08:49.324>zero

156
00:08:51.265 --> 00:08:54.365
<00:08:51.265>or <00:08:51.405>like <00:08:51.545>here <00:08:51.685>you <00:08:51.824>want <00:08:51.965>just <00:08:52.105>to <00:08:52.245>filter <00:08:52.385>out <00:08:52.525>every <00:08:52.665>dish

157
00:08:54.395 --> 00:08:59.245
<00:08:54.395>that <00:08:54.535>is <00:08:54.675>vegan <00:08:54.814>and <00:08:54.954>from <00:08:55.095>that <00:08:55.235>list <00:08:55.375>everything <00:08:55.515>that <00:08:55.655>is <00:08:55.795>vegan

158
00:08:59.385 --> 00:09:03.565
<00:08:59.385>of <00:08:59.540>course <00:08:59.696>are <00:08:59.851>only <00:09:00.007>the <00:09:00.162>fries <00:09:00.318>qu <00:09:00.473>if <00:09:00.629>your <00:09:00.785>net

159
00:09:03.565 --> 00:09:05.725
<00:09:03.565>and <00:09:03.798>not <00:09:04.031>have <00:09:04.265>used <00:09:04.498>any <00:09:04.731>animal <00:09:04.965>fat.

160
00:09:06.975 --> 00:09:10.675
<00:09:06.975>And <00:09:07.115>the <00:09:07.255>last <00:09:07.395>one <00:09:07.535>maybe <00:09:07.675>you <00:09:07.815>want <00:09:07.955>to <00:09:08.095>reduce <00:09:08.235>the <00:09:08.375>items

161
00:09:12.075 --> 00:09:14.295
<00:09:12.075>you <00:09:12.308>have <00:09:12.541>sometimes <00:09:12.775>in <00:09:13.008>the <00:09:13.241>top <00:09:13.475>right

162
00:09:15.695 --> 00:09:19.095
<00:09:15.695>a <00:09:15.835>small <00:09:15.975>shopping <00:09:16.115>item <00:09:16.255>like <00:09:16.395>go <00:09:16.535>to <00:09:16.675>your <00:09:16.815>basket <00:09:16.955>to <00:09:17.095>go

163
00:09:19.095 --> 00:09:21.295
<00:09:19.095>to <00:09:19.270>the <00:09:19.445>checkout <00:09:19.620>and <00:09:19.795>then <00:09:19.970>the <00:09:20.145>list <00:09:20.320>of <00:09:20.495>items

164
00:09:21.955 --> 00:09:25.655
<00:09:21.955>and <00:09:22.071>that <00:09:22.188>is <00:09:22.305>then <00:09:22.421>a <00:09:22.538>reduced <00:09:22.655>list <00:09:22.771>of <00:09:22.888>items <00:09:23.005>you <00:09:23.121>have <00:09:23.238>in <00:09:23.355>total.

165
00:09:26.655 --> 00:09:29.715
<00:09:26.655>If <00:09:26.771>we <00:09:26.888>have <00:09:27.005>a <00:09:27.121>tier <00:09:27.238>on <00:09:27.355>our <00:09:27.471>list, <00:09:27.588>what <00:09:27.704>we <00:09:27.821>want <00:09:27.938>to <00:09:28.055>eat

166
00:09:30.535 --> 00:09:32.715
<00:09:30.535>and <00:09:30.814>normally <00:09:31.094>during <00:09:31.375>a <00:09:31.655>conference <00:09:31.935>there's

167
00:09:32.755 --> 00:09:33.835
<00:09:32.755>a <00:09:32.949>lot <00:09:33.143>of <00:09:33.338>stuff <00:09:33.532>to <00:09:33.727>eat.

168
00:09:35.425 --> 00:09:37.435
<00:09:35.425>It's <00:09:35.775>here <00:09:36.125>resulting <00:09:36.474>in <00:09:36.824>poop

169
00:09:39.645 --> 00:09:41.105
<00:09:39.645>coming <00:09:40.083>now <00:09:40.521>to <00:09:40.959>closure

170
00:09:41.725 --> 00:09:43.945
<00:09:41.725>and <00:09:41.925>an <00:09:42.125>example <00:09:42.325>how <00:09:42.525>it <00:09:42.725>could <00:09:42.925>look <00:09:43.125>like

171
00:09:44.925 --> 00:09:48.785
<00:09:44.925>the <00:09:45.080>first <00:09:45.236>value <00:09:45.391>here <00:09:45.547>in <00:09:45.702>closure, <00:09:45.858>you <00:09:46.013>already <00:09:46.169>see <00:09:46.324>it,

172
00:09:49.635 --> 00:09:51.605
<00:09:49.635>it's <00:09:49.868>a <00:09:50.101>nerve <00:09:50.335>so <00:09:50.568>no <00:09:50.801>is <00:09:51.035>more

173
00:09:51.605 --> 00:09:54.845
<00:09:51.605>or <00:09:51.805>less <00:09:52.005>not <00:09:52.205>enlist, <00:09:52.405>it's <00:09:52.605>in <00:09:52.805>high <00:09:53.005>value.

174
00:09:55.145 --> 00:09:58.805
<00:09:55.145>The <00:09:55.319>non <00:09:55.495>expression, <00:09:55.670>every <00:09:55.845>language <00:09:56.020>has <00:09:56.194>some <00:09:56.370>very <00:09:56.545>value.

175
00:10:02.125 --> 00:10:06.135
<00:10:02.125>Next <00:10:02.325>to <00:10:02.525>that <00:10:02.725>you <00:10:02.925>have <00:10:03.125>of <00:10:03.325>across <00:10:03.525>interra

176
00:10:07.195 --> 00:10:11.455
<00:10:07.195>you <00:10:07.370>have <00:10:07.545>floating <00:10:07.720>points <00:10:07.895>and <00:10:08.070>you <00:10:08.245>have <00:10:08.420>rational <00:10:08.595>numbers.

177
00:10:12.605 --> 00:10:15.585
<00:10:12.605>You <00:10:12.745>see <00:10:12.885>that <00:10:13.025>everything <00:10:13.165>I <00:10:13.305>type <00:10:13.445>in <00:10:13.585>here <00:10:13.725>will <00:10:13.865>be <00:10:14.005>directly

178
00:10:15.615 --> 00:10:19.305
<00:10:15.615>evaluated <00:10:16.081>below <00:10:16.548>that <00:10:17.015>next

179
00:10:19.325 --> 00:10:21.345
<00:10:19.325>to <00:10:19.558>the <00:10:19.791>numeric <00:10:20.025>values <00:10:20.258>you <00:10:20.491>will <00:10:20.725>have

180
00:10:21.365 --> 00:10:24.385
<00:10:21.365>of <00:10:21.565>course <00:10:21.765>strings <00:10:21.965>will <00:10:22.165>be <00:10:22.365>evaluated <00:10:22.565>to <00:10:22.765>strings,

181
00:10:25.245 --> 00:10:26.665
<00:10:25.245>you <00:10:25.564>will <00:10:25.884>have <00:10:26.203>some <00:10:26.522>characters.

182
00:10:26.795 --> 00:10:28.825
<00:10:26.795>There <00:10:26.995>are <00:10:27.194>different <00:10:27.395>ways <00:10:27.594>to <00:10:27.795>write <00:10:27.995>a <00:10:28.194>character

183
00:10:30.085 --> 00:10:33.625
<00:10:30.085>and <00:10:30.285>you <00:10:30.485>could <00:10:30.685>also <00:10:30.885>have <00:10:31.085>some <00:10:31.285>regular <00:10:31.485>expressions

184
00:10:35.015 --> 00:10:37.425
<00:10:35.015>that <00:10:35.248>should <00:10:35.481>be <00:10:35.715>something <00:10:35.948>like <00:10:36.181>this <00:10:36.415>one

185
00:10:38.805 --> 00:10:40.855
<00:10:38.805>that <00:10:39.005>are <00:10:39.204>the <00:10:39.405>different <00:10:39.604>character <00:10:39.805>types <00:10:40.005>in <00:10:40.204>it.

186
00:10:42.195 --> 00:10:44.805
<00:10:42.195>Symbols, <00:10:42.395>we <00:10:42.595>already <00:10:42.795>talked <00:10:42.995>about <00:10:43.195>the <00:10:43.395>mapping <00:10:43.595>symbol

187
00:10:44.865 --> 00:10:47.805
<00:10:44.865>and <00:10:45.040>some <00:10:45.215>other <00:10:45.390>things <00:10:45.565>more <00:10:45.740>we'll <00:10:45.915>see <00:10:46.090>later <00:10:46.265>on

188
00:10:47.805 --> 00:10:50.755
<00:10:47.805>of <00:10:48.084>course <00:10:48.364>in <00:10:48.645>the <00:10:48.925>code <00:10:49.204>itself.

189
00:10:52.015 --> 00:10:55.155
<00:10:52.015>But <00:10:52.189>we <00:10:52.365>have <00:10:52.540>also <00:10:52.715>of <00:10:52.890>um, <00:10:53.064>of <00:10:53.240>course <00:10:53.415>true

190
00:10:56.095 --> 00:11:00.075
<00:10:56.095>we <00:10:56.295>have <00:10:56.495>fonts <00:10:56.695>and <00:10:56.895>we <00:10:57.095>have <00:10:57.295>so-called <00:10:57.495>keywords.

191
00:11:01.055 --> 00:11:05.775
<00:11:01.055>Keywords <00:11:01.229>are <00:11:01.405>very <00:11:01.579>useful <00:11:01.755>for <00:11:01.930>dictionaries <00:11:02.104>and <00:11:02.280>for <00:11:02.454>maps

192
00:11:06.395 --> 00:11:10.655
<00:11:06.395>and <00:11:06.535>a <00:11:06.675>map <00:11:06.814>would <00:11:06.954>be <00:11:07.095>now <00:11:07.235>the <00:11:07.375>first <00:11:07.515>collection <00:11:07.655>I'm <00:11:07.795>going

193
00:11:10.675 --> 00:11:14.375
<00:11:10.675>to <00:11:10.830>introduce <00:11:10.986>and <00:11:11.141>here <00:11:11.297>you <00:11:11.452>can <00:11:11.608>see <00:11:11.763>we <00:11:11.919>have <00:11:12.074>um,

194
00:11:15.885 --> 00:11:17.135
<00:11:15.885>type <00:11:16.166>error <00:11:16.447>on <00:11:16.728>my <00:11:17.010>side

195
00:11:18.195 --> 00:11:21.015
<00:11:18.195>and <00:11:18.350>a <00:11:18.506>mapping <00:11:18.661>that <00:11:18.817>A <00:11:18.972>will <00:11:19.128>be <00:11:19.283>mapped <00:11:19.439>to <00:11:19.595>one

196
00:11:21.755 --> 00:11:25.215
<00:11:21.755>and <00:11:21.882>B <00:11:22.009>will <00:11:22.136>be <00:11:22.264>mapped <00:11:22.391>to <00:11:22.518>two <00:11:22.645>and <00:11:22.773>that <00:11:22.900>is <00:11:23.027>the <00:11:23.155>reason

197
00:11:25.555 --> 00:11:28.935
<00:11:25.555>and <00:11:25.755>an <00:11:25.954>example <00:11:26.155>where <00:11:26.354>you <00:11:26.555>can <00:11:26.755>use <00:11:26.954>keywords.

198
00:11:29.835 --> 00:11:30.935
<00:11:29.835>Uh, <00:11:30.330>Toby, <00:11:30.824>uh,

199
00:11:30.945 --> 00:11:33.215
<00:11:30.945>could <00:11:31.100>you <00:11:31.256>zoom <00:11:31.411>in <00:11:31.567>on <00:11:31.722>the <00:11:31.878>terminal <00:11:32.033>a <00:11:32.189>little <00:11:32.345>bit?

200
00:11:33.235 --> 00:11:36.255
<00:11:33.235>So <00:11:33.390>some <00:11:33.546>people <00:11:33.701>are <00:11:33.857>having <00:11:34.012>uh <00:11:34.168>uh, <00:11:34.323>trouble <00:11:34.479>seeing <00:11:34.635>it

201
00:11:40.145 --> 00:11:41.635
<00:11:40.145>Switching <00:11:40.480>to <00:11:40.815>the <00:11:41.150>chat <00:11:41.486>mode.

202
00:11:42.945 --> 00:11:46.165
<00:11:42.945>Is <00:11:43.100>that <00:11:43.256>now <00:11:43.411>better <00:11:43.567>because <00:11:43.722>I <00:11:43.878>cannot <00:11:44.033>zoom <00:11:44.189>even <00:11:44.345>more.

203
00:11:49.375 --> 00:11:53.095
<00:11:49.375>Okay, <00:11:49.725>next <00:11:50.075>to <00:11:50.425>the <00:11:50.775>maps

204
00:11:54.655 --> 00:11:59.235
<00:11:54.655>you <00:11:54.762>have <00:11:54.870>also <00:11:54.978>of <00:11:55.085>course <00:11:55.193>a <00:11:55.301>set <00:11:55.408>of <00:11:55.516>value <00:11:55.624>that <00:11:55.731>is <00:11:55.839>a <00:11:55.947>proper <00:11:56.055>set.

205
00:11:59.895 --> 00:12:02.875
<00:11:59.895>If <00:12:00.035>I <00:12:00.175>would <00:12:00.314>add <00:12:00.454>a <00:12:00.595>duplicated <00:12:00.735>key, <00:12:00.875>you <00:12:01.015>get <00:12:01.155>directing <00:12:01.295>error

206
00:12:02.875 --> 00:12:06.105
<00:12:02.875>because <00:12:03.075>twice <00:12:03.275>a <00:12:03.475>three <00:12:03.675>is <00:12:03.875>not <00:12:04.075>a <00:12:04.275>set

207
00:12:06.765 --> 00:12:09.145
<00:12:06.765>but <00:12:06.939>you <00:12:07.115>can <00:12:07.290>also <00:12:07.465>have <00:12:07.640>mixed <00:12:07.814>values <00:12:07.990>in <00:12:08.165>here

208
00:12:09.145 --> 00:12:11.065
<00:12:09.145>because <00:12:09.611>everything <00:12:10.078>is <00:12:10.545>allowed.

209
00:12:12.805 --> 00:12:16.415
<00:12:12.805>Next <00:12:13.005>maps, <00:12:13.204>we'll <00:12:13.405>see <00:12:13.604>vectors, <00:12:13.805>just <00:12:14.005>a <00:12:14.204>bunch

210
00:12:16.435 --> 00:12:18.335
<00:12:16.435>of <00:12:16.785>different <00:12:17.135>values <00:12:17.484>in <00:12:17.834>rated.

211
00:12:19.535 --> 00:12:22.235
<00:12:19.535>And <00:12:19.768>last <00:12:20.001>but <00:12:20.235>not <00:12:20.468>least, <00:12:20.701>there's <00:12:20.935>also

212
00:12:24.235 --> 00:12:27.195
<00:12:24.235>a <00:12:24.435>list <00:12:24.635>of <00:12:24.835>values <00:12:25.035>that's <00:12:25.235>also <00:12:25.435>very <00:12:25.635>useful,

213
00:12:27.525 --> 00:12:28.755
<00:12:27.525>those <00:12:28.078>four <00:12:28.632>collections.

214
00:12:28.935 --> 00:12:33.715
<00:12:28.935>So <00:12:29.090>lists, <00:12:29.246>vectors, <00:12:29.401>set <00:12:29.557>maps <00:12:29.712>are <00:12:29.868>all <00:12:30.023>collections <00:12:30.179>you <00:12:30.334>need,

215
00:12:34.865 --> 00:12:35.965
<00:12:34.865>if <00:12:35.112>this <00:12:35.360>was <00:12:35.607>to <00:12:35.855>fast,

216
00:12:36.015 --> 00:12:37.845
<00:12:36.015>there <00:12:36.189>will <00:12:36.365>be <00:12:36.540>a <00:12:36.715>summary <00:12:36.890>on <00:12:37.064>the <00:12:37.240>next <00:12:37.415>slide.

217
00:12:39.235 --> 00:12:41.645
<00:12:39.235>Then <00:12:39.515>coming <00:12:39.795>to <00:12:40.075>proper <00:12:40.355>closure <00:12:40.635>code

218
00:12:42.065 --> 00:12:45.795
<00:12:42.065>and <00:12:42.240>why <00:12:42.415>it <00:12:42.590>is <00:12:42.765>very <00:12:42.940>easy <00:12:43.115>If <00:12:43.290>you <00:12:43.465>want

219
00:12:45.815 --> 00:12:50.655
<00:12:45.815>to <00:12:45.955>execute <00:12:46.095>any <00:12:46.235>function <00:12:46.375>at <00:12:46.515>first <00:12:46.655>you <00:12:46.795>have <00:12:46.935>the <00:12:47.075>parent <00:12:47.215>thesis.

220
00:12:51.855 --> 00:12:54.585
<00:12:51.855>It's <00:12:52.055>like <00:12:52.255>back <00:12:52.455>in <00:12:52.655>school <00:12:52.855>when <00:12:53.055>math <00:12:53.255>was

221
00:12:54.585 --> 00:12:55.905
<00:12:54.585>maybe <00:12:54.882>not <00:12:55.179>her <00:12:55.476>best <00:12:55.773>friend.

222
00:12:57.175 --> 00:13:00.195
<00:12:57.175>It <00:12:57.330>is <00:12:57.486>that <00:12:57.641>the <00:12:57.797>most <00:12:57.952>inner <00:12:58.108>pair <00:12:58.263>of <00:12:58.419>parent <00:12:58.574>thesis

223
00:13:00.945 --> 00:13:03.355
<00:13:00.945>will <00:13:01.178>be <00:13:01.411>executed <00:13:01.645>in <00:13:01.878>the <00:13:02.111>first <00:13:02.345>part

224
00:13:04.455 --> 00:13:06.475
<00:13:04.455>and <00:13:04.688>the <00:13:04.921>structure <00:13:05.155>is <00:13:05.388>that <00:13:05.621>you <00:13:05.855>have

225
00:13:07.335 --> 00:13:09.195
<00:13:07.335>the <00:13:07.615>proper <00:13:07.895>function <00:13:08.175>in <00:13:08.455>the <00:13:08.735>beginning

226
00:13:10.295 --> 00:13:12.475
<00:13:10.295>and <00:13:10.528>then <00:13:10.761>we <00:13:10.995>have <00:13:11.228>all <00:13:11.461>the <00:13:11.694>arguments

227
00:13:13.475 --> 00:13:17.575
<00:13:13.475>and <00:13:13.602>you <00:13:13.729>see <00:13:13.856>that <00:13:13.984>this <00:13:14.111>is <00:13:14.238>already <00:13:14.365>a <00:13:14.493>list, <00:13:14.620>a <00:13:14.747>list <00:13:14.875>of

228
00:13:19.355 --> 00:13:23.775
<00:13:19.355>um, <00:13:19.510>some <00:13:19.666>different <00:13:19.821>arguments <00:13:19.977>in <00:13:20.132>here <00:13:20.288>that <00:13:20.443>will <00:13:20.599>be <00:13:20.755>executed

229
00:13:24.355 --> 00:13:28.005
<00:13:24.355>because <00:13:24.635>closure <00:13:24.915>itself <00:13:25.195>is <00:13:25.475>already <00:13:25.755>data

230
00:13:28.845 --> 00:13:30.605
<00:13:28.845>so <00:13:29.045>it's <00:13:29.245>more <00:13:29.445>or <00:13:29.645>less <00:13:29.845>everything <00:13:30.045>you <00:13:30.245>same.

231
00:13:30.625 --> 00:13:33.165
<00:13:30.625>You <00:13:30.825>write <00:13:31.025>your <00:13:31.225>closure <00:13:31.425>code <00:13:31.625>in <00:13:31.825>data <00:13:32.025>structure

232
00:13:34.145 --> 00:13:38.525
<00:13:34.145>and <00:13:34.378>if <00:13:34.611>I <00:13:34.845>would <00:13:35.078>now <00:13:35.311>add <00:13:35.545>another

233
00:13:39.055 --> 00:13:42.325
<00:13:39.055>value <00:13:39.255>in <00:13:39.454>here, <00:13:39.655>then <00:13:39.854>you <00:13:40.055>could <00:13:40.255>imagine <00:13:40.454>that

234
00:13:42.985 --> 00:13:44.485
<00:13:42.985>two <00:13:43.322>minus <00:13:43.660>one <00:13:43.997>is <00:13:44.335>one

235
00:13:45.345 --> 00:13:47.245
<00:13:45.345>and <00:13:45.625>one <00:13:45.905>plus <00:13:46.185>three <00:13:46.465>plus <00:13:46.745>four

236
00:13:47.965 --> 00:13:49.485
<00:13:47.965>I <00:13:48.193>guess <00:13:48.421>you <00:13:48.649>believe <00:13:48.877>me <00:13:49.105>it's <00:13:49.333>eight.

237
00:13:51.705 --> 00:13:55.085
<00:13:51.705>You <00:13:51.985>can <00:13:52.265>also <00:13:52.545>have <00:13:52.825>print <00:13:53.105>line

238
00:13:55.445 --> 00:13:58.485
<00:13:55.445>function <00:13:56.145>like <00:13:56.845>this.

239
00:13:59.105 --> 00:14:01.765
<00:13:59.105>The <00:13:59.280>print <00:13:59.455>line <00:13:59.630>function <00:13:59.805>will <00:13:59.980>print <00:14:00.155>out <00:14:00.330>the <00:14:00.505>value

240
00:14:02.465 --> 00:14:05.965
<00:14:02.465>but <00:14:02.665>will <00:14:02.865>be <00:14:03.065>executed <00:14:03.265>by <00:14:03.465>itself <00:14:03.665>to <00:14:03.865>know

241
00:14:07.195 --> 00:14:10.775
<00:14:07.195>and <00:14:07.428>we <00:14:07.661>can <00:14:07.895>just <00:14:08.128>combine <00:14:08.361>different <00:14:08.595>operations.

242
00:14:13.385 --> 00:14:15.565
<00:14:13.385>We <00:14:13.735>can <00:14:14.085>also <00:14:14.435>define <00:14:14.785>variables.

243
00:14:15.585 --> 00:14:17.325
<00:14:15.585>If <00:14:15.818>we <00:14:16.051>define <00:14:16.285>then <00:14:16.518>we <00:14:16.751>can <00:14:16.985>see

244
00:14:17.325 --> 00:14:19.365
<00:14:17.325>that <00:14:17.605>in <00:14:17.885>the <00:14:18.165>current <00:14:18.445>so-called <00:14:18.725>namespace

245
00:14:20.495 --> 00:14:22.175
<00:14:20.495>X <00:14:20.845>is <00:14:21.195>defined <00:14:21.545>as <00:14:21.895>seven.

246
00:14:23.635 --> 00:14:28.135
<00:14:23.635>And <00:14:23.810>if <00:14:23.985>we <00:14:24.160>now <00:14:24.335>say <00:14:24.510>We <00:14:24.685>define <00:14:24.860>a <00:14:25.035>function,

247
00:14:28.195 --> 00:14:31.535
<00:14:28.195>so <00:14:28.350>dev <00:14:28.506>n <00:14:28.661>the <00:14:28.817>function <00:14:28.972>has <00:14:29.128>the <00:14:29.283>name <00:14:29.439>of <00:14:29.595>random,

248
00:14:32.795 --> 00:14:36.175
<00:14:32.795>it <00:14:32.995>takes <00:14:33.194>one <00:14:33.395>parameter <00:14:33.594>that <00:14:33.795>is <00:14:33.995>just <00:14:34.194>numeric.

249
00:14:36.375 --> 00:14:37.495
<00:14:36.375>I <00:14:36.627>just <00:14:36.879>call <00:14:37.131>it <00:14:37.383>num.

250
00:14:37.615 --> 00:14:38.855
<00:14:37.615>I <00:14:37.838>can <00:14:38.061>also <00:14:38.284>call <00:14:38.507>it <00:14:38.731>N

251
00:14:39.795 --> 00:14:43.575
<00:14:39.795>and <00:14:39.995>it <00:14:40.194>is <00:14:40.395>now <00:14:40.594>adding <00:14:40.795>nu <00:14:40.995>plus <00:14:41.194>X

252
00:14:46.095 --> 00:14:49.535
<00:14:46.095>and <00:14:46.561>it <00:14:47.028>was <00:14:47.495>NX.

253
00:14:50.395 --> 00:14:53.525
<00:14:50.395>If <00:14:50.535>I <00:14:50.675>then <00:14:50.814>call <00:14:50.954>my <00:14:51.095>new <00:14:51.235>defined <00:14:51.375>function <00:14:51.515>that <00:14:51.655>is <00:14:51.795>random

254
00:14:55.255 --> 00:14:59.565
<00:14:55.255>57, <00:14:55.410>I <00:14:55.566>get <00:14:55.721>a <00:14:55.877>40 <00:14:56.032>or <00:14:56.188>I <00:14:56.343>get <00:14:56.499>an <00:14:56.655>11.

255
00:15:01.015 --> 00:15:02.515
<00:15:01.015>That's <00:15:01.352>the <00:15:01.689>magic <00:15:02.027>of <00:15:02.365>closure.

256
00:15:05.865 --> 00:15:10.605
<00:15:05.865>As <00:15:06.040>I <00:15:06.215>promised <00:15:06.390>you, <00:15:06.565>there <00:15:06.740>is <00:15:06.915>the <00:15:07.090>complete <00:15:07.265>set

257
00:15:10.605 --> 00:15:12.165
<00:15:10.605>of <00:15:10.885>different <00:15:11.165>things <00:15:11.445>we <00:15:11.725>have <00:15:12.005>seen

258
00:15:13.185 --> 00:15:17.005
<00:15:13.185>and <00:15:13.324>since <00:15:13.464>you <00:15:13.604>have <00:15:13.744>the <00:15:13.885>QR <00:15:14.025>code <00:15:14.165>for <00:15:14.305>the <00:15:14.444>slides <00:15:14.584>afterwards,

259
00:15:17.115 --> 00:15:18.845
<00:15:17.115>here <00:15:17.465>are <00:15:17.815>some <00:15:18.165>more <00:15:18.515>examples.

260
00:15:19.465 --> 00:15:22.445
<00:15:19.465>You <00:15:19.620>can <00:15:19.776>repeat <00:15:19.931>them <00:15:20.087>when <00:15:20.242>you're <00:15:20.398>looking <00:15:20.553>in <00:15:20.709>the <00:15:20.865>slides.

261
00:15:22.455 --> 00:15:27.175
<00:15:22.455>Again, <00:15:23.155>coming <00:15:23.855>back

262
00:15:27.195 --> 00:15:31.045
<00:15:27.195>to <00:15:27.395>closure <00:15:27.595>script, <00:15:27.795>you <00:15:27.995>may <00:15:28.195>be <00:15:28.395>now <00:15:28.595>overwhelmed

263
00:15:31.745 --> 00:15:35.205
<00:15:31.745>by <00:15:31.945>the <00:15:32.145>complete <00:15:32.345>list <00:15:32.545>of <00:15:32.745>different <00:15:32.945>instruction <00:15:33.145>here

264
00:15:35.985 --> 00:15:38.805
<00:15:35.985>but <00:15:36.160>that <00:15:36.335>should <00:15:36.510>only <00:15:36.685>give <00:15:36.860>you <00:15:37.035>an <00:15:37.210>example <00:15:37.385>from

265
00:15:38.915 --> 00:15:39.925
<00:15:38.915>left <00:15:39.218>to <00:15:39.521>the <00:15:39.824>right.

266
00:15:41.205 --> 00:15:44.925
<00:15:41.205>I <00:15:41.380>can <00:15:41.555>just <00:15:41.730>shrink <00:15:41.905>that <00:15:42.080>example <00:15:42.255>a <00:15:42.430>little <00:15:42.605>bit

267
00:15:49.845 --> 00:15:54.295
<00:15:49.845>That <00:15:50.020>that <00:15:50.195>you <00:15:50.370>can <00:15:50.545>see <00:15:50.720>how <00:15:50.895>java <00:15:51.070>script <00:15:51.245>code

268
00:15:55.045 --> 00:15:57.815
<00:15:55.045>will <00:15:55.278>be <00:15:55.511>converted <00:15:55.745>to <00:15:55.978>closure <00:15:56.211>script <00:15:56.444>code

269
00:15:58.775 --> 00:16:00.955
<00:15:58.775>and <00:15:58.949>with <00:15:59.125>that <00:15:59.300>you <00:15:59.475>can <00:15:59.650>also <00:15:59.824>do <00:16:00.000>the <00:16:00.175>same.

270
00:16:01.015 --> 00:16:03.075
<00:16:01.015>You <00:16:01.295>can <00:16:01.574>also <00:16:01.855>execute <00:16:02.135>closure <00:16:02.415>script

271
00:16:03.265 --> 00:16:06.675
<00:16:03.265>because <00:16:03.545>CLO <00:16:03.824>script <00:16:04.105>will <00:16:04.385>be <00:16:04.665>transpired

272
00:16:07.015 --> 00:16:11.115
<00:16:07.015>to <00:16:07.170>Java <00:16:07.326>script <00:16:07.481>code <00:16:07.637>and <00:16:07.792>that's <00:16:07.948>the <00:16:08.103>complete <00:16:08.259>magic <00:16:08.415>here.

273
00:16:13.145 --> 00:16:15.445
<00:16:13.145>For <00:16:13.378>example, <00:16:13.611>if <00:16:13.845>we <00:16:14.078>have <00:16:14.311>here <00:16:14.545>function

274
00:16:15.445 --> 00:16:18.085
<00:16:15.445>that <00:16:15.645>is <00:16:15.845>called <00:16:16.045>distance <00:16:16.245>of <00:16:16.445>two <00:16:16.645>different <00:16:16.845>points,

275
00:16:19.415 --> 00:16:22.425
<00:16:19.415>it's <00:16:19.648>define <00:16:19.881>a <00:16:20.115>function, <00:16:20.348>it's <00:16:20.581>called <00:16:20.814>distance.

276
00:16:23.455 --> 00:16:26.275
<00:16:23.455>We <00:16:23.655>have <00:16:23.855>here <00:16:24.055>now <00:16:24.255>two <00:16:24.455>arguments, <00:16:24.655>P <00:16:24.855>one

277
00:16:26.295 --> 00:16:30.035
<00:16:26.295>and <00:16:26.469>P <00:16:26.645>two <00:16:26.819>then <00:16:26.995>lead <00:16:27.170>is <00:16:27.344>a <00:16:27.520>key <00:16:27.694>word.

278
00:16:30.455 --> 00:16:32.315
<00:16:30.455>Two <00:16:31.155>define <00:16:31.855>variables.

279
00:16:33.255 --> 00:16:35.675
<00:16:33.255>We <00:16:33.488>have <00:16:33.721>some <00:16:33.955>fancy <00:16:34.188>expressions <00:16:34.421>in <00:16:34.655>here.

280
00:16:36.415 --> 00:16:37.915
<00:16:36.415>You <00:16:36.607>do <00:16:36.800>not <00:16:36.993>have <00:16:37.186>to <00:16:37.379>care <00:16:37.572>right <00:16:37.765>now

281
00:16:39.095 --> 00:16:40.875
<00:16:39.095>but <00:16:39.375>the <00:16:39.655>most <00:16:39.935>important <00:16:40.215>part <00:16:40.495>is

282
00:16:40.875 --> 00:16:44.555
<00:16:40.875>that <00:16:41.015>in <00:16:41.155>here <00:16:41.295>we <00:16:41.435>have <00:16:41.575>then <00:16:41.715>the <00:16:41.855>execution <00:16:41.995>of <00:16:42.135>the <00:16:42.275>distance

283
00:16:44.555 --> 00:16:45.635
<00:16:44.555>between <00:16:45.040>two <00:16:45.527>points.

284
00:16:46.305 --> 00:16:50.805
<00:16:46.305>That <00:16:46.479>is <00:16:46.655>A <00:16:46.829>times <00:16:47.005>A <00:16:47.180>plus <00:16:47.354>B <00:16:47.530>times <00:16:47.704>B

285
00:16:51.305 --> 00:16:54.205
<00:16:51.305>and <00:16:51.432>then <00:16:51.559>the <00:16:51.686>square <00:16:51.814>root, <00:16:51.941>it's <00:16:52.068>the <00:16:52.195>same <00:16:52.323>on <00:16:52.450>the <00:16:52.577>left <00:16:52.704>side

286
00:16:55.335 --> 00:16:57.675
<00:16:55.335>and <00:16:55.475>if <00:16:55.615>you're <00:16:55.755>going <00:16:55.895>through <00:16:56.035>the <00:16:56.175>slides <00:16:56.315>you <00:16:56.455>can <00:16:56.595>just <00:16:56.735>copy

287
00:16:57.725 --> 00:16:59.795
<00:16:57.725>paste <00:16:57.958>in <00:16:58.191>your <00:16:58.425>JavaScript <00:16:58.658>code <00:16:58.891>you <00:16:59.125>have

288
00:17:00.295 --> 00:17:03.515
<00:17:00.295>and <00:17:00.435>just <00:17:00.574>see <00:17:00.714>how <00:17:00.854>it's <00:17:00.995>looking <00:17:01.135>like <00:17:01.275>on <00:17:01.415>close <00:17:01.555>script <00:17:01.694>side.

289
00:17:08.055 --> 00:17:10.635
<00:17:08.055>Coming <00:17:08.288>to <00:17:08.521>close <00:17:08.755>on <00:17:08.988>close <00:17:09.221>script <00:17:09.455>basics.

290
00:17:11.215 --> 00:17:13.475
<00:17:11.214>You <00:17:11.415>may <00:17:11.615>have <00:17:11.814>noticed <00:17:12.014>that <00:17:12.214>I <00:17:12.415>use <00:17:12.615>closure

291
00:17:13.475 --> 00:17:16.035
<00:17:13.474>and <00:17:13.754>closure <00:17:14.034>script <00:17:14.314>simultaneously <00:17:14.594>as <00:17:14.875>wording

292
00:17:16.035 --> 00:17:18.845
<00:17:16.035>because <00:17:16.315>it's <00:17:16.595>right <00:17:16.875>now <00:17:17.155>the <00:17:17.435>same

293
00:17:18.845 --> 00:17:21.205
<00:17:18.845>because <00:17:19.020>the <00:17:19.194>one <00:17:19.370>could <00:17:19.545>be <00:17:19.720>transpired <00:17:19.895>to <00:17:20.069>the <00:17:20.245>other

294
00:17:21.625 --> 00:17:24.645
<00:17:21.625>and <00:17:21.780>in <00:17:21.936>the <00:17:22.091>end <00:17:22.247>everything <00:17:22.402>can <00:17:22.558>be <00:17:22.713>transpired <00:17:22.869>to <00:17:23.025>JavaScript.

295
00:17:26.515 --> 00:17:29.245
<00:17:26.515>What <00:17:26.655>we'll <00:17:26.795>need <00:17:26.935>for <00:17:27.075>the <00:17:27.215>live <00:17:27.355>demo <00:17:27.495>in <00:17:27.635>a <00:17:27.775>few <00:17:27.915>minutes

296
00:17:31.185 --> 00:17:34.445
<00:17:31.185>is <00:17:31.418>um <00:17:31.651>tool <00:17:31.885>called <00:17:32.118>depths <00:17:32.351>EDM <00:17:32.585>depths.

297
00:17:34.525 --> 00:17:36.805
<00:17:34.525>EBM <00:17:34.875>is <00:17:35.225>the <00:17:35.575>configuration <00:17:35.925>file

298
00:17:36.985 --> 00:17:39.005
<00:17:36.985>for <00:17:37.334>your <00:17:37.685>closure <00:17:38.034>script <00:17:38.385>project.

299
00:17:40.405 --> 00:17:43.105
<00:17:40.405>Mainly <00:17:40.685>it's <00:17:40.965>a <00:17:41.245>mapping <00:17:41.524>between <00:17:41.805>keywords

300
00:17:43.875 --> 00:17:45.895
<00:17:43.875>and <00:17:44.108>the <00:17:44.341>different <00:17:44.575>libraries <00:17:44.808>you <00:17:45.041>are <00:17:45.275>going

301
00:17:45.895 --> 00:17:47.055
<00:17:45.895>to <00:17:46.156>use <00:17:46.417>within <00:17:46.678>the <00:17:46.939>project.

302
00:17:48.215 --> 00:17:50.335
<00:17:48.215>Here <00:17:48.415>you <00:17:48.615>have <00:17:48.814>have <00:17:49.014>the <00:17:49.215>path <00:17:49.415>of <00:17:49.615>source

303
00:17:50.385 --> 00:17:52.175
<00:17:50.385>where <00:17:50.665>all <00:17:50.945>your <00:17:51.225>source <00:17:51.504>code <00:17:51.785>is

304
00:17:52.935 --> 00:17:55.755
<00:17:52.935>and <00:17:53.168>then <00:17:53.401>inside <00:17:53.635>depths <00:17:53.868>of <00:17:54.101>course <00:17:54.335>dependencies

305
00:17:56.325 --> 00:17:59.875
<00:17:56.325>we'll <00:17:56.480>use <00:17:56.636>closure <00:17:56.791>in <00:17:56.947>a <00:17:57.102>specific <00:17:57.258>version <00:17:57.413>from <00:17:57.569>the <00:17:57.725>MBN

306
00:18:00.155 --> 00:18:03.435
<00:18:00.155>repository <00:18:00.330>and <00:18:00.504>also <00:18:00.680>closure <00:18:00.855>script <00:18:01.030>in <00:18:01.205>a <00:18:01.379>specific <00:18:01.555>version.

307
00:18:04.105 --> 00:18:07.805
<00:18:04.105>That's <00:18:04.338>everything <00:18:04.571>about <00:18:04.805>depths <00:18:05.038>EBM <00:18:05.271>very <00:18:05.505>simply

308
00:18:07.905 --> 00:18:09.885
<00:18:07.905>as <00:18:08.185>you <00:18:08.465>can <00:18:08.745>see, <00:18:09.024>no <00:18:09.305>nasty.

309
00:18:10.385 --> 00:18:13.285
<00:18:10.385>Um, <00:18:10.618>whatever <00:18:10.851>you <00:18:11.085>have <00:18:11.318>in <00:18:11.551>other <00:18:11.785>languages

310
00:18:15.195 --> 00:18:19.015
<00:18:15.195>you <00:18:15.350>can <00:18:15.506>also <00:18:15.661>add <00:18:15.817>different <00:18:15.972>repositories <00:18:16.128>that <00:18:16.283>your <00:18:16.439>code <00:18:16.595>knows

311
00:18:19.015 --> 00:18:20.015
<00:18:19.015>where <00:18:19.240>to <00:18:19.465>look <00:18:19.690>it <00:18:19.915>up.

312
00:18:20.515 --> 00:18:23.215
<00:18:20.515>And <00:18:20.715>here <00:18:20.915>we <00:18:21.115>have <00:18:21.315>two <00:18:21.515>different <00:18:21.715>pository <00:18:21.915>repositories,

313
00:18:23.315 --> 00:18:25.935
<00:18:23.315>one <00:18:23.490>the <00:18:23.665>Maven <00:18:23.840>and <00:18:24.015>the <00:18:24.190>other <00:18:24.365>one <00:18:24.540>EC <00:18:24.715>one

314
00:18:26.295 --> 00:18:27.735
<00:18:26.295>provided <00:18:26.727>by <00:18:27.158>closure <00:18:27.591>itself.

315
00:18:30.635 --> 00:18:32.765
<00:18:30.635>Then <00:18:31.335>shadow <00:18:32.035>ence

316
00:18:34.055 --> 00:18:37.315
<00:18:34.055>shadow <00:18:34.335>closure <00:18:34.615>script <00:18:34.895>is <00:18:35.175>um <00:18:35.455>environment

317
00:18:37.315 --> 00:18:39.075
<00:18:37.315>that <00:18:37.665>provides <00:18:38.015>everything <00:18:38.365>you <00:18:38.715>need

318
00:18:39.135 --> 00:18:42.835
<00:18:39.135>to <00:18:39.335>compile <00:18:39.535>your <00:18:39.735>CLO <00:18:39.935>group <00:18:40.135>code <00:18:40.335>with <00:18:40.535>really

319
00:18:43.405 --> 00:18:45.915
<00:18:43.405>focus <00:18:43.638>on <00:18:43.871>simplicity <00:18:44.105>and <00:18:44.338>ease <00:18:44.571>of <00:18:44.805>use.

320
00:18:47.405 --> 00:18:49.265
<00:18:47.405>The <00:18:47.605>only <00:18:47.805>thing <00:18:48.004>you <00:18:48.205>need <00:18:48.405>to <00:18:48.605>know <00:18:48.805>is

321
00:18:49.335 --> 00:18:51.585
<00:18:49.335>that <00:18:49.615>you <00:18:49.895>have <00:18:50.175>somewhere <00:18:50.455>in <00:18:50.735>port

322
00:18:52.075 --> 00:18:53.705
<00:18:52.075>where <00:18:52.425>your <00:18:52.775>application <00:18:53.125>will <00:18:53.475>run

323
00:18:54.525 --> 00:18:57.665
<00:18:54.525>and <00:18:54.700>then <00:18:54.875>it <00:18:55.050>does <00:18:55.225>some <00:18:55.400>magic <00:18:55.575>in <00:18:55.750>here <00:18:55.925>like

324
00:18:58.255 --> 00:19:03.065
<00:18:58.255>this <00:18:58.382>part <00:18:58.509>is <00:18:58.636>only <00:18:58.764>the <00:18:58.891>in <00:18:59.018>it <00:18:59.145>function <00:18:59.273>of <00:18:59.400>your <00:18:59.527>complete <00:18:59.655>code.

325
00:19:03.075 --> 00:19:04.345
<00:19:03.075>Where <00:19:03.360>I <00:19:03.646>see <00:19:03.932>starting <00:19:04.218>point

326
00:19:05.775 --> 00:19:09.875
<00:19:05.775>for <00:19:05.915>a <00:19:06.055>web <00:19:06.195>project <00:19:06.335>you <00:19:06.475>will <00:19:06.615>also <00:19:06.755>have <00:19:06.895>an <00:19:07.035>output <00:19:07.175>directory

327
00:19:10.615 --> 00:19:11.995
<00:19:10.615>and <00:19:11.029>some <00:19:11.443>asset <00:19:11.857>path.

328
00:19:13.935 --> 00:19:16.275
<00:19:13.935>You <00:19:14.110>will <00:19:14.284>see <00:19:14.460>that <00:19:14.635>combined <00:19:14.810>in <00:19:14.985>a <00:19:15.159>few <00:19:15.335>seconds

329
00:19:19.185 --> 00:19:21.645
<00:19:19.185>And <00:19:19.360>the <00:19:19.534>last <00:19:19.710>thing <00:19:19.885>I <00:19:20.060>want <00:19:20.235>to <00:19:20.409>talk <00:19:20.585>about

330
00:19:23.025 --> 00:19:27.165
<00:19:23.025>is <00:19:23.200>reframe <00:19:23.375>the <00:19:23.550>awesome <00:19:23.725>library <00:19:23.900>I <00:19:24.075>have <00:19:24.250>used <00:19:24.425>for

331
00:19:27.795 --> 00:19:28.795
<00:19:27.795>closure <00:19:28.245>script <00:19:28.695>here.

332
00:19:30.875 --> 00:19:35.115
<00:19:30.875>Reframe <00:19:31.030>or <00:19:31.186>in <00:19:31.341>general <00:19:31.497>closure <00:19:31.652>is <00:19:31.808>in <00:19:31.963>home <00:19:32.119>iconic <00:19:32.275>programming

333
00:19:35.435 --> 00:19:38.995
<00:19:35.435>language <00:19:35.635>so <00:19:35.835>it <00:19:36.034>can <00:19:36.235>be <00:19:36.435>manipulated <00:19:36.635>as <00:19:36.835>data

334
00:19:39.055 --> 00:19:40.955
<00:19:39.055>as <00:19:39.405>using <00:19:39.755>the <00:19:40.105>language <00:19:40.455>and

335
00:19:40.955 --> 00:19:43.595
<00:19:40.955>therefore <00:19:41.155>somehow <00:19:41.355>data <00:19:41.554>is <00:19:41.754>code, <00:19:41.955>code <00:19:42.155>is <00:19:42.355>data.

336
00:19:44.095 --> 00:19:45.915
<00:19:44.095>You <00:19:44.445>are <00:19:44.795>just <00:19:45.145>programming <00:19:45.495>data

337
00:19:46.455 --> 00:19:50.635
<00:19:46.455>and <00:19:46.629>that's <00:19:46.804>also <00:19:46.980>the <00:19:47.155>approach <00:19:47.330>of <00:19:47.504>reframe <00:19:47.679>in <00:19:47.855>total

338
00:19:51.595 --> 00:19:55.555
<00:19:51.595>reframe <00:19:51.770>is <00:19:51.945>dealing <00:19:52.120>in <00:19:52.295>dominoes <00:19:52.470>in <00:19:52.645>six <00:19:52.820>different <00:19:52.995>steps.

339
00:19:56.415 --> 00:19:59.595
<00:19:56.415>The <00:19:56.648>first <00:19:56.881>one <00:19:57.115>here <00:19:57.348>is <00:19:57.581>event <00:19:57.815>dispatching.

340
00:20:00.445 --> 00:20:04.145
<00:20:00.445>So <00:20:00.585>every <00:20:00.725>time <00:20:00.865>we <00:20:01.004>are <00:20:01.145>doing <00:20:01.284>something <00:20:01.425>close <00:20:01.564>group <00:20:01.705>we <00:20:01.845>want

341
00:20:04.145 --> 00:20:06.425
<00:20:04.145>to <00:20:04.378>manipulate <00:20:04.611>something <00:20:04.845>we <00:20:05.078>haven't <00:20:05.311>button <00:20:05.545>click

342
00:20:07.125 --> 00:20:08.425
<00:20:07.125>you <00:20:07.359>are <00:20:07.593>standing <00:20:07.827>in <00:20:08.061>an <00:20:08.295>event.

343
00:20:09.705 --> 00:20:13.845
<00:20:09.705>Second <00:20:09.879>domino <00:20:10.054>is <00:20:10.230>then <00:20:10.405>you <00:20:10.580>are <00:20:10.754>taking <00:20:10.929>an <00:20:11.105>action,

344
00:20:13.995 --> 00:20:15.125
<00:20:13.995>it's <00:20:14.333>the <00:20:14.673>event <00:20:15.012>handing.

345
00:20:15.385 --> 00:20:19.525
<00:20:15.385>So <00:20:15.525>every <00:20:15.665>time <00:20:15.805>you <00:20:15.945>fire <00:20:16.085>an <00:20:16.225>event <00:20:16.365>someone <00:20:16.504>should <00:20:16.645>react <00:20:16.785>on

346
00:20:19.525 --> 00:20:23.845
<00:20:19.525>that <00:20:19.725>event <00:20:19.925>that <00:20:20.125>is <00:20:20.325>strictly <00:20:20.525>separated <00:20:20.725>in <00:20:20.925>reframe.

347
00:20:25.835 --> 00:20:28.305
<00:20:25.835>Third <00:20:26.115>step <00:20:26.395>is <00:20:26.675>then <00:20:26.955>effect, <00:20:27.235>hand

348
00:20:29.005 --> 00:20:30.705
<00:20:29.005>effect <00:20:29.355>ending <00:20:29.705>not <00:20:30.055>event <00:20:30.405>handling

349
00:20:31.015 --> 00:20:35.815
<00:20:31.015>because <00:20:31.248>side <00:20:31.481>effects <00:20:31.715>when <00:20:31.948>data <00:20:32.181>are <00:20:32.415>actions.

350
00:20:36.275 --> 00:20:38.895
<00:20:36.275>So <00:20:36.415>at <00:20:36.555>some <00:20:36.695>points <00:20:36.835>you <00:20:36.975>want <00:20:37.115>to <00:20:37.255>write <00:20:37.395>to <00:20:37.535>your <00:20:37.675>database,

351
00:20:39.315 --> 00:20:42.735
<00:20:39.315>you <00:20:39.490>want <00:20:39.665>to <00:20:39.840>manipulate <00:20:40.015>some <00:20:40.190>state, <00:20:40.365>you <00:20:40.540>just <00:20:40.715>have

352
00:20:43.285 --> 00:20:44.095
<00:20:43.285>side <00:20:44.014>effects

353
00:20:48.355 --> 00:20:52.495
<00:20:48.355>And <00:20:48.495>since <00:20:48.635>there's <00:20:48.775>also <00:20:48.915>a <00:20:49.055>fourth <00:20:49.195>one <00:20:49.335>it <00:20:49.475>should <00:20:49.615>be <00:20:49.755>then

354
00:20:53.235 --> 00:20:56.095
<00:20:53.235>the <00:20:53.390>extract <00:20:53.546>from <00:20:53.701>the <00:20:53.857>app <00:20:54.012>state <00:20:54.168>because <00:20:54.323>in <00:20:54.479>the <00:20:54.635>state

355
00:20:56.095 --> 00:20:58.255
<00:20:56.095>before <00:20:56.445>you <00:20:56.795>have <00:20:57.145>manipulated <00:20:57.495>everything

356
00:20:58.795 --> 00:21:01.855
<00:20:58.795>and <00:20:58.935>now <00:20:59.075>the <00:20:59.215>new <00:20:59.355>state <00:20:59.495>has <00:20:59.635>to <00:20:59.775>go <00:20:59.915>to <00:21:00.055>the <00:21:00.195>app

357
00:21:02.555 --> 00:21:05.015
<00:21:02.555>and <00:21:02.835>has <00:21:03.115>to <00:21:03.395>renew <00:21:03.675>some <00:21:03.955>components.

358
00:21:05.635 --> 00:21:07.655
<00:21:05.635>You <00:21:05.915>have <00:21:06.195>to <00:21:06.475>re-trigger <00:21:06.754>the <00:21:07.035>ui.

359
00:21:08.035 --> 00:21:11.255
<00:21:08.035>You <00:21:08.175>have <00:21:08.315>maybe <00:21:08.455>to <00:21:08.595>change <00:21:08.735>the <00:21:08.875>checkout <00:21:09.015>button <00:21:09.155>in <00:21:09.295>the <00:21:09.435>top

360
00:21:11.255 --> 00:21:14.655
<00:21:11.255>that <00:21:11.395>there's <00:21:11.535>a <00:21:11.675>new <00:21:11.815>icon, <00:21:11.955>a <00:21:12.095>new <00:21:12.235>item <00:21:12.375>in <00:21:12.515>the <00:21:12.655>card,

361
00:21:15.295 --> 00:21:18.555
<00:21:15.295>whatever <00:21:15.995>fifth <00:21:16.695>part.

362
00:21:18.895 --> 00:21:21.675
<00:21:18.895>Yep <00:21:19.095>already <00:21:19.295>said <00:21:19.495>that <00:21:19.695>there's <00:21:19.895>then <00:21:20.095>random <00:21:20.295>UI

363
00:21:21.675 --> 00:21:24.355
<00:21:21.675>after <00:21:21.850>you <00:21:22.024>have <00:21:22.200>created <00:21:22.375>your <00:21:22.550>your <00:21:22.725>app <00:21:22.899>stay <00:21:23.075>state

364
00:21:25.095 --> 00:21:29.275
<00:21:25.095>and <00:21:25.235>the <00:21:25.375>last <00:21:25.515>one <00:21:25.655>is <00:21:25.795>really <00:21:25.935>manipulating <00:21:26.075>the <00:21:26.215>dom <00:21:26.355>if <00:21:26.495>needed.

365
00:21:29.985 --> 00:21:32.755
<00:21:29.985>That <00:21:30.218>is <00:21:30.451>done <00:21:30.685>by <00:21:30.918>React <00:21:31.151>and <00:21:31.385>reagent

366
00:21:32.755 --> 00:21:35.795
<00:21:32.755>because <00:21:32.988>Reframe <00:21:33.221>is <00:21:33.455>on <00:21:33.688>top <00:21:33.921>of <00:21:34.155>React

367
00:21:35.795 --> 00:21:38.595
<00:21:35.795>and <00:21:35.995>reagent <00:21:36.195>that <00:21:36.395>are <00:21:36.595>also <00:21:36.795>libraries <00:21:36.995>well <00:21:37.195>known

368
00:21:38.595 --> 00:21:39.835
<00:21:38.595>for <00:21:39.153>JavaScript <00:21:39.711>developers

369
00:21:40.375 --> 00:21:43.475
<00:21:40.375>and <00:21:40.550>Reframe <00:21:40.725>just <00:21:40.900>does <00:21:41.075>all <00:21:41.250>the <00:21:41.425>magic <00:21:41.600>for <00:21:41.775>you

370
00:21:46.895 --> 00:21:49.265
<00:21:46.895>Here <00:21:47.128>I <00:21:47.361>have <00:21:47.595>now <00:21:47.828>a <00:21:48.061>few <00:21:48.295>examples

371
00:21:49.325 --> 00:21:51.505
<00:21:49.325>how <00:21:49.525>it <00:21:49.725>could <00:21:49.925>look <00:21:50.125>like <00:21:50.325>for <00:21:50.525>you <00:21:50.725>afterwards.

372
00:21:51.745 --> 00:21:54.025
<00:21:51.745>I <00:21:51.978>will <00:21:52.211>just <00:21:52.445>jump <00:21:52.678>over <00:21:52.911>the <00:21:53.145>slides

373
00:21:54.025 --> 00:21:58.185
<00:21:54.025>because <00:21:54.200>I <00:21:54.375>guess <00:21:54.550>it's <00:21:54.725>more <00:21:54.900>interesting <00:21:55.075>to <00:21:55.250>really <00:21:55.425>see

374
00:21:59.405 --> 00:22:00.985
<00:21:59.405>how <00:21:59.871>the <00:22:00.338>final <00:22:00.805>code

375
00:22:01.365 --> 00:22:05.425
<00:22:01.365>and <00:22:01.492>how <00:22:01.619>this <00:22:01.746>web <00:22:01.874>shop <00:22:02.001>could <00:22:02.128>not <00:22:02.255>uh, <00:22:02.383>could <00:22:02.510>now <00:22:02.637>look <00:22:02.765>like

376
00:22:06.535 --> 00:22:10.435
<00:22:06.535>and <00:22:06.651>just <00:22:06.768>looking <00:22:06.885>in <00:22:07.001>the <00:22:07.118>shed <00:22:07.235>I <00:22:07.351>guess <00:22:07.468>you <00:22:07.585>are <00:22:07.701>still <00:22:07.818>with <00:22:07.935>me,

377
00:22:10.465 --> 00:22:11.715
<00:22:10.465>just <00:22:10.689>give <00:22:10.915>me <00:22:11.139>a <00:22:11.365>sense <00:22:11.590>up

378
00:22:11.735 --> 00:22:13.955
<00:22:11.735>or <00:22:11.935>any <00:22:12.135>message <00:22:12.334>if <00:22:12.534>you <00:22:12.735>are <00:22:12.935>still <00:22:13.135>alive.

379
00:22:19.665 --> 00:22:22.365
<00:22:19.665>At <00:22:19.805>least <00:22:19.945>our <00:22:20.085>moderat <00:22:20.225>are <00:22:20.365>still <00:22:20.504>awake. <00:22:20.645>Good <00:22:20.784>to <00:22:20.925>know <00:22:21.065>Justin.

380
00:22:29.245 --> 00:22:31.295
<00:22:29.245>Okay, <00:22:29.524>two <00:22:29.804>people, <00:22:30.084>3, <00:22:30.364>4, <00:22:30.645>5.

381
00:22:33.525 --> 00:22:35.175
<00:22:33.525>Some <00:22:33.758>people <00:22:33.991>have <00:22:34.225>made <00:22:34.458>it <00:22:34.691>until <00:22:34.925>here

382
00:22:35.565 --> 00:22:38.935
<00:22:35.565>because <00:22:35.740>I <00:22:35.915>needed <00:22:36.090>to <00:22:36.265>squeeze <00:22:36.440>in <00:22:36.615>as <00:22:36.790>much <00:22:36.965>context

383
00:22:39.115 --> 00:22:40.695
<00:22:39.115>to <00:22:39.581>fully <00:22:40.048>understand <00:22:40.515>everything

384
00:22:44.005 --> 00:22:46.095
<00:22:44.005>When <00:22:44.205>we <00:22:44.405>are <00:22:44.605>now <00:22:44.805>looking <00:22:45.005>on <00:22:45.205>the <00:22:45.405>workshop.

385
00:22:46.685 --> 00:22:49.215
<00:22:46.685>That <00:22:46.885>is <00:22:47.085>the <00:22:47.284>workshop <00:22:47.485>I <00:22:47.685>have <00:22:47.885>written <00:22:48.085>in

386
00:22:49.575 --> 00:22:50.855
<00:22:49.575>closure <00:22:49.959>script <00:22:50.343>from <00:22:50.727>you.

387
00:22:50.865 --> 00:22:53.495
<00:22:50.865>Everything <00:22:51.098>is <00:22:51.331>open <00:22:51.565>source <00:22:51.798>hosted <00:22:52.031>on <00:22:52.265>GitHub.

388
00:22:53.505 --> 00:22:55.895
<00:22:53.505>Afterwards <00:22:53.971>you <00:22:54.438>can <00:22:54.905>see

389
00:22:56.975 --> 00:22:58.815
<00:22:56.975>I <00:22:57.149>can <00:22:57.324>increase <00:22:57.500>the <00:22:57.675>font <00:22:57.850>size <00:22:58.024>a <00:22:58.199>little <00:22:58.375>bit.

390
00:22:58.815 --> 00:23:02.135
<00:22:58.815>Again <00:22:58.955>we <00:22:59.095>have <00:22:59.235>here <00:22:59.375>the <00:22:59.515>checkout <00:22:59.655>button <00:22:59.795>I <00:22:59.935>have <00:23:00.075>already <00:23:00.215>talked

391
00:23:02.135 --> 00:23:04.015
<00:23:02.135>about <00:23:02.485>you <00:23:02.835>have <00:23:03.185>some <00:23:03.535>items

392
00:23:05.315 --> 00:23:07.215
<00:23:05.315>of <00:23:05.665>our <00:23:06.015>beloved <00:23:06.365>metro <00:23:06.715>company

393
00:23:07.955 --> 00:23:10.935
<00:23:07.955>and <00:23:08.129>you <00:23:08.304>have <00:23:08.480>some <00:23:08.655>buttons <00:23:08.830>where <00:23:09.004>you <00:23:09.179>can <00:23:09.355>interact.

394
00:23:11.595 --> 00:23:14.335
<00:23:11.595>If <00:23:11.750>I <00:23:11.906>want <00:23:12.061>to <00:23:12.217>click <00:23:12.372>minus, <00:23:12.528>we <00:23:12.683>have <00:23:12.839>a <00:23:12.995>warning

395
00:23:14.405 --> 00:23:17.655
<00:23:14.405>that <00:23:14.560>we <00:23:14.716>cannot <00:23:14.871>have <00:23:15.027>any <00:23:15.182>amount <00:23:15.338>or <00:23:15.493>any <00:23:15.649>negative <00:23:15.805>amount

396
00:23:18.435 --> 00:23:21.015
<00:23:18.435>but <00:23:18.668>I <00:23:18.901>can <00:23:19.135>just <00:23:19.368>increase <00:23:19.601>the <00:23:19.835>articles.

397
00:23:21.205 --> 00:23:24.495
<00:23:21.205>Then <00:23:21.321>I <00:23:21.438>have <00:23:21.554>one <00:23:21.671>I <00:23:21.788>can <00:23:21.905>put <00:23:22.021>in <00:23:22.138>another <00:23:22.254>one <00:23:22.371>then <00:23:22.488>it's <00:23:22.605>a

398
00:23:24.495 --> 00:23:26.335
<00:23:24.495>two <00:23:24.961>and <00:23:25.428>so <00:23:25.895>on.

399
00:23:26.855 --> 00:23:28.095
<00:23:26.855>I <00:23:27.078>guess <00:23:27.301>you <00:23:27.524>get <00:23:27.747>the <00:23:27.971>concept

400
00:23:29.445 --> 00:23:32.705
<00:23:29.445>and <00:23:29.600>inside <00:23:29.756>the <00:23:29.911>checkout <00:23:30.067>I <00:23:30.222>can <00:23:30.378>then <00:23:30.533>see <00:23:30.689>the <00:23:30.845>different

401
00:23:33.145 --> 00:23:34.465
<00:23:33.145>articles <00:23:33.442>I <00:23:33.739>have <00:23:34.035>in <00:23:34.332>here.

402
00:23:34.855 --> 00:23:39.785
<00:23:34.855>Like <00:23:34.971>I <00:23:35.088>had <00:23:35.205>four <00:23:35.321>times <00:23:35.438>the <00:23:35.555>olive <00:23:35.671>oil, <00:23:35.788>two <00:23:35.905>times <00:23:36.021>the <00:23:36.138>ice <00:23:36.255>cream

403
00:23:39.845 --> 00:23:41.225
<00:23:39.845>and <00:23:40.155>one <00:23:40.466>times <00:23:40.776>the <00:23:41.087>veggies

404
00:23:41.845 --> 00:23:46.035
<00:23:41.845>and <00:23:42.078>if <00:23:42.311>I <00:23:42.545>remove <00:23:42.778>everything <00:23:43.011>it's <00:23:43.245>JavaScript

405
00:23:46.035 --> 00:23:48.595
<00:23:46.035>with <00:23:46.235>CSSI <00:23:46.435>get <00:23:46.635>a <00:23:46.835>not <00:23:47.035>amused <00:23:47.235>manager <00:23:47.435>card

406
00:23:48.595 --> 00:23:51.155
<00:23:48.595>because <00:23:48.875>our <00:23:49.155>shopping <00:23:49.435>cart <00:23:49.715>is <00:23:49.995>empty.

407
00:23:52.495 --> 00:23:54.425
<00:23:52.495>That <00:23:52.844>is <00:23:53.195>everything. <00:23:53.544>Enclosure <00:23:53.895>script

408
00:23:56.085 --> 00:23:57.745
<00:23:56.085>and <00:23:56.365>now <00:23:56.645>coming <00:23:56.925>to <00:23:57.205>the <00:23:57.485>heart

409
00:23:57.765 --> 00:24:01.305
<00:23:57.765>and <00:23:57.998>soul <00:23:58.231>again <00:23:58.465>I <00:23:58.698>have <00:23:58.931>to <00:23:59.165>ask

410
00:24:01.885 --> 00:24:05.545
<00:24:01.885>is <00:24:02.040>the <00:24:02.196>font <00:24:02.351>size <00:24:02.507>fine <00:24:02.662>or <00:24:02.818>should <00:24:02.973>I <00:24:03.129>increase <00:24:03.285>again

411
00:24:11.885 --> 00:24:13.535
<00:24:11.885>Waiting <00:24:12.351>for <00:24:12.818>any <00:24:13.285>response?

412
00:24:16.355 --> 00:24:16.575
No,

413
00:24:36.325 --> 00:24:37.915
<00:24:36.325>still <00:24:36.791>slight <00:24:37.258>increase <00:24:37.725>needed.

414
00:24:38.705 --> 00:24:40.235
<00:24:38.705>Hopefully <00:24:39.164>this <00:24:39.622>is <00:24:40.081>enough.

415
00:24:42.075 --> 00:24:44.685
<00:24:42.075>Okay, <00:24:42.541>you're <00:24:43.008>welcome <00:24:43.475>Marty.

416
00:24:46.615 --> 00:24:48.475
<00:24:46.615>The <00:24:46.965>project <00:24:47.315>itself <00:24:47.665>it <00:24:48.015>has

417
00:24:48.655 --> 00:24:51.715
<00:24:48.655>and <00:24:48.795>read <00:24:48.935>me <00:24:49.075>where <00:24:49.215>you <00:24:49.355>just <00:24:49.495>have <00:24:49.635>every <00:24:49.774>note <00:24:49.915>you <00:24:50.055>need

418
00:24:51.715 --> 00:24:52.955
<00:24:51.715>to <00:24:51.938>run <00:24:52.161>it <00:24:52.384>on <00:24:52.607>your <00:24:52.831>own.

419
00:24:52.975 --> 00:24:55.315
<00:24:52.975>Either <00:24:53.324>you <00:24:53.675>instore <00:24:54.024>closure <00:24:54.375>script

420
00:24:55.415 --> 00:24:58.155
<00:24:55.415>or <00:24:55.555>you <00:24:55.695>just <00:24:55.835>have <00:24:55.975>a <00:24:56.115>docker <00:24:56.254>environment <00:24:56.395>to <00:24:56.534>play <00:24:56.675>a <00:24:56.815>lot.

421
00:24:59.855 --> 00:25:03.265
<00:24:59.855>Then <00:25:00.055>inside <00:25:00.255>the <00:25:00.455>project <00:25:00.655>you <00:25:00.855>make <00:25:01.055>an <00:25:01.255>estimate.

422
00:25:03.285 --> 00:25:04.545
<00:25:03.285>Now <00:25:03.568>on <00:25:03.852>the <00:25:04.135>left <00:25:04.419>side

423
00:25:06.765 --> 00:25:09.975
<00:25:06.765>that <00:25:06.940>I <00:25:07.115>guess <00:25:07.290>the <00:25:07.465>font <00:25:07.640>size <00:25:07.815>is <00:25:07.990>small <00:25:08.165>again,

424
00:25:11.555 --> 00:25:14.495
<00:25:11.555>let <00:25:11.755>me <00:25:11.955>just <00:25:12.155>try <00:25:12.355>to <00:25:12.555>enter <00:25:12.755>presentation <00:25:12.955>mode.

425
00:25:14.805 --> 00:25:17.895
<00:25:14.805>That <00:25:15.038>should <00:25:15.271>be <00:25:15.505>even <00:25:15.738>better <00:25:15.971>for <00:25:16.205>you.

426
00:25:20.165 --> 00:25:22.575
<00:25:20.165>It's <00:25:20.445>not <00:25:20.725>opening <00:25:21.004>presentation <00:25:21.284>mode. <00:25:21.565>Hello?

427
00:25:23.915 --> 00:25:25.515
<00:25:23.915>I <00:25:24.264>think <00:25:24.615>appearance <00:25:24.965>there <00:25:25.315>it's

428
00:25:28.165 --> 00:25:30.895
<00:25:28.165>that <00:25:28.320>should <00:25:28.476>be <00:25:28.631>now <00:25:28.787>more <00:25:28.942>visible <00:25:29.098>to <00:25:29.253>all <00:25:29.409>of <00:25:29.565>you.

429
00:25:32.445 --> 00:25:34.895
<00:25:32.445>That <00:25:32.678>is <00:25:32.911>now <00:25:33.145>the <00:25:33.378>depth <00:25:33.611>EDN <00:25:33.845>file

430
00:25:34.945 --> 00:25:37.095
<00:25:34.945>where <00:25:35.178>we <00:25:35.411>have <00:25:35.645>all <00:25:35.878>the <00:25:36.111>different <00:25:36.345>libraries.

431
00:25:38.055 --> 00:25:41.355
<00:25:38.055>You <00:25:38.195>may <00:25:38.335>notice <00:25:38.475>that <00:25:38.615>in <00:25:38.755>here <00:25:38.895>we <00:25:39.035>have <00:25:39.175>the <00:25:39.315>two <00:25:39.455>different

432
00:25:42.815 --> 00:25:44.955
<00:25:42.815>um <00:25:43.095>closure <00:25:43.375>libraries <00:25:43.655>and <00:25:43.935>closure <00:25:44.215>script.

433
00:25:45.135 --> 00:25:48.635
<00:25:45.135>We <00:25:45.310>have <00:25:45.485>reframe, <00:25:45.660>we <00:25:45.835>have <00:25:46.010>some <00:25:46.185>stuff <00:25:46.360>for <00:25:46.535>Ajax,

434
00:25:49.255 --> 00:25:50.355
<00:25:49.255>the <00:25:49.750>reps <00:25:50.245>again

435
00:25:51.295 --> 00:25:55.835
<00:25:51.295>and <00:25:51.435>for <00:25:51.575>convenience <00:25:51.715>I <00:25:51.855>just <00:25:51.995>defined <00:25:52.135>some <00:25:52.275>alias <00:25:52.415>to <00:25:52.555>deal <00:25:52.695>with

436
00:25:56.345 --> 00:25:58.035
<00:25:56.345>that <00:25:56.695>we <00:25:57.045>have <00:25:57.395>easier <00:25:57.745>testing

437
00:25:58.535 --> 00:25:59.675
<00:25:58.535>and <00:25:58.877>some <00:25:59.219>other <00:25:59.561>stuff

438
00:26:00.385 --> 00:26:02.915
<00:26:00.385>that <00:26:00.540>is <00:26:00.696>well <00:26:00.851>defined <00:26:01.007>than <00:26:01.162>in <00:26:01.318>the <00:26:01.473>read <00:26:01.629>me <00:26:01.785>file.

439
00:26:05.185 --> 00:26:08.475
<00:26:05.185>This <00:26:05.360>draw <00:26:05.534>file. <00:26:05.710>I <00:26:05.885>will <00:26:06.060>just <00:26:06.235>jump <00:26:06.409>over <00:26:06.585>here.

440
00:26:08.495 --> 00:26:12.595
<00:26:08.495>You <00:26:08.695>can <00:26:08.895>see <00:26:09.094>that <00:26:09.294>is <00:26:09.495>the <00:26:09.695>index <00:26:09.895>HTML.

441
00:26:12.825 --> 00:26:15.315
<00:26:12.825>That <00:26:13.105>is <00:26:13.385>everything <00:26:13.665>written <00:26:13.945>in <00:26:14.225>HTML

442
00:26:16.175 --> 00:26:17.195
<00:26:16.175>and <00:26:16.481>the <00:26:16.787>only <00:26:17.092>thing

443
00:26:17.465 --> 00:26:20.275
<00:26:17.465>that <00:26:17.665>we <00:26:17.865>are <00:26:18.064>manipulating <00:26:18.264>in <00:26:18.465>the <00:26:18.665>source <00:26:18.865>code

444
00:26:21.095 --> 00:26:22.835
<00:26:21.095>is <00:26:21.561>line <00:26:22.028>16 <00:26:22.495>here.

445
00:26:24.155 --> 00:26:25.685
<00:26:24.155>It's <00:26:24.384>the <00:26:24.614>part <00:26:24.843>where <00:26:25.072>the <00:26:25.302>magic <00:26:25.532>happens

446
00:26:25.685 --> 00:26:27.525
<00:26:25.685>because <00:26:25.965>this <00:26:26.245>is <00:26:26.524>our <00:26:26.804>entry <00:26:27.085>point.

447
00:26:28.015 --> 00:26:31.125
<00:26:28.015>Everything <00:26:28.295>else <00:26:28.575>is <00:26:28.855>proper <00:26:29.135>HML <00:26:29.415>code.

448
00:26:31.625 --> 00:26:35.125
<00:26:31.625>Having <00:26:31.858>some <00:26:32.091>CSS <00:26:32.325>files <00:26:32.558>having <00:26:32.791>the <00:26:33.025>compared

449
00:26:35.895 --> 00:26:39.725
<00:26:35.895>Javas <00:26:36.035>book <00:26:36.175>file <00:26:36.315>and <00:26:36.455>yes <00:26:36.595>of <00:26:36.735>course <00:26:36.875>we <00:26:37.014>are <00:26:37.155>all <00:26:37.295>developers

450
00:26:40.305 --> 00:26:42.445
<00:26:40.305>and <00:26:40.505>Lucas <00:26:40.705>of <00:26:40.905>course <00:26:41.105>it's <00:26:41.305>made <00:26:41.505>with <00:26:41.705>pizza.

451
00:26:47.175 --> 00:26:52.025
<00:26:47.175>This <00:26:47.330>is <00:26:47.486>now <00:26:47.641>the <00:26:47.797>first <00:26:47.952>closure <00:26:48.108>code <00:26:48.263>that <00:26:48.419>you <00:26:48.575>need

452
00:26:52.685 --> 00:26:56.385
<00:26:52.685>and <00:26:52.840>in <00:26:52.996>here <00:26:53.151>you <00:26:53.307>can <00:26:53.462>see <00:26:53.618>the <00:26:53.773>in <00:26:53.929>it <00:26:54.085>function

453
00:26:56.415 --> 00:26:59.505
<00:26:56.415>that <00:26:56.615>I <00:26:56.815>have <00:26:57.014>already <00:26:57.215>referenced <00:26:57.415>a <00:26:57.615>while <00:26:57.815>ago.

454
00:27:00.575 --> 00:27:05.265
<00:27:00.575>That <00:27:00.702>is <00:27:00.829>the <00:27:00.956>entry <00:27:01.084>point <00:27:01.211>and <00:27:01.338>it <00:27:01.465>does <00:27:01.593>not <00:27:01.720>need <00:27:01.847>any <00:27:01.975>value.

455
00:27:06.545 --> 00:27:10.925
<00:27:06.545>It <00:27:06.700>has <00:27:06.856>two <00:27:07.011>events <00:27:07.167>that <00:27:07.322>are <00:27:07.478>going <00:27:07.633>to <00:27:07.789>be <00:27:07.945>dispatched

456
00:27:11.875 --> 00:27:13.565
<00:27:11.875>this <00:27:12.575>time <00:27:13.275>synchronously

457
00:27:13.565 --> 00:27:15.725
<00:27:13.565>because <00:27:13.765>they <00:27:13.965>are <00:27:14.165>very <00:27:14.365>important <00:27:14.565>in <00:27:14.765>the <00:27:14.965>beginning.

458
00:27:16.465 --> 00:27:19.005
<00:27:16.465>The <00:27:16.639>first <00:27:16.814>one <00:27:16.990>is <00:27:17.165>I <00:27:17.340>want <00:27:17.514>to <00:27:17.689>analyze <00:27:17.865>my

459
00:27:19.805 --> 00:27:20.925
<00:27:19.805>database <00:27:20.141>in <00:27:20.477>the <00:27:20.812>beginning

460
00:27:22.045 --> 00:27:25.225
<00:27:22.045>and <00:27:22.185>then <00:27:22.325>I <00:27:22.465>want <00:27:22.605>to <00:27:22.745>get <00:27:22.885>all <00:27:23.025>articles <00:27:23.165>from <00:27:23.305>a <00:27:23.445>database

461
00:27:25.655 --> 00:27:28.585
<00:27:25.655>because <00:27:25.888>within <00:27:26.121>Docker <00:27:26.355>I <00:27:26.588>have <00:27:26.821>a <00:27:27.055>database,

462
00:27:28.745 --> 00:27:31.825
<00:27:28.745>a <00:27:28.900>Postgres <00:27:29.056>12 <00:27:29.211>running <00:27:29.367>where <00:27:29.522>we <00:27:29.678>just <00:27:29.833>have <00:27:29.989>a <00:27:30.145>list

463
00:27:31.845 --> 00:27:36.265
<00:27:31.845>of <00:27:32.000>different <00:27:32.156>articles <00:27:32.311>and <00:27:32.467>then <00:27:32.622>it's <00:27:32.778>a <00:27:32.933>magic <00:27:33.089>vendor <00:27:33.245>function.

464
00:27:37.645 --> 00:27:40.905
<00:27:37.645>If <00:27:37.785>I <00:27:37.925>go <00:27:38.065>to <00:27:38.205>the <00:27:38.345>magic <00:27:38.485>vendor <00:27:38.625>function, <00:27:38.764>it's <00:27:38.905>this <00:27:39.045>part

465
00:27:41.945 --> 00:27:46.535
<00:27:41.945>there <00:27:42.085>we <00:27:42.225>just <00:27:42.365>telling <00:27:42.504>by <00:27:42.645>reagent <00:27:42.784>it <00:27:42.925>should <00:27:43.064>render <00:27:43.205>the <00:27:43.345>dome

466
00:27:47.555 --> 00:27:48.775
<00:27:47.555>by <00:27:47.921>the <00:27:48.287>library <00:27:48.653>itself.

467
00:27:48.965 --> 00:27:50.135
<00:27:48.965>It's <00:27:49.316>gets <00:27:49.667>the <00:27:50.018>body

468
00:27:51.225 --> 00:27:53.645
<00:27:51.225>and <00:27:51.399>there <00:27:51.574>we <00:27:51.750>are <00:27:51.925>just <00:27:52.100>searching <00:27:52.274>for <00:27:52.449>the <00:27:52.625>part

469
00:27:53.645 --> 00:27:54.725
<00:27:53.645>that <00:27:53.969>was <00:27:54.293>called <00:27:54.617>app

470
00:27:55.145 --> 00:27:57.805
<00:27:55.145>and <00:27:55.320>you <00:27:55.495>may <00:27:55.670>remember <00:27:55.845>that <00:27:56.020>was <00:27:56.195>a <00:27:56.370>small <00:27:56.545>development

471
00:27:58.775 --> 00:28:00.005
<00:27:58.775>where <00:27:59.051>we <00:27:59.328>had <00:27:59.605>the <00:27:59.882>comment.

472
00:28:00.195 --> 00:28:02.125
<00:28:00.195>This <00:28:00.370>is <00:28:00.544>a <00:28:00.720>place <00:28:00.895>where <00:28:01.070>all <00:28:01.245>the <00:28:01.419>magic <00:28:01.595>happens

473
00:28:02.785 --> 00:28:05.485
<00:28:02.785>and <00:28:02.985>that <00:28:03.185>is <00:28:03.385>now <00:28:03.585>getting <00:28:03.785>to <00:28:03.985>be <00:28:04.185>manipulated

474
00:28:06.825 --> 00:28:11.605
<00:28:06.825>and <00:28:06.941>things <00:28:07.058>that <00:28:07.175>are <00:28:07.291>going <00:28:07.408>to <00:28:07.525>run <00:28:07.641>out <00:28:07.758>is <00:28:07.875>one <00:28:07.991>error, <00:28:08.108>a <00:28:08.225>warning

475
00:28:11.675 --> 00:28:13.205
<00:28:11.675>that <00:28:11.904>are <00:28:12.134>not <00:28:12.363>viewed <00:28:12.592>in <00:28:12.822>the <00:28:13.052>beginning

476
00:28:13.985 --> 00:28:17.525
<00:28:13.985>and <00:28:14.218>then <00:28:14.451>there <00:28:14.685>will <00:28:14.918>be <00:28:15.151>some <00:28:15.385>magic.

477
00:28:19.415 --> 00:28:22.405
<00:28:19.415>Every <00:28:19.648>time <00:28:19.881>you <00:28:20.115>are <00:28:20.348>dispatching <00:28:20.581>an <00:28:20.815>event

478
00:28:23.535 --> 00:28:24.955
<00:28:23.535>and <00:28:23.790>you <00:28:24.046>are <00:28:24.301>clearing <00:28:24.557>new <00:28:24.812>data,

479
00:28:25.215 --> 00:28:28.075
<00:28:25.215>you <00:28:25.415>should <00:28:25.615>also <00:28:25.814>have <00:28:26.014>some <00:28:26.215>subscribers <00:28:26.415>to <00:28:26.615>invent.

480
00:28:29.155 --> 00:28:32.855
<00:28:29.155>So <00:28:29.282>for <00:28:29.409>not <00:28:29.536>so <00:28:29.664>many <00:28:29.791>people <00:28:29.918>that <00:28:30.045>should <00:28:30.173>be <00:28:30.300>uh, <00:28:30.427>new, <00:28:30.555>uh,

481
00:28:32.955 --> 00:28:37.715
<00:28:32.955>not <00:28:33.155>new <00:28:33.355>because <00:28:33.554>subscribing <00:28:33.754>like <00:28:33.955>RSS <00:28:34.155>feedback <00:28:34.355>then

482
00:28:37.865 --> 00:28:39.275
<00:28:37.865>it's <00:28:38.182>very <00:28:38.499>well <00:28:38.816>known <00:28:39.134>hopefully.

483
00:28:39.855 --> 00:28:42.635
<00:28:39.855>And <00:28:40.088>here <00:28:40.321>I'm <00:28:40.555>just <00:28:40.788>subscribing <00:28:41.021>an <00:28:41.255>event

484
00:28:43.065 --> 00:28:46.445
<00:28:43.065>that <00:28:43.265>is <00:28:43.465>called <00:28:43.665>container <00:28:43.865>that <00:28:44.065>is <00:28:44.265>an <00:28:44.465>event

485
00:28:46.675 --> 00:28:50.645
<00:28:46.675>that <00:28:46.830>is <00:28:46.986>just <00:28:47.141>looking <00:28:47.297>on <00:28:47.452>any <00:28:47.608>change <00:28:47.763>that <00:28:47.919>is <00:28:48.075>going

486
00:28:50.645 --> 00:28:55.115
<00:28:50.645>to <00:28:50.772>be <00:28:50.899>happen <00:28:51.026>on <00:28:51.154>the <00:28:51.281>main <00:28:51.408>page <00:28:51.535>with <00:28:51.663>the <00:28:51.790>amount <00:28:51.917>of <00:28:52.045>articles.

487
00:28:56.495 --> 00:28:57.835
<00:28:56.495>So <00:28:56.736>this <00:28:56.977>is <00:28:57.218>the <00:28:57.459>main <00:28:57.701>page

488
00:28:57.895 --> 00:29:02.035
<00:28:57.895>and <00:28:58.095>that <00:28:58.295>part <00:28:58.495>here <00:28:58.695>I <00:28:58.895>now <00:28:59.095>open <00:28:59.295>the,

489
00:29:02.815 --> 00:29:04.515
<00:29:02.815>it <00:29:03.048>is <00:29:03.281>too <00:29:03.515>small <00:29:03.748>for <00:29:03.981>you <00:29:04.215>unfortunately.

490
00:29:04.515 --> 00:29:05.995
<00:29:04.515>Again, <00:29:04.737>you <00:29:04.959>just <00:29:05.181>have <00:29:05.403>to <00:29:05.625>believe <00:29:05.847>me

491
00:29:06.225 --> 00:29:09.075
<00:29:06.225>that <00:29:06.458>this <00:29:06.691>part <00:29:06.925>here <00:29:07.158>is <00:29:07.391>the <00:29:07.625>container.

492
00:29:09.075 --> 00:29:13.675
<00:29:09.075>Everything <00:29:09.275>in <00:29:09.475>that <00:29:09.675>is <00:29:09.875>just <00:29:10.075>element <00:29:10.275>code <00:29:10.475>container.

493
00:29:16.705 --> 00:29:19.155
<00:29:16.705>Then <00:29:17.054>a <00:29:17.405>small <00:29:17.754>condition <00:29:18.105>either

494
00:29:19.625 --> 00:29:23.555
<00:29:19.625>that <00:29:19.741>is <00:29:19.858>manual <00:29:19.975>built <00:29:20.091>routing <00:29:20.208>from <00:29:20.325>my <00:29:20.441>side <00:29:20.558>if <00:29:20.675>we <00:29:20.791>are <00:29:20.908>in <00:29:21.025>the

495
00:29:23.555 --> 00:29:28.085
<00:29:23.555>shop <00:29:23.682>or <00:29:23.809>in <00:29:23.936>the <00:29:24.064>checkout <00:29:24.191>and <00:29:24.318>if <00:29:24.445>not <00:29:24.573>we <00:29:24.700>display <00:29:24.827>an <00:29:24.955>error

496
00:29:28.085 --> 00:29:30.085
<00:29:28.085>because <00:29:28.318>we <00:29:28.551>have <00:29:28.785>an <00:29:29.018>internal <00:29:29.251>routing <00:29:29.485>number

497
00:29:32.445 --> 00:29:34.415
<00:29:32.445>dumping <00:29:32.794>into <00:29:33.145>the <00:29:33.495>shop <00:29:33.845>interface.

498
00:29:36.325 --> 00:29:38.295
<00:29:36.325>Here <00:29:36.525>you <00:29:36.725>can <00:29:36.925>see <00:29:37.125>the <00:29:37.325>both <00:29:37.525>function <00:29:37.725>again,

499
00:29:38.295 --> 00:29:41.405
<00:29:38.295>either <00:29:38.450>you <00:29:38.606>are <00:29:38.761>in <00:29:38.917>the <00:29:39.072>shop <00:29:39.228>or <00:29:39.383>in <00:29:39.539>the <00:29:39.695>checkout.

500
00:29:42.615 --> 00:29:43.745
<00:29:42.615>That <00:29:42.869>is <00:29:43.123>now <00:29:43.377>the <00:29:43.631>magic

501
00:29:44.075 --> 00:29:46.625
<00:29:44.075>where <00:29:44.275>a <00:29:44.475>library <00:29:44.675>called <00:29:44.875>hiccup <00:29:45.075>comes <00:29:45.275>in <00:29:45.475>place.

502
00:29:47.125 --> 00:29:49.345
<00:29:47.125>Hiccup <00:29:47.405>is <00:29:47.685>there <00:29:47.965>to <00:29:48.245>write <00:29:48.525>proper

503
00:29:50.465 --> 00:29:53.025
<00:29:50.465>HM <00:29:50.931>air <00:29:51.398>code <00:29:51.865>enclosure.

504
00:29:54.175 --> 00:29:56.555
<00:29:54.175>You <00:29:54.350>can <00:29:54.524>also <00:29:54.700>write <00:29:54.875>it <00:29:55.050>enclosure <00:29:55.225>or <00:29:55.399>enclosure <00:29:55.575>script

505
00:29:56.555 --> 00:29:58.315
<00:29:56.555>because <00:29:56.835>you <00:29:57.115>know <00:29:57.395>it's <00:29:57.675>the <00:29:57.955>same

506
00:29:59.695 --> 00:30:03.155
<00:29:59.695>and <00:29:59.822>you <00:29:59.949>have <00:30:00.076>here <00:30:00.204>a <00:30:00.331>keyword <00:30:00.458>again, <00:30:00.585>so <00:30:00.713>it's <00:30:00.840>a <00:30:00.967>closure <00:30:01.095>keyword

507
00:30:04.055 --> 00:30:07.115
<00:30:04.055>but <00:30:04.210>it <00:30:04.366>will <00:30:04.521>be <00:30:04.677>um, <00:30:04.832>this <00:30:04.988>element <00:30:05.143>in <00:30:05.299>the <00:30:05.455>end

508
00:30:08.565 --> 00:30:11.065
<00:30:08.565>you <00:30:08.765>have <00:30:08.965>here <00:30:09.165>an <00:30:09.365>HR <00:30:09.565>and <00:30:09.765>horizontal <00:30:09.965>line

509
00:30:12.025 --> 00:30:15.485
<00:30:12.025>and <00:30:12.200>you <00:30:12.375>have <00:30:12.550>then <00:30:12.725>a <00:30:12.900>set <00:30:13.075>of <00:30:13.250>different <00:30:13.425>attributes.

510
00:30:15.675 --> 00:30:18.965
<00:30:15.675>Here <00:30:15.875>you <00:30:16.075>will <00:30:16.274>just <00:30:16.475>get <00:30:16.675>a <00:30:16.875>style <00:30:17.075>attribute

511
00:30:19.455 --> 00:30:20.645
<00:30:19.455>where <00:30:19.722>we <00:30:19.990>set <00:30:20.258>a <00:30:20.526>margin

512
00:30:21.825 --> 00:30:24.285
<00:30:21.825>and <00:30:22.025>then <00:30:22.225>of <00:30:22.425>course <00:30:22.625>also <00:30:22.825>a <00:30:23.025>background <00:30:23.225>color

513
00:30:27.205 --> 00:30:29.875
<00:30:27.205>afterwards <00:30:27.485>we <00:30:27.764>display <00:30:28.044>every <00:30:28.324>different <00:30:28.605>article

514
00:30:30.105 --> 00:30:31.555
<00:30:30.105>that <00:30:30.322>were <00:30:30.540>the <00:30:30.757>three <00:30:30.975>in <00:30:31.192>a <00:30:31.410>row

515
00:30:31.895 --> 00:30:36.665
<00:30:31.895>and <00:30:32.022>then <00:30:32.149>each <00:30:32.276>row <00:30:32.404>that <00:30:32.531>are <00:30:32.658>just <00:30:32.785>called <00:30:32.913>big <00:30:33.040>cards <00:30:33.167>by <00:30:33.295>myself

516
00:30:37.635 --> 00:30:39.495
<00:30:37.635>and <00:30:37.985>another <00:30:38.335>line <00:30:38.685>below <00:30:39.035>that

517
00:30:41.245 --> 00:30:43.205
<00:30:41.245>I <00:30:41.445>can <00:30:41.645>now <00:30:41.844>jump <00:30:42.044>into <00:30:42.245>the <00:30:42.445>big <00:30:42.645>cards

518
00:30:44.785 --> 00:30:47.365
<00:30:44.785>and <00:30:45.065>it <00:30:45.345>may <00:30:45.625>be <00:30:45.905>very <00:30:46.185>nested

519
00:30:48.715 --> 00:30:53.315
<00:30:48.715>and <00:30:48.889>somehow, <00:30:49.064>I <00:30:49.240>don't <00:30:49.415>know <00:30:49.590>why <00:30:49.764>yet, <00:30:49.939>every <00:30:50.115>bracket

520
00:30:53.525 --> 00:30:56.475
<00:30:53.525>below <00:30:53.758>here, <00:30:53.991>every <00:30:54.225>per <00:30:54.458>theaters <00:30:54.691>should <00:30:54.925>we

521
00:30:56.475 --> 00:30:57.715
<00:30:56.475>have <00:30:56.847>a <00:30:57.218>different <00:30:57.591>color.

522
00:30:58.885 --> 00:31:01.495
<00:30:58.885>Unfortunately <00:30:59.085>that <00:30:59.285>is <00:30:59.485>not <00:30:59.685>true <00:30:59.885>in <00:31:00.085>presentation <00:31:00.285>mode,

523
00:31:02.395 --> 00:31:05.825
<00:31:02.395>but <00:31:02.628>maybe <00:31:02.861>you <00:31:03.095>know <00:31:03.328>that <00:31:03.561>rainbow <00:31:03.795>theme

524
00:31:05.845 --> 00:31:09.225
<00:31:05.845>or <00:31:06.020>that <00:31:06.195>rainbow <00:31:06.370>parentees <00:31:06.545>plug <00:31:06.720>in <00:31:06.895>that <00:31:07.070>you <00:31:07.245>know

525
00:31:09.655 --> 00:31:11.945
<00:31:09.655>what <00:31:09.888>bracket <00:31:10.121>you <00:31:10.355>are <00:31:10.588>currently <00:31:10.821>dealing <00:31:11.055>with.

526
00:31:13.405 --> 00:31:18.195
<00:31:13.405>But <00:31:13.560>inside <00:31:13.716>the <00:31:13.871>big <00:31:14.027>counts <00:31:14.182>we <00:31:14.338>have <00:31:14.493>begun <00:31:14.649>some <00:31:14.805>development.

527
00:31:18.895 --> 00:31:22.355
<00:31:18.895>We <00:31:19.095>subscribed <00:31:19.295>to <00:31:19.495>an <00:31:19.695>event <00:31:19.895>that's <00:31:20.095>called <00:31:20.295>articles

528
00:31:23.545 --> 00:31:26.685
<00:31:23.545>and <00:31:23.778>if <00:31:24.011>they <00:31:24.245>are <00:31:24.478>empty <00:31:24.711>the <00:31:24.945>articles,

529
00:31:26.745 --> 00:31:30.645
<00:31:26.745>so <00:31:26.872>we <00:31:26.999>could <00:31:27.126>not <00:31:27.254>read <00:31:27.381>the <00:31:27.508>database <00:31:27.635>we <00:31:27.763>just <00:31:27.890>show <00:31:28.017>in <00:31:28.145>spinner

530
00:31:31.295 --> 00:31:33.395
<00:31:31.295>and <00:31:31.528>the <00:31:31.761>second <00:31:31.995>line <00:31:32.228>is <00:31:32.461>empty <00:31:32.695>else.

531
00:31:33.495 --> 00:31:37.435
<00:31:33.495>If <00:31:33.669>not, <00:31:33.844>we <00:31:34.020>just <00:31:34.195>list <00:31:34.370>the <00:31:34.544>different <00:31:34.719>article <00:31:34.895>roles

532
00:31:38.215 --> 00:31:41.585
<00:31:38.215>and <00:31:38.448>we <00:31:38.681>built <00:31:38.915>again <00:31:39.148>our <00:31:39.381>HML <00:31:39.615>code,

533
00:31:41.735 --> 00:31:44.705
<00:31:41.735>like <00:31:41.890>this <00:31:42.046>is <00:31:42.201>a <00:31:42.357>card <00:31:42.512>attribute <00:31:42.668>from <00:31:42.823>the <00:31:42.979>bootstrap <00:31:43.135>library

534
00:31:45.405 --> 00:31:47.705
<00:31:45.405>and <00:31:45.605>we <00:31:45.805>just <00:31:46.004>combine <00:31:46.205>and <00:31:46.405>merge <00:31:46.605>it <00:31:46.805>together.

535
00:31:51.165 --> 00:31:54.045
<00:31:51.165>I <00:31:51.320>will <00:31:51.476>just <00:31:51.631>leave <00:31:51.787>the <00:31:51.942>presentation <00:31:52.098>mode <00:31:52.253>for <00:31:52.409>a <00:31:52.565>moment

536
00:31:58.685 --> 00:32:02.345
<00:31:58.685>and <00:31:58.885>want <00:31:59.085>to <00:31:59.284>show <00:31:59.485>you <00:31:59.685>the <00:31:59.885>different <00:32:00.085>events

537
00:32:03.645 --> 00:32:04.785
<00:32:03.645>and <00:32:04.671>subscriptions

538
00:32:07.435 --> 00:32:10.685
<00:32:07.435>and <00:32:07.901>enter <00:32:08.368>present <00:32:08.835>mode.

539
00:32:10.685 --> 00:32:13.795
<00:32:10.685>Again, <00:32:11.034>That <00:32:11.385>is <00:32:11.735>the <00:32:12.085>list

540
00:32:13.855 --> 00:32:17.235
<00:32:13.855>of <00:32:13.995>all <00:32:14.135>the <00:32:14.275>events <00:32:14.415>we <00:32:14.555>have <00:32:14.695>right <00:32:14.835>now <00:32:14.975>in <00:32:15.115>the <00:32:15.255>code.

541
00:32:18.175 --> 00:32:21.895
<00:32:18.175>Where <00:32:18.455>here <00:32:18.735>get <00:32:19.014>all <00:32:19.294>articles <00:32:19.575>adjust,

542
00:32:22.635 --> 00:32:24.535
<00:32:22.635>firing <00:32:23.101>an <00:32:23.568>Ajax <00:32:24.035>request

543
00:32:25.635 --> 00:32:28.295
<00:32:25.635>to <00:32:25.868>you <00:32:26.101>already <00:32:26.335>see <00:32:26.568>highlighted <00:32:26.801>the <00:32:27.035>endpoint.

544
00:32:29.385 --> 00:32:32.885
<00:32:29.385>That's <00:32:29.618>my <00:32:29.851>common <00:32:30.085>A-P-I-U-R-L <00:32:30.318>that <00:32:30.551>is <00:32:30.785>here.

545
00:32:32.975 --> 00:32:36.965
<00:32:32.975>Local <00:32:33.208>host <00:32:33.441>concatenated <00:32:33.675>with <00:32:33.908>the <00:32:34.141>endpoint <00:32:34.375>itself.

546
00:32:37.315 --> 00:32:41.925
<00:32:37.315>It's <00:32:37.490>article <00:32:37.665>slash <00:32:37.840>after <00:32:38.015>five <00:32:38.190>seconds <00:32:38.365>I <00:32:38.540>get <00:32:38.715>timeout.

547
00:32:42.895 --> 00:32:47.175
<00:32:42.895>It's <00:32:43.050>just <00:32:43.206>a <00:32:43.361>Jason <00:32:43.517>request. <00:32:43.672>Response <00:32:43.828>will <00:32:43.983>be <00:32:44.139>also <00:32:44.295>Jason.

548
00:32:48.575 --> 00:32:51.415
<00:32:48.575>I <00:32:48.855>will <00:32:49.135>manipulate <00:32:49.415>directly <00:32:49.695>the <00:32:49.975>response

549
00:32:51.565 --> 00:32:53.695
<00:32:51.565>that <00:32:51.798>all <00:32:52.031>the <00:32:52.265>keys <00:32:52.498>will <00:32:52.731>be <00:32:52.965>keywords

550
00:32:54.455 --> 00:32:57.435
<00:32:54.455>and <00:32:54.610>I <00:32:54.766>have <00:32:54.921>a <00:32:55.077>function <00:32:55.232>that <00:32:55.388>is <00:32:55.543>called <00:32:55.699>process <00:32:55.855>response

551
00:32:58.025 --> 00:33:00.595
<00:32:58.025>that <00:32:58.258>I <00:32:58.491>can <00:32:58.725>directly <00:32:58.958>digest <00:32:59.191>the <00:32:59.425>response

552
00:33:00.735 --> 00:33:02.795
<00:33:00.735>and <00:33:00.968>on <00:33:01.201>failure <00:33:01.435>I <00:33:01.668>display <00:33:01.901>an <00:33:02.135>error.

553
00:33:03.635 --> 00:33:07.155
<00:33:03.635>I <00:33:03.868>guess <00:33:04.101>everyone <00:33:04.335>will <00:33:04.568>love <00:33:04.801>that <00:33:05.035>structure

554
00:33:07.155 --> 00:33:10.595
<00:33:07.155>because <00:33:07.310>it's <00:33:07.466>very <00:33:07.621>easy <00:33:07.777>to <00:33:07.932>read, <00:33:08.088>very <00:33:08.243>easy <00:33:08.399>to <00:33:08.555>digest

555
00:33:10.735 --> 00:33:12.075
<00:33:10.735>and <00:33:11.036>more <00:33:11.338>easy <00:33:11.639>to <00:33:11.941>use.

556
00:33:13.765 --> 00:33:16.825
<00:33:13.765>We <00:33:13.940>have <00:33:14.115>also <00:33:14.290>on <00:33:14.465>course <00:33:14.640>than <00:33:14.815>the <00:33:14.990>increase <00:33:15.165>article,

557
00:33:17.045 --> 00:33:18.345
<00:33:17.045>we <00:33:17.630>have <00:33:18.215>decreasing,

558
00:33:18.845 --> 00:33:23.075
<00:33:18.845>we <00:33:19.000>have <00:33:19.156>complete <00:33:19.311>removing <00:33:19.467>an <00:33:19.622>article <00:33:19.778>from <00:33:19.933>the <00:33:20.089>list <00:33:20.245>here

559
00:33:23.075 --> 00:33:25.475
<00:33:23.075>that <00:33:23.230>is <00:33:23.386>the <00:33:23.541>NH <00:33:23.697>DP <00:33:23.852>function <00:33:24.008>we <00:33:24.163>had <00:33:24.319>in <00:33:24.475>the

560
00:33:25.475 --> 00:33:27.435
<00:33:25.475>beginning <00:33:25.941>and <00:33:26.408>so <00:33:26.875>on.

561
00:33:27.435 --> 00:33:30.115
<00:33:27.435>Different <00:33:27.715>database <00:33:27.995>function <00:33:28.274>list <00:33:28.554>goes <00:33:28.835>on.

562
00:33:32.245 --> 00:33:36.215
<00:33:32.245>And <00:33:32.419>then <00:33:32.594>of <00:33:32.770>course <00:33:32.945>we <00:33:33.120>have <00:33:33.294>here <00:33:33.469>a <00:33:33.645>list

563
00:33:36.875 --> 00:33:39.735
<00:33:36.875>of <00:33:37.075>the <00:33:37.275>different <00:33:37.475>registrations <00:33:37.675>that <00:33:37.875>we <00:33:38.075>have <00:33:38.275>done,

564
00:33:40.565 --> 00:33:45.215
<00:33:40.565>like <00:33:40.720>the <00:33:40.876>subscriptions <00:33:41.031>if <00:33:41.187>we <00:33:41.342>are <00:33:41.498>waiting <00:33:41.653>for <00:33:41.809>any <00:33:41.965>warning.

565
00:33:45.875 --> 00:33:49.615
<00:33:45.875>So <00:33:46.030>whenever <00:33:46.186>my <00:33:46.341>app <00:33:46.497>state <00:33:46.652>is <00:33:46.808>going <00:33:46.963>to <00:33:47.119>be <00:33:47.275>changed

566
00:33:50.235 --> 00:33:52.775
<00:33:50.235>and <00:33:50.435>I <00:33:50.635>have <00:33:50.834>now <00:33:51.034>an <00:33:51.235>changed <00:33:51.435>warning <00:33:51.635>text,

567
00:33:53.495 --> 00:33:56.135
<00:33:53.495>I <00:33:53.774>just <00:33:54.054>trigger <00:33:54.334>the <00:33:54.614>warning <00:33:54.895>subscription

568
00:33:56.715 --> 00:33:58.735
<00:33:56.715>and <00:33:56.995>everyone <00:33:57.274>who's <00:33:57.554>listening <00:33:57.834>onto <00:33:58.115>that

569
00:33:59.285 --> 00:34:02.455
<00:33:59.285>will <00:33:59.485>just <00:33:59.685>digest <00:33:59.885>the <00:34:00.085>changes <00:34:00.285>of <00:34:00.485>the <00:34:00.685>database

570
00:34:02.955 --> 00:34:04.495
<00:34:02.955>and <00:34:03.301>maybe <00:34:03.648>do <00:34:03.994>some <00:34:04.341>stuff.

571
00:34:05.975 --> 00:34:09.435
<00:34:05.975>Or <00:34:06.130>I <00:34:06.286>can <00:34:06.441>directly <00:34:06.597>also <00:34:06.752>use <00:34:06.908>the <00:34:07.063>filter <00:34:07.219>function <00:34:07.375>here

572
00:34:10.185 --> 00:34:11.795
<00:34:10.185>like <00:34:10.534>on <00:34:10.884>the <00:34:11.235>basket <00:34:11.585>count

573
00:34:12.795 --> 00:34:15.995
<00:34:12.795>whenever <00:34:13.028>the <00:34:13.261>basket <00:34:13.495>count <00:34:13.728>here <00:34:13.961>is <00:34:14.195>positive.

574
00:34:16.415 --> 00:34:20.155
<00:34:16.415>So <00:34:16.648>greater <00:34:16.881>e <00:34:17.114>um, <00:34:17.348>real <00:34:17.581>greater <00:34:17.815>zero.

575
00:34:21.355 --> 00:34:23.795
<00:34:21.355>I <00:34:21.554>query <00:34:21.755>all <00:34:21.955>the <00:34:22.155>articles <00:34:22.355>from <00:34:22.554>the <00:34:22.755>database.

576
00:34:25.445 --> 00:34:27.705
<00:34:25.445>That's <00:34:25.725>one <00:34:26.005>good <00:34:26.285>thing <00:34:26.565>about <00:34:26.845>keywords.

577
00:34:27.785 --> 00:34:30.145
<00:34:27.784>Keywords <00:34:28.018>cannot <00:34:28.251>be <00:34:28.484>only <00:34:28.718>used <00:34:28.951>in <00:34:29.185>maps,

578
00:34:30.805 --> 00:34:34.465
<00:34:30.804>but <00:34:30.912>they <00:34:31.020>can <00:34:31.128>be <00:34:31.235>also <00:34:31.343>used <00:34:31.451>as <00:34:31.558>a <00:34:31.666>function <00:34:31.774>as <00:34:31.881>you <00:34:31.989>can <00:34:32.097>see <00:34:32.205>here

579
00:34:35.325 --> 00:34:38.105
<00:34:35.324>to <00:34:35.674>directly <00:34:36.024>access <00:34:36.375>some <00:34:36.725>parts

580
00:34:38.805 --> 00:34:40.505
<00:34:38.804>inside <00:34:39.504>the <00:34:40.205>database.

581
00:34:42.145 --> 00:34:45.545
<00:34:42.145>I <00:34:42.378>can <00:34:42.611>jump <00:34:42.844>back <00:34:43.078>to <00:34:43.311>the <00:34:43.545>presentation

582
00:34:46.845 --> 00:34:48.225
<00:34:46.844>to <00:34:47.155>give <00:34:47.466>you <00:34:47.776>an <00:34:48.087>example.

583
00:34:49.925 --> 00:34:52.615
<00:34:49.925>Jumping <00:34:50.125>back <00:34:50.325>to <00:34:50.525>the <00:34:50.725>wrapper <00:34:50.925>we <00:34:51.125>had <00:34:51.325>here.

584
00:34:57.835 --> 00:35:01.475
<00:34:57.835>I <00:34:57.990>could <00:34:58.146>say <00:34:58.301>as <00:34:58.457>an <00:34:58.612>example <00:34:58.768>that <00:34:58.923>it's <00:34:59.079>my <00:34:59.235>function.

585
00:35:01.955 --> 00:35:06.435
<00:35:01.955>I <00:35:02.095>want <00:35:02.235>to <00:35:02.375>get <00:35:02.515>a <00:35:02.654>formal <00:35:02.795>list, <00:35:02.935>uh, <00:35:03.075>from <00:35:03.215>a <00:35:03.355>set

586
00:35:06.435 --> 00:35:07.955
<00:35:06.435>that <00:35:06.708>only <00:35:06.982>has <00:35:07.255>B <00:35:07.529>and <00:35:07.803>C.

587
00:35:08.705 --> 00:35:10.635
<00:35:08.705>Then <00:35:08.985>of <00:35:09.265>course <00:35:09.545>I <00:35:09.825>get <00:35:10.105>no,

588
00:35:11.575 --> 00:35:15.355
<00:35:11.575>but <00:35:11.682>if <00:35:11.790>I <00:35:11.898>say <00:35:12.005>A, <00:35:12.113>it'll <00:35:12.221>directly <00:35:12.328>get <00:35:12.436>me <00:35:12.544>the <00:35:12.651>A <00:35:12.759>out <00:35:12.867>of <00:35:12.975>that.

589
00:35:17.895 --> 00:35:21.215
<00:35:17.895>I <00:35:18.050>can <00:35:18.206>also <00:35:18.361>put <00:35:18.517>in <00:35:18.672>here <00:35:18.828>even <00:35:18.983>more <00:35:19.139>nest <00:35:19.295>stuff.

590
00:35:21.355 --> 00:35:24.455
<00:35:21.355>That's <00:35:21.555>often <00:35:21.755>the <00:35:21.955>case <00:35:22.155>if <00:35:22.355>you <00:35:22.555>have <00:35:22.755>Jason

591
00:35:28.385 --> 00:35:32.045
<00:35:28.385>and <00:35:28.735>could <00:35:29.085>do <00:35:29.435>some <00:35:29.785>bad

592
00:35:32.555 --> 00:35:35.925
<00:35:32.555>nesting <00:35:32.788>in <00:35:33.021>here, <00:35:33.254>and <00:35:33.488>you <00:35:33.721>can <00:35:33.955>see

593
00:35:35.955 --> 00:35:39.245
<00:35:35.955>that <00:35:36.130>in <00:35:36.305>every <00:35:36.480>language <00:35:36.654>I <00:35:36.830>can <00:35:37.005>write <00:35:37.180>crappy <00:35:37.355>code.

594
00:35:39.945 --> 00:35:41.725
<00:35:39.945>So <00:35:40.295>also <00:35:40.645>in <00:35:40.995>functional <00:35:41.345>languages,

595
00:35:42.505 --> 00:35:45.365
<00:35:42.505>but <00:35:42.660>if <00:35:42.816>you <00:35:42.971>are <00:35:43.127>well <00:35:43.282>aligned <00:35:43.438>with <00:35:43.593>the <00:35:43.749>paradigm, <00:35:43.905>how

596
00:35:45.365 --> 00:35:47.405
<00:35:45.365>to <00:35:45.645>write <00:35:45.924>proper <00:35:46.205>closure, <00:35:46.484>good <00:35:46.765>code,

597
00:35:47.905 --> 00:35:49.645
<00:35:47.905>you <00:35:48.138>will <00:35:48.371>never <00:35:48.605>see <00:35:48.838>something <00:35:49.071>like <00:35:49.305>this,

598
00:35:52.635 --> 00:35:55.445
<00:35:52.635>Something <00:35:52.810>back <00:35:52.985>to <00:35:53.160>the <00:35:53.335>state <00:35:53.510>where <00:35:53.685>we <00:35:53.860>have <00:35:54.035>been

599
00:35:59.345 --> 00:36:02.885
<00:35:59.345>And <00:35:59.500>that <00:35:59.656>is <00:35:59.811>everything <00:35:59.967>you <00:36:00.122>really <00:36:00.278>need <00:36:00.433>to <00:36:00.589>have <00:36:00.745>proper.

600
00:36:03.635 --> 00:36:06.445
<00:36:03.635>Yeah, <00:36:03.915>closures, <00:36:04.195>book <00:36:04.475>code <00:36:04.755>and <00:36:05.035>everything.

601
00:36:06.465 --> 00:36:08.645
<00:36:06.465>You <00:36:06.640>need <00:36:06.815>to <00:36:06.990>write <00:36:07.165>the <00:36:07.340>first <00:36:07.515>full <00:36:07.690>stack <00:36:07.865>app

602
00:36:08.715 --> 00:36:10.005
<00:36:08.715>enclosure <00:36:09.102>on <00:36:09.489>your <00:36:09.876>own.

603
00:36:10.665 --> 00:36:14.445
<00:36:10.665>And <00:36:10.805>as <00:36:10.945>I <00:36:11.085>have <00:36:11.225>promised <00:36:11.365>you <00:36:11.505>all <00:36:11.645>care <00:36:11.785>bears <00:36:11.925>are <00:36:12.065>happy,

604
00:36:15.185 --> 00:36:17.245
<00:36:15.185>but <00:36:15.360>they're <00:36:15.535>not <00:36:15.710>happy <00:36:15.884>because <00:36:16.060>they're <00:36:16.235>on <00:36:16.410>the <00:36:16.585>conference.

605
00:36:17.245 --> 00:36:19.765
<00:36:17.245>They're <00:36:17.420>happy <00:36:17.595>because <00:36:17.770>they're <00:36:17.944>using <00:36:18.120>of <00:36:18.295>course <00:36:18.470>closure <00:36:18.645>script

606
00:36:20.425 --> 00:36:21.605
<00:36:20.425>but <00:36:20.690>not <00:36:20.956>the <00:36:21.221>blue <00:36:21.487>one.

607
00:36:22.065 --> 00:36:25.325
<00:36:22.065>And <00:36:22.181>I <00:36:22.298>would <00:36:22.415>be <00:36:22.531>very <00:36:22.648>happy <00:36:22.765>if <00:36:22.881>the <00:36:22.998>only <00:36:23.115>thing <00:36:23.231>you <00:36:23.348>take <00:36:23.465>away

608
00:36:25.325 --> 00:36:28.525
<00:36:25.325>from <00:36:25.524>this <00:36:25.725>talk, <00:36:25.924>just <00:36:26.125>have <00:36:26.325>a <00:36:26.524>calm <00:36:26.725>moment,

609
00:36:28.755 --> 00:36:32.005
<00:36:28.755>look <00:36:28.930>onto <00:36:29.105>the <00:36:29.280>libraries, <00:36:29.455>look <00:36:29.630>onto <00:36:29.805>the <00:36:29.980>project <00:36:30.155>I've

610
00:36:32.205 --> 00:36:33.725
<00:36:32.205>provided <00:36:32.478>to <00:36:32.752>you, <00:36:33.025>including <00:36:33.299>the <00:36:33.573>slides

611
00:36:34.595 --> 00:36:38.295
<00:36:34.595>and <00:36:34.734>maybe <00:36:34.875>just <00:36:35.015>do <00:36:35.154>a <00:36:35.294>rough <00:36:35.435>estimate <00:36:35.575>if <00:36:35.714>it's <00:36:35.855>worth <00:36:35.995>trying

612
00:36:38.395 --> 00:36:41.575
<00:36:38.395>for <00:36:38.595>you <00:36:38.795>or <00:36:38.995>if <00:36:39.195>it's <00:36:39.395>not <00:36:39.595>your <00:36:39.795>taste

613
00:36:41.575 --> 00:36:45.255
<00:36:41.575>because <00:36:41.774>languages <00:36:41.975>are <00:36:42.174>like <00:36:42.375>dishes <00:36:42.575>has <00:36:42.774>to <00:36:42.975>belong

614
00:36:45.255 --> 00:36:46.335
<00:36:45.255>to <00:36:45.579>a <00:36:45.903>different <00:36:46.227>taste.

615
00:36:47.885 --> 00:36:50.345
<00:36:47.885>And <00:36:48.085>that <00:36:48.285>is <00:36:48.485>everything <00:36:48.685>with <00:36:48.885>that <00:36:49.085>QR <00:36:49.285>code.

616
00:36:50.345 --> 00:36:52.825
<00:36:50.345>You <00:36:50.625>can <00:36:50.904>find <00:36:51.185>the <00:36:51.464>GitHub <00:36:51.745>link.

617
00:36:53.445 --> 00:36:55.065
<00:36:53.445>You <00:36:53.795>can <00:36:54.145>also <00:36:54.495>find <00:36:54.845>myself

618
00:36:55.165 --> 00:36:58.985
<00:36:55.165>or <00:36:55.305>my <00:36:55.445>company <00:36:55.585>somewhere <00:36:55.725>on <00:36:55.865>social <00:36:56.005>media <00:36:56.145>should <00:36:56.285>not <00:36:56.425>be <00:36:56.565>the

619
00:36:59.325 --> 00:37:01.425
<00:36:59.325>so <00:36:59.524>hard <00:36:59.725>with <00:36:59.924>my <00:37:00.125>name <00:37:00.325>and <00:37:00.524>Metro <00:37:00.725>Digital.

620
00:37:02.205 --> 00:37:04.025
<00:37:02.205>I'm <00:37:02.555>reachable <00:37:02.904>on <00:37:03.255>any <00:37:03.605>channels

621
00:37:04.025 --> 00:37:06.625
<00:37:04.025>and <00:37:04.200>also <00:37:04.375>now <00:37:04.550>open <00:37:04.725>for <00:37:04.900>any <00:37:05.075>questions <00:37:05.250>right <00:37:05.425>now.

622
00:37:08.415 --> 00:37:10.845
<00:37:08.415>Thank <00:37:08.590>you <00:37:08.765>so <00:37:08.940>much. <00:37:09.115>Uh, <00:37:09.290>Ws, <00:37:09.465>uh, <00:37:09.640>that <00:37:09.815>was

623
00:37:10.875 --> 00:37:12.845
<00:37:10.875>that <00:37:11.015>was <00:37:11.155>really <00:37:11.295>great <00:37:11.435>and <00:37:11.575>a <00:37:11.715>lot <00:37:11.855>of <00:37:11.995>uh, <00:37:12.135>a <00:37:12.275>lot

624
00:37:12.845 --> 00:37:16.245
<00:37:12.845>of <00:37:13.020>good <00:37:13.194>discussion <00:37:13.370>and, <00:37:13.544>and <00:37:13.720>a <00:37:13.895>couple <00:37:14.069>jokes <00:37:14.245>here

625
00:37:16.245 --> 00:37:17.845
<00:37:16.245>and <00:37:16.525>there, <00:37:16.805>uh, <00:37:17.085>in <00:37:17.365>the <00:37:17.645>chat.

626
00:37:18.165 --> 00:37:21.205
<00:37:18.165>I <00:37:18.365>think <00:37:18.565>everybody <00:37:18.765>enjoyed <00:37:18.965>themselves, <00:37:19.165>uh, <00:37:19.365>very <00:37:19.565>thoroughly.

627
00:37:21.665 --> 00:37:25.685
<00:37:21.665>Um, <00:37:21.805>let's, <00:37:21.945>let's <00:37:22.085>go <00:37:22.225>to <00:37:22.365>some <00:37:22.505>questions, <00:37:22.645>shall <00:37:22.785>we? <00:37:22.925>Um, <00:37:23.065>sure.

628
00:37:25.705 --> 00:37:27.205
<00:37:25.705>Martin <00:37:26.042>has <00:37:26.380>a <00:37:26.717>good <00:37:27.055>one.

629
00:37:27.305 --> 00:37:31.205
<00:37:27.305>He <00:37:27.480>says, <00:37:27.654>uh, <00:37:27.830>he, <00:37:28.004>he <00:37:28.180>wonders <00:37:28.355>for <00:37:28.529>what <00:37:28.705>problems

630
00:37:31.385 --> 00:37:34.285
<00:37:31.385>or <00:37:31.540>what <00:37:31.696>kind <00:37:31.851>of <00:37:32.007>projects <00:37:32.162>should <00:37:32.318>we <00:37:32.473>consider <00:37:32.629>using, <00:37:32.785>uh,

631
00:37:34.525 --> 00:37:36.965
<00:37:34.525>closure <00:37:34.758>instead <00:37:34.991>of <00:37:35.225>other <00:37:35.458>languages <00:37:35.691>and <00:37:35.925>frameworks?

632
00:37:39.805 --> 00:37:41.615
<00:37:39.805>Very <00:37:40.004>hard <00:37:40.205>to <00:37:40.404>answer <00:37:40.605>and <00:37:40.805>to <00:37:41.004>give <00:37:41.205>you

633
00:37:41.805 --> 00:37:43.975
<00:37:41.805>that <00:37:42.154>one <00:37:42.504>golden <00:37:42.855>bullet <00:37:43.205>here.

634
00:37:44.605 --> 00:37:48.455
<00:37:44.605>When <00:37:44.780>you <00:37:44.955>should <00:37:45.130>use <00:37:45.305>closure, <00:37:45.480>one <00:37:45.655>idea <00:37:45.830>could <00:37:46.005>be

635
00:37:48.595 --> 00:37:52.495
<00:37:48.595>to <00:37:48.734>stay <00:37:48.875>in <00:37:49.015>the <00:37:49.154>universe <00:37:49.294>of <00:37:49.435>metro, <00:37:49.575>of <00:37:49.714>course, <00:37:49.855>and <00:37:49.995>e-commerce.

636
00:37:53.445 --> 00:37:57.455
<00:37:53.445>Sometimes <00:37:53.678>you <00:37:53.911>have <00:37:54.145>that <00:37:54.378>huge <00:37:54.611>J <00:37:54.845>Airways

637
00:37:58.125 --> 00:38:00.535
<00:37:58.125>when <00:37:58.358>placing <00:37:58.591>order <00:37:58.825>in <00:37:59.058>your <00:37:59.291>e-commerce <00:37:59.525>system

638
00:38:01.075 --> 00:38:02.975
<00:38:01.075>and <00:38:01.308>there <00:38:01.541>are <00:38:01.774>so <00:38:02.008>many <00:38:02.241>different <00:38:02.475>attributes

639
00:38:03.515 --> 00:38:07.135
<00:38:03.515>and <00:38:03.670>I <00:38:03.826>guess <00:38:03.981>95 <00:38:04.137>percentage <00:38:04.292>you <00:38:04.448>just <00:38:04.603>do <00:38:04.759>not <00:38:04.915>care

640
00:38:07.525 --> 00:38:10.295
<00:38:07.525>because <00:38:07.700>they <00:38:07.875>are <00:38:08.050>in <00:38:08.225>there <00:38:08.400>for <00:38:08.575>a <00:38:08.750>different <00:38:08.925>team

641
00:38:10.395 --> 00:38:11.455
<00:38:10.395>but <00:38:10.633>not <00:38:10.872>for <00:38:11.110>your <00:38:11.349>team.

642
00:38:12.225 --> 00:38:15.875
<00:38:12.225>Then <00:38:12.365>closure <00:38:12.505>would <00:38:12.645>be <00:38:12.785>a <00:38:12.924>good <00:38:13.065>way <00:38:13.205>to <00:38:13.345>use <00:38:13.485>closure <00:38:13.625>spec.

643
00:38:16.615 --> 00:38:18.475
<00:38:16.615>You <00:38:16.964>only <00:38:17.314>define <00:38:17.665>the <00:38:18.015>three

644
00:38:18.575 --> 00:38:20.595
<00:38:18.575>or <00:38:18.774>four <00:38:18.975>values <00:38:19.174>you <00:38:19.375>really <00:38:19.575>need <00:38:19.774>in <00:38:19.975>there

645
00:38:21.095 --> 00:38:24.075
<00:38:21.095>and <00:38:21.270>everything <00:38:21.444>else, <00:38:21.620>it's <00:38:21.794>just <00:38:21.970>thrown <00:38:22.145>away <00:38:22.319>on <00:38:22.495>your,

646
00:38:24.075 --> 00:38:26.555
<00:38:24.075>just <00:38:24.250>filter <00:38:24.424>out <00:38:24.600>that <00:38:24.774>stuff <00:38:24.950>that <00:38:25.125>you <00:38:25.299>really <00:38:25.475>need.

647
00:38:27.575 --> 00:38:30.995
<00:38:27.575>If <00:38:27.691>you <00:38:27.808>would <00:38:27.924>do <00:38:28.041>that <00:38:28.158>in <00:38:28.274>Java <00:38:28.391>for <00:38:28.508>example, <00:38:28.625>then <00:38:28.741>you <00:38:28.858>have <00:38:28.975>for

648
00:38:30.995 --> 00:38:33.675
<00:38:30.995>that <00:38:31.228>J <00:38:31.461>dictionary, <00:38:31.694>I <00:38:31.928>guess <00:38:32.161>those <00:38:32.395>classes

649
00:38:33.975 --> 00:38:36.885
<00:38:33.975>to <00:38:34.150>define <00:38:34.325>everything <00:38:34.500>that <00:38:34.674>could <00:38:34.850>be <00:38:35.025>possibly <00:38:35.200>in <00:38:35.375>there.

650
00:38:37.345 --> 00:38:39.645
<00:38:37.345>And <00:38:37.544>if <00:38:37.745>not, <00:38:37.944>you <00:38:38.145>have <00:38:38.345>some <00:38:38.544>exceptions, <00:38:38.745>whatever

651
00:38:40.215 --> 00:38:42.885
<00:38:40.215>their <00:38:40.390>closure <00:38:40.565>is <00:38:40.740>a <00:38:40.915>very <00:38:41.090>good <00:38:41.265>idea <00:38:41.440>to <00:38:41.615>use.

652
00:38:43.385 --> 00:38:47.405
<00:38:43.385>We <00:38:43.512>have <00:38:43.639>already <00:38:43.766>done <00:38:43.894>it <00:38:44.021>in <00:38:44.148>our <00:38:44.275>company <00:38:44.403>and <00:38:44.530>it's <00:38:44.657>very <00:38:44.785>nice

653
00:38:47.425 --> 00:38:48.845
<00:38:47.425>and <00:38:47.744>of <00:38:48.064>course <00:38:48.383>very <00:38:48.703>stable.

654
00:38:50.725 --> 00:38:53.615
<00:38:50.725>Nice. <00:38:50.900>So <00:38:51.075>could <00:38:51.250>you <00:38:51.424>actually, <00:38:51.600>so <00:38:51.775>um, <00:38:51.950>is <00:38:52.125>that

655
00:38:53.615 --> 00:38:54.935
<00:38:53.615>where <00:38:54.011>you <00:38:54.406>use <00:38:54.803>closure

656
00:38:55.075 --> 00:38:57.655
<00:38:55.075>for <00:38:55.308>mostly <00:38:55.541>in <00:38:55.774>your <00:38:56.008>inside <00:38:56.241>your <00:38:56.475>company?

657
00:38:59.485 --> 00:39:02.825
<00:38:59.485>Yes <00:38:59.660>and <00:38:59.835>no. <00:39:00.010>We <00:39:00.185>have <00:39:00.360>totally <00:39:00.535>uh, <00:39:00.710>self-empowered <00:39:00.885>team.

658
00:39:02.925 --> 00:39:06.025
<00:39:02.925>So <00:39:03.065>a <00:39:03.205>team <00:39:03.345>is <00:39:03.485>totally <00:39:03.625>free <00:39:03.765>in <00:39:03.905>what <00:39:04.045>language <00:39:04.185>they <00:39:04.325>want

659
00:39:06.025 --> 00:39:07.145
<00:39:06.025>to <00:39:06.277>use <00:39:06.529>for <00:39:06.781>any <00:39:07.033>service.

660
00:39:07.805 --> 00:39:12.025
<00:39:07.805>We <00:39:07.960>have <00:39:08.116>a <00:39:08.271>few <00:39:08.427>common <00:39:08.582>stuff <00:39:08.738>like <00:39:08.893>solar <00:39:09.049>database, <00:39:09.205>whatever,

661
00:39:12.175 --> 00:39:13.545
<00:39:12.175>some <00:39:12.586>stuff <00:39:12.997>is <00:39:13.408>provided,

662
00:39:14.125 --> 00:39:16.585
<00:39:14.125>but <00:39:14.300>in <00:39:14.475>general <00:39:14.650>each <00:39:14.825>team <00:39:15.000>decides <00:39:15.175>on <00:39:15.350>its <00:39:15.525>own

663
00:39:16.895 --> 00:39:17.985
<00:39:16.895>what <00:39:17.140>they <00:39:17.385>want <00:39:17.630>to <00:39:17.876>use.

664
00:39:20.065 --> 00:39:23.505
<00:39:20.065>Excellent, <00:39:20.220>thank <00:39:20.376>you <00:39:20.531>so <00:39:20.687>much. <00:39:20.842>Um, <00:39:20.998>let's <00:39:21.153>go <00:39:21.309>to <00:39:21.465>some

665
00:39:23.505 --> 00:39:24.785
<00:39:23.505>of <00:39:24.081>Richard's <00:39:24.656>questions.

666
00:39:25.325 --> 00:39:29.905
<00:39:25.325>Um, <00:39:25.480>Richard <00:39:25.636>wants <00:39:25.791>to, <00:39:25.947>uh, <00:39:26.102>like <00:39:26.258>your, <00:39:26.413>um, <00:39:26.569>react, <00:39:26.725>uh,

667
00:39:30.105 --> 00:39:34.425
<00:39:30.105>closure <00:39:30.245>script <00:39:30.385>example <00:39:30.525>and <00:39:30.665>he <00:39:30.805>likes <00:39:30.945>to <00:39:31.085>split <00:39:31.225>up <00:39:31.365>his <00:39:31.505>HTML

668
00:39:34.645 --> 00:39:38.625
<00:39:34.645>and <00:39:34.845>his <00:39:35.045>um, <00:39:35.245>uh, <00:39:35.445>well <00:39:35.645>the <00:39:35.845>functionality <00:39:36.045>layer

669
00:39:39.215 --> 00:39:40.905
<00:39:39.215>from <00:39:39.495>each <00:39:39.775>other <00:39:40.055>in <00:39:40.335>separate <00:39:40.615>files

670
00:39:41.005 --> 00:39:43.225
<00:39:41.005>and <00:39:41.205>he <00:39:41.405>wonders <00:39:41.605>if <00:39:41.805>that <00:39:42.005>is <00:39:42.205>possible <00:39:42.405>in

671
00:39:43.225 --> 00:39:44.265
<00:39:43.225>the <00:39:43.459>closure <00:39:43.692>script <00:39:43.926>as <00:39:44.161>well.

672
00:39:47.515 --> 00:39:49.655
<00:39:47.515>You <00:39:47.795>could <00:39:48.075>even <00:39:48.355>be <00:39:48.634>more <00:39:48.915>specific

673
00:39:49.795 --> 00:39:51.335
<00:39:49.795>and <00:39:50.072>more <00:39:50.349>clear <00:39:50.626>when <00:39:50.903>it <00:39:51.181>comes

674
00:39:51.355 --> 00:39:53.055
<00:39:51.355>to <00:39:51.635>the <00:39:51.915>structure <00:39:52.195>of <00:39:52.475>your <00:39:52.755>project.

675
00:39:53.155 --> 00:39:57.445
<00:39:53.155>Of <00:39:53.330>course. <00:39:53.505>Um, <00:39:53.680>I <00:39:53.855>try <00:39:54.030>to <00:39:54.205>be <00:39:54.380>as <00:39:54.555>strict

676
00:39:57.665 --> 00:40:00.445
<00:39:57.665>as <00:39:57.865>possible <00:39:58.065>in <00:39:58.265>my <00:39:58.465>example <00:39:58.665>I <00:39:58.865>have <00:39:59.065>given,

677
00:40:00.505 --> 00:40:03.325
<00:40:00.505>but <00:40:00.680>yes, <00:40:00.855>in <00:40:01.030>general <00:40:01.205>you <00:40:01.380>can <00:40:01.555>divide <00:40:01.730>even <00:40:01.905>more

678
00:40:03.625 --> 00:40:06.365
<00:40:03.625>and <00:40:03.825>be <00:40:04.025>even <00:40:04.225>cleaner <00:40:04.425>in <00:40:04.625>your <00:40:04.825>style <00:40:05.025>guide.

679
00:40:06.425 --> 00:40:11.135
<00:40:06.425>Yes. <00:40:06.580>Nice. <00:40:06.736>And <00:40:06.891>then <00:40:07.047>Richard <00:40:07.202>has <00:40:07.358>another <00:40:07.513>question <00:40:07.669>for <00:40:07.825>you.

680
00:40:11.915 --> 00:40:14.455
<00:40:11.915>Uh, <00:40:12.115>he <00:40:12.315>said <00:40:12.515>you've <00:40:12.715>mentioned <00:40:12.915>closure <00:40:13.115>script, <00:40:13.315>uh,

681
00:40:14.455 --> 00:40:17.775
<00:40:14.455>to <00:40:14.582>be <00:40:14.709>a <00:40:14.836>language, <00:40:14.964>to <00:40:15.091>be <00:40:15.218>the <00:40:15.345>language <00:40:15.473>to <00:40:15.600>rule <00:40:15.727>them <00:40:15.855>all.

682
00:40:18.195 --> 00:40:21.935
<00:40:18.195>Uh, <00:40:18.335>Java <00:40:18.475>is <00:40:18.615>also <00:40:18.755>claimed <00:40:18.895>to <00:40:19.035>be <00:40:19.175>that <00:40:19.315>and <00:40:19.455>it's <00:40:19.595>uh,

683
00:40:21.995 --> 00:40:25.655
<00:40:21.995>and <00:40:22.122>it's <00:40:22.249>possible <00:40:22.376>to <00:40:22.504>write <00:40:22.631>web <00:40:22.758>UIs <00:40:22.885>with <00:40:23.013>Java, <00:40:23.140>uh, <00:40:23.267>with, <00:40:23.395>uh,

684
00:40:26.235 --> 00:40:31.095
<00:40:26.235>den, <00:40:26.410>um, <00:40:26.585>for <00:40:26.760>example, <00:40:26.935>how <00:40:27.110>is <00:40:27.285>closure <00:40:27.460>scripts <00:40:27.635>different?

685
00:40:33.405 --> 00:40:34.975
<00:40:33.405>It's <00:40:33.871>somehow, <00:40:34.338>it's <00:40:34.805>the,

686
00:40:36.355 --> 00:40:39.575
<00:40:36.355>so <00:40:36.495>in <00:40:36.635>general <00:40:36.775>closure <00:40:36.915>is <00:40:37.055>also <00:40:37.195>running <00:40:37.335>on <00:40:37.475>the <00:40:37.615>J <00:40:37.755>vm,

687
00:40:39.595 --> 00:40:41.775
<00:40:39.595>so <00:40:39.828>everything <00:40:40.061>you <00:40:40.294>do <00:40:40.528>InClosure <00:40:40.761>is <00:40:40.995>compared

688
00:40:41.775 --> 00:40:43.735
<00:40:41.775>to <00:40:42.008>Java <00:40:42.241>code <00:40:42.475>is <00:40:42.708>compared <00:40:42.941>to <00:40:43.175>Bytecode.

689
00:40:44.195 --> 00:40:45.655
<00:40:44.195>So <00:40:44.414>everything <00:40:44.633>you <00:40:44.852>can <00:40:45.071>do <00:40:45.290>in <00:40:45.509>Java.

690
00:40:45.655 --> 00:40:47.375
<00:40:45.655>So <00:40:45.810>it's <00:40:45.966>the <00:40:46.121>same <00:40:46.277>Richard, <00:40:46.432>it's <00:40:46.588>this <00:40:46.743>No, <00:40:46.899>I'm <00:40:47.055>kidding.

691
00:40:47.475 --> 00:40:50.095
<00:40:47.475>Please <00:40:47.708>continue. <00:40:47.941>Of <00:40:48.174>course <00:40:48.408>it's <00:40:48.641>the <00:40:48.875>same

692
00:40:50.095 --> 00:40:52.815
<00:40:50.095>because <00:40:50.294>every <00:40:50.495>language <00:40:50.694>is <00:40:50.895>the <00:40:51.095>queen <00:40:51.294>of <00:40:51.495>everything,

693
00:40:53.155 --> 00:40:56.215
<00:40:53.155>but <00:40:53.271>everything <00:40:53.388>you <00:40:53.505>can <00:40:53.621>do <00:40:53.738>in <00:40:53.855>Java, <00:40:53.971>you <00:40:54.088>can <00:40:54.205>do <00:40:54.321>it <00:40:54.438>in <00:40:54.555>closure

694
00:40:56.355 --> 00:41:00.745
<00:40:56.355>and <00:40:56.510>even <00:40:56.666>more <00:40:56.821>so <00:40:56.977>it <00:40:57.132>try <00:40:57.288>to <00:40:57.443>be <00:40:57.599>on <00:40:57.755>top

695
00:41:00.745 --> 00:41:03.665
<00:41:00.745>of <00:41:00.944>Java, <00:41:01.145>but <00:41:01.345>it's <00:41:01.545>a <00:41:01.745>complete <00:41:01.944>different <00:41:02.145>approach

696
00:41:03.665 --> 00:41:06.105
<00:41:03.665>because <00:41:03.865>Java <00:41:04.065>is <00:41:04.265>oh <00:41:04.465>oh <00:41:04.665>than <00:41:04.865>we <00:41:05.065>have

697
00:41:06.345 --> 00:41:07.425
<00:41:06.345>closure <00:41:06.831>that's <00:41:07.317>functional.

698
00:41:07.805 --> 00:41:11.385
<00:41:07.805>Of <00:41:07.944>course <00:41:08.085>there <00:41:08.225>are <00:41:08.365>benefits <00:41:08.504>when <00:41:08.645>you <00:41:08.785>should <00:41:08.924>use <00:41:09.065>Java <00:41:09.205>red

699
00:41:11.385 --> 00:41:12.825
<00:41:11.385>totally <00:41:12.033>be <00:41:12.681>ridiculous

700
00:41:13.245 --> 00:41:15.825
<00:41:13.245>to <00:41:13.444>throw <00:41:13.645>some <00:41:13.845>functional <00:41:14.045>programming <00:41:14.245>language <00:41:14.444>on <00:41:14.645>it,

701
00:41:16.285 --> 00:41:18.265
<00:41:16.285>but <00:41:16.440>I <00:41:16.596>guess <00:41:16.751>that <00:41:16.907>is <00:41:17.062>not <00:41:17.218>true <00:41:17.373>for <00:41:17.529>every <00:41:17.685>problem.

702
00:41:20.075 --> 00:41:23.195
<00:41:20.075>Interesting. <00:41:20.250>And <00:41:20.424>and <00:41:20.600>I <00:41:20.774>think <00:41:20.950>uh, <00:41:21.125>syntax <00:41:21.299>is <00:41:21.475>the,

703
00:41:23.195 --> 00:41:25.755
<00:41:23.195>the <00:41:23.395>obvious <00:41:23.595>one <00:41:23.795>that's <00:41:23.995>a <00:41:24.195>very <00:41:24.395>different, <00:41:24.595>um,

704
00:41:26.415 --> 00:41:28.915
<00:41:26.415>it <00:41:26.570>it <00:41:26.726>has <00:41:26.881>a <00:41:27.037>high <00:41:27.192>learning <00:41:27.348>curve <00:41:27.503>in <00:41:27.659>the <00:41:27.815>beginning.

705
00:41:29.015 --> 00:41:30.355
<00:41:29.015>Yes. <00:41:29.618>Yeah. <00:41:30.221>Yeah.

706
00:41:30.395 --> 00:41:32.315
<00:41:30.395>I <00:41:30.595>think <00:41:30.795>that's <00:41:30.995>what, <00:41:31.195>uh, <00:41:31.395>initially <00:41:31.595>a <00:41:31.795>lot

707
00:41:32.315 --> 00:41:35.885
<00:41:32.315>of <00:41:32.470>the <00:41:32.626>comments <00:41:32.781>were <00:41:32.937>about, <00:41:33.092>uh, <00:41:33.248>like <00:41:33.403>so <00:41:33.559>many <00:41:33.715>parentheses

708
00:41:36.385 --> 00:41:39.445
<00:41:36.385>and <00:41:36.512>I <00:41:36.639>think, <00:41:36.766>uh, <00:41:36.894>it's <00:41:37.021>one <00:41:37.148>of <00:41:37.275>these <00:41:37.403>things <00:41:37.530>that <00:41:37.657>uh, <00:41:37.785>you,

709
00:41:39.465 --> 00:41:41.965
<00:41:39.465>you <00:41:39.605>get <00:41:39.745>used <00:41:39.885>to <00:41:40.025>and <00:41:40.165>you, <00:41:40.305>you <00:41:40.445>turn <00:41:40.585>on <00:41:40.725>the <00:41:40.865>rainbow

710
00:41:42.185 --> 00:41:45.765
<00:41:42.185>of <00:41:42.360>parentheses, <00:41:42.535>uh, <00:41:42.710>plugin <00:41:42.884>true, <00:41:43.060>and <00:41:43.235>uh, <00:41:43.410>and <00:41:43.585>uh,

711
00:41:46.145 --> 00:41:47.925
<00:41:46.145>and <00:41:46.495>then <00:41:46.845>it <00:41:47.195>becomes <00:41:47.545>nice.

712
00:41:48.345 --> 00:41:52.485
<00:41:48.345>Is <00:41:48.472>that, <00:41:48.599>is <00:41:48.726>that <00:41:48.854>kind <00:41:48.981>of, <00:41:49.108>uh, <00:41:49.235>what, <00:41:49.363>what <00:41:49.490>it's <00:41:49.617>like <00:41:49.745>if,

713
00:41:52.545 --> 00:41:54.405
<00:41:52.545>if <00:41:52.745>you <00:41:52.945>have <00:41:53.145>no <00:41:53.345>rainbow <00:41:53.545>theme <00:41:53.745>at <00:41:53.945>all,

714
00:41:54.465 --> 00:41:56.325
<00:41:54.465>you <00:41:54.665>are <00:41:54.865>totally <00:41:55.065>lost <00:41:55.265>in <00:41:55.465>all <00:41:55.665>the <00:41:55.865>parentthe,

715
00:41:56.985 --> 00:42:00.165
<00:41:56.985>but <00:41:57.185>I <00:41:57.385>guess <00:41:57.585>once, <00:41:57.785>if <00:41:57.985>you <00:41:58.185>are <00:41:58.385>used

716
00:42:00.165 --> 00:42:02.525
<00:42:00.165>to <00:42:00.365>have <00:42:00.565>very <00:42:00.765>ugly <00:42:00.965>spaghetti <00:42:01.165>code <00:42:01.365>in <00:42:01.565>Java,

717
00:42:02.525 --> 00:42:03.885
<00:42:02.525>that <00:42:02.831>is <00:42:03.137>very <00:42:03.443>easy <00:42:03.749>possible.

718
00:42:04.435 --> 00:42:05.445
<00:42:04.435>It's <00:42:04.662>the <00:42:04.889>same <00:42:05.116>for <00:42:05.344>closure.

719
00:42:05.625 --> 00:42:07.285
<00:42:05.625>You <00:42:05.905>can <00:42:06.185>wipe <00:42:06.465>very <00:42:06.745>nested <00:42:07.025>functions

720
00:42:07.285 --> 00:42:09.125
<00:42:07.285>where <00:42:07.565>you <00:42:07.845>had <00:42:08.125>10 <00:42:08.404>parent <00:42:08.685>thesis.

721
00:42:09.225 --> 00:42:10.605
<00:42:09.225>You <00:42:09.432>have <00:42:09.639>seen <00:42:09.846>that <00:42:10.053>in <00:42:10.260>my <00:42:10.467>code,

722
00:42:11.185 --> 00:42:13.205
<00:42:11.185>but <00:42:11.418>it <00:42:11.651>could <00:42:11.884>be <00:42:12.118>even <00:42:12.351>more <00:42:12.585>purified.

723
00:42:14.895 --> 00:42:16.985
<00:42:14.895>Nice. <00:42:15.095>So, <00:42:15.295>uh, <00:42:15.495>this <00:42:15.695>the <00:42:15.895>old <00:42:16.095>saying, <00:42:16.295>uh,

724
00:42:16.985 --> 00:42:18.225
<00:42:16.985>you <00:42:17.171>can <00:42:17.357>go <00:42:17.543>anywhere <00:42:17.729>in <00:42:17.915>the <00:42:18.101>world,

725
00:42:19.005 --> 00:42:20.905
<00:42:19.005>but <00:42:19.205>uh, <00:42:19.405>you <00:42:19.605>always <00:42:19.805>take <00:42:20.005>yourself <00:42:20.205>with <00:42:20.405>you.

726
00:42:21.085 --> 00:42:22.505
<00:42:21.085>Uh, <00:42:21.340>is <00:42:21.596>is <00:42:21.851>still <00:42:22.107>the <00:42:22.363>case.

727
00:42:23.685 --> 00:42:25.185
<00:42:23.685>If <00:42:23.910>you <00:42:24.134>like <00:42:24.360>to <00:42:24.585>write <00:42:24.810>crappy <00:42:25.035>code,

728
00:42:25.205 --> 00:42:26.345
<00:42:25.205>you <00:42:25.375>can <00:42:25.547>do <00:42:25.718>that <00:42:25.888>in <00:42:26.060>any <00:42:26.231>language.

729
00:42:26.535 --> 00:42:28.265
<00:42:26.535>Nothing's <00:42:26.884>gonna <00:42:27.234>stop <00:42:27.585>you. <00:42:27.935>Okay.

730
00:42:28.615 --> 00:42:31.985
<00:42:28.615>Well, <00:42:28.731>I, <00:42:28.848>I <00:42:28.964>thank <00:42:29.081>you <00:42:29.198>so <00:42:29.314>much, <00:42:29.431>uh, <00:42:29.548>Tobias <00:42:29.665>for, <00:42:29.781>uh, <00:42:29.898>for <00:42:30.015>that.

731
00:42:32.105 --> 00:42:33.145
<00:42:32.105>I, <00:42:32.339>I <00:42:32.573>really <00:42:32.807>enjoyed <00:42:33.041>that

732
00:42:33.145 --> 00:42:35.145
<00:42:33.145>and <00:42:33.320>it <00:42:33.495>was <00:42:33.670>nice <00:42:33.845>to, <00:42:34.020>nice <00:42:34.195>to <00:42:34.370>see <00:42:34.545>closure

733
00:42:35.365 --> 00:42:37.665
<00:42:35.365>and <00:42:35.504>I <00:42:35.645>didn't <00:42:35.785>know <00:42:35.924>closure <00:42:36.064>script <00:42:36.205>was, <00:42:36.345>uh, <00:42:36.484>was <00:42:36.625>a <00:42:36.765>thing

734
00:42:37.665 --> 00:42:40.825
<00:42:37.665>as <00:42:37.772>well <00:42:37.880>and <00:42:37.988>it's <00:42:38.095>so <00:42:38.203>nice <00:42:38.311>how <00:42:38.418>you <00:42:38.526>can <00:42:38.634>move <00:42:38.741>one <00:42:38.849>to <00:42:38.957>the <00:42:39.065>other

735
00:42:40.965 --> 00:42:42.065
<00:42:40.965>and, <00:42:41.295>and <00:42:41.625>back <00:42:41.955>again.

736
00:42:42.095 --> 00:42:44.985
<00:42:42.095>It's <00:42:42.202>kind <00:42:42.310>of <00:42:42.418>cool. <00:42:42.525>Anyway, <00:42:42.633>so, <00:42:42.741>um, <00:42:42.848>I <00:42:42.956>want <00:42:43.064>to <00:42:43.171>give <00:42:43.279>you <00:42:43.387>a <00:42:43.495>big,

737
00:42:45.185 --> 00:42:48.105
<00:42:45.185>a <00:42:45.325>big <00:42:45.465>thank <00:42:45.605>you, <00:42:45.745>uh, <00:42:45.884>from, <00:42:46.025>uh, <00:42:46.165>from <00:42:46.305>all <00:42:46.445>of <00:42:46.585>us

738
00:42:48.765 --> 00:42:51.265
<00:42:48.765>and <00:42:48.964>I <00:42:49.165>wanna <00:42:49.365>say, <00:42:49.565>uh, <00:42:49.765>goodbye <00:42:49.964>to <00:42:50.165>everybody.

739
00:42:51.515 --> 00:42:53.545
<00:42:51.515>Enjoy <00:42:51.714>the <00:42:51.915>rest <00:42:52.115>of <00:42:52.315>the, <00:42:52.515>of <00:42:52.714>the <00:42:52.915>conference

740
00:42:53.965 --> 00:42:56.465
<00:42:53.965>and, <00:42:54.105>uh, <00:42:54.245>don't <00:42:54.385>forget <00:42:54.525>to <00:42:54.665>check <00:42:54.805>out <00:42:54.945>the, <00:42:55.085>uh, <00:42:55.225>the <00:42:55.365>expo.

741
00:42:57.965 --> 00:42:58.185
Bye.