WEBVTT

1
00:00:16.785 --> 00:00:18.525
<00:00:16.785>Hi <00:00:16.985>everyone, <00:00:17.185>and <00:00:17.385>thanks <00:00:17.585>for <00:00:17.785>joining <00:00:17.985>me <00:00:18.185>today.

2
00:00:19.265 --> 00:00:23.005
<00:00:19.265>My <00:00:19.405>topic <00:00:19.545>today <00:00:19.685>is <00:00:19.825>how <00:00:19.965>to <00:00:20.105>generate <00:00:20.245>code <00:00:20.385>with <00:00:20.525>Ular <00:00:20.665>schematics.

3
00:00:23.825 --> 00:00:25.845
<00:00:23.825>I'm <00:00:24.105>a <00:00:24.384>Google <00:00:24.665>developer <00:00:24.945>expert <00:00:25.224>ware.

4
00:00:26.045 --> 00:00:29.565
<00:00:26.045>I <00:00:26.185>work <00:00:26.325>at <00:00:26.465>VMware <00:00:26.605>on <00:00:26.745>an <00:00:26.885>over <00:00:27.025>source <00:00:27.165>framework <00:00:27.305>code <00:00:27.445>quality.

5
00:00:30.585 --> 00:00:32.845
<00:00:30.585>And, <00:00:30.740>uh, <00:00:30.896>if <00:00:31.051>you <00:00:31.207>have <00:00:31.362>any <00:00:31.518>questions <00:00:31.673>about <00:00:31.829>the <00:00:31.985>talk

6
00:00:32.865 --> 00:00:35.245
<00:00:32.865>or <00:00:33.005>any <00:00:33.145>of <00:00:33.285>these <00:00:33.425>things, <00:00:33.565>you <00:00:33.705>can <00:00:33.845>ping <00:00:33.985>me <00:00:34.125>on <00:00:34.265>Twitter.

7
00:00:37.545 --> 00:00:38.645
<00:00:37.545>So <00:00:37.875>what <00:00:38.205>is <00:00:38.535>schematics?

8
00:00:39.225 --> 00:00:41.765
<00:00:39.225>I'm <00:00:39.400>gonna <00:00:39.575>start <00:00:39.750>with <00:00:39.925>a <00:00:40.100>short <00:00:40.275>definition <00:00:40.450>from <00:00:40.625>the,

9
00:00:41.985 --> 00:00:43.285
<00:00:41.985>in <00:00:42.570>your <00:00:43.154>documentation.

10
00:00:45.195 --> 00:00:47.855
<00:00:45.195>Um, <00:00:45.545>just <00:00:45.895>let <00:00:46.245>me <00:00:46.595>remove

11
00:00:49.125 --> 00:00:50.625
<00:00:49.125>the <00:00:49.575>zoom <00:00:50.025>thing <00:00:50.475>here.

12
00:00:53.115 --> 00:00:56.615
<00:00:53.115>All <00:00:53.270>right. <00:00:53.426>So <00:00:53.581>schematics <00:00:53.737>is <00:00:53.892>a <00:00:54.048>template <00:00:54.203>based <00:00:54.359>code <00:00:54.515>generator,

13
00:00:56.665 --> 00:01:00.335
<00:00:56.665>which <00:00:56.839>basically <00:00:57.015>contains <00:00:57.190>a <00:00:57.365>set <00:00:57.540>of <00:00:57.714>instructions <00:00:57.890>that, <00:00:58.065>uh,

14
00:01:00.405 --> 00:01:03.895
<00:01:00.405>tell <00:01:00.580>with <00:01:00.755>how <00:01:00.930>to <00:01:01.105>transform <00:01:01.280>your <00:01:01.455>project <00:01:01.630>by <00:01:01.805>generating

15
00:01:03.915 --> 00:01:05.175
<00:01:03.915>or <00:01:04.292>modifying <00:01:04.670>some <00:01:05.048>code.

16
00:01:05.995 --> 00:01:09.215
<00:01:05.995>And <00:01:06.150>this <00:01:06.306>sounds <00:01:06.461>a <00:01:06.617>bit <00:01:06.772>generic, <00:01:06.928>you <00:01:07.083>can <00:01:07.239>basically <00:01:07.395>achieve

17
00:01:09.215 --> 00:01:11.695
<00:01:09.215>that <00:01:09.448>with <00:01:09.681>any <00:01:09.915>kind <00:01:10.148>of <00:01:10.381>notes <00:01:10.615>script

18
00:01:11.795 --> 00:01:15.855
<00:01:11.795>or <00:01:11.922>any <00:01:12.049>bio <00:01:12.176>script, <00:01:12.304>modify <00:01:12.431>some <00:01:12.558>files, <00:01:12.685>add <00:01:12.813>a <00:01:12.940>bunch <00:01:13.067>of <00:01:13.195>stuff.

19
00:01:16.515 --> 00:01:19.295
<00:01:16.515>So <00:01:16.690>let's <00:01:16.865>learn <00:01:17.040>what <00:01:17.215>is <00:01:17.390>so <00:01:17.565>special <00:01:17.740>with <00:01:17.915>schematics

20
00:01:19.755 --> 00:01:22.735
<00:01:19.755>by <00:01:19.895>first <00:01:20.035>taking <00:01:20.175>a <00:01:20.315>look <00:01:20.455>at <00:01:20.595>the <00:01:20.735>problems <00:01:20.875>that <00:01:21.015>it <00:01:21.155>solves

21
00:01:23.235 --> 00:01:27.895
<00:01:23.235>for <00:01:23.390>ware <00:01:23.546>and <00:01:23.701>for <00:01:23.857>the <00:01:24.012>ware <00:01:24.168>libraries <00:01:24.323>in <00:01:24.479>the <00:01:24.635>ecosystem.

22
00:01:30.165 --> 00:01:31.435
<00:01:30.164>First, <00:01:30.545>the <00:01:30.926>first <00:01:31.308>problem

23
00:01:31.435 --> 00:01:32.835
<00:01:31.435>that <00:01:31.750>s <00:01:32.065>schematics <00:01:32.380>solves <00:01:32.695>is

24
00:01:33.235 --> 00:01:34.595
<00:01:33.235>scaffolding <00:01:33.643>common <00:01:34.051>building <00:01:34.459>blocks.

25
00:01:35.375 --> 00:01:37.875
<00:01:35.375>So <00:01:35.575>in <00:01:35.775>Eng <00:01:35.975>War, <00:01:36.175>to <00:01:36.375>create <00:01:36.575>a <00:01:36.775>component,

26
00:01:38.015 --> 00:01:39.435
<00:01:38.015>you <00:01:38.197>need <00:01:38.380>to <00:01:38.562>add <00:01:38.745>a <00:01:38.927>bunch <00:01:39.110>of <00:01:39.293>files.

27
00:01:39.585 --> 00:01:42.035
<00:01:39.585>Usually <00:01:39.865>you <00:01:40.145>need <00:01:40.425>a <00:01:40.705>template <00:01:40.985>file.

28
00:01:42.175 --> 00:01:44.955
<00:01:42.175>You <00:01:42.455>need, <00:01:42.735>um, <00:01:43.015>a <00:01:43.295>TypeScript <00:01:43.575>file

29
00:01:44.955 --> 00:01:46.635
<00:01:44.955>that <00:01:45.188>contains <00:01:45.421>the <00:01:45.655>class <00:01:45.888>for <00:01:46.121>the <00:01:46.355>components.

30
00:01:47.295 --> 00:01:49.435
<00:01:47.295>Uh, <00:01:47.528>you <00:01:47.761>also <00:01:47.995>need <00:01:48.228>a <00:01:48.461>CSS <00:01:48.695>file,

31
00:01:49.485 --> 00:01:51.515
<00:01:49.485>maybe <00:01:49.765>some <00:01:50.045>tests <00:01:50.325>for <00:01:50.605>this <00:01:50.885>component.

32
00:01:52.375 --> 00:01:57.115
<00:01:52.375>And <00:01:52.515>then <00:01:52.655>when <00:01:52.795>it <00:01:52.935>comes <00:01:53.075>to <00:01:53.215>adding <00:01:53.355>the <00:01:53.495>usual <00:01:53.635>component <00:01:53.775>was,

33
00:01:57.625 --> 00:02:00.555
<00:01:57.625>it's <00:01:57.905>a <00:01:58.185>all <00:01:58.465>component <00:01:58.745>classes <00:01:59.025>for,

34
00:02:01.255 --> 00:02:02.555
<00:02:01.255>for <00:02:01.547>your <00:02:01.840>look, <00:02:02.132>pretty <00:02:02.425>similar.

35
00:02:03.135 --> 00:02:05.635
<00:02:03.135>Uh, <00:02:03.335>you <00:02:03.535>have <00:02:03.735>a <00:02:03.935>metadata <00:02:04.135>with <00:02:04.335>some <00:02:04.535>selectors,

36
00:02:05.815 --> 00:02:08.275
<00:02:05.815>you <00:02:06.048>have <00:02:06.281>a <00:02:06.515>constructor <00:02:06.748>engine <00:02:06.981>in <00:02:07.215>it,

37
00:02:08.275 --> 00:02:11.075
<00:02:08.275>some <00:02:08.450>other <00:02:08.625>lifecycle <00:02:08.800>hooks, <00:02:08.975>basically <00:02:09.150>a <00:02:09.325>bunch <00:02:09.500>of <00:02:09.675>code

38
00:02:11.075 --> 00:02:12.435
<00:02:11.075>that <00:02:11.381>looks <00:02:11.686>pretty, <00:02:11.993>pretty <00:02:12.299>similar.

39
00:02:14.545 --> 00:02:15.765
<00:02:14.545>Uh, <00:02:14.911>also <00:02:15.277>you <00:02:15.642>have

40
00:02:15.965 --> 00:02:18.245
<00:02:15.965>to <00:02:16.198>register <00:02:16.431>every <00:02:16.665>component <00:02:16.898>inside <00:02:17.131>the <00:02:17.365>module.

41
00:02:18.785 --> 00:02:20.325
<00:02:18.785>You <00:02:19.062>have, <00:02:19.339>uh, <00:02:19.616>one <00:02:19.893>route <00:02:20.171>module.

42
00:02:20.355 --> 00:02:21.445
<00:02:20.355>This <00:02:20.518>is <00:02:20.682>gonna <00:02:20.845>be <00:02:21.009>the <00:02:21.172>app <00:02:21.335>module.

43
00:02:21.545 --> 00:02:23.525
<00:02:21.545>You <00:02:21.825>have <00:02:22.105>feature <00:02:22.385>modules, <00:02:22.665>you <00:02:22.945>have

44
00:02:23.525 --> 00:02:26.965
<00:02:23.525>to <00:02:23.700>register <00:02:23.875>the <00:02:24.050>components <00:02:24.225>inside, <00:02:24.400>uh, <00:02:24.575>your <00:02:24.750>feature <00:02:24.925>module.

45
00:02:28.375 --> 00:02:29.995
<00:02:28.375>I'm <00:02:28.575>pretty <00:02:28.775>sure <00:02:28.975>you're <00:02:29.175>all <00:02:29.375>familiar <00:02:29.575>with <00:02:29.775>that.

46
00:02:30.135 --> 00:02:32.875
<00:02:30.135>If <00:02:30.274>you <00:02:30.415>touch <00:02:30.554>that <00:02:30.695>your <00:02:30.834>at <00:02:30.975>some <00:02:31.114>point <00:02:31.255>in <00:02:31.394>your <00:02:31.535>life.

47
00:02:33.615 --> 00:02:38.075
<00:02:33.615>So <00:02:33.742>what <00:02:33.869>am <00:02:33.996>I <00:02:34.124>saying <00:02:34.251>that <00:02:34.378>imagine <00:02:34.505>a <00:02:34.633>world <00:02:34.760>where <00:02:34.887>you <00:02:35.015>had

48
00:02:38.075 --> 00:02:39.635
<00:02:38.075>to <00:02:38.424>do <00:02:38.774>all <00:02:39.125>that <00:02:39.475>manually.

49
00:02:40.635 --> 00:02:43.575
<00:02:40.635>Um, <00:02:40.810>that's, <00:02:40.984>that's <00:02:41.160>would <00:02:41.334>be <00:02:41.510>pretty <00:02:41.685>confusing <00:02:41.859>and <00:02:42.035>annoying

50
00:02:43.645 --> 00:02:47.375
<00:02:43.645>because <00:02:43.761>it's <00:02:43.878>a <00:02:43.995>lot <00:02:44.111>of, <00:02:44.228>um, <00:02:44.345>it's <00:02:44.461>a <00:02:44.578>lot <00:02:44.695>of <00:02:44.811>code, <00:02:44.928>a <00:02:45.045>lot

51
00:02:47.375 --> 00:02:51.415
<00:02:47.375>of <00:02:47.575>files <00:02:47.775>that <00:02:47.975>are <00:02:48.175>very <00:02:48.375>i <00:02:48.575>repetitive <00:02:48.775>weekly.

52
00:02:52.155 --> 00:02:54.215
<00:02:52.155>Um, <00:02:52.505>of <00:02:52.855>course <00:02:53.205>you <00:02:53.555>have

53
00:02:54.215 --> 00:02:55.815
<00:02:54.215>to <00:02:54.390>do <00:02:54.565>the <00:02:54.740>same <00:02:54.915>thing <00:02:55.090>for <00:02:55.265>modules <00:02:55.440>as <00:02:55.615>well.

54
00:02:55.995 --> 00:03:00.325
<00:02:55.995>You <00:02:56.150>have <00:02:56.306>a <00:02:56.461>very <00:02:56.617>similar <00:02:56.772>repetitive <00:02:56.928>code <00:02:57.083>that <00:02:57.239>you <00:02:57.395>have

55
00:03:00.325 --> 00:03:03.125
<00:03:00.325>to <00:03:00.674>add, <00:03:01.024>but <00:03:01.375>the <00:03:01.725>ENG

56
00:03:03.185 --> 00:03:06.085
<00:03:03.185>or <00:03:03.360>COI <00:03:03.535>provides <00:03:03.710>us <00:03:03.885>with <00:03:04.060>the <00:03:04.235>engine <00:03:04.410>generate <00:03:04.585>commands

57
00:03:06.115 --> 00:03:09.485
<00:03:06.115>that <00:03:06.315>can <00:03:06.515>help <00:03:06.715>us <00:03:06.915>generate <00:03:07.115>components <00:03:07.315>and <00:03:07.515>modules

58
00:03:09.485 --> 00:03:11.565
<00:03:09.485>and <00:03:09.718>services <00:03:09.951>and <00:03:10.185>all <00:03:10.418>the <00:03:10.651>other <00:03:10.885>common

59
00:03:11.885 --> 00:03:13.005
<00:03:11.885>building <00:03:12.221>works <00:03:12.557>for <00:03:12.893>eng.

60
00:03:14.145 --> 00:03:16.085
<00:03:14.145>And <00:03:14.345>you <00:03:14.545>don't <00:03:14.745>have <00:03:14.945>to <00:03:15.145>do <00:03:15.345>that <00:03:15.545>manually.

61
00:03:17.615 --> 00:03:19.365
<00:03:17.615>We'll <00:03:17.965>see <00:03:18.315>later <00:03:18.665>that <00:03:19.015>underneath

62
00:03:19.785 --> 00:03:23.445
<00:03:19.785>and <00:03:20.018>generate <00:03:20.251>uses <00:03:20.484>schematics <00:03:20.718>to <00:03:20.951>achieve <00:03:21.185>this.

63
00:03:25.825 --> 00:03:28.295
<00:03:25.825>Other <00:03:26.058>problem <00:03:26.291>that <00:03:26.524>is <00:03:26.758>solved <00:03:26.991>by <00:03:27.225>schematics

64
00:03:28.955 --> 00:03:31.255
<00:03:28.954>is <00:03:29.421>the <00:03:29.888>automatic <00:03:30.355>generation

65
00:03:31.355 --> 00:03:34.135
<00:03:31.355>and <00:03:31.635>configuration <00:03:31.915>of <00:03:32.195>rivalries <00:03:32.475>and <00:03:32.755>features.

66
00:03:36.215 --> 00:03:39.295
<00:03:36.215>I <00:03:36.331>mentioned <00:03:36.448>that <00:03:36.565>I <00:03:36.681>work <00:03:36.798>for <00:03:36.915>a <00:03:37.031>pro <00:03:37.148>you <00:03:37.265>a <00:03:37.381>project <00:03:37.498>called <00:03:37.615>qu.

67
00:03:39.915 --> 00:03:44.695
<00:03:39.915>And <00:03:40.090>this <00:03:40.265>QU <00:03:40.440>has <00:03:40.614>a <00:03:40.790>ware <00:03:40.965>package, <00:03:41.140>which <00:03:41.315>means

68
00:03:44.695 --> 00:03:47.135
<00:03:44.695>that <00:03:44.870>QU <00:03:45.045>can <00:03:45.220>be <00:03:45.394>used <00:03:45.570>in <00:03:45.745>an <00:03:45.920>N <00:03:46.095>project

69
00:03:47.475 --> 00:03:51.015
<00:03:47.475>and <00:03:47.708>it's <00:03:47.941>basically <00:03:48.174>used <00:03:48.408>across <00:03:48.641>all <00:03:48.875>VMware.

70
00:03:51.155 --> 00:03:53.375
<00:03:51.155>And <00:03:51.435>VMware <00:03:51.715>has <00:03:51.995>what <00:03:52.275>ware <00:03:52.555>projects.

71
00:03:54.115 --> 00:03:57.855
<00:03:54.115>So <00:03:54.315>how <00:03:54.515>do <00:03:54.715>you <00:03:54.915>configure <00:03:55.115>the <00:03:55.315>quality <00:03:55.515>package

72
00:03:57.915 --> 00:03:59.055
<00:03:57.915>inside <00:03:58.428>your <00:03:58.941>application?

73
00:04:00.265 --> 00:04:02.655
<00:04:00.265>First <00:04:00.464>you <00:04:00.665>have <00:04:00.864>to <00:04:01.065>install <00:04:01.265>a <00:04:01.464>few <00:04:01.665>dependencies,

74
00:04:02.885 --> 00:04:04.295
<00:04:02.885>save <00:04:03.202>them <00:04:03.519>in <00:04:03.836>your <00:04:04.154>packages.

75
00:04:05.165 --> 00:04:06.975
<00:04:05.165>Then <00:04:05.398>you <00:04:05.631>have <00:04:05.864>to <00:04:06.098>configure <00:04:06.331>some <00:04:06.565>style

76
00:04:06.975 --> 00:04:09.215
<00:04:06.975>and <00:04:07.208>scripts <00:04:07.441>inside <00:04:07.674>the <00:04:07.908>in <00:04:08.141>j <00:04:08.375>file.

77
00:04:10.205 --> 00:04:12.535
<00:04:10.205>Then <00:04:10.405>you <00:04:10.605>have <00:04:10.805>to <00:04:11.005>register <00:04:11.205>the <00:04:11.405>quality <00:04:11.605>module

78
00:04:12.535 --> 00:04:16.215
<00:04:12.535>inside <00:04:12.734>your <00:04:12.935>road <00:04:13.135>components <00:04:13.335>or, <00:04:13.535>uh, <00:04:13.734>route <00:04:13.935>module

79
00:04:16.435 --> 00:04:18.615
<00:04:16.435>or <00:04:16.635>inside <00:04:16.834>any <00:04:17.035>feature <00:04:17.235>module <00:04:17.435>that <00:04:17.635>you <00:04:17.834>want.

80
00:04:19.435 --> 00:04:24.195
<00:04:19.435>And <00:04:19.562>as <00:04:19.689>you <00:04:19.816>can <00:04:19.944>see, <00:04:20.071>this <00:04:20.198>is <00:04:20.325>very <00:04:20.453>simple <00:04:20.580>and, <00:04:20.707>um, <00:04:20.834>repetitive

81
00:04:24.375 --> 00:04:27.715
<00:04:24.375>and <00:04:24.608>well-defined <00:04:24.841>process <00:04:25.075>in <00:04:25.308>terms <00:04:25.541>of <00:04:25.775>steps.

82
00:04:28.575 --> 00:04:31.515
<00:04:28.575>But <00:04:28.682>if <00:04:28.790>you <00:04:28.898>have <00:04:29.005>to <00:04:29.113>do <00:04:29.221>that <00:04:29.328>daily <00:04:29.436>on <00:04:29.544>a <00:04:29.651>bunch <00:04:29.759>of <00:04:29.867>new <00:04:29.974>apps,

83
00:04:31.615 --> 00:04:33.515
<00:04:31.615>or <00:04:31.790>if <00:04:31.965>you <00:04:32.140>have <00:04:32.315>to <00:04:32.490>do <00:04:32.665>that <00:04:32.840>even <00:04:33.015>once,

84
00:04:33.575 --> 00:04:38.155
<00:04:33.575>if <00:04:33.702>you <00:04:33.829>just <00:04:33.956>wanna <00:04:34.084>try <00:04:34.211>out <00:04:34.338>quality, <00:04:34.465>it <00:04:34.593>might <00:04:34.720>be, <00:04:34.847>um, <00:04:34.974>good

85
00:04:38.215 --> 00:04:39.395
<00:04:38.215>to <00:04:38.569>have <00:04:38.923>that <00:04:39.277>automated.

86
00:04:41.425 --> 00:04:45.915
<00:04:41.425>Luckily, <00:04:41.600>the <00:04:41.775>NGA <00:04:41.950>command <00:04:42.125>that <00:04:42.300>is <00:04:42.475>provided <00:04:42.650>by <00:04:42.825>ular,

87
00:04:46.055 --> 00:04:49.835
<00:04:46.055>and <00:04:46.195>it's <00:04:46.335>extensive, <00:04:46.475>it <00:04:46.615>can <00:04:46.755>be <00:04:46.895>extended <00:04:47.035>by <00:04:47.175>any <00:04:47.315>ular <00:04:47.455>rivalry,

88
00:04:50.535 --> 00:04:54.835
<00:04:50.534>allows <00:04:50.734>you <00:04:50.934>as <00:04:51.135>a <00:04:51.335>rivalry <00:04:51.534>developer <00:04:51.734>to <00:04:51.934>define

89
00:04:55.675 --> 00:04:56.755
<00:04:55.675>a <00:04:55.999>set <00:04:56.323>of <00:04:56.647>instructions

90
00:04:56.785 --> 00:04:59.315
<00:04:56.784>that <00:04:56.960>help <00:04:57.135>you <00:04:57.309>configure <00:04:57.484>the <00:04:57.659>project <00:04:57.835>for <00:04:58.010>your <00:04:58.184>users.

91
00:04:59.975 --> 00:05:03.195
<00:04:59.975>So <00:05:00.175>what <00:05:00.375>we <00:05:00.575>see <00:05:00.775>here, <00:05:00.975>we're <00:05:01.175>executing <00:05:01.375>N-G-A-C-O-R

92
00:05:03.815 --> 00:05:05.475
<00:05:03.815>in <00:05:04.281>some <00:05:04.748>angular <00:05:05.215>project.

93
00:05:06.265 --> 00:05:08.715
<00:05:06.265>This <00:05:06.498>commands, <00:05:06.731>uh, <00:05:06.965>does <00:05:07.198>all <00:05:07.431>the <00:05:07.664>steps

94
00:05:08.715 --> 00:05:11.955
<00:05:08.715>that <00:05:08.870>we <00:05:09.026>did <00:05:09.181>in <00:05:09.337>the <00:05:09.492>previous <00:05:09.648>white <00:05:09.803>automatically <00:05:09.959>for <00:05:10.114>us.

95
00:05:12.615 --> 00:05:15.515
<00:05:12.615>We <00:05:12.770>have <00:05:12.926>the <00:05:13.081>packages <00:05:13.237>updated, <00:05:13.392>we <00:05:13.548>have <00:05:13.703>the <00:05:13.859>adjacent <00:05:14.015>updated,

96
00:05:15.735 --> 00:05:20.115
<00:05:15.735>we <00:05:15.890>have <00:05:16.046>the <00:05:16.201>Ang <00:05:16.357>uh, <00:05:16.512>the <00:05:16.668>quality <00:05:16.823>modules, <00:05:16.979>um, <00:05:17.135>registered

97
00:05:20.255 --> 00:05:21.355
<00:05:20.255>inside <00:05:20.585>the <00:05:20.915>app <00:05:21.245>module.

98
00:05:23.455 --> 00:05:27.435
<00:05:23.455>And <00:05:23.594>this <00:05:23.734>was <00:05:23.875>defined <00:05:24.015>by <00:05:24.155>the <00:05:24.294>quality <00:05:24.435>team <00:05:24.575>inside <00:05:24.715>our <00:05:24.854>library.

99
00:05:27.575 --> 00:05:30.435
<00:05:27.575>So <00:05:27.715>it's <00:05:27.854>not <00:05:27.995>something <00:05:28.135>that <00:05:28.275>comes <00:05:28.414>out <00:05:28.555>the <00:05:28.695>box <00:05:28.835>with <00:05:28.974>angular.

100
00:05:33.105 --> 00:05:34.995
<00:05:33.105>Similar <00:05:33.805>example <00:05:34.505>is

101
00:05:35.375 --> 00:05:37.995
<00:05:35.375>how <00:05:35.608>you <00:05:35.841>would <00:05:36.075>make <00:05:36.308>your <00:05:36.541>your <00:05:36.775>application

102
00:05:38.155 --> 00:05:39.435
<00:05:38.155>a <00:05:38.539>progressive <00:05:38.923>web <00:05:39.307>app.

103
00:05:40.085 --> 00:05:43.435
<00:05:40.085>First <00:05:40.224>you <00:05:40.364>need <00:05:40.505>a <00:05:40.645>whole <00:05:40.784>bunch <00:05:40.924>of <00:05:41.065>icons <00:05:41.205>that <00:05:41.344>you <00:05:41.484>have

104
00:05:43.435 --> 00:05:46.035
<00:05:43.435>to <00:05:43.668>generate <00:05:43.901>based <00:05:44.135>on <00:05:44.368>one, <00:05:44.601>one <00:05:44.835>icon.

105
00:05:47.095 --> 00:05:50.465
<00:05:47.095>Then <00:05:47.270>you <00:05:47.445>need <00:05:47.620>a <00:05:47.795>web <00:05:47.970>manifest <00:05:48.145>file <00:05:48.320>that, <00:05:48.495>um,

106
00:05:51.145 --> 00:05:53.065
<00:05:51.145>describes <00:05:51.424>some <00:05:51.705>stuff <00:05:51.984>for <00:05:52.265>your <00:05:52.544>project.

107
00:05:54.295 --> 00:05:57.025
<00:05:54.295>Then <00:05:54.495>you <00:05:54.695>need, <00:05:54.895>um, <00:05:55.095>a <00:05:55.295>service <00:05:55.495>worker <00:05:55.695>file

108
00:05:57.315 --> 00:05:59.445
<00:05:57.315>that <00:05:57.594>is <00:05:57.875>also <00:05:58.155>very <00:05:58.435>well <00:05:58.715>defined,

109
00:05:59.625 --> 00:06:02.365
<00:05:59.625>but <00:05:59.780>you <00:05:59.936>have <00:06:00.091>to <00:06:00.247>add <00:06:00.402>that <00:06:00.558>manually <00:06:00.713>to <00:06:00.869>your <00:06:01.025>project.

110
00:06:03.275 --> 00:06:05.245
<00:06:03.275>Then <00:06:03.508>you <00:06:03.741>have <00:06:03.974>to <00:06:04.208>add <00:06:04.441>some <00:06:04.674>dependencies.

111
00:06:05.345 --> 00:06:07.125
<00:06:05.345>You <00:06:05.520>have <00:06:05.695>to <00:06:05.870>add <00:06:06.045>something <00:06:06.220>to <00:06:06.395>the <00:06:06.570>in <00:06:06.745>j

112
00:06:07.715 --> 00:06:08.925
<00:06:07.715>very <00:06:08.259>well-defined <00:06:08.804>steps.

113
00:06:09.715 --> 00:06:13.285
<00:06:09.715>Luckily, <00:06:09.854>there <00:06:09.994>is <00:06:10.135>NG <00:06:10.275>ads <00:06:10.414>for <00:06:10.554>in <00:06:10.695>your <00:06:10.835>PWA <00:06:10.974>as <00:06:11.114>well,

114
00:06:13.375 --> 00:06:16.125
<00:06:13.375>which <00:06:13.575>when <00:06:13.775>you <00:06:13.975>execute <00:06:14.175>it <00:06:14.375>inside <00:06:14.575>your <00:06:14.775>project,

115
00:06:16.385 --> 00:06:19.085
<00:06:16.385>that's <00:06:16.585>all <00:06:16.784>the <00:06:16.985>configurations <00:06:17.185>that <00:06:17.385>we <00:06:17.585>saw <00:06:17.784>automatically.

116
00:06:20.025 --> 00:06:23.685
<00:06:20.025>It <00:06:20.180>generates <00:06:20.336>items, <00:06:20.491>uh, <00:06:20.647>it <00:06:20.802>does <00:06:20.958>all <00:06:21.113>these <00:06:21.269>repetitive <00:06:21.424>steps

117
00:06:23.955 --> 00:06:25.925
<00:06:23.955>that <00:06:24.155>you <00:06:24.354>don't <00:06:24.555>have <00:06:24.755>to <00:06:24.955>do <00:06:25.155>by <00:06:25.354>yourself.

118
00:06:27.065 --> 00:06:31.645
<00:06:27.065>And <00:06:27.265>this <00:06:27.465>is <00:06:27.665>basically, <00:06:27.865>um, <00:06:28.065>making <00:06:28.265>it <00:06:28.465>easier

119
00:06:31.905 --> 00:06:35.485
<00:06:31.905>for <00:06:32.060>users <00:06:32.216>to <00:06:32.371>start <00:06:32.527>using <00:06:32.682>your <00:06:32.838>library <00:06:32.993>or <00:06:33.149>your <00:06:33.304>feature.

120
00:06:38.465 --> 00:06:40.405
<00:06:38.465>How <00:06:38.815>about <00:06:39.165>migrating <00:06:39.515>rating <00:06:39.865>changes?

121
00:06:40.945 --> 00:06:44.845
<00:06:40.945>If <00:06:41.100>you <00:06:41.256>are <00:06:41.411>an <00:06:41.567>your <00:06:41.722>developer, <00:06:41.878>you <00:06:42.033>know <00:06:42.189>that, <00:06:42.344>uh,

122
00:06:44.845 --> 00:06:48.565
<00:06:44.845>between <00:06:45.020>every <00:06:45.195>feature <00:06:45.370>version <00:06:45.545>of <00:06:45.720>Azure, <00:06:45.895>every <00:06:46.070>major <00:06:46.245>version,

123
00:06:49.265 --> 00:06:50.965
<00:06:49.265>uh, <00:06:49.498>there <00:06:49.731>might <00:06:49.965>be <00:06:50.198>some <00:06:50.431>breaking <00:06:50.664>changes

124
00:06:50.965 --> 00:06:55.205
<00:06:50.965>because <00:06:51.245>is <00:06:51.525>following <00:06:51.805>the <00:06:52.085>same <00:06:52.365>format

125
00:06:55.425 --> 00:06:58.645
<00:06:55.425>for <00:06:55.705>releasing <00:06:55.985>of <00:06:56.265>every <00:06:56.545>major <00:06:56.825>version

126
00:06:58.705 --> 00:07:02.725
<00:06:58.705>of <00:06:58.860>ware <00:06:59.016>can <00:06:59.171>bring <00:06:59.327>breaking <00:06:59.482>changes <00:06:59.638>that <00:06:59.793>basically <00:06:59.949>you <00:07:00.104>have

127
00:07:02.725 --> 00:07:05.365
<00:07:02.725>to <00:07:02.958>adopt <00:07:03.191>to <00:07:03.425>make <00:07:03.658>your <00:07:03.891>application <00:07:04.125>work

128
00:07:05.395 --> 00:07:07.085
<00:07:05.395>with <00:07:05.745>the <00:07:06.094>newest <00:07:06.445>ENG <00:07:06.794>version.

129
00:07:09.685 --> 00:07:14.345
<00:07:09.685>The <00:07:09.825>G <00:07:09.965>provides <00:07:10.105>the <00:07:10.245>NG <00:07:10.385>update <00:07:10.525>commands <00:07:10.665>that <00:07:10.805>you <00:07:10.945>can <00:07:11.085>execute

130
00:07:14.725 --> 00:07:18.495
<00:07:14.725>inside <00:07:14.958>your <00:07:15.191>project <00:07:15.425>and <00:07:15.658>it'll, <00:07:15.891>it <00:07:16.125>will

131
00:07:19.075 --> 00:07:23.095
<00:07:19.075>do <00:07:19.230>all <00:07:19.386>the <00:07:19.541>necessary <00:07:19.697>replacements <00:07:19.852>so <00:07:20.008>that <00:07:20.163>your <00:07:20.319>project <00:07:20.474>works

132
00:07:23.245 --> 00:07:24.695
<00:07:23.245>with <00:07:23.506>the <00:07:23.767>latest <00:07:24.028>version <00:07:24.289>of <00:07:24.550>F.

133
00:07:26.945 --> 00:07:30.425
<00:07:26.945>And <00:07:27.100>as <00:07:27.256>you <00:07:27.411>can <00:07:27.567>see <00:07:27.722>here, <00:07:27.878>this <00:07:28.033>is <00:07:28.189>updating, <00:07:28.344>um,

134
00:07:30.815 --> 00:07:32.985
<00:07:30.815>your <00:07:31.094>dependencies <00:07:31.375>to <00:07:31.655>the <00:07:31.935>latest <00:07:32.215>versions

135
00:07:32.985 --> 00:07:36.185
<00:07:32.985>of <00:07:33.218>F <00:07:33.451>then <00:07:33.685>it's <00:07:33.918>executing <00:07:34.151>certain <00:07:34.385>migrations

136
00:07:36.375 --> 00:07:38.985
<00:07:36.375>that <00:07:36.608>were <00:07:36.841>defined <00:07:37.075>inside <00:07:37.308>the <00:07:37.541>Ang <00:07:37.775>library.

137
00:07:41.355 --> 00:07:46.255
<00:07:41.355>So <00:07:41.530>to <00:07:41.705>summarize, <00:07:41.880>these <00:07:42.055>are <00:07:42.230>three <00:07:42.405>Ang <00:07:42.580>COI <00:07:42.755>commands

138
00:07:46.715 --> 00:07:47.935
<00:07:46.715>and <00:07:47.081>to <00:07:47.447>generate <00:07:47.813>NG

139
00:07:48.035 --> 00:07:52.255
<00:07:48.034>and <00:07:48.210>NNG <00:07:48.385>updates, <00:07:48.559>that <00:07:48.734>makes <00:07:48.909>life <00:07:49.085>easier <00:07:49.260>for <00:07:49.434>us

140
00:07:52.475 --> 00:07:54.655
<00:07:52.475>and <00:07:52.825>that <00:07:53.175>internally <00:07:53.525>use <00:07:53.875>mathematics.

141
00:07:57.165 --> 00:07:59.745
<00:07:57.165>But <00:07:57.292>the <00:07:57.419>good <00:07:57.546>thing <00:07:57.674>is <00:07:57.801>that <00:07:57.928>you <00:07:58.055>can <00:07:58.183>actually <00:07:58.310>write <00:07:58.437>your <00:07:58.565>own

142
00:07:59.745 --> 00:08:02.265
<00:07:59.745>schematics <00:07:59.945>and <00:08:00.145>they <00:08:00.345>don't <00:08:00.545>have <00:08:00.745>to <00:08:00.945>be <00:08:01.145>attached

143
00:08:02.405 --> 00:08:03.625
<00:08:02.405>to <00:08:02.770>the <00:08:03.137>anger, <00:08:03.503>COI.

144
00:08:04.405 --> 00:08:07.595
<00:08:04.405>So, <00:08:04.871>um, <00:08:05.338>they're, <00:08:05.804>um,

145
00:08:08.735 --> 00:08:11.995
<00:08:08.735>the <00:08:08.910>schematics <00:08:09.085>library <00:08:09.260>was <00:08:09.435>developed <00:08:09.610>by <00:08:09.785>the <00:08:09.960>Ang <00:08:10.135>team,

146
00:08:12.535 --> 00:08:15.155
<00:08:12.535>but <00:08:12.815>it <00:08:13.095>is <00:08:13.375>not <00:08:13.655>really <00:08:13.935>attached

147
00:08:15.175 --> 00:08:17.235
<00:08:15.175>to <00:08:15.408>the <00:08:15.641>Angular <00:08:15.875>framework <00:08:16.108>in <00:08:16.341>any <00:08:16.575>way.

148
00:08:17.425 --> 00:08:20.155
<00:08:17.425>It's <00:08:17.658>open <00:08:17.891>source <00:08:18.125>and <00:08:18.358>it's <00:08:18.591>pretty <00:08:18.825>extensible.

149
00:08:20.655 --> 00:08:24.675
<00:08:20.655>So <00:08:20.854>you <00:08:21.054>can <00:08:21.255>write <00:08:21.455>your <00:08:21.655>schematics, <00:08:21.854>uh, <00:08:22.054>scripts

150
00:08:25.135 --> 00:08:27.035
<00:08:25.135>and <00:08:25.368>use <00:08:25.601>them <00:08:25.835>in <00:08:26.068>a <00:08:26.301>React <00:08:26.534>application

151
00:08:27.135 --> 00:08:29.915
<00:08:27.135>or <00:08:27.275>use <00:08:27.414>them <00:08:27.555>for <00:08:27.695>any <00:08:27.835>kind <00:08:27.974>of <00:08:28.115>task <00:08:28.255>that <00:08:28.395>you <00:08:28.534>want.

152
00:08:30.025 --> 00:08:31.115
<00:08:30.025>They're <00:08:30.515>not <00:08:31.006>attached

153
00:08:31.335 --> 00:08:35.355
<00:08:31.335>to <00:08:31.534>the <00:08:31.734>Ang <00:08:31.935>framework <00:08:32.135>in <00:08:32.334>any <00:08:32.534>definitive <00:08:32.735>way.

154
00:08:38.705 --> 00:08:41.885
<00:08:38.705>Uh, <00:08:38.860>so <00:08:39.016>there <00:08:39.171>are <00:08:39.327>a <00:08:39.482>bunch <00:08:39.638>of <00:08:39.793>collections <00:08:39.949>for <00:08:40.105>schematics.

155
00:08:42.015 --> 00:08:46.725
<00:08:42.015>These <00:08:42.215>are <00:08:42.414>packages <00:08:42.615>that, <00:08:42.814>um, <00:08:43.015>pack <00:08:43.215>certain <00:08:43.414>scripts

156
00:08:46.825 --> 00:08:51.265
<00:08:46.825>inside <00:08:47.000>of <00:08:47.175>them <00:08:47.350>and <00:08:47.525>they, <00:08:47.700>they <00:08:47.875>distribute <00:08:48.050>the <00:08:48.225>scripts

157
00:08:51.265 --> 00:08:55.365
<00:08:51.265>and <00:08:51.405>the <00:08:51.545>anger, <00:08:51.685>COI <00:08:51.824>or <00:08:51.965>the <00:08:52.105>schematics <00:08:52.245>COI <00:08:52.385>can <00:08:52.525>use <00:08:52.665>them.

158
00:08:55.985 --> 00:08:58.285
<00:08:55.985>The <00:08:56.218>default <00:08:56.451>collection <00:08:56.685>for <00:08:56.918>regular <00:08:57.151>projects <00:08:57.385>is

159
00:08:58.285 --> 00:08:59.325
<00:08:58.285>called <00:08:58.753>Schematic <00:08:59.221>Senior.

160
00:08:59.745 --> 00:09:02.805
<00:08:59.745>And <00:08:59.885>this <00:09:00.025>is <00:09:00.165>what <00:09:00.305>you <00:09:00.445>do <00:09:00.585>when <00:09:00.725>you <00:09:00.865>generate, <00:09:01.005>this <00:09:01.145>is

161
00:09:02.805 --> 00:09:05.605
<00:09:02.805>what <00:09:02.979>you <00:09:03.155>use <00:09:03.329>when <00:09:03.505>you <00:09:03.680>generate <00:09:03.854>components, <00:09:04.030>engine <00:09:04.204>modules,

162
00:09:06.085 --> 00:09:07.205
<00:09:06.085>services <00:09:06.421>and <00:09:06.757>so <00:09:07.093>on.

163
00:09:09.195 --> 00:09:11.425
<00:09:09.195>There <00:09:09.428>are <00:09:09.661>also <00:09:09.895>s <00:09:10.128>schematics <00:09:10.361>for <00:09:10.595>NGRS

164
00:09:11.455 --> 00:09:14.185
<00:09:11.455>that <00:09:11.735>can <00:09:12.015>help <00:09:12.295>generate <00:09:12.575>actions, <00:09:12.855>reducers

165
00:09:14.325 --> 00:09:16.865
<00:09:14.325>and <00:09:14.525>all <00:09:14.725>other <00:09:14.925>things <00:09:15.125>related <00:09:15.325>to <00:09:15.525>NG <00:09:15.725>rx.

166
00:09:18.145 --> 00:09:20.765
<00:09:18.145>And <00:09:18.319>as <00:09:18.495>I <00:09:18.670>mentioned, <00:09:18.845>we <00:09:19.020>also <00:09:19.194>have <00:09:19.370>quality <00:09:19.545>schematics.

167
00:09:22.735 --> 00:09:27.275
<00:09:22.735>So <00:09:22.910>these <00:09:23.085>are <00:09:23.260>all, <00:09:23.435>uh, <00:09:23.610>third <00:09:23.785>party <00:09:23.960>schematic <00:09:24.135>collections

168
00:09:27.665 --> 00:09:29.755
<00:09:27.665>that <00:09:27.898>weren't <00:09:28.131>developed <00:09:28.365>by <00:09:28.598>the <00:09:28.831>your <00:09:29.064>team,

169
00:09:29.775 --> 00:09:32.195
<00:09:29.775>but <00:09:29.975>still <00:09:30.175>can <00:09:30.375>be <00:09:30.574>used <00:09:30.775>within <00:09:30.975>your <00:09:31.175>COI.

170
00:09:35.375 --> 00:09:38.265
<00:09:35.375>And <00:09:35.550>why <00:09:35.725>do <00:09:35.900>we <00:09:36.075>need <00:09:36.250>to <00:09:36.425>use <00:09:36.600>s <00:09:36.775>schematics?

171
00:09:38.525 --> 00:09:42.225
<00:09:38.525>Why <00:09:38.699>don't <00:09:38.875>we <00:09:39.050>write <00:09:39.225>just <00:09:39.400>our, <00:09:39.574>uh, <00:09:39.750>generic <00:09:39.925>scripts

172
00:09:42.225 --> 00:09:43.905
<00:09:42.225>that <00:09:42.691>can <00:09:43.158>update <00:09:43.625>files

173
00:09:43.905 --> 00:09:46.625
<00:09:43.905>and <00:09:44.138>generate <00:09:44.371>files <00:09:44.605>apart <00:09:44.838>from <00:09:45.071>the <00:09:45.305>fact

174
00:09:46.625 --> 00:09:49.905
<00:09:46.625>that <00:09:46.765>s <00:09:46.905>schematics <00:09:47.045>can <00:09:47.185>be <00:09:47.325>used <00:09:47.465>through <00:09:47.605>the <00:09:47.745>Ying <00:09:47.885>or <00:09:48.025>COI.

175
00:09:50.325 --> 00:09:54.065
<00:09:50.325>So <00:09:50.500>you <00:09:50.675>can <00:09:50.850>have <00:09:51.025>your <00:09:51.200>own <00:09:51.375>engine <00:09:51.550>generate <00:09:51.725>components

176
00:09:54.365 --> 00:09:57.225
<00:09:54.365>or <00:09:54.645>your <00:09:54.925>engine <00:09:55.205>generate <00:09:55.485>custom <00:09:55.765>component.

177
00:09:58.005 --> 00:10:00.505
<00:09:58.005>We <00:09:58.205>have <00:09:58.405>a <00:09:58.605>few <00:09:58.805>other <00:09:59.005>features <00:09:59.205>inside <00:09:59.405>schematic

178
00:10:00.575 --> 00:10:03.545
<00:10:00.575>that <00:10:00.730>might <00:10:00.886>want, <00:10:01.041>uh, <00:10:01.197>might <00:10:01.352>make <00:10:01.508>us <00:10:01.663>wanna <00:10:01.819>use <00:10:01.975>them.

179
00:10:05.785 --> 00:10:08.005
<00:10:05.785>The <00:10:06.018>first <00:10:06.251>one <00:10:06.485>is <00:10:06.718>the <00:10:06.951>atomic <00:10:07.185>updates

180
00:10:08.155 --> 00:10:09.645
<00:10:08.155>that <00:10:08.423>are <00:10:08.691>provided <00:10:08.959>by <00:10:09.227>s <00:10:09.496>schematics.

181
00:10:11.025 --> 00:10:12.945
<00:10:11.025>So <00:10:11.491>if <00:10:11.958>we <00:10:12.425>decide

182
00:10:13.025 --> 00:10:16.745
<00:10:13.025>to <00:10:13.199>update <00:10:13.375>this <00:10:13.550>project <00:10:13.725>structure <00:10:13.900>without <00:10:14.074>using <00:10:14.250>the <00:10:14.425>s

183
00:10:16.745 --> 00:10:20.325
<00:10:16.745>schematics <00:10:16.945>library, <00:10:17.145>and, <00:10:17.345>uh, <00:10:17.545>we <00:10:17.745>decide <00:10:17.945>to <00:10:18.145>go

184
00:10:20.325 --> 00:10:21.365
<00:10:20.325>with <00:10:20.637>a <00:10:20.949>no <00:10:21.261>script

185
00:10:21.425 --> 00:10:22.885
<00:10:21.425>or <00:10:21.753>some <00:10:22.082>batch <00:10:22.410>script, <00:10:22.739>instead,

186
00:10:23.345 --> 00:10:26.205
<00:10:23.345>we <00:10:23.520>might <00:10:23.695>write <00:10:23.870>some <00:10:24.045>something <00:10:24.220>like <00:10:24.395>the <00:10:24.570>following <00:10:24.745>first,

187
00:10:26.425 --> 00:10:29.445
<00:10:26.425>modify <00:10:26.599>the <00:10:26.775>packages, <00:10:26.949>for <00:10:27.125>example, <00:10:27.300>add <00:10:27.474>the <00:10:27.650>new <00:10:27.824>dependence

188
00:10:29.445 --> 00:10:33.245
<00:10:29.445>inside <00:10:29.620>it, <00:10:29.795>and <00:10:29.970>the <00:10:30.145>packages <00:10:30.320>is <00:10:30.495>gonna <00:10:30.670>be <00:10:30.845>modified,

189
00:10:34.595 --> 00:10:37.365
<00:10:34.595>then <00:10:34.795>create <00:10:34.995>a, <00:10:35.195>an <00:10:35.395>app <00:10:35.595>module <00:10:35.795>TS <00:10:35.995>file.

190
00:10:38.025 --> 00:10:40.165
<00:10:38.025>And <00:10:38.165>at <00:10:38.305>this <00:10:38.444>point <00:10:38.584>we <00:10:38.725>see <00:10:38.865>that <00:10:39.005>in <00:10:39.145>the <00:10:39.285>file <00:10:39.425>structure,

191
00:10:40.265 --> 00:10:43.005
<00:10:40.265>we <00:10:40.405>already <00:10:40.545>have <00:10:40.685>this <00:10:40.824>file, <00:10:40.965>so <00:10:41.105>we're <00:10:41.245>gonna <00:10:41.385>get <00:10:41.525>a <00:10:41.665>error.

192
00:10:44.105 --> 00:10:46.485
<00:10:44.105>And <00:10:44.260>the <00:10:44.416>current <00:10:44.571>state <00:10:44.727>of <00:10:44.882>the <00:10:45.038>director <00:10:45.193>is <00:10:45.349>gonna <00:10:45.505>be

193
00:10:46.485 --> 00:10:48.805
<00:10:46.485>that <00:10:46.765>the <00:10:47.045>package <00:10:47.325>Jason <00:10:47.605>is <00:10:47.885>modified.

194
00:10:49.585 --> 00:10:52.685
<00:10:49.585>And <00:10:49.785>that <00:10:49.985>is <00:10:50.185>not <00:10:50.385>exactly <00:10:50.585>the <00:10:50.785>desired <00:10:50.985>result

195
00:10:52.685 --> 00:10:56.325
<00:10:52.685>because <00:10:52.918>we <00:10:53.151>are <00:10:53.385>in, <00:10:53.618>um, <00:10:53.851>our, <00:10:54.084>our

196
00:10:57.835 --> 00:11:00.165
<00:10:57.835>migration <00:10:58.301>or <00:10:58.768>our, <00:10:59.235>um,

197
00:11:01.565 --> 00:11:05.845
<00:11:01.565>modifier <00:11:01.740>script <00:11:01.915>failed, <00:11:02.090>but <00:11:02.265>the <00:11:02.440>project <00:11:02.615>was <00:11:02.790>still <00:11:02.965>modified.

198
00:11:05.985 --> 00:11:07.365
<00:11:05.985>And <00:11:06.192>in <00:11:06.399>this <00:11:06.606>point, <00:11:06.813>at <00:11:07.020>this <00:11:07.227>point,

199
00:11:07.705 --> 00:11:08.965
<00:11:07.705>the <00:11:07.988>project <00:11:08.272>might <00:11:08.555>be <00:11:08.839>broken

200
00:11:08.965 --> 00:11:11.245
<00:11:08.965>because <00:11:09.315>we <00:11:09.665>haven't <00:11:10.015>executed, <00:11:10.365>uh,

201
00:11:11.305 --> 00:11:12.605
<00:11:11.305>the <00:11:11.597>instructions <00:11:11.890>till <00:11:12.182>the <00:11:12.475>end.

202
00:11:14.415 --> 00:11:17.635
<00:11:14.415>And <00:11:14.570>instead <00:11:14.726>we <00:11:14.881>have <00:11:15.037>some <00:11:15.192>kind <00:11:15.348>of, <00:11:15.503>uh, <00:11:15.659>rollback <00:11:15.814>strategy

203
00:11:18.105 --> 00:11:20.355
<00:11:18.105>that <00:11:18.338>we <00:11:18.571>ally <00:11:18.805>wrote <00:11:19.038>in <00:11:19.271>our <00:11:19.505>script.

204
00:11:20.505 --> 00:11:22.555
<00:11:20.505>This <00:11:20.738>is <00:11:20.971>gonna <00:11:21.205>be <00:11:21.438>the <00:11:21.671>default <00:11:21.905>behavior,

205
00:11:23.735 --> 00:11:25.515
<00:11:23.735>but <00:11:24.201>with <00:11:24.668>schematics, <00:11:25.135>the,

206
00:11:26.365 --> 00:11:29.075
<00:11:26.365>these <00:11:26.598>actions <00:11:26.831>are <00:11:27.065>actually <00:11:27.298>executed <00:11:27.531>on <00:11:27.765>a

207
00:11:29.075 --> 00:11:30.115
<00:11:29.075>virtual <00:11:29.543>file <00:11:30.011>system.

208
00:11:30.655 --> 00:11:33.435
<00:11:30.655>So <00:11:30.829>we're <00:11:31.005>gonna <00:11:31.180>have <00:11:31.355>the <00:11:31.530>modification <00:11:31.704>for <00:11:31.880>the <00:11:32.055>packages,

209
00:11:33.505 --> 00:11:36.755
<00:11:33.505>then <00:11:33.680>we're <00:11:33.855>gonna <00:11:34.030>have <00:11:34.205>the <00:11:34.380>creation <00:11:34.555>of <00:11:34.730>FMO <00:11:34.905>TS.

210
00:11:37.305 --> 00:11:40.835
<00:11:37.305>Then <00:11:37.444>the <00:11:37.584>schematics <00:11:37.724>engine <00:11:37.864>is <00:11:38.005>gonna <00:11:38.145>apply <00:11:38.285>this <00:11:38.425>on <00:11:38.564>a <00:11:38.704>virtual

211
00:11:41.185 --> 00:11:44.835
<00:11:41.185>file <00:11:41.385>system, <00:11:41.584>which <00:11:41.785>is <00:11:41.984>actually, <00:11:42.185>um, <00:11:42.385>a <00:11:42.584>representation

212
00:11:44.895 --> 00:11:46.155
<00:11:44.895>of <00:11:45.273>our <00:11:45.651>current <00:11:46.029>state.

213
00:11:47.295 --> 00:11:51.595
<00:11:47.295>So, <00:11:47.435>um, <00:11:47.574>it <00:11:47.714>is, <00:11:47.854>it <00:11:47.995>looks <00:11:48.135>exactly <00:11:48.275>like <00:11:48.415>our <00:11:48.555>current <00:11:48.694>directory,

214
00:11:51.735 --> 00:11:55.805
<00:11:51.735>but <00:11:51.890>it's <00:11:52.046>just, <00:11:52.201>um, <00:11:52.357>a <00:11:52.512>method <00:11:52.668>to <00:11:52.823>prevent <00:11:52.979>these, <00:11:53.135>um,

215
00:11:55.855 --> 00:11:57.125
<00:11:55.855>these <00:11:56.426>housebroken <00:11:56.998>states.

216
00:11:57.985 --> 00:11:59.285
<00:11:57.985>So <00:11:58.277>we're <00:11:58.569>gonna <00:11:58.862>see <00:11:59.155>that

217
00:11:59.795 --> 00:12:03.045
<00:11:59.795>when <00:11:59.935>we <00:12:00.074>are <00:12:00.214>applying <00:12:00.354>all <00:12:00.495>these <00:12:00.635>actions <00:12:00.775>to <00:12:00.915>the <00:12:01.055>file <00:12:01.194>system,

218
00:12:03.745 --> 00:12:06.005
<00:12:03.745>to <00:12:03.900>the <00:12:04.056>virtual <00:12:04.211>file <00:12:04.367>system, <00:12:04.522>we <00:12:04.678>are <00:12:04.833>gonna <00:12:04.989>get <00:12:05.145>error.

219
00:12:06.265 --> 00:12:10.525
<00:12:06.265>And <00:12:06.405>s <00:12:06.545>schematics <00:12:06.685>is <00:12:06.824>not <00:12:06.965>gonna <00:12:07.105>apply <00:12:07.245>any <00:12:07.385>of <00:12:07.525>these <00:12:07.665>changes

220
00:12:10.625 --> 00:12:13.405
<00:12:10.625>to <00:12:10.780>the <00:12:10.936>actual <00:12:11.091>file <00:12:11.247>system <00:12:11.402>because <00:12:11.558>we <00:12:11.713>have <00:12:11.869>an <00:12:12.025>error

221
00:12:13.985 --> 00:12:16.205
<00:12:13.985>and <00:12:14.218>the <00:12:14.451>packages <00:12:14.685>file <00:12:14.918>won't <00:12:15.151>be <00:12:15.385>modified.

222
00:12:16.505 --> 00:12:19.005
<00:12:16.505>And <00:12:16.645>this <00:12:16.785>is <00:12:16.925>good, <00:12:17.064>and <00:12:17.205>that's <00:12:17.345>why <00:12:17.485>we <00:12:17.625>are <00:12:17.765>saying <00:12:17.905>that

223
00:12:19.975 --> 00:12:22.685
<00:12:19.975>schematics <00:12:20.441>performs <00:12:20.908>atomic <00:12:21.375>updates.

224
00:12:23.395 --> 00:12:26.415
<00:12:23.395>Basically <00:12:23.861>every, <00:12:24.328>um, <00:12:24.795>set

225
00:12:26.415 --> 00:12:28.655
<00:12:26.415>of <00:12:26.881>instructions <00:12:27.348>is <00:12:27.814>transactional.

226
00:12:32.065 --> 00:12:33.755
<00:12:32.065>Also, <00:12:32.415>s <00:12:32.765>schematics <00:12:33.115>are <00:12:33.465>composable.

227
00:12:33.855 --> 00:12:37.195
<00:12:33.855>You <00:12:33.982>can <00:12:34.109>use <00:12:34.236>all <00:12:34.364>s <00:12:34.491>schematics <00:12:34.618>defined <00:12:34.745>by <00:12:34.873>the <00:12:35.000>eng <00:12:35.127>your <00:12:35.255>team

228
00:12:37.255 --> 00:12:39.795
<00:12:37.255>for <00:12:37.535>module <00:12:37.814>services <00:12:38.095>and <00:12:38.375>so <00:12:38.655>on,

229
00:12:40.255 --> 00:12:43.595
<00:12:40.255>or <00:12:40.430>any <00:12:40.605>other <00:12:40.780>library <00:12:40.955>in <00:12:41.130>the, <00:12:41.305>in <00:12:41.480>your <00:12:41.655>ecosystem.

230
00:12:44.745 --> 00:12:47.635
<00:12:44.745>They're <00:12:44.978>also <00:12:45.211>pretty <00:12:45.445>easy <00:12:45.678>to <00:12:45.911>unit <00:12:46.145>test

231
00:12:47.905 --> 00:12:51.275
<00:12:47.905>because <00:12:48.105>you <00:12:48.305>are <00:12:48.505>write <00:12:48.704>actual <00:12:48.905>codes <00:12:49.105>with <00:12:49.305>typescripts

232
00:12:51.375 --> 00:12:53.715
<00:12:51.375>to <00:12:51.655>define, <00:12:51.935>to <00:12:52.215>define <00:12:52.495>your <00:12:52.775>instructions.

233
00:12:54.975 --> 00:12:59.115
<00:12:54.975>And <00:12:55.150>another <00:12:55.325>reason <00:12:55.500>for <00:12:55.675>this <00:12:55.850>unit <00:12:56.025>testability <00:12:56.200>is, <00:12:56.375>uh,

234
00:12:59.215 --> 00:13:02.155
<00:12:59.215>the <00:12:59.370>fact <00:12:59.526>that <00:12:59.681>we're <00:12:59.837>working <00:12:59.992>on <00:13:00.148>a <00:13:00.303>virtual <00:13:00.459>file <00:13:00.615>system.

235
00:13:04.455 --> 00:13:07.995
<00:13:04.455>All <00:13:04.582>right, <00:13:04.709>let's <00:13:04.836>see <00:13:04.964>how <00:13:05.091>we <00:13:05.218>can <00:13:05.345>get <00:13:05.473>started <00:13:05.600>in <00:13:05.727>the <00:13:05.855>easiest

236
00:13:08.135 --> 00:13:09.475
<00:13:08.135>and <00:13:08.537>most <00:13:08.939>basic <00:13:09.341>way.

237
00:13:11.045 --> 00:13:13.105
<00:13:11.045>Uh, <00:13:11.219>we're <00:13:11.395>gonna <00:13:11.569>have <00:13:11.745>a <00:13:11.920>bunch <00:13:12.094>of <00:13:12.270>code <00:13:12.444>here,

238
00:13:13.285 --> 00:13:15.785
<00:13:13.285>but <00:13:13.425>if <00:13:13.564>you're <00:13:13.704>not <00:13:13.844>familiar <00:13:13.985>with <00:13:14.125>eng, <00:13:14.265>don't <00:13:14.405>worry <00:13:14.545>about <00:13:14.685>it.

239
00:13:15.855 --> 00:13:18.065
<00:13:15.855>It's <00:13:16.135>just <00:13:16.415>a <00:13:16.695>generic <00:13:16.975>ship <00:13:17.255>code.

240
00:13:18.485 --> 00:13:22.725
<00:13:18.485>And <00:13:18.640>if <00:13:18.796>you're <00:13:18.951>not <00:13:19.107>familiar <00:13:19.262>with <00:13:19.418>Ship <00:13:19.573>either, <00:13:19.729>uh, <00:13:19.885>it's

241
00:13:23.235 --> 00:13:25.125
<00:13:23.235>just <00:13:23.468>a <00:13:23.701>basic <00:13:23.935>support <00:13:24.168>set <00:13:24.401>of <00:13:24.635>JavaScript

242
00:13:25.625 --> 00:13:29.365
<00:13:25.625>and <00:13:25.780>we're <00:13:25.936>not <00:13:26.091>gonna <00:13:26.247>be <00:13:26.402>doing <00:13:26.558>any <00:13:26.713>two <00:13:26.869>fancy <00:13:27.025>type

243
00:13:29.365 --> 00:13:30.845
<00:13:29.365>shipped <00:13:30.031>things <00:13:30.697>today.

244
00:13:31.865 --> 00:13:34.125
<00:13:31.865>So <00:13:32.040>we're <00:13:32.215>gonna <00:13:32.390>see <00:13:32.565>a <00:13:32.740>lot <00:13:32.915>of <00:13:33.090>code <00:13:33.265>snippets.

245
00:13:34.465 --> 00:13:37.165
<00:13:34.465>I'm <00:13:34.665>not <00:13:34.865>gonna <00:13:35.065>do, <00:13:35.265>uh, <00:13:35.465>any <00:13:35.665>wife <00:13:35.865>coding

246
00:13:37.165 --> 00:13:39.685
<00:13:37.165>because <00:13:37.365>I <00:13:37.564>don't <00:13:37.765>wanna <00:13:37.964>bore <00:13:38.165>you <00:13:38.365>to <00:13:38.564>death.

247
00:13:40.785 --> 00:13:43.605
<00:13:40.785>So <00:13:41.018>let's <00:13:41.251>get <00:13:41.485>started. <00:13:41.718>The <00:13:41.951>first <00:13:42.185>thing

248
00:13:43.605 --> 00:13:46.565
<00:13:43.605>that <00:13:43.838>we <00:13:44.071>need <00:13:44.305>is <00:13:44.538>this <00:13:44.771>schematic, <00:13:45.005>COI.

249
00:13:47.035 --> 00:13:50.325
<00:13:47.035>This <00:13:47.190>is <00:13:47.346>gonna <00:13:47.501>allow <00:13:47.657>us <00:13:47.812>to <00:13:47.968>easily, <00:13:48.123>uh, <00:13:48.279>move <00:13:48.435>forward,

250
00:13:50.745 --> 00:13:52.685
<00:13:50.745>create <00:13:51.025>new <00:13:51.305>scripts <00:13:51.585>and <00:13:51.865>test <00:13:52.145>them.

251
00:13:53.585 --> 00:13:58.405
<00:13:53.585>And, <00:13:53.818>um, <00:13:54.051>we're <00:13:54.285>not <00:13:54.518>gonna, <00:13:54.751>uh, <00:13:54.985>basically,

252
00:13:58.825 --> 00:14:01.595
<00:13:58.825>um, <00:14:00.225>wrap

253
00:14:02.375 --> 00:14:05.035
<00:14:02.375>or <00:14:02.550>tie <00:14:02.725>our <00:14:02.900>collection <00:14:03.075>to <00:14:03.250>the <00:14:03.425>anchor <00:14:03.600>COI <00:14:03.775>today.

254
00:14:05.035 --> 00:14:07.995
<00:14:05.035>But <00:14:05.190>you <00:14:05.346>can <00:14:05.501>check <00:14:05.657>out <00:14:05.812>the <00:14:05.968>anger <00:14:06.123>documentation <00:14:06.279>on <00:14:06.435>schematics

255
00:14:08.135 --> 00:14:10.235
<00:14:08.135>and <00:14:08.310>it's <00:14:08.485>explained <00:14:08.660>how <00:14:08.835>you <00:14:09.010>can <00:14:09.185>do <00:14:09.360>that <00:14:09.535>there.

256
00:14:11.475 --> 00:14:13.615
<00:14:11.475>So <00:14:11.675>first <00:14:11.875>we're <00:14:12.075>installing <00:14:12.275>the <00:14:12.475>s <00:14:12.675>schematics, <00:14:12.875>COI,

257
00:14:13.715 --> 00:14:15.975
<00:14:13.715>and <00:14:13.890>then <00:14:14.065>to <00:14:14.240>create <00:14:14.415>the <00:14:14.590>new <00:14:14.765>collection, <00:14:14.940>we <00:14:15.115>have

258
00:14:15.975 --> 00:14:17.415
<00:14:15.975>to <00:14:16.299>execute <00:14:16.623>s <00:14:16.947>schematics <00:14:17.271>blank

259
00:14:17.475 --> 00:14:18.975
<00:14:17.475>and <00:14:17.700>provide <00:14:17.925>the <00:14:18.150>name <00:14:18.375>of <00:14:18.600>the <00:14:18.825>collection.

260
00:14:21.255 --> 00:14:25.585
<00:14:21.255>And <00:14:21.430>inside <00:14:21.605>this <00:14:21.780>collection, <00:14:21.955>we <00:14:22.130>have <00:14:22.305>only <00:14:22.480>eight <00:14:22.655>files.

261
00:14:26.535 --> 00:14:30.225
<00:14:26.535>Half <00:14:26.675>of <00:14:26.814>them <00:14:26.954>are <00:14:27.094>packaged <00:14:27.235>scripts <00:14:27.375>that <00:14:27.515>exist <00:14:27.655>in <00:14:27.795>any, <00:14:27.935>um,

262
00:14:30.515 --> 00:14:33.345
<00:14:30.515>JavaScript <00:14:30.715>project, <00:14:30.915>or <00:14:31.115>in <00:14:31.314>this <00:14:31.515>case, <00:14:31.715>TypeScript <00:14:31.915>project.

263
00:14:34.165 --> 00:14:36.905
<00:14:34.165>And <00:14:34.320>the <00:14:34.476>other <00:14:34.631>half <00:14:34.787>of <00:14:34.942>them <00:14:35.098>is <00:14:35.253>the <00:14:35.409>collection <00:14:35.564>code.

264
00:14:37.725 --> 00:14:40.665
<00:14:37.725>So <00:14:37.880>let's <00:14:38.036>take <00:14:38.191>a <00:14:38.347>look <00:14:38.502>at <00:14:38.658>the <00:14:38.813>collection <00:14:38.969>json <00:14:39.125>file.

265
00:14:41.445 --> 00:14:44.945
<00:14:41.445>Uh, <00:14:41.600>this <00:14:41.756>is <00:14:41.911>a <00:14:42.067>schema <00:14:42.222>that <00:14:42.378>defines <00:14:42.533>all <00:14:42.689>the <00:14:42.845>scripts

266
00:14:45.325 --> 00:14:46.585
<00:14:45.325>inside <00:14:45.892>our <00:14:46.459>collection.

267
00:14:47.205 --> 00:14:50.905
<00:14:47.205>And <00:14:47.360>currently <00:14:47.516>we <00:14:47.671>have <00:14:47.827>just <00:14:47.982>a <00:14:48.138>single <00:14:48.293>script <00:14:48.449>which <00:14:48.605>kind

268
00:14:50.905 --> 00:14:53.325
<00:14:50.905>of <00:14:51.105>confusingly <00:14:51.305>matches <00:14:51.505>the <00:14:51.704>name <00:14:51.905>of <00:14:52.105>our <00:14:52.305>collection,

269
00:14:53.945 --> 00:14:55.685
<00:14:53.945>and <00:14:54.295>it's <00:14:54.645>called <00:14:54.995>My <00:14:55.345>Collection.

270
00:14:58.395 --> 00:15:01.375
<00:14:58.395>And <00:14:58.675>uh, <00:14:58.954>here <00:14:59.235>we <00:14:59.515>have <00:14:59.795>description

271
00:15:01.845 --> 00:15:03.615
<00:15:01.845>that <00:15:02.078>is <00:15:02.311>not <00:15:02.545>very <00:15:02.778>meaningful <00:15:03.011>right <00:15:03.245>now,

272
00:15:03.715 --> 00:15:05.535
<00:15:03.715>and <00:15:03.995>we <00:15:04.275>have <00:15:04.555>a <00:15:04.835>factory <00:15:05.115>key.

273
00:15:06.105 --> 00:15:08.015
<00:15:06.105>Let's <00:15:06.338>see <00:15:06.571>where <00:15:06.805>this <00:15:07.038>will <00:15:07.271>lead <00:15:07.505>us.

274
00:15:09.535 --> 00:15:14.465
<00:15:09.535>When <00:15:09.662>we <00:15:09.789>go <00:15:09.916>to <00:15:10.044>the <00:15:10.171>factory <00:15:10.298>function, <00:15:10.425>we <00:15:10.553>see <00:15:10.680>that <00:15:10.807>we <00:15:10.935>have

275
00:15:15.025 --> 00:15:17.865
<00:15:15.025>a <00:15:15.258>single <00:15:15.491>exported <00:15:15.725>function <00:15:15.958>called <00:15:16.191>my <00:15:16.425>collection,

276
00:15:17.875 --> 00:15:20.745
<00:15:17.875>which <00:15:18.075>returns <00:15:18.275>another <00:15:18.475>function, <00:15:18.675>which <00:15:18.875>returns <00:15:19.075>a <00:15:19.275>tree.

277
00:15:21.525 --> 00:15:23.105
<00:15:21.525>And <00:15:21.875>this <00:15:22.225>might <00:15:22.574>look <00:15:22.925>confusing.

278
00:15:23.165 --> 00:15:25.305
<00:15:23.165>So <00:15:23.631>let's <00:15:24.098>go <00:15:24.564>ahead

279
00:15:25.365 --> 00:15:28.375
<00:15:25.365>and <00:15:25.540>take <00:15:25.715>a <00:15:25.890>look <00:15:26.065>at <00:15:26.240>how <00:15:26.415>s <00:15:26.590>schematics, <00:15:26.765>um,

280
00:15:29.395 --> 00:15:31.055
<00:15:29.395>how <00:15:29.675>the <00:15:29.954>s <00:15:30.235>schematic <00:15:30.515>scripts <00:15:30.795>work.

281
00:15:33.575 --> 00:15:37.635
<00:15:33.575>So <00:15:33.715>the <00:15:33.855>most <00:15:33.995>important <00:15:34.135>term <00:15:34.275>in <00:15:34.415>this <00:15:34.555>library <00:15:34.695>is <00:15:34.835>called <00:15:34.975>tree.

282
00:15:38.575 --> 00:15:42.835
<00:15:38.575>And <00:15:38.730>the <00:15:38.886>tree <00:15:39.041>contains <00:15:39.197>a <00:15:39.352>base, <00:15:39.508>which <00:15:39.663>is <00:15:39.819>our <00:15:39.975>current

283
00:15:43.555 --> 00:15:46.725
<00:15:43.555>project, <00:15:43.729>a <00:15:43.905>kind <00:15:44.079>of <00:15:44.255>a <00:15:44.430>snapshot <00:15:44.604>of <00:15:44.780>the <00:15:44.954>directory

284
00:15:46.725 --> 00:15:49.125
<00:15:46.725>that <00:15:46.880>we <00:15:47.036>are <00:15:47.191>in <00:15:47.347>at <00:15:47.502>this, <00:15:47.658>at <00:15:47.813>this <00:15:47.969>conference <00:15:48.125>moment.

285
00:15:49.785 --> 00:15:52.765
<00:15:49.785>And <00:15:49.925>this <00:15:50.064>current <00:15:50.204>moment <00:15:50.344>is <00:15:50.485>the <00:15:50.625>moment <00:15:50.765>when <00:15:50.905>we <00:15:51.045>are <00:15:51.185>executing

286
00:15:52.865 --> 00:15:57.725
<00:15:52.865>the <00:15:52.992>script <00:15:53.119>and <00:15:53.246>a <00:15:53.374>set <00:15:53.501>of <00:15:53.628>actions <00:15:53.755>that <00:15:53.883>should <00:15:54.010>be <00:15:54.137>applied <00:15:54.265>to

287
00:15:57.725 --> 00:15:58.885
<00:15:57.725>that <00:15:58.769>base.

288
00:16:01.875 --> 00:16:04.975
<00:16:01.875>And <00:16:02.030>a <00:16:02.186>rule <00:16:02.341>is <00:16:02.497>a <00:16:02.652>function <00:16:02.808>that <00:16:02.963>takes <00:16:03.119>the <00:16:03.275>three

289
00:16:05.155 --> 00:16:06.655
<00:16:05.155>and <00:16:05.605>returns <00:16:06.055>another <00:16:06.505>three,

290
00:16:07.075 --> 00:16:08.455
<00:16:07.075>and <00:16:07.323>the <00:16:07.571>new <00:16:07.820>three <00:16:08.068>might <00:16:08.317>be,

291
00:16:08.665 --> 00:16:11.415
<00:16:08.665>might <00:16:08.839>have <00:16:09.015>some <00:16:09.189>additional <00:16:09.365>actions <00:16:09.540>that <00:16:09.714>should <00:16:09.890>be <00:16:10.064>applied.

292
00:16:13.775 --> 00:16:17.235
<00:16:13.775>And <00:16:13.915>a <00:16:14.055>rule <00:16:14.194>factory <00:16:14.334>is <00:16:14.475>a <00:16:14.615>function <00:16:14.755>that <00:16:14.895>returns <00:16:15.035>a <00:16:15.175>row,

293
00:16:18.045 --> 00:16:19.755
<00:16:18.045>hence <00:16:18.324>it's <00:16:18.604>a <00:16:18.885>higher <00:16:19.165>order <00:16:19.444>function.

294
00:16:20.175 --> 00:16:22.435
<00:16:20.175>And <00:16:20.349>basically <00:16:20.525>it's <00:16:20.699>a <00:16:20.875>function <00:16:21.050>that <00:16:21.224>returns <00:16:21.400>a <00:16:21.574>function

295
00:16:22.435 --> 00:16:24.275
<00:16:22.435>that <00:16:22.635>takes <00:16:22.834>a <00:16:23.035>tree <00:16:23.234>and <00:16:23.435>returns <00:16:23.635>a <00:16:23.834>tree.

296
00:16:25.765 --> 00:16:29.265
<00:16:25.765>And <00:16:25.892>this <00:16:26.019>is <00:16:26.146>what <00:16:26.274>we <00:16:26.401>see <00:16:26.528>in <00:16:26.655>this, <00:16:26.783>um, <00:16:26.910>hello <00:16:27.037>world <00:16:27.165>script.

297
00:16:29.925 --> 00:16:31.915
<00:16:29.925>We <00:16:30.204>have <00:16:30.484>our <00:16:30.765>rule <00:16:31.045>over <00:16:31.324>here,

298
00:16:32.215 --> 00:16:35.115
<00:16:32.215>and <00:16:32.415>the <00:16:32.615>rule <00:16:32.815>factory <00:16:33.015>is <00:16:33.215>the <00:16:33.415>outer <00:16:33.615>function.

299
00:16:38.095 --> 00:16:41.305
<00:16:38.095>When <00:16:38.328>we <00:16:38.561>execute <00:16:38.795>that <00:16:39.028>with <00:16:39.261>schematics, <00:16:39.495>um,

300
00:16:42.665 --> 00:16:44.625
<00:16:42.665>actually <00:16:42.820>this <00:16:42.976>is <00:16:43.131>how <00:16:43.287>we <00:16:43.442>add <00:16:43.598>a <00:16:43.753>new <00:16:43.909>s <00:16:44.064>schematics.

301
00:16:44.685 --> 00:16:47.985
<00:16:44.685>So <00:16:44.812>we're <00:16:44.939>just <00:16:45.066>gonna <00:16:45.194>add <00:16:45.321>a <00:16:45.448>new <00:16:45.575>schematic <00:16:45.703>code, <00:16:45.830>say <00:16:45.957>hi, <00:16:46.084>so

302
00:16:47.985 --> 00:16:51.505
<00:16:47.985>that <00:16:48.140>we <00:16:48.296>don't <00:16:48.451>get <00:16:48.607>confused <00:16:48.762>with <00:16:48.918>the <00:16:49.073>my <00:16:49.229>collection <00:16:49.385>script.

303
00:16:53.455 --> 00:16:57.955
<00:16:53.455>Um, <00:16:53.688>and <00:16:53.921>to <00:16:54.155>start <00:16:54.388>using <00:16:54.621>this <00:16:54.855>project,

304
00:16:58.295 --> 00:16:59.915
<00:16:58.295>we <00:16:58.528>need <00:16:58.761>to <00:16:58.995>run <00:16:59.228>a <00:16:59.461>payment <00:16:59.694>install

305
00:16:59.935 --> 00:17:03.275
<00:16:59.935>and <00:17:00.090>then <00:17:00.246>start <00:17:00.401>the <00:17:00.557>TypeScript <00:17:00.712>compiler <00:17:00.868>in <00:17:01.023>a <00:17:01.179>watch <00:17:01.334>mode.

306
00:17:04.225 --> 00:17:06.315
<00:17:04.224>This <00:17:04.458>will <00:17:04.691>basically <00:17:04.925>transpire <00:17:05.158>all <00:17:05.391>the <00:17:05.625>TypeScript

307
00:17:06.315 --> 00:17:07.715
<00:17:06.315>files <00:17:06.944>to <00:17:07.574>JavaScript.

308
00:17:08.055 --> 00:17:11.995
<00:17:08.055>And <00:17:08.230>uh, <00:17:08.405>then <00:17:08.580>we <00:17:08.755>are <00:17:08.930>gonna <00:17:09.105>execute <00:17:09.280>this, <00:17:09.455>um,

309
00:17:12.165 --> 00:17:13.795
<00:17:12.165>JavaScript <00:17:12.631>files <00:17:13.098>with <00:17:13.565>note.

310
00:17:16.225 --> 00:17:19.325
<00:17:16.224>So <00:17:16.399>we're <00:17:16.574>gonna <00:17:16.750>invoke <00:17:16.925>the <00:17:17.099>schematic <00:17:17.274>COI <00:17:17.449>again, <00:17:17.625>uh,

311
00:17:19.425 --> 00:17:20.645
<00:17:19.425>we <00:17:19.973>provide <00:17:20.522>dot

312
00:17:20.645 --> 00:17:22.925
<00:17:20.645>because <00:17:20.878>we're <00:17:21.111>gonna <00:17:21.345>be <00:17:21.578>using <00:17:21.811>the <00:17:22.045>collection

313
00:17:22.925 --> 00:17:24.925
<00:17:22.925>that <00:17:23.204>lives <00:17:23.484>in <00:17:23.764>this <00:17:24.044>current <00:17:24.325>directory.

314
00:17:25.475 --> 00:17:26.525
<00:17:25.474>Then <00:17:25.790>we <00:17:26.105>have <00:17:26.420>column,

315
00:17:26.665 --> 00:17:30.085
<00:17:26.665>and <00:17:26.781>then <00:17:26.898>we <00:17:27.014>have <00:17:27.131>say <00:17:27.248>Hi, <00:17:27.365>which <00:17:27.481>is <00:17:27.598>the <00:17:27.714>name <00:17:27.831>of <00:17:27.948>the <00:17:28.065>script.

316
00:17:30.745 --> 00:17:32.605
<00:17:30.745>And <00:17:30.945>currently <00:17:31.145>there <00:17:31.344>is <00:17:31.544>nothing <00:17:31.745>to <00:17:31.945>be <00:17:32.145>done

317
00:17:32.605 --> 00:17:35.125
<00:17:32.605>because <00:17:32.805>the <00:17:33.005>script <00:17:33.205>is <00:17:33.405>empty, <00:17:33.605>doesn't <00:17:33.805>do <00:17:34.005>anything,

318
00:17:35.265 --> 00:17:36.725
<00:17:35.265>any <00:17:35.593>modifications <00:17:35.922>to <00:17:36.250>the <00:17:36.579>tree.

319
00:17:37.465 --> 00:17:39.885
<00:17:37.465>So <00:17:37.639>this <00:17:37.814>is <00:17:37.990>what <00:17:38.165>this <00:17:38.340>one <00:17:38.514>is <00:17:38.689>gonna <00:17:38.865>print.

320
00:17:42.515 --> 00:17:45.645
<00:17:42.515>Alright, <00:17:42.715>let's <00:17:42.915>see <00:17:43.115>how <00:17:43.315>we <00:17:43.515>can <00:17:43.715>lock <00:17:43.915>messages

321
00:17:46.025 --> 00:17:48.165
<00:17:46.025>and <00:17:46.305>provide <00:17:46.585>options <00:17:46.865>to <00:17:47.145>our <00:17:47.425>scripts.

322
00:17:51.745 --> 00:17:55.085
<00:17:51.745>Um, <00:17:51.945>in <00:17:52.145>the <00:17:52.344>inner <00:17:52.544>function, <00:17:52.745>we <00:17:52.945>have <00:17:53.145>three

323
00:17:55.225 --> 00:17:58.445
<00:17:55.225>and <00:17:55.399>we <00:17:55.574>can <00:17:55.750>also <00:17:55.925>have <00:17:56.100>another <00:17:56.274>argument <00:17:56.449>called <00:17:56.625>context.

324
00:17:59.345 --> 00:18:02.245
<00:17:59.345>And <00:17:59.472>in <00:17:59.599>this <00:17:59.726>context <00:17:59.854>there <00:17:59.981>is <00:18:00.108>a <00:18:00.235>logger <00:18:00.363>that <00:18:00.490>we <00:18:00.617>can <00:18:00.745>use

325
00:18:02.385 --> 00:18:03.725
<00:18:02.385>to <00:18:02.626>print <00:18:02.867>stuff <00:18:03.108>on <00:18:03.349>the <00:18:03.591>console.

326
00:18:04.345 --> 00:18:07.485
<00:18:04.345>We <00:18:04.545>can <00:18:04.745>print <00:18:04.945>it <00:18:05.145>in <00:18:05.345>errors <00:18:05.545>for <00:18:05.745>messages.

327
00:18:07.585 --> 00:18:10.325
<00:18:07.585>We <00:18:07.865>can <00:18:08.145>print, <00:18:08.425>uh, <00:18:08.705>debug <00:18:08.985>statements,

328
00:18:11.405 --> 00:18:13.565
<00:18:11.405>anything <00:18:11.638>we <00:18:11.871>want <00:18:12.105>similar <00:18:12.338>to <00:18:12.571>console <00:18:12.805>walk.

329
00:18:14.905 --> 00:18:19.365
<00:18:14.905>And <00:18:15.105>in <00:18:15.305>the <00:18:15.504>outer <00:18:15.705>functions <00:18:15.905>we <00:18:16.105>accept <00:18:16.305>options.

330
00:18:19.705 --> 00:18:21.085
<00:18:19.705>So <00:18:20.015>these <00:18:20.326>options <00:18:20.636>can <00:18:20.947>be

331
00:18:21.285 --> 00:18:24.245
<00:18:21.285>provided <00:18:21.425>to <00:18:21.565>us <00:18:21.705>through <00:18:21.845>the <00:18:21.985>command <00:18:22.125>line <00:18:22.265>when <00:18:22.405>we <00:18:22.545>are <00:18:22.685>invoking

332
00:18:24.825 --> 00:18:27.325
<00:18:24.825>the, <00:18:25.175>um, <00:18:25.525>this <00:18:25.875>schematics <00:18:26.225>script.

333
00:18:29.215 --> 00:18:32.395
<00:18:29.215>And <00:18:29.389>basically <00:18:29.564>here <00:18:29.740>we <00:18:29.915>are <00:18:30.090>providing <00:18:30.264>the <00:18:30.439>option <00:18:30.615>name

334
00:18:32.695 --> 00:18:36.035
<00:18:32.695>and <00:18:32.835>in <00:18:32.975>our <00:18:33.115>script <00:18:33.254>we're <00:18:33.395>using <00:18:33.534>the <00:18:33.675>name <00:18:33.814>to <00:18:33.955>log <00:18:34.095>it.

335
00:18:37.485 --> 00:18:38.615
<00:18:37.485>Nothing <00:18:37.993>really <00:18:38.502>fancy

336
00:18:45.735 --> 00:18:47.025
<00:18:45.735>Onto <00:18:46.025>the <00:18:46.315>more <00:18:46.605>interesting <00:18:46.896>stuff.

337
00:18:47.045 --> 00:18:48.505
<00:18:47.045>How <00:18:47.307>do <00:18:47.570>we <00:18:47.833>create <00:18:48.096>new <00:18:48.359>files?

338
00:18:50.005 --> 00:18:54.805
<00:18:50.005>Uh, <00:18:50.205>most <00:18:50.405>of <00:18:50.605>the <00:18:50.805>three <00:18:51.005>modifiers <00:18:51.205>live <00:18:51.405>in

339
00:18:54.805 --> 00:18:56.285
<00:18:54.805>that <00:18:55.138>three <00:18:55.471>object <00:18:55.804>as <00:18:56.137>well.

340
00:18:56.745 --> 00:18:59.645
<00:18:56.745>So <00:18:56.861>to <00:18:56.978>create <00:18:57.094>a <00:18:57.211>new <00:18:57.328>file, <00:18:57.445>we <00:18:57.561>need <00:18:57.678>to <00:18:57.794>invoke <00:18:57.911>three <00:18:58.028>dot <00:18:58.145>create,

341
00:18:59.875 --> 00:19:01.245
<00:18:59.875>provide <00:19:00.121>the <00:19:00.368>name <00:19:00.614>of <00:19:00.861>the <00:19:01.108>file

342
00:19:01.465 --> 00:19:02.925
<00:19:01.465>and <00:19:01.684>then <00:19:01.903>the <00:19:02.121>content <00:19:02.341>of <00:19:02.560>the <00:19:02.779>file.

343
00:19:03.745 --> 00:19:05.085
<00:19:03.745>So <00:19:04.046>when <00:19:04.348>we <00:19:04.649>execute <00:19:04.951>that

344
00:19:05.345 --> 00:19:08.485
<00:19:05.345>and <00:19:05.485>when <00:19:05.625>executing <00:19:05.765>it <00:19:05.905>with <00:19:06.045>the <00:19:06.185>schematic, <00:19:06.325>COI, <00:19:06.465>we <00:19:06.605>also <00:19:06.745>have

345
00:19:08.485 --> 00:19:11.285
<00:19:08.485>to <00:19:08.685>provide <00:19:08.885>debug <00:19:09.084>files <00:19:09.284>so <00:19:09.485>that <00:19:09.685>the <00:19:09.885>changes

346
00:19:12.065 --> 00:19:13.925
<00:19:12.065>are <00:19:12.298>actually <00:19:12.531>applied <00:19:12.765>in <00:19:12.998>the <00:19:13.231>file <00:19:13.465>system.

347
00:19:14.745 --> 00:19:18.005
<00:19:14.745>So <00:19:14.861>when <00:19:14.978>we <00:19:15.094>execute <00:19:15.211>it, <00:19:15.328>uh, <00:19:15.445>we <00:19:15.561>are <00:19:15.678>gonna <00:19:15.794>get <00:19:15.911>a <00:19:16.028>new <00:19:16.145>file,

348
00:19:18.095 --> 00:19:20.725
<00:19:18.095>which <00:19:18.328>has <00:19:18.561>the <00:19:18.795>content <00:19:19.028>that <00:19:19.261>we <00:19:19.495>provided.

349
00:19:21.665 --> 00:19:25.085
<00:19:21.665>And <00:19:21.820>as <00:19:21.976>you <00:19:22.131>can <00:19:22.287>see <00:19:22.442>here, <00:19:22.598>the <00:19:22.753>docs <00:19:22.909>directory, <00:19:23.065>uh,

350
00:19:25.085 --> 00:19:26.565
<00:19:25.085>might <00:19:25.529>actually <00:19:25.973>not <00:19:26.417>exist.

351
00:19:27.305 --> 00:19:30.285
<00:19:27.305>So <00:19:27.480>schematics <00:19:27.655>is <00:19:27.830>gonna <00:19:28.005>create <00:19:28.180>that <00:19:28.355>directory <00:19:28.530>for <00:19:28.705>us,

352
00:19:30.285 --> 00:19:32.045
<00:19:30.285>and <00:19:30.518>it's <00:19:30.751>gonna <00:19:30.985>put <00:19:31.218>the <00:19:31.451>file <00:19:31.685>inside.

353
00:19:33.425 --> 00:19:34.765
<00:19:33.425>We <00:19:33.597>don't <00:19:33.769>have <00:19:33.941>to <00:19:34.114>take <00:19:34.286>care <00:19:34.458>of <00:19:34.631>that.

354
00:19:37.135 --> 00:19:40.255
<00:19:37.135>Renaming <00:19:37.310>and <00:19:37.485>moving <00:19:37.660>is <00:19:37.835>actually <00:19:38.010>happen <00:19:38.185>with <00:19:38.360>a <00:19:38.535>single

355
00:19:40.885 --> 00:19:43.535
<00:19:40.885>methods <00:19:41.118>on <00:19:41.351>the <00:19:41.585>three <00:19:41.818>object <00:19:42.051>codes <00:19:42.285>rename.

356
00:19:43.795 --> 00:19:46.935
<00:19:43.795>So <00:19:44.028>we <00:19:44.261>can <00:19:44.495>provide <00:19:44.728>a <00:19:44.961>new <00:19:45.195>path

357
00:19:47.195 --> 00:19:49.775
<00:19:47.195>or <00:19:47.350>a <00:19:47.506>new <00:19:47.661>name <00:19:47.817>for <00:19:47.972>the <00:19:48.128>file <00:19:48.283>that <00:19:48.439>we're <00:19:48.595>wanna

358
00:19:50.335 --> 00:19:51.535
<00:19:50.335>re <00:19:50.695>rename <00:19:51.055>or <00:19:51.415>move.

359
00:19:52.755 --> 00:19:57.695
<00:19:52.755>And <00:19:52.882>when <00:19:53.009>makes <00:19:53.136>Cadet, <00:19:53.264>we <00:19:53.391>are <00:19:53.518>gonna <00:19:53.645>get, <00:19:53.773>um, <00:19:53.900>a <00:19:54.027>new <00:19:54.155>file

360
00:19:58.405 --> 00:20:01.455
<00:19:58.405>with <00:19:58.560>the <00:19:58.716>exact <00:19:58.871>same <00:19:59.027>content, <00:19:59.182>but <00:19:59.338>with <00:19:59.493>a <00:19:59.649>different <00:19:59.805>name.

361
00:20:05.085 --> 00:20:07.385
<00:20:05.085>All <00:20:05.260>right, <00:20:05.435>we <00:20:05.610>covered <00:20:05.785>the <00:20:05.960>basics <00:20:06.135>of <00:20:06.310>s <00:20:06.485>schematics.

362
00:20:07.925 --> 00:20:12.345
<00:20:07.925>Now <00:20:08.065>you <00:20:08.205>can <00:20:08.345>do <00:20:08.485>some <00:20:08.625>very, <00:20:08.764>very <00:20:08.905>simple <00:20:09.044>things <00:20:09.185>like <00:20:09.325>moving

363
00:20:12.565 --> 00:20:13.745
<00:20:12.565>and <00:20:12.919>creating <00:20:13.273>new <00:20:13.627>files,

364
00:20:14.925 --> 00:20:18.865
<00:20:14.925>but <00:20:15.065>let's <00:20:15.205>move <00:20:15.345>to <00:20:15.485>the <00:20:15.625>more <00:20:15.764>interesting <00:20:15.905>stuff <00:20:16.044>that <00:20:16.185>the, <00:20:16.325>um,

365
00:20:19.605 --> 00:20:21.945
<00:20:19.605>and <00:20:19.885>your <00:20:20.165>COI <00:20:20.445>also <00:20:20.725>uses <00:20:21.005>internally.

366
00:20:23.765 --> 00:20:25.385
<00:20:23.765>And <00:20:24.045>the <00:20:24.325>first <00:20:24.605>thing <00:20:24.885>is <00:20:25.165>composition.

367
00:20:25.625 --> 00:20:29.585
<00:20:25.625>I <00:20:25.800>mentioned <00:20:25.975>that <00:20:26.150>earlier. <00:20:26.325>You <00:20:26.500>can <00:20:26.675>compose <00:20:26.850>different, <00:20:27.025>um,

368
00:20:30.685 --> 00:20:34.015
<00:20:30.685>scripts <00:20:30.885>that <00:20:31.085>even <00:20:31.284>live <00:20:31.485>in <00:20:31.685>different <00:20:31.885>schematic <00:20:32.085>collections.

369
00:20:34.635 --> 00:20:38.775
<00:20:34.635>So <00:20:34.810>you <00:20:34.985>can <00:20:35.160>take <00:20:35.335>the, <00:20:35.510>in <00:20:35.685>your <00:20:35.860>components <00:20:36.035>schematic

370
00:20:38.875 --> 00:20:41.135
<00:20:38.875>and <00:20:39.108>execute <00:20:39.341>things <00:20:39.575>that <00:20:39.808>inside <00:20:40.041>your <00:20:40.275>project

371
00:20:41.875 --> 00:20:45.535
<00:20:41.875>and <00:20:42.015>then <00:20:42.155>take <00:20:42.295>these <00:20:42.435>files <00:20:42.575>and <00:20:42.715>do <00:20:42.855>some <00:20:42.995>modifications <00:20:43.135>on <00:20:43.275>them.

372
00:20:46.395 --> 00:20:50.045
<00:20:46.395>So <00:20:46.595>you <00:20:46.795>wanna <00:20:46.995>have, <00:20:47.195>um, <00:20:47.395>I <00:20:47.595>don't <00:20:47.795>know,

373
00:20:50.305 --> 00:20:51.805
<00:20:50.305>an <00:20:50.755>additional <00:20:51.205>file <00:20:51.655>next

374
00:20:51.805 --> 00:20:54.605
<00:20:51.805>to <00:20:52.005>all <00:20:52.205>your <00:20:52.405>component <00:20:52.605>files <00:20:52.805>in <00:20:53.005>your <00:20:53.205>project.

375
00:20:54.905 --> 00:20:57.805
<00:20:54.905>So <00:20:55.080>you <00:20:55.254>can <00:20:55.430>do <00:20:55.605>that <00:20:55.780>with <00:20:55.955>a <00:20:56.129>schematic <00:20:56.305>script

376
00:20:58.385 --> 00:21:01.245
<00:20:58.385>and <00:20:58.540>you <00:20:58.696>can <00:20:58.851>start <00:20:59.007>using <00:20:59.162>that <00:20:59.318>inside <00:20:59.473>your <00:20:59.629>project <00:20:59.785>instead,

377
00:21:01.355 --> 00:21:04.565
<00:21:01.355>instead <00:21:01.555>of <00:21:01.755>the <00:21:01.955>default <00:21:02.155>in <00:21:02.355>your, <00:21:02.555>uh, <00:21:02.755>collection.

378
00:21:07.655 --> 00:21:11.755
<00:21:07.655>So <00:21:07.810>to <00:21:07.966>do <00:21:08.121>composition <00:21:08.277>inside <00:21:08.432>your <00:21:08.588>script, <00:21:08.743>first <00:21:08.899>you <00:21:09.055>need

379
00:21:11.855 --> 00:21:14.875
<00:21:11.855>to <00:21:12.135>import <00:21:12.415>the <00:21:12.695>schematic <00:21:12.975>rule <00:21:13.255>factory.

380
00:21:15.345 --> 00:21:19.515
<00:21:15.345>That <00:21:15.545>is <00:21:15.745>to <00:21:15.945>methods <00:21:16.145>that's, <00:21:16.345>uh, <00:21:16.545>to <00:21:16.745>function,

381
00:21:19.535 --> 00:21:22.475
<00:21:19.535>that's <00:21:19.735>exported <00:21:19.935>by <00:21:20.135>the <00:21:20.335>your <00:21:20.535>def <00:21:20.735>schematic <00:21:20.935>package.

382
00:21:24.295 --> 00:21:28.755
<00:21:24.295>And <00:21:24.528>then <00:21:24.761>you <00:21:24.995>can <00:21:25.228>execute <00:21:25.461>any <00:21:25.695>schematic

383
00:21:29.105 --> 00:21:31.755
<00:21:29.105>from <00:21:29.305>your <00:21:29.505>own <00:21:29.705>collection <00:21:29.905>by <00:21:30.105>specifying <00:21:30.305>the <00:21:30.505>name

384
00:21:31.755 --> 00:21:33.315
<00:21:31.755>of <00:21:32.221>the <00:21:32.688>schematic <00:21:33.155>script.

385
00:21:33.495 --> 00:21:35.395
<00:21:33.495>And <00:21:33.695>then <00:21:33.895>you <00:21:34.094>can <00:21:34.294>also <00:21:34.495>provide <00:21:34.695>some <00:21:34.895>options.

386
00:21:36.955 --> 00:21:39.135
<00:21:36.955>And <00:21:37.155>then <00:21:37.355>to <00:21:37.554>do <00:21:37.754>actual <00:21:37.955>composition, <00:21:38.155>you <00:21:38.355>have

387
00:21:39.135 --> 00:21:40.615
<00:21:39.135>to <00:21:39.468>use <00:21:39.801>the <00:21:40.134>chain <00:21:40.467>utility.

388
00:21:41.435 --> 00:21:44.215
<00:21:41.435>And <00:21:41.715>basically <00:21:41.995>you <00:21:42.274>can <00:21:42.554>return <00:21:42.835>chain

389
00:21:44.755 --> 00:21:48.375
<00:21:44.755>and <00:21:44.988>adding <00:21:45.221>an <00:21:45.455>array, <00:21:45.688>a <00:21:45.921>different <00:21:46.155>set

390
00:21:48.435 --> 00:21:50.215
<00:21:48.435>of <00:21:48.901>rules <00:21:49.368>inside <00:21:49.835>it.

391
00:21:51.705 --> 00:21:54.805
<00:21:51.705>So <00:21:51.879>first <00:21:52.054>here <00:21:52.230>we're <00:21:52.405>executing <00:21:52.580>the <00:21:52.754>schematic, <00:21:52.929>say <00:21:53.105>Hi,

392
00:21:54.985 --> 00:21:58.125
<00:21:54.985>and <00:21:55.185>then <00:21:55.385>we <00:21:55.584>are <00:21:55.784>creating <00:21:55.985>a <00:21:56.185>new <00:21:56.385>file.

393
00:21:58.465 --> 00:22:01.965
<00:21:58.465>So <00:21:58.620>this <00:21:58.776>is <00:21:58.931>a <00:21:59.087>composition <00:21:59.242>of <00:21:59.398>two <00:21:59.553>different, <00:21:59.709>uh, <00:21:59.865>scripts.

394
00:22:03.845 --> 00:22:07.625
<00:22:03.845>And <00:22:03.985>when <00:22:04.125>basically <00:22:04.265>that <00:22:04.405>we're <00:22:04.545>gonna <00:22:04.685>get <00:22:04.825>high <00:22:04.965>forms <00:22:05.105>that <00:22:05.245>was

395
00:22:08.265 --> 00:22:12.705
<00:22:08.265>executed <00:22:08.381>by <00:22:08.498>the <00:22:08.615>say <00:22:08.731>hi <00:22:08.848>script, <00:22:08.965>and <00:22:09.081>then <00:22:09.198>we <00:22:09.315>get <00:22:09.431>a <00:22:09.548>new <00:22:09.665>file.

396
00:22:13.855 --> 00:22:17.755
<00:22:13.855>And <00:22:14.010>if <00:22:14.166>you <00:22:14.321>wanna <00:22:14.477>do <00:22:14.632>that <00:22:14.788>with <00:22:14.943>an <00:22:15.099>external <00:22:15.255>collection,

397
00:22:18.335 --> 00:22:22.275
<00:22:18.335>you <00:22:18.490>just <00:22:18.646>have <00:22:18.801>to <00:22:18.957>use <00:22:19.112>the <00:22:19.268>external <00:22:19.423>schematic <00:22:19.579>utility <00:22:19.735>instead

398
00:22:22.355 --> 00:22:25.275
<00:22:22.355>of <00:22:22.588>schematic <00:22:22.821>it <00:22:23.055>lives <00:22:23.288>in <00:22:23.521>this <00:22:23.755>package.

399
00:22:25.735 --> 00:22:29.075
<00:22:25.735>You'll <00:22:25.862>find <00:22:25.989>it <00:22:26.116>easily <00:22:26.244>if <00:22:26.371>you <00:22:26.498>start, <00:22:26.625>if <00:22:26.753>you <00:22:26.880>look <00:22:27.007>for <00:22:27.135>it.

400
00:22:32.345 --> 00:22:34.845
<00:22:32.345>And <00:22:32.625>now <00:22:32.905>let's <00:22:33.185>go <00:22:33.465>to <00:22:33.745>templates.

401
00:22:36.105 --> 00:22:40.085
<00:22:36.105>Um, <00:22:36.221>I'll <00:22:36.338>give <00:22:36.455>you <00:22:36.571>an <00:22:36.688>example <00:22:36.805>of <00:22:36.921>a <00:22:37.038>template, <00:22:37.155>uh, <00:22:37.271>in <00:22:37.388>the <00:22:37.505>next,

402
00:22:40.225 --> 00:22:41.605
<00:22:40.225>in <00:22:40.473>the <00:22:40.721>next, <00:22:40.970>uh, <00:22:41.218>few <00:22:41.467>slides.

403
00:22:41.705 --> 00:22:45.765
<00:22:41.705>But <00:22:41.821>first, <00:22:41.938>just <00:22:42.054>to <00:22:42.171>get <00:22:42.288>to <00:22:42.405>you, <00:22:42.521>to <00:22:42.638>wrap <00:22:42.754>your <00:22:42.871>hand <00:22:42.988>head <00:22:43.105>around

404
00:22:46.305 --> 00:22:50.645
<00:22:46.305>why <00:22:46.480>we <00:22:46.655>need <00:22:46.830>templates, <00:22:47.005>uh, <00:22:47.180>you <00:22:47.355>remember <00:22:47.530>the <00:22:47.705>component

405
00:22:50.675 --> 00:22:52.805
<00:22:50.675>that <00:22:50.875>we <00:22:51.075>saw <00:22:51.274>in <00:22:51.475>the <00:22:51.675>first <00:22:51.875>few <00:22:52.075>slides.

406
00:22:53.625 --> 00:22:57.245
<00:22:53.625>So <00:22:53.800>there <00:22:53.975>we <00:22:54.150>had <00:22:54.325>a <00:22:54.500>bunch <00:22:54.675>of <00:22:54.850>similar <00:22:55.025>files.

407
00:22:57.945 --> 00:23:02.045
<00:22:57.945>The <00:22:58.225>name <00:22:58.504>component <00:22:58.784>dot <00:22:59.064>ts <00:22:59.345>file,

408
00:23:02.185 --> 00:23:06.285
<00:23:02.185>the <00:23:02.360>name <00:23:02.534>component <00:23:02.710>CSS <00:23:02.885>file, <00:23:03.060>the <00:23:03.235>H <00:23:03.409>TML <00:23:03.585>file,

409
00:23:06.335 --> 00:23:08.725
<00:23:06.335>which <00:23:06.535>also <00:23:06.735>contains <00:23:06.935>the <00:23:07.135>template <00:23:07.335>for <00:23:07.535>the <00:23:07.735>component.

410
00:23:09.505 --> 00:23:13.325
<00:23:09.505>We <00:23:09.645>have <00:23:09.785>the <00:23:09.925>test <00:23:10.065>file, <00:23:10.205>and <00:23:10.345>these <00:23:10.485>are <00:23:10.625>all <00:23:10.765>the <00:23:10.905>same

411
00:23:13.545 --> 00:23:14.805
<00:23:13.545>and <00:23:13.828>basically <00:23:14.112>look <00:23:14.395>the <00:23:14.679>same

412
00:23:14.825 --> 00:23:16.565
<00:23:14.825>for <00:23:15.058>every <00:23:15.291>single <00:23:15.525>component <00:23:15.758>that <00:23:15.991>is <00:23:16.225>created.

413
00:23:18.055 --> 00:23:22.255
<00:23:18.055>And <00:23:18.195>if <00:23:18.335>we <00:23:18.475>further <00:23:18.615>take <00:23:18.755>a <00:23:18.895>look <00:23:19.035>at <00:23:19.175>the <00:23:19.315>class <00:23:19.455>there,

414
00:23:22.395 --> 00:23:26.455
<00:23:22.395>we <00:23:22.570>have <00:23:22.745>exactly <00:23:22.920>the <00:23:23.095>same, <00:23:23.270>um, <00:23:23.445>types <00:23:23.620>of <00:23:23.795>class

415
00:23:26.565 --> 00:23:30.175
<00:23:26.565>with <00:23:26.740>exactly <00:23:26.915>the <00:23:27.090>same <00:23:27.265>metadata <00:23:27.440>with <00:23:27.615>a <00:23:27.790>few <00:23:27.965>differences.

416
00:23:30.445 --> 00:23:32.175
<00:23:30.445>Just <00:23:30.645>the <00:23:30.845>name <00:23:31.044>of <00:23:31.245>the <00:23:31.445>class <00:23:31.645>is <00:23:31.845>different,

417
00:23:32.195 --> 00:23:34.335
<00:23:32.195>and <00:23:32.370>also <00:23:32.544>the <00:23:32.720>path <00:23:32.895>to <00:23:33.070>the <00:23:33.245>template <00:23:33.419>is <00:23:33.595>different.

418
00:23:34.635 --> 00:23:37.335
<00:23:34.635>But <00:23:34.790>other <00:23:34.946>than <00:23:35.101>that, <00:23:35.257>every <00:23:35.412>single <00:23:35.568>component <00:23:35.723>that <00:23:35.879>is <00:23:36.035>created

419
00:23:37.475 --> 00:23:41.255
<00:23:37.475>by <00:23:37.708>your <00:23:37.941>COI <00:23:38.175>is <00:23:38.408>exactly <00:23:38.641>the <00:23:38.875>same.

420
00:23:41.995 --> 00:23:44.215
<00:23:41.995>And <00:23:42.274>Diego, <00:23:42.554>COI <00:23:42.834>uses <00:23:43.114>a <00:23:43.395>template

421
00:23:44.475 --> 00:23:47.645
<00:23:44.475>for <00:23:44.675>creating <00:23:44.875>these <00:23:45.074>profiles <00:23:45.274>every <00:23:45.475>time <00:23:45.675>you'll <00:23:45.875>use

422
00:23:47.705 --> 00:23:48.965
<00:23:47.705>and <00:23:48.272>degenerate <00:23:48.839>components.

423
00:23:50.975 --> 00:23:53.075
<00:23:50.975>So <00:23:51.175>let's <00:23:51.375>see <00:23:51.574>how <00:23:51.774>we <00:23:51.975>can <00:23:52.175>use <00:23:52.375>templates

424
00:23:53.135 --> 00:23:54.675
<00:23:53.135>inside <00:23:53.597>our <00:23:54.059>own <00:23:54.521>collection.

425
00:23:55.885 --> 00:23:58.995
<00:23:55.885>First. <00:23:56.040>Uh, <00:23:56.196>we <00:23:56.351>can, <00:23:56.507>so <00:23:56.662>this <00:23:56.818>is <00:23:56.973>gonna <00:23:57.129>be <00:23:57.285>the,

426
00:23:59.255 --> 00:24:01.515
<00:23:59.255>our <00:23:59.605>script <00:23:59.955>template <00:24:00.305>in <00:24:00.655>schematic.

427
00:24:02.695 --> 00:24:06.115
<00:24:02.695>And <00:24:02.850>our <00:24:03.006>template <00:24:03.161>is <00:24:03.317>gonna <00:24:03.472>live <00:24:03.628>inside <00:24:03.783>the <00:24:03.939>files <00:24:04.095>directory.

428
00:24:06.655 --> 00:24:11.475
<00:24:06.655>And <00:24:06.782>here <00:24:06.909>we <00:24:07.036>have <00:24:07.164>a <00:24:07.291>single <00:24:07.418>file <00:24:07.545>in <00:24:07.673>this <00:24:07.800>weird <00:24:07.927>format <00:24:08.055>that,

429
00:24:11.735 --> 00:24:15.875
<00:24:11.735>and <00:24:11.875>that <00:24:12.014>file <00:24:12.155>name <00:24:12.294>is <00:24:12.435>gonna <00:24:12.574>be <00:24:12.715>replaced <00:24:12.854>by <00:24:12.995>an <00:24:13.135>option

430
00:24:16.275 --> 00:24:17.915
<00:24:16.275>provided <00:24:16.741>from <00:24:17.208>our <00:24:17.675>script.

431
00:24:19.055 --> 00:24:23.555
<00:24:19.055>And <00:24:19.230>here <00:24:19.405>we <00:24:19.580>have <00:24:19.755>a <00:24:19.930>simple <00:24:20.105>templating <00:24:20.280>language <00:24:20.455>that,

432
00:24:24.055 --> 00:24:28.115
<00:24:24.055>um, <00:24:24.182>I'm <00:24:24.309>sure <00:24:24.436>you <00:24:24.564>can, <00:24:24.691>you <00:24:24.818>can, <00:24:24.945>um, <00:24:25.073>understand <00:24:25.200>what <00:24:25.327>it <00:24:25.455>means.

433
00:24:28.215 --> 00:24:30.795
<00:24:28.215>We <00:24:28.415>can <00:24:28.615>have <00:24:28.814>conditional <00:24:29.014>statements, <00:24:29.215>we <00:24:29.415>can <00:24:29.615>have,

434
00:24:31.535 --> 00:24:33.695
<00:24:31.535>um, <00:24:32.935>interpolation.

435
00:24:34.075 --> 00:24:38.495
<00:24:34.075>So <00:24:34.230>we're <00:24:34.386>gonna <00:24:34.541>replace <00:24:34.697>breed <00:24:34.852>with <00:24:35.008>the <00:24:35.163>actual <00:24:35.319>breed <00:24:35.475>argument

436
00:24:38.495 --> 00:24:39.735
<00:24:38.495>that <00:24:38.718>is <00:24:38.941>provided <00:24:39.164>by <00:24:39.387>the <00:24:39.610>script.

437
00:24:40.595 --> 00:24:44.575
<00:24:40.595>And <00:24:40.750>this <00:24:40.906>is <00:24:41.061>basically <00:24:41.217>how <00:24:41.372>this, <00:24:41.528>uh, <00:24:41.683>template <00:24:41.839>looks <00:24:41.995>like.

438
00:24:44.795 --> 00:24:47.375
<00:24:44.795>If <00:24:44.950>you <00:24:45.106>need <00:24:45.261>to <00:24:45.417>create <00:24:45.572>your <00:24:45.728>own, <00:24:45.883>just <00:24:46.039>go <00:24:46.195>ahead

439
00:24:47.715 --> 00:24:50.855
<00:24:47.715>and <00:24:47.889>take <00:24:48.064>a <00:24:48.240>look <00:24:48.415>at <00:24:48.590>your <00:24:48.764>COI, <00:24:48.939>uh, <00:24:49.115>templates,

440
00:24:50.995 --> 00:24:55.255
<00:24:50.995>and, <00:24:51.150>um, <00:24:51.306>I'm <00:24:51.461>sure <00:24:51.617>you <00:24:51.772>will <00:24:51.928>understand <00:24:52.083>how <00:24:52.239>this <00:24:52.395>simple

441
00:24:56.015 --> 00:24:57.255
<00:24:56.015>language <00:24:56.387>can <00:24:56.759>be <00:24:57.131>used.

442
00:25:01.315 --> 00:25:04.695
<00:25:01.315>And <00:25:01.455>now <00:25:01.595>applying <00:25:01.735>the <00:25:01.875>template <00:25:02.015>can <00:25:02.155>look <00:25:02.295>a <00:25:02.435>little <00:25:02.575>bit <00:25:02.715>weird.

443
00:25:05.275 --> 00:25:09.455
<00:25:05.275>So <00:25:05.430>we <00:25:05.586>have <00:25:05.741>mee <00:25:05.897>applied <00:25:06.052>templates, <00:25:06.208>which <00:25:06.363>doesn't <00:25:06.519>make <00:25:06.675>any

444
00:25:10.105 --> 00:25:12.535
<00:25:10.105>sense <00:25:10.232>to <00:25:10.359>me <00:25:10.486>at <00:25:10.614>all <00:25:10.741>if <00:25:10.868>I <00:25:10.995>see <00:25:11.123>it <00:25:11.250>just <00:25:11.377>like <00:25:11.505>that.

445
00:25:13.075 --> 00:25:14.175
<00:25:13.075>So <00:25:13.405>let's <00:25:13.735>say <00:25:14.065>that

446
00:25:14.435 --> 00:25:18.055
<00:25:14.435>and <00:25:14.635>break <00:25:14.835>it <00:25:15.034>down, <00:25:15.235>um, <00:25:15.435>in <00:25:15.635>different <00:25:15.835>steps

447
00:25:18.195 --> 00:25:19.855
<00:25:18.195>so <00:25:18.475>we <00:25:18.754>can <00:25:19.034>understand <00:25:19.314>what's <00:25:19.595>happening.

448
00:25:21.685 --> 00:25:24.785
<00:25:21.685>And <00:25:21.825>yeah, <00:25:21.965>this <00:25:22.105>was <00:25:22.245>my <00:25:22.385>reaction <00:25:22.524>when <00:25:22.665>I <00:25:22.804>saw <00:25:22.945>that <00:25:23.085>first.

449
00:25:27.155 --> 00:25:31.595
<00:25:27.155>So <00:25:27.282>you <00:25:27.409>remember <00:25:27.536>that <00:25:27.664>we <00:25:27.791>have <00:25:27.918>the <00:25:28.045>rule, <00:25:28.173>which <00:25:28.300>is <00:25:28.427>a <00:25:28.555>function,

450
00:25:31.595 --> 00:25:33.155
<00:25:31.595>taking <00:25:31.945>the <00:25:32.295>tree, <00:25:32.645>a <00:25:32.995>tree,

451
00:25:33.175 --> 00:25:36.675
<00:25:33.175>and <00:25:33.408>returning <00:25:33.641>a <00:25:33.875>tree <00:25:34.108>with <00:25:34.341>new <00:25:34.575>actions.

452
00:25:37.935 --> 00:25:40.715
<00:25:37.935>And <00:25:38.135>a <00:25:38.335>source <00:25:38.534>is <00:25:38.735>basically <00:25:38.935>a <00:25:39.135>function <00:25:39.335>that

453
00:25:42.365 --> 00:25:43.575
<00:25:42.365>doesn't <00:25:42.728>take <00:25:43.091>a <00:25:43.454>tree

454
00:25:43.995 --> 00:25:47.775
<00:25:43.995>and <00:25:44.195>it <00:25:44.395>creates <00:25:44.594>a <00:25:44.794>tree <00:25:44.995>from <00:25:45.195>some <00:25:45.395>source.

455
00:25:48.995 --> 00:25:52.025
<00:25:48.995>And <00:25:49.228>a <00:25:49.461>source <00:25:49.695>factory <00:25:49.928>is <00:25:50.161>a <00:25:50.395>function

456
00:25:52.055 --> 00:25:54.675
<00:25:52.055>that <00:25:52.521>returns <00:25:52.988>a <00:25:53.455>source.

457
00:25:55.885 --> 00:25:57.745
<00:25:55.885>And <00:25:56.040>just <00:25:56.196>to <00:25:56.351>make <00:25:56.507>that <00:25:56.662>a <00:25:56.818>little <00:25:56.973>bit <00:25:57.129>more <00:25:57.285>clear,

458
00:25:58.765 --> 00:26:02.785
<00:25:58.765>we <00:25:58.940>can <00:25:59.115>have <00:25:59.290>the <00:25:59.465>URL <00:25:59.640>Source <00:25:59.815>factory, <00:25:59.990>which <00:26:00.165>takes

459
00:26:03.685 --> 00:26:05.785
<00:26:03.685>the <00:26:04.385>files <00:26:05.085>director,

460
00:26:06.405 --> 00:26:08.865
<00:26:06.405>and <00:26:06.580>it <00:26:06.754>creates <00:26:06.930>a <00:26:07.105>new <00:26:07.280>source <00:26:07.455>out <00:26:07.629>of <00:26:07.805>that.

461
00:26:09.545 --> 00:26:11.685
<00:26:09.545>So <00:26:09.778>basically, <00:26:10.011>while <00:26:10.245>our <00:26:10.478>script <00:26:10.711>is <00:26:10.945>running,

462
00:26:11.985 --> 00:26:16.205
<00:26:11.985>we <00:26:12.101>are <00:26:12.218>creating <00:26:12.334>a <00:26:12.451>new <00:26:12.568>source <00:26:12.685>that <00:26:12.801>will <00:26:12.918>return <00:26:13.034>a, <00:26:13.151>a <00:26:13.268>new <00:26:13.385>tree

463
00:26:16.235 --> 00:26:18.245
<00:26:16.235>with <00:26:16.514>a <00:26:16.794>bunch <00:26:17.074>of, <00:26:17.354>uh, <00:26:17.635>actions.

464
00:26:19.185 --> 00:26:23.165
<00:26:19.185>So <00:26:19.325>whenever <00:26:19.465>we <00:26:19.605>invoke <00:26:19.745>files, <00:26:19.885>we're <00:26:20.024>gonna <00:26:20.165>get <00:26:20.304>a <00:26:20.445>new <00:26:20.585>tree,

465
00:26:23.575 --> 00:26:25.125
<00:26:23.575>which <00:26:23.923>doesn't <00:26:24.272>have <00:26:24.621>any <00:26:24.970>base.

466
00:26:25.395 --> 00:26:27.125
<00:26:25.395>It's, <00:26:25.628>it <00:26:25.861>has <00:26:26.095>no <00:26:26.328>base <00:26:26.561>at <00:26:26.795>all,

467
00:26:27.465 --> 00:26:31.445
<00:26:27.465>but <00:26:27.592>it <00:26:27.719>has <00:26:27.846>a <00:26:27.974>bunch <00:26:28.101>of <00:26:28.228>actions <00:26:28.355>that <00:26:28.483>are <00:26:28.610>all, <00:26:28.737>create <00:26:28.865>actions

468
00:26:31.985 --> 00:26:33.125
<00:26:31.985>for <00:26:32.327>every <00:26:32.668>single <00:26:33.011>file

469
00:26:33.125 --> 00:26:35.485
<00:26:33.125>that <00:26:33.358>lives <00:26:33.591>here <00:26:33.825>in <00:26:34.058>this <00:26:34.291>files <00:26:34.525>directory.

470
00:26:39.035 --> 00:26:40.815
<00:26:39.035>And <00:26:39.268>let's <00:26:39.501>see <00:26:39.735>what <00:26:39.968>happens <00:26:40.201>over <00:26:40.435>here.

471
00:26:43.215 --> 00:26:44.635
<00:26:43.215>We <00:26:43.534>have <00:26:43.854>the <00:26:44.173>URL <00:26:44.493>source.

472
00:26:44.825 --> 00:26:48.275
<00:26:44.825>This <00:26:44.965>is <00:26:45.105>gonna <00:26:45.245>create <00:26:45.385>a <00:26:45.525>bunch <00:26:45.665>of <00:26:45.805>actions <00:26:45.945>for <00:26:46.085>creating, <00:26:46.225>uh,

473
00:26:48.455 --> 00:26:50.355
<00:26:48.455>the <00:26:48.804>files <00:26:49.155>inside <00:26:49.504>this <00:26:49.855>directory.

474
00:26:51.185 --> 00:26:53.955
<00:26:51.185>Then <00:26:51.360>we <00:26:51.534>have <00:26:51.710>the <00:26:51.885>options <00:26:52.060>that <00:26:52.235>we <00:26:52.409>wanna <00:26:52.585>replace.

475
00:26:54.095 --> 00:26:56.475
<00:26:54.095>So <00:26:54.270>our <00:26:54.445>file <00:26:54.620>name <00:26:54.795>is <00:26:54.970>gonna <00:26:55.145>be <00:26:55.320>breed <00:26:55.495>statement,

476
00:26:56.895 --> 00:26:59.235
<00:26:56.895>and <00:26:57.050>then <00:26:57.206>we're <00:26:57.361>gonna <00:26:57.517>have <00:26:57.672>a <00:26:57.828>breed <00:26:57.983>of <00:26:58.139>cocker <00:26:58.295>spaniel.

477
00:27:00.875 --> 00:27:05.085
<00:27:00.875>Then <00:27:01.030>we <00:27:01.186>get <00:27:01.341>a, <00:27:01.497>a <00:27:01.652>template <00:27:01.808>rule <00:27:01.963>by <00:27:02.119>applying <00:27:02.275>the

478
00:27:06.125 --> 00:27:08.845
<00:27:06.125>template <00:27:06.405>Rule <00:27:06.685>Factory <00:27:06.965>to <00:27:07.245>these <00:27:07.525>options.

479
00:27:09.745 --> 00:27:13.165
<00:27:09.745>And <00:27:09.978>then <00:27:10.211>finally, <00:27:10.445>we <00:27:10.678>apply <00:27:10.911>this <00:27:11.145>template

480
00:27:13.235 --> 00:27:15.265
<00:27:13.235>rule <00:27:13.701>to <00:27:14.168>our <00:27:14.635>source.

481
00:27:16.045 --> 00:27:18.545
<00:27:16.045>So <00:27:16.278>we <00:27:16.511>get <00:27:16.745>the <00:27:16.978>files <00:27:17.211>over <00:27:17.445>here

482
00:27:18.885 --> 00:27:23.105
<00:27:18.885>and <00:27:19.165>we, <00:27:19.445>there <00:27:19.725>are <00:27:20.004>the <00:27:20.285>template

483
00:27:23.165 --> 00:27:26.985
<00:27:23.165>and <00:27:23.320>we, <00:27:23.476>we, <00:27:23.631>we <00:27:23.787>apply <00:27:23.942>these <00:27:24.098>options <00:27:24.253>to <00:27:24.409>them <00:27:24.565>so

484
00:27:27.175 --> 00:27:31.745
<00:27:27.175>that <00:27:27.302>we <00:27:27.429>get <00:27:27.556>all <00:27:27.684>our, <00:27:27.811>um, <00:27:27.938>content <00:27:28.065>replaced <00:27:28.193>in <00:27:28.320>the <00:27:28.447>proper <00:27:28.575>way.

485
00:27:33.125 --> 00:27:35.905
<00:27:33.125>And <00:27:33.405>finally, <00:27:33.685>we <00:27:33.965>use <00:27:34.245>Merge <00:27:34.525>With,

486
00:27:36.085 --> 00:27:39.945
<00:27:36.085>and <00:27:36.201>you <00:27:36.318>might <00:27:36.435>be <00:27:36.551>wondering <00:27:36.668>as <00:27:36.785>I <00:27:36.901>was, <00:27:37.018>what <00:27:37.135>do <00:27:37.251>we <00:27:37.368>merge <00:27:37.485>with?

487
00:27:40.765 --> 00:27:45.185
<00:27:40.765>And <00:27:40.920>actually <00:27:41.076>this <00:27:41.231>is <00:27:41.387>gonna <00:27:41.542>merge <00:27:41.698>the <00:27:41.853>newly <00:27:42.009>generated <00:27:42.165>source

488
00:27:45.975 --> 00:27:50.315
<00:27:45.975>with <00:27:46.130>our <00:27:46.286>current <00:27:46.441>tree, <00:27:46.597>which <00:27:46.752>I <00:27:46.908>don't <00:27:47.063>know, <00:27:47.219>why <00:27:47.375>wasn't

489
00:27:50.315 --> 00:27:52.795
<00:27:50.315>that <00:27:50.515>just <00:27:50.715>merge <00:27:50.915>with <00:27:51.115>Tree <00:27:51.315>and <00:27:51.515>then <00:27:51.715>Source?

490
00:27:52.995 --> 00:27:57.495
<00:27:52.995>I <00:27:53.135>don't <00:27:53.274>know. <00:27:53.415>But <00:27:53.554>if <00:27:53.695>basically <00:27:53.834>you <00:27:53.975>use <00:27:54.114>Merge <00:27:54.254>with <00:27:54.395>to,

491
00:27:58.635 --> 00:28:02.495
<00:27:58.635>to <00:27:58.868>actually <00:27:59.101>apply <00:27:59.335>these <00:27:59.568>newly <00:27:59.801>created <00:28:00.035>files

492
00:28:02.835 --> 00:28:04.615
<00:28:02.835>to <00:28:03.185>your <00:28:03.535>current <00:28:03.885>current <00:28:04.235>structure.

493
00:28:06.945 --> 00:28:09.165
<00:28:06.945>All <00:28:07.120>right, <00:28:07.294>so <00:28:07.470>this <00:28:07.645>is <00:28:07.820>how <00:28:07.995>you <00:28:08.169>use <00:28:08.345>templates.

494
00:28:09.305 --> 00:28:11.565
<00:28:09.305>If <00:28:09.460>you <00:28:09.616>ever <00:28:09.771>have <00:28:09.927>to <00:28:10.082>do <00:28:10.238>that, <00:28:10.393>just <00:28:10.549>create <00:28:10.705>a,

495
00:28:11.805 --> 00:28:15.045
<00:28:11.805>a <00:28:12.005>new <00:28:12.205>utility <00:28:12.405>function, <00:28:12.605>face <00:28:12.805>that <00:28:13.005>code <00:28:13.205>inside,

496
00:28:15.045 --> 00:28:19.165
<00:28:15.045>and <00:28:15.172>don't <00:28:15.299>ever <00:28:15.426>think <00:28:15.554>about <00:28:15.681>it <00:28:15.808>again <00:28:15.935>so <00:28:16.063>that <00:28:16.190>you <00:28:16.317>don't <00:28:16.445>have

497
00:28:19.165 --> 00:28:20.805
<00:28:19.165>to <00:28:19.514>write <00:28:19.865>that <00:28:20.215>from <00:28:20.565>scratch.

498
00:28:22.725 --> 00:28:27.505
<00:28:22.725>And <00:28:22.880>when <00:28:23.036>we <00:28:23.191>execute <00:28:23.347>the <00:28:23.502>tape <00:28:23.658>plating <00:28:23.813>schematic, <00:28:23.969>um, <00:28:24.125>our

499
00:28:28.175 --> 00:28:31.465
<00:28:28.175>file <00:28:28.350>name <00:28:28.524>file, <00:28:28.700>our <00:28:28.875>template <00:28:29.050>is <00:28:29.225>gonna <00:28:29.399>be <00:28:29.575>converted

500
00:28:31.465 --> 00:28:34.625
<00:28:31.465>to <00:28:31.605>an <00:28:31.745>actual <00:28:31.885>file, <00:28:32.024>and <00:28:32.165>we're <00:28:32.304>gonna <00:28:32.445>get <00:28:32.584>this <00:28:32.725>content <00:28:32.865>inside.

501
00:28:38.035 --> 00:28:41.655
<00:28:38.035>All <00:28:38.210>right, <00:28:38.385>um, <00:28:38.560>onto <00:28:38.735>the <00:28:38.910>next <00:28:39.085>pretty <00:28:39.260>important <00:28:39.435>thing.

502
00:28:42.675 --> 00:28:44.735
<00:28:42.675>I'm <00:28:42.850>not <00:28:43.024>give <00:28:43.200>giving <00:28:43.375>you <00:28:43.550>too <00:28:43.725>much <00:28:43.899>time <00:28:44.075>to

503
00:28:45.665 --> 00:28:50.555
<00:28:45.665>take <00:28:45.781>a <00:28:45.898>look <00:28:46.014>at <00:28:46.131>the <00:28:46.248>code <00:28:46.365>or <00:28:46.481>even, <00:28:46.598>um, <00:28:46.715>try <00:28:46.831>to <00:28:46.948>remember <00:28:47.065>it.

504
00:28:50.635 --> 00:28:53.075
<00:28:50.635>I <00:28:50.790>hope <00:28:50.946>that <00:28:51.101>you <00:28:51.257>understand <00:28:51.412>the <00:28:51.568>things <00:28:51.723>that <00:28:51.879>were <00:28:52.035>explained.

505
00:28:53.075 --> 00:28:54.395
<00:28:53.075>But, <00:28:53.312>uh, <00:28:53.550>don't <00:28:53.787>worry <00:28:54.025>about <00:28:54.263>it.

506
00:28:54.395 --> 00:28:58.515
<00:28:54.395>You <00:28:54.535>can <00:28:54.675>find <00:28:54.815>the <00:28:54.955>slides <00:28:55.095>later <00:28:55.235>if <00:28:55.375>you <00:28:55.514>wanna <00:28:55.655>check <00:28:55.795>something

507
00:28:58.575 --> 00:29:00.155
<00:28:58.575>or <00:28:58.808>if <00:28:59.041>you <00:28:59.275>see <00:28:59.508>something <00:28:59.741>that's <00:28:59.975>missing

508
00:29:00.375 --> 00:29:03.475
<00:29:00.375>or <00:29:00.550>weird, <00:29:00.725>you <00:29:00.900>can <00:29:01.075>always <00:29:01.250>ask <00:29:01.425>me <00:29:01.600>on <00:29:01.775>Twitter

509
00:29:03.575 --> 00:29:06.235
<00:29:03.575>or, <00:29:03.925>um, <00:29:04.275>anywhere, <00:29:04.625>find <00:29:04.975>me.

510
00:29:08.135 --> 00:29:10.155
<00:29:08.135>But <00:29:08.368>again, <00:29:08.601>that's, <00:29:08.835>that's <00:29:09.068>not <00:29:09.301>what's <00:29:09.535>important.

511
00:29:10.255 --> 00:29:13.035
<00:29:10.255>The <00:29:10.395>more <00:29:10.535>important <00:29:10.675>thing <00:29:10.815>is, <00:29:10.955>is <00:29:11.095>to <00:29:11.235>get <00:29:11.375>your <00:29:11.515>head <00:29:11.655>around

512
00:29:13.035 --> 00:29:14.795
<00:29:13.035>what <00:29:13.268>you <00:29:13.501>can <00:29:13.735>actually <00:29:13.968>do <00:29:14.201>with <00:29:14.435>schematics

513
00:29:14.975 --> 00:29:19.395
<00:29:14.975>and, <00:29:15.130>um, <00:29:15.286>think <00:29:15.441>about <00:29:15.597>how <00:29:15.752>you <00:29:15.908>can <00:29:16.063>maybe <00:29:16.219>apply <00:29:16.375>this

514
00:29:19.395 --> 00:29:22.475
<00:29:19.395>to <00:29:19.550>your <00:29:19.706>project <00:29:19.861>or <00:29:20.017>your <00:29:20.172>library <00:29:20.328>that <00:29:20.483>you're <00:29:20.639>working <00:29:20.795>on.

515
00:29:25.015 --> 00:29:27.755
<00:29:25.015>So <00:29:25.155>again, <00:29:25.295>the <00:29:25.435>final <00:29:25.575>thing <00:29:25.715>that <00:29:25.855>I <00:29:25.995>wanna <00:29:26.135>show <00:29:26.275>you <00:29:26.415>is

516
00:29:28.015 --> 00:29:29.555
<00:29:28.015>how <00:29:28.361>you <00:29:28.708>can <00:29:29.054>modify <00:29:29.401>files.

517
00:29:31.215 --> 00:29:34.835
<00:29:31.215>And, <00:29:31.415>um, <00:29:31.615>this <00:29:31.814>example <00:29:32.014>is <00:29:32.215>something <00:29:32.415>that <00:29:32.615>we

518
00:29:35.995 --> 00:29:37.795
<00:29:35.995>consider <00:29:36.274>doing <00:29:36.554>for <00:29:36.834>the <00:29:37.114>quality <00:29:37.395>library.

519
00:29:38.895 --> 00:29:40.115
<00:29:38.895>Uh, <00:29:39.261>basically <00:29:39.627>when <00:29:39.993>you

520
00:29:40.625 --> 00:29:43.725
<00:29:40.625>install <00:29:40.800>quality <00:29:40.975>in <00:29:41.150>your <00:29:41.325>project, <00:29:41.500>you <00:29:41.675>don't <00:29:41.850>have <00:29:42.025>it.

521
00:29:44.125 --> 00:29:45.285
<00:29:44.125>I <00:29:44.299>mean, <00:29:44.473>you <00:29:44.647>have <00:29:44.821>it <00:29:44.995>set <00:29:45.169>up,

522
00:29:45.285 --> 00:29:47.845
<00:29:45.285>but <00:29:45.460>you <00:29:45.635>don't <00:29:45.810>have <00:29:45.985>any <00:29:46.160>sort <00:29:46.335>of <00:29:46.510>quality <00:29:46.685>layout.

523
00:29:48.745 --> 00:29:51.005
<00:29:48.745>So <00:29:48.919>the <00:29:49.094>idea <00:29:49.270>is <00:29:49.445>to <00:29:49.620>take <00:29:49.794>the <00:29:49.969>app <00:29:50.145>components,

524
00:29:51.305 --> 00:29:54.565
<00:29:51.305>if <00:29:51.480>this <00:29:51.655>is <00:29:51.830>a <00:29:52.005>newly <00:29:52.180>created, <00:29:52.355>uh, <00:29:52.530>project, <00:29:52.705>um,

525
00:29:54.705 --> 00:29:55.805
<00:29:54.705>remove <00:29:55.200>its <00:29:55.695>contents

526
00:29:56.105 --> 00:30:00.645
<00:29:56.105>and <00:29:56.280>replace <00:29:56.455>it <00:29:56.630>with <00:29:56.805>some <00:29:56.980>layouting <00:29:57.155>content <00:29:57.330>that <00:29:57.505>is

527
00:30:01.405 --> 00:30:03.125
<00:30:01.405>provided <00:30:02.105>by <00:30:02.805>quality.

528
00:30:03.265 --> 00:30:07.325
<00:30:03.265>And <00:30:03.440>it <00:30:03.615>contains <00:30:03.790>some <00:30:03.965>basic, <00:30:04.140>basic <00:30:04.315>quality <00:30:04.490>components <00:30:04.665>inside.

529
00:30:08.185 --> 00:30:10.925
<00:30:08.185>So <00:30:08.325>what <00:30:08.465>we <00:30:08.605>are <00:30:08.745>doing <00:30:08.885>here, <00:30:09.024>we <00:30:09.165>have <00:30:09.304>the <00:30:09.445>component <00:30:09.585>path.

530
00:30:11.475 --> 00:30:14.485
<00:30:11.475>This, <00:30:11.675>um, <00:30:11.875>this <00:30:12.074>is <00:30:12.274>the <00:30:12.475>default <00:30:12.675>for <00:30:12.875>Angular,

531
00:30:14.625 --> 00:30:18.645
<00:30:14.625>but <00:30:14.825>there <00:30:15.025>are <00:30:15.225>way <00:30:15.425>better, <00:30:15.625>um, <00:30:15.825>options, <00:30:16.025>how

532
00:30:18.645 --> 00:30:20.245
<00:30:18.645>to <00:30:18.995>find <00:30:19.345>the <00:30:19.695>entry <00:30:20.045>components.

533
00:30:21.745 --> 00:30:25.125
<00:30:21.745>Uh, <00:30:21.919>then <00:30:22.094>we <00:30:22.270>read <00:30:22.445>that <00:30:22.620>with <00:30:22.794>three <00:30:22.969>dot <00:30:23.145>reads.

534
00:30:26.265 --> 00:30:29.605
<00:30:26.265>If <00:30:26.405>we <00:30:26.545>don't <00:30:26.685>have <00:30:26.825>an <00:30:26.965>app <00:30:27.105>component <00:30:27.245>basically <00:30:27.385>means <00:30:27.525>that, <00:30:27.665>uh,

535
00:30:29.715 --> 00:30:31.005
<00:30:29.715>this <00:30:30.101>path <00:30:30.489>doesn't <00:30:30.876>exist.

536
00:30:31.945 --> 00:30:34.725
<00:30:31.945>And <00:30:32.100>then <00:30:32.256>finally, <00:30:32.411>if <00:30:32.567>we <00:30:32.722>actually <00:30:32.878>have <00:30:33.033>an <00:30:33.189>app <00:30:33.345>component,

537
00:30:35.545 --> 00:30:37.445
<00:30:35.545>we <00:30:35.778>can <00:30:36.011>use <00:30:36.245>three <00:30:36.478>dot <00:30:36.711>over <00:30:36.945>right

538
00:30:37.825 --> 00:30:40.885
<00:30:37.825>to <00:30:38.000>replace <00:30:38.175>the <00:30:38.350>current <00:30:38.525>content <00:30:38.700>with <00:30:38.875>the <00:30:39.050>con <00:30:39.225>content

539
00:30:40.995 --> 00:30:42.085
<00:30:40.995>that <00:30:41.485>we <00:30:41.976>want.

540
00:30:43.145 --> 00:30:45.245
<00:30:43.145>Uh, <00:30:43.320>let's <00:30:43.495>take <00:30:43.670>a <00:30:43.845>look <00:30:44.020>at <00:30:44.195>how <00:30:44.370>this <00:30:44.545>works.

541
00:30:49.875 --> 00:30:53.695
<00:30:49.875>So <00:30:50.050>here <00:30:50.225>I <00:30:50.400>have <00:30:50.575>my <00:30:50.750>demo <00:30:50.925>application, <00:30:51.100>which, <00:30:51.275>uh,

542
00:30:53.715 --> 00:30:57.295
<00:30:53.715>is <00:30:53.915>basically <00:30:54.115>a <00:30:54.314>newly <00:30:54.514>created <00:30:54.715>in <00:30:54.915>your <00:30:55.115>application.

543
00:30:57.995 --> 00:31:00.575
<00:30:57.995>You <00:30:58.150>have <00:30:58.306>all <00:30:58.461>seen <00:30:58.617>that <00:30:58.772>if <00:30:58.928>you <00:30:59.083>have <00:30:59.239>ever <00:30:59.395>created

544
00:31:01.235 --> 00:31:04.335
<00:31:01.235>in <00:31:01.409>your <00:31:01.584>app <00:31:01.760>in <00:31:01.935>the <00:31:02.110>past <00:31:02.284>maybe <00:31:02.459>two <00:31:02.635>years.

545
00:31:05.805 --> 00:31:09.425
<00:31:05.805>And <00:31:05.945>what <00:31:06.085>I <00:31:06.225>wanna <00:31:06.365>show <00:31:06.505>you <00:31:06.645>is <00:31:06.785>what <00:31:06.925>happens <00:31:07.065>when <00:31:07.205>we

546
00:31:10.365 --> 00:31:14.215
<00:31:10.365>execute <00:31:10.598>our, <00:31:10.831>um, <00:31:11.065>quality <00:31:11.298>layout, <00:31:11.531>uh, <00:31:11.765>script.

547
00:31:16.015 --> 00:31:19.235
<00:31:16.015>So <00:31:16.215>again, <00:31:16.415>I'm <00:31:16.615>using <00:31:16.815>the <00:31:17.015>schematic, <00:31:17.215>COI <00:31:17.415>here,

548
00:31:19.335 --> 00:31:21.555
<00:31:19.335>I'm <00:31:19.568>providing <00:31:19.801>the <00:31:20.035>path <00:31:20.268>to <00:31:20.501>the <00:31:20.735>collection,

549
00:31:21.725 --> 00:31:25.115
<00:31:21.725>which <00:31:21.899>lives <00:31:22.074>in <00:31:22.250>s <00:31:22.425>schematics, <00:31:22.600>demos, <00:31:22.774>then <00:31:22.949>the <00:31:23.125>name

550
00:31:25.115 --> 00:31:27.275
<00:31:25.115>of <00:31:25.290>the <00:31:25.465>schematic, <00:31:25.640>and <00:31:25.815>again, <00:31:25.990>the <00:31:26.165>book <00:31:26.340>flow <00:31:26.515>so

551
00:31:27.275 --> 00:31:28.955
<00:31:27.275>that <00:31:27.555>the <00:31:27.835>changes <00:31:28.115>are <00:31:28.395>actually <00:31:28.675>applied.

552
00:31:29.735 --> 00:31:30.795
<00:31:29.735>I'm <00:31:30.053>gonna <00:31:30.371>execute <00:31:30.689>that.

553
00:31:31.535 --> 00:31:33.555
<00:31:31.535>And <00:31:31.768>when <00:31:32.001>the <00:31:32.235>app <00:31:32.468>refreshes, <00:31:32.701>you <00:31:32.935>see

554
00:31:33.555 --> 00:31:37.955
<00:31:33.555>that <00:31:33.710>the <00:31:33.866>app <00:31:34.021>component <00:31:34.177>file <00:31:34.332>was, <00:31:34.488>um, <00:31:34.643>content <00:31:34.799>was <00:31:34.955>replaced

555
00:31:38.425 --> 00:31:41.425
<00:31:38.425>with <00:31:38.774>some <00:31:39.125>actual <00:31:39.475>quality <00:31:39.825>layout.

556
00:31:45.005 --> 00:31:47.465
<00:31:45.005>All <00:31:45.180>right, <00:31:45.355>this <00:31:45.530>is <00:31:45.705>the <00:31:45.880>shorting <00:31:46.055>that <00:31:46.230>they <00:31:46.405>wanted

557
00:31:47.465 --> 00:31:48.705
<00:31:47.465>to <00:31:47.688>show <00:31:47.911>you <00:31:48.134>for <00:31:48.357>a <00:31:48.581>demo.

558
00:31:50.675 --> 00:31:52.095
<00:31:50.675>And <00:31:50.857>if <00:31:51.040>you <00:31:51.222>go <00:31:51.405>back <00:31:51.587>to <00:31:51.770>the <00:31:51.953>slides,

559
00:31:59.115 --> 00:31:59.685
<00:31:59.115>Stop <00:31:59.628>moving.

560
00:32:00.155 --> 00:32:00.445
Okay?

561
00:32:07.895 --> 00:32:10.495
<00:32:07.895>I <00:32:08.128>actually <00:32:08.361>don't <00:32:08.595>have <00:32:08.828>any <00:32:09.061>more <00:32:09.295>demos.

562
00:32:10.535 --> 00:32:15.255
<00:32:10.535>I <00:32:10.675>just <00:32:10.815>wanna, <00:32:10.955>uh, <00:32:11.095>show <00:32:11.235>you <00:32:11.375>a <00:32:11.515>list <00:32:11.655>of, <00:32:11.795>of <00:32:11.935>resources

563
00:32:15.255 --> 00:32:17.735
<00:32:15.255>that <00:32:15.395>you <00:32:15.535>can <00:32:15.675>use <00:32:15.815>and <00:32:15.955>also <00:32:16.095>a <00:32:16.235>link <00:32:16.375>for <00:32:16.515>the <00:32:16.655>slides

564
00:32:18.235 --> 00:32:20.335
<00:32:18.235>so <00:32:18.468>you <00:32:18.701>have <00:32:18.935>access <00:32:19.168>to <00:32:19.401>these <00:32:19.635>resources.

565
00:32:21.765 --> 00:32:24.185
<00:32:21.765>All <00:32:21.940>right. <00:32:22.115>Uh, <00:32:22.290>I <00:32:22.465>did <00:32:22.640>not <00:32:22.815>lie <00:32:22.990>to <00:32:23.165>you.

566
00:32:24.185 --> 00:32:25.225
<00:32:24.185>This <00:32:24.418>is <00:32:24.653>the <00:32:24.887>previous <00:32:25.120>slide.

567
00:32:25.405 --> 00:32:28.185
<00:32:25.405>So <00:32:25.638>we're <00:32:25.871>now <00:32:26.105>onto <00:32:26.338>the <00:32:26.571>resources <00:32:26.805>slide.

568
00:32:28.805 --> 00:32:30.185
<00:32:28.805>Uh, <00:32:29.219>here <00:32:29.633>i, <00:32:30.047>I

569
00:32:30.425 --> 00:32:31.585
<00:32:30.425>provided <00:32:30.633>you <00:32:30.842>with <00:32:31.051>links <00:32:31.260>to <00:32:31.469>the,

570
00:32:32.205 --> 00:32:34.505
<00:32:32.205>in <00:32:32.485>your <00:32:32.764>IO <00:32:33.044>documentation <00:32:33.324>about <00:32:33.605>schematics,

571
00:32:34.635 --> 00:32:36.345
<00:32:34.635>which <00:32:34.985>is <00:32:35.335>very <00:32:35.685>well <00:32:36.035>written,

572
00:32:36.485 --> 00:32:40.185
<00:32:36.485>and <00:32:36.612>you <00:32:36.739>can <00:32:36.866>find <00:32:36.994>out <00:32:37.121>a <00:32:37.248>lot <00:32:37.375>of <00:32:37.503>of <00:32:37.630>information <00:32:37.757>about <00:32:37.885>how

573
00:32:40.185 --> 00:32:42.785
<00:32:40.185>to <00:32:40.340>use <00:32:40.496>s <00:32:40.651>schematics <00:32:40.807>in <00:32:40.962>your <00:32:41.118>library <00:32:41.273>there <00:32:41.429>as <00:32:41.585>well.

574
00:32:43.685 --> 00:32:45.345
<00:32:43.685>Uh, <00:32:44.385>the <00:32:45.085>demos

575
00:32:45.345 --> 00:32:49.385
<00:32:45.345>that <00:32:45.485>we <00:32:45.625>saw <00:32:45.765>all <00:32:45.905>live <00:32:46.045>in <00:32:46.185>this <00:32:46.325>repository <00:32:46.465>on <00:32:46.605>GitHub, <00:32:46.745>uh,

576
00:32:49.535 --> 00:32:51.785
<00:32:49.535>here <00:32:49.710>are <00:32:49.885>also <00:32:50.060>linked <00:32:50.235>to <00:32:50.410>links <00:32:50.585>to <00:32:50.760>a <00:32:50.935>couple

577
00:32:51.785 --> 00:32:53.705
<00:32:51.785>of <00:32:52.018>schematic <00:32:52.251>collections <00:32:52.485>that <00:32:52.718>they've <00:32:52.951>worked <00:32:53.185>on.

578
00:32:54.525 --> 00:32:58.435
<00:32:54.525>Um, <00:32:54.680>this <00:32:54.836>is <00:32:54.991>the <00:32:55.147>cores <00:32:55.302>schematics <00:32:55.458>that <00:32:55.613>I <00:32:55.769>also <00:32:55.925>have

579
00:32:58.435 --> 00:33:00.635
<00:32:58.435>to <00:32:58.635>thank <00:32:58.835>my <00:32:59.034>teammates <00:32:59.235>on <00:32:59.435>the <00:32:59.635>party <00:32:59.835>team

580
00:33:00.695 --> 00:33:02.435
<00:33:00.695>for, <00:33:01.161>uh, <00:33:01.628>initially <00:33:02.095>writing.

581
00:33:02.715 --> 00:33:03.835
<00:33:02.715>I <00:33:03.051>just <00:33:03.387>refactor <00:33:03.723>these,

582
00:33:03.855 --> 00:33:06.755
<00:33:03.855>so <00:33:04.030>I <00:33:04.205>haven't <00:33:04.380>actually <00:33:04.555>added <00:33:04.730>any, <00:33:04.905>anything <00:33:05.080>new <00:33:05.255>there.

583
00:33:07.455 --> 00:33:11.235
<00:33:07.455>And <00:33:07.610>this, <00:33:07.766>these <00:33:07.921>are <00:33:08.077>the <00:33:08.232>native <00:33:08.388>script <00:33:08.543>schematics, <00:33:08.699>which <00:33:08.855>take

584
00:33:11.235 --> 00:33:14.835
<00:33:11.235>that <00:33:11.514>approach <00:33:11.794>of, <00:33:12.074>um, <00:33:12.354>extending <00:33:12.635>the,

585
00:33:14.895 --> 00:33:18.075
<00:33:14.895>the <00:33:15.035>default <00:33:15.175>in <00:33:15.315>your <00:33:15.455>schematics <00:33:15.595>and <00:33:15.735>adding <00:33:15.875>on <00:33:16.014>top <00:33:16.155>of <00:33:16.295>them.

586
00:33:18.255 --> 00:33:19.915
<00:33:18.255>So <00:33:18.535>if <00:33:18.815>this, <00:33:19.095>this <00:33:19.375>is <00:33:19.655>something

587
00:33:19.915 --> 00:33:22.115
<00:33:19.915>that <00:33:20.148>you're <00:33:20.381>interested <00:33:20.615>in, <00:33:20.848>check <00:33:21.081>them <00:33:21.315>out.

588
00:33:23.455 --> 00:33:27.115
<00:33:23.455>And <00:33:23.629>for <00:33:23.804>quality, <00:33:23.980>if <00:33:24.155>you're <00:33:24.330>interested <00:33:24.504>in <00:33:24.679>NG <00:33:24.855>ads

589
00:33:27.255 --> 00:33:30.995
<00:33:27.255>or <00:33:27.395>NG <00:33:27.535>updates, <00:33:27.675>we <00:33:27.815>have <00:33:27.955>a <00:33:28.095>bunch <00:33:28.235>of <00:33:28.375>migration <00:33:28.515>s <00:33:28.655>schematics

590
00:33:31.095 --> 00:33:34.515
<00:33:31.095>and <00:33:31.250>also <00:33:31.406>NG <00:33:31.561>ads, <00:33:31.717>uh, <00:33:31.872>s <00:33:32.028>schematics <00:33:32.183>there <00:33:32.339>as <00:33:32.495>well.

591
00:33:35.945 --> 00:33:37.595
<00:33:35.945>This <00:33:36.294>is <00:33:36.645>my <00:33:36.995>Twitter <00:33:37.345>handle

592
00:33:37.695 --> 00:33:39.675
<00:33:37.695>and <00:33:37.895>also <00:33:38.095>a <00:33:38.294>link <00:33:38.495>to <00:33:38.695>the <00:33:38.895>slides, <00:33:39.095>which

593
00:33:40.595 --> 00:33:42.755
<00:33:40.595>contains <00:33:40.875>all <00:33:41.155>the <00:33:41.435>other <00:33:41.715>links <00:33:41.995>inside.

594
00:33:43.865 --> 00:33:47.565
<00:33:43.865>So, <00:33:43.992>uh, <00:33:44.119>I'm <00:33:44.246>gonna <00:33:44.374>give <00:33:44.501>you <00:33:44.628>a <00:33:44.755>moment <00:33:44.883>to <00:33:45.010>write <00:33:45.137>that <00:33:45.265>down.

595
00:33:47.945 --> 00:33:50.035
<00:33:47.945>Um, <00:33:48.225>for <00:33:48.504>follow <00:33:48.784>me <00:33:49.064>on <00:33:49.345>Twitter.

596
00:33:51.905 --> 00:33:54.075
<00:33:51.905>This <00:33:52.060>is <00:33:52.216>everything <00:33:52.371>I <00:33:52.527>wanted <00:33:52.682>to <00:33:52.838>share <00:33:52.993>with <00:33:53.149>you <00:33:53.305>today.

597
00:33:54.285 --> 00:33:55.995
<00:33:54.285>Thank <00:33:54.635>you <00:33:54.985>for <00:33:55.335>your <00:33:55.685>attention

598
00:33:56.215 --> 00:33:58.795
<00:33:56.215>and <00:33:56.415>cool, <00:33:56.615>I <00:33:56.814>hope <00:33:57.014>to <00:33:57.215>see <00:33:57.415>you <00:33:57.615>soon

599
00:33:58.895 --> 00:34:03.035
<00:33:58.895>and, <00:33:59.022>um, <00:33:59.149>ask <00:33:59.276>me <00:33:59.404>any <00:33:59.531>questions <00:33:59.658>since <00:33:59.785>Vital, <00:33:59.913>if <00:34:00.040>you <00:34:00.167>have <00:34:00.295>any.